Mikrodenetleyiciler gibi nispeten daha basit cihazlar neden CPU'lardan daha yavaş?


25

Aynı sayıda boru hattı aşaması ve aynı üretim düğümü (örneğin, 65 nm) ve aynı voltaj göz önüne alındığında, basit cihazlar daha karmaşık olanlardan daha hızlı çalışmalıdır. Ayrıca, birden fazla boru hattı aşamasını bir ile birleştirmek, aşama sayısından çok bir faktör rendesi tarafından yavaşlatılmamalıdır.

Şimdi beş yıllık bir işlemciye, 2,8 GHz'de 14 boru hattı aşaması uygulayın. Diyelim ki aşamaları birleştiriyor; bu 200 MHz’in altına düşecek. Şimdi voltajı artırın ve kelime başına bit sayısını azaltın; Bu aslında işleri hızlandırır.

Bu nedenle, yıllar önce üretilen çok daha karmaşık CPU'ların 150 kat daha hızlı veya 10 kat daha hızlı çalışabilmesine rağmen AVL gibi birçok mikroişlemcinin neden yüksek hızda (5 V'ta 20 MHz gibi) çalıştığını anlamadım. Tüm boru hattı aşamalarını teke, 1,2 V-ish'ta yuvarlarsanız. En kaba zarf arkası hesaplamalarına göre, mikrodenetleyiciler - sınırsız eski teknoloji kullanılarak üretilmiş olsalar bile - tedarik ettikleri voltajın dörtte birinde en az 10 kat daha hızlı çalışmalıdırlar.

Dolayısıyla şu soru: Yavaş mikrodenetleyici saat hızlarının sebepleri nelerdir?


8
Çok iyi bir mikrokontrolcü grubu bordline eski teknoloji ile üretilmektedir çünkü fab için ücret ödenmektedir.
Matt Young,

18
Güç. Her iki işlemcinin güç tüketimindeki faktör ve aynı performans / watt'a oldukça yakın olacaklar veya mikro kazanacak.
Brian Drummond,

34
Daha basit == daha hızlı olduğu fikri basitçe yanlıştır. Modern cisc işlemcinin karmaşıklığının birçoğu, çok seviyeli önbellek, boru hattı ve şube tahmini gibi daha hızlı hale getirmek için özelliklere giriyor
PlasmaHH 19

1
Bu eski işlemci ay / yıl boyunca küçük bir batarya ile çalışmaz. o gün için son teknoloji (okuma: pahalı) teknolojisini kullandı. Her talimat için yavaş / ucuz flaş beklemek zorunda değildi. Bir mcuya hızlı koşması için nadiren ihtiyaç vardır, geliştiriciler adına bazı yeni veriloglar alabilir ve ne olursa olsun dökümhane üzerine uygulayabilirler. Bisiklet vs en iyi formül 1 araba yorumunu en çok beğeniyorum, sanırım özetliyor.
old_timer

14
20 MHz hiç yavaş değil. Sadece kaynakların çoğunun süslü grafikler oluşturmak için kullanıldığı PC'ler için GHz hızları ile şımartıldık. Bir Kilohertz işlemci ile Ay'a uçabilirsiniz ...
vsz

Yanıtlar:


66

Hıza katkıda bulunan başka faktörler de var.

  • Bellek: Gerçek performans genellikle bellek gecikmesi ile sınırlıdır. Intel işlemcilerin bunu telafi etmek için büyük önbellekleri var. Mikrodenetleyiciler genellikle yapmazlar. Flash bellek DRAM'den çok daha yavaş.

  • Güç tüketimi: Bu, gömülü uygulamalarda genellikle çok önemlidir. Gerçek 200 MHz Intel CPU'ları 10 watt'tan fazla (genellikle çok daha fazla) tüketmiştir ve büyük bir soğutucu ve fan gerektirmiştir. Bu alan ve para alır ve hatta onunla birlikte gelen dış mantığı ve hafızayı bile saymaz. Bir 20 MHz AVR ihtiyacınız olan her şeyi içerir, 0.2 watt sürer. Bu aynı zamanda süreçle de ilgilidir - daha hızlı transistörler daha şanslı olma eğilimindedir.

  • Çalışma koşulları: Dmitry yorumlarda da belirtildiği gibi, birçok mikrodenetleyici geniş bir voltaj ve sıcaklık aralığında çalışabilir. Yukarıda bahsettiğim ATMega -40C ila 85C arasında çalışıyor ve -65C ila 150C arasında herhangi bir yerde saklanabilir. (Diğer MCU'lar 125C'ye ve hatta 155C'ye kadar çalışır.) VCC voltajı 2,7V ile 5,5V arasında herhangi bir değerde olabilir (en yüksek performans için 5V +/-% 10). Bu Core i7 veri sayfasını, üretim sırasında izin verilen VCC'yi kısalttıklarından okumak zor, ancak voltaj ve sıcaklık toleransları kesinlikle daha dar -% ~ 3 voltaj toleransı ve 105C maksimum bağlantı sıcaklığı. (Minimum 5C, ancak> 100 amper çekerken, minimum sıcaklıklar gerçekten sorun değil.)

  • Geçit sayısı: Basit her zaman daha hızlı değildir. Öyle olsaydı, Intel herhangi bir CPU mimarına ihtiyaç duymazdı! Bu sadece boru hattı değil; ayrıca yüksek performanslı bir FPU gibi şeylere de ihtiyacınız var. Bu fiyatı artırır. Birçok düşük seviye MCU'nun bu nedenle yalnızca tam sayıdaki CPU'ları vardır.

  • Kalıp alanı bütçesi: Mikrodenetleyiciler, çoğu zaman uygulama için kullanılan tüm belleği içeren bir kalıba çok fazla işlevsellik sığdırmak zorundadır. (SRAM ve güvenilir NOR flaşı oldukça büyüktür.) PC CPU'ları çipsiz bellek ve çevre birimleri ile konuşur.

  • İşlem: Bu 5V AVR'lar eski bir düşük maliyetli işlemle yapılır. Unutma, sıfırdan ucuz olacaklar. Intel, paranın satın alabileceği en iyi teknolojiyi kullanarak tüketici ürünlerini yüksek marjlarda satmaktadır. Intel ayrıca saf CMOS satıyor. MCU işlemlerinde daha zor olan yonga flash bellek üretmek gerekiyor.

Yukarıdaki faktörlerin çoğu ilişkilidir.

Bugün 200 MHz mikrodenetleyiciler satın alabilirsiniz ( işte bir örnek ). Tabii ki, bu 20 MHz ATMeganın on katına mal oldu ...

Kısa versiyon hızın sadelikten daha karmaşık olması ve ucuz ürünlerin hız için değil ucuzluk için optimize edilmiş olmasıdır.


11
Sağlamlığı unutmayın: besleme gerilimi% 5'ten daha fazla değişirse tipik bir CPU başarısız olur, bir ATMega 4MHz'de 1.8-5.5V aralığında herhangi bir şeyden çalışırken.
Dmitry Grigoryev

1
@DmitryGrigoryev İyi nokta! Cevabımı güncelledim.
Adam Haun

25

Düşük hızların temel teknik sebebi, ucuz / küçük MCU'ların yalnızca program depolama için çip üzerinde flash bellek kullanmasıdır (yani RAM'den çalışmazlar).

Küçük MCU'lar genellikle program belleğini önbelleğe almaz, bu nedenle her döngüde çalıştırmadan önce, bir talimatı her zaman flashdan okuması gerekir. Bu, deterministik performans ve # döngü / işlem sağlar, daha ucuzdur / daha basittir ve arabellek taşmalarından kaynaklanan yeni tehditler oluşturarak kod ve verilerin karıştırıldığı PC benzeri sorunları önler.

Flash bellekten okuma süresi (50-100ns'ın sırasına göre) SRAM veya DRAM (10ns veya altı sırasına göre) okumadan çok daha yavaştır ve gecikme süresi, saatin hızını sınırlandırarak her döngüde gerçekleşmelidir. Bölüm.


4
Ayrıca güç (ve dolayısıyla ısı) frekansla doğrusal olarak daha fazla artar.
Kimberly W

1
Flaşla okumanın 100 ns civarında bir yer olduğunu sanmıyorum , değil mi? IIRC iki büyüklük sırası daha büyük. Ancak, eğer flash denetleyici küçük DRAM önbellek içerir ve kodu çok dallı budaklı değil, ortalama gecikme çok düşük olabilir çok yüksek (% 90 +), böylece önbellek isabet oranı olabilir.
MSalters

2
Açtığım bu AT91SAM7S veri sayfası, dahili flaş için "Hızlı erişim süresi, En Kötü Durum koşullarında 30 MHz tek çevrim erişimi" diyor. Bu 33ns. Ve bir dekont öncesi ön tampon belleğine sahip. Kalıp Dışı Flash gerçekten daha yüksek gecikmeye sahip olabilir.
pjc50

1
@Jamil Kesin formülü tam olarak hatırlamıyorum, ancak frekansın kare olduğuna inanıyorum.
Jan Dorniak

22

Formula 1 otomobiliniz varken neden insanlar bisiklet veya küçük bir motosiklet kullanıyorlar? Elbette 300 km / s hızla sürmek ve her yere anında varmak daha mı iyi olmalı?

Basitçe söylemek gerekirse, onlardan daha hızlı olmaya gerek yok. Yani, biraz ve daha hızlı bir mikrodenetleyici olduğundan emin olun, bazı şeyleri mümkün kılar, ancak günde 1 saat boyunca sürekli kullanımda olan bir satış makinesinde ne yapacaksınız? Bir TV için uzaktan kumandada ne yapacaksın?

Öte yandan, düşük güç tüketimi gibi programlamanın çok daha basit olması gibi diğer önemli yeteneklere de sahiptirler. Temel olarak, işlemci değiller ve farklı şeyler yapıyorlar.


12
@Michael Bu fikri basit = hızlı olarak nereden buluyorsun?
Matt Young,

3
@Michael Bir bisiklet bir arabadan çok daha kolaydır, ancak yine de daha yavaştır. Her durumda, Matt haklı. Basit bir şey otomatik olarak hızlı değildir. Başka bir deyişle, daha yüksek frekanslar için ihtiyaç duyulan düşüncelerden dolayı hızlı bir şeyler karmaşık hale gelecektir.
AndrejaKo

2
Yüksek performanslı CISC işlemciler, basit gömülü işlemcilerden çok daha fazla talimat verme eğilimindedir. Paralel olarak daha çok iş yapıyorlar, bu yüzden hem daha karmaşık hem de daha hızlılar.
Kimberly W

2
@Michael $ 1 bazı uygulamalar için lüks olarak pahalı olabilir, Mikro SD kartlardaki mikro denetleyicilerin yaklaşık 19 kuruşa mal olduğunu
okudum

2
@Michael "RISC mimarilerinin ardındaki bütün fikir budur: basit işler karmaşık olanlardan daha hızlı ele alınabilir" Hayır! Modern RISC mimarileri son derece karmaşıktır çünkü daha fazla talimat vermek zorundadırlar (SIMD gibi) ve süperskalar, hiper-diş çekme, sıra dışı çalıştırma gibi daha fazla özelliği desteklemeliler ... Karmaşıklıkları kolayca CISC mimarisini aşabilir. MIPS bugünlerde yüzlerce veya binlerce talimat veriyor. "CISC v RISC, büyük ölçüde tarihsel bir tartışmadır"
phuclv

13

Yüzlerce MHz veya daha fazla hızda çalışan birçok ARM kontrol birimi var. 500 MHz PIC'e kimin ihtiyacı var ve en son teknolojiye yakın bir süreç için milyon dolarlık maskeleri gerekçelendirmek için her bir parça için yeterli para ödemeye hazır mı?

Popüler ATmega328’in 350 nm teknolojisi ile yapıldığı bildiriliyor. Bu, en son üretim Intel işlemcileri ( Skylake için 14 nm ) ile biraz geride kaldı .

Cheapie 8 bit kontrolörleri bile yavaş yavaş hızlanıyorlar ve hala 5 V'da çalışan 32 ve 64 MHz PIC kontrol cihazlarını (örneğin, PIC18F14K22) alabilirsiniz (ikincisi toplam sistem maliyetinde göz önünde bulundurulur).

Bir göz önüne alındığında, bu denetleyicilerin küçük bellek alanları ve düşük saat hızları için optimize edilmiş bir mimarisi vardır. Yüksek saat hızlarına girmeye başladığınızda, önceden belirlenmiş şeylerle vb. Şeyleri reddetmeniz gerekir.

Çok hızlı PIC benzeri kontrol cihazlarının üretilmesi için (1990'ların sonlarında) geri dönüş girişiminde bulunuldu, eğer mikro kontrolör yeterince hızlı olsaydı donanım yazılımının çevre birimlerinin yerine geçebileceği fikrine kapıldı. Örneğin, bir UART'a biraz çarpabilirsin. Ticari olarak başarılı olduklarını sanmıyorum - Scenix-> Ubicom-> Qualcomm (oyun bitti).


350 nm mi? Bu açıklardı. 20 yıllık teknolojiyi kullanarak hiç kimsenin bir şey üreteceğini bilmiyordum.
Michael,

3
Bazılarımız hala 3000nm gibi bir şey olan 4000 serisi CMOS'u (sadece kullanmıyor) tasarlıyoruz.
Spehro Pefhany

6
Daha eski işlemler, radyasyon ortamları ile ilgilenen kişiler veya izlenebilirlik isteyen yüksek güvenilirlik sistemleri için potansiyel olarak faydalıdır.
Krunal Desai

5
Oyun bitmedi - Paralaks Pervanesi bu kavramın bir devamı.
Dave Tweed

3
@Michael: Bu sadece teknolojinin yaşı değil. Büyüklük de önemli. Daha büyük işlem ebadı düşük hata oranlarına sahiptir, bu da daha düşük reddetme anlamına gelir ve böylece daha yüksek verim - bu da yonga başına daha düşük maliyete yol açar. Bir CPU için (masaüstleri gibi) 100 $ ödemeye razıysanız, düşük verimden kaynaklanan yüksek maliyet doğrulanır. Eğer sadece 50 kuruş ödemeye razıysanız haklı değil.
slebetman

3

Birinin otomobil üretmek istediğini hayal edin. Bir yaklaşım, fabrikada ardışık olarak bir grup ekipman kullanmak ve her seferinde bir araba üretmektir. Bu yaklaşım, ılımlı miktarda orta derecede karmaşık ekipmanla yapılabilir, bu tür ekipman parçaları birden fazla adımı gerçekleştirmek için kullanılabilir. Öte yandan, fabrikadaki ekipmanların çoğu hala çoğu zaman boşta oturuyor olacaktı.

Başka bir yaklaşım, bir montaj hattı kurmaktır, böylece ilk üretim aşamasını yöneten ekipman ilk arabadaki işlemi tamamladığında, bir sonraki arabadaki ilgili işlemi başlatmak için devam edebilir. Bir ekipman parçasını imalat işleminde birden fazla aşamada yeniden kullanmaya çalışmak karmaşık olacaktır, bu nedenle çoğu durumda, her biri çok özel bir görevi yerine getirmek için optimize edilmiş daha fazla ekipman parçası kullanmak daha iyi olacaktır (örneğin, 50'yi delmek gerekliyse) 10 farklı boyutta delikler, ardından minimal ekipman düzeneği, 10 bitlik bir matkap ve hızlı değiştirme mekanizmasını içerecektir, ancak bir montaj hattında her biri kalıcı olarak takılmış bir uç ile hızlı bir değişiklik gerektirmeyen 50 matkap olabilir) .

DSP'ler veya GPU'lar gibi şeyler için, görece ucuz bir şekilde çok yüksek hızlar elde etmek mümkündür, çünkü gerçekleştirilecek işin niteliği çok tutarlıdır. Ne yazık ki, birçok işlemcinin farklı karmaşıklık talimatlarının rastgele ifadelerini kullanabilmesi gerekir. Bunu verimli bir şekilde yapmak mümkündür, ancak çok karmaşık bir zamanlama mantığı gerektirir. Pek çok modern işlemcide, "iş yapmak" için gerekli olan mantık aşırı karmaşık veya pahalı değildir, fakat diğer her şeyi koordine etmek için gereken mantıktır.


2
Özür dilerim, özür dilerim, ancak bunun işlemcileri 'yavaş' mikrodenetleyicilerle karşılaştırması ne gibidir? Sadece işlemcilere vs (genellikle daha hızlı) özel işlemcilere odaklanmış gibi görünüyor.
underscore_d

1
@underscore_d: İlk paragraf daha basit mikrodenetleyicileri kapsar - her seferinde bir araba üreten küçük dükkanlar gibidir. İkinci paragraf, çok fazla işlemi çok hızlı bir şekilde gerçekleştirebilen ancak yapabilecekleri işlem türleriyle sınırlı bazı ucuz denetleyicilerin bulunduğunu belirtir. Asıl zor olan, işlemleri önemli bir (ama çok değişken) bir dereceye kadar örtüşürken keyfi bir işlem karışımı gerçekleştirebilmektir. Birinde, her döngüde iki sayı kabul edebilen ve dört döngüden önce gönderilen iki sayının ürününü çıkaran bir alt sistem varsa ve ...
supercat

1
... her döngüde iki sayı kabul edecek ve iki döngü önce gönderilenlerin toplamını, değerlerin ne zaman sunulması gerektiğini, sonuçların ne zaman alınabileceğini, ne zaman yüklenip kaydedilmesi gerektiğini anlamaya çalışacak Özellikle, en uzun olanla eşleşecek tüm boru hatlarının doldurulmasından kaçınılması isteniyorsa, sicillere vs.
supercat,

Teşekkürler; Bu onu temizler. Evet, hızlı genel amaçlı CPU'ların maliyetlerinin çoğunu hem finansal hem de enerji olmak üzere 'iskele' (boru hattı, önbellek, zamanlama, RAM kontrolü vb.) Maruz bırakmaları mantıklı geliyor. mikroskobu için Aynı şekilde, özellikle bir uygulama için özel olarak tasarlanmış bir işlemcide nispeten küçük bir saat frekansıyla yapılabileceklerin beni şaşırtmasından asla vazgeçmiyor. Her iki tarafta da büyüleyici şeyler!
underscore_d

@underscore_d: MIPS mimarisi, derleyicilerin zamanlama sorunlarından bazılarından sorumlu olacağı öncülünde tasarlandı ve böylece donanımın basitleştirilmesine olanak sağladı. Kavramı asla yakalayamadım, bence, çünkü yeni işlemciler genellikle eskilerinden daha fazla boru hattı aşaması gerektirir, ancak daha kısa boru hatları olan bir işlemci için yazılan kod, donanım kenetlerinin olmadığı durumlarda daha uzun olan bir işlemcide çalışmaz.
supercat,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.