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

User Tag List

Страница 3 из 11 ПерваяПервая 1234567 ... ПоследняяПоследняя
Показано с 21 по 30 из 109

Тема: Ядро с 32 битами и виртуализацией

  1. #21
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    Павлодар
    Сообщений
    3,787
    Спасибо Благодарностей отдано 
    95
    Спасибо Благодарностей получено 
    254
    Поблагодарили
    195 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ynicky, а почему все регистры по сбросу в FF?

  2. #22
    Activist
    Регистрация
    09.04.2009
    Адрес
    Зеленоград
    Сообщений
    290
    Спасибо Благодарностей отдано 
    33
    Спасибо Благодарностей получено 
    234
    Поблагодарили
    117 сообщений
    Mentioned
    9 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Ynicky, а почему все регистры по сбросу в FF?
    Не все. PC, IFF1, IFF2, IM - в 0.
    Сейчас не помню, но где-то вычитал, что они по включению питания в z80 имеют эти значения.

  3. #23
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    3,330
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    115
    Спасибо Благодарностей получено 
    86
    Поблагодарили
    76 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Ynicky Посмотреть сообщение
    Не все. PC, IFF1, IFF2, IM - в 0.
    няз IR тоже надо занулить, а FFFF достаточно AF и SP, остальные не определены
    это в случае нормального резета, а то есть еще и "особенный"
    http://www.primrosebank.net/computer...cial_reset.htm
    Прихожу без разрешения, сею смерть и разрушение...

  4. Эти 2 пользователя(ей) поблагодарили Lethargeek за это полезное сообщение:

    andrews (12.01.2020), NEO SPECTRUMAN (12.01.2020)

  5. #24
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    576
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Симулятор вытягивает 10 МГц. Z80 почти готов, ПЗУ стартует, надо клавиатуру прикрутить.

    Пока с новыми инструкциями мыслю "ортогонально", не экономя байты, потом буду пытаться уменьшать и ускорять.

    "add BC,0x12345678" занимает 8 байт. Такты пока не считаю вообще

    Схема "классическая": B, C, вместе BC, плюс старшие байты, 2 штуки.
    Инструкции Z80 имеют доступ к B, C, BC. Новые инструкции по умолчанию имеют доступ к 32-битному BC, префиксами можно урезать до 16 и 8 бит. Доступ к регистру B и к старшим байтам буду потом по потребности думать отдельно.

    Возник вопрос.
    Как назвать 32-битные регистры?

    EAA, EBC, EDE, EHL, EIX... (extended)?
    WAA, WBC, WDE, WHL, WIX... (wide)?
    QAA, QBC, QDE, QHL, QIX... (quad byte)?

  6. #25
    Guru
    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,592
    Спасибо Благодарностей отдано 
    40
    Спасибо Благодарностей получено 
    83
    Поблагодарили
    64 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Как назвать 32-битные регистры?
    Если хочется аналогию с интелом, то extended:
    bh B
    bl C
    bx BC
    ebx EBC

  7. #26
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    2,985
    Спасибо Благодарностей отдано 
    128
    Спасибо Благодарностей получено 
    111
    Поблагодарили
    65 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Или логично, как в Neon-e:
    Код:
    [S0  S1  S2  S3]
    [  D0  ][  D1  ]
    [      Q0      ]
    Больше игр нет

  8. #27
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    4,220
    Спасибо Благодарностей отдано 
    186
    Спасибо Благодарностей получено 
    248
    Поблагодарили
    202 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    EAA, EBC, EDE, EHL, EIX... (extended)?
    я за extended

    да и q w менее удобны для набора

    - - - Добавлено - - -

    Цитата Сообщение от Bolt Посмотреть сообщение
    EAA,
    вот это выглядит несколько странно

    тк у А нет 16 битного....
    ну кроме AF

    может просто EA ?
    ну и нужно думать как работать со 2-м байтом ааAa
    который не адресуется ни второй половиной аа
    ни средствами старых команд z80

    и нужно этот 16битный АА как то обзывать
    детекчу у х86 w для обозначения word'
    но WA смотрится не очень

    ну и нужен какойнить AH...
    Последний раз редактировалось NEO SPECTRUMAN; 16.01.2020 в 12:08.

  9. #28
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    576
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    45
    Поблагодарили
    40 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Если хочется аналогию с интелом
    Да там и так куда ни поверни - везде Интел получается

    Цитата Сообщение от svofski Посмотреть сообщение
    Или логично, как в Neon-e:
    Хочется сохранить названия регистров.

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    я за extended
    ...
    может просто EA ?
    Может.

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    ну и нужно думать как работать со 2-м байтом ааAa
    который не адресуется ни второй половиной аа
    ни средствами старых команд z80
    и нужно этот 16битный АА как то обзывать
    Там ещё много вопросов по ходу дела...
    Надо, наверное, начать ассемблер. Там сразу станет понятно чего не хватает.
    Натыкать костылей, запустить, потом думать как сделать по уму.

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    ну и нужен какойнить AH...
    Цитата Сообщение от Bolt Посмотреть сообщение
    Да там и так куда ни поверни - везде Интел получается
    - - - Добавлено - - -

    А вообще зачем нужен этот AH? Ну я ещё понимаю BC использовать как два 8-битных, или EBC как два 16-битных...

    Можете пример привести где это потребуется?
    Последний раз редактировалось Bolt; 16.01.2020 в 18:40.

  10. #29
    Guru Аватар для NEO SPECTRUMAN
    Регистрация
    22.05.2011
    Адрес
    Дзержинск
    Сообщений
    4,220
    Спасибо Благодарностей отдано 
    186
    Спасибо Благодарностей получено 
    248
    Поблагодарили
    202 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    А вообще зачем нужен этот AH? Ну я ещё понимаю BC использовать как два 8-битных, или EBC как два 16-битных...

    Можете пример привести где это потребуется?

    а сходу наверно нет

    будет затык если понадобится обработать 8 битными командами второй младший байт
    который не получится отколупать из 32 битного числа


    если подумать роль 16 битного А
    выполняет пара hl
    может и 32 битные пусть работают только с ebc ede ehl ?
    может еще добавить регов

  11. #30
    Member
    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    188
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    14
    Поблагодарили
    13 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если народ уже добрался до команд длиной по 8 байт, то есть некоторые способы более компактного кодирования. Будем считать, что адрес и данные имеют разрядность по 16 бит и попробуем запихать в них 4 команды (про байты для примера забудем). Первая идея, это сделать 4 перезагружаемых таблицы и по группе в 4 разряда выбирать команду в длинном формате (или сразу микрокод). Но это много ресурсов и мало толка, поэтому попробуем закодировать команды честно. Сделаем 4x2 устройств, каждое выполняет свою операцию и записывает результат в регистр - он же первый операнд для следующей операции, то есть его кодировать не нужно. Для максимальной ортогональности вторым операндом будет любое из устройств и на его кодирование нужно 3 бита. Последний бит будет будет выбирать какое из двух устройств работает в данном такте, а какое отдыхает. Если вторым операндом оказывается это же устройство, то может выполняться какая-то специальная операция, к примеру обнуление регистра для устройства OR или установка в -1 для AND. Список операций выполняемых устройствами может быть к примеру таким:
    SUB1/ADD
    SUB2/NOR
    LD3/ST
    LD4/LDI/JMP(условный)
    Операции ADD/SUB добавляют/вычитают что-то к своему регистру, при ссылке на себя каких-то особых действий не требуется. NOR просто пример побитовой операции, вместо него и ADD вполне может оказаться более полезным что-то другое. Операции LD в свой регистр загружают данные из памяти, а адрес берут из указанного в команде регистра, особых действий при ссылке на себя для них тоже не требуется, хотя можно что-то и придумать. Для операции ST не хватает второго операнда, поэтому операнд указывает сохраняемые данные, а адрес будем брать к примеру из SUB1. Дополнительно данные копируются в связанный с ST регистр, на случай если кому-то вдруг опять понадобятся.
    Для команды JMP ссылка на себя превращает её в команду LDI которая загрузит следующее слово программы просто как константу. Остальные значения могут, либо указывать один из флагов формируемых устройствами, а адресом берём загруженное LDI. Или флагом всегда будет перенос к примеру из SUB2, тогда адрес перехода можно будет брать из регистров.

    Ну а если не экономить биты, то можно к примеру поделить 64 бита на 16 групп по 4 бита, и сделать 16 таблиц по 16 ячеек как в первом варианте. Тогда можно будет выполнять по 16 операций за такт, хотя конечно не все из них будут полезны для вычислений.
    Последний раз редактировалось blackmirror; 17.01.2020 в 21:47.

Страница 3 из 11 ПерваяПервая 1234567 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 465
    Последнее: 03.01.2020, 07:15
  2. Ответов: 16
    Последнее: 02.08.2005, 12:20

Ваши права

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