You are not logged in.

Teklan

Erfahrener Schreiberling

  • "Teklan" started this thread

Posts: 267

Date of registration: Nov 13th 2004

Location: Hannover

1

Saturday, January 21st 2006, 2:45am

Minimax-simulator - unbekannter Fehler

Hey Leutz.

Ich hab ne Erweiterung und ne Steuertabelle gemacht. Das müsste ja reichen, um zumindest die erweiterte Maschine ansehen zu können.

Nun ist bei mir aber das Problem, dass immer die Meldung

"Unbekannter Fehler. Programm wird beendet"

auftritt, nachdem ich alle txt.Dateien "geladen" habe. Ich scheitere sozusagen schon an Dialogbox, wo man die txt-dateien einfügen soll.

NUn. Ich hab die Fehlerquelle insoweit geortet, dass ich weiß, dass die Steuertabelle nicht verantwortlich ist, da ich einfach keine neuen Befehle eingefügt habe, aber die Steuersignal angepasst habe (bzgl. der schon vorhandenen Befehle wie LOAD, ADD etc).

Der Fehler liegt also in der Erweiterung,,,

Problem. Ich weiß nicht , wo der Fehler liegt, obwohl ich das Ding schon zigmal durchforstet habe. Ich habe zur Fehlerlokalisierung andere Erweiterungen geschrieben (die funktioniert haben) und in jene diverse Fehler eingebaut (z.B: ein , statt eines ;, um zu gucken, was für Fehlermeldungen kommen. Jedesmal konnte die Fehlerzeile zurückgegeben werden...

Wo tritt aber nun bei ner anscheinend fehlerhaften Erweiterung ein "unekannter Fehler" auf?

I am absoulutely despaired.

This post has been edited 2 times, last edit by "Teklan" (Jan 21st 2006, 2:46am)


migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

2

Saturday, January 21st 2006, 10:53am

Quoted

Original von Teklan
Wo tritt aber nun bei ner anscheinend fehlerhaften Erweiterung ein "unekannter Fehler" auf?
Gute Frage. Das wird dir, ohne die Erweiterung (im Kontext der anderen Dateien) vor Augen zu haben, wohl niemand sagen können.
tar: Anlegen eines leeren Archivs wird feige verweigert.

DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

3

Saturday, January 21st 2006, 1:50pm

Das ist wirklich ein ganz großes Problem auch bei mir gewesen...der Simulator ist komplett umständlich zu bedienen, fehleranfällig und grottenlangsam, ich vermute, dass dieses Programm absichtlich so schlecht zu handeln sein sollte damit wir es nicht zu einfach haben. Wirklich! Wieso kann ich z.B., nachdem ich die Multiplexer, ALU, etc. mit Funktionen versehen habe später nicht einfach diese zur Erstellung von Mikroprogrammzeilen auswählen, anstatt immer wieder Nullen und Einsen in die Steuerleitung.TXT schreiben zu müssen? Warum kann ich Erweiterungsdateien nicht im Simulator editieren? Wieso werden Register und Multiplexer überlappend gezeichnet, so dass ich gar nichts erkennen kann? tzz...

Also, ich sehe für dich folgende Möglichkeiten:

1.) Du fängst nochmal neu an, und testest nach jeder winzigen Veränderung, ob es noch funktioniert, damit du den Fehler eingrenzen kannst.

2.) Poste deine Erweiterung, Steuertabelle und am Besten auch den Speicher, bestimmt finden wir den Fehler. (Oder maile es, wenn es dir lieber ist).

Grüße,
Helge

This post has been edited 1 times, last edit by "DrChaotica" (Jan 21st 2006, 1:52pm)


Teklan

Erfahrener Schreiberling

  • "Teklan" started this thread

Posts: 267

Date of registration: Nov 13th 2004

Location: Hannover

4

Saturday, January 21st 2006, 2:36pm

Boah bin ich stolz auf mich.

4 Stunden hats mich gekostet , zwei Fehlersituationen zu entdecken, die das Simulator-Programm nicht erkennt - also wo
"Unbekannte Fehler"-Meldungen kommen.

1.Fehler:Multiplexer und ihre Eingänge

Es müssen immer ALLE Eingänge eines Multiplexers mit Werten belegt sein - also Register, signext oder Konstanten.
Ist ein Eingang nicht belegt, so gibts nen unbekannten Fehler.

2.Fehler: Kommentare

