www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Technische Informatik" - Mikrooperationen
Mikrooperationen < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Technische Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Mikrooperationen: Aufgabe 1
Status: (Frage) beantwortet Status 
Datum: 10:42 Mo 19.09.2011
Autor: WhiteKalia

Aufgabe
Gegeben ist der folgende Datenpfad (schwarz gedruckt):
[Dateianhang nicht öffentlich]

R0 bis R7 sind positiv flankengesteuerte 8-Bit Register. Jedes dieser Register besitzt ein load-Signal, das in dem Bild jedoch nur grau angedeutet ist (load-Signale). Ist dieses load-Signal für ein Register eins, dann speichert das entsprechende Register bei einer steigenden Taktflanke den am Eingang anliegenden Wert. Die ALU ist eine kombinatorische Logik, die für zwei 8 Bit Eingangswerte x und y am Ausgang den Wert x + y erzeugt, falls das Signal alu = 0 ist, oder den Wert x + y + 1, falls das Signal alu = 1 ist. Dadurch sind in diesem Datenpfad die Mikrooperationen Ra <= Rb + Rc und Ra <= Rb + Rc + 1 für a, b, c ∈ {0,…,7} zulässig. Tritt bei der Addition zweier 8-Bit-Werte in der ALU ein Übertrag auf, so wird dieser in einem 1-Bit-Statusregister gespeichert. Der Wert dieses Statusregisters wird der Steuerlogik über das Signal carry bereitgestellt.

(a) Geben Sie eine Mikroprogrammsequenz zur Addition zweier 32-Bit-Werte an, die in 4 Takten abgearbeitet werden kann. Die zu addierenden Werte sind in den Registern R0 bis R3 und R4 bis R7 gespeichert, wobei die niederwertigsten 8 Bit in den Registern R0 bzw. R4 stehen und die höchstwertigen 8 Bit in den Registern R3 bzw. R7. Das Ergebnis soll in den Registern R0 bis R3 gespeichert werden.

Hallo!

Könnte mir jemand die ersten eins, zwei Schritte erklären, wie ich da ran gehen kann?

Vielen Dank schonmal.

glg
Kalia

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
        
Bezug
Mikrooperationen: Lösungsansatz
Status: (Antwort) fertig Status 
Datum: 19:23 Di 20.09.2011
Autor: geograf

Hallo Kalia!

Mit dieser Infrastruktur kann die Addition in vier hintereinanderliegenden Schritten erledigt werden:
1.) Berechne R0+R4 und speichere in R0
2a) Falls Übertrag (carry) gleich 0, berechne R1+R5 und speichere in R1
2b) Falls Übertrag gleich 1, berechne R1+R5+1 und speichere in R1
3a,3b,4a,4b wie oben.

Die Mikroprogrammsequenz ist dann die Übersetzung dieses Algorithmus in Ausgangssignale der Steuerlogik (mux1, mux2,load0 bis load3, alu) in Abhängigkeit von den Eingangssignalen (Taktzähler, carry). Sie wird letztlich in einem ROM oder FPGA abgebildet.

Gruß,
Geograf

Bezug
                
Bezug
Mikrooperationen: Rückfrage
Status: (Frage) überfällig Status 
Datum: 10:33 Do 22.09.2011
Autor: WhiteKalia

Hallo und Danke dir schonmal. =)

Ich habe trotzdem dazu noch ein paar Fragen.^^ ...bzw die Bitte um Korrektur...
Also ich habe das jetzt erstmal folgendermaßen verstanden:

T1: R0 <= R0+R4
T2: IF (carry=0) THEN (R1 <= R1+R5) ELSE (R1 <= R1+R5+1)
T3: IF (carry=0) THEN (R1 <= R2+R6) ELSE (R1 <= R2+R6+1)
T4: IF (carry=0) THEN (R1 <= R3+R7) ELSE (R1 <= R3+R7+1)

Ist das erstmal so korrekt?
..wenn ja, wie müsste ich dann mit den Ein- bzw. Ausgangssignalen vorfahren?
Etwa so?

load0 alu mux1 mux2 T1: R0 <= R0+R4
load1 alu mux1 mux2 T2: IF (carry=0) THEN (R1 <= R1+R5) ELSE (R1 <= R1+R5+1)
load2 alu mux1 mux2 T3: IF (carry=0) THEN (R1 <= R2+R6) ELSE (R1 <= R2+R6+1)
load3 alu mux1 mux2 T4: IF (carry=0) THEN (R1 <= R3+R7) ELSE (R1 <= R3+R7+1)

Danke dir nochmal, dass du dich so mit mir rumquälst.^^

glg
Kalia

Bezug
                        
Bezug
Mikrooperationen: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:20 Sa 24.09.2011
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Technische Informatik"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.mathebank.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]