kay wrote:
> Das scheint mir so das übliche Einmaleins zu sein, denke ich.
Ja natürlich, aber in einem Floatingpoint-Format.
> IMHO hat der 80387 auch 80bit Breite. Und ich erinnere dunkel das SQRT
> einer der generell häufiger nützlichen Funktionen war. Frag nicht wofür,
> hab ich vergessen.
Wenn's nicht irgendwelche Bildbearbeitung ist, dann vielleicht Krypto?
> > AFAIR rechnet Apples SANE
>
> ScannerAccessNowEasy? :)
<
https://en.wikipedia.org/wiki/Standard_Apple_Numerics_Environment>
> Für den 65x02 gab es aber keine Hardware-FPU - soweit ich weiß. Das wäre
> mal lustig geworden... in GEOS auf dem C-128 z.b.
Es gab sogar Auswahl (für den Applebus):
<
http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Inter
face%20Cards/CPU/AE%20FastMath/>
<
http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Inter
face%20Cards/CPU/CCS%207811/>
So ein 68881 hat selbstverständlich auch ein 8bit-Bus-Interface:
<
http://mirrors.apple2.org.za/Apple%20II%20Documentation%20Project/Inter
face%20Cards/CPU/Innovative%20Floating%20Point%20Engine/>
> > komplett in der FPU erledigt werden konnte. Und jetzt komm mir bitte
> > nicht mit "billigen" Transputern, siehe unten ;-)
>
> Ich wollte nicht behaupten die seien Billig.
Deswegen die provokanten Gänsefüßchen :-)
> War OS-9 in Modula-2 geschrieben?
Nein, kein bißchen davon. Das ursprüngliche OS-9 aus den 1970er Jahren
für den 6809 war komplett in 8bit-Asembler geschrieben, das
darauffolgende OS-9 für 68k war teils in Assembler, teils in C
geschrieben, das spätere OS-9000, dem nach ein paar Jahren die letzten
drei Nullen gestrichen wurden, war nicht nur für 68k, sondern auch für
Intel, Arm, PPC und noch ein paar mehr, das war daher überwiegend in C
geschrieben.
Modula-2 wurde in meiner damaligen Firma genommen, weil an diesem
Software-Projekt rund 40 Entwickler beschäftigt waren und somit eine
"gewisse Systematik" vorherrschen sollte, die mit der damals üblichen
C-Programmierweise in Widerspruch stand.
> Ich erinnere das ich damals
> einen Modula-2 Compiler (IMHO) hatte, mich damit aber nie intensiver
> befasste.
Mein erster Kontakt mit Modula-2 war auf dem Apple //e als Compiler im
UCSD-Betriebssystem. Das wurde an der Uni Karlsruhe Mitte der 1980er
Jahre verbreitet. Später saßen die Studenten mit Modula-2 am Mac II (ab
WS 1987/88).
> "Irgendwie" hatte der C-64 übrigens doch einen Coprozessor. In die
> Floppystation konnte man ja maschinenprogramme laden und dort ausführen.
> Um z.b. so wichtige Anwendungen [Ähem, Räusper] zu benutzen wie mit dem
> Stepper-Motor durch variabel getimte microschritte musik zu machen.
Naja ...
Hier sind im Apple-][-Fundus Karten mit einem 1802 oder einem 8748 als
I/O-Prozessor für die Druckerschnittstelle und ein 6511 als universelle
Koprozessorkarte.
Es gab Applebus-Karten mit 6809, 68008, 68000, Z80 (echt paralleler
Betrieb im Gegensatz zur üblichen M$-Karte), 8088, 8086 und noch einige
mehr.
> Hmm, das Schöne bei den Transputern war doch auch das man die einzelnen
> Nodes mehrfach untereinander vernetzten konnte (bis zu 4 Links
> gleichzeitig, oder?) und das jeder einzelne lokalen Speicher hatte.
Ja. Die Transputer-Chips hatten alle eine kleine, aber für einfache
Sachen ausreichende Menge SRAM im Chip und konnten bei Bedarf mit sehr
viel mehr ausgestattet werden.
Ich habe endlich nach Jahren eine Erwähnung im Netz gefunden, wo ich ein
bißchen mit dran "basteln" durfte :-) Der Hersteller war Proteus in
Karlsruhe:
http://www.sciencedirect.com/science/article/pii/0010465589900118
Das waren zwei richtig schöne 19"-Schränke :-)
> Frühes Grid-computing wenn ich das richtig erinnere. Aber da gab es
> glaube ich ein limit von 16 Nodes oder ähnliches.
Solch ein Limit ist mir nicht bekannt. Vielleicht gab's in einzelnen
Transputer-Chips (anfangs) Probleme mit den Links, aber keine
generellen, AFAIR. Es gab allerdings ein physisches Problem mit den
Links, die eine gewisse Länge nicht überschreiten durften. Aber wie bei
Netzwerkprotokollen lag das an der Ausbreitungsgeschwindigkeit der
Signale und der maximalen Antwortzeit im Protokoll. Wir hatten das mal
nachgerechnet. Nur verschwimmen meine Erinnerungen, und ganz dunkel
meine ich mich an einige 100m maximaler Link-Länge aufgrund des
Protokolls zu erinnern. Leitungstreiber wären noch eine andere Baustelle
geworden.
> Nur wird wohl jede heutige CPU schneller Massivparallel arbeiten als
> diese Alten Transputer. Also Absolut Folklore!
In diesem Punkt ja, aber solche alten CPUs haben durchaus auf manchen
Gebieten ihre Vorteile: ihr Interruptverhalten ist deutlich besser für
Realtime geeignet, weil die in der Interrupt-Latenz einfach schneller
sind. Große Registersätze moderner CPUs, auch und insbesondere interne
Frames aus den Pipelines, brauchen viel Platz auf dem Stack und somit
Zeit diese rauszuschreiben. Krass am Ende der Skala liegt z.B. so ein
65C02 mit einer Latenz von max. 7 Zyklen für den längstdauernden Befehl
zzgl. 4 Zyklen (oder so) für den Einsprung in den IRQ sowie 3*2 Zyklen
zur Rettung des Registersatzes extrem gut im Rennen, also max. 17 Zyklen
und der steht vor dem ersten Befehl der IRQ-Bearbeitung.
> > schreibe gerade an meinem universellen Disassembler, der im ersten
> > Schritt die 8bit-Welt abdecken können soll. Vollstens konfigurierbar,
> > quasi eine Fortführung vom DASM. Aus naheliegenden Gründen startete ich
> > mit der 6502-Welt.
>
> Cool. Etwa für DOS oder??? Ich meine wenn Universell dann....
Ich habe vorhin etwas gebingt: es gibt einen Assembler, der sich DASM
nennt. Ich meinte als Disassembler den DASMx, verlinkt z.B. auf
6502.org.
Momentan schreibe ich den aufgrund äußerer Umstände auf einer *schäm*
Windows-10-Kiste (ich hatte keine andere Wahl, und es nicht mein Rechner
;-) ) mit Visual Studio und in C++. Da ich aber sehe, wie sich so ein
moderner PC trotz vieler Kerne, fast 3GHz für die CPU und 16GB RAM mit
C++ rumplagt, ziehe ich die Textdateien in ein paar Wochen auf mein OS-9
mit 68060 @60MHz und natürlich nach C rüber, und ich bin mir sicher, daß
das dann performanter läuft. Da die einzigen relevanten Schnittstellen
die zum Dateisystem sind, das sowieso ein Progrämmchen mit UI ohne 'G'
ist, könnte ich vielleicht drüber nachdenken, ob ich das unter Ubuntu
zum Laufen bringe. Schaunmermal :-) Ich brauche den für den 6802 der
Eurocom 1 und zuallererst noch für einen Mitsubishi-Controller mit
6502-Kern, der im Tacho/Tripmaster von meinem Mopped sitzt, wo die
Software einen kleinen, aber bedeutenden Fehler hat. Ist Dir schon mal
der Tacho an Deinem Fahrzeug abgestürzt?
Danach ist der Code der RCA1802-Karte vom Apple ][ dran. Und die
ISA-Localtalk-Karte mit dem 6502, den Code vom 8748 aus dem Apple ][
wollte ich mir auch schon mal anschauen, und ... und ... und ...
> > DRAM 4-1-1-1 (burst read), Schreiben 2-1-1-1 (burst write). Zum
> > Nachrechnen: 150nsec zum Schreiben oder 210nsec zum Lesen von 16Byte.
> > Das sind extrapoliert 100MB/s schreibend und 72MB/s lesend. BTW im Jahr
> > 1993. Das wird mit SRAMs nicht mehr bedeutend schneller.
>
> Moment. Ich erinnere mich damals zu 386/486 Zeiten Cache-SRAMs gesehen
> zu haben die m.E. nur eine Zugriffszeit von um die 7-10 nsec. gehabt
> haben sollen. Und ich denke mir bei all den Fortschritten sollten doch
> heute deutlich größere Speichermengen mit dem Tempo drin sein. Macht
> aber offenbar keiner. Warum?
Diese 68040- und 68060-CPUs haben Zugriff auf das gesamte DRAM in dieser
Geschwindigkeit, also volle 256MB, nicht bloß ein paar kB Cache. BTW
schneller als 1-1-1-1 könnten die gar nicht. Nochwas: wenn der (externe)
Cache nicht liefern kann, dauern die Lesezugriffe etwas länger als wenn
kein Cache im Spiel wäre.
Gruß, Ralf