Ist so ne happige Sache, die ich noch nicht zu 100% nachweisen kann.
Auf jeden Fall weiß ich, dass in der Erweiterungsdatei Kommentare, die in den einzelnen Blöcken stehen (besonders hinter den Ausdrücken),
zu "unbekannten Fehlern" führen können.

Solala - habe die Ehre - blöde 4 Stunden - damn - und was das geile ist -
die Erweiterungsdatei, die ich ganz ganz ganz am ANfang gemacht funktionierte auf ANhieb - ohne KOmmentare :evil:

Nachtrag:selbst meine ganz ganz ganz am ANfang erstellte Steuertabelle funktioniert ohne Fehl und Tadel - ich könnt heulen Leutz :D ;(

This post has been edited 2 times, last edit by "Teklan" (Jan 22nd 2006, 2:51pm)


Teklan

Erfahrener Schreiberling

  • "Teklan" started this thread

Posts: 267

Date of registration: Nov 13th 2004

Location: Hannover

5

Saturday, January 21st 2006, 11:02pm

Eine Frage zum Kreieren eines Maschinenbefehls.

Es ist ja so, dass ein Maschinenbefehl (z.B: SORT n) einen Algorithmus "anstösst", indem viele andere Maschinenbefehle auftauchen.

Jeder Maschinenbefehl besteht aus mehren Mikrobefehlen bzw RT-Operationen, die hintereinander ausgeführt werden.

Nun meine Frage:
Gibt es bestimmte Konventionen, die man beim HIntereinander-Ausführen von bestimmten RT-Operationen beachten muss oder
ist es absolut egal, welche RT-Operation hinter oder vor einer bestimmten Rt-Operationen steht? - Sofern man nicht einen "sinnvollen" Prozess als Ziel vor Augen hat.
................................................................................

Zum Thema Minimax-Simulator:

Irgendwie dünkt es mir, dass die ALU keine negativen Zahlen ausspucken kann.
Ich habe nämlich für 0 - 4 eine 4 bekommen und für 3 - 4 eine 1.
Wie kann das sein? In dez-Darstellung gabs kein Minuszeichen und in hex-Darstellung gabs kein "Zweierkomplement".

Was übersehe ich denn bitte schön? Muss ich irgendwas freischalten?

This post has been edited 3 times, last edit by "Teklan" (Jan 22nd 2006, 1:25am)


DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

6

Sunday, January 22nd 2006, 4:40pm

Quoted


Gibt es bestimmte Konventionen, die man beim HIntereinander-Ausführen von bestimmten RT-Operationen beachten muss oder
ist es absolut egal, welche RT-Operation hinter oder vor einer bestimmten Rt-Operationen steht? - Sofern man nicht einen "sinnvollen" Prozess als Ziel vor Augen hat.


An was genau denkst du? Prinzipiell darfst du in jeder Zeile mit der ALU zwei beliebige (adressierbare) Eingänge durch eine Funktion deiner Wahl miteinander verknüpfen und das Ergebnis in einem (oder mehreren) Register ablegen, eine feste Reihenfolge ist nicht zwingend notwendig, aber meistens sinnvoll. Gleichzeitig kannst du natürlich neben den ALU-Operationen mit dem Speicher arbeiten, mit günstigen Multiplexerbelegungen und den passenden Verbindungen lässt sich ziemlich viel parallelisieren.

Quoted


Zum Thema Minimax-Simulator:

Irgendwie dünkt es mir, dass die ALU keine negativen Zahlen ausspucken kann.
Ich habe nämlich für 0 - 4 eine 4 bekommen und für 3 - 4 eine 1.
Wie kann das sein? In dez-Darstellung gabs kein Minuszeichen und in hex-Darstellung gabs kein "Zweierkomplement".

Was übersehe ich denn bitte schön? Muss ich irgendwas freischalten?


Doch, die ALU kann natürlich negative Zahlen ausspucken, du hast nur scheinbar die falsche Funktion ausgewählt. Zum Subtrahieren gibt es nämlich zwei - die eine (SUB.A) berechnet A-B, die andere (SUB.B=SUB2=SUB) berechnet B-A (schau dir hierzu die Auflistung auf Seite 17 des Simulator-Handbuchs an). Die zweite (welche bei dir offenbar verwendet wird) ist standardmäßig aktiviert, da sie nichts kostet bzw. kein Penalty bringt.

Zum Zweierkomplement: Es ist in der Tat so, dass die Minimaxmaschine mit Zweierkomplementzahlen rechnet, die -1 wird z.B. als FFFFFFFF Hex dargestellt; Dies lässt sich wunderbar für Befehle ausnutzen, die das Vorzeichen eines Registerwerts überprüfen wollen...AND und eine Konstante könnten hier sehr hilfreich sein, aber mehr verrate ich nicht ;)

This post has been edited 2 times, last edit by "DrChaotica" (Jan 22nd 2006, 4:45pm)


DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

7

Monday, January 23rd 2006, 10:34pm

15000 Minimaxschritte für die Sortierung von 100 Elementen (Worst-Case). Wer bietet mehr?

migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

8

Monday, January 23rd 2006, 11:27pm

Quoted

Original von DrChaotica
15000 Minimaxschritte für die Sortierung von 100 Elementen (Worst-Case). Wer bietet mehr?
Das ist ja extrem quadratische Laufzeit! Verwendet ihr etwa sowas wie Bubblesort? 8o
Habt ihr schon versucht, Heapsort zu implementieren? (Der lässt sich eigentlich ganz angenehm In-Place implementieren.)
tar: Anlegen eines leeren Archivs wird feige verweigert.

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

9

Tuesday, January 24th 2006, 12:27am

Quoted

Original von migu

Quoted

Original von DrChaotica
15000 Minimaxschritte für die Sortierung von 100 Elementen (Worst-Case). Wer bietet mehr?
Das ist ja extrem quadratische Laufzeit!
Wie schließt Du aus dieser Aussage, daß es sich um quadratische Laufzeit handelt? :)
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

10

Tuesday, January 24th 2006, 10:15am

@migu: Hehe, das war schon Heapsort :D Wir haben uns für diesen Algorithmus entschieden, weil man ihn (wie du ja schon gesagt hast) iterativ sowie In-Place arbeiten lassen kann, und er außerdem keinen zusätzlichen Speicherplatz für die Sortierung benötigt. So kommen wir mit sechs ergänzten Registern aus.

Die 15000 Takte haben wir schon mit einer für die Minimax optimierten Variante erzielt (parallele Verwendung des Speichers und der ALU, etc.), vorher waren es für 10 Elemente 1191 Takte, für 100 Elemente 25706 und für 1000 E. 394576. Ab n=3 brauchte der Algorithmus weniger als 135*n*log(n) Schritte zum Sortieren (optimiert weniger als 80*n*log(n)), ich denke, das ist schon nicht schlecht.

Hat zufällig jemand einen quadratischen Algorithmus implementiert? Es würde mich ja mal interessieren, wie lange die am Simulator für 1000 Elemente so brauchen (nach unserer Schätzung wären es ca. 25h??) und ab welchem n Heapsort schneller sortiert....

This post has been edited 2 times, last edit by "DrChaotica" (Jan 24th 2006, 10:17am)


Sir_Tobias

Praktikant

  • "Sir_Tobias" is male

Posts: 27

Date of registration: Nov 6th 2004

11

Tuesday, January 24th 2006, 11:46am

Hallo,

wie kann man eigentlich bei der Steuertabelle die ALU Ctrl erweitern. Standard ist eine 2-bit-Codierung, aber wir brauchen 3-bit, was er irgendwie nicht akzeptiert, da angeblich zuviele Stellen in der Tabelle vorhanden sind.

Kann man irgendwie in der minimax.txt die ALU Ctrl erweitern? Irgendwie habe ich dazu jedenfalls nichts adäquates gefunden.

Für eure Hilfe danke ich im Voraus.

Tobias

DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

12

Tuesday, January 24th 2006, 11:54am

Quoted

Original von Sir_Tobias
Hallo,

wie kann man eigentlich bei der Steuertabelle die ALU Ctrl erweitern. Standard ist eine 2-bit-Codierung, aber wir brauchen 3-bit, was er irgendwie nicht akzeptiert, da angeblich zuviele Stellen in der Tabelle vorhanden sind.

Kann man irgendwie in der minimax.txt die ALU Ctrl erweitern? Irgendwie habe ich dazu jedenfalls nichts adäquates gefunden.

Für eure Hilfe danke ich im Voraus.

Tobias


Die "minimax.txt" muss unangetastet bleiben, sie ist die Basismaschine! Jegliche Änderunge daran nimmst du an der "Erweiterung.txt" vor.
Falls die ALU mehr Funktionen anbieten soll:

1. In der Erweiterung.txt alle Operationen auflisten, die angeboten werden sollen:

START ALU
#hier sind nur die funktionen anzugeben

%
Funktionen=ADD,SUB,TRANS.A,TRANS.B,AND,SR.B,SL.A
%%

ENDE ALU


2. In der Steuerleitung.txt muss die Anzahl der Bits zu der Anzahl der angebotenen Funktionen passen. Falls man diese nicht mehr durch zwei Bits adressieren kann, einfach in der Steuertabelle in jeder Zeile bei den Einträgen für AluControl ein weiteres Bit setzen. So wird z.B aus dem Eintrag

IFETCH,x,x,0,1,x,0,x,1,1,0,0,0,0,0,0,1,0,x,MAR <- PC

dieser hier:

IFETCH,x,x,0,1,x,0,x,0,1,1,0,0,0,0,0,0,1,0,x,MAR <- PC
-----------------------^


Ich hoffe, dass ich dir das einigermaßen verständlich darstellen konnte...

This post has been edited 5 times, last edit by "DrChaotica" (Jan 24th 2006, 11:59am)


migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

13

Tuesday, January 24th 2006, 12:59pm

Quoted

Original von Joachim

Quoted

Original von migu
Das ist ja extrem quadratische Laufzeit!
Wie schließt Du aus dieser Aussage, daß es sich um quadratische Laufzeit handelt? :)
Ja, das war zu voreilig - und falsch. Ah, wie peinlich!
Ich kenne ja den Verwaltungsaufwand der Implementation nicht. - Und auch keine sonstigen Daten.
tar: Anlegen eines leeren Archivs wird feige verweigert.

This post has been edited 1 times, last edit by "migu" (Jan 24th 2006, 1:00pm)


serotonin

Trainee

Posts: 96

Date of registration: Oct 24th 2003

Occupation: was wohl?

14

Monday, January 30th 2006, 5:41pm

Quoted

Original von DrChaotica
Hat zufällig jemand einen quadratischen Algorithmus implementiert? Es würde mich ja mal interessieren, wie lange die am Simulator für 1000 Elemente so brauchen (nach unserer Schätzung wären es ca. 25h??) und ab welchem n Heapsort schneller sortiert....


Das wird am Mitwoch kundgetan, ich kann noch nichts verraten, schließlich muss es sich ja lohnen bis zum Schluss zu bleiben :D
"Data items tend to be like children; they enjoy hanging around in groups together."

Rizzo

Trainee

  • "Rizzo" is male

Posts: 54

Date of registration: Oct 9th 2003

Location: Barsinghausen

15

Monday, January 30th 2006, 11:46pm

Quoted

Das wird am Mitwoch kundgetan, ich kann noch nichts verraten, schließlich muss es sich ja lohnen bis zum Schluss zu bleiben

Braucht ihr noch so lange bis er die 1000 Elemente fertig sortiert hat? ;)

Sorry das war fieß aber ich konnte es mir einfach nicht verkneifen. Bin schon gespannt auf Mittwoch.

Rizzo

Trainee

  • "Rizzo" is male

Posts: 54

Date of registration: Oct 9th 2003

Location: Barsinghausen

16

Tuesday, January 31st 2006, 12:44pm

Hat sich grade erledigt...

This post has been edited 2 times, last edit by "Rizzo" (Jan 31st 2006, 12:46pm)


DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

17

Wednesday, February 1st 2006, 11:10pm

War ja ganz interessant heute...der Bottom-Up-Heapsort war schon cool, aber euer Quicksort einfach nur beeindruckend. Wie lange habt ihr dafür gebraucht 8o ??

Jedenfalls hätte ich mich noch etwas mehr für die Implementierung in der Minimax interessiert, und für ein genaues Durchsehen der Flussdiagramme ging's mir dann doch etwas zu schnell.

Deshalb meine Bitte an diese beiden Gruppen (2 und 5 waren es, nicht?): könntet ihr mir eventuell eure Steuertabelle mit Erweiterung und am Besten auch die Powerpointdateien der Präsentation mailen, falls euch dies nicht zuviel Umstände bereiten sollte? Ist halt nur persönliches Interesse daran, mal zu sehen, wo die anderen so welche Tricks verwendet haben um ihr Programm möglichst schnell zu bekommen :)

Würde mich über Post von euch freuen, Adresse steht im Profil...

Grüße,
Helge