ARM Call for Papers

Konferenz für ARM-Systementwicklung
Konferenz für ARM-Systementwicklung

Die große Konferenz für ARM-Systementwicklung am 11. und 12. Juli 2012 in München bietet Entwicklern die Gelegenheit, sich detailliertes Wissen über die aktuellen Cortex-Architekturen anzueignen, die mittlerweile zum Industriestandard avanciert sind.

Ausführliche Informationen:
www.arm-entwicklerkonferenz.de

iPad 3 Teardown & Light+Building

Intel-Prozessor im Smartphone
Intel-Prozessor im Smartphone

Mit dem Lava Xolo X900 gibt es erstmals ein Smartphone, das auf einem Atom-Prozessor von Intel basiert. Kann das mit ARM mithalten? Wir haben das untersucht.

Der kleinste 32-bit-Core der Welt
Der kleinste 32-bit-Core der Welt

Mit dem Cortex-M0+ hat ARM im März den kleinsten 32-bit-Core der Welt vorgestellt. Wir haben ihn uns einmal genauer angeschaut.

Was bringen Quad-Cores in Smartphones?
Was bringen Quad-Cores in Smartphones?

Der Tegra-3 von Nvidia ist der erste Quad-Core-Prozessor für Smartphones und Handys - ganz aktuell im neuen Galaxy S3. Doch bringen vier Kerne im Smartphone überhaupt etwas?

Reingeschaut: Das Galaxy Nexus
Reingeschaut: Das Galaxy Nexus

Ein Blick in dass Innenleben des gemeinsam von Google und Samsung entwickelten Smartphones.

Entwicklungstools zum Download
Entwicklungstools zum Download

Zahlreiche Hersteller bieten im Netz Online-Tools, zeitlich begrenzte Testversionen oder ganze Programmme zum Download an. Wir haben eine kleine Auswahl davon zusammengestellt.

Produkte des Jahres 2012

Events

Marktübersichten Bauelemente

Bauelemente-Marktübersichten

Electronic WebLessons

Electronic WebLessons
Electronic WebLessons

Die Electronic WebLessons vermitteln multimedial aufbereitet Basiswissen zum Thema Elektronik. Hier können Sie ihr Praxiswissen auffrischen oder sich die Grundlagen der Elektronik neu aneignen.

04. Juni 2010
MicroMIPS dampft den Code ein

special Prozessoren nutzen 16/32-bit-Befehle für höhere Code-Dichte

Je kleiner, desto besser – das gilt jedenfalls für Embedded-Prozessoren. Aus diesem Grund hat Mips den bereits 1980 eingeführten Befehlssatz für seine Prozessoren überarbeitet. Neue 16- und 32-bit-Befehle mit der Bezeichnung microMIPS benötigen weniger Speicher als die bestehenden 32-bit-Befehle und deren in den 90er Jahren eingeführte 16-bit-Erweiterungen.

Von Frank Riemenschneider

Anzeige

Die Von-Bis-Angaben stellen die Werte bei flächen- bzw. leistungsoptimierten Prozessvarianten dar.
Elektronik 
zoom
Tabelle 1. Die Daten der MIPS-Cores sind nur bedingt vergleichbar, da es sich um unterschiedliche Prozessgenerationen handelt.

MicroMIPS ist erstmals in den neunen Prozessor-Cores mit der Bezeichnung MIPS32 M14K und MIPS32 M14Kc implementiert worden. Der M14K ist eine verbesserte Version des 2002 eingeführten M4K, eines relativ einfachen Cores ohne Cache, der für Mikrocontroller in Autos, Industrie, Konsum- Elektronik und Bürogeräten gedacht ist. Der größere Bruder, der M14Kc, ist eine Weiterentwicklung des 2003 eingeführten M4Kc, der eine Speicherverwaltungs- Einheit (MMU) mit Translation-Lookaside-Buffer (TLB) und einen L1-Cache aufweist und damit in der Lage ist, Betriebssysteme, die eine virtuelle Speicherverwaltung haben, abzuarbeiten.

Die Zielgruppe dieses Cores sind Fernseher, DVDSpieler, Set-Top-Boxen, Digitalkameras und andere Konsum-Güter. Tabelle 1 zeigt einen Vergleich der neuen Cores mit den bestehenden Mips-Prozessoren. Beide neuen Cores reagieren im Vergleich zu ihren Vorgängern schneller auf Interrupts und haben verbesserte Debugging-Fähigkeiten. Im Vergleich zu ARMs Cortex-M3 und ARM926 konnten Verbesserungen bzgl. maximaler Taktfrequenz, Leistungsaufnahme und Siliziumfläche erzielt werden, und auch gegenüber dem neuesten Core aus dem Hause ARM, dem Cortex-A5, sehen sie nicht schlecht aus, dazu später mehr.

Weitere Leistungsmerkmale sind atomare Lese-Schreib-Operationen und beim M14K optional ein Beschleuniger, der den Lese- und Schreibzugriff auf Flash-Speicher beschleunigt, was speziell bei Mikrocontrollern mit On-Chip-Flash hilfreich ist. Letztendlich ist die herausragende Weiterentwicklung jedoch der neue 16/32-bit-Befehlssatz mit der Bezeichnung microMIPS. Während die Code- Größe um 35 % reduziert wird, reduziert sich die Rechenleistung nur um 2 %. Da die Cores einen MIPS32-Befehls- Decoder enthalten, sind sie vollständig abwärtskompatibel zu bestehender MIPS32-Software.

Die einzige Ausnahme sind einige in der Praxis wenig genutzte Befehle, die dem Prozessor anzeigen sollen, dass wahrscheinlich eine Programmverzweigung auftritt (so genannte Branch-likely-Befehle, die wegen fehlender dynamischer Sprungvorhersage mit dem R5000-Prozessor eingeführt wurden). Da der neue microMIPS-Assembler diese Befehle automatisch in andere Anweisungssequenzen umsetzt, merkt der Programmierer davon jedoch nichts. Das einzige, was er tun muss, um ein „altes“ Programm für den M14 zu optimieren, ist eine Recompilierung.

Weniger Code, fast gleiche Rechenleistung

Die nackten Zahlen sind beeindruckend: Während die bestehenden 16-bit-Erweiterungen mit der Bezeichnung MIPS16e die Code-Größe um 20 bis 30 % reduzierten, wird ein micro- MIPS-Programm im Schnitt rund 35 % kleiner. Wenn man das theoretische Maximum von 50 % betrachtet (wenn man alle 32-bit-Befehle durch 16-bit- Befehle ersetzen könnte), ist ein 32- und 16-bit-Mix mit 35 % Code-Reduktion einer realen Anwendung wirklich gut. Das Beste kommt jedoch noch: Während man den verdichteten Code bei MIPS16e mit einer verringerten Ausführungsgeschwindigkeit um fast 30 % bezahlen musste, reduziert sich diese bei microMIPS lediglich um 2 %. Dies könnte Mips speziell im hart umkämpften 32-bit-Mikrocontroller- Markt helfen, Marktanteile von anderen Anbietern wie ARM zu gewinnen.

ARM hat mit dem Cortex-M3 einen Core gebaut, der speziell in der zweiten Version, die 2008 vorgestellt wurde, viele neue Anhänger (= Lizenznehmer) gefunden hat. Mit dem M14 hat es Mips nicht nur geschafft, den Cortex- M3 in Hinblick auf die maximale Taktfrequenz, sondern auch in Bezug auf die Energieeffizienz in seine Schranken zu weisen. Dazu später mehr. Anders als MIPS16e, was eine Erweiterung des bestehenden Befehlssatzes darstellte, handelt es sich bei microMIPS um einen völlig neuen Befehlssatz. Es gibt 15 neue 32-bit-Befehle, 39 alte 32-bit-Anweisungen wurden in neue 16-bit-Befehle überführt. Daneben gibt es noch 215 32-bit-Befehle, die vom MIPS32-ISA übernommen wurden, allerdings wurden ihnen veränderte Opcodes zugeteilt. Alter MIPS32-Code läuft nur deswegen auf M14K und M14Kc, weil beide Cores zwei Befehls-Decoder beinhalten. Einer arbeitet microMIPS-Code ab, der andere „alten“ MIPS32-Code.

Wenn Mips behauptet, dass micro- MIPS eine „Code-Kompression“ vornimmt, ist das so nicht richtig. Anders als bei einer Datenkompression wird er nicht im Speicher mit Hilfe eines Kompressionsalgorithmus verdichtet und nach dem Holen wieder dekompremiert. Stattdessen wurden die am häufigsten benutzten 32-bit-Befehle in 16-bit-Befehle geändert, so dass die Opcodes nur die Hälfte des Speichers benötigen. Da viele Operanden wie z.B. Verweise auf Register oder Absolutwerte nicht verkleinert werden können, ist das theoretische Ziel einer 50- prozentigen Code-Reduktion in der Praxis unerreichbar.

1. Teil: Prozessoren nutzen 16/32-bit-Befehle für höhere Code-Dichte
2. Teil: Einheitlicher 16/32-bit- Befehlssatz
3. Teil: Der M14K im Detail
4. Teil: Mips gegen ARM