<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 可配置處理器開(kāi)發(fā)原理

可配置處理器開(kāi)發(fā)原理

作者: 時(shí)間:2011-04-23 來(lái)源:網(wǎng)絡(luò ) 收藏

為何需要?

本文引用地址:http://dyxdggzs.com/article/150831.htm

  首先,頻率并不代表性能。低功耗的針對特殊應用的而設計的架構比頻率高得多的通用性能可能更好。所以頻率代表性能的結論只能局限于同樣的架構的基礎上。同時(shí)過(guò)高的頻率意味著(zhù)更高的功耗。

  其次,應用的發(fā)展對處理器的需求越來(lái)越多樣化。我們可以看到單顆通用處理器的極限已經(jīng)到來(lái),通用處理器需要處理的應用越來(lái)越復雜,需要多內核的支持。最大半導體公司Intel的多核的產(chǎn)品策略足以證明這一點(diǎn)。另外,后PC時(shí)代是消費電子產(chǎn)品的時(shí)代,通用的CPU和DSP都無(wú)法滿(mǎn)足多種應用的要求。針對特殊應用設計的SOC要求能夠靈活設計針對應用的最優(yōu)化處理器:性能好、功耗低、面積小、大I/O帶寬……

  綜上所述,應用的需求的發(fā)展促進(jìn)了可處理器技術(shù)的產(chǎn)生和發(fā)展。

  可處理器及其

  以Tensilica的Xtensa可配置處理器架構為例,探討可配置處理器的。

  Xtensa可配置處理器架構是可配置可擴展的微處理器技術(shù),可以用于片上系統SOC設計?,F在的SOC需要更高系統性能、更高輸入/輸出帶寬和更高功耗利用率, Xtensa架構均實(shí)現提供相應的解決方案。系統設計師可根據各自的應用需求,首先配置和選擇架構元素,比如:內部cache大小,總線(xiàn)位寬,FPU單元, DSP引擎,中斷數量… 進(jìn)而針對應用擴展添加全新的指令、寄存器和I/O端口來(lái)設計具有專(zhuān)用功能的處理器內核。這種方法甚至能提供與手工RTL設計的硬邏輯有可比性的性能、尺寸和功耗等特性。通過(guò)圖1可以看到Xtensa處理器的架構。

  Xtensa處理器產(chǎn)生器可通過(guò)增加新的功能來(lái)自動(dòng)產(chǎn)生用戶(hù)所需要的硬件,產(chǎn)生硬件是經(jīng)過(guò)驗證的RTL代碼格式。自動(dòng)產(chǎn)生的處理器RTL代碼可以和現在的SOC設計流程無(wú)縫結合,用于邏輯綜合。處理器產(chǎn)生器還可建立與產(chǎn)生的處理器相匹配的系統軟件。

  可以說(shuō)Tensilica可配置處理器技術(shù)的核心,是在于可伸縮可擴展的Xtensa處理器架構和功能強大的自動(dòng)化生成工具—處理器生成器。

  Xtensa架構打破輸入/輸出瓶頸

  為了提高I/O帶寬,可配置處理器必須克服總線(xiàn)瓶頸。 總線(xiàn)瓶頸問(wèn)題是自Intel在1971年引入第一個(gè)商用微處理器4004以來(lái)就存在的問(wèn)題。每個(gè)處理器都和系統總線(xiàn)上的其余設計部件進(jìn)行通信??偩€(xiàn)上的流量由加載/存儲部件控制。由于總線(xiàn)的固有特性,在任何時(shí)候,只允許一小部分數據在總線(xiàn)上和處理器進(jìn)行通信。另外,加載/存儲單元和處理器內部執行部件以及處理器局部存儲器通過(guò)類(lèi)似有限的總線(xiàn)進(jìn)行通信。這種單一的、一次只能一個(gè)方向的處理器總線(xiàn)特性嚴重限制了微處理器的系統吞吐量。

  為了克服處理器總線(xiàn)所固有的局限性,Tensilica在Xtensa處理器中增加了另一個(gè)特性來(lái)永遠消除總線(xiàn)瓶頸問(wèn)題。這種新的特性稱(chēng)為T(mén)IE(Tensilica指令擴展)端口和隊列技術(shù)。采樣TIE端口和隊列技術(shù),設計者可以定義多達1024個(gè)端口直接與 Xtensa處理器執行部件相連接,如圖2所示。每個(gè)端口寬度可以達到1024位。這種技術(shù)的結果是可以使系統以350,000 Gbits/秒的速度與Xtensa處理器進(jìn)行信息交換。這可以充分滿(mǎn)足所有處理器的輸入/輸出帶寬需求和采用RTL技術(shù)設計的系統需求。

  Xtensa架構提高計算性能

  隨著(zhù)傳統微處理器總線(xiàn)瓶頸的解決,處理器工程師們將注意力集中到提高Xtensa 處理器的性能上,以便使得計算性能的提高可以和通過(guò)設置TIE端口和隊列來(lái)提高輸入/輸出帶寬相匹配。

  自從1999年開(kāi)始引入第一個(gè)可配置Xtensa處理器以來(lái),片上系統SOC設計師已經(jīng)具備能力來(lái)自己定義新指令,定義的新指令基于多操作(例如加法運算跟隨一個(gè)移位或者一個(gè)位選擇操作)技術(shù),多操作指令可以作為一條新的指令。將多個(gè)操作合并在一起成為一條新的機器指令,該技術(shù)稱(chēng)為操作數融合。操作數融合技術(shù)可以有效提高微處理器的計算性能。另外,片上系統SOC設計者可以在Xtensa處理器版本中添加SIMD(單指令、多數據)指令。 單指令流多數據流SIMD指令可以同時(shí)對多個(gè)數據元素執行相同的操作,該技術(shù)也可以顯著(zhù)提高微處理器的計算性能。

  然而,操作數融合和單指令流多數據流SIMD指令仍然只是微處理器的特征,每次只能發(fā)射一條指令。為更有效提高系統性能,設計人員決定在Xtensa處理器核中增加每個(gè)時(shí)鐘周期發(fā)射多條指令的能力。

  從歷史的觀(guān)點(diǎn)來(lái)看,處理器設計人員可以通過(guò)兩種方法來(lái)實(shí)現微處理器具備每個(gè)時(shí)鐘周期可以發(fā)射多條指令的能力。其一為超標量設計技術(shù),該技術(shù)通過(guò)復制處理器整個(gè)執行部件來(lái)保證指令譯碼和發(fā)射部件在每個(gè)時(shí)鐘周期可以發(fā)射多條指令。采用這種方法,處理器硬件必須在應用程序代碼中找到軟件固有的指令級并行性。 該技術(shù)的缺點(diǎn)是超標量處理器用于完全復制處理器執行部件的硬件開(kāi)銷(xiāo)大,而且程序代碼中缺少指令級并行性。盡管4路超標量處理器設計時(shí)可以在每個(gè)時(shí)鐘周期發(fā)射4個(gè)操作, 但是實(shí)際上從通用程序代碼中抽取的平均指令級并行性通常低于兩個(gè)操作。

  第二種方法是采樣稱(chēng)為超長(cháng)指令字VLIW的技術(shù)來(lái)保證處理器每個(gè)時(shí)鐘周期發(fā)射多個(gè)操作。該方法采用一個(gè)非常長(cháng)的指令字來(lái)對多個(gè)操作進(jìn)行編碼,有時(shí)每個(gè)指令字可以達到幾百位,多個(gè)操作可以同時(shí)發(fā)射到VLIW處理器的多個(gè)執行部件。VLIW處理器的編譯器負責找出應用程序代碼中的指令級并行性,VLIW處理器編譯器通常具有比較高的能力來(lái)識別程序中的并行性,因為編譯器掃描指令的窗口范圍比超標量處理器要大,而超標量處理器是采用指令譯碼和發(fā)射部件來(lái)對指令代碼的并行性進(jìn)行調度。VLIW技術(shù)從處理器硬件開(kāi)銷(xiāo)的角度來(lái)說(shuō)是非常有效的,然而VLIW處理器會(huì )造成指令代碼的劇烈膨脹(故需要更大的存儲器),因為每條VLIW指令字都非常長(cháng),而且VLIW編譯器經(jīng)常不能找到足夠的目標程序代碼中的指令級并行性來(lái)保證處理器中的每個(gè)執行部件都保持忙碌狀態(tài)。因此,VLIW處理器由于帶有與代碼相關(guān)的特性以及會(huì )耗盡片上的指令存儲器,故對深度嵌入式應用的處理器而言也不是一個(gè)理想的選擇。

  因此,處理器設計人員了一種變種VLIW結構,稱(chēng)為可變長(cháng)度指令擴展FLIX技術(shù),用于Xtensa處理器。和VLIW指令一樣,FLIX指令可以將多個(gè)獨立的指令操作進(jìn)行編碼,變成一個(gè)FLIX指令字,該指令字寬度為32位或者64位,如圖3所示。和所有設計人員定義的TIE指令一樣,FLIX指令均是可選擇的,并且它們可以和Xtensa處理器現有的16和24位指令自由地混合在一起。因此,采用FLIX指令就避免了代碼膨脹問(wèn)題,同時(shí)應用程序代碼執行速度更快,而不是使得程序代碼變得很長(cháng)。

  由于提高了輸入/輸出帶寬和計算性能,因此基于Xtensa 處理器的片上系統SOC設計通??梢砸员然诠潭ㄖ噶罴w系結構ISA的處理器更低的時(shí)鐘頻率進(jìn)行運行,這些低頻的時(shí)鐘頻率可以保證系統有更低的SOC系統功耗。然而,Xtensa處理器還可以通過(guò)擴展的內部時(shí)鐘門(mén)控技術(shù)來(lái)保證系統有更低的系統功耗,時(shí)鐘門(mén)控技術(shù)是由TIE指令進(jìn)行自定義擴展的。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>