Растактовка чтения из ОЗУ ПП
https://pic.maxiol.com/images2/15956...1951582.01.png
Описание:
Чтение из ОЗУ ПП начинается по переднему фронту DIN. Если контроллер все еще занят операциями записи в регистр октета или в регистр адреса планов, то начало чтения ОЗУ задержится до окончания последнего цикла CLCA предыдущей операции. На шину AD0..AD15 выставляется предыдущее слово прочитанное из памяти, и сохраненное в регистрах MEM_HIGH/MEM_LOW.
В последнем такте отрицалельного фронта CLCA (такт 7) происходит подготовка данных для чтения.
Чтение из ОЗУ всегда словное:
По положительному фронту CLCA начинается процесс чтения младшего байта из ОЗУ ПП.
Такт 8 - на шину A0..A7 выводится младшая часть адреса (LATCH_ADR). Младший бит принудительно равен 0.
Такт 9 - видеоконтроллером устанавливается сигнал RAS, по которому в ОЗУ защелкивается адрес строки (младшая часть адреса).
Такт 9.5 - на шину A0..A7 выводится старшая часть адреса (LATCH_ADR). С этого момента шина данных D0..D7 выводится на AD0..AD7.
Такт 10 - устанавливается сигнал CAS, по которому в ОЗУ защелкивается адрес столбца (старшая часть адреса). После чего ОЗУ выставляет на шину данных D0..D7 значение из памяти.
Такт 11.5 - снимается сигнал RAS.
Такт 12 - шина A0..A7 освобождается для видеоконтроллера на 4 такта, сигнал CAS снимается, данные с шины D0..D7 защелкиваются в регистре MEM_LOW.
По положительному фронту CLCA начинается процесс чтения старшего байта из ОЗУ ПП.
Такт 16 - на шину A0..A7 выводится младшая часть адреса (LATCH_ADR). Младший бит принудительно равен 1.
Такт 17 - видеоконтроллером устанавливается сигнал RAS, по которому в ОЗУ защелкивается адрес строки (младшая часть адреса).
Такт 17.5 - на шину A0..A7 выводится старшая часть адреса (LATCH_ADR). С этого момента шина данных D0..D7 выводится на AD8..AD15.
Такт 18 - устанавливается сигнал CAS, по которому в ОЗУ защелкивается адрес столбца (старшая часть адреса). После чего ОЗУ выставляет на шину данных D0..D7 значение из памяти.
Такт 19.5 - снимается сигнал RAS.
Такт 20 - шина A0..A7 освобождается, сигнал CAS снимается, данные с шины D0..D7 защелкиваются в регистре MEM_HIGH. На шине AD0..AD15 находится слово, прочитанное из ОЗУ. Выдается сигнал RPLY, в ответ на который процессор считывает данные с шины AD, и снимает сигнал DIN. Шина AD освобождается.
Как видно из графиков, данные на шине AD в процессе чтения меняются следующим образом:
Начало чтения (DIN установлен) - на шине AD0..AD15 выставляется предыдущее слово, прочитанное из ОЗУ.
Такт 9.5 - на шине AD0..AD7 - мусор, копируемый с D0..D7, AD8..AD15 - предыдущее значение.
Tакт 10..11 - на шину AD0..AD7 выставляется значение из памяти (младший байт), AD8..AD15 - предыдущее значение.
Такт 17.5 - на шине AD8..AD15 - мусор, копируемый с D0..D7, AD0..AD7 - младший байт.
Такт 18..19 - на шину AD8..AD15 выставляется значение из памяти (старший байт), AD0..AD7 - младший байт.