DE19713178A1 - Circuit arrangement with a processor and a data memory - Google Patents

Circuit arrangement with a processor and a data memory

Info

Publication number
DE19713178A1
DE19713178A1 DE19713178A DE19713178A DE19713178A1 DE 19713178 A1 DE19713178 A1 DE 19713178A1 DE 19713178 A DE19713178 A DE 19713178A DE 19713178 A DE19713178 A DE 19713178A DE 19713178 A1 DE19713178 A1 DE 19713178A1
Authority
DE
Germany
Prior art keywords
data
cache
memory
processor
program
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.)
Withdrawn
Application number
DE19713178A
Other languages
German (de)
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 DE19713178A priority Critical patent/DE19713178A1/en
Priority to PCT/DE1998/000617 priority patent/WO1998044421A1/en
Publication of DE19713178A1 publication Critical patent/DE19713178A1/en
Withdrawn 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The invention relates to a circuit with two cache memories (C1, C2) connected in parallel between a processor (DSP) and a data memory pertaining thereto. Data can be alternately read therefrom while the other cache memory can be simultaneously reloaded with data from the data memory (MEM), thereby enabling real-time continuous data flow. The inventive circuit is particularly suitable for use in digital signal processors.

Description

Die Erfindung betrifft eine Schaltungsanordnung mit einem Prozessor und einem Datenspeicher. Im Datenspeicher sind durch den Prozessor zu verarbeitende Daten gespeichert. Dies können entweder Programmbefehle oder Operanden sein.The invention relates to a circuit arrangement with a Processor and a data storage. Are in the data store Data to be processed by the processor are stored. This can either be program instructions or operands.

Es ist bekannt, zur Anpassung der Datenrate eines relativ langsamen Datenspeichers an die im Vergleich dazu höhere Ver­ arbeitungsgeschwindigkeit des Prozessors sogenannte Cache-Spei­ cher einzusetzen. Diese dienen zur Zwischenspeicherung von im Datenspeicher gespeicherten Daten, bei denen die Wahr­ scheinlichkeit relativ hoch ist, daß der Prozessor in der nächsten Zeit auf sie zugreift. Als Datenspeicher kommen bei­ spielsweise häufig DRAMs (dynamische Speicher mit wahlfreiem Zugriff) zum Einsatz, die relativ kostengünstig sind, jedoch auch relativ langsam. Als Cache-Speicher werden dagegen bei­ spielsweise SRAMs (statische Speicher mit wahlfreiem Zugriff) eingesetzt, die gegenüber DRAMs zwar großflächiger und teu­ rer, aber andererseits auch wesentlich schneller sind.It is known to adjust the data rate of a relative slow data storage to the comparatively higher ver Working speed of the processor so-called cache memory cher. These are used for temporary storage of data stored in the data memory in which the true is probably relatively high that the processor in the accesses them next time. Come as data storage for example often DRAMs (dynamic memories with random Access) that are relatively inexpensive, however also relatively slow. In contrast, as cache memory for example SRAMs (static random access memory) used, which are larger and expensive compared to DRAMs rer, but also much faster.

Zum Betrieb der geschilderten Schaltungsanordnung ist eine Cache-Steuerung notwendig, die Datenanforderungen des Prozes­ sors erhält und daraufhin den Cache-Speicher so adressiert, daß die nachgefragten Daten an den Prozessor ausgegeben wer­ den. Die Datenanforderungen resultieren aus aktuell vom Pro­ zessor zu verarbeitenden Programmbefehlen. Stellt die Cache-Steuerung fest, daß die aktuell nachgefragten Daten sich nicht im Cache-Speicher befinden, handelt es sich um einen sogenannten Cache-Miss. In diesem Fall muß die Cache-Steuerung die angeforderten Daten erst vom Datenspeicher in den als Zwischenspeicher fungierenden Cache-Speicher nachla­ den und gleichzeitig die Arbeit des Prozessors, beispielswei­ se durch Deaktivierung seines Arbeitstaktes, unterbrechen (sogenanntes "Anhalten" des Prozessors). Hierzu ist die Cache-Steuerung in der Lage, nicht nur den Cache-Speicher, sondern auch den Datenspeicher zu adressieren. Gleichzeitig wird nicht nur das aktuell vom Prozessor nachgefragte Datum vom Datenspeicher in den Cache-Speicher übertragen, sondern weitere Daten, bei denen die Wahrscheinlichkeit relativ hoch ist, daß der Prozessor demnächst auf sie zugreifen wird. Dies können beispielsweise Daten sein, die an auf die Adresse des aktuell angeforderten Datums nachfolgenden Adressen im Daten­ speicher abgelegt sind. Letzteres trifft insbesondere zu, wenn die im Datenspeicher gespeicherten Daten Programmbefehle sind, da mit der Ausnahme von Sprungbefehlen Programme übli­ cherweise seriell in Richtung aufsteigender Adressen vom Pro­ zessor abgearbeitet werden.For the operation of the circuit arrangement described is a Cache control necessary, the data requirements of the process sors and then addresses the cache memory so that the requested data is output to the processor the. The data requirements result from the current Pro program instructions to be processed. Provides the Cache control determines that the currently requested data is is not in the cache, it is a so-called cache miss. In this case, the Cache control the requested data only from the data store in the cache acting as a cache the and at the same time the work of the processor, for example  by interrupting his work cycle (so-called "stopping" the processor). For this is the Cache control capable of not only the cache memory, but also to address the data storage. At the same time is not only the date currently requested by the processor transferred from the data store to the cache memory, but other data where the probability is relatively high is that the processor will access them soon. This can be, for example, data that is sent to the address of the currently requested date following addresses in the data memory are stored. The latter is particularly true if the data stored in the data memory program commands are, because with the exception of jump commands, programs are usual serially towards ascending addresses from the Pro processor are processed.

Ist nach einem aufgetretenen Cache-Miss der Cache-Speicher wieder mit neuen Daten geladen worden, kann die Cache-Steuer­ ung erneut die Datenübertragung zwischen Cache-Speicher und Prozessor starten, so daß der Prozessor seine zuvor un­ terbrochene Arbeit mit der weiteren Verarbeitung des zuletzt geladenen Programmbefehls wieder aufnehmen kann. Bei einem erneuten Cache-Miss wiederholt sich der beschriebene Ablauf.Is the cache memory after a cache miss has occurred The cache tax can be loaded again with new data again the data transfer between cache memory and processor start, so that the processor its previously un interrupted work with the further processing of the last loaded program command can resume. At a repeated cache miss the procedure described is repeated.

Außer dem oben beschriebenen Lese-Caching ist auch ein Schreib-Caching möglich. Dabei übermittelt der Prozessor die­ jenigen Adressen an die Cache-Steuerung, an denen von ihm er­ zeugte Daten im Datenspeicher MEM gespeichert werden sollen. Die Cache-Steuerung bewirkt dann eine entsprechende Übertra­ gung dieser Daten vom Prozessor über den Cache-Speicher in den Datenspeicher. Bevor dieser gesamte Vorgang nicht abge­ schlossen ist, kann kein Lesen von Daten durch den Prozessor erfolgen.In addition to the read caching described above, there is also a Write caching possible. The processor transmits the those addresses to the cache controller at which he got it witnessed data to be stored in the data memory MEM. The cache control then causes a corresponding transfer this data from the processor via the cache memory the data storage. Before this entire process is completed is closed, the processor cannot read data respectively.

Insbesondere bei digitalen Signalprozessoren (DSP) ist es wünschenswert, daß der Datenfluß zwischen dem Datenspeicher und dem Prozessor kontinuierlich erfolgt. Beispielsweise bei Einsatz von Embedded DRAMs als Datenspeicher ist die Zu­ griffsgeschwindigkeit beim Lesen aber in Abhängigkeit von den Adressen unterschiedlich groß (sogenannter Burst-Zugriff). Zusätzlich besteht für die Speicheranbindung in DSP-Systemen die wichtige Anforderung der Echtzeitfähigkeit. Das bedeutet, daß die Programmabarbeitung nicht unvorhersehbar lange unter­ brochen werden darf.It is particularly true with digital signal processors (DSP) desirable that the data flow between the data store and the processor takes place continuously. For example at  The use of embedded DRAMs as data storage is the Zu grip speed when reading but depending on the Addresses of different sizes (so-called burst access). There is also a storage connection in DSP systems the important requirement of real-time capability. That means, that program execution is not taking an unpredictably long time may be broken.

Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsan­ ordnung mit einem Prozessor und einem zugehörigen Datenspei­ cher anzugeben, bei der der Datenfluß zwischen Speicher und Prozessor weitestgehend kontinuierlich erfolgt.The invention has for its object a circuit order with a processor and an associated data storage Specify where the data flow between memory and Processor is largely continuous.

Diese Aufgabe wird durch eine Schaltungsanordnung gemäß An­ spruch 1 gelöst. Weiterbildungen und Ausgestaltungen der Er­ findung sind in Unteransprüchen gekennzeichnet.This task is accomplished by a circuit arrangement according to An spell 1 solved. Developments and refinements of the Er invention are characterized in subclaims.

Erfindungsgemäß weist die Schaltungsanordnung zwei Cache-Spei­ cher auf, die als Zwischenspeicher für die vom Datenspei­ cher zum Prozessor (und ggf. umgekehrt) zu übertragenden Da­ ten dienen. Hierzu sind erste Anschlüsse der beiden Cache-Spei­ cher über einen ersten Datenbus mit Anschlüssen des Da­ tenspeichers und zweite Anschlüsse der Cache-Speicher über einen zweiten Datenbus mit den Anschlüssen des Prozessors verbunden. Die beiden Cache-Speicher sind also bezüglich al­ ler Anschlüsse sowohl des Datenspeichers als auch des Prozes­ sors parallel geschaltet, so daß vom Prozessor vorteilhafter­ weise abwechselnd aus ihnen ausgelesen oder in sie hineinge­ schrieben werden kann. Ebenso können auch abwechselnd Daten zwischen dem Datenspeicher und den Cache-Speichern übertragen werden.According to the invention, the circuit arrangement has two cache memories cher, which is used as a buffer for the data storage data to be transferred to the processor (and possibly vice versa) serve. For this purpose, first connections of the two cache memory are cher over a first data bus with connections of the Da memory and second connections of the cache memory a second data bus with the connections of the processor connected. The two cache memories are therefore al Connections of both the data storage and the process sors connected in parallel, so that the processor is more advantageous alternately read out of them or enter them can be written. Data can also alternate transferred between the data store and the caches will.

Eine Ausführungsform der Erfindung sieht vor, daß bei wenig­ stens einem der Cache-Speicher die ersten und zweiten An­ schlüsse wenigstens teilweise identisch sind. Es handelt sich bei einem solchen Cache-Speicher um einen Single-Port-Spei­ cher. An embodiment of the invention provides that with little At least one of the cache stores the first and second addresses conclusions are at least partially identical. It is about with such a cache memory around a single-port memory cher.  

Nach einer Weiterbildung der Erfindung ist es vorgesehen, daß jeweils abwechselnd Daten über den zweiten Datenbus zwischen einem der Cache-Speicher und dem Prozessor übertragen werden, während gleichzeitig Daten über den ersten Datenbus zwischen dem Datenspeicher und dem anderen Cache-Speicher übertragen werden. Dies hat den Vorteil, daß beispielsweise einer der Cache-Speicher bereits mit im Datenspeicher gespeicherten Da­ ten beschreibbar ist, die der Prozessor erst benötigt, nach­ dem er Daten aus dem anderen, derzeit aktuell auszulesenden Cache-Speicher verarbeitet hat. Insgesamt bietet die Erfin­ dung die Möglichkeit, über den ersten Datenbus in den einen Cache-Speicher zu schreiben oder aus ihm zu lesen und gleich­ zeitig über den zweiten Datenbus in den anderen Cache-Spei­ cher zu schreiben oder aus ihm zu lesen. Daher ist es z. B. möglich, entweder den einen Cache-Speicher aus dem Da­ tenspeicher nachzuladen und gleichzeitig aus dem anderen Cache-Speicher Daten zum Prozessor zu übertragen oder auch aus dem einen Cache-Speicher Daten in den Datenspeicher zu übertragen und gleichzeitig durch den Prozessor Daten aus dem anderen Cache-Speicher zu lesen oder in den anderen Cache-Speicher Daten einzuschreiben.According to a development of the invention, it is provided that alternately data over the second data bus between one of the cache memories and the processor are transferred, while simultaneously data over the first data bus between transferred to the data store and the other cache memory will. This has the advantage that, for example, one of the Cache memory already with data stored in the data memory is writable that the processor only needs after which he is currently reading out data from the other Cache processed. Overall, the Erfin offers the possibility of entering the first via the first data bus Write cache memory or read from it and the same in time via the second data bus in the other cache memory to write or read from it. Therefore, it is e.g. B. possible, either the one cache from the Da reload memory and simultaneously from the other Cache data to transfer to the processor or else data from the one cache memory to the data memory transferred and simultaneously data from the processor read another cache or into the other cache To write data.

Eine Weiterbildung der Erfindung sieht vor, daß die Schal­ tungsanordnung eine Cache-Steuerung und einen Programmspei­ cher aufweist, wobei die Cache-Steuerung einer Steuerung der Datenübertragung auf den beiden Datenbussen dient und im Pro­ grammspeicher Programmdaten mit durch den Prozessor abzuar­ beitenden Programmbefehlen gespeichert sind. Dabei ist vor­ teilhafterweise vorgesehen, daß die Programmdaten außer den Programmbefehlen wenigstens einen Cache-Ladebefehl beinhal­ ten, der an die Cache-Steuerung übermittelbar ist und der das Laden eines der Cache-Speicher mit zu einem späteren Zeit­ punkt aufgrund eines der Programmbefehle vom Prozessor benö­ tigten Daten aus dem Datenspeicher über den ersten Datenbus bewirkt. Dies hat den Vorteil, daß bereits Daten durch den Cache-Ladebefehl sozusagen "vorbestellt" werden, die aktuell noch gar nicht vom Prozessor benötigt werden. Sobald der Pro­ zessor sie aber später benötigt, liegen sie bereits im Cache-Spei­ cher vor. Durch die Cache-Ladebefehle ist gewährleistet, daß die entsprechenden "vorbestellten" Daten bereits im je­ weils nachzuladenden Cache-Speicher vorliegen, wenn der Pro­ zessor auf sie zugreifen möchte. Dabei kann das Nachladen ei­ nes der Cache-Speicher beispielsweise gleichzeitig zu einer Datenübertragung zwischen dem anderen Cache-Speicher und dem Prozessor über den zweiten Datenbus erfolgen.A further development of the invention provides that the scarf arrangement a cache controller and a program memory cher, wherein the cache controller a controller of the Data transmission on the two data buses serves and in the Pro program program with the processor program commands are stored. Here is before partially provided that the program data in addition to the Program instructions include at least one cache load instruction ten that can be transmitted to the cache controller and that Load one of the cache memories at a later time point due to one of the program instructions from the processor data from the data memory via the first data bus causes. This has the advantage that data is already saved by the Cache load command can be "pre-ordered", so to speak, the current  not yet needed by the processor. Once the pro If you need them later, they are already in the cache memory before. The cache load commands ensure that the corresponding "pre-ordered" data already in each because there is cache to be reloaded if the Pro processor wants to access them. The reloading can nes the cache memory, for example, simultaneously to one Data transfer between the other cache and the Processor via the second data bus.

Wenn ein Cache-Miss auftritt, muß der Prozessor grundsätzlich angehalten werden (wobei die Verarbeitung des jeweils im Be­ fehlsregister geladenen Programmbefehls unterbrochen wird), bis der Cache-Speicher wieder nachgeladen worden ist. Bei der Erfindung werden aufgrund der Cache-Ladebefehle Cache-Misses vermieden oder zumindest in ihrer Anzahl reduziert, so daß ein Anhalten des Prozessors entsprechend vermieden wird.In principle, if a cache miss occurs, the processor must are stopped (whereby the processing of the program command is interrupted), until the cache is reloaded. In the Invention become cache misses due to the cache load instructions avoided or at least reduced in number, so that stopping the processor is avoided accordingly.

Der Cache-Ladebefehl ist innerhalb der Programmdaten zwischen die einzelnen durch den Prozessor zu verarbeitenden Programm­ befehle eingefügt. Dabei erfolgt eine Verarbeitung der Pro­ grammbefehle nach einem Laden in ein Programmbefehlsregister des Prozessors durch den Prozessor, während die Cache-Lade­ befehle an die Cache-Steuerung übermittelbar sind, die wiederum entsprechend dem Cache-Ladebefehl einen der Cache-Spei­ cher mit den zukünftig benötigten Daten nachlädt. Es ist also erfindungsgemäß vorgesehen, bei der Programmierung des Prozessors außer den üblichen Programmbefehlen die erfin­ dungsgemäßen Cache-Ladebefehle mit zu programmieren und diese in einer Weise innerhalb des abzuarbeitenden Programmes anzu­ ordnen, daß zukünftig benötigte Daten bereits in einen der Cache-Speicher nachladbar sind, während der Prozessor noch aktuelle Daten aus dem anderen Cache-Speicher ausliest oder Daten in diesen hineinschreibt.The cache load instruction is within the program data the individual program to be processed by the processor commands inserted. The Pro is processed Gram commands after loading into a program command register of the processor through the processor while the cache is loading commands are communicable to the cache controller that again one of the cache memories according to the cache load instruction reloads with the data required in the future. It is thus provided according to the invention when programming the Processor in addition to the usual program instructions that invent to program cache load commands according to the invention and these in a way within the program to be processed arrange that future data is already in one of the Cache memories are reloadable while the processor is still reads out current data from the other cache or Writes data into it.

