Es gibt viele verschiedene Arten von Computerarchitekturen.
Eine Möglichkeit zur Kategorisierung von Computerarchitekturen besteht in der Anzahl der Befehle, die pro Takt ausgeführt werden. Viele Computer lesen jeweils einen Befehl und führen ihn aus (oder sie geben sich viel Mühe, so zu tun, als obsie machen das, auch wenn sie intern Lust auf superskalare und außer Betrieb befindliche Sachen haben). Ich nenne solche Maschinen "von Neumann" -Maschinen, weil sie alle einen von Neumann-Engpass haben. Solche Maschinen umfassen CISC-, RISC-, MISC-, TTA- und DSP-Architekturen. Solche Maschinen umfassen Akkumulatormaschinen, Registermaschinen und Stapelmaschinen. Andere Maschinen lesen und führen mehrere Befehle gleichzeitig aus (VLIW, super-scalar), die die Grenze von einem Befehl pro Takt überschreiten, aber dennoch den von Neumann-Engpass bei einer etwas größeren Anzahl von Befehlen pro Takt treffen. Wieder andere Maschinen sind nicht durch den von Neumann-Engpass eingeschränkt, da sie alle Vorgänge beim Einschalten einmal vorladen und dann Daten ohne weitere Anweisungen verarbeiten. Solche Nicht-Von-Neumann-Maschinen umfassen Datenflussarchitekturen,
Eine andere Möglichkeit zur Kategorisierung von Computerarchitekturen besteht in der Verbindung (en) zwischen CPU und Speicher. Einige Maschinen haben einen einheitlichen Speicher, so dass eine einzelne Adresse einer einzelnen Stelle im Speicher entspricht. Wenn dieser Speicher RAM ist, kann man diese Adresse zum Lesen und Schreiben von Daten verwenden oder diese Adresse in den Programmzähler laden, um Code auszuführen. Ich nenne diese Maschinen Princeton-Maschinen. Andere Maschinen haben mehrere separate Speicherbereiche, so dass der Programmzähler immer auf "Programmspeicher" verweist, unabhängig davon, welche Adresse in ihn geladen ist, und normale Lese- und Schreibvorgänge gehen immer in "Datenspeicher", der ein separater Ort ist, der normalerweise unterschiedliche enthält Informationen auch dann, wenn die Bits der Datenadresse zufällig mit den Bits der Programmspeicheradresse identisch sind. Diese Maschinen sind "pure Harvard" oder "
Einige Leute verwenden eine enge Definition von "von Neumann-Maschine", die Harvard-Maschinen nicht einschließt. Wenn Sie eine dieser Personen sind, welchen Begriff würden Sie dann für das allgemeinere Konzept einer Maschine mit einem von Neumann-Engpass verwenden, die sowohl Harvard- als auch Princeton-Maschinen umfasst und NON-VON ausschließt?
Die meisten eingebetteten Systeme verwenden die Harvard-Architektur. Einige CPUs sind "pure Harvard", was vielleicht die einfachste Anordnung ist, Hardware einzubauen: Der Adressbus zum Nur-Lese-Programmspeicher ist ausschließlich mit dem Programmzähler verbunden, so wie viele frühe Microchip PICmicros. Einige modifizierte Harvard-Maschinen speichern außerdem Konstanten im Programmspeicher, die mit einem speziellen Befehl "Konstante Daten aus dem Programmspeicher lesen" (anders als der Befehl "Aus dem Datenspeicher lesen") gelesen werden können. Die Software, die auf den oben genannten Arten von Harvard-Maschinen ausgeführt wird, kann den Programmspeicher, der für diese Software effektiv ROM ist, nicht ändern. Einige eingebettete Systeme sind "selbstprogrammierbar", normalerweise mit einem Programmspeicher im Flash-Speicher und einem speziellen "Löschblock im Flash-Speicher". Anweisung und eine spezielle Anweisung "Block des Flash-Speichers schreiben" (anders als die normale Anweisung "In den Datenspeicher schreiben") zusätzlich zur Anweisung "Daten aus dem Programmspeicher lesen". Mehrere neuere Microchip PICmicros- und Atmel-AVRs sind selbst programmierbare modifizierte Harvard-Maschinen.
Eine andere Möglichkeit, CPUs zu kategorisieren, ist die Taktung. Die meisten Computer sind synchron - sie haben eine einzige globale Uhr. Einige CPUs sind asynchron - sie haben keine Uhr - einschließlich ILLIAC I und ILLIAC II, die zu einer Zeit die schnellsten Supercomputer der Welt waren.
Bitte helfen Sie bei der Verbesserung der Beschreibung aller Arten von Computerarchitekturen unter
http://en.wikibooks.org/wiki/Microprocessor_Design/Computer_Architecture
.