DE69802426T2 - Taktschema für digitales signalprozessorsystem - Google Patents

Taktschema für digitales signalprozessorsystem

Info

Publication number
DE69802426T2
DE69802426T2 DE69802426T DE69802426T DE69802426T2 DE 69802426 T2 DE69802426 T2 DE 69802426T2 DE 69802426 T DE69802426 T DE 69802426T DE 69802426 T DE69802426 T DE 69802426T DE 69802426 T2 DE69802426 T2 DE 69802426T2
Authority
DE
Germany
Prior art keywords
clock frequency
processor
host
hclk
external
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69802426T
Other languages
English (en)
Other versions
DE69802426D1 (de
Inventor
Douglas Garde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Analog Devices Inc
Original Assignee
Analog Devices Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Analog Devices Inc filed Critical Analog Devices Inc
Publication of DE69802426D1 publication Critical patent/DE69802426D1/de
Application granted granted Critical
Publication of DE69802426T2 publication Critical patent/DE69802426T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Information Transfer Systems (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf digitale Signalprozessoren und insbesondere auf ein digitales Signalprozessorsystem und ein Verfahren, das ein einzigartiges, asynchrones Taktschema aufweist.
  • Hintergrund der Erfindung
  • Ein digitaler Signalprozessor (DSP) ist ein Computer für einen bestimmten Zweck, der so konstruiert ist, daß er die Leistungsfähigkeit für Anwendungen zur digitalen Signalverarbeitung optimiert, wie zum Beispiel schnelle Fouriertransformationen, digitales Filtern, Bildverarbeitung und Spracherkennung. Anwendungen zur digitalen Signalverarbeitung sind typischerweise durch einen Echtzeitbetrieb, hohe Interrupt Raten und aufwendige numerische Berechnungen charakterisiert. Zusätzlich tendieren Anwendungen zur digitalen Signalverarbeitung dazu, bei Zugriffsoperationen auf den Speicher (Memory Access Operations) aufwendig zu sein und die Eingabe und die Ausgabe eines großen Umfanges von Daten zu erfordern. Daher kann das Design von digitalen Signalprozessoren sehr unterschiedlich sein im Vergleich zu Computern für allgemeine Zwecke.
  • Ein typischer digitaler Signalprozessor umfaßt wenigstens einen Speicher zum Speichern von Betriebsanweisungen zur digitalen Signalverarbeitung sowie von Operanden, die für die Betriebsschritte der digitalen Signalverarbeitung verwendet werden, und einen Kernprozessor, der mit dem Speicher zum Ausführen dieser Betriebsschritte verbunden ist. Ein digitaler Signalprozessor umfaßt üblicherweise auch eine periphere Eingabe/Ausgabe (E/A)- Vorrichtung, die die Kommunikation mit und den Transfer von Daten zu und von anderen Prozessoren und/oder externen Vorrichtungen ermöglicht. Der Kernprozessor umfaßt eine Art Berechnungseinheit zum Durchführen der Betriebsschritte der digitalen Signalverarbeitung (d. h. der Berechnungen) mit den Operanden, basierend auf den Anweisungen. Viele unterschiedliche Berechnungsschemata, sowie Schemata zur Datenspeicherung und Übertragung sind entwickelt worden, um Geschwindigkeit, Genauigkeit, Größe und Leistungsfähigkeit von digitalen Signalprozessoren zu optimieren.
  • Ein digitaler Signalprozessor arbeitet üblicherweise basierend auf dem Empfang eines einzelnen Eingabetaktsignals. Von diesem einzelnen Eingabetaktsignal wird ein Kernprozessortaktsignal abgeleitet, auf der Basis dessen der Kernprozessor arbeitet, und ein Eingabe/Ausgabetaktsignal (E/A-Taktsignal) abgeleitet, auf der Grundlage dessen die Eingabe/Ausgabevorrichtung (E/A-Vorrichtung) arbeitet. Es ist nicht ungewöhnlich, daß das Eingabetaktsignal und das E/A-Taktsignal auf der gleichen Frequenz gehalten werden.
  • Das Kernprozessortaktsignal kann ein Vielfaches des Eingabetaktsignals sein, so daß der Kernprozessor mit einer unterschiedlichen (typischerweise höheren) Taktfrequenz als die der E/A-Vorrichtung arbeitet. Die Geschwindigkeit der E/A-Vorrichtung ist durch die Geschwindigkeit der externen Signale, auf der Grundlage dessen sie arbeiten, limitiert. Die Geschwindigkeit solcher externer Signale kann durch physische Einschränkungen und Kapazitäten und Induktivitäten von externen Vorrichtungen und Sammelleitungen bzw. Bussen eingeschränkt werden. Der Kernprozessor wird nicht auf diese Weise beschränkt. Es ist daher bevorzugt, einen Kernprozessor zu haben, der mit einer unterschiedlichen und optimaleren Taktfrequenz arbeitet.
  • Einige digitale Signalprozessoren erlauben es dem Benutzer, ein Verhältnis (z. B. X2; X2,5; X3; X3,5; X4, ...) auszuwählen, mit dem der Eingabetakt multipliziert wird, um den Kernprozessortakt zu erzeugen. Dies ermöglichst es dem Benutzer, innerhalb eines eingeschränkten Bereiches eine Kernprozessorfrequenz auszuwählen, die am besten für den bestimmten Prozessor geeignet ist.
  • Wenn die geometrischen Abmessungen schrumpfen, verbessern sich die internen Geschwindigkeitspfade, was einen schnelleren Betrieb ermöglicht. Für einen bestimmten Prozessor gibt es daher eine optimale Geschwindigkeit, mit der der Prozessor betrieben werden kann. Eine Beschränkung in momentan zur Verfügung stehende Prozessoren ist es, daß die Kernprozessorfrequenz durch das zur Verfügung stehende Verhältnis des Eingabetaktes und des von dem Benutzer wählbaren Kerntaktes, eingeschränkt wird.
  • Bei einem digitalen Signalprozessorsystem kann mittels eines externen Bus-Systems ein Cluster (z. B. aus 4, 6 oder 8) Prozessoren miteinander verbunden werden. Ein Host-Computer, der durch das Bussystem mit jedem der Prozessoren in dem System verbunden ist, kann auf jeden der Prozessoren zugreifen. Der Host-Computer arbeitet mit einer Host-Taktfrequenz; die möglicherweise nicht mit der Eingabetaktfrequenz (E/A-Taktfrequenz) jedes der Prozessoren in dem Cluster in Zusammenhang steht (asynchrone Beziehung).
  • Wenn der Host auf einen der Prozessoren zugreifen will, müssen entweder die Host- Taktfrequenz oder die Prozessor E/A-Taktfrequenz synchronisiert werden, oder es muß ein asynchroner Zugriff ermöglicht werden. Eine Synchronisierung würde eine Art externe Synchronisationsschnittstelle zwischen dem Host und jedem Prozessor in dem Cluster erfordern. Alternativ würde das Vorsehen eines asynchronen Zugriffs eine zusätzliche, asynchrone Prozessor E/A-Schnittstelle erfordern. Bis zum heutigen Tage erfordert jeder der Ansätze, der darauf gerichtet ist, einen asynchron arbeitenden Host zu ermöglichen, um auf einen Prozessor zuzugreifen, eine komplexe und teure Verschaltung. Zusätzlich kann jeder der Ansätze für einen Benutzer schwierig zu implementieren und zu benutzen sein.
  • Es ist eine allgemeine Aufgabe der vorliegenden Erfindung, ein verbessertes Prozessortaktschema zur Verfügung zu stellen.
  • Die US 5,611,075 offenbart ein digitales Signalprozessorsystem gemäß dem Stand der Technik.
  • Zusammenfassung der Erfindung
  • Eine Ausführungsform der Erfindung bezieht sich auf einen digitalen Signalprozessor. Der digitale Signalprozessor empfängt ein lokales Taktsignal und ein Systemtaktsignal, wobei die lokale Taktfrequenz und die Systemtaktfrequenz asynchron zueinander sein können. Ein Kernprozessor arbeitet mit einer Kerntaktfrequenz, die ein Vielfaches der lokalen Taktfrequenz ist. Ein externer paralleler Anschluß, der mit dem Kernprozessor verbunden ist, kann mit einer Systemtaktfrequenz oder einer lokalen Taktfrequenz betrieben werden.
  • Bei einer Ausführungsform der Erfindung umfaßt der digitale Signalprozessor ferner einen Resynchronisationsschaltkreis, der zwischen dem externen parallelen Anschluß und dem Kernprozessor angeschlossen ist, der ein Eingabesteuerbefehlsignal empfängt und das Steuerbefehlssignal sperrt, wenn dieses gültig ist.
  • Eine andere Ausführungsform der Erfindung bezieht sich auf ein digitales Signalprozessorsystem. Das System umfaßt eine Vielzahl von Prozessoren, die mittels eines externen Bussystems über einen externen Anschluß miteinander verbunden sind. Ein Host, der mit jedem der Vielzahl der Prozessoren durch das externe Bussystem verbunden, arbeitet mit einer Host- Taktfrequenz. Der Host kann über das externe Bussystem auf jeden Prozessor zugreifen. Der externe Anschluß jeder der Prozessoren arbeitet entweder mit einer lokalen Taktfrequenz oder mit der Host-Taktfrequenz, oder mit einem Vielfachen entweder der lokalen Taktfrequenz oder der Host-Takfrequenz. Bei einem Zugriff des Host wird die Taktfrequenz des externen Anschlusses des Prozessors automatisch so gesteuert, daß er mit der Host-Taktfrequenz arbeitet.
  • Bei einer Ausführungsform umfaßt das System ferner eine externe Speichereinheit, die mit dem Host und mit wenigstens einem der Prozessoren über das externe Bussystem verbunden ist. Der Speicher arbeitet auch entweder mit der lokalen Taktfrequenz oder mit der Host- Takfrequenz. Bei einem Zugriff des Host auf entweder einen der Prozessoren oder die Speichereinheit wird die Taktfrequenz der Speichereinheit auch automatisch so gesteuert, daß sie mit der Host-Taktfrequenz arbeitet.
  • Bei einer Ausführungsform ist die Taktfrequenz des Betriebs des externen Anschlusses jedes Prozessors vom Benutzer gesteuert.
  • Bei einer Ausführungsform umfaßt jeder Prozessor einen Schalter, der einen lokalen Takt und einen Host-Takt empfängt und eine für den Betrieb des externen parallelen Anschlusses auswählt. Bei einer Ausführungsform umfaßt der Schalter einen Multiplexer.
  • Bei einer Ausführungsform wird die Taktfrequenz der Speichereinheit durch einen Masterprozessor gesteuert, mit dem sie verbunden ist.
  • Bei einer Ausführungsform des Systems umfaßt jeder Prozessor des Systems einen Kernprozessor, der mit einem Vielfachen der lokalen Taktfrequenz arbeitet, wobei die lokale Takfrequenz asynchron mit der Host-Takfrequenz sein kann. Bei dieser Ausführungsform umfaßt jeder Prozessor ferner einen Resynchronisationsschaltkreis, der zwischen dem Kernprozessor und dem externen Anschluß angeschlossen ist, der ein empfangenes Steuersignal sperrt, wenn dieses gültig ist.
  • Eine weitere Ausführungsform der Erfindung bezieht sich auf ein Verfahren zur digitalen Signalverarbeitung. Das Verfahren umfaßt: Verbinden eines Host mit einer Vielzahl von digitalen Signalprozessoren über ein Bussystem; Betreiben eines externen Anschlusses jedes Prozessors mit einer lokalen Taktfrequenz, einer Host-Taktfrequenz oder einem Vielfachen entweder der lokalen Taktfrequenz oder der Host-Taktfrequenz; und einen automatischen Schaltbetrieb des externen Anschlusses jedes der Prozessoren auf die Host-Taktfrequenz bei einem Zugriff des Host auf einen der Prozessoren.
  • Bei einer Ausführungsform umfaßt das Verfahren ferner den Schritt des Betreibens eines Kernprozessors jedes digitalen Signalprozessors mit einem Vielfachen der lokalen Taktfrequenz, die asynchron mit der Systemtaktfrequenz sein kann.
  • Die Merkmale und Vorteile der vorliegenden Erfindung werden anhand der nachfolgenden detaillierten Beschreibung der Erfindung noch besser verstanden und deutlicher werden, wobei die Beschreibung in Verbindung mit den begleitenden Zeichnungen und den Ansprüchen gesehen werden soll, die am Ende der detaillierten Beschreibung angehängt sind.
  • Kurze Beschreibung der Zeichnungen
  • Für ein besseres Verständnis der vorliegenden Erfindung wird auf die begleitenden Zeichnungen Bezug genommen, welche durch Inbezugnahme in diese Beschreibung mit aufgenommen werden.
  • Fig. 1 ist ein Blockdiagramm eines Systems, das einen Cluster von Prozessoren umfaßt, gemäß einer Ausführungsform der Erfindung.
  • Fig. 2 ist ein Blockdiagramm einer alternativen Ausführungsform des Systems, das in Figur· 1 gezeigt ist.
  • Fig. 3 ist ein Blockdiagramm interner Komponenten eines beispielhaften Prozessors, der mit der vorliegenden Erfindung verwendet werden kann.
  • Fig. 4 ist ein zum Teil funktionales, zum Teil strukturelles Blockdiagramm bestimmter Prozessorkomponenten und der unterschiedlichen Taktsignale, mit denen die Komponenten arbeiten.
  • Fig. 5 ist ein Blockdiagramm eines beispielhaften Verzögerungs-Kalibrierungs- Schaltkreises, der mit einem Prozessor gemäß der Erfindung verwendet werden kann.
  • Fig. 6 ist ein Blockdiagramm eines beispielhaften, externen Anschlußblocks, der im Rahmen eins Prozessors gemäß der Erfindung eingesetzt werden kann.
  • Fig. 7 ist ein zum Teil funktionales, zum Teil strukturelles Blockdiagramm eines Resynchronisationsschaltkreises, der innerhalb eines Prozessors der Erfindung eingesetzt werden kann.
  • Detaillierte Beschreibung
  • Eine Ausführungsform der vorliegenden Erfindung bezieht sich auf ein Cluster digitaler Signalprozessoren, die mittels eines Bussystems miteinander verbunden sind, und auf einen Host, der auf jeden der Prozessoren über das Bussystem zugreifen kann. Eine Peripherie jedes der Prozessoren, die mit dem Bussystem verbunden sind, arbeitet entweder mit einer lokalen Taktfrequenz oder einer Host-Taktfrequenz. Der Host arbeitet mit der Host-Taktfrequenz, und die Taktfrequenz des Betriebs der Peripherie jedes der Prozessoren wird automatisch auf die Host-Taktfrequenz umgeschaltet, wenn der Host auf einen der Prozessoren zugreift.
  • Eine andere Ausführungsform der vorliegenden Erfindung bezieht sich auf einen digitalen Signalprozessor, der einen Kernprozessor umfaßt, der asynchron mit der Peripherie des Prozessors arbeiten kann. Insbesondere kann die Peripherie des Prozessors, wie zum Beispiel ein externer paralleler Anschluß, entweder mit einer lokalen Taktfrequenz oder einer Host- Taktfrequenz arbeiten, wobei der Benutzer zwischen diesen beiden wählen kann. Ein Kernprozessor des digitalen. Prozessors arbeitet mit einem Vielfachen der lokalen Taktfrequenz.
  • Die lokale Taktfrequenz und die Host-Taktfrequenz können unabhängig voneinander erzeugt werden und können asynchron zueinander sein.
  • Fig. 1 ist ein Blockdiagramm, das eine beispielhafte Ausführungsform der vorliegenden Erfindung zeigt, die einen Cluster eines digitalen Signalprozessors P1-P4 umfaßt. Das gezeigte System umfaßt ferner einen Host 100 und einen Speicher 102. Der Host 100, der Speicher I02 und die Prozessoren P1-P4 sind mittels eines Bussystems 104 miteinander verbunden. Der Host kann einen externen Computer umfassen, der mit jedem der Prozessoren P1-P4 und mit dem externen Speicher 102 kommuniziert. Bei dem externen Speicher 102 kann es sich um jeden geeigneten externen Speicher handeln, der mit solch einem digitalen Signalprozessorsystem arbeitet, wie zum Beispiel ein synchroner dynamischer Schreib-Lese-Speicher (Synchronus Dynamic Random Access Memory, SDRAM). Daten können auf jeden der Prozessoren geschrieben werden oder von diesen gelesen werden sowie auf den bzw. von dem Speicher geschrieben bzw. gelesen werden.
  • Bevorzugt arbeitet der externe Bus als ein Pipeline-Bus. Mit anderen Worten, die Daten können ein, zwei, drei Zyklen nachdem eine Adresse ausgegeben worden ist ankommen, entsprechend einer zugehörigen Pipelineverzögerung von ein, zwei oder drei Zyklen. Adressen können mit jedem Zyklus ausgegeben werden. Bevorzugt werden alle Signale an der aufsteigenden Kante des Taktsignals abgetastet und sie müssen Anforderungen bezüglich einer Set-up Zeit und einer Halte-Zeit entsprechen.
  • Während des Betriebs kann der Host 100 auf jeden beliebigen der Prozessoren P1-P4 oder auf den Speicher 102 über den Bus 104 zugreifen. Der Host 100 arbeitet mit einem Host-Takt HCLK bei einer Host-Taktfrequenz. Jeder Prozessor P1-P4 empfängt den Host-Takt HCLK und eine lokalen Takt LCLK. Bei einer Ausführungsform, wie sie nachfolgend im Detail genauer beschrieben werden wird, werden der Host-Takt HCLK und der lokale Takt LCLK unabhängig voneinander erzeugt und können asynchron zueinander sein.
  • Eine Peripherie jedes Prozessors, dieser Bereich des Prozessors, wie zum Beispiel ein externer paralleler Anschluß, der die internen Komponenten des Prozessors mit dem externen Bussystem 104 verbindet, kann entweder mit der lokalen Taktfrequenz LCLK oder der Host- Taktfrequenz HCLK arbeiten. Bei einer Ausführungsform ist dieser Betrieb durch den Benutzer wählbar, wie nachfolgend beschrieben wird. Auf ähnliche Weise kann der Speicher entweder mit der lokalen Taktfrequenz LCLK oder der Host-Taktfrequenz HCLK arbeiten.
  • Bei dieser Ausführungsform stellt ein Puffer 110, der eine Vielzahl seriell angeschlossener Ausgänge aufweist, ein Host-Taktsignal HCLK an jedes Ziel zur Verfügung, welches, bei dieser Ausführungsform, einen Host 100, jeden Prozessor P1-P4 und den Speicher 102 umfaßt. Auf ähnliche Weise stellt ein Puffer 112, der ebenfalls eine Vielzahl in Serie angeschlossener Ausgänge umfaßt, ein lokales Taktsignal LCLK jedem Ziel zur Verfügung, welches bei dieser Ausführungsform jeden Prozessor P1-P4 und den Speicher 102 umfaßt. Jedes Taktsignal wird auf eine separate Spur gesetzt, am Ausgang des Puffers. Die Puffer stellen sicher, daß die gleiche Taktsignalzeitgabe für jedes Ziel zur Verfügung gestellt wird.
  • Während des Betriebes können eine Peripherie jedes Prozessors P1-P4 und der Speicher 102 mit der lokalen Taktfrequenz LCLK betrieben werden. Wenn der Host 100 auf einen der Prozessoren P1-P4 oder auf den Speicher 102 zugreifen soll, wird die Taktfrequenz des Betriebs der Peripherie jedes der Prozessoren P1-P4 automatisch von der lokalen Taktfrequenz LCLK auf den Host-Takt HCLK umgeschaltet. Zur selben Zeit wird die Taktfrequenz des Betriebs des Speichers auch automatisch von dem lokalen Takt LCLK auf den des Host-Takts HCLK umgeschaltet.
  • Bei einer Ausführungsform tritt das Schalten dann auf, wenn ein Steuersignal einer Host-Bus- Anfrage (Host Bus Request, HBR) oder einer Host-Bus-Bewilligung (Host Bus Grant, HBG) von dem Host abgegeben wird. Solch ein Steuerungssignal kann jedem Prozessor zur Verfügung gestellt werden, was ein internes Schalten (nicht gezeigt) in jedem Prozessor hervorruft, um die Taktfrequenz von der lokalen Taktfrequenz LCLK auf den Host-Takt HCLK umzuschalten. Der Schalter innerhalb jedes Prozessors kann einen Multiplexer oder ähnliches umfassen. Eine Störimpulsunterdrückung ist für jedes Schalten des Taktsignals für den Prozessor erforderlich. Zum Beispiel kann eine Störimpulsunterdrückung dadurch erzielt werden, daß darauf gewartet wird, daß ein Takt nach unten geht und die Taktausgabe gehalten wird, bis der andere Takt nach unten geht und wobei dann die Ausgabe mit dem ersten Takt zu diesem Zeitpunkt angetrieben wird.
  • Bei einer Ausführungsform wählt ein externer analoger Schalter 108 entweder den Host-Takt HCLK oder den lokalen Takt LCLK aus, um den Speicher zu takten. Ein Masterprozessor bzw. Hauptprozessor P3 stellt zu der passenden Zeit über die Leitung 106 ein Steuerungssignal zur Verfügung, was dazu führt, daß der analoge Schalter 108 das Host-Taktsignal HCLK auswählt und ein solches Signal zu dem Speicher 102 überträgt. Bei dem Schalter 108 handelt es sich bevorzugt um einen analogen Schalter mit geringem Widerstand, so daß die · Schaltungsverzögerung unterhalb von 0,2 Nanosekunden gehalten wird. Der Schalter kann zum Beispiel aus einem Feld-Effekt-Transistor mit geringem Widerstand hergestellt sein. Für den externen Schalter 108 muß das Schalten von dem lokalen Takt LCLK zu dem Host-Takt HCLK nicht störimpulsfrei sein, weil kein Speicherzugriff während des Schaltens stattfindet.
  • Bei einer alternativen Ausführungsform des in Fig. 1 gezeigten Systems ist der Schalter 108 aus Fig. 1 durch einen internen Multiplexer 124, der in Fig. 2 gezeigt ist, ersetzt. Solch ein System umfaßt vier Prozessoren P1-P4, einen Host 100 und einen Speicher 102 (siehe Fig. 1). Wie bei dem System aus Fig. 1 arbeitet der Host mit einer Host-Taktfrequenz HCLK, und eine Peripherie (E/A Anschluß) jeder der Prozessoren P1-P4 arbeitet mit einer Peripherie- Taktfrequenz PCLK, die entweder der Host-Takfrequenz HCLK oder der lokalen Taktfrequenz LCLK entspricht. Der Speicher 102 arbeitet mit einer Speicher-Taktfrequenz MCLK, die ebenfalls entweder der Host-Taktfrequenz HCLK oder der lokalen Taktfrequenz LCLK entspricht.
  • Wie in der Ausführungsform aus Fig. 1 werden der Peripherie-Takt PCLK und der Speicher- Takt MCLK bei einem Host-Zugriff (auf den Speicher oder einen Prozessor) automatisch auf den Host-Takt HCLK umgeschaltet. Das Schalten kann innerhalb jedes Prozessors durch den Multiplexer 124 durchgeführt werden. Der Multiplexer 124 ist so gesteuert, daß er bei einem Host-Bus-Zugriff oder einer Bewilligung automatisch auf den Host-Takt HCLK umschaltet. Die Ausgabe des Multiplexers 124 umfaßt ein Peripherie-Taktsignal PCLK und ein Speicher- Taktsignal MCLK. Ein Hauptprozessor P1-P4 kann ausgewählt werden, um das Speicher- Taktsignal MCLK über den Bus 116 dem Speicher 102 zur Verfügung zu stellen.
  • Jeder Prozessor, der in den Systemen gemäß den Fig. 1 und 2 gezeigt ist, kann mit den in Fig. 3 gezeigten Komponenten implementiert werden. Wie gezeigt sind die grundlegenden Komponenten des DSP (Digitaler Signalprozessor) 10 die Berechnungsblöcke 12 und 14, ein Speicher 16, ein Steuerungsblock 24, Verbindungsanschlußpuffer 26, ein externer Anschluß 28, eine DRAM Steuerungseinrichtung bzw. ein DRAM Controller 30, einen Befehlsausrichtungspuffer (Instruction Alignment Buffer, IAB) 32 und eine Haupt- Befehlsdecodiereinrichtung 34. Die Berechnungsblöcke 12 und 14, der Befehlsausrichtungspuffer 32, die Haupt-Befehlsdecodiereinrichtung 34 und der Steuerungsblock 24 bilden einen Kernprozessor, der die Hauptberechnung und die Datenverarbeitungsfunktionen des DSP 10 durchführt. Der externe Anschluß 28 steuert externe Kommunikationen über einen externen Adreßbus 58 und eine externen Datenbus 68. Die externe Schnittstelle bzw. der externe Anschluß 28 kann die Peripherie des DSP 10 bilden. Die Verbindungsanschlußpuffer 26 steuern die externe Kommunikation über die Kommunikationsschnittstellen bzw. Kommunikationsanschlüsse 36. Der DSP 10 ist bevorzugt als einzelner monolithischer integrierter Schaltkreis ausgebildet.
  • Der Speicher 16 umfaßt drei unabhängige Speichermodule 40, 42 und 44 mit einer großen Kapazität. Bei einer Ausführungsform hat jedes der Speichermodule 40, 42 und 44 eine Kapazität von 64 k Wörtern mit je 32 bit. Jedes der Speichermodule 40, 42 und 44 kann einen 128 bit Datenbus aufweisen. Bis zu vier nachfolgend aneinander gereihte Datenwörter von je 32 bit können in einem einzelnen Taktzyklus zu jedem Speichermodul oder von diesem übertragen werden.
  • Die Elemente des DSP 10 sind für einen effizienten Hochgeschwindigkeitsbetrieb miteinander verbunden. Jeder der Busse umfaßt eine Vielzahl von Leitungen für einen parallelen Transfer von binären Informationen. Ein erster Adreßbus 50 (MA0) verbindet das Speichermodul 40 (M0) und den Steuerungsblock 24. Ein zweiter Adreßbus 52 (MA1) verbindet das Speichermodul 42 (M1) und den Steuerungsblock 24. Ein dritter Adreßbus 54 (MA2) verbindet das Speichermodul 44 (M2) und den Steuerungsblock 24. Jeder der Adreßbusse 50, 52 und 54 kann 16 bit breit sein: Ein externer Adreßbus 56 (MAE) verbindet den externen Anschluß 28 und den Steuerungsblock 24. Der externe Adreßbus 56 ist über einen externen Anschluß 28 mit dem externen Adreßbus 58 verbunden. Jeder der externen Adreßbusse 56 und 58 kann 32 bit breit sein. Ein erster Datenbus 60 (MDO) verbindet das Speichermodul 40, die Berechnungsblocks 12 und 14, den Steuerungsblock 24, die Verbindungsanschlußpuffer 26, den IAB 32 und die externe Schnittstelle bzw. den externen Anschluß 28. Ein zweiter Datenbus 62 (MD1) verbindet das Speichermodul 44, die Berechnungsblocks 12 und 14, den Steuerungsblock 24, die Verbindungsanschlußpuffer 26, den IAB 32 und den externen Anschluß 28. Ein dritter Datenbus 24 (MD2) verbindet das Speichermodul 44, die Berechnungsblocks 12 und 14, den Steuerungsblock 24, die Verbindungsanschlußpuffer 26, den IAB 32 und den externen Anschluß 28. Die Datenbusse 60, 62 und 64 sind über einen externen Anschluß 28 mit dem externen Datenbus 68 verbunden. Jeder der Datenbusse 60, 62 und 64 kann 128 bit breit sein, und der externe Datenbus 28 kann 64 bit breit sein.
  • Der erste Adreßbus 50 und der erste Datenbus 60 umfassen einen Bus für den Transfer von Daten zu dem Speichermodul 40 und von diesem Speichermodul 40. Der zweite Adreßbus 52 und der zweite Datenbus 62 umfassen einen zweiten Bus für den Transfer von Daten von dem Speichermodul 42 und zu diesem Speichermodul 42. Der dritte Adreßbus 54 und der dritte Datenbus 64 umfassen einen dritten Bus für den Transfer von Daten zu dem Speichermodul 44 und von diesem Speichermodul 44. Weil jedes der Speichermodule 40, 42 und 44 einen separaten Bus auf weist, kann auf die Speichermodule 40, 42 und 44 simultan zugegriffen werden. Im Sinne dieser Beschreibung bezieht sich der Begriff "Daten" auf binäre Worte, die entweder Instruktionen oder Operanden darstellen, die mit dem Betrieb des DSP 10 in Verbindung stehen. Bei einem typischen Betriebsmodus werden Programmbefehle in einem der Datenmodule gespeichert, und Operanden werden in den anderen zwei Speichermodulen gespeichert. Deshalb können wenigstens ein Befehl und zwei Operanden den Berechnungsblöcken 12 und 14 in einem einzelnen Taktzyklus zur Verfügung gestellt werden. Wie nachfolgend beschrieben ist jedes der Speichermodule 40, 42 und 44 so konfiguriert, daß ein Lesen und ein Schreiben einer Vielzahl von Datenworten in einem einzelnen Taktzyklus möglich ist. Der simultane Transfer einer Vielzahl von Datenworten von jedem Speichermodul in einem einzelnen Taktzyklus wird durchgeführt, ohne daß ein Befehls-Cache oder ein Daten-Cache erforderlich ist.
  • Der Steuerungsblock 24 umfaßt einen Programm-Sequenzer 70, eine erste Ganzzahl (Integer) ALU 72 (J ALU), eine zweite Ganzzahl ALU 74 (K ALU), einen ersten DMA Adreßgenerator 76 (DMAG A) und einen zweiten DMA Adreßgenerator 78 (DMAG B). Die Ganzzahlen bzw. Integer ALU's 72 und 74 führen zu unterschiedlichen Zeiten Integer ALU Befehle aus und führen eine Dafenadreßerzeugung durch. Während des Durchführens eines Programms stellt der Programm-Sequenzer 70 eine Sequenz von Befehlsadressen einem der Adreßbusse 50, 52, 54 und 56, abhängig von der Speicherposition der Instruktionssequenz, zur Verfügung. Typischerweise wird eines der Speichermodule 40, 42 oder 44 für die Speicherung der Befehlssequenz verwendet. Jede der Ganzzahlen bzw. Integer ALU's 72 und 74 überträgt eine Datenadresse an einen der Adreßbusse 50, 52, 54 und 56, abhängig von der Position des Operanden, der von dem Befehl angefordert wird. Einmal angenommen, daß zum Beispiel eine Befehlssequenz in dem Speichermodul 40 gespeichert ist und daß der erforderliche Operand in den Speichermodulen 42 und 44 gespeichert ist: In diesem Fall führt der Programm- Sequenzer dem Adreßbus 50 Befehlsadressen zu und die Befehle; auf die zugegriffen worden ist, werden dem Befehlsausrichtungspuffer 32, wie nachfolgend beschrieben, zugeführt. Die Integer ALU's 72 und 74 können zum Beispiel Ausgabeadressen von Operanden an die entsprechenden Adreßbusse 52 und 54 sein. In Reaktion auf die Adressen, die durch die Integer ALU's 72 und 74 erzeugt worden sind, stellen die Speichermodule 42 und 44 über die entsprechenden Datenbusse 62 und 64 Operanden zur Verfügung, entweder einem der Berechnungsblöcke 12 und 14 oder beiden. Die Speichermodule 40, 42 und 44 sind in Bezug auf die Speicherung von Instruktionen und Operanden austauschbar.
  • Der Programmsequenzer 70 und die Integer ALU's 72 und 74 können über die externe Schnittstelle bzw. den externen Anschluß 28 auf einen externen Speicher (nicht gezeigt) zugreifen. Die gewünschte externe Speicheradresse wird auf dem Adreßbus 56 angeordnet. Die externe Adresse wird über den externen Anschluß 28 mit dem externen Adreßbus 58 verbunden. Der externe Speicher stellt das erforderliche Datenwort oder die Datenworte dem externen Datenbus 68 zur Verfügung. Die externen Daten werden über einen externen Anschluß 28 und über einen der Datenbusse 60, 62 und 64 einem oder beiden Berechnungsblöcken 12 und 14 zur Verfügung gestellt. Der DRAM Controller 30 steuert den externen Speicher.
  • Wie oben erläutert kann jedes der Speichermodule 40, 42 und 44 eine Kapazität von 64 k Worten von jeweils 32 bit umfassen. Jedes Speichermodul kann mit einem Datenbus verbunden sein, der 128 bit breit ist. Bei einer alternativen Ausführungsform kann jeder Datenbus 64 bit breit sein, und es werden mit jeder Taktphase 1 und jeder Taktphase 2 64 bit übertragen, so daß eine effektive Busbreite von 128 bit zur Verfügung gestellt wird. In einem einzelnen Taktzyklus kann auf eine Vielzahl von Datenworten in jedem Speichermodul zugegriffen werden. Insbesondere kann auf die Daten als Einzelwort, Dualwort oder Vierfach-Wort (Quad-Wort) mit je 32 bit zugegriffen werden. Dual- oder Quad-Zugriffe erfordern es, daß die Daten in dem Speicher ausgerichtet sind. Typische Anwendungen für Quad-Datenzugriffe sind die schnelle Fourier Transformation (Fast Fourier Transform, FFT) und komplexe FIR Filter. Quad-Zugriffe unterstützen auch Vorgänge mit doppelter Genauigkeit (Double Precision Operations). Bevorzugt wird auf die Befehle als Quad-Worte zugegriffen. Es ist jedoch, wie nachfolgend beschreiben werden wird, nicht erforderlich, daß die Befehle in dem Speicher ausgerichtet sind.
  • Bei der Verwendung von Quad-Wort Übertragungen können vier Befehle und acht Operanden, jeweils mit 32 bit, zu den Berechnungsblöcken 12 und 14 in einem einzelnen Taktzyklus übertragen werden. Die Anzahl der Datenworte, die übertragen werden, und des Berechnungsblocks bzw. der Berechnungsblöcke, an die die Datenworte übertragen werden, werden durch Steuerungsbits in dem Befehl ausgewählt. Die Einzel-, Dual- oder Quad-Datenworte können zu dem Berechnungsblock 12, zu dem Berechnungsblock 14 oder zu beiden Blöcken übertragen werden. Dual- und Quad-Datenworte Zugriffe verbessern die Leistungsfähigkeit des DSP 10 bei vielen Anwendungen, indem ermöglicht wird, daß während eines einzelnen Taktzyklusses mehrere Operanden zu den Berechnungsblöcken 12 und 14 übertragen werden. Die Möglichkeit, auf eine Vielzahl von Befehlen in jedem einzelnen Taktzyklus zuzugreifen, ermöglicht es, daß eine Vielzahl von Operationen in jedem Zyklus durchgeführt werden, wodurch die Leistungsfähigkeit verbessert wird. Falls die Operanden schneller als erforderlich durch die Berechnungsblöcke 12 und 14 zur Verfügung gestellt werden, verbleiben Speicherzyklen übrig, die von den DMA Adreßgeneratoren 76 und 78 verwendet werden können, um den Speichermodulen 40, 42 und 44 während dieser ungenutzten Zyklen neue Daten zur Verfügung zu stellen, ohne Zyklen von dem Kernprozessor zu verwenden. Schließlich ermöglicht die Fähigkeit des Zugriffs auf eine Vielzahl von Datenworten die Verwendung zweier oder mehrerer Berechnungsblöcke sowie die Versorgung dieser mit Operanden. Die Möglichkeit, auf Einzel- oder Dual-Datenworte zuzugreifen, senkt den Energieverbrauch im Vergleich mit einer Konfiguration, bei der nur auf Quad-Datenworte zugegriffen wird.
  • Bei dem in Fig. 3 gezeigten Prozessor 10 kann der externe Anschluß 28 eine Peripherie des Prozessors umfassen und würde mit einem Peripherie-Takt PCLK arbeiten. Die verbleibenden Komponenten des DSP 10 würden bei einer Ausführungsform der Erfindung mit einem Kern- Takt CCLK arbeiten, der ein Vielfaches eines lokalen Taktes LCLK ist, wie nachfolgend beschrieben ist.
  • Fig. 4 ist ein teilweise strukturelles, teilweise funktionales Blockdiagramm einiger Komponenten des Prozessors P1 und der Taktsignale, mit denen sie arbeiten. Der gezeigte Prozessor P1 umfaßt einen Kernprozessor 132, der mit einer Kerntaktfrequenz CCLK arbeitet, und eine Peripherie 126, die entweder mit einer lokalen Taktfrequenz LCLK oder einer Host- Taktfrequenz HCLK oder einem Vielfachen entweder der LCLK oder der HCLK arbeitet. Die Peripherie 126 kann aus einem externen Anschluß 28, der mit einem externen Datenbus 68 und einem externen Adreßbus 58 kommuniziert, bestehen, wie es in Fig. 3 gezeigt ist.
  • Der Prozessor 132 empfängt sowohl das lokale Taktsignal LCLK als auch das Host- Taktsignal HCLK als Eingaben. Nicht gezeigt in Fig. 4 ist ein Verzögerungskalibrierungsschaltkreis, durch den jedes Eingabetaktsignal läuft, was für Übertragungsvorgänge verantwortlich ist, wie nachfolgend mit Bezug auf Fig. 5 detailliert beschrieben werden wird. Beide werden dem Schalter 124 zugeführt, der einen als Peripherie-Takt PCLK für die Peripherie. 126 auswählt, wie oben mit Bezug auf die Fig. 1 und 2 beschrieben worden ist.
  • Das lokale Taktsignal LCLK wird ebenfalls einem Frequenzmultiplikator 128 zugeführt. Der Frequenzmultiplikator 128 multipliziert das lokale Taktsignal LCLK mit einem Verhältnis, das von dem Benutzer ausgewählt wird, und gibt das Produkt, welches das Kern-Taktsignal CCLK darstellt, über die Leitung 130 an den Kernprozessor 132 aus. Der Frequenzmultiplikator kann zum Beispiel die Verhältnisse X2; X2,5; X3; X3,5; X4 umfassen, von denen einer vom Benutzer ausgewählt wird, um den Kerntakt CCLK zu erzeugen.
  • Diese Ausführungsform der Erfindung ermöglicht eine Optimierung der Frequenz des Betriebs des Kernprozessors 132 unabhängig von der Frequenz des Betriebs der Peripherie 126. Die Betriebsfrequenz der Peripherie 126 kann durch den externen Bus beschränkt sein, falls solch eine Peripherie aus dem externen parallelen Anschluß besteht. Solch eine Beschränkung würde jedoch nicht die Geschwindigkeit des Kernprozessors beeinflussen. Die Erfindung ermöglicht ferner eine Optimierung der Betriebsfrequenz der Peripherie, unabhängig von der Geschwindigkeit des Betriebs des Kerns.
  • Wie dargelegt werden der Host-Takt HCLK und der lokale Takt LCLK unabhängig voneinander erzeugt und können asynchron zueinander sein. Der Host-Takt HCLK kann zum Beispiel 66 MHz und der lokale Takt LCLK kann 100 MHz betragen. Wenn die Peripherie 126 mit dem lokalen Takt LCLK arbeitet, scheint sie synchron mit dem Kernprozessor 132 zu arbeiten. Wie oben in Zusammenhang mit den Fig. 1 und 2 beschrieben ist findet das Schalten auf einen Betrieb mit dem Host-Takt HCLK automatisch bei einer Zugriffsanfrage des Host statt. Weil der Kern-Takt CCLK mit dem lokalen Takt LCLK in Verbindung steht und weil der lokale Takt LCLK asynchron mit dem Host-Takt HCLK in Verbindung stehen kann, kann die Peripherie 126 asynchron mit dem Kernprozessor 132 arbeiten (wenn sie mit der Host-Taktfrequenz HCLK arbeitet). Für solch einen Betrieb wird eine asynchrone Schnittstelle (nicht gezeigt in Fig. 4) zwischen der Peripherie 126 und dem Kernprozessor 132 zur Verfügung gestellt und nachfolgend detailliert beschrieben werden.
  • Im Hinblick auf die hohen Geschwindigkeiten, mit denen der Bus arbeitet, sollte ein Bitversatz (Skew) in dem Peripherie-Takt PCLK und dem Speicher-Takt MCLK minimiert werden. Zusätzlich sollte der Bitversatz in dem Kerntakt CCLK in dem Frequenzmultiplexer entfernt werden. Bei einer Ausführungsform der vorliegenden Erfindung wird eine Verzögerungskalibrierungsschleife eingesetzt, um den nicht gewünschten Bitversatz zu kalibrieren. Die Eingabe des Verzögerungskalibrierungsschaltkreises ist das Eingabetaktsignal, entweder LCLK oder HCLK. Ein Multiplexer kann zwischen diesen Zweien auswählen. Bevorzugt und alternativ können zwei Verzögerungskalibrierungsschaltkreise eingesetzt werden, je einer für jedes Eingabetaktsignal.
  • Ein beispielhafter Verzögerungskalibrierungsschaltkreis zur Verwendung mit einem Prozessor gemäß der Erfindung ist in dem Blockdiagramm in Fig. 5 gezeigt. Solch ein Verzögerungskalibrierungsschaltkreis kann für LCLK oder für HCLK verwendet werden. Der Verzögerungskalibrierungsschaltreis stellt ein Sperren der Daten in dem Prozessor (oder außerhalb des Prozessors) genau an der aufsteigenden Kante des Taktsignals sicher, was zu Übertragungsverzögerungen des Signals durch Prozessorelemente, wie zum Beispiel einem Verteilungsbaum, führt. Mit dem Schaltkreis wird ein Sperrsteuersignal einer Verzögerungszeitperiode vor einer ansteigenden Kante des entsprechenden Taktsignals zugeordnet. Eine Verzögerunssperrschleife (Delay-Locked Loop, DLL) stellt ein weiteres Taktsignal zur Verfügung, ähnlich zu und in Phase mit dem Eingabetaktsignal, aber verzögert um eine Periode minus den internen Eingabeübertragungsverzögerungen des Taktsignals. Dieses andere Taktsignal ermöglicht eine Sperre, um Daten oder Sperrdaten zu einer geeigneten Zeit zu sperren, genau an der steigenden Kante des Taktsignals, welches für die Übertragungsverzögerungen verantwortlich ist.
  • Wie gezeigt umfaßt der Verzögerungskalibrierungsschaltkreis eine DLL 136, ein Verzögerungselement 138 und ein Verzögerungselement 140. Das Verzögerungselement 138 stellt eine Verzögerung von T&sub2; für die Signalausgabe von der DLL 1136 zur Verfügung, wobei diese Verzögerung T&sub2; eine Ausgabeverzögerung eines Ausgabe- Antriebesdämpfungsglieds (Output Driving Pad) entspricht, das aus einer Sperre 158 und einem Treiber 160 besteht. Das Verzögerungselement 140 stellt eine Verzögerung von T&sub1; an der Signaleingabe zur Verfügung, wobei diese Verzögerung T&sub1; einer Übertragungsverzögerung des Signals durch den Verteilungsbaum entspricht, wie es bei 154, 156 und 166 gezeigt ist.
  • Die DLL 136 umfaßt einen Phasendetektor 142, eine Steuerungsschaltkreis 144 und eine Wechselrichter-Kette (Inverter Chain) 146. Wenn die Daten in dem Prozessor gesperrt sind, ermöglicht das Signal pd, daß die Sperre bzw. der Schalter 164 Daten in einer ansteigenden Kante des Signals pd' sperrt. Die Ausgabe des Signals pd' durch den Verzögerungsschaltkreis 140 weist eine Verzögerung T&sub1; auf, die der des Verteilungsbaums 166 entspricht. Die DLL 136 stellt sicher, daß die Peripherie-Takteingabe PCLK zu der DhL auf der Leitung 148 synchron mit dem Taktsignal pd' ist, so daß der Schalter 164 mit der ansteigenden Kante des PCLK, abzüglich der Übertragungsverzögerungen, synchron ist. Auf ähnliche Weise sind die Signale, die dem Ausgabe-Antriebdämpfungsglied zur Verfügung gestellt werden, einschließlich der, die den Schalter 158 und den Treiber 160 freischalten, synchron mit der ansteigenden Kante des Eingabetaktes, der für die entsprechenden Verzögerungen verantwortlich ist. Dadurch werden die tatsächlichen Sperrsteuersignale, seien es Eingabe oder Ausgabesignale, tatsächlich eine Taktsignalperiode später als eine ursprüngliche Eingabe Taktperiode abzüglich der passenden, hierfür verantwortlichen Verzögerungen, entweder der des Verteilungsbaums und/oder des Ausgabe-Dämpfungsglieds, angenommen.
  • Fig. 6 ist ein Blockdiagramm eines beispielhaften, externen Anschlußblocks 28, der mit jedem Prozessor gemäß der Erfindung eingesetzt werden kann. Wie beschreiben arbeitet der externe Anschluß 28 mit dem Peripherie-Takt PCLK, der dem lokalen Takt LCLK oder dem Host-Takt HCLK entsprechen kann, wobei einer asynchron mit dem anderen ist. Der externe Anschluß empfängt und überträgt Daten auf den externen Datenbus 68 (bei dieser Ausführungsform 64 bit breit) und empfängt und überträgt Adressen auf den Adreßbus 58 (bei dieser beispielhaften Ausführungsform 32 bit breit).
  • Eine Anzahl von Operationen kann von einem (abhängigen) Prozessor basierend auf Befehle, die von einem unterschiedlichen (Haupt) Prozessor empfangen werden, durchgeführt werden. Die Operationen werden über den externen Anschlußblock übertragen. Diese Operationen umfassen das Lesen von Daten von dem abhängigen Prozessor und das Schreiben von Daten auf den Hauptprozessor, wobei eine Anzahl von unterschiedlichen Lese- und Schreib- Operationen zur Verfügung steht. Die zur Verfügung stehenden bestimmten Lese- und Schreib-Operationen bilden nicht einen speziellen Teil der Erfindung, dienen aber dazu, die Vorteile der Verwendung der Taktschemata der Erfindung zu verdeutlichen.
  • Wie gezeigt umfaßt der externe Anschlußblock einen Eingabepuffer 170, bei dem ein zuerst ankommendes Signal auch zuerst bearbeitet wird (First-in-first-out Verfahren, FIFO-Puffer), einen Ausgabe FIFO 172 und einen Ausgabepuffer 174. Der Eingabe FIFO 170, der Ausgabe FIFO 172 und der Ausgabepuffer 174 stehen über Multiplexer und einen Treiberblock 176 mit internen Datenbussen 60, 62, 64 und 56 in Verbindung, wie oben mit Bezug auf Fig. 3 beschrieben worden ist.
  • Weil der externe Anschlußblock der vorliegenden Erfindung asynchron mit dem Kernprozessor arbeiten kann, wird ein Resynchronisationsschaltkreis verwendet, um sicherzustellen, daß das empfangene Befehlssignal, sei es ein Lese- oder ein Schreibsignal, gültig ist und für den geeigneten Zeitraum gesperrt wird. Das Befehlssignal soll bei einer steigenden Kante des Taktsignals gesperrt werden. Wenn ein Befehl von dem externen Anschlußblock empfangen wird, wird es darin gesperrt. Dann wird es über den Resynchronisationssperrschaltkreis 190, der in Fig. 7 gezeigt ist, zur Verfügung gestellt.
  • Als Beispiele werden ein Schreibbetrieb und ein Lesebetrieb nachfolgend mit Bezug auf Fig. 7 beschrieben werden. Während des Schreibbetriebs wird ein Schreibbefehl von einem Hauptprozessor einem abhängigen Prozessor zur Verfügung gestellt. Der Hauptprozessor gibt die Adresse der zu schreibenden Daten und der aktuellen zu schreibenden Daten in seinen Ausgabe FIFO 172. Der abhängige Prozessor, auf den geschrieben werden soll, gibt die Adresse und die Daten, die er von dem Hauptprozessor empfängt, in seinen Eingabe FIFO 170.
  • Während des Lesebetriebs wird ein Lesebefehl von dem Hauptprozessor an den abhängigen Prozessor gegeben. Der Hauptprozessor gibt die Adresse (von der die Daten zu lesen sind), in seinen Ausgabe FIFO 172. Der abhängige Prozessor gibt die empfangene Adresse in seinen Eingabe FIFO 170. Sobald sie gelesen sind, werden die Daten in den Ausgabepuffer 174 des abhängigen Prozessors gegeben, der den Ausgabe FIFO 172 überbrückt bzw. umgeht.
  • Beim Empfang des Befehlssignal, wie zum Beispiel eines Schreibbefehlssignal, erzeugt der Resynchronisationssperrschaltkreis 190 eine Verzögerung, bevor das Befehlssignal als gültig anerkannt wird, wobei zu dieser Zeit das Schreiben der Daten in den Eingabe FIFO 170 durchgeführt wird. Zuerst wird das Schreibbefehlsignal von einem Arbitrationsschalter 192 an der aufsteigenden Kante des Kern-Taktsignals CCLK gesperrt. Dann wird das Schreibbefehlsignal von dem Schalter 194 an der ansteigenden Kante des Kern-Taktes CCLK, einen Verzögerungszeitraum t später, gesperrt. Bei dieser Ausführungsform kann die Zeitverzögerung t 3 Nanosekunden entsprechen. Es soll verstanden werden, daß der Arbitrationsschalter sehr schnell ist. Dann tritt eine Verzögerung t auf, bevor ein Befehlssignal von dem zweiten Schalter gesperrt wird, so daß das Befehlssignal als gültig anerkannt wird, bevor die entsprechende Operation durchgeführt wird. Bei dieser beispielhaften Ausführungsform taktet die Ausgabe des Schalters 194 einen D flip-flop 196, der im Gegenzug eine Vergleichseinrichtung bzw. einen Komparator 198 steuert, so daß der Betrieb beginnt. Die Erfindung ist aber nicht darauf beschränkt.
  • Sobald der zweite Schalter das Befehlssignal sperrt, kann die Operation durchgeführt werden. Bei dieser Ausführungsform werden die Inhalte des Schreibzählers 200 mit den Inhalten des Lesezählers 202 mittels des Komparators 198 verglichen. Der Schreibzähler 200 wird immer dann aktualisiert, wenn auf eine Position in dem Eingabe FIFO 170 geschrieben wird. Auf ähnliche Weise wird der Lesezähler 202 immer dann aktualisiert, wenn von einer Position aus gelesen wird. Wenn die Inhalte des Schreibzählers 200 gleich den Inhalten des Lesezählers 202 sind, dann deutet der Schreibpointer auf dieselbe Position wie der Lesepointer, was anzeigt, daß die ausgewiesene Position leer ist. Daten können daher auf diese Position geschrieben werden. Es sind auch andere Techniken als die gezeigten und beschriebenen für diese Zwecke einsetzbar.
  • Wie gezeigt wird für den Eingabe FIFO der Schreibzähler 200 von dem Host-Takt HCLK gesteuert, und der Lesezähler 202 wird von dem lokalen Takt LCLK gesteuert. Während gezeigt worden ist, daß der Resynchronisationsschalter mit dem Input FIFO gekoppelt ist, kann auch ein ähnlicher Schaltkreis für den Ausgabe FIFO verwendet werden. Für den Ausgabe FIFO (nicht gezeigt) wird der Schreibzähler von dem Kerntakt CCLK gesteuert, und der Lesezähler wird von dem Host-Takt HCLK gesteuert.
  • Während die Beschreibung wenigstens eine verdeutlichende Ausführungsform der Erfindung beschrieben hat, sind unterschiedliche Alternativen, Modifikationen und Verbesserungen für den Fachmann möglich. Solche Änderungen, Modifikationen und Verbesserungen liegen innerhalb des Umfangs der Erfindung. Dementsprechend ist die vorausgehende Beschreibung lediglich als Beispiel anzusehen und soll die Erfindung nicht beschränken. Die Erfindung wird nur gemäß den nachfolgenden Ansprüche beschränkt.

Claims (10)

1. Digitaler Signalprozessor (P1), der umfaßt:
- einen externen paralleler Anschluß (126); der mit einer Host-Taktfrequenz (HCLK) oder mit einer lokalen Taktfrequenz (LCLK) betrieben werden kann;
- ein Mittel (124) zur Auswahl zwischen der Host-Taktfrequenz (HCLK) und der lokalen Taktfrequenz (LCLK);
- einen Kernprozessor (132), der an den externen parallelen Anschluß (126) angeschlossen ist und der mit einer Kerntaktfrequenz (CCLK) arbeitet, die ein Vielfaches der lokalen Taktfrequenz (LCLK) ist; und
- einen Resynchronisierungsschaltkreis (190), der zwischen dem externen parallelen Anschluß (126) und dem Kernprozessor (132) angeschlossen ist und der ein Steuerbefehlssignal empfängt und das Steuerbefehlssignal für einen Verzögerungs-Zeitraum, der einem Kerntaktsignal (CCLK) folgt, sperrt;
- wobei die lokale Taktfrequenz (LCLK) und die Host-Taktfrequenz (HCLK) asynchron sind.
2. Digitaler Signalprozessor nach Anspruch 1, wobei ein Benutzer für den Betrieb des externen parallelen Anschlusses (126) zwischen der Host-Taktfrequenz (HCLK) und der lokalen Taktfrequenz (LCLK) auswählen kann.
3. Digitales Singnalprozessorsystem, das umfaßt:
- eine Vielzahl von Prozessoren (P1, P2-Pn), wobei jeder Prozessor über einen externen Anschluß (28) durch ein externes Busssystem (104) an einen anderen Prozessor angeschlossen ist, wobei der externe Anschluß (28) jedes Prozessors mit einer lokalen Taktfrequenz (LCLK), einer Host-Taktfrequenz (HCLK) oder mit einem Vielfachen der lokalen Taktfrequenz (LCLK) oder der Host- Taktfrequenz (HCLK) arbeitet; und
- einen Host (100), der mit jedem der Vielzahl der Prozessoren über das externe Bussystem (104) verbunden ist, wobei der Host (100) mit der Host- Taktfrequenz (HCLK) arbeitet und wobei der Host (100) auf jeden Prozessor (Pn) über das externe Bussystem (104) zugreifen kann; und
- einen ersten Schalter (24), der bei einem Zugriff auf einen der Prozessoren (Pn) durch den Host die Taktfrequenz des externen Anschlusses (28) jedes Prozessors (Pn) umschaltet, so daß dieser mit der Host-Taktfrequenz (HCLK) arbeitet.
4. Digitales Signalprozessorsystem nach Anspruch 3, das ferner einen externen Speicher (102), der mit dem Host (100) und wenigstens einem der Prozessoren (Pn) über das externe Bussystem (104) verbunden ist, umfaßt, wobei der Speicher (102) auch entweder mit der lokalen Taktfrequenz (LCLK) oder mit der Host-Taktfrequenz (HCLK) arbeitet und wobei die Taktfrequenz des Speichers (102) bei einem Zugriff durch den Host auch automatisch von einem zweiten Schalter (108) so umgeschaltet wird, daß dieser mit der Host- Taktfrequenz (HCLK) arbeitet.
5. Digitales Signalprozessorsystem nach Anspruch 3, wobei die Arbeitstaktfrequenz jedes externen parallelen Anschlusses (28) jedes Prozessors benutzergesteuert ist.
6. Digitales Signalprozessorsystem nach Anspruch 3, wobei der erste Schalter (124) innerhalb jedes Prozessors den lokalen Takt (LCLK) und den Host-Takt (HCLK) empfängt und davon einen für den Betrieb des externen parallelen Anschlusses (28) auswählt.
7. Digitales Signalprozessorsystem nach Anspruch 4, wobei die Taktfrequenz des Speichers (102) von einem Hauptprozessor (P3) gesteuert wird, mit dem dieser verbunden ist.
8. Digitales Signalprozessorsystem nach Anspruch 3, wobei jeder Prozessor (Pn) einen Kernprozessor (132) umfaßt, der mit einem Vielfachen der lokalen Taktfrequenz (LCLK) arbeitet, wobei die lokale Taktfrequenz asynchron zu der Host-Taktfrequenz (HCLK) ist, und
einen Resynchronisierungsschaltkreis (190) umfaßt, der zwischen dem Kernprozessor (132) und dem externen parallelen Anschluß (28) angeschlossen ist und der ein Steuerbefehlssignal empfängt und das Steuerbefehlssignal für einen Verzögerungs-Zeitraum, der einem Kerntaktsignal (CCLK) folgt, sperrt.
9. Verfahren zur digitalen Signalverarbeitung, das umfaßt:
- Verbinden eines Host (100) mit einer Vielzahl digitaler Signalprozessoren (P1, P2- Pn) über ein Bussystem (104);
- Betreiben eines externen Anschlusses (28) jedes Prozessors (Pn) mit einer lokalen Taktfrequenz (LCLK), einer Host-Taktfrequenz (HCLK) oder einem Vielfachen der lokalen Taktfrequenz (LCLK) oder der Host-Taktfrequenz (HCLK); und
- automatisches Umschalten des externen Anschlusses (28) jedes Prozessors (Pn) auf die Host-Taktfrequenz (HCLK) bei einem Zugriff auf einen der Prozessoren (Pn) durch den Host (100).
10. Verfahren nach Anspruch 9, das ferner den Schritt des Betreibens eines Kernprozessors (132) jedes digitalen Signalprozessors (Pn) mit einem Vielfachen der lokalen Taktfrequenz (LCLK) umfaßt, wobei die lokale Taktfrequenz (LCLK) zu der Host-Taktfrequenz (HCLK) asynchron ist.
DE69802426T 1997-09-16 1998-09-16 Taktschema für digitales signalprozessorsystem Expired - Lifetime DE69802426T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/931,665 US5922076A (en) 1997-09-16 1997-09-16 Clocking scheme for digital signal processor system
PCT/US1998/019277 WO1999014683A1 (en) 1997-09-16 1998-09-16 Clocking scheme for digital signal processor system

Publications (2)

Publication Number Publication Date
DE69802426D1 DE69802426D1 (de) 2001-12-13
DE69802426T2 true DE69802426T2 (de) 2002-11-07

Family

ID=25461155

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69802426T Expired - Lifetime DE69802426T2 (de) 1997-09-16 1998-09-16 Taktschema für digitales signalprozessorsystem

Country Status (5)

Country Link
US (1) US5922076A (de)
EP (1) EP1015992B1 (de)
JP (1) JP4303417B2 (de)
DE (1) DE69802426T2 (de)
WO (1) WO1999014683A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480548B1 (en) 1997-11-17 2002-11-12 Silicon Graphics, Inc. Spacial derivative bus encoder and decoder
US6775339B1 (en) 1999-08-27 2004-08-10 Silicon Graphics, Inc. Circuit design for high-speed digital communication
US6417713B1 (en) 1999-12-30 2002-07-09 Silicon Graphics, Inc. Programmable differential delay circuit with fine delay adjustment
US7031420B1 (en) 1999-12-30 2006-04-18 Silicon Graphics, Inc. System and method for adaptively deskewing parallel data signals relative to a clock
US6272070B1 (en) * 2000-02-09 2001-08-07 Micron Technology, Inc. Method and apparatus for setting write latency
US6756827B2 (en) * 2002-09-11 2004-06-29 Broadcom Corporation Clock multiplier using masked control of clock pulses
US7010713B2 (en) 2002-12-19 2006-03-07 Mosaid Technologies, Inc. Synchronization circuit and method with transparent latches
JP2004303195A (ja) * 2003-03-19 2004-10-28 Seiko Epson Corp シートコンピュータ、ウェアラブルコンピュータ、ディスプレイ装置及びこれらの製造方法並びに電子機器
US7114069B2 (en) 2003-04-22 2006-09-26 Motorola, Inc. Reconfigurable processing circuit including a delay locked loop multiple frequency generator for generating a plurality of clock signals which are configured in frequency by a control processor
US7031372B2 (en) * 2003-04-22 2006-04-18 Motorola, Inc. Multiple user reconfigurable CDMA processor
US7254208B2 (en) 2003-05-20 2007-08-07 Motorola, Inc. Delay line based multiple frequency generator circuits for CDMA processing
JP5377275B2 (ja) * 2009-12-25 2013-12-25 キヤノン株式会社 情報処理装置又は情報処理方法
JP5448795B2 (ja) 2009-12-25 2014-03-19 キヤノン株式会社 情報処理装置又は情報処理方法
CN113472442B (zh) * 2020-03-31 2022-07-01 烽火通信科技股份有限公司 一种相干dsp芯片的时钟处理方法及系统
CN115543016B (zh) * 2022-11-30 2023-03-10 苏州浪潮智能科技有限公司 一种时钟架构及处理模组

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69228980T2 (de) * 1991-12-06 1999-12-02 National Semiconductor Corp., Santa Clara Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
US5685005A (en) * 1994-10-04 1997-11-04 Analog Devices, Inc. Digital signal processor configured for multiprocessing
US5619720A (en) * 1994-10-04 1997-04-08 Analog Devices, Inc. Digital signal processor having link ports for point-to-point communication
US5611075A (en) * 1994-10-04 1997-03-11 Analog Devices, Inc. Bus architecture for digital signal processor allowing time multiplexed access to memory banks

Also Published As

Publication number Publication date
DE69802426D1 (de) 2001-12-13
WO1999014683A1 (en) 1999-03-25
EP1015992A1 (de) 2000-07-05
JP4303417B2 (ja) 2009-07-29
JP2001516926A (ja) 2001-10-02
EP1015992B1 (de) 2001-11-07
US5922076A (en) 1999-07-13

Similar Documents

Publication Publication Date Title
DE69032481T2 (de) Buszugriff für Digitalrechnersystem
DE69802426T2 (de) Taktschema für digitales signalprozessorsystem
DE69120586T2 (de) Rechnersystem mit synchronem Bus
DE69634358T2 (de) Verzögerungsverringerung in der übertragung von gepufferten daten zwischenzwei gegenseitig asynchronen bussen
DE19882418B4 (de) System einer quellensynchronen Schnittstelle zwischen Master- und Slave-Einrichtungen und zugehöriges Verfahren
DE19580707C2 (de) PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE69305049T2 (de) Hochfrequenz- cmos-schaltung mit geringen verbrauch
DE69838852T2 (de) Verfahren und vorrichtung zur kopplung von signalen zwischen zwei schaltungen, in verschiedenen taktbereichen arbeitend
DE69509932T2 (de) Vorrichtung und Verfahren um Chips mit grösserer Geschwindigkeit als die des Buses synchron zu betreiben
DE2856483C2 (de)
DE69132652T2 (de) Rechnerdatenleitweglenkungssystem
DE69021594T2 (de) Hochgeschwindigkeitsdatenübertragung auf einem Rechnersystembus.
DE69229081T2 (de) Mikroprozessor mit externem Speicher
DE3783370T2 (de) Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung.
DE3851554T2 (de) Steuerungsanordnung für gemeinschaftlichen Speicher.
DE69806497T2 (de) Bidirektionales kommunikationsport für digitalen signalprozessor
DE69318348T2 (de) Schnittstelle für asynchronen Bus zur Minimisierung von Übertragungszeiten
DE60226141T2 (de) Fifo-speicher system und verfahren dafür
DE69418146T2 (de) Temporärer Registersatz für einen superpipeline-superskalaren Prozessor
DE19828620B4 (de) Während des Betriebs aufteilbarer Computerbus für einen verbesserten Betrieb mit sich ändernden Bustaktfrequenzen
DE69025524T2 (de) Vorrichtung und Verfahren zur Steuerung von Speicherzugriffsanforderungen in einem digitalen Datenverarbeitungssystem
DE69819648T2 (de) Zweitorpuffer
DE3732798A1 (de) Datenverarbeitungssystem mit ueberlappendem zugriff auf einen globalen speicher durch eine quelle mit hoher prioritaet

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition