lb, lbu lh, lhu lw ld* la* li* sb sh sw sd* move add, addi, addiu sub, subi mult, multu div, divu and, andi or, ori xor, xori not*, rem*, abs*, neg* Datenbewegungsbefehle arithmetisch logische Befehle Schiebe und Rotationsbefehle Multimediabefehle Gleitkommabefehle Programmsteuerbefehle Systemsteuerbefehle Synchronisationsbefehle Dreiaddressformat Zweiaddressformat Einaddressformat Nulladdressformat Lade- und Speicherarchitektur Register- Speicherarchitektur Speicher- Speichearchtitektur Stack- und Kellerarchitektur Akkumulatorarchitektur Intel 8087, ATAM 862, Atmel: Stackarchitektur Little-Endian, Big-Endian Einzelbit, Ganzzahl, Gleitkomma, Multimedia Byte, Halbwort, Wort, Doppelwort signed, unsigned, packed, unpacked, bcd, ascii ieee-754-std, f = (-1)\^s * 1.m * 2\^(e-b) 32: einfach, 64: doppelt, 80: erweitert Unmittelbare Addressierung Registeraddressierung Direkte oder absolute Addressierung Indirekte Addressierung Indirekte Addressierung mit Verschiebung Indirekte Addressierung mit Autoinkrement/Dekrement Indizierte Addressierung Indizierte Addressierung mit Verschiebung Tempor"are Variablen, Register \$t0 bis \$t9 Gesicherte Variablen: \$s0 bis \$s7 Argumente, funktionsaufruf, \$a R"uckgabewert \$v \$zero \$gp, \$sp \$at? Steuereinheit 1.) Befehlsdekodierer 2.) Funktionsdekodierer Befehlsdekodierer 1.) MemToReg 2.) MemWrite 3.) Branch 4.) ALU-Src 5.) ALU-Op 6.) RegDst 7.) RegWrite 1.) Befehlsdekodierer 2.) Funktionsdekodierer 3.) Registersatz 4.) ALU 5.) Datenspeicher 6.) Befehlsspeicher 7.) Befehslz"ahler 8.) Vorzeichenerweiterungseinheit 9.) 4 x MUX 10.) 1 x AND 11.) 2 x Addierer 12.) 1 x 2 Bit Shifter Befehlsdekodierer 1.) MemToReg 2.) MemWrite 3.) Branch 4.) ALU-Src 5.) ALU-Op 6.) RegDst 7.) RegWrite Funktionsdekodierer 1.) Func 2.) ALU-Op 3.) ALU-Operation Registersatz 1.) Lese-Register-1 2.) Lese-Register-2 3.) Schreiberegister 4.) Lese-Daten-1 5.) Lese-Daten-2 6.) Schreibedaten 7.) WE Datenspeicher 1.) Lesedaten 2.) schreibedaten 3.) addresse 4.) WE ALU 1.) Ergebnis 2.) Null AND 1.) PCSrc Befehslsspeicher 1.) Addresse 2.) Lesedaten Befehlsz"ahler 1.) PC (t) 2.) PC (t+1) ALU-Op Func ALU-Operation 00 x 010 - add x1 x 110 - sub 1x 100 000 - add 010 - add xx n/a n/a OPCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Op r-typ 000 000 1 1 0 0 0 0 10 Verzweigungsbefehle 1.) Bedingt 2.) Unbedingt eq - equal ne - not equal gt - greater then ge - greater than equal lt - less than le - less than equal 1.) Absolut: Branch 2.) Befehlsz"ahlerrelativ: Jump 3.) Befehlsz"ahlerindirekt: Jump Register JAL: Jump and Link: Speichern zus"atzlich die Addresse, die dem Sprungbefehl folgt PC_neu = PC_alt + (i << 2) PC_neu = PC_alt \& 0xf000 0000 | (i << 2) j, b*, jr jal jalr beq, bne beqz, bnez blt, ble bltz, blez bgt, bge bgtz, bgez Zustandselemente 1.) Befehlsz"ahler 2.) Befehlsspeicher 3.) Registersatz 4.) Datenspeicher 1.) Befehl holen 2.) Befehl dekodieren 3.) Opranden der ALU bereitstellen 4.) Opration in der ALU ausf"uhren 5.) Operanden in Architekturregister zur"uckschreiben IF - Instruction Fetch ID - Instruction Decode / Register Fetch EX - Execute / Address Calculation MEM - Memory Access WB - Write Back 1.) Datenkonflikte 2.) Steuerflusskonflikte 3.) Struktur und Ressourcenkonflikte 1.) In Order Issue In Order Completion 2.) Out Of Order Issue Out Of Order Completion 1.) Statisches Sprungvorhersage durch die Hardware 1.1.) Predict Always Not Taken 1.2.) Predict Always Taken 1.3.) Predict Backward Taken forward Not Taken 2.) Dynamisch - Ein und Zwei Bit Pr"adiktor 2.1.) Taken <-> Not Taken 2.2.) Strongly / Weakly T/NT Schaltnetze Schaltwerke Komplexe Schaltwerke Aufbau und Funktiosnweise einse Computers Schaltnetze Boolesche Algebra Definition der Booleschen Algebra Schaltalgebra ein Modell der Booleschen Algebra Schaltfunktionen Definition Darstellung Minimierung Analyse von Schaltnetzen Synthese von Schaltnetzen Kodierglieder Schaltnetzentwurf f"ur den 8421-BCD-zu Siebensegmentumsetzung Schaltnetzentwurf f"ur einen Addresscodierer Addierglieder Halbaddierer Volladdierer Paralleladdierer Komperatoren Multiplexer ALU Zahlendarstellung und Zweierkomplement Addierer Substrahierer Schaltwerke Modelle f"ur Schaltwerke Implementierung f"ur Schaltwerke Synthese von Schaltwerken Analyse von Schaltwerken Schaltwerke und Mikroprozessor Speichergliedder Transformation Mealy und Mooreautomat Schaltwerke mit Bin"arcodierten Zustand Komplexe Schaltwerke Aufbau Komplexer Schaltwerke Entwurf Komplexer Schaltwerke RTL-Notation ASM-Diagramme Zustandsboxen Entscheidungsboxen Bedingte Ausgangsboxen ASM-Block Konstruktionsregeln f"ur Operationswerke ... (Lernen) Beispiel 1en Z"ahler L"osung mit komplexen Moore Schaltwerk L"osung mit komplexen Mealy Schaltwerk ... (Lernen) Aufbau des Operationswerks Moore Steuwerk als konventionelles Schaltwerk Moore Steuerwerk mit HotOne Kodierung Mealay Steuwerk als Konventielles Schaltwerk Mealy Steuwerk mit HotOne Kodierung Mikroprogrammeierte Steuwerke Aufba und Funktionsweise des Computers ... (Lerne) Komponenten eines computers Rechenwerk Leitwerk Speicher Ein und Ausgabe Datenpfade (? Lernen) Stackpointer Unterprogramme Unterbrechungen / Interrupts Elemente des Operationswerks Register Befehlsspeicher Rechenelemnte datenpfade Addresspfade Steuereinheit Operationswerk Schaltnetze: Elektrische Schaltungen, die Spannungen als logische Variablen 0 und 1 interpretieren DIN44300/93: Schaltnetz DIN44300/87: Schaltfunktion Eingangsvektor Schaltnetz Ausgangsvektor Schaltfunktion/Vektorfunktion Eingangsvektor: x0, x1, ..., xn Gesetze: Distributiv Assoziativ Kommutativ Absorbtion De Morgan Dualit"atsprinzip Inverse Elemente / Komplement"are Elemente Neutrale Elemente Grundverkn"upfungen - DIN40700 Null Eins Konjuntion Distribution NAND NOR "Aquivalenz Antivalenz Transfer Inhbition Implikation Komplement/Invers Kodierer: Schaltnetz, dass dem Zeichen eines Zeichenvorrats das Zeichen eines anderen Zeichenvorrats zuordnet Dekdierer: Kodierer, bei den f"ur jede Kombination von Eingangssignalen immer nur ein Ausgang ein Signal 1 abgibt DIN44300/118: Kodierer DIN44300/121: Dekodierer DIN 40700 Blat: Komperatoren DIN 40700 - Rechenelemente und Grundverkn"upfungen Volladdierer: S = A XOR B XOR C U = (A AND B) OR (A OR B) AND C PLHS 18P8 1.) Einzyklus 2.) Mehrzyklus 3.) Pipelining rt-Feld rs-Feld R-Typ Befehle I-Typ Befehle ALU-Op 00 add x1 sub 1x nutze das Func Feld xx n/a Func Feld 4 0 4 2 4 4 4 5 5 2 100 000 - add 100 010 - sub 100 100 - and 100 101 - or 101 010 - slt ALU-Operation 010 - add 110 - sub 000 - and 001 - or 111 - slt Konflikte 1.) Datenkonflikte 2.) Steuerflusskonflikte 3.) Struktur und Ressourcenkonflikte 1.) RAW - Read after Write - echte Datenabh"angigkeit 2.) WAR - Write After Read - Gegenabh"angigkeit 3.) WAW - Write After Write - Ausgabeabh"angigkeit