日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

01.计算机体系结构概述.md

發(fā)布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 01.计算机体系结构概述.md 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 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)成

  • 處理器:控制計算機操作,執(zhí)行數(shù)據(jù)處理等功能。
  • 內(nèi)存:存儲數(shù)據(jù)和程序,是易丟失的。
  • 輸入/輸出模塊(I/O): 在計算機和外部環(huán)境之間移動數(shù)據(jù)。外部環(huán)境有各種外部輔助設(shè)備,比如硬盤,顯示器,鼠標。
  • 系統(tǒng)總線:在處理器,內(nèi)存,輸入輸出設(shè)備之間提供通信的設(shè)施。
  • 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 指令分類

    指令可以大體分為以下幾類

  • 處理器存儲器數(shù)據(jù)交換
  • 處理器I/O設(shè)備數(shù)據(jù)交換
  • 數(shù)據(jù)處理,處理器執(zhí)行很多于數(shù)據(jù)相關(guān)的算術(shù)操作或者邏輯操作
  • 控制,某些指令可以改變執(zhí)行的順序,設(shè)置PC中的地址
  • 2.3 指令的格式

    指令包括兩個部分,操作碼+操作數(shù),總長一般是cpu能夠處理的字的長度。
    作碼定義了cpu將對操作數(shù)做怎樣的識別和操作。

    2.4 參考其他周期

    指令周期 :CPU從內(nèi)存取出一條指令并執(zhí)行這條指令的時間總和。
    CPU周期 :又稱機器周期,CPU訪問一次內(nèi)存所花的時間較長,因此用從內(nèi)存讀取一條指令字的最短時間來定義。
    時鐘周期: 通常稱為節(jié)拍脈沖或T周期。一個CPU周期包含若干個時鐘周期

    3. 中斷

    3.1 中斷的分類

  • 程序中斷:在某些條件下由指令執(zhí)行的結(jié)果產(chǎn)生,如算術(shù)溢出,除數(shù)為0,試圖執(zhí)行一些非法的機器指令及訪問不允許的存儲器的位置
  • 時鐘中斷:由處理器內(nèi)部的計時器產(chǎn)生,控制操作系統(tǒng)以一定的規(guī)律執(zhí)行函數(shù)
  • I/O中斷:由IO控制器產(chǎn)生,用于發(fā)信號通知一個操作正常完成或出現(xiàn)的各種錯誤條件
  • 硬件失效中斷:由一些比如掉電或者發(fā)生存儲器奇偶校驗錯誤之類的故障產(chǎn)生
  • 中斷最初是用于提高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操作舉例

  • 設(shè)備給處理器發(fā)起一個中斷信號
  • 處理器在響應(yīng)中斷前結(jié)束當前指令的執(zhí)行
  • 處理器進行中斷測試,確定存在未響應(yīng)的中斷,并給提交中斷的設(shè)備發(fā)送確認信號,確認信號允許該設(shè)備取消他的中斷信號
  • 保護斷點,即保存下一將要執(zhí)行的指令的地址,就是把這個地址送入堆棧。
  • 尋找中斷入口,根據(jù)5個不同的中斷源所產(chǎn)生的中斷,查找5個不同的入口地址。以上工作是由計算機自動完成的,與編程者無關(guān)。在這5個入口地址處存放有中斷處理程序(這是程序編寫時放在那兒的,如果沒把中斷程序放在那兒,就錯了,中斷程序就不能被執(zhí)行到)。將中斷程序入口的地址放入程序計數(shù)器。
  • 執(zhí)行中斷處理程序。
  • 中斷返回:執(zhí)行完中斷指令后,就從中斷處返回到主程序,繼續(xù)執(zhí)行。
  • 3.4 多個中斷

    處理多個中斷的時候,有兩種選擇。

  • 在處理中斷的時候屏蔽對別的中斷的響應(yīng)。
  • 中斷分級,級別高的中斷可以再中斷級別低的中斷。
  • 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)

  • 具有兩個及其以上的性能相當?shù)奶幚砥?/li>
  • 這些處理器共享內(nèi)存和IO設(shè)備,并通過總線或其他內(nèi)部互聯(lián)方式互聯(lián),因此每個處理器的大體訪存的時間大體相同
  • 所有處理器合一執(zhí)行相同的功能,因此是對稱的
  • 整個系統(tǒng)由一個統(tǒng)一的操作系統(tǒng)控制,該操作系統(tǒng)為多個處理器極其程序提供作業(yè),進程,文件,數(shù)據(jù)元素等各個級別的交互。
  • 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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。