← На главную

Разработчик эмулятора PC Engine обзоров на 8-битном процессоре HuC6280

08.05.2026 14:14 · hackernews

Разработчик эмулятора PC Engine, известного также как TurboGrafx-16, поделился подробным обзором архитектуры процессора этой приставки. Несмотря на маркетинговое название, консоль не использует 16-битный CPU, а содержит 8-регистровый ядро HuC6280 от компании Hudson, основанное на улучшенной версии 6502 от Western Design Center. Новое решение включает звуковой чип PSG и таймер. Хотя инструкционный набор близок к 6502 и 65C816, он предлагает собственные команды, исправляющие неудобства оригинала, например, упрощающие обращение к памяти. Процессор работает на двух частотах: 1,79 МГц как на NES или 7,16 МГц для высоких нагрузок, что делает его быстрее конкурентов. Главное преимущество — отсутствие задержек памяти при работе с ROM и RAM, что позволяет CPU работать почти в два раза быстрее Super NES, за исключением операций над 16-битными значениями. Память устройства расширяется встроенной в чип MMU, которая управляет доступом к 2 МБ физического пространства, разбивая его на 8 блоков по 8 КБ, как это делалось ранее через картриджи для NES.

Аппаратная карта памяти устроена просто: первые 2 МБ занимают картридж или CD-ROM, затем идёт 8 КБ оперативной памяти для программ. Играм доступно всего 1 МБ адресуемой памяти, но крупные проекты, вроде Street Fighter II, используют карту для управления банками памяти. Оперативная память составляет всего 8 КБ, но это больше, чем на NES, хотя и уступает Genesis и SNES. Разработчики компенсируют это пятью новыми инструкциями переноса блоков данных, способными копировать информацию с разной скоростью адреса. Это быстрее, чем программная реализация, но медленнее специального DMA-контроллера. Важно помнить, что во время таких операций процессор не может обработать прерывания, поэтому длинные копирование могут перепрыгнуть экранный интервал VBlank. Также добавлена инструкция SET для настройки флагов и набор команд для работы с видеоконтроллером VDC. Инструкции переноса TAI, TDD, TIA и другие позволяют быстро копировать данные с шагом инкремента или декремента, что полезно для записи в видеопамять. Новая команда BSR обеспечивает переход к подпрограмме с относительным сдвигом, а не абсолютным адресом, что упрощает код при изменении банков памяти. Также появились команды для проверки битов без их изменения, обмен регистров и сброса их значений в ноль. Эти особенности делают HuC6280 интересным гибридом: высокая скорость и простота архитектуры против ограниченности в работе с большими числами и отсутствии DMA-прерываний. Следующие посты обещают раскрыть особенности видеоаппаратуры, которая, по мнению автора, заслуживает отдельного внимания.

Читать оригинал →