-
Moderator
Okay, veränderte Situation. Luki hat ja im Hauptthread klargestellt, um was es bei der Sache eigentlich geht. Ich formuliere meine Empfehlungen also neu.
Bittigkeit: 32. Wähend ich kein Problem mit 64bittigkeit hätte müßten wir für jeden mit IA-32-Prozessor Routinen schreiben, die die 64bittigen Berechnungen in 32bittige umwandeln. Mit einer 32bittigen Gastmaschine haben wir relativ geringen Implementationsaufwand bei relativ hoher Performanz.
Register: Völlig egal. Register sind bei uns nicht viel schneller als RAM, also ist es relativ egal, ob wir 32 oder 32768 davon haben. Zu viele Register könnten dazu führen, daß viele Register nie genutzt werden.
Befehlssatz: Wir haben durch einen riesengroßen Befehlssatz keine Nachteile, weil die unterste Ebene ultimativ sowieso C(++) sein wird, daher CISC.
Befehle: (Ich erhebe keinen Anspruch auf Vollständigkeit!)
Genereller Kram: NOP (tut nichts), INTER (Software Interrupt)
Arithmetik: ADD (Addition), SUB (Substraktion), MUL (Multiplikation), DIV (Division)
Boole'sche Logik: AND, OR, XOR, NOT
Branching: BEQ (Branch on equal), BNE (Branch on not equal), BGTZ (Branch on greater than zero), BLTZ (Branch on lesser than zero), BGEZ (Branch on greater than or equal to zero), BLEZ (Branch on less than or equal to zero)
Sprünge: J (Jump)
Speicherzugriffe: LOAD, STORE
Bitshifts: SLZ (Shift left, fill with zeroes), SRZ (Shift right, fill with zeroes), SLO (Shift left, fill with ones), SRO (Shift right, fill with ones), ROL (Rotate Left), ROR (Rotate Right)
zusätzliche CISC-Befehle
Byteordnung: Big-endian. Einziger Grund: Das Internet Protocol ist big-endian.
Darstellung von Fließkommazahlen: Als IEEE-Fließkommazahlen natürlich.
Multiprocessoring: Führt zusätzliche Komplexität ein, würde ich u.U. erst in einer späteren Version einbauen. Vielleicht könnte man von Anfang an mehrere Hauptbusse einplanen, an denen hinterher sowohl ein Prozessor als auch etwas anderes (ein Northbridge-Äquivalent) hänge könnte.
Interrupts: Geht es überhaupt ohne? Die Behandlung sollte wie bei anderen Prozessoren auch ablaufen: Stack sichern, Behandlungsroutine durchlaufen lassen, zurückspringen.
Ports: ...
Was die Bittigkeit angeht: Da können wir natürlich mit 96 arbeiten, ich rechne dann aber mit eher mäßiger Performanz und hohem Implementationsaufwand (riesige Mengen von LOAD- und STORE-Befehlen etc.).
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln