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

User Tag List

Показано с 1 по 1 из 1

Тема: Extended Instructions Set (EIS): MUL, DIV, ASH, ASHC

  1. #1
    Activist Аватар для Manwe
    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    242
    Благодарностей: 102
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Extended Instructions Set (EIS): MUL, DIV, ASH, ASHC

    Как вы знаете, в процессоре ВМ1 зарезервированы коды команд для умножения, деления и произвольного сдвига, но сами эти команды не реализованы. Попытка выполнить такую команду приводит к особому прерыванию. Пользуясь этим, можно написать программу-эмулятор недостающих команд и назначить её на прерывание. Эту программу я буду называть "драйвером EIS".

    Такой драйвер встроен в прошивку контроллера дисковода. Но многие пользуются контроллером жёсткого диска, а в его прошивке нет драйвера EIS.
    Есть программа SETMBR, одна из функций которой - прописать в нулевую дорожку жёсткого диска установщик драйвера EIS. Но такой подход тоже не всегда удобен.

    Я написал полностью новый драйвер - он понадобился для взлома игры “Overkill”. Хотелось превзойти по скорости драйвер из SETMBR. Драйвер устанавливается небольшой программой и всё время находится в памяти контроллера жёсткого диска SMK. Пропадает после холодной перезагрузки компьютера.

    Нажмите на изображение для увеличения. 

Название:	EIS-installer-Manwe.jpg 
Просмотров:	80 
Размер:	18.9 Кб 
ID:	66943

    Во время работы я также написал тест, проверяющий всевозможные случаи использования MUL, DIV, ASH и ASHC. Оказалось, что не всё так просто, и у меня появилась вторая цель - добиться полной совместимости с более продвинутым процессором ВМ2, где эти команды реализованы аппаратно.
    Тест заканчивается замером скорости выполнения команд. Каждая команда выполняется 10 раз с разными аргументами и типами адресации, после чего время выполнения (в тактах процессора) усредняется. Затем выводится итоговый рейтинг. Результат работы своего драйвера я взял за эталон, он выдаёт 100%. Драйвер из SETMBR выдаёт только 88% от этой скорости. Это на реальной БК-0011М. В эмуляторах БК на других платформах результат будет ниже (60%-67%), потому что эмуляторы не учитывают скорость отклика памяти контроллера SMK.

    Нажмите на изображение для увеличения. 

Название:	EIS-test-Manwe-real-hardware.jpg 
Просмотров:	88 
Размер:	25.0 Кб 
ID:	66944

    В итоге мой драйвер получился точней и в среднем быстрей, но он занимает больше места (в памяти SMK много места). На всё ушло 10 вечеров (считая взлом игры). Возможно, самое важное - в процессе был улучшен компилятор PDPy11: в нём появилась возможность записи 32-разрядных чисел командой .DWORD (за это спасибо Ivanq).

    EIS-driver-for-BK0010.zip
    В архиве установщик драйвера, исходники и тест с бенчмарком. В исходниках много комментариев, всё должно быть понятно. Если найдёте ошибки, предложите хитрые тесты или придумаете как увеличить скорость и уменьшить размер без потери скорости - предлагайте, вносите исправления в исходники - буду рад!

    Отдельное спасибо:
    Alex_K, который на заключительном этапе выдал подробнейшее описание процессора ВМ2, что помогло исправить пару тонкостей,
    S_V_B за тесты на реальной УКНЦ,
    Niol’у за предоставленную БК-0011М, которую он вот уже два месяца всё никак у меня не заберёт

    Пример ошибок, обнаруженных тестом в драйвере SETMBR:

    Скрытый текст


    Нажмите на изображение для увеличения. 

Название:	Standard-EIS-driver-1.jpg 
Просмотров:	94 
Размер:	27.1 Кб 
ID:	66945
    Нажмите на изображение для увеличения. 

Название:	Standard-EIS-driver-2.jpg 
Просмотров:	76 
Размер:	24.4 Кб 
ID:	66946
    [свернуть]
    Последний раз редактировалось Manwe; 17.11.2018 в 23:54.
    Manwe/SandS

  2. Эти 8 пользователя(ей) поблагодарили Manwe за это полезное сообщение:
    ancher (19.11.2018), hobot (25.11.2018), nzeemin (27.11.2018), perestoronin (18.11.2018), shattered (18.11.2018), svofski (17.11.2018), troosh (20.11.2018), zx_ (22.11.2018)

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

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

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

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

Похожие темы

  1. Ответов: 0
    Последнее: 29.08.2017, 13:06
  2. Sector II - Extended
    от Splinter в разделе Музыка
    Ответов: 7
    Последнее: 07.02.2014, 05:45
  3. EXTENDED MEMORY DETECTION
    от VELESOFT в разделе Память
    Ответов: 1
    Последнее: 04.04.2010, 20:50
  4. gfx extended :)
    от riskej в разделе Графика
    Ответов: 12
    Последнее: 06.08.2008, 15:58
  5. Fast 48x48 MUL | DIV
    от Sinus в разделе Программирование
    Ответов: 6
    Последнее: 05.07.2005, 15:00

Ваши права

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