SPC700

Sony SPC700 Core Microcontroller

Der Sony SPC700 ist ein 8-Bit Soundchip, der von Ken Kutaragi entworfen wurde und zusammen mit einem Digitalen Signalprozessor (DSP) in der Super Nintendo Entertainment System (SNES) Spielkonsole Verwendung fand. Der SPC700 samt zugehörigem 16-Bit DSP wurde von Sony entwickelt und hergestellt. Später betrat Sony den Spielekonsolenmarkt mit der PlayStation. Für die damalige Zeit (1990) war der SPC700-Chip sehr fortschrittlich und kann begrenzt sogar mit heutigen Wavetable-Synthesizer-Soundkarten verglichen werden.

Technik

Von Sony entwickelter DSP

Im SNES ist der SPC700 oberhalb des DSP angebracht. Der Soundchip enthält intern 64 KB RAM und läuft mit einer Taktfrequenz von 1.025,280 MHz (der Audio-Taktgeber läuft mit 24.606.720 Hz (notwendig für die serielle Übertragung der Samples zum DAC), die auf 3,075,840 Hz geteilt werden; von jeweils 3 Takten erhält der SPC700 den ersten Takt und der DSP die restlichen 2 Takte). Er besitzt sechs interne Register und kann 256 Opcodes ausführen. SPC700-Sound-Samples werden im RAM in einem komprimierten Format gespeichert, das mit ADPCM vergleichbar ist. Der Befehlssatz ähnelt dem der 6502-CPU-Reihe, enthält aber zusätzliche Befehle, wie XCN (eXChange Nibble), das die oberen und unteren 4-Bit des Ausgangssignals des 8-Bit-Registers vertauscht, und einen Befehl, der eine 8 Bit x 8 Bit Multiplikation und Speicherung in einem 16-Bit-Register ermöglicht.

Der zum SPC700 gehörende DSP arbeitet ähnlich wie moderne Wavetable-Soundkarten, wie z. B. die Sound Blaster Audigy. Es können acht Stimmen simultan in jeder passenden Tonlage und Lautstärke erzeugt werden. Zudem unterstützt er Voice Panning, ADSR, Echo mit Filterung (über einen programmierbaren 8-Tap FIR (Finite Impulse Response)), und den Einsatz von Rauschen als Geräusch-Quelle (nützlich für bestimmte Soundeffekte wie z. B. Wind). Das Ausgangssignal wird als 16 Bit Stereo mit einer Abtastrate von 32 kHz erzeugt. Die Kommunikation des SPC700 mit dem DSP geschieht über Memory Mapped I/O.

SNES-Mainboard

Der SPC700 hat eine eher ungewöhnliche Arbeitsweise für einen Soundchip. Die Haupt-CPU des SNES überträgt Datenblöcke mit Befehlen und Sound Samples zum internen Speicher des SPC700. Diese Befehle bestehen aus Maschinencode und wurden für den SPC700 auf nahezu die gleiche Art entwickelt, wie für PCs oder Macs. Als solcher kann der SPC700 als Koprozessor für den Sound des SNES betrachtet werden. Dies stellt einen Vorteil verglichen mit dem Game Boy Advance dar, bei dem die ARM7-CPU die gesamte Tonerzeugung leisten muss.

Das emulations-bezogene Sound-Format "SPC" ist vom Namen dieses Soundchips abgeleitet.

Siehe auch

Weblinks

Auf dieser Seite verwendete Medien

SNES-CPU-RGB01 01.jpg
Autor/Urheber: Yaca2671, Lizenz: CC BY-SA 3.0
SFC board(No.SNES-CPU-RGB-01).
S-DSP A 01.jpg
Autor/Urheber: Yaca2671, Lizenz: CC-BY-SA-3.0
S-DSP A chip for SFC(on board No.SNES-CPU-RGB-01).
S-SMP 01.jpg
Autor/Urheber: Yaca2671, Lizenz: CC-BY-SA-3.0
S-SMP chip for SFC(on board No.SNES-CPU-RGB-01).