Eine Weiterbildung der Erfindung sieht vor, daß die Programm­ daten wenigstens einen Cache-Schreibbefehl enthalten, der ebenfalls an die Cache-Steuerung übermittelt wird und in ent­ sprechender Weise die Übertragung von Daten, die bereits vom Prozessor in einen der Cache-Speicher geschrieben wurden, von diesem über den ersten Datenbus in den Datenspeicher steuert. Somit ist es möglich, den Zeitpunkt des Einschreibens in den Datenspeicher zu bestimmen, so daß z. B. zuvor der erste Da­ tenbus für eine Datenübertragung zwischen dem Datenspeicher und dem jeweils anderen Cache-Speicher zur Verfügung steht.A further development of the invention provides that the program data contain at least one cache write command, the  is also transmitted to the cache controller and in ent speaking the transfer of data already from Processor written to one of the cache memories by controls this via the first data bus into the data memory. It is thus possible to register the time of registration in the Determine data storage so that, for. B. previously the first da tenbus for data transfer between the data storage devices and the other cache is available.

Eine weitere Weiterbildung der Erfindung sieht vor, daß neben dem Cache-Ladebefehl und/oder dem Cache-Schreibbefehl auch wenigstens ein Cache-Wechselbefehl in entsprechender Weise zwischen den Programmbefehlen des abzuarbeitenden Programms angeordnet ist. Der Cache-Wechselbefehl ist ebenfalls nach seinem Einlesen in den Prozessor an die Cache-Steuerung über­ mittelbar und teilt dieser mit, daß ein Wechsel der Cache-Spei­ cher bei der Datenübertragung vom ersten Datenbus zum zweiten Datenbus bzw. umgekehrt erfolgen soll.Another development of the invention provides that in addition the cache load instruction and / or the cache write instruction as well at least one cache change instruction in a corresponding manner between the program instructions of the program to be processed is arranged. The cache change instruction is also after its reading into the processor to the cache controller indirectly and notifies this that a change of the cache memory during data transmission from the first data bus to second data bus or vice versa.

Besonders günstig ist es, wenn der Cache-Ladebefehl und/oder der Cache-Schreibbefehl und/oder der Cache-Wechselbefehl gleichzeitig mit einem der Programmbefehle vom Prozessor ein­ gelesen wird. In dem Fall muß der Prozessor die Abarbeitung der Programmbefehle nicht unterbrechen, woraus ein Geschwin­ digkeitsvorteil resultiert.It is particularly favorable if the cache load command and / or the cache write command and / or the cache switch command simultaneously with one of the program instructions from the processor is read. In that case, the processor must complete the processing the program instructions do not interrupt, resulting in a speed advantage.

Eine Ausführungsform der Erfindung sieht vor, daß im Daten­ speicher Operanden gespeichert sind, während die Programmda­ ten dem Prozessor über einen Programmdateneingang zuführbar sind.An embodiment of the invention provides that in the data memory operands are stored while the program da can be fed to the processor via a program data input are.

Eine andere Ausführungsform der Erfindung sieht vor, daß die Programmdaten selbst im Datenspeicher gespeichert sind (der dann der Programmspeicher ist), so daß über die Cache-Lade­ befehle bzw. die Cache-Schreibbefehle die Cache-Steuerung für den Programmspeicher des Prozessors gesteuert wird. Another embodiment of the invention provides that the Program data itself is stored in the data memory (the then the program memory is), so that about the cache load commands or the cache write commands the cache controller is controlled for the program memory of the processor.  

Die Erfindung ermöglicht eine echtzeitfähige Datenübertragung zwischen Datenspeicher und Prozessor und einen unterbre­ chungsfreien kontinuierlichen Datenfluß, so daß die Arbeit des Prozessors nicht unterbrochen werden muß. Daher eignet sich die Erfindung besonders zum Einsatz in Schaltungsanord­ nungen mit digitalen Signalprozessoren.The invention enables real-time data transmission between data storage and processor and an interrupt seamless continuous data flow, so the work the processor does not have to be interrupted. Therefore suitable the invention particularly for use in circuit arrangement with digital signal processors.

Nachfolgend wird die Erfindung anhand der in den Figuren der Zeichnung dargestellten Ausführungsbeispielen näher erläu­ tert.The invention is based on the in the figures of the Drawing illustrated embodiments in more detail tert.

Fig. 1 zeigt ein Ausführungsbeispiel der Erfindung; Fig. 1 shows an embodiment of the invention;

Fig. 2A bis 2D zeigen vier verschiedene Betriebszu­ stände für das Ausführungsbeispiel nach Fig. 1. Fig. 2A to 2D show four different Betriebszu stands for the embodiment of FIG. 1.

Fig. 1 zeigt eine Schaltungsanordnung mit einem Prozessor DSP, einem Datenspeicher MEM und zwei Cache-Speichern C1, C2. Dargestellt sind nur die für die Erfindung wesentlichen Kom­ ponenten. Es können aber auch andere Komponenten in beliebi­ ger Weise hinzugefügt werden. Der Prozessor DSP weist An­ schlüsse PI/O auf, denen im Datenspeicher MEM gespeicherte Daten zuzuführen sind oder über die vom Prozessor DSP im Da­ tenspeicher MEM zu speichernde Daten ausgebbar sind, um an­ schließend einer Verarbeitung durch den Prozessor unterzogen zu werden. Um eine Anpassung der durch den Datenspeicher MEM erreichbaren Datenrate an die Verarbeitungsgeschwindigkeit des Prozessors zu erreichen, sind die Cache-Speicher C1, C2 vorgesehen. Die im Datenspeicher MEM gespeicherten Daten sind über Anschlüsse MEMI/O desselben aus ihm auslesbar. Im Daten­ speicher MEM vom Prozessor DSP zu speichernde Daten sind ebenfalls über die Anschlüsse MEMI/O einlesbar. Die Anschlüs­ se MEMI/O des Datenspeichers NEM sind über einen ersten Da­ tenbus D1 sowohl mit entsprechenden ersten Anschlüssen C1I/O1 des ersten Cache-Speichers C1, als auch mit entsprechenden ersten Anschlüssen C2I/O1 des zweiten Cache-Speichers C2 ver­ bunden. Zweite Anschlüsse C1I/O2, C2I/O2 der beiden Cache-Spei­ cher C1, C2 sind auf entsprechende Weise über einen zwei­ ten Datenbus D2 mit den Anschlüssen PI/O des Prozessors DSP verbunden. Somit sind Daten, die im Datenspeicher MEM gespei­ chert sind, wahlweise über den ersten Cache-Speicher C1 oder den zweiten Cache-Speicher C2 zu den Anschlüssen PI/O des Prozessors DSP übertragbar und umgekehrt. Beim geschilderten Ausführungsbeispiel sind die Anschlüsse des Datenspeichers MEM, der Cache-Speicher C1, C2 und des Prozessors DSP jeweils Ein- und Ausgänge und die Datenbusse D1 und D2 bidirektional. Fig. 1 shows a circuit arrangement with a DSP processor, a data memory MEM and two cache memories C1, C2. Only the components essential to the invention are shown. However, other components can also be added in any way. The processor DSP has connections PI / O to which data stored in the data memory MEM are to be supplied or via which data to be stored by the processor DSP in the data memory MEM can be output in order to subsequently be subjected to processing by the processor. In order to adapt the data rate achievable by the data memory MEM to the processing speed of the processor, the cache memories C1, C2 are provided. The data stored in the data memory MEM can be read out from it via connections MEMI / O thereof. Data to be stored in the data memory MEM by the processor DSP can also be read in via the connections MEMI / O. The connections MEMI / O of the data memory NEM are connected via a first data bus D1 both to corresponding first connections C1I / O1 of the first cache memory C1 and to corresponding first connections C2I / O1 of the second cache memory C2. Second connections C1I / O2, C2I / O2 of the two cache memories C1, C2 are connected in a corresponding manner via a second data bus D2 to the connections PI / O of the processor DSP. Data that is stored in the data memory MEM can thus be transferred either via the first cache memory C1 or the second cache memory C2 to the connections PI / O of the processor DSP and vice versa. In the exemplary embodiment described, the connections of the data memory MEM, the cache memory C1, C2 and the processor DSP are inputs and outputs and the data buses D1 and D2 are bidirectional.

Die Erfindung weist also zwei parallel geschaltete Cache-Speicher C1, C2 auf.The invention thus has two connected in parallel Cache memory C1, C2.

Die Schaltungsanordnung in Fig. 1 weist außerdem eine Cache-Steuerung CTR auf, die über entsprechende Adreßbusse C1ADR, C2ADR, MEMADR sowohl jeden einzelnen Cache-Speicher C1, C2, als auch den Datenspeicher MEM adressieren kann.The circuit arrangement in FIG. 1 also has a cache controller CTR, which can address both each individual cache memory C1, C2 and the data memory MEM via corresponding address buses C1ADR, C2ADR, MEMADR.

