Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 35 reacties
Submitter: Exirion

ARM heeft de Cortex-M0+-processorfamilie aangekondigd. De nieuwe 32bit-embedded processor verbruikt 9A/MHz en dat is volgens ARM slechts ongeveer een derde van wat de zuinigste 8bit- en 16bit-microcontrollers verstoken.

ARM Cortex-M0+ rechtsARM borduurt met de nieuwe Cortex-M0+ voort op het ontwerp van de bestaande Cortex-M0 en heeft deze op een aantal punten verbeterd. Zo duurt het nu slechts een enkele kloktik om randapparatuur en gpio-signaallijnen aan te spreken, heeft ARM de debug- en trace-mogelijkheden uitgebreid en is de pijplijn ingekort van drie naar twee stadia voor een lagere latency.

Bij implementatie op een 90nm-low power-procedé verbruikt de nieuwe Cortex-M0+ 11μW/MHz, tegenover 16μW/MHz voor de Cortex-M0. De oppervlakte van de chipkern op dat procedé bedraagt 0,04mm². De nieuwe chip is voorzien van onder meer Thumb- en Thumb-2-ondersteuning, en code geschreven voor de Cortex-M0 draait zonder modificatie op de nieuwe Cortex-M0+.

Met de nieuwe processor denkt ARM te voldoen aan de vraag naar intelligente, zuinige en goedkope microcontrollers voor gebruik in onder meer keukenapparatuur, wasmachines, slimme energiemeters, medische apparatuur, verlichting en motormanagement.

Twee fabrikanten hebben al bekendgemaakt de Cortex-M0+ te gaan gebruiken. Freescale heeft tegelijk met de bekendmaking van de nieuwe ARM-processor zijn Kinetis L-mcu-serie aangekondigd, terwijl ook NXP het chipontwerp aan zijn portfolio toevoegt.

ARM Cortex-M0+

Moderatie-faq Wijzig weergave

Reacties (35)

ARM maakt geen chips, ze maken en verkopen ontwerpen voor CPUs en de dingen daar om heen. Ze leveren ook compilers en debug tools zodat de afnemers van de chips ook meteen iets kunnen met de chips van de klanten van ARM. Ze hebben verschillende ontwerpen, de M0 is de aller kleinste.

Die ontwerpen worden dan gebruikt door NXP, ST, Freescale etc, voor het maken van chips. Die combineren de CPU van ARM met IO van eigen ontwerp.
Vaak specialiseren fabrikanten zich een beetje in een niche. Met een Cortex M0 gecombineerd met motor sturings electronica kan je een wasmachine maken, met gecombineerd met een draadloze zender kan je bijvoorbeeld remote meet apparatuur maken en gecombineerd met een USB interface een PC rand apparaat. De uiteindelijke chip is dus geen 0.04 mm2, omdat de fabrikant er allerlei dingen omheen zet en het uiteraard ook in een behuizinkje gaat. 3 x 3 mm is ongeveer het kleinste.

De M0 is heel klein en beperkt vergeleken met wat tweakers hier gewend zijn. 8 k RAM en 32 k FLASH is ongeveer de max. Het draait geen OS, hooguit is er een handige manier om de firmware te updaten en te multitasken. Ongeveer een Arduino dus, maar dan zuiniger, sneller, goedkoper en met een betere ontwikkelomgeving. Het is de bedoeling dat de M0 gebruikt wordt voor simpele dingen als broodroosters, wasmachines, personenweegschalen, computer muizen en zo.
Voor de mensen die denken dat dit soort CPU cores niet interessant zijn voor Tweakers: onderschat niet in hoeveel apparaten dit soort cores onopvallend gebruikt worden. De meeste telefoons hebben een dergelijke core ergens in zitten om taken uit handen te nemen van de main CPU, en zodoende kan er behoorlijk veel zuiniger gewerkt worden. Ook is de stelling dat zo'n beperkte CPU zonder OS werkt niet helemaal waar: met bijvoorbeeld FreeRTOS heb je een vrij redelijke omgeving om software in te hangen. Ook zijn er M0 en M3 CPU's waar een USB stackje in kan draaien waardoor UART over USB gedaan kan worden en je op die manier allerlei apparaten kunt uitlezen en bedienen vanaf een PC. Er zijn M3-based CPU's met Ethernet, USB host/device en display controllers, en zelfs SDRAM controllers om redelijk wat geheugen aan te kunnen sturen. Ergo, de mogelijkheden met een beperkt stroomverbruik zijn enorm :)
De oppervlakte van de chip op dat proced bedraagt 0,04mm.
Klopt dit? De hele chip heeft zo'n kleine oppervlakte? Waar ga je die dan in terugvinden? Sterker nog, hoe ga je hem terugvinden? Of aansluiten?
Net zoals ze normale microcontrollers bouwen. De chip komt in een grotere behuizing om deze weer makkelijker te gebruiken bij bv. het plaatsten van de chip.

Voorbeeld MC

Edit: Foto is nu doorsnede FlipChip. Hierbij is goed te zien dat er in de behuizing een kleinere chip (in dit geval de ARM processor) bevindt. Deze is met bond wires verbonden aan de BGA.

[Reactie gewijzigd door SuperflipNL op 13 maart 2012 13:37]

Meestal wordt een ARM processor gentegreerd in een chip van derden waarbij het totale oppervlak groter wordt. ARM maakt namelijk zelf geen chips, maar bied processordesigns aan, aan andere bedrijven. deze bedrijven gebruiken deze processor in hun eigen chips. Freescale en Samsung doen dit bijvoorbeeld in hun SOC's.

Een veelgebruikte methode om dit soort chips te verpakken is FlipChip waarbij geen behuizing wordt toegepast:
http://en.wikipedia.org/wiki/Flip_chip

[Reactie gewijzigd door brrrbaybay op 13 maart 2012 13:25]

Het plaatje van SuperflipNL is juist geen flip chip, daar er bonding wires worden gebruikt. Flip chip technonlogie kan ook gebruikt worden in de package zelf (= Flip Chip Bonding, ipv wire bonding):

http://images.yourdictionary.com/flip-chip

Bovestaande wiki pagina is beperkt in de toepassing van flip chip, dit is een beschrijving van hoe naked dies worden gemonteerd mbv flip chip op bv een PCB.

Flip chip Bonding heeft grote voordelen:
1. Geen bonding wires dus geen onnodige inducties (welke bv ground bounce kan veroorzaken)
2. Het substraat van de die is naar boven gericht (weg van de pinnen), edoch goed rechtstreeks te koelen.
3. Ik vind het mooi en dat zegt al heel wat. Geintje. :) :)

Leuke literatuur:
Nanometer CMOS ICs
Harry Veendrick
ISBN: 978-1-4020-8332-7

Gaat dit je te ver dan bestaat er ook een Jip en Janneke versie van dezelfde auteur:
Bit on Chips
Harry Veendrick
http://www.bitsonchips.com/Book%20Bits%20on%20Chips.aspx
Ervan uitgaande dat hij vierkant is, zou hij 0,2 bij 0,2 mm zijn, dat lijkt mee ook erg klein. aansluiten zou met een speciaal voetje/socket kunnen ofzo. Het lijkt me waarschijnlijker dat er een foutje is gemaakt en het 0,04cm moet zijn, 2 bij 2 millimeter zou wel kunnen.
Nee hoor, geen typo. Hier staan de officile spec's.
0,2 bij 0,2 mm is dus alleen de ruimte die de processor op de 'die' inneemt. Dit is het vierkante stukje silicium dat de uiteindelijke chip wordt. Omdat de afnemers van ARM zelf extra functionaliteit toevoegen aan de ARM processor is de uiteindelijke die-size meestal groter. Het is echter geen uitzondering dat de uiteindelijke chips slechts 1,5 bij 1,5 mm groot zijn.

