CPU 是如何工作的?看视频来了解!
目錄
中央處理器的工作原理
冯·诺伊曼结构
CPU的基本結構
指令周期
寄存器和資料儲存
通訊通道
時鐘信號
運算和執行指令
現代CPU的複雜性
CPU的其他組件
中央處理器的工作原理
在本文中,我們將深入探討中央處理器(CPU)的工作方式及其內部結構。中央處理器是一種單片式的數字機器,用於執行一系列稱為程序的指令。CPU主要由數百萬或數十億個微小的電晶體組成,而理解它們的運作方式,最好是關注它們的內部結構或架構。
【🤔 中央處理器的工作原理】冯·诺伊曼结构
今天,大多數CPU都採用冯·诺伊曼結構。這種結構包括一個稱為控制單元的元件,用於協調處理器的活動,以及一個稱為算術邏輯單元(ALU)的元件,用於執行數學和邏輯操作。CPU需與計算機的內存不斷交換數據,同時與輸入和輸出設備進行交互。
個人而言,每當我想到CPU操作時,我就會想起ZX81中的Z80 CPU以及其他早期微型計算機。ZX81是我擁有的第一台計算機,我在20世紀80年代學會了如何編程它的Z80 CPU機器碼。機器碼是最基本的編程形式,它直接控制個別的CPU組件。因此,如果您想深入了解CPU的工作原理,您需要深入研究機器碼。
這裡我們看到了Z80的內部結構。現代CPU要複雜得多,但通過觀察Z80的結構,我們可以更容易地突出顯示CPU的基本組件。就像冯·诺伊曼的塊圖中所描述的一樣,Z80有一個用於協調其操作的控制單元,還有一個算術邏輯單元(ALU)。還有幾個寄存器,它們是非常小的記憶體空間,大小只有幾個位元。在Z80中,所有寄存器的容量都是8位元或16位元,而在現代處理器中,寄存器通常是32位元、64位元、80位元、128位元、256位元或512位元,我們將在下一節中看到寄存器可用於存儲指令或數據,以及被稱為地址的記憶體位置。
為了與計算機的其他部件進行交互,CPU具有三個稱為匯流排的通訊通道。首先,我們有地址匯流排,用於將內存地址傳遞給RAM或其他組件。其次,我們有數據匯流排,用於傳遞數據。最後,我們有控制匯流排,用於與其他組件進行控制信號的交換。
為了運行程序,CPU依賴時鐘信號,此信號由時鐘芯片和位於計算機主板上的石英晶體生成。現代時鐘信號以千兆赫為單位,現代CPU能夠每秒處理數十億個程序指令。
CPU操作的最基本的方面是取指、解碼、執行指令的周期。這個周期的每個部分都由時鐘脈衝信號觸發,CPU首先從內存中取出一個指令,然後解碼並執行它,然後運行下一條指令,來重複這個過程。
為了跟蹤自己的工作並執行工作,CPU依賴於數個不同的寄存器。在最基本的層次上,有一個稱為程序計數器或指令指針的寄存器,它包含下一條將被取出的指令的地址。當指令周期開始時,CPU讀取存儲在該內存位置的指令,並將其存儲在指令寄存器中,以供解碼和執行。
程序計數器還進行增加,以準備下一條指令週期。需要注意的是,在機器碼中,指令只是對應特定命令的二進制數字。因此,指令周期的解碼部分查找指令寄存器中的值對應的命令。許多指令在一個或多個寄存器上執行算術或邏輯操作,而其他指令則在寄存器和內存之間移動數據,或根據特定的邏輯條件跳轉到程序的其他部分。
請注意,這裡的所有寄存器、數據值和內存地址都顯示為8位元,以使我們的圖形盡可能清晰。
為了使機器碼更容易編寫,它通常以人類易讀的形式表示,這種形式稱為組合語言。然後,通過一個名為編譯器的程序將其轉換為機器碼,以便CPU執行。
舉個例子來說明組合語言和相關的CPU操作,假設我們有兩個存放在連續內存地址中的數字,我們想將它們相加並將結果存儲在下一個內存地址中。假設我們已經將第一個數字的內存位置存儲在寄存器10中,使這一切發生的組合語言可能是這樣的:
mov (%r10), %r12
inc %r10
mov (%r10), %r13
add %r13, %r12
inc %r10
mov %r12, (%r10)
這裡顯示了x86組合語言的一小段代碼,在這段代碼中,寄存器名稱前加%符號,內存地址包含在括號中。此代碼的作用是將存儲在寄存器10中的內存地址的值移動到寄存器12中,並將寄存器10中的值增加,使其指向下一個內存地址,然後將此內存地址中的值移動到寄存器13中。接下來,程序將寄存器12和13中的值相加,結果將放入寄存器13中,然後再次增加寄存器10中保存的地址位置,最後將寄存器13中保存的結果寫回到這個內存地址中。
需要注意的是,在x86機器碼中,可以將寄存器值直接添加到內存位置中的值,因此這個例子可以有其他編碼方式。如果這一切看起來很繁瑣,那麼它確實是如此。但是,移動數據和內存地址到寄存器中,對它們進行數學和邏輯操作,或者將它們寫回存儲或用於觸發控制信號,這就是CPU內部工作的全部。
到目前為止,在本視頻中,我盡量簡化問題,使用僅包含少數寄存器和其他基本組件的CPU架構,並且一次只執行一條指令。然而,大多數現代CPU都更加複雜。首先,大多數現代CPU都有多個核心,每個核心都可以在自己的指令周期中循環,以同時處理多條指令。此外,現代CPU包含多級緩存,這是一種非常快的記憶體,用於在被CPU訪問之前將數據和指令加載到其中。
現代CPU還包含複雜的預測算法,試圖預測CPU可能需要的記憶體值,以便在需要之前從RAM中預先加載到緩存中。除了控制和算術邏輯單元之外,大多數現代CPU還包含其他組件,包括浮點運算單元或FPU、顯示控制器或圖形處理器,以及媒體編碼器。一些現代CPU甚至還具有集成的神經加速器或智能處理單元,以協助機器學習應用。
儘管如此,從最基本的層次來看,所有CPU的工作方式就像我們之前所描述的那樣,將數據和地址從存儲中加載到寄存器中,然後對其進行數學或邏輯操作,再將其寫回到存儲中,或者用於觸發控制信號。
現代微處理器是迄今為止最令人驚嘆的機器之一,已成為人類文明的基石。希望在本視頻中能為您展示了微處理器的工作原理,如果您想讓我為其他計算機組件進行相同的介紹,請在評論中讓我知道。
但現在就講到這裡,关于本视频的內容,如果您喜歡,請按讚,如果您還沒有訂閱,請訂閱,希望能再次與您交流。
Highlights
中央處理器(CPU)是執行計算機程序的核心部件。
冯·诺伊曼結構是現代CPU所遵循的基本設計原則。
基本的指令周期包括取指、解碼和執行指令等步驟。
寄存器在CPU內部儲存和操作指令、數據和地址。
通訊通道(匯流排)用於與記憶體和其他組件進行數據交換。
時鐘信號觸發CPU的運行,掌握指令的處理節奏。
現代CPU具有多核心、多級緩存和預測算法等高階特性。
FAQ
Q: CPU是什麼?
A: CPU是中央處理器的縮寫,是計算機系統中最重要的部件之一,負責執行程序。
Q: 什麼是指令周期?
A: 指令周期是CPU執行一條指令所需的時間,通常包括取指、解碼和執行指令等步驟。
Q: 寄存器的作用是什麼?
A: 寄存器是CPU內部的小型記憶體空間,用於存儲和操作指令、數據和地址。
Q: CPU的速度如何衡量?
A: CPU的速度通常以時鐘頻率來衡量,表示每秒所執行的時鐘周期數。
Q: 現代CPU有多少核心?
A: 現代CPU可以具有單核心或多核心,每個核心可以同時執行多條指令。
相關資源
維基百科:中央處理器
W3Schools:組合語言教程
Intel Developer:x86架構手冊