minisys 單週期cpu 一 資料通路設計

2021-10-24 00:24:46 字數 1005 閱讀 6719

控制指令執行順序

根據指令的功能,產生相應的控制訊號

對各種操作進行時間上的控制

對資料進行算術/邏輯運算或者其他處理

對來自儲存器或者i/0埠的資料進行訪問

處理執行過程中的異常情況

控制器運算器

實現指令集架構中的指令

處理器的一部分,包含了完成處理器所要求的操作所必須的硬體

處理器的一部分(也在硬體中),用以告訴資料通路需要做什麼

根據程式計數器(pc)從記憶體中取指令,pc的值為該指令在記憶體中存放的位址

對指令操作碼進行解析

產生控制訊號來控制指令進行相應的操作

根據指令欄位的內容選擇從儲存器讀取資料或直接從暫存器取數

根據解碼結果進行算術/邏輯運算或者計算運算元的位址

根據指令的要求對運算(處理)後的資料進行寫回操作,如寫儲存器或寫暫存器

1.讀取某一主存單元的內容,並將其裝入摸個暫存器

2.把乙個資料從某個暫存器存入給定的主存單元或輸出到給定的埠位址中

3.把乙個資料從某個暫存器送到另乙個暫存器或者alu

4.進行某種算術運算或者邏輯運算,將結果送入某個暫存器

從儲存器中取出32條指令

將pc遞增(pc=pc+4)

從指令中讀取操作碼和相應的字段

從暫存器檔案中獲取所有必須的暫存器的值

只有載入(lw)和儲存(sw)指令在這一階段才會有事情做;其他指令在這一階段閒置,或者乾脆跳過這一階段

可以利用cache加快這一階段的執行

將指令執行的結果寫回到暫存器檔案中

無需寫暫存器的指令(e.g.sw,j,beq)這一階段閒置或跳過

描述語言稱為暫存器傳輸語言rtl,設定如下

1.用r[r]表示暫存器r的內容

2.用m[addr]表示讀取主存單元addr的內容

3.傳送方向用「→」表示,傳送源在右,傳送目的在左

4.程式計數器pc直接用pc表示其內容

5.用op[data]表示對資料data進行op操作

最大唯一數 練習

1.給你乙個整數陣列 a,請找出並返回在該陣列中僅出現一次的最大整數。如果不存在這個只出現一次的整數,則返回 1。示例 1 輸入 5,7,3,9,4,9,8,3,1 輸出 8 解釋 陣列中最大的整數是 9,但它在陣列中重複出現了。而第二大的整數是 8,它只出現了一次,所以答案是 8。示例 2 輸入 ...

動態規劃系列一(數塔問題)

有形如下圖所示的數塔,從頂部出發,在每一結點可以選擇向左走或是向右走,一直走到底層,要求找出一條路徑,使路徑上的值最大 input 輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數字表示數塔,其中第i行有個i個整數,且所...

數一數網路吞吐量

假設有一台伺服器配了千兆網絡卡,獨佔千兆頻寬,乙個業務資料報大小1mb,通過tcp協議傳送,請問這台服務流量全部跑滿,最大的支援多少吞吐量。大家可以先思考一下這個問題 解決這個問題,有必要先了解一下問題中的幾個概念。千兆網絡卡 網絡卡我們都知道是一種提供計算機與傳輸介質的硬體介面。千兆則是表示傳輸速...