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

User Tag List

Страница 8 из 11 ПерваяПервая ... 4567891011 ПоследняяПоследняя
Показано с 71 по 80 из 107

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

  1. #71
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    459
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Цитата Сообщение от Bolt Посмотреть сообщение
    Поэтому и пробую блоки на HDL, чтобы посмотреть до чего оптимизатор может их дооптимизировать.
    На оптимизатор надейся...

    Цитата Сообщение от Bolt Посмотреть сообщение
    Не какая-то djnz, а само, сразу. Да, похоже на DMA, но заталкивает байты он не в звуковую карту, а в блок выполнения команд.
    Из описания как раз и понял, что "аппаратные циклы" как раз пропускают циклы программные, "пододвигая" в конвейере инструкции и распараллеливая процессы аппаратными примочками. Единственная клубничка на тортик - без средств разрешения конфликтов...
    Последний раз редактировалось omercury; 03.02.2020 в 23:10.

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

    По умолчанию

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

  3. #73
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    556
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вопросы.

    Первый.
    По-моему я его уже задавал, но ответ не помню.
    Почему rlc и rlc, имея в названии букву "c", прокручивают 8 бит, а rl и rr, не имеющие этой буквы, прокручивают 9 бит вместе с флагом переноса? Где логика?

    Второй.
    Флаги у Z80 конечно интересно устанавливаются, но в них есть скрытая система. Но вот cpl (инверсия аккумулятора) из этой системы выбивается, после неё перенос всегда должен быть установлен. Если кто в курсе, объясните почему она не меняет флаг переноса. В этом есть смысл? Или тоже "не баг, а фича"?

    Третий.
    Что если упростить эту систему флагов? Если, например, всегда будут меняться все флаги, смогут ли работать старые программы?

  4. #74
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    3,066
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    60
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Почему rlc и rlc, имея в названии букву "c", прокручивают 8 бит, а rl и rr, не имеющие этой буквы, прокручивают 9 бит вместе с флагом переноса? Где логика?
    потому что c в данном случае значит cyclic

    Цитата Сообщение от Bolt Посмотреть сообщение
    Флаги у Z80 конечно интересно устанавливаются, но в них есть скрытая система. Но вот cpl (инверсия аккумулятора) из этой системы выбивается, после неё перенос всегда должен быть установлен.
    почему это должен быть всегда установлен? тогда уж сброшен, как после других побитовых операций

    Цитата Сообщение от Bolt Посмотреть сообщение
    В этом есть смысл? Или тоже "не баг, а фича"?
    наверно, быстрое получение -1 из 0 для операций типа reg+carry-1 или хитрых сдвигов каких-нибудь
    ведь и установка уже есть, сбрасывающих перенос команд хватает и так

    Цитата Сообщение от Bolt Посмотреть сообщение
    Что если упростить эту систему флагов? Если, например, всегда будут меняться все флаги, смогут ли работать старые программы?
    всегда - это когда? ld тоже? но даже без неё работать точно не смогут, в частности, неполным влиянием inc/dec на флаги часто пользуются
    Прихожу без разрешения, сею смерть и разрушение...

  5. Этот пользователь поблагодарил Lethargeek за это полезное сообщение:

    Bolt (18.02.2020)

  6. #75
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    556
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    потому что c в данном случае значит cyclic
    Ух, ё... Да, вот теперь логика есть.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    почему это должен быть всегда установлен? тогда уж сброшен, как после других побитовых операций
    Нет. Это не битовая операция, потому что установлен флаг N, а его устанавливает только вычитание. Это "0x00-A-carry", carry=1. И при этом она выбивается из системы, как будто у неё отдельная блокировка на изменение этого флага.

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    всегда - это когда? ld тоже? но даже без неё работать точно не смогут, в частности, неполным влиянием inc/dec на флаги часто пользуются
    Нет, ld без флагов И про inc/dec тоже знаю.
    В общем, не могу расставить инструкции для нового процессора. То ли там какой-то облом есть, который я не вижу, то ли мой перфекционизм мешает

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

    Пример облома, который можно не заметить.
    Вот тебе фигурки (типа тетриса), надо заполнить ими прямоугольник. На третий день раскладывания возникает мысль: а тупо по площади они туда умещаются или нет?

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

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Нет. Это не битовая операция, потому что установлен флаг N, а его устанавливает только вычитание.
    ну, допустим... но тогда...

    Цитата Сообщение от Bolt Посмотреть сообщение
    Это "0x00-A-carry", carry=1.
    при чём тут carry? тогда уж 255-a (что, опять же, по идее должно сбрасывать перенос)
    Прихожу без разрешения, сею смерть и разрушение...

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

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

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    тогда уж 255-a (что, опять же, по идее должно сбрасывать перенос)
    Нет, потому что она устанавливает перенос H.

  10. #78
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    3,066
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    60
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    Нет, потому что она устанавливает перенос H.
    так это и при сброшенном C бывает

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

    и раз один перенос уже работает нестандартно, тогда почему бы и не второй? (да и N, если уж на то пошло)
    Прихожу без разрешения, сею смерть и разрушение...

  11. #79
    Master
    Регистрация
    14.04.2013
    Адрес
    г. Ростов-на-Дону
    Сообщений
    556
    Спасибо Благодарностей отдано 
    58
    Спасибо Благодарностей получено 
    36
    Поблагодарили
    31 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    0xFF - A
    При каком значении A появится перенос h? Никогда.

    0x00 - A - carry
    При каком значении A появится перенос h? Всегда.

  12. #80
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    3,066
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    60
    Спасибо Благодарностей получено 
    54
    Поблагодарили
    45 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Bolt Посмотреть сообщение
    0x00 - A - carry
    еще раз: ну при чём тут carry? когда результат от его значения не зависит

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

    и у тебя там ДВА вычитания, так результатом первого или второго должен быть H?

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

    если первого, то при a=1 не появится, если второго, то появится только для a=0
    Прихожу без разрешения, сею смерть и разрушение...

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

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

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

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

Похожие темы

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

Ваши права

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