-
TECHNISCHES GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich allgemein auf digitale Signalprozessoren.
Insbesondere bezieht sich die Erfindung auf eine Taktsteuerung für digitale
Mehrkern-Signalprozessoren. Die Erfindung bezieht sich insbesondere
noch auf die Aufrechterhaltung von Takten für gemeinsam genutzte Komponenten,
wenn einzelne Untersysteme inaktiv werden.
-
BESCHREIBUNG DES STANDES DER
TECHNIK
-
Mikroprozessoren
enthalten im Allgemeinen eine Vielzahl logischer Schaltungen, die
auf einem einzigen Halbleiterchip hergestellt sind. Solche logischen
Schaltungen enthalten typisch einen Prozessorkern, ein Speicher
und zahlreiche weitere Unterstützungskomponenten.
Einige Mikroprozessoren wie etwa digitale Signalprozessoren (DSPs),
die von Texas Instruments geliefert werden, können mehrere Prozessoruntersysteme
enthalten, wovon jedes seinen eigenen Prozessorkern besitzt. Jedes
Prozessoruntersystem enthält
Speicher und weitere Unterstützungskomponenten
für den
zugehörigen
Prozessorkern.
-
DSPs
sind im Allgemeinen hinsichtlich rechenintensiver Aufgaben gefragt,
weil sie eine Hardware aufweisen, die speziell für das Hochleistungsrechnen
vorgesehen ist. Dennoch ist es im Allgemeinen wünschenswert, dass Mikroprozessoren
wie etwa DSPs kompakt sind, sehr wenig Leistung verbrauchen und
so wenig Wärme
wie möglich
erzeugen. Dies trifft besonders für DSPs zu, die sich in kleinen
batteriebetriebenen Vorrichtungen wie etwa Zellentelephone, Funkrufempfänger und
dergleichen befinden. Folglich ist jede Verbesserung in der DSP-Technik, die zu kleineren
und leichteren Vorrichtungen führt,
die weniger Leistung benötigen,
höchst erwünscht, insbesondere
wenn die Verbesserungen eine Reduzierung der maximalen verfügbaren Rechenleistung
vermeiden.
-
Das
US-Patent Nr. 5677849 beschreibt
eine selektive Takterzeugungsvorrichtung mit niedriger Leistung
sowie ein Verfahren zum Reduzieren des Leistungsverbrauchs durch
ein elektronisches System oder eine integrierte Schaltung, das bzw.
die mit einem externen System über
einen Systembus gekoppelt ist, der so konfiguriert ist, dass er
Signale von dem elektronischen System oder der integrierten Schaltung
wahlweise sendet oder empfängt.
-
Die
europäische Patentanmeldung, Veröffentlichungs-Nr.
0633518 , beschreibt eine Taktsignalschaltung, die ein Taktsignal
für einen
oder mehrere Abschnitte eines elektronischen Systems bereitstellt, das
eine Bereitstellung des Taktsignals für ausgewählte Abschnitte des elektronischen
Systems wahlweise sperrt.
-
Das
US-Patent Nr. 5710881 beschreibt
ein Mehrprozessor-Computersystem mit einem gemeinsam genutzten Speicher,
wobei in dem System mehrere Prozessoren Kopien eines gemeinsam genutzten
Datenblocks in ihren lokalen Cache-Speichern zwischenspeichern und
ihre zwischengespeicherten Kopien unabhängig verändern können.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung betrachtet einen Chip für die digitale Signalverarbeitung,
der eine Taktsteuerungstechnik verwendet, die es erlaubt, dass Abschnitte
des Chips auf Wunsch gesperrt werden, wodurch der Leistungsverbrauch
reduziert wird. Vorteilhafterweise können außerdem gemeinsam genutzte Komponenten
gesperrt werden, jedoch nur, wenn jede der Komponenten, die sich
auf eine gemeinsam genutzte Komponente stützen, einem Sperren der gemeinsam
genutzten Komponente zustimmt. In einer Ausführungsform enthält der Chip mehrere
Prozessorkerne mit entsprechenden Prozessoruntersystemen, eine gemeinsam
genutzte Komponente und einen Taktbaum. Ein Taktbaum verteilt Taktsignale
an die Prozessorkerne und die gemeinsam genutzte Komponente. Der
Taktbaum kann so konfiguriert sein, dass er einen oder mehrere der Prozessorkerne
und die gemeinsam genutzte Komponente durch ein Blockieren des entsprechenden Taktsignals
sperrt. Dies kann vorteilhaft Leistung einsparen. Allerdings ist
der Taktbaum so konfiguriert, dass er das Taktsignal für die gemeinsam
genutzte Komponente aufrechterhält,
solange wenigstens einer der Prozessorkerne die gemeinsam genutzte Komponente
nicht gesperrt hat. Das heißt,
um das Taktsignal für
die gemeinsam genutzte Komponente zu blockieren, muss jeder der
Prozessorkerne die gemeinsam genutzte Komponente sperren. Die gemeinsam
genutzte Komponente kann z. B. ein gemeinsam genutzter Programmspeicher
oder ein Arbiter für
einen externen Eingangs/Ausgangs-Port sein.
-
Der
Taktbaum kann ein Register und einer Reihe von Taktgattern enthalten.
Jedes der Taktgatter blockiert das Taktsignal, wenn ein Gattersignal nicht
bestätigt
wird. Die Gattersignale werden anhand von Freigabebits im Register
erzeugt. Das Taktsignal für
die gemeinsam genutzte Komponente wird durch ein Taktgatter durchgeschaltet,
das das Taktsignal nur dann blockiert, wenn jeder der Prozessorkerne
sein Freigabebit für
die gemeinsam genutzte Komponente gesperrt hat.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
Für ein vollständigeres
Verständnis
der vorliegenden Erfindung wird nun lediglich beispielhaft auf die
folgende ausführliche
Beschreibung einiger bestimmter und veranschaulichender Ausführungsformen
und die Merkmale und Aspekte hiervon anhand der Figuren der beigefügten Zeichnung
Bezug genommen, wobei:
-
1 eine
DSP-Vorrichtung mit einem externen Port zeigt, der durch mehrere
Untersystem-Prozessorkerne und DMA-Controller gemeinsam genutzt
wird;
-
2 eine
Ausführungsform
eines Arbiters für
einen externen Port zeigt; und
-
3 eine
Ausführungsform
eines Taktbaums mit einem Taktschutz für eine gemeinsam genutzte Komponente
zeigt.
-
NOTATION UND TERMINOLOGIE
-
Einzelne
Ausdrücke
werden in der gesamten folgenden Beschreibung sowie den Ansprüchen verwendet,
um bestimmte Systemkomponenten zu bezeichnen. Wie dem Fachmann auf
dem Gebiet klar ist, können
sich Halbleiterunternehmen durch unterschiedliche Bezeichnungen
auf eine Komponente beziehen. Dieses Dokument soll nicht zwischen Komponenten
unterscheiden, die im Namen jedoch nicht in der Funktion verschieden
sind. In der folgenden Erläuterung
und in den Ansprüchen
werden die Ausdrücke "enthält" und "umfasst" in einer offenen Art
und Weise verwendet und sollen in der Bedeutung "enthält,
ist jedoch nicht darauf beschränkt
..." interpretiert
werden. Außerdem
soll der Ausdruck "koppeln" oder "koppelt" entweder eine indirekte
oder eine direkte elektrische Verbindung bestimmen. Wenn eine erste
Vorrichtung mit einer zweiten Vorrichtung koppelt, kann diese Verbindung
folglich durch eine direkte elektrische Verbindung oder durch eine
indirekte elektrische Verbindung über weitere Vorrichtungen und
Verbindungen bestehen.
-
AUSFÜHRLICHE BESCHREIBUNG BEVORZUGTER
AUSFÜHRUNGSFORMEN
-
Eine
bevorzugte Ausführungsform
der vorliegenden Erfindung ist unten im Kontext eines Chips mit
einem digitalen Mehrkern-Festkomma-Signalprozessor (Mehrkern-Festkomma-DSP)
erläutert.
Allerdings soll diese Ausführungsform
den Umfang dieser Offenbarung nicht auf diesen Kontext begrenzen, vielmehr
kann die bevorzugte Ausführungsform
Anwendbarkeit auf irgendeine Mehrkern-DSP-Vorrichtung haben, die einen gemeinsam
genutzten Arbiter für
einen externen E/A-Port oder eine andere gemeinsam genutzte Komponente
besitzt.
-
Nunmehr
zu den Figuren übergehend,
zeigt 1 einen DSP-Chip 100, der mehrere DSP-Untersysteme 110, 120,
einen Taktbaum 131, einen gemeinsam genutzten Programmspeicher
(PRAM) 132, eine Speicherbus-Schnittstelle 134,
einen Arbiter 136 für
einen externen E/A-Port (XPORT), einen XPORT-Multiplexer 138 und
einen Host-Portschnittstellen-Multiplexer (HPI-Multiplexer) 139 enthält. Jedes
DSP-Untersystem 110, 120 (die in 1 allgemein
durch eine gestrichelte Linie getrennt sind) enthält vorzugsweise
einen DSP-Kern 11, 21, einen Festwertspeicher
(ROM) 12, 22, einen Schreib-Lese-Speicher mit
Doppelzugriff (DARAM) 13, 23, einen Schreib-Lese-Speicher
mit Einfachzugriff (SARAM) 14, 24, eine oder mehrere
periphere Vorrichtungen 15, 25, einen M-Bus-Multiplexer 16, 26,
einen M-Bus-Arbiter 17, 27, einen DMA-Controller 18, 28, eine
Host-Portschnittstelle (HPI) 19, 29 und eine weitere
gemischte Unterstützungsschaltungsanordnung.
Die Untersysteme 110, 120 enthalten ferner jeweils
einen Befehlsbus P1, P2, einen Datenbus D1, D2, einen Speicherbus
M1, M2, einen Bus XC1, XC2 für
eine externe Ein-/Ausgabe des Prozessorkerns und einen Bus XD1,
XD2 für
eine externe Ein-/Ausgabe des DMA-Controllers.
-
Der
Taktbaum 131 empfängt
vorzugsweise ein externes Taktsignal und erzeugt in Reaktion darauf
ein oder mehrere interne Taktsignale, die über den ganzen Chip verteilt
werden (in 1 nicht genauer gezeigt). Der
Taktbaum verstärkt
und frequenzvervielfacht vorzugsweise das externe Taktsignal, um
die internen Taktsignale zu erzeugen. Der Taktbaum ist vorzugsweise
programmierbar, um ausgewählte
interne Taktsignale zu sperren, so dass der Leistungsverbrauch durch
den DSP-Chip reduziert wird.
-
Der
gemeinsam genutzte Programmspeicher (PRAM) 132 ist vorzugsweise
für Programmbefehle
reserviert und enthält
16 Blöcke
RAM mit Doppelzugriff. Jeder Block umfasst 16 Kilobyte Speicher, obgleich
die Blockgröße und die
Anzahl der Blöcke nach
Bedarf verändert
werden kann. Jedes Untersystem 110, 120 enthält vorzugsweise
gleiche Abschnitte des PRAM 132. Jedes DSP-Untersystem 110, 120 kann
vorzugsweise in jedem Taktzyklus einen Befehlsabruf von irgendeinem
Speicherplatz im PRAM 132 ausführen. Die Prozessorkerne 11, 21 rufen
gleichzeitig verschiedene Befehle von einem im PRAM 132 gespeicherten
einzelnen Programm ab und führen
sie aus. Auch wenn die DSP-Kerne dasselbe Programm ausführen können, führen Sie
nicht zwangsläufig
dieselben Befehle gleichzeitig aus oder folgen nicht zwangsläufig denselben
Zweigen im Programmablauf.
-
Gemäß der bevorzugten
Ausführungsform können die
DSP-Kerne 11, 21 nicht in den PRAM 132 schreiben.
Stattdessen stellt ein Host-Prozessor (nicht gezeigt) die Software
für den
PRAM 132 über den
XPORT, die HPI 19, 29 und die Speicherbusse M1,
M2 bereit, wie unten weiter beschrieben wird.
-
Die
Speicherbus-Schnittstelle 134 ist mit den PRAM 132 und
den Speicherbussen M1, M2 gekoppelt. Die Speicherbus-Schnittstelle 134 stellt
eine Gruppe von First-In-First-Out-Puffern (FIFO-Puffer) bereit,
in die die Speicherbusse M1, M2 schreiben können und aus denen sie lesen
können.
Jeder FIFO-Puffer ist einfachgerichtet, d. h., dass durch einen
Speicherpuffer in ihn geschrieben wird, während er durch einen anderen
gelesen wird. Dies schafft ein Verfahren einer Zwischenuntersystemkommunikation.
Die Speicherbus-Schnittstelle 134 koppelt außerdem beide
Speicherbusse M1, M2 mit den PRAM 132. Die Speicherbus-Schnittstelle enthält einen
Arbiter, der einen PRAM-Zugriff für einen der Speicherbusse gewährt, wenn
ein PRAM-Zugriff verlangt wird. Die Anfangsprogrammierung des PRAM
und Aktualisierungen des PRAM werden über die Speicherbusse ausgeführt.
-
Der
XPORT-Arbiter 136 und der XPORT-Multiplexer 138 sind
mit den Prozessorkernen 11, 21 und den DMA-Controllern 18, 28 in
jedem der Untersysteme über
entsprechende Busse XC1, XC2, XD1, XD2 für die externe Ein-/Ausgabe gekoppelt.
Die Prozessorkerne und die DMA-Controller entscheiden hinsichtlich
eines externen Zugriffs, wie unten weiter erläutert wird, wobei der Arbiter 136 den Multiplexer 138 in Übereinstimmung
mit den Entscheidungsergebnissen setzt. Der DSP 100 ist
in einem Halbleitergehäuse
vorgesehen, das mehrere Anschlussstifte ("Anschlussdrähte") aufweist, um externe Verbindungen
für den
Chip bereitzustellen. Die durch den XPORT für einen externen Zugriff verwendeten
Gehäuseanschlussdrähte werden
vorzugsweise gemeinsam mit den Host-Portschnittstelleneinheiten 19, 21 genutzt,
Dementsprechend ist ein Ausgang von dem XPORT-Multiplexer 138 mit
dem HPI-Multiplexer 139 gekoppelt, genau wie die HPI-Einheiten 19, 29.
Wenn der Host-Prozessor das Betriebsartsignal bzw. MODE-Signal (das
das Steuersignal für
den HPI-Multiplexer 139 ist) bestätigt, werden die XPORT-Anschlussstifte
mit den HPI-Einheiten 19, 29 gekoppelt, wobei
der Host-Prozessor auf die DSP-Vorrichtung 100 als eine
speicherabgebildete Vorrichtung zugreift. Wenn der Host-Prozessor
das MODE-Signal nicht bestätigt,
werden die XPORT-Anschlussdrähte
mit dem XPORT-Multiplexer 138 gekoppelt, wobei irgendein
Zugriff durch die Kerne 11, 21 oder die DMA-Controller 18, 28 ausgelöst wird,
wie unten weiter beschrieben wird.
-
Die
Prozessorkerne 11, 21 führen vorzugsweise über entsprechende
Befehlsbusse P1, P2 abgerufene Softwarebefehle aus, die in Bezug
auf über entsprechende
Datenbusse D1, D2 abgerufene Daten wirksam werden, um Ergebnisse
zu erzeugen, die auf den Datenbussen bereitgestellt werden. Die Prozessorkerne
enthalten typisch eine optimierte Arithmetik-Logik-Einheit (ALU)
sowie eine Steuereinheit. Die Steuereinheit ruft Daten und Befehle
ab und decodiert die Befehle, wobei die ALU bezüglich der Daten wirksam wird,
wie durch die Befehle spezifiziert ist.
-
Die
ROMs 12, 22 sind mit den entsprechenden Befehlsbussen
P1, P2 gekoppelte nichtflüchtige Speicher.
Die ROMs speichern vorzugsweise Urladesoftware zum Initialisieren
der Untersysteme. Der DARAM 13, 23 enthält vorzugsweise
vier Speicherblöcke,
von denen jeder zwei Speicherzugriffe pro Taktzyklus unterstützt. Die
DARAMs 13, 23 sind primär zur Datenspeicherung vorgesehen,
können
jedoch auch zum Speichern von Programmbefehlen verwendet werden.
Dementsprechend sind sie sowohl mit den entsprechenden Befehlsbussen
P1, P2 als auch mit den entsprechenden Datenbussen D1, D2 gekoppelt.
Ein Register (nicht gezeigt) im DSP-Kern 11, 21 bestimmt,
ob der DARAM 13, 23 in den Programmspeicherraum
oder den Datenspeicherraum abgebildet wird. Die SARAMs 14, 24 enthalten
ebenso vorzugsweise vier Speicherblöcke, von denen jeder einen
Speicherzugriff pro Taktzyklus unterstützt. Jeder SARAM ist vorzugsweise
für eine Datenspeicherung
reserviert, wobei er folglich mit dem entsprechenden Datenbus D1,
D2 gekoppelt ist.
-
Nochmals
in 1 koppeln die Befehlsbusse P1, P2 den entsprechenden
Prozessorkern 11, 21, den lokalen DARAM 13, 23,
den lokalen ROM 12, 22 und den gemeinsam genutzten
PRAM 132 miteinander. Die Datenbusse D1, D2 koppeln den
entsprechenden Prozessorkern 11, 21, den lokalen
DARAM 13, 23 und den lokalen SARAM 14, 24 miteinander. Die
Speicherbusse M1, M2 koppeln den Speicherbus-Multiplexer 16, 26 mit
jeder der flüchtigen
Speichervorrichtungen 13, 14, 23, 24, 132 in
dem entsprechenden Untersystem zusammen. Die Speicherbusse sind
außerdem
mit entsprechenden peripheren Vorrichtungen 15, 25 gekoppelt.
-
Die
peripheren Vorrichtungen 15, 25 enthalten jeweils
vorzugsweise eine oder mehrere serielle Mehrkanalschnittstellen.
Die seriellen Mehrkanalschnittstellen stellen schnelle, serielle,
doppeltgepufferte Vollduplex-Kommunikationen bereit. Die Konfiguration
dieser Ports ist vorzugsweise durch den zugeordneten Prozessorkern
programmierbar, um ein direktes Verbinden über eine Schnittstelle mit
bestehenden seriellen Protokollen zu ermöglichen. Jede serielle Schnittstelle 15, 25 unterstützt vorzugsweise ein
Mehrkanalsenden und -empfangen von bis zu 128 Kanälen. Die
seriellen Mehrkanalports führen
einen Zeitmultiplexbetrieb und einen Zeitdemultiplexbetrieb aus,
wenn mehrere Kanäle
freigegeben sind. Jeder Datenrahmen, der gesendet oder empfangen wird,
repräsentiert
einen zeitmultiplexten Datenstrom (TDM-Datenstrom), so dass der
Inhalt eines Kanals mit den Inhalten der anderen Kanäle verschachtelt ist.
-
Die
Speicherbus-Multiplexer 16, 26 und die Speicherbus-Arbiter 17, 27 sind
jeweils mit allen DMA-Controllern 18, 28 und HPI-Einheiten 19, 29 gekoppelt.
Sich vorläufig
auf den Multiplexer 16, den lokalen DMA-Controller 18,
die lokale HPI-Einheit 19, den abgesetzten DMA-Controller 28 und
die abgesetzte HPI-Einheit 29 konzentrierend, können alle den
Speicherbus M1 steuern, um auf periphere Vorrichtungen 15,
den SARAM 14, den DARAM 13 und den PRAM 132 zuzugreifen.
Die Entscheidung zwischen dem lokalen DMA-Controller, der loka len HPI-Einheit
und dem abgesetzten Untersystem hinsichtlich eines Zugriffs auf
den Speicherbus M1 wird durch den Arbiter 17 ausgeführt, der
den Speicherbus-Multiplexer 16 in Übereinstimmung
mit dem Entscheidungssieger setzt. Der Multiplexer 26 und
der Arbiter 27 arbeiten hinsichtlich des Speicherbusses M2
in ähnlicher
Weise.
-
Jeder
DMA-Controller 18, 28 bewegt Daten und Befehle
von und zu den lokalen peripheren Vorrichtungen und Datenspeichervorrichtungen
sowie zu dem gemeinsam genutzten PRAM 132 über den entsprechenden
Speicherbus M1, M2. Jeder DMA-Controller 18, 28 kann
außerdem
Daten zu und von den abgesetzten peripheren Vorrichtungen und Datenspeichervorrichtungen über den
abgesetzten Speicherbus bewegen. Schließlich kann jeder DMA-Controller
Daten zu und von externen Quellen über einen Bus XD1, XD2 für die externe
Ein-/Ausgabe und den XPORT bewegen. Auch wenn die Übertragungen
auf unterschiedliche Weisen ausgelöst werden können, einschließlich einer
Auslösung durch
den Prozessorkern, werden die Übertragungen anschließend "im Hintergrund" ausgeführt, d.
h. ohne aktive Überwachung
und Steuerung durch den Prozessorkern. Jeder DMA-Controller stellt
vorzugsweise mehrere "Kanäle" für die unabhängige gleichzeitige
Behandlung mehrerer Blockübertragungen
bereit. DMA-Übertragungen
werden ausgeführt,
indem zunächst
die Daten in einen Speicher innerhalb des DMA-Controllers gelesen
werden und danach die Daten aus dem DMA-Controllerspeicher in das
gewünschte
Ziel geschrieben werden. Wenn Prozessorkern-Speicherzugriffe auf
den internen Speicher mit DMA-Controllerzugriffen im Konflikt stehen,
wird den DMA-Controllerzugriffen vorzugsweise eine höhere Priorität gegeben.
-
Die
HPI-Einheiten 19, 29 ermöglichen einem externen Host-Prozessor, über die
Speicherbusse M1, M2 auf alle internen Speicher zuzugreifen. Um die
Konstruktion des Gesamtsystems einfach zu halten, sind die Host-Prozessorschnittstellen 19, 29 so konstruiert,
dass sie eine Speicherschnittstelle simulieren. Das heißt, der
Host-Prozessor kann die Inhalte irgendeines Speicherplatzes innerhalb
der DSP-Vorrichtung 100 sowie viele der Speicherkernregister "sehen", indem er eine Adresse
an die HPI-Einheiten 19, 29 sendet, die den gewünschten Platz
angibt. Eine der HPI-Einheiten 19, 29 ruft daraufhin
die gewünschten
Informationen ab und stellt die Informationen als Daten in der gleichen
Weise bereit, wie es eine Speichervorrichtung würde. Die HPI-Einheiten 19, 29 können in ähnlicher Weise
Daten an dem gewünschten
Platz speichern. Auf diese Weise kann die durch die Prozessorkerne
auszuführende
Software durch den Host-Prozessor bereitgestellt werden. Das heißt, der
Host-Prozessor kann die Software über die HPI 19, 29 in
den gemeinsam genutzten PRAM 132 schreiben. Die HPI-Einheiten 19, 29 fungieren
vorzugsweise als eine dem Host-Prozessor untergeordnete Vorrichtung,
wobei sie jedoch ein Signal für
den Host-Prozessor erzeugen können, um
den Host-Prozessor während
eines Zugriffs zu blockieren, wenn die Speicherbusse M1, M2 durch andere
Aufgaben belegt sind.
-
Wie
zuvor erwähnt
ist, entscheiden die Prozessorkerne und DMA-Controller mit dem XPORT-Arbiter 136 hinsichtlich
eines Zugriffs auf den XPORT. Wie in 2 gezeigt
ist, enthält
der XPORT-Arbiter einen Prozessorkern-Arbiter 232, einen
DMA-Controller-Arbiter 234 und Logikgatter 216, 226, 236 und 238.
Außerdem
in 2 gezeigt sind Universal-E/A-Register (GPIO-Register) 212 und 222 sowie
eine Schnittstellenlogik 214 und 224 für den externen
E/A-Bus. Die Register 212, 222 können Bits enthalten,
die für
eine Kommunikation mit einer Unterstützungsschaltungsanordnung sowie
deren Konfiguration verwendet werden. Eines der Bits in jedem dieser
Register ist als ein Signal für
eine externe E/A-Anforderung (XIO REQ) reserviert, das durch den
Prozessorkern bestätigt
oder nicht bestätigt
werden kann. Die Signale XIO REQ sind mit dem Prozessorkern-Arbiter 232 gekoppelt.
Ein weiteres der Bits in jedem der Register ist als ein Signal für eine externe
E/A-Gewährung
(XIO GNT) reserviert, das durch den Arbiter 232 bestätigt oder
nicht bestätigt werden
kann.
-
Die
Prozessorkerne 11, 21 bestätigen vorzugsweise das Signal
XIO REQ, wenn sie eine Steuerung des XPORT wünschen. Die Kerne fragen daraufhin
das Signal XIO GNT, bis es bestätigt
wird, zyklisch ab, zu welchem Zeitpunkt sie die Verwendung des XPORT
beginnen können,
der der Bestätigung eines
Haltesignals bzw. HOLD-Signals unterliegt, wie unten beschrieben
wird. Wenn die Prozessorkerne mit der Verwendung des XPORT fertig
sind, bestätigen
Sie das Signal XIO REQ vorzugsweise nicht. Wenn es keinen Konflikt
gibt, bestätigt
folglich der Arbiter 232 das entsprechende Signal XIO GNT
in Reaktion auf die Bestätigung
eines Signals XIO REQ. Falls beide Signale XIO REQ in demselben
Taktzyklus bestätigt
werden, wird das Signal XIO GNT im Register 212 bestätigt. In
jedem Fall wird die Bestätigung
eines Signals XIO GNT aufrechterhalten, bis das entsprechende Signal
XIO REQ nicht bestätigt wird.
Die Bestätigung
und die Nichtbestätigung
des Signals XIO REQ wird durch eine im Prozessorkern ablaufende
Software ausgeführt,
so dass das Prozessorkern-Entscheidungsschema in erster Linie durch
Software gesteuert ist.
-
Die
Schnittstellenlogik 214, 224 der Prozessorkerne
für den
externen E/A-Bus empfängt
ein HOLD-Signal von dem XPORT-Arbiter 136. Wenn die Schnittstellenlogik
aktiv ist, d. h., es werden externe E/A-Vorgänge ausgeführt, ignoriert die Schnittstellenlogik
das HOLD-Signal. Der Prozessorkern kann den Betrieb über den
XPORT solange fortführen,
wie der Host-Prozessor nicht in Konflikt gerät (siehe 1).
Wenn es bei der externen E/A-Aktivität eine Unterbrechung gibt oder
wenn es keine derzeitige externe E/A-Aktivität gibt, antwortet die Schnittstellenlogik
auf eine Bestätigung
des HOLD-Signals durch Bestätigen
eines Haltequittierungssignals (HA1, HA2). Anschließend wird
die Schnittstellenlogik angehalten, so lange, wie das HOLD-Signal
bestätigt wird,
wobei alle Prozessorkernversuche, auf den XPORT zuzugreifen, blockiert
werden. Die Schnittstellenlogik erzeugt das HA-Signal vorzugsweise
unter Verwendung einer festverdrahteten Logik.
-
Die
DMA-Controller 18, 28 bestätigen vorzugsweise Anforderungssignale
(REQ-Signale) für den
Arbiter 136, wenn sie Zugriff auf den XPORT wünschen.
Das HOLD-Signal wird durch das Logikgatter 236 aus den
REQ-Signalen erzeugt. Das Logikgatter 236 umfasst vorzugsweise
ein logisches ODER-Gatter. Das HOLD-Signal wird bestätigt, wenn eines
oder beide der Anforderungssignale bestätigt werden. Der DMA-Arbiter 234 empfängt ebenso
beide Anforderungssignale, wobei er in Reaktion darauf ein vorläufiges Gewährungssignal
TG1, TG2 für
einen der DMA-Controller bestätigt.
Die vorläufigen Gewährungssignale
TG1, TG2 für
die Controller 18, 28 werden über die jeweiligen Gatter 216, 226 durchgeschaltet.
Die Gatter 216, 226 umfassen vorzugsweise logische
UND-Gatter. Die Logikgatter 216, 226 erzeugen
jeweils Gewährungssignale
GNT1, GNT2 für
die Controller 18, 28 aus den vorläufigen Gewährungssignalen
TG1, TG2 und aus einem kombinierten Quittierungssignal CHA. Die
Logikgatter 216, 226 bestätigen ihre jeweiligen Gewährungssignale GNT1,
GNT2, wenn sowohl die vorläufigen
Gewährungssignale
(TG1, TG2) als auch das kombinierte Quittierungssignal CHA bestätigt werden.
Das kombinierte Quittierungssignal CHA wird durch das Logikgatter 238 erzeugt,
das das kombinierte Quittierungssignal CHA nur dann bestätigt, wenn
die Haltequittierungssignale HA1, HA2 von beiden Prozessorker nen
bestätigt
werden. Das Logikgatter 238 umfasst vorzugsweise ein logisches
UND-Gatter.
-
Folglich
bestätigt
der XPORT-Arbiter 136 ein Gewährungssignal für den anfordernden
DMA-Controller 18, 28 nur, wenn beide Prozessorkerne
quittieren, dass sie den XPORT momentan nicht verwenden. Wenn beide
DMA-Controller gleichzeitig einen Zugriff anfordern, löst der DMA-Arbiter 234 den
Konflikt auf Basis einer wechselnden Priorität, so dass ein GNT-Signal lediglich
für den
Controller bestätigt wird,
der momentan die Priorität
hat.
-
Die
DMA-Controller 18, 28 sind so konstruiert, dass
sie zwischen XPORT-Zugriffen
vorzugsweise für
wenigstens ein Taktzyklus unterbrechen. Dies ermöglicht den Controllern ein
Verschachteln ihrer XPORT-Zugriffe, wenn beide aktiv eine externe Ein-/Ausgabe
ausführen.
Wenn lediglich ein DMA-Controller aktiv ist, ermöglicht die Unterbrechung außerdem einem
der Prozessorkerne, die Steuerung des XPORT zu ergreifen.
-
3 zeigt
eine bevorzugte Ausführungsform
eines Taktbaums 131. Wie gezeigt, ist enthält der Taktbaum 131 vorzugsweise
einen Phasenregelkreis (PLL) 302, ein Konfigurationsregister 304,
eine Reihe von Gattern 306–320 und einige weitere
Logikgatter 322, 324. Der PLL 302 frequenzvervielfacht das
externe Taktsignal, um ein internes Taktsignal zu erzeugen. Das
interne Taktsignal koppelt an jedes der Gatter 306–320.
Jedes der Gatter 306–320 stellt seinerseits
ein Taktsignal an einer oder mehreren Vorrichtungen innerhalb des
DSP 100 bereit. In der bevorzugten Ausführungsform sind die Gatter
invertierende Puffer, die durch ein Gattersignal, das durch das
Konfigurationsregister 304 bereitgestellt wird, gesperrt
werden können.
Während
ein Gattersignal bestätigt
wird, wird das entsprechende interne Taktsignal invertiert und verstärkt, um
das Taktsignal an das gewünschte
Ziel zu steuern. Wenn ein Gattersignal nicht bestätigt wird,
wird der entsprechende Puffer gesperrt, wobei das Ausgangssignal
von dem Puffer konstant gehalten wird. Durch Freigeben und Sperren
einzelner Puffer 306–320 können verschiedene
Abschnitte des DSP-Chips 100 abgeschaltet werden.
-
Die
Gattersignale 326 werden anhand von Bits des Konfigurationsregisters 304 erzeugt.
Das Gatter 306 steuert den Takt für den Prozessorkern 11,
wobei das Register 304 ein Freigabebit (SYS A CORE ON)
enthält,
das das Gattersignal für
das Gatter 306 liefert. Ähnlich steuern die Gatter 308, 310, 316, 318, 320 die
Taktsignale für
den DARAM 13, den SARAM 14, den Prozessorkern 21,
den DARAM 23 bzw. den SARAM 24, wobei das Register 304 entsprechende
Freigabebits (SYS A DARAM ON, SYS A SARAM ON, SYS B CORE ON, SYS
B DARAM ON, SYS B SARAM ON) enthält,
die die entsprechenden Gattersignale liefern.
-
Das
Gatter 312 steuert das Taktsignal für den gemeinsam genutzten PRAM 132 und
das Gatter 314 steuert das Taktsignal für die Unterstützungskomponenten
wie etwa die peripheren Vorrichtungen 15, 25,
die Speicherbus-Multiplexer 16, 26, die Speicherbus-Arbiter 17, 27,
die DMA-Controller 18, 28, die HPI-Einheiten 19, 29,
den XPORT-Arbiter 136, den XPORT-Multiplexer 138,
den HPI-Multiplexer 139 und
die Schnittstellenlogik 214, 224 für den externen
E/A-Bus. Das Logikgatter 322, das vorzugsweise ein logisches
ODER-Gatter ist, ist vorgesehen, um sicherzustellen, dass das Gatter 312 nur
dann gesperrt wird, wenn beide Untersysteme den gemeinsam genutzten
PRAM 132 gesperrt haben. Andernfalls wird das Taktsignal
SHARED CLK weiterhin so gesteuert, dass das aktive Untersystem immer
noch auf den gemeinsam genutzten PRAM zugreifen kann.
-
Ähnlich werden
Unterstützungskomponenten
wie etwa der XPORT-Arbiter 136 und die Schnittstellenlogik 214, 224 für die externe
Ein-/Ausgabe weiterhin durch das Taktsignal PERIPHERAL CLK angesteuert,
sofern nicht beide Systeme gesperrt worden sind. Dies stellt z.
B. sicher, dass, selbst wenn ein System gesperrt worden ist, das
andere System immer noch hinsichtlich eines Zugriffs auf den XPORT
entscheiden und Zugriff auf ihn haben kann.
-
Der
Taktbaum 131 gestattet dadurch, dass ausgewählte Abschnitte
der DSP-Vorrichtung
durch Unterbrechung ihrer Taktsignale gesperrt werden, während er
gleichzeitig eine versehentliche Sperrung der gemeinsam genutzten
Komponenten verhindert, auf die durch Untersysteme zugegriffen werden kann,
die aktiv bleiben. Eine Sperrung einer gemeinsam genutzten Komponente
erfordert, dass beide Systeme das entsprechende Freigabebit im Konfigurationsregister
zurücksetzen.
Dies ermöglicht
eine flexible Abwägung
zwischen Leistungsverbrauch und verfügbarer Rechenleistung.
-
In
der erläuterten
Ausführungsform
enthält die
DSP-Vorrichtung 100 lediglich zwei DSP-Untersysteme 110, 120.
Wie dem Fachmann auf dem Gebiet klar ist, kann es mehr als zwei
DSP-Untersysteme geben. In 3 kann der
Taktbaum erweitert werden, wobei die Gattersignale für Takte
für die
gemeinsam genutzten Komponenten durch Logikgatter erzeugt werden
können,
die Freigabebits aus jedem der Untersysteme verknüpfen.