• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于32位CPU中Load Aligner模塊數據通道的設計與實現

    基于32位CPU中Load Aligner模塊數據通道的設計與實現

    作者: 時間:2012-04-08 來源:網絡 收藏

     在中,訪問寄存器比訪問主存速度要快。所以為了減少訪問存儲器而花的時間或延遲,MIPS4KC處理器采用了/Store。在芯片上有許多寄存器,所有的操作都由存儲在寄存器里的操作數來完成,而主存只有通過和Store指令來訪問。這樣做不僅可以減少訪問主存的次數,有利于降低對主存儲器容量的要求,而且可以精簡指令集,有利于編譯人員優化寄存器分配。 就是存儲器(DCACHE)和之間的接口。所以出性能優良的Load 對提高的整體性能是非常重要的。本文介紹了在一款CPU中Load ,其中主要是部分的設計和

    本文引用地址:http://www.czjhyjcfj.com/article/149270.htm

      設計目標

      本設計中,Load Aligner的指令有LB、LBU、LH、LHU、LW、LWL、LWR。CPU通過這些指令把從數據存儲器中取出來的數據重新排序,然后放進寄存器堆RF中,進入CPU的數據。表1是對這些指令的介紹。

      如果把從DCACHE中取出的一個的字表示成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位的控制信號Bit7:0>來控制四個四選一的數據選擇器,稱為字節組合模塊,來獲得所需要的字節組合。不過,經過這個字節組合模塊選出來的4字節并不全是所需要的,還需要去掉冗余的字節或者進行符號擴展。因此需要有能夠產生符號擴展或者0擴展的模塊稱為符號產生模塊,然后把它的輸出和一個4位的控制信號Mask3:0>一起控制一組二選一數據選擇器,稱為輸出模塊,來獲得最后的排序結果。邏輯實現流程圖見圖1。

    電子血壓計相關文章:電子血壓計原理



    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 曲松县| 银川市| 耿马| 肃宁县| 通道| 无为县| 临颍县| 青川县| 博乐市| 安义县| 崇信县| 祁门县| 海丰县| 黄龙县| 永新县| 湟源县| 泸西县| 新源县| 云浮市| 洛浦县| 日照市| 东丽区| 惠州市| 根河市| 呼玛县| 乌鲁木齐市| 吴旗县| 河曲县| 南充市| 德庆县| 北海市| 长岭县| 广汉市| 瓦房店市| 武安市| 尼勒克县| 佛山市| 布拖县| 望都县| 四川省| 渭源县|