專利名稱:面向通信和多媒體應(yīng)用的單指令多數(shù)據(jù)處理器電路結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于高性能并行計(jì)算處理器技術(shù)領(lǐng)域,具體為一種面向通信和多媒體應(yīng) 用,適用于眾核片上網(wǎng)絡(luò)的新型單指令多數(shù)據(jù)(SIMD)處理器電路結(jié)構(gòu)。
背景技術(shù):
單指令多數(shù)據(jù)(SIMD)是Single Instruction Multiple Data 的縮寫。SIMD 這 一概念最早由Flyrm提出。后來基于這一思想,也就是一條指令對(duì)多條數(shù)據(jù)通路執(zhí)行運(yùn)算, 研制了一系列的并行運(yùn)算架構(gòu),包括最早的vector processor,被廣泛運(yùn)用在早期的超大 型計(jì)算機(jī)研制中。上世紀(jì)80年代,由Lockheed Martin開發(fā)的GAPP架構(gòu)獲得廣泛認(rèn)可, GAPP (Geometric-Arithmetic Parallel Processor)處理器基于 SB 架構(gòu),在目前的視頻、 音頻處理領(lǐng)域得到很好的應(yīng)用。上世紀(jì)90年代,SIMD作為一種技術(shù)被廣泛用于通用處理器 的擴(kuò)展,用于增強(qiáng)通用處理器的多媒體處理能力。其中包括Intel公司的MMX,SSE,SSE2, AMD的3Dnow !,IBM公司也和Motorola公司、Apple公司聯(lián)合開發(fā)了基于PowerPC的SIMD 擴(kuò)展技術(shù)VMX,以及Freescale公司專有的Altivec SIMD處理器。用以增強(qiáng)原有通用處理 器的并行數(shù)據(jù)處理能力。以ARM公司,MIPS公司為代表的嵌入式處理器設(shè)計(jì)廠家,也在其 相應(yīng)的處理器解決方案上,提出了多媒體、DSP擴(kuò)展指令集架構(gòu)以及相應(yīng)的SIMD技術(shù),例如 ARM公司的NE0N技術(shù)和MIPS的DSP擴(kuò)展、3D擴(kuò)展技術(shù)。眾核處理器(Many-core Processor)是近幾年出現(xiàn)的新型處理器解決方案,與傳 統(tǒng)的單核處理器相比,并行計(jì)算能力更強(qiáng),可擴(kuò)展性與可配置性也更好,功耗水平也有一定 的優(yōu)勢(shì)。與傳統(tǒng)的專用集成電路相比,靈活性更強(qiáng),可以支持多種標(biāo)準(zhǔn)和算法,因此近年來 得到廣泛關(guān)注。眾核處理器本質(zhì)上是采用一定的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)將一定數(shù)量的微處理器聯(lián)接 起來,采用特定的路由算法負(fù)責(zé)不同微處理器之間的通信,以獲得更好的并行計(jì)算能力。另 外,在眾核處理器中所使用的單個(gè)微處理器與傳統(tǒng)的微處理器還有所不同,需要面向眾核 通信架構(gòu)作一定的架構(gòu)修改,本發(fā)明就是基于面向眾核處理器架構(gòu)所提出的一款SIMD處 理器內(nèi)核,主要面向通信和多媒體應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種適用于下一代眾核處理器,面向通信和多媒體應(yīng)用的新 型單指令多數(shù)據(jù)處理器電路結(jié)構(gòu)。本發(fā)明基于開源精簡(jiǎn)指令集(RISC)處理器架構(gòu),根據(jù)眾核處理器片上網(wǎng)絡(luò)(NoC, Network-on-Chip)特征與通信多媒體應(yīng)用運(yùn)算特征,提出了一種新的SIMD處理器電路結(jié) 構(gòu)。能夠更好地適用于眾核架構(gòu)下的處理器核通信,并從指令層次提升了內(nèi)部的并行計(jì)算 能力,主要由SIMD整數(shù)運(yùn)算單元,流水線控制單元,處理器異??刂茊卧琒IMD乘除法運(yùn)算 單元,擴(kuò)展寄存器文件單元共計(jì)五個(gè)模塊組成。關(guān)于SIMD運(yùn)算模式的定義一般較為寬泛,在本發(fā)明針對(duì)的多媒體通信應(yīng)用領(lǐng)域 中,所處理數(shù)據(jù)的位寬一般為8比特(例如快速傅里葉變換FFT,Reed-Solomn糾錯(cuò)碼編解碼計(jì)算,LDPC糾錯(cuò)碼編解碼計(jì)算等),因此充分利用現(xiàn)有寄存器位寬資源,引入SIMD的設(shè)計(jì) 理念,可以提升數(shù)據(jù)的并行處理能力。因此引入4比特,8比特和16比特三種新的位寬模 式,與開源RISC架構(gòu)下的32比特位寬模式融合,以獲得更優(yōu)秀的并行數(shù)據(jù)處理能力,這也 是本發(fā)明的核心。詳見圖-1。除依據(jù)數(shù)據(jù)的位寬分類外,SIMD指令根據(jù)參與運(yùn)算數(shù)據(jù)邏輯關(guān)系可分為標(biāo)量_標(biāo) 量模式和向量_標(biāo)量模式。標(biāo)量_標(biāo)量模式下,在SIMD算術(shù)邏輯運(yùn)算單元、乘除法運(yùn)算單 元和數(shù)據(jù)移位單元中,數(shù)據(jù)根據(jù)對(duì)應(yīng)比特位確定邏輯關(guān)系參加運(yùn)算,為一對(duì)一的形式。而在 向量-標(biāo)量模式下,數(shù)據(jù)的邏輯關(guān)系由指令顯式指定,可以實(shí)現(xiàn)多對(duì)一的運(yùn)算效果。同時(shí), 配套增加向量_標(biāo)量模式下的寄存器傳輸,數(shù)據(jù)訪問指令以及相應(yīng)的跳轉(zhuǎn)控制指令。關(guān)于 標(biāo)量_標(biāo)量和標(biāo)量_向量運(yùn)算模式詳見圖_2和圖-3。每一個(gè)模塊都充分考慮對(duì)原有開源RISC指令集與新添加SIMD指令的支持。SIMD 整數(shù)運(yùn)算單元,支持SIMD指令與普通RISC指令兩種模式的運(yùn)算。流水線控制單元,適用于 SIMD指令與普通指令模式下,對(duì)指令流水中的數(shù)據(jù)相關(guān)、控制相關(guān)和結(jié)構(gòu)相關(guān)進(jìn)行判定并 對(duì)指令流水做相應(yīng)的調(diào)整。處理器異??刂茊卧?,適用于SIMD指令與普通指令模式下,對(duì) 指令流水中的中斷、異常指令等意外情況作相應(yīng)處理。SIMD乘除法運(yùn)算單元,負(fù)責(zé)普通指令 和SIMD指令的乘除法運(yùn)算、乘加乘減運(yùn)算,以及SIMD指令模式下多對(duì)一向量-標(biāo)量乘法運(yùn) 算。適用于SIMD運(yùn)算的擴(kuò)展寄存器文件單元,在現(xiàn)有開源RISC架構(gòu)寄存器文件基礎(chǔ)上,將 地址空間由32個(gè)擴(kuò)展到64個(gè),并添加相應(yīng)的映射表配置映射關(guān)系,適用于SIMD指令運(yùn)算, 增加SIMD指令的并行計(jì)算能力。關(guān)于五個(gè)組成模塊的系統(tǒng)架構(gòu),如圖3所示,輸入輸出信 號(hào)如表-1所示。當(dāng)指令被發(fā)射到SIMD處理器內(nèi)核中,首先被SIMD整數(shù)運(yùn)算單元獲取,經(jīng)過其內(nèi)部 的譯碼模塊得到相應(yīng)控制信號(hào)??刂菩盘?hào)將傳輸?shù)搅魉€控制單元和處理器異常控制單 元,得到相應(yīng)的流水線控制操作。同時(shí)根據(jù)具體的指令,SIMD乘除法單元將獲得輸入操作 數(shù)與操作模式信號(hào),給出運(yùn)算結(jié)果。擴(kuò)展寄存器文件單元將根據(jù)每條指令的需求讀出或?qū)?入具體寄存器單元的值。關(guān)于指令的流水線示意,如圖_4所示。(1) SIMD整數(shù)運(yùn)算單元SIMD整數(shù)運(yùn)算單元,是SIMD處理器核心組成部分,是獲取數(shù)據(jù)、進(jìn)行運(yùn)算并返回 運(yùn)算結(jié)果的重要功能單元。如圖_5所示,該運(yùn)算單元由取指模塊、譯碼模塊、SIMD移位模 塊、SIMD算術(shù)邏輯運(yùn)算模塊、邏輯1計(jì)數(shù)模塊、數(shù)據(jù)前推模塊、數(shù)據(jù)獲取模塊和數(shù)據(jù)對(duì)齊模 塊共計(jì)8個(gè)模塊組成。取指模塊根據(jù)發(fā)射的指令判斷是否取入下一條指令,當(dāng)流水線控制模塊要求插入 空指令或重復(fù)執(zhí)行上一條指令時(shí),取指模塊不接受下一條指令輸入。當(dāng)完成取值后,指令將 流入譯碼模塊。譯碼模塊根據(jù)指令編碼判斷為普通的RISC架構(gòu)指令或者為添加的SIMD運(yùn) 算指令,產(chǎn)生相應(yīng)的控制信號(hào)。之后指令將流入數(shù)據(jù)運(yùn)算通路,根據(jù)指令和譯碼信號(hào)產(chǎn)生的 結(jié)果訪問適用于SIMD指令的擴(kuò)展寄存器文件單元取得操作數(shù),或者通過數(shù)據(jù)獲取模塊訪 問內(nèi)存獲得操作數(shù),之后通過SIMD算術(shù)邏輯運(yùn)算模塊、移位模塊、邏輯1計(jì)數(shù)模塊或者SIMD 乘除法模塊對(duì)數(shù)據(jù)進(jìn)行運(yùn)算。數(shù)據(jù)前推模塊判斷指令間的相關(guān)性,以實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)前推 和數(shù)據(jù)轉(zhuǎn)發(fā),以消除指令的數(shù)據(jù)相關(guān)與結(jié)構(gòu)相關(guān)。最后運(yùn)算結(jié)果將經(jīng)過數(shù)據(jù)對(duì)齊模塊,放回 寄存器堆中或者內(nèi)存中。數(shù)據(jù)對(duì)齊模塊的作用是將待存放的數(shù)據(jù)按照內(nèi)存所要求的格式對(duì)齊,再存放到存儲(chǔ)器中。其中SIMD移位模塊和SIMD算術(shù)邏輯運(yùn)算模塊是SIMD整數(shù)運(yùn)算單元的核心組成 部分。SIMD移位模塊不僅支持開源RISC架構(gòu)下的移位指令,同時(shí)支持SIMD模式下4比特, 8比特和16比特移位功能。包含邏輯左移,邏輯右移和算術(shù)右移。其支持的SIMD指令詳見 表-2。SIMD算術(shù)邏輯運(yùn)算單元模塊是整個(gè)SIMD處理器數(shù)據(jù)通路的關(guān)鍵,負(fù)責(zé)執(zhí)行加、減、 與、或、異或和或非等原子運(yùn)算。與SIMD移位模塊類似,SIMD算術(shù)邏輯運(yùn)算不僅支持開源 RISC架構(gòu)下的運(yùn)算指令,也支持SIMD模式下的4比特,8比特,16比特運(yùn)算指令。SIMD算 術(shù)邏輯運(yùn)算模塊支持的SIMD指令詳見表_3(2)流水線控制單元和處理器異??刂茊卧魉€控制單元負(fù)責(zé)SIMD處理器中流水線控制信號(hào)的產(chǎn)生。在指令流水中,數(shù)據(jù) 相關(guān)、控制相關(guān)和結(jié)構(gòu)相關(guān)是常見的相關(guān)類型。特別是增加SIMD指令,并且將原先的32個(gè) 寄存器擴(kuò)展到64個(gè)寄存器后,流水線控制單元需要做相應(yīng)的修改。具體的方法是,增加對(duì) SIMD指令相關(guān)性的判斷邏輯,同時(shí)將原先針對(duì)32個(gè)寄存器的相關(guān)性判斷邏輯轉(zhuǎn)變?yōu)獒槍?duì) 64個(gè)寄存器的判斷邏輯。處理器異??刂茊卧?fù)責(zé)處理SIMD處理器中異常指令、外部中斷和程序跳轉(zhuǎn)失 效等異常情況。在SIMD模式下,我們新增了 SIMD跳轉(zhuǎn)指令,因此需要將開源RISC處理器 架構(gòu)下的異??刂茊卧鲆欢ǖ臄U(kuò)展。(3) SIMD乘除法運(yùn)算單元SIMD乘除法運(yùn)算單元支持標(biāo)量_標(biāo)量和向量_向量?jī)煞N模式的乘除法運(yùn)算,支持 4比特、8比特、16比特和32比特四種位寬模式的SIMD指令運(yùn)算。在本發(fā)明中,我們對(duì)SIMD 乘除法運(yùn)算單元采取可重構(gòu)設(shè)計(jì)理念。在保證靈活性的同時(shí),節(jié)約了硬件開銷。同時(shí)本發(fā) 明優(yōu)化了 SIMD乘除法運(yùn)算單元數(shù)據(jù)通路,去除了通信多媒體領(lǐng)域不常用的32比特與32比 特相乘運(yùn)算,引入了實(shí)用性更強(qiáng)的SIMD運(yùn)算指令,于是有效提升了該運(yùn)算單元的性能,減 小了相應(yīng)的延遲等待。(4)擴(kuò)展寄存器文件單元為了更好的發(fā)揮出SIMD指令在通信多媒體應(yīng)用領(lǐng)域中的強(qiáng)大性能,在眾核處理 器架構(gòu)中減少處理器核對(duì)內(nèi)存的訪問以降低功耗,本發(fā)明引入了擴(kuò)展的寄存器文件,將原 先的32個(gè)寄存器擴(kuò)展為現(xiàn)在64個(gè)寄存器。同時(shí)為便于眾核處理器架構(gòu)下處理器核與路由 之間利用FIFO的通信效率,本發(fā)明將FIFO讀端口和寫端口映射到第63和64號(hào)寄存器中, 加快了 FIFO的通信效率。此外,由于本發(fā)明沿用開源RISC指令集架構(gòu),需要在指令集架構(gòu) 中實(shí)現(xiàn)32個(gè)虛寄存器與64個(gè)實(shí)寄存器的映射。本發(fā)明提出了基于映射表的粗細(xì)粒度結(jié)合 的映射配置方法,在保證配置靈活性的同時(shí)也實(shí)現(xiàn)了映射規(guī)則的規(guī)范性和易用性。 綜上所述,上述發(fā)明內(nèi)容,提出了一種適用于未來眾核處理器架構(gòu)的,面向通信和 多媒體應(yīng)用領(lǐng)域的SIMD處理器電路架構(gòu)。通過對(duì)處理器關(guān)鍵模塊的設(shè)計(jì)和SIMD指令的設(shè) 計(jì),能夠高效的實(shí)現(xiàn)多種通信和多媒體應(yīng)用,做到通用性與高性能兼?zhèn)?。根?jù)對(duì)本發(fā)明的初 步評(píng)估,可以在本發(fā)明方案中,高效實(shí)現(xiàn)多種通信內(nèi)接收機(jī)糾錯(cuò)碼算法,并且實(shí)現(xiàn)的性能指 標(biāo)與面向特定應(yīng)用的專用集成電路相差無幾,實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。附表說明表-1新型SIMD處理器電路架構(gòu)輸入輸出信號(hào)說明。
表-2 SIMD移位模塊支持SIMD指令一覽。表-3 SIMD算術(shù)邏輯運(yùn)算模塊支持的SIMD指令。表-4新型SIMD處理器支持的SIMD指令一覽。表-5寄存器擴(kuò)展配置_復(fù)位指令一覽。
圖-1新型SIMD處理器SIMD指令運(yùn)算模式示意圖(一個(gè)32比特的寄存器可看做 8個(gè)4比特子寄存器,或者4個(gè)8比特子寄存器,或者2個(gè)16比特子寄存器,或者1個(gè)32比
特寄存器)
圖-2 SIMD指令運(yùn)算向量-標(biāo)量模式示意圖。
圖-3 SIMD指令運(yùn)算標(biāo)量-標(biāo)量模式示意圖。
圖-4面向通信多媒體應(yīng)用的新型SIMD處理器流水線示意圖。
圖-5面向通信多媒體應(yīng)用的新型SIMD處理器架構(gòu)示意圖。
圖-6擴(kuò)展寄存器單元設(shè)計(jì)示意圖。
圖-7 SIMD移位模塊psll.o指令運(yùn)算示意圖。
圖-8 SIMD乘除法運(yùn)算單元工作模式示意圖。
具體實(shí)施例方式根據(jù)發(fā)明內(nèi)容中的方案,面向多媒體和通信多媒體應(yīng)用的單指令多數(shù)據(jù)處理器電 路結(jié)構(gòu)的具體實(shí)施方式
如下(1)指令集架構(gòu)設(shè)計(jì)指令集包括開源RISC架構(gòu)指令和SIMD指令兩部分,本發(fā)明在原有開源RISC架構(gòu) 指令集基礎(chǔ)上,增加了 SIMD指令。為了便于記憶,增添的指令命名規(guī)則如下標(biāo)量-標(biāo)量類型xxx. d 表示32比特X 32比特指令,這類指令也就是開源RISC所支持的指令xxx. h 表示16比特X 16比特算術(shù)邏輯運(yùn)算指令或32比特*16比特乘除法運(yùn)算 指令,指令高六位是111100xxx. o表示8比特X8比特算術(shù)邏輯運(yùn)算指令或16比特*16比特乘除法運(yùn)算指 令,指令高六位是110100xxx. q 表示4比特X 4比特算術(shù)邏輯運(yùn)算指令或8比特*8比特乘除法運(yùn)算指令, 指令高六位是101100向量-標(biāo)量類型pxxx. h 表示多對(duì)一模式下16比特X 16比特算術(shù)邏輯運(yùn)算指令,指令高六位是 111100pxxx. o 表示多對(duì)一模式下的8比特X8比特算術(shù)邏輯運(yùn)算指令或16比特X 16 比特MDU指令,指令高六位是111100pxxx. q 表示多對(duì)一模式下的4比特X4比特算術(shù)邏輯運(yùn)算指令或8比特*8比特 乘除法運(yùn)算指令,指令高六位是111100條件跳轉(zhuǎn),判斷置位類型
xxx. o 表示8比特模式下的條件跳轉(zhuǎn)和判斷置位指令。在通信和多媒體應(yīng)用領(lǐng)域,需要運(yùn)算的數(shù)據(jù)格式通常為8比特,因此目前只實(shí)現(xiàn)8 比特模式下的條件跳轉(zhuǎn)和判斷置位指令。處理器支持的SIMD指令詳見表-4。(2)關(guān)鍵模塊設(shè)計(jì)SIMD處理器中關(guān)鍵模塊的設(shè)計(jì)主要分為3個(gè)部分進(jìn)行SIMD算術(shù)邏輯運(yùn)算模塊, SIMD移位模塊,SIMD乘除法運(yùn)算單元。i. SIMD算術(shù)邏輯運(yùn)算模塊靈活配置內(nèi)部數(shù)據(jù)運(yùn)算通路。SIMD算術(shù)邏輯運(yùn)算模塊 可配合指令實(shí)現(xiàn)下列四種SIMD運(yùn)算模式。模式=00,4比特*8組模式=01,8比特*4組模式=10,16比特*2組模式=11,32比特組ii. SIMD移位模塊除支持開源RISC架構(gòu)下指令的移位指令,也支持SIMD運(yùn)算模式 下移位指令。如下所示邏輯左移指令PSLL.o/PSLL. h (packed shift left logical)邏輯右移指令PSRL.o/PSRL. h (packed shift right logical)算術(shù)右移指令PSRA.o/PSRA. h (packed shift right arithmetic byte/word).圖-7以psll. o為例,說明了移位運(yùn)算情況,指令格式為psll. o rd,rt,sard為目標(biāo)寄存器,rt為源寄存器,sa是移位的偏移量。iii. SIMD乘除法運(yùn)算單元支持4種SIMD模式的乘法運(yùn)算模式=00,4組8比特*8比特模式=01,2組16比特*16比特模式=10,1組32比特*16比特 模式=11,1組32比特*32比特圖-8以兩個(gè)操作數(shù)A = A3A2A1A0, B = B3B2B1B0為例,說明在各種模式下SIMD 乘除法運(yùn)算單元的運(yùn)算情況。SIMD乘除法運(yùn)算單元采取三級(jí)流水線,通過對(duì)部分積的調(diào)度實(shí)現(xiàn)不同的運(yùn)算模 式M 級(jí)產(chǎn)生 A3B3,A3B2. . . A0B0 共 16 個(gè) 16bit 部分積;A級(jí)不同模式下,對(duì)部分積采用不同的組合疊加方式,得到結(jié)果并進(jìn)行乘加乘 減;W級(jí)寫回寄存器。(3)擴(kuò)展寄存器單元設(shè)計(jì)與先入先出隊(duì)列(FIFO)寄存器地址映射為了更好的發(fā)揮出SIMD指令在通信多媒體應(yīng)用領(lǐng)域中的強(qiáng)大性能,在眾核處理 器架構(gòu)中減少處理器核對(duì)內(nèi)存的訪問以降低功耗,本發(fā)明引入了擴(kuò)展的寄存器文件,將原 先的32個(gè)寄存器擴(kuò)展為現(xiàn)在64個(gè)寄存器,包含原先的32個(gè)核心寄存器和32個(gè)擴(kuò)展寄存 器。如圖_6所示。此外,由于本發(fā)明沿用開源RISC指令集架構(gòu),需要在指令中顯式定義32 個(gè)虛寄存器與64個(gè)實(shí)寄存器的映射,通過配置指令實(shí)現(xiàn)對(duì)映射表進(jìn)行實(shí)時(shí)配置,以充分利 用64個(gè)實(shí)寄存器。此外,本發(fā)明提出了基于映射表的粗細(xì)粒度結(jié)合的映射配置方法,在保 證配置靈活性的同時(shí)也實(shí)現(xiàn)了映射規(guī)則的規(guī)范性和易用性。關(guān)于具體的映射規(guī)則,請(qǐng)參加 表-5。因?yàn)楸景l(fā)明面向未來眾核處理器架構(gòu),因此需要考慮到處理器核與眾核網(wǎng)絡(luò)的通信問題。在眾核處理器中,處理器通過路由相互連接成一個(gè)大的NoC(Network-on-Chip)。 而處理器與路由通信的端口即為FIFO 口。FIFO通常采取異步FIFO,連接起路由時(shí)鐘域和 處理器時(shí)鐘域,通過一個(gè)讀口和一個(gè)寫口實(shí)現(xiàn)數(shù)據(jù)交換。傳統(tǒng)的方法是將讀口和寫口映射 到內(nèi)存地址空間中,通過對(duì)內(nèi)存地址的訪問來實(shí)現(xiàn)FIFO數(shù)據(jù)交換。這種做法的缺點(diǎn)是速度 慢首先需計(jì)算內(nèi)存地址,然后再去尋址訪問FIFO。另外,訪存指令的功耗水平也較高。由 此,我們將FIFO的讀端口和寫端口映射到第63和64號(hào)實(shí)寄存器中,這樣講內(nèi)存地址映射 改為寄存器地址映射,可以加快了 FIFO的通信效率,減少功耗開銷。同時(shí),我們?yōu)镕IFO映 射關(guān)系專門增加快速配置與復(fù)位指令。請(qǐng)參加表_5。(4)架構(gòu)綜合設(shè)計(jì)此外,還需要針對(duì)SIMD指令設(shè)計(jì)譯碼模塊、數(shù)據(jù)前推模塊、流水線控制單元和處 理器異常控制單元,以保證對(duì)SIMD指令相關(guān)性的正確判斷,保證指令的正常流水。完成上述四個(gè)階段,就實(shí)現(xiàn)了整個(gè)單指令多數(shù)據(jù)處理器電路結(jié)構(gòu)。本發(fā)明借鑒開 源RISC處理器架構(gòu),在其基礎(chǔ)上增加了 SIMD指令,擴(kuò)展寄存器文件,并將眾核網(wǎng)絡(luò)FIFO通 信地址映射到寄存器文件中。通過這些改進(jìn),本發(fā)明可以很好地適用于眾核處理器,應(yīng)用于 通信和多媒體領(lǐng)域。根據(jù)仿真結(jié)果,本方案能夠適用于Reed-Solomon糾錯(cuò)編解碼,LDPC糾 錯(cuò)編解碼,DVB-H, DVB-T以及HDTV等通信多媒體應(yīng)用領(lǐng)域。附表 表-1新型SIMD處理器電路架構(gòu)輸入輸出信號(hào)說明 表-2 SIMD移位模塊支持SIMD指令一覽
表-3 SIMD算術(shù)邏輯運(yùn)算模塊支持的SIMD指令 表-4新型SIMD處理器支持的SIMD指令一覽
。 表-5寄存器擴(kuò)展配置_復(fù)位指令一覽。
權(quán)利要求
一種面向通信和多媒體應(yīng)用的單指令多數(shù)據(jù)處理器電路結(jié)構(gòu),其特征在于,由SIMD整數(shù)運(yùn)算單元,流水線控制單元,處理器異常控制單元,SIMD乘除法運(yùn)算單元,擴(kuò)展寄存器文件單元共計(jì)五個(gè)模塊組成;SIMD整數(shù)運(yùn)算單元,支持SIMD指令與普通RISC指令兩種模式的運(yùn)算,其中SIMD指令定義為,單條指令對(duì)多個(gè)數(shù)據(jù)同時(shí)運(yùn)算;流水線控制單元,適用于SIMD指令與普通指令模式下,對(duì)指令流水中的數(shù)據(jù)相關(guān)、控制相關(guān)和結(jié)構(gòu)相關(guān)進(jìn)行判定并對(duì)指令流水做相應(yīng)的調(diào)整;處理器異??刂茊卧m用于SIMD指令與普通指令模式下,對(duì)指令流水中的中斷、異常指令情況作相應(yīng)處理;SIMD乘除法運(yùn)算單元,負(fù)責(zé)普通指令和SIMD指令的標(biāo)量-標(biāo)量乘除法運(yùn)算、乘加乘減運(yùn)算,以及SIMD指令模式下向量-標(biāo)量乘法運(yùn)算;適用于SIMD運(yùn)算的擴(kuò)展寄存器文件單元,在現(xiàn)有開源RISC架構(gòu)寄存器文件基礎(chǔ)上,將地址空間由32個(gè)擴(kuò)展到64個(gè),并添加相應(yīng)的映射表配置映射關(guān)系,適用于SIMD指令運(yùn)算,增加SIMD指令的并行計(jì)算能力;當(dāng)指令被發(fā)射到SIMD處理器內(nèi)核中,首先被SIMD整數(shù)運(yùn)算單元獲取,經(jīng)過其內(nèi)部的譯碼模塊得到相應(yīng)控制信號(hào);控制信號(hào)將傳輸?shù)搅魉€控制單元和處理器異??刂茊卧玫较鄳?yīng)的流水線控制操作;同時(shí)根據(jù)具體的指令,SIMD乘除法單元將獲得輸入操作數(shù)與操作模式信號(hào),給出運(yùn)算結(jié)果;擴(kuò)展寄存器文件單元將根據(jù)每條指令的需求讀出或?qū)懭刖唧w寄存器單元的值。
2.根據(jù)權(quán)利要求1所述的電路結(jié)構(gòu),其特征在于,SIMD整數(shù)運(yùn)算單元可以同時(shí)兼容開 源精簡(jiǎn)指令集(RISC)架構(gòu)指令與新添加的SIMD指令,它由取指模塊,譯碼模塊,SIMD移位 模塊,SIMD算術(shù)邏輯運(yùn)算模塊,邏輯1計(jì)數(shù)模塊,數(shù)據(jù)前推模塊,數(shù)據(jù)獲取模塊,數(shù)據(jù)對(duì)齊模 塊組成;其中取指模塊根據(jù)發(fā)射的指令判斷是否取入下一條指令,當(dāng)流水線控制模塊要求插入空指 令或重復(fù)執(zhí)行上一條指令時(shí),取指模塊不接受下一條指令輸入;當(dāng)完成取值后,指令將流入 譯碼模塊;譯碼模塊根據(jù)指令編碼判斷為普通的RISC架構(gòu)指令或者為添加的SIMD運(yùn)算指 令,產(chǎn)生相應(yīng)的控制信號(hào);之后指令將流入數(shù)據(jù)運(yùn)算通路,根據(jù)指令和譯碼信號(hào)產(chǎn)生的結(jié)果 訪問適用于SIMD指令的擴(kuò)展寄存器文件單元取得操作數(shù),或者通過數(shù)據(jù)獲取模塊訪問內(nèi) 存獲得操作數(shù),之后通過SIMD算術(shù)邏輯運(yùn)算模塊、移位模塊、邏輯1計(jì)數(shù)模塊或者SIMD乘 除法模塊對(duì)數(shù)據(jù)進(jìn)行運(yùn)算;流水線控制單元和處理器異??刂茊卧鶕?jù)指令和譯碼模塊產(chǎn) 生的控制信號(hào),判斷指令的相關(guān)性和合法性,對(duì)指令流水線做相應(yīng)調(diào)整;數(shù)據(jù)的運(yùn)算結(jié)果通 過數(shù)據(jù)對(duì)齊模塊按照規(guī)范的存儲(chǔ)格式重新存放,然后根據(jù)指令寫入SIMD寄存器文件模塊 或者寫入內(nèi)存;最后,為了適用于多核互聯(lián),增添相應(yīng)的與多核網(wǎng)絡(luò)路由器通信的先入先出 隊(duì)列(FIFO)端口,并且將FIFO端口映射到擴(kuò)展的寄存器文件地址空間中,加快處理器與 FIFO通信的效率。
3.根據(jù)權(quán)利要求1所述的電路結(jié)構(gòu),其特征在于,SIMD算術(shù)邏輯運(yùn)算單元、乘除法運(yùn)算 單元和數(shù)據(jù)移位單元同時(shí)支持開源RISC架構(gòu)下乘除法運(yùn)算指令執(zhí)行,也支持新添加SIMD 指令的執(zhí)行;SIMD模式分為4比特,8比特,16比特和32比特四種位寬模式,其中32比特 模式為開源RISC架構(gòu)指令集運(yùn)算模式;在SIMD模式下,一個(gè)32比特的寄存器看做8個(gè)4比特子寄存器,或者4個(gè)8比特子寄存器,或者2個(gè)16比特子寄存器;SIMD指令利用已有 的32比特寄存器位寬,在不同位寬模式下將其看成多個(gè)特定位寬的數(shù)據(jù),實(shí)施單條指令對(duì) 多個(gè)數(shù)據(jù)的并行操作。除依據(jù)數(shù)據(jù)的位寬分類外,SIMD指令根據(jù)參與運(yùn)算數(shù)據(jù)邏輯關(guān)系,分為標(biāo)量_標(biāo)量模 式和向量-標(biāo)量模式;標(biāo)量_標(biāo)量模式下,在SIMD算術(shù)邏輯運(yùn)算單元、乘除法運(yùn)算單元和數(shù) 據(jù)移位單元中,數(shù)據(jù)根據(jù)對(duì)應(yīng)比特位確定邏輯關(guān)系參加運(yùn)算,為一對(duì)一的形式;在向量_標(biāo) 量模式下,數(shù)據(jù)的邏輯關(guān)系由指令顯式指定,實(shí)現(xiàn)多對(duì)一的運(yùn)算;同時(shí),配套增加向量-標(biāo) 量模式下的寄存器傳輸,數(shù)據(jù)訪問指令以及相應(yīng)的跳轉(zhuǎn)控制指令;此外,SIMD算術(shù)邏輯運(yùn)算單元、乘除法運(yùn)算單元采用可重構(gòu)設(shè)計(jì)方法,最大程度地復(fù)用 硬件,保證了靈活性的同時(shí)節(jié)省了硬件開銷。
4.根據(jù)權(quán)利要求1所述的電路結(jié)構(gòu),其特征在于,寄存器文件單元由開源RISC架構(gòu)下 的32個(gè)增加到64個(gè);其中第63號(hào)和第64號(hào)寄存器作為FIFO的映射端口 ;在開源RISC架 構(gòu)下,寄存器文件地址尋址域支持最多32個(gè)寄存器,因此采取映射表來實(shí)現(xiàn)32個(gè)虛寄存器 地址與64個(gè)實(shí)寄存器間的邏輯關(guān)系映射;通過顯式地通過指令配置映射表,實(shí)現(xiàn)虛實(shí)寄存 器間的映射關(guān)系切換;配置指令分為細(xì)粒度配置與粗粒度配置結(jié)合的方式;前者用以修改 單個(gè)虛寄存器映射關(guān)系,后者用以同時(shí)修改4組、8組、16組、32組虛寄存器的映射關(guān)系;通 過細(xì)粒度和粗粒度配置指令結(jié)合的方式,方便地配置虛實(shí)寄存器映射關(guān)系。
5.根據(jù)權(quán)利要求1所述的電路結(jié)構(gòu),其特征在于,流水線控制單元為面向SIMD指令的 控制邏輯,內(nèi)部采用實(shí)寄存器地址判斷相關(guān)性,實(shí)現(xiàn)對(duì)指令流水的正確控制,處理器異???制模塊負(fù)責(zé)開源RISC指令與SIMD指令中的指令異常,對(duì)及時(shí)給予處理。
6.根據(jù)權(quán)利要求1至5之一所述的電路結(jié)構(gòu),其特征在于SIMD處理器為面向眾核片 上網(wǎng)絡(luò)的新型架構(gòu),在擴(kuò)展寄存器文件地址中預(yù)留兩個(gè)寄存器地址作為FIFO的映射地址; FIFO為先入先出電路邏輯,負(fù)責(zé)跨時(shí)鐘域的數(shù)據(jù)交換;FIFO將處理器核與片上網(wǎng)絡(luò)路由器 相連,負(fù)責(zé)不同處理器核之間的數(shù)據(jù)收發(fā);將FIFO映射到寄存器地址空間中,以減少訪存 次數(shù),減少通過FIFO通信的延遲等待時(shí)間,提高處理器核之間的通信效率;另外,將FIFO的 讀口映射為第63號(hào)實(shí)寄存器,將FIFO的寫口映射為第64號(hào)實(shí)寄存器,通過調(diào)用寄存器地 址空間,以實(shí)現(xiàn)對(duì)FIFO的快捷訪問,減少FIFO通信開銷。
全文摘要
本發(fā)明屬于高性能并行計(jì)算處理器技術(shù)領(lǐng)域,具體為一種面向通信和多媒體應(yīng)用的單指令多數(shù)據(jù)處理器電路結(jié)構(gòu)。包括SIMD整數(shù)運(yùn)算單元、流水線控制單元、處理器異常控制單元、SIMD乘除法運(yùn)算單元和適用于SIMD運(yùn)算的擴(kuò)展寄存器文件單元。其中,SIMD整數(shù)運(yùn)算單元,在常規(guī)整數(shù)運(yùn)算單元基礎(chǔ)上增加SIMD相關(guān)數(shù)據(jù)通路,實(shí)現(xiàn)單條指令同時(shí)對(duì)多個(gè)數(shù)據(jù)進(jìn)行運(yùn)算;寄存器文件地址空間由32個(gè)擴(kuò)展到64個(gè),添加相應(yīng)的映射表配置映射關(guān)系,構(gòu)成適用于SIMD運(yùn)算的擴(kuò)展寄存器文件單元。本發(fā)明根據(jù)現(xiàn)有的開源精簡(jiǎn)指令集處理器架構(gòu),從SIMD角度挖掘指令內(nèi)部的并行性,提出了一套面向眾核片上網(wǎng)絡(luò)的處理器架構(gòu)。經(jīng)過驗(yàn)證,運(yùn)算效率顯著提升。
文檔編號(hào)G06F15/80GK101876892SQ201010179340
公開日2010年11月3日 申請(qǐng)日期2010年5月20日 優(yōu)先權(quán)日2010年5月20日
發(fā)明者曾曉洋, 權(quán)衡, 肖瑞瑾, 虞志益 申請(qǐng)人:復(fù)旦大學(xué)