《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 嵌入式DSP處理器μDSP的體系結(jié)構(gòu) 六級流水線設(shè)計與指令系統(tǒng)闡述

嵌入式DSP處理器μDSP的體系結(jié)構(gòu) 六級流水線設(shè)計與指令系統(tǒng)闡述

2020-11-29
來源:與非網(wǎng)
關(guān)鍵詞: DSP 處理器 嵌入式

  近年來,我國電子信息產(chǎn)業(yè)和市場高速增長,DSP 芯片產(chǎn)品需求量持續(xù)增大,雖然有一些集成電路設(shè)計企業(yè)從事 DSP 系統(tǒng)及相關(guān)產(chǎn)品的開發(fā)與應(yīng)用,但在 DSP 芯片的研發(fā)上,只在某些大學(xué)、科研院所做過預(yù)研性課題,還沒有形成自己的獨立知識產(chǎn)權(quán)的技術(shù),因此對 DSP 處理器的設(shè)計有不可估量的作用,而體系結(jié)構(gòu)的設(shè)計是處理器設(shè)計的靈魂,處理器的設(shè)計首先從體系結(jié)構(gòu)的設(shè)計開始,DSP 處理器的體系結(jié)構(gòu)一直緊緊圍繞著 DSP 算法和各種應(yīng)用的不斷發(fā)展而改進和優(yōu)化,隨著各種并行處理技術(shù)(VLIW,SIMD,超標量,多處理機等)、可重構(gòu)技術(shù)和低功耗體系結(jié)構(gòu)技術(shù)的出現(xiàn),使各種新的 DSP 處理器體系結(jié)構(gòu)不斷涌現(xiàn),使得如今的 DSP 處理器性能不斷提高,并使它們在通信、自動控制、雷達、氣象、導(dǎo)航、機器人等許多嵌入式實時領(lǐng)域得到了廣泛應(yīng)用。而這些領(lǐng)域都要求處理器是高速、低功耗的。因此我們在對當(dāng)前 DSP 體系結(jié)構(gòu)的最新發(fā)展的全面考察的基礎(chǔ)上,考慮到低功耗、低成本、高性能等要求,設(shè)計了一個 16 位嵌入式定點 DSP 處理器μDSP 的體系結(jié)構(gòu),如圖 1。

