Benutzer:Conan174/Prozessordesign

aus Wikipedia, der freien Enzyklopädie

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

Der Entwurfsprozess umfasst die Auswahl eines Befehlssatzes und eines bestimmten Ausführungsparadigma (z. B. VLIW oder RISC) und führt zu einer Mikroarchitektur , die z. B. in VHDL oder Verilog beschrieben werden könnte. Für das Mikroprozessordesign wird diese Beschreibung dann unter Verwendung einiger der verschiedenen Halbleiterbauelement-Fertigungsprozesse hergestellt, was zu einem Chip führt, der auf einen Chipträger gebondet wird. Dieser Chipträger wird dann auf eine Leiterplatte (PCB) gelötet oder in eine Buchse gesteckt.

Die Arbeitsweise eines jeden Prozessors ist die Ausführung von Befehlslisten. Zu den Anweisungen gehören 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 Beziehungstests zwischen Datenwerten und zum Steuern des Programmflusses.

Prozessordesigns werden oft auf einem oder mehreren FPGAs getestet und validiert, bevor das Design des Prozessors zur Halbleiterfertigung an eine Foundry geschickt wird.[1]

Einzelheiten

Grundlagen

Das CPU-Design ist in das Design der folgenden Komponenten unterteilt:

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

CPUs, die für Hochleistungsmärkte entwickelt wurden, erfordern möglicherweise benutzerdefinierte (optimierte oder anwendungsspezifische (siehe unten)) Designs für jedes dieser Elemente, um die Ziele für Frequenz, Verlustleistung und Chipfläche 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 Artikel, indem Sie sie als geistiges Eigentum erwerben. Steuerlogikimplementierungstechniken (Logiksynthese unter Verwendung von CAD-Werkzeugen) können verwendet werden, um Datenpfade, Registerdateien und Uhren zu implementieren. Übliche Logikstile, die beim CPU -Design verwendet werden, umfassen unstrukturierte Zufallslogik, endliche Maschinen, Mikroprogrammierung (üblich von 1965 bis 1985) und programmierbare Logik-Arrays(in den 1980er Jahren üblich, nicht mehr üblich).

Implementierungslogik

Gerätetypen, die zum Implementieren der Logik verwendet werden, umfassen:

  • Transistor-Transistor-Logik Small Scale Integration - Logikchips - nicht mehr für CPUs verwendet
  • Programmable Array Logic und Programmable Logic Devices – werden nicht mehr für CPUs verwendet
  • Gate-Arrays mit emittergekoppelter Logik (ECL) - nicht mehr üblich
  • CMOS- Gate-Arrays - werden nicht mehr für CPUs verwendet
  • Massenproduzierte CMOS -ICs - die überwiegende Mehrheit der CPUs nach Volumen
  • CMOS ASICs - aus Kostengründen nur für eine Minderheit von Spezialanwendungen
  • Feldprogrammierbare Gate-Arrays (FPGA) – üblich für Soft-Mikroprozessoren und mehr oder weniger erforderlich für rekonfigurierbares Computing

Ein CPU-Designprojekt hat im Allgemeinen die folgenden Hauptaufgaben:

  • Programmierer sichtbare Befehlssatzarchitektur, die durch eine Vielzahl von Mikroarchitekturen implementiert werden kann
  • Architekturstudie und Leistungsmodellierung in ANSI C/C++ oder SystemC
  • High-Level-Synthese (HLS) oder Register-Transfer-Level (RTL, z. B. Logik)-Implementierung
  • RTL -Verifizierung
  • Schaltungsdesign geschwindigkeitskritischer Komponenten (Caches, Register, ALUs)
  • Logiksynthese oder Design auf Logikgatterebene
  • Timing-Analyse, um zu bestätigen, dass alle Logik und Schaltungen mit der angegebenen Betriebsfrequenz laufen
  • Physisches Design einschließlich Grundrissplanung , Platzierung und Route der Logikgatter
  • Prüfen, ob RTL-, Gate-Level-, Transistor-Level- und Physical-Level-Darstellungen äquivalent sind
  • Prüft auf Signalintegrität , Chip-Herstellbarkeit

Das Umgestalten eines CPU-Kerns auf eine kleinere Die-Fläche hilft, alles zu verkleinern (ein "Photomask Shrink"), was zu derselben Anzahl von Transistoren auf einem kleineren Die führt. Es verbessert die Leistung (kleinere Transistoren schalten schneller), reduziert den Stromverbrauch (kleinere Drähte haben weniger parasitäre Kapazität ) und reduziert die Kosten (mehr CPUs passen auf denselben Siliziumwafer). Die Freigabe einer CPU auf einem Die derselben Größe, aber mit einem kleineren CPU-Kern, hält die Kosten in etwa gleich, ermöglicht jedoch ein höheres Maß an 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 Elektronikdesigns dominiert jetzt der Aufwand für die Logikverifizierung (der Nachweis, dass das Design keine Fehler enthält) den Projektzeitplan einer CPU.

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

Leistungsanalyse und Benchmarking

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

Zu den häufig verwendeten Metriken gehören:

  • 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 über Computer-Benchmarks relativ uninformiert sind, wählen einige von ihnen eine bestimmte CPU basierend auf der Betriebsfrequenz (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 – Systementwickler, die parallele Computer bauen , wie z. B. Google, 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.[2][3]
  • Einige Systemdesigner, die parallele Computer bauen, wählen CPUs basierend auf der Geschwindigkeit pro Dollar aus.
  • Systemdesigner, die Echtzeit-Computersysteme bauen, möchten eine Worst-Case-Reaktion garantieren. Dies ist einfacher, wenn die CPU eine niedrige Interrupt-Latenz und eine deterministische Reaktion hat. (DSP)
  • Computerprogrammierer, die direkt in Assemblersprache programmieren, möchten, dass eine CPU einen vollständigen Befehlssatz unterstützt .
  • Niedriger Stromverbrauch – Für Systeme mit begrenzten Energiequellen (z. B. Solar, Batterien, menschliche Energie).
  • Kleine Größe oder geringes Gewicht - für tragbare eingebettete Systeme, Systeme für Raumfahrzeuge.
  • Umweltauswirkungen - Minimierung der Umweltauswirkungen von Computern während der Herstellung und des Recyclings sowie während des Gebrauchs. Abfall reduzieren, Gefahrstoffe reduzieren. (siehe Grünes Rechnen).

Es kann Kompromisse bei der Optimierung einiger dieser Metriken geben. Insbesondere viele Designtechniken, die eine CPU schneller laufen lassen, verschlechtern die „Leistung pro Watt“, die „Leistung pro Dollar“ und die „deterministische Reaktion“ erheblich und umgekehrt.

Märkte

Es gibt verschiedene Märkte, in denen CPUs verwendet werden. Da jeder dieser Märkte unterschiedliche Anforderungen an CPUs hat, 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 aus CPU-Verkäufen generierten Einnahmen ist für Allzweck-Computing[4], d. h. Desktop-, Laptop- und Server-Computer, die üblicherweise in Unternehmen und Privathaushalten verwendet werden. In diesem Markt dominieren die Intel IA-32- und die 64-Bit-Version x86-64 - Architektur den Markt, während die Konkurrenten PowerPC und SPARC einen viel kleineren Kundenstamm unterhalten. Jährlich werden Hunderte Millionen CPUs mit IA-32-Architektur von diesem Markt verwendet. Ein wachsender Prozentsatz dieser Prozessoren ist für mobile Implementierungen wie Netbooks und Laptops bestimmt.[5]

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 fortgeschritteneren gemacht, zusammen mit einigen Nachteilen, relativ kostspielig zu sein und einen hohen Stromverbrauch zu haben.

Wirtschaftlichkeit von High-End-Prozessoren

1984 dauerte die Entwicklung der meisten Hochleistungs-CPUs vier bis fünf Jahre.[6]

Wissenschaftliches rechnen

Hauptartikel: Supercomputer

Wissenschaftliches Rechnen ist ein viel kleinerer Nischenmarkt (in Bezug auf Umsatz und ausgelieferte Einheiten). Es wird in staatlichen Forschungslabors und Universitäten eingesetzt. Vor 1990 wurde das CPU-Design häufig 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 Hardwaredesigns und der Forschung für wissenschaftliches Rechnen sind Hochgeschwindigkeits-Datenübertragungssysteme zum Verbinden von Massenmarkt-CPUs.

Eingebettetes Design

Hauptartikel: Eingebettetes System

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

Diese Einzelfunktionsgeräte unterscheiden sich von den bekannteren Allzweck-CPUs in mehrfacher Hinsicht:

  • Niedrige Kosten sind von großer Bedeutung.
  • 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.
  • Das Beibehalten von Peripheriegeräten auf dem Chip reduziert auch den Stromverbrauch, da externe GPIO-Ports normalerweise gepuffert werden müssen, damit sie die relativ hohen Stromlasten liefern oder aufnehmen können, die erforderlich sind, um ein starkes Signal außerhalb des Chips aufrechtzuerhalten.
    • Viele eingebettete Anwendungen haben eine begrenzte Menge an physischem Platz für Schaltkreise; Durch das Beibehalten von Peripheriegeräten auf dem Chip wird der Platzbedarf für die Leiterplatte reduziert.
    • Häufig sind Programm- und Datenspeicher auf demselben Chip integriert. Wenn der einzige zulässige Programmspeicher ROM ist , wird das Gerät als Mikrocontroller bezeichnet.
  • Für viele eingebettete Anwendungen ist die Interrupt-Latenzzeit kritischer als bei einigen Mehrzweckprozessoren.

Eingebettete Prozessorökonomie

Die Embedded-CPU-Familie mit der größten Anzahl ausgelieferter Einheiten ist die 8051 mit durchschnittlich fast einer Milliarde Einheiten pro Jahr.[7] Der 8051 ist weit verbreitet, weil er sehr preiswert ist. Die Designzeit ist jetzt ungefähr null, da es als kommerzielles geistiges Eigentum weithin verfügbar 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,4730 Quadratmillimeter Silizium benötigen.[8][9]

Ab 2009 werden mehr CPUs mit dem Befehlssatz der ARM-Architektur hergestellt als mit jedem anderen 32-Bit-Befehlssatz.[10][11] Die ARM-Architektur und der erste ARM-Chip wurden in etwa anderthalb Jahren und 5 Menschenjahren Arbeitszeit entworfen.[12]

Die 32-Bit- Parallax-Propeller - Mikrocontroller-Architektur und der erste Chip wurden von zwei Personen in etwa 10 Menschenjahren Arbeitszeit entworfen.[13]

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 entworfen.[14]

CPU-Design für Forschung und Lehre

Die 32-Bit - Berkeley -Prozessoren RISC I und RISC II wurden größtenteils von einer Reihe von Studenten als Teil einer viervierteljährlichen Abfolge von Graduiertenkursen entwickelt.[15] 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 7400-Serie zu entwerfen und zu bauen . Ein Team von 4 Studenten entwarf und baute in diesem Semester eine einfache 32-Bit-CPU.[16]

Einige Grundstudiengä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.[17]

Die MultiTitan-CPU wurde mit einem Aufwand von 2,5 Mannjahren entwickelt, was damals als "relativ geringer Designaufwand" galt.[18] 24 Personen trugen zu dem 3,5-jährigen MultiTitan-Forschungsprojekt bei, das die Entwicklung und den Bau eines CPU-Prototyps umfasste.[19]

Weiche Mikroprozessorkerne

Für eingebettete Systeme sind die höchsten Leistungsniveaus 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 zu einer schnelleren Markteinführung führt.

Verweise

  1. Dr Ian Cutress: Xilinx Announces World Largest FPGA: Virtex Ultrascale+ VU19P with 9m Cells. Abgerufen am 22. März 2022.
  2. EEMBC -- The Embedded Microprocessor Benchmark Consortium. 27. März 2005, abgerufen am 22. März 2022.
  3. Stephen Shankland: Power could cost more than servers, Google warns. Abgerufen am 22. März 2022 (englisch).
  4. Senior Editor: Xbox, PCs and gaming drive AMD and Microsoft’s revenues. In: PCWorld. Abgerufen am 22. März 2022 (amerikanisches Englisch).
  5. Kerr, Justin: AMD Loses Market Share as Mobile CPU Sales Outsell Desktop for the First Time. In: Maximum PC. 26. Oktober 2010 .
  6. {{{titel}}}. Abgerufen am 22. März 2022.
  7. Wayback Machine. Abgerufen am 22. März 2022.
  8. Wayback Machine. Abgerufen am 22. März 2022.
  9. Dies (Dice), Wafers, and Costs. Abgerufen am 22. März 2022 (amerikanisches Englisch).
  10. ARM Cores Climb Into 3G Territory - ExtremeTech. Abgerufen am 22. März 2022.
  11. Jim Turley: The Two Percent Solution. In: Embedded.com. 18. Dezember 2002, abgerufen am 22. März 2022 (amerikanisches Englisch).
  12. About Advanced RISC Machines (ARM). 6. Juni 2009, abgerufen am 22. März 2022.
  13. Chip Gracey: Why the Propeller Works.
  14. William Mensch. 4. März 2016, abgerufen am 22. März 2022.
  15. C.H. Séquin; D.A. Patterson: Design and Implementation of RISC I.
  16. the VHS. 27. Februar 2010, abgerufen am 22. März 2022.
  17. fpgacpu.org - Teaching Computer Design with FPGAs. Abgerufen am 22. März 2022.
  18. N.P. Jouppi, J.Y.-F. Tang: A 20-MIPS sustained 32-bit CMOS microprocessor with high ratio of sustained to peak performance. In: IEEE Journal of Solid-State Circuits. Band 24, Nr. 5, Oktober 1989, ISSN 0018-9200, S. 1348–1359, doi:10.1109/JSSC.1989.572612 (ieee.org [abgerufen am 22. März 2022]).
  19. MultiTitan: Four Architecture Papers.