DE19711322A1 - Schaltungsanordnung mit einem Prozessor - Google Patents

Schaltungsanordnung mit einem Prozessor

Info

Publication number
DE19711322A1
DE19711322A1 DE19711322A DE19711322A DE19711322A1 DE 19711322 A1 DE19711322 A1 DE 19711322A1 DE 19711322 A DE19711322 A DE 19711322A DE 19711322 A DE19711322 A DE 19711322A DE 19711322 A1 DE19711322 A1 DE 19711322A1
Authority
DE
Germany
Prior art keywords
data
cache
processor
inputs
memory
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.)
Ceased
Application number
DE19711322A
Other languages
English (en)
Inventor
Robert Dr Knuth
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE19711322A priority Critical patent/DE19711322A1/de
Publication of DE19711322A1 publication Critical patent/DE19711322A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory

Description

Die Erfindung betrifft eine Schaltungsanordnung mit einem Prozessor, der erste und zweite Dateneingänge aufweist, an die jeweils Daten anlegbar sind, die innerhalb desselben Zy­ klus eines Arbeitstaktes des Prozessors von diesem einlesbar sind. Beispiele für derartige Prozessoren sind digitale Si­ gnalprozessoren (DSP) Diese haben für gewöhnlich wenigstens getrennte Programmdateneingänge und Operandeneingänge. Bei DSPs ist es also möglich, gleichzeitig einen neuen Programm­ befehl und einen neuen Operanden einzulesen.
Zum Speichern der benötigten Programm- und Operandendaten wird üblicherweise jeweils ein separater Speicher vorgesehen, so daß eine Schaltungsanordnung mit einem DSP immer einen Programmdatenspeicher und einen Operandenspeicher aufweist. Als derartige Speicher kommen beispielsweise SRAMs (Statische Speicher mit wahlfreiem Zugriff) in Frage. Es ist bekannt, statt dessen auch jeweils ein DRAM (Dynamischer Speicher mit wahlfreiem Zugriff) mit nachgeschaltetem Cache-Speicher ein­ zusetzen. DRAMs haben gegenüber SRAMs den Vorteil, kostengün­ stiger und platzsparender zu sein. Da sie jedoch langsamer sind als SRAMs, ist es notwendig, diese Geschwindigkeitsein­ buße durch einen schnellen Cache-Speicher, der beispielsweise wieder ein SRAM sein kann, wettzumachen. Ein Cache-Speicher ist ein relativ schneller Speicher mit kleiner Speicherkapa­ zität, in den mehrere Daten aus dem relativ langsameren, grö­ ßeren, vorgelagerten eigentlichen Datenspeicher ladbar sind, so daß Zugriffe des DSPs auf diese Daten beschleunigt erfol­ gen können.
Benötigt der DSP zu einem Zeitpunkt Daten, die augenblicklich nicht im Cache-Speicher vorhanden sind, tritt ein sogenannter Cache-Miss auf. Es ist dann notwendig, die Arbeit des Prozes­ sors zu unterbrechen und ihn anzuhalten. Dies kann beispiels­ weise durch Deaktivierung seines Arbeitstaktes erfolgen. Wäh­ rend der Prozessor angehalten ist, ist der Cache-Speicher mit den aktuell von ihm nachgefragten Daten zu laden, wobei zu­ sätzlich weitere Daten nachgeladen werden, die mit einiger Wahrscheinlichkeit im folgenden ebenfalls vom Prozessor nach­ gefragt werden. Dies können beispielsweise Daten sein, die in unmittelbarer Nähe der aktuell nachgefragten Daten gespei­ chert sind. Im Falle des Cache-Speichers für einen Programm­ datenspeicher sind dies die im abzuarbeitenden Programm adressenmäßig folgenden Programmbefehle.
Beim aufeinen Cache-Miss folgenden Nachladen eines Cache-Speichers ist es, wie erwähnt, erforderlich, den Prozessor anzuhalten. Die für das Nachladen des jeweiligen Cache-Spei­ chers vorgesehene Cache-Steuerung übermittelt zu diesem Zweck ein entsprechendes Haltesignal an den Prozessor. Im Falle ei­ nes DSPs ist für den Programmdaten-Cache und den Operandenda­ ten-Cache jeweils eine Cache-Steuerung vorhanden, die während des Nachladens des jeweiligen Cache-Speichers je ein Haltesi­ gnal erzeugen. Bei gleichzeitig in beiden Cache-Speichern auftretenden Cache-Misses wird der DSP so lange angehalten, bis beide Haltesignale wieder inaktiv werden.
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsan­ ordnung mit einem Prozessor anzugeben, der erste und zweite Eingänge aufweist, an die Daten anlegbar sind, die innerhalb desselben Taktzyklus vom Prozessor einlesbar sind, bei der ein verbesserter Betrieb des Prozessors möglich ist.
Diese Aufgabe wird gemäß einer Schaltungsanordnung nach An­ spruch 1 gelöst. Weiterbildungen und Ausgestaltungen der Er­ findung sind den Unteransprüchen zu entnehmen.
Erfindungsgemäß ist es vorgesehen, die an die ersten Eingänge des Prozessors anlegbaren Daten und die an seine zweiten Ein­ gänge anlegbaren Daten in ein- und demselben Datenspeicher zu speichern. Um dennoch ein gleichzeitiges Einlesen an den er­ sten und zweiten Eingängen des Prozessors zu ermöglichen, ist es vorgesehen, ihnen jeweils einen Cache-Speicher vorzuschal­ ten. Beide Cache-Speicher sind dabei über denselben ersten Datenbus mit dem gemeinsamen Datenspeicher verbunden. Daher sind bei der Erfindung die beiden Cache-Speicher niemals gleichzeitig nachladbar. In beiden Cache-Speichern gleichzei­ tig auftretende Cache-Misses sind jedoch äußerst selten.
Die Erfindung sieht vor, statt jeweils eine Datenspeichers zum Speichern von Daten, die über verschiedene Eingänge des Prozessors einzulesen sind, nur einen gemeinsamen Datenspei­ cher vorzusehen. Hieraus resultiert der Vorteil, daß der ge­ meinsame Datenspeicher beliebig auf die unterschiedlichen Speicheranforderungen für die an die ersten und zweiten Ein­ gänge des Prozessors anzulegenden Daten anpaßbar ist. Seine Speicheraufteilung kann nämlich flexibel vorgenommen werden. Sie kann damit an die Anforderungen unterschiedlicher vom Prozessor zu verarbeitender Programme und Operanden bzw. Da­ ten angepaßt werden.
Eine Ausführungsform der Erfindung sieht vor, daß der Prozes­ sor ein digitaler Signalprozessor ist und die ersten und zweiten Eingänge Operandeneingänge sind, wobei alle einzule­ senden Operanden im gemeinsamen Datenspeicher speicherbar sind.
In einer weiteren Ausgestaltung der Erfindung ist es vorgese­ hen, daß der Prozessor ein digitalter Signalprozessor ist, dessen erste Eingänge Programmdateneingänge und dessen zweite Eingänge Operandeneingänge sind, wobei sowohl die einzulesen­ den Programmdaten, das heißt die Programmbefehle, als auch die einzulesenden Operanden im gemeinsamen Datenspeicher speicherbar sind.
Die Erfindung bietet den Vorteil, den gemeinsamen Datenspei­ cher flexibel aufzuteilen und somit an den aktuellen Bedarf an den verschiedenen Datenarten anzupassen. Bei der zuletzt geschilderten Ausführungsform der Erfindung bedeutet dies beispielsweise, daß bei einer geringeren Anzahl von zu spei­ chernden Programmdaten im zur Verfügung stehenden Datenspei­ cher entsprechend mehr Operanden speicherbar sind und umge­ kehrt. Bei getrennten Programm- und Datenspeichern, wie sie beim Stand der Technik vorgesehen sind, müssen diese dagegen von vornherein so dimensioniert sein, daß sie den maximalen Speicheranforderungen aller denkbaren Anwendungsfälle gerecht werden, und zwar jeweils getrennt sowohl für die Programmda­ ten, als auch für die Operanden. Bei der Erfindung kann im Gegensatz dazu der gemeinsame Datenspeicher kleiner dimensio­ niert werden als die Summe der maximal notwendigen Speicher­ kapazitäten von getrennten Datenspeichern.
Die Ausführungsform der Erfindung, bei der der Datenspeicher sowohl zum Speichern von Operanden als auch von Programmdaten dient, hat den weiteren Vorteil, daß zeitaufwendige Daten­ transfers zwischen getrennten Operandenspeicher und Programm­ speicher entfallen können. Statt dessen kann innerhalb des ge­ meinsamen Datenspeichers einfach eine Umadressierung bzw. ein Verschieben der gespeicherten Daten erfolgen. Es ist hierfür, anders als beim Stand der Technik, keine Datenübertragung über den Prozessor notwendig, die in der Regel mehrere Takt­ zyklen benötigt.
Insbesondere bei DRAMs existiert eine physikalisch kleinste sinnvoll realisierbare Speichereinheit, eine sogenannte Spei­ cherbank. Ihre Form ist, bedingt durch die notwendigen Adreß­ decoder und andere Peripherie, annähernd quadratisch. Ein DRAM wird nun für gewöhnlich durch Parallel- oder Reihen­ schaltung mehrerer solcher Banks hergestellt. Der bei der Er­ findung vorgesehene gemeinsame Datenspeicher anstelle von zwei getrennten Datenspeichern bietet auch bei Wahl einer Speicherkapazität für den gemeinsamen Datenspeicher, die der Summe der Speicherkapazitäten der getrennten Datenspeicher beim Stand der Technik entspricht, folgenden Vorteil: Bei gleicher Speicherkapazität entspricht die Anzahl der Banks oder Speicherbänke beim erfindungsgemäßen gemeinsamen Daten­ speicher der Summe der Anzahl der Banks der beiden getrennten Datenspeicher beim Stand der Technik. Da es nun jedoch ein einziger Datenspeicher ist, ist es möglich, eine größere An­ zahl von Banks parallel zu schalten, so daß sich mühelos eine größere Wortbreite des gemeinsamen Datenspeichers der Erfin­ dung ergibt, als dies bei den einzelnen Datenspeichern des Standes der Technik der Fall ist. Dementsprechend ergibt sich für die Datenübertragung zwischen dem Datenspeicher und jedem der beiden Cache-Speicher eine höhere Bandbreite, das heißt eine höhere Übertragungsgeschwindigkeit als beim Stand der Technik.
Wie bereits erwähnt, erfolgt eine Datenübertragung zwischen dem Datenspeicher und den Cache-Speichern beim Nachladen der letzteren bei jedem auftretenden Cache-Miss. Tritt zu einem Zeitpunkt lediglich ein Cache-Miss in einem der beiden Cache­ speicher auf, ist bei der Erfindung daher ein deutlicher Ge­ schwindigkeitsvorteil gegenüber dem Stand der Technik zu ver­ zeichnen. Im Falle von in beiden Cache-Speichern gleichzeitig auftretenden Cache-Misses ist - wie bereits erwähnt - ein gleichzeitiges Nachladen aufgrund des gemeinsamen Datenspei­ chers und des gemeinsamen ersten Datenbusses zwischen den beiden Cache-Speichern und dem Datenspeicher zwar nicht mög­ lich. Das Nachladen der beiden Cache-Speicher muß also nach­ einander durchgeführt werden. Durch die aufgrund der Erfin­ dung erzielbare höhere Wortbreite des gemeinsamen Datenspei­ chers bzw. des ersten Datenbusses gegenüber derjenigen bei getrennten Datenspeichern und Bussen ist die erzielbare Da­ tenrate jedoch auch in diesem Fall ausreichend hoch.
Im Falle, daß die ersten Eingänge des Prozessors Programmda­ teneingänge und die zweiten Eingänge Operandeneingänge sind, und folglich der erste Cache-Speicher zum Zwischenspeichern von Programmdaten und der zweite Cache-Speicher zum Zwischen­ speichern von Operanden dient, ist es besonders vorteilhaft, vorzusehen, den zweiten Datenbus unidirektional und den drit­ ten Datenbus bidirektional auszuführen, wobei über den drit­ ten Datenbus zusätzlich Operanden und Programmdaten vom Pro­ zessor über den zweiten Cache-Speicher in den Datenspeicher übertragbar sind. Vorteilhaft ist hierbei, daß zur Realisie­ rung eines unidirektionalen zweiten Datenbusses ein geringe­ rer Aufwand notwendig ist, als wenn dieser bidirektional wä­ re. Gleichzeitig sind jedoch Programmdaten über den dritten Datenbus in den zweiten Cache-Speicher und anschließend über den ersten Datenbus in den gemeinsamen Datenspeicher schreib­ bar. Alternativ hierzu kann ein vierter Datenbus zwischen dem Prozessor und dem Datenspeicher vorhanden sein, über den un­ ter Umgehung des zweiten Cache-Speichers Operanden und Pro­ grammdaten direkt in den Datenspeicher schreibbar sind. Beide Alternativen sind nur möglich, weil für die Operanden und Programmdaten derselbe Datenspeicher vorgesehen ist. Der dritte Datenbus zur Übertragung von Operanden ist ohnehin in aller Regel bidirektional auszugestalten, da es notwendig ist, vom Prozessor erzeugte Operanden im Datenspeicher zu speichern. Die Notwendigkeit, auch durch den Prozessor er­ zeugte Programmdaten zu speichern, besteht beispielsweise bei den sogenannten selbstmodifizierenden Codes. Außerdem ist dies oftmals bei der Initialisierung des Prozessors notwen­ dig.
Die Erfindung wird im folgenden anhand der Figuren näher er­ läutert.
Fig. 1 zeigt ein Ausführungsbeispiel der Erfindung,
Fig. 2 zeigt eine Ausführung eines Details aus Fig. 1.
Fig. 1 zeigt eine Schaltungsanordnung mit einem digitalen Signalprozessor DSP, einem ersten Cache-Speicher C1, der ein Programm-Cache ist, einem zweiten Cache-Speicher C2, der ein Daten-Cache ist, einer Cache-Steuerung CTR sowie einem Daten­ speicher MEM. Der Datenspeicher MEM ist über einen ersten Da­ tenbus D1 mit den beiden Cache-Speichern C1, C2 verbunden. Der Prozessor DSP weist erste Eingänge IN1 auf, die über ei­ nen zweiten Datenbus D2, der ein Programmdatenbus ist, mit dem ersten Cache-Speicher C1 verbunden sind. Der Prozessor DSP weist auch zweite Eingänge IN2 auf, die über einen drit­ ten Datenbus D3, der ein Operandenbus ist, mit dem zweiten Cache C2 verbunden sind. Auf dem zweiten Datenbus D2 befind­ liche Daten, die somit an den ersten Eingängen IN1 des Pro­ zessors DSP anliegen, und auf dem dritten Datenbus D3 befind­ liche Operanden, die somit an den zweiten Eingängen IN2 an­ liegen, sind innerhalb desselben Zyklus eines Arbeitstaktes CLK des Prozessors DSP über die Eingänge IN1, IN2 in entspre­ chende Register P_REG, OP_REG einlesbar. Im Falle der ersten Eingänge IN1 handelt es sich dabei um ein Programmbefehlregi­ ster P_REG, im Falle der zweiten Eingänge IN2 um ein Operan­ denregister OP_REG.
Im Datenspeicher MEM sind sowohl die über die ersten Eingänge IN1 einzulesenden Programmdaten als auch die über die zweiten Eingänge IN2 des Prozessors DSP einzulesenden Operanden spei­ cherbar. Die Cache-Steuerung CTR ist in der Lage, sowohl die beiden Cache-Speicher C1, C2, als auch den Datenspeicher MEM über entsprechende Adreßbusse C1ADR, C2ADR, MEMADR zu adres­ sieren. Auf diese Weise sind zum einen Programmdaten aus dem Datenspeicher MEM über den ersten Datenbus D1 in den Pro­ gramm-Cache C1 ladbar, während der Daten-Cache C2 durch die Cache-Steuerung CTR für diese Daten sperrbar ist. Anderer­ seits sind über den ersten Datenbus D1 aus dem Datenspeicher MEM auch Operanden in den Daten-Cache C2 übertragbar, während der Programm-Cache C1 für diese Art von Daten sperrbar ist.
Die Cache-Steuerung CTR ist mit dem Prozessor DSP über einen Programm-Adreßbus ADR1 und einen Operanden-Adreßbus ADR2 ver­ bunden. Über diese beiden Busse ADR1, ADR2 übermittelt der Prozessor DSP Datenanforderungen an die Cache-Steuerung CTR. Beim dargestellten Ausführungsbeispiel sind dies die Adressen der jeweils gerade vom Prozessor benötigten Programmbefehle beziehungsweise Operanden. Die aktuelle Programmbefehladresse ist hierbei einem Programmzähler PC des Prozessors DSP ent­ nehmbar. Die Cache-Steuerung CTR nimmt einen Vergleich vor zwischen den vom Prozessor DSP angeforderten Programmadressen beziehungsweise Operandenadressen und denjenigen Adressen, die aktuell im jeweiligen Cache-Speicher C1, C2 gespeichert sind. Wird dabei festgestellt, daß das der jeweiligen Adresse zugeordnete Datum sich in dem Cache-Speicher C1, C2 befindet, wird dieses Datum aus dem Cache-Speicher ausgelesen und dem Prozessor DSP über den zweiten D2 oder dritten D3 Datenbus übermittelt. Stellt die Cache-Steuerung CTR dagegen fest, daß ein Datum mit der angeforderten Adresse nicht im jeweiligen Cache-Speicher vorhanden ist, wird dieser Cache-Miss erkannt und die Cache-Steuerung CTR übermittelt ein Haltesignal D_WAIT an den Prozessor DSP, der daraufhin angehalten wird. Das Anhalten des Prozessors kann beispielsweise durch Deakti­ vierung seines Arbeitstaktes CLK erfolgen. Während der Pro­ zessor DSP angehalten wird, bewirkt die Steuerschaltung CTR durch entsprechende Adressierung des Datenspeichers MEM und des entsprechenden Cache-Speichers C1, C2 ein Nachladen der angeforderten Daten in diesen Cache-Speicher.
Im folgenden soll die Funktion und der Aufbau der Cache-Steuerung CTR näher erläutert werden. Sie weist zwei im we­ sentlichen identisch aufgebaute Teilsteuerung CTR1, CTR2 auf. Die eine Teilsteuerung CTR1 ist mit dem Programm-Adreßbus ADR1 verbunden und ist für die Steuerung des Programm-Caches C1 zuständig. Die andere Teilsteuerung CTR2 ist mit dem Ope­ randen-Adreßbus ADR2 verbunden und ist für die Steuerung des Daten-Caches C2 zuständig. Der Zugriff der beiden Teilsteue­ rungen CTR1, CTR2 auf den Datenspeicher-Adreßbus MEMADR er­ folgt über einen Multiplexer MUX.
Jede der Teilsteuerungen CTR1, CTR2 der Cache-Steuerung CTR weist eine Zeitberechnungseinheit T1, T2 auf, die identisch aufgebaut sind. Den Aufbau der Zeitberechnungseinheit T1 der ersten Teilsteuerung CTR1 für den Programm-Cache C1 zeigt Fi­ gur 2. Sie weist einen TAG-Speicher auf, der die (auf den Da­ tenspeicher MEM bezogenen) Adressen der derzeit im zugehöri­ gen Cache-Speicher C1 befindlichen Daten beinhaltet. Die über den Programm-Adreßbus ADR1 vom Prozessor DSP übermittelten Anforderungen in Form von Programmbefehlsadressen werden mit­ tels Vergleichsschaltungen COMP mit den Inhalten des TAG- Speichers verglichen. Die Ausgänge dieser Vergleichsschaltun­ gen sind durch ODER-Gatter OR miteinander verknüpft, deren Ausgangssignal HIT einen hohen Pegel aufweist, wenn einer der Adressenvergleiche ein positives Ergebnis hatte.
Durch einen nachgeschalteten ersten Inverter I1 wird das HIT-Signal zu einem Miss-Signal invertiert, welches bei einem Cache-Miss, das heißt bei einer vom Prozessor DSP nachgefrag­ ten Adresse, die sich nicht im TAG-Speicher befindet, einen hohen Pegel aufweist. Im Falle eines Cache-Misses ist das Miss-Signal nur für die Dauer eines Zyklus des Arbeitstaktes CLK von einem hohen Pegel. Mittels eines Schieberegisters SR, das im vorliegenden Beispiel dreistufig ist und das mittels eines vom Arbeitstakt CLK abgeleiteten Taktes CLK′ getaktet ist, erfolgt die Erzeugung eines Haltesignals P_WAIT. Hierzu sind vier weitere ODER-Gatter OR1 bis OR4 in Reihe geschal­ tet, wobei jeweils ein Eingang jedes der ersten drei ODER-Gatters OR1 bis OR3 mit einem der Ausgänge der Schieberegi­ sterstufen SR verbunden ist. Ein Eingang des vierten ODER-Gatters OR4 ist mit einem Eingang eines zweiten Inverters I2 verbunden, an dem eine logische "0" anliegt. Hierdurch liegt am entsprechenden Eingang des vierten ODER-Gatters OR4 immer eine "0" an, so daß das Haltesignal P_WAIT immer dann HIGH ist, wenn das Miss-Signal einen hohen Pegel aufweist und wäh­ rend der darauffolgenden drei Zyklen des Taktes CLK. Somit bedingt die Periodendauer des Taktes CLK und die Anzahl der Stufen des Schieberegisters SR eine Zeitdauer t1, während der bei einem Cache-Miss das Haltesignal P_WAIT einen hohen Pegel aufweist.
Der Fig. 1 ist zu entnehmen, daß die Zeitberechnungseinheit T2 der zweiten Teilsteuerung CTR2 identisch wie die anhand Fig. 2 erläuterte Zeitberechnungseinheit T1 der ersten Teil­ steuerung CTR1 aufgebaut ist. Die einzigen Unterschiede sind, daß den Vergleichsschaltungen COMP keine Programmbefehladres­ sen über den Programm-Adreßbus ADR1, sondern Operandenadres­ sen über den Operanden-Adreßbus ADR2 zuführbar sind und daß am Eingang des zweiten Inverters I2 keine logische "0" an­ liegt, sondern das Haltesignal P_WAIT der ersten Teilsteue­ rung CTR1. Das Ausgangssignal der zweiten Teilsteuerung CTR2 ist das Haltesignal D_WAIT der Cache-Steuerung CTR. Dieses weist immer dann einen hohen Pegel auf, der ein Halten des Prozessors DSP bewirkt, wenn entweder das Haltesignal P_WAIT der ersten Teilsteuerung CTR1 einen hohen Pegel aufweist, oder wenn von der zweiten Teilsteuerung CTR2 ein Cache-Miss festgestellt worden ist.
Das Haltesignal P_WAIT der ersten Teilsteuerung CTR1 ist mit einem Steuereingang des Multiplexers MUX verbunden, so daß immer, wenn das Haltesignal P_WAIT einen hohen Pegel auf­ weist, ein Zugriff der ersten Teilsteuerung CTR1 auf den Da­ tenspeicher-Adreßbus MEMADR möglich ist und ansonsten die zweite Teilsteuerung CTR2 auf diesen zugreifen kann.
In analoger Weise zur ersten Teilsteuerung CTR1 (siehe Fig. 2) erfolgt innerhalb der zweiten Teilsteuerung CTR2 eine Ver­ zögerung des Miss-Signals durch ein mehrstufiges Schieberegi­ ster um eine Zeitdauer t2. Das Haltesignal D_WAIT der Cache- Steuerung CTR hat daher bei einem Cache-Miss im Programm- Cache C1 eine Zeitdauer t1, bei einem Cache-Miss im Daten-Cache C2 eine Zeitdauer t2 und bei einem gleichzeitig auftre­ tenden Cache-Miss in beiden Caches-Speichern C1, C2 eine Zeitdauer t3, welches die Summe der beiden Zeitdauern t1 und t2 beträgt.
Beim Ausführungsbeispiel nach Fig. 1 hat der erste Datenbus D1 eine Breite von 256 Bit, so daß eine hohe Bandbreite zwi­ schen dem Datenspeicher MEM und den Cache-Speichern C1, C2 gewährleistet ist. Dagegen hat der Programm-Datenbus D2 und der Operanden-Datenbus D3 nur jeweils eine Breite von 16 Bit, da die meisten digitalen Signalprozessoren DSP nur über Ein­ gänge mit einer beschränkten Wortbreite verfügen.
Beim erläuterten Ausführungsbeispiel ist der Programm-Daten­ bus D2 unidirektional, während der Operanden-Datenbus D3 gleichzeitig ein vierter Datenbus D4 zur Übertragung von Da­ ten vom Prozessor DSP zum Datenspeicher MEM ist. Der dritte Datenbus D3 ist also bidirektional. Der gemeinsame Datenspei­ cher MEM ermöglicht, daß trotz des unidirektionalen Programm­ datenbusses D2 Programmbefehle vom Prozessor DSP für eine spätere Abarbeitung im Datenspeicher MEM gespeichert werden können. Dies erfolgt (ebenso wie das Speichern von Operanden) über den Operanden-Datenbus D3, den zweiten Cache-Speicher C2 und den ersten Datenbus D1. Dies ist möglich, weil der Daten­ speicher MEM gleichzeitig als Programmspeicher und als Ope­ randenspeicher für den Prozessor DSP fungiert. Ein Speichern von durch den Prozessor DSP erzeugten Programmbefehlen ist beispielsweise im Falle von selbstmodifizierenden Codes be­ ziehungsweise selbstmodifizierenden Programmen sowie bei Pro­ zessorinitialisierungen notwendig.
Bei anderen Ausführungsbeispielen der Erfindung ist es auch möglich, daß der zweite Datenbus D2 kein Programmdatenbus, sondern ein zweiter Operandenbus ist. Dann sind die ersten Eingänge IN1 des Prozessors DSP weitere Operandeneingänge und der erste Cache-Speicher C1 kein Programm-Cache, sondern ein weiterer Daten-Cache.
Bei anderen Ausführungsbeispielen der Erfindung können wenig­ stens ein Teil der Ausgänge jedes der Cache-Speicher mit ei­ nem Teil ihrer Eingänge identisch sein, so daß es sich bei diesen um Ein-/Ausgänge handelt.

Claims (7)

1. Schaltungsanordnung mit folgenden Merkmalen:
  • - sie hat einen mit einem Takt (CLK) arbeitenden Prozessor (DSP) mit ersten (IN1) und zweiten (IN2) Eingängen, einen Datenspeicher (MEM) mit Ausgängen sowie einen ersten (C1) und einen zweiten (C2) Cache-Speicher mit Eingängen und Ausgängen,
  • - die ersten (IN1) und zweiten (IN2) Eingänge des Prozessors (DSP) dienen zum Anlegen von Daten, die innerhalb desselben Taktzyklus vom Prozessor eingelesen werden,
  • - der Datenspeicher (MEM) dient zum Speichern der Daten,
  • - alle Ausgänge des Datenspeichers (MEM) sind über einen er­ sten Datenbus (D1) mit den Eingänge beider Cache-Speicher (C1, C2) verbunden,
  • - über einen zweiten Datenbus (D2) ist jeder der ersten Ein­ gänge (IN1) des Prozessors (DSP) mit je einem der Ausgänge des ersten Cache-Speichers (C1) verbunden,
  • - über einen dritten Datenbus (D3) ist jeder der zweiten Ein­ gänge (IN2) des Prozessors mit je einem der Ausgänge des zweiten Cache-Speichers (C2) verbunden.
2. Schaltungsanordnung nach Anspruch 1 mit folgenden Merkma­ len:
  • - bei einem Cache-Miss wird der jeweilige Cache-Speicher (C1; C2) nachgeladen, während der Prozessor (DSP) mindestens für die Zeitdauer (t1; t2) des Nachladens angehalten wird,
  • - treten Cache-Misses in beiden Cache-Speichern (C1, C2) gleichzeitig auf, wird zunächst immer der erste Cache­ speicher (C1) und dann erst der zweite Cache-Speicher (C2) nachgeladen, während der Prozessor (DSP) für die Zeitdauer (t3) des Nachladens beider Cache-Speicher angehalten wird.
3. Schaltungsanordnung nach Anspruch 2 mit einer Cache-Steuerung (CTR1, CTR2) mit folgenden Merkmalen:
  • - ihr werden vom Prozessor (DSP) Datenanforderungen (ADR1, ADR2) zugeführt,
  • - sie dient einer den Datenanforderungen (ADR1, ADR2) ent­ sprechenden Adressierung der beiden Cache-Speicher (C1, C2) sowie bei Cache-Misses einem Nachladen der Cache-Speicher durch gleichzeitige Adressierung des Datenspeichers (MEM) und des entsprechenden Cache-Speichers (C1, C2),
  • - sie übermittelt während des Nachladens eines der Cache-Speicher oder beider Cache-Speicher genau ein Haltesignal (D_Wait) an den Prozessor (DSP), welches das Anhalten des Prozessors bewirkt.
4. Schaltungsanordnung nach einem der vorstehenden Ansprüche mit folgenden Merkmalen:
  • - der Prozessor (DSP) ist ein digitaler Signalprozessor,
  • - seine ersten (IN1) und zweiten (IN2) Eingänge sind Operan­ deneingänge,
  • - im Datenspeicher (MEM) werde Operanden zum Anlegen an die ersten (IN1) und zweiten (IN2) Eingänge gespeichert.
5. Schaltungsanordnung nach einem der Ansprüche 1 bis 3 mit folgenden Merkmalen:
  • - der Prozessor (DSP) ist ein digitaler Signalprozessor,
  • - seine ersten Eingänge (IN1) sind Programmdateneingänge und seine zweiten Eingänge (IN2) sind Operandeneingänge,
  • - im Datenspeicher (MEM) werden Programmdaten zum Anlegen an die ersten Eingänge (IN1) und Operanden zum Anlegen an die zweiten Eingänge (IN2) gespeichert.
6. Schaltungsanordnung nach Anspruch 5 mit folgenden Merkma­ len:
  • - der zweite Datenbus (D2) ist unidirektional und dient der Übertragung von Programmdaten vom ersten Cache-Speicher (C1) zum Prozessor (DSP),
  • - es ist ein vierter Datenbus (D4) vorhanden, über den Ope­ randen und Programmdaten vom Prozessor (DSP) zum Datenspei­ cher (MEM) übertragen werden.
