DLX-Mikroprozessor

DLX-Mikroprozessor

Der DLX-Mikroprozessor ist eine hypothetische Prozessorarchitektur die von John L. Hennessy und David A. Patterson (den ursprünglichen Designern der MIPS und Berkeley RISC-Architektur) entwickelt wurde. Er wurde in dem – von beiden gemeinsam verfassten – Buch Computer Architecture: A Quantitative Approach vorgestellt. Der DLX-Prozessor wird mit einem RISC-Befehlssatz (Reduced Instruction Set Computing) angesteuert und besitzt 32 Register, wobei R0 immer fest verdrahtet mit 0 ist. Der Hauptspeicherzugriff erfolgt byteweise. Weiterhin erfolgt der Speicherzugriff aligned und im Big Endian-Modus. Die Befehlswortlänge beim DLX beträgt 32 Bit; es gibt drei Befehlsformate (I-, R- und J-Format).

Inhaltsverzeichnis

Die Bezeichnung DLX

Für die Herkunft der Bezeichnung "DLX "gibt es mehrere mögliche historische Erklärungen:

  • DLX wie deluxe
  • DLX als römische Zahl: 560 (Mittelwert aus den damals üblichen Prozessor-Architekturen: AMD Am29000, DECstation 3100, HP 850, IBM 801, Intel i860, MIPS M/120A, MIPS m/1000, Motorola 88000, RISC 1, SGI 4D/60, SPARCstation-1, Sun-4/110, Sun-4/260)

Bestandteile

Die DLX besteht aus folgenden Bestandteilen:

  • Instruktions-Register (IR)
  • Instruktions-Dekodierer
  • ALU
  • nextPC (next Program Counter; Schaltteil zur Berechnung des PC)
  • PC (Register zur Speicherung des Program Counters)
  • Add32 (32 Bit Addierer)
  • GPRglue (Glue Logic zur Anbindung des GPR – General Purpose Register File)
  • GPR (General Purpose Register File)
  • Speicher

Registerbedeutungen

  • R0 null; unveränderlich
  • R1 reserviert für den Assembler
  • R2-R3 Funktionsrückgabewerte
  • R4-R7 Funktionsparameter
  • R8-R15 beliebig
  • R16-R23 Registervariablen
  • R24-R25 beliebig
  • R26-R27 reserviert für das Betriebssystem
  • R28 Globaler Pointer
  • R29 Stackpointer
  • R30 Registervariable
  • R31 Rücksprungadresse

DLX Befehlsformate

Die Befehlsformate definieren die Aufteilung des 32-Bit-Befehls in Felder. Bei allen drei Formaten sind die ersten 6 Bit immer der Opcode.

I-Format

Befehle dieses Formates sind Load/Store Instruktionen, arithmetische Befehle oder bedingte/unbedingte Sprünge. Die Instruktion besteht aus einem Quellregister rs1 und einem Zielregister rd, zusätzlich sind 16 Bit für den Immediate-Wert vorgesehen, die je nach Befehlstyp benutzt werden.

 0         5 6  10 11 15 16              31
 ==========================================
 | opcode   | rs1 |  rd |  immediate      |
 ==========================================

Beispielbefehle: LW, SW, JALR

R-Format

Dieses Format wird benutzt um Operationen auf Registern durchzuführen, dabei werden die Quellregister rs1 und rs2 mit der Register-ALU Operation func ausgeführt, und das Ergebnis auf das rd–Register abgelegt.

 0         5 6  10 11 15 16 20 21        31
 ==========================================
 | opcode   | rs1 | rs2 |  rd |   func    |
 ==========================================

Beispielbefehl: SLT, ADD, SUB

J-Format

Befehle dieses Formates sind Sprungbefehle. Die (dist)anz wird einfach auf den Befehlszähler hinzuaddiert.

 0         5 6                           31
 ==========================================
 | opcode   |            dist             |
 ==========================================

Beispielbefehle: J, JAL

DLX Befehlssatz

Auszug aus dem DLX-Befehlssatz ohne Floating-Point-Befehle:

