htg解釋道:cpu實際上是如何工作的?

計算機中的大多數東西都相對簡單易懂:RAM、儲存器、外圍裝置和軟體一起工作使計算機發揮作用。但是你的系統的核心,CPU,甚至對許多技術人員來說都是魔法。在這裡,我們會盡最大努力來打破它。...

計算機中的大多數東西都相對簡單易懂:RAM、儲存器、外圍裝置和軟體一起工作使計算機發揮作用。但是你的系統的核心,CPU,甚至對許多技術人員來說都是魔法。在這裡,我們會盡最大努力來打破它。

本文的大部分研究來源於“但是它是怎麼知道的呢?“作者J.克拉克·斯科特。這是一本非常棒的書,比這篇文章要深入得多,而且非常值得在亞馬遜上花上幾美元。

在我們開始之前,請注意:現代CPU比我們在這裡概述的要複雜幾個數量級。一個人幾乎不可能理解一個擁有超過十億個電晶體的晶片的每一個細微差別。然而,關於如何將所有系統結合在一起的基本原則仍然是一樣的,理解基本原理將使您更好地理解現代系統。

從小處著手

htg解釋道:cpu實際上是如何工作的?

計算機以二進位制操作。他們只瞭解兩種狀態:開和關。為了進行二進位制計算,他們使用所謂的電晶體。如果柵極上有電流,電晶體只允許源電流透過它流向漏極。本質上,這形成了一個二進位制開關,它根據第二個輸入訊號切斷電線。

相關:什麼是二進位制,為什麼計算機使用它?

現代計算機使用數十億個電晶體來進行計算,但在最低水平上,你只需要一小部分就可以形成最基本的元件,即所謂的門。

邏輯閘

htg解釋道:cpu實際上是如何工作的?

適當地堆疊幾個電晶體,就有了所謂的邏輯閘。邏輯閘接收兩個二進位制輸入,對它們執行操作,並返回輸出。例如,如果任一輸入為真,則或門返回真。與門檢查兩個輸入是否為真,異或檢查是否只有一個輸入為真,N個變數(NOR、NAND和XNOR)是它們的基門的反轉版本。

和蓋茨一起做數學

htg解釋道:cpu實際上是如何工作的?

只需兩個門,就可以進行基本的二進位制加法。上圖顯示了一個使用logicaly建立的半加法器,它是邏輯閘的免費線上遊樂場。如果只有一個輸入開啟,而不是兩個都開啟,這裡的異或門就會開啟。如果兩個輸入都開啟,與門將開啟,但如果沒有輸入,與門將關閉。因此,如果兩個都開啟,XOR保持關閉,and門開啟,得到正確答案2:

htg解釋道:cpu實際上是如何工作的?

這給了我們一個簡單的設定,有三個不同的輸出:0、1和2。但是一個位元不能儲存任何高於1的東西,而且這臺機器也沒有太大用處,因為它只解決一個最簡單的數學問題。但這只是一個半加法器,如果你把其中兩個和另一個輸入連線起來,你就得到了一個全加法器:

htg解釋道:cpu實際上是如何工作的?

全加器有三個輸入,兩個數字相加,還有一個“進位”。當最後的數字超過一個位所能儲存的數字時,就使用進位。全加器將連結在一個鏈中,進位從一個加法器傳遞到下一個加法器。進位被加到前半加法器中的XOR門的結果中,當需要開啟so時,有一個額外的OR門來處理這兩種情況。

當兩個輸入都開啟時,進位開啟,並將其傳送到鏈中的下一個全加器:

htg解釋道:cpu實際上是如何工作的?

這和加法一樣複雜。向上移動到更多的位本質上只意味著在更長的鏈中有更多的全加器。

大多數其他數學運算都可以用加法來完成;乘法只是重複加法,減法可以用一些奇特的位反轉來完成,除法只是重複減法。雖然所有現代計算機都有基於硬體的解決方案來加速更復雜的運算,但從技術上講,你可以用全加器來完成這一切。

巴士,還有記憶

htg解釋道:cpu實際上是如何工作的?

