圖解電腦結構與體系分類!!

寫在前面

今天,我們繼續更新【程式設計師進階系列】專題,冰河帶你從零入坑程式設計師。接下來,我們一起聊聊電腦的結構和體系分類。

文章已收錄到:

//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,我拉你進群,一起交流技術,一起進階,一起牛逼~~