01.计算机体系结构概述.md
文章目錄
- 1. 計算機的基本構成
- 1.1 cpu概覽
- 2. 指令的執行過程
- 2.1 指令周期
- 2.2 指令分類
- 2.3 指令的格式
- 2.4 參考其他周期
- 3. 中斷
- 3.1 中斷的分類
- 3.2 中斷和指令周期
- 3.3 中斷響應的一般過程
- 3.4 多個中斷
- 4. 緩存
- 5. 直接內存存取DMA技術
- 6. 計算機的并行處理手段
- 6.1. 對稱多處理器SMP:
- 6.1.1 SMP的架構
- 6.1.2 SMP的優點
- 6.1.3 SMP各自擁有獨立的緩存導致的數據一致性問題:
- 6.2. 多核計算機
- 6.2.1 多核和smp之間的區別
1. 計算機的基本構成
1.1 cpu概覽
cpu處理器的一種功能是和存儲器交換數據,因此他通常使用兩個內部寄存器:
1.存儲器地址寄存器(Memory Address Register):用于確定下一次讀寫的存儲器地址。
2.存儲器緩沖寄存器(Memory Buffer Register): 存放從存儲器讀進來的數據或者是要寫入到寄存器中的數據。
同樣,還有一組寄存器用來和輸入和輸出設備
1.輸入輸出地址寄存器(I/O Address Register ): 用于確定一個特定的輸入輸出設備
2.輸入輸出緩沖寄存器(I/O Buffer Register): 用于在輸入輸出模塊和處理器間交換數據
還有兩個比較重要的寄存器
1.程序計數器PC
2.指令寄存器IR
2. 指令的執行過程
2.1 指令周期
處理器執行的程序都是由一些列的指令構成的。最簡單的指令處理包括兩步,
1.處理器從存儲器中一次讀取一條指令。
2.然后執行這條指令。
??程序的執行就是不斷的取指令和執行指令的過程。指令的執行過程可能有很多操作,這個取決于指令。
上面描述的單個指令需要的處理稱為一個指令周期。每個指令周期分為取指階段和執行階段。
在每個指令周期開始的時候,處理器從存儲器讀取一條指令,這條指令在存儲器中的地址在PC(程序計數器)中保存。在典型的處理器當中,程序計數器總是保存下一條指令在存儲器的地址。
一般一條完整的指令包括:取指周期、執行周期、中斷周期。
CPU采用中斷方式實現主機與I/O交換信息時,CPU在每條指令執行階段結束前, 都要發中斷查詢信號,以檢測是否有某個I/O提出中斷請求。如果有請求,CPU則要進入中斷響應階段,又稱中斷周期。在這階段, CPU必須將程序斷點保存到存儲器中。
下面講中斷的時候會再介紹到這一點
可以參考這篇文章加深對取指周期,執行周一的理解
指令周期
2.2 指令分類
指令可以大體分為以下幾類
2.3 指令的格式
指令包括兩個部分,操作碼+操作數,總長一般是cpu能夠處理的字的長度。
作碼定義了cpu將對操作數做怎樣的識別和操作。
2.4 參考其他周期
指令周期 :CPU從內存取出一條指令并執行這條指令的時間總和。
CPU周期 :又稱機器周期,CPU訪問一次內存所花的時間較長,因此用從內存讀取一條指令字的最短時間來定義。
時鐘周期: 通常稱為節拍脈沖或T周期。一個CPU周期包含若干個時鐘周期
3. 中斷
3.1 中斷的分類
中斷最初是用于提高cpu使用率的一種手段。
3.2 中斷和指令周期
中斷要想得到生效,cpu就必須要響應中斷,為了適應中斷的產生,cpu的指令周期中增加一個中斷檢測的階段。
過程是: 取指周期–> 執行周期—>中斷檢測周期—>取指周期
在取指周期和執行周期階段,因為cpu不會響應中斷,所以這個階段程序也是不會被打斷的。處理器在響應中斷前一定結束了當前指令的執行。
當然,cpu也是可以設置屏蔽中斷的,設置了屏蔽中斷,就不會響應中斷了,這個在單核計算機中可以用來做原子操作。因為不會發生線程的切換了。
3.3 中斷響應的一般過程
以I/O操作舉例
3.4 多個中斷
處理多個中斷的時候,有兩種選擇。
4. 緩存
??緩存一般都是做了分級處理,越快越貴,緩存對于操作系統來說是透明的,是由硬件來管理的。
在多核計算機或者對稱多處理器中,每個處理器至少有一個專用的一級緩存,高速緩存就帶來了一些新的問題,由于每個本地緩存包含了一部分內存的副本,如果修改了高速緩存中的一個字,就會使該字在其他緩存中也變得無效。
??為了避免這種情況,在發生更新的時候必須告訴其他處理器發生了更新。這個問題稱為高速緩存一致性問題。通常通過硬件而非操作系統來解決這個問題。
這篇文章介紹了cpu緩存結構和MESI協議,該協議用來保證高速緩存的一致性。
5. 直接內存存取DMA技術
DMA技術主要是應對為了在內存和io之間傳輸數據的時候必須要經過cpu這個中間人,而cpu實際上不做任何工作,因此可以通過DMA模塊來輔助完成,效率更高,而且cpu也被解放出來了。
6. 計算機的并行處理手段
6.1. 對稱多處理器SMP:
6.1.1 SMP的架構
6.1.2 SMP的優點
性能好,可伸縮性好,等等
6.1.3 SMP各自擁有獨立的緩存導致的數據一致性問題:
這個在上面介紹緩存的時候也已經介紹過了,需要從硬件層面進行保證
這里介紹的也很好。
6.2. 多核計算機
??多核計算機是將多個處理器組裝在同一片硅上的計算機。又稱為芯片多處理器。每個核上通常包含了一個獨立處理器的所有零件,如寄存器,ALU,流水線硬件,控制單元,以及L1緩存和數據高速緩存器。
6.2.1 多核和smp之間的區別
smp是個處理器:多個單核處理器,就是說電腦和處理器有多個,但是這個電腦的處理器是單核的;
多核處理器:單個多核處理器,也就是說電腦有一個處理器芯片,但是這個處理器芯片上是多核的;
二者的主要區別實際上體現在處理器的通信效率上面:
??對于多個處理器而言,它們在執行命令的時候多個處理器之間的通信手段是電腦主板上的總線;
而對于多核處理器而言,多個核心處理器之間通信時通過CPU內部總線進行信息的交互的(快速通道互聯QPI),核與核之間實現的是點對點的連接,每次傳輸16位的情況下,可以實現12.8g/s的傳輸速度。
總結
以上是生活随笔為你收集整理的01.计算机体系结构概述.md的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kafka_rebalance过长问题排
- 下一篇: 02.操作系统概述.md