計算機組成數據通路組成實驗報告,計算機組成原理實驗報告+++數據通路實驗.doc...

計算機組成原理實驗報告數據通路實驗

數據通路組成實驗

一、實驗目的

(1)將雙端口通用寄存器組和雙端口存儲器模塊聯機;

(2)進一步熟悉計算機的數據通路;

(3)掌握數字邏輯電路中故障的一般規律,以及排除故障的一般原則和方法;

(4)鍛煉分析問題與解決問題的能力,在出現故障的情況下,獨立分析故障現象,并排除故障。

二、實驗電路

圖9.14示出了數據通路實驗電路圖,它是將前面進行的雙端口存儲器實驗模塊和一個雙端口通用寄存器組模塊連接在一起形成的,存儲器的指令端口不參與本次實驗,通用寄存器組連接運算器模塊,本實驗涉及其中的操作數寄存器DR2。

由于RAM是三態門輸出,因而可以將RAM連接到數據總線BUS上。此外,BUS上還連接著雙端口通用寄存器組。這樣,寫入RAM的數據可由通用寄存器提供,而從RAM讀出的數據也可送到通用寄存器保存。

RAM和DR2在前面的實驗中使用過。對于通用寄存器組RF,它由一個在系統可編程(In System Programable)芯片ispLSI 1016固化了通用寄存器組的功能而成,其功能與雙端口寄存器組MC14580相類似,內含四個8位的通用寄存器,帶有一個輸入端口和兩個輸出端口,從而可以同時寫入一路數據,讀出兩路數據。輸入端口取名為WR端口,連接一個8位的緩沖寄存器ER(已集成在ispLSI 1016芯片中),輸出端口取名為RS端口、RD端口,分別連接運算器模塊的兩個操作數寄存器DR1、DR2,其中,連接DR1的RS端口還可通過一個8位的三態門RSO直接向BUS輸出。

雙端口通用寄存器組模塊的控制信號中,RS1、RS0用于選擇從RS端口讀出的通用寄存器,RD1、RD0用于選擇從RD端口讀出的通用寄存器,上述選擇信號在T1脈沖的上升沿到來時生效。而WR1、WR0則用于選擇從WR端口寫入的通用寄存器。WRD是寫入控制信號,WRD=1時,在T2上升沿的時刻,從ER寫入數據;WRD=0時,ER中的數據不寫入通用寄存器中。LDER信號控制ER從BUS寫入數據,RS-BUS信號則控制RS端口到BUS的輸出三態門。以上控制信號各自連接一個二進制開關。

三、實驗設備

(1)JYS-4計算機組成原理實驗儀一臺

(2)雙蹤示波器一臺

(3)直流萬用表一只

(4)邏輯測試筆一支

四、實驗任務

(1)將實驗電路與操作面板的有關信號進行線路連接,方法同前面的實驗。

(2)用8位數據開關向RF中的四個通用寄存器分別置入以下數據(十六進制):R0=0F,R1=F0,R2=55,R3=AA。

給R0置入0F的步驟是:先用8位數碼開關將0F置入ER,并且選擇WR1=WR0=0,再將ER的數據置入RF。給其他通用寄存器置入數據的步驟與此類似。

(3)分別將R0至R3中的數據同時讀入到DR2寄存器和BUS上,觀察其數據是否存入R0至R3中的數據,并記錄數據。其中BUS上的數據可直接用指示燈顯示,DR2中的數據可用邏輯筆測試有關引腳。

(4)用8位數碼開關向AR1送入一個地址0F,然后將R0中的0F寫入RAM。用同樣的方法,依次將R1至R3中的數據寫入RAM中的F0、55、AA單元。

(5)分別將RAM中AA單元的數據寫入R0,55單元的數據寫入R1,F0單元寫入R2,0F單元寫入R3。然后將R3、R2、R1、R0中的數據讀出到BUS上,通過指示燈驗證讀出的數據是否正確,并記錄數據。

(6)進行RF并行輸入輸出試驗。

1.選擇RS端口對應R0,RD端口對應R1,WR端口對應R2,并使WRD=1,觀察并行輸入輸出的結果。選擇RS端口對應R2,驗證剛才的寫入是否生效。記錄數據。

2.保持RS端口和WR端口同時對應R2,WRD=1,而ER中置入新的數據,觀察并行輸入輸出的結果,RS端口輸出的是舊的還是新的數據?

(7)在數據傳送過程中,發現了什么故障?如何克服的?

五、實驗要求

(1)做好實驗預習和準備工作,掌握實驗電路的數據通路特點和通用寄存器組的功能特性。

(2)寫出實驗報告,內容為

1.實驗目的;

2.如碰到故障,記錄故障現象,排除故障的分析思路,故障定位及故障的性質;

3.實驗數據記錄;

4.值得討論的其他問題。

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

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

相關文章

計算機網絡安全本科大學排名,2021網絡工程專業大學排名 最好大學排行榜

2021網絡工程專業大學排名 最好大學排行榜2021-06-11 19:35:09文/丁雪竹網絡工程專業在全國最好的大學是哪幾所呢,最好的大學排名是什么樣呢,小編整理網絡工程專業大學最好大學排行榜,僅供參考!網絡工程專業最好大學排行榜在網絡工…

20線程測試cpu性能軟件,評測平臺介紹、CPU多線程性能測試

2、平臺介紹及CPU性能測試AMD AM3平臺CPUAMD FX-8150(4模塊/8核)AMD FX-8350(4模塊/8核)主板華碩 Crosshair V Formula(BIOS版本:1605)Intel LGA1155平臺CPUIntel Core i5 3570K(4核/4線程)Intel Core i7 3770K(4核/8線程)主板華碩 P8Z77-V Deluxe共用配件硬盤主盤&…

大型網站服務器 pdf,大型網站服務器容量規劃[PDF][145.25MB]

內容簡介內 容 提 要本書講解了用數學回歸分析方法來做服務器容量規劃的思路,讓讀者掌握服務器容量規劃的量化方法;模型的選擇是服務器容量規劃的關鍵,不同的程序有不同的模型。本書使用nginxPHPMySQL為實例演示了具體的規劃過程,…

穿越火線全部服務器都顯示爆滿,穿越火線大區全部爆滿,頻道擠不進去背后的故事!...

大家好我是小包子,穿越火線經歷了十一周年,盛典游戲更新后,我們發現游戲基本上所有大區都呈現爆滿的盛世。我們熱愛的穿越火線又回來了嗎?6月小包子曾爆料CF啟動量超過吃雞躍居第二,射擊游戲第一,重回巔峰的…

dod刷服務器文件,DoD 5220.22-M和Gutmann兩種硬盤擦除算法

DoD 5220.22-M的說明Use this seven-pass method for tighter security. Different patterns ofbytes are written to the disk as described in the table below. Usingthis method is probably even safer than using the simple method (with 6passes).This method is descr…

服務器加根網線用不用修改路由器,安裝設置無線路由器需要用幾根網線?

“安裝設置無線路由器需要用幾根網線?看到網上安裝設置路由器的教程,有的說需要兩根網線,有的說需要一根網線,請問到底應該使用一根還是兩根呢?”其實這個問題的答案并不是唯一的,使用一根還是兩根&#xf…

大數運算#

大數,就是C/C中利用基本類型所不能存儲的數字,少則數十位,大則幾萬位,如何存儲和計算大數就是本文的內容。 在C和C中,沒有存儲大數的數據結構,就算 unsigned long long也只能表示19位的數字 ?如果我們用d…

乘法口訣表的C語言編程

#include "stdio.h"int main() {int i,j,q0;for(i 1;i < 10; i){for(j 1;j < 10;j){q i*j;printf("%d*%d%d\n",i,j,q);}}} 按照課本上的排列做出的優化 #include "stdio.h"int main() {int i,j;for(i 1;i < 10; i){for(j 1;j <…

打印100-200之間的素數

素數 是指除了1和它本身以外,不能被任何整數整除的數 例如17就是素數,因為它不能被2~16的任一整數整除。 #include "stdio.h"int main() {int i,j;for(i 100; i < 200; i){for(j 2;j < i-1;j){if(i%j 0)break;}if(j i)printf("%d\n",i);}} C語言…

判斷1000-2000之間的閏年(優化寫法)

閏年普通年&#xff08;不能被100整除的年份&#xff09;能被4整除的為閏年。&#xff08;如2004年就是閏年,1999年不是閏年&#xff09;&#xff1b;世紀年&#xff08;能被100整除的年份&#xff09;能被400整除的是閏年。(如2000年是閏年&#xff0c;1900年不是閏年)&#x…

四種方法實現數組交換

方法一&#xff1a; //該方法主要用邏輯運算將數組對應的每個元素進行交換&#xff0c;然后用for循環將整個數組元素進行交換#include<stdio.h>int main(){ int i,j,k;int A[10];int B[10];int C[10];printf("請輸入A數組的內容&#xff1a;\n");for(i0;i<1…

結構體變量初始化

// // main.c // C語言學習 #include <stdio.h> int main(int argc, const charchar * argv[]) { //定義結構體類型 struct Person { charchar *name; int age; double heigth; }; //初始化的4種方式 //1.定義的同時初始化 struct Person p1 {"z…

C語言的細小知識點整理

1、register修飾符暗示編譯程序相應的變量將被頻繁地使用&#xff0c;如果可能的話&#xff0c;應將其保存在CPU的寄存器中&#xff0c;以加快其存儲速度 2、static是某個特定函數的局部變量&#xff0c;即只能在定義該變量的函數內使用該變量 static int a 40; char …

二維數組初始化規則

二維數組初始化的形式為&#xff1a;數據類型 數組名[整常量表達式][ 整常量表達式]{ 初始化數據 }&#xff1b;在{ }中給出各數組元素的初值&#xff0c;各初值之間用逗號分開。把{ }中的初值依次賦給各數組元素。有如下幾種初始化方式&#xff1a;⑴ 分行進行初始化int a[2][…

linux之緩沖區

行緩沖。在這種情況下&#xff0c;當在輸入和輸出中遇到換行符時&#xff0c;標準I/O庫執行I/O操作。這允許我們一次輸出一個字符&#xff0c;但只有在寫了一行之后才進行實際I/O操作。當流涉及一個終端時&#xff0c;通常使用行緩沖。 第一個例子&#xff1a;&#xff08;he…

輸出一個整數的每一位(3種方法)

1.使用數組按個數輸入再按照個數輸出 int i, j, k, num, count;int a[10];printf("幾位數\n");scanf("%d", &k);for (i 1; i < k; i){scanf("%d", &a[i]);}for (i k; i > 1; i--){printf("%d\n", a[i]);} 2.使用遞歸…

linux之地址空間

程序&#xff1a;一組指令的有效集合。它是靜態的&#xff0c;不具有任何的運行意義。程序最終轉換為二進制文件。 進程&#xff1a;程序的執行就是進程。可以把它看成獨立的程序&#xff0c;在內存中有其對應的代碼空間和數據空間。一個進程所擁有的數據和代碼只屬于自己。進…

C語言操作符 進階 (常見錯誤及細節)

1.算術操作符- * / % % 只適用于整數類型運算&#xff0c;其余運算符也可用于浮點運算。2.移位操作符 左移&#xff1a;左邊丟棄&#xff0c;右邊補0&#xff1b; 右移&#xff1a;不同編譯器采取的移位方式不同&#xff0c;所有有了“右移”的程序不可移植1.邏輯移位&#xff…

輸出該數二進制表示中1的個數。求取十進制數字元素1的個數 (3種方法)

/* ***求取十進制數字元素1的個數 */int fun(int x) {int count 0;int i, j, k;/***方法2 負數不可計算&#xff0c;需要改進*/while (x ! 0){if (x & 1 1){count;}x x >> 1;}/****方法1*/while (x ! 0){x x&(x - 1);count;}return count; }int main() {in…

C語言隨機數生成超詳解

1.首先來看一段簡單的代碼 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h>int main(void) {int i;printf(" %6d\n", rand());system("pause"); }printf(" %6d\n", rand());sys…