Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Enrico's KC Cluster » Themenansicht

Autor Thread - Seiten: -1-
000
28.10.2022, 23:03 Uhr
PIC18F2550

Avatar von PIC18F2550

Enrico hat letztens verkündet das er sich einen KC Cluster wünscht.

Also etwas darüber nachgedacht.

Als erstes habe ich über eine TCIP Variante nachgedacht.
Gut die währe leicht erweiterbar auf mereren KC's oder PC's möglich.
Aber die Anwendersoftware hätte es in sich.
Zudem ist der TCIP-Stack ziemlich rechenintensiv für die relativ geringe Rechenleistung des KC's.

Als nächstes habe ich über eine Master Slave Kopplung nachgedacht.
Im Master ist ein Koppelram für 3 Slaves.
Hierbei zeigt sich das die Seriell übertragenen Daten/Tackt für RX und TX schnell mal die 40Mhz Grenze erreichen.
Ein weiteres Problem sind die beschaffung preiswerter Leitungstreiber.

Danach habe ich mir überlegt was mann eigentlich vom Slave braucht.
Und das ist RECHENLEISTUNG.
Damit stand fest was Gebraucht wird.

Das ergebnis wäre ein Modul mit

3x CPU U880
1x 32k Cashram 10ns
Und etwas logik MACH211

Im KC ist ein 8k Segment immer sichtbar.
Segment 0 Datensegment aller 3 Slave CPU's
Segment 1 Codesegment der 1 Slave CPU
Segment 2 Codesegment der 2 Slave CPU
Segment 3 Codesegment der 3 Slave CPU

Es währe auch möglich jeder CPU ein eigenes Basic zu verpassen was die Anwendung noch einfacher macht.

So jetzt bist du dran.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
28.10.2022, 23:58 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb

Zudem ist der TCIP-Stack ziemlich rechenintensiv für die relativ geringe Rechenleistung des KC's.


Das macht doch aber schon das M052.
Man brauch da "nur" die Software zum Datenaustausch, und die zum Rechnen auf dem
jeweiligen Rechner.


Zitat:
PIC18F2550 schrieb
Als nächstes habe ich über eine Master Slave Kopplung nachgedacht.
Im Master ist ein Koppelram für 3 Slaves.


Das wäre dann aber die Hardware- und Geldaufwendige Variante.
M052 werden die Meisten haben.

Ein Netzwerkcluster würde sich auf dem KC-Treffen anbieten.
Es müssen ja nicht nur KCs sein. Z80 mit Netzwerk tuts ja auch.
Oder verteilt übers Indernett?
--
MFG
Enrico

Dieser Beitrag wurde am 29.10.2022 um 00:03 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
29.10.2022, 08:34 Uhr
PIC18F2550

Avatar von PIC18F2550

Als Softwarebasis wäre FTP die am besten geeignete Basis.
Soweit ich weiß benötigt man dafür ein cpm taugliches System also eine D004 und das M052.

Ein FTP -Server ist der Datenknoten wo alle ihre Befehle und Daten erhalten.

Es müssen alle eingaben und ausgaben in Dateien umgeleitet werden (Steuerkanal [Verzeichnis 1 auf dem Server])
Zum Datenaustausch wird ein 2. Verzeichnis auf dem Server benutzt.

Da ich keine D004 habe ist hier ende der Fahnenstange für mich.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
29.10.2022, 08:38 Uhr
Enrico
Default Group and Edit


Im EPROM ist z.B. TFTP drin, geht auch ohne D004.

Du hättest aber schon eine D008 haben können.....
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
29.10.2022, 10:48 Uhr
Bert



Beim verteilten Rechnen hat man immer das Problem:
1. das Aufteilen der Daten benötigt Zeit
2. der Verteilen der Aufgaben benötigt Zeit
3. das Rechnen benötigt Zeit
4. das Zusammenführen der Ergebnisse benötigt Zeit

Wenn 1. + 2. + 4. mehr Zeit benötigt als 3., dann läuft was falsch :-)

An eine separate Hardware würde ich erst dann denken, wenn man mit der vorhandenen nicht mehr weiterkommt.
Momentan gibt es die Schnittstellen V.24/RS232 und Ethernet, die sich zur Rechner-Rechner-Kommunikation anbieten.
Erstere kann nur Punkt-zu-Punkt, von daher ist Ethernet die Schnittstelle der Wahl.

Vom Protokoll her würde ich weder FTP noch TFTP verwenden. Auch wenn beide das 'FTP' im Namen haben, sind die Protokolle grundverschieden:
FTP braucht umständlicherweise zwei TCP-Ports und TFTP basiert auf UDP.
Für verteiltes Rechnen sind beide nicht geeignet. Es gibt nicht umsonst so viele verschiedene Protokolle:
https://de.wikipedia.org/wiki/Internetprotokollfamilie#Protokollstapel

Ich habe mir allerdings noch nicht näher angeschaut, ob und wie sich das WizNet-Modul im M052 um weitere Protokolle erweitern läßt.

Als Einstieg/Vorstufe könnte man sich ja mal ein Chat-Programm auf UDP-Basis vornehmen...

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
29.10.2022, 11:42 Uhr
PIC18F2550

Avatar von PIC18F2550

Enrigo, für ne D008 müsste ein anderes Gerät geschlachtet werden, das wiederstrebt mir.
Mir fehlt immer noch eine D002.

Bert, der Zeitversatz in den Daten ist kein Problem in Asyncronen Rechensystemen.
Der Master muss das Ergebnis nur richtig einordnen.
Dieses Verfahren ist aber ungeeignet für Kaskaden Systeme.
Wenn der Auftrag gleich das Ergebnis ist ist das kein Problem.

Als Beispiel wäre das Apfelmännchen einfach zu erklähren.
Jeder Slave berechnet eine Zeile -> damit ergibt sich jeder Rückgabewert ein eindeutigen Punkt.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
29.10.2022, 14:31 Uhr
Bert




Zitat:
PIC18F2550 schrieb
Jeder Slave berechnet eine Zeile -> damit ergibt sich jeder Rückgabewert ein eindeutigen Punkt.


Das ist nicht der Punkt. Der Punkt ist: Wenn Du mehr Aufwand mit der Verwaltung und dem Hin- und Herschicken der Daten hast, kannst Du auch gleich lokal bleiben und da rechnen.

Hatte da mal vor Jahren was in einem FPGA gemacht. Da gab es viele parallele Iterationseinheiten für's Apfelmänchen. Ein CPU hat die Daten abgeholt und ins Video-RAM geschaufelt. Das Ergebnis war so ernüchternd, das ich weitere Experimente dieser Art eingestellt habe :-)

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
29.10.2022, 15:05 Uhr
Enrico
Default Group and Edit


Wegen dem Rechenaufwand.
Dem kann man auch noch mit einer FPU abhelfen.
Hatte schon mal vor ein paar Jahren eine 68882 an den KC gestrickt.
Das geht problemlos.
Mir fehlte aber die Muße entsprechende Unterprogramm zu schreiben.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
29.10.2022, 15:06 Uhr
Enrico
Default Group and Edit



Zitat:
PIC18F2550 schrieb
Als Beispiel wäre das Apfelmännchen einfach zu erklähren.
Jeder Slave berechnet eine Zeile -> damit ergibt sich jeder Rückgabewert ein eindeutigen Punkt.



Das schon mal ein Anwendungsgebiet.
Oder SETI.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
30.10.2022, 00:33 Uhr
susowa




Zitat:
Bert schrieb
Ich habe mir allerdings noch nicht näher angeschaut, ob und wie sich das WizNet-Modul im M052 um weitere Protokolle erweitern läßt.



Das Wiznet-Modul "macht gar keine keine Protokolle". Man kann es für "alle Protokolle" benutzen, welche auf den diversen Schichten eines TCP/IP Protokollstacks aufsetzen. Für TCP- oder UDP-Anwendungen benutzt man zweckmässigerweise die Software-Schnittstelle "W5100-xx.INC", welche über die entsprechenden Socket-Funktionen die Programmierung von beliebigen Applikationen gestatttet.

MfG susowa
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
30.10.2022, 16:19 Uhr
Dirk mit KC-4



ein kleiner Einwurf zu Clustern.

Cluster bedeutet übersetzt Rechnerverbund. Im Grunde sind 4 oder 5 Rechner die von Freunden auf dem Dachboden über Netzwerkkarten vernetzt werden um z.B. gemeinsam zu spielen ein solcher Rechnerverbund. Großrechner, die als Cluster verbunden sind haben noch eine zusätzliche Aufgabe: eine (meist mathematische) Programmaufgabe mit Hilfe aller anderen Computer im Cluster zu lösen. Eine Strategie ist dann Programmteile aufzuteilen und an die Computer zu vergeben. Es wurde hier ja schon angemerkt, das Verteilen der Programmteile (und das Zusammensetzen) erfordert schon viel Rechenleistung von CPU und CO-Prozessor. Die Großrechner haben meist einen Co-Prozessor auf dem Motherboard verbaut um mathematische Aufgaben (Gleitkommazahlen) schneller zu berechnen.

Nun zu der Aufgabenstellung Cluster und KC. Zu erst sollte klar sein, dass wir hier über einen Z80 Prozessor reden. Co-Prozessoren wurden zu der Zeit nicht wirklich verbaut, beim Amiga (Motorola 68000er CPUs, 16 bit) Ende der 80er Jahre gab es (Erweiterungs)Beschleunigerkarten mit Co-Prozessoren drauf. Für den Z80 (und Clone) gab es so etwas gar nicht, dazu war der Z80 nicht ausgelegt.

Also (mathematisches) Programm beim Z80 teilen (einfaches Beispiel: Primzahlenberechnung, schauen ob Zahlen a=a+1 prim sind, also durch sich selber, a, oder durch 1 teilbar. Die Berechnung teil man nun im Cluster auf, die Berechnung der Zahlen 1-1000 übernimmt Rechner a, die Berechnung der Zahlen 1001-2000 übernimmt Rechner b, usw. Die Ergebnisse werden später dem Rechner a zurück übergeben und dort dem Benutzer am Bildschirm ausgegeben.).

Wäre das eine sinnvolle Aufgabe für z80 Rechner? Nicht wirklich..

Aber das wäre möglich: man "vernetzt" die KC Rechner. Ein Cluster aus 2 KC Rechner könnte Daten hin und her tauschen. Ein Cluster aus x KC Rechner könnte ein Spiel gemeinsam bzw. gegeneinander spielen. Das wäre natürlich wieder interessant. Ein einfaches Netzwerkspiel und dann x Teilnehmer, jeder am eigenen KC.

Dieser Cluster aus 2 Rechner, dazu habe ich mal eine recht einfache Schaltung für den CPC gesehen (ich weiß aber grad nicht mehr in welcher 80er Jahre Schneider Zeitschrift das war). Ich glaube das ganze wurde über den Parallelport (Centronics Expansions-Bus) realisiert, mit sehr wenigen Bauteilen.
--
Ich kann 2 Dinge wirklich nur gut, zum einen war es die Fallschirmjägerei und zum anderen Computer. Fragt man, was ich nun besser kann, würden einige sagen das eine, andere würden das andere sagen. Aber im Grunde ist beides gleich: ein großes Abenteuer

Dieser Beitrag wurde am 30.10.2022 um 16:22 Uhr von Dirk mit KC-4 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
30.10.2022, 16:29 Uhr
Rüdiger
Administrator



Zitat:
Dirk mit KC-4 schrieb
Nun zu der Aufgabenstellung Cluster und KC. Zu erst sollte klar sein, dass wir hier über einen Z80 Prozessor reden. Co-Prozessoren wurden zu der Zeit nicht wirklich verbaut, beim Amiga (Motorola 68000er CPUs, 16 bit) Ende der 80er Jahre gab es (Erweiterungs)Beschleunigerkarten mit Co-Prozessoren drauf. Für den Z80 (und Clone) gab es so etwas gar nicht, dazu war der Z80 nicht ausgelegt.



Gabs mit U8032 und mit U8001/U8002. Copro-Karten mit letzteren habe ich da, falls Du's nicht glaubst.
--
Kernel panic: Out of swap space.

Dieser Beitrag wurde am 30.10.2022 um 16:44 Uhr von Rüdiger editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
30.10.2022, 16:58 Uhr
Dirk mit KC-4



Das fand ich grad, 16bit U8001 Co-Prozessor wußte ich nicht das es so was gab. Ich nehme alles zurück, ich hab nix gesagt :-)

Prozessor U8001
Dieser 16-Bit-Mikroprozessor sollte eigentlich der Nachfolger des U880 in der DDR werden.
Er wurde z.B. in der 16-Bit-Variante der Rechners P8000 und P8000 compact, im Computer A5120.16 sowie als Koprozessorkarte in den Messcomputern MFA100 und PSA1305 eingesetzt.
Der U8001 konnte bis 8 MByte adressieren und unterscheidet sich in diesem Wert vom U8002. Der zugehörige Speicherverwaltungsschaltkreis war der U8010.

