ARM'in nesi harika?


61

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.


1
Cevaplarınız en az yapıcı sorular üzerinde yapıcı görünüyor, ancak başkalarının çok düşünülmüş cevaplar yazmasından endişe ediyorum. İnsanların sizin belirlediğiniz çubuğu engellemeye çalışıp çalışmadığını göreceğiz.
Kortuk

@Kortuk - Daha iyi cevaplar almanıza yardımcı olabileceğini düşünüyorsanız, sorunun ifadesini veya başlığını düzenlemekten çekinmeyin. (Bu zaten senin soruydu)
stevenvh

5
Bu sorular dini bir savaş istiyor. Soru soran ve yorum yapan insanlar olmasaydı, bunu hemen kapatmak için oy kullanırdım. Unutma, her zaman haklısın ve diğer adam inanç meselesi olduğunda barbarca bir pislik. Cihad başlasın ...
Olin Lathrop

@ LolinProp, bunun için izliyorum. Şu anda sanki çekişmeden çok kaliteli cevaplar alıyoruz gibi görünüyor. Muhtemelen bunu uzun bir CW yapacak ve google yeminin koldaki ilginç bilgilerle birlikte yaşamasına izin vereceğim. Normalde bu düpedüz kapatırdım ama @ stevenvh bunu büyük bir cevapla açtı ve bir kalite tonu belirledi.
Kortuk

Yanıtlar:


51

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.2


1
Ben sadece ekleyebilirim, ARM kesinlikle ilk 32-bit mikro 0.5 $ fiyat noktasını kıracak (miktar olarak Cortex M0)
BarsMonster

@Barsmonster - Harika! Görünüşe göre 8-bitlik tek gelecek 2mm x 3mm DFN'de
stevenvh

@self - ve belki bu bile değil. Cevabımdaki LPC1102 ile ilgili eke bakınız.
stevenvh

@ stevenvh - Eh hala güç tüketimi avantajı var. LPC1102 @ 12MHz uyku modunda 1mA kullanır. Fena değil, ancak [16 bit] msp430'dan yaklaşık 1000 kat daha fazla.
Imbrondir

1
@self - Bu avantajı çizin. Bazı araştırmalardan sonra Energy Micro’nun M3 modelinde uyku modunda + RTC’nin 0.6uA’ya düşebileceği görülüyor.
Imbrondir

37

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.)


4
Evet. ARM fikri mülkiyet için lisanslama planının başarının nedeni olduğunu düşünüyorum.

10
ARM, lisansı ile büyük miktarda esneklik sağlar. Sadece birkaç çekirdek için IP’ye ihtiyacınız varsa, bu size çok pahalıya mal olmaz. Bir ağır özelleştirilmiş çip yapmak istiyorsanız, tamamen bu maliyeti daha fazla, sizin çip tasarımcıları tarafından optimize ancak kullanılabilir bir seçenektir. Böylece Apple gibi bir şirket, uygulamaları için optimize edilmiş kendi işlemcilerini geliştirebilir. Çoğu şirket, taç mücevherlerinin çoğunun kontrollerinin dışında olmasına izin vermezdi.
Mike DeSimone

ARM'in x86 çizgisiyle rekabet etmediğini not etmek önemlidir (yeni Atom işlemcilerin çalıştığı alanda bile değil). Cevabınız bunu ima etmek istiyorsa, bu yanlış. Intel'in Moorestown ve Medfield mimarileri, ARM ile aynı alanda rekabet ediyor.
Mark

1
Intel'in 80x86 çizgisinin bugün bir ARM'ın kullanılacağı uygulama türleri konusunda rekabetçi olmasından bu yana yıllar geçti, ancak hepsi lisanslı olan 8088, 8086, 80286 ve 80386 gömülü sistemler arasında popülerdi. Intel ile ilgili yorumum, ARM gibi lisanslı olmamasına rağmen bugün Intel'in popüler olduğunu kabul etmekti.
supercat

@supercat: Intel bugünlerde pek çok yumuşak IP lisansı veriyor. Ayrıca FPGA tasarımı için tasarım araçları ve SIP sağlar ( intel.com/content/www/us/en/fpga/ip-and-design-tools.html )
jbord39

32
  1. 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.

  2. 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

  3. 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.

  4. 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

  5. ARM çok açgözlü değildir ve lisanslar için makul olmayan ücretler almaz, bu nedenle üreticiler ucuz mikroplar üretebilir.


27

Bu nedenlerden dolayı orta seviye ARM işlemcilere odaklanıyorum :

  1. 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).

  2. 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.


2
İlgili: Çoklu RTOS seçenekleri.
Steve S

Cevabınızın çoğu, ARM'teki kadar CPU mimarisinin çoğunda uygulanabilir. Birçoğu 2) için de geçerlidir. Linux tarafından desteklenen mimarilerin listesi UZUN ve ARM bunlardan sadece bir tanesidir.
Mark

19

ARM bir ilerlemeden geçti:

  1. Diğer birçok mimariden daha katı kodlara sahip, ancak hızlı bir şekilde deşifre edilebilen ve rakip mimarilerden daha az talimatla birçok işlemi yapabilen 32 bitlik bir yönerge mimarisi
  2. Güzel ve güçlü (ama ne yazık ki biraz şişirilmiş) ARM komut seti ve daha az güçlü (ama çok daha küçük) 16-bit "Thumb" komut seti arasında geçiş yapabilen çift komut formatlı bir mimari. Her Başparmak komutunun, bir ARM komutuna sahip olması, programcıların iki komut setini öğrenmesi gerekliliğini en aza indirdi.
  3. Thumb komut setine iki kelimelik komutlar ekleyen ve çoğunlukla kazanılan şeyleri veren bir Thumb2 mimarisi: tipik ARM kodu, yalnızca ARM’de mevcut olan talimatların ve Thumb’te bulunan talimatların bir karışımını içerir. ancak yine de 32 bit olarak gösterilmesi gerekiyordu; Thumb2'de bu kod, 32-bit komutların bazılarını 16-bit komutların yerine koymanın faydalarından yararlanır.
  4. İlgilendiğimden daha sınırlayıcı olan ancak diğerlerinden daha küçük ve daha ucuz olan, yalnızca küçük bir mimari.

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.


14

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.


Acorn RISC Makinesi, aslında ARM'i heceleyen Gelişmiş RISC Makineleri olarak yeniden adlandırılmıştır. Ayrıca sadece Acorn'un ARM CPU şubesi bağımsızlaştı ve Gelişmiş RISC Makineleri olarak biliniyor. Meşe palamudu RISC-OS'in gelişimini sürdürdü ve ben şimdi bunun ikinci kişi tarafından da bilindiğine inanıyorum.
jippie

13

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.


2
Küçük MCU'ları görmezden gelmeyin. ARM, Cortex-M serisi ile de o pazarın büyük bir bölümünü elde ediyor. ARM olmayan 32 bit denetleyiciyi kullanmak için bugün iki kez düşünürdüm.
Mike DeSimone

Evet, @Mike’a katılıyorum. ARM şu anda, intel server gibi baskın olan yüksek güç piyasasına doğru genişlemeye çalışıyor. Onların orta-yüksek dereceli mikrodenetleyicileri ve düşük-orta menzilli mikroişlemcileri ile
tanınırlar

Intel bu günlerde daha fazla IP lisanslıyor (özellikle Altera'yı satın alarak). Örneğin : intel.com/content/www/us/tr/fpga/ip-and-design-tools.html adresini ziyaret edin.
jbord39

12

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.


1
Microchip'in PIC 32 hattının MIPS çekirdeğini kullandığını unutmayın. Bu nedenle MIPS, küçük, ucuz, kendi kendine yeten ve düşük güçlü paketlerde de mevcuttur. Dahası, onlar üzerinde MPLAB kullanabilirsiniz, bu herhangi bir ARM ile yapamayacağınız bir şeydir.
Olin Lathrop

ASIC tasarımcılarından duyduğum diğer bir yorum ise ARM AHB ve APB'nin birlikte çalışmasının zor olduğu (belki de ayrı lisanslama veya tasarım sorunları nedeniyle). Oysa MIPS otobüsleri bir şekilde daha kolaydır. Anlamı: çekirdek bir şeydir; Çekirdek dışındaki çevre birimlerinin de dikkate alınması gerekir.
Jonathan Cline

-8

Gerçek bir avantaj yok. Ekli DSP ve GSM gibi diğer kontrolörler onları bu kadar popüler yapan şeydir.


3
diğer cevaplar aynı fikirde görünmüyor.
Kortuk

1
-1 Dünyadaki her şeyin avantaj ve dezavantajları var!
RHaguiuda
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.