Виконано дизасемблювання мікрокоду i386 та створено відкритий CPU z386

Ентузіасти змогли успішно витягти та дизасемблювати мікрокод процесора Intel 80386, який через відсутність документації вважався «чорною скринькою». Бінарний образ мікрокоду був відтворений із залученням AI за фотографіями кристала у високій роздільній здатності, а логіка роботи розібрана через трасування сполук на кристалі. Поступово було визначено структуру мікрокоманд (μ-ops), поля, порядок виконання та маркери кінця інструкцій. Напрацювання проекту опубліковано на GitHub як суспільне надбання.

Виконано дизасемблювання мікрокоду i386 та створено відкритий CPU z386

Виявлено, що у CPU 80386 кожна інструкція повністю виконується через мікрокод, тоді як у 8086 та сучасних процесорах частина інструкцій обробляється безпосередньо. Крім того, на відміну від процесорів 8086, 80386 мікрокод не реалізує алгоритми безпосередньо, а в основному налаштовує апаратні прискорювачі (помножувач, дільник, швидкий зсув, PTU (Protection Test Unit)).

У ході дослідження також була виявлена ​​можлива проблема з безпекою при обробці бітової картки прав доступу до вводу/виводу (IO permission bitmap): при 4-байтовому зверненні до портів перевірялися біти прав доступу тільки для перших 3 байтів, а доступ до 4-го байта не перевірявся, що був доступний до теоретически. заборонено.

На основі опублікованого мікрокоду розроблено відкритий CPU z386, реалізований мовою SystemVerilog і працює з використанням FPGA. Замість реалізації кожної інструкції у формі окремого RTL (Register-transfer level) z386 реалізовані апаратні структури, якими керує оригінальний мікрокод. Продуктивність підготовленої реалізації відповідає швидкому 386 ПК (70MHz). Під управлінням z386 вдалося успішно запустити DOS 6/7, DOS/4GW, DOS/32A та ігри, такі як Doom та Cannon Fodder.

Джерело: opennet.ru

Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери 🔥 Купити надійний хостинг для сайтів із захистом від DDoS, VPS VDS сервери | ProHoster