info 1 klausur

schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

Ist alles auf der Seite zur Übung vorhanden, Eine Datei ist die Lösung zum Übungsblatt 5 und die 2. Datei ist ganz unten vor dem Link zur Literatur zu finden.
Benutzeravatar
Locutus
Beiträge: 604
Registriert: 30.10.2008 23:04
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Kontaktdaten:

Re: info 1 klausur

Beitrag von Locutus »

also mein größtes problem ist im moment das verstehen von dlx-programmierung. genauer gesagt, dort ansätze zu finden und zu verstehen, wie ich was mache. wenn ich fertigen code vor mir sehe kann ich nachvollziehen was es macht, aber selber den code generieren da steh ich schon arg auf dem schlauch. ich weis nicht einmal, wie ich vernünftig einen wert lade. das heist, ich würde den lw-befehl nutzen allerdings weis ich dann net aus welchem register (und in den beispielen sind die register immer als punkte dargestellt)
in den lösungen zur klausur werden die werte auch auf ganz andere art eingeladen mit lhi-befehl und ka was nicht allem.
und das schönste von allem ist, dass ich nicht einmal windlx nutzen kann, da das programm nicht einmal x64-kompatibel ist. und ich habe jetzt auch nicht das verlangen, eine virtual machine aufzusetzen nur um windlx anwenden zu können. kennt da wer vielleicht alternativen, welche auch auf vernünftigen systemen funktionieren?

aber wie gesagt, mein größtes problem im moment ist wirklich, zu verstehen wie ich selbst mit dlx irgend etwas programmiert bekomme. ins besondere, wie ich dort einen wert einlade usw. in der lösung zur probeklausur kann ich nicht einmal nachvollziehen, woher die hauptspeicherzugriffsadresse 0x200 kommt. die steht sonst nirgendwo. ich mein, könnt ich da theorethisch einfach irgend einen wert nehmen? oder ist das einfach nur die höherwertige hälfte von .data?
schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

Das wurde alles schon in der Übung und den viele Beiträgen hier im Forum erklärt.
Locutus hat geschrieben:(und in den beispielen sind die register immer als punkte dargestellt)
Das sind keine Register sondern Plätze im Speicher und die Punkte stehen für den Wert auf dieser Speicherzelle.
Locutus hat geschrieben:in den lösungen zur klausur werden die werte auch auf ganz andere art eingeladen mit lhi-befehl
Es ist genau so wie in allen anderen Beispielen. Da aber die zu ladende Adresse 0x2000000 in den unteren 16 Bit nur Nullen hat, kann der ori r1,r1,0 einfach weggelassen werden.
Locutus hat geschrieben:und das schönste von allem ist, dass ich nicht einmal windlx nutzen kann, da das programm nicht einmal x64-kompatibel ist.
Ein x64 Prozessor kann nicht die Ursache sein, ich arbeite selbst mit einem und bei mir geht alles. Welches System verwenden Sie und wie äußert sich das fehl Verhalten?

Code: Alles auswählen

         .text 0x40000
start: lhi r1,0x200      ; lade Adr. A (der lhi trägt die Konstante in die
                         ; oberen 16 Bit von r1 und löscht die unteren 16,
                         ; also wird r1 mit 0x2000000 = A geladen. 
         lw r2,0(r1)
         lw r3,4(r1)
         sle r4,r2,r3
         bnez r4,mem_ok
         sw 0(r1),r3      ; A und B tauschen
         sw 4(r1),r2
mem_ok: trap 0
       .data 0x2000000
; die 1. Speicherzelle hat genau die Adresse, die mit .data eingestellt wurde
A:    .word 0x….       ; Speicherzelle mit der Symbolischen Adresse A=0x200000
B:    .word 0x….       ; Speicherzelle mit der Symbolischen Adresse B=0x200004
Zuletzt geändert von schoene am 14.02.2009 18:58, insgesamt 1-mal geändert.
FelixKoettig
Beiträge: 123
Registriert: 25.11.2008 17:01

Re: info 1 klausur

Beitrag von FelixKoettig »

ich arbeite mit vista 64 und da gehts auch nicht. aber eine vm und xp 32 funktioniert wunderbar :D dauert mit einrichtung ca. 30 min und loht sich sehr.
Benutzeravatar
Locutus
Beiträge: 604
Registriert: 30.10.2008 23:04
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Kontaktdaten:

Re: info 1 klausur

Beitrag von Locutus »

genau das ist bei mir auch der fall. vista x64 und windlx ist bisher das einzige programm, welches die arbeit verweigert. ich meinte mit x64-system vor allem das betriebssystem.
das fehlverhalten äussert sich in der form, als dass windlx beim start eine fehlermeldung ausgibt:
"die version dieser Datei ist nicht mit der ausgeführten Windows-Version kompatibel. Öffnen sie die Systeminformationen des Computers, um zu überprüfen, ob eine x86-(32 Bit)- oder eine x64-(64 Bit)-Version des Programmes erforderlich ist und wenden sie sich anschliessend an den Herausgeber der Software."
daraus leite ich ab, dass das programm eindeutig nicht kompatibel mit x64-Systemen ist. zumindest unter vista. (andererseits gibt es ausser xp x64 und vista x64 sowie win 7 x64 noch keine x64-betriebssysteme, weshalb ich einfach mal vermute, dass das programm mit allen x64-systemen inkompatibel ist. (mit system meine ich vor allen dingen das installierte betriebssystem. ;) )

an die Programmierung der DLX kann ich mich nicht mehr explizit erinnern, allerdings könnte es sein, dass dies in der übung vorkam, welche bei uns auf wundersame weise ausfiel und dann zu einem zeitpunkt nachgeholt wurde, an welchem ich leider studium generale hatte.
deshalb fühle ich mich ein wenig verloren vor der aufgabe der Programmierung.aber ich denk mal, wenn ich mir noch ein paar beispiele besorge und versuche, das ganze ein wenig genauer nachzuvollziehen, werd ich alles in absehbarer zeit wenigstens ansatzweise verstehen. ^^
schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

Locutus hat geschrieben:an die Programmierung der DLX kann ich mich nicht mehr explizit erinnern, allerdings könnte es sein, dass dies in der übung vorkam, welche bei uns auf wundersame weise ausfiel und dann zu einem zeitpunkt nachgeholt wurde, an welchem ich leider studium generale hatte.
Die DLX wurde am Ende der 5. Übung angefangen und in der 6. und 7. Übung fortgesetzt. Diese Übungen sind nicht ausgefallen.

In der Vorlesung nach der ausgefallenen Übung hatte ich miteilen lassen, dass ich die Übung nachzuholen werde und sich alle interessierten bei mir melden sollen.

Es gab genau NULL Meldungen!!! Wir hatten daraufhin angenommen Sie haben die Übung schon in anderen Gruppen besucht, denn sie sind in der Woche darauf noch gelaufen. Ohne Selbststudium in der höhe der Stundenzahl die für ein LV pro Woche an Vorlesung und Übung im Plan stehen und ein wenig eigen Initiative kann man ein Studium nicht mit guten Ergebnissen bestehen.
Benutzeravatar
Locutus
Beiträge: 604
Registriert: 30.10.2008 23:04
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Kontaktdaten:

Re: info 1 klausur

Beitrag von Locutus »

ich war aber meines wissens auch nicht in einer ihrer gruppen. ich war in der gruppe von fr. dr. Pöckel. und da fiel die 5. übung wie gesagt aus und wurde zu einem zeitpunkt wiederholt, welcher sich bei mir mit dem studium generale überschnitt. aber das ist auch nebensächlich. ;)
schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

Ja, es ist nur eine Übung bei Frau Pöckel wegen Krankheit ausgefallen. Es war aber auf keinen Fall in der letzten Woche vor Weihnachten und damit nicht die 5. Übung. Und diese ausgefallene Übung in der Gruppe von Frau Pöckel wollte ich nachholen!
sofamensch
Beiträge: 70
Registriert: 19.10.2008 19:25

Re: info 1 klausur

Beitrag von sofamensch »

Ganz schön kompliziert diese DLX :)
Benutzeravatar
Locutus
Beiträge: 604
Registriert: 30.10.2008 23:04
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Kontaktdaten:

Re: info 1 klausur

Beitrag von Locutus »

soweit ich mich an die übungen erinnern kann ist es egal, ob du die d-phasen die pausiert werden, mit einem stall darstellst oder mit einem d. bzw. jede phase die warten musst kannst du entweder mit wiederholung des phasenbuchstabens oder durch ein s darstellen.
zumindest ist das bei mir so aus den übungen hängen geblieben. ^^

und schon hast deinen beitrag geändert. :P
schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

sofamensch hat geschrieben:Ganz schön kompliziert diese DLX :)
und dabei ist es der einfachste Prozessor mit Pipeline. Wie das dann erst bei Prozessoren mit Super Pipeline oder gar super skalarer Pipeline aussieht, kann man nur ahnen und vermuten welcher Aufwand dann in der Hardware nötig ist.
Benutzeravatar
franzman21
Beiträge: 86
Registriert: 19.10.2008 17:55
Name: Franz
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: DD

Re: info 1 klausur

Beitrag von franzman21 »

edit: hat sich erledigt, steuerwerke sind jetzt auch kein prob mehr
"Ich hab ein Alkoholproblem? - Sie sind Mormone, für Sie haben alle Alkoholprobleme"
Revo
Beiträge: 23
Registriert: 19.11.2008 17:57

Re: info 1 klausur

Beitrag von Revo »

hmm - habe jetzt doch mal den Simulator(windlx) ausprobiert.
Aber der will einfach keine ".s"-Dateien laden -.- (an der verzeichnisstruktur kanns nicht liegen - ist ohne leerzeichen / <60)
(Vista 32bit ..)
Benutzeravatar
virtualG
Beiträge: 95
Registriert: 14.12.2008 17:24
Matrikel: 2012

Re: info 1 klausur

Beitrag von virtualG »

vieleicht falsches encoding? was sind denn die fehlermeldungen?
„Jetzt bin ich der Tod geworden, Zerstörer der Welten.“
— Robert Oppenheimer, nach dem Test der 1. Atombome — aus der „Bhagavadgita“
Revo
Beiträge: 23
Registriert: 19.11.2008 17:57

Re: info 1 klausur

Beitrag von Revo »

sry - mein fehler - muss erst auswählen klicken und dann laden XD
DanielS
Beiträge: 26
Registriert: 01.02.2009 16:02

Re: info 1 klausur

Beitrag von DanielS »

Zwei kleine Fragen zum Dlx habe ich noch.

Ich habe mir immer mal ein paar Funktionen ausgedacht (zum Beispiel y=(10+x)*(x+4) ) und versucht das in nem Programm zusammenzufassen, so dass er mir das passende y zum steigenden x ausrechnet, danach zeichne ich dann das Taktzyklen-Diagramm als Übung.
Nun die zwei keinen Fragen, die sicher mit ja und nein zu beantworten sind:

1.
Beim Zeichnen von Taktzyklen-Diagrammen ist der Instruction Fetch so zeitig wie möglich zu machen? Ich mein wenn zum Beispiel erst noch Stalls kommen, könnte man den Fetch ja auch erst später machen.
2.
Wenn in einem Tackt wärend des Writebacks R2 gefüllt wird, könnte der nächste Befehl, welcher das neu R2 braucht, sein ID auch in diesem Tackt haben (vor dem ID waren natürlich dann zwei Stalls)?
addi r2,r2,0x1
sw 0,r2

Aber sonst ist das mit dem DLX ne tolle sache.
schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

DanielS hat geschrieben:1.
Beim Zeichnen von Taktzyklen-Diagrammen ist der Instruction Fetch so zeitig wie möglich zu machen? Ich mein wenn zum Beispiel erst noch Stalls kommen, könnte man den Fetch ja auch erst später machen.
Ja, er muss sofort gestartet werden, wenn der vorhergehende vom IF in den ID wechselt. Der vorhergehende Befehl stellt dann erst in der ID fest, dass Ihm ein Quell Operand fehlt und hält die Pipeline an. Dann ist der IF des folge Befehl aber schon gelaufen.
DanielS hat geschrieben:2.
Wenn in einem Tackt wärend des Writebacks R2 gefüllt wird, könnte der nächste Befehl, welcher das neu R2 braucht, sein ID auch in diesem Tackt haben (vor dem ID waren natürlich dann zwei Stalls)?
addi r2,r2,0x1
sw 0,r2
Nein, das geht nur wenn ein Phasensplitting eingebaut ist. Dabei geht man davon aus, das ein Schreiben eines Registers in der WB sehr schnell geht und weniger als die halbe Zeit einer Phase bracht. Da aber alle Phsen so lang sein müssen wie die langsamste (meist EX), ist das schreiben schon fertig, bevor in der ID, die im gleichen Takt arbeitet die Daten benötigt werden. In der ID muss auch erst die Nummer des Registers aus dem Befehlsregister gelesen werden, bevor man das Register lesen kann. Da auch das lesen eines Registers sehr schnell geht wird dieses eben erst in der 2. Hälfte der ID gestartet, also nach dem Schreiben im gleichen Takt.

Einen Befehl sw 0,r2 gibt es bei der DLX nicht!
DanielS
Beiträge: 26
Registriert: 01.02.2009 16:02

Re: info 1 klausur

Beitrag von DanielS »

