計算機組成原理實驗(7) 堆指令部件模塊實驗

實驗七 堆指令部件模塊實驗

一、實驗目的

1、掌握指令部件的組成方式。

2、熟悉指令寄存器的打入操作,PC計數器的設置和加1操作,理解跳轉指令的實現過程。

二、實驗要求

按照實驗步驟完成實驗項目,掌握數據打入指令寄存器IR1、PC計數器的重置,PC計數器自動加1和實現跳轉指令的方法。

三、實驗說明

3.1 ?指令部件模塊實驗的構成:(如圖3-2)

1、1片74LS374作為指令模塊的指令寄存器IR1,另1片74LS374作為地址鎖存器IR2。8芯插座PC-IN作為數據輸入端,可通過短8芯扁平電纜把數據輸入端連接到數據總線上。

2、2片74LS161作為PC計數器。

3、2片74LS245(同時只有1片輸出)作為當前地址的輸出。8芯插座PC-OUT作為地址輸出端,可通過短8芯扁平電纜把地址輸出端連接到地址總線上。

4、1片74LS153來實現多種條件跳轉指令(JZ,JC,JMP等跳轉指令)。

圖 3-1

3.2 ?指令部件模塊原理:(如圖3-2)

1、指令寄存器IR1(74LS374)的 EIR1為低電平并且IR1CK有上升沿時,把來自數據總線的數據打入IR1,IR1的輸出就作為本系統內的8位指令I0~I7。在本系統內由這8位指令可最多譯碼256條不同的指令,通過編碼可對應出這些指令在微程序存儲器中入口地址,并且輸出相應的微指令。

2、2片74LS161組成了PC計數器,它由信號ELP、信號PC-O、脈沖PCCK來控制PC計數器+1和PC計數器置數操作。在停機狀態下,由控制臺置起始地址,給出打入脈沖并置入74LS161。當ELP=0,PCCK有上升沿時可重新置PC值。當PCO=0、ELP=1, PCCK是上升沿時把當前PC計數器加1,并且把PC計數器的值作為地址輸出到地址總線上。

3、置EIR2為低電平,并且IR2CK有上升沿時,數據總線的數據打入IR2鎖存器后,置IR2-O=0,PC-O=1時,把IR2的值作為地址輸出到地址總線上。 ?

4、74LS153是4選1的芯片,可通過JS0、JS1來選擇用JC還是JZ來實現條件跳轉的指令。

JS1

JS0

功 ?能

0

0

選擇JZ ?當通用寄存器為0時跳轉

0

1

選擇JC ?當進位寄存器為0時跳轉

1

0

選擇JN ?提供給用戶自定義,JN=0跳轉

1

1

重新設置當前PC指針,實現JMP指令

圖 3-2

3.3??控制信號說明

信號名稱

作 ??用

有效電平

IR1CK

IR1的工作脈沖

上升沿有效

IR2CK

IR2的工作脈沖

上升沿有效

PCCK

PC計數器工作脈沖

上升沿有效

EIR1

選通指令寄存器IR1

低電平有效

EIR2

選通指令寄存器IR2

低電平有效

IR2-O

IR2輸出允許

低電平有效

PC-O

PC計數器內容輸出允許

低電平有效

ELP

74LS161控制信號

高電平可重置PC值;低電平時PC值自動加1

JS0-JS1

選擇開關

見上表

JZ

條件跳轉

為零跳轉

四、實驗步驟

●?在啟停單元中按“運行”按鈕,使實驗平臺處于運行狀態。

●?把EIR1,EIR2,PC-O,IR2-O,ELP,JS0,JS1接入二進制撥位開關中。把IR1CK和IR2CK接入脈沖單元PLS1,PCCK接入PLS2中。用長8位扁平電纜把PC-IN與右板上的二進制開關單元中J03相連(對應二進制開關H0~H7),PC-OUT用短8位扁平電纜連接地址總線AJ1,其他控制信號請按下表接線。

信號定義

接入開關位號

IR1CK

PLS1?孔

IR2CK

PLS1?孔

PCCK

PLS2?孔

EIR1

H20 ?

EIR2

H19 ?

IR2-0

H18??孔

PC-O

H17 ?

ELP

H16 ?

JS0

H15 ?

JS1

H14 ?

JZ

H13 ?孔

接線圖示:

實驗一:PC計數器置數

●?二進制開關H0~H7作為數據輸入,置05H(對應開關如下表)。

H7

H6

H5

H4

H3

H2

H1

H0

數據總線值

D7

D6

D5

D4

D3

D2

D1

D0

8位數據

0

0

0

0

0

1

0

1

05H

●?置控制信號如下:

H20

H19

H18

H17

H16

H15

H14

EIR1

EIR2

IR2-O

PC-O

ELP

JS0

JS1

1

0

1

1

0

1

1

實驗結果圖片如下:

置控制信號如圖

●?按啟停單元中的運行按鍵,使實驗平臺處于運行狀態。

●?按脈沖單元中的PLS1脈沖按鍵,在IR2CK上產生一個上升沿,把當前數據總線數據打入IR2鎖存器,按脈沖單元中的PLS2脈沖按鍵,在PCCK上產生一個上升沿,將IR2鎖存器中的地址打入PC計數器(2片74LS161)中,這樣的操作過程可實現無條件跳轉指令。若要觀測輸出結果,再置信號PC-O=0,此時PC計數器把其內容作為地址輸出到地址總線上,地址總線上的指示燈IAB0~IAB7應顯示05H。

實驗結果圖片如下:

地址總線上的指示燈IAB0~IAB7顯示05H

實驗二:PC計數器加1

●?完成實驗1后,重置各控制信號如下:

H20

H19

H18

H17

H16

H15

H14

EIR1

EIR2

IR2-O

PC-O

ELP

JS0

JS1

1

1

1

0

1

1

1

實驗結果圖片如下:

置控制信號如圖

●?按脈沖單元中的PLS2脈沖按鍵,在PCCK上產生一個上升沿,因PC-O=0,PC計數器將加1,PC計數器為06H,并且輸出至地址總線。此時地址總線上的指示燈IAB0~IAB7應顯示06H。

實驗三:置當前指令寄存器

●?二進制開關H0~H7作為數據輸入,置5FH(對應開關如下表)。

H7

H6

H5

H4

H3

H2

H1

H0

數據總線值

D7

D6

D5

D4

D3

D2

D1

D0

8位數據

0

1

0

1

1

1

1

1

5FH

●?置控制信號如下:

H20

H19

H18

H17

H16

H15

H14

EIR1

EIR2

IR2-O

PC-O

ELP

JS0

JS1

0

1

1

1

1

0

0

實驗結果圖片如下:

指令寄存器的指示燈I0~I7顯示5FH

五、實驗總結

?實驗原理

本實驗主要圍繞指令部件模塊及其在計算機體系結構中的作用進行,具體講述了如何利用硬件實現指令的打入、程序計數器(PC)的設置與加1,以及跳轉指令的實現。實驗所涉及的關鍵概念包括指令寄存器、程序計數器以及條件跳轉的控制信號。以下是詳細的實驗原理分析:

●?指令寄存器(IR1):

指令寄存器(IR1)用于存儲當前正在執行的指令。通過74LS374芯片實現,當控制信號EIR1為低電平時,正當IR1CK(時鐘脈沖)有上升沿信號到來時,數據總線上的數據就會被打入IR1,從而使系統能夠讀取并執行該指令。在本實驗中,IR1能夠存儲8位二進制指令,最多可編碼出256條不同的指令。

●?程序計數器(PC):

程序計數器(PC)是一個存放下一條將要被執行的指令的地址的寄存器。通過74LS161芯片實現。PC的控制包括兩種基本操作:重置和自增。設定控制信號ELP為低電平時,PC的值自增1;如果設定為高電平時,PC也可以被置為一個新的下一個指令地址。PC的輸出通過控制信號PC-O可以輸出到地址總線。

●?跳轉指令:

跳轉類型指令如JZ、JC和JMP是程序控制流的重要組成部分。使用74LS153芯片作為選擇開關,在這里根據指定條件生成控制信號,允許程序跳轉到新的指令位置。例如,當某寄存器的值為零時執行JZ指令,或者當進位標志為零時執行JC指令。這種條件跳轉通過選通控制信號來決定程序流轉向。

?實驗結果分析

在實驗中,按照設計步驟成功實現了以下幾個重要操作:

●?PC計數器置數:

在進行PC計數器置數時,成功將05H輸入地址鎖存器(IR2),并將內容打入PC計數器。當執行后,地址總線的指示燈成功顯示為05H,驗證輸入的準確性。

●?PC計數器加1:

通過控制信號設置,在PC計數器之前的狀態下,通過時鐘脈沖成功將PC值加1,最終在地址總線指示燈處觀察到輸出結果為06H。這表明程序計數器的自增操作正確實現。