Vom Prozessor DSP werden über entsprechende Leitungen die Adressen ADR von aktuell durch den Prozessor DSP benötigten Daten und die Adressen ADR, an denen von ihm erzeugte Daten im Datenspeicher MEM gespeichert werden sollen, an die Cache-Steuer­ ung CTR übertragen. Ob Daten durch den Prozessor gele­ sen oder geschrieben werden sollen, wird der Cache-Steuerung CTR über ein durch den Prozessor DSP erzeugtes Schreibsignal W und ein Lesesignal L mitgeteilt, das beispielsweise durch ein Bit realisiert sein kann, daß Bestandteil der an die Cache-Steuerung CTR übermittelten Adressen ADR ist.From the processor DSP are the corresponding lines ADR addresses of those currently required by the processor DSP Data and the addresses ADR at which data generated by it to be stored in the memory MEM to the cache control CTR transmitted. Whether data is processed by the processor The cache controller is used to write or write CTR via a write signal generated by the processor DSP W and a read signal L communicated, for example, by a bit can be realized that part of the to the Cache control CTR transmitted addresses is ADR.

Weiterhin werden der Cache-Steuerung CTR vom Prozessor DSP die Adressen zukünftig benötigter Daten in Form von Cache-Lade­ befehlen CL übermittelt, die weiter unten noch erläutert werden. Zukünftig benötigte Daten sind solche, die nicht als nächstes, sondern erst zu einem späteren Zeitpunkt vom Pro­ zessor DSP aufgrund eines erst dann eingelesenen Programmbe­ fehls PDC verarbeitet werden.Furthermore, the cache controller CTR from the processor DSP the addresses of future data in the form of a cache load command CL transmitted, which will be explained below will. Data required in the future are those that are not considered next, but only at a later time from the pro  processor DSP on the basis of a program name that has only been read in after this Failed to process PDC.

Die aktuelle Datenanforderung ist jeweils die Adresse des als nächstes benötigten Datums innerhalb des Datenspeichers MEM. Die Cache-Steuerung CTR führt eine entsprechende Adressierung desjenigen Cache-Speichers C1; C2 durch, in dem sich das Da­ tum mit dieser Adresse befindet.The current data request is the address of the as next required date within the data memory MEM. The cache controller CTR carries out appropriate addressing that cache C1; C2 through in which the Da tum with this address.

Die Cache-Ladebefehle CL sind innerhalb von in einem Pro­ grammspeicher PM der Schaltungsanordnung gespeicherten Pro­ grammdaten PD, die ein durch den Prozessor DSP abzuarbeiten­ des Programm bilden, angeordnet. Die Programmdaten PD enthal­ ten außer den Cache-Ladebefehlen CL Programmbefehle PDC, die wie bei herkömmlichen Prozessoren gestaltet sind. Außerdem enthalten die Programmdaten PD Cache-Schreibbefehle CW und Cache-Wechselbefehle CC, auf die weiter unten noch eingegan­ gen wird.The cache load instructions CL are within a pro Pro gram memory PM of the circuit arrangement stored Gram data PD, which are processed by the processor DSP of the program, arranged. The program data PD contain In addition to the cache load instructions CL, program instructions PDC that are designed like conventional processors. Furthermore contain the program data PD cache write commands CW and Cache change instructions CC, which are discussed further below will.

Beim gezeigten Ausführungsbeispiel in Fig. 1 verfügt der Prozessor DSP über Programmdateneingänge PIN, die zusätzlich zu den Eingängen IN vorhanden sind. Eine solche Architektur mit getrennten Programmdaten- und Operandeneingängen liegt insbesondere bei digitalen Signalprozessoren vor. Den Pro­ grammdateneingängen PIN sind die Programmdaten PD über einen Programmdatenbus vom Programmspeicher PM zuführbar. Die Pro­ grammdaten PD werden sequentiell gemäß einem Arbeitstakt CLK des Prozessors DSP über die Programmdateneingänge PIN einge­ lesen. Dabei werden die Programmbefehle PDC in ein Programm­ befehlsregister REG eingelesen und anschließend einer Bear­ beitung durch den Prozessor DSP unterzogen. Dagegen werden die Cache-Ladebefehle CL, die Cache-Schreibbefehle CW und die Cache-Wechselbefehle CC vom Prozessor DSP an die Cache-Steuerung CTR weitergeleitet. In the exemplary embodiment shown in FIG. 1, the processor DSP has program data inputs PIN which are present in addition to the inputs IN. Such an architecture with separate program data and operand inputs is present in particular with digital signal processors. The program data inputs PIN can be fed to the program data inputs PIN from the program memory PM via a program data bus. The program data PD are read sequentially according to a work cycle CLK of the processor DSP via the program data inputs PIN. The program instructions PDC are read into a program instruction register REG and then subjected to processing by the processor DSP. In contrast, the cache load instructions CL, the cache write instructions CW and the cache change instructions CC are forwarded by the processor DSP to the cache controller CTR.

Der Programmspeicher PM hat wahlweise einen eigenen Pro­ gramm-Cache-Speicher, der in Fig. 1 allerdings nicht separat dar­ gestellt ist.The program memory PM optionally has its own program cache, which is not shown separately in FIG. 1, however.

In Fig. 1 ist durch den gestrichelten Kasten angedeutet, daß die Cache-Steuerung CTR selbstverständlich auch Bestandteil des Prozessors DSP sein kann. Auch werden ihr die Cache-Lade­ befehle CL, die Cache-Schreibbefehle CW und die Cache-Wechsel­ befehle CC bei anderen Ausführungsformen der Erfindung direkt vom Programmspeicher PM zugeführt, ohne daß diese zu­ vor vom Prozessor DSP eingelesen werden.In Fig. 1 is indicated by the dashed box that the cache controller CTR can of course also be part of the processor DSP. In other embodiments of the invention, the cache load instructions CL, the cache write instructions CW and the cache change instructions CC are also fed directly from the program memory PM without these being read beforehand by the processor DSP.

In Fig. 1 sind innerhalb des Programmspeichers PM beispiel­ haft einige der Programmdaten PD eingetragen. Dabei sollen die Programmbefehle PDC, die Cache-Wechselbefehle CC, die Cache-Schreibbefehle CW und die Cache-Ladebefehle CL von oben nach unten adressenmäßig aufeinanderfolgend angeordnet sein. Die Adressierung der Programmdaten PD erfolgt durch den Pro­ zessor DSP über einen Programmadreßbus PADR. Bei der Abarbei­ tung dieses Programms lädt der Prozessor DSP zunächst den er­ sten Programmbefehl PDC in das Programmbefehlsregister REG und verarbeitet diesen. Anschließend geschieht dasselbe mit dem zweiten Programmbefehl PDC. Im nächsten Zyklus des Ar­ beitstaktes CLK liest der Prozessor DSP über seine Programm­ dateneingänge PIN den Cache-Ladebefehl CL ein und leitet die­ sen unbearbeitet an die Cache-Steuerung CTR weiter. Die Cache-Steuerung CTR führt ein dem Cache-Ladebefehl CL ent­ sprechendes Nachladen eines der beiden Cache-Speicher C1, C2 durch, wie anhand der Fig. 2A und 2D weiter unten noch er­ läutert wird.In Fig. 1 some of the program data PD are entered as an example within the program memory PM. The program instructions PDC, the cache change instructions CC, the cache write instructions CW and the cache load instructions CL are to be arranged sequentially from top to bottom in terms of address. The program data PD is addressed by the processor DSP via a program address bus PADR. When this program is being processed, the processor DSP first loads the first program instruction PDC into the program instruction register REG and processes it. The same then happens with the second program command PDC. In the next cycle of the working clock CLK, the processor DSP reads the cache load command CL via its program data inputs PIN and forwards them unprocessed to the cache controller CTR. The cache controller CTR carries out a reloading of the two cache memories C1, C2 corresponding to the cache load command CL, as will be explained further below with reference to FIGS. 2A and 2D.

Es ist vorteilhaft, aber nicht zwingend, wenn bei der Anord­ nung nach Fig. 1 der Prozessor DSP zeitgleich (d. h. inner­ halb desselben Zyklus seines Arbeitstaktes CLK) mit dem Cache-Ladebefehl CL auch den adressenmäßig nachfolgenden oder den vorhergehenden Programmbefehl PDC in sein Programmbe­ fehlsregister REG lädt. Er kann daher nämlich unabhängig von der Übermittlung der Cache-Ladebefehle CL an die Cache-Steuerung CTR mit der Abarbeitung der Programmbefehle PDC fortfahren. Dasselbe gilt für den Cache-Schreibbefehl CW und den Cache-Wechselbefehl CC. Für diese gleichzeitige Laden ist es erforderlich, daß die entsprechenden Befehle CL, CW, CC, PDC durch eine gemeinsame Adresse über den Programmadreßbus PADR adressierbar sind.It is advantageous, but not mandatory, if in the arrangement according to FIG. 1 the processor DSP simultaneously (ie within the same cycle of its working cycle CLK) with the cache load command CL also the address-wise or the previous program command PDC into its program register REG loads. It can therefore continue to process the program instructions PDC independently of the transmission of the cache load instructions CL to the cache controller CTR. The same applies to the cache write command CW and the cache change command CC. For this simultaneous loading, it is necessary that the corresponding commands CL, CW, CC, PDC can be addressed by a common address via the program address bus PADR.

Die Cache-Ladebefehle CL enthalten günstigerweise eine Star­ tadresse, ab der ein Datenblock definierter Größe aus dem Da­ tenspeicher MEM durch die Cache-Steuerung CTR in den jeweils gerade nachzuladenden der Cache-Speicher C1, C2 zu übertragen ist. Es ist auch möglich, daß der Cache-Ladebefehl CL darüber hinausgehende Informationen aufweist, wie beispielsweise über die Anzahl von aufeinanderfolgenden Datenblöcken, die auf­ grund eines gerade durch die Cache-Steuerung CTR auszuführen­ den Cache-Ladebefehls CL nachgeladen werden sollen. Außerdem kann der Cache-Ladebefehl auch eine Modulo-Information ent­ halten, bei der innerhalb von aufeinanderfolgenden zu laden­ den Datenblöcken aufgrund der Startadresse das Nachladen mit einem beliebigen dieser Datenblöcke begonnen werden kann. Die erwähnten Datenblöcke weisen mehrere Daten mit aufeinander­ folgenden Adressen auf. Somit kann mit einem sehr kurzen Cache-Ladebefehl CL, der nur wenige Bit aufweist, ein Nachla­ den einer großen Menge von Daten ausgelöst werden.The cache load instructions CL advantageously contain a star taddress, from which a data block of defined size from the da memory MEM by the cache controller CTR in each to be reloaded to transfer the cache memory C1, C2 is. It is also possible that the cache load command CL is above it has additional information, such as about the number of consecutive blocks of data that are on because of one to be executed by the cache controller CTR the cache load command CL should be reloaded. Furthermore the cache load instruction can also contain modulo information keep loading at within consecutive reload the data blocks based on the start address any of these data blocks can be started. The mentioned data blocks have several data with each other following addresses. So with a very short Cache load instruction CL, which has only a few bits, a Nachla caused by a large amount of data.

Da aufgrund des Cache-Ladebefehls CL immer Datenblöcke defi­ nierter Größe zwischen Datenspeicher MEM und Cache-Speicher C1, C2 übertragen werden, ist die Zeit zur Ausführung dieser Datenübertragung bekannt. Da außerdem bekannt ist, wieviele Zyklen des Arbeitstaktes CLK der Prozessor DSP benötigt, um jeweils einen der Programmbefehle PDC abzuarbeiten (im allge­ meinen geschieht dies innerhalb eines Zyklus), ist der Cache-Lade­ befehl CL innerhalb der Programmdaten PD günstigerweise so angeordnet, daß die durch ihn für die zukünftige Abarbei­ tung angeforderten Daten rechtzeitig im jeweiligen Cache-Spei­ cher C1, C2 bereitgestellt werden. Rechtzeitig bedeutet dabei, bevor einer der Programmbefehle PDC einen Zugriff auf diese angeforderten Daten erforderlich macht.Since due to the cache load command CL data blocks always defi nized size between data memory MEM and cache memory C1, C2 are transmitted, is the time to execute this Data transmission known. Since it is also known how many Cycles of the working clock CLK the processor DSP needed to to process one of the program commands PDC (in general mean this happens within one cycle) is the cache load command CL within the program data PD favorably so arranged that by him for future processing requested data in time in the respective cache memory cher C1, C2 are provided. In time means  doing so before accessing one of the program commands PDC makes this requested data necessary.

Die im Programmspeicher PM in Fig. 1 gespeicherten Programm­ daten PD weisen auch wenigstens einen der Cache-Wechsel­ befehle CC auf. Dieser wird ebenfalls nicht ins Pro­ grammbefehlsregister REG des Prozessors eingelesen, sondern von diesem an die Cache-Steuerung CTR weitergeleitet. Der Cache-Wechselbefehl CC teilt der Cache-Steuerung CTR mit, daß bei beiden Cache-Speichern C1, C2 ein Wechsel bezüglich der Nutzung des ersten D1 und zweiten D2 Datenbusses erfolgen soll. Aufgrund des Cache-Wechselbefehl CC bewirkt die Cache-Steuer­ ung CTR einen solchen Wechsel. Innerhalb der Programm­ daten PD ist der Cache-Wechselbefehl CC adressenmäßig so ein­ gefügt, daß ein Nachladen des entsprechenden Cache-Speichers C1; C2 aufgrund eines vorhergehenden Cache-Ladebefehls CL be­ reits abgeschlossen ist und das nächste durch den Prozessor DSP anzufordernde Datum sich unter diesen nachgeladenen Daten befindet, bevor der Cache-Wechselbefehl CC von der Cache- Steuerung CTR ausgeführt wird. Die Cache-Wechselbefehl CC kommen immer dann zum Einsatz, wenn eine Datenübertragung zwischen Prozessor DSP und Datenspeicher MEM zu erfolgen hat und die entsprechenden Daten bereits über einen der Datenbus­ se D1, D2 in einen der Cache-Speicher C1, C2 übertragen wur­ den, so daß anschließend über den jeweils anderen der Daten­ busse die weitere Datenübertragung zum Zielort (Prozessor DSP oder Datenspeicher MEM) erfolgen kann.The program data PD stored in the program memory PM in FIG. 1 also have at least one of the cache change commands CC. This is also not read into the program instruction register REG of the processor, but is forwarded by it to the cache controller CTR. The cache change command CC informs the cache controller CTR that a change in the use of the first D1 and second D2 data bus is to take place in both cache memories C1, C2. On the basis of the cache change command CC, the cache control CTR effects such a change. Within the program data PD, the cache change instruction CC is added in terms of address so that the corresponding cache memory C1; C2 is already completed due to a previous cache load instruction CL and the next date to be requested by the processor DSP is among these reloaded data before the cache change instruction CC is executed by the cache controller CTR. The cache change commands CC are always used when a data transfer between processor DSP and data memory MEM has to take place and the corresponding data has already been transferred via one of the data buses D1, D2 into one of the cache memories C1, C2 that the further data transmission to the destination (processor DSP or data memory MEM) can then take place via the respective other of the data buses.

In entsprechender Weise wie der Cache-Ladebefehl CL und der Cache-Wechselbefehl CC ist der Cache-Schreibbefehl CW aus dem Programmspeicher PM über die programmanschlüsse PIN des Pro­ zessors DSP an die Cache-Steuerung CTR übermittelbar. Beim gezeigten Ausführungsbeispiel erfolgt sowohl ein Lese-Caching (zu dessen Optimierung der Cache-Lesebefehl CL in der bereits beschriebenen Weise dient) als auch ein Schreib-Caching. Der Prozessor DSP speichert also Daten im Datenspeicher MEM, die zuvor durch die Cache-Speicher C1, C2 zwischengespeichert werden. Dabei erfolgt die Datenübertragung zwischen Prozessor DSP zu einem der Cache-Speicher C1, C2 in üblicher Weise durch Übermittlung der gewünschten Speicheradresse ADR und eines Schreibsignals W an die Cache-Steuerung CTR. Diese nimmt jedoch die weitere Übertragung dieser Daten vom Cache-Spei­ cher C1; C2 zum Datenspeicher MEM nicht automatisch vor, sondern erst, wenn sie einen entsprechenden Cache-Schreib­ befehl CW erhält. Erst der Cache-Schreibbefehl CW be­ wirkt also eine Übertragung der vom Prozessor DSP bereits in einen der Cache-Speicher C1, C2 geschriebenen Daten von dort in den Datenspeicher MEM. Somit ist der Zeitpunkt dieser Da­ tenübertragung mittels des Cache-Schreibbefehls CW festleg­ bar. Der Zugriff der beiden Cache-Speicher C1, C2 auf die beiden Datenbusse D1, D2 kann somit optimiert werden.In a similar manner as the cache load command CL and the Cache change instruction CC is the cache write instruction CW from the Program memory PM via the program connections PIN of the Pro cessors DSP can be transmitted to the cache controller CTR. At the shown embodiment both read caching (To optimize the cache read command CL in the already described way) as well as write caching. Of the Processor DSP therefore stores data in the data memory MEM previously cached by the caches C1, C2  will. The data transfer takes place between the processor DSP to one of the cache memories C1, C2 in the usual way by transmitting the desired memory address ADR and a write signal W to the cache controller CTR. This however, the further transmission of this data takes place from the cache memory cher C1; C2 to the data memory MEM does not automatically but only when they have a corresponding cache write receives command CW. Only the cache write command CW be a transfer of the processor DSP already works in one of the caches C1, C2 data written from there into the data memory MEM. So the timing of this is there Set transmission using the cache write command CW bar. Access of the two cache memories C1, C2 to the Both data buses D1, D2 can thus be optimized.

Ebenso wie beim Cache-Ladebefehl CL, ist es günstig, daß der Cache-Wechselbefehl CC und der Cache-Schreibbefehl CW gleich­ zeitig mit einem vorhergehenden oder nachfolgenden Programm­ befehl PDC vom Prozessor DSP einlesbar ist, so daß dieser den Programmbefehl PDC gleichzeitig mit der Übermittlung des Cache-Wechselbefehls CC bzw. des Cache-Schreibbefehls CW an die Cache-Steuerung CTR in sein Programmbefehlsregister REG aufnimmt.As with the cache load instruction CL, it is convenient that the Cache change instruction CC and the cache write instruction CW are the same early with a previous or subsequent program Command PDC can be read by the processor DSP, so that the Program command PDC simultaneously with the transmission of the Cache change command CC or the cache write command CW the cache controller CTR into its program instruction register REG records.

In einer weiter vereinfachenden Darstellung in den Fig. 2A bis 2D sind verschiedene, aufeinander folgende Betriebszu­ stände der Schaltungsanordnung aus Fig. 1 dargestellt.In a further simplified representation in FIGS. 2A through 2D different, consecutive Betriebszu 1 are states of the circuit arrangement of FIG. FIG.

Dabei enthält der Datenspeicher MEM in Fig. 2A an aufeinan­ derfolgenden Adressen die Daten D1 bis D10. In den ersten Cache-Speicher C1 sind (ausgelöst durch einen vorhergehenden Cache-Ladebefehl CL) bereits die Daten D1 bis D3 geladen, während im zweiten Cache-Speicher C2 beliebige Daten D0 ent­ halten sind, die z. B. bereits vom Prozessor DSP gelesen wur­ den. Im aktuell gezeigten Betriebszustand sind durch die Cache-Steuerung CTR aufgrund der Adressen der aktuellen Da­ tenanforderungen des Prozessors DSP und aufgrund des Lesesi­ gnals L die Daten D1 bis D3 über den zweiten Datenbus D2 aus dem ersten Cache-Speicher C1 in den Prozessor DSP einlesbar. Gleichzeitig sind durch die Cache-Steuerung CTR aufgrund ei­ nes der Cache-Ladebefehle CL über den ersten Datenbus D1 Da­ ten aus dem Datenspeicher MEM in den zweiten Cache-Speicher C2 einlesbar. Angedeutet ist diese zeitweilige Zuordnung der Datenbusse D1, D2 zu den Cache-Speichern C1, C2 in den Fig. 2A bis 2D einerseits durch die durchgezogenen, und ande­ rerseits durch die gestrichelten Linien, die die Datenbusse D1, D2 darstellen.The data memory MEM in FIG. 2A contains the data D1 to D10 at successive addresses. In the first cache memory C1 (triggered by a previous cache load command CL) the data D1 to D3 are already loaded, while in the second cache memory C2 any data D0 are contained, which, for. B. has already been read by the processor DSP. In the currently shown operating state, the cache controller CTR can read the data D1 to D3 from the first cache memory C1 into the processor DSP via the second data bus D2 based on the addresses of the current data requirements of the processor DSP and on the basis of the read signal L. At the same time, the cache controller CTR can read data from the data memory MEM into the second cache memory C2 based on one of the cache load commands CL via the first data bus D1. This temporary assignment of the data buses D1, D2 to the cache memories C1, C2 in FIGS . 2A to 2D is indicated on the one hand by the solid lines, and on the other hand by the dashed lines which represent the data buses D1, D2.

Fig. 2B zeigt den Zustand, nachdem aufgrund eines der Cache-Lade­ befehle CL die Daten D4 bis D6 über den ersten Datenbus D1 in den zweiten Cache-Speicher C2 übertragen wurden. Außer­ dem sind Daten D11 bis D13 vom Prozessor DSP über den zweiten Datenbus D2 in den ersten Cache-Speicher C1 übertragen wor­ den, wozu der Prozessor DSP das Schreibsignal W und die ent­ sprechenden Adressen ADR für die zu speichernden Daten an die Cache-Steuerung CTR übertragen hat. Fig. 2B shows the state after due to the cache load CL command, the data D4 to D6 over the first data D1 in the second cache memory C2 has been transferred. In addition, data D11 to D13 have been transferred from the processor DSP via the second data bus D2 to the first cache memory C1, for which purpose the processor DSP has the write signal W and the corresponding addresses ADR for the data to be stored to the cache controller CTR transferred.

Durch einen der Cache-Wechselbefehle CC erfolgt nun gemäß Fig. 2C ein Wechsel der Cache-Ansteuerung in der Weise, daß nun durch den Prozessor DSP über den zweiten Datenbus D2 auf die Daten D4 bis D6 im zweiten Cache-Speicher C2 aufgrund der an die Cache-Steuerung CTR übermittelten Adressen ADR der ak­ tuell benötigten Daten und des Lesesignals L zugreifbar ist. Gleichzeitig werden die im ersten Cache-Speicher C1 vorhande­ nen Daten D11 bis D13 aufgrund eines der Cache-Schreibbefehle CW über den ersten Datenbus D1 im Datenspeicher MEM abgelegt.According to FIG. 2C, one of the cache change commands CC now changes the cache control in such a way that the processor DSP now uses the second data bus D2 to access the data D4 to D6 in the second cache memory C2 on the basis of the data Cache control CTR transmitted addresses ADR of the currently required data and the read signal L is accessible. At the same time, the data D11 to D13 present in the first cache memory C1 are stored in the data memory MEM via the first data bus D1 based on one of the cache write commands CW.

Fig. 2D zeigt nun den Zustand, nachdem gleichzeitig über ei­ nen der Cache-Ladebefehle CL angeforderte, zu einem späteren Zeitpunkt benötigte Daten D8 bis D10 über den ersten Datenbus D1 durch die Cache-Steuerung CTR in den ersten Cache-Speicher C1 nachgeladen wurden und weitere Daten D14 bis D16 vom Pro­ zessor DSP aufgrund der Adressen ADR und des Schreibsignals W über den zweiten Datenbus D2 zum zweiten Cache-Speicher C2 übertragen wurden. Durch einen weiteren Cache-Wechselbefehl CC kann nun erneut die Zuordnung der Datenbusse D1, D2 zu den Cache-Speichern C1, C2 gewechselt werden. Fig. 2D now shows the state after the same time on egg NEN the cache load instructions CL requested, to D10 via the first data bus D1 by the cache controller CTR memory cache C1 were recharged at a later time required data D8 in the first and Further data D14 to D16 were transferred from the processor DSP to the second cache memory C2 on the basis of the addresses ADR and the write signal W via the second data bus D2. The assignment of the data buses D1, D2 to the cache memories C1, C2 can now be changed again by means of a further cache change command CC.

Die anhand der Fig. 2A bis 2D gemachten Erläuterungen ma­ chen deutlich, daß aufgrund des erfindungsgemäßen Cache-Lade­ befehls CL ein unterbrechungsfreier Datenfluß zwischen dem Datenspeicher MEM und dem Prozessor DSP realisierbar ist. Cache-Misses können vollständig vermieden werden. Außerdem ermöglicht der erfindungsgemäße Cache-Schreibbefehl CW vor­ teilhaft ein von Zugriffen des Prozessors DSP auf einen der Cache-Speicher C1, C2 unabhängiges Speichern von Daten aus dem jeweils anderen Cache-Speicher in den Datenspeicher MEM. Durch beide Maßnahmen wird die Datenübertragung zwischen Da­ tenspeicher MEM und Prozessor DSP beschleunigt und verste­ tigt.The explanations made with reference to FIGS. 2A to 2D make it clear that an uninterrupted data flow between the data memory MEM and the processor DSP can be implemented due to the cache load command CL according to the invention. Cache misses can be completely avoided. In addition, the cache write command CW in accordance with the invention enables data from the other cache memory to be stored in the data memory MEM before the processor DSP accesses one of the cache memories C1, C2. Both measures accelerate and confirm the data transfer between the data memory MEM and the processor DSP.

Die Cache-Steuerung CTR wird bevorzugt als verdrahtete Logik realisiert. Sie kann jedoch auch durch einen zweiten Prozes­ sor realisiert sein, der zusätzlich zum Prozessor DSP vorhan­ den ist.The cache controller CTR is preferred as wired logic realized. However, it can also be done through a second process be realized that exist in addition to the processor DSP that is.

Anders als beim geschilderten Ausführungsbeispiel sind andere Ausgestaltungen der Erfindung denkbar, bei denen wahlweise nur ein Schreib- oder nur ein Lese-Caching (beispielsweise, wenn der Datenspeicher identisch mit dem Programmspeicher ist) durchgeführt wird. Entsprechend sind dann nur die Cache-Schreib­ befehle CW oder die Cache-Lesebefehle CL für ihre Steuerung notwendig.Different from the described embodiment are others Embodiments of the invention are conceivable, in which either just write or read caching (for example, if the data memory is identical to the program memory is) carried out. Then only the cache writes are corresponding command CW or the cache read commands CL for their Control necessary.

Anders als beim Ausführungsbeispiel in Fig. 1 gezeigt, ist es auch möglich, daß die Anschlüsse PI/O des Prozessors DSP die Programmdateneingänge PIN sind. Dann ist der Datenspei­ cher MEM der Programmspeicher PM und die beiden Cache-Spei­ cher C1, C2 dienen der Zwischenspeicherung der Programm­ daten PD. Damit würde über die Cache-Ladebefehle CL und die Cache-Wechselbefehle CC die Steuerung des Zwischenspeicherns von Programmdaten PD in den Cache-Speichern C1, C2 erfolgen. Dagegen zeigt die Fig. 1 ein Ausführungsbeispiel der Erfin­ dung, bei dem im Datenspeicher MEM Operanden speicherbar sind, die aufgrund der Programmbefehle PDC für eine Verarbei­ tung durch den Prozessor DSP erforderlich sind.In contrast to the exemplary embodiment shown in FIG. 1, it is also possible for the connections PI / O of the processor DSP to be the program data inputs PIN. Then the data memory MEM is the program memory PM and the two cache memories C1, C2 serve to temporarily store the program data PD. This would control the buffering of program data PD in the cache memories C1, C2 via the cache load instructions CL and the cache change instructions CC. 1 on the other hand, FIG. OF INVENTION An embodiment of the dung, operands are stored in the data memory MEM in which, by virtue of program instructions for a PDC process ing by the processor DSP are required.

In Abwandlung des geschilderten Ausführungsbeispiels, bei dem die ersten C1I/O1, C2I/O1 und zweiten C1I/O2, C2I/O2 An­ schlüsse jedes Cache-Speichers C1, C2 getrennt voneinander sind (es handelt sich um sogenannte Dual-Port-Speicher), ist es möglich, daß sie für jeden Cache-Speicher identisch mit­ einander sind (sogenannte Single-Port-Speicher). Dann hat je­ der Cache-Speicher C1, C2 nur eine Art von Anschlüssen, die jeweils sowohl mit dem ersten Datenbus D1 als auch mit dem zweiten Datenbus D2 verbunden sind. Haben die Datenbusse D1, D2 eine unterschiedliche Breite, können die ersten und zwei­ ten Anschlüsse nur teilweise identisch sein.In a modification of the described embodiment, in which the first C1I / O1, C2I / O1 and second C1I / O2, C2I / O2 An close each cache C1, C2 separately are (so-called dual-port storage), is it is possible that they are identical for each cache are each other (so-called single-port memory). Then ever the cache memory C1, C2 only one type of ports that both with the first data bus D1 and with the second data bus D2 are connected. If the data buses D1, D2 a different width, can be the first and two The connections are only partially identical.

Claims (10)

1. Schaltungsanordnung mit
  • - einem Prozessor (DSP) und einem Datenspeicher (MEM) mit je­ weils Anschlüssen (PI/O, MEMI/O),
  • - mit zwei Cache-Speichern (C1, C2) mit ersten Anschlüssen (C1I/O1, C2I/O1) und zweiten Anschlüssen (C1I/O2, C2I/O2)
  • - einem ersten Datenbus (D1), über den jeder der Anschlüsse (MEMI/O) des Datenspeichers (MEM) mit je einem der ersten Anschlüsse (C1I/O1, C2I/O2) jedes Cache-Speichers (C1, C2) verbunden ist und
  • - einem zweiten Datenbus (D2), über den jeder der Anschlüsse (PI/O) des Prozessors (DSP) mit je einem der zweiten An­ schlüsse (C1I/O2, C2I/O2) jedes Cache-Speichers (C1, C2) verbunden ist.
1. Circuit arrangement with
  • - a processor (DSP) and a data memory (MEM), each with connections (PI / O, MEMI / O),
  • - With two cache memories (C1, C2) with first connections (C1I / O1, C2I / O1) and second connections (C1I / O2, C2I / O2)
  • - A first data bus (D1), via which each of the connections (MEMI / O) of the data memory (MEM) is connected to one of the first connections (C1I / O1, C2I / O2) of each cache memory (C1, C2) and
  • - A second data bus (D2) via which each of the connections (PI / O) of the processor (DSP) with one of the second connections (C1I / O2, C2I / O2) of each cache memory (C1, C2) is connected .
2. Schaltungsanordnung nach Anspruch 1, bei der eine Datenübertragung gleichzeitig über den ersten Datenbus (D1) zwischen einem der Cache-Speicher (C1; C2) und dem Datenspeicher (MEM) und über den zweiten Datenbus (D2) zwischen dem anderen Cache-Speicher (C1; C2) und dem Prozes­ sor (DSP) erfolgt.2. Circuit arrangement according to claim 1, in which data is transmitted simultaneously via the first Data bus (D1) between one of the cache memories (C1; C2) and the data memory (MEM) and via the second data bus (D2) between the other cache memory (C1; C2) and the process sor (DSP). 3. Schaltungsanordnung nach einem der vorstehenden Ansprüche mit zusätzlich
  • - einer Cache-Steuerung (CTR), die durch entsprechende Adres­ sierung (C1ADR, C2ADR, MEMADR) der Cache-Speicher (C1, C2) und des Datenspeichers (MEM) die Datenübertragung auf dem ersten (D1) und dem zweiten (D2) Datenbus steuert,
  • - einem Programmspeicher (PM) zum Speichern von Programmdaten (PD), die Programmbefehle (PDC) enthalten, die zur Verarbei­ tung durch den Prozessor (DSP) über Programmdateneingänge (PIN) in ein Befehlsregister (REG) geladen werden,
  • - wobei die Programmdaten (PD) außerdem wenigstens einen Cache-Ladebefehl (CL) zur Übermittlung an die Cache-Steuerung (CTR) enthalten, die nach dessen Erhalt eine entsprechende Datenübertragung vom Datenspeicher (MEM) über den ersten Da­ tenbus (D1) zu einem der Cache-Speicher (C1, C2) bewirkt, und
  • - wobei die Programmbefehle (PDC) und der Cache-Ladebefehl (CL) so innerhalb der Programmdaten (PD) adressenmäßig auf­ einanderfolgend angeordnet sind, daß durch den Cache-Lade­ befehl (CL) bereits Daten angefordert werden, bevor sie für eine durch einen der Programmbefehle (PDC) ausgelöste Verarbeitung vom Prozessor (DSP) benötigt werden.
3. Circuit arrangement according to one of the preceding claims with additionally
  • - A cache controller (CTR), which by appropriate addressing (C1ADR, C2ADR, MEMADR) the cache memory (C1, C2) and the data memory (MEM) the data transmission on the first (D1) and the second (D2) Data bus controls,
  • a program memory (PM) for storing program data (PD) which contain program instructions (PDC) which are loaded into a command register (REG) for processing by the processor (DSP) via program data inputs (PIN),
  • - The program data (PD) also contain at least one cache load command (CL) for transmission to the cache controller (CTR), which after receiving a corresponding data transfer from the data memory (MEM) via the first data bus (D1) to one causes the cache memory (C1, C2), and
  • - Wherein the program instructions (PDC) and the cache load instruction (CL) are arranged in the address data sequentially within the program data (PD) that data are already requested by the cache load instruction (CL) before they are sent to one of the Program instructions (PDC) triggered processing by the processor (DSP) are required.
4. Schaltungsanordnung nach Anspruch 3, bei der
  • - über den zweiten Datenbus (D2) Daten vom Prozessor (DSP) in die Cache-Speicher (C1, C2) übertragen werden und
  • - die Programmdaten (PD) zusätzlich oder alternativ zum Cache-Ladebefehl (CL) wenigstens einen Cache-Schreibbefehl (CW) zur Übermittlung an die Cache-Steuerung (CTR) enthalten, die nach dessen Erhalt eine entsprechende Übertragung der vom Prozessor (DSP) im jeweiligen Cache-Speicher (C1, C2) gespei­ cherten Daten über den ersten Datenbus (D1) zum Datenspeicher (MEM) bewirkt.
4. Circuit arrangement according to claim 3, in which
  • - Data are transferred from the processor (DSP) to the cache memories (C1, C2) via the second data bus (D2) and
  • - The program data (PD) additionally or alternatively to the cache load command (CL) contain at least one cache write command (CW) for transmission to the cache controller (CTR), which after receiving a corresponding transfer of the processor (DSP) in respective cache memory (C1, C2) stored data via the first data bus (D1) to the data memory (MEM).
5. Schaltungsanordnung nach einem der Ansprüche 3 oder 4, bei der
  • - die Programmdaten (PD) außerdem wenigstens einen Cache-Wechsel­ befehl (CC) zur Übermittlung an die Cache-Steuerung (CTR) enthalten und
  • - aufgrund des Cache-Wechselbefehls (CC) die Cache-Steuerung (CTR) bei beiden Cache-Speichern (C1, C2) einen Wechsel der Datenübertragung vom ersten Datenbus (D1) zum zweiten Daten­ bus (D2) bzw. umgekehrt bewirkt.
5. Circuit arrangement according to one of claims 3 or 4, in which
  • - The program data (PD) also contain at least one cache change command (CC) for transmission to the cache controller (CTR) and
  • - Due to the cache change command (CC), the cache control (CTR) causes a change in the data transmission from the first data bus (D1) to the second data bus (D2) or vice versa in both cache memories (C1, C2).
6. Schaltungsanordnung nach einem der Ansprüche 3 bis 5, bei der
  • - die Verarbeitung der Programmbefehle (PDC) durch den Pro­ zessor (DSP) gemäß einem Takt (CLK) des Prozessors erfolgt und
  • - innerhalb desselben Taktzyklus eine Übermittlung des Cache-Lade­ befehls (CL) und/oder des Cache-Schreibbefehls (CW) und/oder des Cache-Wechselbefehls (CC) vom Programmspeicher (PM) an die Cache-Steuerung (CTR) und ein Laden eines der Programmbefehle (PDC) in das Befehlsregister (REG) erfolgt.
6. Circuit arrangement according to one of claims 3 to 5, in which
  • - The processing of the program instructions (PDC) by the processor (DSP) according to a clock (CLK) of the processor and
  • - Within the same clock cycle, a transmission of the cache load command (CL) and / or the cache write command (CW) and / or the cache change command (CC) from the program memory (PM) to the cache controller (CTR) and a load one of the program instructions (PDC) takes place in the instruction register (REG).
7. Schaltungsanordnung nach einem der Ansprüche 3 bis 6, bei der
  • - der Programmspeicher (PM) mit dem Datenspeicher (MEM) iden­ tisch ist und
  • - die Anschlüsse (PI/O) des Prozessors (DSP) die Programmda­ teneingänge sind.
7. Circuit arrangement according to one of claims 3 to 6, in which
  • - The program memory (PM) with the data memory (MEM) is identical and
  • - The connections (PI / O) of the processor (DSP) are the program data inputs.
8. Schaltungsanordnung nach einem der Ansprüche 3 bis 6, bei der
  • - im Datenspeicher (MEM) Operanden gespeichert sind,
  • - die Anschlüsse (PI/O) des Prozessors (DSP) Operandeneingän­ ge sind und
  • - der Prozessor (DSP) Programmdateneingänge (PIN) hat, denen die Programmdaten (PD) zuführbar sind.
8. Circuit arrangement according to one of claims 3 to 6, in which
  • - operands are stored in the data memory (MEM),
  • - The connections (PI / O) of the processor (DSP) are operand inputs and
  • - The processor (DSP) has program data inputs (PIN) to which the program data (PD) can be fed.
9. Schaltungsanordnung nach einem der vorstehenden Ansprüche, bei der der Prozessor (DSP) ein digitaler Signalprozessor ist.9. Circuit arrangement according to one of the preceding claims, where the processor (DSP) is a digital signal processor is. 10. Schaltungsanordnung nach einem der vorstehenden Ansprü­ che, bei der wenigstens ein Teil der ersten Anschlüsse (C1I/O1, C2I/O1) wenigstens eines der Cache-Speicher (C1, C2) mit we­ nigstens einem Teil seiner zweiten Anschlüsse (C1I/O2, C2I/O2) identisch ist.10. Circuit arrangement according to one of the preceding claims che, where at least some of the first connections (C1I / O1, C2I / O1) at least one of the cache memories (C1, C2) with we at least part of its second connections (C1I / O2, C2I / O2) is identical.
DE19713178A 1997-03-27 1997-03-27 Circuit arrangement with a processor and a data memory Withdrawn DE19713178A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE19713178A DE19713178A1 (en) 1997-03-27 1997-03-27 Circuit arrangement with a processor and a data memory
PCT/DE1998/000617 WO1998044421A1 (en) 1997-03-27 1998-03-03 Circuit with a processor and a data memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19713178A DE19713178A1 (en) 1997-03-27 1997-03-27 Circuit arrangement with a processor and a data memory

Publications (1)

Publication Number Publication Date
DE19713178A1 true DE19713178A1 (en) 1998-10-01

Family

ID=7824967

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19713178A Withdrawn DE19713178A1 (en) 1997-03-27 1997-03-27 Circuit arrangement with a processor and a data memory

Country Status (2)

Country Link
DE (1) DE19713178A1 (en)
WO (1) WO1998044421A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999060480A1 (en) * 1998-05-15 1999-11-25 Richard Rubinstein Shared, reconfigurable cache memory execution subsystem
WO2001035246A2 (en) * 1999-11-05 2001-05-17 Analog Devices, Inc. Cache memory system and method for a digital signal processor
DE10050980A1 (en) * 2000-10-13 2002-05-02 Systemonic Ag Memory configuration with I / O support
US6691206B1 (en) 1997-03-21 2004-02-10 Marger Johnson & Mccollom, P.C. Processor interfacing to memory-centric computing engine
US6732235B1 (en) 1999-11-05 2004-05-04 Analog Devices, Inc. Cache memory system and method for a digital signal processor
US6895452B1 (en) 1997-06-04 2005-05-17 Marger Johnson & Mccollom, P.C. Tightly coupled and scalable memory and execution unit architecture
CN100378656C (en) * 2002-04-30 2008-04-02 Nxp股份有限公司 Integrated circuit with a non-volatile memory and method for fetching data from said memory

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0496439A2 (en) * 1991-01-15 1992-07-29 Koninklijke Philips Electronics N.V. Computer system with multi-buffer data cache
DE4330751A1 (en) * 1992-09-16 1994-03-17 Hewlett Packard Co Improved cache storage system to reduce memory latency

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2939412C2 (en) * 1979-09-28 1983-11-17 Siemens AG, 1000 Berlin und 8000 München Circuit arrangement for addressing data for read and write access in a data processing system
US5420997A (en) * 1992-01-02 1995-05-30 Browning; Gary A. Memory having concurrent read and writing from different addresses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0496439A2 (en) * 1991-01-15 1992-07-29 Koninklijke Philips Electronics N.V. Computer system with multi-buffer data cache
DE4330751A1 (en) * 1992-09-16 1994-03-17 Hewlett Packard Co Improved cache storage system to reduce memory latency

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6691206B1 (en) 1997-03-21 2004-02-10 Marger Johnson & Mccollom, P.C. Processor interfacing to memory-centric computing engine
US6895452B1 (en) 1997-06-04 2005-05-17 Marger Johnson & Mccollom, P.C. Tightly coupled and scalable memory and execution unit architecture
WO1999060480A1 (en) * 1998-05-15 1999-11-25 Richard Rubinstein Shared, reconfigurable cache memory execution subsystem
WO2001035246A2 (en) * 1999-11-05 2001-05-17 Analog Devices, Inc. Cache memory system and method for a digital signal processor
WO2001035246A3 (en) * 1999-11-05 2002-07-11 Analog Devices Inc Cache memory system and method for a digital signal processor
US6732235B1 (en) 1999-11-05 2004-05-04 Analog Devices, Inc. Cache memory system and method for a digital signal processor
DE10050980A1 (en) * 2000-10-13 2002-05-02 Systemonic Ag Memory configuration with I / O support
US7143211B2 (en) 2000-10-13 2006-11-28 Systemonic Ag Memory configuration with I/O support
CN100378656C (en) * 2002-04-30 2008-04-02 Nxp股份有限公司 Integrated circuit with a non-volatile memory and method for fetching data from said memory

Also Published As

Publication number Publication date
WO1998044421A1 (en) 1998-10-08

Similar Documents

Publication Publication Date Title
EP0013737B1 (en) Multilevel storage hierarchy for a data processing system
DE3588009T2 (en) Device and method for reconfiguring a memory in a data processing arrangement.
EP0268285B1 (en) Method and circuit arrangement for the initial loading of a secondary computer
DE2617408B2 (en) Memory module for a data processing device with a memory hierarchy
DE1956604A1 (en) Data processing system with a storage system
DE68924719T2 (en) Device and method for executing a subroutine in a data processing system with block switching.
EP1744236A1 (en) Configuration of components when changing from a low-power to a normal-power consumption mode
WO2005091131A2 (en) Computer system for electronic data processing
DE3046912C2 (en) Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system
DE69119149T2 (en) Structure for direct memory-to-memory transfer
DE10215362A1 (en) Integrated memory with a memory cell array with several memory banks and circuit arrangement with an integrated memory
EP1230590B1 (en) Processor system
DE3936339C2 (en) DMA controller
DE19713178A1 (en) Circuit arrangement with a processor and a data memory
DE4206079C2 (en) Semiconductor memory device and method for reading data from such a semiconductor memory device
DE69808700T2 (en) Cache memory device
DE69030368T2 (en) Tandem cache memory
DE2355814C2 (en) Channel access device for a hierarchical memory arrangement
DE3931505A1 (en) DATA PROCESSING SYSTEM
DE10027845B4 (en) Submodule for controlling a data queue
DE102006041306A1 (en) Memory management circuitry and memory management method
DE2954533C2 (en)
DE69525850T2 (en) SYSTEM AND METHOD FOR PROCESSING STORAGE DATA AND COMMUNICATION SYSTEMS WITH THIS SYSTEM
EP0075715B1 (en) Cache memory and its operating method
DE19527592C2 (en) Cache arrangement for a processor and method for entering data into a cache memory

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal
8165 Unexamined publication of following application revoked