一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你眼球

454398 ? 來(lái)源:百度貼吧 ? 作者:edwd2 ? 2014-12-16 15:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你眼球

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


藍(lán)線圈的是流水線的執(zhí)行組件。

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你眼球

紅線圈的是數(shù)據(jù)路徑,兩個(gè)完全相同

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你眼球

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

CPU的完整硬件生成:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你眼球

我的設(shè)計(jì)中最有趣(也是最難完成)的部分是名為IFHU(Instruction Flow and Hazard Unit)的指令流動(dòng)及數(shù)據(jù)冒險(xiǎn)控制單元。

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你眼球

原稿:


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

1. I0和I1正常:執(zhí)行兩個(gè)指令,PC0,PC1 + 8

2. I1出現(xiàn)跳躍,分支,或數(shù)據(jù)冒險(xiǎn):執(zhí)行I0,PC0 = PC1,PC1 + 4

3. I0出現(xiàn)數(shù)據(jù)冒險(xiǎn):不執(zhí)行,PC都不變

4. I0出現(xiàn)跳躍或分支:內(nèi)部執(zhí)行,PC0為預(yù)測(cè)或跳躍后PC,PC1 = PC0 + 4

不出錯(cuò)的話PC1應(yīng)該永遠(yuǎn)等于PC0。

下面是IFU:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

IFHURegSelect:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

IFHUXORComp:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球


IFHU的另一個(gè)重要的組件是一個(gè)簡(jiǎn)單的2位分支預(yù)測(cè)器。目前我的CPU只支持BEQ(Branch on Equal)這一個(gè)分支指令,不過(guò)剩下的也都是這一個(gè)來(lái)的。這是分支預(yù)測(cè)器FSM:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

設(shè)三個(gè)狀態(tài)位元為S2S1S0。主要狀態(tài)Predict Taken,Weak Not Taken,和Strong Not Taken分別有自己的子狀態(tài)In Progress,In Progress表示已做預(yù)測(cè),不知結(jié)果,在這個(gè)狀態(tài)下不會(huì)再做預(yù)測(cè),確保流水線最多執(zhí)行一個(gè)分支預(yù)測(cè)。根據(jù)上面的FSM,可得出一個(gè)下個(gè)狀態(tài)的真值表:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

分支預(yù)測(cè)器將先把兩個(gè)可能的PC存進(jìn)FF,然后使用預(yù)測(cè)的方向(S1)選擇預(yù)測(cè)PC。同時(shí)一個(gè)相反方向的電路(~S1)將選擇相反的PC,最終由BRsuccess(預(yù)測(cè)是否成功)來(lái)選擇最終輸出到IFU。


誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

接下來(lái)的指令解碼流程就比較直接了。MIPS指令需要讀取的寄存器地址直接輸進(jìn)32x32位的寄存器,結(jié)果讀到RDXX。從這里起,將會(huì)有兩個(gè)數(shù)據(jù)路徑以及兩個(gè)控制單元。

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

寄存器或許也同時(shí)要儲(chǔ)存四個(gè)周期前的指令的計(jì)算結(jié)果或內(nèi)存數(shù)據(jù),WA[4:0]是寫(xiě)入地址,WD[31:0]是寫(xiě)入內(nèi)容,寄存器的CLK依然和處理器同步但 FF在Falling Edge更換,保持同周期完成。SigExt是Sign Extend的縮寫(xiě),它負(fù)責(zé)把指令的Immediate從16位擴(kuò)到32位。

32x32位的寄存器矩陣:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

控制單元:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

執(zhí)行單元的輸出ALUcontrol控制ALU的功能:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

RegWrite和MemWrite控制寄存器和內(nèi)存是否寫(xiě)入,RISel控制執(zhí)行單元ALU的第二個(gè)輸入使用寄存器內(nèi)容還是Imm。這些控制電路會(huì)如數(shù)據(jù)電路往流水線的下一個(gè)階段進(jìn)行。


接下來(lái)是 EU(Execution Unit),執(zhí)行單元。EU以目前支持的指令來(lái)看,只需要一個(gè)多功能ALU,以后可以加一個(gè)FPU和支持SIMD擴(kuò)展的計(jì)算單元。另外RD1讀出的內(nèi)容直接接到WriteData邏輯,在SW指令里,這個(gè)將直接寫(xiě)入數(shù)據(jù)內(nèi)存。RegAddr是R-Type或I-Type指令的Write Back地址,因?yàn)榈刂吩谶@兩類指令里的位置不一樣,控制單元根據(jù)OPCode輸出的RISel邏輯會(huì)選擇對(duì)應(yīng)的地址

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

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

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

ALU的設(shè)計(jì)很簡(jiǎn)單,控制單元根據(jù)Funct輸出的ALUcontrol[1:0]控制ALU的功能?,F(xiàn)在只需要ADD,SUB,AND,OR。我這里懶省事了,本來(lái)想自己寫(xiě)個(gè)Carry Look-Ahead Adder但是時(shí)間來(lái)不及,直接用SV的“+”了。
誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

這是用ModelSim測(cè)試EU的結(jié)果:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

結(jié)果都正確。


接下來(lái)測(cè)一下IFHU,我用以下六個(gè)指令

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

如果正常的話,IFHU應(yīng)該并行執(zhí)行指令1和2,到第二個(gè)周期,指令4有冒險(xiǎn),因此IFHU應(yīng)該只執(zhí)行指令3,并繼續(xù)讀取指令4和5,這兩個(gè)都依然有冒險(xiǎn),所以在第三周期PC不變。

匯編器的結(jié)果:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

ModelSIm運(yùn)行指令:(完全列出來(lái))

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

結(jié)果:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

細(xì)看一下第一周期的結(jié)果:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

可見(jiàn)兩個(gè)指令都順利通過(guò),PC都加8

第二周期:

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

第三周期:

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

兩個(gè)指令都成空指令,PC也不變,根預(yù)料的一樣。目前IFHU未發(fā)現(xiàn)大問(wèn)題,指令流動(dòng)正常。


剩下的就不多說(shuō)了,MEM和WB都很直接。如果不是馬上要考期末了,我會(huì)再加點(diǎn)指令,再仔細(xì)測(cè)測(cè)所有單元。本來(lái)還想來(lái)個(gè)亂序執(zhí)行設(shè)計(jì),再放個(gè)寄存器重命名單元和保留站,但現(xiàn)在的能力有限,我想先讀幾本更深的教材。接下來(lái)我把幾個(gè)主要Module的描述發(fā)出來(lái)。

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球
誰(shuí)說(shuō)中國(guó)不能做CPU?大一生驚爆你的眼球

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217106
  • MIPS32架構(gòu)
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    4518
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    大一暑假適合學(xué)51單片機(jī)嗎?

    大一暑假學(xué) 51 單片機(jī),簡(jiǎn)直是老天爺賞飯吃的黃金窗口。我當(dāng)時(shí)就是靠著這兩個(gè)月,把從課本上看來(lái)的 C 語(yǔ)言指針、循環(huán)語(yǔ)句,變成了能讓 LED 按節(jié)奏跳舞的真本事。
    的頭像 發(fā)表于 07-16 11:42 ?88次閱讀
    <b class='flag-5'>大一</b>暑假適合學(xué)51單片機(jī)嗎?

    默默無(wú)聞的是否想創(chuàng)業(yè)

    心有余而力不足,故特發(fā)此信。 不管你是電子領(lǐng)域的大佬,還是初出學(xué)堂的小白,只要你在電子方面有足夠的自信,不甘默默無(wú)聞,三點(diǎn)線了此一生,請(qǐng)聯(lián)系我微電同號(hào)15286651822;如果現(xiàn)在身價(jià)百萬(wàn)
    發(fā)表于 06-08 12:21

    【社區(qū)之星】趙云:不要浮躁,沉著穩(wěn)定,才能做好技術(shù)

    使用單片機(jī)能夠控制電機(jī)轉(zhuǎn)動(dòng)起來(lái),最終根據(jù)不同的項(xiàng)目需求進(jìn)行控制算法的匹配及調(diào)試優(yōu)化。 社區(qū)小助手:應(yīng)屆生如何吸引招聘者的眼球?換句話說(shuō)您招聘新人的時(shí)候會(huì)看重些什么呢?應(yīng)屆和有兩、三年左右工作經(jīng)驗(yàn)人有
    發(fā)表于 04-14 16:42

    一個(gè)中國(guó)AI產(chǎn)品Manus刷屏 中國(guó)AI新星Manus火 全網(wǎng)搶邀請(qǐng)碼

    Manus 的 AI 產(chǎn)品在科技圈火,全球首款通用智能體Manus開(kāi)啟內(nèi)測(cè)火,據(jù)說(shuō)現(xiàn)在很多的網(wǎng)友都在求Manus邀請(qǐng)碼。而Manus的火標(biāo)志著AI自主智能領(lǐng)域邁出了重要
    的頭像 發(fā)表于 03-06 14:09 ?1354次閱讀

    !蘋(píng)果攜手阿里為中國(guó) iPhone 用戶提供AI

    行業(yè)芯事行業(yè)資訊
    電子發(fā)燒友網(wǎng)官方
    發(fā)布于 :2025年02月12日 12:01:26

    ads1248進(jìn)行讀數(shù)據(jù)結(jié)果直都是0,為什么?

    我首先對(duì)ads1248全部進(jìn)行復(fù)位,然后安裝復(fù)位的設(shè)置,通過(guò)AIN0為positiveAIN1為negative進(jìn)行輸入,,然后等待DRDY變低,然后進(jìn)行讀數(shù)據(jù),,但是結(jié)果直都是0,,都調(diào)了好長(zhǎng)時(shí)間了,,求指導(dǎo)...好人一生平安
    發(fā)表于 01-22 07:37

    TPA3116主板開(kāi)關(guān)機(jī)音怎么消除?

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

    PCB生產(chǎn),在鉆咀和成品孔徑之間,會(huì)優(yōu)先滿足哪項(xiàng)呢

    ,現(xiàn)在不能同時(shí)滿足。 正常情況下,鉆咀是比成品孔徑大,因?yàn)殂@孔以后孔里面要鍍孔銅。 如果是會(huì)怎么選。 什么是鉆孔,什么是成品孔徑。 有圖有真相,看圖說(shuō)話,下圖的比較好理解。
    發(fā)表于 09-24 10:11

    LMH6703不能做差分放大嗎?

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

    大功率貼片電感的電感值偏大一點(diǎn)可以用嗎

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

    中國(guó)智能汽車騰飛,為什么異構(gòu)算力是第一生產(chǎn)力?

    智能時(shí)代的“世紀(jì)之車”,異構(gòu)算力是第驅(qū)動(dòng)力
    的頭像 發(fā)表于 09-14 10:32 ?4352次閱讀
    <b class='flag-5'>中國(guó)</b>智能汽車騰飛,為什么異構(gòu)算力是第<b class='flag-5'>一生</b>產(chǎn)力?

    LMH6601是不是跨導(dǎo)型,能不能做峰值保持電路呢?

    我想做個(gè)峰值保持電路,跨導(dǎo)型的查到了4個(gè)放大器,但是我感覺(jué)LMH6601不像是跨導(dǎo)型。有哪位比較懂的幫忙看下數(shù)據(jù)手冊(cè),LMH6601是不是跨導(dǎo)型,能不能做峰值保持電路呢?
    發(fā)表于 09-09 06:17

    OPA4170不能做比較器用嗎?

    Pin2、5不是應(yīng)該和Pin8電壓相同嗎?Pin3應(yīng)該是+8V左右,Pin6應(yīng)該是-8V左右嗎?難道運(yùn)放輸入端內(nèi)部并非虛斷?我換了TL074之后測(cè)得數(shù)據(jù)就是想要的結(jié)果了,難道OPA4170不能做比較器用嗎?疑問(wèn)多多,求指點(diǎn)。
    發(fā)表于 09-03 07:17

    使用AD8001放大一個(gè)100mv左右的信號(hào),經(jīng)過(guò)放大的信號(hào)低電平都是三點(diǎn)幾伏,不能夠從零開(kāi)始,為什么?

    請(qǐng)問(wèn),如圖我想使用AD8001放大一個(gè)100mv左右的信號(hào),然后使用比較器輸出信號(hào)進(jìn)行計(jì)數(shù),但是現(xiàn)在經(jīng)過(guò)放大的信號(hào)低電平都是三點(diǎn)幾伏,不能夠從零開(kāi)始,請(qǐng)問(wèn)這是什么原因呢?如圖,紅色是需要放大的信號(hào),紫色是經(jīng)過(guò)放大的信號(hào)。
    發(fā)表于 08-20 06:17

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

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