mikrocontroller.net

Forum: Projekte & Code Space Age 2 der 32Bit MIPS Rechner in TTL


Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
21 lesenswert
nicht lesenswert
Mahlzeit!
In einem 2 semestrigen Kurs (mit Drittmitteln) an der TU-Berlin entstand 
da ein kleines "Projektchen".
Die Planungs- und Bauzeit (also vom Anfang des Schaltplanentwurf bis zum 
fertigen Gerät+Software) vergingen dann 10 Monate.

Im Endeffekt sind das nun 496TTL Bausteine auf 4 oder 6 Lagen Platinen 
die im Betrieb 17A bei 5V fressen.
Dabei verstehen diese dann den MIPS1 Befehlssatz (keine 
Coprozessorbefehle).
Daher auch ganz normal mit dem MIPS GCC programmierbar das Teil.

Das erste Programm ist ein wissenschaftlicher Taschenrechner (Vorbild 
Casio fx80).
Da bisher am IO gespart wurde, es ging ersteinmal um einen 
funktionsfähigen Rechenkern.
IO Karten kommen aber noch in nachfolgenden Semestern, aber mit anderen 
Studententeams.

Alles weitere hier:
http://www.fritzler-avr.de/spaceage2/

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin W. schrieb:
> Mahlzeit!
> In einem 2 semestrigen Kurs (mit Drittmitteln) an der TU-Berlin entstand
> da ein kleines "Projektchen".
> Die Planungs- und Bauzeit (also vom Anfang des Schaltplanentwurf bis zum
> fertigen Gerät+Software) vergingen dann 10 Monate.
>
> Im Endeffekt sind das nun 496TTL Bausteine auf 4 oder 6 Lagen Platinen
> die im Betrieb 17A bei 5V fressen.
> Dabei verstehen diese dann den MIPS1 Befehlssatz (keine
> Coprozessorbefehle).
> Daher auch ganz normal mit dem MIPS GCC programmierbar das Teil.
>
> Das erste Programm ist ein wissenschaftlicher Taschenrechner (Vorbild
> Casio fx80).
> Da bisher am IO gespart wurde, es ging ersteinmal um einen
> funktionsfähigen Rechenkern.
> IO Karten kommen aber noch in nachfolgenden Semestern, aber mit anderen
> Studententeams.
>
> Alles weitere hier:
> http://www.fritzler-avr.de/spaceage2/

TTL mit IC's?
Weicheier!
Richtige Männer nehmen einzelne Transistoren!

;)
(Troll)

Trotzdem eine beachtliche Leistung, und sehr sauber aufgebaut, was man 
so sieht. Hut ab!

Sind das auf der zweiten Karte Relais? Wofür sind die?

: Bearbeitet durch User
Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Mike B. schrieb:
> Sind das auf der zweiten Karte Relais? Wofür sind die?

Das dürften batteriegepufferte RAMs mit eingebauter Batterie sein, à la 
MK48T08.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike B. schrieb:
> Richtige Männer nehmen einzelne Transistoren!

Klick bei ihm auf der Seite mal auf den Link zu Spaceage:
http://www.fritzler-avr.de/spaceage2/!Bilder/sp1.jpg
http://www.lndw.tu-berlin.de/lndw13/programm/haus-...

: Bearbeitet durch User
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Jo das Ding heißt Spaceage 2, ist somit der Nachfolger des Spaceage aus 
Einzeltransistoren.
Sind die TTL ICs jetzt erlaubt? =P

Ne Webseite zum Ersten müsst ich mal machen, aber an dem v1 hab ich 
nicht mitgearbeitet, nur am Spaceage 2.

Das sind, wie schon erwähnt, SRAM mit Batterie.
Der Mikrocode sollte ja einenn Powercycle überleben, aber trotzdem noch 
gefundenne Bugs shcnell überspielt werden können.
Das werden noch ROMs später.

Autor: Ale (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Un wie schnell läuft es ? Die NVSRAMs sind 70ns, geht es bis 12 MHz ? 
oder läuft noch langsamer ? Welche Kritische pfade gibt es ?
Ich finde es super, einfach Klasse ! Und so schön dokumentiert :).

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
5 lesenswert
nicht lesenswert
Erinnert mich schwer an den MOPPEL in den 80ern. Sowas baut man doch 
heute komplett in VHDL :-)  Allerdings hat man andererseits mit so einem 
Projekt eine Menge an Wissen beisammen, dass einen überhaupt erst in die 
Lage versetzt, sowas sinnvoll in VHDL zu machen ...

Ich frage mich, ob man das nicht einfach generell einführen sollte, 
Neulinge wieder reale Hardware machen zu lassen, statt sie über Prozesse 
und virtuelle Welten loslegen zu lassen. Ich denke, da würden sich viele 
Themen im FPGA-Bereich des Forums erledigen ...

Gratulation jedenfalls.

Eine Frage noch:

Auf der Webseite lese ich einen Hinweis auf Xilinx-Synthese. Was hat ihr 
da drin?

: Bearbeitet durch User
Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Projekt finde ich sehr beeindruckend, auch wenn mir der Nachbau 
etwas zu aufwendig wäre die 496TTL ICs auf zu löten.
Wenn ich mich recht erinnere gab es hier im Forum mal einen Link auf 
eine 4Bit CPU die auf eine Platine gepasst hat, den kann ich aber leider 
nicht mehr finden.

Auf jeden Fall bekommt man beim Anschauen eurer CPU Lust auch eine zu 
haben.

gibt es eigentlich einen PC-Simulator?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris_ schrieb:
> gibt es eigentlich einen PC-Simulator?

Warum willst du auf dem Teil einen PC simulieren?

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum willst du auf dem Teil einen PC simulieren?

Du weist ja, was ich meine..
Da es eine überschaubare Anzahl TTL ICs ist dachte ich mir, es müsste 
relativ einfach sein, eine CPU-Simulation zu programmieren.

Was mir zum Projekt eingefallen ist: Wenn man schon eine 32bit CPU baut, 
sollte man vielleicht auch eine einfache VGA-Karte dazu machen, damit 
man die Leistung der CPU "auf den Schirm bringen kann".

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Da kommt ja noch einiges mehr an Laufzeiten zusammen, im Endeffekt sind 
6,7MHz möglich.
Momentan ist ein 4MHz Quarz eingebaut.
Die Rechenleistung liegt also bei 0,8 MIPS (wegen Multicycle).
Mit dem richtigen Takt haben wir also einen MIPS mit 1MIPS.

Der langsamste Pfad ist das Lesen aus dem RAM, da hängen ja vor allem 2 
RAMs hintereinander, die Lookuptable des Microcodes und der eigentliche 
RAM am Adressbus. Dazu das Steuerwerk, der Adressdekoder, der 
Datenmultiplexer und und und.
Die Timinganalyse liegt jetzt komischerweise nicht im SVN, muss ich mal 
gucken wo das hin is.

Der gesamte Space Age 2 liegt als VHDL Code vor, schließlich wurde 
zuerst alles simuliert um vorzeitig Bugs zu finden. Allerdings mit 
weniger Speicher.
Die Bugs sind in der Simulation einfach leichter zu finden und in 
Hardware würden diese richtig Geld kosten und Zeit, man finde mal einen 
sporadischen Bug in einem 32Bit Prozessor mit nem Logikanalyzer.

Noch aufwendiger als die TTL ICs zu löten war das Layouten der Platinen, 
war aber nicht meine Aufgabe.

Einen Simulator gibt es nicht. bzw nicht von uns, denn MIPS ist ja eine 
Standardarchitektur, also wirds dazu nen QEMU geben.

Der Space Age 2 ist ja noch nicht fertig, nur der CPU Kern.
Natürlich gibts noch mehr IO, dazu aber erst weiteres wenn es fertig 
ist.

: Bearbeitet durch User
Autor: Joe G. (feinmechaniker) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris_ schrieb:
> Wenn ich mich recht erinnere gab es hier im Forum mal einen Link auf
> eine 4Bit CPU die auf eine Platine gepasst hat, den kann ich aber leider
> nicht mehr finden.

