cpu乙個時鐘週期如何保持所有電路不延遲的?

時間 2021-06-27 08:56:43

1樓:郭曉明

1. 同乙個clock到達不同circuit components的時間是有先後區別的,不可能完全一致,這個叫clock skew。一般會嘗試把clock skew控制在10%以下(10%在VLSI裡面是乙個magic number).

簡單來說就是clock到達不同節點的時間差不能超過10%的clock period.

2. Clock skew是通過clock tree來減少的。如果你忽略不同layer的metal的性質的細微差別話,就想象這是一顆從起點到每乙個節點的距離是一樣的樹,也就是說我們盡量讓clock到不同節點所經過的時間是一樣。

3. 這麼快的頻率得益於流水線深度。Deep pipeline使得兩級sequential circuits之間所需要的combinational circuits大幅減少,因此大幅減少延遲。

4. t_clk = t_setup(setup time) + t_cq(clk to q delay) + t_pd (propagation delay) + t_skew(clock skew) + t_margin (margin是指為了應對PVT —— process variation, 電壓變化, 溫度變化所要留下的餘量)。 因此乙個3GHz的core的clock period雖然是330ps, 但是電路延遲是要遠小於330ps的。

對,就是這麼快~這也是為什麼現在的core的流水線都是十幾級二十級。

5. 如果用latch而不是flip flop的話,有特別的技巧可以「借」上一級的延遲。這個太高階了就不說了。

2樓:

因為在設計cpu過程中的的確確有個環節叫做sta,也叫靜態時序分析,滿足這個環節的前端設計才能往後走甚至流片,滿足不了sta,不好意思,請折回去進行前端設計迭代直至滿足sta,而滿足sta規則的設計,是真的不會再有題主所述的問題的,以上

3樓:其實我是老莫

瀉藥。手機打字,簡單說兩句。

題主很不錯,在學習中善於思考問題。而且提出的問題也很正確。

題主現在不明白是因為才學到延遲這裡,其實再往後面學習一下就會明白。

具體的可以看看龔工的這篇:流水線更深入一點 - IC免費課 - 知乎專欄

以及其它相關的回答。

在理想狀態下,CPU需不需要工作在乙個時鐘下?

必須要工作在乙個時鐘下。這個是由CPU的性質決定的,即CPU本質上是乙個狀態機,需要從乙個狀態跳轉到另乙個狀態。跳轉這個動作,即是依靠時鐘來實現的。如果沒有時鐘,也必須要有類似的乙個機制來實現跳轉,那麼那個類似的機制就成了時鐘了。但如果CPU夠簡單,簡單到不需要狀態就能實現,如加法器,其等價於一張真...

乙個多核cpu機器上,乙個程序內的所有執行緒都在乙個核心上跑嗎,還是可以同時在多核上執行。

BianChengNan cpu 眼裡沒有程序的概念,程序只提供乙個 cr3。可以簡單的理解 cpu 的排程單位是執行緒。乙個cpu核心有一套暫存器,可以執行乙個任務 一般是執行緒 所以乙個核心同一時刻只能執行乙個執行緒。不論這個執行緒是哪個程序的,cpu眼裡沒有程序的概念 每隔一定時間 沒記錯的話...

作為乙個天才,如何學會保持謙遜?

賽博鐵犁 我自己的總結,拿智商比作視野就簡單了。一般人看一百公尺多一點,有些人看一百一二,有些人看一百三四,那些天才們看的都是一百五開外的。那麼他們很普通人講遠處好精彩,普通人看不到所以覺得很奇怪。普通人給他講一百公尺很精彩,他會覺得那算什麼。所以普通人要想進入天才的世界,就要花更多的努力,跑在天才...