Ввести такты ожидания (замедлить работу МП) память может с помощью сигнала READY, который МП опрашивает в середине каждого тактового периода Т2 (см. моменты времени t1, t4). Если в момент проверки сигнал READY находится в высоком уровне (как в момент времени t1), то такты ожидания не вставляются и период Т2 переходит в период Т3. Если в момент проверки сигнал READY находится в низком уровне (как в момент времени t4), то такты ожидания вставляются и период Т2 переходит в период Тож.
Если МП находится в состоянии ожидания, то он продолжает проверять состояние сигнала READY в середине каждого периода Тож (см. момент времени t6). Если в момент проверки сигнал READY находится в высоком уровне (как в момент времени t6), то такты ожидания прекращают вставляться и период Тож переходит в период Т3. В противном случае такты ожидания продолжают вставляться. С учетом N тактов ожидания длительность сигнала чтения trd может быть вычислена по формуле:
trd = (3 + 2 * N) / fbq. (2.1)
Для надежного воздействия на МП сигнал READY должен быть предустановлен перед проверками на достаточный промежуток времени (см. промежутки времени t3...t4, t5...t6).
Цикл чтения памяти может быть вызван, например, командой LDAX B (см. п. 2.8.5). Это однобайтная команда, КОП которой считывается в цикле М1. В цикле М2 содержимое РОН В устанавливается на шине А, а содержимое РОН С - на шине AD (в Т1). Байт, считанный из памяти по этому адресу, записывается в аккумулятор.
2.4.4. Машинный цикл записи в память
Временные диаграммы цикла записи в память приведены на рис. 2.5. Диаграммы цикла записи в память имеют много общего с диаграммами циклов чтения КОП и чтения памяти (см. п.п. 2.4.2, 2.4.3). Отличия заключаются в следующем: вместо сигнала RD# активизируется сигнал WR# (длительность которого также подчиняется формуле 2.1); шина AD после вывода младшего байта адреса (в Т1) продолжает работать на вывод (в Т2 и Т3) и на нее выводятся данные из аккумулятора или из любого РОН; сигнал S1 имеет нулевое значение, а сигнал S0 - единичное.
Цикл записи в память может быть вызван, например, командой STAX B (см. п. 2.8.5). Это однобайтная команда, КОП которой считывается в цикле М1. В цикле М2 содержимое РОН В устанавливается на шине А, а содержимое РОН С - на шине AD (в Т1). По этому адресу содержимое аккумулятора (находится на AD в Т2 и Т3) записывается в память.
Рис. 2.5. Временные диаграммы цикла записи в память
2.4.5. Машинный цикл чтения порта ввода
Временные диаграммы цикла чтения порта ввода приведены на рис. 2.6. Эти диаграммы практически полностью совпадают с диаграммами цикла чтения памяти (см. п. 2.4.3) кроме двух особенностей: сигнал IO/M# имеет единичное значение (высокий уровень); младший и старший байты адреса порта имеют одинаковое значение (Port на диаграммах рис. 2.6).
Цикл чтения порта ввода может быть вызван только командой IN Port (см. 2.8.9), где Port = 0...255. Это двухбайтная команда, КОП которой считывается в цикле М1. В цикле М2 (чтение памяти) считывается код адреса порта Port. В цикле М3 этот код устанавливается на шине А и на шине AD (в Т1). Байт, считанный из порта по этому адресу, записывается в аккумулятор.
Очевидно, что адресное пространство портов ввода/вывода (см. п. 2.4.6) составляет 256 портов на ввод и 256 портов на вывод.
Рис. 2.6. Временные диаграммы цикла чтения порта ввода
2.4.6. Машинный цикл записи в порт вывода
Временные диаграммы цикла записи в порт вывода приведены на рис. 2.7. Эти диаграммы практически полностью совпадают с диаграммами цикла записи в память (см. п. 2.4.4) кроме двух особенностей: сигнал IO/M# имеет единичное значение (высокий уровень); младший и старший байты адреса порта имеют одинаковое значение (Port на диаграммах рис. 2.7).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.