• 10Minuten
blank

Der ARM-Prozessor

Acorn begann in den 1980er Jahren damit, sich auf die Entwicklung von Mikroprozessoren zu konzentrieren. 1981 führe IBM den Personal Computer ein. Seine Einführung veränderte den Desktop-Computermarkt radikal: Was in den fünf Jahren zuvor hauptsächlich ein Hobby- und Spielemarkt gewesen war, begann sich zu einem unverzichtbaren Business-Tool zu entwickeln, bei dem die früheren 8-Bit-Designs einfach nicht mithalten konnten.

Acorn überlegte, wie man auf diesem Markt konkurrieren konnte, und entwickelte ein neues Papierdesign namens Acorn Business Computer. Sie setzten sich das Ziel, einen Computer mit der zehnfachen Leistung des BBC Micro zu produzieren, aber zum gleichen Preis. Er sollte den PC übertreffen und gleichzeitig preislich unterbieten.

Die Ingenieure begannen, alle verfügbaren CPU-Designs zu untersuchen. Sie kamen zu dem Schluss, dass die vorhandenen 16-Bit-Designs viel teurer und „ein bisschen mies“ waren und nur eine geringfügig höhere Leistung als ihr BBC Micro-Design boten. Außerdem erforderten sie fast immer eine große Anzahl von Hilfschips, um überhaupt auf diesem Niveau arbeiten zu können. Das trieb die Kosten für den Computer in die Höhe.

Mikroprozessorgestütztes System auf einem Chip (Zeichnung: Wikipedia)
Mikroprozessorgestütztes System auf einem Chip (Zeichnung: Wikipedia)

Diese Systeme würden das Entwicklungsziel nicht erreichen. Sie zogen auch die neuen 32-Bit-Designs in Betracht, aber diese kosteten noch mehr und hatten die gleichen Probleme mit den Support-Chips. Laut Sophie Wilson erbrachten alle damals getesteten Prozessoren ungefähr die gleiche Leistung, mit einer Bandbreite von etwa 4 Mbit/Sekunde.

Zwei wichtige Ereignisse führten Acorn auf den Weg zu ARM. Das eine war die Veröffentlichung einer Reihe von Berichten der Universität von Kalifornien, die nahelegten, dass ein einfaches Chipdesign dennoch eine extrem hohe Leistung haben konnte, viel höher als die neuesten 32-Bit-Designs auf dem Markt.

Das zweite war ein Besuch von Steve Furber und Sophie Wilson beim Western Design Center, einem von Bill Mensch und seiner Schwester geführten Unternehmen. Das Acorn-Team sah High-School-Schüler, die Chip-Layouts auf Apple-II-Maschinen produzierten, was darauf hindeutete, dass es jeder tun konnte. Im Gegensatz dazu zeigte ein Besuch bei einer anderen Design-Firma, die an einer modernen 32-Bit-CPU arbeitete. Ein Team mit mehr als einem Dutzend Mitgliedern war damit beschäftigt. Sie werkelten bereits an der Revision H ihres Designs, das aber immer noch Fehler enthielt. Dies zementierte ihre Ende 1983 getroffene Entscheidung, ihr eigenes CPU-Design zu beginnen, die Acorn RISC Machine (ARM).

Die ursprünglichen Berkeley-RISC-Entwürfe waren in gewisser Weise Lehrsysteme, die nicht speziell für eine hohe Leistung konzipiert waren. Zu den grundlegenden registerlastigen und Lade-/Speicherkonzepten des RISC fügte ARM eine Reihe der gut angenommenen Entwurfsmerkmale des 6502 hinzu. Dazu gehörte in erster Linie die Fähigkeit, Interrupts schnell zu bedienen, wodurch die Maschinen ohne zusätzliche externe Hardware eine angemessene Ein-/Ausgabeleistung bieten konnten. Um Interrupts mit ähnlicher Leistung wie beim 6502 anbieten zu können, beschränkte der ARM-Entwurf seinen physikalischen Adressraum auf 64 MB adressierbaren Gesamtraum, was 26 Bit Adresse erforderte. Da die Befehle 4 Byte (32 Bit) lang waren und an 4-Byte-Grenzen ausgerichtet werden mussten, waren die unteren 2 Bit einer Befehlsadresse immer Null.

Dies bedeutete, dass der Programmzähler (PC) nur 24 Bits lang sein musste, so dass er zusammen mit den 8-Bit-Prozessor-Flags in einem einzigen 32-Bit-Register gespeichert werden konnte. Das bedeutete, dass beim Empfang einer Unterbrechung der gesamte Maschinenzustand in einer einzigen Operation gespeichert werden konnte, während bei einem vollen 32-Bit-Wert des PC separate Operationen zur Speicherung des PC und der Statusflags erforderlich gewesen wären. Durch diese Entscheidung wurde der Interrupt-Overhead halbiert.

Eine weitere Änderung, die im Hinblick auf die Leistung in der Praxis mit am wichtigsten ist, war die Modifizierung des Befehlssatzes, um die Vorteile des DRAM page mode zu nutzen. Der kürzlich eingeführte Modus ermöglichte es, dass nachfolgende Speicherzugriffe doppelt so schnell abliefen, wenn sie sich ungefähr an der gleichen Stelle, der „Seite“, im DRAM-Chip befanden.

Array von Motorola 16 Kb dynamischen Direktzugriffs-Speicherchips, ungefähr 1981 (Foto: Wikipedia)
Array von Motorola 16 Kb dynamischen Direktzugriffs-Speicherchips, ungefähr 1981 (Foto: Wikipedia)

Der Berkeley-Entwurf berücksichtigte den Modus nicht und behandelte alle Speicher gleich. Der ARM-Entwurf fügte spezielle vektorähnliche Speicherzugriffsbefehle, die „S-Zyklen“, hinzu, die zum Füllen oder Speichern mehrerer Register in einer einzigen Seite verwendet werden konnten. Dies war besonders für die Grafikleistung wichtig.

Die Berkeley-RISC-Entwürfe verwendeten Registerfenster, um die Anzahl der Registerspeicherungen und -wiederherstellungen bei Prozeduraufrufen zu reduzieren; der ARM-Entwurf übernahm dies nicht.

Wilson entwickelte den Befehlssatz und schrieb eine Simulation des Prozessors in BBC BASIC, die auf einem BBC Micro mit einem zweiten 6502-Prozessor lief. Dies überzeugte die Acorn-Ingenieure, dass sie auf dem richtigen Weg waren. Wilson wandte sich an den Geschäftsführer von Acorn, Hermann Hauser, und bat um mehr Ressourcen. Hauser stimmte zu und stellte ein kleines Team zusammen, um den eigentlichen Prozessor auf der Grundlage von Wilsons ISA zu entwickeln. Das Projekt startete im Oktober 1983.

Acorn entschied sich für VLSI Technology als „Siliciumpartner“, da sie eine Quelle für ROMs und kundenspezifische Chips für Acorn waren. Acorn lieferte das Design und VLSI das Layout und die Produktion. Die ersten Muster des ARM-Siliciums funktionierten ordnungsgemäß, als sie am 26. April 1985 eintrafen und getestet wurden. Diese als ARM1 bezeichneten Versionen liefen mit 6 MHz.

Der erste Einsatz des ARM war als zweiter Prozessor für den BBC Micro, wo er bei der Entwicklung von Simulationssoftware half, um die Entwicklung der Support-Chips (VIDC, IOC, MEMC) abzuschließen, und die CAD-Software für die ARM2-Entwicklung beschleunigte. Anschließend schrieb Wilson BBC BASIC in ARM-Assemblersprache um. Dank der gründlichen Kenntnisse, die sie bei der Entwicklung des Befehlssatzes gewonnen hatte, konnte der Code sehr dicht sein, was ARM BBC BASIC zu einem extrem guten Test für jeden ARM-Emulator macht.

Das Ergebnis der Simulationen auf den ARM1-Boards führte Ende 1986 zur Einführung des ARM2-Designs, das mit 8 MHz lief, und Anfang 1987 zu einer beschleunigten Version mit 10 bis 12 MHz. Eine wesentliche Änderung der zugrunde liegenden Architektur war die Hinzufügung eines Booth-Multiplikators, während die Multiplikation zuvor in Software durchgeführt werden musste. Außerdem ermöglichte ein neuer Fast-Interrupt-ReQuest-Modus, kurz FIQ, dass die Register 8 bis 14 als Teil des Interrupts selbst ersetzt wurden. Dies bedeutete, dass FIQ-Anfragen ihre Register nicht auslagern mussten, was die Interrupts weiter beschleunigte.

NXP ARM-Prozessor in einem Samsung-Mobiltelefon (Foto: Wikipedia)
NXP ARM-Prozessor in einem Samsung-Mobiltelefon (Foto: Wikipedia)

Der ARM2 war etwa siebenmal so schnell wie ein typisches 7-MHz-System auf 68000-Basis wie der Commodore Amiga oder der Macintosh SE. Er war doppelt so schnell wie ein Intel 80386, der mit 16 MHz lief, und etwa genauso schnell wie ein Multiprozessor-Superminicomputer VAX-11/784. Die einzigen Systeme, die ihn übertrafen, waren die Sun SPARC- und die MIPS R2000 RISC-basierten Workstations.

Da die CPU für Hochgeschwindigkeits-E/A ausgelegt war, konnte sie auf viele der in diesen Rechnern verwendeten Unterstützungschips verzichten; insbesondere fehlte ein dedizierter DMA-Controller (Direct Memory Access), wie er häufig in Workstations zu finden war. Auch das Grafiksystem wurde auf der Grundlage derselben grundlegenden Annahmen über Speicher und Timing vereinfacht. Das Ergebnis war ein drastisch vereinfachtes Design, das eine Leistung auf dem Niveau teurer Workstations bot, aber zu einem Preis, der mit dem moderner Desktops vergleichbar war.

Der ARM2 hatte eine Transistoranzahl von nur 30.000, verglichen mit dem sechs Jahre älteren 68000er-Modell von Motorola mit rund 68.000. Ein Großteil dieser Einfachheit ist auf das Fehlen von Mikrocode zurückzuführen, der etwa ein Viertel bis ein Drittel der Transistoren des 68000 ausmacht, sowie auf das Fehlen eines Cache. Dies ermöglichte es dem ARM2, einen niedrigen Stromverbrauch zu haben und dennoch eine bessere Leistung als der Intel 80286 zu bieten.

Ein Nachfolger, der ARM3, wurde mit einem 4-KB-Cache produziert, der die Leistung weiter verbesserte. Der Adressbus wurde beim ARM6 auf 32-Bit erweitert, aber der Programmcode musste wegen der reservierten Bits für die Statusflags immer noch innerhalb der ersten 64 MB des Speichers im 26-Bit-Kompatibilitätsmodus liegen.

Autor

Abonnieren
Benachrichtige mich bei
guest

0 Comments
Inline Feedbacks
Alle Kommentare anzeigen