Инструменты пользователя

Инструменты сайта


msx:ram:ram

MSX — RAM

Слот памяти

Концепция слота памяти

Термин «слот», используемый в этой главе, аналогичен понятию «банк памяти»: каждый из четырёх слотов представляет собой адресное пространство размером 64 Кб, и процессор для каждой четверти (страницы) своего адресного пространства может указать, содержимое какого слота будет отображаться в неё. В этом смысле он напоминает слот картриджа, то есть разъём, в который вы вставляете картридж. Кроме того, сигнал на шине картриджа для выбора этого слота памяти естественно назвать сигналом выбора слота, поэтому слот памяти называется «слотом». Данный термин («слот») здесь используется при рассмотрении программной архитектуры, и никак не связан с одноимённым аппаратным компонентом. Упомянутый компонент в дальнейшем будет называется «шиной картриджа» или «слотом картриджа».

Преимущества «слотовой» структуры

Если в микропроцессорной системе с общей шиной используется множество банков памяти, и отсутствует специальный сигнал выбора (сигнал выбора слота), подаваемый на каждый модуль памяти, подключённый к шине, то это приведёт к тому, что несколько устройств, занимающих одно и то же адресное пространство, одновременно подключаются к шине, даже если они не осуществляют операции чтения/записи по установленному на шине адресу. Это может привести к повышению нагрузки на шину вплоть до возникновения коллизий, приводящих к сбоям в работе. Однако этого можно избежать, если каждый модуль (набор модулей) памяти индивидуально выбирается сигналом выбора слота. Кроме того, поскольку программы, которые занимают один и тот же диапазон адресов в адресном пространстве, могут одновременно располагаться в памяти, появляется дополнительное преимущество в гибкости и расширяемости системы.

Первичный слот

Основное ОЗУ

Вторичный слот (опционально)

Маппер памяти (опционально)

FIXME

Устройство управления физическими страницами ОЗУ.


Физическая структура маппера

Поддержка начинается с MSX 2.

Порты управления:

Порт Логическая
страница
Диапазон
адресов
FC 0 0x0000–0x3FFF
FD 1 0x4000–0x7FFF
FE 2 0x8000–0xBFFF
FF 3 0xC000–0xFFFF

Добавление слотов памяти

Четыре слота памяти, доступные в базовой конфигурации, называются первичными слотами. Если вы хотите добавить в систему большее количество слотов (для добавления оперативной или постоянной памяти или регистров устройств, проецируемых в адресное пространство), расширьте первичные слоты вторичными. Другими словами, чтобы выбрать вторичный слот, сначала выберите первичный слот, к которому подключён вторичный слот, а затем выберите вторичный слот, который был добавлен.

Сигнал /BUSDIR управляет направлением буфера двунаправленной шины данных расширенной шины картриджа.

Картриджи, содержащие только устройства памяти (оперативной или постоянной) — например, игровые картриджи, — могут не обрабатывать сигнал /BUSDIR, за счёт чего сложность схемы и соответственно цена таких картриджей может быть снижена. Однако картридж, включающий устройство ввода/вывода, которое передаёт сигнал в процессор, должен установить сигнал /BUSDIR в низкий уровень на время передачи данных процессору, указав тем самым направление, в котором должен работать буфер. Регистр выбора слота для создания сигнала выбора вторичного слота размещается по адресу памяти 0xFFFF вторичного слота. Для того, чтобы можно было отличить наличие по этому адресу регистра выбора вторичного слота от ОЗУ, при чтении из этого регистра его содержимое должно инвертироваться. Такой подход позволит создавать вторичные слоты для одного или нескольких первичных.

Дополнительное ОЗУ

Модули памяти:

Объём памяти отображаемый на экране:

вычисляется по содержимому ячейки SubROM, записанному по адресу 0x3763.

Объём памяти в Кбайтах. вычисляется по формуле:

USER RAM: = ((Значение из 0x3763)+2)*16

В результате получим (6+2)*16=128. По умолчанию в 0x3763 записано число 6.

Обратная формула:

Значение ячейки 0x3763 = Объём памяти(Кбайт)/16-2
Объём памяти
(Кбайт)
Значение ячейки
0x3763
128 0x06
256 0x0E
512 0x1E
1024 0x3E
2048 0x7E
4096 0xFE

Программы для тестирования памяти:

Ссылки

msx/ram/ram.txt · Последние изменения: 2023-08-03 19:21 — GreyWolf