User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 49

Тема: Идеология стандартизации развития принципов Z80 в HDL

  1. #1
    ZEK
    Гость

    Talking Идеология стандартизации развития принципов Z80 в HDL

    Вот думаю про сабж.

    Из того что надумал. Вводим в процессор режим SMI (system managment interrupt) типа того что есть в x86 процах, ток немного с другим акцентом, скажем как режим супервизра в M86000.

    Суть режима в следующем - в процессор вводится дополнительный контекст со своим набором регистров, вход в режим только аппаратно. В режиме юзера процессор 100% Z80, в режиме супервизора появляется 2 дополнительных регистра (верней по другому интерпретируются I,R) через которые можно читать и модифицировать все регистры юзерского режима + вводятся дополнительные регистры для отладки (адрес бряки, тип срабатывания и т.д. ).

    В режиме супервизора останавливается счет инкремент регистра R и принудительно устанавливается режим IM1. А регистры I и R имтерпертируются как индекст для доступа к новым регистам и соответсвенно данные (как в AY).

    Вход в режим супервизора будет всегда по адресу NMI, туда же будут срабатывать исключения от отладочных регистров.
    Выход из режима SMI будет во инструкции RETN по адресу 64h

    Вот и думаю нада ли сохранять при переходе в режим супервизора всякие там скрытые регистры адресации, ну и в общем учитывать нюансы для правильной работы недозаюзаных битов регистра флагов.

    Зачем это все нужно?. Сложны вопрос . Вообще в принципе что бы не юзать в FPGAшных проектах отдельные корки процов/mcu для реализации сервисных возможностей. К примеру там работа с FATxx, связь про USB с компом, "настоящий" аппаратный отладчик. И т.д.

    С расширениями адресации проца добавкой разных там умножений/делений или расширением регистров пока не замарачивался так как не вижу смысла (в смысле не поддерживается никакими инструментальными средсвами), а то что выше изложенно можно с чистой совестью юзать скажем из под SDCC, да и что угодно в принципе.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если корка будет все равно в FPGA, то зачем там z80? Можно небось и получше что найти... И не под sdcc, а под gcc. Ересь, да? =)

  4. #3
    ZEK
    Гость

    По умолчанию

    Да не, это для спектрума. Да и нафик нада ARM на 3МГц или что то в таком духе

  5. #4
    Guru Аватар для Addison
    Регистрация
    07.01.2006
    Адрес
    г. Москва
    Сообщений
    3,442
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    6 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от heroy Посмотреть сообщение
    Идеология стандартизации развития принципов Z80 в HDL
    И ты туда же?
    Давай лучше придумаем, как какую-нибудь железку спаять

  6. #5
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от Клон Посмотреть сообщение
    Давай лучше придумаем, как какую-нибудь железку спаять
    нафик паять. девборда наш президент

  7. #6
    Veteran
    Регистрация
    06.05.2006
    Адрес
    Ливны, Орловская обл
    Сообщений
    1,169
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    >>как какую-нибудь железку спаять
    Тупым, раскалённым...
    >>Да не, это для спектрума
    А для чего спеку проц, не совместимый на 100% с Z80? Отдельным MCU будет и проще и эффективнее, поскольку в нём уже всё есть.

  8. #7
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    А для чего спеку проц, не совместимый на 100% с Z80? Отдельным MCU будет и проще и эффективнее, поскольку в нём уже всё есть.
    Че не совместимый? просто процы все что больше Z80 пихать в FGPA неправильно.
    В режиме юзера проц 100% (насколько позволяет корка) Z80, повторюс в SMI режим можно войти только аппаратно. Польза есть к примеру для отладчика непосредственно на железяке

  9. #8
    Guru
    Регистрация
    13.09.2008
    Адрес
    Украина
    Сообщений
    2,677
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В чём плюс напиши на человеческом(аля доступном) языке;-)
    "...Неправедный пусть еще делает неправду; нечистый пусть еще сквернится; праведный да творит правду еще, и святый да освящается еще. Се, гряду скоро, и возмездие Мое со Мною, чтобы воздать каждому по делам его. " (Откр. 22:11-13)

  10. #9
    ZEK
    Гость

    По умолчанию

    Дебагер/загрузчик/ось/связь с писюком -невидимые для ZX софта (если нет необходимости в обратном) в изолированом адресном пространстве, к примеру TR-DOS работающая прозрачно для софта (не стучащегося напрямую к портам ВГ93) c файловой системой FAT на SD карте.
    Последний раз редактировалось ZEK; 06.10.2008 в 20:58.

  11. #10
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,081
    Спасибо Благодарностей отдано 
    274
    Спасибо Благодарностей получено 
    64
    Поблагодарили
    45 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я когда-то тоже думал на эту тему... Навесить на Z80 аппаратуру, которая позволяла бы реализовать на нем "защищенный режим".

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

    Далее программа, размещенная по адресу 066H делает все остальное.

    Возврат - аналогичным методом. Увидев, что процессор собирается исполнить инструкцию RETN, аппаратура включала бы нужные страницы памяти и подставляла вместо "содержимого стека" адрес возврата.

    Компенсация регистра R легко осуществляется программно, поэтому тут ничего особо городить не надо. Принудительное включение IM 1 - аналогично - не нужно. На начальном этапе работы супервизора (ядра ОСи) прерывания все равно запрещены, а позже ядро может выяснить текущий режим IM, сохранить его, и программно включить нужный режим (если для работы ядра вообще требуются маскируемые прерывания).

    Вызов супервизора в неисключительных ситуациях может осуществляться похожим образом, без NMI, но чтобы аппаратура следила за командой, которую выполняет проц. И при вызове RST 0, например, аналогично происходила бы замена страниц и разблокировка привилегированных портов.

    Для реализации вышеописанной концепции не нужно менять существующий Z80, то есть все решается только довесом внешней аппаратуры (скорее всего, разумеется, FPGA).

Страница 1 из 5 12345 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 21
    Последнее: 27.09.2008, 14:48
  2. Ответов: 73
    Последнее: 18.09.2008, 05:35
  3. Ответов: 33
    Последнее: 29.07.2008, 21:06

Ваши права

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