操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    【如果需要circ文件,看文末獲取】

    【私藏多年的絕版資料,現在免費送給你,隨時會被刪除,千萬保存下來!有道云筆記】

    一、數據通路解析:

    1、程序開始,PC中存儲當前正在執行的指令地址。CPU從PC中讀取指令地址,傳遞給AR。

    2、AR將存儲的地址傳遞給MEM。

    3、MEM的控制器根據AR內容(地址)從指令地址中取指令,將指令存儲到DR數據寄存器中。

    4、指令被讀取到DR后,將指令從DR傳輸到IR。

    5、IR中存儲該指令所有位,微程序控制器分析IR中存儲的指令,依位轉換成控制信號,執行相應的操作。然后PC值加1以便執行下一條指令。

    File用于表示寄存器堆,用于讀取寫入和存儲數據。

    ALU作為運算器,主要用于執行加減、比較和位移等操作。

    控制信號用于控制總共22位的控制信號。

    通過時鐘信號(CLK)來控制PC計數器的更新,不斷讀取MEM隨機存儲器中的指令。

    二、微程序控制器解析:

    1、先看輸入引腳,將32位的指令字傳入“指令字”隧道,作為指令譯碼器的輸入數據。

    2、指令譯碼器輸出指令譯碼信號(在這里是7個信號),信號傳入微程序入口查找邏輯,通過分線器傳入比較器。

    3、比較器的使能端是測試判斷電路,用于選擇向后傳輸的是:下址字段、微程序地址還是beq分支地址。

    4、微指令存入微地址寄存器uAR,控制存儲器根據微地址提供的地址選擇微指令,然后輸出具體的控制信號。

    邏輯控制流程圖_微程序控制器邏輯框圖_邏輯控制編程

    下面分別解析:指令譯碼器、微程序入口查找邏輯、判別測試邏輯:

    三、指令譯碼器解析:

    輸入32位的指令字,低6位是FUNCT(功能碼在特定類型的指令中確定具體操作),高6位是OP(代表操作碼是指令的主要類型或功能代碼)。

    LW(load word)將數據從內存中讀取到寄存器,SW(store word)將數據從寄存器存儲到內存中,BEQ(Branch if equal)比較結果分支到指定的程序地址,ADDI(Add )將常量添加到寄存器,SLT(是Set Less Than)比較寄存器的值,第一個寄存器的值小于第二個寄存器值,則將特定位置1,否則置0。表示其它類型的指令。

    插入關于比較器的用法說明:(比較器的輸入接口有兩個,分別為“a”和“b”,表示要比較的兩個元件或信號。比較器的輸出接口有三個,分別為“a=b”、“ab”,分別表示“兩個輸入相等”、“a小于b”和“a大于b”。)

    如圖中:OP截取了IR的高6位,從右到左計算值(右端為低位,高位僅2位),在比較器中與常量的中比較,若相等,則讓功能的圖標被點亮。23(十六進制)相當于10 0011。2b相當于10 1011。FUNCT取IR的低6位與2a進行比較(2a相當于10 1010)。

    然后將FUNCT和OP比較的結果進行相“與”運算,若FUNCT等于2a,0P等于0,SLT圖標被點亮。倘若FUN

    四、微程序入口查找邏輯:

    下圖是微程序入口查找邏輯的具體實現:

    原理:根據指令的類型,會觸發不同的狀態位(S0~S4),通過分線器轉化為一個5位數的二進制組合,依此來指示指令的類型,進而實現指令的執行和操作數的存儲等功能。

    五、判別測試邏輯:

    主要功能是:判斷當前微操作的執行條件是否滿足,以決定是否執行當前微操作。常用于分支語句中,根據不同的條件選擇不同的分支執行路徑。

    下圖是判別測試邏輯的具體實現:

    原理:通過返回的不同P0,P1,EQUAL的值,來生成M1,M0的值,作為多路選擇器的選擇端來決定要取得輸入端的什么值作為后續地址?

    CT和OP一個沒成立,SLT都不會被點亮。

    六、雜談:

    邏輯控制流程圖_邏輯控制編程_微程序控制器邏輯框圖

    可能有同學會疑惑:當數據被傳輸到總線上之后,又是如何進入到各個電路組件中的。其實這個問題的關鍵在于:控制信號。

    當數據被傳輸到總線上后,指令中的控制信號(寫信號),會控制待寫入的組件寫入該數據。

    如果數據在總線上經過若干個時鐘周期,仍舊沒有組件寫入該數據,那么該數據會被后面的數據覆蓋并丟失。

    所以要時刻牢記:電路是一個動態的過程,由時鐘信號的更新,導致控制信號不斷改變,進而控制具體的組件實現不同的功能。

    七、分析理想流水線MIPS處理器的數據通路電路:

    IF段:PC寄存器保存即將執行指令的字節地址,每一個時鐘周期到來,指令寄存器會根據輸入的地址輸出指令,IF/ID流水寄存器鎖存指令寄存器取出的指令字和PC+4的值。

    ID段:單周期硬布線控制器根據指令的OP和Func值,輸出控制信號,統一匯入CTRL隧道。寄存器堆根據rs,rt,rd等值取操作數向后輸出(還負責WB段指令執行結果的寫回操作)。立即數擴展模塊負責對指令0~15位的數進行擴展。ID/EX流水寄存器鎖存從寄存器堆中取出的兩個操作數RS和RT與寫寄存器編號并向后輸送。

    EX段:邏輯運算單元ALU負責計算運算結果。分支地址計算模塊生成跳轉地址,與IF段PC+4的值進行選擇,作為PC下一次指令的地址。EX/MEM流水寄存器鎖存ALU運算結果、數據存儲器待寫入數據寫寄存器編號向后輸送。

    MEM段:數據存儲器讀寫模塊A接口用于接收地址,D接口用于接收待寫入數據,str是寫使能信號,D接口用于輸出存儲的數據。MEM/WB流水線寄存器鎖存ALU運算結果,數據存儲器讀出的數據和寫寄存器編號并向后輸送。

    WB段:寄存器寫回控制模塊向寄存器堆寫回數據。

    八、分析理想流水線MIPS處理器的4個流水寄存器電路

    流水寄存器主要的功能是:鎖存值和向后輸送。

    IF/ID流水寄存器:IRin32用于鎖存指令字,PCin32用于鎖存PC+4的值,IRout32和PCout32用于向后輸送值。

    ID/EX、EX/MEM、MEM/WB流水寄存器:同IF/ID一樣,是通過輸入引腳進行數據和控制信號的輸入,唯一不同的是,不同的流水線階段傳入的數據數量和位數是不同的,在此不過多贅述。

    接下來我將介紹一下如何進行數據的輸入:首先讓上圖的使能端為0,所控制的線路此時為高電平,寄存器可以接受時鐘信號。只要CLK跳動1個周期,寄存器就會把左側的輸入數值輸出往右側的輸出引腳,進而實現數據的鎖存和傳送。

    那又如何進行數據的清空呢?此時不僅需要讓使能端的值為0,還要讓同步清零端的值為1,因為該端口所引出的導線連接MUX選擇器的使能端,當為高電平時值為1,此時MUX選擇的端口是地線,地線值為0,只要CLK跳動1個周期,寄存器就會把左側全0的數值輸出往右側的輸出引腳,實現數據清零。

    九、分析氣泡流水線MIPS處理器的數據通路電路:

    微程序控制器邏輯框圖_邏輯控制流程圖_邏輯控制編程

    數據通路的介紹見上面理想流水線MIPS處理器。差異點在于:在譯碼ID段加入數據相關檢測,將rt,rs,Func,OP,Mem.,EX.等控制信號傳入數據相關檢測,輸出是數據相關隧道,數據相關隧道傳入ID/EX流水線寄存器,傳入的是同步清零端,意思是如果數據相關發生沖突就將流水寄存器清空,插入氣泡。

    (補充:氣泡流水線是通過延緩ID段取操作數的動作解決沖突問題,根源是目的操作數被更改后還未寫回,又被重新當作源操作數使用。什么時候會發生沖突?比如EX段需要用到$2寄存器的值,但由于對$2寄存器的值的修改在WB段還沒有寫回(先寫后讀沖突),因此要將對$2寄存器的值的操作阻塞在ID、IF段,用插入氣泡來實現。)

    十、分析氣泡流水線MIPS處理器的數據相關檢測電路

    rs傳入的是ID.R1,rt傳入的是ID.R2。

    rs和rt用于表示當前指令的源操作數,分別是寄存器1和寄存器2的編號。主要用于比較當前指令的源操作數和前面已經發出但未執行指令的目的操作數,檢測數據相關問題。

    op和func值用于表示當前指令的操作碼和函數碼,這些值用于判斷當前指令的類型,以便在檢測數據相關時采用不同的處理方式。

    EX.和MEM.值表示rs或rt在執行階段或訪存階段的指令是否會寫回寄存器,如果要寫回,說明當前指令會影響后面指令,有可能會產生沖突。

    如果在EX、MEM段需要寫回寄存器,操作數來自源寄存器,指令類型滿足要求,三者同時滿足,與門高電平,上下兩個與門與或門連接,只要有一個高電平,說明沖突,需要插入氣泡。

    十一、分析重定向流水線MIPS處理器的數據通路電路:

    (補充:重定向的原理是將,EX段執行的結果,也就是已經存放在EX/MEM、MEM/WB寄存器中的正確操作數直接重定向到EX段的合適位置,作為后續操作的源操作數,而不必等到WB段寫回,提高效率)

    還是說說和理想數據通路的差異之處 :新增了一個重定向檢測模塊,輸出的控制信號是和還有數據相關,其中連接F,F是多路選擇器的使能信號,用于選擇需要重定向的數據,R2是一個32位的數據,是重定向的結果,作為ALU的其中一個輸入。

    是作為后續多路選擇信號的使能端,用于選擇是否選擇MEM/WB端流水線的數據RD作為重定向的數據。

    用于判斷ALU的X端口輸入的數據是否可以從后面的執行階段(EX)或訪存階段(MEM)中的結果中獲取。則是判斷ALU的Y端口輸入的數據是否可以從后面兩個階段的結果中獲取。

    數據相關隧道用于判斷Load-Used相關,當發生Load-Used相關需要ID/EX流水線清空自身,數據相關與或門相連,只要為高電平,即可清空流水線。

    實現的原理就是:通過取不同的值,控制多路選擇器輸出不同的內容。以為例,當值為0時是無沖突,數據正常輸入。值為1時是ID段與EX段沖突,所以選擇輸出數據的值是ALURes,也就是ALU運算的結果。當值為2時是ID段與MEM段沖突,所以輸出是RD的值,相當于把MEM/WB流水線鎖存的數據重定向到ALU的輸入端。

    【計算機組成原理資料和Logisim工程都在網盤里,建議大家保存后下載到本地,對后續學習有很大幫助:迅雷云盤】

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有