寫在前面
今天,我們繼續更新【程式設計師進階系列】專題,冰河帶你從零入坑程式設計師。接下來,我們一起聊聊計算機的結構和體系分類。
文章已收錄到:
https://github.com/sunshinelyz/technology-binghe
https://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,我拉你進群,一起交流技術,一起進階,一起牛逼~~