模型計算機
- 計算機結構
- 模型計算機中的指令流和資料流
本文主要簡單了解計算機的構成和模型計算機中的指令流和資料流
計算機結構
偉大的電子數字計算機發明人:馮諾依曼,他和他的團隊制造出了世界上第一臺電子數字計算機ENIAC,到現在為止,計算機的體系雖然有重大發展與進步,但仍然沒有完全脫離馮氏計算機體系結構,
1、馮氏計算機體系結構:
a)構成:控制器、運算器、存盤器、輸入設備、輸出設備五大件
b)馮氏計算機兩個重要特點
- 指令和資料均用二進制表示;
- 程式按順序事先存放在存盤器中,并可以逐一取出,
c)馮氏計算機體系結構圖:

圖中方框代表五大功能部件,虛線表示控制信號線(即發送指令或報告狀態的信號線),實線是被處理的資料或物件流動的信號線,
2、從更高的抽象層次來講
現代計算機可以用這樣一個框圖來表示,它由存盤器,中央處理器、輸入輸出設備組成

a) 存盤器:程式、輸入和輸出資料以及計算程序中產生的中間結果都存放在存盤器中
b) 中央處理器:資料通道和控制器
- 控制器或控制單元:控制各個模塊的作業并監視它們的狀態
- 資料通路:按程式的設定進行計算和資料處理
c) 輸入輸出設備:負責程式與資料的輸入與輸出
比如此模型機圖,左邊部分相當于存盤器,右邊部分相當于資料通路,上面部分相當于控制器(沒有包括輸入輸出設備,很容易添加)

簡單介紹一下作業流程(類似大腦與器官的關系):
該模型機分兩個階段作業,取指與執行
取指:從RAM里取出指令,然后進入指令暫存器,通過指令譯碼器產生各種控制信號來控制各個模塊;
執行:根據控制信號,各個模塊進行自己的作業,
模型計算機中的指令流和資料流
以上圖模型機來講述:
最外圍是總線,是指令與資料傳輸的公共通道,(指令和資料可以先以字面意思理解),1
指令流:存盤器取出——指令暫存器——指令譯碼器——向其他各個電路模塊發出各種各樣的控制信號,這些信號包括(上圖為例):
- 通用暫存器的控制信號 /WE,RAA1,RAA0,RWNA1,RWBA0
- 函式發生器控制信號 S0~S3,M
- 移位邏輯控制信號 F->BUS,FL->BUS.FR->BUS
- 指令計數器控制信號 LD_PC,IN_PC
- 選擇器控制信號 MADD
- 存盤器控制信號 DL,XL,/CS
- 指令暫存器控制信號 LD_IR
資料流:四種路路徑:
- 存盤器——總線——通用暫存器組——函式發生器——移位邏輯——通用暫存器
- 存盤器——總線——通用暫存器組——函式發生器——移位邏輯——存盤器
- 通用暫存器組——函式發生器——移位邏輯——總線——存盤器
- 通用暫存器組——函式發生器——移位邏輯——總線——通用暫存器
不管是哪種情況,資料流都要經過資料通路(通用暫存器組——函式發生器——移位邏輯),資料通路的作用決定了資料必須經過資料通路

下面聊一下程式執行順序不同時,指令流的不同流動情況,因為指令來源于存盤器,我們先把存盤器了解一下,做個比喻:
存盤器——大樓
存盤單元——房間(編號0-某個最大值)
存盤單元的地址——房間號碼
存盤單元中存放著一條指令,從哪個單元取出指令,是由指令計數器PC決定的;正如一個房間號碼對應一個房間一樣,
兩種流動情況:
- 計數器順序技術,按照順序讀取指令,當陳述句執行時,意味著指令要從存盤器中按順序取出來,先取出第一條,再取出第二條,指令計數器從0開始按順序進行加1計數,先是0,然后是1,再然后是2等等,計數值作為指令存放的地址送到存盤器的地址埠,供取指令時使用,
- 當需要分支時,指令計數器中的計數值失效,程式分支的目的地址從存盤器取出來,然后再送到計數器中,計數器從新的初始值開始繼續計數,
這兩種情況具體采用哪種是由控制器產生的控制信號LD_PC和IN_PC決定的,當LD_PC控制時,新的指令地址匯入計數器;當IN_PC控制時,計數器正常+1,(模型機正常作業情況下IN_PC和LD_PC不能同時控制)
注意:當需要從存盤器中取出資料,注意是資料不是指令,或者要向存盤器存放運算結果時,存盤單元的地址是由通用暫存器組提供的,就是圖中的選擇器的1和2埠(由MADD決定),
指令:一般由運算元和操作碼組成
操作碼:
計算機程式所規定的的要執行的那一部分指令或欄位(通常用代碼表示),其實就是指令序列號,用來告訴CPU需要執行哪一條指令,
指令系統的每一條指令都有一個操作碼,它表示該指令應進行什么性質的操作,不同的指令用操作碼這個欄位的不同編碼來表示,每一種編碼代表一種指令,組成操作碼欄位的位數一般取決于計算機指令系統的規模,
運算元:
運算元指出指令執行的操作所需要的資料的來源,運算元是匯編語言指令的一個欄位,在運算元這個欄位中可以放運算元本身,也可以放操作地址,還可以放操作地址的計算方法,
運算元是指令執行的參與者,也就是各種操作的物件, ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/237234.html
標籤:其他
上一篇:淺談C語言的基本資料型別
