Forum: Mikrocontroller und Digitale Elektronik Frontplattendesign für "8 bit Computer"


von Andre G. (andgst01)


Lesenswert?

Schönen Samstag Nachmittag!

Ich arbeite schon länger an der Entwicklung eines diskreten 8 bit 
Computers.
Damit das Ganze auch (ein wenig) praktischen(*) Wert hat sollte dieser 
auf einen möglichst großen Speicher zugreifen können.
Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB 
problemlos adressiert werden können.

Dieser "Computer" wird in einem (oder mehreren wenn nötig) 19-Zoll 
Gehäuse (Höhe 3 Einheiten) untergebracht.

Derzeit beschäftige ich mich mit dem Designen der Frontplatte.
Über diese sollen Daten "von Hand" eingegeben und ausgelesen werden 
können (zu "Debug-Zwecken), außerdem sollen sich noch diverse 
Schnittstellen darauf befinden (RS232, VGA, PS2 für Tastatur, ...).

Ich dachte an 7 Segmentanzeigen für die Ausgabe von hexadezimalen Werten 
(2 Stück für den 8-bit Datenbus und 8 Stück für den 32-bit Adressbus).

Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den 
Adressbus.


Folgende Möglichkeiten kämen in Frage, jede hat Vorteile und Nachteile:

32 Schalter
===========
Vorteile:
+ Einfache Verdrahtung
Nachteile:


- Sehr hoher Platzbedarf
- Einzugebende Werte müssen erst in binäre Werte umgerechnet werden

8 Drehschalter mit je 16 Positionen
===================================
(z.B. 
https://www.digikey.at/en/products/detail/51A22-01-1-16N/GH7686-ND/4112289?itemSeq=387241772)

Vorteile:
+ Werte können direkt hexadezimal eingegeben werden


Nachteile:
- Sehr hoher Platzbedarf


Hexadezimales Tastenfeld
========================
Vorteile:
+ Werte können direkt hexadezimal eingegeben werden


Nachteile:
- Viel zusätzliche Logik erforderlich (Tastenmatrix abfragen, Zähler der 
nach jeder Eingabe inkrementiert wird, ...)

-----------------

Wie gesagt, jeder Lösungsansatz hat seine Vor - und Nachteile, deshalb 
dachte ich ich frage mal hier wie ihr das Problem lösen würdet.

Ja, ich weiß dass ein "8 bit Computer aus diskreter Logik" ein 
"sinnloses" Projekt ist.

---------------
---------------

"Praktischer Wert" heißt für mich in diesem Fall dass ich auf der Kiste 
zum Beispiel einen Texteditor oder ähnliches implementieren kann.

Und ja, VGA geht in diskreter Hardware, man braucht nur eine handvoll 
Zähler, Komparatoren, Speicher und einen DAC.

: Bearbeitet durch User
von DANIEL D. (Gast)


Lesenswert?

Ich würde 32 Taster, in Kombination mit 32 LEDs verwenden, welchem 
Prinzip arbeiten wie ein Schieberegister. Bits setzen Bits einspielen.

Beitrag #6944503 wurde von einem Moderator gelöscht.
von Erich (Gast)


Lesenswert?

HÄ?
Was ist für ein Umgangston?
Und was ist falsch?
Ausser, das 32-Bit-Adresse für 8-Bit Prozessor doch etwas übertrieben 
ist.
Gruss

von Erich (Gast)


Lesenswert?

Erich schrieb:
> HÄ?
> Was ist DAS für ein Umgangston?
> Und was ist falsch?
> Ausser, das 32-Bit-Adresse für 8-Bit Prozessor doch etwas übertrieben
> ist.
> Gruss

von Frank K. (fchk)


Lesenswert?

So etwas gibts auch:

https://www.ia.omron.com/data_pdf/cat/a7bs_a7bl_ds_e_6_2_csm25.pdf

Vorteil: beliebig anreihbar für Tafelmontage
Nachteil: nicht ganz billig

fchk

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass
> circa 4 GB problemlos adressiert werden können.

Ja nee, is klar. Denk nochmal über die Entscheidung nach, denn sie ist 
schlicht blöd.

> Dieser "Computer" wird in einem (oder mehreren wenn nötig) 19-Zoll
> Gehäuse (Höhe 3 Einheiten) untergebracht.

Ja nee, is klar. Denk erstmal über die Gesamtarchitektur nach, bevor du 
dich an das Design der Frontplatte machst.

> Derzeit beschäftige ich mich mit dem Designen der Frontplatte.
> Über diese sollen Daten "von Hand" eingegeben und ausgelesen werden
> können (zu "Debug-Zwecken), außerdem sollen sich noch diverse
> Schnittstellen darauf befinden (RS232, VGA, PS2 für Tastatur, ...).

Ja nee, is klar. Warum sollen die ganzen Ports vorne dran sein, wenn 
du das schon mit Tasten und LEDs vollstopfen willst?

Das stinkt alles so richtig nach Troll.

Schau dir an, wie die Frontplatte von einem IMSAI oder ALTAIR 
funktioniert, dann weißt du auch, wie man mit einem minimalen Aufwand da 
rankommt. Als Tipp: Nimm noch drei 8-Bit-Latches und einen prellfreien 
Taster dazu und fertig ist die Eingabe.

von MaWin (Gast)


Lesenswert?

Andre G. schrieb:
> Ich arbeite schon länger an der Entwicklung eines diskreten 8 bit
> Computers.
> Damit das Ganze auch (ein wenig) praktischen(*) Wert hat sollte dieser
> auf einen möglichst großen Speicher zugreifen können.
> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB
> problemlos adressiert werden können

Find ich gut, das diskret aufzubauen  sind ca. 206 Milliarden 
Transistoren.

Man wird sowieso nie mehr als 258 Adressen also 8 Schalter per Hand 
eingeben wollen, insofern kannst du ruhig 32 Schiebe- oder Kippschalter 
nutzen, von denen 24 nur ein Mal eingestellt werden.

Andre G. schrieb:
> Ich dachte an 7 Segmentanzeigen für die Ausgabe von hexadezimalen Werten
> (2

Grässlich

Entweder 4 LED oder hübsche 
https://www.ebay.de/b/Siemens-LED-Anzeigemodule/181882/bn_18158979 oder
https://www.ebay.de/itm/362273946948?hash=item545935bd44:g:Y8cAAOSw0gFasCC9 
aber die gelten nicht mehr als diskret.

von Andre G. (andgst01)


Lesenswert?

c-hater schrieb im Beitrag #6944503:
> Andre G. schrieb:
>
>> Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den
>> Adressbus.
> [...]
>> 8 Drehschalter mit je 16 Positionen
>> ===================================
>
> Damit ist klar, dass du ein Troll bist (und obendrein ein dramatisch
> inkompetenter). Also, verpiss dich, du Arschloch.

Ein Drehschalter mit 16 Positionen (0123456789ABCDEF) für jedes halbe 
Byte.
Also zwei Drehschalter für jedes Byte.
32 bit sind 4 Byte.
Wenn man für jedes Byte zwei Drehschalter benötigt und 4 Bytes eingeben 
will braucht man 4*2=8 Drehschalter.

Was hat das mit "inkompetenter Trollerei" zu tun?

von Andre G. (andgst01)


Lesenswert?

Frank K. schrieb:
> So etwas gibts auch:
>
> https://www.ia.omron.com/data_pdf/cat/a7bs_a7bl_ds_e_6_2_csm25.pdf
>
> Vorteil: beliebig anreihbar für Tafelmontage
> Nachteil: nicht ganz billig
>
> fchk

Das ist ein viel besserer Ansatz als viele einzelne Drehschalter.
Genau so etwas habe ich gesucht!

von Andre G. (andgst01)


Lesenswert?

MaWin schrieb:
> Andre G. schrieb:
>> Ich arbeite schon länger an der Entwicklung eines diskreten 8 bit
>> Computers.
>> Damit das Ganze auch (ein wenig) praktischen(*) Wert hat sollte dieser
>> auf einen möglichst großen Speicher zugreifen können.
>> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB
>> problemlos adressiert werden können
>
> Find ich gut, das diskret aufzubauen  sind ca. 206 Milliarden
> Transistoren.

Mit "diskret" meinte ich "aus Logik-ICs", nicht wirklich komplett 
diskret aus Transistoren.
Das hätte ich vielleicht erwähnen sollen ...

Ich bin verrückt, aber nicht SO verrückt
;-)

von Andre G. (andgst01)


Lesenswert?

S. R. schrieb:

Als Tipp: Nimm noch drei 8-Bit-Latches und einen prellfreien
> Taster dazu und fertig ist die Eingabe.


Werde ich mir anschauen.



Zum Thema "warum die Stecker vorne":
Weil auf der Rückseite des Gehäuses eine große Leiterplatte für die 
Bus-Verbindung der einzelnen Leiterplatten ist.
(https://www.digikey.at/en/products/detail/vector-electronics/VMEBP21J1/500967?s=N4IgTCBcDaIGoEYwIQWgHIBEQF0C%2BQA)
Deshlab ist auf der Rückseite kein Platz für Steckverbinder.

von Andre G. (andgst01)


Lesenswert?

S. R. schrieb:
> Andre G. schrieb:
>> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass
>> circa 4 GB problemlos adressiert werden können.
>
> Ja nee, is klar. Denk nochmal über die Entscheidung nach, denn sie ist
> schlicht blöd.

Wieso das denn?

Mit 32 Bit kann man 4.294.967.296 Adressen ansprechen.

von Wolfgang (Gast)


Lesenswert?

Andre G. schrieb:
> Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den
> Adressbus.

Warum "Problem"?
Schon bei der PDP-11 vor gut 50 Jahren hatte man das gelöst.
Die Dreiergruppen der Schalter für die Tripletts sind farblich 
voneinander abgesetzt und gliedern dadurch die Eingabe.
https://static.wixstatic.com/media/ce503a_28b23ab5475e4616a14c93abf28d1328~mv2_d_1988_1225_s_2.jpg

> 32 Schalter
> ===========
> ...
> - Einzugebende Werte müssen erst in binäre Werte umgerechnet werden

Du brauchst jetzt nicht ernsthaft eine App bzw. ein Online Tool für die 
Umrechnung von Hexadezimal nach Binär, oder?

von Andre G. (andgst01)


Lesenswert?

Wolfgang schrieb:
> Andre G. schrieb:
>> Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den
>> Adressbus.
>
> Warum "Problem"?
> Schon bei der PDP-11 vor gut 50 Jahren hatte man das gelöst.
> Die Dreiergruppen der Schalter für die Tripletts sind farblich
> voneinander abgesetzt und gliedern dadurch die Eingabe.
> 
https://static.wixstatic.com/media/ce503a_28b23ab5475e4616a14c93abf28d1328~mv2_d_1988_1225_s_2.jpg
>
>> 32 Schalter
>> ===========
>> ...
>> - Einzugebende Werte müssen erst in binäre Werte umgerechnet werden
>
> Du brauchst jetzt nicht ernsthaft eine App bzw. ein Online Tool für die
> Umrechnung von Hexadezimal nach Binär, oder?

Dreiergruppen?

Wieso nicht Vierergruppen, das würde mehr Sinn machen (vier bits sind 
ein "hexadezimales Zeichen").

Nein, das kann man schon im Kopf umrechenen, ich habe nur all die Vor- 
und Nachteile der einzelnen Möglichkeiten aufgelistet.

von Hermann Kokoschka (Gast)


Lesenswert?

Also diskret finde ich manchmal auch super-schön...
https://monster6502.com/

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
>>> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass
>>> circa 4 GB problemlos adressiert werden können.
>> Ja nee, is klar. Denk nochmal über die Entscheidung nach,
>> denn sie ist schlicht blöd.
> Wieso das denn?

Weil man keinen 250 PS Turbodiesel in einen Trabant einbaut und auch 
keinen Mofamotor in einen Porsche. Mit anderen Worten, man arbeitet 
sinnvollerweise mit halbwegs balancierten Systemen.

> Mit 32 Bit kann man 4.294.967.296 Adressen ansprechen.

Das sind nicht "circa 4 GB", sondern sogar ziemlich exakt. Und du 
brauchst wieviele Befehle, um auf deiner CPU eine 32 Bit breite Adresse 
zu generieren und zu dereferenzieren?

Wenn du klug wärst, dann würdest du mal ein paar Algorithmen (z.B. 
"sortiere ein Array") grob skizzieren und dir anschauen, wie geil dein 
Code ist. Dann merkst du, dass 32 Bit-Adressen auf einer 8 Bit-CPU 
schlicht bescheuert sind.

(Schon 16 Bit-Adressen auf einem i8080 sind nervig genug, und damit habe 
ich hinreichend Erfahrung, um das auf 32 Bit-Adressen extrapolieren zu 
können. Bauen wirst du es sowieso nicht.)

von Wolfgang (Gast)


Lesenswert?

Andre G. schrieb:
> Dreiergruppen?
>
> Wieso nicht Vierergruppen, das würde mehr Sinn machen (vier bits sind
> ein "hexadezimales Zeichen").

Das war vor 40..50 Jahren. Damals wurden die Binärzahlen meist als 
Oktalzahlen dargestellt. Hexdezimal verbreitete sich erst mit den 
Mikroprozessoren.

von Stefan F. (Gast)


Lesenswert?

Andre G. schrieb:
> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB
> problemlos adressiert werden können.

Andre G. schrieb:
> Mit "diskret" meinte ich "aus Logik-ICs", nicht wirklich komplett
> diskret aus Transistoren.

Es haben sich schon genug Leute an 4 und 8 Bit abgemüht. Wie willst du 
eigentlich 4 GB RAM diskret "aus Logik-ICs" aufbauen? Hast du schon ein 
Fußballfeld gepachtet und ein den Bau eines Kraftwerks in Auftrag 
gegeben?

Die Taktfrequenz wird dann wohl so um 10 kHz liegen. Und das manuelle 
Befüllen mit Drehschaltern dauert ... wahrscheinlich stirbt die 
Menschheit vorher aus.

Ganze ehrlich: Mach mit deiner Zeit und dem Geld was sinnvolleres. Du 
könntest zum Beispiel einen Bunker bauen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Andre G. schrieb:
> Nachteile:
> - Viel zusätzliche Logik erforderlich (Tastenmatrix abfragen, Zähler der
> nach jeder Eingabe inkrementiert wird, ...)

Für solche Dinge ist 'Das CMOS Kochbuch' immer noch eine gute Quelle.
ISBN 3-88322-002-7
Don Lancaster
Bild 7-18 und Bild 3-34 kombiniert ergibt eine ASCII Tastatur.

von Andre G. (andgst01)


Lesenswert?

Stefan ⛄ F. schrieb:
> Andre G. schrieb:
>> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB
>> problemlos adressiert werden können.
>
> Andre G. schrieb:
>> Mit "diskret" meinte ich "aus Logik-ICs", nicht wirklich komplett
>> diskret aus Transistoren.
>
> Es haben sich schon genug Leute an 4 und 8 Bit abgemüht. Wie willst du
> eigentlich 4 GB RAM diskret "aus Logik-ICs" aufbauen? Hast du schon ein
> Fußballfeld gepachtet und ein den Bau eines Kraftwerks in Auftrag
> gegeben?
>
> Die Taktfrequenz wird dann wohl so um 10 kHz liegen. Und das manuelle
> Befüllen mit Drehschaltern dauert ... wahrscheinlich stirbt die
> Menschheit vorher aus.

Den Speicher mache ich schon aus SRAM chips, nicht aus einzelnen 8 bit 
Register ICs.

Die größten SRAMs die ich finden konnte die halbwegs "einfach" 
ansteuerbar sind haben 4194304 bytes 
(https://www.digikey.at/en/products/detail/alliance-memory-inc/AS6C3216A-55TIN/7101642).
Ja, man bräuchte 1024 Stück von denen um auf die 4GB zu kommen.
Ein solcher IC kostet aber derzeit ca. 21 € un selbst mit Mengenrabatt 
würde das 16920,97 € kosten.
Das ist dann doch schon ein wenig über meinem Budget ...
Gut also ich sehe dass das so viel Speicher wenig problematisch wird ...

Vielleicht ein FPGA oder ein µC der als "Interface" zwischen meineim 
System und einer SD Karte, die gibt es ja in beliebiger Größe für wenig 
Geld.

von Andre G. (andgst01)


Lesenswert?

Matthias S. schrieb:
> Andre G. schrieb:
>> Nachteile:
>> - Viel zusätzliche Logik erforderlich (Tastenmatrix abfragen, Zähler der
>> nach jeder Eingabe inkrementiert wird, ...)
>
> Für solche Dinge ist 'Das CMOS Kochbuch' immer noch eine gute Quelle.
> ISBN 3-88322-002-7
> Don Lancaster
> Bild 7-18 und Bild 3-34 kombiniert ergibt eine ASCII Tastatur.

Interessant, ich denke das Buch werde ich mir zulegen.

von Andre G. (andgst01)


Lesenswert?

Stefan ⛄ F. schrieb:

> Die Taktfrequenz wird dann wohl so um 10 kHz liegen. Und das manuelle
> Befüllen mit Drehschaltern dauert ... wahrscheinlich stirbt die
> Menschheit vorher aus.

Also die manuelle Ein-und Ausgabe ist nur für test und debug - Zwecke.
Das auszuführende Programm wird von einem EEPROM oder SRAM gelesen der 
von einem "modernen PC" aus programmiert werden kann.

Ja, die Taktgeschwindigkeit wird nicht gerade hoch sein.
Ich habe vor die Taktrate einstellbar zu machen.
Für Test und Debugzwecke habe ich auch vor einen "Single Step" Modus zu 
implementieren.

Die maximale Taktfrequenz wird wahrscheinlich bei vielleicht maximal 100 
kHz liegen, wenn alles gut läuft. (ich weiß, das ist sehr sehr 
optimistisch)
Die VGA-Ausgabeschaltung hat eine eigene Taktversorgung, unabhängig vom 
eigentlichen "Prozessortakt".

(Ja, ich habe mir schon Gedanken über das ganze gemacht)

von Stefan F. (Gast)


Lesenswert?

Andre G. schrieb:
> Den Speicher mache ich schon aus SRAM chips, nicht aus einzelnen 8 bit
> Register ICs.

Das ist aber gemogelt.

von Murmeltier (Gast)


Lesenswert?

Was soll das?
1 Milliarde Sekunden sind über 31 Jahre.

Selbst, wenn du für die Eingabe von jedem der 4 Milliarden Speicherwerte 
auch nur Sekunde brauchst, bist du mehrfach tot, bevor du dein Programm 
überhaupt eingegeben hast.

Dabei hast du nur max. 125 ms Zeit, jeden Kippschalter für das Datenwort 
umzustellen.
Angenommen, das Inkrement der Adresse läuft automatisch und du schaffst 
es, in infinitesimaler Zeit, das korrekt Datenwort rauszusuchen und 
abzulesen.

Übrigens: Die ESA rechnet mit einer menschlichen Fehlerrate von 1e-3.
D.h. wenn du dann "fertig" bist mit abtippen, hast du mindestens 4 
Millionen Fehler in deinem Programm.

P.S. welcher Schalter/Taster mindestens 4e9 Schaltspiele?

von Der Klaus (Gast)


Lesenswert?

@Andre G.:

Gibt es schon Fotos vom Aufbau?
CPU?
ALU?
Wenigstens einen 32bit-Adresszähler?
Komm schon, das Lämpchen vom Netzteil wird es doch wohl schon geben ...

von Hermann Kokoschka (Gast)


Lesenswert?

Naturlich ist das ein "sinnloses" Projekt, aber wenn es Spass macht ist 
das doch völlig ok!
Ein Freund von mir hat sowas vor Jahren mal komplett aus TTL gebaut, 
rund um die 74181-ALU herum, auf Lochraster!

Paar Infos des TO kollidieren aber m.E. und sind nicht ganz klar.
Da ist von VGA-Ausgabe und eventuell kleiner Textbearbeitung die Rede, 
andererseits aber auch von "Hex-Schaltern" und "7-Segment-Ausgabe".

-WENN eine VGA-Ausgabe geplant ist, WOZU dann 7-Segment-Ausgabe?
-WENN am Ende sogar kleiner Texteditor laufen soll wird eh irgendeine 
(rudimentäre) Tastatur nötig sein, WOZU dann "Hex-Schalter" zur Eingabe?

Auch das "4GigaByte-Thema" deutet darauf hin, dass der TO noch kein 
klares Konzept hat, mich würden aber Details interessieren, z.B. welche 
Architektur, OpCode-/Befehlsbreite, etc.

Es gibt eine "ZX80/81-Nachbau-Gemeinde", die zwar einen Prozessor nutzt 
(Z80/Derivate) aber immerhin auch OHNE die damalige "ULA" -also diskret- 
mit 2-3Mhz eine ganz brauchbare Textausgabe @Monitor hinbekommt.

Bei Hackaday/YT/Web finden sich zahlreiche Infos, die für den TO 
vielleicht brauchbar sind.

von Murmeltier (Gast)


Lesenswert?

Es gibt den MOS6502 aus rund 4500 discreten Transistoren: 
https://monster6502.com/
Dieser adressiert aber "nur" 65536 Datenwörter.

Hier möchte jemand diskret 4 GB RAM adressieren, ohne sich überhaupt 
bewusst zu sein, was 4.294.967.296 überhaupt für eine riesige Zal ist!

von Thomas W. (Gast)


Lesenswert?

Moin, -

Du bist nicht allein auf dieser Welt, es gibt noch andere Enthusiasten. 
Unter https://www.homebrewcpuring.org/ findest Du Projekte in 
verschiedener Bit-Groesse.

Du solltest aber die 32-Bit noch einmal darueber nachdenken: Ein 
Acht-Bit-Rechner ist (fuer das Hobby) schon ziemlich viel (Hardware, 
Microprogramming, Software), der Aufwand bei 32-Bit ist schon deutlich 
hoeher (und Du lernst nichts neues).

Gruesse, Bonne Chance

Th.

von Murmeltier (Gast)


Lesenswert?

BTW.
Ein DIN-A4-Blatt ist ziemlich genau 0,1 mm dick.
Bedruckst du es mit 80 Zeilen deines Speicherinhaltes, ergibt das nur 
einen Stapel von rund 5,4 km!
Ok, er halbiert sich, wenn du beidseitig ausdruckst.

von Hermann Kokoschka (Gast)


Lesenswert?

Murmeltier schrieb:
> Es gibt den MOS6502 aus rund 4500 discreten Transistoren:
> https://monster6502.com/

Ja, wie bereits erwähnt... (Liest Du die Beiträge..?)

von Thomas W. (Gast)


Lesenswert?

Vielleicht ein wenig Grundlagen fuer Clock, ALU u.s.w. zu lesen (so gar 
mit videos) findest Du unter https://eater.net/

8-Bitter from scratch, kannst Du ja beliebig skalieren...

Gruesse

Th.

von Murmeltier (Gast)


Lesenswert?

Nein!

Als Großrechner noch tatächlich per Hand aus diskreten Bauteilen gebaut 
wurden, hatten sie einen Adressraum von einigen K-Wörtern.
Sie wurden von Mathematikern projektiert (die offensichtlich Ahnung 
davon hatten, was sie taten) und waren dennoch so kompliziert zu 
bedienen, dass ebenfalls nur von solchen bedient und programmiert werden 
konnten.

Hier möchte jemand einen Adressraum von 4G mit Kippschaltern adressieren 
und hat offensichtlich nicht mal den Schimmer einer Ahnung, sonst würde 
er nicht in einem Forum nachfragen.

Noch Mal: Der Kippschalter für das LSB muss mindestens 2 Milliarden 
Schaltspiele aushalten. Welcher Schalter macht das mit???

Der verarscht euch doch nur!

von Thomas W. (Gast)


Lesenswert?

Murmeltier schrieb:
>
> Hier möchte jemand einen Adressraum von 4G mit Kippschaltern adressieren
> und hat offensichtlich nicht mal den Schimmer einer Ahnung, sonst würde
> er nicht in einem Forum nachfragen.
>
> Noch Mal: Der Kippschalter für das LSB muss mindestens 2 Milliarden
> Schaltspiele aushalten. Welcher Schalter macht das mit???
>
> Der verarscht euch doch nur!

Da gehe ich auch davon aus oder hat die Komplexitaet der Aufgabe 
intellektuell noch nicht durchdrungen (ich wollte mal eine eigene 
8-Bit-CPU bauen: Den PC habe ich hinbekommen (16 bit), Clocking auch, 
aber die CPU mit Mikro-Programming war schon sehr aufwaendig.)

Aber ich sollte noch mal auf https://www.homebrewcpuring.org/ hinweisen, 
man kann Rechner auch mit Relais bauen.

Gruesse

Th.

von Andre G. (andgst01)


Lesenswert?

Hermann Kokoschka schrieb:
> Naturlich ist das ein "sinnloses" Projekt, aber wenn es Spass macht ist
> das doch völlig ok!
> Ein Freund von mir hat sowas vor Jahren mal komplett aus TTL gebaut,
> rund um die 74181-ALU herum, auf Lochraster!

Ja die 74181 ALU ist mir durchaus bekannt, ich habe eigentlich vor zwei 
dieser  ALUs in der CPU zu verwenden.
Das Teil ist aber leider sehr schwer zu beschaffen.

Und da das ja ein 74er Baustein ist wäre das OK.
(Ist ja nur kombinatorische Logik, genause wie ein Komparator IC)

Hermann Kokoschka schrieb:
> Paar Infos des TO kollidieren aber m.E. und sind nicht ganz klar.
> Da ist von VGA-Ausgabe und eventuell kleiner Textbearbeitung die Rede,
> andererseits aber auch von "Hex-Schaltern" und "7-Segment-Ausgabe".
>
> -WENN eine VGA-Ausgabe geplant ist, WOZU dann 7-Segment-Ausgabe?
> -WENN am Ende sogar kleiner Texteditor laufen soll wird eh irgendeine
> (rudimentäre) Tastatur nötig sein, WOZU dann "Hex-Schalter" zur Eingabe?

Ich habe nicht vor von Anfang an VGA und Tastatur (über PS2 
Schnittstelle) zu unterstützen.
Das Ganze ist als Langzeitprojekt gedacht das im Laufe der Zeit 
erweitert werden sollte und irgendwann vielleicht mal VGA ausgeben 
können soll.
Einfach anfangen ...

> Auch das "4GigaByte-Thema" deutet darauf hin, dass der TO noch kein
> klares Konzept hat, mich würden aber Details interessieren, z.B. welche
> Architektur, OpCode-/Befehlsbreite, etc.

Ich habe nicht vor 4GB "Programmspeicher" zu haben, sondern 4 GB 
Datenspeicher.


> Es gibt eine "ZX80/81-Nachbau-Gemeinde", die zwar einen Prozessor nutzt
> (Z80/Derivate) aber immerhin auch OHNE die damalige "ULA" -also diskret-
> mit 2-3Mhz eine ganz brauchbare Textausgabe @Monitor hinbekommt.
>
> Bei Hackaday/YT/Web finden sich zahlreiche Infos, die für den TO
> vielleicht brauchbar sind.

Ich weiß.
Aber mit einem fertigen Prozessor zu arbeiten ist irgendwie nicht das 
was ich will.
Der Weg ist das Ziel.

: Bearbeitet durch User
von Andre G. (andgst01)


Lesenswert?

Thomas W. schrieb:
> Vielleicht ein wenig Grundlagen fuer Clock, ALU u.s.w. zu lesen (so gar
> mit videos) findest Du unter https://eater.net/
>
> 8-Bitter from scratch, kannst Du ja beliebig skalieren...
>
> Gruesse
>
> Th.

Kenn ich, die ganzen Videos habe ich schon verschlungen.

von Andre G. (andgst01)


Lesenswert?

Murmeltier schrieb:
> Nein!
>
> Als Großrechner noch tatächlich per Hand aus diskreten Bauteilen gebaut
> wurden, hatten sie einen Adressraum von einigen K-Wörtern.
> Sie wurden von Mathematikern projektiert (die offensichtlich Ahnung
> davon hatten, was sie taten) und waren dennoch so kompliziert zu
> bedienen, dass ebenfalls nur von solchen bedient und programmiert werden
> konnten.
>
> Hier möchte jemand einen Adressraum von 4G mit Kippschaltern adressieren
> und hat offensichtlich nicht mal den Schimmer einer Ahnung, sonst würde
> er nicht in einem Forum nachfragen.
>
> Noch Mal: Der Kippschalter für das LSB muss mindestens 2 Milliarden
> Schaltspiele aushalten. Welcher Schalter macht das mit???
>
> Der verarscht euch doch nur!

Wie gesagt, der "manuelle Eingabe" bzw. das manuelle Überschreiben von 
Werten ist nur zu Test und Debugzwecken gedacht.

Und ich habe nicht vor 4GB große Programme " byte nach byte von Hand 
einzutippen".
Der Programmspeicher wird ein EEPROM sein in den ein Programm mit einem 
EEPROM Programmer geladen werden kann.
Die 4GB hätten als "Datenspeicher" dienen sollen.

Aber wahrscheinlich werden die 4GBs wohl nichts, nicht ohne "moderne 
technische Hilfsmittel " (µC + SD-Speicherkarte, oder so)

Ich "verarsche" niemanden, ich habe mich nur nicht deutlich genug 
ausgedrückt. (ich wollte kein halbes Buch schreiben um meine 
ursprüngliche Frage zu erläutern aber trotzdem ein paar Hintergrundinfos 
geben und nicht nur "wie realisiere ich eine 32 bit Eingabe?")

von Thomas W. (Gast)


Lesenswert?

Andre G. schrieb:
> Hermann Kokoschka schrieb:

> Ja die 74181 ALU ist mir durchaus bekannt, ich habe eigentlich vor zwei
> dieser  ALUs in der CPU zu verwenden.
> Das Teil ist aber leider sehr schwer zu beschaffen.

Make offer: Ich habe vier 74LS181 hier liegen (fuer die selbstbau CPU 
die nie fertig wurde).

Th.

von Andre G. (andgst01)


Lesenswert?

Murmeltier schrieb:
> Es gibt den MOS6502 aus rund 4500 discreten Transistoren:
> https://monster6502.com/
> Dieser adressiert aber "nur" 65536 Datenwörter.
>
> Hier möchte jemand diskret 4 GB RAM adressieren, ohne sich überhaupt
> bewusst zu sein, was 4.294.967.296 überhaupt für eine riesige Zal ist!

Ja vielleicht weil ich noch nicht viel Erfahrung mit solchen Projekten 
habe.

Und vielleicht weil ich nur "moderne Computer und Speicher" kenne, wo 4 
GB nicht gerade viel Speicher ist.

Vielleicht habe ich dadurch eine etwas verzerrte Sicht wie aufwendig 
große Speicher wirklich sind.

Vielleicht aber auch weil wenn man beim Händler seiner Wahl nach 
Speicher ICs sucht und die Einträge nach Speichergröße sortiert man da 
durchaus Speicher-ICs mit hunderten Mb oder einigen Gb findet.

von Thomas W. (Gast)


Lesenswert?

Andre G. schrieb:
>> Auch das "4GigaByte-Thema" deutet darauf hin, dass der TO noch kein
>> klares Konzept hat, mich würden aber Details interessieren, z.B. welche
>> Architektur, OpCode-/Befehlsbreite, etc.
>
> Ich habe nicht vor 4GB "Programmspeicher" zu haben, sondern 4 GB
> Datenspeicher.

Aber Du redest/schreibst von 4GB Adressraum. Dazu brauchst Du latuernich 
einen 32-Bit PC, mit den ueblichen LS161 brauchst Du acht Stueck um den 
PC darzustellen. Du musst latuernich auch adressieren koennen (so ein 
freundlichen  LD A,(0x12345678)), also Deinen Akku irgendwie in das 1. 
bis 4. Bytes des 32-bit-Wortes reinfalten.

Nicht unmoeglich, aber auch nicht trivial. Oder alles kleiner und dann 
den "Massenspeicher" ueber Port anbinden.

Gruesse

Th.

von Andre G. (andgst01)


Lesenswert?

Thomas W. schrieb:
> Andre G. schrieb:
>>> Auch das "4GigaByte-Thema" deutet darauf hin, dass der TO noch kein
>>> klares Konzept hat, mich würden aber Details interessieren, z.B. welche
>>> Architektur, OpCode-/Befehlsbreite, etc.
>>
>> Ich habe nicht vor 4GB "Programmspeicher" zu haben, sondern 4 GB
>> Datenspeicher.
>
> Aber Du redest/schreibst von 4GB Adressraum. Dazu brauchst Du latuernich
> einen 32-Bit PC, mit den ueblichen LS161 brauchst Du acht Stueck um den
> PC darzustellen. Du musst latuernich auch adressieren koennen (so ein
> freundlichen  LD A,(0x12345678)), also Deinen Akku irgendwie in das 1.
> bis 4. Bytes des 32-bit-Wortes reinfalten.

Du meinst das 32 bit Wort in den Akku hineinfalten, nicht "den 8 bit 
Akku in den 32 bit wert hineinfalten".
"Hineinfalten" impliziert nämlich dass etwas großes in etwas kleiners 
umgewandelt wird ...

Und du meinst wahrscheinlich "1. bis 8. Bit".

Ja, das wird natürlich nichts mit "einer Operation pro Taktzyklus", 
klar.
Aber ich denke ich bekomme das schon irgendwie hin.

von Murmeltier (Gast)


Lesenswert?

Vorschlag zur Güte:
Besorg dir aus der Bucht nen alten C64-er für 30 € oder so und tipp mal 
ein paar Programme als Hexcode aus der gleichnamigen Zeitschrift ab.
Dann kannst du dir immer noch überlegen, ob du per Kippschalter 
"programmieren" möchtest.

von Thomas W. (Gast)


Lesenswert?

Du hattest ja geschrubt, dass Du eine 8-Bit-CPU bauen willst. Dann musst 
Du natuerlich das Byte aus dem Akku (mehr hast Du nicht) irgendwo 
hinspeichern, so dass Du Deine 32-Bit-Adresse fuer den Speicher 
bekommst. Jetzt kommt alles aus dem Gedaechtnis, aber Du koenntest mal 
die Funktionsweise der 6502 angucken, die hatten die Pointer-Verwaltung 
(X und Y-Register, Zero-Page Addressing) ganz schlau geloest (zumindest 
1980).

Relativ gut war auch der Befehlssatz (die Orthogonalitaet war schon gut 
geloest). Das musst Du aber noch mal nachlesen (zulange her).

Du musst Dir auch ueberlegen, was willst Du denn mit dem grossen 
Speicher machen: Du wirst froh sein wenn Du erstmal einen Monitor zum 
laufen bekommst.

Viele Gruesse, viel Glueck

Th.

von michael_ (Gast)


Lesenswert?

Andre G. schrieb:
> Und vielleicht weil ich nur "moderne Computer und Speicher" kenne, wo 4
> GB nicht gerade viel Speicher ist.

Was ist modern?

Nimm dir erst mal einen kleinen Tiny zum Vorbild.
Davon hast du sicher noch nie was gehört.

von Volker B. (Firma: L-E-A) (vobs)


Lesenswert?

Andre G. schrieb:
(...)
> Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den
> Adressbus.
(...)
> Wie gesagt, jeder Lösungsansatz hat seine Vor - und Nachteile, deshalb
> dachte ich ich frage mal hier wie ihr das Problem lösen würdet.

Ich liebe diese sog. Daumenrad-Schalter (neudeutsch: thumbwheel switch).
Die gibt's nicht nur in BCD- sondern auch in Hexadezimal-Codierung.

https://www.mouser.de/c/electromechanical/switches/thumbwheel-switches-pushwheel-switches/



Grüßle
Volker

von Thomas W. (Gast)


Lesenswert?

Moin, -

den kennst Du bestimmt auch: https://fritzler-avr.de/spaceage2/index.htm

Hast Du denn schon eine Plan, wie Du die Opcodes dekodieren willst, das 
Steuerwerk, ALU, Speicher realisieren willst?

Gruesse

Th.

von Andre G. (andgst01)


Lesenswert?

michael_ schrieb:
> Andre G. schrieb:
>> Und vielleicht weil ich nur "moderne Computer und Speicher" kenne, wo 4
>> GB nicht gerade viel Speicher ist.
>
> Was ist modern?
>
> Nimm dir erst mal einen kleinen Tiny zum Vorbild.
> Davon hast du sicher noch nie was gehört.

Doch, ich kenne die Tinys von Atmel.
Und auch die Megas.
Aber was haben die hiermit zu tun?
Außer dass es sich auch um "relativ" einfache Computer handelt.

Ich meine mit "modernen Computern" zum Beispiel das Ding das derjenige 
der das hier liest gerade vor sich hat.

von Sinus T. (micha_micha)


Lesenswert?

Stefan ⛄ F. schrieb:
> Andre G. schrieb:
>> Den Speicher mache ich schon aus SRAM chips, nicht aus einzelnen 8 bit
>> Register ICs.
>
> Das ist aber gemogelt.

DAs ist nicht gemogelt, das war zu Zeiten, als Computer noch aus TTL-ICs 
bestanden (PDP8, PDP11, Nova, HP1000) auch nicht anders. Mach 
Kernspeicher kam MOS, allerdings selten statisch, sondern DRAMs.

von Sinus T. (micha_micha)


Lesenswert?

Andre G. schrieb:
> Ja die 74181 ALU ist mir durchaus bekannt, ich habe eigentlich vor zwei
> dieser  ALUs in der CPU zu verwenden.
> Das Teil ist aber leider sehr schwer zu beschaffen.

Nein, die sind nicht schwer zu beschaffen, jedenfalls im Moment nicht. 
Habe hier gerade 10 Stück gekauft, alle getestet, sind einwandfrei:
https://www.ebay.de/itm/265335531711

von Andre G. (andgst01)


Lesenswert?

Murmeltier schrieb:
> Vorschlag zur Güte:
> Besorg dir aus der Bucht nen alten C64-er für 30 € oder so und tipp mal
> ein paar Programme als Hexcode aus der gleichnamigen Zeitschrift ab.
> Dann kannst du dir immer noch überlegen, ob du per Kippschalter
> "programmieren" möchtest.

Wie ich schon geschrieben habe, die manuelle Eingabe wird nur zu 
Debug-Zwecken verwendet, um zum Beispiel auf eine bestimmte 
Speicheradresse direkt zugreifen zu können und einen Wert dort 
auszulesen oder zu überschreiben.

von Andre G. (andgst01)


Lesenswert?

Sinus T. schrieb:
> Stefan ⛄ F. schrieb:
>> Andre G. schrieb:
>>> Den Speicher mache ich schon aus SRAM chips, nicht aus einzelnen 8 bit
>>> Register ICs.
>>
>> Das ist aber gemogelt.
>
> DAs ist nicht gemogelt, das war zu Zeiten, als Computer noch aus TTL-ICs
> bestanden (PDP8, PDP11, Nova, HP1000) auch nicht anders. Mach
> Kernspeicher kam MOS, allerdings selten statisch, sondern DRAMs.

Ist doch egal ob das "rein" 74er Chips sind oder auch hin und wieder mal 
was "neues".
Es ist mein Projekt, ich kann tun und lassen was ich will, oder?
;-)

von Andreas B. (bitverdreher)


Lesenswert?

Andre G. schrieb:
> Mit 32 Bit kann man 4.294.967.296 Adressen ansprechen.

Andre G. schrieb:
> Die maximale Taktfrequenz wird wahrscheinlich bei vielleicht maximal 100
> kHz liegen,

Rechnen wir doch mal kurz: Das wären knapp 12h für den gesamten 
Speicher, um pro Taktzyklus eine Speicherzelle zu addressieren.
Selbst wenn Deine Super Duper 8-Bit CPU die 32-Bit Adressen irgendwie in 
8 Taktzyklen herbeizaubern könnte, wären das dann min. 4 Tage für einen 
kompletten Speicherdurchgang.
Ah, ja, debuggen willst Du ja auch noch. Viel Spaß ;-)

Ehrlich: Bevor Du dir Gedanken über irgendwelche Frontplatten machst, 
überdenke erst einmal Dein Konzept.
Schau Dir vorhandene 8-Bit CPUs an und überlege warum das so gemacht 
wurde und nicht anders. Und gehe bitte nicht davon aus, daß die Jungs in 
den 70ern irgendwie doof waren. Ich befürchte, Dir fehlt es massiv an 
Grundlagen

Andre G. schrieb:
> Es ist mein Projekt, ich kann tun und lassen was ich will, oder?
> ;-)
Das steht Dir frei. Dann mußt Du aber damit leben, daß bei 
Veröffentlichung eines solchen Projekts einige hier an Deinen 
Geisteszustand zweifeln.
Wobei ich nicht glaube, daß Du in diesem Leben damit fertig wirst 
(Jedenfalls nicht, wenn Dein Konzept so bleibt).

von Jobst M. (jobstens-de)


Angehängte Dateien:

Lesenswert?

Um die ursprüngliche Frage zu beantworten: Siehe Bild.
Nach den Ausführungen des Professors ist DAS ein Computer.
(Nachdem er abwinkend das Smartphone des Gefangenen beiseite legte.)

Mich würde sehr die geplante Anwendung interessieren, die zum einen 4GB 
Datenspeicher erfordert und zum anderen ein kühlschrankgroßes Gerät mit 
hohem Stromverbrauch akzeptiert.

Ach, es ist nur um zu lernen?
Das geht auch kleiner.
Und man hat viel schneller bzw. überhaupt die Chance auf ein 
Erfolgserlebnis.

Du brauchst die 4GB nur, um Daten zu speichern?
Dann binde sie als Peripherie an.
Ich habe einen Z80-Rechner, in dem 4MB (oder waren es 16MB? - ist auch 
egal) DRAM SIMM drin stecken. Das Ding ist ein Druckerpuffer aus alten 
Tagen.
Wie Du siehst, kann man mehr als 64kB Daten an dem Ding verwalten.

Wie willst Du die Programme für das Ding schreiben?
Hast Du schon einen Compiler?
Steht überhaupt schon der Befehlssatz und die Kernarchitektur fest?

Hast Du schon mal ein 8-Bit System (Z80, 8080, 6502, 6800 oder 8051 mit 
externem Programm- und Datenspeicher) aufgebaut?
Das solltest Du vorher schon mal gemacht haben.

Gruß
Jobst

von MaWin (Gast)


Lesenswert?

Murmeltier schrieb:
> Hier möchte jemand diskret 4 GB RAM adressieren, ohne sich überhaupt
> bewusst zu sein, was 4.294.967.296 überhaupt für eine riesige Zal ist!

Ja, früher war das eine grosse Zahl, heute bekommt Microsoft das mit 
seinem Windows gefüllt ohne eine einzige sinnvolle Funktion darin 
abzubilden.

Wir erinnern uns: Windows ist das 'Betriebssystem', bei dem 2 Aufträge 
die man gleichzeitig startet (das kopieren eines Dateibaums an eine 
andere Stelle) LANGSAMER wird als wenn man beide Aufträge nacheinander 
ausführen lässt. Jeder Betriebssystementwickler der 60er, 70er Jahre 
kratzt sich dabei am Kopf.

von Stefan F. (Gast)


Lesenswert?

Hermann Kokoschka schrieb:
> rund um die 74181-ALU herum, auf Lochraster!

Das its doch auch wieder gemogelt.

Wenn man an allen komplizierten Stellen auf hoch integrierte Spezial 
IC's ausweicht, kann man auch gleich einen normalen Mikroprozessor 
verwenden. Zu meiner Zeit war der Z80 für Lehrzwecke recht beliebt.

Heute würde ich aber niemanden mehr dazu drängen, heute benutzt man 
Mikrocontroller. Was im Innern passiert, mann man sich anhand von 
Animationsfilmen und Simulatoren aneignen. Da gibt es großartige 
Web-Seiten, die den Kristall des Chips darstellen und dort im 
Single-Step Modus jedes einzelne Signal farblich hervor heben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andre G. schrieb:
> Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den
> Adressbus.
Nein, das eigentliche Problem ist der abwegig breite Adressbus.
> 32 Schalter
> Nachteile:
> - Einzugebende Werte müssen erst in binäre Werte umgerechnet werden
Umrechnen?
Gibt es noch "binärere" Werte als die Schalterstellungen 0 und 1?
Wenn ich eine CPU designe, dann "denke" ich in Hex. Da muss ich zwischen 
1011 und 'B' nichts umrechnen. Wenn ich das Eine sehe, sehe ich das 
Andere.

Andre G. schrieb:
> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB
> problemlos adressiert werden können.
> Derzeit beschäftige ich mich mit dem Designen der Frontplatte.
> Über diese sollen Daten "von Hand" eingegeben
Andre G. schrieb:
> Das Ganze ist als Langzeitprojekt gedacht
Das muss es auch sein, denn wenn du "von Hand" 1 Datenwort zügig in 1 
Sekunde eingibst, dann wird es 133 Jahre dauern, bis du den Speicher 
vollgetippt hast.

Aber eine CPU mit 8 Bit Registerbreite an einem 32 Bit Bus ist absolut 
umständlich. Da brauche ich ja schon 4 einzelne Registerzugriffe, um den 
Adresspointer für den Speicherzugriff vorzubereiten. Diese Überlegungen 
sind also völlig abwegig.

Wenn ich (in meinem Fall in einem FPGA) wieder mal eine CPU baue, dann 
macht die genau und nur das, was ich an dieser Stelle brauche. Und sie 
macht das auch in ihrer eigenen "Sprache". Sie ist letztlich ein 
Zustandsautomat, der aus einem RAM Kommandos abholt und abarbeitet. 
Solche CPUs sind oft nur ein paar hundert Flipflops "groß".

Wenn ich eine richtige universelle CPU mit 32-Bit-Bus will, dann kaufe 
ich mir eine. Ich bin ja nicht so verwegen, zu meinen, ich könnte das, 
was zigtausend Ingenieure in abermillionen Mannstunden vor mir 
hinbekommen haben, selber in meinem Bastelkeller einfach so als 
Bastelprojekt aufziehen.

Also meine Tipp: fang mal ganz klein mit einem 4-Bit Rechner an. Dabei 
lernst du dann deine und die Grenzen der Technik kennen und hast die 
reale Chance, das Ding tatsächlich mal zum Laufen zu bekommen.

: Bearbeitet durch Moderator
von Andre G. (andgst01)


Lesenswert?

Jobst M. schrieb:

> Du brauchst die 4GB nur, um Daten zu speichern?
> Dann binde sie als Peripherie an.

Also so ähnlich wie bei einem echten PC?
Der kann ja auch nur 4 GB adressieren wenn es ein 32 bit System ist und 
trotzdem kann man daran 10 TB Festplatten verwenden.

Ich habe einen Ansatz wie ich das machen würde:
Sagen wir ich habe 8 bit zur Verfügung und möchte einen 32 bit Wert 
"ausgeben" (um damit einen Speicher anzusprechen).
Dann schicke ich einfach einzelne Bytes and den Speicher und der setzt 
diese dann zu einem 32 bit großen "Wort" zusammen (ähnlich wie ein 
Schieberegister, da kann man auch seriell Daten reinschicken und sie 
parallel auslesen)


Jobst M. schrieb:
> Wie willst Du die Programme für das Ding schreiben?
> Hast Du schon einen Compiler?
> Steht überhaupt schon der Befehlssatz und die Kernarchitektur fest?

Nein ich habe noch keinen Compiler dafür geschrieben.
Ja, der Befehlssatz steht schon fest.
(Wird aber wohl noch etwas überarbeitet werden müssen da das ganze doch 
wohl nur 8 bits adressieren können wird)

von Andre G. (andgst01)


Lesenswert?

Lothar M. schrieb:

> Andre G. schrieb:
>> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass circa 4 GB
>> problemlos adressiert werden können.
>> Derzeit beschäftige ich mich mit dem Designen der Frontplatte.
>> Über diese sollen Daten "von Hand" eingegeben
> Andre G. schrieb:
>> Das Ganze ist als Langzeitprojekt gedacht
> Das muss es auch sein, denn wenn du "von Hand" 1 Datenwort zügig in 1
> Sekunde eingibst, dann wird es 133 Jahre dauern, bis du den Speicher
> vollgetippt hast.

Zum hunderttausendsten mal:
Der "große Speicher" wird im Normalfall nicht "von Hand" befüllt.
Das händische Eingeben und Auslesen ist nur für Testzwecke gedacht.
("Ist der Wert an der Speciheradresse x wirklich y, oder habe ich da was 
falsch implementiert?")


Lothar M. schrieb:

> Wenn ich eine richtige universelle CPU mit 32-Bit-Bus will, dann kaufe
> ich mir eine. Ich bin ja nicht so verwegen, zu meinen, ich könnte das,
> was zigtausend Ingenieure in abermillionen Mannstunden vor mir
> hinbekommen haben, selber in meinem Bastelkeller einfach so als
> Bastelprojekt aufziehen zu können.

Ja aber der Nachteil an "fertigen CPUs" ist dass sie meist ihre (für 
mich) unergründlichen Eigenarten haben.
Wenn man etwas selbst macht dann weiß man genau warum das so gemacht 
wurde und nicht anders.
Bei "fertigen" CPUs denke ich mir oft "was soll das, könnte man das 
nciht einfacher machen (und dafür vielleicht ein wenig weniger 
Performance haben)?".

von Thomas W. (Gast)


Lesenswert?

Moin, -

wenn Du Dir wirklich eine CPU selber bauen willst gucke wie andere das 
geloest haben. Das Suchwort ist "computation structures", ein kleines 
Buechlein ist Stephen A. Ward, Robert H. Halstead, Jr., computation 
structures, 1990 (vom MIT). Oder Wilhelm G. Spruth, The Design of a 
microprocessor, Springer, 1989 (ein bischen IBM-Lastig fuer meinen 
Geschmack).

Oder M. Morris Mano, Computer System Architecture, Prentice Hall, 1991. 
Im Buch sind Problems fuer den Leser, es gibt auch ein Loesungsbuch.

Und wenn Du bei https://www.homebrewcpuring.org/ anfaengst findest Du 
ein paar sehr schoene Perlen.

Aber vielleicht reicht ein 16Bit Adressbus fuer den Anfang :-(

Gruesse,

Th.

von Stefan F. (Gast)


Lesenswert?

Andre G. schrieb:
> Der "große Speicher" wird im Normalfall nicht "von Hand" befüllt.

Ok. Gehen wir also mal davon aus, dass dein Mikrocomputer mit 100 kHz 
getaktet wird und ein recht effizientes Programm hat das mit 20 
Taktzyklen ein Byte irgendwoher holt und in den Massenspeicher schreibt.

Das sind dann 5 Kilobytes pro Sekunde, oder 10 Tage für 4 GB. Das 
Auslesen dauert nochmal so lange. Was könnten das für Daten sein, wo das 
Sinn ergibt?

Ich habe immer noch das Gefühl, dass du dich unbewusst in phantastischen 
Größenordnungen bewegst. Ich käme schließlich auch nicht auf die Idee, 
meinen Laptop mit 64 Terabyte RAM auszustatten.

von Murmeltier (Gast)


Lesenswert?

Programmier doch erst mal einen CPU-Emulator in einer beliebigen 
Hochsprache, meinet wegen in LISP.
Synthetisier dann mal eine CPU in VHDL.
Dabei lernst du Größenordnungen mehr, als mit "Kippschaltern".

von Andre G. (andgst01)


Lesenswert?

Stefan ⛄ F. schrieb:
> Andre G. schrieb:
>> Der "große Speicher" wird im Normalfall nicht "von Hand" befüllt.
>
> Ok. Gehen wir also mal davon aus, dass dein Mikrocomputer mit 100 kHz
> getaktet wird und ein recht effizientes Programm hat das mit 20
> Taktzyklen ein Byte irgendwoher holt und in den Massenspeicher schreibt.
>
> Das sind dann 5 Kilobytes pro Sekunde, oder 10 Tage für 4 GB. Das
> Auslesen dauert nochmal so lange. Was könnten das für Daten sein, wo das
> Sinn ergibt?

Ich habe lieber "zu viel Speicher" und brauche dann nur einen Teil davon 
als dass ich plötzlich merke "oh ich habe zu wenig Speicher".

Ja, ich weiß dass für viele Leute genau das der Reiz an solch 
"primitiven" System ist: Man muss sehr kreativ und effizient sein um 
etwas vernünftiges damit zu realisieren.

Aber das ist nicht so mein Ding ...

Ich habe lieber "mehr als genug Speicher".

von JWST (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Das sind dann 5 Kilobytes pro Sekunde, oder 10 Tage für 4 GB. Das
> Auslesen dauert nochmal so lange. Was könnten das für Daten sein, wo das
> Sinn ergibt?

Aus aktuellem Anlass:
Das James Webb Space Teleskop sendet seine Daten mit 40kb/s, i.e. 5 
kB/s, die über das DSN empfangen werden - passt also ziemlich gut.

von Andre G. (andgst01)


Lesenswert?

Murmeltier schrieb:

> Synthetisier dann mal eine CPU in VHDL.
> Dabei lernst du Größenordnungen mehr, als mit "Kippschaltern".

Ja, ich bin unter anderem auch gerade dabei mich mit FPGAs zu 
beschäftigen (VHDL).

Ich muss schon zugeben dass das ein wenig praktischer ist als diskrete 
Hardware.
Da muss man nicht gleich zwanzig Leiterplatten neu verdrahten wenn man 
merkt dass man einen Fehler gemacht hat.

von Stefan F. (Gast)


Lesenswert?

Andre G. schrieb:
> Ich habe lieber "zu viel Speicher" und brauche dann nur einen Teil davon
> als dass ich plötzlich merke "oh ich habe zu wenig Speicher".

Ja gut, aber du übertreibst gigantisch. Hast du dir mal Gedanken 
gemacht, wie viel Strom das Konstrukt aufnehmen wird, wie viele 
Leitungen und Leitungstreiber du brauchst und wie sich das alles negativ 
auf die Taktfrequenz auswirkt?

Massen-Daten lagerte man schon immer auf andere Geräte aus. Früher waren 
es Magnetbänder, dann Festplatten, heute würde ich Flash Speicher in 
irgendeiner gängigen Variante (z.B. als SD Karte) verwenden.

Es wäre sogar realistisch denkbar, die Daten über eine serielle 
Verbindung auf deinem PC zu speichern oder über einen Netzwerkadapter in 
einer Cloud.

Ich will dir den Spaß nicht versauen, aber in den letzten 15 Jahren 
haben hier schon viele Leute ähnliche Projekte bekommen (allerdings mit 
realistischer RAM Größe). Aber nur einer hat es zu einem 
funktionierenden Ende gebracht. Soweit ich weiß, steht das Ding jetzt in 
einem Museum zur Schau.

von Rüdiger B. (rbruns)


Lesenswert?

So ähnlich wie mein erster Computer:
https://de.wikipedia.org/wiki/IMSAI_8080

von Stefan F. (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> haben hier schon viele Leute ähnliche Projekte bekommen

begonnen meinte ich.

von Der Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Andre G. schrieb:
> Ja die 74181 ALU ist mir durchaus bekannt, ich habe eigentlich vor zwei
> dieser  ALUs in der CPU zu verwenden.
> Das Teil ist aber leider sehr schwer zu beschaffen.

Soso - du „hast also vor“. Implizit bedeutet das: Du hast noch nichts, 
überhaupt gar nichts, Nada, Null-Komma-Null! Außer vielleicht feuchte 
Träume von einer „fetten Schalttafel mit Blinke-Lämpchen“ dran ...

Vermutlich weißt du noch nicht mal, wie weit es alleine von einer ALU zu 
einer CPU ist ...

Mach dich mal schlau über Rechner-Architekturen (Von-Neumann vs. 
Harward, Super-Harward und ...). An deiner Stelle würde ich mir als 
nächstes Sorgen machen und Control Unit und ev. Sequencer.

https://en.wikipedia.org/wiki/Control_unit, hauptsächlich aber die dort 
aufgeführten Links könnten dich weiter bringen. Ich vermute jedoch 
stark, dass du das gar nicht willst bzw. nicht den Biss dazu hast.

Allgemein: Google ist dein Freund, dort jeweils die Weblinks und 
Fußnoten.

Sorry Andre, aber so seh' ich das.
Der Klaus


PS: Der Bitslice 74181 ist/war auch als FLH401 im Handel. Außer diesem 
gibt/gab es noch sicher 20 andere Chips am Markt ...

PPS: Sagt dir der "home-built computers web-ring" etwas? Vermutlich 
nicht <sigs> ...

PPS: Ein Foto wollte ich dir nicht vorenthalten - siehe Anlage

von Jobst M. (jobstens-de)


Lesenswert?

Mir kommt gerade der bo8 in den Kopf - ich bin raus hier ...
Beitrag "Befehlssatz der bo8-CPU - was ist gut, was ist schlecht"

Gruß
Jobst

: Bearbeitet durch User
von Rüdiger B. (rbruns)


Lesenswert?

Klar wenn ich ein Auto Entwickle designe ich zuerst den Tacho, der Rest 
kommt dann von selbst.

von Stefan F. (Gast)


Lesenswert?

Rüdiger B. schrieb:
> Klar wenn ich ein Auto Entwickle designe ich zuerst den Tacho, der Rest
> kommt dann von selbst.

Der Tacho bestimmt schließlich auch, wie schnell das Auto fahren kann 
(dachte ich mal, als ich etwa 5 Jahre jung war).

von Rüdiger B. (rbruns)


Lesenswert?

Hast du dir diese Seite schon amgesehen:
https://apollo181.wixsite.com/apollo181/index

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
> Und vielleicht weil ich nur "moderne Computer und Speicher"
> kenne, wo 4 GB nicht gerade viel Speicher ist.

Der PC hat einen Adressraum von 20 Bit (= 1 MB), der PC/AT hat einen 
Adressraum von 24 Bit (= 16 MB). Auf einem solchen System sind 4 MB RAM 
schon "unendlich viel". Beides sind 16 Bit-Rechner, die mit diesen 
Speichermengen zumindest ansatzweise umgehen können.

> Vielleicht habe ich dadurch eine etwas verzerrte Sicht wie
> aufwendig große Speicher wirklich sind.

Ja. Und du solltest dagegen etwas tun, statt dich in eine Idiotie zu 
begeben, bei der du am Ende nur gelernt hast, dass du zu dumm warst.

> Vielleicht aber auch weil wenn man beim Händler seiner Wahl nach
> Speicher ICs sucht und die Einträge nach Speichergröße sortiert man da
> durchaus Speicher-ICs mit hunderten Mb oder einigen Gb findet.

SRAM in DIP-Bauform gibt es bis 512 KB. Für einen 8 Bit-Computer reicht 
einer davon aus. Bleiben bei 20 Bit-Adressierung noch 512 KB Adressraum 
übrig. VGA (640x480x8) braucht 300 KB für den VRAM, gerundet 384 KB, ein 
64 KB ROM ist immens groß und die restlichen 64 KB reichen für alle 
anderen Peripheriegeräte vollkommen aus.

Andre G. schrieb:
> Ich habe lieber "zu viel Speicher" und brauche dann nur einen Teil davon
> als dass ich plötzlich merke "oh ich habe zu wenig Speicher".

Also doch dumm.

> Ja, ich weiß dass für viele Leute genau das der Reiz an solch
> "primitiven" System ist: Man muss sehr kreativ und effizient sein um
> etwas vernünftiges damit zu realisieren.
>
> Aber das ist nicht so mein Ding ...
>
> Ich habe lieber "mehr als genug Speicher".

Du bist also dumm und ein Troll? Habe ich das richtig verstanden? Geh 
in den Laden und kauf dir einen PC. Da ist "mehr als genug Speicher" 
drin.

von Andre G. (andgst01)


Lesenswert?

Der Klaus schrieb:
> Andre G. schrieb:
>> Ja die 74181 ALU ist mir durchaus bekannt, ich habe eigentlich vor zwei
>> dieser  ALUs in der CPU zu verwenden.
>> Das Teil ist aber leider sehr schwer zu beschaffen.
>
> Soso - du „hast also vor“. Implizit bedeutet das: Du hast noch nichts,
> überhaupt gar nichts, Nada, Null-Komma-Null!

Doch, ich habe schon "etwas".
Ich fange nur nicht an Bauteile zusammenzulöten wenn ich mir nicht ganz 
sicher bin dass ich das wirklich so machen will.


Der Klaus schrieb:

> Vermutlich weißt du noch nicht mal, wie weit es alleine von einer ALU zu
> einer CPU ist ...

Doch, ich habe schon ein wenig Ahnung.
Da sind noch Intruktionsdekoder, Programmzähler, die Akkumulatoren, die 
ganze Kontrolllogik, ...


Der Klaus schrieb:

> Mach dich mal schlau über Rechner-Architekturen (Von-Neumann vs.
> Harward, Super-Harward und ...). An deiner Stelle würde ich mir als
> nächstes Sorgen machen und Control Unit und ev. Sequencer.

Ja, das sagt mir schon etwas.
Ich werde die Harvard Architektur verwenden, also getrennte Speicher für 
Daten und das auszuführende Programm.


Der Klaus schrieb:

> PS: Der Bitslice 74181 ist/war auch als FLH401 im Handel. Außer diesem
> gibt/gab es noch sicher 20 andere Chips am Markt ...

Danke!

von Erich (Gast)


Lesenswert?

> Ich werde die Harvard Architektur verwenden,
> also getrennte Speicher für Daten
> und das auszuführende Programm.

Also 2x 4GB

von Andre G. (andgst01)


Lesenswert?

S. R. schrieb:
> Andre G. schrieb:
>> Vielleicht aber auch weil wenn man beim Händler seiner Wahl nach
>> Speicher ICs sucht und die Einträge nach Speichergröße sortiert man da
>> durchaus Speicher-ICs mit hunderten Mb oder einigen Gb findet.
>
> SRAM in DIP-Bauform gibt es bis 512 KB. Für einen 8 Bit-Computer reicht
> einer davon aus. Bleiben bei 20 Bit-Adressierung noch 512 KB Adressraum
> übrig. VGA (640x480x8) braucht 300 KB für den VRAM, gerundet 384 KB, ein
> 64 KB ROM ist immens groß und die restlichen 64 KB reichen für alle
> anderen Peripheriegeräte vollkommen aus.

Klar, in DIP Bauform gibt es nichts "großes".
(Was ja irgendwie auch witzig ist, es gibt keine großen Speicher in 
großem Gehäuse ... )

> Andre G. schrieb:
>> Ich habe lieber "zu viel Speicher" und brauche dann nur einen Teil davon
>> als dass ich plötzlich merke "oh ich habe zu wenig Speicher".
>
> Also doch dumm.

Was hat das mit Dummheit zu tun?
Tut mir leid aber ich verstehe nicht was vorausschauende Planung mit 
Dummheit zu tun hat.

Oder hast du für die Lagerung von Bauteilen nur genauso viele Kisten 
oder Schubladen wie du brauchst?

Oder kaufst du genau die Anzahl an Bauteile die du für ein Projekt 
brauchst und nicht ein paar mehr falls man die in der Zukunft noch für 
etwas benötigt?


Der Klaus schrieb:

>> Ja, ich weiß dass für viele Leute genau das der Reiz an solch
>> "primitiven" System ist: Man muss sehr kreativ und effizient sein um
>> etwas vernünftiges damit zu realisieren.
>>
>> Aber das ist nicht so mein Ding ...
>>
>> Ich habe lieber "mehr als genug Speicher".
>
> Du bist also dumm und ein Troll? Habe ich das richtig verstanden? Geh
> in den Laden und kauf dir einen PC. Da ist "mehr als genug Speicher"
> drin.

Ich verstehe nicht was meine Einstellung mit Dummheit und Trollerei zu 
tun hat.
Kannst du mir das bitte erklären?

von Andre G. (andgst01)


Lesenswert?

Erich schrieb:
>> Ich werde die Harvard Architektur verwenden,
>> also getrennte Speicher für Daten
>> und das auszuführende Programm.
>
> Also 2x 4GB

Nein, der Programmspeicher muss nicht groß sein.
Ein paar kB sind ja schon groß für wirklich selbstgeschriebene 
Programme.

von Thomas Z. (usbman)


Lesenswert?

Andre G. schrieb:
> Ich habe lieber "zu viel Speicher" und brauche dann nur einen Teil davon
> als dass ich plötzlich merke "oh ich habe zu wenig Speicher".

hast du dir schon mal Gedanken darüber gemacht welche Art Speicher das 
sein soll? Statisch scheidet wohl aus sonst brauchst du einen Schrank 
nur für die Speicher. Also dynamisch DRams gibts nicht mehr also SD Ram 
wofür du einen SD Ram Controller brauchst. Sonst ist das ein Speicher 
bei dem deine Daten im Nirvana landen.
Es hat schon Gründe warum eine 8Bit CPU nur einen 16Bit Addressbus hat.

von Hans-Georg L. (h-g-l)


Lesenswert?

JWST schrieb:
> Stefan ⛄ F. schrieb:
>> Das sind dann 5 Kilobytes pro Sekunde, oder 10 Tage für 4 GB. Das
>> Auslesen dauert nochmal so lange. Was könnten das für Daten sein, wo das
>> Sinn ergibt?
>
> Aus aktuellem Anlass:
> Das James Webb Space Teleskop sendet seine Daten mit 40kb/s, i.e. 5
> kB/s, die über das DSN empfangen werden - passt also ziemlich gut.

Da geht noch mehr, bzw weniger ;-) Die  Voyager Sonden senden mit 0,016 
Kbit/s.

Zum Thema .. Ich hatte 1975 eine 16 bit CPU mit je 2 Platinen a 8 bit, 
mit 74181 als ALU und 74170 oder 74189 als Register gebaut. Ram war mit 
2114 1k x 4 Chips und Batterie gepuffert. Bevor du überhaupt über GB 
Datenspeicher nach denkst solltest du dir Gedanken über die 
Ablaufsteuerung machen.
Habe später leider alles bis auf die Ram Karte zerlegt und die 
Unterlagen nicht aufgehoben. Wenn ich das Heute nochmal machen wollte 
würde ich das ganze erst mal mit VDHL in ein FPGA kloppen und 
simulieren. Für die Ein Ausgabe (Schalter , Anzeigen) würde ich einen 
eigenen I/O Bus spendieren. Irgendwo geistern im Internet auch VHDL 
Beschreibungen von TTL Bausteinen herum. Ich hatte damals kein FPGA und 
auch noch kein Eprom, die Steuerlogik war mit Dioden kodiert und auf 
Lochraster. Aber dann kam ich an einen 8080 und 1702 Eprom und dann war 
das Geschichte ;-)

Nachtrag: etwas später hat Elektor etwas ähnliches in einer 12 Bit 
Version heraus gebracht, da kannst du die Unterlagen vielleicht noch 
finden.

von Robert K. (Firma: Zombieland) (rko)


Lesenswert?

Andre G. schrieb:
> Ich bin verrückt, aber nicht SO verrückt
> ;-)
Leider bist Du total verrückt und kommst außerdem 50 Jahre zu spät!
Was soll denn das bringen?
Kauf Dir bitte einen C64, AtariXL, ZX81 und motz den einfach auf mit 
neuem Frontdesign, usw. - da hat dann wenigstens auch die jeweilige 
Fan-Gemeinde was von.
Du versuchst aber das Rad komplett neu zu erfinden und das ist schon 
reichlich irre.

von Hermann Kokoschka (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Hermann Kokoschka schrieb:
>> rund um die 74181-ALU herum, auf Lochraster!
> Das its doch auch wieder gemogelt.

Mit Verlaub, aber das ist doch Unsinn!
Die TTL-ALU gehört zur Familie und darf im TTL-Retrodesign daher mit dem 
"gleichen Recht" genutzt werden, wie alle anderen TTL-Bausteine.

Nach Deiner Argumentation könntest Du dann auch verlangen alle Gatter 
aus Transistoren/Dioden/Widerständen zu erstellen...

Dir fehlt auch wohl etwas Vorstellung über die Lichtjahre, die zwischen 
ALU und Prozessor liegen.

von Andre G. (andgst01)


Lesenswert?

Robert K. schrieb:
> Andre G. schrieb:
>> Ich bin verrückt, aber nicht SO verrückt
>> ;-)
> Leider bist Du total verrückt und kommst außerdem 50 Jahre zu spät!
> Was soll denn das bringen?
> Kauf Dir bitte einen C64, AtariXL, ZX81 und motz den einfach auf mit
> neuem Frontdesign, usw. - da hat dann wenigstens auch die jeweilige
> Fan-Gemeinde was von.
> Du versuchst aber das Rad komplett neu zu erfinden und das ist schon
> reichlich irre.

Wie schon gesagt, fertige System haben meist ihre scheinbar 
unerklärlichen Eigenehiten.

Ja ich versuche das Rad für mich selbst neu zu erfinden.
Damit ich den Weg zum Endergebniss wirklich verstehe.

von Zeno (Gast)


Lesenswert?

S. R. schrieb:
> Andre G. schrieb:
>> Ich dachte dabei an einen 32 bit breiten Adressbus, sodass
>> circa 4 GB problemlos adressiert werden können.
>
> Ja nee, is klar. Denk nochmal über die Entscheidung nach, denn sie ist
> schlicht blöd.

Naja gehen tut das schon, ist halt eine Frage des Prozessordesigns. Der 
gute alte Z80 hat ja auch einen 16Bit Adressbus und warum sollte für 
einen 8Bit Prozessor kein 32Bit Datenbus möglich sein. Es braucht dann 
zur Erzeugung der Adresse mehrere Prozessortakte.
Ob das dann am Ende sinnvoll ist, ist ein anderes Kapitel. Für 
Arbeitsspeicher ist das sicher weniger sinnvoll, bei quasi statischen 
Speicher kann das schon Sinn machen.

von Thomas W. (Gast)


Lesenswert?

Andre G. schrieb:

> Ja ich versuche das Rad für mich selbst neu zu erfinden.
> Damit ich den Weg zum Endergebniss wirklich verstehe.

Kann ich den runden Gegenstand noch mal sehen?

Th.

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
> Tut mir leid aber ich verstehe nicht was vorausschauende
> Planung mit Dummheit zu tun hat.

Wozu brauchst du 4 GB Datenspeicher? Oder auch nur 128 MB Datenspeicher? 
Da braucht alleine der Speichertest beim Start mehrere Stunden.

Jeder Speicherzugriff braucht hunderte Taktzyklen, weil selbst einfache 
Arrayzugriffe ewig umständlich sind.

Welche Programme willst du denn haben, die auf deiner CPU mit wenigen KB 
Programmspeicher mehrere GB Datenspeicher durchnudeln wollen?

Der ganze Ansatz ist bescheuert. (Übrigens: Echtes Harvard mag zwar cool 
auf dem Papier sein, ist aber real kacke zu programmieren.)

> Ich verstehe nicht was meine Einstellung mit Dummheit und
> Trollerei zu tun hat.
> Kannst du mir das bitte erklären?

"Ich möchte eine 8 Bit-CPU bauen. Aber so mit Einschränkungen und 
kleinen Systemen, das ist mir alles nichts. Also so groß, dass ich nie 
zuwenig Speicher habe."

Also doch ein 250 PS-Turbodiesel in einem Papp-Kleinwagen. Egal, dass 
man den nicht benutzen kann, weil sonst die Karosse auseinanderfällt, 
hauptsache ne dicke Maschine, damit immer genug Leistung da ist.

von Thomas W. (Gast)


Lesenswert?

Andre wird dann berichten wie er sich die CPU vorstellt. Und den Proof 
of Concept kann er hat auch mit 512kB machen (oder 128k Words, 'ne PDP 
kam mit weniger klar).

Ich warte dann auf Schaltplaene und MicroCode.

Gruesse

Th.

von S. R. (svenska)


Lesenswert?

Nachtrag: Man kann auch an einen Z80 seine 4 GB RAM anflanschen. Braucht 
halt Banking und ist etwas umständlicher in der Nutzung. Dafür muss die 
CPU dann kein Schrott-Design sein.

von Erich (Gast)


Lesenswert?

S. R. schrieb:
> Nachtrag: Man kann auch an einen Z80 seine 4 GB RAM anflanschen. Braucht
> halt Banking und ist etwas umständlicher in der Nutzung. Dafür muss die
> CPU dann kein Schrott-Design sein.

4 GB als Datenspeicher:
Die SD Karte ist bereits erfunden.

von Andre G. (andgst01)


Lesenswert?

Gut ich denke ich muss meine "Anforderungen" überdenken.

Danke für die vielen konstruktiven Antworten, ab umd zu ist es ganz gut 
auf den Boden der Realität zurückgeholt zu werden.

Ich denke ich werde mich fürs erste auf 8 bit Datenbus und 8 bit 
Adressbus "beschränken" und versuchen so etwas in einem FPGA zum laufen 
zu bringen.

Wenn das klappt, kann ich ja immer noch versuchen "mehr bits" zu 
realisieren oder das wirklich mit Logik ICs aufzubauen.

Eins nach dem anderen ...

von Stefan F. (Gast)


Lesenswert?

Andre G. schrieb:
> auf 8 bit Adressbus "beschränken"

Dann würde ich (wie du schon schriebst) für RAM und Programmspeicher 
separate Busse vorsehen. Ich würde für die Peripherie einen dritten Bus 
einsetzen. Dementsprechend wirst du auch separate Befehle für den 
Zugriff auf die drei Speicher brauchen.

von Bauform B. (bauformb)


Lesenswert?

Stefan ⛄ F. schrieb:
> Dann würde ich (wie du schon schriebst) für RAM und Programmspeicher
> separate Busse vorsehen. Ich würde für die Peripherie einen dritten Bus
> einsetzen.

... damit es maximal kompliziert wird :(
Gibt es hier eigentlich eine Hitliste der traurigsten Threads? Warum 
müssen Leute mit zuwenig Fantasie und/oder Ahnung solche Hobby-Projekte 
sabotieren?

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Bauform B. schrieb:
> ... damit es maximal kompliziert wird

Nein, damit man wenigstens 256 Bytes RAM und 256 Bytes Programmspeicher 
hat. Mit wesentlich weniger kommt man nicht weit.

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
> Ich denke ich werde mich fürs erste auf 8 bit Datenbus
> und 8 bit Adressbus "beschränken" und versuchen so etwas
> in einem FPGA zum laufen zu bringen.

Textverarbeitung in 256 Bytes macht allerdings auch keinen Spaß, weder 
Code noch Daten noch beides. Aber gut.

von admg (Gast)


Lesenswert?

Andre G. schrieb:

> Derzeit beschäftige ich mich mit dem Designen der Frontplatte.
> Über diese sollen Daten "von Hand" eingegeben und ausgelesen werden
> ...
> Ich dachte an 7 Segmentanzeigen für die Ausgabe von hexadezimalen Werten
> (2 Stück für den 8-bit Datenbus und 8 Stück für den 32-bit Adressbus).
>
> Das "Problem" ist jedoch die Eingabe von 32 bit Werten für den
> Adressbus.
>
>
> Folgende Möglichkeiten kämen in Frage, jede hat Vorteile und Nachteile:
>
> 32 Schalter
> ===========
> Vorteile:
> + Einfache Verdrahtung
> Nachteile:
>
>
> - Sehr hoher Platzbedarf
> - Einzugebende Werte müssen erst in binäre Werte umgerechnet werden

Sieht am besten aus, ist aber total unpraktisch wenn man schnell auf 
viele aufeinander folgende Adressen zugreifen möchte.

>
> 8 Drehschalter mit je 16 Positionen
> ===================================
> (z.B.
> 
https://www.digikey.at/en/products/detail/51A22-01-1-16N/GH7686-ND/4112289?itemSeq=387241772)
>
> Vorteile:
> + Werte können direkt hexadezimal eingegeben werden
>
>
> Nachteile:
> - Sehr hoher Platzbedarf

So groß ist der Platzbedarf nicht. Ich vermute, es werden nach den 
vergangenen Kommentaren doch nur 4 bis 6 Adressdrehschalter werden? :-)
Damit kann man sich schon mal recht zügig den Inhalt 16 aufeinander 
folgender Adressen anschauen.

> Hexadezimales Tastenfeld
> ========================
> Vorteile:
> + Werte können direkt hexadezimal eingegeben werden
>
>
> Nachteile:
> - Viel zusätzliche Logik erforderlich (Tastenmatrix abfragen, Zähler der
> nach jeder Eingabe inkrementiert wird, ...)

Ja, vermutlich zu viel Hardwareaufwand.
Man kann das Ganze später in Software beliebig flexibel nachrüsten, 
sobald Tastatur und VGA verfügbar sind.


> Wie gesagt, jeder Lösungsansatz hat seine Vor - und Nachteile, deshalb
> dachte ich ich frage mal hier wie ihr das Problem lösen würdet.

Drehschalter.

> Ja, ich weiß dass ein "8 bit Computer aus diskreter Logik" ein
> "sinnloses" Projekt ist.

Ansichtssache, Hobby soll einfach nur Spaß machen. Der Weg ist das Ziel.

> Und ja, VGA geht in diskreter Hardware, man braucht nur eine handvoll
> Zähler, Komparatoren, Speicher und einen DAC.

Wozu es natürlich schon vorteilhaft ist, wenn die CPU jeden Punkt des 
Bildwiederholspeichers direkt adressieren kann.
Bei 600x800 Bildpunkten in je 256 möglichen Farben sind das 360kB für 
eine Bildschirmseite. Außerdem sollte double buffering möglich sein.

So gesehen, kann ein 20 Bit breiter Adresszähler für die CPU also 
durchaus sinnvoll sein!

Man kann natürlich auch mit dezidierten Tiles-Speicher in Hardware 
arbeiten, in dem fertige Buchstaben und Grafikzeichen beispielsweise als 
8x8 Pixel Blöcke abgelegt sind. Dann müßte´die CPU im einfachsten Fall 
nur noch knapp 8kB Grafikspeicher adressieren können.

Ich würde von diesem Verfahren allerdings Abstand nehmen. Es macht die 
Grafikausgabe sehr unflexibel und gleichzeitig die Grafikhardware viel 
aufwändiger.

von Der Klaus (Gast)


Lesenswert?

Andre G. schrieb:
> Der Klaus schrieb:
>> Andre G. schrieb:
>>> Ja die 74181 ALU ist mir durchaus bekannt, ich habe eigentlich vor zwei
>>> dieser  ALUs in der CPU zu verwenden.
>>> Das Teil ist aber leider sehr schwer zu beschaffen.
>>
>> Soso - du „hast also vor“. Implizit bedeutet das: Du hast noch nichts,
>> überhaupt gar nichts, Nada, Null-Komma-Null!
>
> Doch, ich habe schon "etwas".
> Ich fange nur nicht an Bauteile zusammenzulöten wenn ich mir nicht ganz
> sicher bin dass ich das wirklich so machen will.

Aber du willst schon mal Frontplatten bohren. Alles klar !!!

von mIstA (Gast)


Lesenswert?

Andre G. schrieb:
> Wie schon gesagt, fertige System haben meist ihre scheinbar
> unerklärlichen Eigenehiten.

Dir ist aber schon bewußt, daß dieser Grundsatz auch auf Dein System 
zutreffen wird, sofern es irgendwann mal fertig sein wird; mit dem 
kleinen Unterschied, daß Du bei Deinem Unikat all diese Eigenheiten 
selbst wirst entdecken und erforschen müssen.

von Erich (Gast)


Lesenswert?

Es wurde schon alles gesagt.

Nur noch nicht von jedem.

von admg (Gast)


Lesenswert?

admg schrieb:

> Bei 600x800 Bildpunkten in je 256 möglichen Farben sind das 360kB...

Ups, sogar noch mehr. Am besten auf 640x480 Bildpunkte reduzieren und 
alles noch mal nachrechnen, was hier so geschrieben wird...

von Andre G. (andgst01)


Lesenswert?

admg schrieb:
> Wozu es natürlich schon vorteilhaft ist, wenn die CPU jeden Punkt des
> Bildwiederholspeichers direkt adressieren kann.
> Bei 600x800 Bildpunkten in je 256 möglichen Farben sind das 360kB für
> eine Bildschirmseite. Außerdem sollte double buffering möglich sein.
>
> So gesehen, kann ein 20 Bit breiter Adresszähler für die CPU also
> durchaus sinnvoll sein!
>
> Man kann natürlich auch mit dezidierten Tiles-Speicher in Hardware
> arbeiten, in dem fertige Buchstaben und Grafikzeichen beispielsweise als
> 8x8 Pixel Blöcke abgelegt sind. Dann müßte´die CPU im einfachsten Fall
> nur noch knapp 8kB Grafikspeicher adressieren können.
>
> Ich würde von diesem Verfahren allerdings Abstand nehmen. Es macht die
> Grafikausgabe sehr unflexibel und gleichzeitig die Grafikhardware viel
> aufwändiger.

Ich möchte (erstmal) "nur" eine reine ASCII Ausgabe realisieren, 
monochrom.
80 Zeichen breit, 50 Zeichen hoch.

Also ich werde 8 px breite und 12 px hohe Zeichen verwenden.
Es gibt einen SRAM der speichert welche Zeichen an welcher Stelle 
ausgegeben werden sollen.
Dieser kann vom Prozessor beschrieben werden.

Diser "Zeichenspeicher" wird dann periodisch abgefragt und "dekodiert".
In 12 Stück EEPROMs sind die bits für die einzelnen Zeichen gespeichert.
Dieser "Zeichendekoder" hat einen 8 bit Eingang für das ASCII Zeichen 
das dargestellt werden soll.
Und einen Eingang der dem Dekoder sagt welches pixel des Zeichens 
dargestellt werden sollte.
Der Bildschirm zeichnet ja pixel für pixel in jeder Zeile, also wenn ich 
zum Beispiel an der Position 0|0 (links oben) ein "A" ausgeben will muss 
ich in der ersten pixel-Zeile 00000000 und in der zweiten pixel-Zeile 
00011000, in der dritten Zeile 00111100 und so weiter ausgeben.
Also jede "Zeile" im Zeichenspeicher wird 12 mal durchgelaufen.

Zwischen jedem darzustellenden Zeichen ist ein Pixel abstand, zweischen 
den Zeilen ebenfalls ein Pixel Abstand.

Rund um den Teil auf dem Bildschirm in dem die Zeichen dargestellt 
werden wird noch ein mindestens 10 pixel breiter Rahmen sein.

Das bedeutet dass ich mindestens 1024 x 768 pixel Auflösung benötige, 
also eigentlich XGA und nicht VGA.

Das ganze VGA Zeug wird mit einem eigenen Oszillator betaktet, 
unabhängig vom Takt des Prozessors.
Der Prozessor muss dann eben "warten" bis er von der VGA-Schaltung die 
Erlaubniss bekommt in den Zeichenspeicher zu schreiben.


Ja, mit der Planung dem VGA-Ausgabeteils habe ich mich in letzter Zeit 
intensiv beschäftigt ...

von Hans-Georg L. (h-g-l)


Lesenswert?

Andre G. schrieb:

> Das bedeutet dass ich mindestens 1024 x 768 pixel Auflösung benötige,
> also eigentlich XGA und nicht VGA.
>
> Das ganze VGA Zeug wird mit einem eigenen Oszillator betaktet,
> unabhängig vom Takt des Prozessors.
> Der Prozessor muss dann eben "warten" bis er von der VGA-Schaltung die
> Erlaubniss bekommt in den Zeichenspeicher zu schreiben.
>

Und du bist dir sicher das deine TLL 74181 CPU das Zeitfenster für Daten 
aus dem Ram zu holen und in den Video Speicher zu schreiben schaft ?. 
Von welchen Zeiten träumst du für einen MOV RAM -> RAM-Video Befehl über 
die CPU. Da bist du schnell bei DMA. Dein CPU takt bleibt gut unter 
1Mhz. Aber der CPU Takt ist ja nicht identisch mit einem Befehl. Das ist 
der Takt mit dem dein Steuerbus läuft (Microprogramm state machine).

von Bauform B. (bauformb)


Lesenswert?

Hans-Georg L. schrieb:
>> Der Prozessor muss dann eben "warten" bis er von der VGA-Schaltung die
>> Erlaubniss bekommt in den Zeichenspeicher zu schreiben.
>>
>
> Und du bist dir sicher das deine TLL 74181 CPU das Zeitfenster für Daten
> aus dem Ram zu holen und in den Video Speicher zu schreiben schaft ?.

Dagegen gibt es FIFOs, 2 Stück 74HC(T)40105 speichern 16 Byte.

von admg (Gast)


Lesenswert?

Andre G. schrieb:

> 80 Zeichen breit, 50 Zeichen hoch.
Oh..
> Also ich werde 8 px breite und 12 px hohe Zeichen verwenden.
Ohoh...
> Das bedeutet dass ich mindestens 1024 x 768 pixel Auflösung benötige,
> also eigentlich XGA und nicht VGA.
Ohohoh...
Das sind ja alles gut rund Zahlen...

> Ja, mit der Planung dem VGA-Ausgabeteils habe ich mich in letzter Zeit
> intensiv beschäftigt ...

Na dann liegt es ja nahe, bei dieser Baugruppe mit dem Aufbau zu 
beginnen.

Vor einiger Zeit hat hier schon einmal jemand eine VGA-Grafik auf 
Steckbrett realisiert... realisieren wollen.
War auch sehr interessant, gab aber auch einige Probleme. Keine Ahnung 
ob und wie gut das am Ende lief.
Ich wünsch viel Erfolg!

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Also ich finde eine Grafikkarte ohne Beschleunigung langweilig, viel zu 
wenig Herausforderung.

von Hans-Georg L. (h-g-l)


Lesenswert?

Bauform B. schrieb:
> Hans-Georg L. schrieb:
>>> Der Prozessor muss dann eben "warten" bis er von der VGA-Schaltung die
>>> Erlaubniss bekommt in den Zeichenspeicher zu schreiben.
>>>
>>
>> Und du bist dir sicher das deine TLL 74181 CPU das Zeitfenster für Daten
>> aus dem Ram zu holen und in den Video Speicher zu schreiben schaft ?.
>
> Dagegen gibt es FIFOs, 2 Stück 74HC(T)40105 speichern 16 Byte.

Und woher weiß die VGA Logik welches Zeichen im Fifo an welche Adresse 
geschrieben wird. Da wird ein Daten Fifo nicht reichen.

von Andre G. (andgst01)


Lesenswert?

admg schrieb:
> Andre G. schrieb:
>
>> 80 Zeichen breit, 50 Zeichen hoch.
> Oh..
>> Also ich werde 8 px breite und 12 px hohe Zeichen verwenden.
> Ohoh...
>> Das bedeutet dass ich mindestens 1024 x 768 pixel Auflösung benötige,
>> also eigentlich XGA und nicht VGA.
> Ohohoh...
> Das sind ja alles gut rund Zahlen...
>
>> Ja, mit der Planung dem VGA-Ausgabeteils habe ich mich in letzter Zeit
>> intensiv beschäftigt ...
>
> Na dann liegt es ja nahe, bei dieser Baugruppe mit dem Aufbau zu
> beginnen.

Genau.
Normalerweise fängt man so etwas ja mit der ALU oder dem PC an, aber da 
ein solches "VGA Ausgabe Modul" auch für andere Projekte brauchbar sein 
könnte denke ich ich fange wirklich konkret damit an.
Denn egal ob der Adressbus 8 oder 16 oder 32 oder hunderttausend bits 
hat, die Eingabe und Ausgabe von Daten ist eigentlich immer gleich.
(VGA, Tastatur über PS2 oder RS232, ...)

von admg (Gast)


Lesenswert?

admg schrieb:

> Vor einiger Zeit hat hier schon einmal jemand eine VGA-Grafik auf
> Steckbrett realisiert... realisieren wollen.

Gefunden. Hier der finale Aufbau, wie es scheint:
Beitrag "Re: Bauen oder nicht bauen ?"

Immerhin kamen da schon mal Bilder raus.
Verfolgt allerdings ein etwas aufwändigeres Konzept. Scrollen und Farbe 
sind ja hier nicht gefordert.

von Hans-Georg L. (h-g-l)


Lesenswert?

admg schrieb:

> Vor einiger Zeit hat hier schon einmal jemand eine VGA-Grafik auf
> Steckbrett realisiert... realisieren wollen.
> War auch sehr interessant, gab aber auch einige Probleme. Keine Ahnung
> ob und wie gut das am Ende lief.
> Ich wünsch viel Erfolg!

Könnte evtl mit Video-Rams, die es mal gab funktionieren.
Das sind DRAMS mit eingebautem Schieberegister die ein ganze 
Bildschirmzeile parallel mit einem Takt übernehmen und dann seriell an 
den Bildschirm ausgeben. Da kann der VGA-Controller fast die ganze Zeit 
auf das DRAM zugreifen ohne die Ausgabe zu stören.

von Hans-Georg L. (h-g-l)


Lesenswert?

admg schrieb:
> admg schrieb:
>
>> Vor einiger Zeit hat hier schon einmal jemand eine VGA-Grafik auf
>> Steckbrett realisiert... realisieren wollen.
>
> Gefunden. Hier der finale Aufbau, wie es scheint:
> Beitrag "Re: Bauen oder nicht bauen ?"
>
> Immerhin kamen da schon mal Bilder raus.
> Verfolgt allerdings ein etwas aufwändigeres Konzept. Scrollen und Farbe
> sind ja hier nicht gefordert.

Da sind aber 2 40 pinner drin und der TO will das ja alles in TTL machen 
...
bin mal gespannt ;-)

von Andre G. (andgst01)


Lesenswert?

Hans-Georg L. schrieb:
> admg schrieb:
>> admg schrieb:
>>
>>> Vor einiger Zeit hat hier schon einmal jemand eine VGA-Grafik auf
>>> Steckbrett realisiert... realisieren wollen.
>>
>> Gefunden. Hier der finale Aufbau, wie es scheint:
>> Beitrag "Re: Bauen oder nicht bauen ?"
>>
>> Immerhin kamen da schon mal Bilder raus.
>> Verfolgt allerdings ein etwas aufwändigeres Konzept. Scrollen und Farbe
>> sind ja hier nicht gefordert.
>
> Da sind aber 2 40 pinner drin und der TO will das ja alles in TTL machen
> ...
> bin mal gespannt ;-)

Nicht nur ausschließlich "74er" Chips; SRAMs, EEPROMs und ähnliches ist 
auch "erlaubt".
Wie schon gesagt, das ist kein "Reinheitsprojekt" das NUR 74er TTL oder 
NUR 74er CMOS verwendet.

Nur eben keine "hochintegrierten" ICs, also keine speziellen Video-ICs 
(für VGA) oder fertige Prozessoren (die 181 ALU geht, sind ja nur eine 
Hand voll einfacher Logikgatter).
Nein, ich habe keine klare Definition was "hochintegriert" genau heißt.
(kein "oh nein, diesen IC darf ich nicht verwendet, der hat mehr als 20 
Transistoren")

von Volker S. (sjv)


Lesenswert?

Andre G. schrieb:
> Mit "diskret" meinte ich "aus Logik-ICs", nicht wirklich komplett
> diskret aus Transistoren.
> Das hätte ich vielleicht erwähnen sollen ...
>
> Ich bin verrückt, aber nicht SO verrückt

Einfacher ist vielleicht einen alten "diskreten" Rechner zu kaufen, z.B. 
einen alten Siemens Prozeßrechner oder eine dec pdp.

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
> Ich möchte (erstmal) "nur" eine reine ASCII Ausgabe realisieren,
> monochrom. 80 Zeichen breit, 50 Zeichen hoch.

Direkt auf Grafik zu gehen ist einfacher.

> Rund um den Teil auf dem Bildschirm in dem die Zeichen dargestellt
> werden wird noch ein mindestens 10 pixel breiter Rahmen sein.

Warum das?

> Das bedeutet dass ich mindestens 1024 x 768 pixel Auflösung benötige,
> also eigentlich XGA und nicht VGA.

Klug wären 640x400 bei 8 Bit Farbtiefe, sind exakt 250 KB und kompatibel 
mit allem. Auch klug wären 640x480, aber das ist dann ekliges Zusatzbit.

Höhere Auflösungen gehen auch, sind aber eher sinnlos. Du kannst ja mal 
kurz über die Bandbreite grübeln, die du brauchst, um das zu befüllen.

von Alexander D. (abadu)


Lesenswert?

Hallo Andre, bevor Du einen Prozessor selbst baust, empfehle ich Dir, 
das Buch 
http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp8/pdp8i/Prosser_The_Art_of_Digital_Design_2ed_1987.pdf 
zu lesen. In dem Buch wird neben dem Entwurf digitaler synchroner Logik 
der Bau einer PDP-8 erklärt, das ist ein 50 Jahre alter 12-Bit Rechner. 
Für den Bau braucht man ungefähr 130 TTL-ICs. Der Entwurf einer 
Frontplattedafür, wird dafür auch beschrieben.

von Andre G. (andgst01)


Lesenswert?

Alexander D. schrieb:
> Hallo Andre, bevor Du einen Prozessor selbst baust, empfehle ich Dir,
> das Buch
> 
http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp8/pdp8i/Prosser_The_Art_of_Digital_Design_2ed_1987.pdf
> zu lesen. In dem Buch wird neben dem Entwurf digitaler synchroner Logik
> der Bau einer PDP-8 erklärt, das ist ein 50 Jahre alter 12-Bit Rechner.
> Für den Bau braucht man ungefähr 130 TTL-ICs. Der Entwurf einer
> Frontplattedafür, wird dafür auch beschrieben.

Danke für den Link, ich werde mir das mal ansehen.

von Andre G. (andgst01)


Lesenswert?

S. R. schrieb:
> Andre G. schrieb:
>> Ich möchte (erstmal) "nur" eine reine ASCII Ausgabe realisieren,
>> monochrom. 80 Zeichen breit, 50 Zeichen hoch.
>
> Direkt auf Grafik zu gehen ist einfacher.

Ja, hardwaremäßig schon.

Aber der Prozessor muss dann die ganze "Zeichendarstellung" übernehmen.
So wie ich vorhabe das zu implementieren kann der Prozessor einfach das 
darzustellende Zeichen und dessen Position an die "Grafikkarte" 
übergeben und muss sich um nichts weiter kümmern.

>> Rund um den Teil auf dem Bildschirm in dem die Zeichen dargestellt
>> werden wird noch ein mindestens 10 pixel breiter Rahmen sein.
>
> Warum das?

Damit der dargestellte Text nich direkt am Bildschirmrand "klebt".

Wenn du ein Blatt Papier beschreibts dann lässt du auch einen "Rand" 
frei, oder?

von Thomas W. (Gast)


Lesenswert?

Alexander D. schrieb:

> 
http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/pdp8/pdp8i/Prosser_The_Art_of_Digital_Design_2ed_1987.pdf
> zu lesen. In dem Buch wird neben dem Entwurf digitaler synchroner Logik
> der Bau einer PDP-8 erklärt, das ist ein 50 Jahre alter 12-Bit Rechner.

Und auf p.480 findet man den Timer 555

Th.

von S. R. (svenska)


Lesenswert?

Andre G. schrieb:
> Aber der Prozessor muss dann die ganze "Zeichendarstellung" übernehmen.

Ja. Und in deinem eigenen Interesse solltest du die Hardware möglichst 
einfach gestalten. Eine neue Grafikkarte anflanschen kannst du später 
immernoch.

> Damit der dargestellte Text nich direkt am Bildschirmrand "klebt".
>
> Wenn du ein Blatt Papier beschreibts dann lässt du auch einen "Rand"
> frei, oder?

Ich merke schon, du kennst dich mit Computern und Terminals nicht aus.

Lassen wir das, ich bin dann auch raus.
Viel Erfolg bei deinem Vorhaben.
Ich warte auf Bilder.

von Andre G. (andgst01)


Lesenswert?

S. R. schrieb:
> Andre G. schrieb:
>> Aber der Prozessor muss dann die ganze "Zeichendarstellung" übernehmen.
>
> Ja. Und in deinem eigenen Interesse solltest du die Hardware möglichst
> einfach gestalten. Eine neue Grafikkarte anflanschen kannst du später
> immernoch.
>
>> Damit der dargestellte Text nich direkt am Bildschirmrand "klebt".
>>
>> Wenn du ein Blatt Papier beschreibts dann lässt du auch einen "Rand"
>> frei, oder?
>
> Ich merke schon, du kennst dich mit Computern und Terminals nicht aus.

Mit "alten Computern" und mit Terminals generell kenne ich mich nicht 
aus, nein.

Aber so ziemlich jeder (moderne) Computer nutzt die gesamte Fläche des 
Bildschirms.
Und wenn ich wirklich nur Text darstellen will, dann ist ein wenig Platz 
am Rand doch ganz gut.
Sonst kann man nur schlecht zwischen einem "L" und einem "_" 
unterscheiden.

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Ich empfehle einen Teil des Videospeichers über Hardwarelogik zur 
Bilderzeugung zu nutzen. Dann wird immer genau das dargestellt, was in 
diesem Bereich im Speicher steht, ohne die CPU zu belasten. Ein kurzer 
Blick in die Apple II Hardware zeigt, wie das gehen kann und kommt mit 
erstaunlich wenig Hardware aus!

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Andre G. schrieb:
> Mit "alten Computern" und mit Terminals generell kenne ich mich nicht
> aus, nein.

Das solltest du dich aber reinlesen, die haben die Probleme nämlich alle 
gelöst, die du noch gar nicht kennst.

Andre G. schrieb:
> Und wenn ich wirklich nur Text darstellen will, dann ist ein wenig Platz
> am Rand doch ganz gut.

Du versuchst Probleme zu lösen, die du nie erreichen wirst, wenn du 
nicht ganz einfach anfängst.

von michael_ (Gast)


Lesenswert?

Andre G. schrieb:
> Ich denke ich werde mich fürs erste auf 8 bit Datenbus und 8 bit
> Adressbus "beschränken" und versuchen so etwas in einem FPGA zum laufen
> zu bringen.
>
> Wenn das klappt, kann ich ja immer noch versuchen "mehr bits" zu
> realisieren oder das wirklich mit Logik ICs aufzubauen.

Welch eine Erleuchtung!
Abewr nicht mal das wirst duschaffen.
Wetten?

Andre G. schrieb:
> michael_ schrieb:
>> Andre G. schrieb:
>>> Und vielleicht weil ich nur "moderne Computer und Speicher" kenne, wo 4
>>> GB nicht gerade viel Speicher ist.
>>
>> Was ist modern?
>>
>> Nimm dir erst mal einen kleinen Tiny zum Vorbild.
>> Davon hast du sicher noch nie was gehört.
>
> Doch, ich kenne die Tinys von Atmel.
> Und auch die Megas.
> Aber was haben die hiermit zu tun?
> Außer dass es sich auch um "relativ" einfache Computer handelt.
>
> Ich meine mit "modernen Computern" zum Beispiel das Ding das derjenige
> der das hier liest gerade vor sich hat.

Du solltest dich ja nur an der Größe des Daten- und Programmspeichers 
orientieren.
Mehr nicht.

Ist aber sowieso alles nur Spinne.

von Stefan F. (Gast)


Lesenswert?

Andre G. schrieb:
> Wenn das klappt, kann ich ja immer noch versuchen
> "mehr bits" zu realisieren

Dazu musst du deinen Befehlssatz in wesentlichen teilen neu gestalten 
und damit auch die entsprechende Logik. Ich würde lieber 16 Bit Adressen 
vorsehen, auch wenn du am Anfang nur einen Teil davon benutzt.

michael_ schrieb:
> Nimm dir erst mal einen kleinen Tiny zum Vorbild.

Andre G. schrieb:
> Aber was haben die hiermit zu tun?

Das sind derzeit so ziemlich die kleinsten Mikrocontroller, die es gibt. 
Sie haben einen 16 Bit Address Bus, sicher nicht ohne guten Grund.

Wie gesagt würde ich das von Anfang an im Befehlssatz vorsehen, auch 
wenn davon letztendlich nur ein Teil tatsächlich beschaltet wird. Ein 
großer Address-Raum gibt dir die Möglichkeit, RAM und ROM mit den 
gleichen Befehlen ohne Extrawürste zu adressieren. Und du hast reichlich 
Platz für vorzeigbare Programme.

Dazu passen diese Klassiker sehr gut:

32 kB RAM 62256
https://cdn-reichelt.de/documents/datenblatt/A300/62256-80.pdf

32 kB EEPROM 28C256
https://www.reichelt.de/eeprom-256-kb-32-k-x-8-5-v-150ns-pdip-28-28c256-150-p1945.html

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Kommt noch was?

von Der Klaus (Gast)


Lesenswert?

Wolfgang R. schrieb:
> Kommt noch was?

Klar! Noch mehr heiße Luft - was sonst?

von S. R. (svenska)


Lesenswert?

Gib ihm doch bis Freitag. Jetzt ist erstmal Arbeitswoche.

von Andre G. (andgst01)


Lesenswert?

Wolfgang R. schrieb:
> Kommt noch was?

Nein, ich werde meine "Vorgaben" für dieses Projekt überdenken und etwas 
realistischer gestalten.

Danke für alle Antworten!

von Con Man Hunter (Gast)


Lesenswert?

Andre G. schrieb:
> Nein, ich werde meine "Vorgaben" für dieses Projekt überdenken und etwas
> realistischer gestalten.

realistisch gestalten heißt in deinem Fall überhaut nicht gestalten.

Deine Texte zeigen eine heillose Überschätzung deiner Möglichkeiten. Ich 
schließe mich der Meinung einiger Schreiber hier an, dass du ein Troll 
bist - dazu noch ein Anfänger. Um in den heiligen Grahl der Trolle zu 
kommen, da musst du noch ein wenig üben :-)

von Andre G. (andgst01)


Lesenswert?

Con Man Hunter schrieb:
> Andre G. schrieb:
>> Nein, ich werde meine "Vorgaben" für dieses Projekt überdenken und etwas
>> realistischer gestalten.
>
> realistisch gestalten heißt in deinem Fall überhaut nicht gestalten.
>
> Deine Texte zeigen eine heillose Überschätzung deiner Möglichkeiten. Ich
> schließe mich der Meinung einiger Schreiber hier an, dass du ein Troll
> bist - dazu noch ein Anfänger. Um in den heiligen Grahl der Trolle zu
> kommen, da musst du noch ein wenig üben :-)

Nein, wenn ich ein Troll wäre dann würde ich diese Diskussion nur zur 
Provokation oder aus Spaß veranstalten.

Aber ich wollte schon seit ich damals in der Schule von digitaler Logik 
gelernt habe so ein Projekt realisieren.
Das ist einfach etwas das mich sehr reizt.

Ja, ich bin ein (ewiger) Anfänger und nicht wirklich gut darin die 
Machbarkeit eines Projekts einzuschätzen aber deswegen bin ich noch 
lange kein Troll.
Auch wenn es vielleicht so aussieht. (-> mangelnde Kompetenz, 
unrealistische Zielsetzungen, will die Dinge auf meine Art machen, ...)

von Wolfgang R. (Firma: www.wolfgangrobel.de) (mikemcbike)


Lesenswert?

Andre G. schrieb:
> Auch wenn es vielleicht so aussieht. (-> mangelnde Kompetenz,
> unrealistische Zielsetzungen, will die Dinge auf meine Art machen, ...)

Danke für deine offene Rückmeldung! In diesem Thread hast du trotz 
vieler Anfeindungen auch viele realistisch umsetzbare Hinweise für ein 
einfaches diskretes CPU-System bekommen - das solltest du mal angehen 
und dann hier berichten.

von Peter D. (peda)


Lesenswert?

Ich hatte auch mal überlegt, einen eigenen 8-Bitter in nem CPLD zu 
entwickeln. Als Adreßraum hatte ich 8kB angedacht.
Ich hab dann aber schnell die Lust verloren, da mir Assembler zu 
mühselig geworden ist. Und einen C-Compiler selber zu schreiben, traue 
ich mir nicht zu.
Auch hatte ich bei anderen Projekten gemerkt, daß CPLDs/FPGAs schnell 
abgekündigt werden, d.h. für langfristige Projekte wenig geeignet sind. 
Es gab da viel Ärger mit mehrfachem Redesign der betroffenen Platinen.

von Andre G. (andgst01)


Lesenswert?

Peter D. schrieb:
> Ich hatte auch mal überlegt, einen eigenen 8-Bitter in nem CPLD zu
> entwickeln. Als Adreßraum hatte ich 8kB angedacht.
> Ich hab dann aber schnell die Lust verloren, da mir Assembler zu
> mühselig geworden ist. Und einen C-Compiler selber zu schreiben, traue
> ich mir nicht zu.
> Auch hatte ich bei anderen Projekten gemerkt, daß CPLDs/FPGAs schnell
> abgekündigt werden, d.h. für langfristige Projekte wenig geeignet sind.
> Es gab da viel Ärger mit mehrfachem Redesign der betroffenen Platinen.

Ist ein CPLD nicht ein wenig zu klein für so etwas?

von Peter D. (peda)


Lesenswert?

Andre G. schrieb:
> Ist ein CPLD nicht ein wenig zu klein für so etwas?

Ich hatte mir damals 5 Stück PZ5128 im PLCC-84 besorgt, das sollte 
reichen. Für die CPU-Register hatte ich SRAM vorgesehen.

Allerdings hat Philips die recht schnell eingestellt und an Xilinx 
abgestoßen. Die XCR3128 waren deutlich weniger flexibel und deren Fitter 
war zu Anfang grottenschlecht.

von 04DW (Gast)


Lesenswert?

von  Alexander D. (abadu) 16.01.2022 18:23
>>der Bau einer PDP-8 erklärt

ursprünglich diskret:

http://www.pdp8online.com/straight8/pdp8.shtml


---
http://homepage.cs.uiowa.edu/~jones/pdp8/UI-8/2015/02/27-PDP8demoLights1.JPG

von Der Klaus (Gast)


Lesenswert?

Peter D. schrieb:
> Ich hatte auch mal überlegt, einen eigenen 8-Bitter in nem CPLD zu
> entwickeln. Als Adreßraum hatte ich 8kB angedacht.
> Ich hab dann aber schnell die Lust verloren, da mir Assembler zu
> mühselig geworden ist. Und einen C-Compiler selber zu schreiben, traue
> ich mir nicht zu.

Ich könnte ein Small-C beisteuern, Codegenerator käme dann von Dir.

Den Ansatz, CC und uC parallel zu entwicklen, ist nicht auf meinem Mist 
gewachsen. So hatte das damals (tm) Atmel bei der Vorstellung der 
AVR-Architektur der Entwicklergemeinde verkauft.

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.