[Reactie gewijzigd door brrrbaybay op 13 maart 2012 13:29]

Wat moet ik me hierbij qua verbruik voorstellen?

De nieuwe 32bit-embedded processor verbruikt 9A/MHz en dat is volgens ARM slechts ongeveer een derde van wat de zuinigste 8bit- en 16bit-microcontrollers verstoken.

Iemand?
ik vind het erg vreemd om verbruik te meten in stroom/MHz, ten eerste meet je verbruik doorgaans in Watts, en ten tweede is er meestal geen lineair verband tussen kloksnelheid en verbruik.
Niet ? Het dynamisch stroomverbruik is evenredig met C*(V^2)*f, met C de geschakelde capaciteit (in jip en janneke taal een getal evenredig met de complexiteit van de chip), V de voedingsspanning en f de frequentie. 2x de frequentie = 2x het dynamisch vermogen.

Anders gezegd: Elke keer schakelen kost een bepaalde hoeveelheid energie. Als je de frequentie verdubbelt op gelijke spanning schakel je twee keer zo vaak, en verbruik je twee keer die hoeveelheid energie.

Het is waar dat voor moderne technologieen de lekstroom steeds belangrijker wordt, maar dat is alleen een probleem voor de Intels en AMDs van deze wereld, niet voor een bedrijf dat zuinige chipjes probeert te bakken op een al wat oudere (90 nm) technologie. (DIe oudere technologie gebruikt men bewust om de lekstromen in de hand te houden, al is de "explosie" van lekstroom voor modernere technologieen tot nu toe aardig uitgebleven)

-edit-

Je moet je niet gek laten maken door de TDP getallen van Intel en AMD, die zien er misschien hetzelfde uit voor verschillende frequenties, maar die zeggen niet veel over het daadwerkelijk opgenomen vermogen.

[Reactie gewijzigd door Foske76 op 13 maart 2012 13:07]

Dat is eigenlijk helemaal niet vreemd, stroomverbruik schaalt met prestatie. Aan de andere kant van de meetlat wordt ook steeds vaker in Performance per Watt gemeten, omdat dat vooral voor dit soort MCUs (Micro Controller Unit) eigenlijk een belangrijke indicatie is.

Wel een beetje gek om een M0+ hier op tweakers te zien. Dit zijn namelijk nou niet echt dingen die je als consumer ziet en zitten bijvoorbeeld in allerlei electronica ingebouwd. Als applicatie-ontwikkelaar zul je behalve in niche-markten deze processor nooit gaan tegenkomen.

De M-lijn van ARM is nou eenmaal puur voor embedded gebruik bedoeld. Interessanter voor de tweakers is normaalgesproken de A-lijn, die veel meer performance bieden, maar natuurlijk ook meer stroom gebruiken.

Zover ik kan zien is de M0+ dan ook "gewoon" de opvolger van de M0, met een instructieset van in totaal 56 instructies.

Overigens levert ARM natuurlijk nog steeds "alleen maar" het ontwerp van de chip. Andere bedrijven kopen vervolgens bij ARM een licentie om het ook echt in een stukje silicium om te zetten.

[Reactie gewijzigd door Garyu op 13 maart 2012 13:44]

Bij deze microcontrollers is er een lineair verband tussen verbruik en kloksnelheid x voedingsspanning. De CPU verbruikt als het ware alleen stroom als hij een operatie moet uitvoeren. Ze kunnen prima op bijvoorbeeld 32k Hz (of lager) lopen en alleen als ze iets moeten doen even naar bijvoorbeeld 20MHz. Denk aan een personenweegschaal die het overgrote deel van de dag niets te doen heeft en lang moet meegaan met z'n batterij.
Vaak is de frequentie waarop de module draait instelbaar dmv bijv. een PLL. Dus is het met deze berekening simpel je verbruik uit te rekenen. Verder denk ik dat dit alleen geld voor de core. De I/O kan nog extra vermogen kunnen verstoken.
9A/MHz is een veelgebruikte maat voor het verbruik. Als de processor op 100 MHz zou draaien en continu bezig zou zijn zou je op een verbruik van 100* 9 = 900 A uitkomen. Dan nog even vermenigvuldigen met de spanning waar de chip op draait en je hebt je (micro)watten terug.

