為什麼CPU需要時鐘才能工作

2021-10-12 16:29:17 字數 1196 閱讀 5128

cpu裡可以粗略的認為是很多很多很多小電容。充滿電了算1,沒充電算0。每次計算就是這些小電容翻來覆去的充電放電。

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

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

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

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

所以就引入了時鐘機制。

用乙個統一的時鐘脈衝來同步各個小模組。脈衝沒來,大家抓緊時間充電放電,脈衝來了,大家一起動。

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

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

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

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

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

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

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

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

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

引入「時鐘」最重要的作用是為了簡化 從而降低計算機的設計成本。

引入時鐘(週期)的話,這些都簡化了:比如只要在固定週期去接收和處理鍵盤提交的輸入就好了。

更直接的打個比方:

cpu接了個給廣場鋪磚的活,於是帶一幫只懂鋪磚的ram、modem、key、、去幹活,用邊長1×1的地磚是最簡單的,只要給大家說:a你從第一塊開始鋪,b從100塊開始,c從200塊開始。。。。。。這樣大家可以同步工作了

而如果abcdefg.....大家各用各自規格的地板磚來開工,cpu準得急死!

簡單說,時鐘(週期)就是為了規定乙個最小單位的地板磚。

為什麼CPU需要時鐘這種概念?

本文同時發表在 最近在研究計算機裡的基本邏輯電路,想到乙個問題 為什麼cpu需要時鐘這樣的概念?首先考慮如下邏輯電路 當a b 1時,q 0。當輸入訊號發生變化時,邏輯元件不會立即對輸入變化做出反應,會有乙個傳播時延 propagation delay 當b變化為0時,由於b也作為xor的直接輸入,...

邊沿觸發是什麼意思 為什麼CPU需要時鐘這種概念?

最近在研究計算機裡的基本邏輯電路,想到乙個問題 為什麼cpu需要時鐘這樣的概念?首先考慮如下邏輯電路 當a b 1時,q 0。當輸入訊號發生變化時,邏輯元件不會立即對輸入變化做出反應,會有乙個傳播時延 propagation delay 當b變化為0時,由於b也作為xor的直接輸入,所以xor異或門...

CPU時鐘是什麼?

一般我們都會知道,cpu時鐘是乙個可以衡量運算所消耗時間的單位。比如說 一次加減法消耗2個cpu時鐘 一次乘法消耗4個cpu時鐘 一次除法消耗40個cpu時鐘 然而,一次位運算只需要1個時鐘單位。這也是為什麼我們推薦使用位運算來代替乘除法和條件判斷。比如 使用n 1 0而不是n 2 0來進行判斷奇偶...