014
16.04.2015, 15:28 Uhr
Early8Bitz
|
Zitat: | kaiOr schrieb /M1 definiert nicht die Länge des Impulses sondern den bestmöglichen Startzeitpunkt. |
Die Synchronisation des Beginns des Reset-Signals mit /M1 für Datenerhalt in den RAMs ist unstrittig. Es ging zuletzt nur noch um die Dauer. Die minmale Zeit steht in den Datenblättern der Z80-CPU, nämlich mindestens drei volle Taktzyklen. (wären be 2,5MHz also 3*400ns=1,2µs, bei 4MHz Takt entsprechend 750ns). Da während der aktiven Zeit des Reset-Signals keine Signale von der CPU generiert werden, findet natürlich auch kein DRAM-Refresh in dieser Zeit statt. Weder durch RFSH-Zyklen noch indirekt durch Lese- oder Schreiboperationen.
Rechnen wir also mal den Ernstfall durch. Wir nehmen mal an, der Programmcode besteht aus einer Warteschleife, wo ein Bit gestestet wird, welches erst in einer Interruproutine gesetzt wird, die irgendwann mal durch ein externes Ereignis generiert wird (z.B. Alarmanlage). Könnte so aussehen:
Quellcode: | ld ix,flagbyte xor a ld (ix+0),a wait-for-nmi: bit 7,(ix+0) ; Bit wird durch NMI gesetzt jr z,wait-for-nmi .... ; Hurra, endlich Alarm.
|
Hier stehen die paar Bytes der Programmschleife auf Adressen, die maximal 6 Adresszeilen durch das normale Lesen ansprechen. D.h. ein indirektes Refresh eines ganzen DRAMs durch normales Befehlslesen findet nicht statt. Wir sind also auf die Refresh-Zyklen in T3/T4 jedes M1-Zyklus angewiesen.
Wir brauchen 128 RFSH-Zyklen, um alle Zeilen des DRAMs einmal aufzufrischen. das muss alle 2ms (1ms bei Anfalltypen) wiederholt werden. Obiger Befehlsschleife haben wir 23 Takte bei "bit" und 12 Takte bei "jr" In dieser Schleife sind drei M1-Zyklen, damit auch drei RFSH-Zyklen. Also sind nach 43 Schleifendurchläufen 128 Refreshs passiert. Dauert also (23+12)*43*400ns=602µs (gilt bei 2,5MHz).
Bleiben also maximal 398µs wo die CPU durch das Reset-Signal am Boden gehalten werden darf (bei 2,5MHz und DRAMs mit 1ms Refresh Periode). Bei getypten Bauelementen mit 2ms haben wir 1398µs Zeit fürs Reset.
Ich gebe zu, des Befehlsbeispiel ist etwas an den Haaren herbeigezogen, Ich wollte auch nur mal eine Grenzwertbetrachtung machen. -- Gruß Ralf
Ist ein alter Schaltkreis ein Schaltgreis? Dieser Beitrag wurde am 16.04.2015 um 15:29 Uhr von Early8Bitz editiert. |