Prozessor U8002
Der U8002 stellte eine abgerüstete Variante des U8001 dar und konnte im Gegensatz zu diesem nur 64 KByte Speicher adressieren. Er wurde als mathematischer Koprozessor, z.B. bei K1520-Rechnern eingesetzt.

A 5120: Bürocomputer zur Text- und Datenverarbeitung aus dem VEB Buchungsmaschinenwerk Karl-Marx-Stadt. Ab 1986 kam eine neue Version des Gerätes als A 5120.16 mit dem 16-Bit-Mikroprozessor U8000 (Zilog-Z8000-Nachbau) auf den Markt. Der 16-Bit-Teil bestand aus zwei zusätzlichen Steckkarten (CPU und 256 KB DRAM) und ermöglichte die Nutzung des leistungsfähigen Betriebssystems MUTOS8000 (Unix-System III-Derivat).

DerZilog-Z8000 wurde nur in wenigen Computern, wie z. B. dem Commodore 900 oder Olivetti M20, verbaut. Außerdem wurde er im Steuer- und Zielsystem des Tomahawk-Marschflugkörpers und im Arcade-Spiel Pole Position eingesetzt.


US Tomahawk-Marschflugkörpers, ich hab keine weiteren Fragen mehr..
Arcade-Spiel Pole Position "it was the only video game to use a Z8000 CPU" (es war das einzige Video Spiel das eine Z8000 CPU benutzte)
https://en.wikipedia.org/wiki/Pole_Position

--
Ich kann 2 Dinge wirklich nur gut, zum einen war es die Fallschirmjägerei und zum anderen Computer. Fragt man, was ich nun besser kann, würden einige sagen das eine, andere würden das andere sagen. Aber im Grunde ist beides gleich: ein großes Abenteuer

Dieser Beitrag wurde am 30.10.2022 um 17:02 Uhr von Dirk mit KC-4 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
30.10.2022, 17:39 Uhr
Enrico
Default Group and Edit



Zitat:
Dirk mit KC-4 schrieb

Cluster bedeutet übersetzt Rechnerverbund.


Ach was.....


Zitat:

Nun zu der Aufgabenstellung Cluster und KC. Zu erst sollte klar sein, dass wir hier über einen Z80 Prozessor reden. Co-Prozessoren wurden zu der Zeit nicht wirklich verbaut, beim Amiga (Motorola 68000er CPUs, 16 bit) Ende der 80er Jahre gab es (Erweiterungs)Beschleunigerkarten mit Co-Prozessoren drauf. Für den Z80 (und Clone) gab es so etwas gar nicht, dazu war der Z80 nicht ausgelegt.

Wieso sollte das ein Grund sein, keinen Copro an den Z80 zu stopfen?

Ich glaube, das war mal vor Jahren im CPM-Fourm.
Da hatte sich jemand in fürchterlicher Selbstbeweihräucherung verausgabt, dass er so was gemacht hatte. Infogehalt ging gegen Null.
Problem ist nur, man muss einen Haufen Code programmieren, um die Coprobefehle des 68882 auf den Z80 umzusetzten.
Ansonsten ist das nicht wirklich ein Drama.


Die Hardware könnte z.B. so aussehen:


M021 bietet sich da ja an, da da noch Platz ist, Dekodierung etwas angepasst
--
MFG
Enrico

Dieser Beitrag wurde am 30.10.2022 um 17:40 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
30.10.2022, 17:53 Uhr
Dirk mit KC-4



Da auf dem Bild, ist (der viereckige) ein Co Prozessor 68882?

Nur zum Verständnis, die MC68881 und MC68882 von Motorola waren Co Prozessoren für die MC68020 und MC68030. Beides sind 16bit CPU (bzw sogar 32bit CPUs) und sitzen beispielsweise im Amiga. Der 68010 ist gaub ich etwas schneller als der Original Verbaute 68000 im Amiga 500, der 68020 waren ein reiner 32bit Prozessor (und steckte im Amiga 1200) und der 68030 (30 Mhz) schlummerte im Amiga 3000 und Amiga 4000 (dort gab auch Versionen die hatten einen 68040 mit 40Mhz)

Und jetzt einen 68000 Co Prozessor mit einer Z80 verheiraten ernsthaft? Das wie würde mich natürlich interessieren, 8bit Z80 CPU mit 32bit Co Prozessoren.
Und diese Co Prozessoren MC68881 und MC68882, ich hab vor Jahren mal versucht einen zu bekommen für eine Amiga Blizzard-Erweiterungskarte für den A1200 wo noch Platz für einen dieser Co Prozessor wäre. Damals schon selten und teuer. Heute? unbezahlbar?
--
Ich kann 2 Dinge wirklich nur gut, zum einen war es die Fallschirmjägerei und zum anderen Computer. Fragt man, was ich nun besser kann, würden einige sagen das eine, andere würden das andere sagen. Aber im Grunde ist beides gleich: ein großes Abenteuer

Dieser Beitrag wurde am 30.10.2022 um 17:56 Uhr von Dirk mit KC-4 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
30.10.2022, 19:42 Uhr
Enrico
Default Group and Edit



Zitat:
Dirk mit KC-4 schrieb
Da auf dem Bild, ist (der viereckige) ein Co Prozessor 68882?


Ja.


Zitat:

Nur zum Verständnis, die MC68881 und MC68882 von Motorola waren Co Prozessoren für die MC68020 und MC68030. Beides sind 16bit CPU (bzw sogar 32bit CPUs) und sitzen beispielsweise im Amiga. Der 68010 ist gaub ich etwas schneller als der Original Verbaute 68000 im Amiga 500, der 68020 waren ein reiner 32bit Prozessor (und steckte im Amiga 1200) und der 68030 (30 Mhz) schlummerte im Amiga 3000 und Amiga 4000 (dort gab auch Versionen die hatten einen 68040 mit 40Mhz)


Eigentlich sind das alles 32-Bitter, nur der Datenbus wurde beim 68000 und 68010 nur 16bittig rausgeführt, ab 68020 mit Coprointerface.


Zitat:

Und jetzt einen 68000 Co Prozessor mit einer Z80 verheiraten ernsthaft? Das wie würde mich natürlich interessieren, 8bit Z80 CPU mit 32bit Co Prozessoren.


Aber sicher doch. Heute ist ja nicht der 1. April.
Und wie ich schrieb, hatte sich dazu auch schon mal jemand anders ausgelassen,
mit Sicherheit auch noch mehr Leute.

Anders als das x86-Copro-Gedöhns von Intel und AMD, sind die von Motorola universell einsetzbar.
Dazu gibts ein ca. 3cm dickes Buch, worin alles beschrieben ist.
Auch, wie man den Copro am 68000 ohne Coprointerface zum laufen bekommt.

Der Copro hat 2 Bussize-Signale. Damit lässt sich die Datenbusbreite dynamisch
zwischen 8/16/32 Bit einstellen.

Die Schwierigkeit, oder eher Zeitaufwand, besteht erstmal darin, die ganzen Coprobefehle
durch I/O Anweisungen zu ersetzen.
Sinnvollerweise beim KC durch die typische Aufrufe mit
CALL Sprungadresse
DB Unterprogramm


Zitat:

Und diese Co Prozessoren MC68881 und MC68882, ich hab vor Jahren mal versucht einen zu bekommen für eine Amiga Blizzard-Erweiterungskarte für den A1200 wo noch Platz für einen dieser Co Prozessor wäre. Damals schon selten und teuer. Heute? unbezahlbar?


Ja, vor 30 Jahren zur Wende, so um die 200-300?
Dann hats keinen mehr interessiert, und seit geraumer Zeit ist Amiga
wohl wieder "in".

Auf A1K bauen und entwickeln die ihre 68060 Turbokarten oder auf FPGA-Basis selber.

Auf der Blizzard steckt aber ein Copro in PGA.
Da den "jeder" mit 50 MHz haben möchte, wird der entsprechend teuer sein.
In PLCC ist das wohl eher nicht das Problem.
Die hier waren nicht teuer. Könnten aber auch von Chinesen verfälscht worden sein.
Ist aber hier ja auch egal.

Außerdem legt man sich als gelernter DDR-Bürger alles hin, wenn's das billig gibt.
Man könnte das ja irgendwann mal brauchen können.
--
MFG
Enrico

Dieser Beitrag wurde am 30.10.2022 um 19:49 Uhr von Enrico editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek