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

時間 2021-05-07 14:41:01

1樓:

根據我數字邏輯課程的學習經驗,時序邏輯電路分為非同步和同步兩種,同步時序中有統一的時鐘,非同步中是靠電平的變化或者上下沿完成計算的,非同步的設計難度比同步大很多,CPU裡帶時鐘最主要的原因應該是設計簡單。

2樓:「已登出」

這有點像搬重物的時候喊口號

給一定的時間段讓每個人調整身體姿勢,然後到下乙個時間點一起發力,否則每個人都按照自己的節奏來很快就亂了,只能白費力氣。

題主可以簡單認為大部分cpu裡面的計算小人也需要乙個口令讓他們協同工作,在乙個週期裡完成自己的任務,然後一起等待下乙個週期的到來。

3樓:資深小白

同學,你聽過晶振麼?CPU單獨做不了事情的,還有一堆外圍裝置。時鐘訊號就是整個系統溝通的乙個紐帶。

晶振的作用是提供時鐘訊號,通常是乙個系統共用乙個晶振,便於各部分保持同步。

CPU併發處理任務,就會有中斷訊號。當優先順序高的任務來了,要排時間處理,如果沒有時間區分,那麼就無法區分各個部分的系統請求,該掛起什麼,該先做什麼都無法區分。

外部裝置靠這個中斷來去搶占和CPU溝通交流時間,CPU安排了高優先順序的任務,也要告訴其他裝置等待十秒鐘再來問我,十秒鐘一到,裝置再問一次CPU有空了沒?直到繼續。如果沒有時鐘,開機就可以亂套了。

我們看起來CPU很快,但是如果按照時間的維度分細緻一點來看的,他們也是一步一步按部就班的去做的。看起來高不可攀的東西,其實都是基礎的原理。

以上是我編的。。。。

4樓:

回答中充滿了各種「不專業且自以為懂,生搬硬套且瞎胡亂比喻」,作為乙個外行,我特別討厭這些「風馬牛不相及」的「打個比方」。

5樓:

不是絕對必要,沒有時鐘效率更高,可是設計上不知複雜多少倍。

想一下,不管是學校還是機關、工廠、公司和工地,多數單位都要求大家同一時刻比方八點開工,有必要嗎?沒必要,但好管理。

6樓:向日葵

建議你去看一下《編碼》

本書講述的是計算機工作原理。作者用豐富的想象和清晰的筆墨將看似繁雜的理論闡述得通俗易懂,你絲毫不會感到枯燥和生硬。更重要的是,你會因此而獲得對計算機工作原理較深刻的理解。

這種理解不是抽象層面上的,而是具有一定深度的。

編碼 (豆瓣)

7樓:hubingkun

時鐘是作為基準存在的,這麼說,有兩個人要配合著做一件事,如果其中乙個人已經跑不見了,另乙個人上哪找他去?隨便找另外乙個人那做出來的結果就不一定是自己想要的結果了。所以就有人做了一扇門,時鐘就是那個管著門開關的人,把這兩個人都關在門外,輪到你們了,就把門開啟,讓你們去做事,這個管門的人完成的工作有開關和同步的作用,在cpu中,沒有時鐘,這個門就打不開,所有的人都得等在門外,沒辦法進行工作。

8樓:El Facil

因為combinational logic circuit的各個component因為物理環境,製程上的差異不能同時完成邏輯運算。

簡單來說,快的需要等慢的

9樓:提了廢

有人提到了無時鐘晶元,那只是「無統一時鐘」。

廣義上,不止是CPU這樣,但凡乙個機器都需要「時鐘驅動」。

最原始的時鐘驅動:日出而作日落而息。

古代人造時鐘驅動:水車、風車、織布機、牲畜拉磨工業時代開始的時鐘驅動: 蒸汽機、內燃機

總體而言就是:在乙個迴圈往復裡處理因、利用果

10樓:

很有意思的問題!

其實這個問題可以大一點,不只是CPU吧,用01數字訊號處理資訊的數碼裝置幾乎全部直接間接地需要時鐘才能工作。

人家裝置自己也得知道個時間概念對吧!

一般這些裝置用來量化時間的零件是晶振。電腦裡面有,路由器有,手環裡有,無線充電器也有…

不信你可以一一驗證,我是想不到什麼數碼裝置沒有的了!

如果你買的是模擬訊號的電視,估計裡面就沒有必要有晶振啦!

11樓:

不僅僅是cpu,是所有的數位電路幾乎都需要時鐘才能正常工作。

始終就是齊步走的口令,121,121,這樣大家才能整齊統一的工作。

12樓:flickzhou

因為組合電路太複雜,出了錯誤沒法排查。而基於時鐘的同步電路,邏輯要清晰很多。

扯遠一點,相對而言,人腦可以算是非同步系統。因此將來應該會出現沒有時鐘概念的CPU,這需要跳出圖靈框架。

13樓:小胖怡情

