新聞中心

        EEPW首頁 > 電源與新能源 > 設計應用 > 32位高性能嵌入式CPU中Load Aligner 模塊的設計與實現(圖)

        32位高性能嵌入式CPU中Load Aligner 模塊的設計與實現(圖)

        ——
        作者:同濟大學微電子中心 張書 王穎 林正浩 時間:2007-02-06 來源: 收藏
        摘 要:在cpu中,load aligner是dcache和數據通道之間的接口。從dcache中取出的數據只有通過load aligner重新排序,才能進入cpu的數據通道。本文討論了該cpu中load aligner 的設計與實現,其中主要是數據通道部分的邏輯設計和電路設計,并給出了相關結果。
        關鍵詞:load aligner;邏輯設計;電路設計;功能驗證;仿真 引言
         ---一般的,在cpu中,訪問寄存器比訪問主存速度要快。所以為了減少訪問存儲器而花的時間或延遲,mips4kc處理器采用了load/store設計。在cpu芯片上有許多寄存器,所有的操作都由存儲在寄存器里的操作數來完成,而主存只有通過load和store指令來訪問。這樣做不僅可以減少訪問主存的次數,有利于降低對主存儲器容量的要求,而且可以精簡指令集,有利于編譯人員優化寄存器分配。load aligner就是數據存儲器(dcache)和數據通道之間的接口。所以設計出性能優良的load aligner對提高cpu的整體性能是非常重要的。本文介紹了在一款32位cpu中load aligner模塊的設計與實現,其中主要是數據通道部分的設計和實現。

        設計目標
        ---本設計中,load aligner模塊要實現的指令有lb、lbu、lh、lhu、lw、lwl、lwr。cpu通過這些指令把從數據存儲器中取出來的數據重新排序,然后放進寄存器堆rf中,進入cpu的數據通道。表1是對這些指令的介紹。


        ---如果把從dcache中取出的一個32位的字表示成4字節:a、b、c、d,如表2所示。

        31-24/  23-16/  15-18/  7-0

        a       /     b    /  c     /   d
        ---那么經過上述指令操作后,這個字被重新排列的結果(即load aligner模塊的輸出,也用4字節來表示)見表3。
        ---表3中,s表示符號擴展,*表示這個字節上的寄存器中的數保持不變。不過在load aligner模塊,先將這些字節置0,在寄存器堆模塊再控制這些字節是否直接寫進寄存器。


        ---以上是load aligner模塊要實現的指令目標,另外由于此模塊是cpu關鍵路徑的一部分,因此數據通道部分最長時延不能超過0.7ns。
        邏輯設計
         ---分析比較經過上述指令后load aligner模塊的輸入輸出變化可以看出:輸入字的每一字節經過load aligner模塊后可以在輸出字的任意字節位置上。換言之,輸出字的每一字節都可以有a、b、c、d四種情況。所以需要一個8位的控制信號bit<7:0>來控制四個四選一的數據選擇器,稱為字節組合模塊,來獲得所需要的字節組合。不過,經過這個字節組合模塊選出來的4字節并不全是所需要的,還需要去掉冗余的字節或者進行符號擴展。因此需要有能夠產生符號擴展或者0擴展的模塊稱為符號產生模塊,然后把它的輸出和一個4位的控制信號mask<3:0>一起控制一組二選一數據選擇器,稱為輸出模塊,來獲得最后的排序結果。邏輯實現流程圖見圖1。


        ---以上是load aligner模塊數據通道部分的設計。它還需要有控制模塊來產生上述控制信號,此外由于任何一個控制信號都要驅動數據通道子模塊中的32個cell,所以還要有一個驅動模塊來使控制信號有足夠的驅動能力。由以上分析,整個load aligner模塊的框圖如圖2所示。其中,控制模塊采用自動布局布線生成,而驅動模塊和數據通道模塊均采用全定制設計。

        功能驗證
         ---對此模塊的rtl代碼和所設計的電路分別進行了功能驗證。設從dcache取出的32位數據用十六進制表示為aabbccdd,對表3中的所有指令進行測試。圖3所示的波形圖就是依次測試指令lw、lh00、lhu00、lh10、lhu10、lb00、lbu00、lb01、lbu01、lb10等的結果。可以看出,結果與表3完全吻合。說明所設計的電路滿足設計目標,可以實現所要求的所有指令。

        電路仿真
        ---根據圖1可以看出,從符號選擇信號sandz<4:0>到輸出的路徑為最長路徑,我們選取這條路徑進行仿真,并考慮在0.18μm時線電阻電容對時延的影響,用hspice確定了所需器件的尺寸。仿真結果如圖4所示。上升時時延為0.52ns,下降時時延為0.47ns,均滿足小于0.7ns 的要求。


        結論     
        ---在cpu中,load aligner模塊是dcache和數據通道之間的接口。從dcache中取出的數據只有通過load aligner模塊重新排序,才能進入cpu的數據通道。在設計中應用了自上而下的設計方法,所設計的電路實現了所有的指令,在時延上也達到了設計目標。

        參考文獻
        1 李學干.計算機系統結構.西安電子科技出版社.2000
        2 cmos circuit design, layout, and simulation. r. jacob baker and harry w. li and david e. boyce. the institute of electrical and electronics engineers, inc. new york. 1998
        3 digital logic circuit analysis & design, by n. p. nelson.1997



        關鍵詞: 模塊

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 庐江县| 彭阳县| 喜德县| 鄂托克旗| 安平县| 辛集市| 临猗县| 临澧县| 全州县| 仁布县| 抚顺市| 松原市| 北宁市| 金门县| 黄浦区| 鄂托克旗| 黄山市| 鸡西市| 图们市| 柳林县| 娱乐| 峨眉山市| 泰安市| 涟水县| 亚东县| 濮阳市| 朝阳县| 深圳市| 彰武县| 自治县| 黎城县| 淮阳县| 类乌齐县| 苍南县| 新兴县| 彭山县| 铜川市| 体育| 柳林县| 盐山县| 林口县|