Prozessordesign - Processor design

Prozessordesign ist ein Teilgebiet der Computertechnik und Elektroniktechnik (Fertigung), das sich mit der Erstellung eines Prozessors befasst , einer Schlüsselkomponente der Computerhardware .

Der Entwurfsprozess beinhaltet die Auswahl eines Befehlssatzes und eines bestimmten Ausführungsparadigmas (zB VLIW oder RISC ) und führt zu einer Mikroarchitektur , die zB in VHDL oder Verilog beschrieben werden könnte . Für das Mikroprozessordesign wird diese Beschreibung dann unter Verwendung einiger der verschiedenen Herstellungsverfahren für Halbleiterbauelemente hergestellt , was zu einem Chip führt, der auf einen Chipträger gebondet wird . Dieser Chipträger wird dann auf einer Leiterplatte (PCB) aufgelötet oder in einen Sockel gesteckt .

Der Betriebsmodus eines jeden Prozessors ist die Ausführung von Befehlslisten. Befehle umfassen typischerweise solche zum Berechnen oder Manipulieren von Datenwerten unter Verwendung von Registern , zum Ändern oder Abrufen von Werten im Lese-/Schreibspeicher, zum Durchführen von Vergleichstests zwischen Datenwerten und zum Steuern des Programmflusses.

Prozessordesigns werden oft auf einem FPGA getestet und validiert, bevor das Design des Prozessors an eine Foundry zur Halbleiterfertigung gesendet wird .

Einzelheiten

Grundlagen

Das CPU-Design gliedert sich in das Design der folgenden Komponenten:

  1. Datenpfade (wie ALUs und Pipelines )
  2. Steuereinheit : Logik, die die Datenpfade steuert
  3. Speicherkomponenten wie Registerdateien , Caches
  4. Taktschaltung wie Takttreiber, PLLs , Taktverteilungsnetze
  5. Pad-Transceiver-Schaltung
  6. Das Logikgatter Zellenbibliothek , die verwendet wird , um die Logik zu implementieren

CPUs, die für Hochleistungsmärkte entwickelt wurden, erfordern möglicherweise kundenspezifische (optimierte oder anwendungsspezifische (siehe unten)) Designs für jedes dieser Elemente, um Frequenz-, Verlustleistungs- und Chipflächenziele zu erreichen, während CPUs, die für Märkte mit geringerer Leistung entwickelt wurden, die Implementierung verringern könnten Belastung durch den Erwerb einiger dieser Gegenstände durch den Kauf als geistiges Eigentum . Techniken zur Implementierung von Steuerlogik ( Logiksynthese unter Verwendung von CAD-Tools) können verwendet werden, um Datenpfade, Registerdateien und Taktgeber zu implementieren. Zu den gängigen Logikstilen, die beim CPU-Design verwendet werden, gehören unstrukturierte Zufallslogik, endliche Automaten , Mikroprogrammierung (von 1965 bis 1985 üblich) und programmierbare Logikarrays (in den 1980er Jahren üblich, nicht mehr üblich).

Implementierungslogik

Zu den Gerätetypen, die zur Implementierung der Logik verwendet werden, gehören:

Ein CPU-Designprojekt hat im Allgemeinen diese Hauptaufgaben:

Die Umgestaltung eines CPU-Kerns auf eine kleinere Die-Fläche hilft, alles zu verkleinern (ein " Fotomaskenschrumpf "), was zu der gleichen Anzahl von Transistoren auf einem kleineren Die führt. Es verbessert die Leistung (kleinere Transistoren schalten schneller), reduziert die Leistung (kleinere Drähte haben weniger parasitäre Kapazitäten ) und reduziert die Kosten (mehr CPUs passen auf den gleichen Siliziumwafer). Die Freigabe einer CPU auf einem Chip derselben Größe, jedoch mit einem kleineren CPU-Kern, hält die Kosten ungefähr gleich, ermöglicht jedoch eine höhere Integration innerhalb eines sehr großen Integrationschips (zusätzlicher Cache, mehrere CPUs oder andere Komponenten) und verbessert die Leistung und Reduzierung der Gesamtsystemkosten.

Wie bei den meisten komplexen elektronischen Designs dominiert jetzt der logische Verifikationsaufwand (der Nachweis, dass das Design keine Fehler aufweist) den Projektplan einer CPU.

Zu den wichtigsten Innovationen der CPU - Architektur gehören Indexregister , Cache , virtueller Speicher , Befehlspipelining , Superskalar , CISC , RISC , virtuelle Maschine , Emulatoren , Mikroprogramme und Stack .

Mikroarchitekturkonzepte

Forschungsthemen

Eine Vielzahl neuer CPU- Designideen wurde vorgeschlagen, einschließlich rekonfigurierbarer Logik , taktloser CPUs , Rechen-RAM und optischer Berechnung .

Leistungsanalyse und Benchmarking

Benchmarking ist eine Möglichkeit, die CPU-Geschwindigkeit zu testen. Beispiele sind SPECint und SPECfp , entwickelt von Standard Performance Evaluation Corporation , und ConsumerMark, entwickelt vom Embedded Microprocessor Benchmark Consortium EEMBC .

