国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

微處理器和多處理器片上系統MPSOC設計的新紀元

發布時間:2010-9-18 17:14    發布者:techshare
可配置處理器標志著第四代微處理器設計的開始,這種技術更加適合片上系統SOC的設計。每一代處理器持續大約十年時間,每個時代的處理器適合當時那個時期的需要。大約在二十世紀七十年代出現了第一代處理器,這個時期的處理器設計只是簡單地追求性能,從4位處理器到早期的16位和32位微處理器。這種性能的提升奠定了二十世紀八十年代個人計算機PC和工作站的基礎。個人計算機和工作站的增長使得微處理器設計進入了二十世紀八十年代的第二代微處理器研制時期。精簡指令集RISC設計時代發生在二十世紀九十年代。在這個時期,即使像X86這樣堅定的復雜指令集CISC處理器也假裝成精簡指令集RISC體系結構。在最初的這三代處理器的成長和發展過程中,微處理器設計專家將處理器設計成固定的、單個的和可重用的模塊。但是,在二十世紀九十年代隨著專用集成電路ASIC和片上系統SOC制造技術的發展為微處理器設計進入第四代(即后RISC、可配置處理器)打下了堅實的基礎。

當今的系統開發工具已經非常先進,完全可以允許設計人員根據具體的應用目標任務來定制微處理器核。處理器定制可以在非常短的時間內,甚至是幾分鐘就可以根據具體應用完成片上系統處理器核的設計。由于根據具體任務來定制處理器的速度非常快,因此可配置處理器可以具有非常優異的高性能來構建片上系統的設計,并且經常用于快速建立一些功能模塊,而這些功能模塊如果采用人工RTL方式設計的話,則可能需要幾個月的時間。正是由于可配置處理器技術的高性能和快速開發能力,使得許多最終產品在多個可配置處理器核的基礎上實現了片上系統SOC(多處理器片上系統SOC或者簡寫為MPSOC)。這些最終產品的范圍從最大和最小的網絡路由器一直到諸如便攜式攝像機、打印機和低成本視頻游戲機等消費類電子產品。

兩種最新的開發技術已經嵌入到可配置處理器甚至片上系統SOC設計中,即全自動化的、專用指令集定制技術和對處理器內部執行部件的多口訪問技術。前者允許片上系統設計人員更加專注系統體系結構方面的問題,而通過依賴自動化設計工具來完成某些單一功能模塊以達到性能方面的目標。后者則永遠克服了以前那種存在已久的總線瓶頸問題,而這種總線瓶頸問題從1971年第一個微處理器出現以來就一直阻礙微處理器性能的提高。

自動化處理器定制

十多年來,硬件設計人員一直在努力用C或者C++對系統進行描述進而轉換成有效的硬件。最初的系統說明通常是用C或者C++寫成的,因為采用這些高級語言描述的系統可以在廉價的PC上進行執行和評價。然而,即使是廉價的PC也不適合許多嵌入式系統的設計,尤其是在消費電子領域,因為其功耗太大。因此,設計人員開始希望找到一種工具來將用C或者C++寫成的系統描述轉換成硬件。

許多像“行為綜合”、“C語言硬件綜合”和“ESL”等詞匯描述的設計方法都有一些缺陷,因為它們都是試圖解決在本質上很復雜的問題:用時序可執行語言寫成的系統描述轉換成并行互操作和非可編程的硬件模塊。

Tensilica的XPRES編譯器采用一種更加簡單、更加直接的方法來解決這一設計問題。XPRES編譯器不是試圖從頭開始進行與應用相關的硬件設計,而是從一個完整的功能處理器核開始設計,然后以添加硬件執行部件和相應的機器指令的方式來增加硬件,以加速處理器上目標應用程序的執行速度。因此,XPRES編譯器從一個正在工作的硬件(Xtensa微處理器核)開始設計,同時使得目標程序代碼運行得更快。這種搜索的結果是完成一個微處理器的配置,此配置有一個性能/硬件開銷的特性曲線,如圖1所示。



圖1: XPRES編譯器為設計者提供一系列微處理器配置。隨著硅片面積的增加也使得與應用相關的系統性能得到提升。

性能優化的三種技術途徑

XPRES編譯器采用三種技術來建立優化的Xtensa處理器配置:操作數融合、單指令流多數據流SIMD(向量化)和FLIX(可變長度指令擴展)。操作數融合技術記錄程序循環語句中簡單操作出現的頻度。XPRES編譯器將這些指令序列合并成一條增強型指令,這種增強型指令通過減少循環內部的指令條數來加速程序代碼的執行。圖2表示由XPRES編譯器產生的數據流操作,圖中用灰色表示出融合操作。



圖2:由XPRES編譯器產生的數據流圖表示出一系列融合操作。當減法操作、取絕對值操作、加法操作和位域抽取操作融合成一條新的指令后,由XPRES編譯器進行評估需要增加474個邏輯門。

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

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

采用可配置處理器進行多處理器SOC設計

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

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

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



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

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

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



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

第一個處理器和第二個處理器之間訪問時間的不對稱性可以保證push 通信,即當第一個處理器向第二個處理器發送數據時,它將數據通過總線寫到第二個處理器的本地局部存儲器。如果寫操作經過緩沖器,那么第一個處理器不必等到寫操作完成就可以繼續執行后面的操作。因此,到第二個處理器數據傳輸的長時間延時就被隱藏了。

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



圖5:兩個處理器共享局部數據存儲器

直接互連的數據端口

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



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

數據隊列

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

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



圖 7: 硬件數據隊列機制

數據隊列對任務間的性能有一定的影響。如果數據隊列生產者和消費者速率高度一致,那么隊列長度可以比較短。如果隊列生產者或者消費者速率不同,那么需要設計深度隊列來彌補二者之間的失配。

由于處理器執行部件的隊列接口對商用處理器核而言具有極其重要的特性,因此更加深入地對接口機制進行一些探討是非常必要的。數據隊列接口通過如下TIE語法格式添加到Xtensa LX處理器中:

queue in|out

上面語法格式定義了數據隊列的名稱、寬度和隊列的方向。一個Xtensa LX處理器可以包含300多個隊列,每個隊列寬度可以高達1024位。設計人員可以采用數據隊列來對處理器性能進行折中,即在快速、窄帶處理器接口和慢速、寬帶接口之間進行折中以獲得系統高帶寬和高性能的目的。

圖8為TIE隊列和簡單的Designware FIFO隊列之間的連接,這種連接方式非常容易。TIE隊列的push 和 pop操作由FIFO的隊列空和隊列滿狀態信號進行門控,這樣可以使設計與Designware的 FIFO控制模式保持一致。



圖8:采用TIE隊列的Designware同步FIFO示意圖 (diag_n輸入驅動為高且almost_full、 half_full、almost_empty和 error輸出均未用)

TIE隊列可以和寄存器操作數、系統狀態或者存儲器接口那樣直接為TIE指令提供輸入和輸出操作數。下面的TIE語法格式建立了一條新的指令,該指令對輸入數據隊列中的數據進行累加,然后送給寄存器文件。

operation QACC {inout AR ACC} {in IQ1} {

assign ACC = ACC + IQ1;

}

圖9表示TIE隊列是如何像其它指令操作數那樣在Xtensa LX處理器中使用的。



圖9:TIE隊列作為指令操作數使用

Xtensa LX處理器本身包括一個兩項的數據緩沖器,用于緩沖系統設計人員定義的每個TIE隊列。每個隊列的兩項數據緩沖器所占用的面積大大小于一個加載/存儲處理單元。因此,TIE隊列接口所占的處理器面積是完全受到設計人員所控制的,并且可以按照需要增大或者減小。

數據流直達處理

數據端口和數據隊列與可配置處理器執行部件直接相連,這種互連允許處理器應用數據流直達技術進行處理,而那些應用在以前是為手工編寫的RTL代碼邏輯塊預留的。將數據隊列和輸出隊列接口與設計人員定義的執行部件相結合就可以建立一個在處理器內部由固件控制的處理模塊,該模塊可以從輸入數據隊列中讀取數據,對這些數據執行計算,然后按照流水線方式每完成一個“輸入-計算-輸出”周期就將計算結果輸出。圖10表示一個簡單的系統設計,該系統有兩個256位的輸入數據隊列,一個256位的輸出數據隊列和一個256位的加法器/多路器執行部件。盡管該處理器擴展是在固件模式下進行控制的,但是其操作可以將處理器的存儲器總線和加載/存儲單元旁路以便可以獲得同硬件一樣的處理速度。



圖10:通過在可配置處理器中增加數據流直達處理模式來將執行部件和多個隊列相結合

即使在處理器擴展中使用大量的硬件,但在定義時也只是僅僅寫如下四行TIE代碼而已:

queue InData1 256 in

queue InData2 256 in

queue OutData 256 out

operation QADD {} { in InData1, in InData2, in SumCtrl, out OutData} { assign OutData = SumCtrl ? (InData1 + InData2) : InData1; }

前三行代碼定義了一個256位的輸入隊列和一個256位的輸出隊列,第四行定義了一條新的處理器指令QADD,該指令執行256位的加法運算或者將256位的數據從輸入隊列送到輸出隊列。通過TIE語言定義的指令告訴Xtensa處理器產生器自動為處理器增加相應的硬件,同時為處理器軟件開發工具增添一條新指令。

用于多處理器片上系統MPSOC設計的處理器核

可配置處理器的出現使得片上系統SOC設計人員可以建立起一種嶄新的且非常靈活的硬件模塊構建方法。同傳統的固定指令集體系結構ISA處理器相比,可配置處理器通過添加用戶定制的執行功能部件、寄存器和寄存器堆以及專用通信接口能夠獲得很高的系統性能。

自從1971年第一個微處理器研制成功至今已經30多年,由于受固定處理器核的束縛,導致可配置處理器的發明無法實現。對于二十一世紀的片上系統SOC設計而言,這些制約因素已經不再存在,而且這些過時的約束也不再限制系統設計人員對處理器的使用。
本文地址:http://m.qingdxww.cn/thread-27834-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产乱子伦精品免费不卡 | 欧美国产在线看 | 国产在线激情视频 | 色视频免费看 | 天天好比网 | 久久久精品久久久久久 | 国产99视频精品一区 | 四虎在线视频 | 精品久久久久久影院免费 | 亚洲国语在线视频手机在线 | 色综合久久久久久久久五月 | 四虎国产精品永久地址99 | 99re在线这里只有精品 | 国产精品手机视频一区二区 | 欧美在线视频第一页 | 亚洲欧美综合乱码精品成人网 | 欧美日韩国产在线播放 | 99热91| 日本不卡视频免费的 | 日本亚洲天堂 | 福利在线一区二区 | 精品h视频 | 天天视频色| 国内自拍视频在线看免费观看 | 九九热精 | 蜜桃tv在线 | 噼里啪啦免费视频高清观看 | 日本a级精品一区二区三区 日本a级黄色 | 青青青草国产线观 | 免费观看欧美成人禁片 | 最新国产三级在线不卡视频 | 91视频青青草 | 视频一区二区三区自拍 | 麻豆国产一区二区在线观看 | 国产又黄又免费aaaa视频 | 99九九视频 | 欧美理论片在线观看一区二区 | 久草香蕉视频 | 成人在线看片 | 天天干夜夜爱 | 日韩一区二区三区免费 |