Hallo,
Für eine wissenschaftliche Arbeit suche ich strukturierte Informationen
über die Klassifizierung von Prozessoren, doch diese sind nirgends zu
finden.
Was ich gefunden habe ist folgendes:
Eine Einteilung von Prozessoren kann anhand von mehreren Indikatoren
durchgeführt werden. Diese wären:
- Die ISA ("Instruction Set Architecture"): darunter zählt:
Akkumulator-Architektur, Stack-Architektur,
Register-Speicher-Architektur, Register-Register-Architektur (auch
Load-/Store-Architektur)
- Die Entwurfsphilosophie (RISC oder CISC)
- Die Flynnsche Klassifikation (SISD, SIMD, MISD, MIMD)
- Und die allgemeine interne Architektur (!?) (Von-Neumann-Architektur,
Harvard-Architektur, etc.)
Mein Problem ist:
1. Die nicht einheitlichen Definitionen der einzelnen Architekturen
2. Die Vollständigkeit (gibt es noch mehr?)
3. Unter was für einen Oberbegriff kann man die Von-Neumann-Architektur,
Harvard-ARchitektur, etc. fassen? Wie stehen die einzelnen Kriterien
zueinander (z.B. RISC-Architektur verlangt eine
Load-/Store-Architektur)?
Kennt jemand zufällig eine klar strukturierte, wissenschaftliche Quelle?
mfg Thorsten (Pseudoname)
Thorsten schrieb:> Hallo,>> Für eine wissenschaftliche Arbeit suche ich strukturierte Informationen> über die Klassifizierung von Prozessoren, doch diese sind nirgends zu> finden.
Wundert mich nicht wirklich.
> Was ich gefunden habe ist folgendes:>> Eine Einteilung von Prozessoren kann anhand von mehreren Indikatoren> durchgeführt werden. Diese wären:> - Die ISA ("Instruction Set Architecture"): darunter zählt:> Akkumulator-Architektur, Stack-Architektur,> Register-Speicher-Architektur, Register-Register-Architektur (auch> Load-/Store-Architektur)
Also meines Wissens meint ISA normalerweise die Befehlssatz-Familie,
z.B. x86, MIPS, SPARC.
> - Die Entwurfsphilosophie (RISC oder CISC)
Oh, gibt es sowas überhaupt noch? Zumindest reinrassige CISC doch nicht
mehr.
> - Die Flynnsche Klassifikation (SISD, SIMD, MISD, MIMD)> - Und die allgemeine interne Architektur (!?) (Von-Neumann-Architektur,> Harvard-Architektur, etc.)
Ist das nicht externe Architektur - ausser Du interessierst Dich nur für
Mini-CPUs die allen Speicher intern haben?
> Mein Problem ist:> 1. Die nicht einheitlichen Definitionen der einzelnen Architekturen
Wirst Du nichts finden.
> 2. Die Vollständigkeit (gibt es noch mehr?)
Wirst Du auch nicht finden, da kann man sich nahezu beliebig viele
weitere Kriterien ausdenken.
> 3. Unter was für einen Oberbegriff kann man die Von-Neumann-Architektur,> Harvard-ARchitektur, etc. fassen? Wie stehen die einzelnen Kriterien> zueinander (z.B. RISC-Architektur verlangt eine> Load-/Store-Architektur)?>> Kennt jemand zufällig eine klar strukturierte, wissenschaftliche Quelle?
Für eine wissenschaftliche Arbeit würde ich mir ansehen was andere schon
gemacht haben.
Dann würde ich übernehmen was für mich brauchbar ist und mir ansonsten
etwas passendes ausdenken.
Das Klassifizierungsschema muss zum Thema Deiner Arbeit passen. Es hat
keinen Sinn nach einem Kriterium zu klassifizieren das vorhersagbar
keinen Unterschied für die Ergebnisse machen kann.
Jasch schrieb:> Also meines Wissens meint ISA normalerweise die Befehlssatz-Familie,> z.B. x86, MIPS, SPARC.
Klar, aber die kann man klassifizieren, und darum geht es hier.
> Oh, gibt es sowas überhaupt noch? Zumindest reinrassige CISC doch nicht> mehr.
Aber die Klassifikation gibt es noch. Insbesondere im Lehrbuch.
>> - Und die allgemeine interne Architektur (!?) (Von-Neumann-Architektur,>> Harvard-Architektur, etc.)>> Ist das nicht externe Architektur - ausser Du interessierst Dich nur für> Mini-CPUs die allen Speicher intern haben?
Von-Neumann/Harvard ist ohnehin eine problematische Klassifikation. Ist
etwas Harvard, weil der Core zum Cache oder Speicher hin zwischen
Befehls- und Datenbus trennt (ARM9,486) und von-Neumann andernfalls
(ARM7,386)?
Oder betrifft das eher die Adressräume? Mir scheint nur Letzteres
sinnvoll zu sein, aber die Literatur favorisiert Ersteres. Zu Lebzeiten
der Harvard Mark 1 und von John von Neumann war das noch deckungsgleich,
aber mittlerweile schon längst nicht mehr.
Insofern muss man in diesem Aspekt deutlich den Unterschied zwischen ISA
(interessiert den Programmierer) und Implementation Architecture (...
nur noch den Chipdesigner) betonen. Weil Hv/vN irgendwie zu beidem passt
und dabei verschieden sein kann.
Thorsten schrieb:> - Die ISA ("Instruction Set Architecture"): darunter zählt:> Akkumulator-Architektur, Stack-Architektur,> Register-Speicher-Architektur, Register-Register-Architektur (auch> Load-/Store-Architektur)
Speicher/Speicher (Transport Triggered)
http://www.maxim-ic.com/app-notes/index.mvp/id/3222http://www.cse.iitk.ac.in/users/moona/students/9411161.pdf/http://en.wikipedia.org/wiki/One_instruction_set_computer (und die
anderen ZISC, NISC (zero/no instruction set computer))
> - Die Entwurfsphilosophie (RISC oder CISC)> - Die Flynnsche Klassifikation (SISD, SIMD, MISD, MIMD)> - Und die allgemeine interne Architektur (!?) (Von-Neumann-Architektur,> Harvard-Architektur, etc.)>> Mein Problem ist:> 1. Die nicht einheitlichen Definitionen der einzelnen Architekturen> 2. Die Vollständigkeit (gibt es noch mehr?)> 3. Unter was für einen Oberbegriff kann man die Von-Neumann-Architektur,> Harvard-ARchitektur, etc. fassen?
Computerarchitektur/Prozessorarchitektur?
> Wie stehen die einzelnen Kriterien zueinander> RISC-Architektur verlangt eine Load-/Store-Architektur
Ja/Nein/Vielleicht. Zwei Beispiele wo die Unterscheidung/Klassifizierung
u.U. schwierig wird.
MSP430 kleiner Befehlssatz, viele Register, aber keine
Load/Store-Architektur.
ARM-Befehlssatz: Sehr viele Befehle (Conditional execution), allgemein
aber als RISC klassifiziert
A. K. schrieb:> Jasch schrieb:>>> Also meines Wissens meint ISA normalerweise die Befehlssatz-Familie,>> z.B. x86, MIPS, SPARC.>> Klar, aber die kann man klassifizieren, und darum geht es hier.
Man kann sie sicher klassifizieren, nur klassifiziert das dann auch den
Prozessor? Ein Intel Core z.B. ist doch nach aussen CISC und intern
praktisch RISC, wird auch von den üblichen Compilern meistens als
Load-/Store-Architektur behandelt, was bringt es also?
>> Oh, gibt es sowas überhaupt noch? Zumindest reinrassige CISC doch nicht>> mehr.>> Aber die Klassifikation gibt es noch. Insbesondere im Lehrbuch.
;-) Ach ja, die Lehrbücher...
>>> - Und die allgemeine interne Architektur (!?) (Von-Neumann-Architektur,>>> Harvard-Architektur, etc.)>>>> Ist das nicht externe Architektur - ausser Du interessierst Dich nur für>> Mini-CPUs die allen Speicher intern haben?>> Von-Neumann/Harvard ist ohnehin eine problematische Klassifikation. Ist> etwas Harvard, weil der Core zum Cache oder Speicher hin zwischen> Befehls- und Datenbus trennt (ARM9,486) und von-Neumann andernfalls> (ARM7,386)?>> Oder betrifft das eher die Adressräume? Mir scheint nur Letzteres> sinnvoll zu sein, aber die Literatur favorisiert Ersteres. Zu Lebzeiten> der Harvard Mark 1 und von John von Neumann war das noch deckungsgleich,> aber mittlerweile schon längst nicht mehr.
Also in meinen Augen ist das klar: es hat nichts mit (virtuellen)
Adressräumen zu tun (dann wäre ja fast alles Harvard), es hat auch
nichts mit getrennten I/D-Caches zu tun - die helfen zwar sind aber mehr
so "Harvard für Arme".
Nur wenn man mindestens getrennte physische Adressbereiche hat und
eigentlich wenn man total getrennte Busse für Code und Daten hat ist es
Harvard (OK, real wohl Modified Harvard). Nur so kann das einen
merkbaren Unterschied machen - von Sicherheit (Code auf dem Stack?
Hahaha!) bis Performance (Code und Daten parallel nachladen? Ja, wie
jetzt, na klar, wie denn sonst?).
Jasch schrieb:> Man kann sie sicher klassifizieren, nur klassifiziert das dann auch den> Prozessor?
... und ich sach grad noch, bring nicht ISA und IA durcheinander. ;-)
> Ein Intel Core z.B. ist doch nach aussen CISC und intern> praktisch RISC,
Na und? Was ändert das an der ISA?
> wird auch von den üblichen Compilern meistens als> Load-/Store-Architektur behandelt,
Will's nicht hoffen, denn das wär verschenkte Leistung.
Arc Net schrieb:> MSP430 kleiner Befehlssatz, viele Register, aber keine> Load/Store-Architektur.
Aber auch kein Bisschen RISC. Die PDP-11 (oder TI 990) hat m.W. noch nie
jemand als RISC bezeichnet und die Ähnlichkeit ist doch recht markant.
Andererseits ist IBM POWER Architektur ziemlich klar RISC, aber IBM
hatte das C vorsorglich schon von Anfang an als "complexity" übersetzt.
Denn das trifft es faktisch besser als der Fokus auf die Anzahl Befehle.
Davon gabs schon anfangs ziemlich viele.
Ich würde mich dem daher anschliessen und den Unterschied in der
strukturellen Komplexität sehen, also der Komplexität des Ablaufs auf
einer einfachen sequentiellen Maschine für diesen Befehlssatz.
> ARM-Befehlssatz: Sehr viele Befehle (Conditional execution)
Was hat Predication denn mit der Anzahl Befehle zu tun? Die Bedingung
ist ebenso ein Operand des Befehls wie die Register und vergrössert
weder die Anzahl der Befehle, noch nennenswert die Komplexität des
Cores. Dass es in der Assembler-Notation anders aussieht ist irrelevant.
Welchem Zweck soll denn die Klassifikation dienen? Wissenschaftlich hin
oder her, ohne den genauen Zweck der Klassifikation zu wissen, kannst Du
nach beliebigen Kriterien (z.B. Name der Großmutter des
Prozessordesigners) klassifizieren. Ob dies dann bei der Lösung des
aktuellen Problems hilfreich ist, ist eine andere Geschichte.
Klassifikation nur um der Klassifikation willen ist keine Wissenschaft!
Murkser
Ja klar, mit einer RISC/CISC Klassifikation kannst du dich aktuellen
Implementierungen von Highend-Prozessoren nicht wirklich nähern, denn
deren Komplexität hat diese Klassifikationen schon lange hinter sich
gelassen.
Aber darum geht es nicht immer. Gewöhnlich fängt man beim Verständnis
klein an und hangelt sich nach oben. Im Matheunterricht der Schule wirst
du ja auch nicht gleich am Anfang mit Topologiefragen beworfen.
Zur schematische Modellbildung von Strukturen und Abläufen in einfachen
Implementierungen bringt das schon was. Du kannst in der Lehre zur
Rechnerarchitektur die Leute nicht gleich mit den Internas eines Sandy
Bridge plagen (so man die überhaupt genau genug kennen würde). Da eignet
sich die olle MIPS R3000 Struktur weitaus besser. Beispielsweise im
Vergleich mit den Abläufen in einem CISC-Modell vergleichbar zu MSP430,
angereichert um eine MMU.
Murkser schrieb:> Klassifikation nur um der Klassifikation willen ist keine Wissenschaft!
Räusper - ich fürchte, ein erheblicher Teil der Wissenschaft besteht
gerade daraus. Die Praxis richtet sich wie Helmut Kohl (nicht gerade als
IT-Spezialist bekannt) danach was hinten rauskommt. Die Frage ist z.B.
nicht RISC oder CISC, sondern was leistet der Prozessor praktisch, und
allenfalls theoretisch könnte man sich fragen, ob eine gegebene Menge
Harwarefunktionen mit einem anderen Befehlssatz mehr leisten könnte, in
Wirklichkeit ist das nie nachprüfbar, denn es gibt nun mal keinen
Prozessor, der wahlweise CISC oder RISC ausführen kann, kann es auch
nicht geben.
RISC ist überhaupt nur deswegen so bekannt geworden, weil es die
Werbestrategen zu einer bestimmten Zeit für sich entdeckt haben als
Argument, diese Maschine zu kaufen ohne weiter nachzudenken, ob sie
besser ist als eine andere. Zu einer bestimmten Zeit und mit einer
bestimmten Ausstattung an Hardware war ein beschränkter Befehlssatz auch
sinnvoll, wobei aber festzustellen ist, dass der Leitungsschub etwa der
SPARC-Architektur auch auf die Registerstrukur zurückzuführen war.
Andrerseits ist die Unterscheidung auch willkürlich, da komplexe Befehle
wie etwa die Blocktransfers des Z80 ja schliesslich nicht benutzt werden
müssen, der Compiler kann sie auch aus den Einzelbefehlen risc-mässig
zusammensetzen. Solche Befehle müssen also der Leistung nicht schaden,
wie Weiterentwicklungen des Z80 mit modernem Silizium beweisen.
Ich höre hier lieber auf, denn man kann tatsächlich mindestens ein Buch
drüber schreiben, die Frage ist nur wofür das gut sein soll. Ausserdem
wäre es bei Erscheinen total überholt.
Heute erhebt sich eigentlich nur die Frage, was leistet das System
(nicht der Prozessor!), möglichst nach einem unabhängigen, aber
geeigneten Benchmark gemessen, und läuft die Software, die ich brauche.
Wie die Innereien wissenschaftlich zu klassifizieren wären, interessiert
mich kaum noch. Meinetwegen könnte mein Arbeitsplatzrechner auch auf
einem Havard-Prozessor laufen, und wenn dafür doppelt soviel Speicher
notwendig wäre, was soll's.
Gruss Reinhard