Ich baue derzeit meinen eigenen Prozessor mit diskreter Logik (74LSxx-Serie und so) unter Verwendung meiner eigenen Befehlssatzarchitektur. Ich fange an, ein bisschen Geld zu verdienen, weil ich alle Chips brauche. Für jeden von Ihnen, der Leute gesehen hat, die solche Homebrew-CPUs gebaut haben, hat niemand, über den ich gelesen habe, einen SRAM-Chip als Registerdatei verwendet
Würde es als Betrug angesehen werden, wenn ich einen SRAM-Chip im Gegensatz zu einer TONNE von 374 Flip-Flop-Chips für die Register verwenden würde? Dies soll ein Prozessor sein, der aus diskreten Chips besteht
digital-logic
cpu
hobbyist
DylanG
quelle
quelle
Antworten:
Nein, es betrügt keine Regeln. Dies liegt daran, dass es überhaupt keine Regeln gibt.
Das ist dein Projekt. Sie definieren es. Sie können es auf jede Weise implementieren, die Sie zufriedenstellt. Niemand sonst kümmert sich darum.
quelle
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, um Operanden vorab abzurufen und zwischenzuspeichern, wenn Sie einen einzelnen Port-RAM verwenden möchten. Oder Sie können etwas mit einem bestimmten und privilegierteren Akkumulator und einem Befehlssatz erstellen, der nur zulässt, dass ein einzelnes Nicht-Akkumulator-Register als Quelle oder Ziel angezeigt wird (es gibt CPUs mit nur einem Akkumulator).
Die Verwendung von zwei parallel geschriebenen und einzeln gelesenen Speichern könnte die Dinge ein wenig vereinfachen, aber dieser Trick funktioniert am besten mit Dual-Port-Speichern. Diejenigen sind etwas , das Sie in IC - Form, als auch als die häufigste Form von FPGA Block - RAMs kaufen kann.
quelle
Ihr Projekt, Ihre Regeln.
Aber wie sie sagen, "perfekt ist der Feind von getan ". Wenn das Projekt außer Kontrolle zu geraten scheint (sei es in Bezug auf Komplexität, Zeitaufwand oder Geldaufwand), kann es der Unterschied zwischen einer raffinierten (wenn auch etwas verrückten) Leistung sein, sich an einer Ecke des Entwurfs etwas zu entspannen und ein Projekt, das nie abgeschlossen wurde.
Selbst wenn Sie sich für "Cheat" entscheiden, besteht immer die Möglichkeit, Version 2 später mit weniger Verknüpfungen zu erstellen. Sie können sogar versuchen, ein mögliches zukünftiges "Upgrade" in der ersten Version des Designs zu berücksichtigen, wenn Sie einige Zeit damit verbringen möchten, das "Upgrade" zu vereinfachen.
quelle
Ja! Es ist sogar ein Betrug, wenn Sie Komponenten verwenden, die Sie nicht ausschließlich aus natürlichen Materialien hergestellt haben, die Sie in Ihrem eigenen Garten finden.
quelle
Leute, die Homebrew-CPUs herstellen (haben Sie sich welche angesehen?), Verwenden SRAM für Register. Niemand, der bei klarem Verstand ist, würde eine Menge Flip-Flops anlöten. Es macht nichts aus, es sich zu leisten, den Strombedarf und die Chancen, es richtig zu verkabeln.
Sie benötigen keinen Dual-Port, wenn Sie immer nur einen Lese- oder Schreibvorgang ausführen. Um beispielsweise ein Register einzuschließen, lassen Sie Ihre CPU es in einem Zyklus in einen Puffer lesen. Erhöhen Sie den Puffer im nächsten Zyklus und schreiben Sie ihn in einem dritten zurück. Zeitmultiplexing!
Eine Art Pufferung ist erforderlich, wenn Sie den Inhalt von 2 Registern in eine ALU einspeisen. Sie könnten vielleicht nur einen Puffer verwenden und den zweiten Operanden "live" vom SRAM erhalten. Aber natürlich gibt es keinen "Inkrement" -Pin auf einem SRAM-Chip! Sie werden herausfinden, wo die Pufferung sein muss.
Das heißt, es gibt Register der Serie 74. Ursprünglich bestanden ganze CPUs aus 74er-Serien oder zumindest diskreten Logik-Chips, bevor die 74er-Serie erfunden wurde. Die Suche nach "74 series register file" 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 eine CPU zu betreiben, aber einige davon, die mit der anderen Logik gemischt sind, sparen Ihnen möglicherweise ein paar Chips. In einem FPGA könnten Sie jedoch ganze CPUs implementieren. FPGAs sind im Grunde Tausende von Logikgattern auf einem Chip. Sie können auswählen, welche Logik jedes Gate ausführt und wie sie verbunden sind. Sie tun dies, indem Sie Code wie Software schreiben. Schießen Sie dann die Ergebnisse über ein USB-Kabel zu einem Programmierer.
FPGAs werden häufig in Konsumgütern und in vielen anderen Bereichen eingesetzt.
quelle
Mir ist auch ein Prozessor bekannt, der SRAM mit einem Port für die Allzweckregisterdatei verwendet, ein sehr schneller / effizienter Prozessor.
Woher kommt Ihrer Meinung nach der Begriff Registerdatei? Registriert sich in einem SRAM.
Mit einer Pipeline-Architektur könnten Sie einen SRAM mit einem Port haben und nicht unbedingt einen Leistungseinbruch. Eine Single-Ported-SRAM-Implementierung wäre sinnvoll, wenn viele Register vorhanden wären, beispielsweise 128, 256 oder 512 Allzweckregister.
Ja, es ist vollkommen 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 beiden Fällen ist die Leistung bei diskreten 74xx-Teilen nicht unbedingt ein Ziel im Vergleich zu Vernunft und Erfolg. Wenn Sie einige SRAMs aus dieser Generation haben, dann unbedingt. Sie können LEDs an den Adress- und Datenbus anschließen, um (mehr) blinkende Lichter mit Lebenszeichen zu erzeugen.
Oder Sie können den 6502- Ansatz wählen und 256 virtuelle oder indirekte Register (Seite Null) haben, die nur Speicher oder möglicherweise spezieller Speicher sind. Und Ihr echtes Allzweckregister (oder Allzweckregister) ist wenige und passt in einige Teile. Für MOS Technology hat es ganz gut funktioniert . (Die Architektur, nicht unbedingt die Implementierung, obwohl sie den 6502 rasiert, 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 ... Auch wenn das nicht schummelt; Es ist eine bekannte Lösung.
quelle
Die Verwendung eines (modernen) SRAM-Chips mit 74LS-basierter CPU ähnelt dem Filmen von Exodus, und jemand im Film trägt eine Digitaluhr. (Die damals verfügbaren SRAMS sind nicht mehr wie 74LSxx-Teile erhältlich, daher gab es keine modernen SRAMs, aber dies ist der einzig vernünftige Kompromiss. )
Es heißt Anachronismus, ein Objekt, das in der Zeit verlegt wurde.
Mein Lieblingsbuch " Die Seele einer neuen Maschine " beschrieb die puckige Reise von Ingenieuren und ihrem Manager bei Data General, die kurz vor
Mitte derspäten 70er Jahre, als CMOS herauskam, mit " The Eagle" Geschichte geschrieben haben.Es war dieselbe Ära, ich begann mein Leben als Ingenieur mit der Erfahrung, ein UART-Board von 74LSxx zu entwerfen, da Rotamola seinen MC6821 noch nicht veröffentlicht hatte. Ich habe es in einer Woche auf Papier entworfen und das Layout auf einer 4-Lagen-Platine mit diesen 44-poligen Randverbindern für die MC6800-Karte erstellt, und es hat beim ersten Drehen funktioniert. Eine weitere Karte fächerte 128 Ausgänge und 128 Eingänge auf der Hauptkonsole auf, die wie ein Haus zu Weihnachten mit allen eingravierten quadratischen, hintergrundbeleuchteten Drucktasten aufleuchteten.
Aber wie bei "Exodus" wird Ihr Design immer noch ein Klassiker sein, genau wie Steve bei GRC und die Homebrew- PDP8-Benutzer .
quelle