Полная расшифровка микросхемы IBM MCGA: энтузиаст воссоздал схемотехнику видеочипа 1987 года

Полная расшифровка микросхемы IBM MCGA: энтузиаст воссоздал схемотехнику видеочипа 1987 года

Энтузиаст провел полный reverse engineering видеочипов IBM MCGA (Multi-Color Graphics Array), видеопроцессора, использовавшегося в компьютерах PS/2 моделей 25 и 30 с 1987 года.

Чипсет MCGA состоит из двух основных компонентов: контроллера памяти и видеоформатера, оба реализованы как заказные (gate array) интегральные схемы. Исследователь обнаружил два типа реализации, на внутренних процессах IBM и на внешних чипах производства Seiko.

Контроллер памяти (на базе SLA6430 от Seiko) содержит 4342 базовых ячейки, размещённые в 167 рядах и 26 столбцах, использует технологический процесс 2 микрона с двумя слоями металла. Эта микросхема содержит реализацию синхронизирующего генератора MC6845, управляет интерфейсом видеопамяти к шине ISA, управляет памятью символов и другими функциями.

Видеоформатер (SLA6330) содержит 3312 базовых ячеек в 144 рядах и 23 столбцах, декодирует адреса памяти и портов ISA, управляет интерфейсом RAMDAC и генерирует видеоданные в графическом и текстовом режимах.

Расшифровка выявила неопубликованные возможности: , Режим genlocking (синхронизация по внешним сигналам HSYNC и VSYNC через пины видеоразъёма), описанный в техрефе только как зарезервированный бит , Скрытые биты в регистре 0x10 для управления тактовой частотой видеосхемы (25,175 МГц или 14,318 МГц) , Невполне понятный зарезервированный бит 6 в том же регистре , Целая система тестовых регистров (0x18, 0x1A) для заводского тестирования , Режимы ускорения счётчиков для фабричной диагностики

Исследователь создал полные KiCAD-схемы и разметки печатных плат, размещённые на GitHub. Процесс включал масштабирование микрофотографий (с исходного размера 21808х21778 до 10904х10889), выявление каждого типа базовой ячейки, создание библиотеки компонентов и трассировку связей между слоями металла вручную.

Ключевые факты

  • Полная схемотехника видеочипов MCGA 1987 года на базе gate array технологии разобрана энтузиастом и выложена на GitHub
  • Обнаружены скрытые функции: режим genlocking для синхронизации, управление тактовой частотой, неопубликованные тестовые регистры
  • Контроллер памяти, 4342 ячейки (Seiko SLA6430), видеоформатер, 3312 ячеек (SLA6330), оба в процессе 2 микрона с двумя слоями металла
  • Полный KiCAD-проект включает библиотеки компонентов, принципиальные схемы и разметки печатных плат на основе анализа микрофотографий
  • Работа показывает возможность полного инженерного reverse engineering микросхем без доступа к документации через анализ физической структуры

Почему это важно

Это редкий пример полного, профессионального reverse engineering микроэлектроники, области, обычно закрытой патентами и коммерческой тайной. MCGA, важный этап в истории видеографики IBM, но исходная документация часто неполна или содержит зарезервированные биты без объяснений. Открытая расшифровка схемотехники показывает, что инженеры могли спрятать функции в «зарезервированные» биты, полагаясь на приватность аппаратуры. Сегодня это имеет значение для исторической реконструкции, эмуляторов и понимания конструкторских решений 1980-х. Методика также демонстрирует, что 35-летние микросхемы можно полностью воссоздать, если потратить время на микрофотографию и анализ.

Кому это важно

Историкам компьютерной техники и энтузиастам эмуляции (MAME, PCem), для более точного моделирования видеосистемы PS/2. Инженерам, работающим с обратным проектированием и форензикой микросхем. Разработчикам эмуляторов IBM-совместимых систем 1980-х. Также полезно учебное содержание для студентов электроники, реальный пример анализа сложной интегральной схемы.

Как это применить

Если вы собираете эмулятор PS/2 или создаёте исторически точный симулятор видеосистемы, используйте выложенные KiCAD-файлы как справочник логики видеоформатера и контроллера памяти. Для исторических проектов (музеи, реставрация оборудования), в документацию можно добавить открытую схемотехнику. Если нужно понять, почему конкретный режим видео не работает в эмуляторе, проверьте логику с опорой на расшифрованную схему. Для собственных reverse-engineering проектов используйте методику: микрофотография → масштабирование → выявление типов ячеек → трассировка сигналов → KiCAD-проект.

Можно ли доверять

Источник, GitHub-репозиторий энтузиаста schlae, заслуженного в community reverse engineering. Расшифровка основана на физическом анализе двух образцов микросхем (один до потери верхнего слоя металла, второй полностью). Результаты согласуются с официальной документацией IBM PS/2 Model 30 (где некоторые функции описаны как «зарезервированные»). Публичное размещение кода и схем позволяет сообществу проверить выводы. Ограничение: один из чипов повреждён при вскрытии, поэтому не все детали обоих варианта полны, но основные логические функции определены точно.

Риски и подводные камни

Для собственного reverse engineering микросхем главный риск, технологический: вскрытие чипа агрессивным способом может повредить верхние слои металла и сделать анализ невозможным. Исследователь столкнулся с этим. При эмуляции не забывайте, что скрытые режимы (genlock, тестовые регистры) редко использовались софтом 1980-х, поэтому их игнорирование в эмуляторе вряд ли сломает совместимость с реальными программами, но осложнит эмуляцию специалированного оборудования. Также учтите, что Seiko SLA6330/SLA6430, это заказные чипы IBM, и их внутренняя архитектура может отличаться от других gate array процессов того же периода.

«Микросхема содержит 4342 базовых ячейки с 4 транзисторами каждая, размещённые в 167 рядах и 26 столбцах. Это процесс 2 микрона CMOS с 2 слоями металла.»

— Расшифровка SLA6430 контроллера памяти MCGA, GitHub schlae/IBM_MCGA