Echter, het zegt niet heel veel. Een ARM Cortex M0 is een zeer beperkte processor, en kan maar heel weinig doen per kloktik. Dat ze dan zuinig zijn is te begrijpen. Er zijn complexere processoren die veel meer kunnen per kloktik, en dan per MHz er minder zuinig uit komen, maar als je per taak gaat rekenen opeens winnen.

Extreem voorbeeldje: De ene timmerman moet je elke keer een instructie geven om een spijker in te slaan, tegen de ander zeg je "bouw een huis". De eerste kan zijn opdrachten sneller uitvoeren dan de ander, en verbruikt daarbij ook nog minder energie. De ander is slomer in zijn opdrachten en verbruikt meer energie, maar doordat hij die opdracht "bouw een huis" kan optimaliseren zal hij uiteindelijk efficienter zijn in tijd en energie.

De tweede timmerman is "sloom en energiezuinig" volgens de A/MHz methode, maar heeft wel het huis als eerste en zuinigste af.
Mjaah aan de andere kant is het natuurlijk onzinnig om tegen timmerman #2 te zeggen dat hij alleen maar spijkers in een plank te hoeft te slaan (terwijl hij veel meer kan). Wanneer je alleen iemand nodig hebt die spijkers in een plank slaat ben je veel goedkoper uit met timmerman #1

Iets in de trend van: Doe je de dingen goed of doe je de goede dingen?
Daar heb je een punt. Het probleem van de 2e timmerman is dat als je geen huis wil bouwen maar een tafel, hij wel eens veel minder efficient kan zijn dan de 1e. Dat is dan ook het hele probleem van bedrijven als ARM, Intel, AMD: Als je niet weet wat de gebruiker wil doen, is het lastig een zuinige processor te bouwen, omdat je geen aannames kunt maken.

Als je die aannames wel kan maken kan je snel factoren winnen op je energieverbruik.

Trouwens, het grootste probleem is niet de processor, maar de enorm brakke code die er op uitgevoerd wordt. Er zijn helaas maar weinig programmeurs die echt weten hoe efficiente code er uit ziet of de tijd nemen/krijgen efficiente code te schrijven.
Wel grappig: wasmachine met een 3kW verwarmingselement.. dan maakt het echt uit of de controller 100 of 200mW gebruikt... 8)7
Maar in zo'n wasmachine staat de CPU en wat andere electronica 24/7 aan en het verwarmingselement niet. Bij spil wat 24/7 aan staat telt het tandby gebruik hard op, zeker als je al die apparaten bij elkaar optelt. En daarnaast: waarom zou je meer energie verbruiken dan strict noodzakelijk?
Gedurende die 24/7 standby gebruikt deze processor echt geen 100mW, in standby val je eerder terug naar 0.1mW (en dan draait 'ie nog op 9 Mhz !). Nee, dat telt echt niet mee voor je elektriciteitsrekening: 1 kWh per 10 miljoen uur = 11 eeuwen :D
intelligente, zuinige en goedkope microcontrollers voor gebruik in onder meer keukenapparatuur, wasmachines, slimme energiemeters, medische apparatuur, verlichting en motormanagement.
Dat waar oorspronkelijk eigenlijk Java waar ontwikkeld was dus. Ik ben echt benieuwd hoe en wat je gaat draaien op een keukenmachine met deze Chip. Eigenlijk denk ik dat de hardware weer vooruit gaat op de software. Android op een keukenmachine is wat mij betreft overkill (al zou Google vast willen weten wat ik met mijn keukenmachine doe). Puur Java zonder echt OS, dan gebruik je niet alles wat mogelijk is.
Op deze chip zal je toch een OS en een Runtime platform moeten uitvoeren. Daarover staat niets in dit stuk. Ook niet over Android.
Waarom een OS runnen als het een microcontroller is voor simpele taken. Microcontrollers worden vaak gebruikt om simpele taken uit te voeren, zoals je wasmachine programma of je tandenborstel tijd. OS is handig als je een human interface gebruikt. Maar alleen een LCD symbool scherm aansturen kan gemakkelijk met microcontrollers. Deze chips moeten het vooral hebben van hun veelzijdigheid en laag verbruik van energie.
Waarom een OS runnen: Omdat het waarschijnlijk kan. Als ik zo een beetje naar de specificaties kijk denk ik dat je er een OS op zou kunnen draaien.
Het is bij voornamelijk embedded toepassingen zeker niet handig om ten alle tijde maar een OS te draaien.

Voor hele simpele taken zorgt een OS voor enorme overhead, welke weer zorgt voor extra gebruik van de processor waar je niet op zit te wachten.
zoek is op contiki dan ;) Dat is een embedded OS.

