當前位置: 華文星空 > 知識

為什麽 CPU 需要時鐘才能工作?

2019-12-16知識

其實你上個理工類的本科,尤其是電腦系就都懂了。有具體的課程系統的給你講這個事。

暫時沒這個機會的話,我就盡量用簡單的語言來解釋一下這個事情。能聽懂多少算多少哈。

CPU裏可以粗略的認為是很多很多很多小電容。

充滿電了算1,沒充電算0。

每次計算就是這些小電容翻來覆去的充電放電。

很多小電容組成一個個基本的模組,比如輸入0011輸出0100

但從輸入0011到實際輸出0100是有一個延遲的。因為前面說了,電容要充電放電,這個需要時間。

這些小模組各種連線,組成復雜的功能。也就是前面小模組的輸出會被後面模組當成輸入。

那就有問題了,一方面,後面的模組要如何知道前面的模組到底是已經完成充電/放電了呢,還是正在充電放電呢?另一方面,路徑越長從最開始輸入到最終的輸出的時間就越長,也就是路徑長度不同延遲就不同,所以你很難保證每個針腳上的數據嚴格的同時到達。

所以就引入了時鐘機制。

用一個統一的時鐘脈沖來同步各個小模組。

脈沖沒來,大家抓緊時間充電放電,脈沖來了,大家一起動。

你可以認為時鐘脈沖來一下,CPU就動一下。下個時鐘脈沖一直不來,CPU就一直不動。

對於同一個CPU來說自然是頻率越高速度越快(動的次數越多)。

但動一下不見得能執行一條指令。實際上需要動很多下才能執行一條指令。

那到底要動幾下呢?這事很難說,取決於CPU的架構和設計。

所以,不同架構的CPU很難直接透過頻率比較效能。

(但不是說不同架構的CPU不能比,大家做同一個宏觀任務,比如渲染網頁,看誰快唄?)

相同架構和結構的CPU確實可以比。

所以才有超頻這種技術,說白了就是加快時鐘脈沖頻率。但超頻會帶來許多問題,單位時間更多次數的充電放電會導致電流增大也就是CPU整體發熱大大增加。另外充電放電有個速度問題,頻率太快會導致有些小電容沒有及時完成充電放電,進而發生不穩定的情況。

適當加電壓可以加速充電放電的過程,可以增加超頻後的穩定性。但副作用是CPU更熱了,而且小電容實在太小了,電壓稍微高一點可能就擊穿了。