題:
為什麼相對簡單的設備(例如微控制器)比CPU慢得多?
Michael
2016-04-11 23:22:45 UTC
view on stackexchange narkive permalink

鑑於相同數量的流水線級和相同的製造節點(例如65 nm)和相同的電壓,簡單的設備應該比更複雜的設備運行得更快。此外,將多個流水線級合併為一個不應比級數慢很多。假設一個階段合併了。那會減慢到200 MHz以下。現在增加電壓並減少每個字的位數;這實際上會加快處理速度。幾年前製造的CPU的運行速度可以提高150倍,如果將所有流水線級合併為1.2V-ish,則運行速度可以提高10倍。根據最粗略的計算,即使使用邊界過時技術製造的微控制器,在其提供的電壓的四分之一處,其運行速度也應至少快10倍。

問題:微控制器時鐘速率降低的原因是什麼?

大量的微控制器都是用過時的過時技術製造的,因為製造商需要付費。
功率。將兩個CPU的功耗都考慮在內,它們將非常接近相同的性能/瓦特,否則微型將勝出。
更簡單的==更快的想法是完全錯誤的。現代cisc CPU的許多複雜性都具有使其變得更快的功能,例如多級緩存,管道和分支預測
那個舊的cpu幾個月或幾年都沒有用小電池供電。每天都使用最先進的(昂貴的)技術。不必為每條指令等待慢速/廉價閃存。單片機幾乎不需要快速運行,他們可以為開發人員使用一些新的Verilog,並在任何鑄造廠上實現它。我最喜歡自行車對一級方程式賽車的評論,我認為可以總結一下。
英特爾獲得更好的mips / watt性能的一種方法是簡單地運行較慢的舊設計。
“減少每個字的位數”在乘法器之外幾乎沒有什麼不同。這是較小的微控制器上的可選功能。
..並且如果需要,您可以獲得200MHz的微控制器:http://www.marketwired.com/press-release/nxp-ships-worlds-fastest-arm-cortex-m4-and-cortex-m3-microcontrollers-nasdaq-nxpi-1594382.htm-有用的是,它們告訴您它是在90nm上製造的。
20 MHz一點也不慢。PC的GHz速度讓我們受寵若驚,在PC上,大多數資源都用於渲染精美的圖形。您可以使用千赫茲處理器飛向月球...
管道的全部意義在於您可以按照指令執行的速度執行指令。當加拿大將一桶石油注入管道時,他們不必等到得克薩斯州的一家煉油廠將其抽出再投入。
“微控制器要比CPU慢得多?”-微控制器*是* CPU :)-只是說
五 答案:
Adam Haun
2016-04-12 00:15:14 UTC
view on stackexchange narkive permalink

還有其他影響速度的因素。

  • 內存:實際性能通常受內存延遲的限制。英特爾CPU具有大容量的緩存來彌補這一點。微控制器通常不這樣做。閃存比DRAM慢得多。

  • 功耗:在嵌入式應用程序中,這通常是一件大事。 實際的200 MHz英特爾CPU消耗的功率超過10瓦(通常更多),並且需要大的散熱器和風扇。這需要佔用空間和金錢,甚至還沒有計算隨之而來的外部邏輯和內存。 20 MHz AVR大約需要0.2瓦,其中包括您需要的一切。這也與過程有關-更快的晶體管傾向於洩漏。

  • 工作條件:正如Dmitry在評論中指出的那樣,許多微控制器可以在很寬的電壓下工作,並且溫度範圍。我上面提到的ATMega可以在-40C至85C的溫度下工作,並且可以在-65C至150C的任何溫度下存儲。 (其他MCU的最高工作溫度為125C甚至155C。)VCC電壓可以為2.7V至5.5V(對於峰值性能為5V +/- 10%)。 Core i7數據表很難讀取,因為它們在製造過程中會修整允許的VCC,但電壓和溫度容限肯定會更窄-約3%的電壓容限和105C的最高結溫。 (最低5C,但當您拉升> 100 A時,最低溫度並不是真正的問題。)

  • 門數:越簡單,並不總是越快。如果是這樣的話,英特爾將不需要任何CPU架構師!不只是流水線;您還需要高性能FPU之類的東西。那抬高了價格。出於這個原因,許多低端MCU僅具有整數CPU。

  • 芯片面積預算:微控制器必須將很多功能集成到一個芯片中,通常包括所有功能。應用程序使用的內存大小。 (SRAM和可靠的NOR閃存非常大。)PC CPU與片外存儲器和外圍設備通信。

  • 工藝:那些5V AVR採用古老的低成本工藝製造。記住,它們是從頭設計的,價格便宜。英特爾使用金錢可以買到的最好的技術來高利潤地銷售消費產品。英特爾還銷售純CMOS。MCU流程需要生產片上閃存,這比較困難。

上述許多因素都與之相關。

您可以購買200當今的MHz微控制器(這是一個示例)。當然,它們的價格是 20 MHz ATMegas...