"Contiki is designed for microcontrollers with small amounts of memory. A typical Contiki configuration is 2 kilobytes of RAM and 40 kilobytes of ROM."
Maar het gaat hier om een microcontroller zo energie zuinig mogelijk taken te laten uit voeren. Daarbij lijkt het mij handiger om acties direct uit te voeren en bij geen actie in slaap modus te gaan. Een OS runnen vergt, imho, te veel reken kracht. Dat het kan is leuk, maar niet het doel. Plus, waarom een OS runnen op je koffiezetapparaat of je wasmachine? Daar zitten nu al microcontrollers in.
Het kan erg handig zijn om in ieder geval een scheduler te gebruiken om zo de verschillende taken te kunnen managen. Je zal op deze module geen Android of iets dergelijks kunnen gebruiken maar een simpele RTOS kan erg nuttig zijn
Op deze chip draai je geen OS. Waarom zou je ? OSsen leveren heel veel overhead op en hebben geen voordeel voor een broodrooster of wasmachine.
Op dit soort kleine microcontrollers kun je prima een RTOS van een paar KiB draaien. Naast het schedulen van taken, biedt een RTOS ook mogelijkheden als timers en semaphores en mailboxes om data uit te wisselen tussen verschillende taken.

Overigens kun je natuurlijk ook aan offline scheduling doen waarbij je zelf in een vaste volgorde de functies van de verschillende taken na elkaar aanroept. Verder kun je natuurlijk ook een taal gebruiken die al mogelijkheden biedt voor taken en data uitwisseling zoals Ada. In dat geval heb je wel een stukje runtime code (http://people.cs.kuleuven...m/07-ada-segway-robot.pdf)
Sja, wat is een OS ?

Ik denk dat de gemiddelde tweaker van een OS zou verwachten dat het een netwerkstack heeft, een scheduler, een loader en een filesystem. En dat de "applicaties" die lopen uit andere binaries komen dan het OS.

RTOS levert je 1 van die dingen en het is 1 binary met de applicatie.

Het kleinste OS wat ik ken is contiki en die is misschien een beetje te groot voor de M0s die te koop zijn nu.
ARM levert (gratis) Keil RTX: 4 kB code, 300 bytes RAM, 128 bytes stack voor de kernel.
Zeer zeker niet - wat heb je aan een OS, het ding doet waarschijnlijk n simpele loop-functie, checkt wat waarden, spuugt wat nieuwe waarde uit, en begint dan weer bij het begin. Veel meer kan het immers niet?

Er zijn wel OSes die een minimale footprint hebben, maar dan hebben we het zeker niet over Android en consorten, maar meer over een (RT)OS dat hele basale taken abstraheert.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True