Einige der am häufigsten verwendeten Metriken sind:

  • Anweisungen pro Sekunde - Die meisten Verbraucher wählen eine Computerarchitektur (normalerweise Intel IA32- Architektur), um eine große Basis bereits vorhandener vorkompilierter Software ausführen zu können. Da sie relativ uninformiert über Computer-Benchmarks sind, wählen einige von ihnen eine bestimmte CPU basierend auf der Betriebsfrequenz aus (siehe Megahertz-Mythos ).
  • FLOPS - Die Anzahl der Gleitkommaoperationen pro Sekunde ist oft wichtig bei der Auswahl von Computern für wissenschaftliche Berechnungen.
  • Leistung pro Watt - Systemdesigner, die parallele Computer wie Google bauen , wählen CPUs basierend auf ihrer Geschwindigkeit pro Watt Leistung aus, da die Kosten für die Stromversorgung der CPU die Kosten der CPU selbst überwiegen.
  • Einige Systemdesigner, die parallele Computer bauen, wählen CPUs basierend auf der Geschwindigkeit pro Dollar aus.
  • Systemdesigner, die Echtzeit-Computing- Systeme erstellen, möchten eine Reaktion im schlimmsten Fall garantieren. Dies ist einfacher, wenn die CPU eine niedrige Interrupt-Latenzzeit hat und wenn sie eine deterministische Reaktion hat. ( DSP )
  • Computerprogrammierer, die direkt in Assembler programmieren, möchten, dass eine CPU einen vollständigen Befehlssatz unterstützt .
  • Niedriger Stromverbrauch - Für Systeme mit begrenzten Stromquellen (zB Solar, Batterien, menschliche Energie).
  • Kleine Größe oder geringes Gewicht - für tragbare eingebettete Systeme, Systeme für Raumfahrzeuge.
  • Umweltbelastung - Minimierung der Umweltbelastung von Computern während der Herstellung und des Recyclings sowie während des Gebrauchs. Abfall reduzieren, Gefahrstoffe reduzieren. (Siehe Green Computing ).

Bei der Optimierung einiger dieser Metriken kann es zu Kompromissen kommen. Insbesondere machen viele Designtechniken, die eine CPU schneller laufen lassen, die "Leistung pro Watt", "Leistung pro Dollar" und "deterministische Reaktion" viel schlechter und umgekehrt.

Märkte

Es gibt verschiedene Märkte, in denen CPUs verwendet werden. Da sich jeder dieser Märkte in seinen Anforderungen an CPUs unterscheidet, sind die für einen Markt konzipierten Geräte in den meisten Fällen für die anderen Märkte ungeeignet.

Allzweck-Computing

Die überwiegende Mehrheit der Einnahmen aus CPU-Verkäufen wird für allgemeine Computerzwecke generiert, dh Desktop-, Laptop- und Servercomputer, die üblicherweise in Unternehmen und zu Hause verwendet werden. In diesem Markt dominieren die Intel IA-32- und die 64-Bit-Version x86-64- Architektur den Markt, wobei die Konkurrenten PowerPC und SPARC einen viel kleineren Kundenstamm unterhalten. Jährlich werden auf diesem Markt Hunderte Millionen CPUs mit IA-32-Architektur verwendet. Ein wachsender Prozentsatz dieser Prozessoren ist für mobile Implementierungen wie Netbooks und Laptops bestimmt.

Da diese Geräte verwendet werden, um unzählige verschiedene Arten von Programmen auszuführen, sind diese CPU-Designs nicht speziell auf eine Art von Anwendung oder eine Funktion ausgerichtet. Die Anforderungen, eine breite Palette von Programmen effizient ausführen zu können, haben diese CPU-Designs zu den technisch fortschrittlicheren gemacht, zusammen mit einigen Nachteilen, dass sie relativ teuer sind und einen hohen Stromverbrauch aufweisen.

Wirtschaftlichkeit der High-End-Prozessoren

1984 benötigte die Entwicklung der meisten Hochleistungs-CPUs vier bis fünf Jahre.

Wissenschaftliches rechnen

Scientific Computing ist ein viel kleinerer Nischenmarkt (in Bezug auf Umsatz und ausgelieferte Einheiten). Es wird in staatlichen Forschungslabors und Universitäten verwendet. Vor 1990 wurde CPU-Design oft für diesen Markt entwickelt, aber Massenmarkt-CPUs, die in großen Clustern organisiert sind, haben sich als erschwinglicher erwiesen. Der verbleibende Hauptbereich des aktiven Hardware-Designs und der Forschung für wissenschaftliches Rechnen sind Hochgeschwindigkeits-Datenübertragungssysteme zur Verbindung von Massenmarkt-CPUs.

Eingebettetes Design

Gemessen an den ausgelieferten Einheiten sind die meisten CPUs in andere Maschinen wie Telefone, Uhren, Geräte, Fahrzeuge und Infrastruktur eingebettet. Eingebettete Prozessoren werden jedoch in einer Menge von vielen Milliarden Einheiten pro Jahr verkauft, jedoch meist zu viel niedrigeren Preisen als die der Allzweckprozessoren.

Diese Einzelfunktionsgeräte unterscheiden sich in mehreren Punkten von den bekannteren Allzweck-CPUs:

  • Niedrige Kosten haben einen hohen Stellenwert.
  • Es ist wichtig, eine niedrige Verlustleistung aufrechtzuerhalten, da eingebettete Geräte oft eine begrenzte Batterielebensdauer haben und es oft unpraktisch ist, Kühllüfter einzubauen.
  • Um die Systemkosten zu senken, sind Peripheriegeräte mit dem Prozessor auf demselben Siliziumchip integriert.
  • Wenn Peripheriegeräte auf dem Chip bleiben, wird auch der Stromverbrauch reduziert, da externe GPIO-Ports normalerweise eine Pufferung erfordern, damit sie die relativ hohen Stromlasten, die erforderlich sind, um ein starkes Signal außerhalb des Chips aufrechtzuerhalten, liefern oder ableiten können.
    • Viele eingebettete Anwendungen haben eine begrenzte Menge an physischem Platz für Schaltungen; Wenn die Peripheriegeräte auf dem Chip bleiben, wird der Platzbedarf für die Leiterplatte reduziert.
    • Programm- und Datenspeicher sind oft auf demselben Chip integriert. Wenn der einzige zulässige Programmspeicher ROM ist , wird das Gerät als Mikrocontroller bezeichnet .
  • Bei vielen eingebetteten Anwendungen ist die Interrupt-Latenz kritischer als bei einigen Allzweckprozessoren.

Wirtschaftlichkeit von Embedded-Prozessoren

Die Embedded-CPU-Familie mit der größten Anzahl ausgelieferter Einheiten ist die 8051 mit durchschnittlich fast einer Milliarde Einheiten pro Jahr. Der 8051 ist weit verbreitet, da er sehr kostengünstig ist. Die Designzeit beträgt jetzt ungefähr null, da sie als kommerzielles geistiges Eigentum weit verbreitet ist. Es wird heute oft als kleiner Teil eines größeren Systems auf einem Chip eingebettet. Die Siliziumkosten eines 8051 betragen jetzt nur 0,001 US-Dollar, da einige Implementierungen nur 2.200 Logikgatter verwenden und 0,0127 Quadratmillimeter Silizium benötigen.

Ab 2009 werden mehr CPUs mit dem Befehlssatz der ARM-Architektur produziert als mit jedem anderen 32-Bit-Befehlssatz. Die ARM-Architektur und der erste ARM-Chip wurden in etwa eineinhalb Jahren und 5 Menschenjahren Arbeitszeit entworfen.

Die 32-Bit- Parallax-Propeller- Mikrocontroller-Architektur und der erste Chip wurden von zwei Personen in etwa 10 Arbeitsjahren entwickelt.

Die 8-Bit- AVR-Architektur und der erste AVR-Mikrocontroller wurden von zwei Studenten des Norwegischen Instituts für Technologie konzipiert und entworfen.

Die 8-Bit-6502-Architektur und der erste MOS Technology 6502- Chip wurden in 13 Monaten von einer Gruppe von etwa 9 Personen entwickelt.

CPU-Design für Forschung und Lehre

Die 32-Bit Berkeley RISC I- und RISC II-Prozessoren wurden hauptsächlich von einer Reihe von Studenten als Teil einer Vierviertelsequenz von Graduiertenkursen entwickelt. Dieses Design wurde zur Grundlage des kommerziellen SPARC- Prozessordesigns.

Etwa ein Jahrzehnt lang war jeder Student der 6.004-Klasse am MIT Teil eines Teams – jedes Team hatte ein Semester Zeit, um eine einfache 8-Bit-CPU aus integrierten Schaltkreisen der Serie 7400 zu entwerfen und zu bauen . Ein Team von 4 Studenten entwarf und baute während dieses Semesters eine einfache 32-Bit-CPU.

Einige Bachelor-Studiengänge erfordern ein Team von 2 bis 5 Studenten, um in einem einzigen 15-wöchigen Semester eine einfache CPU in einem FPGA zu entwerfen, zu implementieren und zu testen.

Die MultiTitan-CPU wurde mit 2,5 Mannjahren Aufwand entwickelt, was damals als "relativ geringer Konstruktionsaufwand" galt. 24 Personen trugen zum 3,5-jährigen MultiTitan-Forschungsprojekt bei, das die Entwicklung und den Bau eines CPU-Prototyps umfasste.

Weiche Mikroprozessorkerne

Bei eingebetteten Systemen sind die höchsten Leistungsstufen aufgrund der Anforderungen an den Stromverbrauch oft nicht erforderlich oder erwünscht. Dies ermöglicht die Verwendung von Prozessoren, die vollständig durch Logiksynthesetechniken implementiert werden können . Diese synthetisierten Prozessoren können in viel kürzerer Zeit implementiert werden, was eine schnellere Markteinführung ermöglicht .

Siehe auch

Verweise

Allgemeine Referenzen