-
Gebiet der
Gebiet
-
Die
vorliegende Erfindung betrifft ein Computersystem mit einer speziellen
Multimediaverarbeitungseinrichtung bzw. Maschine und einem Echtzeitdatencache-Speicher, der lokal
für die
Multimediamaschine vorgesehen ist.
-
Beschreibung
des Stands der Technik
-
Computerarchitekturen
enthalten im Allgemeinen eine Vielzahl von Einrichtungen, die durch
einen oder mehrere diverse Busse angeschlossen sind. Beispielsweise
enthalten moderne Computersysteme typischerweise eine zentrale Recheneinheit (CPU),
die über
eine Brückenlogik
mit dem Hauptspeicher verbunden ist. Die Brückenlogik ist ferner mit einem
lokalen Erweiterungsbus mit großer
Bandbreite, etwa den peripheren Komponentenverbindung- (PCI) Bus
oder dem Videoelektronikstandardverbindungs-(VESA) VL-Bus, verbunden. Zu Beispielen
von Einrichtungen, die mit lokalen Erweiterungsbussen angeschlossen
werden können,
gehören
Videobeschleunigerkarten, Klangkarten, Telefonkarten, Kleincomputersystemschnittstellen-
(SCSI) Adapter, Netzwerkschnittstellenkarten, etc. Ein zweiter Erweiterungsbus
kann mit dem lokalen Erweiterungsbus aus Gründen der Rückwärtskompatibilität verbunden
sein. Zu Beispielen dieser Erweiterungsbusse gehören der Industriestandardarchitektur- (ISA)
Bus, der erweiterte Industriestandardarchitektur- (EISA) Bus und
der Mikrokanalarchitektur- (MCA) Bus. Es können diverse Geräte an den
zweiten Erweiterungsbus angeschlossen werden, wozu ein Fax/Modem,
eine Klangkarte, etc. gehören.
-
Personalcomputersysteme
wurden ursprünglich
für Geschäftsanwendungen,
etwa die Textverarbeitung und von Tabellenkalkulationsanwendungen
entwickelt, um nur einige zu nennen. Aktuell werden Computersysteme
jedoch auch verwendet, um eine Reihe von Echtzeitanwendungen zu
betreiben, wozu Multimedianwendungen mit Video- und Audiokomponenten,
Bildaufnahme- und Abspielen, Telefonanwendungen und Spracherkennung
und Synthese u. a. gehören.
Diese Echtzeitanwendungen benötigen
typischerweise einen großen
Anteil der Systemressourcen und der Bandbreite.
-
Ein
dabei auftretendes Problem besteht darin, dass Computersysteme ursprünglich für Geschäftsanwendungen
gestaltet sind und für
die Echtzeiterfordernisse moderner Multimediaanwendungen nicht gut
geeignet sind. Beispielsweise wird in modernen Personalcomputersystemarchitekturen
angenommen, dass die Mehrzahl der Anwendungen, die gerade in dem
Computersystem ausgeführt
werden, keine Echtzeitgeschäftsanwendungen
sind, etwa die Textverarbeitung und/oder die Tabellenkalkulation, die
hauptsächlich
in der Haupt-CPU ausgeführt
werden. Im Allgemeinen wurden Computersysteme im Allgemeinen so
gestaltet, dass Multimediahardwarekomponenten nicht Teil des Systems
sind, und daher ist dieses System für Multimediaanwendungen nicht optimiert.
Vielmehr ist die Multimediahardware typischerweise als eine Zusatzkarte
für das
optionale Einfügen
in einen Erweiterungsbus des Computersystems ausgestaltet.
-
In
vielen Fällen
sind Multimediahardwarekarten an einen Erweiterungsbus angeschlossen,
besitzen jedoch nicht den erforderlichen Zugriff zu dem Systemspeicher
und zu anderen Systemressourcen, um eine geeignete Betriebsweise
zu ermöglichen. Beispielsweise
muss eine Multimediahardwarekarte, die an den lokalen Erweiterungsbus
angeschlossen ist, zunächst
auf die Zuteilung für
die Steuerung des lokalen Erweiterungsbusses warten, bevor die Einrichtung
auf den Systemspeicher zugreifen kann. Da ferner die Computersystemarchitektur
nicht für
Multimedia optimiert ist, verwenden Multimediahardwarekarten im
Allgemeinen die Systemressourcen nicht in effizienter Weise. Beispielsweise
enthalten Multimediahardwarekarten üblicherweise ihren eigenen Speicher
zusätzlich
zu dem Systemspeicher. Beispielsweise sind Videobeschleunigerkarten
typischerweise mit 1 bis 4 Megabit an Video-RAM ausgestattet. Klangkarten,
Videoaufnahmekarten und andere Multimediakarten sind ebenso mit
einem entsprechenden internen Speicher versehen. Dieses Erfordernis
eines zusätzlichen
Speichers kann unerwünschterweise
zu höheren
Kosten des Systems beitragen.
-
In
dem Maße,
wie Multimediaanwendungen zunehmen, wird die Multimediahardware
zu einer wesentlichen Komponente in Personalcomputersystemen. Daher
ist eine verbesserte Computersystemarchitektur wünschenswert, die für Echtzeitmultimediaanwendungen
sowie für
Nichtechtzeitanwendungen optimiert ist. Ferner sind verbesserte
Verfahren zum Übertragen
von Echtzeitdaten an die Multimediahardware wünschenswert.
-
WO
94/10641 offenbart ein bekanntes Multimediasystem mit den Merkmalen
des Oberbegriffs des Anspruchs 1.
-
1996
IEEE internationale Halbleiterschaltungskonferenz, ISSGC96/Sitzung
13/Mikroprozessoren, Dokument FP 13.6 „Ein für Multimediaanwendungen x86-Prozessor" von Forrest Norrod
et al. offenbart eine bekannte x86-kompatible CPU mit Multimediafunktion.
-
Überblick über die
Erfindung
-
Die
vorliegende Erfindung umfasst ein Computersystem und ein Verfahren,
die für
Echtzeitmultimediaanwendungen optimiert sind. Das Computersystem
umfasst eine spezielle Multimediamaschine bzw. Multimediaeinheit,
die mit einem Echtzeitdatencache-Speicher verbunden ist, wobei die
Multimediamaschine und der Echtzeitdatencache-Speicher ein höheres Leistungsvermögen gegenüber aktuellen Computerarchitekturen
bereitstellen. Die Multimediamaschine führt eine Reihe von Echtzeitoperationen einschließlich von
Audio- und Videofunktionen aus. Die Multimediamaschine erhält Befehle
und Daten aus dem Hauptspeicher und/oder aus dem Echtzeitdatencache-Speicher.
Die Multimediamaschine kann einen Multimediaspeicher und eine Speichersteuerung
und möglicherweise
eine DMA-Steuerung
für eine
noch größere Leistungssteigerung
aufweisen.
-
Das
Computersystem umfasst eine CPU, die über eine Chipsatzlogik mit
dem Hauptspeicher verbunden ist. Die Chipsatzlogik umfasst eine
Hauptspeichersteuerung sowie weitere unterstützende Logikkomponenten. Eine
Multimediamaschine ist über einen
Echtzeitdatencache-Speicher mit der Chipsatzlogik verbunden. Die
Multimediamaschine kann optional direkt mit dem Hauptspeicher verbunden sein.
Die Multimediamaschine umfasst Anschlüsse bzw. Ports zur Verbindung
mit einer oder mehreren der folgenden Komponenten: einem Videomonitor, einem
Audio-Digital-Analog-Wandler
(DAC) und/oder anderen Kommunikationseinrichtungen. Die Chipsatzlogik
ist mit einem lokalen Erweiterungsbus (vorzugsweise dem PCI-Bus)
verbunden. Es können
diverse periphere Einrichtungen mit dem lokalen Erweiterungsbus
einschließlich
einer Festplatte, einer Netzwerkschnittstellenkarte, einer Kommunikationslogik,
etc. verbunden werden.
-
Der
Echtzeitdatencache-Speicher, der zwischen der Multimediamaschine
und der Chipsatzlogik angeschlossen ist, ermöglicht es, dass Multimediabefehle
und Daten in anderen Stellen als dem Hauptspeicher gespeichert werden.
In einer Ausführungsform
ist die Multimediamaschine direkt mit dem Hauptspeicher verbunden,
und der Echtzeitdatencache-Speicher ermöglicht das gemeinsame Nutzen gespeicherter
Multimediadaten durch die CPU und die Multimediamaschine. Im hierin
definierten Sinne bezeichnet der Begriff "Multimedia" Video-, Audio-, Graphik- und Kommunikationsinformation
sowie andere Arten an Echtzeitinformationen. Die Quelle der in dem
Echtzeitdatencache-Speicher gespeicherten Multimediadaten kann eine
Einrichtung sein, die mit einem Erweiterungsbus verbunden ist. In
einer weiteren Ausführungsform
ist die Multimediamaschine nicht direkt mit dem Hauptspeicher verbunden,
und der Echtzeitdatencache-Speicher speichert Multimediabefehle
und Daten, die von dem Hauptspeicher erhalten werden, zur Verwendung
für die
Multimediamaschine. In diesem Falle kann die Quelle der Multimediainformationen
(d. h. der Befehle und der Daten) eine Einrichtung sein, die mit
einem Erweiterungsbus, der CPU oder dem Hauptspeicher verbunden ist.
Der Echtzeitdatencache-Speicher reduziert die Zeit, die für die Multimediamaschine
erforderlich ist, um auf die erforderlichen Multimediadaten zuzugreifen,
und reduziert ferner das Einladen in den Hauptspeicher.
-
Die
Multimediamaschine umfasst eine oder mehrere DSP-Einheiten bzw.
Maschinen, die DSP-Maschinen für
Allgemeinzwecke oder entsprechende Audio- und Videomaschinen sein
können. Die
eine oder die mehreren DSP-Maschinen sind über einen oder mehrere I/O-
(Eingabe/Ausgabe-) Kanäle
mit entsprechenden I/O- (Eingabe/Ausgabe) Anschlüssen einschließlich von
Video-, Audio- und Kommunikationsanschlüssen verbunden. Die Video-I/O-Anschlüsse sind
so ausgebildet, dass sie mit einem Videomonitor verbunden werden,
und die Audio-I/O-Anschlüsse
sind für
eine Anschluss an einen Audio-DAC- und/oder Lautsprecher ausgebildet.
-
Gemäß der vorliegenden
Erfindung erzeugt die CPU Multimediabefehle und Daten oder überträgt diese
zu einem zugeordneten Multimediaadressenraum in dem Hauptspeicher.
Die CPU gruppiert Multimediabefehle und Daten in separate Multimediabefehls-
und Datenelemente. Die CPU schreibt dann die Multimediabefehls-
und Datenelemente zusammen mit einer Information über die
Position der Elemente in Speicherstellen innerhalb des Multimediaadressenraumes.
Die Information zur Lage der Elemente umfasst die Adressenoffsetzahlen
der Elemente innerhalb des Multimediaadressenraums. Die Multimediamaschine
verwendet die Information über die Position
des Elements, um Multimediabefehle und Daten aus dem Hauptspeicher
abzurufen.
-
Daher
umfasst die vorliegende Erfindung eine neue Computersystemarchitektur
und ein Verfahren, die das Leistungsverhalten während Echtzeitmultimediaanwendungen
verbessern. Eine zugeordnete Multimediamaschine ist mit dem Hauptspeicher und
einem Echtzeitdatencache-Speicher verbunden. Der Echtzeitdatencache-Speicher
kann Daten enthalten, die von einer an einen Erweiterungsbus angeschlossenen
Einrichtung erzeugt werden. Die CPU kann auf den Echtzeitdatencache-Speicher
zugreifen, wenn sie Multimediabefehle und Daten erzeugt. Die CPU
schreibt die Multimediabefehle und Daten sowie eine Information über die
Lage der Elemente in den Hauptspeicher. Die Multimediamaschine erhält Multimediabefehle
und Daten aus dem Hauptspeicher und/oder aus dem Echtzeitdatencache-Speicher
nach Bedarf, wobei dies vorzugsweise gleichzeitig mit Operationen
der Multimediamaschine stattfindet.
-
Kurze Beschreibung
der Zeichnungen
-
Ein
besseres Verständnis
der vorliegenden Erfindung kann erreicht werden, wenn die folgende detaillierte
Beschreibung der bevorzugten Ausführungsform in Verbindung mit
den folgenden Zeichnungen studiert wird, in denen:
-
1 eine
Blockansicht einer Ausführungsform
eines Computersystems mit einer Multimediamaschine ist, die mit
einem Hauptspeicher und einem Echtzeitdatencache-Speicher verbunden ist;
-
2a eine
Blockansicht des Hauptspeichers und eine Ausführungsform der Multimediamaschine
ist;
-
2b eine
Blockansicht einer zweiten Ausführungsform
der Multimediamaschine mit einem chipinternen Multimediaspeicher
und einer Speichersteuerung ist;
-
2c eine
Blockansicht einer dritten Ausführungsform
der Multimediamaschine mit einem chipinternen Multimediaspeicher,
einer Speichersteuerung und einer DMA-Steuerung ist;
-
3 eine
Blockansicht einer zweiten Ausführungsform
eines Computersystems mit einer Multimediamaschine ist, die mit
einem Echtzeitdatencache-Speicher verbunden ist;
-
4 eine
Blockansicht einer Ausführungsform
der Multimediamaschine in dem Computersystem aus 3 ist;
und
-
5 ein
Flussdiagramm des Verfahrens zum Ausführen von Echtzeitmultimediaanwendungen
in dem erfindungsgemäßen Computersystem
ist.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsform
-
Blockdiagramm des Computersystems
-
1 ist
eine Blockansicht einer Ausführungsform
eines Computersystems gemäß der vorliegenden
Erfindung. Das Computersystem umfasst eine zentrale Recheneinheit
(CPU) 102, die über
einen Prozessorbus 104 mit einem Chipsatz 106 (d.
h. einer Host/PCI/Cache-Brücke)
verbunden ist. Der Chipsatz 106 ist vorzugsweise ähnlich zu
dem Triton-Chipsatz, der von Intel Corporation erhältlich ist, einschließlich gewisser
Modifizierungen, um die Multimediamaschine und den Echtzeitdatencache-Speicher
der vorliegenden Erfindung aufzunehmen. Ein Cache-Speicher der Ebene
2 oder L2 (nicht gezeigt) kann mit einer Cache-Steuerung innerhalb
des Chipsatz 106 verbunden sein. Der Chipsatz 106 ist über einen
Speicherbus 108 mit einem Hauptspeicher 110 verbunden.
Der Chipsatz 106 ist ferner über einen Echtzeitdatencache-Speicher 126 mit
einer Multimediamaschine 112 verbunden. Eine Verteilungs-
bzw. Arbitrationslogikeinheit 107 in dem Chipsatz 106 führt eine
Funktionszuteilung zwischen der CPU 102 und der Multimediamaschine 112 in
Bezug auf den Zugriff auf den Hauptspeicher 110 aus. Der
Hauptspeicher 110 ist vorzugsweise ein dynamischer Speicher
mit wahlfreiem Zugriff (DRAM) oder ein erweiterter Datenausgangs-
(EDO) Speicher.
-
Die
Multimediamaschine 112 ist mit dem Speicherbus 108 und
dem Echtzeitdatencache-Speicher 126 verbunden.
Die Multimediamaschine 112 ist ausgebildet, Video- und
Audioverarbeitungsfunktionen auszuführen, und Multimediaausgangssignale zu
einem oder mehreren Eingabe/Ausgabe-Anschlüssen zuzuführen. Wie gezeigt, umfasst
die Multimediamaschine 112 vorzugsweise einen Eingabe/Ausgabe-
(I/O) Anschluss bzw. Port 172, der für den Anschluss an einen Videomonitor 114 geeignet ist,
und einen Eingabe/Ausgabe-Anschluss 174, der zum Anschluss
an einen Audio- Codierer/Decodierer (CODEC)
einschließlich
eines Audio-DAC 115 geeignet ist. Der Audio-DAC 115 kann
einen geeigneten D/A-Wandler enthaften, wie er von Crystal Semiconductor,
Austin, TX, erhältlich
ist. Der Audio-DAX 115 ist mit Lautsprechern 116 verbunden.
Die Multimediamaschine 112 kann ferner einen Eingabe/Ausgabe-Anschluss 176 aufweisen,
der zum Anschluss an ein Kommunikationsmedium geeignet ist.
-
In
einer bevorzugten Ausführungsform
umfasst die Multimediamaschine 112 eine Videoverarbeitungsschaltung
und/oder Firmware, mit einem Digital-Analog-Wandler mit Speicher
mit wahlfreiem Zugriff (RAMDAC) zum Konvertieren von Videodaten in
geeignete Analogsignale, vorzugsweise in entsprechende Signale „rot, grün und blau" (RGB), die für die direkte
Ausgabe für
einen Videomonitor 114 vorgesehen sind. In einer alternativen
Ausführungsform
enthält
die Multimediamaschine eine DSP-Maschine 210, liefert digitale
Videopixeldaten über
einen I/O-Kanal 220a zu dem Videoeingabe/Ausgabe-Anschluss 172,
und ein separater RAMDAC und zugehörige Logikschaltung (nicht
gezeigt) empfangen die Videopixeldaten von dem Videoeingabe/Ausgabe-Anschluss 172 und
erzeugen die geeignete RGB-Signale, um den Videomonitor 114 anzusteuern.
-
Der
Chipsatz 106 ist ferner mit einem lokalen Erweiterungsbus 120 verbunden.
Der lokale Erweiterungsbus 120 ist vorzugsweise ein PCI-Bus.
Jedoch sollte beachtet werden, dass der lokale Erweiterungsbus 120 ein
beliebiger Bus aus einer Reihe lokaler Busarchitekturen sein kann,
wozu der VESA VL-Bus gehört.
Es können
diverse Arten peripher Einrichtungen mit dem lokalen Bus 120 verbunden sein.
In 1a ist ein peripheres Gerät 122 mit dem lokalen
Erweiterungsbus 120 verbunden. Das periphere Gerät 122 kann
eine Festplatte, eine CD-ROM-Schnittstellenkarte, eine Netzwerkschnittstellensteuerung,
ein SCSI-Adapter oder eine andere übliche periphere Einrichtung
sein. Eine Busbrücke 150 verbindet
optional den lokalen Erweiterungsbus 120 mit einem zweiten
Erweiterungsbus 152. Der Erweiterungsbus 152 kann
ein beliebiger Bus aus einer Vielzahl von Busarten sein, wozu ein
ISA, ein EISA-Bus oder ein MCA-Bus gehört. In 1 ist ein
peripheres Gerät 124 gezeigt,
das mit dem Erweiterungsbus 152 verbunden ist. Das periphere
Gerät 124 kann
ein Modem oder ein anderes älteres
Peripheriegerät
sein. Der Chipsatz 106 empfängt Multimediadaten von einem
externen Gerät,
das an den lokalen Erweiterungsbus 120 oder den Erweiterungsbus 152 angeschlossen
ist, und speichert die Multimediadaten in dem Echtzeitdatencache-Speicher 126.
Beispielsweise kann die Quelle der in dem Echtzeitdatencache-Speicher 126 gespeicherten
Multimediadaten ein Videodecodierer, eine Videoaufnahmeeinrichtung,
ein CD-ROM oder eine andere periphere Einrichtung sein, die mit
dem lokalen Erweiterungsbus 120 verbunden ist.
-
Der
Echtzeitdatencache-Speicher 126, der zwischen der Multimediamaschine 112 und
dem Chipsatz 106 angeschlossen ist, ermöglicht es, dass Multimediadaten
von einer externen Quelle in einer Speicherstelle gespeichert werden,
die nicht dem Hauptspeicher 110 entspricht. Der Echtzeitdatencache-Speicher 126 ermöglicht es
ferner, dass diese Multimediadaten von der CPU 102 und
der Multimediamaschine 112 gemeinsam benutzt werden. Multimediadaten,
die in dem Echtzeitdatencache-Speicher 126 gespeichert
sind, können
von der Multimediamaschine 112 mit geringerer Wartezeit
abgerufen werden, und der Echtzeitdatencache-Speicher 126 reduziert
ferner die Auslastung des Hauptspeichers 110.
-
Verteilungslogik
-
Die
Verteilungslogikeinheit 107 in dem Chipsatz 106 (1)
empfängt
Busanforderungen von der CPU 102 und der Multimediamaschine 112 und gewährt Zugriff
auf den Hauptspeicher 110 über den Speicherbus 108.
Die Multimediamaschine 112 besitzt vorzugsweise Vorrang
beim Zugreifen auf den Multimediaadressenraum 182 in dem
Hauptspeicher 110. Um Zugriff auf den Multimediaadressenraum 182 zu
erhalten, kann die Multimediamaschine 112 einfach ein oder
mehrere Bits in einem Register in der Verteilungslogik 107 beschreiben.
In diesem Falle wird der CPU 102 einen Zugriff zu dem Multimediaadressenraum 182 nur
gewährt,
wenn dieser zunächst
für eine
gewisse Zeitdauer der Zugriff verweigert wurde. Alternativ ist der
Speicherbus 108 ein isochroner Bus, wobei die CPU 102 und
die Multimediamaschine 112 eine garantierte Bandbreite
und Wartezeit für
den Speicherbus 108 für
den Hauptspeicher 110 besitzen. Ein alternatives Zuteilungsschema, etwa
ein auf Konkurrenz basierendes oder auf Hierarchie basierendes Schema,
kann ebenso eingesetzt werden.
-
Der
Hauptspeicher 110 speichert das Betriebssystem und Anwendungssoftware
sowie Treibersoftware einschließlich
von Videotreibern und Audiotreibern. Der Hauptspeicher 110 und/oder
das periphere Gerät 122 speichern
ferner Multimediabefehle und Daten. Die CPU 102 führt die
Anwendungssoftware und die Treibersoftware aus dem Hauptspeicher 110 heraus
aus und erzeugt Multimediabefehle und Daten und/oder überträgt diese.
Beispielsweise kann die CPU 102 den Transfer von Multimediadaten
von einem peripheren Gerät
oder einer externen Quelle zu dem Hauptspeicher 110 oder zu
dem Echtzeitdatencache-Speicher 126 veranlassen. Die CPU 102 kann
ferner Multimediabefehle und Daten in Reaktion auf Anwendungssoftware
erzeugen.
-
Blockansicht
des Hauptspeichers
-
2a ist
eine Blockansicht, in der die Multimediamaschine 112 dargestellt
ist, die mit dem Hauptspeicher 110 verbunden ist. In der
Ausführungsform
aus 2a wird der Speicher, der zur Speicherung von
Multimediabefehlen und Daten verwendet wird, als externer Speicher
für die
Multimediamaschine 112 gezeigt. Die Multimediamaschine 112 umfasst
eine oder mehrere DSP-Einheiten bzw. Maschinen 210. Jede
DSP-Maschine 210 ist mit dem Speicherbus 108,
dem Echtzeitdatencache-Speicher 126 und einem oder mehreren
I/O-Kanälen 220 verbunden.
Wie gezeigt, umfasst die Multimediamaschine 112 drei I/O-Kanäle 220a, 220b und 220c.
Der I/O-Kanal 220a ist vorzugsweise ein entsprechender Videokanal
und ist mit dem Video-Eingabe/Ausgabe- (I/O) Anschluss 172 verbunden.
Der I/O-Kanal 220b ist vorzugsweise ein entsprechender
Audio-Kanal und ist mit dem Audio-Eingabe/Ausgabe-Anschluss 174 verbunden.
Der I/O-Kanal 220c ist mit dem Kommunikationseingabe/ausgabe-Anchluss 176 verbunden.
In einer weiteren Ausführungsform
ist jede DSP-Maschine 210 einer speziellen Multimediafunktion
zugeordnet (beispielsweise Video, Audio, oder Kommunikation).
-
Während der
Initialisierung des Computersystems wird ein Teil des Speicheradressenraumes 180 in
dem Hauptspeicher 110 der Multimediamaschine 112 zugeordnet,
wobei dieser Raum als Multimediaadressenraum 182 bezeichnet
wird. In einer Ausführungsform
kann die Multimediamaschine 112 zusätzlich Adressenraum anfordern,
wenn der in dem Hauptspeicher 110 zugeordnete Multimediaadressenraum 182 nicht
ausreichend ist. Die Funktionsweise des Hauptspeichers 110 in
dieser Weise besitzt den Vorteil, dass die Multimediamaschine 112 lediglich
die erforderliche Menge an Speicherplatz verwendet. Speicherplatz,
der nicht der Multimediamaschine 112 zugeordnet ist, ist
für andere
Anwendungen verfügbar.
-
Während des
Betriebs der Multimediamaschine 112 überträgt und/oder erzeugt die CPU 102 Multimediabefehle
und Daten, bildet separate Multimediabefehls- und Datenelemente
und schreibt die Multimediabefehls- und Datenelemente in den Multimediaadressenraum 182 in
dem Hauptspeicher 110. Das Multimediabefehlselement enthält Multimediabefehle,
und das Multimediadatenelement enthält Multimediadaten. Wenn die
CPU Multimediabefehle und Daten erzeugt oder austauscht, kann die
CPU 102 auf den Echtzeitdatencache-Speicher 126 zugreifen,
der Multimediadaten enthält,
die von einer externen Quelle (d. h. einer peripheren Einrichtung, die
mit dem Erweiterungsbus 120 oder 152 verbunden
ist) erzeugt wurden. Die CPU 102 kann multimediaabhängige Operationen
(beispielsweise Bildskalierung oder Drehung) an den Multimediadaten
aus dem Echtzeitdatencache-Speicher 126 heraus ausführen, wodurch
zusätzliche
Multimediadaten erzeugt werden. Die CPU 102 schreibt Multimediabefehls- und Datenelemente
in den Multimediaadressenraum 182 zusammen mit Informationen über die Struktur
der Elemente. Die Information über
die Struktur der Elemente umfasst die Adressenoffsetwerte der ersten
Speicherstellen der Multimediabefehls- und Datenelemente innerhalb
des Multimediaadressenraumes 182. Die CPU 102 schreibt
die Information über
die Struktur der Elemente in Speicherplätze an vorbestimmten Adressenoffsetwerten
in Bezug auf den ersten Speicherplatz des Multimediaadressenraumes
(d. h. die Basisadresse des Multimediaadressenraumes). Unter Anwendung
der Basisadresse des Multimediaadressenraumes und der Elementadressenoffsetinformation
ruft die Multimediamaschine 112 Multimediabefehle- und Daten aus dem
Hauptspeicher ab.
-
Blockansicht der Multimediaeinheit
bzw. Maschine
-
Während des
Betriebs der Multimediamaschine 112 erhält jede DSP-Maschine 210 Multimediabefehle
von dem Hauptspeicher 110 und nach Bedarf Daten von dem
Hauptspeicher 110 und/oder dem Echtzeitdatencache-Speicher 126.
Jede DSP-Maschine 210 führt Multimediabefehle
aus, erzeugt Multimediaausgangssignale und leitet die Multimediaausgangssignale
zu einem geeigneten Ausgangsanschluss über einen geeigneten I/O-Kanal.
In einer Ausführungsform
werden die Video- und Audio-I/O-Kanäle 220a und 220b miteinander
synchronisiert, um eine Synchronisation von Audiodaten und Videodaten
während
Multimediarepräsentationen
sicherzustellen. Die Multimediamaschine 112 kann Befehle
in der ausgelesenen Reihenfolge ausführen, oder die Multimediamaschine 112 kann
Multimedianbefehle nach Priorität
ausführen.
Beispielsweise können
Befehle, die mit Video- und Audiokomponenten einer Multimediapräsentation
verknüpft
sind, eine höhere
Priorität
für die
Ausführung
erfordern als Befehle, die mit Telefonanwendungen verknüpft sind.
-
In
einer bevorzugten Ausführungsform
ist eine der einen oder mehreren DSP-Maschinen 210 ausgebildet,
Video- und Graphikfunktionen (beispielsweise Polygonerzeugung und
Texturabbildung) und Audiofunktionen (beispielsweise MIDI- und Signaltabellensynthese)
auszuführen.
Eine derartige DSP-Maschine kann einen oder mehrere ROM's enthalten, die
Mikrocodierung entsprechend den Video- und Audioverarbeitungsanweisungen
oder Befehlen enthalten. Die DSP-Maschine 210 kann ferner
Kommunikationsfunktionen ausführen,
etwa eine ISDN-Verbindung oder eine Modemfunktion.
-
2b – alternative
Ausführungsformen
der Multimediamaschine
-
2b ist
eine Blockansicht der Multimediamaschine 112 gemäß einer
zweiten Ausführungsform.
Die Multimediamaschine 112 umfasst eine Speichersteuerung 162,
die mit dem Speicherbus 108, dem Echtzeitdatencache-Speicher 126 und
einem Multimediaspeicher 160 verbunden ist. Jede DSP-Maschine 210 ist
mit einem oder mehreren I/O-Kanälen 220 in
der zuvor beschriebenen Weise verbunden. Die Speichersteuerung 162 steuert
den Betrieb des Multimediaspeichers 160 und erhält Multimediabefehle
und Daten für
den Speicher 160. Die Speichersteuerung 162 erhält Multimediabefehle
aus dem Multimediabefehlselement in dem Multimediaadressenraum 182 des
Hauptspeichers 110. Die Speichersteuerung 162 erhält Multimediadaten
von dem Multimediadatenelement in dem Multimediaadressenraum 182 und/oder
dem Echtzeitdatencache-Speicher 126.
-
Der
Multimediaspeicher 160 kann einen Datencache-Speicher aufweisen,
der Multimediadaten enthält,
von denen man annimmt, dass sie in der näheren Zukunft wieder benötigt werden.
Der Multimediaspeicher 160 kann ferner eine Multimediabefehlswarteschlange
enthalten, und die Speichersteuerung 162 kann einen Vorabholmechanismus
enthalten, um die Multimediabefehlswartschlange gefüllt zu halten. Des
weiteren kann der Multimediaspeicher 160 in zwei oder mehrere
separate Adressenräume
oder Puffer unterteilt werden, wobei ein Adressenraum oder Puffer
für jede
DSP-Maschine 210 vorgesehen ist. Jede DSP-Maschine 210 kann
somit auf Befehle und Daten aus dem zugeordneten Adressenraum oder
Puffer zugreifen.
-
In
der Ausführungsform
aus 2b ist der Multimediaspeicher 160 ein
Speicher mit dualem Port bzw. Anschluss. Ein erster Anschluss des
Multimediaspeichers 160 ist mit der Speichersteuerung 162 verbunden,
und ein zweiter Anschluss des Multimediaspeichers 160 ist
mit der einen oder den mehreren DSP-Maschinen 210 verbunden.
Der Multimediaspeicher 160 umfasst varzugsweise einen Hochgeschwindigkeitsspeicher
mit wahlfreiem Zugriff mit Dualport (DRAM), und die Speichersteuerung 162 enthält vorzugsweise
eine Speichersteuerung für
Dualport-DRAM-Speicher.
-
Während des
Betriebs der Multimediamaschine 112 erhält jede DSP-Maschine 210 Multimediabefehle
und Daten aus dem Multimediaspeicher 160. Jede DSP-Maschine 210 führt Multimediabefehle
aus, erzeugt Multimediaausgangssignale und liefert die Multimediaausgangssignale
zu einem geeigneten Ausgangsanschluss über einen geeigneten I/O-Kanal,
wie dies zuvor beschrieben ist.
-
2c – alternative
Ausführungsform
der Multimediamaschine
-
2c ist
eine Blockansicht der Multimediamaschine 112, die eine
dritte Ausführungsform
darstellt. Eine Direktspeicherzugriffs- (DMA) Steuerung 190 ist
zwischen der Speichersteuerung 162 und dem Speicherbus 108 angeschlossen.
Die Speichersteuerung 162 erhält Multimediabefehle und Daten, die
in dem Hauptspeicher 110 gespeichert sind, über die
DMA-Steuerung 190. Die DMA-Steuerung 190 überträgt eine
große
Anzahl an Multimediabefehlen und Daten, die in aufeinanderfolgenden
Speicherplätzen
gespeichert sind (d. h. Blöcke
aus Multimediabefehlen und Daten), die innerhalb des Multimediaadressenraumes 182 des
Hauptspeichers 110 angeordnet sind. Eine Übertragung
einer kleineren Anzahl aus größeren Blöcken an
Befehlen und Daten kann effizienter ausgeführt werden, als das Übertragen
einer größeren Anzahl
an kleineren Blöcken.
Die Speichersteuerung 162 kann ferner Multimediadaten aus dem
Echtzeitdatencache-Speicher 126 erhalten. Der Multimediaspeicher 160 ist
in der zuvor beschriebenen Weise ausgestaltet, und jede DSP-Maschine 210 funktioniert
in der oben beschriebenen Weise.
-
3 und 4 – alternative
Ausführungsform
des Computersystems
-
3 und 4 zeigen
eine zweite Ausführungsform
eines Computersystems mit der Multimediamaschine 112, die
direkt mit dem Echtzeitdatencache-Speicher 126 verbunden
ist, die jedoch nicht direkt mit dem Hauptspeicher 110 verbunden
ist. 3 ist eine Blockansicht eines Computersystems der
zweiten Ausführungsform.
Die Multimediamaschine 112 ist mit einem Video- (I/O) Eingabe/Ausgabe-Anschluss 172,
einem Audio-Eingabe/Ausgabe-Anschluss 174 und einem Kommunikations-Eingabe/Ausgabe-Anschluss 176 verbunden.
Ein Echtzeitdatencache-Speicher 126 ist zwischen der Multimediamaschine 112 und
dem Chipsatz 106 angeschlossen. Der Echtzeitdatencache-Speicher 126 ermöglicht es,
dass Multimediadaten von einer externen Quelle in einer Speicherstelle,
die nicht dem Hauptspeicher 110 entspricht, gespeichert
werden, und ermöglicht
ferner, dass diese Multimediadaten von der CPU 102 und
der Multimediamaschine 112 gemeinsam benutzt werden. In
dieser Ausführungsform
enthält
der Echtzeitdatencache-Speicher 126 ferner Multimediabefehl
und Daten, die von dem Hauptspeicher 110 erhalten werden.
Die Multimediamaschine 112 enthält Multimediabefehle und Daten aus
dem Echtzeitdatencache-Speicher 126 nach Bedarf. Wenn die
erforderliche Information nicht in dem mit Echtzeitdatencache-Speicher 126 vorhanden
ist (d. h. es tritt eine Anforderung für Daten auf, die nicht in dem
Cache-Speicher sind), erhält
der Echtzeitdatencache-Speicher 126 die Information aus
dem Hauptspeicher 110 über
den Chipsatz 106. Alle anderen Computersystemkomponenten,
die in 3 gezeigt sind, arbeiten in der zuvor beschriebenen
Weise.
-
4 ist
eine Blockansicht einer Ausführungsform
der Multimediamaschine 112 in dem Computersystem aus 3.
Der zur Speicherung von Multimediabefehlen und Daten verwendete
Speicher ist ein externer Speicher für die Multimediamaschine 112.
Die Multimediamaschine 112 umfasst eine oder mehrere DSP-Maschinen 222.
Jede DSP-Maschine 222 ist
mit dem Echtzeitdatencache-Speicher 126 verbunden und mit
einem oder mehreren I/O-Kanälen 220 verbunden.
Wie gezeigt, enthält
die Multimediamaschine 112 drei I/O-Kanäle 220a, 220b und 220c,
wie dies zuvor beschrieben ist. Während des Betriebs der Multimediamaschine 112 erhält jede DSP-Maschine 222 nach
Bedarf Multimediabefehle und Daten aus dem Echtzeitdatencache-Speicher 126.
Jede DSP-Maschine 222 führt
Multimediabefehle aus, erzeugt Multimediaausgangssignale und leitet die
Multimediaausgangssignale zu einem geeigneten Ausgangsanschluss über einen
geeigneten I/O-Kanal. Die Multimediamaschine 112 führt Befehle
in der abgerufenen Reihenfolge aus, oder die Multimediamaschine 112 kann
Multimediabefehle entsprechend einer Priorität verarbeiten. Befehle, die
mit Video- und Audiokomponenten einer Multimediarepräsentation
verknüpft
sind, können
eine höhere
Priorität
bei der Verarbeitung erfordern als Befehle, die mit einer Telefonanwendung
verknüpft
sind. In einer bevorzugten Ausführungsform
ist eine der einen oder der mehreren DSP-Maschinen 222 ausgebildet,
Video- und Graphikfunktionen (beispielsweise Polygonerzeugung und
Texturabbildung) und Audiofunktionen (beispielsweise MIDI- und Signaltabellesynthese)
auszuführen.
Eine derartige DSP-Maschine kann eine oder mehrere ROM's enthalten, die
den Video- und Audioverarbeitungsinstruktionen oder Befehlen entsprechende
Mikrocodierungen enthalten. Die DSP-Maschine kann ferner Kommunikationsfunktionen,
etwa eine ISDN-Verbindung oder Modemfunktion, ausführen.
-
Funktionsweise
des Computersystems
-
5 ist
ein Flussdiagramm des Verfahrens zum Ausführen von Echtzeitmultimediaanwendungen
in einem Computersystem mit einer zugeordneten Multimediamaschine 112,
die mit dem Echtzeitdatencache-Speicher 126 verbunden ist.
Während eines
ersten Schrittes 302 erzeugt die CPU 102 Multimediabefehle
und Daten. Beim Erzeugen von Multimediabefehlen und Daten kann die
CPU 102 vorteilhafterweise auf den Echtzeitdatencache-Speicher zugreifen,
der die von einer externen Quelle (d. h. einer peripheren Einrichtung,
die mit einem lokalen Erweiterungsbus oder einem anderen Erweiterungsbus verbunden
ist) erzeugt wurden. Die CPU kann multimediabezogene Operationen
(beispielweise Bildskalierung oder Drehung) an Multimediadaten aus
dem Echtzeitdatencache-Speicher 126 ausführen, wodurch
zusätzliche
Multimediadaten erzeugt werden. Die CPU 102 bildet separate
Multimediabefehls- und Datenelemente während des Schritts 304.
Das Multimediabefehlselement enthält Multimediabefehle, und das
Multimediadatenelement enthält
Multimediadaten. Während
des Schritts 306 schreibt die CPU 102 die Multimediabefehls-
und Datenelemente in einen Multimediaadressenraum in dem Hauptspeicher
zusammen mit entsprechender Information über die Struktur des Elements.
-
Die
Multimediamaschine 112 erhält Befehle und Daten aus dem
Hauptspeicher 110 und/oder dem Echtzeitdatencache-Speicher 126 während des Schritts 308.
Die Information über
die Struktur der Elemente, die von der CPU 102 bereitgestellt
wird, wird verwendet, wenn Befehle und Daten aus dem Hauptspeicher
abgerufen werden. In Ausführungsformen,
in denen die Multimediamaschine 112 nicht direkt mit dem
Hauptspeicher 110 verbunden ist, erhält der Echtzeitdatencache-Speicher 126 Multimediabefehle
und Daten aus dem Hauptspeicher 110 über den Chipsatz 106.
Die Multimediamaschine 112 kann die abgerufenen Befehle
mit einer Priorität
belegen oder nicht. Während
des Schritts 310 führt
die Multimediamaschine 112 die Multimediabefehle unter
Anwendung der Multimediadaten aus. Wenn die Multimediamaschine 112 die
Multimediabefehle ausführt, kann
die Multimediamaschine 112 auch Multimediadaten aus dem
Echtzeitendatencache-Speicher 126 nach Bedarf erhalten.
Als Ergebnis des Abarbeitens des Befehls erzeugt die Multimediamaschine 112 Multimediaausgangssignale
während
des Schritts 312. Die Multimediamaschine 112 liefert
während des
Schritts 314 die Multimediaausgangssignale zu geeigneten
Ausgangsanschlüssen.
-
Schlussfolgerung
-
Daher
stellt die vorliegende Erfindung eine neuartige Computersystemarchitektur
bereit, die das Leistungsverhalten während Multimediaanwendungen
erhöht.
Eine zugeordnete Multimediamaschine bzw. Einheit ist direkt mit
einem Echtzeitdatencache-Speicher verbunden. Der Echtzeitdatencache-Speicher
ermöglicht
es, dass Multimediadaten von einer externen Quelle (beispielsweise
einem Videodecodierer oder einer Videoaufnahmeinrichtung) in einem
Speicherplatz abgelegt werden, der nicht der Hauptspeicher ist,
und ermöglicht
ferner, dass diese Multimediadaten von der CPU und der Multimediamaschine
gemeinsam benutzt werden. Die CPU kann auf den Echzeitdatencache-Speicher
zugreifen, wenn sie Multimediabefehle und Daten erzeugt. Die CPU
schreibt Multimediabefehle und Daten zusammen mit Informationen,
wo die Befehle und Daten in dem Hauptspeicher angeordnet sind (d.
h. eine Information hinsichtlich der Lade der Elemente), in den
Hauptspeicher. Die Multimediamaschine erhält nach Bedarf Daten aus dem
Hauptspeicher und/oder dem Echtzeitdatencache-Speicher. Der Echtzeitdatencache-Speicher
reduziert die Zugriffszeit für
benötigte
Multimediadaten sowie die Auslastung des Hauptspeichers. Lediglich
der Anteil des Hauptspeichers, der tatsächlich von den Multimediaanwendungen
benötigt
wird, wird reserviert, wodurch möglichst
viel Speicherplatz für
andere Anwendungen frei bleibt.
-
Obwohl
das System und das Verfahren der vorliegenden Erfindung in Verbindung
mit der bevorzugten Ausführungsform
beschrieben sind, ist nicht beabsichtigt, die Erfindung auf die
hierin dargestellte spezielle Form einzuschränken, sondern es ist vielmehr
beabsichtigt, derartige Alternativen, Modifizierungen und Äquivalente
abzudecken, wie sie begründet
innerhalb des Grundgedankens und Schutzbereichs der Erfindung, wie
sie durch die angefügten Patentansprüche definiert
ist, enthalten sind.