現在,我們的電腦只不過是一個糟糕的計算器。這是因為它什麼都記不住,對輸出也不做。上面顯示的是一個儲存單元,它可以完成所有這些。在引擎蓋下,它使用了大量的與非門,在現實生活中根據儲存技術可能會有很大的不同,但其功能是相同的。你給它一些輸入,開啟“寫”位,它將把輸入儲存在單元中。這不僅僅是一個儲存單元,因為我們還需要一種從中讀取資訊的方法。這是透過啟用碼來實現的,啟用碼是記憶體中每個位的與門的集合,所有與門都與另一個輸入“read”位相關聯。寫入位和讀取位通常也稱為“設定”和“啟用”。

整個包裹被包裝在所謂的暫存器中。這些暫存器連線到匯流排,匯流排是一束繞著整個系統執行的電線,連線到每個元件。即使是現代計算機也有一條匯流排,儘管它們可能有多條匯流排來提高多工處理效能。

htg解釋道:cpu實際上是如何工作的?

每個暫存器仍然有一個寫和讀位,但在這個設定中,輸入和輸出是相同的。這其實很好。例如。如果您想將R1的內容複製到R2中,您將開啟R1的讀取位,這將把R1的內容推送到總線上。當read位開啟時,您將開啟R2的write位,這將把匯流排內容複製到R2中。

暫存器也用來生成RAM。閘板通常佈置在網格中,電線有兩個方向:

htg解釋道:cpu實際上是如何工作的?

解碼器接收二進位制輸入並開啟相應的編號導線。例如,“11”在二進位制中是3,是最高的2位數字,因此解碼器將開啟最高的線。在每個十字路口,都有一個登記簿。所有這些都連線到中央匯流排和中央讀寫輸入。只有當穿過暫存器的兩條導線同時接通時,讀和寫輸入才會接通,有效地允許您選擇要從中寫入和讀取的暫存器。同樣,現代RAM要複雜得多,但這種設定仍然有效。

時鐘、步進器和解碼器

暫存器無處不在,是移動資料和在CPU中儲存資訊的基本工具。那麼是什麼讓他們移動東西呢?

時鐘是CPU核心中的第一個元件,它將以設定的間隔(以赫茲或每秒週期為單位)關閉和開啟。這就是你在CPU旁邊看到的速度;一個5GHz的晶片每秒可以執行50億個週期。時鐘速度通常是衡量CPU速度的一個很好的指標。

htg解釋道:cpu實際上是如何工作的?

時鐘有三種不同的狀態:基準時鐘、啟用時鐘和設定時鐘。基準時鐘將開啟半個週期,關閉另一半。啟用時鐘用於開啟暫存器,需要開啟更長時間才能確保資料已啟用。設定時鐘總是需要與啟用時鐘同時開啟,否則可能會寫入不正確的資料。

時鐘與步進器相連,步進器將從1數到最大步進,完成後將自身重置為1。時鐘還連線到CPU可以寫入的每個暫存器的與門:

htg解釋道:cpu實際上是如何工作的?

這些與門還連線到另一個元件的輸出,即指令解碼器。指令解碼器接收一條類似“將R2設定為R1”的指令,並將其解碼為CPU可以理解的內容。它有自己的內部暫存器,稱為“指令暫存器”,即儲存當前操作的位置。它究竟是如何做到這一點的,取決於你正在執行的系統,但一旦它被解碼,它將開啟正確的設定,併為正確的暫存器啟用位,它將根據時鐘觸發。

程式指令儲存在RAM中(在現代系統上是一級快取,離CPU更近)。因為程式資料儲存在暫存器中,就像其他變數一樣,它可以在執行時**縱,在程式中跳躍。這就是程式透過迴圈和if語句獲得結構的方式。跳轉指令將指令解碼器從儲存器中讀取的當前位置設定到不同的位置。

這一切是如何結合在一起的

htg解釋道:cpu實際上是如何工作的?

現在,我們對CPU工作原理的過度簡化已經完成了。主匯流排橫跨整個系統並連線到所有暫存器。全加器,連同一堆其他的運算,被封裝到算術邏輯單元,或ALU中。這個ALU將連線到匯流排,並且還將有自己的暫存器來儲存它所操作的第二個數字。

為了執行計算,程式資料從系統RAM載入到控制部分。控制部分從RAM中讀取兩個數字,將第一個數字載入到ALU的指令暫存器中,然後將第二個數字載入到總線上。同時,它向ALU傳送一個指令程式碼,告訴它該做什麼。然後ALU執行所有的計算,並將結果儲存在不同的暫存器中,CPU可以從中讀取,然後繼續處理。