5fc0757ceba25-thumb.png

  下面就μDSP 的總線結(jié)構(gòu)、流水線設(shè)計、特殊的指令系統(tǒng)、尋址方式、強大的控制部件和高速的運算單元等幾個方面對μDSP 的體系結(jié)構(gòu)設(shè)計進行了詳細的闡述。

  1.改進型哈佛總線結(jié)構(gòu)

  由于 DSP 處理器主要應(yīng)用于各類數(shù)據(jù)運算,數(shù)據(jù)吞吐率都非常大。特別是進行乘累加運算時,需要 2 個甚至 3 個數(shù)據(jù)同時參與運算,傳統(tǒng)的馮?諾曼結(jié)構(gòu)無法滿足數(shù)據(jù)和指令存取的需求,所以,DSP 處理器普遍采用哈佛總線結(jié)構(gòu)。雖然哈佛結(jié)構(gòu)使用采取分開的程序存儲器和數(shù)據(jù)存儲器,以滿足同時存取數(shù)據(jù)和取指令的需求,但是這種結(jié)構(gòu)由于缺乏指令和數(shù)據(jù)存儲空間的靈活性,使得存儲器空間不能得到靈活、充分的使用。

  為進一步提高性能,μDSP 采用了改進的哈佛結(jié)構(gòu),在采用分開的程序存儲器和數(shù)據(jù)存儲器的同時,允許數(shù)據(jù)存儲在程序存儲器中,數(shù)據(jù)存儲器和程序存儲器統(tǒng)一編址。程序存儲器的大小為 32K*24bit(指令為 24 位寬),數(shù)據(jù)存儲器大小為 32K*16bit(數(shù)據(jù)位寬為 16)。

  采用 4 總線結(jié)構(gòu),這 4 條總線分別是程序地址總線(PMA)、程序數(shù)據(jù)總線(PMD),數(shù)據(jù)地址總線(DMA)、數(shù)據(jù)數(shù)據(jù)總線(DMD)。存儲器采用同步 SRAM,并采用流水線方式存取數(shù)據(jù)和指令,完成一次訪問需經(jīng)過兩級流水線。為進一步提高存取靈活性,程序總線既可以取指令,又可以存取數(shù)據(jù),既可訪問程序存儲器,又可以訪問數(shù)據(jù)存儲器。另外,為了減少存儲器的訪問周期,增加了一個片內(nèi)指令 Cache,用來存放常用的指令,Cache 的大小為 64*43bit,可存儲 64 個指令-地址對。指令 Cache 采用組相聯(lián)映射方式,并采取最近最少使用(LeastRecentlyUsed)替換策略。

  這種改進的哈佛結(jié)構(gòu)不僅提高了指令和數(shù)據(jù)存取的效率,還提高了存儲器的利用率,是一種比較好的結(jié)構(gòu)。

  2.六級流水線設(shè)計

  流水線設(shè)計是現(xiàn)代處理器設(shè)計的核心。流水線的設(shè)計要考慮諸多的因素,比如流水線各級的平衡、流水線的吞吐率以及流水線的結(jié)構(gòu)復(fù)雜度等方面,我們采用六級流水線設(shè)計,每一級的名稱及需要完成的如下功能:

  (1)Look-AheadAddress(LA):這一階段程序控制器從各個地址來源中選出本時鐘進入流水線的指令的地址,把指令地址放在 PMA 總線上,它也用于解決總線沖突問題。因為 PMA 總線可能同時被 LA 和 AD 兩個階段使用,這時總線發(fā)生沖突,程序控制器就查找這條指令是否在 Cache 里。如果命中(Hit),指令就從 Cache 中提前取出,使得 AD 可以使用總線;如果不命中(Miss),就讓 AD 優(yōu)先使用總線,程序控制器在下一個周期得到 PMA 總線。

 ?。?)PrefetchAddress(PA):這一階段把指令地址送到存儲器,開始取指令。由于使用的是同步兩級流水 SRAM,這一階段指令并沒有馬上被取出,要到下一周期結(jié)束時才完成取指過程。

 ?。?)FetchAddress(FA):這一階段指令通過 PMD 總線從存儲器取出。因為存儲器需要兩個周期的時間完成訪問,即從地址放在總線上到得到數(shù)據(jù)需要兩個周期,所以上一周期開始的取指令到這個周期結(jié)束。

 ?。?)AddressDecode(AD):指令的某些部分被譯碼,比如 DAG 操作。如果指令需要存儲器數(shù)據(jù),這個數(shù)據(jù)的地址就放在適當(dāng)?shù)牡刂房偩€上。同時將沒有解碼的部分送到下一級。

  (5)InstrucTIonDecode(ID):這個階段對指令的其余部分譯碼。同時也用于等待存儲器訪問,由于取數(shù)據(jù)同樣要兩個周期。

 ?。?)Execute(PC):這一階段執(zhí)行指令,設(shè)置各狀態(tài)標志位,并把結(jié)果寫到適當(dāng)?shù)募拇嫫髦小?/p>

  3.特殊的指令系統(tǒng)

  處理器的設(shè)計首先從指令系統(tǒng)設(shè)計開始,不同的指令系統(tǒng)也決定了不同的處理器結(jié)構(gòu)設(shè)計,μDSP 的指令系統(tǒng)非常豐富,可以完成各種 DSP 算法所要求的功能,大體來說,需要設(shè)計以下 4 大類指令:程序流控制指令,數(shù)據(jù)移動指令,運算指令和多功能指令。必須滿足以下要求:

 ?。?)24 位指令寬度;

 ?。?)高密度指令編碼;

 ?。?)提供多功能指令,使得一條指令可完成多個操作;

 ?。?)支持雙字指令;

 ?。?)提供零開銷循環(huán)指令;

 ?。?)與主流 DSP(ADI 公司的 ADSP219x 系列)兼容。

  4.靈活的尋址方式

  由于 DSP 算法的獨特性,一般通用處理器的普通尋址方式不能滿足要求,所以 DSP 處理器一般采用許多特殊的、靈活的尋址方式。μDSP 中主要有 6 種尋址方式:直接尋址、前變址尋址、后變址尋址、循環(huán)尋址、位反尋址、分頁尋址。要實現(xiàn)這些尋址方式,設(shè)計了一個數(shù)據(jù)地址發(fā)生器(DAG),如下圖 2,考慮到μDSP 可以同時對程序存儲器和數(shù)據(jù)存儲器進行訪問,設(shè)計了兩個 DAG,它們的不同之處在于:DAG1 只能產(chǎn)生數(shù)據(jù)存儲器地址,但有位反功能;DAG2 可以產(chǎn)生數(shù)據(jù)存儲器地址也可以產(chǎn)生程序存儲器的地址,但是沒有位反功能。它有 4 個寄存器組:索引寄存器組(IRegisters)、修改寄存器組(MRegisters),長度寄存器組(LRegisters)和基址寄存器組(BRegisters)。每個寄存器組有 4 個 16 位的寄存器,可以通過 DMD 總線進行讀寫。I 寄存器組存放訪問存儲器的實際地址,M 寄存器組用于保存地址偏移量,L 寄存器組和 B 寄存器組則是專門用于循環(huán)尋址的,前者保存循環(huán)尋址中數(shù)據(jù)塊的長度,后者保存循環(huán)尋址的首地址。圖中虛線框中部分為 DAG1 所獨有。

