Ich baue derzeit meinen eigenen Prozessor mit diskreter Logik (74LSxx-Serie und so) mit meiner eigenen Befehlssatzarchitektur. Ich fange an, ein bisschen Geld zu verdienen, weil ich alle Chips brauche. Für alle von Ihnen, die Leute gesehen haben, die solche Homebrew-CPUs gebaut haben, niemand, von dem ich gelesen habe, hat einen SRAM-Chip als Registrierungsdatei verwendet
Würde es als Betrug angesehen werden, wenn ich einen SRAM-Chip anstelle einer Tonne von 374er Flip-Flop-Chips für die Register verwenden würde? Dies soll ein Prozessor aus diskreten Chips sein
Nein, es ist kein Betrug um irgendwelche Regeln. Das liegt daran, dass es überhaupt keine Regeln gibt.
Das ist Ihr Projekt. Sie definieren es. Sie können es auf jede Weise implementieren, die Sie zufriedenstellt. Niemand sonst kümmert sich darum.
Wie gefragt, ist dies eine reine Ansichtssache, daher hier keine gültige Frage.
Beachten Sie jedoch, dass herkömmliche Prozessoren einen 3-Port-Zugriff auf die Registerdatei benötigen – zwei, um Operanden zu erhalten, einen, um das Ergebnis zurückzuschreiben. Sie benötigen also wesentlich komplexere Datenpfad- und Steuerschaltungen zum Vorabrufen und Zwischenspeichern von Operanden, wenn Sie einen Single-Port-RAM verwenden möchten. Oder Sie können etwas mit einem unterschiedlichen und privilegierteren Akkumulator und einem Befehlssatz erstellen, der nur zulässt, dass ein einzelnes Nicht-Akkumulatorregister als Quelle oder Ziel erscheint (es gibt CPUs mit nur einem Akkumulator) .
Die Verwendung von zwei Speichern, die parallel geschrieben und einzeln gelesen werden, könnte die Dinge ein wenig vereinfachen, aber dieser Trick funktioniert am besten mit Dual-Port-Speichern. Diese können Sie in IC-Form kaufen und sind die übliche Form von FPGA-Block-RAMs.
Ja! Es ist sogar Betrug, wenn Sie nicht selbst hergestellte Bauteile ausschließlich aus den natürlichen Materialien Ihres eigenen Gartens verwenden.
Ihr Projekt, Ihre Regeln.
Aber wie sagt man so schön: „Perfekt ist der Feind des Fertigen “. Wenn das Projekt außer Kontrolle zu geraten scheint (sei es in Bezug auf Komplexität, Zeitaufwand oder Geldbedarf), kann es der Unterschied zwischen einer raffinierten (wenn auch etwas verrückten) Leistung sein, sich an einer Ecke des Designs etwas zu lockern , und ein Projekt, das nie fertig wurde.
Außerdem gibt es immer die Möglichkeit, Version 2 später mit weniger Abkürzungen zu erstellen, selbst wenn Sie sich entscheiden zu "schummeln". Sie könnten sogar versuchen, ein mögliches zukünftiges „Upgrade“ in der ersten Version des Designs zu berücksichtigen, wenn Sie etwas Zeit investieren möchten, um das „Upgrade“ zu vereinfachen.
Leute, die Homebrew-CPUs herstellen (haben Sie sich welche angesehen?), neigen dazu, SRAM für Register zu verwenden. Niemand, der bei klarem Verstand ist, würde eine Menge Flip-Flops zusammenlöten. Egal, ob Sie es sich leisten können, der Strombedarf und die Chancen, es richtig zu verkabeln.
Sie brauchen keinen Dual-Port, wenn Sie immer nur einmal lesen oder schreiben. Um zB ein Register INC zu schreiben, muss Ihre CPU es in einem Zyklus in einen Puffer lesen. Erhöhen Sie den Puffer im nächsten Zyklus und schreiben Sie ihn dann in einem dritten zurück. Zeitmultiplexing!
Wenn Sie den Inhalt von 2 Registern in eine ALU einspeisen, ist eine Art Pufferung erforderlich. Sie könnten vielleicht nur einen Puffer verwenden und den zweiten Operanden "live" aus dem SRAM erhalten. Aber natürlich gibt es auf einem SRAM-Chip keinen "Inkrement"-Pin! Sie werden herausfinden, wo die Pufferung sein muss.
Allerdings gibt es Register der 74er-Serie. Ursprünglich wurden ganze CPUs aus der 74er-Serie oder zumindest diskreten Logikchips hergestellt, bevor die 74er-Serie erfunden wurde. Die Suche nach "Registerdatei der Serie 74" ergab einige Hinweise. Nur weil es einmal gemacht wurde, heißt das natürlich nicht, dass Sie es jetzt finden werden.
Haben Sie sich mit FPGAs oder sogar CPLDs und PALs befasst? PALs sind zu klein, um mit einer CPU zu arbeiten, aber ein paar von ihnen, gemischt mit der anderen Logik, könnten Ihnen ein paar Chips sparen. In einem FPGA könnten Sie jedoch ganze CPUs implementieren. FPGAs sind im Grunde Tausende von Logikgattern auf einem Chip. Sie können wählen, welche Logik jedes Gatter ausführt und wie sie verbunden sind. Sie tun dies, indem Sie Code schreiben, wie Software. Schießen Sie dann die Ergebnisse über ein USB-Kabel zu einem Programmiergerät.
FPGAs werden häufig in Konsumgütern und in vielen vielen anderen Bereichen eingesetzt.
Mir ist auch ein Prozessor bekannt, der Single-Port-SRAM für die Allzweck-Registerdatei verwendet, tatsächlich ein sehr schneller/effizienter Prozessor.
Woher kommt Ihrer Meinung nach der Begriff Registerdatei? Registriert sich in einem SRAM.
Bei einer Pipeline-Architektur könnten Sie einen Single-Port-SRAM haben und nicht unbedingt einen Leistungseinbruch erleiden. Eine Single-Port-SRAM-Implementierung wäre sinnvoll, wenn Sie viele Register haben, sagen wir 128, 256 oder 512 Allzweckregister.
Ja, es ist völlig in Ordnung, Ihre "Register" in einer aus einem SRAM erstellten Registerdatei zu implementieren, solange Ihr Design funktioniert.
Ich bin mir nicht sicher, ob Sie versuchen, einen vorhandenen Prozessor- / Befehlssatz zu implementieren oder einen eigenen zu erstellen. In jedem Fall ist Leistung mit diskreten 74xx-Teilen nicht unbedingt ein Ziel im Vergleich zu Vernunft und Erfolg. Wenn Sie einige SRAMs dieser Generation haben, dann auf jeden Fall. Sie können LEDs an den Adress- und Datenbus binden, um (mehr) blinkende Lichter zu machen, die Lebenszeichen zeigen.
Oder Sie können den 6502 -Ansatz wählen und 256 virtuelle oder indirekte Register (Seite Null) haben, die nur Speicher oder vielleicht Spezialspeicher sind. Und Ihre wirklichen Allzweckregister (oder Allzweckregister) sind wenige und passen in ein paar Teile. Für MOS Technology hat es ganz gut funktioniert . (Die Architektur, nicht unbedingt die Implementierung, obwohl sie den 6502 rasiert und gescannt und rückentwickelt haben, damit Sie sehen können, wie sie ihn tatsächlich implementiert haben).
Sie möchten wahrscheinlich auch "schummeln" und ein ROM für die Nachschlagetabelle verwenden, die Ihren Mikrocode implementiert ... Obwohl das auch kein Schummeln ist; Es ist eine bekannte Lösung.
Die Verwendung eines (modernen) SRAM-Chips mit einer 74LS-basierten CPU ist ein bisschen so, als würde man Exodus filmen , und jemand im Film trägt eine Digitaluhr. (Die damals verfügbaren SRAMs sind nicht mehr wie 74LSxx-Teile vorhanden, daher gab es keine modernen SRAMs, aber dann ist dies der einzig vernünftige Kompromiss. )
Es wird ein Anachronismus genannt, ein Objekt, das in der Zeit verlegt ist.
Mein Lieblingsbuch „ The Soul of a New Machine “ beschrieb die puckhafte Reise von Ingenieuren und ihrem Manager bei Data General, die mit „The Eagle“ Geschichte schrieben, kurz bevor Mitte der späten 70er Jahre CMOS herauskam.
Es war die gleiche Ära, ich begann mein Leben als Ingenieur mit Erfahrung im Entwerfen eines UART-Boards von 74LSxx, weil Rotamola seinen MC6821 noch herausbringen musste. Ich habe es in einer Woche auf Papier entworfen und das Layout auf einer 4-Lagen-Platine mit diesen 44-Pin-Edge-Steckverbindern zur MC6800-Karte erstellt, und es hat beim ersten Spin funktioniert. Eine weitere Karte fächerte sich auf 128 Ausgänge und 128 Eingänge auf der Hauptkonsole auf, die mit all den gravierten quadratischen hintergrundbeleuchteten Drucktasten wie ein Haus zu Weihnachten leuchtete.
Aber wie "Exodus" wird Ihr Design immer noch ein Klassiker sein, genau wie Steve bei GRC und die Homebrew -PDP8-Benutzer .
Marla
Das Photon
DylanG
Harry Swensson
Andreas Morton
Janka
Tom Tischler
ADD R0, R1
)?DylanG
Benutzer76844
Harry Swensson
TEMLIB
TimB
Bruce Abbott
22 Grad
Benutzer98663
Krähe