Ентусиасти декомпилираха микрокода на i386 и създадоха отворен CPU z386

Ентусиасти успяха успешно да извлекат и дизасемблират микрокода на процесора Intel 80386, който поради липсата на документация се смяташе за „черна кутия“. Бинарният образ на микрокода беше възстановен със съдействието на AI въз основа на снимки на кристала с висока резолюция, а логиката за работа беше разгледана чрез проследяване на връзките на кристала. Постепенно бяха определени структурата на микрокомандите (μ-ops), полетата, реда на изпълнение и маркерите за край на инструкциите. Разработките на проекта публикувани в GitHub като обществено достояние.


Установено е, че в CPU 80386 всяка инструкция се изпълнява напълно чрез микрокода, докато в 8086 и съвременните процесори част от инструкциите се обработват директно. Освен това, за разлика от процесорите 8086, в 80386 микрокодът не реализира алгоритмите директно, а основно настройва хардуерните ускорители (умножител, делител, бързо преместване, PTU (Protection Test Unit)).

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

На базата на публикувания микрокод е разработен открит CPU z386, реализиран на езика SystemVerilog и работещ с помощта на FPGA. Вместо да реализира всяка инструкция под формата на отделен RTL (wikipedia.org) (Register-transfer level) в z386 са реализирани хардуерни структури, които се управляват от оригиналния микрокод. Производителността на подготвената реализация отговаря на бързия 386 ПК (~70MHz). Под управлението на z386 успяхме успешно да стартираме DOS 6/7, DOS/4GW, DOS/32A и игри като Doom и Cannon Fodder.

Източник: linux.org.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster