處理器如何執行比其頻率更多的 IPS?

處理器如何執行比其頻率更多的 IPS?

這似乎是我無法理解的事。幾乎每個現代處理器每秒執行的指令數都超過其頻率。

我可以理解為什麼較低級別的處理器可以執行比其頻率更少的 IPS。例如,ATmega328在 16 MHZ 下執行大約 16 MIPS(或至少我是這麼聽說的),並且Z80在 4 MHz 下執行 0.5 MIPS。但 Pentium 4 Extreme 可以在僅 3.2 GHz 的頻率下執行超過 9 GIPS。這大約是每個時鐘週期三個指令!

這是如何完成的,為什麼不在較小的處理器中實現,例如調壓器微控制器?

我找到了除 ATmega328 之外的所有信息,來自這裡

答案1

這是由於現代處理器的功能組合所致。

促成高 IPS 的第一件事是現代處理器具有多個可以獨立運作的執行單元。下圖(借用維基百科:英特爾酷睿微架構)您可以在底部看到有八個執行單元(以黃色顯示),它們都可以同時執行指令。並非所有這些單元都可以保護相同類型的指令,但其中至少有 5 個可以執行 ALU 操作,並且有 3 個具有 SSE 功能的單元。

在此輸入影像描述

將其與長指令管線它可以有效地堆疊指令,為這些單元執行指令做好準備(出故障了,如果有必要)意味著現代處理器可以在任何給定時間運行大量指令。

每個指令可能需要幾個時脈週期來執行,但如果您可以有效地並行執行它們,那麼您可以以處理器複雜性和熱輸出為代價大幅提升 IPS。

保持這些大型管道充滿指令還需要一個可以預先填充指令和資料的大型快取。這會影響晶片的尺寸以及處理器產生的熱量。

在較小的處理器上不這樣做的原因是,它大大增加了處理核心周圍所需的控制邏輯量,以及所需的空間量和產生的熱量。如果您想要一個小型、低功耗、高響應的處理器,那麼您需要一個短的管道,而在實際功能核心周圍沒有太多「額外」的東西。因此,通常他們會最小化緩存,將其限制為處理指令所需的每種類型的單元中的一個,並降低每個部分的複雜性。

他們可以讓小型處理器與大型處理器一樣複雜並實現相似的性能,但功耗和冷卻需求將呈指數級增加。

答案2

這並不難想。切換數千個電晶體只需一個週期。只要指令並行排列,一個週期就足以執行所有指令。

比嘗試自己解釋要好,這是一個很好的起點

答案3

為了獲得比 Mokubai 的答案更基本的資訊:

超標量 CPU 分析指令流以了解指令之間的資料(和其他)依賴性。相互不依賴的指令可以並行運作。

典型的 x86 桌上型 CPU 每個時脈週期取得 16 或 32B 指令。 Intel從Core2開始的設計每個週期最多可以發出4條指令。 (或 5,如果有一個可以宏融合的比較和分支)。

請參閱 Mobukai 的精彩答案,以了解 CPU 在實踐中如何執行從運行的程式碼中提取盡可能多的指令級並行性的任務的連結和詳細資訊。

另請參閱http://www.realworldtech.com/sandy-bridge/以及其他 CPU 架構的類似文章,深入解釋其底層原理。

答案4

前面的答案顯示瞭如何透過處理器的「指令」定義來執行更多指令,並且人們可以想像這實際上是提問者的意圖。

但它的另一個來源可能是,每個「指令」其實都是被處理器視為指令輸入的一定量的資料。如果他的來源的計數僅計算處理器視為指令的內容,則以下內容不會添加任何內容。但如果他的來源計算了人類所說的「指令」的所有內容,那麼:補充一點,並非每條指令的物理長度都與其他指令一樣長(一條可能是12 字節,另一條可能是56 字節,等等)。因此,如果它每個週期加載64 位元組的材料作為「一條指令」(或在達到64 位元組之前盡可能多的完整指令),並且在該64 位元組中有6 條指令,那麼6 條指令(正如你和我可能認為的那樣) )將在該週期內完成。

由於許多非常基本的指令(我們的「合理」定義)是早期8 位元組指令長度的遺留物,並且根據定義,非常基本的指令可能被不成比例地使用,僅僅這將大大有助於執行更多“指令”頻率似乎允許。

相關內容