寫個我自己的理解,我們生活在乙個連續時間系統裡,但是為了計算時間,我們實際上將時間離散化了。

而通過離散時間系統,我們得到了數字系統,電腦屬於數字系統,因此它裡面的時間是離散的,因此我們總需要乙個最小刻度來完成時間的流逝,所以就有了時鐘。

不過話說回來,我們真的生活在連續時間系統裡嗎?

14樓:某可能懶癌

這個,你找一本數位電路基礎看一下

看看時序電路(只有時序電路才能實現記憶)的基本原件觸發器是怎麼工作的。

它需要乙個電平的跳變才能使輸出改變。這就需要我們不停地給它指定的電平跳變才能夠使輸出和器件的狀態不停的變化。這樣的不停跳變的訊號,就是時鐘訊號一開始的由來,也是它必須存在的原因。

而CPU是時序電路,時序電路必含觸發器,所以必須輸入時鐘訊號。

15樓:Johnzy7

因為人類需要計算機盡量「確定地」執行人類所要求的工作,而不是自己在那裡亂來。。時鐘就是保證同步(從而保證確定性)的手段。。

16樓:javon ja

cpu是是處理不同的資料的,我怎麼知道我處理的是哪個資料,這個是乙個什麼資料,0或者1,什麼時候處理,需要時鐘做乙個判斷標準。如果只要計算資料,那就是Dsp了。

17樓:

各功能單元狀態重新整理需要發生「動作」,兩個動作之間最小時間就是乙個時鐘週期,為何要有統一的週期重新整理是為了使有效的輸入輸出步調一致,否則各部分各做各的,上一級單元給出輸出下一級單元還沒準備好輸入那就尷尬了,本質上是為了便於訊號加工傳遞的可控,時鐘頻率不能無限提高,因為功能單元受物理規則限制重新整理太快會反應不過來。

18樓:KP LIN

有時鐘的叫時序邏輯。通過每個節拍儲存好資料,可以把複雜計算變成有限狀態機,有利於狀態分析,延時分析。

當然,既然有需要時鐘的電路,也有不需要時鐘的電路,簡單的就是運放電路,也可以實現加減乘除指數對數,通過鎖存器也可以實現狀態儲存。但因為沒有時鐘控制,延時會很難分析。

可以理解為時序電路是以效能換設計便利性。

19樓:bluetrees

沒有時鐘,一定輸入下的CPU的輸出自己也會達到乙個穩態(週期性),從而CPU就變成了模擬電路的濾波器,其輸出變得毫無意義。

20樓:原子筆

因為你接觸到的cpu都是數位電路的產物。。

而有的專用模擬運算電路,有不少還真就不需要時鐘。但是他們的開關,往往也離不開數位電路來做控制和同步。。

21樓:

加拿大蒙特婁的Octasic公司用非同步電路來設計cpu,可以不要時鐘。不知道這家公司在國內有客戶沒有。Wireless Base Stations & Media Gateways | Octasic

沒讀過他們的產品手冊,不知道是不是徹底脫離了時鐘。不過聽過介紹,說非同步電路設計很省電。

22樓:JettHuang

時鐘就是口哨,讓組合電路X進入到下乙個組合電路Y,組合電路就是乙個個子功能,當然之間靠鎖存器來銜接。當然理論上不要時鐘和鎖存器應該也行吧,那電路何時穩定下來很燒腦...

23樓:小狗

照例,我不是回答問題,而是寫我對問題的思考,或者說是我在回答自己的疑惑。我就在想乙個問題,現在大家理解晶元都非常抽象了,因為已經比較複雜了,想要看清本質真的是太困難了,如果退回到最開始最簡單的情況是什麼樣的呢。我們拿來乙個電晶體,當然只是乙個電晶體我們什麼也做不了也不知道它內部情況,所以還需要兩個東西,輸入電流的裝置,最好這個裝置也能控制輸入電壓的大小,再來乙個輸出裝置,那就一盞燈吧,最好這盞燈有檢測電壓功能可以用他亮還是滅來判斷電晶體輸出電壓,如果是高電壓,那麼燈亮,如果是低電壓,那麼等滅。

好了,我覺得這就算是乙個最最最最簡單的計算機了。這時還需要手工輸入,那麼我們公升級一點點,還是不要太複雜,用個紙帶打孔來當做記憶體,畫好格仔,每個格仔打孔,有孔就是高電壓,沒空就是低電壓。事先存好高電壓和低電壓,然後開始轉。

這時你就可以展開想象了,這種形式的計算機,我們可以讓紙帶無限快速的轉麼?(就像電流一樣的快速),好像不可以,無論如何識別孔洞都需要時間(為什麼會有這個時間,為什麼識別效率不能達到光速,我也不知道,可能就是另乙個話題了吧。),就算我們讓識別能力提公升,也不可能提公升到像電流一樣快,所以必須有乙個節奏,然後乙個格仔乙個格仔的識別。

再公升級,如果說也不需要人來驅動了,換電動,也一樣,需要乙個節奏。時鐘就是這個節奏的提供者。

說道這,我不禁想起了蒸汽機,蒸汽火車,內燃機,它們提供動力的形式也是周而復始的乙個節奏,如果沒有這個周而復始的節奏,那就成了飛彈,飛出去就飛出去了,什麼也做不了。更本質一點就像是驢或者人拉磨,水車,風車。。。似乎人類就一直都是這樣在使用動力,為什麼呢?

為什麼非要這樣,驢子永遠向前狂奔不行麼?好像真的不行啊,必須困起來有節奏才能運轉。

說個題外話,似乎自由是真的不可能存在的,自由就意味著沒有節律,人類社會將無法運轉,文明不復存在。

24樓:陳小明

時鐘對cpu來說就是時間。

生活沒了時間會怎麼樣,嗯,暫停。

CPU也是如此。

可以嘗試拔掉89C51開發板的晶振,你會發現程式執行暫停。

就是這樣。

25樓:噠噠

簡明扼要地答一下吧。

從CPU的角度講,時鐘就是它的世界裡的時間維度!只有時序向前推動,CPU世界的事物才向前發展。設想如果我們的時間靜止了,那麼我們只能發呆在這裡,什麼都不能做。

想必題這個問題的同學沒進行過專業學習,本著求科普的目的,我也就說到這裡了。

26樓:Wonder

同樣是高電平輸入,一塊晶元怎麼知道這代表了乙個1還是兩個1呢,雖然可以用編碼方式去解決,但是相比之下,還是另外搞一路標準的訊號作為比對來的方便一點

27樓:yanyu

說白了,現在的計算機都是基於圖靈機的思想,計算機系統就是乙個有限狀態機,有限狀態機就需要改變狀態,改變狀態就需要時鐘觸發。

也有不用時鐘就能工作的計算機和CPU,那就是二戰期間使用運算放大器構成的模擬電路計算機,主要用於炮彈軌跡的計算。

28樓:

CPU的時鐘是用於「同步」的。

CPU從記憶體讀取乙個32或64位的數(指令或者資料),要求32位同時讀入,不能有先後順序。所以僅僅靠簡單的邏輯運算是做不到的。所謂的「同時讀32個bit」,就需要有同乙個時鐘控制,在同乙個上公升沿或下降沿去讀取,然後到下乙個上公升沿或下降沿前什麼都不做,但是能保持住讀進來的數值。

做加法的時候,就同時把2個值放到邏輯計算面前,邏輯電路則可以在電平的下乙個上公升沿或下降沿去做加法(或者讀在上公升沿,加法在下降沿)。

數值的上公升沿讀入,其他時間保持,就是暫存器。因為有了暫存器,保證了邏輯運算的時候,輸入的1和0是穩定的,不是變化的。這就是時鐘的基本作用。

如果沒有時鐘,可能32位讀入有時間順序的差異,哪怕是納秒的差異,也會讓結果不穩定,不可預期。

如果有複雜的計算,可能需要多次讀入(例如計算2個64位整數的加法),讀入指令一次,讀入A一次,讀入B一次,相加輸出再一次。每一次就是乙個時鐘的上公升沿或下降沿操作。

這是最基本的CPU工作原理。現代的CPU已經非常非常複雜了,但是時鐘的基本作用還是類似的。比如,CPU可以操作複雜的指令,這些複雜的指令可能在CPU裡面幾個模組間傳遞資料,那麼模組間的讀寫,資料傳遞,同樣是通過時鐘控制的。

為什麼計算機的任何外設都需要時鐘才能工作?

歐先飛 外設大部分情況下是有主控電路的,你可以想象成mini cpu,所以也需要時鐘進行驅動。不過外設的時鐘域和cpu的很多時候不是同乙個,跨時鐘域傳輸資料要處理一下。我舉個例子,uartlite這個外設對外連線是tx和rx兩根線,時鐘大約幾萬hz,對內也就是對soc是乙個axi4協議的介面,大概幾...

Cpu為什麼鎖頻

土老帽子 你知道為什麼玩這樣做嗎,那是因為牙膏廠自身原因,比如上古時代的肉羊300a和當時的450的關係就明白了,還有後來的毒龍800打的圖釘1.1幾乎無翻身之力。再後來的2180的神話,4400的中端之王,5200的5電容版本。8400的瘋魔體質,再到後來得2代酷睿的超頻之王2500k到現在還能一...

前端開發需要學到什麼水平才能找到實習工作?

寧逍遙 其實工作需要的技術儲備真的不多。紮實的基礎和負責的態度比什麼都重要。尤其是前端,有很多花裡胡哨的技能根本沒必要。說句不好聽的,有些技術現學現用都行。 葡萄味的提子zzZ 就拿我說 之前大二寫過.net 懂這麼一點點js。然後大三跑去實習,工資3500用vue框架。說實話那個時候實習才剛接觸到...