嵌入式DSP處理器μDSP的體系結構設計
近年來(lái),我國電子信息產(chǎn)業(yè)和市場(chǎng)高速增長(cháng),DSP芯片產(chǎn)品需求量持續增大,雖然有一些集成電路設計企業(yè)從事DSP系統及相關(guān)產(chǎn)品的開(kāi)發(fā)與應用,但在DSP芯片的研發(fā)上,只在某些大學(xué)、科研院所做過(guò)預研性課題,還沒(méi)有形成自己的獨立知識產(chǎn)權的技術(shù),因此對DSP處理器的設計有不可估量的作用,而體系結構的設計是處理器設計的靈魂,處理器的設計首先從體系結構的設計開(kāi)始,DSP處理器的體系結構一直緊緊圍繞著(zhù)DSP算法和各種應用的不斷發(fā)展而改進(jìn)和優(yōu)化,隨著(zhù)各種并行處理技術(shù)(VLIW,SIMD,超標量,多處理機等)、可重構技術(shù)和低功耗體系結構技術(shù)的出現,使各種新的DSP處理器體系結構不斷涌現,使得如今的DSP處理器性能不斷提高,并使它們在通信、自動(dòng)控制、雷達、氣象、導航、機器人等許多嵌入式實(shí)時(shí)領(lǐng)域得到了廣泛應用。而這些領(lǐng)域都要求處理器是高速、低功耗的。因此我們在對當前DSP體系結構的最新發(fā)展的全面考察的基礎上,考慮到低功耗、低成本、高性能等要求,設計了一個(gè)16位嵌入式定點(diǎn)DSP處理器μDSP的體系結構,如圖1。
下面就μDSP的總線(xiàn)結構、流水線(xiàn)設計、特殊的指令系統、尋址方式、強大的控制部件和高速的運算單元等幾個(gè)方面對μDSP的體系結構設計進(jìn)行了詳細的闡述。
1.改進(jìn)型哈佛總線(xiàn)結構
由于DSP處理器主要應用于各類(lèi)數據運算,數據吞吐率都非常大。特別是進(jìn)行乘累加運算時(shí),需要2個(gè)甚至3個(gè)數據同時(shí)參與運算,傳統的馮?諾曼結構無(wú)法滿(mǎn)足數據和指令存取的需求,所以,DSP處理器普遍采用哈佛總線(xiàn)結構。雖然哈佛結構使用采取分開(kāi)的程序存儲器和數據存儲器,以滿(mǎn)足同時(shí)存取數據和取指令的需求,但是這種結構由于缺乏指令和數據存儲空間的靈活性,使得存儲器空間不能得到靈活、充分的使用。
為進(jìn)一步提高性能,μDSP采用了改進(jìn)的哈佛結構,在采用分開(kāi)的程序存儲器和數據存儲器的同時(shí),允許數據存儲在程序存儲器中,數據存儲器和程序存儲器統一編址。程序存儲器的大小為32K*24bit(指令為24位寬),數據存儲器大小為32K*16bit(數據位寬為16)。
采用4總線(xiàn)結構,這4條總線(xiàn)分別是程序地址總線(xiàn)(PMA)、程序數據總線(xiàn)(PMD),數據地址總線(xiàn)(DMA)、數據數據總線(xiàn)(DMD)。存儲器采用同步SRAM,并采用流水線(xiàn)方式存取數據和指令,完成一次訪(fǎng)問(wèn)需經(jīng)過(guò)兩級流水線(xiàn)。為進(jìn)一步提高存取靈活性,程序總線(xiàn)既可以取指令,又可以存取數據,既可訪(fǎng)問(wèn)程序存儲器,又可以訪(fǎng)問(wèn)數據存儲器。另外,為了減少存儲器的訪(fǎng)問(wèn)周期,增加了一個(gè)片內指令Cache,用來(lái)存放常用的指令,Cache的大小為64*43bit,可存儲64個(gè)指令-地址對。指令Cache采用組相聯(lián)映射方式,并采取最近最少使用(Least Recently Used)替換策略。
這種改進(jìn)的哈佛結構不僅提高了指令和數據存取的效率,還提高了存儲器的利用率,是一種比較好的結構。
2.六級流水線(xiàn)設計
流水線(xiàn)設計是現代處理器設計的核心。流水線(xiàn)的設計要考慮諸多的因素,比如流水線(xiàn)各級的平衡、流水線(xiàn)的吞吐率以及流水線(xiàn)的結構復雜度等方面,我們采用六級流水線(xiàn)設計,每一級的名稱(chēng)及需要完成的如下功能:
(1)Look-Ahead Address (LA):這一階段程序控制器從各個(gè)地址來(lái)源中選出本時(shí)鐘進(jìn)入流水線(xiàn)的指令的地址,把指令地址放在PMA總線(xiàn)上,它也用于解決總線(xiàn)沖突問(wèn)題。因為PMA總線(xiàn)可能同時(shí)被LA和AD兩個(gè)階段使用,這時(shí)總線(xiàn)發(fā)生沖突,程序控制器就查找這條指令是否在Cache里。如果命中(Hit),指令就從Cache中提前取出,使得AD可以使用總線(xiàn);如果不命中(Miss),就讓AD優(yōu)先使用總線(xiàn),程序控制器在下一個(gè)周期得到PMA總線(xiàn)。
(2)Prefetch Address (PA):這一階段把指令地址送到存儲器,開(kāi)始取指令。由于使用的是同步兩級流水SRAM,這一階段指令并沒(méi)有馬上被取出,要到下一周期結束時(shí)才完成取指過(guò)程。
(3)Fetch Address (FA):這一階段指令通過(guò)PMD總線(xiàn)從存儲器取出。因為存儲器需要兩個(gè)周期的時(shí)間完成訪(fǎng)問(wèn),即從地址放在總線(xiàn)上到得到數據需要兩個(gè)周期,所以上一周期開(kāi)始的取指令到這個(gè)周期結束。
(4)Address Decode (AD):指令的某些部分被譯碼,比如DAG操作。如果指令需要存儲器數據,這個(gè)數據的地址就放在適當的地址總線(xiàn)上。同時(shí)將沒(méi)有解碼的部分送到下一級。
(5)Instruction Decode (ID):這個(gè)階段對指令的其余部分譯碼。同時(shí)也用于等待存儲器訪(fǎng)問(wèn),由于取數據同樣要兩個(gè)周期。
(6)Execute (PC):這一階段執行指令,設置各狀態(tài)標志位,并把結果寫(xiě)到適當的寄存器中。
3.特殊的指令系統
處理器的設計首先從指令系統設計開(kāi)始,不同的指令系統也決定了不同的處理器結構設計,μDSP的指令系統非常豐富,可以完成各種DSP算法所要求的功能,大體來(lái)說(shuō),需要設計以下4大類(lèi)指令:程序流控制指令,數據移動(dòng)指令,運算指令和多功能指令。必須滿(mǎn)足以下要求:
(1)24位指令寬度;
(2)高密度指令編碼;
(3)提供多功能指令,使得一條指令可完成多個(gè)操作;
(4)支持雙字指令;
(5)提供零開(kāi)銷(xiāo)循環(huán)指令;
(6)與主流DSP(ADI公司的ADSP219x系列)兼容。
4.靈活的尋址方式
由于DSP算法的獨特性,一般通用處理器的普通尋址方式不能滿(mǎn)足要求,所以DSP處理器一般采用許多特殊的、靈活的尋址方式。μDSP中主要有6種尋址方式:直接尋址、前變址尋址、后變址尋址、循環(huán)尋址、位反尋址、分頁(yè)尋址。要實(shí)現這些尋址方式,設計了一個(gè)數據地址發(fā)生器(DAG),如下圖2,考慮到μDSP可以同時(shí)對程序存儲器和數據存儲器進(jìn)行訪(fǎng)問(wèn),設計了兩個(gè)DAG,它們的不同之處在于:DAG1只能產(chǎn)生數據存儲器地址,但有位反功能;DAG2可以產(chǎn)生數據存儲器地址也可以產(chǎn)生程序存儲器的地址,但是沒(méi)有位反功能。它有4個(gè)寄存器組:索引寄存器組(I Registers)、修改寄存器組(M Registers),長(cháng)度寄存器組(L Registers)和基址寄存器組(B Registers)。每個(gè)寄存器組有4個(gè)16位的寄存器,可以通過(guò)DMD總線(xiàn)進(jìn)行讀寫(xiě)。I寄存器組存放訪(fǎng)問(wèn)存儲器的實(shí)際地址,M寄存器組用于保存地址偏移量,L寄存器組和B寄存器組則是專(zhuān)門(mén)用于循環(huán)尋址的,前者保存循環(huán)尋址中數據塊的長(cháng)度,后者保存循環(huán)尋址的首地址。圖中虛線(xiàn)框中部分為DAG1所獨有。
5.強大的控制部件
控制部件是完成整個(gè)DSP處理器各個(gè)部分之間協(xié)調工作的重要部件??刂撇考饕撠熤噶畹刂返漠a(chǎn)生、流水線(xiàn)的控制以及處理各種相關(guān)、異常、中斷等工作,以保證數據通路的正常工作??刂撇考娜蝿?wù)是非常艱巨的,沒(méi)有一個(gè)功能強大的控制部件,整個(gè)DSP處理器將無(wú)法正常工作。μDSP的控制部件按照功能可以大致分為指令地址選擇邏輯、流水線(xiàn)控制邏輯、循環(huán)控制邏輯和中斷控制器等幾部分。
6.高速的運算單元
運算單元是DSP處理器的執行部件,是實(shí)現各種DSP算法的核心部分。所有算法的實(shí)現都是由運算單元的基本功能組合而成,所有的其他部件如控制部件、數據通路都是為運算單元服務(wù)的,為運算單元提供各種控制和充分的數據。μDSP有3個(gè)功能強大的高速運算單元:算術(shù)邏輯單元(ALU),乘法累加單元(MAC),移位器(Shifter)。
處理器的設計是一個(gè)非常復雜的工作,體系結構的設計是處理器設計的靈魂,設計者面臨的任務(wù)非常復雜,要確定處理器的應用目標,針對應用目標需求判斷哪些特征是最重要的,然后在不超出成本的范圍內力求性能最高。
本文的創(chuàng )新點(diǎn):主要對μDSP的體系結構設計進(jìn)行了詳細的闡述,對哈佛總線(xiàn)結構進(jìn)行了改進(jìn),定義了六級流水線(xiàn)的名稱(chēng)和功能,指出了特殊的指令系統應達到的要求,給出了μDSP的體系結構的結構圖,并詳細介紹了一個(gè)數據地址發(fā)生器的設計等。
評論