Бытовой ретро-компьютер своими руками http://forum.pk-fpga.ru/ |
|
Виртуальная память http://forum.pk-fpga.ru/viewtopic.php?f=2&t=5367 |
Страница 1 из 1 |
Автор: | СергейВ [ 12 мар 2013, 05:46 ] |
Заголовок сообщения: | Виртуальная память |
К вопросу о расширении объема оперативной памяти. Старшие модели pdp-11 имеют специальный блок управления памятью (MMU), транслирующий 16-битный виртуальный адрес в 18-битный или 22-битный физический адрес. Для этого служат специальные регистры MMR0-MMR3, PAR[0-7] и PDR[0-7]. Блок MMU подробно описан в PDP11_Handbook1979.pdf, страницы 147-178. Демос-ДВК и 2.11BSD используют эти регистры для доступа ко всей имеющейся памяти машины. Максимально возможный размер памяти - 4 мегабайта. Имеет смысл реализовать MMU в FPGA и проверить на симуляторе. ___ Сергей |
Автор: | Voland [ 12 мар 2013, 19:41 ] |
Заголовок сообщения: | Re: Виртуальная память |
Это имеется ввиду только работа БК12(FPGA) в режиме PDP-11/70 (ВМ3 по-нашему), или расширение памяти до 4 Мб и в стандартной БК0011М? Не возникнет ли несовместимостей со старым софтом БК0011М при такой реализации расширения памяти в стандартной БК0011М? |
Автор: | СергейВ [ 13 мар 2013, 01:06 ] |
Заголовок сообщения: | Re: Виртуальная память |
Это режим pdp-11, он же ДВК. Будем называть его ВМ3 для простоты. Кое-как, очень запутанно описан в документации по К1801ВМ1, разделы "Управление памятью", "Страничная организация памяти", "Включение управления памятью", "Формирование физического адреса". Все-таки лучше смотреть его непосредственно в PDP11 Handbook. Есть две разновидности:
Совсем другой способ управления памятью был в БК-0011М. Описание есть в Руководстве системного программиста БК-0011М, раздел "1.2.6.2. Регистр управления памятью". Максимальный размер ОЗУ - 128кбайт. Плюс ПЗУ 16кбайт, разбитое на четыре страницы по 4к. Про способы расширения памяти БК-0011М до 4 Мбайт я ничего не знаю, не встречалось. ___ Сергей |
Автор: | Voland [ 13 мар 2013, 17:56 ] |
Заголовок сообщения: | Re: Виртуальная память |
>> Про способы расширения памяти БК-0011М до 4 Мбайт я ничего не знаю, не встречалось. Вопрос пока как раз в этой части интересует. А именно: можно ли в текущей архитектуре БК0011М выделить адрес для нового регистра (для адресации 256 страниц памяти по 16кб) таким образом, чтобы это не вызвало проблем с каким-либо старым софтом, или же гарантии такой дать невозможно? Т.е. хочется найти метод (пусть и отличный от стандартов PDP-11) по расширению основной памяти БК0011М обратно-совместимым способом. Есть мнения, что для этого нужно внимательно просмотреть, что осталось свободного в адресном пространстве по адресам больше 177660. |
Автор: | СергейВ [ 14 мар 2013, 11:02 ] |
Заголовок сообщения: | Re: Виртуальная память |
Вроде как в диапазоне 177660-177717 заняты только пять слов: 177660 - состояние клавиатуры 177662 - данные клавиатуры, управление палитрами 177664 - рулонный сдвиг 177714 - параллельный порт 177716 - динамик, магнитофон, страничная память Слова 177666-177712 никто не использует. Но как будет реагировать реальная БК-шка на попытки обращения по этим адресам, неизвестно. |
Автор: | Blink [ 22 авг 2013, 11:56 ] |
Заголовок сообщения: | Re: Виртуальная память |
На реальной БКшке можно добавить любое устройство, заняв под порт любое свободное слово в области системных регистров. Обратной совместимости это не мешает. Необходимо, чтобы новое устройство отвечало сигналом RPLY, опознавая адрес своего порта. Иначе возникает прерывание по зависанию. 2СергейВ портов больше занято на БК. Они не должны совпадать. Один адрес-одно устройство. Но на БК я это правило нарушал Добавлял специализированое ПЗУ, и его декодер подмешивал единичку при опросе порта 177716. В результате БКшка запускалась прямо с добавочного ПЗУ. Например, это можно использовать (было, увы) для старта машины прямо со свой ДОСки. Что я и делал))) К тому же сама ПЗУ была составная. По чётным адресам отвечал банк 0, по нечётным банк 1. То есть, в адресной области 8К размещалось 16К ДОС и набор-расширение функций. С ОЗУ такие фокусы не пройдут) |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |