In dem Text, dem ich folge, RSGaonkar , wird erklärt, dass
Während T1 wird die Adresse im Programmzähler (PC) im Speicheradressenregister (MAR) zwischengespeichert.
Während der fallenden Flanke von T2 wird aktiv, und während der ansteigenden Flanke wird der Inhalt des Speicherdatenregisters auf den Bus gelegt
Während T3 wird der Inhalt des Busses in den Akkumulator eingeklinkt.
Meine Frage ist , warum der MDR während der steigenden Flanke von T2 nicht direkt auf den Akkumulator eingeklinkt wird, sondern einen anderen T-Zustand annimmt, um ihn einzuklinken?
Der "zusätzliche" T-Zustand ist in den Zyklus eingebaut, um dem externen Speicher ausreichend Zeit zum Antworten zu geben. Denken Sie daran, dass bei der Entwicklung dieses Chips die Speicherchips dieselbe Basistechnologie wie der Prozessor verwendeten und genauso langsam waren, außerdem war zusätzliche Zeit für die Decodierung externer Adressen und die Buspufferung erforderlich.
Die Designer wollten es einfach machen, ein "minimales" System zusammenzustellen, ohne dass eine externe Logik zum Generieren von Wartezuständen erforderlich ist.
Hier sind die Details des Lesezyklus aus dem Datenblatt auf Seite 1-25.
Beachten Sie, dass t CYC 320 ns (3 MHz, 8085 AH) beträgt, aber auch nur 167 ns (6 MHz, 8085 AH-1) betragen kann.
t AD ist die gesamte Speicherzugriffszeit aus Sicht der CPU, von dem Zeitpunkt, an dem die Adresse stabil ist, bis zu dem Zeitpunkt, an dem die Daten gültig sein müssen. Sie wird beim 8085AH mit 575 ns angegeben. Wenn Sie einen T-Zyklus kürzen, würde dies auf nur 255 ns sinken.
Wie gesagt, aus Sicht der CPU – die Adressleitungen werden an den Pins der CPU gültig und die Daten müssen an den Pins der CPU gültig sein . Diese Gesamtzeit muss die Zeit beinhalten, die die Adresssignale benötigen, um sich durch Adresspuffer, Adressdecoder und möglicherweise über eine Art System-Backplane auszubreiten, bevor sie zu den Pins des eigentlichen RAM-Chips gelangen. Dies ist der Punkt, an dem der RAM-Lesezyklus beginnt – t AA ist die Zeit von dem Zeitpunkt, an dem die Adresse an den Pins des RAM-Chips gültig ist, bis zu dem Zeitpunkt, an dem seine Datenausgänge gültig sind, und dies ist normalerweise der langsamste Parameter auf dem Chip.
Wenn die Daten dann an den Pins des RAM-Chips gültig werden, müssen sie sich noch durch einen oder mehrere Buspuffer ausbreiten (und eine weitere Reise über die Backplane), bevor sie zur CPU selbst zurückkehren.
All dieser Overhead könnte sich leicht auf etwas in der Größenordnung von 200 ns summieren. Bei einem Zyklus mit 2 T-Zuständen blieben nur 55 ns für die Zugriffszeit des RAM-Chips übrig. Bei einem 3-T-State-Zyklus erhalten Sie eher 375 ns, was für die damals verfügbaren Chips ein viel vernünftigerer Wert ist.
Marko Buršič
Aravindh Vasu
Steve G