計算機組成原理單周期mips,計算機組成原理CPU單周期數據通路(MIPS)

計算機組成原理CPU單周期數據通路(MIPS)

【計算機組成原理】CPU:單周期數據通路(MIPS)

寄存器傳送語言RTL

1)R(r)表示寄存器r的內容

2)M(address)表示主存儲器地址address的內容

3)傳輸方向“←”表示,從右向左傳輸

4)程序計數器PC的內容直接用PC表示

輸出信號改變時機

55dbcdda0f4ce9085f199e50856ba649.png

1)setup建立時間:觸發時鐘邊緣之前保持穩定一段時間

2)hold保持時間:觸發時鐘邊緣之后保持穩定一段時間

3)clk-2-Q time鎖存延遲:觸發時鐘邊緣之后不能立即變化,有一點點延遲

即:輸入的信號(1或0)在輸入之前(下跳沿到達之前)要穩住自己,不能出差錯,在到達下調沿時輸入信號不會立刻影響輸出,而是經歷一點點延遲(clk2Q)輸出才改變,而與此同時輸入信號會保持更長一段時間。

寄存器組解讀

a65c99b00a229319818cec275da058c8.png

1)ReadinA\RB兩個讀入接口,符合組合邏輯,輸入5-bit寄存器編號,選擇32個寄存器之一的內容,耗費一小段時間(取數時間AccessTime),從BusA\busB輸出(2^5=32)。

2)busWrite是寫入接口,是時序邏輯,在(WriteEnable=1)&&(時鐘下降沿到達)的情況下經過延遲(CLK2Q)將busW的值寫入RW讀入接口指定的寄存器中;WE=0時即使下降沿到來也不會寫入。

內部結構圖

2e503c3b8c8044f0cf4de1929dc3e0a5.png

3)理想數據存儲器

26675f5cb4423471a8b68b224bd6b6ba.png

① add指令(R-type)

4b1883a985cf64ab2b961519725b5dae.png

指令:add rd,rs,rt

RTL:

1)M[PC];

2)R[rd]←R[rs]+R[rt];

3)PC ← PC + 4

設計思路:不考慮1)3)兩個公共操作:

(1)Rs、Rt表示兩個源寄存器編號,故與RA、RB相連,讀取這兩個寄存器的值,分別由busA、busB送入ALU計算,由func控制ALUctr進行add操作;

(2)結果送入busW寫入RW指定的寄存器,故RW連接Rd,只有當結果不溢出且RegWr=1的情況下才將結果寫入,結果溢出(OF=1)則送出到溢出處理通路。

花費時間:PC的CLK2Q時間+指令存儲器取指令時間+寄存器組取數時間+ALU延遲+寄存器建立時間+時鐘偏移

ALUctr=add,RegWr=1

90f327d58b2e211d6ecefca6408a0929.png

② ori指令(I-type)

b7fd12d0f652952dc387b00dc0b693fe.png

指令:ori rt,rs,imm16

RTL:

1)M[PC];

2)R[rt] ← R[rs] or ZeroExt(imm16);

3)PC ← PC + 4

設計思路:不考慮1)3)兩個公共操作:

(1)因為目的寄存器是rt,跟R-type的rd不一樣,所以得在RW裝個多路選擇器,用RegDst控制是用哪個做目的寄存器(R-type用0,I-type用1);

(2)由于要進行立即數零擴展(32位才能送入ALU),添加一個擴展器,用ExtOp=1控制進行符號擴展,ExtOp=0控制進行零擴展;

(3)由于R-type是兩個寄存器數運算,I-type有一個來自立即數,所以要在ALU一個輸入接口裝一個多路選擇器,用ALUSrc=0控制寄存器輸入,ALUSrc=1控制立即數輸入。

時間:PC的CLK2Q時間+指令存儲器取數時間+寄存器組取數時間+ALU延遲+寫寄存器的建立時間+時鐘偏移

ALUctr=or,RegWr=1,RegDst=1,ExtOp=0,ALUSrc=1

d0a9e066f01dc89e7292d00a585fbb76.png

③lw、sw指令(I-type)

指令:lw:lw rt,rs,imm16;sw:sw rt, rs,imm16

RTL:

1)M[PC];

2)Addr←R[rs]+SignExt(imm16);

3)lw:R[rt]←M[Addr];sw:M[Addr]←R[rt];

4)PC ← PC + 4)

設計思路:不考慮1)4)兩個公共操作:

(1)因為寫入目的寄存器的數據來源不是ALU結果,而是存儲器的輸出,所以要在busW加一個多路選擇器,用MemtoReg=0控制ALU結果寫入,MemtoReg=1控制存儲器讀出數據寫入;

(2)因為要從數據存儲器取數,所以添加了一個數據存儲器部件,存儲器的取數地址由ALU計算R[rs]+SignExt(imm16)得到,所以ALU結果連接Adr端,圖中busB輸出端連接DataIn將數據寫入實現的是指令sw的功能,注意該寫入是時序邏輯。

花費時間:

lw:PC的CLK2Q時間+指令存儲器取數時間+寄存器組取數時間+ALU延遲+數據存儲器取數時間+寫寄存器的建立時間+時鐘偏移

sw:PC的CLK2Q時間+指令存儲器取數時間+寄存器組取數時間+ALU延遲+寫存儲器的建立時間+時鐘偏移

ff99a13dfc5028b8e461b8b66f6b79bc.png

ALUctr=addu,RegWr=1,RegDst=1,ExtOp=1,ALUSrc=1,

MemWr=1,MemtoReg=1

④beq指令(I-type)

指令:beq rs,rt,imm16

RTL:

1)M[PC];

2)Cond ←R[rs]-R[rt];

3)if (Cond = 0) {PC ← PC + 4 + (SignExt(imm16) x 4)} else{PC ← PC + 4}

設計思路:不考慮1)4)兩個公共操作:

(1)因為PC下地址產生不同,所以增加了下地址邏輯,輸出下一條指令地址,用Branch=1使用分支功能,Branch=0不使用;

(2)Zero為R[rs]-R[rt]的零標志,在Branch=1啟用分支功能時,Zero=0表示兩個源寄存器內容相等,應該走PC ← PC + 4 + ( SignExt(imm16)x4)這一路,反之走普通的PC←PC + 4,Branch=0時不用考慮Zero的值,因為沒有啟用分支。注意這里的立即數是相對偏移指令數,前面的立即數是相對偏移存儲單元數。

時間:PC的CLK2Q時間+指令存儲器取數時間+寄存器組取數時間+ALU延遲+寄存器建立時間(寫入PC)+時鐘偏移

ALUctr=subu,RegWr=0,RegDst=1/0,ExtOp=1/0,MemWr=0,MemtoReg=1/0,ALUSrc=1,Branch=1

1c46848ca3108d1d0845645a47cad9c2.png

因為指令長度32-bit,主存按字節編址,所以指令的地址總是4的倍數,所以低兩位總是00,所以PC只用存放前30位,即PC<31:2>,所以下條指令的計算方法如下:

順序執行時:PC<31:2> = PC<31:2> + 1

轉移執行時:PC<31:2> = PC<31:2> + 1 + SignExt[imm16]

取指令時:指令地址=PC<31:2> 串接“00”

另外:這里用Adder是因為無需ALUctr

0d0194e57992ff3bfc13673b83e7f100.png

⑤Jump指令(J-type)

3c26003b76c1890570d21875dfb7c146.png

指令:j target

RTL:

1)M[PC];

2)PC<31:2>←PC<31:28>串接 target<25:0>

設計思路:不考慮1)4)兩個公共操作:

(1)因為功能是無條件將目標地址寫到PC中,所以主要修改的是取指令部件;

(2)因為送到下一個PC的值不再僅僅是計算結果,也可能是直接跳越的結果,所以在PC的寫入端加一個多路選擇器,用Jump=1控制寫入跳躍目的地址,Jump=0控制寫入計算結果。

時間:PC的CLK2Q時間+指令存儲器取數時間+寄存器建立時間(寫入PC)+時鐘偏移

ALUctr=1/0,RegWr=0,RegDst=1/0,ExtOp=1/0,ALUSrc=1/0,MemWr=1,MemtoReg=0,Jump=1

65cc29a73b4a0f628601d0a1929cc73f.png

跳轉指令的范圍:2^28=256MB的內存

【計算機組成原理】CPU:單周期數據通路(MIPS)

加我一起學習

公眾號:凡古一往

計算機組成原理CPU單周期數據通路(MIPS)相關教程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533266.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533266.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533266.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

gmp計算機系統課件,EU GMP附錄11計算機系統◆問答

GMP關于計算機系統的法規Zhulikou431整理&#xff0c;丁香園首發EU GMP guide annexes - Supplementary requirements: Annex 11Computerised Systems1. Appropriate controls for electronic documents such as templates should be implemented. Are there any specific requ…