Vielen Dank für die schnelle Antwort.

Windlx benutzt also das Splitting, da brauch ich mich natürlich nicht wundern wenn meine Diagramme anders aussehen.

Wegen sw 0,r2: Windlx interpretiert da sw 0x0(r0),r2
Ich werde mir das mit dem Zugriff auf den Speicher noch mal anschauen und zukünftig keine Windlx Nettigkeiten ausnutzen.
schoene
Beiträge: 251
Registriert: 25.02.2005 11:42

Re: info 1 klausur

Beitrag von schoene »

DanielS hat geschrieben:Wegen sw 0,r2: Windlx interpretiert da sw 0x0(r0),r2
Genau deshalb sollte man so etwas nicht machen. Der Befehl schreibt damit auf eine Speicherzelle auf Adresse 0x00000000 und damit auf eine Zelle, die Sie in Ihrem Programm nicht mit einer .word Anweisung reserviert haben. Unter einem Betriebssystem wäre das mit Sicherheit eine Zelle des Systems und würde zu einer fehlerhaften Funktion des Systems führen.

Deshalb nie auf undefinierte Speicherzellen zugreifen!
Cobe
Beiträge: 105
Registriert: 13.11.2007 15:55
Name: Rene
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2007
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden

Re: info 1 klausur

Beitrag von Cobe »

So ich habe auch nochma ne Frage zur DLX-Programmierung. Es geht um das Beispiel im 4.Kapitel auf Seite 75.
Die Fakultät an sich hab ich verstanden aber die Zeilen
LHI R7,adr_y>>16

ORI R7,R7,addr_y&0xFFFF
geben mir rätsel auf. Wäre gut wenn mir jmd diese erklären könnte und warum diese hier stehen.

Danke
trm
Beiträge: 151
Registriert: 19.10.2008 09:55
Studienrichtung: Elektrotechnik
Matrikel: 2012

Re: info 1 klausur

Beitrag von trm »

mal nen beispiel adr_y= 0x0666 F321

adr_y>>16 bedeutet du schiebst logich nach rechts und das dann 16 mal

da 4 bit eine Hexadezimalstelle entspricht schieben wir 4 mal nach rechts

0x0000 0666 so jetzt LHI und der este Teil der adresse ist geladen

Für den 2.Teil brauchen wir die Letzten Stellen, welche wir dur eine Und verknüpfung bekommen adr_y&0xFFFF:

0x0666 F321
& 0x0000 FFFF
= 0x0000 F321
FelixKoettig
Beiträge: 123
Registriert: 25.11.2008 17:01

Re: info 1 klausur

Beitrag von FelixKoettig »

Das folgende Programm soll den Inhalt von A und B und auch von C und D vertauschen wenn nicht gilt: <A> =< <B> und <C> =< <D> ...

.text ...

.data

A: .word 0x12345678
B: .word 0x23456789
C: .word 0x456789ab
D: .word 0x3456789a
wenn ab .data das so steht heißt das, dass die labels a,b,c,d im speicher direkt aufeinanderfolgen ( klar immer + 4 ) aber halt nichts mehr dazwischen ist ?

mfg felix
trm
Beiträge: 151
Registriert: 19.10.2008 09:55
Studienrichtung: Elektrotechnik
Matrikel: 2012

Re: info 1 klausur

Beitrag von trm »

Ja die folgen hintereinander. Dazwischen ist nix.
Mann sollte aber bei .data noch angeben ab welcher Adresse es im Speicher liegt

also .data 0x0200 0000 ,da man sonst nicht weiss ob es in Konflikt mit anderen Programmen kommt.
FelixKoettig
Beiträge: 123
Registriert: 25.11.2008 17:01

Re: info 1 klausur

Beitrag von FelixKoettig »

ich danke dir
Benutzeravatar
franzman21
Beiträge: 86
Registriert: 19.10.2008 17:55
Name: Franz
Geschlecht: männlich
Studienrichtung: Informatik
Matrikel: 2008
Angestrebter Abschluss: Dipl-Ing.
Wohnort: DD

Re: info 1 klausur

Beitrag von franzman21 »

edit: ok hat sich auch erledigt...eigentlich gehts ganz gut. was meint ihr welches rechenwerk wir erklären müssen? :)
Zuletzt geändert von franzman21 am 16.02.2009 13:57, insgesamt 1-mal geändert.
"Ich hab ein Alkoholproblem? - Sie sind Mormone, für Sie haben alle Alkoholprobleme"
Antworten

Zurück zu „1. Semester: Diskussionen“