Bir yorumunda bu cevap Kortuk sorar ARM avantajı nedir . İlk önce cevabıma bazı argümanlar ekledim, ancak sorunun kendi içinde bir soru olacak kadar ilginç olduğunu ve daha fazla cevabın mümkün olduğunu düşünüyorum.
Bir yorumunda bu cevap Kortuk sorar ARM avantajı nedir . İlk önce cevabıma bazı argümanlar ekledim, ancak sorunun kendi içinde bir soru olacak kadar ilginç olduğunu ve daha fazla cevabın mümkün olduğunu düşünüyorum.
Yanıtlar:
Performans bir avantajdır. 32 bit işlemci olan DMIPS-bilge 8 bitlik kontrol cihazlarının hepsinden daha iyi performans gösterir. Çekirdek ayrıca birkaç nesilden geçti, optimizasyonlar okudu.
Bu optimizasyonlar yalnızca performans numaralarında değil, aynı zamanda güç tüketiminde de gösterilir. En yeni çekirdek, önceki nesle kıyasla DMIPS / mW oranını iki katına çıkardı (ayrıca bu cevaba bakınız ).
ARM, diğer tüm mikrodenetleyicilerden çok daha fazla üreticiden temin edilebilir ve her biri farklı yonga çevre birimleri ve bellek ve paket kombinasyonları arasından seçim yapabileceğiniz çok sayıda versiyona sahiptir. Örnek olarak: NXP, çip üzerinde Ethernet bulunan 35'ten az kontrol cihazı sunar .
ARM'lerucuz ; ARM muhtemelen 1 USD engelini kıran ilk 32 bit denetleyiciydi.
Bu performans kombinasyonu , geniş teklif ve düşük maliyet , ARM'i görmezden gelemeyeceğiniz şekilde yapar:
Analist firması Linley Group'un araştırmasına göre, 2005 yılında tüm cep telefonlarının yaklaşık yüzde 98'i anakartlarında en az bir adet ARM tasarımlı çekirdek kullanıyor. ( kaynak )
Cep telefonu pazarının da başka bir etkisi var. Cep telefonları çok alan kısıtlıdır ve küçük paketler gerektirir. NXP en LPC1102 sadece 5mm bir WLP-16 paket halinde geliyor , daha önce sadece düşük pin sayısı 8 bit mikrodenetleyiciler tarafından kullanılan bir ölçek.
Bir nokta henüz belirtilmeyen: 1908 yılında, Bay adında bir adam PL Robertson icat yeni geliştirilmiş vidalı kafa ve sürücüyü . Tasarımına vida ve sürücü üreten tek kişi olmak istedi. Yıllar sonra, Bay Henry F. Phillips adında bir başkası alternatif bir tasarımla geldi . Bay Robertson'dan farklı olarak, Bay Phillips tasarımını lisanslamakla, vida ve sürücü üretmekten daha çok ilgilendi.
Aynı şekilde, 1970'lerde Sony , Betamax adlı bir teknolojiyle karşılaştı ; JVC , VHS adında biriyle geldi. Sony, VCR üretmekle ilgilendi; JVC, lisanslama ile daha fazla ilgilendi.
Burada bir kalıp var gibi görünüyor. (Not: Bir süredir Intel, 80x86 teknolojisini lisanslamıştır , ancak onlarca yıldır iç kullanım için teknolojilerin geliştirilmesine odaklanmıştır.)
Tüm satıcıların ARM'ları için geliştirilecek donanım / yazılım. Bir kez JLINK / ULINK ve bir miktar Keil IDE alırsınız ve onu gezegendeki neredeyse tüm ARM'leri geliştirmek, taklit etmek ve hata ayıklamak için kullanabilirsiniz.
Yeni çip satıcısına taşırken yeni mimari öğrenmeye gerek yok => daha az satıcı lockin => daha fazla rekabet => daha düşük fiyatlar
Modern teknoloji işlemlerinde (0.18um ve altı) ARM çekirdeği öylesine küçük ki, 8bit çekirdekte onu feda etmek fiyatın gözle görülür bir kısmını kurtaramayacak. Bu nedenle standart yüksek performanslı fakat ucuz mimariye gitme sebebi.
Performans - yalnızca ARM ile 32 * 32-> 64 için tekli saat 32 * 32-> 32 çarpma ve donanım desteği ve 1-altı alt cihazlar için bölme (örneğin, alt uç STM32'ler) olabilir
ARM çok açgözlü değildir ve lisanslar için makul olmayan ücretler almaz, bu nedenle üreticiler ucuz mikroplar üretebilir.
Bu nedenlerden dolayı orta seviye ARM işlemcilere odaklanıyorum :
Tam Linux desteği
Bu, neredeyse ücretsiz aygıt sürücüleri anlamına gelir. Yeterince USB host ve cihaz kodu yaptım, daha fazlasını yapmak istemiyorum. Ayrıca rasgele bir işlemci platformuna TCP / IP eklemeye çalışmaktan da çok heyecan duymuyorum ( LwIP / uIP o kadar kötü olmasa da). Wi-Fi, gerçek bir Bluetooth yığını, web kameraları, vb. Yapmayı hiç denemedim bile.
Ayrıca Linux aygıt sürücülerinin yazılmasının ne kadar rasyonel ve kolay olduğuna gerçekten şaşırmıştım. Bazı Windows aygıt sürücüleri yaptıktan sonra Linux bir rüya gibi. (Adil olmak gerekirse, Windows sürücü çerçevesi bunu yaptığımdan beri çok gelişti.)
Yazılım platformu da harika. SSL şifrelemesi, dosya sistemleri, uzaktan yönetim, kolay uygulama güncellemeleri (karmaşık bir önyükleyici yerine bir dosyayı kopyala), vb.
Aynı zamanda telif ücretsizdir ve kapalı kaynak kodlu bir WinCE platformunun olacağını söylemekten çok kendi isteğinize boyun eğmek kolaydır . (Açık kaynaklı bir idealist olduğumdan değil ... hepsi benim için çok pratik bir sebep.)
Gerçek MMU'lu ARM çekirdeği hakkında konuşuyorum , bu yüzden orta-üst seviye fişler için ( sanırım μClinux kullanabilseniz de).
Güç tüketimi
Bu temelde diğerlerinin yorumlarının bir tekrarı, ama benim için büyük bir faktör. Mevcut 454 MHz ARM platformum maksimum CPU'da 1/2 watt, 1 watt çekiyor. Buna x86 ile yaklaşamıyorsun.
Bu benim mantığımdır. Denklemin yakın zamanda değiştiğini görmüyorum.
ARM bir ilerlemeden geçti:
ARM mimarisi, bazı karmaşık işlemlerin çok hızlı bir şekilde gerçekleştirilmesini sağlar - diğer çiplere göre çok daha hızlı. Örneğin (ARM7-TDMI kullanarak):
ldrh r0, [r10, # ADDR_BUS_OFS]; Hedef sistem adres veri yolunu oku (13 bit) ldrb r1, [r9, r0, lsr # 8]; Bir işleyiciler tablosunda adres aramak için üst bitleri kullanın pc'yi ekle, r9, r1 lsl # 2; Uygun işleyiciye git
Her işleyici, adresin 1 / 4'ünü tablonun başından itibaren veren bir bayt olarak depolanır. Net etki, adres veriyolunun içeriğinin bir kez alınmasından sonra, 32 baytlık bir atlama tablosu kullanarak, alınan üst beş bit baz alınarak bir işleyiciye atlamak için yalnızca altı döngü (iki talimat) alınmasıdır.
Karşılık gelen THUMB kodu daha çok şöyle olurdu:
; Başka bir şey için r6 / r7'ye ihtiyacımız olmadığını varsayarsak, r9 / r10'dan yeniden atanmışlar ldrh r0, [r7, # ADDR_BUS_OFS] mov r1, r0 Rs, R1, # 8; THUMB kaynak ve hedefin aynı olmasını gerektirir ldrb rl, [r6, rl] 1, 1, 1, 1; Hedef adresler tam kelime hizalı olsaydı, shift-left-two kullanabilir miydi pc ekle, r1
Bu, talimatların orijinallerin yalnızca yarısı kadar büyük olmasına rağmen, kod yoğunluğu açısından gayet iyi, ancak altı değil alımdan sonra dokuz devir alacaktır. Otobüsten izlenen otobüste ARM'in idare etmeyi başarabilmiş olsun veya olmasın kendi hızında çalışacak bir uygulamada, daha hızlı ARM talimatları çok büyük bir artı.
Bu arada, Thumb2 önceki araçların kullanımını kolaylaştıran Thumb ile ikili uyumludur, ancak orijinal ARM kadar yapamayacağı bazı şeyler olduğu anlamına gelir. Örneğin, ARM'de, her iki bit için yaklaşık 3 komut kullanarak dört yazmaçta tutulan bir 8x8 bitmap "döndürülebilir":
movs r0, r4, lsl # 25; LSB'nin üst bitini C'ye, bir sonraki bit'i N'ye yerleştirin orrcs r6, # 0x00000001 orrmi r6, # 0x00000100
Thumb2'de, açık koşullu talimatlar eklemek gerekli olacaktır:
movs r0, r4, lsl # 25; LSB'nin üst bitini C'ye, bir sonraki bit'i N'ye yerleştirin ITCS orrcs r6, # 0x00000001 itmi orrmi r6, # 0x00000100
ARM ile karşılaştırıldığında zaman ve alan verimliliğinde net% 33 azalma; Muhtemelen bu, en kötü durumda olan Thumb kodu örneği, ARM'den daha az verimlidir ve hatta bu tam olarak korkunç değildir.
ARM ile karşılaştırıldığında Thumb2'nin diğer bir hafif dezavantajı: ARM kodunda tüm talimatlar tam kelime sınırlarında başlar ve statik analizi kolaylaştırır. Thumb2'de, talimatlar isteğe bağlı olarak yarım sözcük sınırlarında başlayabilir ve tam sözcük sınırlarını kaldırabilir. Statik analiz bu nedenle çok daha zor olabilir.
Biraz geçmiş, Acorn 1980'lerde (8 bit 6502 yapabileceklerini sınırlıyordu) yeni bir bilgisayar için özel bir CPU (örneğin, bellek kontrollerinde dahili) istedi. Intel ile konuştular, ancak Intel onlara bir CPU lisansı vermedi.
Böylece, Acorn çok basit bir RISC işlemci tasarladı, ancak bir CPU üreticisi olmadıkları için kimseye lisans vermeye istekliydiler (ve alabilecekleri tüm paraya ihtiyacı vardı!). (İşlemcinin ilk defa çalıştığına inanıyorum, kısmen basitti ve aynı zamanda tasarımcı Cambridge Üniversitesindeyken birçok araştırma CPU'su yarattı.)
Yıllar geçtikçe CPU tasarımı müşteri çip tasarımına dahil edilmesi daha kolay ve daha kolay hale geldi.
Chip üreticisi, rakip olmadıkları için Acorn'dan lisans almayı güvenli bir şekilde hissetti. Ayrıca kimse Acorn'ın Cambridge'de olduğu gibi (gerçek olanı!) Lisans almak için rakiplerinin memleketlerine gideceğini düşünmüyordu . (Acorn'u ziyaret etmek için Cambridge'e bir “gerçek bulma” gezisi yapma şansı, herhangi bir noktada seçeneklerin kısa listelenmesini etkiler….)
Acorn Risc Machine CPU'nun embed sistemi için olan tasarımlarının birçoğu güç kullanımı önemliydi. Acorn Risc Machine CPU için de ucuz ve iyi geliştirme araçları üretildi.
Böylece cep telefonları gömülü bir işlemciye sahip özel yongalara ihtiyaç duymaya başladığında, Acorn ARM olarak değiştirildi ve gerisi tarih oldu. (Belki de diğer CPU'ların çoğunlukla ABD tarafından kontrol edildiği bir miktardı, ancak cep telefonları Avrupa'da normal hale geldi.)
(Bunlardan herhangi biri size IBM'den küçük ve bilinmeyen bir ekiple Microsoft ve Dos'yu hatırlatıyor mu?)
ARM'in birçok görev için o sırada en iyi CPU'lardan biri olduğu (ve hala da) aslında yardımcı oldu - ama sadece "en iyi" CPU tasarımına sahip olmak yeterli değil.
Teknik sorunlar bir yana, ARM'in teknik olmayan birçok sebebi var. Ancak hızlı cevap şudur: Intel (veya x86) değil.
Eğer CPU Ar & Ge dolarlarının nereye yatırıldığına bakarsanız, şu anda temelde iki kampa girerler: ARM ve Intel. (Küçük MCU’ları görmezden geliyorum ve AMD’yi Intel’e götürüyorum.) PowerPC’ye, MIPS’e, SPARC’ya ve diğer büyük CPU’lara giden çok az para var. Hala ayakta kalanlar ARM ve Intel.
Intel ve diğer x86 işlemcilerle çok miktarda eski bagaj alıyorsunuz. Örneğin, bir yonga setine, BIOS'a ve diğer şeylere ihtiyacınız var. CPU süper güç verimli olsa bile, diğer cihazlar sisteminizi tartmaya ve daha büyük, daha fazla güç aç ve daha pahalı hale getirme eğilimindedir. Sadece bir Intel CPU ile bir PCB geliştirmek büyük bir sorun ve daha sonra bir BIOS satıcısıyla, vs. pazarlık etmek zorundasınız. yılda bir milyondan daha az satmayacak küçük insanlarla iş yapmak.
ARM ile o valiz yok. Mikrodenetleyici hattı işlerinden çok çekirdekli canavarlara kadar pek çok çip kaynağı var. Bir BIOS lisansı ile uğraşmanıza gerek yok (ki bu ikinci el araba satıcısına gitmek gibi). Ve üretici ve satıcılar genellikle sizin için iyi.
Karşılaştırma ARM7 / ARM9 için MIPS IV ve zaten iyi belirtilen konuların lisans dışındaki ufak bir avantajı vardır. MIPS komut setinin ve dahili veri yolunun iç kısımları, belirli tasarım türleri için onu üstün (maliyet başına performans) yapar; bu yüzden birçok Wi-Fi yönlendirici ARM çekirdeği yerine MIPS çekirdeği kullanıyor.
ARM çekirdeği çoğunlukla el cihazlarına uygulandığından, ASIC'ler daha fazla güç kontrolü özelliği eklerken, MIPS daha düşük güçten ziyade döngü başına performansa odaklanır. RISC'nin Intel x86 üzerindeki faydası farklı bir tartışma.