5fc0757cebd0c-thumb.png

  5.強大的控制部件

  控制部件是完成整個 DSP 處理器各個部分之間協(xié)調(diào)工作的重要部件??刂撇考饕撠?zé)指令地址的產(chǎn)生、流水線的控制以及處理各種相關(guān)、異常、中斷等工作,以保證數(shù)據(jù)通路的正常工作??刂撇考娜蝿?wù)是非常艱巨的,沒有一個功能強大的控制部件,整個 DSP 處理器將無法正常工作。μDSP 的控制部件按照功能可以大致分為指令地址選擇邏輯、流水線控制邏輯、循環(huán)控制邏輯和中斷控制器等幾部分。

  6.高速的運算單元

  運算單元是 DSP 處理器的執(zhí)行部件,是實現(xiàn)各種 DSP 算法的核心部分。所有算法的實現(xiàn)都是由運算單元的基本功能組合而成,所有的其他部件如控制部件、數(shù)據(jù)通路都是為運算單元服務(wù)的,為運算單元提供各種控制和充分的數(shù)據(jù)。μDSP 有 3 個功能強大的高速運算單元:算術(shù)邏輯單元(ALU),乘法累加單元(MAC),移位器(Shifter)。

  處理器的設(shè)計是一個非常復(fù)雜的工作,體系結(jié)構(gòu)的設(shè)計是處理器設(shè)計的靈魂,設(shè)計者面臨的任務(wù)非常復(fù)雜,要確定處理器的應(yīng)用目標,針對應(yīng)用目標需求判斷哪些特征是最重要的,然后在不超出成本的范圍內(nèi)力求性能最高。

  本文的創(chuàng)新點:主要對μDSP 的體系結(jié)構(gòu)設(shè)計進行了詳細的闡述,對哈佛總線結(jié)構(gòu)進行了改進,定義了六級流水線的名稱和功能,指出了特殊的指令系統(tǒng)應(yīng)達到的要求,給出了μDSP 的體系結(jié)構(gòu)的結(jié)構(gòu)圖,并詳細介紹了一個數(shù)據(jù)地址發(fā)生器的設(shè)計等。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。