Forum: Mikrocontroller und Digitale Elektronik Entwicklerboards für Benchmarks - Z80 und Verwandte


von Philipp Klaus K. (pkk)


Lesenswert?

Guten Abend,

ich würde gern auf verschiedenen Z80-artigen Architekturen ein paar 
Standardbenchmarks (Whetstone, Dhrystone, Coremark) ausführen. Dazu 
bräuchte ich Boards, die über mindestens mindestens 16 KB 
Programmspeicher sowie zusätzlich 6KB RAM verfügen. Zur Datenausgabe 
sollte RS232 dienen. Und das auszuführende Programm sollte sich von 
einem GNU/Linux-Rechner aus möglichst mit freien Werkzeugen auf das 
Board laden lassen. dabei interessiere ich mich für folgene 
Architekturen:

* Z80
* Z180
* Rabbit 2000 oder 3000
* Rabbit 3000A oder 4000
* TLCS-90
* LR35902
* HC08
* S08
* 8051
* PIC16

Was könntet Ihr mir empfehlen?

Philipp

von (prx) A. K. (prx)


Lesenswert?

Philipp Klaus K. schrieb:
> * Z80
> * Z180
> * Rabbit 2000 oder 3000
> * Rabbit 3000A oder 4000

Soweit kann ich folgen.

> * HC08
> * S08
> * 8051
> * PIC16

Aber diese als "Z80-artig" zu betrachten fällt mir etwas schwer. Und das 
mit den 6KB RAM könnte sich beim PIC16 als interessante Aufgabe 
erweisen.

: Bearbeitet durch User
von S. R. (svenska)


Lesenswert?

Hilfreich wäre auch ein Compiler, der die Stärken der jeweiligen 
Prozessoren ausspielen kann. Dem SDCC traue ich da nicht über den Weg.

von (prx) A. K. (prx)


Lesenswert?

Philipp Klaus K. schrieb:
> Standardbenchmarks (Whetstone

Den Whetstone als Standardbenchmark für diese Klasse von Architekturen 
zu betrachten ist auch ein leicht wunderlicher Gedanke.

von Philipp Klaus K. (pkk)


Lesenswert?

A. K. schrieb:
> Philipp Klaus K. schrieb:
>> * HC08
>> * S08
>> * 8051
>> * PIC16
>
> Aber diese als "Z80-artig" zu betrachten fällt mir etwas schwer. Und das
> mit den 6KB RAM könnte sich beim PIC16 als interessante Aufgabe
> erweisen.

Ja, da hätte ich besser den gesamten Beitrag nochmal in Ruhe 
durchgelesen, nachdem ich mich dann doch entschieden hatte diese vier 
Architekturen, die mir nicht so wichtig wie die anderen sind, doch noch 
an die Liste anzuhängen.

Philipp

von Philipp Klaus K. (pkk)


Lesenswert?

A. K. schrieb:
> Philipp Klaus K. schrieb:
>> Standardbenchmarks (Whetstone
>
> Den Whetstone als Standardbenchmark für diese Klasse von Architekturen
> zu betrachten ist auch ein leicht wunderlicher Gedanke.

Er mag ja als Benchmark für diese Architekturen unüblich sein, aber er 
ist ein Standardbenchmark, und er lässt sich auf diesen Architekturen 
ausführen.

Philipp

von Philipp Klaus K. (pkk)


Lesenswert?

S. R. schrieb:
> Hilfreich wäre auch ein Compiler, der die Stärken der jeweiligen
> Prozessoren ausspielen kann. Dem SDCC traue ich da nicht über den Weg.

Für alle der geannten Architekturen, oder nur für bestimmte davon? Falls 
letzteres, welche? Und wie sieht es mit SDCC für STM8 aus?

Philipp

von S. R. (svenska)


Lesenswert?

Philipp Klaus K. schrieb:
>> Dem SDCC traue ich da nicht über den Weg.
>
> Für alle der geannten Architekturen, oder nur für bestimmte davon? Falls
> letzteres, welche? Und wie sieht es mit SDCC für STM8 aus?

Meine (begrenzten) Erfahrungen stammen nur vom Z80, decken sich aber mit 
denen eines größeren Projekts. SDCC braucht deutlich mehr Händchenhalten 
als z.B. avr-gcc, und macht beim Übersetzen gelegentlich auch groben 
Unfug. Man sollte ständig mit einem Auge auf den generierten Code 
schielen. Der Linker ist auch nicht wirklich mein Freund.

Zu STM8 und PIC16 kann ich nichts sagen, aber meines Wissens ist 8051 
die Hauptarchitektur vom SDCC und wird am besten unterstützt.

von Philipp Klaus K. (pkk)


Lesenswert?

S. R. schrieb:
> Meine (begrenzten) Erfahrungen stammen nur vom Z80, decken sich aber mit
> denen eines größeren Projekts. SDCC braucht deutlich mehr Händchenhalten
> als z.B. avr-gcc, und macht beim Übersetzen gelegentlich auch groben
> Unfug. Man sollte ständig mit einem Auge auf den generierten Code
> schielen.

Heißt "grobe[r] Unfug" fehlerhafter, oder nur ineffizienter Code? Welche 
Version von SDCC war es?

Philipp

von S. R. (svenska)


Lesenswert?

Gelegentlich wurde mir C-Code und daraus generierter Asm-Code gezeigt, 
wo man nur mit dem Kopf schüttelt. Aber gelegentlich hat der Compiler 
auch mal Register erst überschrieben und dann benutzt statt umgekehrt, 
oder die eigenen lokalen Variablen falsch adressiert (und dann natürlich 
die falschen Bytes überschrieben), oder sowas.

Wenn man leicht ungewöhnlichen C-Code schreibt (am Rande des 
Verbotenen), dann generiert SDCC gelegentlich auch Mist. Also muss man 
aufpassen, ein Auge auf dem Ergebnis halten und im Zweifelsfall auch mal 
Händchen halten (z.B. Register manuell reservieren oder 
Pointerarithmetik in C ausschreiben, statt eine komplexe struct zu 
benutzen).

von Frank K. (fchk)


Lesenswert?

Zilog fertigt immer noch Z80-Prozessoren. Die sind allerdings ein klein 
wenig moderner.

http://www.zilog.com/index.php?option=com_product&task=product&businessLine=1&id=77&parent_id=77&Itemid=57

Dazu gibts einen JTAG-artigen Debugger und eine Windows IDE mit ziemlich 
gutem Compiler und einem RTOS. Wenn Du den gesehen hast, willst Du 
keinen SDCC mehr.

fchk

von Philipp Klaus K. (pkk)


Lesenswert?

Frank K. schrieb:
> Zilog fertigt immer noch Z80-Prozessoren. Die sind allerdings ein klein
> wenig moderner.

Moderner, und auch kein Z80 mehr: der eZ80 ist ja schon eine 
8/24-bit-Architektur, mit 24-bit breiten Registern und Adressen.

Philipp

Edit: Zilog stellt auch noch richtige Z80 und Z180 her, aber bietet 
dafür, so weit ich weiß, selbst keine Compiler an.

: Bearbeitet durch User
von Frank K. (fchk)


Lesenswert?

Philipp Klaus K. schrieb:
> Frank K. schrieb:
>> Zilog fertigt immer noch Z80-Prozessoren. Die sind allerdings ein klein
>> wenig moderner.
>
> Moderner, und auch kein Z80 mehr: der eZ80 ist ja schon eine
> 8/24-bit-Architektur, mit 24-bit breiten Registern und Adressen.

startet aber immer noch nach einem Reset im Z80-Modus und ist hier 
absolut binärkompatibel. Der Compiler sollte das auch können.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Philipp Klaus K. schrieb:
> dabei interessiere ich mich für folgene
> Architekturen: * Z180

Bitteschön:
Beitrag "Re: Z180-Stamp Modul"

von Philipp Klaus K. (pkk)


Lesenswert?

Joe G. schrieb:
> Philipp Klaus K. schrieb:
>> dabei interessiere ich mich für folgene
>> Architekturen: * Z180
>
> Bitteschön:
> Beitrag "Re: Z180-Stamp Modul"

Da ist ein unübershichtlicher Thread mit ca. 500 Beiträgen, Du verlinkst 
auf einen Beitrag, in dem etwas von einem "BUS-LP" steht, einem Begriff, 
der im ganzen Thread noch genau im Beitrag darunter vorkommt, sonst 
nirgendwo.
Es ist im Thread noch ein svn verlinkt, in dem es ein Verzeichnis "doc" 
gibt, da gibt es dann pdfs mit Platinenlayouts, und Pinouts für das 
"Z180-Stamp Modul".

Gibt es zu diesem "Z180-Stamp Modul" und "BUS-LP" noch irgendeine 
Wikiseite oder sonstigen Überblick? Selbst eine einfache Textdatei mit 
einer kurzen Beschreibung, worum es geht, wäre hilfreich.

Philipp

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Philipp Klaus K. schrieb:
> Da ist ein unübershichtlicher Thread mit ca. 500 Beiträgen,

Ich stimme Dir zu, dass der Thread für einen Mathematiker recht 
unstrukturiert erscheint, Feinmechaniker scheinen doch mehr praktisch 
veranlagt zu sein ;-)

Nein, es existiert weder in Wiki noch eine kurze Textdatei zum Z180 
System. Die einzige textliche Dokumentation im SVN ist die Datei 
Stamp_Doku.PDF. Eine kurze Übersicht [1] ist gerade im Aufbau, wird 
jedoch erst ende der Woche freigeschaltet.

Kurzübersicht
Das Z180-Stamp Modul beinhaltet nichts weiter als einen Z180 Prozessor 
sowie 512kx8 statischen RAM, linear adressierbar. Alle Busleitungen des 
Z180 sind auf zwei Stiftleisten seitlich rausgeführt. Weiterhin 
existiert ein weitgehend pinkompatibles  AVR-Stamp Modul. Dieses 
beinhaltet nichts weiter als einen AVR und etwas Peripherie 
(seriell/USB, SD-Card, RTC). Über ein Monitorprogramm [2] kann nun der 
AVR den RAM des Z180 übernehmen und dort Lese- und Schreiboperationen 
ausführen. Weiterhin lassen sich Programme ablegen, starten oder 
debuggen. Dazu beinhaltet der Monitor auch ein eigenes DDTZ. Die 
angedeutete Busplatine ist nicht zwingend notwendig. Sie beinhaltet nur 
noch etwas zusätzliche Hardware. Für ein Minimalsystem können beide 
Stamp-Module direkt übereinander gesteckt werden [3]. Was der Anwender 
letztlich damit tut, bleibt tatsächlich ihm überlassen. Die derzeitige 
Motivation bestand jedoch darin, ein CP/M-System aufzubauen. Zum 
jetzigen Arbeiterstand läuft gerade CP/M Plus.

Jörg

[1] http://www.openmechatronics.de/
[2] Stamp_Doku.pdf
[3] Beitrag "Re: Z180-Stamp Modul"

von Philipp Klaus K. (pkk)


Lesenswert?

Mit Z180- und AVR-Stamp könnte ich dann vom Hostsystem über den Umweg 
über den AVR, ein Programm auf den Z180 laden, und diesen resetten, und 
dann über eine serielle Verbindung zwischen Z180-Stamp und Hostsystem 
direkt Daten zwischen Hostsystem und meinem auf dem Z180 laufenden 
Programm übertragen?

Wozu würde die Busplatine dienen? RS232? Stromversorgung?
Ließen sich einfach weitere Stamp-Module (z.B. Z80 mit UART und Timer, 
oder TLCS-90) anstelle des Z180-Moduls einsetzen, und dann in der 
gleichen Weise nutzen?

Philipp

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Philipp Klaus K. schrieb:
> Mit Z180- und AVR-Stamp könnte ich dann vom Hostsystem über den Umweg
> über den AVR, ein Programm auf den Z180 laden, und diesen resetten, und
> dann über eine serielle Verbindung zwischen Z180-Stamp und Hostsystem
> direkt Daten zwischen Hostsystem und meinem auf dem Z180 laufenden
> Programm übertragen?

korrekt

> Wozu würde die Busplatine dienen?

Die Busplatine hat mehrere Funktionen:
- Bereitstellung des Z80 Busses an einem ECB-Steckverbinder
- RS232-Pegelwandler
- 2. SD Card
- Single-Step Logik für den Z180
- Steckplätze für seriell-USB Wandler

> Ließen sich einfach weitere Stamp-Module (z.B. Z80 mit UART und Timer,
> oder TLCS-90) anstelle des Z180-Moduls einsetzen,

Ja, sicherlich. Es gibt sogar schon eine Variante dazu [1]

[1] Beitrag "Re: Z180-Stamp Modul"

von Philipp Klaus K. (pkk)


Lesenswert?

Der Z180-Stamp hat den Nachteil, dass die Dokumentation aus tausenden 
Threadbeiträgen hier im Forum besteht.

Da wäre mit etwas mit Schaltplänen, Software und leserlicher 
Dokumentation auf Github, Sourceforge oder dergleichen lieber.

Hat jemand Erfahrung mit dem Z80-MBC2?

https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew-z80-computer
https://github.com/SuperFabius/Z80-MBC2
https://shop.mcjohn.it/en/8-diy-kit

von Harald N. (haraldn)


Lesenswert?

Der ist ziemlich cool. Platine gibt's auf tindie. Und die Doku ist 
exzellent

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Philipp Klaus K. schrieb:
> Der Z180-Stamp hat den Nachteil, dass die Dokumentation aus tausenden
> Threadbeiträgen hier im Forum besteht.

Nicht ganz, es gibt sogar eine Doku dazu ;-)

von Philipp Klaus K. (pkk)


Lesenswert?

Die Z180-Stamp hätte sicher den Vorteil, dass ein Z180 drauf ist, und 
damit auch gleich die für Benchmarks nötigen Timer.

Gibt es die Aussicht, dass es irgendwann ein svn oder git-repo gibt, in 
dem Stamp-Dokumentation, Schaltpläne, Software, etc liegen werden?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.