Nibbler 4 Bit CPU ?
http://www.bigmessowires.com/nibbler/

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Nibbler ist super weil einfach ist. Es hat alles was man braucht: 
Registers, memory i/o, ports und Microcode !.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin W. schrieb:
> Der gesamte Space Age 2 liegt als VHDL Code vor, schließlich wurde
> zuerst alles simuliert um vorzeitig Bugs zu finden.

In VHDL simuliert und dann aufgelötet? Das ist echtes Retro :-)

Autor: Der Gilb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Martin W. schrieb:
> 496TTL Bausteine auf 4 oder 6 Lagen Platinen
> die im Betrieb 17A bei 5V fressen.
> ...
> Das erste Programm ist ein wissenschaftlicher Taschenrechner (Vorbild
> Casio fx80).


Also 85W... schicke Heizung =)
Wieviel braucht der fx80 so zum Vergleich?
Dürfte wohl im mW oder gar µW Bereich liegen ;-) ;-P

Autor: chris_ (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Das hier ist mal ein richtig schöner Computer zum Nachbauen:
http://hackaday.com/2015/10/29/400-transistors-and...

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Die Nibbler 4 Bit CPU ist so ziemlich das Gegenteil vom Space Age 2. 
Dort sollte mit so wenig TTL Bausteinen wie möglich ausgekommen werden. 
Der Spaceage 2 ist von vornherein ein 32Bit Monster, kostet eben mehr 
TTL ICs.
Auch wenn die ALU ICs gleich sind, der 74181.

Ja das VHDL war wichtig, es wurden noch ~120Bugs gefunden.
Also insgesamt in Hardware und Mikrocode, aber auch Mikrocode Bugs waren 
in der VHDL Simulation leichter zu sehen. Wenn ein ERgebnis falsch ist 
so lässt sich das zurückverfolgen bis der Fehler direkt zu sehen ist 
(mach das mal mit nem Logikanalyzer...)
Aber somit auch hut ab vor den TTL CPU Pionieren, die hatten sowas ja 
nicht.

Was der fx80 zieht weis ich nicht, jedenfalls rechnet er 69! um einiges 
langsamer aus als der Space Age 2.

Autor: chris_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die Nibbler 4 Bit CPU ist so ziemlich das Gegenteil vom Space Age 2.
Klar ist der Space Age 2 eine andere Kategorie. Allerdings ist der 
Bauteilaufwand relative groß, so dass es nur wenige davon geben dürfte.
Den Nibbler kann man auf eine Europakarte bauen:
http://www.bigmessowires.com/category/nibbler/
Interessant sind die Assemblercodebeispiele. Wenn man sich das Programm 
Frogger anschaut, fragt man sich, wie so was ohne call und return 
programmiert wird. Das Ergebnis ist ziemlich interessant und ich denke, 
die Studenten könnten da viel über Assemblerbefehlarchitektur lernen.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
chris_ schrieb:
> Wenn man sich das Programm
> Frogger anschaut, fragt man sich, wie so was ohne call und return
> programmiert wird.

Wir haben in den 80ern alle Telespiele auf dem VC20 und dem VC64 in 
linearem Assembler geschrieben. War aufwändig, aber des Effektivste was 
machbar ist. Man muss eben die schnellen "tasks" jedesmal anfahren und 
die weniger wichtigen seltener und das auf die Ausführungszeiten 
anpassen -> task-time-balancing.

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Es geht weiter!

Der MIPS Kern kann ja immer Punktrechnung im Gegensatz zum ARM.
Daher gibts auch keine Compilerflags damit der GCC eigene Routinen 
einbindet.
Deswegen wird bisher in eine Exception gesprungen wenn der MIPS 
Punktrechnen soll, das wird dann in Assembler gemacht.
Blöderweise sind dadurch Punktrechnungen im zB Interrupt nicht möglich, 
da keine nested Exceptions vorgesehen sind.
Das braucht zudem mehr als 2000 CPU Takte.

Also muss das nun in Hardware her, in 32Bit.
In der ersten Ausbaustufe wurde eine solche Schaltung schon 
berücksichtigt, es muss nur eine Karte getauscht und etwas Fädeldraht 
zum Steuerwerk verlegt werden.
Es wird kein parallel Multiplizierer, das wäre zu groß und teuer.
Es wird so gebaut wie beim echten MIPS1 Kern, addieren/subtrahieren und 
schieben, also ein serieller Multiplizierer/Dividierer.
Ist trotzdem um mehr als Faktor 25 schneller als die Softwareemulation 
und umschifft das Verbot von Punktrechnungen in Interrupts/Exceptions.


Kurzfassung:
unsigned mul -> addieren und rechts schieben
signed mul -> addieren/subtrahieren und rechts schieben
unsigned div -> links schieben und subtrahieren
signed div -> absolute Hölle
Vorbetrachtungen, dann links schieben und addieren/subtrahieren, daanach 
Nachbetrachtungen und nen Sonderfall der 2x32Bit auf 0 Vergleichen 
muss...

Daraus ergibt sich dann ubersicht.png im Anhang.
Der Schaltplan auf Regsterbene ist dann eeetwas größer.

Autor: Gerhard O. (gerhard_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht von Interesse:
http://www.computerhistory.org/semiconductor/timel...

mfg.
Gerhard

Autor: Matthias W. (matthias_w40)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Ist dann quasi eine R3000 CPU ?
Dann müsste auch theoretisch ein Linux kern drauf laufen oder ein 
kleines BSD :O

Krasses Projekt jedenfalls, beindruckend :)

Autor: Wahrheit tut weh (Gast)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Matthias W. schrieb:

> Dann müsste auch theoretisch ein Linux kern drauf laufen oder ein
> kleines BSD :O

Nö, es fehlt ja das komplette IO-Subsystem, wahrscheinlich auch eine MMU 
das sollen ja zukünftige Studentengeneration herbeizaubern.

> Krasses Projekt jedenfalls, beindruckend :)

Nichts für ungut aber hinsichtlich der Hardware verschwendende Jugend. 
Den Ansatz eine CPU from the scratch mit Studenten zu entwickeln finde 
ich auch gut, aber mit einer FPGA Realisierung per schematic entry hat 
man den selben lerneffekt ohne sich mit Löt-/Steckfehlern 
herumzuschlagen. Und lernt nebenher wie man die Lehren der 
Computergeschochte auch moderne Technologien überträgt.

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
@Gerhard O.:
Schöne Chronik!
Erinnert mich daran, dass ich im Internet mal einen TTL IC gefunden 
hatte der 32x32Bit multipliziert. War irgendwas aus der 74er Serie, 
hatte sogar schon das Datenblatt davon gesehen. Allerdings wieder aus 
dem Sichtfeld verloren, da nicht mehr beschaffbar.
Inzwischen weis ich nichtmal mehr die Nummer.

Zu einem R3000 fehlt da noch einiges, wie eben MMU und FPU.
Ohne MMU kein Unix, bei den 4MHz ist das eh zu viel Software.
MMU wird aber nicht kommen, so eine MMU kann größer sein als der CPU 
Kern selbst.

Das Teil in TTL bauen hat aber auch seinen Reiz!
MIPS(single/multi Cycle, pipelined) und ARM9 wurden schon im Bachelor 
Grundstudium in VHDL entworfen.

Autor: Matthias W. (matthias_w40)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja uclinux läuft ja auch ohne MMU und FPU :)

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Dass es keine FPU braucht ist ja klar.
uclinux, welches keine MMU braucht, klingt ja schonmal interessant.
Hat auch einen Port auf Microblaze, was ja eigentlich nen MIPS ist.

Ansonsten gehts weiter mit dem Hauptthema.
Ersteinmal wurde das in 4Bit getestet, da kann man noch alle 
Zahlenkombinationen reinwerfen und somit alle Fälle abdecken.
Auch Grenzfälle wo noch Fehler gefunden wurden, sind jetzt im neuen 
Schaltplan ausgemerzt.
Wer will kann ja die Unterschiede suchen ;)

Danach nochmal in 8Bit getestet, weil dann der Addierer mit einem Carry 
Lookahead IC arbeitet und 2 Schieberegister verkettet sind.
Ein Aufblasen auf 16/32/64 oder sonstwas Bits ist somit nurnoch ein 
Erweitern der Schieberegisterkette und der ALU aus 74181/74182.

Der nächste Schritt war dann das Erweitern auf 32Bit sowie der Einbau in 
den MIPS TTL CPU Kern, zumindest in VHDL.
Um zu testen ob die Variablenübergaben funktionieren.
In dem Sinne, dass der MIPS kern und die PUnktrechnungseinheit jeweils 
ein eigenes Steuerwerk haben.
So hält eine laufende Punktrechnung den MIPS Kern an bis die Berechnung 
fertig ist.

In dem VHLD Simulatorbild ist dann zu sehen:
Bei instr[] ist 0022001a der div Befehl.
Gut zu sehen wie der Punktrechner die CPU anhält.
Dann rasselt er eine Berechnung durch und lässt die CPU wieder laufen.
In hi und lo steht dann das Ergebnis.
In diesem Falle 7/(-4) = -1 Rest 3

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Die Videokarte ist fertig und gibt fröhlich Text über FBAS aus.

Wenn die Doku dazu fertig ist post ich das noch rein.

Ist ansonsten auf der VCFB 2016 in Berlin zu sehen.

: Bearbeitet durch User
Autor: Bowd (Gast)
Datum:

Bewertung
-6 lesenswert
nicht lesenswert
Mw E. schrieb:
> Die Videokarte ist fertig und gibt fröhlich Text über FBAS aus.
>
> Wenn die Doku dazu fertig ist post ich das noch rein.
>
> Ist ansonsten auf der VCFB 2016 in Berlin zu sehen.

Wahnsinn, dieser Fortschritt.

Autor: Joachim B. (jar)
Datum:

Bewertung
-5 lesenswert
nicht lesenswert
Mw E. schrieb:
> 496TTL Bausteine auf 4 oder 6 Lagen Platinen
> die im Betrieb 17A bei 5V fressen

warum TTL?

schon 1984 hatte ich im apple2+ fast alle TTL (LS TTL) soweit möglich 
durch HC(HCT) ersetzt, die brauchen wesentlich weniger Strom und sind 
auch bessere Treiber, das FAN out ist deutlich höher.

Autor: Bowd (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Joachim B. schrieb:
> Mw E. schrieb:
>> 496TTL Bausteine auf 4 oder 6 Lagen Platinen
>> die im Betrieb 17A bei 5V fressen
>
> warum TTL?
>
> schon 1984 hatte ich im apple2+ fast alle TTL (LS TTL) soweit möglich
> durch HC(HCT) ersetzt, die brauchen wesentlich weniger Strom und sind
> auch bessere Treiber, das FAN out ist deutlich höher.

Das ist die TU-Berlin, da muss man Abstriche machen. Man denke dein 
Argument konsequent zu Ende, wo wäre man denn da?

Autor: Marc H. (marchorby)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bowd schrieb:
> Man denke dein
> Argument konsequent zu Ende, wo wäre man denn da?

bei nem Smartphone...

Autor: Joachim B. (jar)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Bowd schrieb:
> Das ist die TU-Berlin, da muss man Abstriche machen.

OK, trotzdem kommt es mir vor wie ein (Design)Fehler.

Bowd schrieb:
> Man denke dein
> Argument konsequent zu Ende, wo wäre man denn da?

beim aktiven stromsparen?

Mit weniger thermischen Problemen?

: Bearbeitet durch User
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Na dann zeig mir mal nen lieferbaren 74HC181, 74HC182, 74HC825 sowie 
74HC870.

Zudem ist HC langsamer als F/S/AS, erst AC ist dann wieder shcnell 
genug.
In AC bekommt man die "fancy" Schaltkreise aber auch nicht mehr.

Der 74S181 rechnet zusammen mit S182er Carry Lookahead nen 32Bit Integer 
in 28ns durch. bei einem 74HC181 ist das Propagatian Delay vom Operator 
Eingang zum Carry Lookahead Ausgang schön höher und das für einen IC!

Und was will man bei dem Projekt bitte Strom sparen?

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
3 lesenswert
nicht lesenswert
bei der TU Berlin dürfte da der so oft gefordete Aspekt der Ausbildung 
durch Verstehen der Grundlagen im Vordergrund stehen und nicht das 
lego-mäßige Zusammenstöpseln fertiger Komponenten

Autor: Joachim B. (jar)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:
> Na dann zeig mir mal nen lieferbaren 74HC181, 74HC182, 74HC825 sowie
> 74HC870.
>
> Zudem ist HC langsamer als F/S/AS

OK OK, das ist eine verständliche Antwort, ich bekomme ja auch nicht 
mehr alle benötigen F AC AHCT Steine aber ich bekomme auch nicht mehr 
alle (LS)TTL Steine und mit SN75162 in DIL siehts auch mies aus.

Autor: Lukey S. (lukey3332)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man mal in die andere Richtung denkt, hätte man ECL nehmen können, 
dass wäre schneller, aber würde noch viel mehr Strom schlucken. Dafür 
ist die Verfügbarkeit erstaunlich gut.

Linux darauf zum laufen zu bringen wäre schon cool, mit 8Mb Ram wäre 
sogar X11 möglich (zumindest damals auf nem 486 war es das).

: Bearbeitet durch User
Autor: Joachim B. (jar)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Lukas S. schrieb:
> hätte man ECL nehmen können,
> dass wäre schneller, aber würde noch viel mehr Strom schlucken. Dafür
> ist die Verfügbarkeit erstaunlich gut.

ja aber leider auch nicht für alles, hier liegen noch jede Menge kaputte 
Geräte wo man die benötigten ECL nicht mehr zu angemessenden Preisen 
bekommt.

Das einzige was ich noch in ECL habe sind Röhren :) aber wie deren 
Zustand ist müsste geprüft werden.

: Bearbeitet durch User
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Ooooch, LS/S/AS/F kann man noch stangenweise als NOS kaufen, zB ebay.
Die gibts aber nur jenseits des großen Teichs, weil damals noch dort 
drüben hergestellt. War ja zu der Zeit Hightech.

ECL klingt ist schon interessant, ist aber nur marginal schneller als F.
Wobei es da auch mal eine ECL Subgruppe gab, die 1GHz schaffte.
Das Problem ist aber, dass es nurnoch Einzelgatter zu kaufen gibt (sogar 
von TI), aber höhere Logikfunktionen nicht mehr.
Nun könnt man sich ne ALU auch selber bauen, die MIPS ALU kann ja nicht 
sonderbar viel.
Dann ist der Geschwindigkeitsvorteil aber komplett weg.

Eine RAM Erweiterung ist irgendwann geplant, dann geht da noch mehr.
Vllt sogar eine billig MMU, die so 16 Speicherbereiche mappen kann.

Autor: Hans-Georg L. (h-g-l)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Wenn es nicht unbedingt der 74181 sein muss ..
AMD brachte 1975 die AM2900 BIT-Slice Prozessoren auf den Markt.
Es gab später dann komplette 16Bit Rechenwerke in 64poligen Dip Gehäusen 
wie den CY7C9101. Oder gleich eine PDP-11 ;-))

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Der CY7C9101 sieht interessant aus, der hat quasi die gesamte Hardware 
für das serielle Multiplizieren/Dividieren eingebaut.
Wenn das geplante TTL Grab für diese Operationen die 6,7MHz nicht 
schafft, dann ist das eine Überlegung wert!

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Das Netzteil mit 5V 40A wäre dann fertig.
Sowie der Monitor mit Ansteuerung und HV Teil.

Bilder hier:
http://www.fritzler-avr.de/spaceage2/gallery/main....

Doku hier:
http://www.fritzler-avr.de/spaceage2/down_doku.htm

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Es ist dann doch etwas nervig nach der Arbeit/Studientag zum Ort zu 
fahren wo der MIPS TTL steht.
Also habe ich mal einen MIPS Emulator geschrieben, der auch das 
veränderte Exception/Interruptsystem hat.

Bisher sind der MIPS Kern fertig und der 16C550 UART.
Der UART öffnet einen virtuellen tty (pty) auf den dann ein xterm 
geöffnet wird.
Durch einen Austausch des Filedescriptors könnte dann auch auf ein 
ttyUSB zugegriffen werden um ein relles Terminal wie das VT100 
anzuschließen.

Im Bild läuft Eliza (eines der Programme zur VCFB 2016) über dem UART.
Das Programm musste nicht angepasst werden.

: Bearbeitet durch User
Autor: OSILayer8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:
> Na dann zeig mir mal nen lieferbaren 74HC181, 74HC182, 74HC825 sowie
> 74HC870.

Wie schön, dass ich davon noch eine Menge rumliegen habe

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Na dann schnapp dir etwas Lochraster und bau nen MIPS Prozessor draus ;)

Asonsten noch ein paar Bilder des Emulators, jetzt auch mit GDB 
Anbindung!
Zudem ist jetzt auch die Videokarte emuliert, daher noch ein Bild von 
Game Of Life und einmal Soviet Snake.

: Bearbeitet durch User
Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:

> Zudem ist jetzt auch die Videokarte emuliert, daher noch ein Bild von
> Game Of Life und einmal Soviet Snake.

ein Linpack/LaPack wäre interessanter

Aber schon extrem beeindruckend deine Arbeit!

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Linpack/LaPack wird villeicht getestet wenn die Multiplikationskarte 
fertig ist.
Irgendwie muss man ja den Speedup in harten Zahlen sehen.
Die Emulation der Punktrechnung in der Exception hat noch nichtmal alle 
Register gesichert bevor die Hardwarekarte fertig ist mit rechnen.

Autor: Ma W. (elektrowagi78) Benutzerseite
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Uiui, erinnert mich an meine Anfangszeit in der Computertechnik -)

Autor: Holm T. (holm)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
Mw E. schrieb:
> Na dann zeig mir mal nen lieferbaren 74HC181, 74HC182, 74HC825 sowie
> 74HC870.
>
> Zudem ist HC langsamer als F/S/AS, erst AC ist dann wieder shcnell
> genug.
> In AC bekommt man die "fancy" Schaltkreise aber auch nicht mehr.
>
> Der 74S181 rechnet zusammen mit S182er Carry Lookahead nen 32Bit Integer
> in 28ns durch. bei einem 74HC181 ist das Propagatian Delay vom Operator
> Eingang zum Carry Lookahead Ausgang schön höher und das für einen IC!
>
> Und was will man bei dem Projekt bitte Strom sparen?

Warum zum Teufel reiten immer Alle auf dem 74181 herum, die Industrie 
hat damals AM2901 und Konsorten verwendet. Der AM2901C ist intern IMHO 
ECL mit TTL IO, der AM29C01 die CMOS Ausführung.

Gruß,

Holm

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Dann guck mal über deinen Tellerrand hinaus.
Den 74F181 bekommt man günstig stangenweise als NOS über ebay.
Den AM2901 als Einzelstücke zu horrenden Preisen.

Weiterhin ist der 74F181 schnell genug, die ALU bremst unseren MIPS TTL 
nicht aus, sondern die langsamen SRAM Bausteine im Steuerwerk.
Andere Logikpfade sind auch langsamer als die ALU.

Autor: Holm T. (holm)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Mw E. schrieb:
> Dann guck mal über deinen Tellerrand hinaus.
> Den 74F181 bekommt man günstig stangenweise als NOS über ebay.
> Den AM2901 als Einzelstücke zu horrenden Preisen.

Weswegen ich in den USA eine Stange NOS AM2901DC für $20 kaufen konnte
und die Russen werfen einem die K1804xxxx auch nach, die Frage ist halt 
ob man sich auf die Angebote für die Vitrinenfreaks mit weiß/goldenem 
Gehäuse einschießt oder wirklich nur die Funktionalität haben möchte.

>
> Weiterhin ist der 74F181 schnell genug, die ALU bremst unseren MIPS TTL
> nicht aus, sondern die langsamen SRAM Bausteine im Steuerwerk.
> Andere Logikpfade sind auch langsamer als die ALU.

Die AM290x sparen einen Haufen Gemüse im Datapath.. die 74181 ist nur 
die ALU, die 290x sind RALU ..enthalten also auch die schnellen 
Register, die AM2910 ist ein dazu passendes Steuerwerk..
Die Firma IDT hat mit den 49C402 höher integrierte Bausteine auf den 
Markt gebracht, 16 Bit auf einem Chip, erweiterte Steuerwerke gibts auch 
49C410..nur Beispiele.

[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

Gruß,

Holm

: Bearbeitet durch Moderator
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

MIPS hat 32 Register und der AM2901 stellt nur 16 bereit (A [0...3]) -> 
zu wenig.
Das Steuerwerk könne wir nicht nutzen, weil es nicht auf MIPS ummünzbar 
ist.
Der AM2901 hat keinen barrelshifter, also kann pro Takt nur um 1 Byte 
schieben, MIPS kann aber pro Takt um bis zu 32 Bitpositionen schieben.

Der AM2901 hat zwar viel OnChip, aber das schränkt auch wieder seine 
Nutzbarkeit ein.

[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

: Bearbeitet durch Moderator
Autor: A. K. (prx)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Joachim B. schrieb:
> warum TTL?

Warum überhaupt? Wenn du einen schnellen und stromsparenden Rechner 
willst, wirst du ganz bestimmt nicht so ein Projekt starten. Egal ob in 
TTL oder CMOS.

Weshalb in Retro-Projekten die Entscheidung für eine bestimmte Technik 
nicht unbedingt mit Effizienz zu tun haben muss.

: Bearbeitet durch User
Autor: Holm T. (holm)
Datum:

Bewertung
-5 lesenswert
nicht lesenswert
[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

>
> MIPS hat 32 Register und der AM2901 stellt nur 16 bereit (A [0...3]) ->
> zu wenig.


AM29705, AM29707.


> Das Steuerwerk könne wir nicht nutzen, weil es nicht auf MIPS ummünzbar
> ist.


Das erklärst Du mir bitte genauer.


> Der AM2901 hat keinen barrelshifter, also kann pro Takt nur um 1 Byte
> schieben, MIPS kann aber pro Takt um bis zu 32 Bitpositionen schieben.
>


Die 74181 hat einen Barrel Shifter?
Da wäre noch die AM2903, AM29203...und die von denen ich bereits vorher 
schrieb.


> Der AM2901 hat zwar viel OnChip, aber das schränkt auch wieder seine
> Nutzbarkeit ein.
>


Achwas.
Dann nimm den 2903, 29c101, 29C116 oder 49Cxxx.
Du hast oben die Cy7C9101 interessant gefunden, das ist im Wesentlichen 
die AM29C101..die natürlich völlig unbrauchbar ist. Mann kommt das 
flach..

> Sonst noch was?
>

Du hast nicht drüber nachgedacht, legst aber Wert darauf mich 
"abzubügeln".
Ich weiß nicht was das soll..aber wenns schee macht..
Du kannst mit 74181 nichts machen was mit der 2901 nicht geht.

>>Weswegen ich in den USA eine Stange NOS AM2901DC für $20 kaufen konnte
> Nicht jeder fährt mal eben so in die USA bzw. das Schnäppchen ist dann
> greifbar wenn man es braucht.
>


Welch durchschlagendes Argument! Ich war aber noch nie da un so lange 
sich die Verhältnisse mit den Einreisekontrollen da nicht ändern werde 
ich da auch nicht auftauchen. Gastfreundschaft ist was Anderes.

..Demotronic aus dem zitierten Text gleich verschwunden, kein 
Gegenargument?

[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

Gruß,

Holm

: Bearbeitet durch Moderator
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
5 lesenswert
nicht lesenswert
[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

Holm T. schrieb:
>> MIPS hat 32 Register und der AM2901 stellt nur 16 bereit (A [0...3]) ->
>> zu wenig.
>
> AM29705, AM29707.
Bist du lustig...
Erst verweist du auf den Vorteil des AM2901, dass dieser interne 
Register hat und ich sage das sind zu wenige.
Jetzt schlägste mir 2 Dualport SRAMs vor ohne ALU drann.
Wo ist da jetzt der Unterschied zur bisherigen Lösung mit 74181 und 
74870?
Kann die internen Register ja imemrnoch nicht nutzen.
Dazu wirds ja nun langsam richtig exotisch.

Holm T. schrieb:
>> Das Steuerwerk könne wir nicht nutzen, weil es nicht auf MIPS ummünzbar
>> ist.
>
> Das erklärst Du mir bitte genauer.
Guck dir den MIPS Befehlsatz und seine Coderung an, danach was der 
Sequenzer kann. Sag MIR doch lieber wieso gehen sollte.

Holm T. schrieb:
>> Der AM2901 hat keinen barrelshifter, also kann pro Takt nur um 1 Byte
>> schieben, MIPS kann aber pro Takt um bis zu 32 Bitpositionen schieben.
>>
>
> Die 74181 hat einen Barrel Shifter?
> Da wäre noch die AM2903, AM29203...und die von denen ich bereits vorher
> schrieb.
Nein hat er nicht, aber das ist wieder auf die von DIR betonte 
integrierung des AM2901 ICs bezogen, also les mal genauer.
74181 und Barrelshifter liegen beim Projekt einfach parallel im 
Datenpfad.
Beim Am2901 müsst man den jetzt irgendwie ranfrickeln, abgesehen von der 
zu geringen Registeranzahl.
Weiterhin scheinste ja nichtmal die DB deiner vorgeschlagenen ICs zu 
lesen, diese ICs haben auch keine Barrelshifter und könne somit auch nur 
eine Bitposition pro Takt schieben.
Der AM29203 versprvht aber schonmal, dass man bei dem die Registerbank 
vergrößern kann (dann wird der aber langsamer beim rechnen). Man kanns 
aber auch schöner haben und es von anfang an trennen, das ist 
nachvollziehbarer.

Holm T. schrieb:
> Achwas.
> Dann nimm den 2903, 29c101, 29C116 oder 49Cxxx.
> Du hast oben die Cy7C9101 interessant gefunden, das ist im Wesentlichen
> die AM29C101..die natürlich völlig unbrauchbar ist. Mann kommt das
> flach..
Bitte genauer lesen warum ich weiter oben den Cy7C9101 interessant fand!
Für den Multiplizierer, weil da die closed Loop alles hat was ich 
brauche.

[Mod: Sinnloses Geplänkel gelöscht, da nicht zur Diskussion beitragend]

: Bearbeitet durch Moderator
Autor: Holm T. (holm)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Mw E. schrieb:
> Holm T. schrieb:
>> Ich muß angesichts Deiner Antworten meine bisherige Meinung über Dich
>> noch mal überdenken lieber Henry.
> Ich bin nicht Henry!

Ok, dann nicht. Dann steigt meine Meinung über Henry wieder.
>
> Sinnlos bashen ist allerdings weiter drauf rumzureiten obwohls dem Thema
> nix bringt, hatte weiter oben schon gesagt wieso der AM nicht genutzt
> wurde und dann tippste wild weiter.

"Der AM" ist eine ganze Serie. Welche Begründung zu genau welchem davon 
hast Du geschrieben?
>
> Holm T. schrieb:
>>> MIPS hat 32 Register und der AM2901 stellt nur 16 bereit (A [0...3]) ->
>>> zu wenig.
>>
>> AM29705, AM29707.
> Bist du lustig...
> Erst verweist du auf den Vorteil des AM2901, dass dieser interne
> Register hat und ich sage das sind zu wenige.
> Jetzt schlägste mir 2 Dualport SRAMs vor ohne ALU drann.

Die passen exakt an die RALU Chips, dazu sind sie nämlich da, als 
Erweiterung des internen Registersatzes.
Bei IDT und Cypress gibts die Serie mit mehr internen Registern und es 
gibt auch keinen direkten Zusammenhang zwischen den CPU Registern die 
man auf Assembler Ebene sieht und den in der Mikroprogramm Architektur.
Das weißt Du und ich weiß das auch.

> Wo ist da jetzt der Unterschied zur bisherigen Lösung mit 74181 und
> 74870?
> Kann die internen Register ja imemrnoch nicht nutzen.
> Dazu wirds ja nun langsam richtig exotisch.

Die 2901 Serie besteht nicht nur aus 74181 und Registern.

>
> Holm T. schrieb:
>>> Das Steuerwerk könne wir nicht nutzen, weil es nicht auf MIPS ummünzbar
>>> ist.
>>
>> Das erklärst Du mir bitte genauer.
> Guck dir den MIPS Befehlsatz und seine Coderung an, danach was der
> Sequenzer kann. Sag MIR doch lieber wieso gehen sollte.

Sagt Dir der Begriff Mapping Rom irgend Etwas oder ist Dir da auch ne 
Masche runter gefallen?

>
> Holm T. schrieb:
>>> Der AM2901 hat keinen barrelshifter, also kann pro Takt nur um 1 Byte
>>> schieben, MIPS kann aber pro Takt um bis zu 32 Bitpositionen schieben.
>>>
>>
>> Die 74181 hat einen Barrel Shifter?
>> Da wäre noch die AM2903, AM29203...und die von denen ich bereits vorher
>> schrieb.
> Nein hat er nicht, aber das ist wieder auf die von DIR betonte
> integrierung des AM2901 ICs bezogen, also les mal genauer.

Ich kann hier schreiben was ich will, Du wirst jedes Mal ein anderes 
Argument an den Haaren herbei ziehen.

> 74181 und Barrelshifter liegen beim Projekt einfach parallel im
> Datenpfad.
> Beim Am2901 müsst man den jetzt irgendwie ranfrickeln, abgesehen von der
> zu geringen Registeranzahl.

Dann nimm doch nicht den 2901! Der 2901 war als Erster seiner Serie 
angeführt, es gibt da wesentlich mehr, auch 16 Bit Slices mit Shiftern,
mit mehr internen Registern usw., das hatte ich Alles schon angemerkt.

> Weiterhin scheinste ja nichtmal die DB deiner vorgeschlagenen ICs zu
> lesen, diese ICs haben auch keine Barrelshifter und könne somit auch nur
> eine Bitposition pro Takt schieben.

Es gibt nicht nur Barrelshifter

> Der AM29203 versprvht aber schonmal, dass man bei dem die Registerbank
> vergrößern kann (dann wird der aber langsamer beim rechnen). Man kanns
> aber auch schöner haben und es von anfang an trennen, das ist
> nachvollziehbarer.

Nochmal, IDT, Cypress und Andere, schneller, mehr Register intern, 
Shifter und Multiplizierer/Addierer....

>
> Holm T. schrieb:
>> Achwas.
>> Dann nimm den 2903, 29c101, 29C116 oder 49Cxxx.
>> Du hast oben die Cy7C9101 interessant gefunden, das ist im Wesentlichen
>> die AM29C101..die natürlich völlig unbrauchbar ist. Mann kommt das
>> flach..
> Bitte genauer lesen warum ich weiter oben den Cy7C9101 interessant fand!
> Für den Multiplizierer, weil da die closed Loop alles hat was ich
> brauche.

Ach!
Du bist ja auch der Einzige von uns Beiden der nun konsequent auf dem 
2901, dem einfachsten aus seiner Familie herumreitet. Vergleiche mal den 
Cy7C9101 mit dem IDT49C401 oder auch dem AM29C101, evtl. fällt Dir ja 
irgendwas auf...

>
> Holm T. schrieb:
>> Du hast nicht drüber nachgedacht, legst aber Wert darauf mich
>> "abzubügeln".
>> Ich weiß nicht was das soll..aber wenns schee macht..
>> Du kannst mit 74181 nichts machen was mit der 2901 nicht geht.
> Jetz hör hier mal wirklich mit seinem sinnlosen blabla auf!

..Moooment.
Warst das nicht gerade eben Du noch der hier mit sinnlosem Blabla kam 
und mir Bashing unterstellte?

> Abbügeln geht eher in die andere Richtung, du versuchst hier unser
> Projekt als undurchdacht abzuhaken und schlägst sinnfrei irgendwelche
> ICs vor  OHNE vorher mal zu gucken ob die überhaupt passend wären. Was
> diese nicht sind. Beschäftige dirch erstmal genauer mit dem Aufbau des
> Projekts anstatt wie ein Rottweiler auf das Stichwort 74181
> anzubeißen...

Das gebe ich Dir gerne zurück!
Was genau geht mit der 74181 was mit der 2901 nicht geht oder 
aufwändiger währe?

Lies Dir Donamaie E White durch und/oder Mick & Brick, danach reden wir 
weiter was geht und was nicht.

Ihr habt eine Bit Slice CPU mit einem niedrigen Integrationsgrad 
aufgebaut, auch der Barrelshifter hängt da "irgendie rangebastelt" dran, 
aber bei den von mir genannten Alternativen muß wohl ein fertiger 
Mikroprozessor in einem Chip sein...nimm doch eine Mips!

Gruß,

Holm

: Bearbeitet durch User
Autor: Alex P. (ra_p)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
> Nein, eigentlich nicht, denn Du hast kein einziges "warum" stichhaltig
> begründen können sondern meine Fragen und Gegenargumente jedes Mal unter
> den Tisch fallen lassen, dafür kam aber auch jedes Mal eine neue Idee
> warum es nicht geht.

Er hat gesagt warum die Am290x nicht gehen: Registerfile ist zu klein, 
dann muss du z.B. extra Registern einbauen. Die ALU (Am290x) muss auch 
diese Registern lesen und schreiben können: mehr muxes, mehr FFs, 
Glue-logic, usw. am Ende des Tages hast du wahrscheinlich nicht viel 
gewonnen :(.
Ich hab gedacht daß klar war warum (Habe auch selbe den MIPS Prozessor 
als Verilog Module entworfen wollen und habe es mir genau angeschaut).
Es gibt ein Paperbei AMD wo sie ein 8080 mit diesen Bit-Sclice ALUs 
entwerfen, eine Platine Voll !... Sehr interessant.

Autor: Holm T. (holm)
Datum:

Bewertung
-5 lesenswert
nicht lesenswert
R.A. P. schrieb:
>> Nein, eigentlich nicht, denn Du hast kein einziges "warum" stichhaltig
>> begründen können sondern meine Fragen und Gegenargumente jedes Mal unter
>> den Tisch fallen lassen, dafür kam aber auch jedes Mal eine neue Idee
>> warum es nicht geht.
>
> Er hat gesagt warum die Am290x nicht gehen: Registerfile ist zu klein,
> dann muss du z.B. extra Registern einbauen. Die ALU (Am290x) muss auch
> diese Registern lesen und schreiben können: mehr muxes, mehr FFs,
> Glue-logic, usw. am Ende des Tages hast du wahrscheinlich nicht viel
> gewonnen :(.

Guten Morgen.

> Ich hab gedacht daß klar war warum (Habe auch selbe den MIPS Prozessor
> als Verilog Module entworfen wollen und habe es mir genau angeschaut).
> Es gibt ein Paperbei AMD wo sie ein 8080 mit diesen Bit-Sclice ALUs
> entwerfen, eine Platine Voll !... Sehr interessant.

[Mod: persönliche Angriffe gelöscht]

Das von Dir angeführte Problem wurde weiter oben diskutiert und ich habe 
auch auf AM29705/707 hingewiesen die nahtlos als Erweiterung des 
Registerfiles an ICs > AM2901 passen.
Das sind keine Universal Dualport RAM sondern Registererweiterungen für 
die AM29xx Serie.
Keine Muxes, keine Glue Logic, keine FFs sondern nur die zusätzlichen 
Adreßbits um die Register adressieren zu können.

[Mod: persönliche Angriffe gelöscht]

Gruß,

Holm

: Bearbeitet durch Moderator
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Holm T. schrieb:
> Das sind keine Universal Dualport RAM sondern Registererweiterungen für
> die AM29xx Serie.
> Keine Muxes, keine Glue Logic, keine FFs sondern nur die zusätzlichen
> Adreßbits um die Register adressieren zu können.

[Mod: persönliche Angriffe gelöscht]

Guck mal in das Datenblatt deiner geliebten ICs.

: Bearbeitet durch Moderator
Autor: Holm T. (holm)
Datum:

Bewertung
-6 lesenswert
nicht lesenswert
Ja Du hast Recht ich bin ein Lügner (oder?), gemessen hier dran:

http://www.fritzler-avr.de/spaceage2/!Files/Schalt...
 und dem hier

http://www.fritzler-avr.de/spaceage2/!Files/Schalt...

ist das mit dem AM29705/707 natürlich ein exorbitant hoher Aufwand.
Ihr habt ja quasi nicht mal ein einziges Gatter verwendet, geschweige 
denn einen Multiplexer oder Decoder :-)..

Das Datenblatt zeigt eine Variante der Beschaltung, man muß das nicht so 
machen. Überlege mal was nach meiner Aussage "nur zuätzliche Bits zur 
Adressierung" noch von der Schaltung übrig bleibt.

Du willst von mir Antworten? Wie wäre es denn wenn Du mal eine meiner 
Fragen weiter oben beantwortest und diese nicht einfach unter den 
Teppich kehrst? Ein Beispiel wäre mal die aussehende Erklärung warum ein 
CY7C9101
"interessant aussieht" ein AM29C101 aber nicht geeignet ist wo doch das 
Cypress Datenblatt (hallo Datenblatt!!!) erzählt: "The CY7C9101 is a 
pin-compatible, functional equivalent for the Am29C101 with improved 
Performance"

[Mod: persönliche Angriffe gelöscht]

: Bearbeitet durch Moderator
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
[Mod: persönliche Angriffe gelöscht]

Holm T. schrieb:
> Das Datenblatt zeigt eine Variante der Beschaltung, man muß das nicht so
> machen. Überlege mal was nach meiner Aussage "nur zuätzliche Bits zur
> Adressierung" noch von der Schaltung übrig bleibt.
Das Datenblatt zeigt das Minimalbeispiel, da ist jetzt nichts was 
wegfallen könnte außer das PROM. Irgendwie muss man die "zusätzlichen 
Bits" ja anschließen und und decodieren. Diese Logik ist eben nicht in 
den ICs vorhanden sondern erfolgt extern.
Außerdem erzähl mir mal wie man mit dieser Kombination das Register 0 in 
Hardware auf 0x00000000 legen kann. Bei MIPS Ist Register 0 immer 0 und 
nicht beschreibbar. -> schon kommt da noch mehr Logik rein.

Da du ja nichtmal Schaltpläne lesen kannst hier eine Erklärung zu 
diesem:
http://www.fritzler-avr.de/spaceage2/!Files/Schalt...
Die Eigentlichen Register sind nur die rechte Hälfte des Plans (Spalte 3 
und 2).
Das ist in etwa das was auch in der pdf zum Minimalbeispiel der AMxxx im 
Anhang von mir zu sehen ist, zwar ohne ALU, aber schon in 32 Registern 
zu 32Bit. Dafür ist das echt wenig.
Die linke Seite (Spalte 5, 4, 3) sind die Ansteuerlogik um aus einer 
Instruction die Adressbits für die Register zu generieren. Diese Logik 
würde 1zu1 auch benötigt beim AMxxx, im Minimalbeispiel kommen ja so 
schön die Adressbereich A, B und C an. Irgendwie müssen die ja auchnoch 
erzeugt werden.
Zusätzlich dazu ist da auchnoch eine Menge Logik für den Debugger 
vorhanden. Der Debugger muss ja lesend/schreibend auf die Register 
zugreifen können.
Fast vergessen: Adressbits merken für den Branch Delay Slot des MIPS.

[Mod: persönliche Angriffe gelöscht]

Holm T. schrieb:
> Ein Beispiel wäre mal die aussehende Erklärung warum ein
> CY7C9101
> "interessant aussieht" ein AM29C101 aber nicht geeignet ist wo doch das
> Cypress Datenblatt (hallo Datenblatt!!!) erzählt: "The CY7C9101 is a
> pin-compatible, functional equivalent for the Am29C101 with improved
> Performance"
Jetzt vermischte hier schonwieder Dinge, arbeite mal an deiner 
Argumentationsfähigkeit.
Dieser IC sieht interessant aus für den Hardware Multiplizierer. Dort 
bildet die integrierte Schleife mit ALU und Shifter genau das ab was man 
für einen seriellen Multiplizierer (und auch dividierer) braucht. Für 
die eigentliche TTL MIPS CPU wieder uninteressant.
Beim MUL werden aber auch erstmal 181er verwendet, die haben wir jetzt 
stangenweise und die BOM muss man ja nicht hochtreiben bei nicht mehr 
hergestellten ICs.

[Mod: persönliche Angriffe gelöscht]

: Bearbeitet durch Moderator
Autor: Yalu X. (yalu) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb im Beitrag #4794106:
> ab Beitrag "Re: Space Age 2 der 32Bit MIPS Rechner in TTL" darf gerne
> alles ausradiert werden ;)

Ich fand die technische Diskussion (wenn man die emotionalen Teile
ausblendet) gar nicht so uninteressant.

Autor: bko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hui da gings jetzt aber hoch her, macht doch beide erst einmal ein 
Reise:
https://de.wikipedia.org/wiki/Gullivers_Reisen#Tei...

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Habe dann mal den MIPS Emulator auf die Webseite gepackt falls es mal 
wer ausprobieren will.
Habe auch das Binary der momentanen Software beigepackt.
http://www.fritzler-avr.de/spaceage2/down_software.htm

Autor: Holm T. (holm)
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
WSI WS59032 ..wird angeblich immer noch produziert.
Ein CMOS Highspeed Chip aus 8fach AM2901 4 Bit Slice mit 32x32 Bit 
internem Register RAM und weniger als 3% der Stromaufnahme des 
equivalenten Bipolar Systems.

Gruß,

Holm

: Bearbeitet durch User
Autor: Alex (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hast du irgendwo stock davon gesehen ?

Autor: Holm T. (holm)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, ich habe nicht danach gesucht, aber Leute die den Loswerden wollen 
(IA59032) gibts durchaus:
http://marketron.co.uk/obsolete.php
http://proactivecomponents.com/products/ia59032-cpga101c-00

Gruß,
Holm

: Bearbeitet durch User
Autor: Bitraspler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin ganz fasziniert beim lesen des Threads.

Was mich aber überrascht hat, ist das die Slices von AMD z.B. der Am2901 
hier zum Thema gemacht werden.

Ich wusste garnicht, dass es die noch gibt. Ich meine vor ein paar 
Jahren mal danach gesucht zu haben und nur Informationen aber keine 
konkreten Angebote gefunden zu haben.

Mag mir da mal jemand ein paar Hinweise geben wo man sowas (also nicht 
unbedingt von AMD aber eben "Slices" heute noch zu kaufen kriegt)? Was 
würde mich sehr interessieren.

Mir ist schon klar, das man sowas heute ökonomischer mit FPGAs macht. 
Aber ich würde das dennoch gerne wissen.

Autor: Holm T. (holm)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Bitraspler schrieb:
> Ich bin ganz fasziniert beim lesen des Threads.
>
> Was mich aber überrascht hat, ist das die Slices von AMD z.B. der Am2901
> hier zum Thema gemacht werden.
>
> Ich wusste garnicht, dass es die noch gibt. Ich meine vor ein paar
> Jahren mal danach gesucht zu haben und nur Informationen aber keine
> konkreten Angebote gefunden zu haben.
>
> Mag mir da mal jemand ein paar Hinweise geben wo man sowas (also nicht
> unbedingt von AMD aber eben "Slices" heute noch zu kaufen kriegt)? Was
> würde mich sehr interessieren.
>
> Mir ist schon klar, das man sowas heute ökonomischer mit FPGAs macht.
> Aber ich würde das dennoch gerne wissen.

evita.lt (K1804VS1, VS2 [cyrillisch К1804ВС1 ]) oder demotronic.de 
(IDT,AMD, Cypress).

Gruß,

Holm

: Bearbeitet durch User
Autor: Holm T. (holm)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Negative Bewertung dafür das ich Jemandem auf Nachfrage Bezugsquellen 
heraussuche?

OMG...das muß ja richtig weh tun..

BTW: der К1804ВС1 (AM2901) kostet bei evita.lt 30 Eurocent. Versand nach 
D war als ich letztens bestellt hatte was über 8 Euro..und .lt ist 
Europäische Union.


Gruß,

Holm

: Bearbeitet durch User
Autor: Alex (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
>Search - K1804VS1
>
>Search:  K1804VS1


> Search in product descriptions
>Search
>Products meeting the search criteria

>There is no product that matches the search criteria.

Dead end :(

Weder K1804 noch AM2901 :(

AM2901 gibt es noch bei Aliexpress. Evtl. kann man es in einem CPLD rein 
packen.

Autor: Holm T. (holm)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Alex schrieb:
>>Search - K1804VS1
>>
>>Search:  K1804VS1
>
>
>> Search in product descriptions
>>Search
>>Products meeting the search criteria
>
>>There is no product that matches the search criteria.
>
> Dead end :(
>
> Weder K1804 noch AM2901 :(
>
> AM2901 gibt es noch bei Aliexpress. Evtl. kann man es in einem CPLD rein
> packen.

Sieh mal zu wie Du Dein totes Ende wieder auf die Beine bekommst:

http://www.evita.lt/index.php?route=product/search...
http://www.evita.lt/en/m-1804vs1-kr-mikroschema-kr...


K vs. KR ist eine Gehäusevariante..
1804 ist die Serie, die hatten mal mehr davon.

Irgendwie scheine ich hie verpflichtet zu sein für die Leute die nicht 
selber suchen können den Kram zu finden. Sowas mache ich auch 
kommerziell,
dann bekomme ich das aber üblicherweise bezahlt.

1804VS1 im Plastik Dil Gehäuse kann ich Dir aber auch ein paar 
vermachen.
Die im weißen Keramikgehäuse mit goldenen Pins behalte ich aber selbst.

Gruß,

Holm

: Bearbeitet durch User
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Mike B. schrieb:
> Mw E. schrieb:
>
>> Zudem ist jetzt auch die Videokarte emuliert, daher noch ein Bild von
>> Game Of Life und einmal Soviet Snake.
>
> ein Linpack/LaPack wäre interessanter

Linpack war dann doch einfacher als gedacht.
Musste nur die Funktion zum Zeit einlesen abändern.
Der Code ist von hier:
http://www.netlib.org/benchmark/linpackc
Habs aber ersteinmal nur auf dem Emulator getestet, die Hardware ist 
seit der Messe noch gut verpackt. Das FPGA Board hat leider zu wenig 
BlockRAM für die 32k große Matritze für die Berechnungen.
Da es keine FPU gibt, wird natürlich die lib des gcc genutzt und da 
kommen selbst im Emulator ernüchternde Zahlen raus: 22kFLOPS.
Is ja mal ganix ;)

Integer Benchmarks wären auchnoch interessant, wenn Zeit is.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holm und fritzler: bitte bei der Sache bleiben. Streiten könnt ihr per 
PN.

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
3 lesenswert
nicht lesenswert
Mw E. schrieb:

> Da es keine FPU gibt, wird natürlich die lib des gcc genutzt und da
> kommen selbst im Emulator ernüchternde Zahlen raus: 22kFLOPS.
> Is ja mal ganix ;)

Sei stolz auf Dich!
Einen Linpack auf einer Eigenentwicklung zum Laufen zu bringen ist aller 
Ehren wert!

22kFlops, besser als nix. Bei welcher Taktrate lief der Emulator?

Ich hatte ja damals einen beowulf-Cluster mit einem Server und drei 
Stück PentiumM 1.6GHz Nodes und hatte auch nur ~250MFlops im Verbund 
gesamt, obwohl schon ein einzelner Prozzi was bei 400MFlops bringen 
müsste, genaue Werte wiess ich nich mehr.
http://www.roylongbottom.org.uk/linpack%20results.htm (double precision 
32bit)

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mike B. schrieb:
> Sei stolz auf Dich!
> Einen Linpack auf einer Eigenentwicklung zum Laufen zu bringen ist aller
> Ehren wert!
Das war doch nur kopierter C Code von dem Link.


Mike B. schrieb:
> 22kFlops, besser als nix. Bei welcher Taktrate lief der Emulator?
Der Emulator läuft in einer Linux VM auf einem Win7 Host auf einem 
i5-2500k.
Zudem ist der Emulator nicht optimiert, einfach nur an einem Wochenende 
runtergeschriebener Code (für den MIPS Kern).

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mal eine Zusatzfrage: wieso heisst das Teil eigentlich "Space Age"?
Hab ich das überlesen?

Autor: Matthias W. (matthias_w40)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rate mal.
Schätze mal als Anlehnung an die Bordrechner der ersten unbemannten 
Weltraum Missionen.

: Bearbeitet durch User
Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Huch, da hab ich sträflicherweise vergessen zu Antworten...

Matthias W. hats aber schon aufgelöst.
Die Namensgebung kommt von Henry und ist eben an diese Bordrechner 
engelehnt.
Wobei es da eher um das Zeitalter selbst ging, also Space Missinen und 
die Rechner entwickelten sich um die Berechnungen durchführen zu können.

Den Space Age 1 gibts übrigens auch, der hat 4Bit und besteht aus 
Einzeltransistoren. Eine Webseite wirds dazu auch mal geben, aber 
erstmal keine Zeit dafür.
https://www.lndw.tu-berlin.de/uploads/tx_mulflndwp...
https://www.eecs.tu-berlin.de/fileadmin/f4/fkIVbil...
Youtube-Video "Henry Westphal: "Der SPACE AGE, ein Tischrechner in diskreter Transistortechnik""

edit:
Der SP1 ist im Heinz Nixdorf Museum in Paderborn ausgestellt (wenn ich 
mich richtig erinner)

: Bearbeitet durch User
Autor: Martin Schuerer (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Hey Martin, ich bin echt begeistert, wie weit das Projekt verfolgt 
wurde!

Im Nachhinein betrachtet war das Space Age 2 Projekt eines der besten 
Projekte, bei dem ich von Anfang bis Ende mitgewirkt habe!

Hinsichtlich Qualität der Arbeit, Dokumentation und Fehlermanagement 
wurde sehr akribisch gearbeitet. Das war einerseits nervig, andererseits 
der richtige Weg! Die dicke technische Akte (Doku-Ordner) sprach schon 
damals Bände, wenn sie während der VCFB verwendet wurde, um Fragen 
anschaulich zu beantworten! So muss das sein!

Ich erinnere hierbei nur an Henry's Dokumentationskette bei 
Layoutfehlern! Dank der VHDL Simulation konnten die meisten Fehler noch 
während der Layoutphase behoben werden - ein sehr gutes Beispiel dafür, 
wie wichtig (Software-)Tests sind - eine Tätigkeit, die gerne 
vernachlässigt wird. Ich weiß noch, wie stolz Henry darauf war, dass die 
erste realisierte Hardware-Revision der ALU Platine fehlerfrei lief..

Dieses Projekt konnte das im Buch "Die Seele einer neuen Maschine" 
beschriebene Gefühl ansatzweise, aber intensiv wiedergeben!
Dies wäre ohne Henry's nervenzerrenden Einsatz nicht möglich gewesen. ;]
@Henry: danke!

Ich möchte mich außerdem bei allen Beitragenden zu diesem Thread für die 
gute Diskussion bedanken.


Viele Grüße,
Martin Schürer


Ps: melde dich mal bei mir, falls du Interesse an einer Stelle als 
HW-Entwickler im Medizinbereich hast - wir suchen zur Zeit ;)

Autor: Mike B. (Firma: Buchhaltung+Controlling) (mike_b97) Benutzerseite
Datum:

Bewertung
-3 lesenswert
nicht lesenswert
Martin Schuerer schrieb:
> Dieses Projekt konnte das im Buch "Die Seele einer neuen Maschine"
> beschriebene Gefühl ansatzweise, aber intensiv wiedergeben!

> Ps: melde dich mal bei mir, falls du Interesse an einer Stelle als
> HW-Entwickler im Medizinbereich hast - wir suchen zur Zeit ;)

Ist die Aufwärmung einer thread-Leiche jetzt als versteckte Werbung für 
ein Buch oder als Hilferuf beim Stichwort "Fachkräftemangel" gedacht 
gewesen?

In der Tat schade das dieser thread vorübergehend (?) eingeschlafen ist.
Echt spannende Arbeit dies.

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
plöpp Es leeeebt!
Also die Karte für Hardware Multiplikation und Division.
Die CPU läuft damit merklich schneller, aber der Linpack will auf der 
echten Hardware nicht laufen und schmiert mit nem Stackoverflow ab.
Das tut er auch mit der vorherigen Emulation der Punktrechnarten.
Woran das liegt sehe ich wohl erst wenn der Debugger des CPU Kerns dann 
auch mal mit dem GDB spricht und nicht nur der Emulator.

Allerdings hatte sich die Karte anfänglich bei manchen Multiplikationen 
verrechnet.
Die Fehler lagen alle im oberen Bereich (siehe muldiv_fehler_sreg).
Im Endeffekt hatte sich da der Massepin beim Sockeln verbogen.
(muldiv_fehler_sreg1)
TTL hat eben keine Clampdioden und läuft somit nicht ohne GND :>


Beim Taschenrechnerprogramm ergab 5x5=25,00001
Der rechnet intern in double, aber 0,00001 ist dafür zu viel Fehler.
Vor allem wenn mit der MulDiv Emulation genau 25 rauskam (durch ein 
snprintf geschönt natürlich).

Nun ruft die softfloat Lib mehrmals die Punktrechenarten auf.
Da sieht man den Fehler nicht so einfach.
Also musste der Debugger dahin erweitert werden, dass er automatisiert 
sämtliche Inputs und Outputs der MulDiv Karte abschnorchelt.

Das sah dann so aus:
-------------------------MulDiv-------------------------------
MULTU:
2279119104 *  390561520
10000111|11011000|10011001|00000000 * 
00010111|01000111|01111110|11110000

HI_ist:   207250990; LO_ist:  1700622336
HI_soll:  207250989; LO_soll: 1700622336

HI_ist:  00001100|01011010|01100110|00101110; LO_ist: 
01100101|01011101|01110000|00000000
HI_diff: 00000000|00000000|00000000|00000011; LO_diff: 
00000000|00000000|00000000|00000000
HI_soll: 00001100|01011010|01100110|00101101; LO_soll: 
01100101|01011101|01110000|00000000

Die Fehler sind alle in den LSB des HI Schieberegisters, d.h. am Anfang 
der Berechnung wird was falsches reingeschoben.
Zudem: die Fehler waren alle bei unsigned mul, also ausgerechnet der 
einfachsten Rechenvorschrift!
Am Ende wars nen kleiner Fehler im Mikrocode der MulDiv Schaltung, der 
Carryout der 74181 war 1 Takt zu früh freigeschaltet.
Somit wurde eine 1 in das Rechenschieberegister geschrieben, die da 
nicht hingehört.

Autor: Mw E. (Firma: fritzler-avr.de) (fritzler)
Datum:
Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Da hab ich doch glatt den Schaltplan vergessen.
Ist im Anhang.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.