Instruction                       Instruction meaning
LB / LH / LW         R1,val(R2)   Load byte / load half word / load word
LBU / LHU            R1,val(R2)   Load byte unsigned / load half word unsigned
SB / SH / SW         val(R2),R1   Store byte / store half word / store word
LHI                  R1,#val      Load high immediate
ADD / SUB            R1,R2,R3     Add / subtract
ADDU / SUBU          R1,R2,R3     Add unsigned / subtract unsigned
ADDI / SUBI          R1,R2,#val   Add immediate / subtract immediate
ADDUI / SUBUI        R1,R2,#val   Add immediate unsigned / subtract immediate unsigned
AND / OR / XOR       R1,R2,R3     And / or / exclusive or
ANDI / ORI / XORI    R1,R2,#val   And immediate / or immediate / exclusive or immediate
SLL / SRL / SRA      R1,R2,R3     Shift left logical / shift right logical / shift right arithmetic
SLLI / SRLI / SRAI   R1,R2,#val   Shift- left log. / right log. / right arithmetic -immediate
SLT / SLE / SEQ      R1,R2,R3     Set- less than / less or equal than / equal
SLTI / SLEI / SEQI   R1,R2,#val   Set- less than / less or equal than / equal -immediate
SGT / SGE / SNE      R1,R2,R3     Set- greater than / greater equal than / not equal
SGTI / SGEI / SNEI   R1,R2,#val   Set- greater than / greater equal / not equal -immediate
BEQZ / BNEZ          R4,name      Branch equal zero / branch not equal zero
J                    name         Jump
JR                   R5           Jump register
JAL                  name         Jump and link (save return address in R31)
JALR                 R5           Jump and link register (save return address in R31)
val:  16 Bit Wert als Adress-Offset oder Immediate-Wert
name: 16 oder 26 Bit Adress-Distanz

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • DLX-Pipeline — Die DLX Pipeline ist eine 5 stufige Pipeline für RISC Prozessoren (beispielsweise MIPS), welche dem DLX Mikroprozessor entstammt. Die Stufen heißen: Instruction Fetch (IF): Laden des Befehls in den Befehlspuffer, Erhöhung des Befehlszählers.… …   Deutsch Wikipedia

  • DLX — Der DLX Mikroprozessor ist eine hypothetische Prozessorarchitektur die von John L. Hennessy und David A. Patterson (den ursprünglichen Designern der MIPS und Berkeley RISC Architektur) entwickelt wurde. Er wurde in dem von beiden gemeinsam… …   Deutsch Wikipedia

  • Windlx — Die DLX Pipeline ist eine 5 stufige Pipeline für RISC Prozessoren (beispielsweise MIPS), welche dem DLX Mikroprozessor entstammt. Die Stufen heißen Instruction Fetch (IF): Laden des Befehls in den Befehlspuffer, Erhöhung des Befehlszählers.… …   Deutsch Wikipedia

  • MicroBlaze — ist ein in FPGAs der Firma Xilinx verwendbarer Mikrocontroller. Dieser Mikrocontroller existiert als Besonderheit nicht als physische Hardware, sondern ist nur als in Hardwarebeschreibungssprachen wie VHDL und Verilog verfasster Softcore… …   Deutsch Wikipedia

  • Befehls-Pipeline — Die Pipeline (auch Befehls Pipeline oder Prozessor Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der Maschinenbefehle in Teilaufgaben zerlegt wird, die für mehrere Befehle parallel durchgeführt werden.… …   Deutsch Wikipedia

  • Befehlspipeline — Die Pipeline (auch Befehls Pipeline oder Prozessor Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der Maschinenbefehle in Teilaufgaben zerlegt wird, die für mehrere Befehle parallel durchgeführt werden.… …   Deutsch Wikipedia

  • Fließbandverarbeitung — Die Pipeline (auch Befehls Pipeline oder Prozessor Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der Maschinenbefehle in Teilaufgaben zerlegt wird, die für mehrere Befehle parallel durchgeführt werden.… …   Deutsch Wikipedia

  • Pipeline-Architektur — Die Pipeline (auch Befehls Pipeline oder Prozessor Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der Maschinenbefehle in Teilaufgaben zerlegt wird, die für mehrere Befehle parallel durchgeführt werden.… …   Deutsch Wikipedia

  • Prozessor-Pipeline — Die Pipeline (auch Befehls Pipeline oder Prozessor Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der Maschinenbefehle in Teilaufgaben zerlegt wird, die für mehrere Befehle parallel durchgeführt werden.… …   Deutsch Wikipedia

  • Prozessorpipeline — Die Pipeline (auch Befehls Pipeline oder Prozessor Pipeline) bezeichnet bei Mikroprozessoren eine Art „Fließband“, mit dem die Abarbeitung der Maschinenbefehle in Teilaufgaben zerlegt wird, die für mehrere Befehle parallel durchgeführt werden.… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”