的十倍。簡短的版本是速度比簡單更複雜,並且便宜的產品針對便宜進行了優化,而不是速度。

不要忘記其堅固性:如果電源電壓變化超過5%左右,典型的CPU就會失效,而ATMega則以1.8-5.5V範圍內的任何頻率在4MHz下運行。
@DmitryGrigoryev好點!我已經更新了答案。
compumike
2016-04-12 00:06:03 UTC
view on stackexchange narkive permalink

速度較慢的一個主要的技術原因是廉價/小型MCU僅使用片上閃存來存儲程序(即它們不從RAM執行)。

小型MCU通常不緩存程序存儲器,因此,它們總是在每個週期執行之前都需要從閃存中讀取一條指令。這樣可以提供確定性的性能和#cycles / operation,價格便宜/簡單,並且避免了類似PC的問題,在這些問題中,代碼和數據混合在一起,從而由於緩衝區溢出等而產生了一系列新的威脅。從閃存讀取(50-100ns數量級)比從SRAM或DRAM讀取(10ns或以下數量級)要慢得多,並且必須在每個週期中產生延遲,從而限制了器件的時鐘速度。/ p>

功率(以及熱量)的增加也隨頻率線性增加。
我不認為從閃存中讀取的任何地方都接近100 ns,是嗎?IIRC比它大兩個數量級。但是,如果您的閃存控制器包含一個小的DRAM緩存,並且代碼不是太分支,則緩存命中率可能會很高(90%+),因此您的平均延遲可能會低很多。
我打開的此AT91SAM7S數據表的內部閃存表示其內部閃存“快速訪問時間,最壞情況下30 MHz單週期訪問”。那是33ns。它具有一個預取緩衝區的雙字。脫機閃存確實可能具有更高的延遲。
@Jamil我不記得確切的公式,但是我相信這是頻率的平方。
AndrejaKo
2016-04-11 23:28:37 UTC
view on stackexchange narkive permalink

當您擁有一級方程式賽車時,為什麼人們騎自行車或小型摩托車?當然,以每小時300公里的速度行駛並立即到達任何地方肯定更好嗎?

簡單地說,沒有必要比現在快。我的意思是,肯定會有一點點,並且更快的微控制器確實可以啟用某些功能,但是如果您每天要連續使用1個小時的自動售貨機又要做什麼呢?

另一方面,它們還具有其他重要功能,例如低功耗,更易於編程等等。基本上,它們不是處理器,而是做不同的事情。

那不完全是我的問題。我知道為什麼在慢速就足夠的情況下,可能想要一台1美元的慢速設備而不是100美元的快速設備。我不明白的是,為什麼$ 1的設備會像這樣緩慢地運行,因為簡單性通常意味著速度。
@Michael您從哪裡獲得簡單=快速的想法?
@Michael自行車比汽車要簡單得多,但速度仍然較慢。無論如何,馬特是對的。簡單的事情不會自動快速。就是說,僅僅出於更高頻率的考慮,快速的事情將變得複雜。
@MattYoung:就是RISC架構背後的全部思想:簡單的任務可以比複雜的任務更快地處理。並且,在沒有多級流水線的情況下,控制器變得更加簡單。
高性能CISC處理器往往會發布比簡單嵌入式處理器更多的指令。他們正在並行執行更多工作,因此既複雜又更快。
@Michael:實現速度的一種方法是保持指令集簡單,以便對其進行流水線處理。**這並不意味著所有簡單的硬件都可以在高時鐘下工作!**您可以以多快的頻率計時某些東西取決於最長的流水線階段中有多少個門延遲,或者類似的東西。在“簡單”設計中,可能會出現一些非常緩慢的階段,這些階段會限制最大時鐘,因為它*不是*大量流水線。
@Michael $ 1對於某些應用來說可能是非常昂貴的,我讀過,微型SD卡中的微控制器價格約為19美分
@Michael“這就是RISC體系結構的全部思想:簡單任務的處理速度比複雜任務要快”。現代的RISC架構極其複雜,因為它們必須引入更多的指令(如SIMD)並支持更多的功能,例如超標量,超線程,無序執行...它們的複雜性很容易超過CISC架構。如今,MIPS擁有數百或數千條指令。[“ CISC訴RISC很大程度上是一場歷史性辯論”](https://www.quora.com/What-are-CISC-and-RISC-architecture-How-do-they-differ-from-each-other)
出色的開頭類推,準確且值得一提,將再次閱讀。
Spehro Pefhany
2016-04-11 23:45:48 UTC
view on stackexchange narkive permalink

有許多運行在數百兆赫或更高頻率的ARM控制器。誰需要500 MHz的PIC並願意為每件零件支付足夠的價格以證明一百萬美元的掩模能夠接近最先進的工藝?

流行的 ATmega328是據報導,它採用的是350nm技術,比最新生產的Intel CPU( Skylake為14nm)落後很多。

即使是便宜的8位控制器也正在慢慢普及。加快速度,您可以獲得32和64 MHz PIC控制器(例如PIC18F14K22),它們仍在5V電壓下工作(後者是系統總成本中的一個考慮因素)。

一個考慮因素是這些控制器具有針對較小的存儲空間和較慢的時鐘速度進行了優化的體系結構。一旦開始進入高時鐘速度,就必須使用預分頻器等對這些東西進行調整。

有人試圖追溯到1990年代後期,生產出速度非常快的類似PIC的控制器,其思想是固件如果微控制器足夠快,則可以替代外圍設備。例如,您可以對UART進行位衝擊。我不認為它們在商業上取得瞭如此的成功-Scenix-> Ubicom-> Qualcomm(遊戲結束)。

350 nm?那就可以解釋了。不知道有人會使用20年的技術來製造任何東西。
我們中有些人仍在設計(而不只是使用)4000系列CMOS(約3000納米)。
對於處理輻射環境或需要可追溯性的高可靠性系統的人來說,較舊的過程也可能有用。
遊戲還沒有結束-視差螺旋槳是該概念的延續。
@DaveTweed或者,對於一個更成功的商業示例,請看一下賽普拉斯PSoC系列。
@duskwuff:我沒有關注您。AIUI,PSoC並不是要用固件替換硬件,而是要具有可配置的硬件來替換固定功能塊。
@DaveTweed這是一個怪異的體系結構,介於硬件和軟件之間。PSoC的可配置組件可以在運行時進行修改,同時包含PLD元素和“數據路徑”元素,它們本質上是非常小的專用微控制器。
據我了解,Scenix部件管理的軟件因果關係比我聽說的任何其他控制器都要快得多(測試一個端口引腳,有條件地將另一個設置為20ns)。我一直想知道為什麼Microchip從來不會費心去生產任何可比的東西。
@SpheroPefhany-在可預見的未來,CD4k CMOS將與我們同在-在混合線性/邏輯系統中(在邏輯被要求以12 / 15V線性電源電壓運行的情況下),其他任何功能都無法發揮作用。(或者,或者使用諸如ADI的iCMOS之類的更現代的HVCMOS工藝來替代。)
@Michael:不僅僅是技術的時代。大小也很重要。較大的工藝尺寸具有較低的缺陷率,這意味著較低的廢品率和較高的成品率-從而降低了每個芯片的成本。如果您願意為CPU(例如台式機)支付100美元,那麼由於產量較低而導致的較高成本是合理的。如果您只願意支付50美分,那麼這是沒有道理的。
supercat
2016-04-12 19:39:36 UTC
view on stackexchange narkive permalink

想像一個人想生產汽車。一種方法是依次在工廠中使用大量設備,一次製造一輛汽車。可以使用少量的中度複雜的設備來完成此方法,可以使用許多這樣的設備執行一個以上的步驟。另一方面,工廠中的許多設備大部分時間仍處於閒置狀態。

另一種方法是建立一條裝配線,這樣一來,首先處理第一台設備的設備生產步驟已經完成了對第一輛車的操作,然後可以繼續在下一輛車上開始相應的操作。試圖在製造過程的多個階段重用一台設備會很複雜,因此在大多數情況下,最好使用更多經過優化以執行一項非常特定任務的設備(例如,如果需要鑽50 10種不同尺寸的孔,那麼最小的設備設置將包括一個10位鑽頭和一個快速更換機構,但是裝配線可以有50個鑽頭,每個鑽頭帶有一個永久安裝的鑽頭,而無需快速更換)

對於DSP或GPU之類的東西,由於要執行的工作性質非常一致,因此可以相對便宜地實現非常高的速度。不幸的是,許多CPU需要能夠處理複雜度不同的任意指令錯誤。高效地執行此操作是可能的,但它需要非常複雜的調度邏輯。在許多現代CPU中,“完成工作”所需的邏輯並不是過於復雜或昂貴,但是協調其他所有事物所必需的邏輯卻是。

對不起,如果我錯過了,但是這與CPU和“較慢”的微控制器有什麼關係?它似乎只專注於CPU與(通常甚至更快)專用處理器。
-1
...另一個將在每個週期中接受兩個數字並輸出兩個週期前提交的總和,試圖弄清楚何時需要提交值,何時可以使用結果,何時從中加載和保存內容寄存器等會變得非常複雜,特別是如果要避免填充所有管線以匹配最長的管線。
謝謝;清除它。是的,有意義的是,快速的通用CPU在“腳手架”上產生了大部分的財務和能源成本,包括流水線,緩存,調度,RAM控制等。不僅成本高昂,而且通常不需要用於微米。同樣,它永遠不會令我驚奇,在專門針對一種應用量身定制的處理器中,以相對較小的時鐘頻率可以完成的工作。雙方都很有趣!
@underscore_d: MIPS體系結構是在編譯器將負責某些調度問題的前提下設計的,因此可以簡化硬件。我認為,這個概念從未真正流行,因為與較舊的處理器相比,較新的處理器通常需要更多的流水線級,但是在沒有硬件互鎖的情況下,為具有較短流水線的處理器編寫的代碼將無法在具有較長流水線的處理器上工作。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...