7. Schaltungsanordnung nach Anspruch 6 mit folgenden Merkma­ len:
  • - der dritte Datenbus (D3) ist bidirektional und identisch mit dem vierten Datenbus (D4),
  • - er dient sowohl der Übertragung von Operanden vom zweiten Cache-Speicher (C2) zum Prozessor (DSP) als auch von Ope­ randen und Programmdaten vom Prozessor über den zweiten Cache-Speicher (C2) in den Datenspeicher (MEM).
DE19711322A 1997-03-18 1997-03-18 Schaltungsanordnung mit einem Prozessor Ceased DE19711322A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19711322A DE19711322A1 (de) 1997-03-18 1997-03-18 Schaltungsanordnung mit einem Prozessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19711322A DE19711322A1 (de) 1997-03-18 1997-03-18 Schaltungsanordnung mit einem Prozessor

Publications (1)

Publication Number Publication Date
DE19711322A1 true DE19711322A1 (de) 1998-02-26

Family

ID=7823814

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19711322A Ceased DE19711322A1 (de) 1997-03-18 1997-03-18 Schaltungsanordnung mit einem Prozessor

Country Status (1)

Country Link
DE (1) DE19711322A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0557884A1 (de) * 1992-02-28 1993-09-01 Motorola, Inc. Datenprozessor mit einem Cachespeicher

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0557884A1 (de) * 1992-02-28 1993-09-01 Motorola, Inc. Datenprozessor mit einem Cachespeicher

