CPU與簡單模型機設計實驗實驗報告

2022-09-29 08:48:04 字數 2845 閱讀 2231

一、 實驗目的:

(1) 掌握乙個簡單cpu 的組成原理。

(2) 在掌握部件單元電路的基礎上,進一步將其構造一台基本模型計算機。

(3) 為其定義五條機器指令,編寫相應的微程式,並上機除錯掌握整機概念。

二、實驗內容:

本實驗要實現乙個簡單的cpu,並且在此cpu 的基礎上,繼續構建乙個簡單的模型計算機。cpu 由運算器(alu)、微程式控制器(mc)、通用暫存器(r0),指令暫存器(ir)、程式計數器(pc)和位址暫存器(ar)組成,如圖2-1-1 所示。這個cpu 在寫入相應的微指令後,就具備了執行機器指令的功能,但是機器指令一般存放在主存當中,cpu 必須和主存掛接後,才有實際的意義,所以還需要在該cpu 的基礎上增加乙個主存和基本的輸入輸出部件,以構成乙個簡單的模型計算機。

圖1-4-1 基本cpu 構成原理圖

除了程式計數器(pc),其餘部件在前面的實驗中都已用到,在此不再討論。系統的程式計數器(pc)由兩片74ls161 和一片74ls245 構成,其原理如圖1-4-2 所示。pc_b 為三態門的輸出使能端,clr 連線至con 單元的總清端clr,按下clr 按鈕,將使pc 清零,ldpc 和t2 相與後作為計數器的計數時鐘,當load 為低時,計數時鐘到來後將cpu 內匯流排上的資料打入pc。

圖1-4-2 程式計數器(pc)原理圖

本模型機和前面微程式控制器實驗相比,新增加一條跳轉指令jmp,共有五條指令:in(輸入)、add(二進位制加法)、out(輸出)、jmp(無條件轉移),hlt(停機),其指令格式如下(高4位為操作碼):

助記符機器指令碼說明

in0010 0000in→r0

add0000 0000r0 + r0→r0

out0011 0000r0→out

jmp addr1100 0000addr→ pc

hlt0101 0000停機

其中jmp 為雙位元組指令,其餘均為單位元組指令,********為addr 對應的二進位制位址碼。微程式控制器實驗的指令是通過手動給出的,現在要求cpu 自動從儲存器讀取指令並執行。根據以上要求,設計資料通路圖,如圖1-4-3 所示。

本實驗在前乙個實驗的基礎上增加了三個部件,一是pc(程式計數器),另乙個是ar(位址暫存器),還有就是mem(主存)。因而在微指令中應增加相應的控制位,其微指令格式如表1-4-1 所示。

圖1-4-3 資料通路圖

系統涉及到的微程式流程見圖1-4-4 所示,當擬定「取指」微指令時,該微指令的判別測試欄位為p<1>測試。指令解碼原理見圖1-3-3 所示,由於「取指」微指令是所有微程式都使用的公用微指令,因此p<1> 的測試結果出現多路分支。本機用指令暫存器的高6 位(ir7—ir2)作為測試條件,出現5路分支,占用5個固定微位址單元,剩下的其它地方就可以一條微指令占用控存乙個微位址單元隨意填寫,微程式流程圖上的單元位址為16 進製。

當全部微程式設計完畢後,應將每條微指令**化,表1-4-2 即為將圖1-4-2 的微程式流程圖按微指令格式轉化而成的「二進位製微**表」。

圖1-4-4 簡單模型機微程式流程圖

表1-4-2 二進位製微**表

設計一段機器程式,要求從in 單元讀入乙個資料,存於r0,將r0 和自身相加,結果存於r0,再將r0 的值送out 單元顯示。根據要求可以得到如下程式,位址和內容均為二進位制數。

位址內容助記符說明

00000000 00100000start: in r0 從 in 單元讀入資料送 r0

00000001 00000000add r0,r0 r0 和自身相加,結果送 r0

00000010 00110000out r0 r0 的值送 out 單元顯示

00000011 11100000jmp start 跳轉至 00h 位址

00000100 00000000

00000101 01010000hlt停機

四、具體實現:

(1)開啟in單元,輸入運算元(以03為例),

啟動程式計數器(pc),然後自動啟動加1操作,將指令位址放到位址暫存器(ar)

(2)從儲存器當中讀取指令,並將它存到指令暫存器(ir)當中,然後對指令進行編譯處理,形成控制訊號,來控制各個部件的工作;

(3)啟動讀操作,將in單元當中的運算元(03)讀到r0暫存器中

(4)接著從pc中取出第二條指令的位址,並自動加1,並將它存放到ar當中;

(5)從儲存器中取出第一條指令,並將它存放到ir中,並進行編譯

(6)將儲存器r0的03值送到a和b中;

(7)啟動alu運算器,執行加操作,並將運算結果送往r0當中;

(8)同樣從pc當中第三條(將運算結果out單元顯示),取指令流程與上述指令上述類似;

五、專案要求及分析:

1、試修改現有的指令系統,將加法指令的功能修改為r0的內容和某個儲存單元的內容相加;增加存數、取數和減法三條機器指令,指令助記符分別為sta、lad 和sub,指令操作碼分別為十六進製制的60、70和80。

設計流程圖如下:(紅筆為修改的重點部分)

6、所遇問題及解決方法:

這次實驗含有部分的驗證性實驗,此部分與以往無較大差別,較為好做,易於完成。但同時此實驗還含有難度較高的設計性部分,因而做起來較為頭痛辛苦。

在設計程式流程圖時遇到很多困難,在程式設計時亦遇到組合語言和高階語言之間的轉換、組合語言和微指令之間的轉換,均因無經驗產生了許多問題,通過問老師、問學姐、問同學,經由他們的指導與幫助,初步完成了設計性實驗,並且進行了初步的驗證,基本解決了問題。

從此次實驗中不難看出,設計性實驗對於目前的我還是存在較多的挑戰,雖有了相應的理論知識,但是理論與實際的差距還是較為明顯的,將理論知識應用於實際的問題還存在較大的障礙。在今後的學習中,應該更加重視理論向實際的轉換,並且自己多思考多動手,不能總是紙上談兵,從而提公升自己的實踐動手能力,具備相應的實際應用能力。

CPU與簡單模型機設計實驗報告

電腦科學與技術系 實驗報告 專業名稱電腦科學與技術 課程名稱計算機組成與結構 專案名稱 cpu與簡單模型機設計實驗 班級學號姓名 同組人員無 實驗日期 2015 11 15 一 實驗目的 1.掌握乙個簡單cpu的組成原理 2.在掌握部件單元電路的基礎上,進一步將其構造一台基本模型計算機 3.為其定義...

統計模型與實驗作業

2012 2013學年第二學期 班級 統計 1101 班 姓名 張昌會 學號 201105514 數理學院數學系 1.某康體中心的 班學員入班時的體重資料和 訓練乙個月後的體重資料記錄在資料檔案中,試分析乙個月的訓練是否有效。從這些資料中還可以進行哪些進一步的分析 例如,考慮不同年齡 性別的訓練效果...

實驗一資料定義與簡單查詢實驗

一 實驗目的 1 要求學生熟練掌握和使用sql語言 sql server企業管理器建立資料庫 表索引和修改表結構,並學會使用sql server 查詢分析器。2 掌握檢視 修改資料庫和表的屬性的方法 3 在建立好的資料庫表中輸入部分虛擬資料,學會如何實現基於單錶的簡單查詢。二 實驗內容 1 使用sq...