Architektur des Super Nintendo Entertainment Systems (snes)




старонка2/10
Дата канвертавання24.04.2016
Памер387.65 Kb.
1   2   3   4   5   6   7   8   9   10

6Das System


Dieses Kapitel behandelt den Aufbau des Super Nintendo Entertainment Systems. Es werden hier die einzelnen Bauelemente und Zusammenhänge erklärt, welche zur Erzeugung der Video- und Audiosignale verwendet werden. Es wird jedoch darauf verzichtet, darauf einzugehen, wie Daten genau verarbeitet werden und wie diese schließlich auf PAL bzw. NTSC umgewandelt werden. Nachdem bereits im vorangegangenen Kapitel ein kleiner Überblick über das Gesamtsystem gegeben wurde, steigen wir nun in die Arbeitsweise des Gerätes ein. Hierzu wird im folgenden Unterkapitel zunächst ein Einblick in die Konsole gegeben. Die darauf folgenden Unterkapitel beschreiben anschließend die Funktionsweise der einzelnen Bauelemente.

6.1Das Gesamtsystem


D
as Blockschaltbild des Systems sieht wie folgt aus:

Abbildung 1: Blockschaltbild des SNES (Quelle: 9 – Seite 99)

Bevor wir zu den einzelnen Komponenten des Systems kommen, möchten wir auf das Zusammenspiel der Komponenten eingehen.


Der CIC-Chip ist der Kopierschutz des Systems (siehe Kapitel 6.5). Er verfügt über eine Reset-Leitung, mittels der er die zweite Grafikeinheit abschalten kann. Diese gibt das Reset-Signal dann weiter an die erste Grafikeinheit, die Soundeinheiten, dem RAM und die SNES-CPU.
Die SNES-CPU ist an zwei Adressbus-Systeme angeschlossen. Zum einen der 24 Bit breite A-Bus und zum anderen der 8 Bit breite B-Bus. Mittels des A-Busses ist es der CPU möglich, den gesamten RAM sowie den gesamten ROM-Speicher des Moduls zu adressieren. Der B-Bus hingegen dient zur Kommunikation mit den anderen Bauteilen. So haben die Sound- & Grafikeinheiten nur Zugriff auf einen kleinen Teil des RAMs. Allen Einheiten gemein ist der 8 Bit breite Datenbus.
Die beiden PPUs haben zudem einen eigenen Speicher (32KB pro Einheit). Die Besonderheit bei der Verdrahtung ist jedoch dass nur die erste Einheit in der Lage ist, den Speicher zu adressieren. Somit ist die zweite PPU auf das Anlegen der richtigen Adresse auf dem Adressbus auf die erste PPU angewiesen.
Die Soundeinheiten des Systems können nur über die Sound CPU mit dem Rest des Systems kommunizieren. Auf welche Art die Soundeinheiten untereinander kommunizieren, wird im entsprechenden Kapitel behandelt. (Quelle: 9 – Seite 98-100)

6.2Hauptprozessor


Der Hauptprozessor des Systems ist eine Spezialanfertigung für Nintendo welche mit dem Western Design Center 65816 bzw. 65C816 kompatibel ist. Der von Nintendo verwendete Name dieses Prozessors ist „5A22“. Technisch gesehen entspricht dieser Chip einer Weiterentwicklung des Prozessors welcher auch im NES verbaut war (MOS Technologies 6502). Prinzipiell kann der SNES somit den Programmcode des NES verarbeiten, jedoch scheitert die Umsetzung an den PPUs welche nicht kompatibel zum NES-Pendant sind. (Quelle: 12)
Im Gegensatz zum 6502 besitzt dieser Prozessor auf 16Bit erweiterte Alu, X & Y, Index-Register und Stack-Pointer. Über einen Softwareschalter lässt sich die CPU jedoch in einen 8Bit Modus umschalten. Wie bereits zuvor angesprochen verfügt die CPU über einen Anschluss an den 24Bit Adressbus.
Kommen wir nun zum internen Aufbau der Einheit. Zur Verständnis stellen wir nachfolgend das Blockschaltbild des Prozessors, welches aus der offiziellen Dokumentation stammt, dar.



Abbildung 2: Blockschaltbild der SNES-CPU (Quelle: 11 – Seite 11)

Der Hauptprozessor verfügt über drei 8-Bit-Schnittstellen, über die er mit den anderen Bauteilen auf dem Chip kommunizieren kann. Dies sind zwei reine Adress-Schnittstellen, die die Datenleitungen A0 bis A15 bereitstellen, sowie eine Schnittstelle, die wahlweise für Adressen oder Daten genutzt werden kann und bei Adressen die Leitungen A16 bis A23 bereitstellt. Somit kann parallel eine 24-Bit-Adresse ausgegeben werden, oder eine 16-Bit-Adresse und gleichzeitig 8 Bit Daten.

Die Datenleitungen werden in den Prozessor weitergeleitet, im Gegensatz zu den Adsressleitungen. Bei Befehlsbytes geschieht dies über die Data Latch/Predecode-Einheit, bei Datenbytes über das Databank-Register. Adressen werden über den Internal Adress Bus ein- und ausgelesen. Über die Data Latch/Predecode-Einheit werden Befehle in das Instruction-Register geschrieben. Das Databank-Register gibt Daten weiter auf den Internal Data Bus, von dem sie weitergegeben werden können an Program Counter, Accumulator, ALU oder Direct-Register (welches bei bestimmten Adressierungsarten benötigt wird). In die Register X und Y können die Daten nur über einen weiteren Schritt über den Internal Special Bus geladen werden, auf den sonst nur Accumulator, ALU und Stack-Pointer sowie die Transfer Switches Zugriff haben.

Neben den drei 8-Bit-Schnittstellen verfügt der Hauptprozessor noch über eine Reihe von Steuerleitungen, die die System Control, Timing Control und Interrupt Logic-Einheiten sowie den Clock Generator steuern bzw. entsprechende Befehle und Signale weitergeben. (Quelle: 11)


6.3Grafikprozessoren (Nintendo 5C77 & Nintendo 5C78)


Der SNES kann Auflösungen von 256*224 bis 512*478 Pixeln darstellen, wobei die Darstellung jeweils unterschiedlich abläuft. Bilder mit Auflösungen von 256*224 bis 512*239 werden progressive aufgebaut, also Zeile für Zeile von oben nach unten. Bilder mit Auflösungen von 512*448 oder 512*478 werden interlaced aufgebaut, also erst die ungeraden Zeilen, dann die geraden. Dies geschieht, damit das Auge keine halben Bilder wahrnimmt, weil der Aufbau des ganzen Bildes zuviel Zeit in Anspruch nimmt.

Die beiden Grafikprozessoren arbeiten als eine Einheit, können also auch als solche wahrgenommen werden. Der erste Grafikchip ist für den Zugriff auf den internen Grafikspeicher zuständig und mit diesem über einen Adressbus verbunden. Der zweite Chip sendet die Farbinformationen an die RGB-Einheit, die diese Daten weitergibt. Der interne RAM umfasst 64 KB Speicher für Daten, 544 Byte für Objekte (Sprites im Weiteren) und 512 Byte für Farbdaten. Die Farben setzen sich aus den RGB-Farbwerten (15 Bit Farben) zusammen, was eine Bandbreite von 32.768 Farben ermöglicht. Allerdings werden im Farbdaten-RAM nur Paletten von 4 bis 256 Farben pro Palette gespeichert, aus denen die jeweiligen Elemente auf dem Bildschirm wählen können. 256 Farben ist gleichzeitig die Speichergrenze des Farbdaten-RAM (Eine Farbe braucht 2 Byte Speicher), wodurch die 256-Farben-Palette auch als „full palette“ bezeichnet wird. Jede Palette enthält die Farbe „durchsichtig“, wodurch dahinter liegende Objekte gezeigt werden.

Der SNES kann in 8 Modi Grafiken darstellen, die sich jeweils grundsätzlich unterscheiden. Allen Modi gemeinsam ist, dass sie Layer verwenden, wobei die Anzahl der Layer je nach Modus variiert. Jeder Layer ist aufgebaut aus Tiles, „Kacheln“, die eine Größe zwischen 32*32 und 128*128 Pixeln haben können. Die Daten für die Tiles sind im internen Daten-RAM hinterlegt und können auch mehrfach verwendet werden. Die möglichen Farben für die Tiles sind wiederum vom Modus abhängig. Die Tiles können in zwei Planes, „Ebenen“, angeordnet werden, die Vordergrund und Hintergrund des Layers darstellen. Alle Layer können unabhängig voneinander auf dem Bildschirm horizontal und vertikal verschoben werden.

Auf jede Plane jedes Layers können sich Sprites, „Objekte“, befinden. Diese Sprites können die Größe von 8*8 bis 64*64 Pixeln haben, sind für sich bewegbar sowie horziontal und vertikal drehbar. Die Daten der Sprites werden im Objekt-RAM gespeichert, wobei maximal 32 Sprites gleichzeitig dargestellt werden können. Auch

Sprites werden aus Tiles geformt, wobei diese für Sprites immer 8*8 Pixel groß sind und über eine 16-Farben-Palette verfügen.

Die Modi im Einzelnen:

Modus 0: 4 Layer stehen zur Verfügung, jeder Layer verfügt nur über eine 4-Farben-Palette.

Modus 1: 3 Layer, zwei mit jeweils 16-Farben-Paletten, einer mit einer 4-Farben-Palette.

Modus 2: 2 Layer, jeder mit einer 16-Farben-Palette. Jedes Tile kann einzeln verschoben werden.

Modus 3: 2 Layer, einer mit der „full palette“, 256 Farben, einer mit einer 16-Farben-Palette. Zusätzlich kann der Layer mit der full palette auch Farben aus einem 11-Bit-Farbraum (RGB 443) direkt definieren.

Modus 4: 2 Layer, einer mit der „full palette“, einer mit einer 4-Farben-Palette. Zusätzlich kann der Layer mit der full palette auch Farben aus dem 15-Bit-Farbraum direkt definieren. Jedes Tile kann einzeln verschoben werden.

Modus 5: 2 Layer, einer mit einer 16-Farben-Palette, einer mit einer 4-Farben-Palette. Veränderte Codierung der Tiles, um interlaced-Darstellung zu erleichtern.

Modus 6: 1 Layer, der eine 16-Bit-Palette verwendet. Ebenfalls veränderte Tile-Codierung zur Erleichterung von interlaced-Darstellungen, zusätzlich kann jedes Tile einzeln verschoben werden.

Modus 7: Dieser Modus bildet eine große Besonderheit des SNES. Es wird nur ein Layer verwendet, der entweder nur über eine Plane mit full palette verfügt, oder über zwei Planes mit jeweils 128 Farben. Besonderheit ist, dass der Layer unter Benutzung von Matrix-Transformationen gedreht, gekippt und kleiner oder größer skaliert werden kann. Dies soll Dreidimensionalität simulieren und perspektivische Darstellung ermöglichen.

Weitere Möglichkeiten der Farbgestaltung ergaben sich aus gröberer Pixelung der Layer oder Farbaddition bzw. –subtraktion der Farben von Layer und Sprite, was eine wiederum größere Farbvielfalt ermöglicht, als eigentlich vorgesehen. (Quellen: 12 & 13 – Seite 115-139)

1   2   3   4   5   6   7   8   9   10


База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка