在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

誰說中國不能做CPU?大一生驚爆你眼球

454398 ? 來源:百度貼吧 ? 作者:edwd2 ? 2014-12-16 15:51 ? 次閱讀

目前只完成了設計概念和硬件描述,支持部分常用32位MIPS指令(ADD, SUB, LW, SW等)。硬件描述用的是SystemVerilog語言,生成軟件Synplify 9.6.2。昨天我測試了執行單元和指令控制單元,這兩個主要的組件沒大問題,剩下的不敢保證。別抱太大期望,大一計算機工程學生能力有限。下圖是中央處理器寄存器傳輸層的簡化設計概念。

誰說中國不能做CPU?大一生驚爆你眼球

數據路徑的部分單元改造自Harris & Harris的教材“Digital Design and Computer Architecture“的微架構例子。為了方便,我們假設內存分為數據內存和指令內存。可見CPU擁有常規的5級流水線(Instruction Fetch, Instruction Decode, Execute, Memory, Write Back),并有兩份數據路徑,因此超純量,理想化下每周期可同時執行10個指令。


藍線圈的是流水線的執行組件。

誰說中國不能做CPU?大一生驚爆你眼球

紅線圈的是數據路徑,兩個完全相同

誰說中國不能做CPU?大一生驚爆你眼球

在HDL中,我將命名兩個運行指令為I0和I1或Instr0和Instr1,PC為PC0和PC1,下周期PC為PC0F,PC1F。

CPU的完整硬件生成:

誰說中國不能做CPU?大一生驚爆你眼球

我的設計中最有趣(也是最難完成)的部分是名為IFHU(Instruction Flow and Hazard Unit)的指令流動及數據冒險控制單元。

誰說中國不能做CPU?大一生驚爆你眼球

原稿:


它內置了一個小型三級流水線,目的就是為了儲存(如果存在)指令的RD(Destination Register),Register File的目標地址。地址在IFHU內的流動模擬了真正指令在處理器流水線的執行完成度,因此每次PC從指令內存讀出對應指令后,指令如果是BEQ,R- Type或I-Type,他們的根寄存器的地址(RS,RT)將于存在于IFHU流水線內的RD做對比,如果有相同地址代表會出現數據冒險。這些結果會輸出到IFU(Instruction Flow Unit),指令控制單元,它按照以下原理決定最終指令是否為空指令以及下周期PC的值:

1. I0和I1正常:執行兩個指令,PC0,PC1 + 8

2. I1出現跳躍,分支,或數據冒險:執行I0,PC0 = PC1,PC1 + 4

3. I0出現數據冒險:不執行,PC都不變

4. I0出現跳躍或分支:內部執行,PC0為預測或跳躍后PC,PC1 = PC0 + 4

不出錯的話PC1應該永遠等于PC0。

下面是IFU:

誰說中國不能做CPU?大一生驚爆你的眼球

IFHURegSelect:

誰說中國不能做CPU?大一生驚爆你的眼球

IFHUXORComp:

誰說中國不能做CPU?大一生驚爆你的眼球


IFHU的另一個重要的組件是一個簡單的2位分支預測器。目前我的CPU只支持BEQ(Branch on Equal)這一個分支指令,不過剩下的也都是這一個來的。這是分支預測器FSM:

誰說中國不能做CPU?大一生驚爆你的眼球

設三個狀態位元為S2S1S0。主要狀態Predict Taken,Weak Not Taken,和Strong Not Taken分別有自己的子狀態In Progress,In Progress表示已做預測,不知結果,在這個狀態下不會再做預測,確保流水線最多執行一個分支預測。根據上面的FSM,可得出一個下個狀態的真值表:

誰說中國不能做CPU?大一生驚爆你的眼球

分支預測器將先把兩個可能的PC存進FF,然后使用預測的方向(S1)選擇預測PC。同時一個相反方向的電路(~S1)將選擇相反的PC,最終由BRsuccess(預測是否成功)來選擇最終輸出到IFU。


誰說中國不能做CPU?大一生驚爆你的眼球

接下來的指令解碼流程就比較直接了。MIPS指令需要讀取的寄存器地址直接輸進32x32位的寄存器,結果讀到RDXX。從這里起,將會有兩個數據路徑以及兩個控制單元。

誰說中國不能做CPU?大一生驚爆你的眼球

寄存器或許也同時要儲存四個周期前的指令的計算結果或內存數據,WA[4:0]是寫入地址,WD[31:0]是寫入內容,寄存器的CLK依然和處理器同步但 FF在Falling Edge更換,保持同周期完成。SigExt是Sign Extend的縮寫,它負責把指令的Immediate從16位擴到32位。

32x32位的寄存器矩陣:

誰說中國不能做CPU?大一生驚爆你的眼球

控制單元:

誰說中國不能做CPU?大一生驚爆你的眼球

執行單元的輸出ALUcontrol控制ALU的功能:

誰說中國不能做CPU?大一生驚爆你的眼球

RegWrite和MemWrite控制寄存器和內存是否寫入,RISel控制執行單元ALU的第二個輸入使用寄存器內容還是Imm。這些控制電路會如數據電路往流水線的下一個階段進行。


接下來是 EU(Execution Unit),執行單元。EU以目前支持的指令來看,只需要一個多功能ALU,以后可以加一個FPU和支持SIMD擴展的計算單元。另外RD1讀出的內容直接接到WriteData邏輯,在SW指令里,這個將直接寫入數據內存。RegAddr是R-Type或I-Type指令的Write Back地址,因為地址在這兩類指令里的位置不一樣,控制單元根據OPCode輸出的RISel邏輯會選擇對應的地址

R-Type:0000 00ss ssst tttt ddddd000 0010 0101 (Write Back地址為d)

I-Type:1000 11ss ssst ttttiiii iiii iiii iiii (Write Back地址為t)

誰說中國不能做CPU?大一生驚爆你的眼球

ALU的設計很簡單,控制單元根據Funct輸出的ALUcontrol[1:0]控制ALU的功能。現在只需要ADD,SUB,AND,OR。我這里懶省事了,本來想自己寫個Carry Look-Ahead Adder但是時間來不及,直接用SV的“+”了。
誰說中國不能做CPU?大一生驚爆你的眼球

誰說中國不能做CPU?大一生驚爆你的眼球

這是用ModelSim測試EU的結果:

誰說中國不能做CPU?大一生驚爆你的眼球

誰說中國不能做CPU?大一生驚爆你的眼球

誰說中國不能做CPU?大一生驚爆你的眼球

結果都正確。


接下來測一下IFHU,我用以下六個指令

誰說中國不能做CPU?大一生驚爆你的眼球

如果正常的話,IFHU應該并行執行指令1和2,到第二個周期,指令4有冒險,因此IFHU應該只執行指令3,并繼續讀取指令4和5,這兩個都依然有冒險,所以在第三周期PC不變。

匯編器的結果:

誰說中國不能做CPU?大一生驚爆你的眼球

ModelSIm運行指令:(完全列出來)

誰說中國不能做CPU?大一生驚爆你的眼球

結果:

誰說中國不能做CPU?大一生驚爆你的眼球

細看一下第一周期的結果:

誰說中國不能做CPU?大一生驚爆你的眼球

可見兩個指令都順利通過,PC都加8

第二周期:

這里的I1F為0開頭,代表空指令,PC0 = PC1,而PC1 = PC1 + 4

第三周期:

誰說中國不能做CPU?大一生驚爆你的眼球

兩個指令都成空指令,PC也不變,根預料的一樣。目前IFHU未發現大問題,指令流動正常。


剩下的就不多說了,MEM和WB都很直接。如果不是馬上要考期末了,我會再加點指令,再仔細測測所有單元。本來還想來個亂序執行設計,再放個寄存器重命名單元和保留站,但現在的能力有限,我想先讀幾本更深的教材。接下來我把幾個主要Module的描述發出來。

誰說中國不能做CPU?大一生驚爆你的眼球

誰說中國不能做CPU?大一生驚爆你的眼球

