Angesichts der für den Cortex-A8-Prozessor gewählten ehrgeizigen Zielsetzungen in Sachen „PPA“ (Performance, Power, Area) wurden neue Implementierungs-Abläufe entwickelt, um die Vorgaben auch ohne eine voll kundenspezifische Lösung verwirklichen zu können. Die daraus hervorgangenen Arbeitsabläufe lassen eine gezielte Abstimmung des Designs auf die jeweilige Applikation zu. Das Resultat ist ein im Wesentlichen zellenbasierter Ablauf, der sich jedoch auf Semicustom-Techniken stützt, auf die immer dann zurückgegriffen wurde, wenn es aus Performance-Gründen erforderlich war.
Der Cortex-A8-Prozessor besteht aus einer Kombination aus synthetisierten, strukturierten und kundenspezifischen Schaltungen. Zunächst in sieben Funktionseinheiten untergliedert, wurde das Design zusätzlich in Blöcke aufgeteilt, für die dann die jeweils passendste Implementierungstechnik gewählt werden konnte. Durch die Synthetisierbarkeit des gesamten Designs können Blöcke, die die PPA-Vorgaben problemlos erfüllen, mit einem konventionellen Syntheseablauf realisiert werden.
Ein strukturierter Ablauf kommt dagegen für solche Blöcke zum Einsatz, bei denen ein kontrolliertes Platzierungs- und Routing-Konzept zur Einhaltung der Timing- oder Flächenvorgaben beitragen kann. Es handelt sich hierbei um einen Semicustom-Flow, der die Blöcke auf manuellem Weg auf eine Gatter-Netzliste abbildet und eine relative Platzierung für sämtliche Zellen des jeweiligen Blocks spezifiziert. „Relativ“ ist die Platzierung insofern, als sie nicht die exakte Anordnung der Zellen vorgibt, sondern lediglich die Platzierung jeder Zelle relativ zu den anderen Zellen des betreffenden Blocks.
Dieser strukturierte Ansatz wird in der Regel für regelmäßig aufgebaute Daten-Blöcke verwendet. Die Logik-Implementierung und Technologie-Zuordnung für den Block erfolgt auf manuellem Weg, um dem Block eine regelmäßige, datenorientierte Busstruktur zu verleihen, während die Synthese eine ungeordnete Gatterstruktur hervorbringen würde. Diese Vorgehensweise gibt dem Designer mehr Kontrolle über das Design als die automatisierte Synthese und resultiert zudem in einem besser vorhersagbaren Timing-Closure. Ebenso lassen sich bei komplexen, leistungsfähigen Designs bessere Leistungs- und Flächen-Resultate erzielen als mit traditionellen Techniken. Die daraus hervorgehenden Netzlisten lassen sich mit traditionellen „Tiling“-Techniken unter Verwendung der „ARM Artisan AdvantageCE Library“ oder einer ähnlichen Bibliothek interpretieren.
Die AdvantageCE Library enthält mehr als tausend Zellen. Abgesehen von den standardmäßigen Zellen typischer Synthese-Bibliotheken sind auch zahlreiche taktische Zellen enthalten, die sich besser für kundenspezifische Implementierungs-Techniken eignen und in dem strukturierten Ablauf automatisch eingesetzt werden. Die Bibliothek ist speziell für das dichte Routing leistungsfähiger Prozessoren ausgelegt, mit besonderer Betonung auf hohe Verarbeitungsgeschwindigkeit sowie geringer statischer und dynamischer Leistungsaufnahme. Eine Senkung der Leckströme wird durch das Power-Gating mit MT-CMOS-Zellen und Halte-Flipflops für Sleep- und Standby-Betriebsarten erreicht. ARM hat mit Tool-Anbietern zusammengearbeitet, um die nötige Unterstützung dieses kritischen neuen Flows sicherzustellen.
Einige der kritischsten, in Bezug auf Timing und Fläche sensibelsten Blöcke des Designs sind schließlich der Implementierung mit voll kundenspezifischen Designtechniken vorbehalten. Dazu gehören Speicher-Arrays, Registersätze und „Scoreboards“. Diese Blöcke enthalten eine Kombination aus statischer und dynamischer Logik. „Self-Timed“-Schaltungen (asynchrone Logik) kommen nicht zum Einsatz.
Der Cortex A8 ist der schnellste und energieeffizienteste Mikroprozessor, den ARM bislang entwickelt hat. Mit seiner Fähigkeit zum Decodieren von VGA H.264-Video mit weniger als 350 MHz bringt er genau jene Mediaverarbeitungsleistung mit, die für die kommende Generation von Wireless- und Consumer-Produkten benötigt wird. Gleichzeitig beträgt die Leistungsaufnahme in 65-nm-Technologie weniger als 300 mW.
Neues Bezeichnungsschema für ARM-Prozessoren |
Mit der Ankündigung des Cortex-M3-Prozessors stellte ARM ein neues Bezeichnungsschema für seine Prozessoren vor. In der Vergangenheit waren die Prozessoren stets nach dem zugrundeliegenden Prozessorkern (z.B. ARM7, ARM9 oder ARM11) benannt worden, wobei zusätzlich angehängte Ziffern die Ausstattung oder die Variante kennzeichneten. Der ARM926EJ-S etwa basierte auf der ARM9-Mikroarchitektur, und die zusätzlichen Zahlen wiesen auf das Speichersystem, den Java-Support und die Arithmetik-Zusätze hin. Das neue Benennungsverfahren beruht dagegen auf der Architekturgeneration des Prozessors und nicht auf der Reihenfolge, in der die Prozessoren erscheinen. (Bei ARM versteht man unter der Architektur die einer bestimmten Gruppe von Prozessoren gemeinsame Befehls- und Funktions-Ausstattung.) Cores, die der neuesten ARM-Architektur ARMv7 angehören, werden als „Cortex“-Prozessoren bezeichnet, während die kommende Prozessorgeneration einen neuen Namen erhalten wird. Mit dieser neuen Bezeichnungsweise wollte man die relative Leistung und die Ziel-Applikationen eines neuen Prozessors schon an Hand seines Namens deutlich machen. Die ARMv7-Architektur – und damit auch die Cortex-Prozessoren – werden in drei Hauptgruppen unterteilt: Applikations-Prozessoren (A), Echtzeit-Prozessoren (R für „Realtime“) und Mikrocontroller (M). Applikations-Prozessoren sind für die Verwendung mit offenen Betriebssystemen vorgesehen und mit einer „Memory Management Unit“ (MMU) ausgestattet, um die virtuelle Adressierung zu ermöglichen. Echtzeit-Prozessoren wenden sich an tiefer integrierte Embedded-Anwendungen. Sie verfügen über eine „Memory Protection Unit“ (MPU), die bestimmte Bereiche des Speichers schützt, jedoch keine virtuelle Adressierung gestattet. Mikrocontroller enthalten generell keine Schutzvorkehrungen für den Speicher und sind speziell dafür ausgelegt, mit kurzer La-tenzzeit auf Interrupts zu reagieren. Sie sind mit Funktionen wie etwa Flash-Speicher- und Interrupt-Controllern ausgestattet. Die Mikrocontroller der Cortex-M-Familie haben darüber hinaus einen Speicherschutzmechanismus. Die Gruppe, der ein Prozessor angehört, ist durch den Zusatz A, R oder M nach dem Namen „Cortex“ gekennzeichnet. Innerhalb der Gruppen A, R und M werden die Prozessoren an Hand ihrer Leistungsfähigkeit von 1 bis ungefähr 10 durchnummeriert, um die Leistungsfähigkeit im Vergleich zu anderen Prozessoren der Cortex-Familie anzudeuten. Ein leistungsfähiger Applikations-Core würde somit den Namen Cortex A8 tragen, während ein künftiger Applikationsprozessor geringerer Leistung beispielsweise Cortex A5 heißen und ein leistungsfähigerer Echtzeit-Core die Bezeichnung Cortex R9 tragen könnte. Der Cortex M3 ist ein Mikrocontroller mit sehr geringer Leistungsaufnahme. Hat man das Bezeichnungsschema einmal verstanden, kann man aus dem Namen eines Cortex-Prozessors sofort das vorgesehene Anwendungsgebiet, die Ausstattung und die relative Leistungsfähigkeit ablesen. |
![]() | Travis Lanier ist als Produktmanager bei ARM, Inc., verantwortlich für das Marketing der NEON-Technologie. Seit dem Jahr 2000 hat er bei ARM verschiedene Positionen in Technik und Marketing bekleidet. Zuvor war er als Ingenieur in der Microprocessor Division von AMD beschäftigt. Er hat Abschlüsse als Bachelor of Science der Louisiana State University als Elektroingenieur und einen Master of Science in technischer Informatik von der University of Texas in Austin. |