圖解電腦結構與體系分類!!
寫在前面
今天,我們繼續更新【程式設計師進階系列】專題,冰河帶你從零入坑程式設計師。接下來,我們一起聊聊電腦的結構和體系分類。
文章已收錄到:
//github.com/sunshinelyz/technology-binghe
//gitee.com/binghe001/technology-binghe
電腦結構
電腦結構主要由運算器、控制器、存儲器、輸入設備和輸出設備組成。簡化的結構圖如下圖所示。
接下來,我們再看看看其詳細的結構圖如下所示。
其中,主存儲器又叫做記憶體儲器,也就是記憶體;輔助存儲器又叫做輔存,也就是外存儲器,例如磁碟;CPU的核心部件為運算器和控制器。
CPU由運算器、控制器、暫存器組和內部匯流排組成。
運算器包含:算術邏輯單元、累加暫存器、數據緩衝暫存器、狀態條件暫存器。
- 算術邏輯單元(ALU):數據的算術運算和邏輯運算。
- 累加暫存器(AC):通用暫存器,為ALU提供一個工作區,用於暫存數據。
- 數據緩衝暫存器(DR):寫記憶體時,暫存指令或數據。
- 狀態條件暫存器(PSW):存儲狀態標誌和控制標誌,有時也可以將狀態條件暫存器歸為控制器部分。
控制器包含:程式計數器、指令暫存器、指令解碼器、時序部件。
- 程式計數器(PC):存儲下一條要執行的指令的地址。
- 指令暫存器(IR):存儲即將執行的指令。
- 指令解碼器(ID):對指令中的操作碼欄位進行分析解釋。
- 時序部件:提供時序控制訊號。
電腦體系結構分類
首先,我們先來看一個在電腦領域中,對電腦的體系結構進行分類的一種經典方法,就是Flynn分類法,Flynn分類法將電腦分成單指令流單數據流、單指令流多數據流、多指令流單數據流、多指令流多數據流。
具體資訊如下表所示。
體系結構類型 | 結構 | 關鍵特性 | 代表 |
---|---|---|---|
單指令流單數據流(SISD) | 控制部分:一個 處理器:一個 主存模組:一個 | 單處理器系統 | |
單指令流多數據流(SIMD) | 控制部分:一個 處理器:多個 主存模組:多個 | 各處理機以非同步的形式執行同一條機靈 | 並行處理機、陣列處理機、超級向量處理機 |
多指令流單數據流(MISD) | 控制部分:多個 處理器:一個 主存模組:多個 | 被證明是不可能的,至少是不實際的 | 目前沒有,有資料記載流水線處理機為此類 |
多指令流多數據流(MIMD) | 控制部分:多個 處理器:多個 主存模組:多個 | 能夠實現作業、任務、指令等各級全面並行 | 多處理機系統、多電腦 |
指令的基本概念
一條指令就是機器語言的一個語句,它是一組有意義的二進位程式碼,指令的格式如下所示。
其中,操作碼部分指出了電腦要執行什麼性質的操作,例如,加法、減法、取數、存數等。地址碼欄位需要包含各操作數的地址及操作結果的存放地址等,從其地址結構的角度可以分為三地址指令、二地址指令、一地址指令和零地址指令。
三地址指令
例如,執行a+b=c操作時,就是使用的三地址指令。此時如下所示。
二地址指令
例如,執行a+=b操作時,執行的就是二地址指令,此時如下所示。
一地址指令
例如,執行a++操作時,執行的就是一地址指令,此時如下所示。
零地址指令
例如,宕機就是零地址指令。
定址方式
總體來說,定址方式可以分為:立即定址、直接定址、間接定址、暫存器定址、暫存器間接定址。
- 立即定址:操作數直接在指令中,速度快,靈活性差。
- 間接定址:指令中存放的是操作數的地址。
- 間接定址:指令中存放了一個地址,這個地址對應的內容是操作數的地址。
- 暫存器定址:暫存器存放操作數。
- 暫存器記憶體放的是操作數的地址。
CISC與RISC
CISC和RISC分別表示複雜指令集系統和精簡指令集系統,具體資訊如下表所示。
指令系統類型 | 指令 | 存執方式 | 實現方式 | 其他 |
---|---|---|---|---|
CISC(複雜) | 數量多、使用頻率差別大,可變長格式 | 支援多種 | 微程式控制技術(微碼) | 研發周期長 |
SISC(精簡) | 數量少,使用頻率接近,定長格式,大部分為單周期指令,操作暫存器,只有Load/Store操作記憶體。 | 支援方式少 | 增加了通訊暫存器、硬布線邏輯控制為主,適合採用流水線 | 優化編譯,有效支援高級程式語言 |
如何比較CISC和RISC,分哪些維度?
指令數量、指令使用頻率、存執方式、暫存器、流水線支援、高級語言支援。
- CISC:複雜、指令數量多,頻率差別大、多定址。
- RISC:精簡、指令數量少。操作暫存器,單周期,少定址,多通用暫存器,流水線,
好了,今天就到這兒吧,我是冰河,大家有啥問題可以在下方留言,也可以加我微信:sun_shine_lyz,我拉你進群,一起交流技術,一起進階,一起牛逼~~