誰說中國不能做CPU?大一生驚爆你的眼球
誰說中國不能做CPU?大一生驚爆你的眼球

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10873

    瀏覽量

    212020
  • MIPS32架構
    +關注

    關注

    0

    文章

    1

    瀏覽量

    4477
收藏 人收藏

    評論

    相關推薦

    TPA3116主板開關機音怎么消除?

    原理圖是按TI官方PDF資料設計的,GAIN=32db,輸入電容4.7UF,主板電源接口是DC-005插座,外置通電的電源適配器插頭插到主板DC005插座時,喇叭有很大的音,取下電源插頭時也會有音(比通電音小
    發表于 11-01 06:56

    LMH6703不能做差分放大嗎?

    用LMH6703放大一個差分信號,用TINA做的仿真.將兩個全差分放大器得來的輸入信號變成單端的,A=1 這是兩個輸入信號,相位相反,幅值相同. 但最后結果卻不是幅值為2,DC=0的正弦. 為什么呢?LMH6703不能做差分放大么??
    發表于 09-20 16:07

    大功率貼片電感的電感值偏大一點可以用嗎

    電子發燒友網站提供《大功率貼片電感的電感值偏大一點可以用嗎.docx》資料免費下載
    發表于 09-20 11:33 ?0次下載

    中國智能汽車騰飛,為什么異構算力是第一生產力?

    智能時代的“世紀之車”,異構算力是第驅動力
    的頭像 發表于 09-14 10:32 ?3724次閱讀
    <b class='flag-5'>中國</b>智能汽車騰飛,為什么異構算力是第<b class='flag-5'>一生</b>產力?

    LMH6601是不是跨導型,能不能做峰值保持電路呢?

    我想做個峰值保持電路,跨導型的查到了4個放大器,但是我感覺LMH6601不像是跨導型。有哪位比較懂的幫忙看下數據手冊,LMH6601是不是跨導型,能不能做峰值保持電路呢?
    發表于 09-09 06:17

    OPA4170不能做比較器用嗎?

    Pin2、5不是應該和Pin8電壓相同嗎?Pin3應該是+8V左右,Pin6應該是-8V左右嗎?難道運放輸入端內部并非虛斷?我換了TL074之后測得數據就是想要的結果了,難道OPA4170不能做比較器用嗎?疑問多多,求指點。
    發表于 09-03 07:17

    使用AD8001放大一個100mv左右的信號,經過放大的信號低電平都是三點幾伏,不能夠從零開始,為什么?

    請問,如圖我想使用AD8001放大一個100mv左右的信號,然后使用比較器輸出信號進行計數,但是現在經過放大的信號低電平都是三點幾伏,不能夠從零開始,請問這是什么原因呢?如圖,紅色是需要放大的信號,紫色是經過放大的信號。
    發表于 08-20 06:17

    人類歷史上首屆AI選美,誰吃到了第波AI審美紅利?

    美,是第一生產力,甚至還有紅利
    的頭像 發表于 07-25 12:47 ?2412次閱讀
    人類歷史上首屆AI選美,誰吃到了第<b class='flag-5'>一</b>波AI審美紅利?

    RT-Thread宣布認可“一生芯”計劃CBAS新認證體系,獲認證同學自動獲得開源實習聯合培養工程的實習OFFER

    RT-Thread作為甲辰計劃開源實習聯合招聘培養單位,即日起接受“一生芯”計劃認證體系。歡迎童鞋們通過甲辰計劃投遞簡歷!在7月14日舉行的“一生
    的頭像 發表于 07-18 08:35 ?565次閱讀
    RT-Thread宣布認可“<b class='flag-5'>一生</b><b class='flag-5'>一</b>芯”計劃CBAS新認證體系,獲認證同學自動獲得開源實習<b class='flag-5'>生</b>聯合培養工程的實習OFFER

    2024“一生芯”暑期宣講會圓滿成功

    2024年7月14日,“一生芯”暑期宣講會如期而至。為了能夠讓更多的學生、工程師和愛好者更深入了解“一生芯”計劃,今年的“一生
    的頭像 發表于 07-17 08:37 ?1142次閱讀
    2024“<b class='flag-5'>一生</b><b class='flag-5'>一</b>芯”暑期宣講會圓滿成功

    矽速科技宣布認可“一生芯”計劃CBAS新認證體系,獲認證同學自動獲得開源實習聯合培養工程的實習OF

    矽速科技作為甲辰計劃開源實習聯合招聘培養單位,即日起接受“一生芯”計劃認證體系。歡迎童鞋們通過甲辰計劃投遞簡歷!在7月14日舉行的“一生
    的頭像 發表于 07-17 08:34 ?1018次閱讀
    矽速科技宣布認可“<b class='flag-5'>一生</b><b class='flag-5'>一</b>芯”計劃CBAS新認證體系,獲認證同學自動獲得開源實習<b class='flag-5'>生</b>聯合培養工程的實習OF

    一生芯”廈門基地正式啟動

    一生芯”專注培養處理器芯片及計算機系統人才,提升同學們的“計算機軟硬件系統協同設計能力”和“芯片全鏈條設計能力”,堅持開放性和公益性,不限學校、專業和年級,均可免費報名和學習(可零基礎),支持
    的頭像 發表于 07-11 08:37 ?1968次閱讀
    “<b class='flag-5'>一生</b><b class='flag-5'>一</b>芯”廈門基地正式啟動

    外接高級定時器1的剎車引腳后,STM32中能不能做濾波?

    請問下外接高級定時器1的剎車引腳后,STM32中能不能做濾波,因為這個剎車功能旦觸發就直接關閉PWM波了,要是因為噪聲等干擾意外觸發,整個控制都關閉了,還有PWM是在剎車的中斷服務函數執行前關閉,還是執行后關閉呢?如果是在執行后關閉,可以在這里做軟件濾波嗎
    發表于 07-02 08:04

    用DAVE生成的1302 ADC移植到MDK不能做AD轉換是怎么回事?

    ( ADC_MEASUREMENT_0)這個函數啟動,始終不能做AD轉換,請問還需要進行什么設置?附件是用DAVE生成的工程和拷貝到MDK的工程
    發表于 05-20 08:24

    [技術干貨]?SunoV3 秒款歌曲!如何快速下載

    方案介紹 隨著 AI 的迅速發展,音樂 ChatGPT 時刻到來臨,通過 Suno V3 秒款歌曲,僅用幾秒的時間,便可以創作出 2 分鐘的完整歌曲。該文檔為您提供了個 Suno 音樂下載站
    的頭像 發表于 04-07 15:08 ?884次閱讀
    [技術干貨]?SunoV3 秒<b class='flag-5'>生</b><b class='flag-5'>爆</b>款歌曲!如何快速下載
    主站蜘蛛池模板: 黄视频网站观看| 黄色的视频网站在线观看| 国内自拍网红在综合图区| 色网站综合| 在线国产你懂的| 欧美日韩一区二区三区毛片| 成人剧场| 久久亚洲精选| 亚洲码欧美码一区二区三区| 99成人| 在线欧美色| 欧美区亚洲区| 一区二区三区视频在线观看| 黄色大片视频网站| 中文字幕一区2区| 亚洲成人网页| 国产午夜毛片一区二区三区| 免费中国jlzzjlzz在线播放| 女人被两根一起进3p在线观看| 国产女乱淫真高清免费视频 | 亚洲午夜一级毛片| 中文天堂网在线www| 鸥美三级| 黄 色 录像成 人播放免费| 黄色三级在线观看| 777色狠狠一区二区三区香蕉| 午夜爱爱毛片xxxx视频免费看| 天天在线综合网| 成人精品在线观看| 天天射天天干天天| 国产香蕉98碰碰久久人人| 影院在线观看免费| 国产在播放一区| 色综合天天综合网国产成人网| 欧美性喷潮| ww欧洲ww在线视频看| 国产女人在线观看| 奇米888在线看奇米999| semimi亚洲综合在线观看| 国产成人精品一区| 伊人网大香|