SPC700

SONY SPC700 — микросхема 8-разрядного CPU, компонент звуковой подсистемы в игровой консоли Super Nintendo Entertainment System. Вместе со специальным 16-разрядным цифровым сигнальным процессором (номер микросхемы ???) разработана и производилась фирмой Sony, и, в частности, Кэном Кутараги (впоследствии ставшим известным как «отец PlayStation», игровой консоли, созданной этой фирмой). Для своего времени (1991 год), микросхема SPC700 имела очень неплохие возможности, в какой-то мере сравнимые с современными компьютерными звуковыми картами, использующими метод табличного волнового синтеза.

SPC700 представляет собой микропроцессор, который управляет работающим в паре с ним сигнальным процессором, который обеспечивает воспроизведение семплов из 64 КБ ОЗУ (2 банка по 32 КБ). Внутри Super Famicom/SNES микросхема SPC700 находится над микросхемой сигнального процессора, на левой стороне звукового модуля.

SPC700 имеет шесть регистров, и набор из 256 команд, очень похожий на набор команд семейства процессоров 6502, но содержащий несколько дополнительных операций. Среди них такие операции, как XCN (eXChange Nibble, обмен полубайт), меняющую местами содержимое старших и младших 4-битовых половин 8-разрядного аккумулятора; и умножение двух 8-разрядных чисел с 16-разрядным результатом. Тактовая частота процессора — 1.024 МГц. Встроенное ОЗУ состоит из двух микросхем по 32кб итого 64 КБ, в нём хранится управляющая программа (плеер) , а также семплы и эхо в сжатом с помощью Bit-reduction (ADPCM-подобного) алгоритма виде.

Сигнальный процессор, работающий в паре с SPC700, реализует табличный волновой синтез и обработку звука. Он может одновременно воспроизводить 8 цифровых 16-разрядных каналов с частотой дискретизации до 32 КГц, каждый из которых имеет собственную скорость воспроизведения (что даёт возможность изменять высоту нот) и громкость. Также имеется поддержка панорамирования и ADSR-огибающих. Помимо этого, присутствует аппаратная реверберация (эффект эхо) и 8-точечная гаусная интерполяция. В качестве источника звука может использоваться встроенный генератор шума, что может быть полезным для создания таких звуковых эффектов, как шум ветра. Кроме этого имеется режим когда звук из одного канала модулирует звук другого канала (1>2>3>4>5>6>7>8) . Взаимодействие между SPC700 и сигнальным процессором осуществляется через отображаемые на память порты ввода-вывода.

В отличие от более старых игровых систем, SPC700 взаимодействует с консолью нетипичным для того времени способом. По сути, он представляет самостоятельную подсистему, со своим процессором и памятью, работающую независимо от остальной системы. Основной процессор SNES передаёт блоки данных, содержащие программу воспроизведения музыки, и семплы во внутреннюю память SPC700 через особые двухсторонние коммуникационные порты. Далее SPC700 выполняет полученную программу, не отрывая основной процессор SNES от выполнения своих задач. Таким образом, SPC700 может быть назван звуковым сопроцессором.

Формат сохранения музыки с расширением .SPC, применяющийся в ряде эмуляторов SNES, получил своё название по имени микросхемы.

Ссылки 
 Сайт плагина SNESAmp
 Документация на SPC700
 SPC700 APU Manual
 SPC700 emulator  (Jap)
 SPC700 emulator English version (54 kb)

Цифровые интегральные схемы
Микросхемы звукогенераторов
Super Nintendo Entertainment System