Similar Documents

Publication Publication Date Title
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE69734129T2 (de) Hierarchisches Datenverarbeitungssystem mit symetrischen Multiprozessoren
DE2350884C2 (de) Adreßumsetzungseinheit
DE3151745C2 (de)
DE2240433C3 (de) Hierarchische Datenspeicheranordnung für mehrere über Pufferspeicher angeschlossene Einheiten und ein Verfahren zu deren Betrieb
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE2547488C2 (de) Mikroprogrammierte Datenverarbeitungsanlage
DE2847960A1 (de) Speichersteuereinrichtung
DE2841041A1 (de) Datenverarbeitungsanlage mit mindestens zwei mit einem schnellen arbeitsspeicher ausgeruesteten prozessoren
DE4225228A1 (de) Vorabrufpuffer und einen derartigen vorabrufpuffer verwendendes informationsverarbeitungssystem
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE2117581C3 (de) Einrichtung zur Adressenprüfung
DE19526008A1 (de) Vertikal partitionierter, primärer Befehls-Cache-Speicher
DE2912073C2 (de)
DE2906685C2 (de)
DE3919802A1 (de) Speicherbaustein mit vektorprozessoren und einem skalarprozessor
DE10040267A1 (de) Prozessor-Speicher-System
DE2749884C2 (de)
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers
DE19711322A1 (de) Schaltungsanordnung mit einem Prozessor
DE19713178A1 (de) Schaltungsanordnung mit einem Prozessor und einem Datenspeicher
DE2605617A1 (de) Schaltungsanordnung zum adressieren von daten
DE10025952B4 (de) Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen
EP0525214A1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts

Legal Events

Date Code Title Description
OAV Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection