Важная информация

User Tag List

Страница 126 из 183 ПерваяПервая ... 122123124125126127128129130 ... ПоследняяПоследняя
Показано с 1,251 по 1,260 из 1824

Тема: Эмулятор ДВК

  1. #1251
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    Ярослав (Jarik65535) сочиняет контроллер карточек микро-SD на системную шину УКНЦ. Я посоветовал делать интерфейс с системой "по мотивам" HD
    Если делать с прерываниями и DMA, то лучше придумать новый аппаратный интерфейс ( контроллер SD ) "по мотивам" контроллера MY. Из команд оставить только ЧТЕНИЕ, ЗАПИСЬ, ЗАГРУЗКА, НАСТРОЙКА, РАЗМЕР и СОСТОЯНИЕ, а в блоке параметров передавать не головка-сектор-цилиндр, а сразу номер блока ( как в HD ).

    Обсудите все тонкости такого интерфейса ( особенно если есть желание адресовать на диске более 64 К блоков ), после чего я могу добавить устройство SD в эмулятор ДВК.

  2. #1252
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    "по мотивам" контроллера MY
    Добавлю, что лучше не по мотивам MY, а с набором регистров через которые передаются все параметры для операции, которые можно читать, в которых счетчик слов убывает в процессе выполнения, а адрес диска и памяти растет. Это упростит реализацию и позволит выполнять последовательные однотипные операции просто установкой одного бита GO в CSR.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  3. #1253
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    Добавлю, что лучше не по мотивам MY, а с набором регистров через которые передаются все параметры для операции, которые можно читать, в которых счетчик слов убывает в процессе выполнения, а адрес диска и памяти растет. Это упростит реализацию и позволит выполнять последовательные однотипные операции просто установкой одного бита GO в CSR.
    Тогда можно просто разместить блок параметров "в стиле" MY сразу после регистра данных контроллера - в результате адрес этого блока не надо будет передавать контроллеру при каждой операции, а контроллеру не потребуются циклы DMA для его чтения и записи.
    Последний раз редактировалось Patron; 25.07.2017 в 14:01.

  4. #1254
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    разместить блок параметров "в стиле" MY сразу после регистра данных контролера
    Ну да, это и имел в виду - просто чтобы этот самый блок не таскать взад-вперед по DMA.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  5. #1255
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Если делать с прерываниями и DMA
    С DMA, скорее всего, будут сложности. ПЛИСка у этих PsOC4 довольно убогая, а DMA у наших машинок, кроме обычных счетчиков адреса и регистров передачи данных (которые легко и непринужденно делаются на GPIO Кортекса-М0 и его внутренних ресурсах), имеет довольно сложную логику. Не факт, что она влезет в эту ПЛИСку.

    Цитата Сообщение от Patron Посмотреть сообщение
    Тогда можно просто разместить блок параметров "в стиле" MY сразу после регистра данных контроллера
    Увы, пока регистры контроллера оказались на адресах 176560-66, поскольку для начальной загрузки штатными средствами УКНЦ контроллер поначалу прикидывается сетевым адаптером. А сразу за ним - стык С2, 176570...

    И вообще, мне, как раз, понравилась идея последовательной передачи "задания" контроллеру с прямым указанием компонента, который сейчас передается: дали команду, что передаем дисковый адрес (номер блока) - даем младшее слово номера блока, и т.д. Вместо адресов памяти, скорее всего придется ввести пару команд типа "залить данные в буфер сектора" и "считать данные из буфера сектора". Затем, при записи, после заливки данных сектора в буфер, подадим команду "писать", а при чтении подадим команду "читать", затем будем читать данные из буфера сектора, вестимо, в PIO-mode. Естественно, для сигнализации о завершении сравнительно длительных операций - передачи туда-сюда между карточкой и буфером сектора, будут задействованы прерывания, а что касается обмена между основной памятью и буфером сектора, так PIO-mode на FORK-уровне RT-11, ИМХО, самое то.
    Последний раз редактировалось AFZ; 25.07.2017 в 18:17.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  6. #1256
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    С DMA, скорее всего, будут сложности.
    Тогда тем более делать все параметры в регистрах. А DMA - и фиг с ним - достаточно чтобы были прерывания, говорящие о том, что очередное слово готово к чтению контроллером или для чтения из контроллера.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  7. #1257
    Member
    Регистрация
    25.08.2015
    Адрес
    г. Ульяновск
    Сообщений
    186
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    3 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А сильно ли нужны эти прерывания? Просто RT11 обычно не сильно многозадачная, а ресурсов PSoC4 вряд ли хватит. Сейчас уже реализован доступный по чтению регистр с флагом готовности. Ждать нужно будет только во время чтения/записи данных в карту.

  8. #1258
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    Просто RT11 обычно не сильно многозадачная
    Ну во-первых FB/XM/ZM очень даже многозадачные, во-вторых даже в однозадачном RT-11 есть возможность запустить операцию ввода-вывода и продолжать выполнение, не ожидая завершения - как завершится - будет оповещение (или в нужный момент можно дождаться), ну и в-третьих зачем ограничивать себя сразу рамками RT-11?
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  9. #1259
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    А сильно ли нужны эти прерывания?
    Я думаю, что ресурсов PSoC хватит. Прерывание ведь инициируется с контроллера, значит его можно делать на Кортексе, а не на ПЛИС. От ПЛИС потребуется только пропустить или не пропустить (в зависимости от какого-нибудь отдельного бита GPIO) через себя сигнал ППР. То есть, если мы не собираемся прерывать, то ставим этот бит в состояние"пропускать" и не вспоминаем о прерываниях вообще, а соберемся прерывать - ставим "не пропускать, после чего Кортексом, через другие GPIO, отрабатываем процедуру прерывания, опять же, в коротком цикле.

    Цитата Сообщение от form Посмотреть сообщение
    Ну во-первых FB/XM/ZM очень даже многозадачные, во-вторых даже в однозадачном RT-11 есть возможность запустить операцию ввода-вывода и продолжать
    А в третьих, я таки лелею надежду, что по окончании работ над УКНЦ-шным вариантом его таки удастся доработать для ДВК, а там и RSX работает нормально, и Демос, и ДИАМС...
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

  10. #1260
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Jarik65535 Посмотреть сообщение
    А сильно ли нужны эти прерывания?
    Прерывания очень полезны, но первую версию контроллера можно сделать без них. Чтобы легко отличать версию без прерываний - можно сразу предусмотреть в CSR бит разрешения прерываний 0100, который невозможно установить у версии без прерываний.

    Работу с регистрами можно сделать довольно оригинально - задавать номер одного из 8 регистров в битах 010..002 CSR, после чего читать/писать этот регистр через регистр данных, а младший бит CSR использовать для запуска выполнения. Регистр с номером 00 может содержать слово состояния контроллера, а регистр с номером 01 - команду, которая будет выполнена при записи 1 в CSR. Поэтому для выполнения новой команды - надо сначала записать 02 в биты 010..002 CSR ( что откроет доступ к регистру команд через регистр данных ), потом записать код команды в регистр данных и затем установить бит 01 в CSR для выполнения команды. Поскольку этот бит всегда читается нулём - его установка может производиться командой INC.

    Обмен данными можно организовать в стиле DW - после начала выполнения команды ЗАПОЛНИТЬ БУФЕР или ОПОРОЖНИТЬ БУФЕР - снимается бит READY в CSR и следующие 256 обращений к регистру данных попадают в 256 последовательных 16-битных ячеек буфера контроллера, причём при заполнении учитываются только циклы записи, а при опорожнении - только циклы чтения. Таким образом можно будет (например) подать команду ЗАПОЛНИТЬ и затем инвертировать содержимое буфера, подав 256 команд COM @#DATA. После 256 учтённых обращений команда завершается и устанавливается бит READY в CSR.

    Завершение любой команды приводит к установке бита READY в CSR, очистке в CSR битов номера регистра 010..002 ( т.е. выбору регистра состояний для проекции в регистре данных ) и записи в регистр состояний кода завершения команды.

    Запись в CSR при сброшенном бите READY завершает выполнение любой команды на любом этапе. Записанное слово проверяется только на бит 040000, если он установлен - производится обычный сброс контроллера, а если нет - сброс контроллера дополняется записью кода ошибки в регистр состояния 00. Ошибки при выполнении команд отражаются кодом ошибки в регистре 00. Включение питания, INIT шины и установка бита 040000 в CSR - сбрасывают контроллер в начальное состояние с запрещением прерываний, установкой проекции регистра состояний 00 в регистре данных и очисткой кода ошибки в регистре состояний.

Страница 126 из 183 ПерваяПервая ... 122123124125126127128129130 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 19
    Последнее: 24.06.2022, 08:02
  2. Эмулятор ПЗУ.
    от ALKO в разделе Память
    Ответов: 8
    Последнее: 17.05.2011, 13:41
  3. Эмулятор AY на AVR
    от serkiri в разделе Звук
    Ответов: 52
    Последнее: 10.06.2010, 09:01
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 18:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •