Контролируемая память ZX Spectrum - ZX Spectrum Contended Memory

Несколько из ZX Spectrum адресуемое 64 КБ объем памяти пространство называется конкурирующей памятью. С остальной памятью Z80 микропроцессор является эксклюзивной мастер шиной, так что чтение и запись работает на полной скорости шины, но утверждал объем памяти распределяются между ULA и Z80 с более высоким приоритетом ULA. Контролируемая память занимает адреса 0x4000..0x7FFF Z80 карта памяти. Это первые 16 КБ баран в машине с 48 КБ и всей оперативной памяти машины с 16 КБ.

Конфликт возникает в результате того, что ULA считывает отображение и атрибуты данных в этом ОЗУ для создания ТВ видео дисплей. Таким образом, конфликт не возникает во время горизонтального обратного хода, вертикального обратного хода или во время границы экрана.

Доступ к Ввод / вывод также оспариваются, если ULA должен читать конкурирующую память, в то время как Z80 обращается к порту ввода-вывода ULA. Порты ввода-вывода ULA - это порты с четным адресом (бит адреса 0 равен 0).

Z80 должен ждать всякий раз, когда ULA должен получить доступ к конкурирующей памяти, прежде чем продолжить чтение или запись своей собственной конкурирующей памяти. Эффект для пользователя заключается в том, что программы которые используют конкурирующую память или конкурирующий ввод-вывод, работают медленнее, чем те, которые этого не делают.

Снежный жук

ULA должен дождаться завершения чтения или записи Z80, прежде чем он сможет остановить часы Z80 и получить доступ к памяти; он остановит часы Z80 только во время первого такт из машинный цикл.

Ранние спектры предполагают, что в машинном цикле произойдет не более одного конкурентного доступа к памяти: это неверно в получение инструкций циклы, если программист настроил таблица векторов прерываний попасть в спорную область. В этом случае ULA откажется загружать свои видео адрес и видео байт отображается то, что процессор читал. Последствия этого случайны шум на дисплее или «снег».

Поскольку при нормальной работе такого эффекта не было - требовалось сознательное вмешательство программиста.[1] - встречался очень редко, использовался только в некоторых игры как специальный графический эффект.

Более поздние версии Spectrum, включая все версии 128kb, исправляют ошибка.

Схема

ULA не использует механизм запроса / разрешения шины Z80, чтобы стать мастером шины во время конкурентных обращений к памяти. Вместо этого он увеличивает высокий период тактового сигнала Z80, чтобы остановить все действия микропроцессора. Хотя это менее элегантно, чем выполнение запроса шины, он обеспечивает доступ к памяти через меньшее количество часов Z80. Это избавляет ULA от необходимости заранее считывать отображаемые данные, что является преимуществом переполненная схема в полном ULA.

ULA подключается непосредственно к микросхемам системы памяти, а Z80 подключается к ним через изолирующие последовательные токоограничивающие резисторы. Это позволяет ULA и памяти управлять друг другом, в то время как Z80 также управляет памятью. Использование резисторов вместо микросхем драйвера шины с тремя состояниями снижает затраты на схему, но требует более высокого среднего тока на выводах ввода / вывода от Z80, ULA и микросхем памяти.

Рекомендации

  1. ^ "ZX Spectrum ULA - SinclairFAQ - Эффект снега". faqwiki.zxnet.co.uk. Получено 2018-09-13.

внешняя ссылка