EP1915694A1 - Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions - Google Patents

Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions

Info

Publication number
EP1915694A1
EP1915694A1 EP06777958A EP06777958A EP1915694A1 EP 1915694 A1 EP1915694 A1 EP 1915694A1 EP 06777958 A EP06777958 A EP 06777958A EP 06777958 A EP06777958 A EP 06777958A EP 1915694 A1 EP1915694 A1 EP 1915694A1
Authority
EP
European Patent Office
Prior art keywords
memory
access
port
data
memory area
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
EP06777958A
Other languages
German (de)
French (fr)
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of EP1915694A1 publication Critical patent/EP1915694A1/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • 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/0853Cache with multiport tag or data arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Definitions

  • Computer system with at least two processing units and at least one first memory or memory area for data and / or commands
  • the present invention relates to microprocessor systems with fast cache memory and in this context describes a dual port cache.
  • processors are cached to speed access to instructions and data. On the other hand, this is necessary with the constantly growing amount of data on the one hand and the increasing complexity of data processing with ever faster processors on the other hand.
  • a cache partially avoids slow access to large (main) memory, and the processor then does not have to wait for the data to be provided.
  • Both caches for commands and data only are known, as well as "unified caches" where both data and instructions are stored in the same cache.
  • Systems with several levels (hierarchy levels) of caches are also known. Such multi-level caches are used to optimally adjust the speeds between the processor and the (main) memory using graduated memory sizes and various addressing strategies of the caches at the different levels.
  • each processing unit must load these from the main memory into its associated cache. Bus conflicts may occur if two or more processors want to access the main memory. This leads to a performance loss of the multiprocessor system. If there are several shared caches, each of which has access to more than one processor, and if two processors require the same or different data from one of these caches, then because of the access conflict, it must be decided which processor can access with priority, and the other processor must inevitably waiting. The same is true even for different data and commands when a bus system is used for the caches, which at the same time only allows access to different caches.
  • processors each have a fixed cache, they can also be switched to different operating modes of the processor system, where they execute either different programs, program segments or commands (performance mode) or execute the same programs, program segments or commands and compare the results Voting (compare mode), the data or commands must be deleted in the parallel caches of each controller when switching between the operating modes eriificat, or they must be provided when loading the caches with the corresponding information of the respective operating mode, preferably together with the data is stored.
  • performance mode the processors
  • Compare mode compare the results Voting
  • the data or commands must be deleted in the parallel caches of each controller when switching between the operating modes eriificat, or they must be provided when loading the caches with the corresponding information of the respective operating mode, preferably together with the data is stored.
  • the object of the invention is therefore to design such a memory.
  • the object of the invention is to provide means and methods to optimize the size of the cache.
  • a dual port cache architecture can be used advantageously.
  • the main advantage over multi-cache multiprocessor systems is that, when switching between the operating modes of the multiprocessor system, the contents of the cache need not be cleared or invalidated because the data is stored only once and therefore remains consistent even after a switchover ,
  • a dual port cache in a multiprocessor system with multiple operating modes has the distribution that the data / instructions need not be repeatedly cached and possibly maintained, only one space per date / command must be provided in hardware, even if this date or This instruction is used by multiple execution units, the data does not have to be differentiated in different operating modes of the multiprocessor system in which mode they were processed or fetched, the cache at
  • a device for storing data and / or commands in a computer system having at least two processing units and at least a first memory or memory area for data and / or commands, if in the device, a second memory or memory area is included, wherein the device as cache memory - is formed and is equipped with at least two separate ports and accessed via these ports access the at least two processing units to the same or different memory cells of the second memory or memory area, the data and / or commands from the first memory system are cached in blocks.
  • Such a device is advantageous if means are provided which are configured in such a way that read access to a memory cell takes place simultaneously via the at least two ports.
  • Access addresses can be compared to the at least two ports
  • an address comparator is present in the device, which determines that at least one memory cell from that of the first via a second port
  • Processing unit to be accessed via the first port requested memory block.
  • the second memory or memory area is subdivided into at least two address areas which can be read or written independently of each other.
  • an address decoder is present in the device which generates select signals which only allow access to one port at a simultaneous access to an address area and inhibit or delay the access of the at least one further port, in particular by wait-signals.
  • an n-times associative cache is realized in the device with the aid of n different address ranges. Furthermore, it is advantageous if means are present in the device which simultaneously write the data to be written into the first memory or memory area during a write access to a memory cell or a memory area of the second memory.
  • a method for storing data and / or commands in a computer system having at least two processing units and at least one first memory or
  • Memory area for data and / or commands described characterized in that in the device, a second memory or memory area is included, wherein the device is designed as a cache memory system and is equipped with at least two separate ports and access to the at least two processing units via these ports identical or different memory cells of the second memory or memory area, wherein the
  • Data and / or commands from the first storage system are cached block by block.
  • a method is described, characterized in that for reading data from the second memory or memory area and / or for writing data in the second memory or memory area via the two ports, a parallel access of processing units to the same or different memory cells of the second memory or memory area and the reading of a same memory cell via both ports takes place at the same time
  • a method is described, characterized in that addresses which are applied to the two ports are compared.
  • a method is described, characterized in that a write access to the second memory or memory area and / or a memory cell of the second memory or memory area is detected via a first port, and the read and write access via a second port to this second Memory or memory area is prevented and / or delayed until the write access is completed via the first port.
  • a method is described, characterized in that, in the case of a read access via at least one port, it is checked whether the desired data and / or commands are present in the second memory or memory area.
  • a method is described, characterized in that the check is made on the basis of the address information.
  • a method is described that in the case when the data requested via a first port are not present in the second memory or memory area, the corresponding memory block is caused to move from the first memory array to the second memory
  • a method is described in that all information about the presence of the data and / or commands are updated as soon as the requested memory block has been transferred to the second memory or memory area.
  • a method is described, characterized in that an address comparator determines that a second processing unit would like to access at least one memory cell from the memory block requested by the first processing unit.
  • a method is described, characterized in that the access to the said memory cell is made possible only when the relevant information has been updated on the presence of the data and / or commands.
  • a method is described, characterized in that the second memory or memory area is subdivided into at least two address areas and these at least two address areas can be read or written independently of one another via the at least two ports of the second memory or memory area, each port being on can access any address range.
  • a method is described, characterized in that the simultaneous access to an address area is limited to exactly one port, and all further access requests via other ports to this address area are inhibited or delayed during the access of the first port, in particular by wait signals .
  • a method is described, characterized in that, in the case of a write access to a memory cell or a memory area of the second memory, the data to be written is simultaneously written into the first memory or memory area.
  • a method is described, characterized in that, in a write access to a memory cell or a memory area of the second memory, the data to be written is delayed in the first memory or memory area is written.
  • FIG. 1 shows a dual port cache for data and / or commands.
  • FIG. 2 shows a dual port cache with further details.
  • FIG. 3 shows a device and a method for address transformation.
  • FIG. 4 shows a division of the dual-port RAM into two subareas which can be operated independently of one another and are accessed by two separate select signals from each port.
  • FIG. 5 shows a realization of a dual port RAM area by a single port RAM by means of a port switch.
  • FIG. 6 the division of a multiple port RAM with p ports into several sub address areas 1... Q which can be processed in parallel is shown.
  • FIG. 7 shows the implementation of a multi-port RAM area by means of a single port RAM by means of port switching.
  • FIG. 8 a division of the RAM areas for the ports depending on a system state or a configuration is shown
  • FIG. 9 shows a division of a multi-port RAM into areas as a function of one
  • FIG. 10 shows the division of a multi-port RAM into areas with multiple associative access.
  • Table 1 shows the generation of 4 select signals from 2 address bits by means of decoding.
  • Table 2 shows the generation of two select signals on each port from an address bit taking into account a system state or configuration signal M.
  • Table 3 shows the generation of two select signals at each port from an address bit taking into account a system state or configuration signal M in another embodiment.
  • a processing unit or execution unit may denote both a processor / core / CPU and an FPU (floating point unit), DSP (digital signal processor), coprocessor or ALU (arithmetic logical unit).
  • FPU floating point unit
  • DSP digital signal processor
  • ALU arithmetic logical unit
  • the dual port cache 200 essentially consists of a dual port RAM (dpRAM, 230).
  • This dpRAM 230 is preferably provided with two independent address decoders, two data read / write stages and, unlike a simple memory cell matrix, also with duplicated word and bit lines, so that at least the read operation for any memory cells of the dpRAM of both ports can be done simultaneously.
  • a dual port RAM is therefore understood to mean any RAM which has two ports 231 and 232 which irrespective of how much time is needed to complete a request to read or write from this port, ie, how long it takes for the requested read or write to interact with requests from the other port is completed.
  • the Both ports of the dpRAM are connected via the signals 201 and 202, respectively, to the devices 210 and 220, respectively, which check the incoming addresses, data and control signals 211 and 221, respectively, of independent processing units 215 and 225 and optionally transform the addresses.
  • the data is output via 201 through 210 to 211 or via 202 by 220 to 221 or written in the reverse direction by the execution units into the cache memory.
  • Both ports of the dpRAM are connected via signals 201 and 202 to a bus access controller 240 which is connected to signals 241 which connect to a main memory (not shown) or to a next level cache.
  • the cache can be partially or completely associative, ie the data can be stored at several or even arbitrary locations of the cache.
  • the address In order to enable access to the dpRAM, the address must first be determined by means of which the desired data / commands can be accessed. Depending on the addressing mode, one or more block addresses are selected where the date is searched in the cache. All these blocks are read and the identifier stored in the cache with the data is compared with the index address (part of the original address). If there is a match and after the additional validation with the help of the control bits also stored in the cache for each block (eg valid bits, dirty bits and process ID), a cache hit signal is generated which indicates the validity.
  • a table is preferably used which is arranged in a memory unit 214 or 224 (register or RAM, also referred to as TAG RAM) shown in FIG. 2 and is located in units 210 and 220, respectively.
  • the table is an address transformation unit that both converts the virtual address to a physical address and, in the case of a direct-mapped cache, provides the exact (unique) cache access address; in a multi-associative cache organization, multiple blocks are addressed, and in a fully associative cache, all blocks of the cache must be read and compared.
  • Such an address transformation unit is described, for example, in US Pat. No. 4,669,043
  • Table stores the access address of the dpRAM for each address or address group of a block.
  • the significant address bits (index address) for the table are used as the address and the content is the access address of the dpRAM (FIG. 3).
  • a block is the number of bytes which, in the case of a cache miss (lack of the required data in the cache), are jointly fetched from the memory into the cache when an address from this area is read-accessed.
  • the address bits significant for the block are transformed with the table and the remaining (low-order) address bits are adopted unchanged.
  • one of the two ports is set to a higher priority, i. it prevents that is written from both ports simultaneously. Only when the preferred port has performed the write operation may the other port write; if necessary, only one processor has write access for correspondingly allocated memory areas.
  • any write operation to a memory cell one can prevent the same memory cell from being read from the other port, or the read operation can be stored by pausing the read-to-write processor until the write operation is completed.
  • an address comparator of all address bits shown in FIG. 2 is shown
  • the Output signals 213 and 223 may occupy at least three signal states in each case in an advantageous embodiment: enable, wait, equal, wherein enable allows access, wait is to effect a delay, and equal indicates that the same memory area is accessed from both ports. For a pure instruction cache, write access is not necessary; In this case, a signal state "equal" is sufficient for the output signals 213 and 223.
  • the date or command In the case of a cache miss, the date or command must be fetched from a program memory or data memory via the bus system.
  • the incoming data is forwarded to the processing unit and written to the cache in parallel together with the identifier and control bits.
  • the address comparator prevents retrieving the date from the memory if there is no hit but a signal equal (constituent or state of 213 and 223) is displayed by the address comparator.
  • the signal equal is formed in the case of two-sided reading only from the significant address bits, because always the entire block is fetched from the memory. Only when the block is cached can the waiting processing unit access the cache.
  • two separate dual port caches for data and for commands are provided, wherein in the latter usually no write operations are to be provided.
  • the address comparator only checks for equality of the significant address bits and provides the corresponding control signal "equal" in the signals 213 and 223, respectively.
  • the simultaneous read access from both ports only works without restriction if the requested data is present in different address areas which allow simultaneous access.
  • This can be saved in the hardware implementation expenses because not all access mechanisms must be duplicated in memory.
  • the cache can be implemented in several sub-storage areas that can be operated independently of each other. Each partial memory allows only the execution of a port via select signals. FIG. 4 shows such a memory
  • the 4 select signals can be generated from two address bits, since each partial memory uniquely serves a specific address range. For example, with the 2 address bits A + i and A 1, four partial memory areas can be addressed by generating the four select signals E 0 to E 3 corresponding to the binary significance in accordance with Table 1.
  • FIG. 4 For the partial memories 235 and 236 shown in FIG. 4, an exemplary embodiment is shown in FIG.
  • the designated there 260 part memory is executed in this particular embodiment as a single port RAM 280, the addresses, data and control signals are switched depending on the requirement. Switching is done by a multiplexer 275 control circuit 270, depending on the select signals and other control signals 2901 and 2902 (e.g., read, write) from the respective ports. These signals are included together with the data and addresses in the signals 233 and 234, respectively, and are fed to the multiplexer 275 via 5281 and 5282, respectively, depending on the decision of the control circuit 270 corresponding to the output signal 2701 either 5281 or 5282 with the signals 2801 connects.
  • a direct memory is executed in this particular embodiment as a single port RAM 280, the addresses, data and control signals are switched depending on the requirement. Switching is done by a multiplexer 275 control circuit 270, depending on the select signals and other control signals 2901 and 2902 (e.g., read
  • the control circuit can make the forwarding of the signals 5281 or 5282 to 2801 and thus to the single port RAM 280 and also forward the data and other signals from 280 in the opposite direction. This is done in response to a valid select signal and the signals 233 and 234 and / or the order in which the ports cause a read or write operation to the memory 280 via these signals. If the read or write signals become active in the signals 233 and 234 at the same time, one becomes previously defined port first served. This preferred port remains connected to 2801 even if no read or write signal is active. Alternatively, the preferred port may be set dynamically by the processor system, preferably depending on state information of the processor system.
  • This arrangement with a single port RAM is less expensive than a dual port RAM with parallel accessibility, but delays the processing of at least one processing unit when a partial memory (also reading) is accessed at the same time.
  • This arrangement can also be extended to accesses of more than two processors:
  • a multi-port RAM can likewise be implemented in the same way if the switching of the addresses, data and control signals via several multiplexers is provided in steps nadis each other (FIGS. 6 and 7).
  • Such a multi-port RAM 290 is shown in FIG. There, the port input signals 261, 262, ... 267 are decoded in the decoding devices 331, 332, ..337 to the signals 291, 292 ... 297. This decoding generates the select signals for the accesses to the individual RAMs in 281, 282 and 288.
  • FIG. 7 an embodiment for a sub-memory 28x (281 ... 288) is shown in more detail.
  • the select signals and control signals 3901, 3902, ... 3908 are processed from the control signals 291, 292 ... 298 to the output signals 3701, .. 3707.
  • These output signals each control a multiplexer 375 which, depending on the signal value, establishes the connections of the buses 381 or 382 to 387 or 388 with the signals 481... 488.
  • similar controllers 370 and multiplexers 375 are switched accordingly until in a last stage the signals 5901 and 5902 are used for the controller.
  • the output signal 5701 then connects either 581 or 582 to 681 which is connected to the single port RAM.
  • the multiplexers 375 of Figure 7 in addition to the address, data and control signals, also connect the select signals of the next stages contained in 381, 382 ... 388. Furthermore, 375 comparators can be included be in a multi-associative addressing the validity of the data read from the sub-areas.
  • FIG. 8 shows an example of a configurable dual port cache for this purpose.
  • the system mode or configuration signal 1000 is used in decoding the input signals for each of the two ports.
  • the address bit A 1 is not used to address the cache (in direct-mapped mode), but data that differ in addressing only in this bit are stored in the same place in the cache. Only when reading the cache content can be found by the identifier then, whether it is the date sought and accordingly the cach-hit signal are generated.
  • the data including identifier and control bits are transmitted via the signals 291, 292,... 297 to the ports 331, 332,... 337 and further to the signals 261, 262,. .267.
  • This embodiment is shown in Table 3.
  • the user can also make any other division of the cache by multiple configuration signals. This allows a higher hit rate once with a larger cache area and thus reduces the need to fetch the data from main memory.
  • the various processing units do not interfere with each other, if possible accessing only the independent cache areas via the different ports. Since these conditions depend on the programs intended for the application, it is advantageous if there is the possibility of a different configuration depending on the application.
  • the cache can be automatically switched over by the mode signal 1000.
  • FIG. 10 Another embodiment is shown in Figure 10 when there is a multi-associative cache in which the data is read back from each sub-memory 281, 282, ... 288 along with the identifier and control bits.
  • the comparators 2811, 2812, ... 2817, 2821 In the comparators 2811, 2812, ... 2817, 2821,
  • the validity is checked and, depending on the date on the signals 2910, 2920 ... 2970 forwarded together with the validity signals.
  • Switching with mode or configuration signals is optionally just as possible, as already shown and explained in FIG.
  • the validity signals and possibly the mode and configuration signals 1000 are evaluated and the corresponding valid date with the cache hit signal or the cache miss signal is sent to the signals 2610, 2620, .. .2670 forwarded.
  • RAM random access memory
  • FERAM programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable read-only memory
  • MRAM magnetic resonance RAM
  • FERAM programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable programmable

Abstract

Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions, characterized in that the apparatus contains a second memory or memory area, wherein the apparatus is in the form of a cache memory system and is provided with at least two separate ports, and the at least two processing units access identical or different memory cells of the second memory or memory area using said ports, and wherein the data and/or instructions from the first memory system are buffer-stored in blocks.

Description

Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einemDevice and method for storing data and / or commands in one
Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder BefehleComputer system with at least two processing units and at least one first memory or memory area for data and / or commands
Die vorliegende Erfindung bezieht sich auf Mikroprozessorsysteme mit schnellem Zwischen- Speicher (Cache) und beschreibt in diesem Kontext einen dual port Cache.The present invention relates to microprocessor systems with fast cache memory and in this context describes a dual port cache.
Stand der TechnikState of the art
Prozessoren werden mit Caches ausgerüstet, um den Zugriff zu Instruktionen und Daten zu beschleunigen. Das ist bei der ständig wachsenden Datenmenge einerseits und der zunehmenden Komplexität der Datenverarbeitung mit immer schneller arbeitenden Prozessoren andererseits notwendig. Durch einen Cache wird der langsame Zugriff auf einen großen (Haupt-) Speicher teilweise vermieden und der Prozessor muss dann nicht auf die Bereitstellung der Daten warten. Es sind sowohl Caches ausschließlich für Befehle als auch ausschließlich für Daten bekannt, aber auch "Unified Caches", bei denen sowohl Daten als auch Instruktionen in demselben Cache abgelegt werden. Bekannt sind auch Systeme mit mehreren Levels (Hierarchiestufen) von Caches. Solche mehrstufigen Caches werden eingesetzt, um mit abgestuften Speichergrößen und verschiedenartigen Adressierungsstrategien der Caches auf den verschiedenen Levels eine optimale Anpassung der Geschwindigkeiten zwischen Prozessor und dem (Haupt-) Speicher vorzunehmen.Processors are cached to speed access to instructions and data. On the other hand, this is necessary with the constantly growing amount of data on the one hand and the increasing complexity of data processing with ever faster processors on the other hand. A cache partially avoids slow access to large (main) memory, and the processor then does not have to wait for the data to be provided. Both caches for commands and data only are known, as well as "unified caches" where both data and instructions are stored in the same cache. Systems with several levels (hierarchy levels) of caches are also known. Such multi-level caches are used to optimally adjust the speeds between the processor and the (main) memory using graduated memory sizes and various addressing strategies of the caches at the different levels.
Bei einem Multiprozessorsystem ist es üblich, jeden Prozessor mit einem Cache oder bei MultiLevel Caches mit entsprechend mehreren Caches auszurüsten. Es sind aber auch Systeme be- kannt, in denen mehrere Caches existieren, die von verschiedenen Prozessoren adressierbar sind, wie zum Beispiel im US Patent 4345309 beschrieben.In a multiprocessor system, it is common practice to provide each processor with a cache or multi-level caches with a corresponding number of caches. But there are also systems in which there are several caches that are addressable by different processors, as described, for example, in US Pat. No. 4,345,309.
Werden bei einem Multiprozessorsystem mit fest zugeordneten Caches zu jeder Verarbeitungs- einheit zumindest teilweise die gleichen Befehle, Programmsegmente, Programme oder Daten benutzt, so muss jede Verarbeitungseinheit diese vom Hauptspeicher in den ihr zugeordneten Cache laden. Dabei treten ggf. Buskonflikte auf, wenn zwei oder mehrere Prozessoren auf den Hauptspeicher zugreifen wollen. Dies führt zu einem Performanz- Verlust des Multiprozessor- systems. Sind mehrere gemeinsame Caches vorhanden, auf die jeweils mehr als ein Prozessor Zugriff hat und benötigen zwei Prozessoren die gleichen oder auch unterschiedliche Daten aus einem dieser Caches, so muss wegen des Zugriffskonflikts entschieden werden, welcher Prozessor vorrangig zugreifen kann, und der andere Prozessor muss zwangsläufig warten. Das gleiche gilt selbst für unterschiedliche Daten und Befehle, wenn ein Bussystem für die Caches benutzt wird, das gleichzeitig nur einen Zugriff auch auf unterschiedliche Caches zulässt.If, in a multiprocessor system with fixed caches, at least partially the same instructions, program segments, programs or data are used for each processing unit, then each processing unit must load these from the main memory into its associated cache. Bus conflicts may occur if two or more processors want to access the main memory. This leads to a performance loss of the multiprocessor system. If there are several shared caches, each of which has access to more than one processor, and if two processors require the same or different data from one of these caches, then because of the access conflict, it must be decided which processor can access with priority, and the other processor must inevitably waiting. The same is true even for different data and commands when a bus system is used for the caches, which at the same time only allows access to different caches.
Haben die Prozessoren jeweils einen Cache fest zugeordnet und sind sie darüber hinaus in verschiedene Betriebsmodi des Prozessorsystems schaltbar, wo sie entweder unterschiedliche Programme, Programmsegmente oder Befehle abarbeiten (Performanz-Modus) oder gleiche Programme, Programmsegmente oder Befehle abarbeiten und die Ergebnisse einem Vergleich oder einem Voting unterziehen (Vergleichsmodus), so müssen die Daten bzw. Befehle in den parallelen Caches eines jeden Controllers beim Umschalten zwischen den Betriebsmodi eriweder gelöscht werden, oder sie müssen beim Laden der Caches mit der entsprechenden Information des jeweiligen Betriebsmodus versehen werden, die vorzugsweise zusammen mit den Daten abgespeichert wird. In einem Multiprozessorsystem, das während des Betriebs zwischen verschiede- nen Betriebsmodi umschalten kann, wäre es daher besonders von Vorteil, wenn nur ein gemeinsamer (ggf. hierarchisch gegliederter) Cache vorhanden wäre und jedes Datum oder jeder Befehl nur einmal darin abgelegt wäre und der Zugriff darauf gleichzeitig möglich wäre. Aufgabe der Erfindung ist deshalb, einen solchen Speicher zu gestalten.If the processors each have a fixed cache, they can also be switched to different operating modes of the processor system, where they execute either different programs, program segments or commands (performance mode) or execute the same programs, program segments or commands and compare the results Voting (compare mode), the data or commands must be deleted in the parallel caches of each controller when switching between the operating modes eriweder, or they must be provided when loading the caches with the corresponding information of the respective operating mode, preferably together with the data is stored. In a multiprocessor system that can switch between different operating modes during operation, it would therefore be particularly advantageous if only one common (possibly hierarchically structured) cache was present and every date or every command was stored therein only once and access would be possible at the same time. The object of the invention is therefore to design such a memory.
Aufgabe der Erfindung ist es Mittel und Verfahren zur Verfügung zu stellen, die Größe des Caches zu optimieren. Vorteile der ErfindungThe object of the invention is to provide means and methods to optimize the size of the cache. Advantages of the invention
Die Realisierung eines Cache-Speichers als dual port Cache ist wegen des erhöhten Hardware- aufwandes in bekannten Prozessorsystemen mit einer oder mehreren AusfiihrungseinheitenThe realization of a cache memory as a dual port cache is due to the increased hardware complexity in known processor systems with one or more execution units
(Single- oder Mehrfachcores) nicht nahe liegend. Bei einer Multiprozessorarchitektur, in der mehrere Ausfiihrungseinheiten (Cores, Prozessoren) in variabler Weise, d.h. in verschiedenen Betriebsmodi miteinander zusammenarbeiten (wie z.B. in der DE 103 32 700 Al beschrieben), kann eine dual port Cache Architektur vorteilhaft eingesetzt werden. Der wesentliche Vorteil gegenüber Multiprozessorsystemen mit mehreren Caches besteht darin, dass bei einer Umschal- tung zwischen den Betriebsmodi des Multiprozessorsystems der Inhalt des Caches nicht gelöscht oder fiir ungültig erklärt werden muss, weil die Daten nur einmal abgelegt werden und deshalb auch nach einer Umschaltung konsistent bleiben.(Single or multiple scores) not obvious. In a multiprocessor architecture in which multiple execution units (cores, processors) are variably, i. can work together in different modes of operation (as described for example in DE 103 32 700 Al), a dual port cache architecture can be used advantageously. The main advantage over multi-cache multiprocessor systems is that, when switching between the operating modes of the multiprocessor system, the contents of the cache need not be cleared or invalidated because the data is stored only once and therefore remains consistent even after a switchover ,
Ein Dual Port Cache in einem Multiprozessorsystem mit mehreren Betriebsmodi hat den Verteil, dass die Daten/Befehle nicht mehrfach in den Cache geholt und ggf. gepflegt werden müssen, nur ein Speicherplatz pro Datum/Befehl hardwaremäßig bereitgestellt werden muss, auch wenn dieses Datum bzw. dieser Befehl von mehreren Ausführungseinheiten benutzt wird, die Daten bei verschiedenen Betriebsmodi des Multiprozessorsystems nicht dahingehend unter- schieden werden müssen, in welchem Modus sie bearbeitet oder geholt wurden, der Cache beiA dual port cache in a multiprocessor system with multiple operating modes has the distribution that the data / instructions need not be repeatedly cached and possibly maintained, only one space per date / command must be provided in hardware, even if this date or This instruction is used by multiple execution units, the data does not have to be differentiated in different operating modes of the multiprocessor system in which mode they were processed or fetched, the cache at
Wechsel des Betriebsmodus nicht gelöscht werden muss, zwei Prozessoren gleichzeitig zu den gleichen Daten/Befehlen lesend zugreifen können, anstelle des „write through" Modus auch ein „write back" Modus für den Cache eingesetzt werden kann, der insbesondere beim Schreiben zeitgünstiger ist, weil nicht ständig der (Haupt-) Speicher aktualisiert werden muss, sondern erst beim Überschreiben der Daten im Cache; es gibt keine Konsistenzprobleme, weil der Cache für beide Prozessoren die Daten aus der gleichen Quelle liefert.Changing the operating mode must not be deleted, two processors can read access to the same data / commands at the same time, instead of the "write through" mode, a "write back" mode can be used for the cache, which is more timely, especially in writing, because not constantly updating the (main) memory, but only when overwriting the data in the cache; there are no consistency issues because the cache for both processors provides the data from the same source.
Vorteilhaft ist eine Vorrichtung zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle, wenn in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespei- chersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.Advantageously, a device for storing data and / or commands in a computer system having at least two processing units and at least a first memory or memory area for data and / or commands, if in the device, a second memory or memory area is included, wherein the device as cache memory - is formed and is equipped with at least two separate ports and accessed via these ports access the at least two processing units to the same or different memory cells of the second memory or memory area, the data and / or commands from the first memory system are cached in blocks.
Vorteilhaft ist weiterhin eine solche Vorrichtung, wenn Mittel vorhanden sind, welche derart ausgestaltet sind, dass über die wenigstens zwei Ports gleichzeitig ein Lesezugriff auf eine Speicherzelle erfolgt.Furthermore, such a device is advantageous if means are provided which are configured in such a way that read access to a memory cell takes place simultaneously via the at least two ports.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, welche derart ausgestaltet sind, dass über die wenigstens zwei Ports gleichzeitig ein Lesezugriff auf zwei verschiedene Speicherzellen erfolgt.Furthermore, it is advantageous if there are means in the device which are designed in such a way that read access to two different memory cells takes place simultaneously via the at least two ports.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, mit denen bei einem gleichzeitigen Lesezugriff über die wenigstens zwei Ports zu einer gleichen oder zu zwei verschiedenen Speicherzellen der eine Port im Zugriff solange verzögert wird, bis der andere Port den Zugriff abgeschlossen hat.Furthermore, it is advantageous if there are means in the device with which, with simultaneous read access via the at least two ports, to one or two different memory cells, one port is delayed in access until the other port has completed access.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, mit denen dieFurthermore, it is advantageous if there are means in the device with which the
Zugriffsadressen an den wenigstens zwei Ports verglichen werden könnenAccess addresses can be compared to the at least two ports
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, die einen Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich über einen ersten Port erkennen, und den Schreib- und/oder Lesezugriff über einen zweiten Port auf diese Speicherzelle und/oder diesen Speicherbereich solange verhindern oder verzögern, bis der Schreibzugriff über den ersten Port beendet ist.Furthermore, it is advantageous if there are means in the device which detect a write access to a memory cell or a memory area via a first port, and prevent the write and / or read access via a second port to this memory cell and / or memory area or so long delay until write access over the first port is completed.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel enthalten sind, die bei einem Lese- zugriff über wenigstens einen Port überprüfen, ob die gewünschten Daten in dem zweiten Speicher oder Speicherbereich vorliegen.It is furthermore advantageous if means are contained in the device which, in the event of a read access via at least one port, check whether the desired data is present in the second memory or memory area.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, um den ersten Speicher oder Speicherbereich zu adressieren und Speicherinhalte aus diesem Blockweise in den zweiten Speicher oder Speicherbereich zu übertragen, wenn die über einen ersten Port angeforderten Daten nicht im zweiten Speicher oder Speicherbereich vorhanden sind.Furthermore, it is advantageous if means are provided in the device to address the first memory or memory area and memory contents from this blockwise in the transmit second memory or memory area when the data requested via a first port is not present in the second memory or memory area.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung ein Adressvergleicher vorhanden ist, der fest- stellt, dass über einen zweiten Port auf mindestens eine Speicherzelle aus dem von der erstenFurthermore, it is advantageous if an address comparator is present in the device, which determines that at least one memory cell from that of the first via a second port
Verarbeitungseinheit über den ersten Port angeforderten Speicherblock zugegriffen werden soll.Processing unit to be accessed via the first port requested memory block.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, die den Zugriff auf die Speicherzelle erst ermöglichen, wenn die Daten in dem zweiten Speicher oder Speicherbereich aktualisiert sind.Furthermore, it is advantageous if there are means in the device which enable access to the memory cell only when the data in the second memory or memory area are updated.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung der zweite Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.It is furthermore advantageous if, in the device, the second memory or memory area is subdivided into at least two address areas which can be read or written independently of each other.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung ein Adressdecoder vorhanden ist, der select- Signale generiert, die bei einem gleichzeitigen Zugriff auf einen Adressbereich durch mehrere Ports nur einem Port den Zugriff ermöglichen und den Zugriff des wenigstens einen weiteren Ports unterbinden oder verzögern, insbesondere durch wait-Signale.It is furthermore advantageous if an address decoder is present in the device which generates select signals which only allow access to one port at a simultaneous access to an address area and inhibit or delay the access of the at least one further port, in particular by wait-signals.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneinander unabhängigen Adressbereichen über die Auswahleinrichtungen mit mehreren Stufen erfolgt und dazu dieselect- Signale über diese Stufen weitergeleitet werden.Furthermore, it is advantageous if more than two ports are provided in the device, wherein selection devices are present and the access to the independent address ranges via the selection means with several stages takes place and to dieselect signals are forwarded via these stages.
Weiterhin ist vorteilhaft, wenn es in der Vorrichtung mindestens ein Modussignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.Furthermore, it is advantageous if there is at least one mode signal in the device, which switches over the access possibilities of the different ports.
Weiterhin ist vorteilhaft, wenn es in der Vorrichtung mindestens ein Konfigurationssignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.Furthermore, it is advantageous if there is at least one configuration signal in the device which switches over the access possibilities of the different ports.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung ein n-fach assoziativer Cache mit Hilfe von n unterschiedlichen Adressbereichen realisiert wird. Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, die bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum gleichzeitig in den ersten Speicher oder Speicherbereich schreiben.Furthermore, it is advantageous if an n-times associative cache is realized in the device with the aid of n different address ranges. Furthermore, it is advantageous if means are present in the device which simultaneously write the data to be written into the first memory or memory area during a write access to a memory cell or a memory area of the second memory.
Weiterhin ist vorteilhaft, wenn in der Vorrichtung Mittel vorhanden sind, die bei einemFurthermore, it is advantageous if in the device means are present, which at a
Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum verzögert in den ersten Speicher oder Speicherbereich schreiben.Write access to a memory cell or memory area of the second memory to write the data to be written delayed in the first memory or memory area.
Vorteilhaft ist ein Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechner- System mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oderAdvantageously, a method for storing data and / or commands in a computer system having at least two processing units and at least one first memory or
Speicherbereich für Daten und/oder Befehle beschrieben, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei dieMemory area for data and / or commands described, characterized in that in the device, a second memory or memory area is included, wherein the device is designed as a cache memory system and is equipped with at least two separate ports and access to the at least two processing units via these ports identical or different memory cells of the second memory or memory area, wherein the
Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.Data and / or commands from the first storage system are cached block by block.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass zum Lesen von Daten aus dem zweiten Speicher oder Speicherbereich und/oder zum Schreiben von Daten in den zweiten Speicher oder Speicherbereich über die beiden Ports ein paralleler Zugriff von Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speicher oder Speicherbereichs erfolgt und das Lesen einer gleichen Speicherzelle über beide Ports zeitgleich erfolgtAdvantageously, a method is described, characterized in that for reading data from the second memory or memory area and / or for writing data in the second memory or memory area via the two ports, a parallel access of processing units to the same or different memory cells of the second memory or memory area and the reading of a same memory cell via both ports takes place at the same time
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass Adressen, die an die beiden Ports angelegt werden, verglichen werden.Advantageously, a method is described, characterized in that addresses which are applied to the two ports are compared.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass ein Schreibzugriff auf den zweiten Speicher oder Speicherbereich und/oder eine Speicherzelle des zweiten Speichers oder Speicherbereichs über einen ersten Port erkannt wird, und der Schreib- und Lesezugriff ü- ber einen zweiten Port auf diesen zweiten Speicher oder Speicherbereich solange verhindert und/oder verzögert wird, bis der Schreibzugriff über den ersten Port beendet ist. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Lesezugriff über wenigstens einen Port überprüft wird, ob die gewünschten Daten und/oder Befehle in dem zweiten Speicher oder Speicherbereich vorliegen.Advantageously, a method is described, characterized in that a write access to the second memory or memory area and / or a memory cell of the second memory or memory area is detected via a first port, and the read and write access via a second port to this second Memory or memory area is prevented and / or delayed until the write access is completed via the first port. Advantageously, a method is described, characterized in that, in the case of a read access via at least one port, it is checked whether the desired data and / or commands are present in the second memory or memory area.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Überprüfung anhand der Adressinformationen vorgenommen wird.Advantageously, a method is described, characterized in that the check is made on the basis of the address information.
Vorteilhaft ist ein Verfahren beschrieben, dass in dem Falle, wenn die über einen ersten Port angeforderten Daten nicht im zweiten Speicher oder Speicherbereich vorhanden sind, veranlasst wird, dass der entsprechende Speicherblock aus der ersten Speicheranordnung in den zweitenAdvantageously, a method is described that in the case when the data requested via a first port are not present in the second memory or memory area, the corresponding memory block is caused to move from the first memory array to the second memory
Speicher oder Speicherbereich übertragen wird.Memory or memory area is transferred.
Vorteilhaft ist ein Verfahren beschrieben dadurch, dass alle Information über das Vorhandensein der Daten und/oder Befehle aktualisiert werden, sobald der angeforderte Speicherblock in den zweiten Speicher oder Speicherbereich übertragen wurde.Advantageously, a method is described in that all information about the presence of the data and / or commands are updated as soon as the requested memory block has been transferred to the second memory or memory area.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass ein Adressvergleicher feststellt, dass eine zweite Verarbeitungseinheit auf mindestens eine Speicherzelle aus dem von der ersten Verarbeitungseinheit angeforderten Speicherblock zugreifen möchte.Advantageously, a method is described, characterized in that an address comparator determines that a second processing unit would like to access at least one memory cell from the memory block requested by the first processing unit.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der Zugriff auf die besagte Speicherzelle erst ermöglicht wird, wenn die betreffenden Informationen über das Vorhandensein der Daten und/oder Befehle aktualisiert wurden.Advantageously, a method is described, characterized in that the access to the said memory cell is made possible only when the relevant information has been updated on the presence of the data and / or commands.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der zweite Speicher o- der Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist und diese wenigstens zwei Adressbereiche über die wenigstens zwei Ports des zweiten Speichers oder Speicherbereichs unabhängig voneinander gelesen oder geschrieben werden können, wobei jeder Port auf jeden Adressbereich zugreifen kann.Advantageously, a method is described, characterized in that the second memory or memory area is subdivided into at least two address areas and these at least two address areas can be read or written independently of one another via the at least two ports of the second memory or memory area, each port being on can access any address range.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der zeitgleiche Zugriff auf einen Adressbereich auf genau einen Port beschränkt wird und alle weiteren Zugriffsanftr- derungen über andere Ports auf diesen Adressbereich während des Zugriffs des ersten Ports unterbunden oder verzögert werden, insbesondere durch wait-Signale . Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum gleichzeitig in den ersten Speicher oder Speicherbereich geschrieben wird.Advantageously, a method is described, characterized in that the simultaneous access to an address area is limited to exactly one port, and all further access requests via other ports to this address area are inhibited or delayed during the access of the first port, in particular by wait signals , Advantageously, a method is described, characterized in that, in the case of a write access to a memory cell or a memory area of the second memory, the data to be written is simultaneously written into the first memory or memory area.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum verzögert in den ersten Speicher oder Speicherbereich geschrieben wird.Advantageously, a method is described, characterized in that, in a write access to a memory cell or a memory area of the second memory, the data to be written is delayed in the first memory or memory area is written.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.Further advantages and advantageous embodiments will become apparent from the features of the claims and the description.
Figuren und TabellenFigures and tables
In Figur 1 ist ein Dual Port Cache für Daten und/oder Befehle gezeigt In Figur 2 ist ein Dual Port Cache mit weiteren Details gezeigt In Figur 3 ist eine Einrichtung und ein Verfahren zur Adresstransformation gezeigt.FIG. 1 shows a dual port cache for data and / or commands. FIG. 2 shows a dual port cache with further details. FIG. 3 shows a device and a method for address transformation.
In Figur 4 ist eine Aufteilung des Dual Port RAM in zwei Teilbereiche gezeigt, die unabhängig voneinander betrieben werden können und mit je zwei separaten select-Signalen von jedem Port im Zugriff gesteuert werden.FIG. 4 shows a division of the dual-port RAM into two subareas which can be operated independently of one another and are accessed by two separate select signals from each port.
InFigur 5 ist eine Realisierung eines Dual Port RAM-Bereiches durch einen Single Port RAM mittels Portumschaltung gezeigt InFigur 6 ist die Einteilung eines Multiple Port RAM mit p Ports in mehrere Teil- Adressbereiche l...q, die parallel bearbeitet werden können, gezeigt.FIG. 5 shows a realization of a dual port RAM area by a single port RAM by means of a port switch. In FIG. 6, the division of a multiple port RAM with p ports into several sub address areas 1... Q which can be processed in parallel is shown.
InFigur 7 ist die Realisierung eines multi port RAM-Bereiches durch einen sin- gle port RAM mittels Portumschaltung gezeigt InFigur 8 ist eine Aufteilung der RAM-Bereiche für die Ports in Abhängigkeit von einem Systemzustand oder einer Konfiguration gezeigt In Figur 9 ist Aufteilung eines multi port RAMs in Bereiche in Abhängigkeit von einemFIG. 7 shows the implementation of a multi-port RAM area by means of a single port RAM by means of port switching. In FIG. 8, a division of the RAM areas for the ports depending on a system state or a configuration is shown FIG. 9 shows a division of a multi-port RAM into areas as a function of one
Systemzustand oder einer Konfiguration durch Generierung der entsprechende Select-Signale gezeigt.System state or a configuration by generating the corresponding select signals shown.
In Figur 10 ist die Aufteilung eines multi port RAMs in Bereiche mit mehrfachassoziativem Zugriff gezeigt.FIG. 10 shows the division of a multi-port RAM into areas with multiple associative access.
Tabelle 1 zeigt die Erzeugung von 4 select-Signalen aus 2 Adressbits mittels Decodie- rung.Table 1 shows the generation of 4 select signals from 2 address bits by means of decoding.
Tabelle 2 zeigt die Erzeugung von je zwei select-Signalen an jedem Port aus einem Adressbit unter Berücksichtigung von einem Systemzustands- oder Konfigurationssignal M.Table 2 shows the generation of two select signals on each port from an address bit taking into account a system state or configuration signal M.
Tabelle 3 zeigt die Erzeugung von je zwei select-Signalen an jedem Port aus einem Adressbit unter Berücksichtigung von einem Systemzustands- oder Konfigurationssignal M in einer anderen Ausführung.Table 3 shows the generation of two select signals at each port from an address bit taking into account a system state or configuration signal M in another embodiment.
Beschreibung der AusführungsbeispieleDescription of the embodiments
Eine Verarbeitungseinheit oder Ausführungseinheit kann im Folgenden sowohl einen Prozes- sor/Core/CPU, als auch eine FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor oder ALU (Arithmetic logical Unit) bezeichnen.In the following, a processing unit or execution unit may denote both a processor / core / CPU and an FPU (floating point unit), DSP (digital signal processor), coprocessor or ALU (arithmetic logical unit).
Der Dual Port Cache 200 gemäß Figur 1 besteht zu einem wesentlichen Teil aus einem Dual Port RAM (dpRAM, 230). Dieser dpRAM 230 ist vorzugsweise mit zwei voneinander unabhängigen Adressdecodern, zwei Daten Schreib-/Lese - Stufen und im Unterschied zu einer einfachen Speicherzellen-Matrix auch mit duplizierten Wort- und Bitleitungen versehen, so dass zumindest der Lesevorgang für beliebige Speicherzellen des dpRAMs von beiden Ports gleichzeitig erfolgen kann. (Sinngemäß gilt aber die Anordnung auch, wenn nicht alle Zugriffselemente dupliziert sind und der dpRAM deshalb nur bedingt gleichzeitig über beide Ports zugreif bar ist.) Unter einem dual Port RAM wird deshalb jeder RAM verstanden, der über zwei Ports 231 und 232 verfügt, die unabhängig voneinander benutzt werden können, ohne in Betracht zu ziehen, wie viel Zeit zur Abarbeitung einer Anforderung zum Lesen oder Schreiben von diesem Port benötigt wird, d.h. wie lange es dauert, bis der angeforderte Lese- oder Schreibvorgang auch ggf. in Wechselwirkung mit Anforderungen von dem anderen Port abgeschlossen ist. Die beiden Ports des dpRAM sind über die Signale 201 bzw. 202 mit den Einrichtungen 210 bzw. 220 verbunden, die eine Prüfung der ankommenden Adressen, Daten und Steuersignale 211 bzw. 221 von unabhängigen Verarbeitungseinheiten 215 und 225 vornehmen und optional die Adressen transformieren. Die Daten werden beim Lesen je nach Port über 201 durch 210 auf 211 oder über 202 durch 220 auf 221 ausgegeben bzw. in jeweils umgekehrter Richtung von den Ausführungseinheiten in den Cache-Speicher geschrieben. Beide Ports des dpRAM sind über die Signale 201 und 202 mit einer Buszugriffssteuerung 240 verbunden, die mit Signalen 241 verbunden ist, die die Verbindung zu einem hier nicht dargestellten (Haupt-)Speicher oder zu einem Cache der nächsten Stufe herstellen.The dual port cache 200 according to FIG. 1 essentially consists of a dual port RAM (dpRAM, 230). This dpRAM 230 is preferably provided with two independent address decoders, two data read / write stages and, unlike a simple memory cell matrix, also with duplicated word and bit lines, so that at least the read operation for any memory cells of the dpRAM of both ports can be done simultaneously. (Analogously, however, the arrangement also applies if not all access elements are duplicated and the dpRAM is therefore only conditionally accessible via both ports at the same time.) A dual port RAM is therefore understood to mean any RAM which has two ports 231 and 232 which irrespective of how much time is needed to complete a request to read or write from this port, ie, how long it takes for the requested read or write to interact with requests from the other port is completed. The Both ports of the dpRAM are connected via the signals 201 and 202, respectively, to the devices 210 and 220, respectively, which check the incoming addresses, data and control signals 211 and 221, respectively, of independent processing units 215 and 225 and optionally transform the addresses. Depending on the port, the data is output via 201 through 210 to 211 or via 202 by 220 to 221 or written in the reverse direction by the execution units into the cache memory. Both ports of the dpRAM are connected via signals 201 and 202 to a bus access controller 240 which is connected to signals 241 which connect to a main memory (not shown) or to a next level cache.
In Figur 2 sind die Einheiten 210, 220 und 250 detaillierter beschrieben. Beim Zugriff auf den Dual Port Cache werden die in den Signalen 211 und 221 enthaltenen Adressen 212 und 222 der Verarbeitungseinheiten 215 und 225 in einem Adresscomparator 251 der Einrichtung 250 miteinander verglichen und zusammen mit den in 211 und 221 ebenfalls übermittelten Steuersigra- len auf Verträglichkeit geprüft. Im Falle eines Konfliktes wird mittels der Steuersignale, die in den Signalen 213 oder 223 enthalten sind, der Zugriff auf den dual Port RAM 230 verhindert. Solche Konflikte können sein, dass beide Verarbeitungseinheiten auf die gleiche Adresse schreiben wollen oder dass eine Verarbeitungseinheit schreibt während die andere von der gleichen Adresse lesen will.In Figure 2, the units 210, 220 and 250 are described in more detail. When accessing the dual port cache, the addresses 212 and 222 of the processing units 215 and 225 contained in the signals 211 and 221 are compared in an address comparator 251 of the device 250 and tested for compatibility together with the control diagrams also transmitted in 211 and 221 , In the event of a conflict, access to the dual port RAM 230 is prevented by means of the control signals contained in the signals 213 or 223. Such conflicts may be that both processing units want to write to the same address or that one processing unit is writing while the other wants to read from the same address.
Der Cache kann teilweise oder vollständig assoziativ ausgeführt sein, d.h. die Daten können an mehreren oder gar beliebigen Stellen des Caches abgelegt sein. Um den Zugriff auf den dpRAM zu ermöglichen, muss dazu erst die Adresse ermittelt werden, über die auf die gewünschten Daten/Befehle zugegriffen werden kann. Je nach Adressierungsmodus wird eine oder werden meh- rere Blockadressen ausgewählt, an denen das Datum im Cache gesucht wird. Alle diese Blöcke werden gelesen und die mit den Daten im Cache abgespeicherte Kennung wird mit der Index- Adresse (Teil der Original- Adresse) verglichen. Bei Übereinstimmung und nach der zusätzlichen Überprüfung der Gültigkeit mit Hilfe der ebenfalls im Cache zu jedem Block abgespeicherten Controlbits (z.B. Valid-Bits, Dirty-Bits und Prozess-ID) wird ein Cache Hit Signal er- zeugt, das die Gültigkeit anzeigt. Zur Adresstransformation wird vorzugsweise eine Tabelle eingesetzt, die in einer in Figur 2 dargestellten Speichereinheit 214 bzw. 224 (Register oder RAM, auch als TAG-RAM bezeichnet) angeordnet ist und sich in den Einheiten 210 bzw. 220 befindet. Die Tabelle ist eine Adress- transformationseinheit, die sowohl die virtuelle Adresse in eine physikalische Adresse umwandelt als auch im Falle eines direct-mapped Cache die genaue (eindeutige) Cache-Zugriffsadresse liefert; bei einer mehrfach assoziativen Cacheorganisation werden mehrere Blöcke angesprochen und bei einem vollständig assoziativen Cache müssen alle Blöcke des Caches gelesen und verglichen werden. Eine solche Adresstransformationseinheit ist z.B. im US Patent 4669043 beschriebenThe cache can be partially or completely associative, ie the data can be stored at several or even arbitrary locations of the cache. In order to enable access to the dpRAM, the address must first be determined by means of which the desired data / commands can be accessed. Depending on the addressing mode, one or more block addresses are selected where the date is searched in the cache. All these blocks are read and the identifier stored in the cache with the data is compared with the index address (part of the original address). If there is a match and after the additional validation with the help of the control bits also stored in the cache for each block (eg valid bits, dirty bits and process ID), a cache hit signal is generated which indicates the validity. For address transformation, a table is preferably used which is arranged in a memory unit 214 or 224 (register or RAM, also referred to as TAG RAM) shown in FIG. 2 and is located in units 210 and 220, respectively. The table is an address transformation unit that both converts the virtual address to a physical address and, in the case of a direct-mapped cache, provides the exact (unique) cache access address; in a multi-associative cache organization, multiple blocks are addressed, and in a fully associative cache, all blocks of the cache must be read and compared. Such an address transformation unit is described, for example, in US Pat. No. 4,669,043
Zum Beispiel wird in der o. g. Tabelle zu jeder Adresse bzw. Adressgruppe eines Blocks die Zugriffsadresse des dpRAMs hinterlegt. In der in Figur 3 dargestellten Adressierungsart werden dazu entsprechend der Blockgröße des Caches die signifikanten Adressbits (Index- Adresse) für die Tabelle als Adresse benutzt und der Inhalt ist die Zugriffsadresse des dpRAMs (Figur 3). Als Block bezeichnet man dabei die Anzahl der Bytes, die im Falle eines Cache Miss (Fehlen der erforderlichen Daten im Cache) gemeinsam aus dem Speicher in den Cache geholt werden, wenn auf eine Adresse aus diesem Bereich lesend zugegriffen wird.For example, in the o. G. Table stores the access address of the dpRAM for each address or address group of a block. In the addressing mode illustrated in FIG. 3, according to the block size of the cache, the significant address bits (index address) for the table are used as the address and the content is the access address of the dpRAM (FIG. 3). A block is the number of bytes which, in the case of a cache miss (lack of the required data in the cache), are jointly fetched from the memory into the cache when an address from this area is read-accessed.
Für den byte- oder Wortweisen Zugriff zum Cache werden die für den Block signifikanten Ad- ressbits mit der Tabelle transformiert und die restlichen (niederwertigen) Adressbits unverändert übernommen.For byte-wise or wordwise access to the cache, the address bits significant for the block are transformed with the table and the remaining (low-order) address bits are adopted unchanged.
Für den Schreibvorgang wird beispielsweise einem der beiden Ports eine höhere Priorität eingerichtet, d.h. es wird verhindert, dass gleichzeitig von beiden Ports geschrieben wird. Erst wenn der bevorzugte Port die Schreiboperation ausgeführt hat, darf der andere Port schreiben; ggf. hat auch nur ein Prozessor Schreibrechte für entsprechend zugeordnete Speicherbereiche. Ebenso kann man bei einer beliebigen Schreiboperation auf eine Speicherzelle verhindern, dass die gleiche Speicherzelle vom jeweils anderen Port gelesen wird, oder die Leseoperation kann verä- gert werden, indem der Prozessor mit Lesewunsch solange angehalten wird, bis die Schreibope- ration abgeschlossen ist. Dazu ist ein in Figur 2 dargestellter Adresscomparator aller AdressbitsFor example, for the write operation, one of the two ports is set to a higher priority, i. it prevents that is written from both ports simultaneously. Only when the preferred port has performed the write operation may the other port write; if necessary, only one processor has write access for correspondingly allocated memory areas. Similarly, with any write operation to a memory cell, one can prevent the same memory cell from being read from the other port, or the read operation can be stored by pausing the read-to-write processor until the write operation is completed. For this purpose, an address comparator of all address bits shown in FIG. 2 is shown
(251) mit einem entsprechenden Arbiter 252 vorgesehen, der auch die Steuersignale der Prozessoren auswertet und die Ausgangssignale 213 und 223 bildet, die diese Abläufe steuern. Die Ausgangssignale 213 und 223 können in einer vorteilhaften Ausführung jeweils mindestens drei Signalzustände einnehmen: enable, wait, equal, wobei enable den Zugriff erlaubt, wait eine Verzögerung bewirken soll und equal anzeigt, dass der Zugriff auf einen gleichen Speicherbereich von beiden Ports erfolgt. Für einen reinen Instruktionscache ist ein Schreibzugriff nicht notwendig; in diesem Fall reicht ein Signalzustand "equal" für die Ausgangssignale213 und 223 aus.(251) is provided with a corresponding arbiter 252, which also evaluates the control signals of the processors and forms the output signals 213 and 223, which control these processes. The Output signals 213 and 223 may occupy at least three signal states in each case in an advantageous embodiment: enable, wait, equal, wherein enable allows access, wait is to effect a delay, and equal indicates that the same memory area is accessed from both ports. For a pure instruction cache, write access is not necessary; In this case, a signal state "equal" is sufficient for the output signals 213 and 223.
Im Falle eines Cache Miss muss das Datum bzw. der Befehl über das Bussystem aus einem Programm- oder Datenspeicher geholt werden. Die ankommenden Daten werden zur Verarbel- tungseinheit weitergeleitet und werden parallel zusammen mit der Kennung und den Controlbits in den Cache geschrieben. Auch hier verhindert der Adresscomparator das nochmalige Holen des Datums vom Speicher, wenn kein Hit vorliegt aber ein Signal equal (Bestandteil oder Zustand von 213 und 223) vom Adresscomparator angezeigt wird. Das Signal equal wird im Falle des beidseitigen Lesens nur von den signifikanten Adressbits gebildet, weil immer der gesamte Block aus dem Speicher geholt wird. Erst wenn der Block im Cache gespeichert ist, kann die wartende Verarbeitungseinheit auf den Cache zugreifen.In the case of a cache miss, the date or command must be fetched from a program memory or data memory via the bus system. The incoming data is forwarded to the processing unit and written to the cache in parallel together with the identifier and control bits. Again, the address comparator prevents retrieving the date from the memory if there is no hit but a signal equal (constituent or state of 213 and 223) is displayed by the address comparator. The signal equal is formed in the case of two-sided reading only from the significant address bits, because always the entire block is fetched from the memory. Only when the block is cached can the waiting processing unit access the cache.
In einer weiteren vorteilhaften Ausführung werden zwei getrennte Dual Port Caches für Daten und für Befehle vorgesehen, wobei im letzteren üblicherweise keine Schreibvorgänge vorzuse- hen sind. Der Adress-Comparator prüft in diesem Fall immer nur auf Gleichheit der signifikanten Adressbits und stellt das entsprechende Steuersignal "equal" in den Signalen 213 bzw. 223 bereit.In a further advantageous embodiment, two separate dual port caches for data and for commands are provided, wherein in the latter usually no write operations are to be provided. In this case, the address comparator only checks for equality of the significant address bits and provides the corresponding control signal "equal" in the signals 213 and 223, respectively.
Weiterhin ist es möglich, dass der gleichzeitige Lese-Zugriff von beiden Ports nur dann unein- geschränkt funktioniert, wenn die angeforderten Daten in verschiedenen Adressbereichen vorliegen, die den gleichzeitigen Zugriff ermöglichen. Dadurch können bei der Hardware- Realisierung Aufwendungen gespart werden, weil nicht alle Zugriffs-Mechanismen im Speicher dupliziert werden müssen. Beispielsweise kann der Cache in mehreren Teilspeicherbereichen realisiert werden, die unabhängig voneinander betrieben werden können. Jeder Teilspeicher er- möglicht über select-Signale nur die Abarbeitung eines Ports. In Figur 4 ist ein solcher SpeicherFurthermore, it is possible that the simultaneous read access from both ports only works without restriction if the requested data is present in different address areas which allow simultaneous access. This can be saved in the hardware implementation expenses because not all access mechanisms must be duplicated in memory. For example, the cache can be implemented in several sub-storage areas that can be operated independently of each other. Each partial memory allows only the execution of a port via select signals. FIG. 4 shows such a memory
230 gezeigt, der zwei Teilspeicherbereiche 235 und 236 beinhaltet. In dem hier gezeigten Ausführungsbeispiel werden aus einem Adressbit A die zwei Select-Signale E0 und Ei derart gebil- det, dass fiir den Fall Fall A1=I E0=O und Ei=I gilt. In den Signalen 233 und 234 sind dann die beiden select-Signale und die niederwertigen Adressbits A1-I ... A0 enthalten.230, which includes two sub-storage areas 235 and 236. In the exemplary embodiment shown here, the two select signals E 0 and Ei are formed from an address bit A in this way. That's for the case Case A 1 = IE 0 = O and Ei = I holds. In the signals 233 and 234 then the two select signals and the low-order address bits A 1-I ... A 0 are included.
Für ein weiteres Ausfuhrungsbeispiel mit vier Teilspeichern können die 4 select-Signale aus zwei Adressbits generiert werden, da jeder Teilspeicher eindeutig einen bestimmten Adressbereich bedient. So können beispielsweise mit den 2 Adressbits A+i und A1 vier Teilspeicherbereiche angesprochen werden, indem die vier select-Signale E0 bis E3 entsprechend der binären Wertigkeit gemäß Tabelle 1 generiert werden.For a further exemplary embodiment with four partial memories, the 4 select signals can be generated from two address bits, since each partial memory uniquely serves a specific address range. For example, with the 2 address bits A + i and A 1, four partial memory areas can be addressed by generating the four select signals E 0 to E 3 corresponding to the binary significance in accordance with Table 1.
Für die in Figur 4 gezeigten Teilspeicher 235 und 236 ist in Figur 5 ein Ausfuhrungsbeispiel dargestellt. Der dort mit 260 bezeichnete Teilspeicher ist in dieser besonderen Ausführung als Single Port RAM 280 ausgeführt, dessen Adressen, Daten und Steuersignale je nach Anforderung umgeschaltet werden. Die Umschaltung wird durch eine Steuerschaltung 270 mit Hufe ei- nes Multiplexers 275 vorgenommen, abhängig von den select-Signalen und anderer Steuersignale 2901 bzw. 2902 (z.B. read, write) von den entsprechenden Ports. Diese Signale sind ai- sammen mit den Daten und Adressen in den Signalen 233 bzw. 234 enthalten und werden über 5281 bzw. 5282 an den Multiplexer 275 geführt, der je nach Entscheidung der Steuerschaltung 270 entsprechend dem Ausgangssignal 2701 entweder 5281 oder 5282 mit den Signalen 2801 verbindet. In diesem Beispiel wird ohne Einschränkung der Allgemeinheit von einer direktenFor the partial memories 235 and 236 shown in FIG. 4, an exemplary embodiment is shown in FIG. The designated there 260 part memory is executed in this particular embodiment as a single port RAM 280, the addresses, data and control signals are switched depending on the requirement. Switching is done by a multiplexer 275 control circuit 270, depending on the select signals and other control signals 2901 and 2902 (e.g., read, write) from the respective ports. These signals are included together with the data and addresses in the signals 233 and 234, respectively, and are fed to the multiplexer 275 via 5281 and 5282, respectively, depending on the decision of the control circuit 270 corresponding to the output signal 2701 either 5281 or 5282 with the signals 2801 connects. In this example, without limitation of the generality of a direct
Adressierung des Caches ausgegangen (direct-mapped). Falls eine mehrfach-assoziative Cacheorganisation vorliegt, muss entweder in den Einheiten 275 noch der Vergleich auf Gültigkeit stattfinden und das Cach-hit Signal zum Port weitergeleitet werden oder alle Daten werden über den Port 5331 und das Signal 233 zu 231 bzw. über den Port 5332 und das Signal 234 zu 232 weitergeleitet, wo die Gültigkeit geprüft wird.Addressing of the cache assumed (direct-mapped). If there is a multi-associative cache organization, then either in units 275 the comparison must be valid and the cache-hit signal forwarded to the port or all data is sent via port 5331 and signal 233 to 231 and port 5332, respectively and forward signal 234 to 232 where the validity is checked.
Die Steuerschaltung kann dabei die Weiterschaltung der Signale 5281 bzw. 5282 auf 2801 und damit zum Single Port RAM 280 vornehmen und auch die Daten und anderen Signale von 280 in die Entgegengesetzte Richtung weiterleiten . Dies geschieht in Abhängigkeit eines gültigen select-Signals und der Signale 233 und 234 und/oder der Reihenfolge, in welcher die Ports über diese Signale eine Lese- oder Schreib-Operation mit dem Speicher 280 veranlassen. Werden in den Signalen 233 und 234 gleichzeitig die Lese- oder Schreibsignale aktiv, so wird ein zuvor definierter Port zuerst bedient. Dieser Vorzugsport bleibt auch dann mit 2801 verbunden, wenn kein Lese- oder Schreibsignal aktiv ist. Der Vorzugsport kann alternativ auch dynamisch vom Prozessorsystem festgelegt werden, vorzugsweise abhängig von Zustandsinformationen des Prozessorsystems.The control circuit can make the forwarding of the signals 5281 or 5282 to 2801 and thus to the single port RAM 280 and also forward the data and other signals from 280 in the opposite direction. This is done in response to a valid select signal and the signals 233 and 234 and / or the order in which the ports cause a read or write operation to the memory 280 via these signals. If the read or write signals become active in the signals 233 and 234 at the same time, one becomes previously defined port first served. This preferred port remains connected to 2801 even if no read or write signal is active. Alternatively, the preferred port may be set dynamically by the processor system, preferably depending on state information of the processor system.
Diese Anordnung mit einem Single Port RAM ist kostengünstiger als ein Dual Port RAM mit paralleler Zugriffsmöglichkeit, verzögert aber die Abarbeitung mindestens einer Verarbeitungseinheit, wenn gleichzeitig zu einem Teilspeicher (auch lesend) zugegriffen wird. Je nach Anwendung ist es nun möglich, verschiedene Aufteilungen der RAM-Teilbereiche so vorzuneh- men, dass zusammen mit der Gestaltung der Befehlsabläufe und der Datenzugriffe von den ui- terschiedlichen Verarbeitungseinheiten möglichst wenig gleichzeitige Zugriffe zu gleichen Teil- RAM-Bereichen auftreten. Diese Anordnung ist auch erweiterbar auf Zugriffe von mehr als zwei Prozessoren: Es ist in gleicher Weise auch ein Multi-Port RAM realisierbar, wenn die Um- schaltung der Adressen, Daten und Steuersignale über mehrere Multiplexer stufenweise nadi- einander vorgesehen wird (Figuren 6 und 7).This arrangement with a single port RAM is less expensive than a dual port RAM with parallel accessibility, but delays the processing of at least one processing unit when a partial memory (also reading) is accessed at the same time. Depending on the application, it is now possible to carry out different partitions of the RAM subregions in such a way that as few as possible simultaneous accesses to the same subordinate RAM areas occur together with the configuration of the command sequences and the data accesses from the different processing units. This arrangement can also be extended to accesses of more than two processors: A multi-port RAM can likewise be implemented in the same way if the switching of the addresses, data and control signals via several multiplexers is provided in steps nadis each other (FIGS. 6 and 7).
Ein solches Multi Port RAM 290 ist in Figur 6 dargestellt. Dort werden die Port- Eingangssignale 261, 262,...267 in den Decodiereinrichtungen 331, 332, ..337 zu den Signalen 291, 292 ...297 decodiert. Diese Decodierung erzeugt die select-Signale für die Zugriffe zu den einzelnen RAMs in 281, 282 und 288. In Figur 7 ist ein Ausführungsbeispiel für einen Teilspeicher 28x (281 ... 288) näher gezeigt. Dort werden in einer ersten Stufe der Steuereinrichtungen 370 die select-Signale und Steuersignale 3901, 3902, ... 3908 aus den Steuersignalen 291, 292 ... 298 verarbeitet zu den Ausgangssignalen 3701,.. 3707. Diese Ausgangssignale steuern je einen Multiplexer 375 an, der je nach Signalwert die Verbindungen der Busse 381 oder 382, bis 387 oder 388 mit den Signalen 481 ...488 herstellt. In weiteren Stufen sind ähnliche Steuereinrichtungen 370 und Multiplexer 375 entsprechend geschaltet bis in einer letzten Stufe die Signale 5901 und 5902 für die Steuereinrichtung benutzt werden. Das Ausgangssignal 5701 verbindet dann entweder 581 oder 582 mit 681, das mit dem Single Port RAM verbunden ist.Such a multi-port RAM 290 is shown in FIG. There, the port input signals 261, 262, ... 267 are decoded in the decoding devices 331, 332, ..337 to the signals 291, 292 ... 297. This decoding generates the select signals for the accesses to the individual RAMs in 281, 282 and 288. In Figure 7 an embodiment for a sub-memory 28x (281 ... 288) is shown in more detail. There, in a first stage of the control means 370, the select signals and control signals 3901, 3902, ... 3908 are processed from the control signals 291, 292 ... 298 to the output signals 3701, .. 3707. These output signals each control a multiplexer 375 which, depending on the signal value, establishes the connections of the buses 381 or 382 to 387 or 388 with the signals 481... 488. In further stages, similar controllers 370 and multiplexers 375 are switched accordingly until in a last stage the signals 5901 and 5902 are used for the controller. The output signal 5701 then connects either 581 or 582 to 681 which is connected to the single port RAM.
Im Gegensatz zu den Multiplexern 275 von Figur 5 verbinden die Multiplexer 375 von Figur 7 neben den Adress-, Daten- und Steuersignalen auch die select-Signale der nächsten Stufen, die in 381, 382 ... 388 enthalten sind. Weiterhin können in 375 Vergleichseinrichtungen enthalten sein, die bei einer mehrfach-assoziativen Adressierungsart die Gültigkeit der aus den Teilbereichen gelesenen Daten ermitteln.In contrast to the multiplexers 275 of Figure 5, the multiplexers 375 of Figure 7, in addition to the address, data and control signals, also connect the select signals of the next stages contained in 381, 382 ... 388. Furthermore, 375 comparators can be included be in a multi-associative addressing the validity of the data read from the sub-areas.
In einer weiteren vorteilhaften Ausführung kann die Zuschaltung von RAM-Bereichen zu ver- schiedenen Verarbeitungseinheiten von einem oder mehreren Systemzuständen oder Konfiguia- tionen abhängig gemacht werden. In Figur 8 ist dazu ein Beispiel für einen konfigurierbaren Dual Port Cache gezeigt. Dazu wird das Systemmodus- oder Konfigurationssignal 1000 bei der Decodierung der Eingangssignale für jeden der zwei Ports benutzt. Tabelle 2 zeigt eine Möglichkeit der Veränderung der Decodierung in Abhängigkeit von diesem Signal 1000, das hier mit M bezeichnet ist. Ist M=O, so liegt zum Beispiel ein Vergleichsmodus vor, in dem beideIn a further advantageous embodiment, the connection of RAM areas to different processing units can be made dependent on one or more system states or configurations. FIG. 8 shows an example of a configurable dual port cache for this purpose. To do this, the system mode or configuration signal 1000 is used in decoding the input signals for each of the two ports. Table 2 shows a possibility of changing the decoding in response to this signal 1000, which is denoted by M here. If M = 0, for example, there is a comparison mode in which both
Ports Zugriff auf den gesamten Cache haben. Wird aber M=I (z.B. Performanz-Modus), so hat jeder Port nur noch den Zugriff auf die Hälfte des Cache, aber jeder Port kann uneingeschränkt (ohne Einfluss der Aktivitäten am anderen Port) auf diesen Bereich zugreifen. In diesem Modus wird das Adressbit A1 nicht zur Adressierung des Caches (im direct-mapped mode) verwendet, sondern Daten, die sich in der Adressierung nur in diesem Bit unterscheiden, werden an der gleichen Stelle im Cache abgelegt. Erst beim Lesen des Cache-Inhalts kann anhand der Kennung dann herausgefunden werden, ob es sich um das gesuchte Datum handelt und entsprechend das Cach-hit Signal generiert werden. Je nachdem, wo der entsprechende Vergleicher angeordnet ist, sind die Daten einschließlich Kennung und Controlbits über die Signale 291, 292,...297 an die Ports 331, 332, ...337 und weiter and die Signale 261, 262,...267 auszugeben.Ports have access to the entire cache. But if M = I (eg performance mode), then each port has only access to half of the cache, but each port can access this area without restriction (without influence of the activities on the other port). In this mode, the address bit A 1 is not used to address the cache (in direct-mapped mode), but data that differ in addressing only in this bit are stored in the same place in the cache. Only when reading the cache content can be found by the identifier then, whether it is the date sought and accordingly the cach-hit signal are generated. Depending on where the corresponding comparator is arranged, the data including identifier and control bits are transmitted via the signals 291, 292,... 297 to the ports 331, 332,... 337 and further to the signals 261, 262,. .267.
Ebenso ist es möglich im Performanz-Modus (M=I) nur dem Port 1 den Zugriff auf den gesamten Cache zu erlauben. Diese Ausführung ist in Tabelle 3 dargestellt. Der Anwender kann auch durch mehrere Konfigurationssignale beliebige andere Aufteilungen des Caches vornehmen. Das erlaubt bei einem größeren Cache-Bereich einmal eine höhere Hit-Rate und verringert da- mit die Notwendigkeit des Holens der Daten aus dem Hauptspeicher. Andererseits behindern sich die verschiedenen Verarbeitungseinheiten nicht, wenn über die verschiedenen Ports möglichst nur auf voneinander unabhängige Cache-Bereiche zugegriffen wird. Da diese Bedingungen von den zur Anwendung vorgesehenen Programmen abhängig sind ist es vorteilhaft, wenn je nach Anwendung die Möglichkeit einer anderen Konfiguration besteht. Andererseits kann d- rekt bei einem Wechsel des Systemzustandes (Vergleichs-Modus / Performanz-Modus) automatisch der Cache durch das Modussignal 1000 umgeschaltet werden. Diese Möglichkeit der Umschaltung der Ports in Abhängigkeit von einem Modus- oder Konfigurationssignal wird in Figur 9 auf einen Multi-Port Cache 290 erweitert. Dabei sind 331, 332, ... 337 die Ports, die mit Hilfe dieses Modus- oder Konfigurationssignals die Zuschaltung verschiedener Teil-RAM-Bereiche 281,282,... 288 steuern. Diese Steuerung wird mittels entsprechend in den Ports generierter select-Signale gewährleistet, die in den Signalen 291, 292,...297 enthalten sind.It is also possible in the performance mode (M = I) only the port 1 to allow access to the entire cache. This embodiment is shown in Table 3. The user can also make any other division of the cache by multiple configuration signals. This allows a higher hit rate once with a larger cache area and thus reduces the need to fetch the data from main memory. On the other hand, the various processing units do not interfere with each other, if possible accessing only the independent cache areas via the different ports. Since these conditions depend on the programs intended for the application, it is advantageous if there is the possibility of a different configuration depending on the application. On the other hand, when the system state (comparison mode / performance mode) changes, the cache can be automatically switched over by the mode signal 1000. This possibility of switching the ports as a function of a mode or configuration signal is extended to a multi-port cache 290 in FIG. In this case, 331, 332,... 337 are the ports which control the connection of different partial RAM areas 281, 282,... 288 with the aid of this mode or configuration signal. This control is ensured by means of appropriately generated in the ports select signals that are included in the signals 291, 292, ... 297.
Eine weitere Ausführung ist in Figur 10 gezeigt, wenn ein mehrfach-assoziativer Cache vorliegt, bei dem aus jedem Teilspeicher 281, 282,...288 die Daten zusammen mit der Kennung und den Controlbits zurückgelesen werden. In den Vergleichseinrichtungen 2811, 2812,...2817, 2821,Another embodiment is shown in Figure 10 when there is a multi-associative cache in which the data is read back from each sub-memory 281, 282, ... 288 along with the identifier and control bits. In the comparators 2811, 2812, ... 2817, 2821,
2822,...2827, ...2881,2882,..2887 wird dann die Gültigkeit geprüft und in Abhängigkeit davon das Datum auf den Signalen 2910, 2920...2970 zusammen mit den Gültigkeitssignalen weitergeleitet. Eine Umschaltung mit Modus- oder Konfigurationssignalen ist dabei optional genauso möglich, wie schon in Figur 9 gezeigt und erläutert. In den Ports 3310, 3320,.. 3370 werden die Gültigkeitssignale und ggf. die Modus- und Konfigurationssignale 1000 ausgewertet und das entsprechende gültige Datum mit dem Cache Hit Signal bzw. das Cache Miss Signal an die Sg- nale 2610, 2620,...2670 weitergeleitet.2822, ... 2827, ... 2881,2882, .. 2887 then the validity is checked and, depending on the date on the signals 2910, 2920 ... 2970 forwarded together with the validity signals. Switching with mode or configuration signals is optionally just as possible, as already shown and explained in FIG. In the ports 3310, 3320, .. 3370, the validity signals and possibly the mode and configuration signals 1000 are evaluated and the corresponding valid date with the cache hit signal or the cache miss signal is sent to the signals 2610, 2620, .. .2670 forwarded.
Anstelle eines RAM-Speicher kann die erfindungsgemäße Anordnung auch mit anderen Spei- chertechnologien wie MRAM, FERAM o. ä. dargestellt werden. Instead of a RAM memory, the arrangement according to the invention can also be represented with other memory technologies such as MRAM, FERAM or the like.

Claims

Patentansprüche claims
1. Vorrichtung zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich fiir Daten und/oder Befehle, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei dieA device for storing data and / or commands in a computer system having at least two processing units and at least one first memory or memory area for data and / or commands, characterized in that the device contains a second memory or memory area, wherein the
Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.Device is designed as a cache memory system and is equipped with at least two separate ports and accessed via these ports access the at least two processing units to the same or different memory cells of the second memory or memory area, the data and / or commands from the first memory system are cached in blocks.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, welche derart ausgestaltet sind, dass über die wenigstens zwei Ports gleichzeitig ein Lesezugriff auf eine Speicherzelle erfolgt.2. Apparatus according to claim 1, characterized in that means are provided which are configured such that via the at least two ports at the same time a read access to a memory cell.
3. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, welche derart ausgestaltet sind, dass über die wenigstens zwei Ports gleichzeitig ein Lesezugriff auf zwei verschiedene Speicherzellen erfolgt.3. Apparatus according to claim 1, characterized in that means are provided which are configured such that at least two ports simultaneously read access to two different memory cells.
4. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, mit denen bei einem gleichzeitigen Lesezugriff über die wenigstens zwei Ports zu einer gleichen oder zu zwei verschiedenen Speicherzellen der eine Port im Zugriff solange verzögert wird, bis der andere Port den Zugriff abgeschlossen hat.4. The device according to claim 1, characterized in that means are provided with which a simultaneous read access via the at least two ports to a same or two different memory cells of a port in the access is delayed until the other port completes the access Has.
5. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, mit denen die Zugriffsadressen an den wenigstens zwei Ports verglichen werden können. 5. The device according to claim 1, characterized in that means are provided with which the access addresses can be compared at the at least two ports.
6. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, die einen Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich über einen ersten Port erkennen, und den Schreib- und/oder Lesezugriff über einen zweiten Port auf diese Speicherzelle und/oder diesen Speicherbereich solange verhindern oder ver- zögern, bis der Schreibzugriff über den ersten Port beendet ist.6. The device according to claim 1, characterized in that means are provided which detect a write access to a memory cell or a memory area via a first port, and the write and / or read access via a second port to this memory cell and / or memory area prevent or delay until the write access via the first port is finished.
7. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel enthalten sind, die bei einem Lesezugriff über wenigstens einen Port überprüfen, ob die gewünschten Daten in dem zweiten Speicher oder Speicherbereich vorliegen.7. The device according to claim 1, characterized in that means are included, which check in a read access via at least one port, whether the desired data in the second memory or memory area.
8. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, um den ersten Speicher oder Speicherbereich zu adressieren und Speicherinhalte aus diesem Blockweise in den zweiten Speicher oder Speicherbereich zu übertragen, wenn die über einen ersten Port angeforderten Daten nicht im zweiten Speicher oder Speicherbereich vorhanden sind.8. The device according to claim 1, characterized in that means are provided for addressing the first memory or memory area and to transfer memory contents from this blockwise into the second memory or memory area when the data requested via a first port is not in the second memory or Memory area are available.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass ein Adressvergleicher vorhanden ist, der feststellt, dass über einen zweiten Port auf mindestens eine Speicherzelle aus dem von der ersten Verarbeitungseinheit über den ersten Port angefor- derten Speicherblock zugegriffen werden soll.9. Device according to claim 8, characterized in that an address comparator is provided, which determines that a second port is to be used to access at least one memory cell from the memory block requested by the first processing unit via the first port.
10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass Mittel vorhanden sind, die den Zugriff auf die Speicherzelle erst ermöglichen, wenn die Daten in dem zweiten Speicher oder Speicherbereich aktualisiert sind.10. The device according to claim 9, characterized in that means are provided which enable access to the memory cell only when the data in the second memory or memory area are updated.
11. Vorrichtung nach Anspruch 1 , dadurch gekennzeichnet, dass der zweite Speicher o- der Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.11. The device according to claim 1, characterized in that the second memory or memory area is subdivided into at least two address areas which can be read or written independently of each other.
12. Vorrichtung nach Anspruch 11 , dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der select-Signale generiert, die bei einem gleichzeitigen Zugriff auf einen Adressbereich durch mehrere Ports nur einem Port den Zugriff ermöglichen und den Zugriff des wenigstens einen weiteren Ports unterbinden oder verzögern, insbesondere durch wait-Signale. 12. The device according to claim 11, characterized in that an address decoder is present, which generates select signals which allow simultaneous access to an address range through multiple ports only one port access and prevent the access of the at least one other ports or delay , in particular by wait signals.
13. Vorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneinander unabhängigen Adressbereichen über die Auswahleinrichtungen mit meh- reren Stufen erfolgt und dazu die select-Signale über diese Stufen weitergeleitet werden.13. The apparatus of claim 12, characterized in that more than two ports are provided, wherein selection means are present and the access to the independent address ranges via the selection means with several stages takes place and to the select signals are forwarded via these stages ,
14. Vorrichtung nach Anspruch 11,12 oder 13, dadurch gekennzeichnet, dass es mindestens ein Modussignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.14. Device according to claim 11, 12 or 13, characterized in that there is at least one mode signal which switches the access possibilities of the different ports.
15. Vorrichtung nach Anspruch 11,12 oder 13, dadurch gekennzeichnet, dass es mindestens ein Konfigurationssignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.15. Device according to claim 11, 12 or 13, characterized in that there is at least one configuration signal which switches the access possibilities of the different ports.
16. Vorrichtung nach Anspruch 11,12 oder 13, dadurch gekennzeichnet, dass ein n-fach assoziativer Cache mit Hilfe von n unterschiedlichen Adressbereichen realisiert wird.16. Device according to claim 11, 12 or 13, characterized in that an n-times associative cache is realized with the aid of n different address ranges.
17. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, die bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum gleichzeitig in den ersten Speicher oder Speicherbereich geschrieben wird.17. The device according to claim 1, characterized in that means are provided which is written in a write access to a memory cell or a memory area of the second memory, the date to be written simultaneously in the first memory or memory area.
18. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass Mittel vorhanden sind, die bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum verzögert in den ersten Speicher oder Speicherbereich geschrieben wird.18. The device according to claim 1, characterized in that means are provided which is written in a write access to a memory cell or a memory area of the second memory, the data to be written delayed in the first memory or memory area.
19. Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.19. A method for storing data and / or commands in a computer system having at least two processing units and at least one first memory or memory area for data and / or commands, characterized in that in the device, a second memory or memory area is included, wherein the device is formed as a cache memory system and is equipped with at least two separate ports and access via these ports of at least two Processing units to the same or different memory cells of the second memory or memory area, wherein the data and / or commands from the first memory system are cached block by block.
20. Verfahren nach Anspruch 19, dadurch gekennzeichnet, dass zum Lesen von Daten aus dem zweiten Speicher oder Speicherbereich und/oder zum Schreiben von Daten in den zweiten Speicher oder Speicherbereich über die beiden Ports ein paralleler Zugriff von Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speicher oder Speicherbereichs erfolgt und das Lesen einer gleichen Speicherzelle über beide Ports zeitgleich erfolgt.20. The method according to claim 19, characterized in that for reading data from the second memory or memory area and / or for writing data in the second memory or memory area via the two ports, a parallel access of processing units to the same or different memory cells of the second Memory or memory area is done and reading a same memory cell via both ports at the same time.
21. Verfahren nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass Adressen, die an die beiden Ports angelegt werden, verglichen werden.21. The method according to claim 19 or 20, characterized in that addresses which are applied to the two ports are compared.
22. Verfahren nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass ein Schreibzugriff auf den zweiten Speicher oder Speicherbereich und/oder eine Speicherzelle des zweiten Speichers oder Speicherbereichs über einen ersten Port erkannt wird, und der Schreib- und Lesezugriff über einen zweiten Port auf diesen zweiten Speicher o- der Speicherbereich solange verhindert und/oder verzögert wird, bis der Schreib- zugriff über den ersten Port beendet ist.22. The method according to claim 19 or 20, characterized in that a write access to the second memory or memory area and / or a memory cell of the second memory or memory area is detected via a first port, and the read and write access via a second port to this memory is prevented and / or delayed until the write access via the first port is terminated.
23. Verfahren nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass bei einem Lesezugriff über wenigstens einen Port überprüft wird, ob die gewünschten Daten und/oder Befehle in dem zweiten Speicher oder Speicherbereich vorliegen.23. The method according to claim 19 or 20, characterized in that it is checked in a read access via at least one port, whether the desired data and / or commands are present in the second memory or memory area.
24. Verfahren nach Anspruch 23, dadurch gekennzeichnet, dass die Überprüfung anhand der Adressinformationen vorgenommen wird.24. The method according to claim 23, characterized in that the check is made on the basis of the address information.
25. Verfahren nach Anspruch 23 dadurch gekennzeichnet, dass in dem Falle, wenn die über einen ersten Port angeforderten Daten nicht im zweiten Speicher oder Speicherbereich vorhanden sind, veranlasst wird, dass der entsprechende Speicherblock aus der ersten Speicheranordnung in den zweiten Speicher oder Speicherbereich übertragen wird. 25. The method according to claim 23, characterized in that in the case when the data requested via a first port is not present in the second memory or memory area, it is caused that the corresponding memory block is transferred from the first memory array to the second memory or memory area ,
26. Verfahren nach Anspruch 23, dadurch gekennzeichnet, dass alle Information über das Vorhandensein der Daten und/oder Befehle aktualisiert werden, sobald der angeforderte Speicherblock in den zweiten Speicher oder Speicherbereich übertragen wurde.26. The method according to claim 23, characterized in that all information about the presence of the data and / or commands are updated as soon as the requested memory block has been transferred to the second memory or memory area.
27. Verfahren nach Anspruch 23, dadurch gekennzeichnet, dass ein Adressvergleicher feststellt, dass eine zweite Verarbeitungseinheit auf mindestens eine Speicherzelle aus dem von der ersten Verarbeitungseinheit angeforderten Speicherblock zugreifen möchte.27. The method according to claim 23, characterized in that an address comparator determines that a second processing unit would like to access at least one memory cell from the memory block requested by the first processing unit.
28. Verfahren nach Anspruch 27, dadurch gekennzeichnet, dass der Zugriff auf die besagte Speicherzelle erst ermöglicht wird, wenn die betreffenden Informationen über das Vorhandensein der Daten und/oder Befehle aktualisiert wurden.28. Method according to claim 27, characterized in that the access to the said memory cell is made possible only when the relevant information about the presence of the data and / or commands has been updated.
29. Verfahren nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass der zweite Spei- eher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist und diese wenigstens zwei Adressbereiche über die wenigstens zwei Ports des zweiten Speichers oder Speicherbereichs unabhängig voneinander gelesen oder geschrieben werden können, wobei jeder Port auf jeden Adressbereich zugreifen kann.29. Method according to claim 19, characterized in that the second memory or memory area is subdivided into at least two address areas and these at least two address areas can be read or written independently of each other via the at least two ports of the second memory or memory area, wherein Each port can access each address space.
30. Verfahren nach Anspruch 29, dadurch gekennzeichnet, dass der zeitgleiche Zugriff auf einen Adressbereich auf genau einen Port beschränkt wird und alle weiteren Zugriffsanforderungen über andere Ports auf diesen Adressbereich während des Zugriffs des ersten Ports unterbunden oder verzögert werden, insbesondere durch wait-Signale.30. The method according to claim 29, characterized in that the simultaneous access to an address area is restricted to exactly one port and all further access requests via other ports to this address area are inhibited or delayed during the access of the first port, in particular by wait signals.
31. Verfahren nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum gleichzeitig in den ersten Speicher oder Speicherbereich geschrieben wird.31. The method according to claim 19 or 20, characterized in that at a write access to a memory cell or a memory area of the second memory, the date to be written is written simultaneously in the first memory or memory area.
32. Verfahren nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf eine Speicherzelle oder einen Speicherbereich des zweiten Speichers das zu schreibende Datum verzögert in den ersten Speicher oder Speicherbereich geschrieben wird. 32. The method according to claim 19 or 20, characterized in that in a write access to a memory cell or a memory area of the second memory, the data to be written is delayed in the first memory or memory area is written.
EP06777958A 2005-08-08 2006-07-25 Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions Withdrawn EP1915694A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005037219A DE102005037219A1 (en) 2005-08-08 2005-08-08 Apparatus and method for storing data and / or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and / or instructions
PCT/EP2006/064629 WO2007017373A1 (en) 2005-08-08 2006-07-25 Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions

Publications (1)

Publication Number Publication Date
EP1915694A1 true EP1915694A1 (en) 2008-04-30

Family

ID=37027584

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06777958A Withdrawn EP1915694A1 (en) 2005-08-08 2006-07-25 Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions

Country Status (6)

Country Link
US (1) US20100005244A1 (en)
EP (1) EP1915694A1 (en)
JP (1) JP2009505180A (en)
CN (1) CN101243416A (en)
DE (1) DE102005037219A1 (en)
WO (1) WO2007017373A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201017421A (en) * 2008-09-24 2010-05-01 Panasonic Corp Cache memory, memory system and control method therefor
FR2954539B1 (en) * 2009-12-23 2014-08-29 Thales Sa METHOD AND DEVICE FOR DETECTING ERROR TRANSFERS FOR MICROCONTROLLER OR MICROPROCESSOR TO GUARANTEE PARTITIONING.
US8341353B2 (en) * 2010-01-14 2012-12-25 Qualcomm Incorporated System and method to access a portion of a level two memory and a level one memory
US9268722B1 (en) * 2012-05-31 2016-02-23 Marvell International Ltd. Sharing memory using processor wait states
US9208870B2 (en) * 2012-09-13 2015-12-08 Adesto Technologies Corporation Multi-port memory devices and methods having programmable impedance elements
US10013701B2 (en) 2013-10-09 2018-07-03 Selligent, Inc. System and method for managing message campaign data
US9704540B2 (en) * 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
JP2019057336A (en) * 2017-09-19 2019-04-11 株式会社東芝 Semiconductor integrated circuit

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS537108B2 (en) * 1972-09-29 1978-03-14
US4345309A (en) * 1980-01-28 1982-08-17 Digital Equipment Corporation Relating to cached multiprocessor system with pipeline timing
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
JPH01280860A (en) * 1988-05-06 1989-11-13 Hitachi Ltd Multiprocessor system with multiport cache memory
JP2965043B2 (en) * 1990-04-10 1999-10-18 三菱電機株式会社 Dual port memory
JPH0485788A (en) * 1990-07-27 1992-03-18 Toshiba Corp Multi-port cache memory
DE4129614C2 (en) * 1990-09-07 2002-03-21 Hitachi Ltd System and method for data processing
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
US20040221112A1 (en) * 2003-04-29 2004-11-04 Zvi Greenfield Data storage and distribution apparatus and method
DE10332700A1 (en) * 2003-06-24 2005-01-13 Robert Bosch Gmbh Method for switching between at least two operating modes of a processor unit and corresponding processor unit
US7363436B1 (en) * 2004-02-26 2008-04-22 Integrated Device Technology, Inc. Collision detection in a multi-port memory system
US7747828B2 (en) * 2004-11-17 2010-06-29 Integrated Device Technology, Inc. Systems and methods for monitoring and controlling binary state devices using a memory device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007017373A1 *

Also Published As

Publication number Publication date
US20100005244A1 (en) 2010-01-07
JP2009505180A (en) 2009-02-05
WO2007017373A1 (en) 2007-02-15
DE102005037219A1 (en) 2007-02-15
CN101243416A (en) 2008-08-13

Similar Documents

Publication Publication Date Title
WO2007017373A1 (en) Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions
DE19983793B4 (en) A system comprising a processor on which a plurality of concurrent execution entities are executed, and a cache memory having multiple cache sections associated with execution entities
EP0013737B1 (en) Multilevel storage hierarchy for a data processing system
DE2547488C2 (en) Micro-programmed data processing system
DE19807872A1 (en) Method of managing configuration data in data flow processors
DE3934145C2 (en) Disk unit control device and information processing system including the same
DE112008001679T5 (en) Cache memory with configurable associativity
DE102006032832A1 (en) Network system and method for controlling distributed memory
DE10116639B4 (en) Write / read alignment scheme for port reduction in multi-port SRAM cells
DE10045188B4 (en) Cache device address conflict
DE10393803T5 (en) A method and apparatus for determining page management implementation on dynamic random access memory
DE3046912C2 (en) Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system
DE19908618A1 (en) Common cache memory in multiprocessor system
DE112004000694T5 (en) A method and apparatus for improving multi-CPU system performance for memory accesses
DE102021108478B4 (en) Device and control for cache directory CAM error detection and correction
DE69838701T2 (en) Device for read / write access of registers in a central processing unit
DE102004009610A1 (en) Heterogeneous Parallel Multithreaded Processor (HPMT) with Shared Contexts
DE102007055138B4 (en) System for accessing a single port multi-way cache
WO2007017367A1 (en) Device and method for storing data and/or commands in a computer system having at least two execution units and at least one first memory or memory area for data and/or commands
DE102014012155A1 (en) IMPROVED USE OF MEMORY RESOURCES
WO2007017376A1 (en) Method and device for storing data and/or commands in a computer system having at least two processing units and at least one first memory or memory area for data and/or commands
DE10025952B4 (en) Data processing unit with a superscaler structure and method for supplying a plurality of commands
DE19643688C2 (en) Method for controlling a cache memory unit with conflict-free parallel access to virtual, 2-dimensional address spaces
DE10359949B4 (en) Multithread processor architecture for triggered thread switching without clock cycle loss, no switching program command, and no extension of program command format
DE10026017A1 (en) Generating addressed commands from command sequence in memory unit for implementation in pipeline microprocessor with pre-polling buffer involves

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080310

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20081006

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20110201