CPU的基本原理與存儲體系,及其對設計系統的影響


參考:

你不好奇 CPU 是如何執行任務的?

CPU(中央處理器) - 百度百科

CPU是什么

        中央處理器(CPU),是電子計算機的主要設備之一,電腦中的核心配件。其功能主要是解釋計算機指令以及處理計算機軟件中的數據。CPU是計算機中負責讀取指令,對指令譯碼並執行指令的核心部件。中央處理器主要包括兩個部分,即 控制器運算器,其中還包括 高速緩沖存儲器及實現它們之間聯系的數據、控制的總線。電子計算機三大核心部件就是CPU、內部存儲器、輸入/輸出設備。中央處理器的功效主要為處理指令、執行操作、控制時間、處理數據。  [2] 
在計算機體系結構中,CPU 是對計算機的所有硬件資源(如存儲器、輸入輸出單元) 進行控制調配、執行通用運算的核心硬件單元。CPU 是計算機的運算和控制核心。計算機系統中所有軟件層的操作,最終都將通過指令集映射為CPU的操作。
       在計算機體系結構中,CPU 是對計算機的所有硬件資源(如存儲器、輸入輸出單元) 進行控制調配、執行通用運算的核心硬件單元。CPU 是計算機的運算和控制核心。計算機系統中所有軟件層的操作,最終都將通過指令集映射為CPU的操作。

工作原理:

        馮諾依曼體系結構是現代計算機的基礎。在該體系結構下,程序和數據統一存儲,指令和數據需要從同一存儲空間存取,經由同一總線傳輸,無法重疊執行。根據馮諾依曼體系,CPU的工作分為以下 5 個階段:取指令階段、指令譯碼階段、執行指令階段、訪存取數、結果寫回

五個工作階段

  1. 取指令(IF,instruction fetch):即將一條指令從主存儲器中取到指令寄存器的過程。程序計數器中的數值,用來指示當前指令在主存中的位置。當 一條指令被取出后,PC中的數值將根據指令字長度自動遞增。 
  2. 指令譯碼階段(ID,instruction decode):取出指令后,指令譯碼器按照預定的指令格式,對取回的指令進行拆分和解釋,識別區分出不同的指令類 別以及各種獲取操作數的方法。 
  3. 執行指令階段(EX,execute):具體實現指令的功能。CPU的不同部分被連接起來,以執行所需的操作。
  4. 訪存取數階段(MEM,memory):根據指令需要訪問主存、讀取操作數,CPU得到操作數在主存中的地址,並從主存中讀取該操作數用於運算。部分指令不需要訪問主存,則可以跳過該階段。 
  5. 結果寫回階段(WB,write back):作為最后一個階段,結果寫回階段把執行指令階段的運行結果數據“寫回”到某種存儲形式。結果數據一般會被寫到CPU的內部寄存器中,以便被后續的指令快速地存取;許多指令還會改變程序狀態字寄存器中標志位的狀態,這些標志位標識着不同的操作結果,可被用來影響程序的動作。 

在指令執行完畢、結果數據寫回之后:若無意外事件(如結果溢出等)發生,計算機就從程序計數器中取得下一條指令地址,開始新一輪的循環,下一個指令周期將順序取出下一條指令。 

結構:

  • 運算器:指計算機中進行各種算術和邏輯運算操作的部件, 其中算術邏輯單元是中央處理核心的部分
  • 控制器:控制器是指按照預定順序改變主電路或控制電路的接線和 改變電路中電阻值來控制電動機的啟動、調速、制動與反向的主令裝置
  • 寄存器:寄存器是CPU內部用來存放數據的一些小型存儲區域,用來暫時存放參與運算的數據和運算結果。其實寄存器就是一種常用的時序邏輯電路,但這種時序邏輯電路只包含存儲電路。寄存器的存儲電路是由鎖存器或觸發器構成的,因為一個鎖存器或觸發器能存儲1位二進制數,所以由N個鎖存器或觸發器可以構成N位寄存器。寄存器是中央處理器內的組成部分。寄存器是有限存儲容量的高速存儲部件,它們可用來暫存指令、數據和位址。

緩存 cache [ kæʃ ]:

CPU緩存的容量比內存小的多但是交換速度卻比內存要快得多。緩存的出現主要是為了解決CPU運算速度與內存讀寫速度不匹配的矛盾,因為CPU運算速度要比內存讀寫速度快很多,這樣會使CPU花費很長時間等待數據到來或把數據寫入內存。

緩存原理:緩存的工作原理是當CPU要讀取一個數據時,首先從緩存中查找,同時把這個數據所在的數據塊調入緩存中,可以使得以后對整塊數據的讀取都從緩存中進行,不必再調用內存

  • 一級緩存:多少時間?
  • 二級緩存
  • 三級緩存

讀取順序:CPU要讀取一個數據時,首先從Cache中查找,如果找到就立即讀取並送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取並送給CPU處理,同時把這個數據所在的數據塊調入Cache中,可以使得以后對整塊數據的讀取都從Cache中進行,不必再調用內存。

       正是這樣的讀取機制使CPU讀取Cache的命中率非常高(大多數CPU可達90%左右),也就是說CPU下一次要讀取的數據90%都在Cache中,只有大約10%需要從內存讀取。這大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待。總的來說,CPU讀取數據的順序是先Cache后內存

緩沖 buffer  [ˈbʌfər]:

例如:向硬盤寫入數據時,先把數據放入緩沖區,然后再一起向硬盤寫入,把分散的寫操作集中進行,減少磁盤碎片和硬盤的反復尋道,從而提高系統性能。

緩存與緩沖區別:緩存(cache)是在讀取硬盤中的數據時,把最常用的數據保存在內存的緩存區中,再次讀取該數據時,就不去硬盤中讀取了,而在緩存中讀取。
緩沖(buffer)是在向硬盤寫入數據時,先把數據放入緩沖區,然后再一起向硬盤寫入,把分散的寫操作集中進行,減少磁盤碎片和硬盤的反復尋道,從而提高系統性能。
簡單來說,緩存(cache)是用來加速數據從硬盤中"讀取"的,而緩沖(buffer)是用來加速數據"寫入"硬盤的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM