多線程技術(shù)推動(dòng)下一代嵌入式SoC發(fā)展
世界各地的設(shè)計(jì)師都面臨著越來越嚴(yán)格的系統(tǒng)成本和功耗方面的限制,同時(shí)被要求他們的設(shè)計(jì)增加更多的性能和功能。 以前的做法是提高處理器的時(shí)鐘頻率,但是這種方法通常會(huì)增加功耗。此外存儲(chǔ)器性能的提升不能與處理器技術(shù)的進(jìn)步保持一致(圖1),兩者之間性能上的不匹配限制了系統(tǒng)性能方面的提高。因此提高處理器頻率的方法事倍功半。
還有一種選擇是采用多內(nèi)核系統(tǒng),但是這要付出更大芯片面積和更高成本的代價(jià)。任何性能的提高都會(huì)導(dǎo)致相應(yīng)的芯片成本和系統(tǒng)功耗。 另一種選擇是采用兩個(gè)或多個(gè)執(zhí)行單元的多發(fā)射處理器,但是它們會(huì)爭(zhēng)奪硬件資源,也存在著芯片面積問題。此外很多情況下,為了最好地利用多條流水線不得不對(duì)軟件做出修改。 然而多線程解決方案可通過增加處理器的利用率來隱藏存儲(chǔ)器延遲的問題。當(dāng)一個(gè)線程停止時(shí),其他線程就立即饋入流水線,從而顯著增加應(yīng)用的吞吐能力。 單內(nèi)核上的多線程 最新發(fā)布的mips32 34k內(nèi)核系列可提供單內(nèi)核上的多線程能力,因而具有更高的系統(tǒng)性能、更低的系統(tǒng)成本和功耗,同時(shí)保留現(xiàn)有軟件架構(gòu)上的投資。34k內(nèi)核針對(duì)高度并行的應(yīng)用,如機(jī)頂盒、voip、多功能打印機(jī)或數(shù)字電視,可通過同時(shí)處理軟件的多個(gè)線程實(shí)現(xiàn)系統(tǒng)級(jí)并行。
減少總擁有成本和功耗 更高的效率有助于設(shè)計(jì)師減少系統(tǒng)中的其他硬件模塊,如專用的數(shù)字信號(hào)處理器(dsp)。更高的應(yīng)用吞吐能力保證了實(shí)現(xiàn)同樣的性能所需的頻率比傳統(tǒng)處理器低,從而可降低整體功耗。此外,通過充分利用每個(gè)時(shí)鐘周期的所有計(jì)算能力可提升性能。 34k內(nèi)核系列技術(shù) 基于成熟的24ke微架構(gòu),34k內(nèi)核系列采用9級(jí)執(zhí)行流水線連接少量硬件,可處理虛擬處理單元(vpe)、線程關(guān)聯(lián)(tc)和服務(wù)質(zhì)量(qos)優(yōu)先級(jí)。
如圖2所示,每個(gè)線程都擁有其專用硬件,稱做線程關(guān)聯(lián)(tc)。這使每個(gè)線程都可以擁有自己的具備預(yù)取功能的指令緩沖器,因此核心能以逐個(gè)時(shí)鐘的方式在線程間進(jìn)行切換,以使流水線盡可能完整。這些做法可以避免開銷高昂的關(guān)聯(lián)交換。 每個(gè)tc都擁有自己的通用寄存器,一個(gè)pc(程序計(jì)數(shù)器)可保證tc運(yùn)行來自于復(fù)雜操作系統(tǒng)(如linux)上的一個(gè)線程。一個(gè)tc還和其它tc共享資源,特別是在操作系統(tǒng)內(nèi)核(os kernel)上的優(yōu)先代碼可使用cp0寄存器。 共享的cp0寄存器組和與其關(guān)聯(lián)的tc構(gòu)成一個(gè)vpe。運(yùn)行一個(gè)線程(如利用一個(gè)tc)的vpe非常類似于一個(gè)獨(dú)立的mips cpu,完全符合mip32架構(gòu)的要求。 所有線程(在任意vpe中)共享同一個(gè)高速緩存,所以不會(huì)發(fā)生高速緩存一致性的問題。這消除了多核和多處理器系統(tǒng)中存在的問題,在這些系統(tǒng)中要用多個(gè)周期和額外的邏輯來管理不同的處理器并保證高速緩存的一致性。 根據(jù)應(yīng)用的需求,34k核心可以配置多達(dá)5個(gè)tc,這些tc由最多兩個(gè)vpe支持。正是這種vpe和tc的結(jié)合提供了最高的芯片面積效率和靈活的解決方案。 服務(wù)質(zhì)量(qos) qos引擎從運(yùn)行的線程中循環(huán)選取指令,逐個(gè)周期的交叉執(zhí)行指令,以使總體應(yīng)用的吞吐能力最大化。這樣就可以使處理器帶寬在不同線程之間很好的共享,從而充分利用各自的處理“間隙”?;蛘咄ㄟ^向特定線程分配專用的處理帶寬,也可以實(shí)現(xiàn)如通信、視頻和音頻處理等實(shí)時(shí)任務(wù)所需要的服務(wù)質(zhì)量。 服務(wù)質(zhì)量由分級(jí)方法處理(如圖3),這樣用戶就可以將不同等級(jí)的處理帶寬編程分配給現(xiàn)有的tc?;诜峙涞膸?,集成的策略管理器(policy manager)可以向單個(gè)tc分配優(yōu)先級(jí),持續(xù)監(jiān)控線程進(jìn)度,在需要時(shí)為分發(fā)調(diào)度器(dispatch scheduler)提供重要“提示”。分發(fā)調(diào)度器也可以逐周期的調(diào)度線程到執(zhí)行單元,以保證服務(wù)質(zhì)量要求。 軟件應(yīng)用模型 另一個(gè)關(guān)鍵點(diǎn)是大多數(shù)配置將運(yùn)行現(xiàn)有軟件而無需修改,對(duì)于系統(tǒng)開發(fā)者來說這是縮短產(chǎn)品上市時(shí)間的主要優(yōu)勢(shì)。 以最簡(jiǎn)單的多線程形式,基于vpe的非對(duì)稱多處理(amvp)系統(tǒng)可保證兩個(gè)操作系統(tǒng)同時(shí)運(yùn)行,每一個(gè)操作系統(tǒng)又在基于自己vpe的tc上(圖4)運(yùn)行。大多數(shù)情況下這兩個(gè)操作系統(tǒng)很可能是兩個(gè)已有的操作系統(tǒng)(例如面向控制平面應(yīng)用的linux和面向數(shù)據(jù)平面應(yīng)用的rtos),這些系統(tǒng)以前運(yùn)行在兩個(gè)獨(dú)立的mips內(nèi)核上。 將兩個(gè)功能結(jié)合到一個(gè)核心可減少成本、芯片面積和功耗。這個(gè)單芯片、單核心soc可以由兩個(gè)操作系統(tǒng)用基本相同方式進(jìn)行控制,正如以前那樣使操作系統(tǒng)、應(yīng)用程序代碼的改變降到最低,從而提供一條向更高性能soc器件轉(zhuǎn)移的低風(fēng)險(xiǎn)路徑。 34k是高度可配置的內(nèi)核,圖5說明了這一點(diǎn)。用戶可以在一個(gè)vpe上運(yùn)行住宅網(wǎng)關(guān)的控制平面功能,而在第二個(gè)vpe上使用4個(gè)tc支持多通道voip,從而大大的降低了系統(tǒng)成本。 本文小結(jié) 盡管嵌入式環(huán)境是高度并