Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Другие архитектуры » Использование НМД2 в ДВК |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 11 12 13 14 15 * 16 17 | Печать |
andyTh |
Сообщение отправлено: 9 июля 2014 11:08
Воооот! Достаточно драйверу разместить буфер в самом контроллере, и процессору ничего делать не нужно. Данные "волшебным" образом будут меняться сами. Это очень хорошо иллюстрируется двумя видеоконтроллерами. Это 580ВГ75 и ЕМНИП 1809ВГ6. Первая перебиралки адресов не имеет и без аппаратного ДМА контроллера не работает. Не, сделать то можно, но... Второй чип счётчик адресов имеет и прекрасно работает на системах без ДМА контроллера. Более того, видел в сети проект, где процессор и видеоконтроллер питались от одного тактового генератора, но инвертированными относительно друг друга клоками. Остальные сигналы управления тоже были подогнаны по времени. В результате проц и видеоконтроллер обращались к памяти по очереди не замечая друг друга. Но это пока на том этапе, на котором я остановился, не так важно. Мне бы "стандартную" раскладку адресов командных и управляющих регистров для начала найти. В общем буду потихоньку курить паспорт от RQDX, до просветления мож толк и выйдет. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 июля 2014 11:17 Сообщение отредактировано: 9 июля 2014 11:21
AndyTh написал: Драйвер к буферу пользователя не имеет никакого отношения. Пользователь, желающий прочитать произвольное количество слов с диска ( вплоть до 32К слов за одну операцию чтения ) передаёт операционке номер начального блока, адрес СВОЕГО буфера и счётчик слов, операционка передаёт их в драйвер, а драйвер выполняет столько запросов чтения, сколько нужно для получения от контроллера всех запрошенных пользователем слов и аккуратно укладывает результаты всех этих запросов в буфер пользователя. Достаточно драйверу разместить буфер в самом контроллере, и процессору ничего делать не нужно. Данные "волшебным" образом будут меняться сами. Некоторые контроллеры считывают за один раз не больше 64 слов, некоторые - не больше 256 слов, псевдо-контроллер HD передаёт любое количество слов, но благодаря наличию драйверов - пользователь может по единому алгоритму получить в СВОЙ буфер любое количество слов от любого контроллера. Если контроллер поддерживает ДМА - он сам копирует данные из своего буфера в буфер пользователя, а если нет - это делает драйвер. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 13:28
_Patron_ написал: Это понятно. Просто я сейчас физически не смогу этого сделать. Аппаратно у меня ДМА не разведен и честное ДМА я не сделаю в пределах этой макетки. Но сделать прозрачным в доступе процессору сегмент адресов на своей плате я могу. Для процессора это будет просто кусок памяти не на основной плате, но доступный точно так же как и основное ОЗУ. Эдакий аналог двухпортовой памяти. Если контроллер поддерживает ДМА - он сам копирует данные из своего буфера в буфер пользователя, а если нет - это делает драйвер. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 июля 2014 14:07 Сообщение отредактировано: 9 июля 2014 14:09
AndyTh написал: Поскольку драйвер HD готов запросить и получить за один раз до 32К слов данных, то единственный адекватный способ передать их все драйверу за одну операцию чтения диска - выдавать их по одному через регистр данных, сменяя на следующее после каждого шинного цикла чтения при операции чтения и цикла записи при операции записи. сделать прозрачным в доступе процессору сегмент адресов на своей плате я могу Если не различать тип цикла при доступе к регистру данных, то на некоторых процессорах могут появиться проблемы с командой CLR, которая выдаёт сначала цикл чтения, а потом цикл записи. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 15:46 Сообщение отредактировано: 9 июля 2014 15:50
Ну, считать за одно обращение к диску больше чем кластер, я по идее не смогу. В смысле используя готовые библиотеки. А это те же 512 байт, бОльшие кластера вряд ли имеет смысл делать. Но, я тоже думаю имеет смысл сделать для начала просто регистр. Тогда я у себя делаю так: Базовый адрес ххх. Положить суда или часы в BCD или доп. порт. или служебную инфу ххх+2 регистр номера привода (запись/чтение) ххх+4 регистр ёмкости привода в блоках (чтение) ххх+6 регистр номера блока (запись) ххх+8 регистр счётчика слов (запись/чтение) ххх+10 регистр команд (запись/чтение) ххх+12 регистр данных (запись/чтение) Опять же таки, где то же есть эта раскладка по адресам для "контроллера общего применения" Под что то же писан загрузчик встроенный в МС1201.03. |
Сейчас на форуме |
_Patron_
Member
Откуда: Москва Всего сообщений: 146 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 19 дек. 2012 |
AndyTh написал: Если чтение/запись кластера занимает больше времени, чем тайм-аут шины, то надо добавить в контроллер регистр статуса, рапортующий о готовности очередного кластера. Ну, считать за одно обращение к диску больше чем кластер, я по идее не смогу. |
andyTh |
NEW! Сообщение отправлено: 9 июля 2014 21:25
Поскольку и в регистре номера накопителя и в регистре команд будет занято по одному байту, второй байт можно выделить под статус. Хотя и целое слово довыделить не проблема. |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
Сделайте совместимым по регистрам с КЖД, по крайней мере с загрузчиком и драйвером проблем не будет... |
andyTh |
NEW! Сообщение отправлено: 10 июля 2014 6:19
Так ведь потеряется магия блочного устройства... Рискнуть и покопать 134 прошивку, попробовать вытянуть параметры регистров и команд оттуда? |
Сейчас на форуме |
borisfox
Advanced Member
Откуда: Хабаровск Всего сообщений: 946 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 июля 2008 |
А параметры регистров чего? КЖД ? Они же все в описании расписаны. В -134 замечена возможность загрузки со следующих устройств: MT\t- НМЛ СМ5300 CT\t- НМЛ кассетный DK\t- ? DP\t- RP02/03 Disk ? DM\t- RK06/07 Disk ? MM\t- MM (TJU16) MAGTAPE ? DB\t- ? DS\t- RJS03/04 Disk ? DX\t- ГМД-7012 DW\t- КЖД MX\t- КНГМД MY\t- КМД DU\t- MSCP Disk Все я плотно не колупал, поэтому "?" отмечены неизвестные или непроверенные (в самом деле то или просто название совпадает). Можно подстроиться и под какой-нибудь другой из перечисленных, но самый простой из них, думаю, всё-таки КЖД... Самый правильный - MSCP, но он сложный. |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 ... 11 12 13 14 15 * 16 17 | Печать |
Полигон-2 » Другие архитектуры » Использование НМД2 в ДВК |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |