-
Diese
Erfindung bezieht sich allgemein auf Mikroprozessoren und insbesondere
auf Verbesserungen in Speicherschaltungen und -systemen mit gemeinsamem
Zugriff sowie bei Herstellungsverfahren für Speicher mit gemeinsamem
Zugriff.
-
Mikroprozessoren
sind Universalprozessoren, die hohe Befehlsdurchsätze bereitstellen,
um darauf ablaufende Software auszuführen, und können je nach den besonderen
betroffenen Software-Anwendungen einen weiten Bereich von Verarbeitungsanforderungen
haben. Häufig
ist einem Prozessor eine Direktspeicherzugriffs-Steuereinheit (DMA-Steuereinheit)
zugeordnet, um die Belastung der Übertragung von Datenblöcken von
einem Speicher oder von einem Peripheriebetriebsmittel zu einem
anderen zu übernehmen
und dadurch die Leistungsfähigkeit
des Prozessors zu verbessern.
-
Es
sind viele verschiedene Typen von Prozessoren bekannt, von denen
Mikroprozessoren nur ein Beispiel sind. Zum Beispiel werden, insbesondere
für spezifische
Anwendungen wie etwa Mobilverarbeitungsanwendungen, umfassend digitale
Signalprozessoren (DSPs) verwendet. DSPs sind üblicherweise so konfiguriert,
dass sie die Leistungsfähigkeit
der betroffenen Anwendungen optimieren, wobei sie spezialisiertere
Verarbeitungseinheiten und Befehlssätze nutzen, um dies zu erreichen.
Insbesondere, aber nicht ausschließlich, in Anwendungen wie etwa
der Mobiltelekommunikation ist es erwünscht, eine ständig wachsende
DSP-Leistungsfähigkeit
bereitzustellen, während
der Leistungsverbrauch so niedrig wie möglich gehalten wird.
-
Um
die Leistungsfähigkeit
eines digitalen Systems weiter zu verbessern, können zwei oder mehr Prozessoren
miteinander verbunden sein. Zum Beispiel kann ein DSP in einem digitalen
System mit einem Universalprozessor verbunden sein. Der DSP führt rechenaufwändige Signalverarbeitungsalgorithmen
aus, während
der Universalprozessor den Gesamtsteuerablauf managt. Die zwei Prozessoren
kommunizieren über
einen gemeinsam genutzten Speicher miteinander und übertragen über ihn
Daten für
die Signalverarbeitung. Eine solche Anordnung ist in der als WO99/26154
veröffentlichten
Patentanmeldung gezeigt, in der der ausschließliche Speicherzugriff von
einem Prozessor zu einem anderen geändert wird, wenn sich die relative
Priorität ändert.
-
Die
vorliegende Erfindung schafft eine Vorrichtung und ein Verfahren,
wie sie in den Ansprüchen
dargelegt sind.
-
Die
vorliegende Erfindung offenbart ein digitales System und ein Verfahren
zu dessen Betreiben, um die Leistungsfähigkeit von Prozessoren wie
etwa z.B., jedoch nicht ausschließlich, digitalen Signalprozessoren zu
verbessern.
-
Dementsprechend
wird ein digitales System mit einer Speicherschaltung geschaffen,
auf die durch mehrere Anforderungsschaltungen zugegriffen werden
kann. Mit den Anforderungsschaltungen ist eine Planungsschaltung
verbunden, die so betreibbar ist, dass sie Speicherzugriffe auf
die Speicherschaltung sequentiell plant. Mit einer der Anforderungsschaltungen
und mit dem Ausgang der Planungsschaltung ist eine Auswahlschaltung
verbunden. Es ist eine Prioritätsschaltungsanordnung
zum Vergleichen einer ersten Priorität für den ersten Anforderer und
einer zweiten Priorität
für den
zweiten Anforderer bereitgestellt. Die Prioritätsschaltungsanordnung ist steuerbar
mit der Auswahlschaltung verbunden, derart, dass sowohl die erste
Anforderungsschaltung als auch die zweite Anforderungsschaltung
sequentiell auf die Speicherschaltung zugreifen können, wenn
die Prioritätsschaltungsanordnung
einen ersten relativen Prioritätszustand
zwischen der ersten Priorität
und der zweiten Priorität
angibt, und derart, dass die erste Anforderungsschaltung einen ausschließlichen
Zugriff auf die Speicherschaltung hat, wenn die Prioritätsschaltungsanordnung
einen zweiten relativen Prioritätszustand
angibt.
-
Außerdem können ein
erstes Prioritätsregister
zum Halten der ersten Priorität
für die
erste Anforderungsschaltung und ein zweites Prioritätsregister
zum Halten der zweiten Priorität
für den
zweiten Anforderer vorgesehen sein. Das erste Prioritätsregister
und das zweite Prioritätsregister
können
in Reaktion auf eine Schreitransaktion durch wenigstens eine der
Anforderungsschaltungen geändert
werden.
-
Außerdem kann
eine Taktschaltung bereitgestellt sein, die mit dem zweiten Anforderer
und mit der Speicherschaltung verbunden ist. Wenn die Prioritätsschaltungsanordnung
angibt, dass der erste relative Prioritätszustand vorliegt, arbeitet
die Speicherschaltung synchron mit der Taktschaltung. Wenn die Prioritätsschaltungsanordnung
den zweiten relativen Prioritätszustand
angibt, arbeitet die Speicherschaltung asynchron.
-
Außerdem wird
hier ein Verfahren zum Betreiben eines digitalen Systems mit einer
Speicherschaltung offenbart, die von mehreren Anforderungsschaltungen,
wovon jede ein Prioritätsniveau
hat, gemeinsam genutzt wird, wobei das Verfahren die folgenden Schritte
umfasst: (a) Setzen der Prioritätsniveaus,
damit sie eine erste Gruppe relativer Werte haben, (b) gemeinsames
Zugreifen auf die Speicherschaltung zwischen den mehreren Anforderungsschaltungen,
wenn die Prioritätsniveaus
die erste Gruppe von relativen Werten haben, (c) Setzen der Prioritätsniveaus,
damit sie eine zweite Gruppe relativer Werte haben, und (d) Beschränken des Zugriffs
auf die Speicherschaltung lediglich auf den Ersten der mehreren
Anforderer, wenn die Prioritätsniveaus
die zweite Gruppe von relativen Werten haben, derart, dass der erste
Anforderer während
eines beschränkten
Zugriffs einen schnelleren Speicherzugriff hat.
-
Es
werden nun besondere Ausführungsformen
in Übereinstimmung
mit der Erfindung lediglich beispielhaft und mit Bezug auf die beigefügte Zeichnung
beschrieben, in der:
-
1 ein
Blockschaltplan von zwei Prozessoren ist, die einen Speicherblock
gemeinsam nutzen, wobei einer der Prozessoren die Planungsschaltungsanordnung
in einer Betriebsart hoher Priorität umgehen kann;
-
2 ein
Blockschaltplan eines alternativen digitalen Systems zu dem in 1 veranschaulichten
ist;
-
3 ein
ausführlicherer
Blockschaltplan einer Megazelle aus 2 ist;
-
4 ein ausführlicherer Blockschaltplan
der DMA-Steuereinheit aus 3 ist;
-
5 ein
Blockschaltplan ist, der Abschnitte der Host-Port-Schnittstelle
der DMA-Steuereinheit zeigt;
-
6 ein
Zeitablaufplan ist, der einen Speicherzugriff in der SAM-Betriebsart
veranschaulicht;
-
7 ein
Zeitablaufplan ist, der einen Speicherzugriff in der HOM-Beriebsart
veranschaulicht;
-
8 eine
schematische Darstellung einer integrierten Schaltung ist, die das
digitale System aus 1 enthält; und
-
9 eine
beispielhafte Realisierung eines Beispiels einer solchen integrierten
Schaltung in einer Mobiltelekommunikationsvorrichtung wie etwa in
einem Mobiltelephon veranschaulicht.
-
Soweit
nichts anderes angegeben ist, beziehen sich entsprechende Bezugszeichen
und Symbole in den verschiedenen Figuren und Tabellen auf entsprechende
Teile. Zur Bezeichnung gleicher Teile sind gleiche Bezugszeichen
verwendet, wobei sich die Figuren, sofern nichts anderes angegeben
ist, auf das digitale System aus 3 beziehen.
-
Obgleich
Ausführungsformen
der Erfindung besondere Anwendung in digitalen Signalprozessoren (DSPs)
finden, die z.B. in einer anwendungsspezifischen integrierten Schaltung
(ASIC) realisiert sind, können diese
Ausführungsformen
auch in anderen Formen von Prozessoren Anwendung finden. Eine ASIC
kann eine oder mehrere Megazellen enthalten, die jeweils kundenspezifisch
entworfene Funktionsschaltungen enthalten, die mit im Voraus entworfenen
Funktionsschaltungen, die durch eine Entwurfsbibliothek bereitgestellt
werden, kombiniert werden.
-
1 ist
ein Blockschaltplan eines digitalen Systems 1, das einen
Host-Prozessor 10 und einen DSP 20 aufweist, die
einen Speicherblock 60 gemeinsam nutzen. Ein Planungsblock 40 empfängt Übertragungsanforderungen
von einem mit dem Bus 11 verbundenen Speicherzugriffsknoten
im Host-Prozessor 10 und überträgt Anforderungen von einem
mit dem Bus 21 verbundenen Speicherzugriffsknoten im DSP 20.
Der Planer 40 verschachtelt diese Anforderungen sequentiell
und übergibt
sie über
einen mit dem Bus 41 verbundenen Anforderungsausgangsknoten
an den Speicherblock 60. Der DSP 20, der Planer 40 und
der Speicher 60 arbeiten synchron zu einem durch die Taktschaltung 22 bereitgestellten
DSP-Taktsignal. Der Host 10 arbeitet anhand eines durch
die Taktschaltung 12 bereitgestellten Host-Taktsignals.
Die Planungsschaltung 40 enthält Synchronisationsschaltungen,
um die Speicherzugriffe durch den Host mit dem DSP-Taktsignal zu
synchronisieren.
-
Zugriffe
durch den Host-Prozessor können
entweder als Zugriffe mit niedriger Priorität oder als Zugriffe mit hoher
Priorität
klassifiziert werden. Zugriffe durch den DSP-Prozessor können gleichfalls
entweder als Zugriffe mit niedriger Priorität oder als Zugriffe mit hoher
Priorität
klassifiziert werden. Die Prioritätsschaltungsanordnung 54 empfängt über das
Signal 55 Prioritätsindikatoren
von dem Host und über
das Signal 56 Prioritätsindikatoren
von dem DSP und vergleicht die Priorität anstehender Anforderungen.
Wenn eine Zugriffsanforderung durch den Host 10 eine höhere Priorität als eine
anstehende Zugriffsanforderung durch den DSP 20 hat, umgeht
der Zugriff durch den Host die Synchronisationsschaltungsanordnung
innerhalb des Planers 40, der die Zeitgebung mit der DSP-Zeitgebung
synchronisiert. Der Auswahl-MUX 50 empfängt an einem Eingang den Bus 11 und
an einem zweiten Eingang den Bus 41 und stellt über einen
mit dem Bus 51 verbundenen Ausgangsknoten einen Zugriff
auf die Speicherschaltung 60 bereit. Der Auswahl-MUX 50 wird
durch ein Auswahlsignal 57 von der Prioritätsschaltung 54 gesteuert.
Der Bus 11 wird ausgewählt,
wenn die Priorität
des Hosts höher
als die Priorität
des DSP ist. Der Bus 41 wird ausgewählt, wenn die Priorität des Hosts
die gleiche oder niedriger als die Priorität des DSP ist. In der Betriebsart
hoher Priorität
wird durch den Bus 11 in einer Weise, die den Planer 40 umgeht,
direkt auf die Speicherschaltung 60 zugegriffen. Wenn durch
den Host 10 in der Betriebsart hoher Priorität direkt
auf die Speicherschaltung 60 zugegriffen wird, arbeitet
die Speicherschaltung 60 in Reaktion auf das Signal 57 in
einer asynchronen Betriebsart, sodass der Host-Zugriff nicht mit dem
DSP-Signal synchronisiert zu werden braucht. Da keine Synchronisations-
und Planungsverzögerung
zugezogen wird, sind die Host-Zugriffe in der Betriebsart hoher
Priorität
somit schneller.
-
In
einer alternativen Ausführungsform
können
der Host und der DSP beide in Bezug auf dasselbe Taktsignal arbeiten.
In einer solchen Ausführungsform
ist keine Synchronisation beteiligt, wobei aber ein Host-Zugriff
mit hoher Priorität
eine durch den Planer 40 auferlegte Planungsverzögerung weiter
umgeht.
-
2 ist
ein Blockschaltplan eines alternativen digitalen Systems zu dem
in 1 veranschaulichten. Eine Megazelle 100 enthält eine
CPU, eine DMA-Steu ereinheit und Speicherschaltungen und wird später ausführlicher
beschrieben. Mit der Megazelle 100 ist über eine verbesserte Host-Port-Schnittstelle
(EHPI) 112 ein Host-Prozessor 110 verbunden. Die
EHPI 112 stellt eine Multiplexierung der Host-Adresse und
des Datenbusses 111 bereit, um an die durch die Megazelle 100 bereitgestellte
Host-Port-Schnittstelle 115 anzupassen. Durch den Host-Prozessor 110 oder
durch die CPU innerhalb der Megazelle 100 kann auf den
Speicher 122, auf die Universalperipheriegeräte 132 und
auf die dedizierten Peripheriegeräte 134 zugegriffen
werden. Eine Steuerschaltungsanordung 170 stellt Taktsignale
für die
Schaltungsanordnung innerhalb der Megazelle 100 bereit.
Die MCU 110 enthält
ihre eigene Zeitgeberschaltungsanordnung, die erfordert, dass Zugriffe
durch die MCU 110 auf Betriebsmittel, die durch die Megazelle 100 gesteuert
werden, mit der Zeitbasis der Megazelle 100 synchronisiert
werden müssen.
-
Ein
JTAG-Prüfport 160 enthält Hardware-Erweiterungen
für fortgeschrittene
Austestmerkmale. Diese helfen bei der Anwenderentwicklung des Anwendungssystems
(Software und die Hardware) lediglich unter Nutzung der JTAG-Schnittstelle,
eines Prüfzugriffs-Ports
und der durch die Norm IEEE 1149.1 definierten Boundary-Scan-Architektur
mit erweiterten Betriebsartverbesserungen, wie sie im US-Patent
5.828.824 beschrieben sind. Eine Emulationsschaltungsanordnung 150 stellt
eine Austestprogrammsteuerung und Ausführungsverfolgungseinrichtungen
bereit.
-
3 ist
ein ausführlicherer
Blockschaltplan der Megazelle 100. Die CPU 200 ist
ein digitaler Signalprozessor (DSP). Die CPU 200 greift über eine
Speicherschnittstellen-Schaltungsanordnung 202 auf die
Speicherschaltungen 220, 222 und 224 und
auf die EMIF 120 zu. Über
die RHEA-Brücke 230 zum
RHEA-Bus 130 greift die CPU 200 auf weitere Betriebsmittel
zu. Die DMA-Steuereinheit 210 ist eine Mehrkanal-DMA-Steuereinheit
mit getrennten Kanal- und Portsteuereinheiten, wobei jeder Port
eine lokale Planungsschaltungsanordnung aufweist. Der DMA 210 kann
zum Übertragen
von Daten zwischen verschiedenen Quellen und Zielen innerhalb des
digitalen Systems 10 wie etwa dem Einzelzugrifts-RAM 220,
dem Doppelzugriffs-RAM 222, dem erweiterten Speicher 122 über eine
externe Speicherschnittstelle 120 und Peripheriegeräten am Betriebsmittelbus
(RHEA) 130 über
die RHEA-Brücke 230 programmiert
werden. Die MCU 110 kann auf diese Betriebsmittel über die
Host-Port-Schnittstelle (HPI) 115, die mit der DMA- Steuereinheit 210 verbunden
ist, ebenfalls zugreifen. Der Weg zwischen dem HPI-Port und dem
Speicher ist ein DMA-Kanal.
-
Die
Speicherschaltung 220 ist ein 128 k × 16-Einzelzugriffs-RAM (SARAM),
der sechzehn 32 kByte-Module umfasst. Der DMA 210 kann über einen
16-Bit-DMA-Bus auf
den SARAM zugreifen. Der DMA-Bus-Zugriff (R/W) kann in der SAM-Betriebsart
(Betriebsart mit gemeinsamen Zugriff) oder in der HOM-Betriebsart
(Nur-Host-Betriebsart) erfolgen. Ein Zugriff durch die MCU 110 in
der HOM-Betriebsart umgeht die Synchronisationsschaltungsanordnung
innerhalb des DMA 210, die die MCU-Zeitgebung mit der Zeitgebung
der Megazelle 100 synchronisiert. Es kann ein HOM-Größenregister
bereitgestellt sein, sodass die Größe des HOM-Speichers durch
den Host-Prozessor spezifiziert werden kann.
-
Das
Prioritätsschema
zwischen der CPU 200 und dem DMA 210 ist programmierbar.
Die Prioritätsschaltungsanordnung
ist in dem SARAM realisiert, während
sich das Steuerregister in dem DMA-EA-Raum befindet, auf den über den
RHEA-Bus-Zweig 130a zugegriffen werden kann.
-
Die
Speicherschaltung 222 ist ein 32 k × 16-Doppelzugriffs-RAM (DARAM),
der vier 16 kByte-Module umfasst. Die CPU 200 kann in einem
Zyklus zwei Zugriffe auf ein DARAM-Speichermodul ausführen; z.B.
einen Einzel-Lesevorgang und einen Einzel-Schreibvorgang oder einen
Lang-Lesevorgang und einen Lang-Schreibvorgang, einen Doppel-Lesevorgang
und einen Einzel-Schreibvorgang usw. Die den verschiedenen Zugriffen
zugewiesenen Prioritäten
werden durch den DARAM behandelt. Das Prioritätsschema zwischen CPU und DMA
ist programmierbar. Die Prioritätsschaltungsanordnung
ist in dem DARAM realisiert, während sich
das Steuerregister in dem DMA-EA-Raum befindet, auf den über den
RHEA-Bus zugegriffen werden kann.
-
Alternative
Ausführungsformen
des hier offenbarten Systems und Verfahrens können andere Konfigurationen
des Speichers und der Peripheriegeräte haben.
-
3 zeigt
lediglich jene Abschnitte der Megazelle 100, die für das Verständnis einer
besonderen Ausführungsform
der vorliegenden Erfindung relevant sind. Einzelheiten der allgemeinen
Konstruktion für DSPs
sind gut bekannt und leicht an anderer Stelle zu finden. Zum Beispiel
beschreibt das US-Patent 5.072.418, erteilt an Frederick Boutaud
u.a., ausführlich
einen DSP und ist hier durch Lite raturhinweis eingefügt. Das
US-Patent 5.329.471, erteilt an Gary Swoboda u.a., beschreibt ausführlich,
wie ein DSP zu prüfen und
zu emulieren ist, und ist hier durch Literaturhinweis eingefügt. Einzelheiten
von Abschnitten der DMA-Steuereinheit 210, die für eine Ausführungsform
der vorliegenden Erfindung relevant sind, sind im Folgenden ausreichend
ausführlich
erläutert,
um zu ermöglichen,
dass der Durchschnittsfachmann auf dem Gebiet der Mikroprozessoren
die Erfindung herstellen und verwenden kann.
-
Tabelle
1 fasst mehrere der in diesem Dokument durchgängigen Akronyme zusammen.
Tabelle
1 – Begriffserklärung
-
Die
DMA-Steuereinheit 210 überträgt ohne
Eingriff durch die CPU Daten zwischen Punkten in dem Speicherraum.
Der DMA ermöglicht,
dass im Hintergrund des CPU-Betriebs Verschiebungen von Daten zum und
vom internen Speicher, externen Speicher und Peripheriegeräten stattfinden.
Der DMA hat sechs unabhängig
programmierbare Kanäle,
die für
den DMA-Betrieb sechs verschiedene Kontexte zulassen, die in einer zeitmultiplexierten
Betriebsart (TDM-Betriebsart) ausgeführt werden.
-
Die
DMA-Architektur ist in Ports und Kanälen organisiert. Weiter anhand
von 3 besitzt jedes Betriebsmittel, auf das der DMA
zugreifen kann, seinen eigenen Port: den SARAM-Port 212a,
den DARAM-Port 212b, den EMIF-Port 212c und den
RHEA-Port 212d. Der HPI-Port 214 ist ein Spezialfall,
der später
diskutiert wird. Ein Port kann über
einen dedizierten Bus Lese- und Schreibzugriffe auf das Betriebsmittel
vornehmen, mit dem er verbunden ist.
-
Diese
DMA-Steuereinheit erfüllt
die Notwendigkeit eines Flusses mit hoher Rate und von Mehrkanalanwendungen
wie etwa Basisstationen drahtloser Telephone oder des Zellen-Handapparate-Datenverkehrs.
-
4 ist ein ausführlicher Blockschaltplan der
DMA-Steuereinheit aus 3. Ein Kanal ist aus einem Quellport,
aus einem FIFO und aus einem Zielport aufgebaut. In der vorliegenden
Ausführungsform
sind sechs Kanäle
verfügbar,
obgleich andere Ausführungsformen
alternative Anzahlen von Kanälen
haben können. Sechs
Kanalsteuereinheiten 310–315 steuern die sechs
Kanäle.
Alle sechs Kanäle
werden über
jeweilige Portmultiplexer 330–333 an jedem Port
multiplexiert. Jede Kanalsteuerung besitzt einen oder mehrere jeweilige FIFO(s).
Die FIFOs werden nicht von den Kanälen gemeinsam genutzt; jeder
Kanal besitzt seinen eigenen FIFO. Dies ermöglicht mehr Unabhängigkeit
zwischen den Übertragungen.
Eine DMA-Übertragung
im Kanal (n) erfolgt in zwei Schritten: der Quellport führt an einem
Quellbetriebsmittel einen Lesezugriff aus, erhält die Daten und legt sie in
den FIFO des Kanals (n); wenn die Daten in dem FIFO sind, wird der
Zielport aktiviert und führt
einen Schreibzugriff auf das Zielbetriebsmittel aus, um die Daten
zu schreiben. Jede Kanalsteuereinheit enthält eine getrennte Leseadresseneinheit
RAU(0–5)
und eine getrennte Schreibadresseneinheit WAU(0-5).
-
Alle
Ports arbeiten parallel. In dieser Ausführungsform gibt es vier Ports,
die mit den vier Datenablage-Betriebsmitteln verbunden sind, sodass
in demselben Taktzyklus vier aufeinander folgende Lese/Schreib-Zugriffe
vorgenommen werden können.
Um diese Zugriffsrate zu unterstützen,
werden die Adressenberechnung und die Verschachtelung in einem Pipelinesystem
verarbeitet. Die maximale Übertragungsrate für diese
Ausführungsform
mit vier Ports ist zwei Wörter
(zwei Lesevorgänge
und zwei Schreibvorgänge)
pro CPU-Zyklus. Dies wird erzielt, wenn Quellen und Ziele unabhängig sind.
Eine alternative Ausführungsform kann
eine größere Anzahl
von Ports mit einer dementsprechend höheren maximalen Übertragungsrate
haben.
-
Ein
Leseadressenbus RA enthält
sieben einzelne Busse, um eine Kanalleseadresse von jeder Leseadresseneinheit
RAU(0-5) und von dem HPI-Port zu jedem Porteingangs-MUX 330–333 parallel
zu übertragen.
Ein Schreibadressenbus WA enthält
sieben einzelne Busse, um eine Kanalschreibadresse von jeder Schreibadresseneinheit
WAU(0-5) und von dem HPI-Port zu jedem Porteingangs-MUX 330–333 parallel
zu übertragen.
Ein Datenausgabebus DO enthält
gleichfalls sieben einzelne Busse, um einen Datenausgangswert von
jedem FIFO(0-5) und von dem HPI-Port zu jedem Porteingangs-MUX 330–333 parallel
zu übertragen. Ein
Dateneingangsbus D1 enthält
vier einzelne Busse, um einen Dateneingangswert von jedem Port zu
jedem FIFO(0-5) und zu dem HPI-Port parallel zu übertragen.
-
Ein
DMA-Port sendet an seinen zugeordneten Speicher eine Anforderung
zum Lesen oder Schreiben eines Datenelements in diesem Speicher.
Eine Übertragung
eines Worts besteht aus einer Leseanforderung an einem Quellport
i, gefolgt von einer Schreibanforderung am Zielport j (wobei i gleich
j sein kann). Eine Anforderung ist durch ihren Typ (r für Lesen,
w für Schreiben)
und durch den Kanal, zu dem sie gehört, definiert.
-
Beispiel:
-
-
- ri
- ist eine Leseanforderung
im Kanal i
- wj
- ist eine Schreibanforderung
im Kanal j.
-
Jeder
Port besitzt seine eigene Verschachtelungseinrichtung 350–353,
um die Kanalmultiplexierung an dem zugeordneten Port zu steuern.
Die Verschachtelungseinrichtung empfängt von jedem Kanal Lese- und Schreibanforderungen,
berechnet, welches die nächste
Anforderung ist, die bedient werden muss, und löst eine Portsteuerungs-Zustandsmaschine
zum Bedienen dieser Anforderung aus.
-
Die
DMA-Steuereinheit 210 besitzt eine Anforderungszuweisungseinrichtung 340.
In irgendeinem gegebenen Taktzyklus kann es bis zu dreizehn anstehende
Anforderungen geben: sechs Leseanforderungen, sechs Schreibanforderungen
und eine HPI-Anforderung. Um die Kompliziertheit der Verschachtelungseinrichtung
zu verringern, kann eine Verschachtelungseinrichtung in der vorliegenden
Ausführungsform
maximal fünf gleichzeitige
Anforderungen zur selben Zeit verschachteln. Die Anforderungszuweisungseinrichtung 340 tastet die
DMA-Konfiguration und anstehende Anforderungssignale ab und wählt maximal
fünf Anforderungssignale aus,
um sie an jede Verschachtelungseinrichtung zur Verarbeitung zu senden.
In einer alternativen Ausführungsform
kann die Zuweisungseinrichtung in getrennte Abschnitte geteilt sein,
sodass jeder Port eine Zuweisungsschaltungsanordnung besitzt, die
innerhalb des Ports enthalten ist. In einer weiteren Ausführungsform kann
eine kompliziertere Verschachtelungseinrichtung alle Anforderungen,
die von allen Kanälen
geliefert werden, direkt empfangen und planen.
-
Jeder
Port besitzt einen zugeordneten Portsteuerblock 360–363.
Diese Blöcke
sind für
das Beginnen der Lese/Schreib-Zugriffe auf die Speicher und Peripheriegeräte verantwortlich.
Sie realisieren das Transaktionszugriffsprotokoll zwischen den Speichern
oder Peripheriegeräten
und dem DMA. Diese Protokolle sind für den SARAM und für den DARAM
dieselben. Das RHEA-Bus-Protokoll und das EMIF-Protokoll sind verschieden.
Somit ist jeder Port an den Typ des Betriebsmittels angepasst, mit
dem er verbunden ist.
-
Jede
Kanalsteuereinheit besitzt einen zugeordneten Prioritätsblock
PRIO(0-5). Die Funktion dieses Blocks ist es, ein Drei-Ebenen-Prioritätsschema
zu realisieren, das in dem DMA verfügbar ist: die höchste Priorität für die HPI,
eine hohe Priorität
für Kanäle und eine
niedrige Priorität
für Kanäle.
-
Jede
Kanalsteuereinheit besitzt einen zugeordneten Ereignissynchronisationsblock
EVENT(0-5). Jeder Ereignissynchronisationsblock wartet auf Ereignisse,
die in seinem Kanal eine Übertragung
auslösen.
Außerdem
sucht jeder Block nach Ereignisausfällen.
-
Die
Kanal-FIFOs besitzen in dieser Ausführungsform jeweils acht Stufen.
Die FIFOs empfangen die Daten, die von einem Quellport an einen
Zielport übermittelt
werden. Sie ermöglichen
die Pipeline-Verarbeitung von DMA-Übertragungen und die Bündelverarbeitung
zu/von externen Speichern. In allen Kanälen sind Bündel von acht Datenwörtern möglich.
-
Der
Unterbrechungsgenerator 370 erzeugt gemäß der DMA-Konfiguration und
dem DMA-Zustand Unterbrechungen zu der CPU. Jeder Kanal besitzt
sein eigenes zugeordnetes Unterbrechungssignal dma_nirq(5-0).
-
Die
RHEA-Schnittstelle 380 verbindet den RHEA-Bus 130a von
der RHEA-Brücke. Die
RHEA-Schnittstelle 380 wird nur für CPU-Lesevorgänge und
-Schreiborgänge
in den DMA-Konfigurationsregistern verwendet. DMA-Zugriffe auf RHEA-Peripheriegeräte erfolgen über den
RHEA-Port und nicht über
die RHEA-Schnittstelle.
-
Die
Deskriptorblöcke
CFG(0-5) werden zum Steuern und Überwachen
des Status der DMA-Übertragungen
verwendet. Pro Kanal gibt es einen Deskriptorblock. Sie werden über die
RHEA-Schnittstelle 380 geschrieben/gelesen. Der Deskriptorblock 320 wird
zum Steuern und Überwachen
des Status der Host-Prozessor-Übertragungen
verwendet.
-
Der
HPI-Port 214 ermöglicht
direkte Übertragungen
zwischen dem HOST und dem Speicher, wenn der Host eine höhere Priorität als die
DMA-Kanale besitzt. Dieser Weg unterstützt ebenfalls die HOM-Betriebsart. In
der HOM-Betriebsart werden die DMA-Register umgangen. Das Schalten
von der SAM auf die HOM erfordert, dass der DMA-HOST-Kanal vor dem
Schalten leer ist.
-
HPI-Port
-
Nachfolgend
wird der HPI-Port ausführlicher
beschrieben.
5 ist ein Blockschaltplan, der
Abschnitte der Host-Port-Schnittstelle der DMA-Steuereinheit
210 zeigt.
Tabelle 2 fasst die verschiedenen HPI-Betriebsarten zusammen. In
der HOM-Betriebsart wird der DMA vollständig umgangen, wenn die HPI
einen Zugriff auf den SARAM ausführt.
Somit können
während
der HOM-Betriebsart Abschnitte der DMA-Steuereinheit und der CPU
200 oder
die gesamte DMA-Steuereinheit
und CPU
200 in einen Zustand niedriger Leistung versetzt
werden, ohne dass Übertragungen
durch den Host-Prozessor beeinflusst werden. In der SAM-Betriebsart und
wenn die HPI die Priorität
gegenüber
den DMA-Kanälen
hat, wird der DMA vollständig
umgangen, wenn die HPI auf den SARAM oder auf den DARAM zugreift.
Dies ermöglicht
eine Übertragungsbandbreite
von bis zu 20 MWörtern/s
von der MCU zum internen Speicher. Wenn die HPI dieselbe Priorität wie die
DMA-Kanäle hat,
werden alle HPI-Anforderungen durch den DMA verarbeitet.
Tabelle
2 – HPI-Betriebsarten
-
Ein
DMA-Freigabe/Sperrungs-Steuerregister (DMEDC) 600 ist ein
16-Bit-Lese/Schreib-Register,
auf das über
den RHEA-Bus zugegriffen wird. Es enthält für jeden DMA-Kanal die DMA-Übertragungspriorität und die Übertragungsfreigabesteuerung.
Ein DMA-Freigabe/Sperrungs-Steuerbit-Feld (DE[5:0]) spezifiziert
für jeden
Kanal die DMA-Freigabe/Sperrungs-Steuerung (0 = gesperrt, 1 = freigegeben).
Die Felder DE[5:0] werden beim Zurücksetzen auf null gesetzt.
-
Ein
Kanalprioritätsfeld
PRIO[5:0] definiert die Priorität
jedes Kanals: PRIO[i] = 0 gibt an, dass der Kanal i eine niedrige
Priorität
hat; PRIO[i] = 1 gibt an, dass der Kanal i eine hohe Priorität hat. Ein
HPI-Prioritätsfeld HPI[1:0]
definiert die Priorität
des Host-Ports in Bezug auf die DMA-Kanäle. Wenn HPI[1:0] = 10 oder
11 ist, besitzt die HPI gegenüber
allen DMA-Kanälen
die HÖCHSTE
Priorität
und kann nur auf den On-Chip-RAM zugreifen. Andere DMA-Kanäle können nicht
auf den On-Chip-RAM zugreifen. Wenn HPI[1:0] = 01 ist, wird die HPI
in den DMA-Kanal-Zeitmultiplex-Zugriffsablauf (DMA-Kanal-TDM- Zugriffsablauf) sequentialisiert
und als ein Kanal HOHER Priorität
behandelt. Wenn HPI[1:0] = 00 ist, wird die HPI in den DMA-Kanal-TDM-Ablauf
integriert und als ein Kanal NIEDRIGER Priorität behandelt. Beim Zurücksetzen
ist HPI[1:0] = 11.
-
Die Übertragungen
aller Kanäle
werden nach Round-Robin-Art zeitmultiplexiert. In einer gegebenen Round-Robin-Warteschlange
wird jeder Kanal zu dem nächsten
Kanal geschaltet, nachdem sein Lesevorgang ausgelöst worden
ist. Die Kanäle
niedriger Priorität
stehen so lange an, wie Kanäle
hoher Priorität
ausgelöst werden
müssen.
Die Kanäle
niedriger Priorität
werden nach Round-Robin-Art ausgelöst, wenn ereignissynchronisierte
Kanäle
hoher Priorität
auf Ereignisse warten und nichtsynchronisierte Kanäle hoher
Priorität
abgeschlossen worden sind.
-
Weiter
in Bezug auf das DMEDC-Register 600 spezifiziert ein CPU/DMA-Bus-Prioritätsbit die
Priorität der
CPU 200 in Bezug auf die DMA-Steuereinheit 210,
wenn beide auf dasselbe Speicherbetriebsmittel zugreifen. Wenn CPU/DMA
= 1 ist, haben die Busse der CPU 200 für alle internen und externen
Speicherzugriffe gegenüber
den Bussen des DMA 210 die Priorität. Wenn CPU/DMA = 0 ist, haben
die Busse des DMA 210 für alle
internen und externen Speicherzugriffe gegenüber den Bussen der CPU 200 die
Priorität.
-
Wenn
die HPI die höchste
Priorität
hat (HPI[1:0] = 10 oder 11), hat sie ausschließlichen Zugriff auf den SARAM
und auf den DARAM. Alle DMA-Kanäle,
die den SARAM oder den DARAM umfassen, sind angehalten. Andere DMA-Kanäle können den
Betrieb fortsetzen.
-
In
der HOM-Betriebsart erfolgen Übertragungen
zu und von der MCU nur über
die HPI. Der DMA wird umgangen und das SARAM-Zugriffsprotokoll wird
direkt durch die HPI angesteuert. In der vorliegenden Ausführungsform
hat der SARAM 220 128 k × 16-Bit-Wörter. Sechzehn Speicherbänke 650(0)–650(15)
haben jeweils 8 k × 16.
Falls der DMA nicht ungenutzt ist, können Übertragungen durch den DMA,
die keinen Zugriff auf den SARAM 220 erfordern, fortgesetzt
werden, während
der DMA in der HOM-Betriebsart ist.
-
Der
HPI-Prioritätsänderungsblock 620 erzeugt
in Reaktion auf den Zustand der HPI-Prioritätsbits HPI[1:0] im DMEDC-Register 600 ein
Signal HPI_direct_access 621. Das Signal 621 wird
in den HPI-MUX-Steuerlogikblöcken 610, 612 und 614 verwendet,
um den HPI-Direktzugriff auf den SARAM und auf den DARAM gemäß der HPI-Priorität freizugeben/zu
sperren. Um zu verhindern, dass HPI-Zugriffe DMA-Zugriffe stören, darf
sich dieses Signal nur dann ändern,
wenn alle Kanäle,
die auf den SARAM und auf den DARAM zugreifen, angehalten sind und
wenn keine weiteren Anforderungen am SARAM- und am DARAM- Port anstehen. Durch
die Ports werden Bereit-Signale (nicht gezeigt) geliefert, um anzugeben,
wenn durch den Block 620 eine Prioritätsänderung ausgeführt werden
kann.
-
Der
HPI-Prioritätsblock
und Chipauswahl-Demultiplexerblock 630 realisiert die zwei
HPI-Prioritätsniveaus
(niedrig, hoch) und sendet die HPI-Anforderungen (saram_api_req,
daram_api_req und emi_api_req) in Reaktion auf das HPI-Chipauswahlsignal
cs_HPI an die Zielports 212a–c, wenn die HPI-Priorität gleich
der Priorität
der DMA-Kanäle
ist.
-
Die
HPI-SARAM-Multiplexer 640 wählen entweder Adressen/Daten-Signale 641 direkt
von der Host-Port-Schnittstelle 115 oder Adressen/Daten-Signale 642 vom
SARAM-Port 212a aus, um sie in Reaktion auf ein vom SARAM-MUX-Steuerblock 610 geliefertes
Auswahlsignal an den SARAM 220 zu liefern. Der Daten-aus-Bus vom SARAM
ist direkt mit dem DMA-HPI-Daten-aus-Bus verbunden. Das Quittierungssignal
vom SARAM wird mit weiteren Speicherquittierungen durch den Bereit-MUX 648 multiplexiert.
-
Die
HPI-DARAM-Multiplexer 644 wählen entweder Adressen/Daten-Signale 641 direkt
von der Host-Port-Schnittstelle 115 oder Adressen/Daten-Signale 645 vom
DARAM-Port 212b aus, um sie in Reaktion auf ein vom DARAM-MUX-Steuerblock 612 geliefertes
Auswahlsignal an den DARAM 222 zu liefern. Der Daten-aus-Bus vom DARAM
ist direkt mit dem DMA-HPI-Daten-aus-Bus verbunden. Das Quittierungssignal
vom DARAM wird mit weiteren Speicherquittierungen durch den Bereit-MUX 648 multiplexiert.
-
SARAM
-
Host-Zugriffe
auf den SARAM erfolgen unter Verwendung der HPI-Schnittstelle 115 über den
HPI-Port 214 und einen DMA-Kanal. Wie oben beschrieben
wurde, sind zwei Zugriffsbetriebsarten möglich. In der Betriebsart mit
gemeinsa men Zugriff (SAM) können
sowohl die MCU als auch der DSP auf den SARAM zugreifen. Alle Zugriffe
sind synchron zu dem DSP-Takt, wobei die Priorität durch das DMEDC-Konfigurationsregister 600 gesteuert
wird. In der Nur-Host-Betriebsart (HOM) und in der Betriebsart hoher
Host-Priorität
kann nur die MCU auf den SARAM zugreifen, wobei alle Zugriffe asynchron
zu dem DSP-Takt sind. In diesem Fall wird der DMA-Kanal umgangen.
In dieser Ausführungsform
werden Zugriffe mit hoher Priorität unter Verwendung derselben
Schaltungsanordnung wie HOM-Zugriffe freigegeben, sodass in der
folgenden Diskussion auf Zugriffe beider Typen als HOM-Betriebsart-Zugriffe
Bezug genommen wird.
-
6 ist
ein Zeitablaufplan, der einen SARAM-Speicherzugriff in der SAM-Betriebsart veranschaulicht.
Die Figur zeigt den Zeitablauf sowohl für einen SAM-Betriebsart-Lesevorgang als auch für einen
SAM-Betriebsart-Schreibvorgang. In der SAM-Betriebsart erfolgen
alle Anforderungen synchron zum DSP-Taktsignal dsp_clk, das durch
die Taktschaltungsanordnung im Steuerblock 170 geliefert
wird. Eine Anforderung erfolgt dadurch, dass die HPI das Anforderungssignal
Areq tief ansteuert. Das Signal Areq reagiert auf das HPI-Anforderungssignal
saram_api_req. Die Adressensignale Aabus, das Lese/Schreib-Signal
rnw, die Byte-Signale Awrbyte usw. werden ebenfalls in demselben
Taktzyklus angesteuert. Sobald die Anforderung durch die Entscheidungslogik
gewährt
wird, wird das Signal Aready_out, wie bei 800 gezeigt ist,
aktiv (tief) angesteuert.
-
Für einen
SAM-Lesevorgang werden die Daten, wie bei 810 angegeben
ist, durch den SARAM in dem zweiten Zyklus in der Tief-Phase von
dsp_clk auf dem Datenausgangsbus Adbusout angesteuert. Auf der folgenden
steigenden Flanke von dsp_clk bei 811 werden die Daten
empfangen und in der HPI zwischengespeichert.
-
Für einen
Schreibvorgang müssen
die Daten in dem zweiten Zyklus, wie bei 820 gezeigt ist,
durch die HPI auf dem Dateneingangsbus Adbusin angesteuert werden.
-
7 ist
ein Zeitablaufplan, der einen Speicherzugriff in der HOM-Betriebsart/Betriebsart
hoher Priorität
veranschaulicht. Wie oben diskutiert wurde, wird der DMA in dieser
Betriebsart umgangen. Somit stellt die NOM-Betriebsart eine direkte
Verbindung zwischen der HPI-Schnittstelle und dem SARAM-HPI/DMA- Port her, wobei Speicherzugriffe
ohne Berücksichtigung
des vom DSP 200 und vom DMA 210 verwendeten Taktsignals asynchron
ausgeführt
werden.
-
Während beim
Systemstart das Rücksetzen
aktiv ist, konfiguriert das HPI-Modul
die HPI in der HOM-Betriebsart und lädt Urladecode in den SARAM-Speicher.
Somit müssen
HOM-Betriebsart-Zugriffe zugelassen sein, während das Rücksetzen aktiv ist.
-
In
der HOM-Betriebsart/Betriebsart hoher Priorität hat das HPI-Modul ausschließlichen
Zugriff auf den SARAM. Dadurch, dass die HPI bei 900 das
Chipauswahlsignal Acs aktiviert, wird eine HOM-Betriebsartanforderung
begonnen. Dieses Signal wird durch den DEMUX-Block 630 geliefert.
Dieses Signal wird verwendet, um den SARAM-Speicherkern freizugeben,
während
das Anforderungssignal Areq das Kernfreigabesignal ist. Auf der
fallenden Flanke von Areq, die bei 910 angegeben ist, wird
für Speicherlesevorgänge und
-schreibvorgänge
auf den Kern zugegriffen; somit müssen die Steuersignale des
Adressenbusses Aabus und die Signale Adbusin des Dateneingangsbusses
für eine
Vorbereitungszeit Tsetup vor dieser Flanke gültig sein.
-
Da
in der HOM-Betriebsart kein weiteres Modul auf den SARAM zugreifen
kann, wird das Bereit-Signal Aready_out bei 911 immer gewährt, wobei
es einfach eine gepufferte Version der Eingabe Areq ist. Für einen Lesevorgang
sind die Daten nach der Zugriffszeit Tacc gültig, nachdem Aready_out aktiv
geworden ist.
-
8 ist
eine schematische Darstellung einer integrierten Schaltung 40,
die einen Prozessor 100 enthält. Wie gezeigt ist, enthält die integrierte
Schaltung mehrere Kontakte für
die Oberflächenmontage.
Allerdings könnte
die integrierte Schaltung weitere Konfigurationen, z.B. mehrere
Anschlussstifte an einer unteren Oberfläche der Schaltung zur Montage
in einem kräftefrei
einzuführenden
Sockel oder tatsächlich
irgendeine andere geeignete Konfiguration, enthalten.
-
9 veranschaulicht
eine beispielhafte Realisierung eines Beispiels einer solchen integrierten
Schaltung in einer Mobiltelekommunikationsvorrichtung wie etwa in
einem Mobiltelephon mit integrierter Tastatur 12 und Anzeige 14.
Wie in 9 gezeigt ist, ist das in der integrierten Schaltung 40 enthaltene
digitale System 10, wo geeignet über einen Tastaturadapter (nicht
gezeigt), mit der Tastatur 12 verbunden, wo geeignet über einen
Anzeigeadapter (nicht gezeigt), mit der Anzeige 14 verbunden
und mit einer Hochfrequenzschaltungsanordnung (HF-Schaltungsanordnung) 16 verbunden.
Die HF-Schaltungsanordnung 16 ist mit einer Antenne 18 verbunden.
-
Die
Herstellung des digitalen Systems 10 umfasst mehrere Schritte
des Implantierens verschiedener Mengen von Störstellen in ein Halbleitersubstrat
und des Diffundierens der Störstellen
in ausgewählte
Tiefen innerhalb des Substrats zum Ausbilden von Transistorvorrichtungen.
Zur Steuerung der Anordnung der Störstellen werden Masken ausgebildet.
Um die verschiedenen Vorrichtungen miteinander zu verbinden, werden mehrere
Schichten aus leitendem Material und isolierendem Material abgelagert
und geätzt.
Diese Schritte werden in einer Reinraumumgebung ausgeführt.
-
Ein
wesentlicher Teil der Herstellungskosten der Datenverarbeitungsvorrichtung
umfasst die Prüfung. Einzelne
Vorrichtungen werden in der Wafer-Form in einen Betriebszustand
vorgespannt und mit Messsonden auf die Grundbetriebsfunktionalität geprüft. Daraufhin
wird der Wafer in einzelne Chips getrennt, die als nackte Chips
verkauft oder gepackt werden. Nach dem Packen werden die fertigen
Teile in einen Betriebszustand vorgespannt und auf Betriebsfunktionalität geprüft.
-
Das
digitale System 10 enthält
Hardware-Erweiterungen für
fortgeschrittene Austestmerkmale. Diese helfen bei der Entwicklung
eines Anwendungssystems. Da diese Fähigkeiten Teil des Kerns der
CPU 200 selbst sind, sind sie verfügbar, wobei sie nur die JTAG-Schnittstelle
mit erweiterten Betriebsarterweiterungen nutzen. Sie stellen für die anspruchsvolle
Austestung und für
die wirtschaftliche Systementwicklung einen einfachen, preiswerten
und geschwindigkeitsunabhängigen
Zugriff auf den Kern bereit, ohne die kostspielige Verkabelung und
den Zugang zu Prozessoranschlussstiften zu erfordern, die von herkömmlichen
Emulatorsystemen benötigt
werden oder Systembetriebsmittel stören.
-
Somit
wird ein digitales System mit einem Speicher geschaffen, der von
zwei oder mehr Datenanforderern gemeinsam genutzt werden kann. Es
werden verschiedene Prioritätszugriffsebenen
bereitgestellt. In einer Zugriffsbetriebsart hoher Priorität wird der
Speicher direkt mit einem der Anforderer wie etwa mit einem Host-Prozessor
verbunden, sodass Übertragungen
mit hoher Bandbreite ausgeführt
werden können.
-
Wie
sie hier verwendet werden, bedeuten die Begriffe "angelegt", "verbunden" und "Verbindung" elektrisch verbunden,
einschließlich
dort, wo zusätzliche
Elemente in dem elektrischen Verbindungsweg enthalten sein können. "Zugeordnet" bedeutet eine Steuerbeziehung
wie etwa ein Speicherbetriebsmittel, das durch einen zugeordneten
Port gesteuert wird.
-
Obgleich
die Erfindung anhand veranschaulichender Ausführungsformen beschrieben worden
ist, soll diese Beschreibung nicht in einem beschränkenden
Sinn verstanden werden. Für
den Fachmann auf dem Gebiet sind anhand dieser Beschreibung verschiedene
weitere Ausführungsformen
der Erfindung offensichtlich. Zum Beispiel kann derjenige Abschnitt
des Speichers, der für
die HOM-Betriebsart
ausgewählt
wird, unter Verwendung einer feineren oder gröberen Rasterung als sechzehn
Bänke ausgewählt werden.
Das Größenregister
kann die Form eines ROM haben, der z.B. elektrisch änderbar
oder maskenprogrammiert ist. Die Speicherbänke können in verschiedenen Kombinationen
von synchron/asynchron arbeiten; z.B. kann der Speicher in der SAM-Betriebsart
synchron zu dem DSP-Takt arbeiten und in der HOM-Betriebsart synchron
zu dem Host-Prozessor-Takt arbeiten. Die HOM-Auswahlschaltungen
können
z.B. die Form des SARAM-Multiplexers haben oder Dreizustandsbusse
sein. Es kann eine andere Anzahl von Kanalsteuereinheiten und/oder
Ports realisiert sein. Einem Port können dadurch, dass der Port
so angepasst wird, dass er zu dem Speicherbetriebsmittel passt,
verschiedene Arten von Speicherbetriebsmitteln zugeordnet werden.