色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 微處理器和多處理器片上系統(tǒng)MPSOC設(shè)計的新紀(jì)元

          微處理器和多處理器片上系統(tǒng)MPSOC設(shè)計的新紀(jì)元

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏


          應(yīng)用程序中的許多循環(huán)語句對一個數(shù)據(jù)陣列執(zhí)行相同的操作,XPRES編譯器可以將這些循環(huán)語句進行向量化,建立一條由多個相同執(zhí)行部件并行執(zhí)行多個數(shù)據(jù)項的指令。對Xtensa處理器增加單指令流多數(shù)據(jù)流SIMD指令與Tensilica的XCC C/C++編譯器是一致的,該編譯器能夠?qū)?yīng)用程序代碼中的內(nèi)循環(huán)展開并且進行向量化。通過向量化可以加速循環(huán)語句的執(zhí)行,這通常和增強型指令內(nèi)部SIMD運算部件的序號有關(guān)。

          XPRES編譯器采用的第三種加速程序代碼執(zhí)行的技術(shù)是Tensilica的FLIX(可變長度指令擴展)技術(shù)。FLIX指令是一種類似于融合和單指令流多數(shù)據(jù)流SIMD指令的多操作指令。然而,F(xiàn)LIX指令包括多個獨立的操作,而融合和單指令流多數(shù)據(jù)流SIMD指令則均為相關(guān)多操作。FLIX指令中的每一個操作都是和其它操作互相獨立的,XCC C/C++編譯器將彼此獨立的操作壓縮成一條FLIX格式的指令,而這種壓縮后的指令能夠顯著加速程序代碼的執(zhí)行速度。

          采用可配置處理器進行多處理器SOC設(shè)計

          在當(dāng)今的應(yīng)用中,很少只用一個處理器就能滿足系統(tǒng)的性能指標(biāo),即使采用面向目標(biāo)應(yīng)用的可配置處理器也很難做到。然而,多處理器MP指令集、高帶寬接口和小面積使得在一個片上系統(tǒng)SOC設(shè)計中可以集成多個可配置處理器。

          片上系統(tǒng)SOC中處理器模塊之間硬件互連機制的選擇對系統(tǒng)性能和硅片成本產(chǎn)生很大影響,而且這些硬件互連機制必須直接支持多處理器MP系統(tǒng)設(shè)計的互連要求。消息傳遞軟件通信機制直接影響到數(shù)據(jù)隊列。類似地,共享存儲器軟件通信模式也影響到基于總線的硬件系統(tǒng)。可配置處理器可以提供系統(tǒng)以很大的靈活性,提供對共享設(shè)備和存儲器進行訪問所需的仲裁機制。共享存儲器總線的基本拓?fù)浣Y(jié)構(gòu)有如下幾種:

          1. 通過通用處理器總線訪問系統(tǒng)全局存儲器:微處理器設(shè)計一個通用接口以便實現(xiàn)多種總線事務(wù)處理。在讀操作時,如果處理器認(rèn)為相應(yīng)的數(shù)據(jù)不在本地局部存儲器(根據(jù)地址或者高速緩存CACHE缺失進行判斷),那么處理器必須要進行全局存儲器訪問。處理器請求總線控制權(quán),當(dāng)控制權(quán)得到應(yīng)答后,處理器通過總線發(fā)送讀操作的目標(biāo)地址。相應(yīng)的設(shè)備(例如,存儲器或者輸入/輸出接口)對地址進行譯碼,然后通過總線對處理器所需要的數(shù)據(jù)進行傳送,如圖3所示。



          圖 3: 兩個處理器通過總線共享存儲器

          當(dāng)兩個處理器通過總線對全局共享存儲器進行訪問時,一個處理器獲得總線控制權(quán)對數(shù)據(jù)進行寫操作,另一個處理器就必須稍后才能獲得總線控制權(quán)以便進行讀操作。按照這種方式,每個字傳輸需要兩個總線操作事務(wù)周期才能完成。該方法需要適度的硬件支持,并且具有較高的靈活性,因為全局存儲器和輸入/輸出接口通過公共總線進行訪問。然而,對全局存儲器的使用卻不好根據(jù)處理器和設(shè)備的數(shù)量進行度量,因為總線擁塞會使得訪問時間變長和不可預(yù)測。

          2. 通過通用處理器總線對處理器本地局部存儲器進行訪問:可配置處理器可以允許局部數(shù)據(jù)存儲器參與通用總線事務(wù)處理。這些處理器基本上是由本地的處理器使用,并且二者是緊密耦合的。然而,控制局部數(shù)據(jù)存儲器的處理器可以按照總線從設(shè)備的方式進行操作,如圖4所示。



          圖4: 一個處理器通過總線訪問第二個處理器的局部數(shù)據(jù)存儲器

          第一個處理器和第二個處理器之間訪問時間的不對稱性可以保證push 通信,即當(dāng)?shù)谝粋€處理器向第二個處理器發(fā)送數(shù)據(jù)時,它將數(shù)據(jù)通過總線寫到第二個處理器的本地局部存儲器。如果寫操作經(jīng)過緩沖器,那么第一個處理器不必等到寫操作完成就可以繼續(xù)執(zhí)行后面的操作。因此,到第二個處理器數(shù)據(jù)傳輸?shù)拈L時間延時就被隱藏了。

          3. 通過局部總線訪問多口局部存儲器:當(dāng)數(shù)據(jù)流在處理器之間雙向傳輸且對時延要求比較嚴(yán)格時,那么對任務(wù)間通信而言,采用本地共享數(shù)據(jù)存儲器通常是最好的選擇。每個處理器使用自己的本地數(shù)據(jù)存儲器接口來訪問共享存儲器,如圖5所示。存儲器可以有兩個物理訪問端口(每個時鐘周期可以訪問兩次存儲器),或者通過一個簡單的仲裁器來控制。



          圖5:兩個處理器共享局部數(shù)據(jù)存儲器

          直接互連的數(shù)據(jù)端口

          處理器直接相連可以減少通信開銷和時間。這種連接方式將數(shù)據(jù)從一個處理器的寄存器傳送到另一個處理器的寄存器和執(zhí)行功能部件。直接互連的一個簡單例子如圖6所示。當(dāng)?shù)谝粋€處理器向輸出寄存器寫一個數(shù)值(通常作為計算的一部分)時,該值將自動出現(xiàn)在處理器的輸出端口上。同樣的數(shù)值可以立即輸入到第二個處理器進行相應(yīng)的數(shù)據(jù)操作。



          圖 6:處理器到處理器之間通過端口直接進行訪問

          數(shù)據(jù)隊列

          任務(wù)之間通信的最高帶寬機制是數(shù)據(jù)隊列的硬件實現(xiàn)。一個數(shù)據(jù)隊列可以使系統(tǒng)獲得每個時鐘周期傳輸一次的數(shù)據(jù)速率,或者在寬操作數(shù)位數(shù)的情況下可以達(dá)到每秒10GB的傳輸速率(每個操作數(shù)幾十個字節(jié),時鐘速率幾百兆赫MHz)。生產(chǎn)者和消費者之間的握手信號隱含在處理器之間的接口和數(shù)據(jù)隊列的頭信息和尾信息之中。

          專用處理器允許數(shù)據(jù)隊列作為指令集擴展的一部分直接進行硬件實現(xiàn)。數(shù)據(jù)隊列可以通過一條專門指令來說明,隊列可以作為結(jié)果值的目的或者使用輸入隊列值作為源。這種形式的隊列接口方式如圖7所示,該隊列允許用戶建立一個新的數(shù)據(jù)值,或者每個隊列接口使用一個時鐘周期。


          評論


          技術(shù)專區(qū)

          關(guān)閉