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