-
Die
vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung
zum Verarbeiten von Informationen und ein Bereitstellungsmedium
zum Bereitstellen von Programmen und Daten.
-
Im
Allgemeinen ermöglicht
ein DRAM (dynamischer Speicher mit wahlfreiem Zugriff), der in einem
Chip enthalten ist, dass die Bitbreite eines Datenbus frei eingestellt
wird, und dieser kann eine hohe Bandbreite zur Verfügung stellen,
wenn er mit mehreren Bitbreiten kompatibel ist.
-
Umgekehrt
kann eine CPU nicht mit einem Bus verbunden werden, der eine Anzahl
von Bits aufweist, die größer ist
als die Anzahl von Bits, die durch die CPU verarbeitet werden kann.
Gewöhnlicherweise
ist die Bitbreite einer CPU kleiner als die Bitbreite eines DRAMS.
-
Daher
muss, wenn ein DRAM und eine CPU gemeinsam auf einem Chip angeordnet
sind, die Bitbreite des Datenbus mit der Bitbreite der CPU übereinstimmen
mit dem Ergebnis, dass das DRAM nicht in der Lage ist, seine Vorteile
zur Verfügung
zu stellen.
-
Es
kommt vor, dass eine DSP (Digitaler Signalprozessor) mit einem Datenbus
verbunden ist und eine hohe Bandbreite zwischen ihm und einem DRAM
benötig. 5 der
beigefügten
Zeichnungen zeigt ein Videounterhaltungssystem 60, das
zur Verwendung bei einer solchen Situation aufgebaut ist. Wie in 5 gezeigt
ist, weist das Videounterhaltungssystem 60 einen CPU-Bus 12,
der eine kleinere Bandbreite aufweist, und einen Systembus (Datenbus) 13 auf,
der eine größere Bitbreite
aufweist, wobei ein DRAM 41 mit dem Datenbus 13 verbunden ist.
-
Zum
Beispiel ist der CPU-Bus 12 32 Bits breit und der Systembus 13 128
Bits breit, und diese Busse 12, 13 werden verwendet,
um Programme und Daten zwischen den verschiedenen Einrichtungen
zu übertragen.
-
Mit
dem CPU-Bus 12 sind eine CPU 31, eine Peripherieeinrichtung 32 und
ein Cache-Speicher 51 verbunden. Mit dem Systembus 13 sind
der Cache-Speicher 51, das DRAM 41, eine DMA-Steuerung
(DMA: direkter Speicherzugriff) (DMAC) 42 und eine DSP 43 verbunden.
-
Der
CPU 31 wird ein Programm bereitgestellt, das von dem DRAM 41 über den
Cache-Speicher 51 übertragen
wird, und führt
einen bestimmten Prozess gemäß dem bereitgestellten
Programm aus. Der CPU 31 können auch Daten von dem DRAM 41 über den
Cache-Speicher 51 bereitgestellt werden.
-
Die
Peripherieeinrichtung 32 umfasst eine Zeitsteuerung zur
Ausführung
einer Taktoperation und eine Unterbrechungs-Steuerung zur Erzeugung von
Unterbrechungspulsen in voreingestellten periodischen Intervallen.
-
Das
DRAM 41 ist aufgebaut, um Daten, die für den Betrieb der CPU 31 und
des DSP 43 benötigt werden,
und auch Programme zu speichern, die durch die CPU 31 und
den DSP 43 ausgeführt
werden. Der Cache-Speicher 51 speichert Programme und Daten,
die der CPU 31 bereitgestellt werden, die aus dem DRAM 41 ausgelesen
worden sind.
-
Als
Antwort auf eine Anfrage von der CPU 31 oder der DSP 43 überträgt die DMA-Steuerung 42 Programme
oder Daten von dem DRAM 41 an den Cache-Speicher 51 oder den DSP 43.
-
Der
DSP 43 führt
Programme aus, die von dem DRAM 41 bereitgestellt werden.
-
Die
CPU 31 greift üblicherweise
auf den Cache-Speicher 51 über den CPU-Bus 12 zu, liest ein benötigtes Programm
und Daten aus dem Cache-Speicher 51 aus und führt das
Programm aus und verarbeitet die Daten. Der DSP 43 führt ein
Programm aus und verarbeitet Daten, die von dem DRAM 41 über den
Systembus 13 unter der Steuerung der DMA-Steuerung 42 übertragen
worden sind.
-
Da
das Videounterhaltungssystem 60 einen CPU-Bus 12 und
einen Systembus 13 aufweist, die voneinander getrennt sind,
kann der Systembus 13, der ein Datenbus mit einer großen Bitbreite
ist, mit dem DRAM 41 verbunden werden, ohne durch die Bitbreite
der CPU 31 begrenzt zu sein. Als Ergebnis können Daten
mit einer hohen Rate zwischen dem DRAM 41 und der DSP 43 übertragen
werden.
-
Der
Cache-Speicher 51 speichert Programme und Daten, auf die
sehr häufig
von der CPU 31 zugegriffen werden. Jedoch verursacht der
Cache-Speicher 51 gelegentlich einen Cache-Fehler, d. h.
das Speichern von benötigten
Programmen und Daten schlägt
fehl. Während
gespeicherte Programme nacheinander aus dem Cache-Speicher 51 durch die
CPU 31 ausgelesen werden, werden gespeicherte Daten häufig angefragt
und wahlfrei aus dem Cache-Speicher 51 durch die CPU 31 ausgelesen.
Aus diesem Grunde treten viele Cache-Fehler mit Bezug auf die in
dem Cache-Speicher 51 gespeicherten Daten auf. Wenn ein
Cache-Fehler auftritt, muss die CPU 31 die DMA-Steuerung 42 auffordern,
Daten von dem DRAM 41 an den Cache-Speicher 51 gemäß einem
DMA(direkter Speicherzugriff)-Datenübertragungsprozess zu übertragen.
Diese Datenübertragungsoperation
belastet die CPU 31 zusätzlich,
die dann keine Hochgeschwindigkeitsverarbeitung mehr durchführen kann.
-
Wenn
das DRAM 41 Daten an den Cache-Speicher 51 gemäß dem DMA-Datenübertragungsprozess
im Falle eines Cache-Fehlers überträgt, gibt
die DMA-Steuerung 42 eine
Adresse, die die Speicherposition in dem DRAM 41 für die an
den Cache-Speicher 51 zu übertragenden Daten angibt, an
das DRAM 41 aus und steuert die Übertragung der Daten, während eine
Adresse, die die Speicherposition in dem Cache-Speicher 51 der
Daten angibt, an den Cache-Speicher 51 ausgegeben wird. 6 der
beigefügten
Zeichnungen zeigt ein Zeitsteuerungsdiagramm, das die Datenübertrag
von dem DRAM 41 an den Cache-Speicher 51 gemäß dem DMA-Datenübertragungsprozess
zeigt.
-
Die
DMA-Steuerung 42 startet das Übertragen der Daten von dem
DRAM 41 an den Cache-Speicher 51 gemäß dem DMA-Datenübertragungsprozess
zum Zeitpunkt des n-ten Taktzyklus (nachfolgend als n-ter Takt-Zeitpunkt
bezeichnet) eines Systemtaktsignals. Eine Anfrage von der CPU 31 umfasst
eine Anfangsadresse in dem DRAM 41 der an den Cache-Speicher 51 zu übertragenden
Daten, die (Größe) der
an den Cache-Speicher 51 zu übertragenden Daten und eine
Anfangsadresse in dem Cache-Speicher 51, um die von dem
DRAM 41 zu übertragenden
Daten zu speichern.
-
Wie
in 6 dargestellt ist, gibt die DMA-Steuerung 42 zum
n-ten Takt-Zeitpunkt
die Anfangsadresse (Adresse D1) in dem DRAM 41 über den
Systembus (Adressbus) 13 an das DRAM 41 aus und
weist das DRAM 41 an, Daten (Daten A), die in der Adresse
gespeichert sind, zu lesen.
-
Das
DRAM 41 speichert gewöhnlicherweise Seiten
von Programmen und Daten. Wenn das DRAM 41 Daten liest,
z. B. innerhalb einer Seite, kann das DRAM 41 den Ausleseprozess
relativ schnell ausführen.
Jedoch, wenn das DRAM 41 mehrere Seiten von Daten liest,
dann, da ein Seitenbruch zwischen den Seiten von Daten auftritt,
hält das DRAM 41 seinen
Betrieb virtuell für
eine bestimmte Zeitdauer, z. B. im dargestellten Beispiel vier Taktpulse,
bei dieser Seitenunterbrechung an.
-
Normalerweise
sind bei dem DRAM-Datenübertragungsprozess
die Daten, die das DRAM 41 anfänglich überträgt, nicht auf Daten bezogen,
die das DRAM 41 zuvor verarbeitet hat, und das DRAM 41 erfährt einen
Seitenbruch zwischen diesen Seiten. Insbesondere bleibt das DRAM 41 inaktiv
bis zu einem Punkt unmittelbar vor dem Zeitpunkt des (n + 4)-ten
Taktzyklus und kann die Daten (Daten A) an den Cache-Speicher 51 nicht
bis zu dem (n + 4)-ten Taktzeitpunkt ausgeben.
-
Die
DMA-Steuerung 42 gibt die Anfangsadresse (Adresse D1) in
dem DRAM 41 über
den Systembus (Adressbus) 13 an das DRAM 41 aus
und wartet, bis die Daten A von dem DRAM 41 an den Systembus
(Datenbus) 13 ausgegeben werden.
-
Wie
in 6 dargestellt ist, gibt, nachdem das DRAM 41 die
Daten A an den Systembus (Datenbus) 13 zum Zeitpunkt des
(n + 3)-ten Taktzyklus ausgibt, die DMA-Steuerung 42 eine Anfangsadresse
(Schreibadresse) (Adresse C1) in dem Cache-Speicher 51 über den
Systembus (Adressbus) 13 an den Cache-Speicher 51 zum
Zeitpunkt des (n + 4)-ten Taktzyklus aus. Der Cache-Speicher 51 speichert
nun die Daten (Daten A) auf dem Systembus (Datenbus) 13 von
dem DRAM 41 in dessen Adresse C1.
-
Dann
gibt die DMA-Steuerung 42 zum Zeitpunkt des (n + 5)-ten
Taktzyklus eine Adresse (Adresse D2) als zur Anfangsadresse nächsten Adresse
in dem DRAM 41 als eine Leseadresse auf das DRAM 41 aus
und weist das DRAM 41 an, Daten B, die in der Adresse D2
gespeichert sind, zu lesen. Das DRAM 41 gibt nun die Daten
B an den Systembus (Datenbus) 13 aus. Zum Zeitpunkt des
(n + 6)-ten Taktzyklus gibt die DMA-Steuerung 42 eine Adresse (Adresse
C2) als eine zur Anfangsadresse nächste Adresse in dem Cache-Speicher 51 als
eine Schreibadresse über
den Systembus (Adressbus) 13 an den Cache-Speicher 51 aus
und weist den Cache-Speicher 51 an, die Daten B zu schreiben.
Der Cache-Speicher 51 speichert nun die Daten (Daten B) auf
dem Systembus (Datenbus) 13 in die Adresse C2 des DRAM 41.
-
Zum
Zeitpunkt des (n + 7)-ten Taktzyklus und zum Zeitpunkt des (n +
8)-ten Taktzyklus wird die DMA-Steuerung 42 auf die gleiche
Weise betrieben wie zum Zeitpunkt des (n + 5)-ten Taktzyklus und
zum Zeitpunkt des (n + 6)-ten Taktzyklus, um Daten C von dem DRAM 41 an
den Cache-Speicher 51 gemäß dem DMA-Übertragungsprozess
zu übertragen.
-
Auf
diese Weise ist es notwendig, dass die DMA-Steuerung 42 die
Schreib- und Leseadressen abwechselnd
an das DRAM 41 und den Cache-Speicher 51 über den
gemeinsamen Adressbus in zeitlichem Bezug zum Taktsignal ausgibt.
Ein Problem bei der DMA-Steuerung 42 besteht darin, dass
sie Daten nicht effizient übertragen
kann, weil eines der Daten in zwei Taktzyklen übertragen wird.
-
US-A-5,594,877
offenbart eine Speicherschnittstelle, die eine Auswahl von Bussen
mit 32 und 64 Bit Breite verwendet. EP-A-0 243 189 offenbart einen
Datenspeicher und eine Übertragungsvorrichtung,
die mindestens zwei Speicher umfasst, die jeweils einen Adressbus
aufweisen. US-A-5437042 offenbart eine DMA-Anordnung.
-
Verschiedene
diesbezügliche
Aspekte und Merkmale der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Ausführungsformen
der Erfindung können ein
Verfahren und eine Vorrichtung zum effizienten Übertragen von Programmen und
Daten in einem Videounterhaltungssystem vorsehen, das vielfältige Programme
ausführt,
sowie ein Bereitstellungsmedium zum Bereitstellen von Programmen
und Daten zur Verfügung
stellen.
-
Ausführungsformen
der Erfindung können
es ermöglichen,
dass die Daten und Programme effizient bei einer höheren Rate übertragen
werden.
-
In
einer Vorrichtung zum Verarbeiten von Informationen, einem Verfahren
zum Verarbeiten von Informationen und einem Bereitstellungsmedium
gemäß der vorliegenden
Erfindung werden Programme und Daten getrennt zwischen einem ersten
Bus und einem zweiten Bus gespeichert. Somit kann eine Steuereinrichtung
die notwendigen Daten effizienter erhalten.
-
Bei
einer Vorrichtung zum Verarbeiten von Informationen, einem Verfahren
zum Verarbeiten von Informationen und einem Bereitstellungsmedium
gemäß der vorliegenden
Erfindung werden Daten mit Hilfe einer Adresse, die auf Basis eines
Anfangswertes zwischen einem ersten Bus und einem zweiten Bus erzeugt
werden, übertragen.
Somit können
Daten effizient übertragen
werden.
-
Bei
einer Vorrichtung zum Verarbeiten von Informationen, einem Verfahren
zum Verarbeiten von Informationen, und einem Bereitstellungsmedium
gemäß der vorliegenden
Erfindung können
Daten über eine
zweite Steuereinrichtung übertragen
werden. Folglich kann eine große
Menge von Daten bei einer hohen Rate übertragen werden.
-
Die
Erfindung wird nun beispielhaft mit Bezug auf die beigefügten Zeichnungen
beschrieben, wobei gleiche Teile durch gleiche Bezugszeichen bezeichnet
werden und wobei:
-
1 ein
Blockdiagramm eines Videounterhaltungssystems gemäß der vorliegenden
Erfindung zeigt;
-
2 ein
Flussdiagramm einer Verarbeitungsabfolge eines DMA-Datenübertragungsprozesses
zeigt, die durch das Videounterhaltungssystem, das in 1 gezeigt
ist, ausgeführt
wird;
-
3 ein
Zeitsteuerungs-Diagramm zeigt, das einen DMA-Datenübertragungsprozess darstellt;
-
4A ein
Zeitsteuerungs-Diagramm eines Prozesses zeigt, bei dem eine CPU
Daten aus einem DRAM über
einen SRAM ausliest;
-
4B ein
Zeitsteuerungs-Diagramm eines Prozesses zeigt, bei dem eine CPU
Daten direkt aus einem DRAM ausliest;
-
5 ein
Blockdiagramm eines herkömmlichen
Videounterhaltungssystems zeigt;
-
6 ein
Flussdiagramm einer Verarbeitungsabfolge eines DMA-Datenübertragungsprozesses
zeigt, der durch das herkömmliche
Videounterhaltungssystem, das in 5 gezeigt
ist, ausgeführt wird.
-
Die
vielfältigen
Einrichtungen der vorliegenden Erfindung, auf die in den Ansprüchen bezogen wird,
werden durch die entsprechenden Teile, die in Klammern in dem nächsten Abschnitt
angegeben sind, implementiert. Jedoch sollten die mehreren Einrichtungen
nicht nur als auf diese Teile eingeschränkt verstanden werden.
-
Eine
Informationsverarbeitungsvorrichtung gemäß der vorliegenden Erfindung
weist eine erste Speichereinrichtung (z. B. ein DRAM 41,
das in 1 gezeigt ist) zum Speichern von Programmen und
Daten auf, einen ersten Bus (z. B. einen Systembus 13, der
in 1 gezeigt ist), mit dem die erste Speichereinrichtung
verbunden ist, eine Steuereinrichtung (z. B. eine CPU 31,
die in 1 gezeigt ist) zum Steuern der ersten Speichereinrichtung,
und einen zweiten Bus auf (z. B. einen CPU-Bus 12, der
in 1 dargestellt ist), mit dem die Steuereinrichtung
verbunden ist, und umfasst auch eine zweite Speichereinrichtung
(z. B. einen SRAM 33, der in 1 gezeigt
ist), die mit dem ersten Bus und dem zweiten Bus verbunden ist,
um Daten von den in der ersten Speichereinrichtung gespeicherten
Daten, die der ersten Speichereinrichtung bereitgestellt werden
sollen, zu speichern, und eine dritte Speichereinrichtung (z. B.
einen Befehlscache 34, der in 1 dargestellt
ist), die mit dem ersten Bus und dem zweiten Bus verbunden ist,
um Programme aus den in der ersten Speichereinrichtung gespeicherten
Programme, die der Steuereinrichtung bereitgestellt werden sollen,
zu speichern.
-
Die
Informationsverarbeitungsvorrichtung umfasst weiterhin eine Konvertierungseinrichtung
(z. B. einen Bitkonvertierer 35), die mit dem ersten Bus (z.
B. dem Systembus 13, der in 1 dargestellt ist),
und dem zweiten Bus (z. B. dem CPU-Bus 12, der in 1 gezeigt
ist) verbunden ist, um die Bitbreite der Daten, die über den
ersten Bus empfangen werden, in eine Bitbreite zu konvertieren,
die der Bitbreite des zweiten Busses entspricht.
-
Eine
Informationsverarbeitungsvorrichtung gemäß der vorliegenden Erfindung
weist eine erste Speichereinrichtung (z. B. ein DRAM 41,
das in 1 gezeigt ist) zum Speichern von vorbestimmten
Daten, einen ersten Bus (z. B. einen Systembus 13, der in 1 gezeigt
ist), mit dem die erste Speichereinrichtung verbunden ist, eine
erste Steuereinrichtung (z. B. eine CPU 31, die in 1 gezeigt
ist) zum Steuern der ersten Speichereinrichtung und einen zweiten
Bus auf (z. B. einen CPU-Bus 12, der in 1 gezeigt
ist), mit dem die erste Steuereinrichtung verbunden ist, und umfasst
auch eine zweite Speichereinrichtung (z. B. ein SRAM 33,
der in 1 gezeigt ist), die mit dem ersten Bus und dem
zweiten Bus verbunden ist, um Daten, die von der ersten Speichereinrichtung übertragen
werden, zu speichern, eine Erzeugungseinrichtung (z. B. einen Adresszähler 36,
der in 1 gezeigt ist) zum Erzeugen einer Adresse für entweder
die erste Speichereinrichtung oder die zweite Speichereinrichtung
anhand einer Anfangsadresse, und eine zweite Steuereinrichtung (z.
B. eine DMA-Steuerung 42, die in 1 dargestellt
ist) zum Bereitstellen der Anfangsadresse in der Erzeugungseinrichtung
zum Erzeugen einer Adresse abhängig
von einer Anfrage von der ersten Steuereinrichtung und zum Steuern
einer Datenübertragung
zwischen der ersten Speichereinrichtung und der zweiten Speichereinrichtung
mit Hilfe der durch die Erzeugungseinrichtung erzeugten Adresse.
-
Eine
Informationsverarbeitungsvorrichtung gemäß der vorliegenden Erfindung
weist eine erste Speichereinrichtung (z. B. ein DRAM 41,
das in 1 gezeigt ist) zum Speichern von Programmen und
Daten, einen ersten Bus (z. B. einen Systembus 13, der in 1 gezeigt
ist), mit dem die erste Speichereinrichtung verbunden ist, eine
erste Steuereinrichtung (z. B. eine CPU 31, die in 1 gezeigt
ist) zum Steuern der ersten Speichereinrichtung, einen zweiten Bus
(z. B. einen CPU-Bus 12, der in 1 gezeigt
ist), mit dem die erste Steuereinrichtung verbunden ist, eine zweite
Steuereinrichtung (z. B. eine Host-CPU 21, die in 1 gezeigt
ist) zum Steuern der ersten Speichereinrichtung und der ersten Steuereinrichtung
und einen dritten Bus auf (z. B. einen Hostbus 11, der
in 1 gezeigt ist), mit dem die zweite Steuereinrichtung
verbunden ist, und umfasst auch eine Anpassungseinrichtung (z. B.
einen FIFO-Speicher 22, der in 1 gezeigt
ist), der mit dem ersten Bus und dem dritten Bus verbunden ist, um
Daten, die durch die zweite Steuereinrichtung ausgegeben werden,
zeitweilig zu speichern und den Zeitpunkt der Ausgabe der gespeicherten
Daten anzupassen, eine dritte Steuereinrichtung (z. B. einen DMAC 42,
der in 1 gezeigt ist) zum Steuern der Datenübertragung
zwischen der zweiten Steuereinrichtung und der ersten Speichereinrichtung
sowie eine zweite Speichereinrichtung (z. B. ein Register 23,
das in 1 dargestellt ist), das mit dem zweiten Bus und
dem dritten Bus verbunden ist, um Daten zur Verwendung in einer
Kommunikation zwischen der ersten Steuereinrichtung und der zweiten
Steuereinrichtung zu speichern.
-
Die
Informationsverarbeitungsvorrichtung umfasst weiterhin eine Kommunikationseinrichtung (z.
B. einen zweiten direkten Pfad 24b, der in 1 gezeigt
ist) auf, um eine direkte Kommunikation zwischen der zweiten Steuereinrichtung
und Speichereinrichtung zu ermöglichen.
-
1 zeigt
ein Videounterhaltungssystem 1 zum Ausführen von vielfältigen Programmen,
die eine Informationsverarbeitungsvorrichtung gemäß der vorliegenden
Erfindung enthält.
Diejenigen Teile des Videounterhaltungssystems 1, die identisch
sind zu denjenigen des Videounterhaltungssystems 60, das
in 5 gezeigt ist, sind durch identische Bezugszeichen
bezeichnet und werden nachfolgend nicht ausführlich beschrieben.
-
Das
Videounterhaltungssystem 1 weist vier Busse auf das sind
ein Hauptbus 10, ein Host-Bus 11, ein CPU-Bus 12 und
ein Systembus 13. Mit dem Hauptbus 10 sind eine
Laufwerkssteuerung 3 zum Aufzeichnen von Daten auf und/oder
zur Wiedergabe von Daten von einem Aufzeichnungsmedium 2 und ein
Hauptspeicher 4 verbunden.
-
Mit
dem Host-Bus 11 sind eine Host-CPU 21 und eine
Host-Schnittstelle 25 verbunden. Der Hauptbus 10 und
der Host-Bus 11 sind miteinander über einen ersten direkten Pfad 24a für die Host-CPU 21 verbunden.
Die Host-Schnittstelle 25 umfasst einen FIFO-Speicher 22,
ein Register 23 und einen zweiten direkten Pfad 24b für die Host-CPU 21.
Der FIFO-Speicher 22, das Register 23 und der
zweite direkte Pfad 24b sind mit dem Host-Bus 11 verbunden.
-
Mit
dem CPU-Bus 12 sind das Register 23, eine CPU 31,
eine Peripherieeinrichtung 32, ein SRAM 33, ein
Befehlscache 34 und ein Bitkonvertierer 35 verbunden.
Mit dem Systembus 13 sind der FIFO-Speicher 22,
das SRAM 33, der Befehlscache 34, der Bitkonvertierer 35,
ein DRAM 41, eine DMA-Steuerung 42, ein Adresszähler 36 und
eine DSP 43 verbunden.
-
Die
Host-CPU 21 führt
vielfältige
Prozesse gemäß Programmen,
die von dem Aufzeichnungsmedium 2 über die Laufwerkssteuerung 3 an
den Hauptspeicher 4 übertragen
werden, aus.
-
Zum
Beispiel kann die Host-CPU 21 Programme und notwendige
Daten aus dem Hauptspeicher 4 in dem DRAM 41 speichern
und Programme und Daten, die in dem DRAM 41 gespeichert
sind, anfordern. Insbesondere steuert, wenn die Host-CPU 21 eine
Anfrage über
das Register 23 an die CPU 31 sendet, die CPU 31 die
DMA-Steuerung 42,
um einen DMA-Datenübertragungsprozess
zum Übertragen von
Programmen und Daten zwischen dem FIFO-Speicher 22 und
dem DRAM 41 auszuführen. Die
Host-CPU 21 kann auch direkt auf das DRAM 41 und
andere Einrichtungen über
den zweiten direkten Pfad 24b zugreifen. Die DMA-Steuerung 42 funktioniert
auch als ein Verteiler für
den Systembus 13 (Busverteiler).
-
Der
FIFO-Speicher 22 speichert zeitweilig die Daten, die von
der Host-CPU 21 ausgegeben werden und gibt die gespeicherten
Daten über
den Systembus 13, an die DMA-Steuerung 42 aus
und speichert auch zeitweilig Daten, die von der DMA-Steuerung 42 ausgegeben
werden und gibt Daten an die Host-CPU 21 aus. Das Register 23 ist
ein Register, das verwendet wird, wenn ein Handshake zwischen der
Host-CPU 21 und der CPU 31 stattfindet und speichert
Befehle und Daten, die Prozesszustände repräsentieren.
-
Die
CPU 31 greift auf den Befehlscache 34 zu, lädt ein darin
gespeichertes Programm, führt
das Programm aus und, wenn notwendig, greift auf das SRAM 33 zu
und wird daraus mit bestimmten Daten versorgt. Wenn notwendige Daten
nicht in dem SRAM 33 gespeichert sind, fängt die
CPU 31 bei der DMA-Steuerung 42 an, die DMA-Datenübertragung von
dem DRAM 41 an das SRAM 33 auszuführen. Wenn
ein Programm, das von der CPU 31 benötigt wird, nicht in dem Befehlscache 34 gespeichert
ist, liest der Befehlscache 34 das Programm von dem DRAM 41 ein.
-
Das
SRAM 33 umfasst ein Dual-Port-SRAM und wird z. B. als ein
Datencache verwendet, und es kann darauf sowohl von der CPU 31 als
auch der DMA-Steuerung 42 bei festgelegten Adressen gleichzeitig
zum Auslesen und Schreiben von Daten zugegriffen werden. Das SRAM 33 dient
dazu, diejenigen der in dem DRAM gespeicherten Daten, auf die sehr
häufig
von der CPU 31 zugegriffen wird, zu speichern. Das SRAM 33 kann
eine 2-Bank-Speicheranordnung aufweisen, wobei eine Bank mit dem CPU-Bus 12 und
die andere Bank mit dem Systembus 13 verbunden ist. Das
SRAM 33 dient auch dazu, Daten bei Adressen, die durch
den Adresszähler 36 erzeugt
werden, zu speichern.
-
Der
Befehlscache 34 ist ein Speicher-Cache, auf dessen beliebige
Adressen zum Auslesen von Daten daraus zugegriffen werden kann.
Der Befehlscache 34 dient dazu, diejenigen der in dem DRAM 41 gespeicherten
Programme, auf die sehr häufig
von der CPU 31 zugegriffen wird, zu speichern.
-
Der
Bitkonvertierer 35 konvertiert die Bitbreite der Daten,
die über
den CPU-Bus 12 empfangen werden,
zu einer Bitbreite, die der des Systembusses 12 entspricht
und gibt Daten mit der veränderten
Bitbreite aus und ändert
auch die Bitbreite der Daten, die über den Systembus 13 empfangen
werden, zu einer Bitbreite, die der Bitbreite des CPU-Bus 12 entspricht,
und gibt die Daten mit der geänderten
Bitbreite aus.
-
Der
Adresszähler 36 ist
mit dem Systembus 13 verbunden und ist auch mit dem SRAM 33 verbunden.
Der Adresszähler 36 inkrementiert
eine Anfangsadresse, die initialisiert worden ist, um Adressen für das SRAM 33 zu
erzeugen, und gibt die erzeugten Adressen an das SRAM 33 aus.
-
Von
den in dem DRAM 41 gespeicherten Daten sind die Daten,
auf die sehr häufig
von der CPU 31 zugegriffen wird, in dem SRAM 33 getrennt
von den Programmen gespeichert. Daher können die Daten, die von der
CPU 31 angefragt werden, effizient gespeichert werden.
-
Eine
Verarbeitungsfolge eines DMA-Datenübertragungsprozesses zum Übertragen
von Programmen und Daten von der Host-CPU 21 zu dem DRAM 41 wird
nachfolgend mit Bezug auf 2 beschrieben.
-
In
Schritt S1 weist die Host-CPU 21 die DMA-Steuerung 42 an,
Programme und Daten, die in einem Speicher (nicht gezeigt) gespeichert
sind, zu übertragen
(wenn Programme und Daten nicht voneinander unterschieden werden
müssen,
wird auf sie als „Programme
und/oder Daten" Bezug
genommen). In Schritt S2 vermittelt die DMA-Steuerung 42 abhängig von
dem Befehl von der Host-CPU 21 das Recht, den Systembus 13 zu
verwenden, zwischen sich selbst und der CPU 31 und dem
DSP 43 und verlangt das Recht, den Systembus 13 zu
benutzen.
-
In
Schritt S3 gibt die Host-CPU 21 an das DRAM 41 zu übertragende
Programme und/oder Daten an den FIFO-Speicher 22 aus. In
Schritt S4 überträgt die DMA-Steuerung 42 die
Programme und/oder Daten des FIFO-Speichers 22, das sind
die Programme und/oder Daten, die von der Host-CPU 21 ausgegeben
werden, über
den Systembus 13 an das DRAM 41 gemäß dem DMA-Datenübertragungsprozess
und speichert die Programme und/oder Daten in dem DRAM 41.
-
Somit
kann die Host-CPU 21 Programme und/oder Daten an das DRAM 41 übertragen
und sie in das DRAM 41 an der CPU 31 vorbeileitend
schreiben. Folglich kann die Host-CPU 21 eine große Menge
von Programmen und/oder Daten an das DRAM 41 übertragen
und sie in das DRAM 41 mit einer hohen Rate schreiben,
ohne die CPU 31 zu belasten. Auf ähnliche Weise kann die Host-CPU 21 die DMA-Steuerung 42 auffordern,
Programme und/oder Daten, die in dem DRAM 41 gespeichert
sind, an den FIFO-Speicher 22 gemäß dem DMA-Datenübertragungsprozess zu übertragen
und die übertragenen Programme
und/oder Daten aus dem FIFO-Speicher 22 anfordern.
-
Von
den Programmen und Daten, die so in dem DRAM 41 gespeichert
sind, werden die Programme in dem Befehlscache 34 gespeichert.
Danach greift die CPU 31 auf den Befehlscache 34 zu, um
daraus ein benötigtes
Programm auszulesen.
-
Zum
Auslesen von Daten, die in dem DRAM 41 gespeichert sind,
fragt die CPU 31 bei der DMA-Steuerung 42 an,
die gewünschten
Daten aus dem in dem DRAM 41 gespeicherten Daten an das SRAM 33 gemäß dem DMA-Datenübertragungsprozess
zu übertragen.
Danach greift die CPU 31 auf das SRAM 33 zu, um
die benötigten
Daten daraus auszulesen.
-
Gemäß der oben
beschriebenen Verfahrensabfolge wird die Wahrscheinlichkeit, dass
ein Cache-Fehler auftritt, reduziert. Jedoch ist dadurch die Möglichkeit
des Auftretens eines Cache-Fehlers nicht eliminiert. Wenn ein Cache-Fehler auftritt,
muss die CPU 31 die notwendigen Daten von dem DRAM 41 zu
dem SRAM 33 übertragen.
-
Ein
DMA-Datenübertragungsprozess
zum Übertragen
von Daten von dem DRAM 41 an das SRAM 33 wird
nachfolgend mit Bezug auf 3 beschrieben.
-
Als
Antwort auf eine Anfrage von der CPU 31 erlangt die DMA-Steuerung 42 das
Recht, den Systembus 13 zu verwenden, und startet das Übertragen von
Daten von dem DRAM 41 an das SRAM 33 gemäß dem DMA-Datenübertragungsprozess
zu einem Zeitpunkt eines n-ten Taktzyklus. Die Anfrage von der CPU 31 umfasst
eine Anfangsadresse (Leseadresse) des DRAMs 41 von Daten,
die an das SRAM 33 zu übertragen
sind, die Menge von Daten, die an das SRAM 33 zu übertragen
sind (Daten an sieben Adressen in der dargestellten Ausführungsform)
und eine Anfangsadresse (Schreibadresse) des SRAM 33 zum
Speichern der Daten, die aus dem DRAM 41 ausgelesen werden,
in dem SRAM 33.
-
Wie
in 3 dargestellt ist, gibt die DMA-Steuerung 42 zum
Zeitpunkt des n-ten Taktzyklus die Anfangsadresse (Adresse D1) in
dem DRAM 41 über
den Systembus (Adressbus) 13 an das DRAM 41 aus
und weist das DRAM 41 an, Daten (Daten A), die in der Adresse
gespeichert sind, zu lesen.
-
Zu
diesem Zeitpunkt erfährt
das DRAM 41 einen Seitenbruch für eine bestimmte Zeitdauer,
d. h. vier Taktpulse bei der dargestellten Ausführungsform, und unterbricht
seinen Betrieb virtuell. Das DRAM 41 ist nicht in der Lage,
die Daten (Daten A) an den Systembus (Datenbus) 13 bis
zu einem Punkt unmittelbar vor dem Zeitpunkt des (n + 3)-ten Taktzyklus
auszugeben.
-
Dann
zum Zeitpunkt des (n + 1)-ten Taktzyklus gibt die DMA-Steuerung
die Anfangsadresse (Adresse S1) des SRAM 33 und eine Datengröße über den
Systembus (Adressbus) 13 an den Adresszähler 36 aus. Der Adresszähler 36 stellt
die Adresse S1 als Anfangswert ein und gibt die Adresse S1 als eine
Schreibadresse an das SRAM 33 aus. Daher, wenn das SRAM 33 nachfolgend
Daten aus dem DRAM 41 empfängt, kann das SRAM 33 die
empfangenen Daten in die Schreibadresse schreiben.
-
Zum
Zeitpunkt des (n + 3)-ten Taktzyklus nimmt das DRAM 41 seinen
Betrieb nach dem Seitenbruch wieder auf und liest die Daten A von
der Anfangsadresse (Adresse D1) des DRAM 41 und gibt die
Daten A an den Systembus (Datenbus) 13 aus. Da dem SRAM 33 bereits
die Schreibadresse S1 bereitgestellt worden ist, speichert das SRAM 33 die Daten
A an der Adresse S1.
-
Zum
Zeitpunkt des (n + 4)-ten Taktzyklus gibt die DMA-Steuerung 42 eine
Adresse (Adresse D2) als eine zu der Anfangsadresse nächsten Adresse des
DRAM 41 als eine Leseadresse an den Systembus (Adressbus) 13 aus,
und weist das DRAM 41 an, Daten B, die in der Adresse D2
gespeichert sind, zu lesen. Als Antwort auf den Befehl liest das
DRAM 41 die Daten B von der Adresse D2 aus und gibt die
Daten B an den Systembus (Datenbus) 13 aus. Zur gleichen
Zeit inkrementiert der Adresszähler 36 die
gespeicherte Adresse S1 in eine Adresse S2 und gibt die Adresse
S2 an das SRAM 33 aus. Da die DMA-Steuerung 42 das
SRAM 33 anweist, die Daten B zur gleichen Zeit zu schreiben,
speichert das SRAM 33 die Daten B an der Adresse S2.
-
Da
die DMA-Steuerung 42 von dem Zeitpunkt des (n + 1)-ten
Taktzyklus keine Adressen ausgibt, wenn sie die Adresse S1 zu dem
Zeitpunkt des (n + 4)-ten Taktzyklus ausgibt, wenn sie die Adresse S2
ausgibt, liegen keine effektiven Adressen auf dem Systembus (Adressbus) 13 zum
Zeitpunkt des (n + 2)-ten Taktzyklus und zum Zeitpunkt des (n +
3)-ten Taktzyklus vor.
-
Zum
Zeitpunkt des (n + 5)-ten Taktzyklus und den nachfolgenden Taktzyklen
sowie zum Zeitpunkt des (n + 4)-ten Taktzyklus werden Daten von
dem DRAM 41 an das SRAM 33 übertragen. Wenn das SRAM 33 die
Daten der vorgegebenen Größe, d. h. Daten
an sieben Adressen in der dargestellten Ausführungsform (die Daten A–G) speichert,
ist die Übertragung
der Daten gemäß dem DMA-Datenübertragungsprozess
vollständig.
-
Auf
diese Weise erzeugt der Adresszähler 36,
nachdem die DMA-Steuerung 42 den Adresszähler 36 auf
die Anfangsadresse des SRAM 33 einstellt, Schreibadressen
für das
SRAM 33 und gibt die erzeugten Schreibadressen an das SRAM 33 aus. Folglich
wird von der DMA-Steuerung 42 nicht verlangt, die Schreibadressen
an das SRAM 33 auszugeben, sondern muss nur die Leseadressen
für das DRAM 41 an
den Systembus (Adressbus) 13 ausgeben.
-
Die
DMA-Steuerung 42 ist somit in der Lage, Daten gemäß dem DMA-Datenübertragungsprozess von
dem DRAM 41 an das SRAM 33 zum Zeitpunkt eines
Taktzyklus zu übertragen.
Während
in dem DRAM 41 ein Seitenbruch erfolgt, gibt die DMA-Steuerung 42 eine
Anfangsadresse des SRAM 33 an den Adresszähler 36 aus.
Daher kann der Überschuss
bei dem ersten Datenübertragungszyklus
auf ein Minimum begrenzt werden.
-
In
der obigen Beschreibung ist der Adresszähler 36 aufgebaut,
um Schreibadressen (Adressen für
das SRAM 33) zu erzeugen. Jedoch kann der Adresszähler 36 aufgebaut
sein, um Leseadressen (Adressen für das DRAM 41) zu
erzeugen.
-
Wie
oben beschrieben, überträgt die CPU 31,
wenn das SRAM 33 nicht notwendige Daten speichert, die
Daten von dem DRAM 41 an das SRAM 33 gemäß dem DMA-Datenübertragungsprozess.
Nachfolgend greift die CPU 31 auf das SRAM 33 zu und liest
die Daten aus dem SRAM 33 aus.
-
Wenn
die CPU 31 nicht viele Male auf das SRAM 33 (DRAM 41)
zugreifen muss, d. h. die Größe der durch
die CPU 31 benötigten
Daten relativ gering ist, kann es in Anbetracht der für das Übertragen
der Daten zwischen dem DRAM 41 und dem SRAM 33 benötigten Zeit
schneller sein, wenn die CPU 31 direkt auf das DRAM 41 zugreift,
um daraus die Daten auszulesen, als die Daten über das SRAM 33 auszulesen.
-
4A zeigt
ein Zeitablauf-Diagramm eines Prozesses, bei dem die CPU 31 Daten
aus dem DRAM 41 über
das SRAM 33 ausliest, wenn die Menge von Daten, die durch
die CPU 31 verarbeitet wird, relativ gering ist. 4B zeigt
ein Zeitablaufs-Diagramm
eines Prozesses, bei dem die CPU 31 direkt auf das DRAM 41 zugreift,
um daraus Daten auszulesen.
-
Das
Zeitablauf-Diagramm, das in 4A gezeigt
ist, stellt einen Prozess dar, bei dem die CPU 31 auf das
SRAM 33 zugreift und ein bestimmtes Programm ausführt. In
dem in 4A gezeigten Beispiel liest
das durch die CPU 31 ausgeführte Programm bestimmte Daten,
verarbeitet die gelesenen Daten und speichert die verarbeiteten
Daten in dem DRAM 41. Der Prozess, der in 4A dargestellt
ist, wird nachfolgend beschrieben.
-
Zu
einem Zeitpunkt T1 in 4A fordert die CPU 31 das Übertragen
von Daten von dem DRAM 41 an das SRAM 33 gemäß dem DMA-Datenübertragungsprozess
von der DMA-Steuerung 42 an. Abhängig von der Anfrage von der
CPU 31 fordert die DMA-Steuerung 42 das Recht,
den Systembus 13 zu verwenden, und startet die Übertragung
von Daten von dem DRAM 41 an das SRAM 33 gemäß dem DMA-Datenübertragungsprozess.
-
Zu
einem Zeitpunkt T2 beendet die DMA-Steuerung 42 die Übertragung
von Daten von dem DRAM 41 zu dem SRAM 33. Zu einem
nächsten Zeitpunkt
T3 greift die CPU 31 auf das SRAM 33 zu und beginnt
das Lesen der übertragenen
Daten über den
CPU-Bus 12.
-
Zu
einem Zeitpunkt T4 beendet die CPU 31 das Auslesen der
Daten von dem SRAM 33 und beginnt das Verarbeiten der ausgelesenen
Daten. Wenn die CPU 31 die Verarbeitung der Daten zu einem
Zeitpunkt T5 beendet, beginnt die CPU 31, die verarbeiteten
Daten in dem SRAM 33 über
den CPU-Bus 12 zu speichern. Zu einem nächsten Zeitpunkt T6, wenn die
CPU 31 das Speichern der verarbeiteten Daten in dem SRAM 33 beendet,
fragt die CPU 31 bei der DMA-Steuerung 42 an,
das Recht zur Verwendung des Systembusses 13 zu erhalten.
Zu einem Zeitpunkt T7 beginnt die DMA-Steuerung 42 das Übertragen
der verarbeiteten Daten von dem SRAM 33 zu dem DRAM 41 gemäß dem DMA-Datenübertragungsprozess.
Zu einem Zeitpunkt T8 beendet die DMA-Steuerung 42 die Übertragung
der Daten von dem SRAM 33 zu dem DRAM 41.
-
Das
Zeitablauf-Diagramm, das in 4B gezeigt
ist, stellt einen Prozess dar, bei dem die CPU 31 direkt
auf das DRAM 41 über
den Bitkonvertierer 35 zugreift und ein bestimmtes Programm
ausführt.
Bei diesem Beispiel ist das durch die CPU 31 ausgeführte Programm
dasselbe wie das Programm in dem Beispiel, das in 4A gezeigt
ist. D. h. das Programm, das durch die CPU 31 ausgeführt wird,
liest bestimmte Daten, verarbeitet die ausgelesenen Daten und speichert
die verarbeiteten Daten in dem DRAM 41. Der Prozess, der
in 4B gezeigt ist, wird nachfolgend beschrieben.
-
Zu
einem Zeitpunkt T11 greift die CPU 31 auf das DRAM 41 über den
Bitkonvertierer 35 zu und startet das Auslesen von bestimmten
Daten aus dem DRAM 41. Der Bitkonvertierer 35 dient
dazu, die Bitbreite (128 Bits) der aus dem DRAM 41 ausgelesenen
Daten in eine Bitbreite (32 Bits) zu konvertieren, die der Bitbreite
des CPU-Bus 12 entspricht. Die Daten, die die CPU 31 aus
dem DRAM 41 in dem in 4B gezeigten
Beispiel ausliest, sind die gleichen wie die Daten, die die CPU 31 von
dem SRAM 33 in dem Beispiel, das in 4A gezeigt
ist, ausliest.
-
Zu
einem Zeitpunkt T12 beendet die CPU 31 das Auslesen von
Daten aus dem DRAM 41 und beginnt das Verarbeiten der ausgelesenen
Daten. Die CPU 31 verarbeitet die Daten für eine Verarbeitungszeitdauer
(von dem Zeitpunkt T12 bis zu dem Zeitpunkt T13), die der Verarbeitungszeitdauer
(von dem Zeitpunkt T4 bis zu dem Zeitpunkt T5) in dem Beispiel,
das in 4A gezeigt ist, entspricht.
Die verarbeiteten Daten, die durch die CPU 31 erzeugt werden,
sind die gleichen wie die verarbeiteten Daten, die durch die CPU 31 in
dem in 4A gezeigten Beispiel erzeugt
werden.
-
Zu
einem Zeitpunkt T13 gibt die CPU 31 die verarbeiteten Daten über den
Bitkonvertierer 35 an das DRAM 41 aus und beginnt
das Speichern der verarbeiteten Daten in dem DRAM 41. Der
Bitkonvertierer 35 konvertiert die Bitbreite der Daten
von der CPU 31 zu einer Bitbreite, die der Bitbreite des
Systembusses 13 entspricht und gibt die Daten mit der konvertierten
Bitbreite an das DRAM 41 aus. Zu einem Zeitpunkt T14 beendet
die CPU 31 das Schreiben der Daten in das DRAM 41.
-
Die
Gesamtverarbeitungszeiten des Programms in den in den 4A und 4B gezeigten Beispielen
werden miteinander wie folgt verglichen: In dem in 4A gezeigten
Beispiel beträgt
die Verarbeitungszeit t1 (von dem Zeitpunkt T1 zum Zeitpunkt T8).
In dem in 4B gezeigten Beispiel beträgt die Verarbeitungszeit
t10 (von dem Zeitpunkt T11 zum Zeitpunkt T14). In den in den 4A und 4B gezeigten
Beispielen ist die Zeit t1 länger
als die Zeit t10. Daher ist die Gesamtverarbeitungszeit des Programms
bei dem in 4B gezeigten Beispiel geringer
als die Gesamtverarbeitungszeit des Programms in dem in 4A gezeigten
Beispiel.
-
Wenn,
wie oben beschrieben ist, die Größe der zu
verarbeitenden Daten geringer ist, d. h. wenn die Anzahl, während der
auf das DRAM 41 zugegriffen wird, geringer ist, ist die
benötigte
Verarbeitungszeit geringer, wenn die CPU 31 direkt auf
das DRAM 41 über
den Bitkonvertierer 35 zugreift, um Daten zu verarbeiten,
als wenn die CPU 31 auf das SRAM 33 zum Verarbeiten
der Daten zugreift.
-
Während die
vorliegende Erfindung mit Bezug auf ein Videounterhaltungssystem
beschrieben worden ist, sind die Prinzipien der vorliegenden Erfindung
auch auf vielfältige
andere Informationsverarbeitungsvorrichtungen anwendbar.
-
Ein
Bereitstellungsmedium zum Bereitstellen eines Computerprogramms
und/oder Daten, die die obige Verarbeitung für einen Benutzer ausführt, kann eines
der vielfältigen
Informationsaufzeichnungsmedien einschließlich einer Magnetplatte, einer CD-ROM,
eines Festkörperspeichers
usw. sowie eines der mehreren Informationsübertragungsmedien, die in Netzwerken
und Satellitensystemen usw. verwendet werden, umfassen.
-
Obwohl
eine bestimmte bevorzugte Ausführungsform
der vorliegenden Erfindung gezeigt und ausführlich beschrieben worden ist,
ist es selbstverständlich,
dass vielfältige Änderungen
und Modifikationen vorgenommen werden können, ohne von dem Bereich
der beigefügten
Ansprüche
abzuweichen.