WO1998044421A1 - Schaltungsanordnung mit einem prozessor und einem datenspeicher - Google Patents
Schaltungsanordnung mit einem prozessor und einem datenspeicher Download PDFInfo
- Publication number
- WO1998044421A1 WO1998044421A1 PCT/DE1998/000617 DE9800617W WO9844421A1 WO 1998044421 A1 WO1998044421 A1 WO 1998044421A1 DE 9800617 W DE9800617 W DE 9800617W WO 9844421 A1 WO9844421 A1 WO 9844421A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- cache
- memory
- processor
- program
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
Definitions
- Circuit arrangement with a processor and a data memory
- the invention relates to a circuit arrangement with a processor and a data memory.
- Data to be processed by the processor are stored in the data memory. These can either be program instructions or operands.
- cache memories it is known to use so-called cache memories to adapt the data rate of a relatively slow data memory to the comparatively higher processing speed of the processor. These are used for the temporary storage of data stored in the data memory, in which the probability is relatively high that the processor will access them in the near future.
- DRAMs dynamic random access memories
- SRAMs static memories with random access
- cache memories which are larger in area and more expensive than DRAMs, but on the other hand are also significantly faster.
- a cache controller which receives data requests from the processor and then addresses the cache memory in such a way that the requested data is output to the processor.
- the data requests result from program instructions currently being processed by the processor. If the cache controller determines that the data that is currently in demand is not in the cache memory, it is a so-called cache miss. In this case, the cache controller must first reload the requested data from the data memory into the cache memory, which acts as a buffer, and at the same time the work of the processor, for example se by deactivating his work cycle, interrupt (so-called "stopping" the processor). For this purpose, the cache controller is able to address not only the cache memory, but also the data memory.
- the date currently requested by the processor is transferred from the data store to the cache memory, but also other data which are relatively likely to be accessed by the processor in the near future.
- This can be data, for example, which are stored in the data memory at addresses following the address of the currently requested date. The latter applies in particular if the data stored in the data memory are program instructions, since with the exception of jump instructions, programs are usually processed serially by the processor in the direction of ascending addresses.
- the cache controller can start the data transfer between the cache memory and the processor again, so that the processor can continue its previously interrupted work with the further processing of the last loaded program command can resume. If the cache is missed again, the sequence described is repeated.
- the processor transmits to the cache controller those addresses at which data generated by it are to be stored in the data memory MEM.
- the cache control then effects a corresponding transfer of this data from the processor via the cache memory to the data memory. Until this entire process is complete, the processor cannot read data.
- DSP digital signal processors
- the invention has for its object to provide a circuit arrangement with a processor and an associated data memory, in which the data flow between memory and processor is largely continuous.
- the circuit arrangement has two cache memories, which serve as a buffer for the data to be transferred from the data memory to the processor (and possibly vice versa).
- first connections of the two cache memories are connected via a first data bus to connections of the data memory and second connections of the cache memories are connected to the connections of the processor via a second data bus.
- the two cache memories are therefore connected in parallel with respect to all connections of both the data memory and the processor, so that the processor can advantageously alternately read from them or write to them. Data can also be transferred alternately between the data store and the cache stores.
- One embodiment of the invention provides that the first and second connections are at least partially identical in at least one of the cache memories.
- Such a cache memory is a single-port memory.
- data are alternately transmitted between one of the cache memories and the processor via the second data bus, while data are simultaneously transmitted between the data memory and the other cache memory via the first data bus.
- This has the advantage that, for example, one of the cache memories can already be written with data stored in the data memory, which the processor only requires after it has processed data from the other cache memory that is currently being read out.
- the invention offers the possibility of writing to or reading from one cache memory via the first data bus and, at the same time, writing to or reading from the other cache memory via the second data bus.
- the circuit arrangement has a cache control and a program memory, the cache control serving to control the data transmission on the two data buses and program data with program instructions to be processed by the processor are stored in the program memory.
- the program data contain, in addition to the program instructions, at least one cache load instruction which can be transmitted to the cache controller and which requires the processor to load one of the cache memories at a later time due to one of the program instructions. effected data from the data memory via the first data bus.
- the cache load instructions ensure that the corresponding "pre-ordered" data is already available in the cache memory to be reloaded when the processor wants to access it.
- one of the cache memories can be reloaded, for example, simultaneously with a data transfer between the other cache memory and the processor via the second data bus.
- cache miss If a cache miss occurs, the processor must always be stopped (interrupting the processing of the program instruction loaded in the instruction register) until the cache memory has been reloaded. In the invention, cache misses are avoided or at least reduced in number due to the cache load instructions, so that stopping the processor is avoided accordingly.
- the cache load instruction is inserted within the program data between the individual program instructions to be processed by the processor.
- the program instructions are processed by the processor after loading into a program instruction register of the processor, while the cache load instructions can be transmitted to the cache controller, which in turn reloads one of the cache memories with the data required in the future in accordance with the cache load instruction. It is therefore provided according to the invention to program the cache load instructions according to the invention in addition to the usual program instructions when programming the processor and to arrange them in such a way within the program to be processed that future required data can already be reloaded into one of the cache memories during the Processor reads current data from the other cache memory or writes data into it.
- a further development of the invention provides that the program data contain at least one cache write command which is also transmitted to the cache controller and controls the transmission of data that has already been written by the processor into one of the cache memories, from the latter via the first data bus into the data memory. It is thus possible to determine the time of writing into the data memory, so that, for example, the first data bus is available beforehand for data transmission between the data memory and the other cache memory.
- a further development of the invention provides that in addition to the cache load instruction and / or the cache write instruction, at least one cache change instruction is also arranged in a corresponding manner between the program instructions of the program to be processed.
- the cache change command can also be transmitted to the cache control after it has been read into the processor and informs the latter that a change of the cache memory should take place during the data transfer from the first data bus to the second data bus and vice versa.
- the cache load instruction and / or the cache write instruction and / or the cache change instruction is read in simultaneously with one of the program instructions by the processor.
- the processor does not have to interrupt the execution of the program instructions, which results in a speed advantage.
- One embodiment of the invention provides that operands are stored in the data memory, while the program data can be fed to the processor via a program data input.
- Another embodiment of the invention provides that the program data itself is stored in the data memory (which is then the program memory), so that the cache control for the program memory of the processor is controlled via the cache load instructions or the cache write instructions.
- the invention enables real-time data transfer between data memory and processor and an uninterrupted continuous data flow, so that the work of the processor does not have to be interrupted.
- the invention is therefore particularly suitable for use in circuit arrangements with digital signal processors.
- FIG. 1 shows an embodiment of the
- FIGS. 2A to 2D show four different operating states for the exemplary embodiment according to FIG. 1.
- FIG. 1 shows a circuit arrangement with a processor DSP, 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 processed by the processor.
- the cache memories C1, C2 are provided in order to adapt the data rate achievable by the data memory MEM to the processing speed of the processor.
- 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 MEM are via a first data bus D1 both with corresponding first connections C1I / 01 of the first cache memory C1 and with corresponding ones first connections C2I / 01 of the second cache memory C2.
- Second connections C1I / 02, C2I / 02 of the two cache memories Cl, C2 are connected in a corresponding manner to the connections PI / O of the processor DSP via a second data bus D2.
- Data that are 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.
- 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.
- the invention thus has two cache memories C1, C2 connected in parallel.
- 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 ClADR, C2ADR, MEMADR.
- CTR cache controller
- the addresses ADR of data currently required by processor DSP and the addresses ADR at which data generated by it are to be stored in data memory MEM are transmitted to cache controller CTR via corresponding lines.
- the cache controller CTR is informed whether data is to be read or written by the processor via a write signal W generated by the processor DSP and a read signal L, which can be implemented, for example, by a bit that is part of the cache controller CTR transmitted addresses is ADR.
- the processor DSP also transmits the addresses of future data to the cache controller CTR in the form of cache load commands CL, which will be explained further below.
- Data required in the future are those that are not the next but cessor DSP processed due to only read Programmbe ⁇ tivs PDC.
- the current data request is in each case the address of the next required date within the data memory MEM.
- the cache controller CTR carries out appropriate addressing of that cache memory Cl; C2 with the date with this address.
- the cache load instructions CL are arranged within program data PD which are stored in a program memory PM of the circuit arrangement and form a program to be processed by the processor DSP.
- the program data PD contain program instructions PDC which are designed like conventional processors.
- the program data also contain PD cache write commands CW and cache change commands CC, which will be discussed further below.
- Processor DSP via program data inputs PIN which are available in addition to the inputs IN.
- the program data PD can be fed to the program data inputs PIN via a program data bus from the program memory PM.
- 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.
- 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. to to HH
- the cache load commands CL advantageously contain a start address, from which a data block of a defined size is to be transferred from the data memory MEM by the cache controller CTR to the cache memories C1, C2 that are currently being reloaded. It is also possible for the cache load instruction CL to have additional information, such as, for example, the number of successive data blocks which are to be reloaded on the basis of a cache load instruction CL which is to be executed by the cache controller CTR. In addition, the cache load command can also contain modulo information in which reloading with any of these data blocks can be started within successive data blocks to be loaded based on the start address. The data blocks mentioned have multiple data with successive addresses. Reloading a large amount of data can thus be triggered with a very short cache load command CL which has only a few bits.
- the data D1 to D3 can be read into the processor DSP via the second data bus D2 from the first cache memory C1.
- the cache controller CTR can read data from the data memory MEM into the second cache memory C2 on the basis of 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 Cl, 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 shows the state after the data D4 to D6 have been transferred to the second cache memory C2 via the first data bus D1 on the basis of one of the cache load commands CL.
- data DU to D13 have been transferred from the processor DSP to the first cache memory C1 via the second data bus D2, for which purpose the processor DSP transfers the write signal W and the corresponding addresses ADR for the data to be stored to the cache controller CTR Has.
- 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 due to the cache Control CTR transmitted addresses ADR of the currently required data and the read signal L is accessible.
- the data DU to D13 present in the first cache memory C1 are stored in the data memory MEM via the first data bus D1 on the basis of one of the cache write commands CW.
- FIG. 2D now shows the state after data D8 to D10, which was requested at the same time via one of the cache load commands CL and was later loaded, was reloaded into the first cache memory C1 by the cache controller CTR via the first data bus D1, and further data D14 to D16 from the processor DSP based on the addresses ADR and the write signal W via the second data bus D2 to the second cache memory C2 ü have endured b.
- the assignment of the data buses D1, D2 to the cache memories Cl, C2 can now be changed again by means of a further cache change command CC.
- the cache write command CW advantageously enables data from the other cache memory to be stored in the data memory MEM independently of access by the processor DSP to one of the cache memories C1, C2. Both measures accelerate and confirm the data transmission between the data memory MEM and processor DSP.
- the cache controller CTR is preferably implemented as wired logic. However, it can also be implemented by a second processor, which is present in addition to the processor DSP.
- FIG. 1 shows an exemplary embodiment of the invention in which operands which are required for processing by the processor DSP on the basis of the program instructions PDC can be stored in the data memory MEM.
- each cache memory C1, C2 has only one type of connections, which are each connected to both the first data bus D1 and the second data bus D2. If the data buses D1, D2 have a different width, the first and second connections can only be partially identical.
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
Die Schaltungsanordnung weist zwischen einem Prozessor (DSP) und einem zugehörigen Datenspeicher (MEM) zwei parallel geschaltete Cache-Speicher (C1, C2) auf, aus denen jeweils wechselseitig ausgelesen werden kann, während der jeweils andere Cache-Speicher zeitgleich mit Daten aus dem Datenspeicher (MEM) nachladbar ist. Hierdurch ist der Datenfluß verstetigbar und für ihn herrschen Echtzeitbedingungen. Besonders geeignet für den Einsatz von digitalen Signalprozessoren.
Description
Beschreibung
Schaltungsanordnung mit einem Prozessor und einem Datenspei- eher
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.
Es ist bekannt, zur Anpassung der Datenrate eines relativ langsamen Datenspeichers an die im Vergleich dazu höhere Verarbeitungsgeschwindigkeit des Prozessors sogenannte Cache- Speicher einzusetzen. Diese dienen zur Zwischenspeicherung von im Datenspeicher gespeicherten Daten, bei denen die Wahrscheinlichkeit relativ hoch ist, daß der Prozessor in der nächsten Zeit auf Sie zugreift. Als Datenspeicher kommen beispielsweise häufig DRAMs (dynamische Speicher mit wahlfreiem Zugriff) zum Einsatz, die relativ kostengünstig sind, jedoch auch relativ langsam. Als Cache-Speicher werden dagegen beispielsweise SRAMs (statische Speicher mit wahlfreiem Zugriff) eingesetzt, die gegenüber DRAMs zwar großflächiger und teurer, aber andererseits auch wesentlich schneller sind.
Zum Betrieb der geschilderten Schaltungsanordnung ist eine Cache-Steuerung notwendig, die Datenanforderungen des Prozessors 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 Prozessor 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 nachladen 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 Datenspeicher abgelegt sind. Letzteres trifft insbesondere zu, wenn die im Datenspeicher gespeicherten Daten Programmbefehle sind, da mit der Ausnahme von Sprungbefehlen Programme üblicherweise seriell in Richtung aufsteigender Adressen vom Pro- zessor abgearbeitet werden.
Ist nach einem aufgetretenen Cache-Miss der Cache-Speicher wieder mit neuen Daten geladen worden, kann die Cache- Steuerung erneut die Datenübertragung zwischen Cache-Speicher und Prozessor starten, so daß der Prozessor seine zuvor unterbrochene Arbeit mit der weiteren Verarbeitung des zuletzt geladenen Programmbefehls wieder aufnehmen kann. Bei einem erneuten Cache-Miss wiederholt sich der beschriebene Ablauf.
Außer dem oben beschriebenen Lese-Caching ist auch ein
Schreib-Caching möglich. Dabei übermittelt der Prozessor diejenigen Adressen an die Cache-Steuerung, an denen von ihm erzeugte 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 abgeschlossen ist, kann kein Lesen von Daten durch den Prozessor erfolgen.
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 Zugriffsgeschwindigkeit 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 unterbrochen werden darf .
Der Erfindung liegt die Aufgabe zugrunde, eine Schaltungsan- Ordnung mit einem Prozessor und einem zugehörigen Datenspeicher anzugeben, bei der der Datenfluß zwischen Speicher und Prozessor weitestgehend kontinuierlich erfolgt.
Diese Aufgabe wird durch eine Schaltungsanordnung gemäß An- spruch 1 gelöst. Weiterbildungen und Ausgestaltungen der Erfindung sind in Unteransprüchen gekennzeichnet.
Erfindungsgemäß weist die Schaltungsanordnung zwei Cache- Speicher auf, die als Zwischenspeicher für die vom Datenspei- eher zum Prozessor (und ggf. umgekehrt) zu übertragenden Daten dienen. Hierzu sind erste Anschlüsse der beiden Cache- Speicher über einen ersten Datenbus mit Anschlüssen des Datenspeichers 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 aller Anschlüsse sowohl des Datenspeichers als auch des Prozessors parallel geschaltet, so daß vom Prozessor vorteilhafterweise abwechselnd aus ihnen ausgelesen oder in sie hineingeschrieben werden kann. Ebenso können auch abwechselnd Daten zwischen dem Datenspeicher und den Cache-Speichern übertragen werden .
Eine Ausführungsform der Erfindung sieht vor, daß bei wenigstens 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- Speicher.
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 Daten 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 Erfindung die Möglichkeit, über den ersten Datenbus in den einen Cache-Speicher zu schreiben oder aus ihm zu lesen und gleichzeitig über den zweiten Datenbus in den anderen Cache- Speicher zu schreiben oder aus ihm zu lesen. Daher ist es z.B. möglich, entweder den einen Cache-Speicher aus dem Datenspeicher 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.
Eine Weiterbildung der Erfindung sieht vor, daß die Schal- tungsanordnung eine Cache-Steuerung und einen Programmspeicher aufweist, wobei die Cache-Steuerung einer Steuerung der Datenübertragung auf den beiden Datenbussen dient und im Programmspeicher Programmdaten mit durch den Prozessor abzuarbeitenden Programmbefehlen gespeichert sind. Dabei ist vor- teilhafterweise vorgesehen, daß die Programmdaten außer den Programmbefehlen wenigstens einen Cache-Ladebefehl beinhalten, der an die Cache-Steuerung übermittelbar ist und der das Laden eines der Cache-Speicher mit zu einem späteren Zeitpunkt 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 Prozessor sie aber später benötigt, liegen sie bereits im Cache- Speicher vor. Durch die Cache-Ladebefehle ist gewährleistet, daß die entsprechenden "vorbestellten" Daten bereits im jeweils nachzuladenden Cache-Speicher vorliegen, wenn der Prozessor auf sie zugreifen möchte. Dabei kann das Nachladen eines der Cache-Speicher beispielsweise gleichzeitig zu einer Datenübertragung zwischen dem anderen Cache-Speicher und dem Prozessor über den zweiten Datenbus erfolgen.
Wenn ein Cache-Miss auftritt, muß der Prozessor grundsätzlich angehalten werden (wobei die Verarbeitung des jeweils im Befehlsregister 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.
Der Cache-Ladebefehl ist innerhalb der Programmdaten zwischen die einzelnen durch den Prozessor zu verarbeitenden Programmbefehle eingefügt. Dabei erfolgt eine Verarbeitung der Programmbefehle nach einem Laden in ein Programmbefehlsregister des Prozessors durch den Prozessor, während die Cache- Ladebefehle an die Cache-Steuerung übermittelbar sind, die wiederum entsprechend dem Cache-Ladebefehl einen der Cache- Speicher 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 erfindungsgemäßen Cache-Ladebefehle mit zu programmieren und diese in einer Weise innerhalb des abzuarbeitenden Programmes anzuordnen, 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.
Eine Weiterbildung der Erfindung sieht vor, daß die Programmdaten wenigstens einen Cache-Schreibbefehl enthalten, der
ebenfalls an die Cache-Steuerung übermittelt wird und in entsprechender 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 Datenbus für eine Datenübertragung zwischen dem Datenspeicher und dem jeweils anderen Cache-Speicher zur Verfügung steht.
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 übermittelbar und teilt dieser mit, daß ein Wechsel der Cache- Speicher bei der Datenübertragung vom ersten Datenbus zum zweiten Datenbus bzw. umgekehrt erfolgen soll.
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 eingelesen wird. In dem Fall muß der Prozessor die Abarbeitung der Programmbefehle nicht unterbrechen, woraus ein Geschwin- digkeitsvorteil resultiert.
Eine Ausführungsform der Erfindung sieht vor, daß im Datenspeicher Operanden gespeichert sind, während die Programmdaten dem Prozessor über einen Programmdateneingang zuführbar sind.
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- Ladebefehle bzw. die Cache-Schreibbefehle die Cache-Steuerung für den Programmspeicher des Prozessors gesteuert wird.
Die Erfindung ermöglicht eine echtzeitfähige Datenübertragung zwischen Datenspeicher und Prozessor und einen unterbrechungsfreien kontinuierlichen Datenfluß, so daß die Arbeit des Prozessors nicht unterbrochen werden muß. Daher eignet sich die Erfindung besonders zum Einsatz in Schaltungsanordnungen mit digitalen Signalprozessoren.
Nachfolgend wird die Erfindung anhand der in den Figuren der Zeichnung dargestellten Ausführungsbeispielen näher erläu- tert.
Figur 1 zeigt ein Ausführungsbeispiel der
Erfindung;
die Figuren 2A bis 2D zeigen vier verschiedene Betriebszu- stände für das Ausführungsbeispiel nach Figur 1.
Figur 1 zeigt eine Schaltungsanordnung mit einem Prozessor DSP, einem Datenspeicher MEM und zwei Cache-Speichern Cl, C2. Dargestellt sind nur die für die Erfindung wesentlichen Komponenten. Es können aber auch andere Komponenten in beliebiger Weise hinzugefügt werden. Der Prozessor DSP weist Anschlüsse PI/O auf, denen im Datenspeicher MEM gespeicherte Daten zuzuführen sind oder über die vom Prozessor DSP im Datenspeicher MEM zu speichernde Daten ausgebbar sind, um anschließ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 Cl, C2 vorgesehen. Die im Datenspeicher MEM gespeicherten Daten sind über Anschlüsse MEMI/O desselben aus ihm auslesbar. Im Datenspeicher MEM vom Prozessor DSP zu speichernde Daten sind ebenfalls über die Anschlüsse MEMI/O einlesbar. Die Anschlüs- se MEMI/O des Datenspeichers MEM sind über einen ersten Datenbus Dl sowohl mit entsprechenden ersten Anschlüssen C1I/01 des ersten Cache-Speichers Cl, als auch mit entsprechenden
ersten Anschlüssen C2I/01 des zweiten Cache-Speichers C2 verbunden. Zweite Anschlüsse C1I/02, C2I/02 der beiden Cache- Speicher Cl, C2 sind auf entsprechende Weise über einen zweiten Datenbus D2 mit den Anschlüssen PI/O des Prozessors DSP verbunden. Somit sind Daten, die im Datenspeicher MEM gespeichert sind, wahlweise über den ersten Cache-Speicher Cl 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 Cl, C2 und des Prozessors DSP jeweils Ein- und Ausgänge und die Datenbusse Dl und D2 bidirektional.
Die Erfindung weist also zwei parallel geschaltete Cache- Speicher Cl, C2 auf.
Die Schaltungsanordnung in Figur 1 weist außerdem eine Cache- Steuerung CTR auf, die über entsprechende Adreßbusse ClADR, C2ADR, MEMADR sowohl jeden einzelnen Cache-Speicher Cl, C2 , als auch den Datenspeicher MEM adressieren kann.
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- Steuerung CTR übertragen. Ob Daten durch den Prozessor gelesen 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.
Weiterhin werden der Cache-Steuerung CTR vom Prozessor DSP die Adressen zukünftig benötigter Daten in Form von Cache- Ladebefehlen 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.
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 Cl; C2 durch, in dem sich das Datum mit dieser Adresse befindet.
Die Cache-Ladebefehle CL sind innerhalb von in einem Programmspeicher PM der Schaltungsanordnung gespeicherten Programmdaten PD, die ein durch den Prozessor DSP abzuarbeitendes Programm bilden, angeordnet. Die Programmdaten PD enthalten 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 eingegangen wird.
Beim gezeigten Ausführungsbeispiel in Figur 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 Programmdaten PD werden sequentiell gemäß einem Arbeitstakt CLK des Prozessors DSP über die Programmdateneingänge PIN eingelesen. Dabei werden die Programmbefehle PDC in ein Programm- befehlsregister REG eingelesen und anschließend einer Bearbeitung 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.
to to H H
LΠ o LΠ o LΠ LΠ
μj
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.
Die Cache-Ladebefehle CL enthalten günstigerweise eine Star- tadresse, ab der ein Datenblock definierter Größe aus dem Datenspeicher MEM durch die Cache-Steuerung CTR in den jeweils gerade nachzuladenden der Cache-Speicher Cl, 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 aufgrund eines gerade durch die Cache-Steuerung CTR auszuführenden Cache-Ladebefehls CL nachgeladen werden sollen. Außerdem kann der Cache-Ladebefehl auch eine Modulo-Information enthalten, 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 aufeinanderfolgenden 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.
Da aufgrund des Cache-Ladebefehls CL immer Datenblöcke definierter Größe zwischen Datenspeicher MEM und Cache-Speicher Cl, 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 allgemeinen geschieht dies innerhalb eines Zyklus) , ist der Cache- Ladebefehl CL innerhalb der Programmdaten PD günstigerweise so angeordnet, daß die durch ihn für die zukünftige Abarbeitung angeforderten Daten rechtzeitig im jeweiligen Cache- Speicher Cl, C2 bereitgestellt werden. Rechtzeitig bedeutet
t to
Lπ o LΠ o LΠ o LΠ
N TJ tr _ LQ N TJ Ω H 0 tr Pi CO d N co tr α P Ω cq P co CQ 3 tr Ω < LQ 55 P O P P d P φ N Φ Φ P 0) El P. d Φ Φ ES sS O rr Φ co Φ H φ 0) ΓT O d φ OJ o P φ OJ P- P- OJ
< O CQ d N CQ 0 Ω Φ CQ ES P p- 3 Φ TJ P- ~. rr Φ rr P- Ω El J Ω ΓT φ φ tr o Ω Φ CQ LQ ET Φ P α o d P- rr d= Φ d N ET 3 tr Φ ΓΛ Φ
P Φ ET p. P- O P Φ ES Φ P. Ω Φ Φ ES OJ CQ Ω cq ES Φ d tr Φ Pi o El P- Φ P-
ΓΛ P Φ cq P PJ rr ö CQ - P- ET ES P P. ES to rr P El Φ P- 1 φ 3 -
P. Q P- o rr CQ 3 25 CQ PJ P. 0 Φ Φ d Φ N OJ ^ TJ d LQ P- 55 Φ Φ TJ J d O Φ CQ φ 3 Φ l rr P- σ ES P- ES ΓT d tr OJ α ES d p. Φ CQ tr α TJ El tr
P P tr Φ ES ö co Ω P Φ φ ro Φ 3 LQ - cq d P CQ P. Φ Ω Φ Φ Φ P LQ Φ
Ω Φ ES CO TJ ET Φ ES OJ ES TJ 3 O Φ OJ P- LQ Φ Ei tr 3 tr 33 0 Φ <!
ET α ES > TJ φ CQ Ω co 33 CΛ P- rr P Φ Ω tr P CQ cq Λ CQ Ω P CQ CQ Φ Φ LQ o co Φ O d P- Φ tr X3 φ ES co 0 P Pi Φ P. Ω P ΓT H d Ω φ OJ CQ ET P- P 0 P
P. TJ Ei •Ό" ΓΛ OJ Ω Φ Φ P- OJ TJ N fö < φ ET d Φ fö ES Φ 0) El P to 0) P
P- rr ES tr tr ES P- rr El Φ P φ P o P ES P- P Pi P Ω tr Φ Φ φ 3 P. φ
Φ o 25 P- d= φ Φ P. Ω Φ CQ P- Φ o PJ OJ P El o P. ES Φ Φ CQ tr Φ P. LQ El 3 φ P-
TJ Φ 3 ET P. P φ ET P Ω ES Ω ΓΛ ES d P. co P P- P. rr Φ Hl P- P- Ω co P ES
Ω Φ P- P- P P- Φ P φ Φ Er Φ ET O Ei co P Φ CQ Φ S El φ Φ φ φ CQ Ω OJ J rr Φ
OJ P- o φ d φ TJ ET P ES Φ P LQ Φ φ P- OJ Ω Φ CQ ES co tr ΓT d φ Φ P
Ω Ω Φ 2 ES 2 V- 25 ü Ei N Φ P ö El ES Ω PJ Ei J Ω φ OJ Ω P- El
Er Er cq Ω Φ 2 P> φ P. P σ OJ Φ tr Ω Ω σ φ OJ P d ET Ω P. φ φ P. ES CQ OJ d= Ω P- M rr t*> Φ Φ co 3 P Ω rr P- Q P" ET to PJ P- Ω Ω tr ö Φ
P P- LQ tr Ω tr Ω CΩ 2 Φ φ P El TJ tr OJ d o OJ Φ O Ω Ω Ω tr f • 53 Φ OJ P
CO rr φ Φ ET Φ φ — ES ES M P Ω 3 rr <! P ET d ET Φ M Φ P rr
*Ü ES P. P- Φ P P- d= Pi Ω ö d P- rr ET o Φ 55 Ω φ ES Φ rr Ω ö ES Φ TJ φ OJ rr Φ co CQ 35 φ tr J OJ ES E) φ CQ d P El φ ET P. P Φ co P- P- TJ El P
P- ^—' P XJ CO p. ΓT H- P φ d= Ω rr P. CQ S P- ES ET Ω φ 25 ES P- rr P. Φ LQ 2 o
Ω to p- rr P- φ P tr ET Φ OJ p- 55 Ω P. Φ P Er ES φ N y-1 Φ Φ CQ CD Φ LQ
ET o PJ Ω φ Φ φ P. 0 rr Φ Φ ES α rr P Φ tr P Φ ΓΛ Ω 33 Ω rr d CQ Φ rr P- P P φ PJ d φ P. P P PJ N p. Ω P. LQ Φ 25 ET Φ H φ P Φ ES 0)
P α co Ω φ TJ P φ IQ PJ CO tr rr - tr d OJ Φ Φ CQ P- - P. P TJ ES o
OJ ET φ P. J φ φ o El o ET φ tr Ω Φ rr Φ d P 55 ΓΛ P i I-1
Ω rr Pi Φ P 2 P P Φ
O Ω El 'S Φ Φ P ES 53 ö φ rr Φ ES Φ ET Φ Ω P ES o P- P- 6*
Φ d ES IQ OJ Ω El ES P- φ CQ Φ P- Φ ES ES rr CQ tr ES t LQ N P Φ cq P Ω OJ CQ Ω «s Φ φ
- ES Ω F O P- TJ ES φ tr P 0J= P. CQ Φ Φ Φ Ω φ P P- P
ET Φ PJ tr Ω J ET ΓT Φ El φ Ω Φ TJ E σ Φ 0) Ω CD ES P φ
Ω P- CQ cq Ω Φ ET ES N φ Φ CD P- Ω P. ET El P • φ to H- Ω Pi CQ Φ Φ P- ET to 3 φ Φ rr H 3 Φ ES d 35 P Ω Φ J φ P- to Φ ET ES ET *s o tr ES H Ω
P- tr iö PJ co • 3 Φ d= ET P- Ω tr Φ rr Ω Ω Ω y-A ö Φ P Φ tr φ
N σ E5 Φ CQ ES Ω F P- Ω tr Φ ES ET to Φ OJ ET Ω ES J 25 55 O El P. LQ
3 PJ O P CQ ET OJ tsi Φ P Φ Φ Φ Ω φ ES Ω φ CO φ Φ Φ 3 TJ
P- rr co φ 33 tr Ω P P. P- o - P Ω El P. ET El PJ Φ Ω Φ Ω (T P- Φ PJ P CQ OJ α
CQ Φ Ω tr O Φ ET Φ Φ φ 2 α 25 Ω d Φ P. P. P ES tr φ rr P- TJ o Ω
Ω ES ET ET P P- tr OJ Ω Φ M OJ φ Ei P Φ P ET tr tr CQ d Φ E) Ω Φ tr tr o P d= tr Φ O ES to P- 2 rr Ω < OJ Ω F ES Φ PJ Φ d Φ Φ P IQ ΓΛ OJ P- rr φ
Φ TJ φ Ω P- co tr P P. ES Φ tr O Ω ET OJ CQ 35 CQ P ιq Φ Ω Ω . P-
El Φ H- F φ rr o Φ Φ rr φ d= Φ N ES CQ ES ET P. Ω CQ tr P- ΓΛ d φ Ei ET ET Ei cq P- tr P- rr φ Er P tr El d d= Φ cq P. Φ OJ φ P Φ σ ES Φ P- Φ Φ Φ
Φ Ω P- Ei Φ Φ φ Φ tr P Φ Φ tr Ω Ei p. co Φ CQ . φ o Ω P ES
CQ ET Ω ES TJ tr TJ ES P P. Φ φ tr Φ ES Φ ET 3 φ r N P- Φ tr rr J φ PJ F tr Ω P rr Φ P P Φ P OJ Φ PJ= P Φ d= Ω rr El rr Φ N
Φ P Ω p. Φ J t≥l F O P. P P rr P TJ Φ CΛ P. P LQ H φ El d
P- ET Φ 10 P Ω N Φ OJ O P Φ Ω Φ P T CO P- J P- tϋ rr P- LQ
Ω 2 P- P Φ • P 25 d φ P LQ σ OJ ET J ES O J cq P φ O P- . CD ES TJ P
ET M S Φ ES CQ Φ PJ LQ ' Ω φ N CQ φ O Ω 3 o o P P-
Φ 2 cq tr Ω tö to OJ P. ΓΛ α ES ΓT φ tr El Φ P- CQ LQ Ω LQ ET P- O ES o
P - • Φ OJ φ d O OJ Φ El ES Ω Φ to Ω Ω O P PJ φ rr Φ P TJ cq rr P Ω P- TJ CQ P. P rr 35 LQ Ω σ co F ET PJ Ω El P. - P Φ P P
P. ö Φ ET 3 P Φ Φ d & ET OJ O φ φ ET Φ P o OJ OJ
P- Φ P- P- O P. P α ES P d PJ rr P tr P P- 3 Φ P P. ES 3 d
Φ P rr ES Φ co rr Φ φ CQ Ei OJ ΓΛ cq 3 J Ei ΓΛ
OJ J to to H H
LΠ o Lπ o Lπ O Lπ
H
gnals L die Daten Dl bis D3 über den zweiten Datenbus D2 aus dem ersten Cache-Speicher Cl in den Prozessor DSP einlesbar. Gleichzeitig sind durch die Cache-Steuerung CTR aufgrund eines der Cache-Ladebefehle CL über den ersten Datenbus Dl Da- ten aus dem Datenspeicher MEM in den zweiten Cache-Speicher C2 einlesbar. Angedeutet ist diese zeitweilige Zuordnung der Datenbusse Dl, D2 zu den Cache-Speichern Cl, C2 in den Figuren 2A bis 2D einerseits durch die durchgezogenen, und andererseits durch die gestrichelten Linien, die die Datenbusse Dl, D2 darstellen.
Figur 2B zeigt den Zustand, nachdem aufgrund eines der Cache- Ladebefehle CL die Daten D4 bis D6 über den ersten Datenbus Dl in den zweiten Cache-Speicher C2 übertragen wurden. Außer- dem sind Daten DU bis D13 vom Prozessor DSP über den zweiten Datenbus D2 in den ersten Cache-Speicher Cl übertragen worden, wozu der Prozessor DSP das Schreibsignal W und die entsprechenden Adressen ADR für die zu speichernden Daten an die Cache-Steuerung CTR übertragen hat.
Durch einen der Cache-Wechselbefehle CC erfolgt nun gemäß Figur 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 aktuell benötigten Daten und des Lesesignals L zugreifbar ist. Gleichzeitig werden die im ersten Cache-Speicher Cl vorhandenen Daten DU bis D13 aufgrund eines der Cache-Schreibbefehle CW über den ersten Datenbus Dl im Datenspeicher MEM abgelegt.
Figur 2D zeigt nun den Zustand, nachdem gleichzeitig über einen der Cache-Ladebefehle CL angeforderte, zu einem späteren Zeitpunkt benötigte Daten D8 bis D10 über den ersten Datenbus Dl durch die Cache-Steuerung CTR in den ersten Cache-Speicher Cl nachgeladen wurden und weitere Daten D14 bis D16 vom Prozessor 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 Dl, D2 zu den Cache-Speichern Cl, C2 gewechselt werden.
Die anhand der Figuren 2A bis 2D gemachten Erläuterungen machen deutlich, daß aufgrund des erfindungsgemäßen Cache- Ladebefehls 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 vorteilhaft ein von Zugriffen des Prozessors DSP auf einen der Cache-Speicher Cl, 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.
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 vorhanden ist.
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- Schreibbefehle CW oder die Cache-Lesebefehle CL für ihre Steuerung notwendig.
Anders als beim Ausführungsbeispiel in Figur 1 gezeigt, ist es auch möglich, daß die Anschlüsse PI/O des Prozessors DSP die Programmdateneingänge PIN sind. Dann ist der Datenspeicher MEM der Programmspeicher PM und die beiden Cache- Speicher Cl, C2 dienen der Zwischenspeicherung der Programmdaten PD. Damit würde über die Cache-Ladebefehle CL und die Cache-Wechselbefehle CC die Steuerung des Zwischenspeicherns
von Programmdaten PD in den Cache-Speiehern Cl, C2 erfolgen. Dagegen zeigt die Figur 1 ein Ausführungsbeispiel der Erfindung, 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 Abwandlung des geschilderten Ausführungsbeispiels, bei dem die ersten C1I/01, C2I/01 und zweiten C1I/02, C2I/02 Anschlüsse jedes Cache-Speichers Cl, C2 getrennt voneinander sind (es handelt sich um sogenannte Dual-Port-Speicher) , ist es möglich, daß sie für jeden Cache-Speicher identisch miteinander sind (sogenannte Single-Port-Speicher) . Dann hat jeder Cache-Speicher Cl, C2 nur eine Art von Anschlüssen, die jeweils sowohl mit dem ersten Datenbus Dl als auch mit dem zweiten Datenbus D2 verbunden sind. Haben die Datenbusse Dl, D2 eine unterschiedliche Breite, können die ersten und zweiten Anschlüsse nur teilweise identisch sein.
Claims
1. Schaltungsanordnung mit - einem Prozessor (DSP) und einem Datenspeicher (MEM) mit jeweils Anschlüssen (PI/O, MEMI/O) ,
- mit zwei Cache-Speichern (Cl, C2) mit ersten Anschlüssen
(C1I/01, C2I/01) und zweiten Anschlüssen (C1I/02, C2I/02) ,
- einem ersten Datenbus (Dl) , über den jeder der Anschlüsse (MEMI/O) des Datenspeichers (MEM) mit je einem der ersten
Anschlüsse (C1I/01, C2I/02) jedes Cache-Speichers (Cl, 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/02, C2I/02) jedes Cache-Speichers (Cl, C2) verbunden ist .
2. Schaltungsanordnung nach Anspruch 1, bei der eine Datenübertragung gleichzeitig über den ersten Datenbus (Dl) zwischen einem der Cache-Speicher (Cl; C2) und dem Datenspeicher (MEM) und über den zweiten Datenbus (D2) zwischen dem anderen Cache-Speicher (Cl; C2) und dem Prozessor (DSP) erfolgt.
3. Schaltungsanordnung nach einem der vorstehenden Ansprüche mit zusätzlich
- einer Cache-Steuerung (CTR) , die durch entsprechende Adressierung (C1ADR, C2ADR, MEMADR) der Cache-Speicher (Cl, C2) und des Datenspeichers (MEM) die Datenübertragung auf dem ersten (Dl) und dem zweiten (D2) Datenbus steuert,
- einem Programmspeicher (PM) zum Speichern von Programmdaten (PD) , die Programmbefehle (PDC) enthalten, die zur Verarbeitung 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 Datenbus (Dl) zu einem der Cache-Speicher (Cl, 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- Ladebefehl (CL) bereits Daten angefordert werden, bevor sie für eine durch einen der Programmbefehle (PDC) ausgelöste Verarbeitung vom Prozessor (DSP) benötigt werden.
4. Schaltungsanordnung nach Anspruch 3, bei der
- über den zweiten Datenbus (D2) Daten vom Prozessor (DSP) in die Cache-Speicher (Cl, 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 (Cl, C2) gespeicherten Daten über den ersten Datenbus (Dl) zum Datenspeicher (MEM) bewirkt.
5. Schaltungsanordnung nach einem der Ansprüche 3 oder 4, bei der
- die Programmdaten (PD) außerdem wenigstens einen Cache- Wechselbefehl (CC) zur Übermittlung an die Cache-Steuerung (CTR) enthalten und
- aufgrund des Cache-Wechselbefehls (CC) die Cache-Steuerung (CTR) bei beiden Cache-Speichern (Cl, C2) einen Wechsel der
Datenübertragung vom ersten Datenbus (Dl) zum zweiten Datenbus (D2) bzw. umgekehrt bewirkt.
6. Sehaltungsanordnung nach einem der Ansprüche 3 bis 5, bei der
- die Verarbeitung der Programmbefehle (PDC) durch den Prozessor (DSP) gemäß einem Takt (CLK) des Prozessors erfolgt und
- innerhalb desselben Taktzyklus eine Übermittlung des Cache- Ladebefehls (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.
7. Schaltungsanordnung nach einem der Ansprüche 3 bis 6, bei der
- der Programmspeicher (PM) mit dem Datenspeicher (MEM) identisch ist und
- die Anschlüsse (PI/O) des Prozessors (DSP) die Programmda- teneingänge sind.
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änge sind und
- der Prozessor (DSP) Programmdateneingänge (PIN) hat, denen die Programmdaten (PD) zuführbar sind.
9. Schaltungsanordnung nach einem der vorstehenden Ansprüche, bei der der Prozessor (DSP) ein digitaler Signalprozessor ist .
10. Schaltungsanordnung nach einem der vorstehenden Ansprü- ehe, bei der wenigstens ein Teil der ersten Anschlüsse (C1I/01, C2I/01) wenigstens eines der Cache-Speicher (Cl, C2) mit wenigstens einem Teil seiner zweiten Anschlüsse (C1I/02, C2I/02) identisch ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19713178A DE19713178A1 (de) | 1997-03-27 | 1997-03-27 | Schaltungsanordnung mit einem Prozessor und einem Datenspeicher |
DE19713178.6 | 1997-03-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1998044421A1 true WO1998044421A1 (de) | 1998-10-08 |
Family
ID=7824967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE1998/000617 WO1998044421A1 (de) | 1997-03-27 | 1998-03-03 | Schaltungsanordnung mit einem prozessor und einem datenspeicher |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE19713178A1 (de) |
WO (1) | WO1998044421A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143211B2 (en) | 2000-10-13 | 2006-11-28 | Systemonic Ag | Memory configuration with I/O support |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933855A (en) | 1997-03-21 | 1999-08-03 | Rubinstein; Richard | Shared, reconfigurable memory architectures for digital signal processing |
US6895452B1 (en) | 1997-06-04 | 2005-05-17 | Marger Johnson & Mccollom, P.C. | Tightly coupled and scalable memory and execution unit architecture |
AU7575398A (en) * | 1998-05-15 | 1999-12-06 | Richard Rubinstein | Shared, reconfigurable cache memory execution subsystem |
AU1458501A (en) * | 1999-11-05 | 2001-06-06 | Analog Devices, Inc. | Generic serial port architecture and system |
US6732235B1 (en) | 1999-11-05 | 2004-05-04 | Analog Devices, Inc. | Cache memory system and method for a digital signal processor |
WO2003093980A2 (en) * | 2002-04-30 | 2003-11-13 | Koninklijke Philips Electronics N.V. | Apparatus and method for fetching data from memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0026460A1 (de) * | 1979-09-28 | 1981-04-08 | Siemens Aktiengesellschaft | Schaltungsanordnung zum Adressieren von Daten für Lese- und Schreibzugriffe in einer Datenverarbeitungsanlage |
US5420997A (en) * | 1992-01-02 | 1995-05-30 | Browning; Gary A. | Memory having concurrent read and writing from different addresses |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0496439B1 (de) * | 1991-01-15 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür |
US5404484A (en) * | 1992-09-16 | 1995-04-04 | Hewlett-Packard Company | Cache system for reducing memory latency times |
-
1997
- 1997-03-27 DE DE19713178A patent/DE19713178A1/de not_active Withdrawn
-
1998
- 1998-03-03 WO PCT/DE1998/000617 patent/WO1998044421A1/de active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0026460A1 (de) * | 1979-09-28 | 1981-04-08 | Siemens Aktiengesellschaft | Schaltungsanordnung zum Adressieren von Daten für Lese- und Schreibzugriffe in einer Datenverarbeitungsanlage |
US5420997A (en) * | 1992-01-02 | 1995-05-30 | Browning; Gary A. | Memory having concurrent read and writing from different addresses |
Non-Patent Citations (1)
Title |
---|
LANG G R ET AL: "AN OPTIMUM PARALLEL ARCHITECTURE FOR HIGH-SPEED REAL-TIME DIGITAL SIGNAL PROCESSING", COMPUTER, vol. 21, no. 2, 1 February 1988 (1988-02-01), pages 47 - 57, XP000098451 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7143211B2 (en) | 2000-10-13 | 2006-11-28 | Systemonic Ag | Memory configuration with I/O support |
Also Published As
Publication number | Publication date |
---|---|
DE19713178A1 (de) | 1998-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0013737B1 (de) | Mehrstufige Speicherhierarchie für ein Datenverarbeitungssystem | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE2523414C3 (de) | Hierarchische Speicheranordnung mit mehr als zwei Speicherstufen | |
DE2617408B2 (de) | Speichermodul für ein Datenverarbeitungsgerät mit Speicherhierarchie | |
DE2637054C3 (de) | Steuervorrichtung für einen Pufferspeicher | |
DE4022885C2 (de) | Verfahren zum Verschieben von Speicherbereichen und Hierarchie-Speichersystem | |
DE3621321A1 (de) | Cache-speicher- bzw. multiprozessor-system und betriebsverfahren | |
DE1956604A1 (de) | Datenverarbeitungsanlage mit einem Speichersystem | |
DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
DE2149200C3 (de) | Einrichtung zur Auswahl von im Verlauf einer Programmbearbeitung am häufigsten benötigten Daten | |
DE1524773C3 (de) | Adressierungssystem für Speichervorrichtungen | |
WO1998044421A1 (de) | Schaltungsanordnung mit einem prozessor und einem datenspeicher | |
DE60015271T2 (de) | Schaltungsanordnung zur parallel/seriell-wandlung | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher | |
DE2404887C2 (de) | Schaltungsanordnung für den Informationsaustausch mit einem Rechner | |
DE69030368T2 (de) | Tandem-Cache-Speicher | |
DE3787213T2 (de) | Verzögerungsverwaltungsverfahren und -vorrichtung. | |
DE2750126B2 (de) | ||
DE10025952B4 (de) | Datenverarbeitungseinheit mit einer Superscaler-Struktur sowie Verfahren zum Zuführen einer Mehrzahl von Befehlen | |
DE69525850T2 (de) | System und verfahren zur verarbeitung von speicherdaten und kommunikationssystemen mit diesem system | |
DE3782546T2 (de) | Datenpaketverkuerzungsverfahren und -vorrichtung. | |
EP0075715B1 (de) | Cachespeicher und Verfahren zu seinem Betrieb | |
DE2542845C3 (de) | ||
DE10310340A1 (de) | Datenzugriffsverfahren und System mit verteiltem, gemeinsam genutzten Speicher | |
EP0556430B1 (de) | Verfahren zur Steuerung eines Peripheriesystems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): CA IL US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: CA |
|
122 | Ep: pct application non-entry in european phase |