圖片來源:羅斯特9/Shutterstock

  • 發表於 2021-04-04 08:36
  • 閱讀 ( 50 )
  • 分類:網際網路

你可能感興趣的文章

xfce解釋道:看看linux最快的桌面之一

因此,您之所以選擇Linux是因為您聽說這是一種恢復舊PC的好方法,但是在檢查了各種Linux作業系統(也稱為發行版或“發行版”)之後,您發現您的硬體仍然太慢。除非,也就是說,您安裝了類似Xfce的東西。 ...

  • 發佈於 2021-03-14 08:40
  • 閲讀 ( 44 )

什麼是cuda核心,它們如何改進pc遊戲?

...有任何關係。CUDA代表“計算統一裝置架構”,它並不能解釋CUDA核心的具體功能。這些高科技核心實際上專門用於並行處理。換句話說,他們有能力一起完成一項任務。 ...

  • 發佈於 2021-03-20 21:38
  • 閲讀 ( 48 )

如何在啟動時用systemd執行linux程式

...際上並不需要它們中的大多數,但是包含它們可以讓我們解釋它們。 描述:這是您的服務的文字描述。 想要:我們的服務想要但不需要在我們的服務啟動前啟動網路。 After:此服務成功啟動後(如果尚未執行)應啟動的單元名...

  • 發佈於 2021-04-01 17:43
  • 閲讀 ( 46 )

linux下如何使用which命令

...式執行每個版本的程式: /usr/local/bin/htg /usr/bin/htg 這就解釋了問題所在,解決方法很簡單。 實際上,我們有選擇。我們可以刪除/use/local/bin目錄中的舊版本,也可以將其從/usr/bin移到/usr/local/bin。 看那些結果 兩個結果並不一定...

  • 發佈於 2021-04-02 20:07
  • 閲讀 ( 47 )

CPU實際上是如何製造的?

...**的技術資訊,請檢視Wikichip對光刻工藝和微體系結構的解釋。

  • 發佈於 2021-04-03 19:42
  • 閲讀 ( 69 )

htg解釋道:windows中的高階電源設定是什麼?

...to Enter Away Mode”(允許計算機進入離開模式)。微軟已經解釋了客場模式的作用。 多媒體設定>影片播放質量偏差:您可以選擇您的計算機是喜歡影片質量(以犧牲電源和電池壽命為代價)還是喜歡省電(以犧牲影片質量為代...

  • 發佈於 2021-04-04 06:34
  • 閲讀 ( 477 )

如何在macos上重置dns快取

...裡發生的是你在欺騙你的系統去重新整理快取。維基百科解釋道: The SIGHUP signal is sent to a process when its controlling terminal is closed. It was originally designed to notify the process of a serial line drop (a hangup). In modern systems, this signal usually means that...

  • 發佈於 2021-04-06 20:15
  • 閲讀 ( 34 )

英特爾新推出的x系列狂熱CPU,解釋道

除了全新的消費級處理器Core i9系列外,英特爾最近還推出了“X系列”處理器。這就是讓人困惑的地方,因為Core X處理器不適合單一的生產線、系列甚至晶片體系結構這純粹是一個營銷術語,類似於英特爾幾年前推出的“極限版...

  • 發佈於 2021-04-07 14:52
  • 閲讀 ( 58 )

滑鼠dpi和輪詢率解釋:它們對遊戲有影響嗎?

...標。鐳射滑鼠功能相似,但使用紅外光代替可見光。 dpi解釋道 每英寸點數(DPI)是衡量滑鼠靈敏度的指標。滑鼠的DPI越高,移動滑鼠時螢幕上的游標移動的距離就越遠。具有較高DPI設定的滑鼠檢測較小的移動並作出反應。 DPI越...

  • 發佈於 2021-04-07 17:44
  • 閲讀 ( 36 )

是什麼conhost.exe為什麼它在執行?

... 本文是我們正在進行的系列文章的一部分,該系列文章解釋了taskmanager中的各種流程,如主程序, dwm.exe檔案, 輸入法, mDNSResponder.exe,rundll32.exe,Adobe公司_更新程式.exe,以及其他許多。不知道這些服務是什麼?最好開始讀書! ...

  • 發佈於 2021-04-07 18:22
  • 閲讀 ( 30 )
bvz14525
bvz14525

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