Speicherzeitwerte für Mikroprozessor (8086)

Wie ich aus vielen Quellen gelesen habe, ist der Speicher-Timing-Betrieb des 8086-Mikroprozessors etwas vage. Es gibt eine TAVDV, die die Zeit ist, ab der eine gültige Adresse auf den Bus geht, bis gültige Daten auf dem Bus erscheinen (im Lesezyklus). Schauen Sie sich dieses Buch an (Seite 58).

Um das zu berechnen (die Abbildung auf Seite 59), nimmt es insgesamt 3 Taktzyklen an und subtrahiert dann zwei redundante Terme. Einer ist TCLAV, was die Zeit vom Takt bis zu dem Zeitpunkt bedeutet, an dem eine gültige Adresse auf dem Bus ist, und der andere Begriff ist TDVCL, was die Zeit bedeutet, wenn gültige Daten auf dem Bus sind, bis zur Flanke des Takts.

Die Idee ist ziemlich einfach, wenn man sich diese Seiten ansieht. Das Problem ist, dass die Berechnung von TDVCL falsch zu sein scheint. Warum??

Die Taktperiode von 8086 (5 MHz) beträgt 200 ns. Da das Tastverhältnis 30 % beträgt, werden 133 ns für Low und 66 ns für High angenommen. Deshalb,

TCLAV = ONE_PERIOD - Tsetup - T_ONE

Ich weiß nicht, Tsetupaber 200-66=133und wenn wir einen willkürlichen Wert für annehmen Tsetup, erreichen wir 110 ns für TAVCL (wie im Buch angegeben).

Jetzt sagt das Buch, dass TDVCL 30 ns beträgt. Wie wird das berechnet? Datenzeilen müssen gültige Werte gemäß der enthalten Tsetup. Daher ist TDVCL meiner Meinung nach absolut größer als 66 ns (was die Zeit ist, in der die Uhr hoch ist).

Kann jemand erklären, wie das berechnet wird?

Ich füge den Text und die Abbildung hier ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Ist Ihnen klar, dass Sie an einer 37 Jahre alten Technologie forschen? Ich persönlich würde meine Zeit lieber mit neueren Technologien verbringen.
Nun, diese spezielle Architektur ist immer noch enorm verbreitet. Ich gebe zu, dass ich nicht weiß, ob die hier beschriebenen spezifischen Timings immer noch eine Sache sind, aber der Bogen und die physischen Chips werden immer noch hergestellt und sind überall leicht zu finden.
Die Timings sind für keinen neueren Prozessor als den 80186 relevant (der 80286 hat, glaube ich, einen Arbeitszyklus von 50% geschaltet) ... aber der 8086 und der 80186 sind tatsächlich noch in Produktion und eine plausible Wahl für selbstgebaute Computersysteme (vorausgesetzt, Sie versuchen nicht, sie bei digikey zu kaufen, der als Nicht-Händler nicht weniger als 99 davon auf einmal verkauft ...).
"Die Taktperiode von 8086 (5 MHz) beträgt 200 ns. Da das Tastverhältnis 30 % beträgt, bedeutet dies, dass 133 ns für Low und 66 ns für High angenommen werden." -- es wird allgemein zitiert, dass der 8086 eine Einschaltdauer von 33 % benötigt, und so werden sie von den meisten Designs tatsächlich verwendet. Ein 133-ns/66-ns-Takt (der normalerweise aus einem 30-MHz-Takt mit einem Zähler auf 4 und dann auf 2 zur Teilung der Zyklen generiert wird) liegt jedoch außerhalb der Spezifikation, da die minimale Low-Zeit im Datenblatt mit 69 ns angegeben ist. 125 ns/75 ns (40 MHz unterteilt in 5 und 3 Zyklen) ist wahrscheinlich die vernünftigste Aufteilung, wenn Sie innerhalb der Spezifikation bleiben und die maximale Leistung erzielen möchten.
(Siehe auch: retrocomputing.stackexchange.com/questions/5611/… was für diese Frage irgendwie relevant ist)

Antworten (1)

Eine Google-Suche ergibt dieses Datenblatt .

TDVCL, die Einrichtungszeit des Dateneingangs-Flipflops, ist ein gegebener Wert, was bedeutet, dass er vom Silizium charakterisiert und nicht abgeleitet wird.

TAVCL, das ist eine Uhr zum Ausgabewert (kein Setup-Wert), der auch ein gegebener Wert auf dem Datenblatt ist.

Ohne Kenntnis des internen Aufbaus können Sie nicht versuchen, einen Wert für diese zu berechnen, weshalb sie angegeben sind. Die Tatsache, dass die TAVCL so groß ist, spiegelt wahrscheinlich die Komplexität der internen asynchronen Logik wider, die die Adresse erzeugt. Es ist wahrscheinlich, dass TDVCL klein ist, da die Eingabe direkt an ein Flipflop geht.

Die beiden Werte (TAVLC und TDVCL) können verwendet werden, um die Anforderungen an die asynchrone Speicherzugriffszeit zu berechnen, wie im Buch beschrieben, mit Ausnahme der Tatsache, dass sie es versäumt haben, die PCB-Trace-Verzögerung beim Umlauf zu berücksichtigen.

"Sie haben es versäumt, die PCB-Trace-Verzögerung bei der Hin- und Rückfahrt zu berücksichtigen." ... mit einer minimalen Zugriffszeit von 460 ns und einer minimalen Zykluszeit von 600 ns ist die PCB-Trace-Verzögerung wahrscheinlich kein großes Problem, es sei denn, Ihre Platine ist mehrere Meter lang.