●?當前指令寄存器的設置:

將數據5FH通過二進制開關輸入后,持續設置新的控制信號,以成功打入指令寄存器IR1。在按下時鐘脈沖后,IR1的指示燈顯示了5FH,表明指令讀取過程正常。

這些實驗結果確立了指令部件在處理和執行微指令中的關鍵作用,為基礎的計算機組成原理提供了驗證。

?個人感悟

????????通過這次實驗,我對計算機指令處理的基本原理和硬件實現有了更深入的理解。實驗中的每一步都強化了我對計算機體系結構及其構件之間相互關系的認識,特別是在指令寄存器和程序計數器的功能與操作上。

????????此外,我對硬件之間的時序控制與信號傳遞有了更加直觀的理解。在實際構建和調試過程中,動態的觀察信號變化及其對系統狀態的影響,讓我感受到了硬件設計中的細致與嚴謹。通過實驗,我意識到理論知識與實際操作之間的密切聯系,這讓我在進行未來更復雜的項目時更加自信。

????????接下來的學習中,我希望能夠深入探討更復雜的指令系統設計及其在現代計算機中的實用性的更多應用,為進一步的研究和開發奠定基礎。

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

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

相關文章

2022 年 6 月大學英語四級考試真題(第 2 套)——閱讀版——仔細閱讀題

🏠個人主頁:fo安方的博客? 💂個人簡歷:大家好,我是fo安方,目前中南大學MBA在讀,也考取過HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等證書。🐳 &…

磁盤文件系統

磁盤文件系統 一、磁盤結構1.1 認識一下基礎的硬件設備以及真實的機房環境1.2 磁盤物理結構與存儲結構1、磁盤物理結構2、磁盤的存儲結構3、CHS地址定位4、磁盤的邏輯結構(LBA)5 磁盤真實過程5 CHS && LBA地址 二、理解分區、格式化1 引?"…

基于LangChain 實現 Advanced RAG-后檢索優化(下)-上下文壓縮與過濾

摘要 Advanced RAG 的后檢索優化,是指在檢索環節完成后、最終響應生成前,通過一系列策略與技術對檢索結果進行深度處理,旨在顯著提升生成內容的相關性與質量。在這些優化手段中,上文壓縮與過濾技術是提升檢索結果質量的重要手段。…

為什么 Vite 速度比 Webpack 快?

一、webpack會先進行編譯,再運行,vite會直接啟動,再按需編譯文件。 首先看兩張圖,可以清晰的看到,上面的圖是webpack編譯過的,而下面的圖是vite直接使用工程內文件。 二、區別于Webpack先打包的方式&am…

C# 操作符

C# 操作符 一、操作符概覽二、優先級與運算順序三、各類操作符的實例 一、操作符概覽 操作符(運算符)的本質是函數的簡記法 操作符不能脫離與它關聯的數據類型 int x 5; int y 4; int z x / y; Console.WriteLine(z);//輸出1double a 5.0; double b…

C++設計模式:面向對象的八大設計原則之四

里氏替換原則(Liskov Substitution Principle,LSP)是面向對象設計中的一個重要原則,它指出子類必須能夠替換它的基類,并且程序的行為不會發生改變。也就是說,在任何使用基類對象的地方,都可以透…

網絡通信領域的基礎或流行協議

一、TCP(傳輸控制協議) 1. 宏觀介紹 TCP:全稱“Transmission Control Protocol”——傳輸控制協議,是互聯網最基礎的傳輸協議之一。傳輸層協議,提供面向連接、可靠的字節流傳輸服務。它通過三次握手建立連接、四次揮手斷開連接,確保數據有序、完整地傳輸作用:讓兩個設備…

【教學類-34-10】20250503(通義萬相)4*3蝴蝶拼圖(圓形、三角、正方、半圓的凹凸小塊+參考圖灰色)

背景需求 2023年從網站上搜索拼圖代碼,陸續改良了圓形、三角形、菱形凹凸) 【教學類-34-05】20230425拼圖(“圓角”凹凸拼圖)3*4格子(中班主題《個別化拼圖》偏美術)_拼圖的槽叫什么形狀-CSDN博客文章瀏覽閱讀1.1k次。【教學類-34-05】20230425拼圖(“圓角”凹凸拼圖)…

bellard.org? : QuickJS 如何使用 qjs 執行 js 腳本

參閱上一篇:Fabrice Bellard(個人網站:?bellard.org?)介紹 Fabrice Bellard(個人網站:?bellard.org?)是計算機領域最具影響力的程序員之一,其貢獻跨越多個技術領域并持續推動開…

數據結構---

案例一 1.隨機生成n個工人工時,100以內,工號分別為2021101到2021100n 2.以工時數為關鍵字分別使用選擇排序、冒泡排序、插入排序進行升序排序。 3.把排序后的結果輸出,包括工號工時數 4.比較三種算法對相同的n值數組排序所花的時間 代碼如下&…

Python硬核革命:從微控制器到FPGA的深度開發指南

1. 重新定義硬件開發:Python的顛覆性突破 傳統硬件開發長期被C/C++和Verilog/VHDL統治,但Python正通過兩條路徑改變這一格局: 1.1 微控制器領域的MicroPython革命 完整Python 3.4語法支持,運行在資源受限的MCU上(最低要求:64KB ROM,16KB RAM) 直接內存訪問能力,突破…

基于springboot+vue的寵物共享平臺

開發語言:Java框架:springbootJDK版本:JDK1.8服務器:tomcat7數據庫:mysql 5.7數據庫工具:Navicat12開發軟件:eclipse/myeclipse/ideaMaven包:Maven3.3.9 系統展示 寵物寄養管理 寵…

day 11 超參數調整

一、內參與外參(超參數) 內參是模型為了適應訓練數據而自動調整的,是模型內部與訓練數據緊密相關的因素,不同的訓練數據會導致模型學習到不同的參數值,這些參數在模型訓練完成后就固定下來。 超參數是在模型訓練前需…

快速搭建對象存儲服務 - Minio,并解決臨時地址暴露ip、短鏈接請求改變瀏覽器地址等問題

其他文章 服務容錯治理框架resilience4j&sentinel基礎應用---微服務的限流/熔斷/降級解決方案-CSDN博客 conda管理python環境-CSDN博客 快速搭建對象存儲服務 - Minio,并解決臨時地址暴露ip、短鏈接請求改變瀏覽器地址等問題-CSDN博客 大模型LLMs的MCP入門-…

樸素貝葉斯分類器

樸素貝葉斯分類器 樸素貝葉斯是一種基于密度估計的分類算法,它利用貝葉斯定理進行預測。該算法的核心假設是在給定類別的情況下,各個特征之間是條件獨立的,盡管這一假設在現實中通常不成立,但樸素貝葉斯分類器依然能夠生成對有偏…

在 Trae CN IDE 中配置 Python 3.11的指南

在 Trae CN IDE 中配置 Python 3.11的指南 下載 python 3.11 安裝 Python 3.11 首先,我們需要確保安裝了 Python 3.11。可以從Python 官方網站下載適合你操作系統的版本。 鏈接 如果你已經安裝了 Python 3.11,可以通過以下命令確認: 文…

MQTT 協議與 HTTP 協議的區別

在現代的網絡通信中,MQTT 協議和 HTTP 協議都扮演著重要的角色,但它們有著不同的特點和適用場景。下面我們就從多個方面來詳細探討它們之間的區別。 一.協議設計理念 1. MQTT 協議 MQTT(Message Queuing Telemetry Transport)即…

Postgresql源碼(145)優化器nestloop參數化路徑評估不準問題分析

相關 《Postgresql源碼(133)優化器動態規劃生成連接路徑的實例分析》 1 問題 最近遇到一個問題,評估行數和真實行數存在較大差距,導致計劃不準的問題。 nestloop內表評估是根據外表的參數來的。因為外表驅動表每取一條&#xff…

HTML與CSS實現風車旋轉圖形的代碼技術詳解

在前端開發中,HTML和CSS是構建網頁的基礎技術。通過巧妙運用HTML的結構搭建和CSS的樣式控制,我們能夠實現各種精美的視覺效果。本文將對一段實現旋轉圖形效果的HTML和CSS代碼進行詳細解讀,剖析其中的技術要點。 一、運行效果 HTML與CSS實現風…

linux下,ollama會把模型文件保存在哪里?

文章目錄 運行ollama,有兩種形式,估計得分開討論首先是使用自動啟動的ollama:先跑個“小一點的大模型”但是現在模型文件存在哪兒呢?運行ollama,有兩種形式,估計得分開討論 我們用兩種方式,來運行ollama。 首先是使用自動啟動的ollama: ps -aux | grep ollama系統自…