Fråga:
Vad är så bra med ARM?
stevenvh
2011-07-14 16:42:47 UTC
view on stackexchange narkive permalink

I en kommentar till detta svar frågar Kortuk vad ARM-fördelen är . Jag lade först till några argument i mitt svar, men jag tycker att frågan är intressant nog för att vara en fråga i sig, så att fler svar är möjliga.

dina svar verkar vara konstruktiva på de minst konstruktiva frågorna, men jag oroar mig för att andra kommer att skriva mycket åsikter. Vi kommer att se om människor försöker hindra baren du har ställt in.
@Kortuk - Redigera gärna formuleringen i frågan eller titeln om du tror att det kan hjälpa till att få bättre svar. (Det var din fråga ändå)
Dessa frågor ställer ett religiöst krig. Om det inte var för folket som frågade och kommenterade skulle jag rösta för att stänga detta omedelbart. Kom ihåg att du vet att du alltid har rätt och den andra killen en barbarisk hedning när det handlar om tro. Låt jihaden börja ...
@olinLathrop, det är vad jag tittar på. För närvarande verkar det som om vi får svar av hög kvalitet utan att slåss. Jag kommer förmodligen att göra detta till en CW lång sikt och låta Google bete i kombination med intressant information om armen leva. Jag skulle normalt ha stängt det här direkt men @stevenvh öppnade det med ett bra svar och verkar ha satt en ton av kvalitet.
Nio svar:
stevenvh
2011-07-14 16:47:18 UTC
view on stackexchange narkive permalink

Prestanda är en fördel. Att vara en 32-bitars processor överträffar (nästan) alla 8-bitars styrenheter DMIPS-klokt. Kärnan har också gått igenom flera generationer, läst optimeringar.
Dessa optimeringar visas inte bara i prestandanummer utan även i energiförbrukning . Den senaste kärnan har fördubblat sitt DMIPS / mW-förhållande jämfört med föregående generation (se även detta svar).
ARM finns tillgängligt från många många tillverkare , mer än någon annan mikrokontroller, och alla har ett antal versioner att välja mellan, med olika kombinationer av kringutrustning och minne på chipet och paket. Exempel: NXP erbjuder inte mindre än 35 styrenheter med on-chip Ethernet.
ARM är billiga . ARM var förmodligen den första 32-bitars styrenheten som bröt USD 1-barriären.

Denna kombination av prestanda , brett erbjudande och låg kostnad gör det så att du helt enkelt inte kan ignorera ARM:

År 2005 använder ungefär 98 procent av alla mobiltelefoner åtminstone en ARM-designad kärna på sina moderkort, enligt forskning från analysföretaget Linley Group. ( källa)

Mobilmarknaden har också en annan effekt. Mobiltelefoner är mycket begränsade och kräver små paket. NXP: s LPC1102 kommer i ett WLP-16-paket bara 5 mm \ $ ^ 2 \ $, en skala som tidigare endast använts av 8-bitars mikrokontroller med lågt stiftantal.

