WikiDer > Computerarchitektur

Computerarchitectuur

Mit dem Rechnerarchitektur bezieht sich auf den Aufbau der grundlegenden Betriebsstruktur eines Computersystems. Ein Blick auf einen Computer oder Prozessorarchitektur enthält die funktionale Beschreibung der Anforderungen, insbesondere Geschwindigkeiten und Verbindungen, und Designanwendungen eines Computers oder Prozessors.[2][3]Seit 2015 sind smarte Uhren über die kleinsten Computer, denn eine Smartwatch hat eine CPU, die es dem Benutzer ermöglicht, verschiedene Programme auszuführen. Größere Computersysteme, wie z Großrechner, Supercomputer und Computercluster, bestehen aus mehreren Computern, die in einem Computernetzwerk sind miteinander verbunden. Die Grenze zwischen Computerarchitektur und Architektur Netzwerkarchitektur beginnt zu verschwimmen, wenn es zum Beispiel um die Unterscheidung zwischen Computern und Cloud Computing oder (teilweise) verteilte Datenbanken geht.[4]

Systemarchitektur

Mehrkernprozessoren in modernen Computersystemen wie Servern, PCs und Laptops bestehen in der Regel aus mehreren Prozessorkerne, ein GPU und Cache-Speicher und Controller, die zusammen in einem SoC untergebracht sind. Typischerweise wird ein Multi-Core-Prozessor in einem Prozessorsockel auf der Hauptplatine vom Computer abgeklemmt. Auf dem Motherboard wird es wordt Arbeitsspeicher angewendet und a Chipsatz bietet Verbindungen zu den Peripheriegeräte. Manchmal im SoC von a Tablet oder ein Smartphone verschiedene CPU-Typen verwendet.

Prozessorarchitektur

Schematische Darstellung der Schritte bei der Bearbeitung einer Anweisung durch ein einfaches MIPS-Zentralprozessor:
1. Anweisungsabruf
2. Anweisungsdecodierung
3. Ausführen
4.Speicherzugriff
5. Schreiben Sie zurück
Es Halbleitermaterial in dem NEC VR5000 RISCProzessor, a 64-BitR5000MIPSProzessor von NEC aus 1996.[5]

Die erste Abbildung rechts zeigt es Prozessdiagramm siehe Verarbeitung von a Anweisung durch eine MIPSRISC-Prozessor. In der Abbildung unten ist es Halbleitermaterial in einem MIPS-R5000-Prozessor, dem sogenannten Das, abgebildet. Das Prozessdiagramm zeigt die Schritte bei der Abarbeitung einer Anweisung durch eine einfache CPU mit a Von Neumann-Prozessorarchitektur.

Anweisungsverarbeitung

Ein einfacher MIPS-Prozessor verarbeitet jeden Befehl in einem fünfstufigen Zyklus:[3]

  1. die Anweisung und die Daten werden während des IF-Schritts verwendet (ichAnleitung fätzen) von dem Level1-Cache von dem Cache-Speicher abgeholt und die pProgramm CGegen erhöht,
  2. die Anleitung, Speicheradressen und Daten werden während des ID-Schritts gespeichert (ichAnleitung dCode) in dem Befehlsregister und der Adresse- und Datenregister Gesendet,
  3. der Befehl und die Daten in den Registern werden während des EX-Schritts verwendet (EXausführen) verarbeitet,
  4. die Ergebnisse in den Registern werden während des MEM-Schritts angezeigt (MEMoriger Zugang) zwischengespeichert,
    1. wenn die Anweisung vollständig ausgeführt wurde, wird die nächste Anweisung ausgeführt (IF-Schritt, Schritt 1),
    2. wenn die Anweisung noch nicht vollständig ausgeführt wurde, folgt der WB-Schritt, Schritt 5,
  5. während des WB-Schritts (WRitus Back) wird angewiesen, den nächsten ID-Schritt, Schritt 2 im Verarbeitungszyklus durchzuführen.

Im Schema wird die Rolle von Funktionseinheiten, wie z arithmetisch-logische Einheiten (ALUs) und Multiplexer (MUX), in der Verarbeitung mit Symbolen dargestellt.

Die Verarbeitung jeder Anweisung folgt einer Reihe von Schritten und Zyklen, die bei Schritt 1 beginnen und bei Schritt 4 enden:

... -> 1 -> 2 -> 3 -> 4 (-> 5 -> 2 -> 3 -> 4)nein -> 1 -> ...(PC = PC 1) ........ (PC = PC 1)

bei welchem nein ist die Anzahl der Zyklen, die abgeschlossen werden müssen, um den Vorgang abzuschließen.

Bearbeitungszyklen

Der Wert der Anzahl der Bearbeitungszyklen nein einer Anweisung hängt von der Art der Operation und den Werten der zu verarbeitenden Daten in den Registern ab. Zur Durchführung eines sogenannten NOPAussage, d. h. eine "NeinÖ AUFration"-Aussage, ist nein gleich 0. Wenn ein NOP-Befehl ausgeführt wird, werden keine Daten abgerufen oder in den Speicher geschrieben, aber der Wert des Programm zähler (Programmzähler, PC) wird inkrementiert, bevor ein NOP-Befehl ausgeführt wird.

Die Anzahl der Verarbeitungszyklen, die zum Ausführen eines Befehls erforderlich sind, hängt von dem Befehl, der Prozessorarchitektur und dem Vorhandensein von ab Coprozessoren. Eine binäre bitweise Logikoperation kann im Allgemeinen in einem einzigen Zyklus durchgeführt werden. Mehrere Zyklen sind erforderlich, um eine Addition von zwei ganzen Zahlen durchzuführen. Das Durchführen einer Multiplikation erfordert ein Vielfaches der Anzahl von Verarbeitungszyklen, die für eine Addition erforderlich sind.

Cache-Speicher und Arbeitsspeicher

Seit der Einführung des Intel® 80486 SX und der 80486 DX2/66, mit 8 K BCache-Speicher und einem Cache-Controller in der CPU wurden immer mehr Prozessoren mit eingebautem Cache-Speicher ausgestattet.[6]Darüber hinaus verfügte die DX2/66-Version über eine integrierte 80487-Gleitkomma Koprozessor und eine interne Taktfrequenz, die doppelt so hoch ist wie die des 33 MHz Taktfrequenz des System Bus.[7]

Der Einsatz eines relativ kleinen, teuren, aber schnellen, SRAM-Cache-Speicher ist notwendig, weil die CPU die meisten Befehle schneller verarbeitet, als sie über den Systembus zwischen der CPU und dem großen, billigen, aber langsamen . ausgetauscht werden können DRAM-Module von dem Arbeitsspeicher. Die Verwaltung des Cache-Speichers und die Datenkommunikation mit dem Arbeitsspeicher erfolgt durch spezielle Mikrocontroller führe die Speicherhierarchie des Computers.

Der Arbeitsspeicher befindet sich im RAM-Module auf der Hauptplatine, während der Cache-Speicher und die Cache-Controller seit Anfang der 1990er Jahre in den CPU-Chip integriert sind. In den Diagrammen zeigen die roten Kästchen die Cache-Speicher im Prozessor vorgesehen. Wenn die Prozessoren schneller werden, verringert sich der Unterschied in der Verarbeitungsgeschwindigkeit zwischen den CPUs, ausgedrückt in MIPS oder FLOPS, und der Arbeitsspeicher steigt, werden mehr Ebenen oder Schichten des Cache-Speichers verwendet. Heutzutage kann die Anzahl der Schichten des Cache-Speichers bis zu drei Schichten erreichen, während diese Schichten immer größer und schneller werden.

Virtueller Speicher

Platteneinheiten von a CDC Cyber 170 Großrechner, aus den achtziger Jahren des letzten Jahrhunderts, mit a NOS/VE-Betriebssystem.[8] Das Betriebssystem NOS/VE der Cyber ​​170 verwendet virtuellen Speicher.

Wenn es zu wenige sind Arbeitsspeicher auf dem Motherboard installiert, um die aktiven Prozesse und notwendigen Daten zu speichern, dann kann es virtueller Speicher aktiviert und verwendet werden. Das VMM von dem Betriebssystem kann Blöcke aus dem Arbeitsspeicher gegen Blöcke aus dem virtuellen Speicher auf a austauschen Festplatte. Für den virtuellen Speicher eine Auslagerungsdatei oder ein spezielles Partition tauschen verwendet werden.[9][10]Normalerweise wird auf einer Swap-Partition doppelt so viel virtueller Speicher erstellt, wie auf einem Motherboard Arbeitsspeicher vorhanden ist. Der Mikrocontroller, der die Blöcke zwischen dem Hauptspeicher und der Auslagerungsdatei bzw. der Auslagerungspartition austauscht, heißt Direkter Speicherzugriff (DMA).

