In seinem Kapitel über CPU-Design stellt Edward Bosworth die folgende Drei-Bus-Architektur vor:
Eines der Hauptdesignziele dieser Schaltung besteht darin, den Programmzähler PC in einem einzigen Taktzyklus inkrementieren zu können. Gemäß dem begleitenden Text wird dies erreicht, indem B1 von PC, B2 von dem +1-Konstantenregister angesteuert wird, das Additionssignal an der ALU angelegt und PC von B3 angesteuert wird:
PC <- PC+1: PC -> B1, 1 -> B2, add, B3 -> PC
Die offensichtliche Frage ist dann, wie kann der PC Laufwerk B1 mit einem Wert registrieren und gleichzeitig einen anderen Wert von B3 laden?
Ich kann mir zwei mögliche Workarounds einfallen lassen, aber beide haben offensichtliche Probleme.
Also, was ist hier los?
Es stellt sich heraus, dass ich ein entscheidendes Detail im Begleittext übersehen habe und die Register tatsächlich aus zwei (Master-Slave-) Unterregistern bestehen:
Die Verwendung von Master-Slave-Registern
Beachten Sie, dass der Inhalt des PCs innerhalb des gleichen Taktimpulses inkrementiert wird. Als direkte Konsequenz muss der PC als Master-Slave-Flip-Flop implementiert werden; eine, die nur während der positiven Phase der Uhr auf ihren Eingang reagiert. Beim Design dieses Computers werden alle Register in der CPU als Master-Slave-Flip-Flops implementiert.
drxzcl
Chris Laplante
drxzcl
Chris Laplante
stevenvh
Superkatze
Superkatze
drxzcl
drxzcl
Superkatze
Superkatze