I can only add, that ARM definitely first 32-bit micro to break 0.5$ price point (Cortex M0 in quantiny)
@Barsmonster - Cool! Ser ut som den enda framtiden för 8-bitars är i [2mm x 3mm DFNs] (http://ww1.microchip.com/downloads/en/DeviceDoc/41239D.pdf)
@self - och kanske inte ens det. Se tillägget om LPC1102 i mitt svar.
@stevenvh - Nåväl finns det fortfarande strömförbrukningsfördelen. LPC1102 @ 12MHz viloläge använder 1mA. Inte dåligt, men cirka 1000 gånger mer än en [16 bit] msp430.
@self - Skrapa den fördelen också. Efter lite sökning verkar Energy Micro ha en M3 som i viloläge + RTC kan komma ner till 0,6uA.
supercat
2011-07-14 20:04:04 UTC
view on stackexchange narkive permalink

En punkt som ännu inte nämnts: År 1908 kallade en kille som heter P.L. Robertson uppfann ett nytt förbättrat skruvhuvud och skruvmejsel. Han ville vara den enda personen som tillverkade skruvar och skruvdragare för sin design. Årtionden senare kom någon annan vid namn Mr. Henry F. Phillips med en alternativ design. Till skillnad från Robert Robertson var Phillips mer intresserad av att licensiera sin design än att producera skruvar och drivrutiner.

På 1970-talet kom Sony med en teknik som heter Betamax; JVC kom med en som heter VHS. Sony var intresserad av att producera videobandspelare; JVC var mer intresserad av licensiering.

Det verkar finnas ett mönster här. (Obs: Intel licensierade en stund sin 80x86 -teknik, men har under årtionden varit mer fokuserad på att utveckla tekniker för internt bruk.)

Ja. Jag tror att licensordningen för ARM immateriella rättigheter är orsaken till framgång.
ARM tillåter enorm flexibilitet med sin licensiering. Om du bara behöver IP för ett par kärnor kostar det inte för mycket. Men om du vill skapa ett kraftigt anpassat chip, optimerat av dina chipdesigners, kostar det mer * men det är ett tillgängligt alternativ. * Så ett företag som Apple kan utveckla sin egen serie processorer optimerade för deras applikation. De flesta företag skulle inte låta så mycket av kronjuvelerna utanför deras kontroll.
Det är viktigt att notera att ARM inte konkurrerar med Intels x86-linje (inte ens riktigt i det utrymme som de nya Atom-processorerna kör in). Om ditt svar var tänkt att antyda det är det fel. Intels Moorestown- och Medfield-arkitekturer (är tänkta) tävlar i samma utrymme som ARM.
Det har gått åldrar sedan Intels 80x86-linje har varit konkurrenskraftig i de typer av applikationer där en ARM skulle användas idag, men 8088, 8086, 80286 och 80386, som alla licensierades, var populära bland inbäddade system. Min kommentar om Intel var främst att erkänna att Intel är populärt idag trots att det inte är licensierat som ARM.
@supercat: Intel licensierar massor av mjuk IP dessa dagar.Det tillhandahåller också designverktyg och SIP för FPGA-design (http://www.intel.com/content/www/us/en/fpga/ip-and-design-tools.html)
BarsMonster
2011-07-14 18:46:31 UTC
view on stackexchange narkive permalink
  1. Samma hårdvara / mjukvara att utveckla för ARM: s av alla leverantörer. Du köper JLINK / ULINK och lite Keil IDE en gång och kan använda det för att utveckla, emulera och felsöka nästan vilken ARM som helst på en planet.

  2. Du behöver inte lära dig ny arkitektur när du flyttar till ny chip-leverantör => mindre leverantör lockin => mer konkurrens => lägre priser

  3. I moderna tekniska processer (0,18um och lägre) är ARM-kärnan så liten att den offrar det för 8bit kärna skulle inte spara någon synlig del av ett pris. Därför anledningen till att gå till standard högpresterande men ändå billig arkitektur.

  4. Prestanda - bara med ARM kan du ha en enda klocka 32 * 32-> 32 multiplikation och hårdvarustöd för 32 * 32-> 64 och delning för sub-1dollar-enheter (nämligen till exempel nedre STM32: er)

  5. ARM är inte alltför girig och tar inte ut orimliga avgifter för licenser , så tillverkare kan producera billiga mikroer.

darron
2011-07-14 20:44:08 UTC
view on stackexchange narkive permalink

Jag fokuserar på mellanliggande ARM -processorer av följande skäl:

  1. Fullständigt Linux-stöd

    Detta betyder enhet förare nästan gratis. Jag har gjort tillräckligt med USB-värd och enhetskod, jag vill inte göra DET längre. Jag är inte heller så glad över att försöka lägga till TCP / IP till en slumpmässig processorplattform (även om LwIP / uIP inte är så illa). Jag har aldrig ens försökt göra Wi-Fi, en riktig Bluetooth-stack, webbkameror osv. Att använda Linux innebär att ett mycket brett utbud av enheter blir mycket lättare att prata med.

    Jag blev också riktigt förvånad över hur rationellt och enkelt att skriva Linux-drivrutiner. Efter att ha gjort några Windows-enhetsdrivrutiner är Linux en dröm. (För att vara rättvis har Windows-drivrutinsramverket förbättrats mycket sedan jag gjorde det.)

    Programvaruplattformen är också fantastisk. Jag får SSL-kryptering, filsystem, fjärrhantering, enkla applikationsuppdateringar (kopiera en fil över istället för en komplex bootloader) osv. Åh, och massor av befintliga verktyg om du behöver göra något.

    Det är också royalty gratis och mycket lättare att böja sig efter din vilja än säga att en sluten källa WinCE plattform skulle vara. (Inte för att jag verkligen är en öppen källkodsidealist ... det är allt väldigt praktiskt resonemang för mig.)

    Jag pratar om ARM-kärnor med faktiska MMU: er, så detta är för mellan- och avancerade marker (även om du kan använda μClinux antar jag).

  2. Strömförbrukning

    Detta är i grunden en upprepning av andras kommentarer, men det är en stor faktor för mig. Min nuvarande 454 MHz ARM-plattform drar 1/2 a watt, 1 watt vid max CPU. Du kan inte ens komma nära det med x86.

Det är ganska mycket mitt resonemang. Jag ser inte ekvationen förändras snart.

Relaterat: Flera RTOS-alternativ.
Det mesta av ditt svar är lika användbart för de flesta CPU-arkitekturer där ute som för ARM. Många av dem är också tillämpliga på 2). Listan över arkitekturer som stöds av Linux är LÅNG och ARM är bara en av dem.
supercat
2011-07-14 20:29:05 UTC
view on stackexchange narkive permalink

ARM har gått igenom en progression:

  1. En 32-bitars instruktionsarkitektur, som hade större kod än många andra arkitekturer, men som kunde avkodas snabbt och kunde göra många operationer med färre instruktioner än konkurrerande arkitekturer
  2. En arkitektur med dubbla instruktionsformat, som kan växla mellan den snygga och kraftfulla (men tyvärr något uppblåsta) ARM-instruktionsuppsättningen och en mindre kraftfull (men mycket mer kompakt) 16-bitars "Thumb" instruktionsuppsättning. Varje tuminstruktion hade en motsvarande ARM-instruktion, vilket minimerade behovet för programmerare att lära sig två instruktionsuppsättningar. koden skulle innehålla en blandning av instruktioner som bara fanns tillgängliga i ARM och instruktioner som skulle ha varit tillgängliga i Thumb men som i alla fall måste representeras som 32 bitar; i Thumb2 får sådan kod platsfördelarna med att ersätta några av 32-bitarsinstruktionerna med 16-bitars.
  3. En enda-tumarkitektur, som är mer begränsande än jag skulle ta hand om, men som är mindre och billigare än någon av de andra.

ARM-arkitekturen gör det möjligt att utföra ganska sofistikerade operationer mycket snabbt - mycket snabbare än på något annat chip. Till exempel (med ARM7-TDMI):

 ldrh r0, [r10, # ADDR_BUS_OFS]; Läs målsystemets adressbuss (13 bitar) ldrb r1, [r9, r0, lsr # 8]; Använd övre bitar för att leta upp adressen i en tabell över hanterare lägg till pc, r9, r1 lsl # 2; Gå till lämplig hanterare 

Varje hanterare lagras som en byte, vilket ger 1/4 av adressförskjutningen från början av tabellen. Nettoeffekten är att när innehållet i adressbussen har hämtats tar det bara sex cykler (två instruktioner) att hoppa till en hanterare baserat på de övre fem bitarna i den hämtade, med hjälp av en 32-byte hopptabell.

Motsvarande THUMB-kod skulle vara mer som:

; Förutsatt att vi inte behöver r6 / r7 för något annat, tilldelas de om från r9 / r10 ldrh r0, [r7, # ADDR_BUS_OFS] mov r1, r0 lsr r1, r1, # 8; TUMM kräver att källa och destination ska vara samma ldrb r1, [r6, r1] lsl r1, r1, # 1; Skulle kunna använda skift-vänster-två, om måladresserna var helt ordinriktade lägg till pc, r1 

Det är bra ur en koddensitetssynpunkt, med tanke på att instruktionerna bara är hälften så stora som originalen, men skulle ta nio cykler efter hämtningen snarare än sex. I en applikation där bussen som bevakas kommer att köra i sin egen hastighet oavsett om ARM har lyckats hantera den, desto snabbare ARM-instruktioner är ett stort plus.

För övrigt är Thumb2 binärkompatibel med Tummen, som underlättar användningen av tidigare verktyg, men betyder att det finns några saker som den inte kan göra lika bra som den ursprungliga ARM. I ARM kan man till exempel "rotera" en 8x8 bitmapp som hålls i fyra register med cirka 3 instruktioner per två bitar:

 movs r0, r4, lsl # 25; Sätt översta biten av LSB i C och nästa bit i N orrcs r6, # 0x00000001 orrmi r6, # 0x00000100 

I Thumb2 skulle det vara nödvändigt att lägga till uttryckliga villkorliga instruktioner:

 movs r0, r4, lsl # 25; Lägg LSB: s översta bit i C och nästa bit i N itcs orrcs r6, # 0x00000001 itmi orrmi r6, # 0x00000100 

Netto 33% minskning av tids- och rymdeffektivitet jämfört med ARM; det handlar förmodligen om ett värsta exempel på att tumkod är mindre effektiv än ARM, och även det är inte riktigt hemskt.

En annan liten nackdel med Thumb2 jämfört med ARM: i ARM-kod börjar alla instruktioner fullt ut -ordgränser, vilket underlättar statisk analys. I Thumb2 kan instruktioner godtyckligt börja vid halvordsgränser och sträcka sig över hela ordgränser. Statisk analys kan således bli mycket svårare.

Ian Ringrose
2011-08-16 16:51:42 UTC
view on stackexchange narkive permalink

Lite är historia, Acorn ville ha en anpassad CPU (t.ex. med inbyggda minneskontroller osv.) för en ny dator på 1980-talet (8 bit 6502 begränsade vad de kunde göra). De pratade med Intel, men Intel skulle inte licensiera en CPU till dem.

Så Acorn designade en mycket enkel RISC-processor, men eftersom de inte var en CPU-tillverkare var de villiga att licensiera den till vem som helst (och behövde alla snabba pengar de kunde få!). (Jag tror att CPU: n fungerade första gången, delvis för att den var så enkel och designern har skapat en hel del forsknings-processorer medan han var vid Cambridge University.)

Med åren har CPU-designen blivit enklare och enklare att inkludera inom kundchipdesign.

Chiptillverkaren kände sig säker licensiering från Acorn eftersom de inte var en konkurrent. Ingen trodde också att de skulle åka till en tävlings hemstad för att få en licens, eftersom Acorn var i Cambridge (den riktiga!) . (Gjorde chansen att en "fakta" resa till Cambridge för att besöka Acorn påverkar kortslutning av alternativ när som helst ...)

Många av de mönster som inkluderar Acorn Risc Machine CPU var för inbäddningssystem var energianvändning viktigt. Billiga och bra utvecklingsverktyg skapades också för Acorn Risc Machine CPU.

Så när mobiltelefoner började behöva anpassade marker med en inbäddad CPU döptes Acorn om till ARM och resten är historia. (Kanske var det också lite att de andra processorerna mestadels kontrollerades av USA, men mobiler blev först normala i Europa)

(Påminner något om detta om Microsoft och Dos med ett litet okänt team från IBM?)

Det faktum att ARM var en av de bästa processorerna vid den tiden (och fortfarande är) för många uppgifter hjälpte också - men att bara ha den "bästa" CPU-designen är inte nog.

Acorn RISC Machine byts namn på Advanced RISC Machines (som stavar ARM). Också endast ARM CPU-grenen av Acorn blev oberoende och kallas Advanced RISC Machines. Acorn fortsatte utvecklingen av sitt RISC-OS och jag tror att det nu också är känt av det senare.
user3624
2011-07-14 20:01:53 UTC
view on stackexchange narkive permalink

Bortsett från tekniska problem finns det många icke-tekniska skäl för ARM. Men det snabba svaret är detta: Det är inte Intel (eller x86).

Om du tittade på var CPU R&D dollar investeras just nu faller de i princip i två läger: ARM och Intel. (Jag ignorerar små MCU-enheter och slår AMD in med Intel.) Det finns väldigt lite pengar som går till PowerPC, MIPS, SPARC och andra stora processorer. ARM och Intel är de enda som fortfarande står.

Med Intel och andra x86-processorer får du en enorm mängd äldre bagage. Du behöver till exempel en chipset, ett BIOS och andra saker. Även om processorn var supereffektiv, tenderar de andra enheterna att väga ner ditt system och göra det större, mer energikrävande och dyrare. Att bara utveckla ett kretskort med en Intel-processor är en enorm fråga, och sedan måste du förhandla med en BIOS-leverantör etc. För att göra saken värre vill många av leverantörerna för chipsets, BIOS, videochips etc. att göra affärer med små människor som inte säljer mindre än en miljon enheter om året.

Med ARM har du inte det bagaget. Det finns många källor till marker från saker med mikrocontroller-linje upp till monster med flera kärnor. Du behöver inte hantera licensiering av ett BIOS (vilket är ungefär som att gå till en begagnad bilförsäljare). Och tillverkare och leverantörer är i allmänhet trevliga för dig.

Ignorera inte små MCU: er. ARM får också en stor del av den marknaden med sin Cortex-M-serie. Jag skulle tänka två gånger idag om att använda en icke-ARM 32-bitars styrenhet.
Ja, jag håller med @Mike. ARM försöker för närvarande att expandera till den kraftiga marknaden som intel dominerar som servrar. De är kända för sina mikroprocessorer i medelhögt område och mikroprocessorer med lågt medelintervall
Intel licensierar mer IP i dessa dagar (speciellt med Altera-förvärv).Se till exempel: http://www.intel.com/content/www/us/en/fpga/ip-and-design-tools.html.
Jonathan Cline
2011-07-15 00:53:45 UTC
view on stackexchange narkive permalink

Jämför ARM7 / ARM9 med MIPS IV och det finns liten fördel förutom licensfrågor som redan nämnts. Internt i MIPS instruktionsuppsättning och intern buss gör den överlägsen (prestanda per kostnad) för vissa typer av mönster; varför många Wi-Fi-routrar använder MIPS-kärnor snarare än ARM-kärnor.

Eftersom ARM-kärnor applicerades mestadels på handhållna enheter lade ASIC till fler funktioner för effektkontroll medan MIPS fokuserar mer på prestanda per cykel snarare än lägre kraft. Fördelen med RISC jämfört med Intel x86 är en annan diskussion.

Observera att Microchips PIC 32-linje använder MIPS-kärnan. MIPS finns därför i små, billiga, fristående och lågeffektpaket. Dessutom kan du använda MPLAB på dem, vilket är något du inte kan göra med någon ARM.
The other comment I hear from ASIC designers is that the ARM AHB and APB are difficult to work with (maybe due to separate licensing, or design issues). Whereas the MIPS buses are somehow easier. Meaning: the core is one thing; the peripherals outside the core also need consideration.
meganame
2012-02-03 22:17:44 UTC
view on stackexchange narkive permalink

Det finns inga verkliga fördelar. Bifogade DSP och andra styrenheter, som GSM, är det som gör dem så populära.

andra svar verkar inte vara överens.
-1 Allt på jorden har fördelar och nackdelar!


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...