weil RAM-Module werden billiger, und weil Swapping einen Rechner erheblich verlangsamt, wird bei intensiver Nutzung des virtuellen Speichers immer häufiger eine Erweiterung des Arbeitsspeichers gewählt, ohne den virtuellen Speicher zu erweitern. Verfügt ein Computer über zwei oder vier RAM-Slots, kann der Arbeitsspeicher um ein paar Mal erweitert werden, zum Beispiel auf das Zwei-, Vier- oder möglicherweise auch das Achtfache des ursprünglichen Arbeitsspeichers. Bleibt der virtuelle Speicher (VM) gleich und verdoppelt sich die Menge des Arbeitsspeichers (RAM) beim ersten Mal, dann gilt VM = RAM. Wird der Arbeitsspeicher vervierfacht, dann VM = RAM / 2.

Heutzutage empfehlen immer mehr Systemdesigner, den Arbeitsspeicher auf ausgelasteten und anfälligen Servern zu erweitern und den verfügbaren virtuellen Speicher begrenzt oder so klein wie möglich zu halten, zum Beispiel VM = 2 GiBunabhängig davon, ob RAM = 1 GiB, RAM > 2 GiB oder RAM > 16 GiB. Weil die Verwendung von virtuellem Speicher die Leistung eines Computersystems verbessert Prügel stark abnehmen und weil Konflikte zwischen Cache-Managern und dem DMA dazu führen können, dass das System hängt oder ausfällt Absturz, erwägen einige Systementwickler (Anfang 2017) sogar, Swap-Partitionen vollständig aus dem Betriebssystem einiger Server zu entfernen.[11][12][13][14][15]

FPUs, GPUs und Parallelisierung

Der C240 ​​von Convex Computer Corporation, a Vektor-Mini-Supercomputer, gebaut um 1985 für schwere wissenschaftliche Berechnungen.

EIN Gleitkommaeinheit (FPU) verarbeitet Anweisungen für Berechnungen mit Gleitkommazahlen. FPUs und Vektorprozessoren können die komplexen Berechnungen mit trigonometrische Funktionen und Arrays in weniger Zyklen laufen als ein Gleitkomma Emulator. Beispielsweise wird ein Gleitkomma-Emulator auf einem Computer mit a . installiert Intel 80386 oder ein ARMv7 als Ersatz für eine FPU verwendet.Beispiele für moderne Coprozessoren für schwere, wissenschaftliche Berechnungen sind die zijn Xeon Phi-Coprozessoren wie der Xeon Phi 7120 mit 61 FPUs und 244 Faden, und das Xeon Phi 7290F mit 72 FPUs und 288 Threads.[16][17][18]Diese FPUs können vier Threads pro Prozessor verarbeiten. Sie werden in Supercomputer angewendet unter anderem mit Wettervorhersage und Klimamodelle Da diese Coprozessoren groß sind und viel Energie verbrauchen, sind sie PCI-ExpressKarte platziert oder in einem Special Prozessorsockel geklemmt.

Für ein Videospiel kann a Grafikkarte (GPU) zum Beispiel affine Transformationen und Vektorgrafiken von OpenGL- oder WebGL-Objekte verarbeiten und a 3D-Computergrafik Umfeld rendern.[19]Das Parallelisierung von GPUs angewendet wird, ist der parallelen Verarbeitung von Daten durch die Vektorprozessoren und Transputer, die Mitte der 1980er Jahre für wissenschaftliche Zwecke entwickelt wurden. Ein bekanntes Beispiel für Parallelisierung ist Raytracing mit einem Programm wie POV-Ray. Einige Animationen zum Film Jurassic Park von Steven Spielberg, sind von Industrielles Licht & Magie mit einem Raytracer erstellt.

Coprozessoren zur Ausführung spezieller Aufgaben, wie z Verschlüsselung oder biometrische Mustererkennung, kann möglicherweise mit a ASIC gestaltet werden.

Mehrkernprozessoren

CPUs in Servern, Desktops und Laptops nutzen 2017 fast ausschließlich die exclusively x86-Befehlssatz. Mobile Geräte verwenden hauptsächlich die ARM-Befehlssatz weil RISC-Prozessoren energieeffizienter sind. Diese Situation könnte sich in naher Zukunft ändern, da AMD hart an einer neuen, energieeffizienten Generation arbeitet Opteron A Prozessoren basierend auf ARM Cortex A57 Kernen.[20][21][22]

Server, PCs und Laptops

Blockschaltbild eines auf dem Plattform-Controller-HubChipsatz basierte Architektur

Seit der Einführung des Intel® Sandy Bridge und der AMD FusionMehrkernprozessoren sind die Prozessorkerne, zusammen mit zwei oder drei Schichten Cache-Speicher, ein GPU und mehrere Controller in einem CPU/SoC oder ein APU integriert. Die verschiedenen Ebenen des Cache-Speichers arbeiten mit unterschiedlichen Taktfrequenzen, die ein Vielfaches der Taktfrequenz des System Bus, das die CPU mit der Peripheriehardware verbindet.[23][24][25]

Die Taktfrequenz des Front-Side-Bus (FSB) im Jahr 2017 liegt bei den meisten Prozessorkernen zwischen 2 und 4,5 Ergen GHz, die etwa 20- bis 45-mal höher ist als die Taktfrequenz des Systembusses.[26][27]Durch die Integration verschiedener Prozessoren und Controller innerhalb eines SoCs wird die IPC zwischen den Prozessorkernen, innerhalb der gemeinsamen Bereiche des Caches, sind ebenfalls einfacher.

Die Prozessoren können in der Regel sein LGA-Prozessorsockel an ein Mainboard geklemmt.[28][29]Nach Intels Einführung des Plattform-Controller-Hub (PCH) im Jahr 2008 und der Einführung der Chipsätze der A-Serie und 9-Serie durch AMD, die Südbrücke von den Mainboards. Die neuen Chipsätze sorgen für die Kommunikation zwischen dem Multi-Core-Prozessor und dem PCI-Express-, SATA-, DMI- und USBVerbindungen.

Smartphones und Tablets

Die meisten Chips in Smartphones, Tablets, Einplatinencomputer und smarte Uhren, sind um einen Multi-Core-Prozessor mit a ARM-Architektur. ARM fördert die big.LITTLE-Technologie, bei der verschiedene Prozessorkerne für unterschiedliche Aufgaben auf einem SoC kombiniert werden.[30]Indem man leichte Aufgaben energieeffizienten Prozessoren überlässt und schwerere Aufgaben den leistungsstärksten Prozessoren, lässt sich im Sinne der ARM-Philosophie Energie einsparen QualcommLöwenmaulChips, die um eine Ronde herum sind Krait-Prozessorkern, mit zwei oder vier ARMv7-Kernen, wurden gebaut und kommen in zahlreichen mobilen Geräten zum Einsatz. Ein weiterer beliebter ARM-Prozessor ist der breitcom-SoC bereitgestellt von der Himbeer-Pi wird eingesetzt.

Das NVIDIA Tegra K1 verfügt über fünf ARMv7-Kerne, von denen ein Kern stromsparend ist und vier Kerne eine hohe Leistung bieten können.[31]Der Tegra X1 verfügt über einen Cluster mit vier energieeffizienten Cortex-A57 und einen Cluster mit vier leistungsstarken Cortex-A58 Prozessoren.[32]MediaTek setzt auch bei den Helio-Chips auf Energiesparen. Der X30-SoC verfügt über zehn Kerne, darunter sechs Cortex-A72-Kerne, von denen vier mit 2,5 und zwei mit 2,0 GHz laufen, sowie vier Cortex-A53-Kerne, zwei mit 1,5 und zwei mit 1,0 GHz.[33][34]Das Samsung Exynos 7 Octa und Exynos 8 Octa wurden mit einer ähnlichen Philosophie entwickelt. Der Exynos 7 Octa verfügt über vier Cortex-53- und vier Cortex-A57-Kerne mit bis zu 1,3 bzw. 1,9 GHz.[35][36]

Cloud Computing und Netzwerkarchitektur

In heutigen Anwendungen sind mehrere CPUs mit größeren Funktionseinheiten, wie z FPUs, ein GPU, DMA und einem USB-Hub, zusammen auf einem System-on-a-Chip oder SoC untergebracht. Computerarchitektur kann auch in einem breiteren Kontext definiert werden als die Wissenschaft und die Kunst, Hardwarekomponenten auszuwählen und zu verbinden, um Computer zu bauen, die die Anforderungen an Funktionalität, Leistung und Kosten erfüllen. Der Begriff wird beispielsweise verwendet für:

Der Satz von Maschineneigenschaften muss Betriebssystem- und Anwendungsentwickler verstehen, um den Computer zu programmieren.

Computerarchitektur wird an allen Informatikschulen als Fach behandelt.

Verweise