不規則圖形數格子的方法_【微課堂】人教版五年級數學(上)6.5不規則圖形的面積圖文精講+教學視頻+同步練習...

小學生精選資料庫&#xff0c;家有小學生都在關注更多資料、微課堂&#xff0c;請至文末人教教材同步微課堂(包括視頻微課、教材同步、圖文講解、同步練習等)&#xff0c;可以在課堂之外幫助同學們學習。歡迎轉發給更多的同學哦~~電子課本點擊圖片&#xff0c;查看大圖▼▼▼▼…

計算機安全評估研究綜合,計算機網絡信息系統安全評價方法研究

摘要&#xff1a;該文論述了計算機網絡安全現狀,評價現狀,以及網絡信息安全評估標準,包括美國可信計算機安全評價標準(TCSEC),歐洲的安全評價標準(ITSEC),國際通用準則(CC,等同GB18336),我國計算機信息系統安全保護等級劃分準則(GB17859-1999).綜述了現在常用的幾種評價方法,包…

動態獲取某個元素的高度_codeforces 1443D,解法簡單,思維縝密的動態規劃問題...

大家好&#xff0c;歡迎來到codeforces專題。今天選擇的問題是1443場次的D題&#xff0c;這題是全場倒數第三題&#xff0c;截止到現在一共通過了2800余人。這題的思路不算難&#xff0c;但是思考過程非常有趣&#xff0c;這也是這一期選擇它的原因。鏈接&#xff1a;https://c…

顯卡的優化以提高計算機性能作用,顯卡優化,教您如何設置NVIDIA(英偉達)顯卡玩游戲性能更高...

多人玩游戲可能都只是在游戲中設置畫質選項&#xff0c;比如反鋸齒等&#xff1b;而對顯卡驅動控制面板中的設置并不關注。其實在顯卡驅動面板中設置游戲文件&#xff0c;可以更好的控制和提高游戲畫質、性能。那如何設置NVIDIA顯卡玩游戲性能更高&#xff1f;下面&#xff0c;…

服務器選購seo優化規則,如何選擇有利于SEO優化的空間服務器

之前我們講過域名&#xff0c;講過程序&#xff0c;今天我們來講解空間&#xff0c;其實空間主要影響SEO只有兩個方面&#xff0c;一個是速度&#xff0c;一個是穩定性&#xff0c;如果你的空間穩定性不夠&#xff0c;經常打不開&#xff0c;百度蜘蛛經常抓取不了&#xff0c;就…

安裝npm_Npm安裝包的版本號是如何更新的?

點擊右上方紅色按鈕關注“小鄭搞碼事”&#xff0c;每天都能學到知識&#xff0c;搞懂一個問題&#xff01;大家好&#xff01;我是/小鄭搞碼事/的小鄭今天和大家分享一下關于NPM安裝包的版本號是如何更新的問題。版本號&#xff1f;先來看一張圖上圖就是2.29.1就是安裝包Momen…

css 向左白色箭頭,帶CSS的工具提示左側的箭頭

使用正確的CSS屬性在工具提示的右邊添加箭頭。您可以嘗試運行以下代碼以在左側添加帶有箭頭的工具提示示例html>.mytooltip .mytext {visibility: hidden;width: 140px;background-color: blue;color: #fff;z-index: 1;top: -5px;left: 110%;text-align: center;border-radi…

python有理數_Python中的as_integer_ratio()用于減少給定有理數的分數

在本教程中&#xff0c;我們將編寫一個程序&#xff0c;該程序返回兩個數字&#xff0c;它們的比率等于給定的float值。我們有一個稱為as_integer_ratio()的方法&#xff0c;可以幫助實現我們的目標。讓我們看一些例子。Input:1.5Output:3 / 2Input:5.3Output:5967269506265907…

js上拉加載ajax數據,原生ajax寫的上拉加載實例

上拉加載的思路1 上拉加載是要把屏幕拉到最底部的時候觸發ajax事件請求數據2.所有要獲取屏幕的高度 文檔的高度 和滾動的高度 下面的代碼是已經做好了兼容的可以直接拿來用Javascript:alert(document.body.clientWidth); //網頁可見區域寬(body)alert(document.body.clientHeig…

b站前端大佬_知乎大佬強烈熱推的5個自學網站,看了幾個月,月薪三千漲三萬...

原標題&#xff1a;知乎大佬強烈熱推的5個自學網站&#xff0c;看了幾個月&#xff0c;月薪三千漲三萬現在很多踏入了社會的小伙伴們經常會覺得為什么工作能力提升不上去&#xff0c;主要是因為很少利用業余的時間來學習一些跟自己工作有關的專業知識來充實自己&#xff0c;這其…

xp系統如何開啟共享服務器,xp系統怎么關閉共享服務 xp系統共享打印機如何設置...

XP系統雖然已經出來很久了&#xff0c;但是仍然還有很多用戶在使用&#xff0c;其實不管哪個系統只要電腦可以正常使用就行。很多XP用戶在開啟共享功能之后&#xff0c;想關閉但是又不知道如何設置&#xff0c;那么下面小編就為大家分享XP系統關閉共享服務的步驟教程&#xff0…

用udp協議通訊時怎樣得知目標機是否獲得了數據包?_和相親對象聊天,你屬于UDP還是CDP?...

有人說和相親對象聊天就像ping服務器每發一條消息就像發出一條Ping命令等待對方回復從而得到響應速度結果但是難受的是這個響應速度永遠無法做到秒級少點幾分鐘多則幾十分鐘甚至幾十個小時才有響應有時候真希望對方不要響應了就能判斷此處Ping不通從此斷了念想...你是否也像這位…

三星w系列vip服務器,高端人士候機專屬特權 三星W2017一張行走的VIP卡

原標題&#xff1a;高端人士候機專屬特權 三星W2017一張行走的VIP卡17年春運時間為1月13日至2月21日&#xff0c;如今春節假期已過&#xff0c;億萬人開始踏上了離鄉之路追尋夢想。每年春運都給交通帶來巨大壓力&#xff0c;今年為期40天的春運預計全國發送旅客或超29億人次。鐵…

阿酷快捷鍵怎么使用_必須收藏!Linux用戶必須知道的常用終端快捷鍵

點擊上方[全棧開發者社區]→右上角[...]→[設為星標?]簡介&#xff1a;以下是一些每個 Linux 用戶必須使用的鍵盤快捷鍵。使用命令行時&#xff0c;這些 Linux 快捷鍵將提升你的工作效率。你知道什么把專業用戶和普通用戶分開的嗎&#xff1f;掌握鍵盤快捷鍵。好的&#xff01…

checkbox ajax 不選中的值,php – 無法通過ajax傳遞checkbox的值

我有從數據庫收到的表&#xff1a;//$id $_SESSION[staff_id];$teamResult getQuarter($leader_id);$count1 0;if (mysqli_num_rows($teamResult) > 0){?>1st Quarterwhile($row mysqli_fetch_array($teamResult)){$staff_id $row[staff_id];$username $row[usern…

3dmax天光渲染設置_【扮家家云渲染效果圖】3dmax測試全局照明效果|干貨教程...

首先打開場景文件&#xff0c;首先按快捷鍵8&#xff0c;打開環境和效果控制面板。下面有一個全局照明這樣一個選項卡&#xff0c;有染色、級別、環境光三個參數。默認情況下染色為白色&#xff0c;級別為1&#xff0c;環境光為黑色。此時我們可以單擊渲染&#xff0c;查看一下…

手寫table用ajax遍歷,原生js把數據循遍歷到前端table

用前端框架去給表格賦值簡直不要太容易和簡單。但是原生js就會復雜一些了。特別是按鈕事件的那個(“ )和 (’)特別讓人腦瓜子疼。最近做了一個功能&#xff0c;里面用的就是原生js實現。寫在js里面的代碼&#xff1a;(用的ajax請求將文件保存到服務器&#xff0c;返回的數據遍歷…

dbv mysql_MariaDB與MySQL對比 --- 對分布式事務的支持

本文最初于2016年底發表在我的個人微信公眾號里面&#xff0c;現略有修訂后發布在這里。本文的技術信息針對的是mysql-5.7.x和mariadb-10.1.9。MariaDB和MySQL兩者對分布式事務的支持有所不同&#xff0c;總的來說MySQL的支持更好&#xff0c;是完備的和可靠的(盡管后來也陸續發…

centos7下載安裝mysql步驟_Linux-centos7安裝mysql步驟

Centos7.3 yum安裝MySQL5.7.25擴展&#xff1a;在CentOS中默認安裝有MariaDB&#xff0c;這個是MySQL的分支&#xff0c;但為了需要&#xff0c;還是要在系統中安裝MySQL&#xff0c;而且安裝完成之后可以直接覆蓋掉MariaDB。1 下載并安裝MySQL官方的 Yum Repository[rootlocal…