WO2007017376A1 - 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 - Google Patents

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 Download PDF

Info

Publication number
WO2007017376A1
WO2007017376A1 PCT/EP2006/064661 EP2006064661W WO2007017376A1 WO 2007017376 A1 WO2007017376 A1 WO 2007017376A1 EP 2006064661 W EP2006064661 W EP 2006064661W WO 2007017376 A1 WO2007017376 A1 WO 2007017376A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
data
access
commands
cache
Prior art date
Application number
PCT/EP2006/064661
Other languages
German (de)
French (fr)
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
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
Priority to EP06777976A priority Critical patent/EP1915695A1/en
Priority to JP2008525519A priority patent/JP2009505181A/en
Publication of WO2007017376A1 publication Critical patent/WO2007017376A1/en

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
    • 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

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.
  • Microcontrollers with at least two integrated cores are known from the state of the art. These microcontrollers are also called dual-core or multi-
  • the at least two cores execute the same programs, program segments or commands redundantly and clock-synchronously, the results of the two cores are compared, and an error will then be detected in the comparison for agreement.
  • this configuration of a multi-core system is referred to as a comparison mode.
  • Dual-core or multi-core architectures are also used in other applications to increase performance. Both cores execute different programs, program segments, and commands, which can improve performance, which is why this configuration of a multi-core system is called a performance mode or performance mode.
  • This system is also referred to as a symmetric multiprocessor system (SMP).
  • SMP symmetric multiprocessor system
  • An extension of these systems can be achieved by means of a switching, ie depending on the purpose of the multiprocessor system, this can be operated in a comparison mode or in a performance mode. In comparison mode, the output signals of the cores are compared with each other. If there is a difference, an error signal is output. In performance mode, the two cores work as a symmetric multiprocessor system
  • Microprocessors are starting from a certain clock frequency with fast buffers
  • Caches to speed access to instructions and data.
  • main memory main memory
  • main memory main memory
  • processors to speed access to instructions and data.
  • caches are implemented in such storage technologies that provide fast access to memory contents and are physically located close to the processor.
  • a subset of the data and / or instructions are cached from main memory in a cache.
  • the use of a cache memory partly avoids or reduces the slow access to a large (main) memory and then the processor does not have to wait for the delayed provision of the data by the main memory.
  • 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.
  • it is customary to equip each processor with a cache or, in the case of multi-level caches, with correspondingly more hierarchically structured 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 ( Comparison mode), the data or commands in the parallel caches of each controller must be either deleted when switching between the operating modes, or they must be provided when loading the caches with the corresponding information of the respective operating mode, preferably together with the
  • the object of the invention is to provide means and methods to optimize the size of the cache and to accelerate the process of switching between a performance mode and a comparison mode.
  • the data / instructions do not have to be fetched several times into the cache for the different execution units and / or the different operating modes and possibly maintained. - A -
  • the data / instructions in the cache do not need to be differentiated as to whether they are used in different operating modes of the multiprocessor system.
  • the data / instructions in the cache do not need to be distinguished in which operating modes of the multiprocessor system they are processed and / or in which modes of operation they have been cached or written and / or from which core they were requested or written.
  • the cache does not have to be deleted when changing the operating mode, so the cache contents have to be loaded less often and the access to the main memory is reduced. Switching can be faster than in systems that have multiple caches.
  • Two processors can simultaneously read to the same data / instructions in the cache.
  • a "write back” mode can be used for the cache, which is more time-saving, in particular because it is not always necessary to update the (main) memory but only when the data in the cache is overwritten; there are no consistency issues because the cache for both processors provides the data from the same source.
  • 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, wherein switching means are provided and switched between at least two operating modes, wherein comparison means are provided and a first mode of operation corresponds to a comparison mode and a second mode of operation a performance mode, 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 about these Ports an access of the 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 buffered in blocks and when switching.
  • a method is described, 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.
  • an address decoder is provided which generates enable 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.
  • a method is described, characterized in that more than two ports are provided, selection devices being present and the access to the independent address areas being effected via the selection devices having a plurality of stages and for this purpose the enable signals being forwarded via these stages.
  • a method is described, characterized in that there is at least one mode signal which switches over the access possibilities of the different ports.
  • a method is described, characterized in that there is at least one configuration signal which switches the access possibilities of the different ports.
  • a method is described, characterized in that both processing units specify a read access.
  • a method is described, characterized in that when specifying the read access by both processing units the data and / or commands associated Kennu ⁇ - conditions or access addresses are compared and only if a read access to the cache is switched through.
  • a method is described, characterized in that, when a read access is specified, both processing units access the cache system.
  • a method is described, characterized in that the read during read access by both processing units data and / or commands are compared and in case of deviation, a signal, in particular an error signal is generated.
  • a method is described, characterized in that in a write access to the second memory or memory area to be written data and / or commands are compared and are only written if they match.
  • a method is described, characterized in that in a write access until the data and / or commands are compared, the processing units are stopped.
  • a method is described, characterized in that the data and / or commands are written to a buffer memory or buffer memory area and are taken over only after successful comparison in the second memory or memory area.
  • a method is described, characterized in that in a write access to the second memory or memory area to be written data and / or commands are written only by a processing unit and depending on a parallel comparison in discrimination the registered data and / or commands disabled or invalidated.
  • a method is described, characterized in that the blocking or invalidation is effected by setting or resetting at least one bit.
  • a method is described, characterized in that the blocking or invalidation is effected by overwriting with another, in particular old date and / or command.
  • a method is described, characterized in that the blocking or invalidation is effected by deleting a corresponding entry of a content table of the second memory or memory area.
  • 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 via these ports access the at least two processing units to the same or different memory cells of the second memory or memory area, wherein the data and / or Be - missing from the first memory system Cached blockwise.
  • a device characterized in that data and commands are stored separately in the cache memory system and so a data memory or data storage area and an instruction memory or command memory area are provided. Also advantageous is such a device, characterized in that the second
  • Memory or memory area is divided into at least two address areas that can be read or written independently.
  • an apparatus is advantageous, characterized in that an address decoder is provided which generates enable signals which, in the case of simultaneous access to one Address range through multiple ports allow only one port access and prevent the access of the at least one other ports or delay, in particular by wait signals.
  • such a device is advantageous, characterized in that more than two ports are provided, with selection devices being present and the access to the independent address areas being effected via the selection devices with multiple ports and for this purpose the enable signals being forwarded via these stages ,
  • FIG. 1 shows a multiprocessor system with two execution units, with means for comparing data of the execution units and means for switching between at least two operating modes of the multiprocessor system.
  • FIG. 2 shows a dual-port cache memory for data and / or commands, which has an internal dual-port memory, two ports for connecting one execution unit each and an interface to the data / address bus of the multiprocessor system.
  • FIG. 3 shows a dual port cache with further details.
  • FIG. 4 shows a device and a method for address transformation in a dual port cache.
  • FIG. 5 shows a division of the internal dual-port memory into two subareas which can be operated independently of one another and are accessed by two separate enable signals from each port.
  • FIG. 6 shows a realization of a dual-port memory area by a single
  • FIG. 7 shows the division of a multiple port memory with p ports into a plurality of sub-ports.
  • FIG. 7 a shows a realization of a multi-port memory area by a single-port memory by means of a port switchover.
  • FIG. 8 shows a breakdown of the RAM areas for the ports as a function of a system state or a configuration.
  • 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.
  • FIG. 11/1 Ia a multiprocessor system with two execution units and a dual port cache is shown, which is preferably constructed symmetrically.
  • FIG. 12 shows a general case of a switching and comparing unit, also for use for more than two execution units.
  • FIG. 13 shows the internal switching state of the switching and comparison unit for write and read accesses to the cache memory in the performance mode.
  • FIG. 14 shows the internal switching state of the switching and comparison unit for read accesses to the cache memory in a first embodiment of the comparison mode.
  • FIG. 15 shows the internal switching state of the switching and comparison unit for read accesses to the cache memory in a second embodiment of the comparison mode.
  • FIG. 16 shows a configuration of a switching and comparison unit with write access interrupting device to the cache memory in comparison mode.
  • FIG. 17 there is shown a configuration of a switching and comparing unit with buffering means for writing access to the cache memory in the comparing mode.
  • Figure 18 shows a multiprocessor system with two execution units and with separate dual port cache memories for instructions and data.
  • a processor As an execution unit, a processor, a core, a CPU, as well as an FPU (floating point unit), a DSP (digital signal processor), a coprocessor or an ALU (arithmetic logical unit) may be referred to below.
  • FPU floating point unit
  • DSP digital signal processor
  • ALU Arimetic logical unit
  • the invention relates to a multiprocessor system (W100) shown in FIG. 1 having at least two execution units (W11a, W10b), a comparison unit (W120) and a switching unit (W150).
  • the execution units are each via signal lines or buses (Wl 12a, Wl 12b) with the comparison unit (W120) and the switching unit
  • the switching unit (W 150) has at least two outputs to two system interfaces (W130a, W130b). Memory or peripherals such as digital outputs, D / A converters and communication controllers can be controlled via these interfaces.
  • An execution unit can be implemented both as processor / core / CPU, as well as FPU (floating point unit), DSP (digital signal processor), coprocessor, ALU (Arithmetic logical Unit).
  • This multiprocessor system can be operated in at least two modes of operation, a compare mode VM and a performance mode PM.
  • the comparison unit In the performance mode PM, different commands, program segments or programs are executed in parallel in the different execution units.
  • the comparison unit is deactivated.
  • the switching unit (Wl 50) is configured in this operating mode so that each execution unit is exclusively connected to one of the system interfaces (W130a, W130b).
  • the system interfaces can be used to write a result of an execution unit into a memory (W 170) or to output it to a peripheral block (W180, W190).
  • a peripheral module may be, for example, an analog-digital converter or a communication controller of a communication system (eg SPI, LIN, CAN, FlexRay).
  • SPI serial-digital converter
  • a communication controller of a communication system eg SPI, LIN, CAN, FlexRay
  • Ignore comparator Next you can also interrupt the error signal itself. All options have in common that they create a state in the system that does not matter if two or more potentially matched data are different. If this state is reached by a measure in the comparator or its input or output signals, then the comparator is referred to as passive or deactivated.
  • comparison mode VM the same or similar commands, program segments or programs are executed in both execution units (W10a, W10b). Via the signal lines or buses (Wl 12a, Wl 12b), the output signals of the execution units are fed to the comparison unit (W 120) and to the switching unit (W 150). In the comparison unit, the two data are checked for conformity. After the comparison has been made, the changeover unit is informed via a status signal (W125) whether it is allowed to output one of the matching results to one of the system interfaces or whether it has to block the signal due to a recognized discrepancy of the results. In this case, an optional error signal (Wl 55) can be output by the comparison unit. This error signal can also be output by the switching unit instead of the comparison unit (Wl 56).
  • the comparison unit (W120) and the switchover unit (Wl 50) can also be combined into a combined switchover and comparison unit (W520).
  • n signals N140, ..., N14n go to the switching and comparison component W520. This can generate up to n output signals N160, ..., N16n from these input signals.
  • the "pure performance mode” all signals N14i are directed to the corresponding output signals N16i.
  • the "pure comparison mode” all signals N 140,..., N14n are only routed to exactly one of the output signals N16i.
  • n execution units and n> 2 more than just two operating modes are conceivable.
  • the logical component of a switching logic Nl 10 is included in this figure. This first determines how many output signals there are. Furthermore, the switching logic Nl 10 determines which of the input signals contribute to which of the output signals. An input signal can contribute to exactly one output signal. In other words, in terms of mathematical form, the circuit logic defines a function that assigns an element of the set ⁇ N160, ..., N16n ⁇ to each element of the set ⁇ N140, ..., N14n ⁇ .
  • the processing logic N 120 determines to each of the outputs N16i how the inputs contribute to that output signal.
  • the configuration of the switchover and comparison unit depends on or defines the operating mode of the multiprocessor system. In order to ensure consistent information about the operating mode within the system and, if necessary, to communicate this to external units, it is advantageous to identify the information about the operating mode in one of the system components and to make it available in one or more signals.
  • this signal can be generated in the switching and comparison unit and made available as a mode signal NI 50 to other parts of the system.
  • an error signal N 170 is shown in this figure.
  • the optional error signal is generated by fault circuit logic N130, which collects the error signals, and is either a direct forwarding of the single error signals or a bundling of the error information contained therein.
  • the mode signal Nl 50 is optional, but its use outside of this component can be used to advantage in many places.
  • the Combining the information of the switching logic NI 10 (ie the above-mentioned function) and the processing logic (ie the determination of the comparison operation per output signal, ie per function value) is the mode information and this defines or reflects the operating mode of the multiprocessor system.
  • this information is of course multi-valued, ie not representable only via a logical bit. Not all the theoretically conceivable modes are useful in a given implementation, it is preferable to restrict the number of modes allowed.
  • the mode signal then brings the relevant mode information to the outside.
  • An HW implementation is preferably shown so that the externally visible mode signal can be configured.
  • the processing logic and circuitry are also configured to be configurable. Preferably, these configurations are coordinated. Alternatively, one can give only or additionally changes of the mode signal to the outside. This has advantages especially in a two-configuration.
  • the present invention proposes the use of a dual port cache memory in a multiprocessor system having at least two execution units. Such a configuration is particularly advantageous if the multiprocessor system can switch between at least two operating modes, for example the comparison mode described above and the performance mode.
  • FIG. 2 shows a dual port cache 200, which essentially consists of a dual port
  • the dpRAM 230 is preferably provided with two independent address decoders, two data read / write stages and, in contrast to a single memory cell matrix, also with duplicated word and bit lines, so that at least the read operation for any memory cells of the dpRAMs from 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 are independent can be used by one another without considering how much time is needed to complete a request to read or write from that port, ie, how long it takes for the requested read or write operation to interact with requests from that port another port is completed.
  • the two ports of the dpRAM are via the signals 201 and 202 with the devices 210 and 220, respectively which perform an examination of the incoming addresses, data and control signals 211 and 221, respectively, of independent execution units 215 and 225 and optionally transform the addresses.
  • the execution units 215 and 225 correspond to the execution units Wl 10a and Wl 10b from FIG. 1.
  • the data are read from the cache via 201 through 210 to 211 or 202 through 220 to 221 output in the reverse direction of the execution units in the cache memory.
  • Both ports of the dpRAM are connected via the 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 may be partially or fully associative, i.
  • the data can be stored in 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 at which the data addressed by the execution unit is searched for 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). In the case of coincidence and after the additional validation with the help of the control bits likewise stored in the cache for each block (for example valid bits, dirty bits and process bits).
  • a cache hit signal is generated indicating the validity of the date.
  • a table is preferably used which is arranged in a memory unit 214 or 224 (register or RAM, also referred to as TAGRAM) shown in FIG. 2 and is located in the 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. 4, the significant address bits (index address) for the table are used as the address and the content is the access address of the dpRAM.
  • a block is the number of bytes which, in the case of a cache miss (lack of required data in the cache), are jointly fetched from the (main) 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, ie it is prevented that two ports are simultaneously written.
  • This precision can also be performed dynamically, for example by the switching and comparison unit of the multiprocessor system or depending on the addressed memory area. 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 delayed by pausing the read-to-write processor until the write operation is complete. For this purpose, an address comparator of all address bits (251) shown in FIG.
  • the output signals 213 and 223 can each occupy three signal states in an advantageous embodiment: enable, wait, equal. 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 address comparator prevents the data from being recalled from the memory if there is no hit, but a signal equal (constituent or state of 213 and 223) is indicated by the address comparator. In the case of reading via both ports, the equal signal is formed only by the significant address bits because the entire block is always fetched from the memory. Only when the
  • Block is stored in the cache, the waiting execution unit can access the cache.
  • two separate dual port caches for data and for instructions / instructions are provided, wherein in the instruction cache usually no write operations are provided.
  • the address comparator always checks in this case only
  • the simultaneous read access from both ports to the internal memory will only work fully if the requested data is in different address ranges that allow concurrent access. This can be saved in the hardware implementation expenses, because not all access mechanisms must be duplicated in memory.
  • the cache has been implemented in several sub-memory areas that can be operated independently of each other. Each sub-memory enables only the processing of a port via enable signals.
  • FIG 5 such a memory 230 is shown, which includes two partial storage areas 235 and 236.
  • an address bit A becomes the two enable signals.
  • the two e- nable signals and the low-order address bits A i ... A 0 are included.
  • the 4 enable 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 enable signals E 0 to E 3 corresponding to the binary significance in accordance with Table 1.
  • FIG. 5 For the partial memories 235 and 236 shown in FIG. 5, 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 accomplished by a control circuit 270 by means of a multiplexer 275, depending on the enable 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 accomplished by a control circuit 270 by means of a multiplexer 275, depending on the enable signals and other control signals 2901
  • 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 enable 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 access, but delays the processing of at least one execution unit when a sub memory area is accessed simultaneously (also read).
  • This arrangement can also be expanded to accesses of more than two execution units:
  • a multi-port RAM can likewise be implemented in the same way if the switching over of the addresses, data and control signals is provided successively in succession via several multiplexers (FIG. 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 enable signals for the accesses to the individual RAMs in 281, 282 and 288.
  • Fig. 7a is an embodiment of a
  • Partial memory 28x (281 ... 288) closer shown.
  • the enable 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 connected to the single port RAM 280.
  • the multiplexers 375 of FIG. 7a connect, in addition to the address, data and control signals, also the enable signals of the next stages, which in 381, 382 ... 388 are included. Furthermore, comparison means may be included in 375 which determine the validity of the data read from the subareas in the case of a multi-associative addressing mode.
  • FIG. 8 shows an example of a configurable dual port cache for this purpose.
  • a mode or configuration signal 1000 is used in decoding the input signals for each of the two ports.
  • This configuration signal may correspond to the mode signal Nl 50 of FIG. 12, which may include portions of the information of the mode signal Nl 50 or may be formed from combination of Nl 50 with other information of the multiprocessor system.
  • each port will only have access to half of the cache, but each port will have full access to that area (without the activity on the other port).
  • the address bit A is not used to address the cache (in the 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 determined by the
  • Identifier then be found out whether it is the date sought and accordingly the cach-hit signal generated.
  • the data including identifier and control bits are available via the signals 291, 292,... 297 to the ports 331, 332,... 337 and further to the signals 261, 262,. .267.
  • the various execution units do not interfere with accessing as far as possible only independent cache areas via the various 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 If the system state (comparison mode / performance mode) changes, the cache can be automatically switched over by the mode signal 1000.
  • a bivalent mode signal 1000 is not sufficient. In this case, it is advantageous to perform the mode signal in a multi-valued fashion or to introduce another mode signal 2000, not shown in FIGS. 8-10.
  • 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, 2822, ... 2827, ... 2881,2882, .. 2887 the validity is then checked and
  • FIG. 11 shows a multiprocessor system (W500) with two execution units (W510a, W510b), a switchover and comparison unit (W520) and a dual port cache memory (W550).
  • the comparison unit (W520) signals via signal path W518 if an error has occurred in comparison mode.
  • the execution units are each connected via signal lines or buses (W512a, W512b) to the switching and comparison unit (W520), which in turn has two connections (W513a, W513b) to a dual port cache memory and two connections (W514a, W514b ) to two system interfaces (W535, W545).
  • the signals (W512a, W512b) correspond to the signals 211 and 221 from FIG. 2 and have the same or similar amount of data.
  • the dual port cache memory (W550) is connected via a connection 241 and an optional memory interface (W530) with a (main)
  • the system interfaces can be used to connect additional units of the processor system (W580), such as Coprocessors or timer units and peripherals (W590) such as digital outputs, D / A converters and communication controllers.
  • An execution unit can be implemented both as processor / core / CPU, as well as FPU (floating point unit), DSP (digital signal processor), coprocessor, ALU (Arithmetic logical Unit).
  • FIG. 11a the multiprocessor system (W500) of FIG. 11 is abstracted and shown for clarity without the system interfaces (W535, W545), the connections (W514a, W514b) and the units W580 and W590.
  • This multiprocessor system can be operated in at least two modes of operation, a compare mode VM and a performance mode PM.
  • FIG. 13 shows the internal switching state of the switching and comparison unit (W520) for write and read access to the cache memory in the performance mode.
  • the comparator (W522) of the switching and comparison device (W520) is deactivated, ie no data is compared.
  • a third possibility is to ignore at system level the status or error signal (W518, shown in FIG. 14) of the comparator. Furthermore, one can also interrupt the error signal itself. All options have in common that they create a state in the system that does not matter if two or more potentially matched data are different. If this state is reached by a measure in the comparator or its input or output signals, then the comparator is referred to as passive or disabled.
  • each execution unit is connected to one port of the dual port cache
  • Port Cache memory and thus a higher priority execution unit, i. it is prevented that is written from both execution units to the same memory cell or the same memory block simultaneously.
  • This priority can also be dynamic, e.g. be determined by the switching and comparison unit of the multiprocessor system or depending on the addressed memory area. Only when the preferred port the
  • Write operation may write the other port.
  • An access conflict eg a simultaneous write access of two execution units to the same memory cell or the same memory block, can be recognized and resolved as follows:
  • the signals in the signals 211 and 221 (corresponding to the signals 512a and 512b in FIG. 11) contained addresses 212 and 222 of the processing units 215 and 225 in an address comparator 251
  • the device 250 compared with each other and tested together with the control signals also transmitted in 211 and 221 for compatibility. If these addresses are the same, and if at least one of the addresses is to be accessed in writing, then there is a conflict.
  • the access of at least one port to the dual port RAM 230 is prevented by means of the control signals contained in the signals 213 or 223.
  • a cache miss i. if, in a read access of a first execution unit to the cache memory, the requested data or instruction is not included in the cache memory, the data or instruction must be transferred via the bus system from a program or data memory, such as main memory (FIG. W570 from FIG. 11).
  • the incoming data is forwarded to the execution unit that requested that data and is written to the cache in parallel along with the identifier and control bits. If, during the transmission of a memory block from the main memory into the cache memory, an address from the same memory block is addressed, for example, by a second execution unit, this is detected by the address comparator and this prevents the memory block from being re-transmitted from the main memory.
  • the switching and comparing unit (W520) is advantageously arranged between the execution units (W510a, W510b) and the dual port cache memory W550. This allows several advantageous in comparison mode
  • each execution unit is connected via the signal connections W512a and W512b to the switching and comparison unit (W520) and thus also to the comparator (W522) contained therein according to FIGS. 15 and 16.
  • FIG. 14 and FIG. 15 the internal shading of the switching and comparison unit is shown for two embodiments of a read access in comparison mode.
  • the switch (W525) is in the same position as in the performance mode, ie each of the execution units (W510a, W510b) is connected to one port of the dual-port cache.
  • Memory (W550) connected. Since the two execution units execute the same programs, program segments or commands in comparison mode, they also access the same memory addresses. First, the addresses can be checked by the comparator (W522) and the transfer of the addresses takes place only if they match. Furthermore, it is alternatively or additionally possible to read out the data via different ports of the cache memory
  • Dual port cache memory e.g. according to FIG. 3, in which at the same time read access can be made to the same memory cell via the two ports.
  • the changeover switch here designated W526, is in a different switching position.
  • W513a connection to the dual port cache memory occurs only if the access addresses routed to the comparator via the signal connections W512a and W512b are identical. If the comparator detects a discrepancy of the addresses, the memory access via the signal W517 and the delay and interruption device W519 can be prevented.
  • a configuration of the switch and compare unit (W520) for write access to the dual port cache memory in the compare mode In this case, the access addresses guided via the signal connections W512a and W512b to the comparator and the data to be written are compared. If coincident, only the data of one execution unit, in the embodiment shown, the data obtained via the connection W512a, is written into the dual port cache memory via a connection (W513a) and a port. In the event of a discrepancy of the addresses and / or data obtained via the connections W512a and W512b, in a first exemplary embodiment the access to the cache memory is made via the signal W517 and the delay and interrupt device
  • the switch W527 sets the signal connection W512b exclusively to the comparison W522.
  • the access addresses passed through the signal links W512a and W512b to the comparator and the data to be written are compared, and at the same time, the data obtained through a link (e.g., W512a) is written in a buffer memory W529.
  • the buffer memory W529 is supplied with information representing the comparison result.
  • the information stored in the buffer memory is written into the dual port cache memory via a connection (e.g., W513a) and a port.
  • the comparator detects a discrepancy, the data in the buffer memory is not released for write access and advantageously deleted. This results in the advantage that only valid or correct data is written into the cache, but no delay of the execution units takes place.
  • one of the two execution units writes the data to the cache memory.
  • a comparison of the addresses and / or data of the two execution units obtained via the connections W512a and W512b takes place in parallel with the writing or after the writing of the data into the cache. If the comparator detects a discrepancy, the written date in the cache must subsequently be declared invalid.
  • the cache memory is provided by the switching and comparison unit with information representing a comparison result via a comparison / error signal (W518 from FIG. 11a and FIGS. 14-17 or N170 from FIG. 12).
  • the already written date is then marked as invalid by setting a bit in a status or control register of the cache or by deleting information from the HIT table, or replaced with an old date if it is still in the cache or in the system is available.
  • the advantage of this embodiment is that the execution units are not delayed by the comparison of the addresses and / or data and no buffer memory in the switching and comparison unit is necessary.
  • FIG. 18 shows a multiprocessing system (W501) with two separate dual port cache memories W550c and W550d.
  • W550c for example, is an instruction cache accessed read-only by the execution units (W510a, W510b) via W513ac or W513bc
  • W550d is a data cache to which the execution units access reading and writing via W513ad or W513bd can.
  • Each cache has access to the (main) memory via the signal connection 241c and the memory access unit W530c or the signal connection 241d and the memory access unit W530d.
  • the multiprocessor system (W501) is shown abstracted in FIG. 18 for better clarity.
  • Units W580 and W590 and memory system W570 may be wholly or partially included in the multiprocessor system (W501) of FIG.
  • the characterizing features of the invention may also be applied to multiprocessor systems having more than two execution units. Changes are necessary mainly in the switching and comparison unit.
  • the dual port cache can be extended to a multi-port cache, as described for example in the exemplary embodiments illustrated in FIG. 9 and FIG.
  • the number of execution units of the multiprocessor system and the number of ports of the multi-port cache and the number of partial storage areas of the cache memory need not be identical.

Abstract

The invention relates to a method and a 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, switching means being provided and a switch-over between at least two operating modes being possible. The inventive device is provided with comparative means. A first operating mode corresponds to a comparative mode and a second operating mode corresponds to a performance mode. The invention is characterized in that a second memory or memory area is provided in the device, the device being configured as a cache memory system and being provided with at least two separate ports. The at least two processing units access identical or different memory cells of the second memory or memory area via these ports, the data and/or commands from the first memory system being stored temporarily in blocks and when switched over.

Description

Verfahren und Vorrichtung zur Speicherung von Daten und/oder Befehlen in einemMethod and device 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 Zwi- schenspeicher (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
Aus dem Stand der Technik sind MikroController mit wenigstens zwei integrierten Cores (CPUs) bekannt. Diese MikroController sind auch unter der Bezeichnung Dual-Core oder Multi-Microcontrollers with at least two integrated cores (CPUs) are known from the state of the art. These microcontrollers are also called dual-core or multi-
Core-Systeme bekannt. Dabei führen die wenigstens zwei Cores redundant und taktsynchron die gleiche Programme, Programmsegmente oder Befehle aus, die Ergebnisse der beiden Cores werden verglichen, und ein Fehler wird dann bei dem Vergleich auf Übereinstimmung erkannt werden. Im Folgenden wird diese Konfiguration eines Multi-Core Systems als Vergleichsmodus bezeichnet.Core systems known. The at least two cores execute the same programs, program segments or commands redundantly and clock-synchronously, the results of the two cores are compared, and an error will then be detected in the comparison for agreement. In the following, this configuration of a multi-core system is referred to as a comparison mode.
Dual-Core oder Multi-Core Architekturen werden in anderen Anwendungen auch zur Perfor- manz-Steigerung eingesetzt. Beide Cores führen unterschiedliche Programme, Programmsegmente und Befehle aus, wodurch sich eine Leistungssteigerung erzielen lässt, weshalb diese Konfiguration eines Multi-Core Systems als Leistungsmodus oder Performanzmodus bezeichnet wird. Dieses System wird auch als ein symmetrisches Multiprozessorsystem (SMP) bezeichnet. Eine Erweiterung dieser Systeme kann mittels einer Umschaltung erreicht werden, d.h. je nach Anwendungszweck des Multiprozessorsystem kann dieses in einem Vergleichsmodus oder in einem Performanzmodus betreiben werden. Im Vergleichsmodus werden die Ausgangsignale der Cores miteinander verglichen. Bei einer Differenz wird ein Fehlersignal ausgegeben. Im Performanzmodus arbeiten die beiden Cores als ein symmetrisches MehrprozessorsystemDual-core or multi-core architectures are also used in other applications to increase performance. Both cores execute different programs, program segments, and commands, which can improve performance, which is why this configuration of a multi-core system is called a performance mode or performance mode. This system is also referred to as a symmetric multiprocessor system (SMP). An extension of these systems can be achieved by means of a switching, ie depending on the purpose of the multiprocessor system, this can be operated in a comparison mode or in a performance mode. In comparison mode, the output signals of the cores are compared with each other. If there is a difference, an error signal is output. In performance mode, the two cores work as a symmetric multiprocessor system
(SMP) und führen unterschiedliche Programme, Programmsegmente oder Befehle aus. Die Vergleichseinheit ist in diesem Modus nicht aktiv. Dieser Erweiterung liegt die Annahme zugrunde, dass nicht alle Programmsegmente sicherheitskritisch sind und für diese die vorhandenen Komponenten nicht zur Fehlerentdeckung sondern zur Performanzsteigerung eingesetzt werden können.(SMP) and execute different programs, program segments or commands. The comparison unit is not active in this mode. This extension is based on the assumption that not all program segments are critical to safety and that the existing components can not be used to detect defects but to improve performance.
Zwischen diesen beiden Modi eines solchen Multiprozessorsystems mit wenigstens zwei Ausführungseinheiten kann, über Software gesteuert, dynamisch im Betrieb umgeschaltet werden.Between these two modes of such a multiprocessor system with at least two execution units can be controlled by software, dynamically switched during operation.
Mikroprozessoren werden ab einer bestimmten Taktfrequenz mit schnellen ZwischenspeichernMicroprocessors are starting from a certain clock frequency with fast buffers
(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. Caches sind in solchen Speichertechnologien realisiert, die einen schnellen Zugriff auf den Speicherinhalt ermöglichen und sind räumlich nahe am Prozessor angebracht. In einem Cache ist eine Teilmenge der Daten und/oder Befehle aus dem Hauptspeicher zwischengespeichert. Durch den Einsatz eines Cache-Speichers wird der langsame Zugriff auf einen großen (Haupt-) Speicher teilweise vermieden bzw. reduziert und der Prozessor muss dann nicht auf die verzögerte Bereitstellung der Daten durch den Hauptspeicher 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. Bei den aus dem Stand der Technik bekannten Multiprozessorsystemen ist es üblich, jeden Prozessor mit einem Cache oder bei Multi-Level Caches mit entsprechend mehreren hierarchisch gegliederten Caches auszurüsten. 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 (Per- formanzmodus) oder gleiche Programme, Programmsegmente oder Befehle abarbeiten und die Ergebnisse einem Vergleich unterziehen (Vergleichsmodus), so müssen die Daten bzw. Befehle in den parallelen Caches eines jeden Controllers beim Umschalten zwischen den Betriebsmodi entweder gelöscht werden, oder sie müssen beim Laden der Caches mit der entsprechenden In- formation des jeweiligen Betriebsmodus versehen werden, die vorzugsweise zusammen mit den(Caches) 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. Caches are implemented in such storage technologies that provide fast access to memory contents and are physically located close to the processor. A subset of the data and / or instructions are cached from main memory in a cache. The use of a cache memory partly avoids or reduces the slow access to a large (main) memory and then the processor does not have to wait for the delayed provision of the data by the main memory. 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. In the multiprocessor systems known from the prior art, it is customary to equip each processor with a cache or, in the case of multi-level caches, with correspondingly more hierarchically structured caches. 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 ( Comparison mode), the data or commands in the parallel caches of each controller must be either deleted when switching between the operating modes, or they must be provided when loading the caches with the corresponding information of the respective operating mode, preferably together with the
Daten abgespeichert wird.Data is stored.
Aufgabe der Erfindung ist es Mittel und Verfahren zur Verfügung zu stellen, die Größe des Caches zu optimieren und den Vorgang der Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus zu beschleunigen.The object of the invention is to provide means and methods to optimize the size of the cache and to accelerate the process of switching between a performance mode and a comparison mode.
Vorteile der ErfindungAdvantages of the invention
In einem Multiprozessorsystem, das während des Betriebs zwischen verschiedenen Betriebsmo- di umschalten kann, ist es von besonderem Vorteil, wenn nur ein gemeinsamer (ggf. hierarchisch gegliederter) Cache vorhanden ist. Jedes Datum oder jeder Befehl ist darin nur einmal abgelegt und der Zugriff darauf ist gleichzeitig möglich.In a multiprocessor system that can switch between different operating modes during operation, it is particularly advantageous if only one common (possibly hierarchically structured) cache is present. Every date or every command is stored in it only once and access is possible at the same time.
In einem Multiprozessorsystem mit mehreren Betriebsmodi ergeben sich durch den Einsatz ei- nes Dual Port Cache folgende Vorteile:In a multiprocessor system with several operating modes, the use of a dual port cache results in the following advantages:
Die Daten/Befehle müssen für die verschiedenen Ausführungseinheiten und/oder die verschiedenen Betriebsmodi nicht mehrfach in den Cache geholt und ggf. gepflegt werden. - A -The data / instructions do not have to be fetched several times into the cache for the different execution units and / or the different operating modes and possibly maintained. - A -
Pro Datum/Befehl muss hardwaremäßig nur ein Speicherplatz bereitgestellt werden, auch wenn dieses Datum bzw. dieser Befehl von mehreren Ausfiihrungseinheiten und/oder in mehreren Betriebsmodi benutzt wird.Only one memory space has to be provided per date / command, even if this date or command is used by several execution units and / or in several operating modes.
Die Daten/Befehle im Cache müssen nicht dahingehend unterschieden werden, ob sie in verschiedenen Betriebsmodi des Multiprozessorsystems benutzt werden.The data / instructions in the cache do not need to be differentiated as to whether they are used in different operating modes of the multiprocessor system.
Die Daten/Befehle im Cache müssen nicht dahingehend unterschieden werden, in welchen Betriebsmodi des Multiprozessorsystems sie bearbeitet werden und/oder in welchen Betriebsmodi sie in den Cache geladen bzw. geschrieben wurden und/oder von welchem Core sie angefordert bzw. geschrieben wurden.The data / instructions in the cache do not need to be distinguished in which operating modes of the multiprocessor system they are processed and / or in which modes of operation they have been cached or written and / or from which core they were requested or written.
Der Cache muss bei Wechsel des Betriebsmodus nicht gelöscht werden, damit müssen die Cache-Inhalte weniger oft geladen werden und die Zugriffe auf den Hauptspeicher werden redu- ziert. Eine Umschaltung kann dadurch schneller erfolgen als in Systemen, die mehrerer Caches haben.The cache does not have to be deleted when changing the operating mode, so the cache contents have to be loaded less often and the access to the main memory is reduced. Switching can be faster than in systems that have multiple caches.
Zwei Prozessoren können gleichzeitig zu den gleichen Daten/Befehlen im Cache lesend zugreifen.Two processors can simultaneously read to the same data / instructions in the cache.
Anstelle des „write through" Modus kann auch ein „write back" Modus für den Cache eingesetzt werden, 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 glei- chen Quelle liefert.Instead of the "write through" mode, a "write back" mode can be used for the cache, which is more time-saving, in particular because it is not always necessary to update the (main) memory but only when the data in the cache is overwritten; there are no consistency issues because the cache for both processors provides the data from the same source.
Vorteilhaft ist ein 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 beschrieben, wobei Umschaltmittel vorgesehen sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel vorgesehen sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, 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 und bei Umschaltung .Advantageously, a method is described 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, wherein switching means are provided and switched between at least two operating modes, wherein comparison means are provided and a first mode of operation corresponds to a comparison mode and a second mode of operation a performance mode, 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 about these Ports an access of the 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 buffered in blocks and when switching.
Vorteilhaft ist ein Verfahren beschrieben, 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.Advantageously, a method is described, 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.
Vorteilhaft ist ein Verfahren beschrieben,, dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der enable-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.Advantageously, a method is described, characterized in that an address decoder is provided which generates enable 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.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneh- ander unabhängigen Adressbereichen über die Auswahleinrichtungen mit mehreren Stufen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden.Advantageously, a method is described, characterized in that more than two ports are provided, selection devices being present and the access to the independent address areas being effected via the selection devices having a plurality of stages and for this purpose the enable signals being forwarded via these stages.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass es mindestens ein Modussignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.Advantageously, a method is described, characterized in that there is at least one mode signal which switches over the access possibilities of the different ports.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass es mindestens ein Konfigurationssignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.Advantageously, a method is described, characterized in that there is at least one configuration signal which switches the access possibilities of the different ports.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass beide Verarbeitungseinheiten einen Lesezugriff vorgeben. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, das bei Vorgabe des Lesezugriffs durch beide Verarbeitungseinheiten den Daten und/oder Befehle zugeordnete Kennuα- gen oder Zugriffsadressen verglichen werden und nur bei Übereinstimmung ein Lesezugriff auf den Cache durchgeschaltet wird.Advantageously, a method is described, characterized in that both processing units specify a read access. Advantageously, a method is described, characterized in that when specifying the read access by both processing units the data and / or commands associated Kennuα- conditions or access addresses are compared and only if a read access to the cache is switched through.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei Vorgabe eines Lesezugriffs beide Verarbeitungseinheiten auf das Cachespeichersystem zugreifen.Advantageously, a method is described, characterized in that, when a read access is specified, both processing units access the cache system.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die beim Lesezugriff durch beide Verarbeitungseinheiten gelesenen Daten und/oder Befehle verglichen werden und bei Abweichung ein Signal, insbesondere ein Fehlersignal erzeugt wird.Advantageously, a method is described, characterized in that the read during read access by both processing units data and / or commands are compared and in case of deviation, a signal, in particular an error signal is generated.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle verglichen werden und nur dann eingeschrieben werden, wenn diese übereinstimmen.Advantageously, a method is described, characterized in that in a write access to the second memory or memory area to be written data and / or commands are compared and are only written if they match.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff bis die Daten und/oder Befehle verglichen sind die Verarbeitungseinheiten angehalten werden.Advantageously, a method is described, characterized in that in a write access until the data and / or commands are compared, the processing units are stopped.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Daten und /oder Befehle in einen Pufferspeicher oder Pufferspeicherbereich geschrieben werden und erst nach erfolgreichem Vergleich in den zweiten Speicher oder Speicherbereich übernommen werden.Advantageously, a method is described, characterized in that the data and / or commands are written to a buffer memory or buffer memory area and are taken over only after successful comparison in the second memory or memory area.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle nur von einer Verarbeitungseinheit geschrieben werden und abhängig von einem parallel ausgeführten Vergleich bei Unterscheidung die eingeschriebenen Daten und/oder Befehle gesperrt oder ungültig erklärt werden.Advantageously, a method is described, characterized in that in a write access to the second memory or memory area to be written data and / or commands are written only by a processing unit and depending on a parallel comparison in discrimination the registered data and / or commands disabled or invalidated.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Sperrung oder Un- gültigerklärung durch Setzen oder Rücksetzen wenigstens eines Bits erfolgt. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Sperrung oder Un- gültigerklärung durch Überschreiben mit einem anderen, insbesondere alten Datum und/oder Befehl erfolgt.Advantageously, a method is described, characterized in that the blocking or invalidation is effected by setting or resetting at least one bit. Advantageously, a method is described, characterized in that the blocking or invalidation is effected by overwriting with another, in particular old date and / or command.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Streichen einer entsprechenden Eintragung einer Inhaltstabelle des zweiten Speichers oder Speicherbereichs erfolgt.Advantageously, a method is described, characterized in that the blocking or invalidation is effected by deleting a corresponding entry of a content table of the second memory or memory area.
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, wobei Umschaltmittel enthalten sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel enthalten sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus ei- nem Performanzmodus entspricht, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiterA device for storing data and / or commands in a computer system having at least two processing units and at least one first memory or storage area for data and / or commands, wherein switching means are included and switched between at least two operating modes, wherein comparison means are included and is advantageous a first operating mode corresponds to a comparison mode and a second operating mode corresponds to a performance mode, characterized in that in the device a second
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 Be- fehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.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 via these ports access the at least two processing units to the same or different memory cells of the second memory or memory area, wherein the data and / or Be - missing from the first memory system Cached blockwise.
Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass im Cachespeichersystem Daten und Befehle getrennt abgespeichert werden und so ein Datenspeicher oder Datenspeicherbereich und ein Befehlsspeicher oder Befehlsspeicherbereich vorgesehen sind. Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass der zweiteAlso advantageous is such a device, characterized in that data and commands are stored separately in the cache memory system and so a data memory or data storage area and an instruction memory or command memory area are provided. Also advantageous is such a device, characterized in that the second
Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.Memory or memory area is divided into at least two address areas that can be read or written independently.
Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass ein Adressde- coder vorhanden ist, der enable-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.Furthermore, such an apparatus is advantageous, characterized in that an address decoder is provided which generates enable signals which, in the case of simultaneous access to one Address range through multiple ports allow only one port access and prevent the access of the at least one other ports or delay, in particular by wait signals.
Vorteilhaft ist weiterhin eine solche Vorrichtung, 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 mehreren Sti- fen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden.Furthermore, such a device is advantageous, characterized in that more than two ports are provided, with selection devices being present and the access to the independent address areas being effected via the selection devices with multiple ports and for this purpose the enable signals being forwarded via these stages ,
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 Multiprozessorsystem mit zwei Ausführungseinheiten gezeigt, mit Mitteln zum Vergleich von Daten der Ausführungseinheiten und Mitteln zur Um- Schaltung zwischen wenigstens zwei Betriebsmodi des Multiprozessorsys- tems.FIG. 1 shows a multiprocessor system with two execution units, with means for comparing data of the execution units and means for switching between at least two operating modes of the multiprocessor system.
In Figur 2 ist ein Dual Port Cache Speicher für Daten und/oder Befehle gezeig, der einen internen Dual Port Speicher, zwei Ports zum Anschluss jeweils einer Ausführungseinheit und ein Interface zum Daten-/Adressbus des Multiprozessorsys- tems hat.FIG. 2 shows a dual-port cache memory for data and / or commands, which has an internal dual-port memory, two ports for connecting one execution unit each and an interface to the data / address bus of the multiprocessor system.
In Figur 3 ist ein Dual Port Cache mit weiteren Details gezeigt.FIG. 3 shows a dual port cache with further details.
In Figur 4 ist eine Einrichtung und ein Verfahren zur Adresstransformation in einem Dual Port Cache gezeigt.FIG. 4 shows a device and a method for address transformation in a dual port cache.
In Figur 5 ist eine Aufteilung des internen Dual Port Speichers in zwei Teilbereiche ge- zeigt, die unabhängig voneinander betrieben werden können und mit je zwei separaten enable-Signalen von jedem Port im Zugriff gesteuert werden.FIG. 5 shows a division of the internal dual-port memory into two subareas which can be operated independently of one another and are accessed by two separate enable signals from each port.
In Figur 6 ist eine Realisierung eines Dual Port Speicherbereiches durch einen SingleFIG. 6 shows a realization of a dual-port memory area by a single
Port Speicher mittels Portumschaltung gezeigt. In Figur 7 ist die Einteilung eines Multiple Port Speichers mit p Ports in mehrere Teil-Port Memory shown by port switching. FIG. 7 shows the division of a multiple port memory with p ports into a plurality of sub-ports.
Adressbereiche l...q, die parallel bearbeitet werden können, gezeigt.Address ranges l ... q that can be processed in parallel are shown.
In Figur 7a ist eine Realisierung eines Multi Port Speicherbereiches durch einen Single Port Speicher mittels Portumschaltung gezeigt. In Figur 8 ist eine Aufteilung der RAM-Bereiche für die Ports in Abhängigkeit von einem Systemzustand oder einer Konfiguration gezeigt.FIG. 7 a shows a realization of a multi-port memory area by a single-port memory by means of a port switchover. FIG. 8 shows a breakdown of the RAM areas for the ports as a function of a system state or a configuration.
In Figur 9 ist Aufteilung eines multi port RAMs in Bereiche in Abhängigkeit von einemFIG. 9 shows a division of a multi-port RAM into areas as a function of one
Systemzustand oder einer Konfiguration durch Generierung der entsprechende Enable-Signale gezeigt. In Figur 10 ist die Aufteilung eines multi port RAMs in Bereiche mit mehrfachassoziativem Zugriff gezeigt.System state or a configuration by generating the corresponding enable signals shown. FIG. 10 shows the division of a multi-port RAM into areas with multiple associative access.
In Figur 11/1 Ia ist ein Multiprozessorsystem mit zwei Ausführungseinheiten und einem Dual Port Cache gezeigt, das vorzugsweise symmetrisch aufgebaut ist.In Figure 11/1 Ia a multiprocessor system with two execution units and a dual port cache is shown, which is preferably constructed symmetrically.
In Figur 12 ist ein allgemeiner Fall einer Umschalt- und Vergleichseinheit, auch für die Verwendung für mehr als zwei Ausführungseinheiten, gezeigt.FIG. 12 shows a general case of a switching and comparing unit, also for use for more than two execution units.
In Figur 13 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit für Schreibund Lesezugriffe auf den Cache-Speicher im Performanzmodus gezeigt.FIG. 13 shows the internal switching state of the switching and comparison unit for write and read accesses to the cache memory in the performance mode.
In Figur 14 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit für Lesezugriffe auf den Cache-Speicher in einer ersten Ausführung des Vergleichs- modus gezeigt.FIG. 14 shows the internal switching state of the switching and comparison unit for read accesses to the cache memory in a first embodiment of the comparison mode.
In Figur 15 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit für Lesezugriffe auf den Cache-Speicher in einer zweiten Ausführung des Vergleichsmodus gezeigt.FIG. 15 shows the internal switching state of the switching and comparison unit for read accesses to the cache memory in a second embodiment of the comparison mode.
In Figur 16 ist eine Konfiguration einer Umschalt- und Vergleichseinheit mit Unterbre- chungseinrichtung für schreibenden Zugriff auf den Cache-Speicher im Vergleichsmodus gezeigt.FIG. 16 shows a configuration of a switching and comparison unit with write access interrupting device to the cache memory in comparison mode.
In Figur 17 ist eine Konfiguration einer Umschalt- und Vergleichseinheit mit Puffereinrichtung für schreibenden Zugriff auf den Cache-Speicher im Vergleichsmodus gezeigt. In Figur 18 ist ein Multiprozessorsystem mit zwei Ausfiihrungseinheiten und mit getrennten Dual Port Cache-Speichern für Befehle und Daten gezeigt. Referring to Fig. 17, there is shown a configuration of a switching and comparing unit with buffering means for writing access to the cache memory in the comparing mode. Figure 18 shows a multiprocessor system with two execution units and with separate dual port cache memories for instructions and data.
Beschreibung der AusfiihrungsbeispieleDescription of the exemplary embodiments
Als Ausfiihrungseinheit kann im Folgenden sowohl ein Prozessor, ein Core, eine CPU, als auch eine FPU (Floating Point Unit), ein DSP (Digitaler Signalprozessor), ein Coprozessor oder eine ALU (Arithmetic logical Unit) bezeichnet werden.As an execution unit, a processor, a core, a CPU, as well as an FPU (floating point unit), a DSP (digital signal processor), a coprocessor or an ALU (arithmetic logical unit) may be referred to below.
Die Erfindung bezieht sich auf ein in Figur 1 dargestelltes Multiprozessorsystem (WlOO) mit wenigstens zwei Ausführungseinheiten (Wl 10a, Wl 10b), einer Vergleichseinheit (W120) und einer Umschalteinheit (Wl 50). Die Ausführungseinheiten sind jeweils über Signalleitungen bzw. Busse (Wl 12a, Wl 12b) mit der Vergleichseinheit (W120) und der UmschalteinheitThe invention relates to a multiprocessor system (W100) shown in FIG. 1 having at least two execution units (W11a, W10b), a comparison unit (W120) and a switching unit (W150). The execution units are each via signal lines or buses (Wl 12a, Wl 12b) with the comparison unit (W120) and the switching unit
(W 150) verbunden. Die Umschalteinheit (W 150) hat wenigstens zwei Ausgänge zu zwei Systemschnittstellen (W130a, W130b). Über diese Schnittstellen können Speicher oder Peripherals wie Digitale Ausgänge, D/A- Wandler, Kommunikationscontroller angesteuert werden. Eine Ausführungseinheit kann dabei sowohl als Prozessor/Core/CPU, als auch als FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor, ALU (Arithmetic logical Unit) realisiert sein.(W 150) connected. The switching unit (W 150) has at least two outputs to two system interfaces (W130a, W130b). Memory or peripherals such as digital outputs, D / A converters and communication controllers can be controlled via these interfaces. An execution unit can be implemented both as processor / core / CPU, as well as FPU (floating point unit), DSP (digital signal processor), coprocessor, ALU (Arithmetic logical Unit).
Dieses Multiprozessorsystem kann in wenigstens zwei Betriebsmodi betrieben werden, einem Vergleichsmodus VM und einem Performanzmodus PM.This multiprocessor system can be operated in at least two modes of operation, a compare mode VM and a performance mode PM.
Im Performanzmodus PM werden in den unterschiedlichen Ausführungseinheiten unterschiedliche Befehle, Programmsegmente oder Programme parallel ausgeführt. In diesem Betriebsmodus ist die Vergleichseinheit deaktiviert. Die Umschalteinheit (Wl 50) ist in diesem Betriebsmodus so konfiguriert, dass jede Ausführungseinheit exklusiv mit einer der Systemschnittstellen (W130a, W130b) verbunden ist. Über die Systemschnittstellen kann ein Resultat einer Ausfih- rungseinheit in einen Speicher (W 170) geschrieben werden oder auf einen Peripheriebaustein (W180, W190) ausgegeben werden. Ein Peripheriebaustein kann z.B. ein Analog-Digital- Wandler oder ein Kommunikationscontroller eines Kommunikationssystems (z.B. SPI, LIN, CAN, FlexRay) sein. Zur Deaktivierung der Vergleichseinheit gibt es mehrere Möglichkeiten. Zum einen kann man an den Vergleicher ein Signal führen (z.B. über die Verbindung W125), mit dem dieser aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einzufügen, die dies durchführen kann. Eine weitere Möglichkeit ist es, dem Vergleicher keine zu vergleichenden Daten zuzuführen. Eine dritte Möglichkeit ist es, auf Systemebene das Fehlersignal (Wl 55) desIn the performance mode PM, different commands, program segments or programs are executed in parallel in the different execution units. In this operating mode, the comparison unit is deactivated. The switching unit (Wl 50) is configured in this operating mode so that each execution unit is exclusively connected to one of the system interfaces (W130a, W130b). The system interfaces can be used to write a result of an execution unit into a memory (W 170) or to output it to a peripheral block (W180, W190). A peripheral module may be, for example, an analog-digital converter or a communication controller of a communication system (eg SPI, LIN, CAN, FlexRay). There are several options for deactivating the comparison unit. On the one hand you can lead to the comparator a signal (eg via the connection W125), with which this is activated or deactivated. For this purpose, an additional logic is inserted in the comparator, which can do this. Another possibility is to provide the comparator with no comparative data. A third possibility is, at system level, the error signal (Wl 55) of the
Vergleichers zu ignorieren. Weiter kann man auch das Fehlersignal selbst unterbrechen. Allen Möglichkeiten ist gemeinsam, dass sie im System einen Zustand erzeugen, bei dem es keine Rolle spielt, wenn zwei oder mehr Daten, die potenziell verglichen werden, verschieden sind. Wird dieser Zustand durch eine Maßnahme im Vergleicher oder dessen Ein- oder Ausgangssig- nalen erreicht, dann wird der Vergleicher als passiv oder deaktiviert bezeichnet.Ignore comparator. Next you can also interrupt the error signal itself. All options have in common that they create a state in the system that does not matter if two or more potentially matched data are different. If this state is reached by a measure in the comparator or its input or output signals, then the comparator is referred to as passive or deactivated.
Im Vergleichsmodus VM werden in beiden Ausführungseinheiten (Wl 10a, Wl 10b) gleiche o- der gleichartige Befehle, Programmsegmente oder Programme abgearbeitet. Über die Signalleitungen bzw. Busse (Wl 12a, Wl 12b) werden die Ausgangssignale der Ausführungseinheiten an die Vergleichseinheit (W 120) und an die Umschalteinheit (W 150) geführt. In der Vergleichseinheit werden die beiden Daten auf Übereinstimmung geprüft. Nach erfolgtem Vergleich wird der Umschalteinheit über ein Statussignal (W125) mitgeteilt, ob diese eines der übereinstimmenden Ergebnisse an eine der Systemschnittstellen ausgeben darf oder ob sie aufgrund einer erkannten Diskrepanz der Ergebnisse das Signal sperren muss. In diesem Fall kann von der Vergleichseinheit ein optionales Fehlersignal (Wl 55) ausgegeben werden. Dieses Fehlersignal kann anstatt von der Vergleichseinheit auch von der Umschalteinheit ausgegeben werden (Wl 56). Die Vergleichseinheit (W120) und die Umschalteinheit (Wl 50) können auch zu einer kombinierten Umschalt- und Vergleichseinheit (W520) zusammengefasst werden.In comparison mode VM, the same or similar commands, program segments or programs are executed in both execution units (W10a, W10b). Via the signal lines or buses (Wl 12a, Wl 12b), the output signals of the execution units are fed to the comparison unit (W 120) and to the switching unit (W 150). In the comparison unit, the two data are checked for conformity. After the comparison has been made, the changeover unit is informed via a status signal (W125) whether it is allowed to output one of the matching results to one of the system interfaces or whether it has to block the signal due to a recognized discrepancy of the results. In this case, an optional error signal (Wl 55) can be output by the comparison unit. This error signal can also be output by the switching unit instead of the comparison unit (Wl 56). The comparison unit (W120) and the switchover unit (Wl 50) can also be combined into a combined switchover and comparison unit (W520).
Ein allgemeiner Fall der Umschalt- und Vergleichskomponente, auch für die Verwendung für mehr als zwei Ausführungseinheiten, ist in Figur 12 gezeigt. Von den n zu berücksichtigenden Ausführungseinheiten gehen n Signale N 140,..., N14n an die Umschalt- und Vergleichskomponente W520. Diese kann bis zu n Ausgangssignale N160,..., N16n aus diesen Eingangssignalen erzeugen. Im einfachsten Fall, dem "reinen Performanzmodus", werden alle Signale N14i auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen gesetzten Grenzfall, dem "reinen Vergleichsmodus" werden alle Signale N 140,..., N14n nur auf genau eines der Ausgangssignale N16i geleitet. In einem System mit n Ausfiihrungseinheiten und n > 2 sind mehr als nur zwei Betriebsmodi denkbar. Anhand Fig.12 lässt sich darlegen, wie die verschiedenen denkbaren Modi entstehen können. Dazu ist in dieser Figur die logische Komponente einer Schaltlogik Nl 10 enthalten. Diese legt zunächst fest, wie viele Ausgangssignale es überhaupt gibt. Weiter legt die Schaltlogik Nl 10 fest, welche der Eingangssignale zu welchem der Ausgangssignale beitragen. Dabei kann ein Eingangssignal zu genau einem Ausgangssignal beitragen. In mathematischer Form anders formuliert ist also durch die Schaltlogik eine Funktion definiert, die jedem Element der Menge {N140,..., N14n} ein Element der Menge {N160,..., N16n} zuordnet.A general case of the switching and comparison component, also for use with more than two execution units, is shown in FIG. Of the n execution units to be considered, n signals N140, ..., N14n go to the switching and comparison component W520. This can generate up to n output signals N160, ..., N16n from these input signals. In the simplest case, the "pure performance mode", all signals N14i are directed to the corresponding output signals N16i. In the opposite limit case, the "pure comparison mode", all signals N 140,..., N14n are only routed to exactly one of the output signals N16i. In a system with n execution units and n> 2, more than just two operating modes are conceivable. With reference to FIG. 12, it is possible to explain how the various conceivable modes can arise. For this purpose, the logical component of a switching logic Nl 10 is included in this figure. This first determines how many output signals there are. Furthermore, the switching logic Nl 10 determines which of the input signals contribute to which of the output signals. An input signal can contribute to exactly one output signal. In other words, in terms of mathematical form, the circuit logic defines a function that assigns an element of the set {N160, ..., N16n} to each element of the set {N140, ..., N14n}.
Die Verarbeitungslogik N 120 legt dann zu jedem der Ausgänge N16i fest, in welcher Form die Eingänge zu diesem Ausgangsignal beitragen. Um beispielhaft die verschiedenen Variationsmöglichkeiten zu beschreiben, sei ohne Beschränkung der Allgemeinheit angenommen, dass der Ausgang N 160 durch die Signale N141, ..., N 14m erzeugt wird. Falls m = 1 entspricht dies eh- fach einer Durchschaltung des Signals, falls m= 2 dann werden die Signale N141, N142 verglichen. Dieser Vergleich kann synchron oder asynchron durchgeführt werden, er kann bitweise oder nur auf signifikante Bits oder auch mit einem Toleranzband durchgeführt werden.The processing logic N 120 then determines to each of the outputs N16i how the inputs contribute to that output signal. By way of example, to describe the various possible variations, it is assumed without loss of generality that the output N 160 is generated by the signals N141, ..., N 14m. If m = 1, this simply means that the signal is switched through, if m = 2 then the signals N141, N142 are compared. This comparison can be performed synchronously or asynchronously, it can be performed bitwise or only on significant bits or even with a tolerance band.
Die Konfiguration der Umschalt- und Vergleichseinheit (W520) ist je nach Priorität der Sys- temkomponenten abhängig vom Betriebsmodus des Multiprozessorsystems oder definiert diesen. Um innerhalb des Systems eine konsistente Information über den Betriebsmodus sicherai- stellen und diesen ggf. externen Einheiten mitzuteilen, ist es vorteilhaft, die Information über den Betriebsmodus in einer der Systemkomponenten zu identifizieren und in einem oder mehreren Signalen zur Verfügung zu stellen.Depending on the priority of the system components, the configuration of the switchover and comparison unit (W520) depends on or defines the operating mode of the multiprocessor system. In order to ensure consistent information about the operating mode within the system and, if necessary, to communicate this to external units, it is advantageous to identify the information about the operating mode in one of the system components and to make it available in one or more signals.
In einer bevorzugten Ausführung kann dieses Signal in der Umschalt- und Vergleichseinheit erzeugt werden und als Modussignal Nl 50 anderen Teilen des Systems zur Verfügung gestellt werden. Darüber hinaus ist ein Fehlersignal N 170 in dieser Figur eingezeichnet. Das optionale Fehlersignal wird von der Fehlerschaltungslogik N130, die die Fehlersignale sammelt, generiert und ist entweder eine direkte Weiterleitung der Einzelfehlersignale oder eine Bündelung der darin enthaltenen Fehlerinformation. Das Modussignal Nl 50 ist optional, seine Verwendung außerhalb dieser Komponente kann aber an vielen Stellen vorteilhaft verwendet werden. Die Kombination der Information der Schaltlogik Nl 10 (d.h. die o. g. Funktion) und der Verarbeitungslogik (d.h. die Festlegung der Vergleichsoperation pro Ausgangssignal, d.h. pro Funktionswert) ist die Modusinformation und diese legt den Betriebsmodus des Multiprozessorsys- tems fest bzw. spiegelt diesen wider. Diese Information ist im allgemeinen Fall natürlich mehr- wertig, d.h. nicht nur über ein logisches Bit darstellbar. Nicht alle theoretisch denkbaren Modi sind in einer gegebenen Implementierung sinnvoll, man wird vorzugsweise die Zahl der erlaubten Modi einschränken. Das Modussignal bringt dann die relevante Modusinformation nach außen. Eine HW-Implementierung ist vorzugsweise so dargestellt, dass das extern sichtbare Modussignal konfiguriert werden kann. Vorzugsweise sind ebenfalls die Verarbeitungslogik und die Schaltlogik konfigurierbar gestaltet. Vorzugsweise sind diese Konfigurationen aufeinander abgestimmt. Alternativ kann man auch nur oder ergänzend Änderungen des Modussignals nach außen geben. Dies hat insbesondere in einer Zweierkonfiguration Vorteile.In a preferred embodiment, this signal can be generated in the switching and comparison unit and made available as a mode signal NI 50 to other parts of the system. In addition, an error signal N 170 is shown in this figure. The optional error signal is generated by fault circuit logic N130, which collects the error signals, and is either a direct forwarding of the single error signals or a bundling of the error information contained therein. The mode signal Nl 50 is optional, but its use outside of this component can be used to advantage in many places. The Combining the information of the switching logic NI 10 (ie the above-mentioned function) and the processing logic (ie the determination of the comparison operation per output signal, ie per function value) is the mode information and this defines or reflects the operating mode of the multiprocessor system. In the general case, this information is of course multi-valued, ie not representable only via a logical bit. Not all the theoretically conceivable modes are useful in a given implementation, it is preferable to restrict the number of modes allowed. The mode signal then brings the relevant mode information to the outside. An HW implementation is preferably shown so that the externally visible mode signal can be configured. Preferably, the processing logic and circuitry are also configured to be configurable. Preferably, these configurations are coordinated. Alternatively, one can give only or additionally changes of the mode signal to the outside. This has advantages especially in a two-configuration.
Gemäß den kennzeichnenden Merkmalen des Anspruchs 1 wird in der vorliegenden Erfindung der Einsatz eines Dual Port Cache-Speichers in einem Multiprozessorsystem mit wenigstens zwei Ausführungseinheiten vorgeschlagen. Besonders vorteilhaft ist eine solche Konfiguration dann, wenn das Multiprozessorsystem zwischen wenigstens zwei Betriebsmodi, beispielsweise dem oben beschriebenen Vergleichsmodus und dem Performanzmodus, umschalten kann.According to the characterizing features of claim 1, the present invention proposes the use of a dual port cache memory in a multiprocessor system having at least two execution units. Such a configuration is particularly advantageous if the multiprocessor system can switch between at least two operating modes, for example the comparison mode described above and the performance mode.
In Figur 2 ist ein Dual Port Cache 200 gezeigt, der zu wesentlichen Teilen aus einem Dual PortFIG. 2 shows a dual port cache 200, which essentially consists of a dual port
RAM (dpRAM, 230), einer Buszugriffssteuerung 240 und einer Einheit 250, dieu. a. eine Ad- ressdecodierung enthält, besteht. Der dpRAM 230 ist vorzugsweise mit zwei voneinander unabhängigen Adressdecodern, zwei Daten Schreib-/Lese- Stufen und im Unterschied zu einer einfe- chen Speicherzellen-Matrix auch mit duplizierten Wort- und Bitleitungen versehen, so dass zu- mindest 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 zugreifbar 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 Ausführungseinheiten 215 und 225 vornehmen und optional die Adressen transformieren. Die Ausführungseinheiten 215 und 225 entsprechen dabei in einem bevorzugten Ausführungsbeispiel den Ausführungseinheiten Wl 10a und Wl 10b aus Figur 1. Die Da- ten werden beim Lesen aus dem Cache-Speicher 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 verbinden ist, die die Verbindung zu einem hier nicht dargestellten (Haupt-)Speicher oder zu einem Cache der nächsten Stufe herstellen.RAM (dpRAM, 230), a bus access controller 240 and a unit 250, the. a. an address decoding contains. The dpRAM 230 is preferably provided with two independent address decoders, two data read / write stages and, in contrast to a single memory cell matrix, also with duplicated word and bit lines, so that at least the read operation for any memory cells of the dpRAMs from 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 are independent can be used by one another without considering how much time is needed to complete a request to read or write from that port, ie, how long it takes for the requested read or write operation to interact with requests from that port another port is completed. The two ports of the dpRAM are via the signals 201 and 202 with the devices 210 and 220, respectively which perform an examination of the incoming addresses, data and control signals 211 and 221, respectively, of independent execution units 215 and 225 and optionally transform the addresses. In a preferred embodiment, the execution units 215 and 225 correspond to the execution units Wl 10a and Wl 10b from FIG. 1. Depending on the port, the data are read from the cache via 201 through 210 to 211 or 202 through 220 to 221 output in the reverse direction of the execution units in the cache memory. Both ports of the dpRAM are connected via the 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 3 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 mi- einander verglichen und zusammen mit den in 211 und 221 ebenfalls übermittelten Steuersignalen 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 Ausführungseinheiten auf die gleiche Adresse schreiben wollen oder dass eine Ausführungseinheit schreibt während die andere von der gleichen Adresse lesen will.In Figure 3, 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 250 m in an address comparator 251 of the device and checked for compatibility together with the control signals 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 execution units want to write to the same address or that one execution 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 Da- ten/Befehle zugegriffen werden kann. Je nach Adressierungsmodus wird eine oder werden mehrere Blockadressen ausgewählt, an denen das von der Ausführungseinheit adressierte 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-The cache may be partially or fully associative, i. The data can be stored in 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 at which the data addressed by the execution unit is searched for 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). In the case of coincidence and after the additional validation with the help of the control bits likewise stored in the cache for each block (for example valid bits, dirty bits and process bits).
ID) wird ein Cache Hit Signal erzeugt, das die Gültigkeit des Datums anzeigt. Zur Adresstransformation wird vorzugsweise eine Tabelle eingesetzt, die in einer in Figur 2 dargestellten Speichereinheit 214 bzw. 224 (Register oder RAM, auch als TAGRAM 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 beschrieben.ID), a cache hit signal is generated indicating the validity of the date. For the address transformation, a table is preferably used which is arranged in a memory unit 214 or 224 (register or RAM, also referred to as TAGRAM) shown in FIG. 2 and is located in the 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 4 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. Als Block bezeichnet man dabei die Anzahl der Bytes, die im Falle eines Cache Miss (Fehlen der erfordσ- lichen Daten im Cache) gemeinsam aus dem (Haupt-) 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. 4, the significant address bits (index address) for the table are used as the address and the content is the access address of the dpRAM. A block is the number of bytes which, in the case of a cache miss (lack of required data in the cache), are jointly fetched from the (main) 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. Diese Prfa- rität kann auch dynamisch, z.B. von der Umschalt- und Vergleichseinheit des Multiprozessor- system oder abhängig vom adressierten Speicherbereich erfolgen. 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 Speicher- zelle vom jeweils anderen Port gelesen wird, oder die Leseoperation kann verzögert werden, indem der Prozessor mit Lesewunsch solange angehalten wird, bis die Schreiboperation abgeschlossen ist. Dazu ist ein in Figur 3 dargestellter Adresscomparator aller Adressbits (251) mit einem entsprechenden Arbiter 252 vorgesehen, der auch die Steuersignaleder 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 drei Signalzustände einnehmen: enable, wait, equal. Für einen reinen Instruktionscache ist ein Schreibzugriff nicht notwendig; in diesem Fall reicht ein Signalzustand "equal" für die Ausgangssignale 213 und 223 aus.For the writing process, for example, one of the two ports is set to a higher priority, ie it is prevented that two ports are simultaneously written. This precision can also be performed dynamically, for example by the switching and comparison unit of the multiprocessor system or depending on the addressed memory area. 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 delayed by pausing the read-to-write processor until the write operation is complete. For this purpose, an address comparator of all address bits (251) shown in FIG. 3 is included a corresponding arbiter 252 which also evaluates the control signals of the processors and forms the output signals 213 and 223 which control these operations. The output signals 213 and 223 can each occupy three signal states in an advantageous embodiment: enable, wait, equal. 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 zu der Ausfüh- rungseinheit weitergeleitet, die diese Daten angefordert hat und werden parallel zusammen mit der Kennung und den Controlbits in den Cache geschrieben. Auch hier verhindert der Adress- comparator 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 Lesens über beide Ports nur von den signifikanten Ad- ressbits gebildet, weil immer der gesamte Block aus dem Speicher geholt wird. Erst wenn derIn 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 execution unit that requested that data and is written to the cache in parallel along with the identifier and control bits. Again, the address comparator prevents the data from being recalled from the memory if there is no hit, but a signal equal (constituent or state of 213 and 223) is indicated by the address comparator. In the case of reading via both ports, the equal signal is formed only by the significant address bits because the entire block is always fetched from the memory. Only when the
Block im Cache gespeichert ist, kann die wartende Ausführungseinheit auf den Cache zugreifen.Block is stored in the cache, the waiting execution unit can access the cache.
In einer weiteren vorteilhaften Ausführung werden zwei getrennte Dual Port Caches für Daten und für Befehle/Instruktionen vorgesehen, wobei im Instruktionscache üblicherweise keine Schreibvorgänge vorzusehen sind. Der Adress-Comparator prüft in diesem Fall immer nur aufIn a further advantageous embodiment, two separate dual port caches for data and for instructions / instructions are provided, wherein in the instruction cache usually no write operations are provided. The address comparator always checks in this case only
Gleichheit der signifikanten Adressbits und stellt das entsprechende Steuersignal "equal" in den Signalen 213 bzw. 223 bereit.Equality of the significant address bits and provides the corresponding control signal "equal" in the signals 213 and 223, respectively.
In einem weiteren Ausführungsbeispiel wird der gleichzeitige Lese-Zugriff von beiden Ports auf den internen Speicher nur dann uneingeschränkt funktionieren, 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 kam der Cache in mehreren Teilspeicherbereichen realisiert werden, die unabhängig voneinander betrieben werden kön- nen. Jeder Teilspeicher ermöglicht über enable-Signale nur die Abarbeitung eines Ports. In Figur 5 ist ein solcher Speicher 230 gezeigt, der zwei Teilspeicherbereiche 235 und 236 beinhaltet. In dem hier gezeigten Ausführungsbeispiel werden aus einem Adressbit A die zwei Enable- Signale E0 und Ei gebildet, und zwar so, dass fiir den Fall A=O gilt: E0=I und Ei=O; und fiir den Fall A1=I gilt: E0=O und Ei=I . In den Signalen 233 und 234 sind in diesem Fall die beiden e- nable-Signale und die niederwertigen Adressbits A i ... A0 enthalten.In another embodiment, the simultaneous read access from both ports to the internal memory will only work fully if the requested data is in different address ranges that allow concurrent access. This can be saved in the hardware implementation expenses, because not all access mechanisms must be duplicated in memory. For example, the cache has been implemented in several sub-memory areas that can be operated independently of each other. Each sub-memory enables only the processing of a port via enable signals. In Figure 5, such a memory 230 is shown, which includes two partial storage areas 235 and 236. In the exemplary embodiment shown here, an address bit A becomes the two enable signals. Signals E 0 and Ei are formed in such a way that for the case A = O, E 0 = I and Ei = O; and for the case A 1 = I, E 0 = O and Ei = I. In the signals 233 and 234 in this case, the two e- nable signals and the low-order address bits A i ... A 0 are included.
Für ein weiteres Ausfiihrungsbeispiel mit vier Teilspeichern können die 4 enable-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 enable-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 enable 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 enable signals E 0 to E 3 corresponding to the binary significance in accordance with Table 1.
Für die in Figur 5 gezeigten Teilspeicher 235 und 236 ist in Figur 6 ein Ausfiihrungsbeispiel 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 Hilfe el- nes Multiplexers 275 vorgenommen, abhängig von den enable-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. 5, 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 accomplished by a control circuit 270 by means of a multiplexer 275, depending on the enable 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 Cache-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, either in the units 275 nor the comparison must be valid and the cache-hit signal forwarded to the port or all data via the port 5331 and the signal 233 to 231 or over the Port 5332 and the signal 234 forwarded 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 enable-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 enable 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 Ausführungseinheit, wenn auf einen Teilspeicherbereich gleichzeitig (auch lesend) zugegriffen wird. Je nach Anwendung ist es nun möglich, verschiedene Aufteilungen der RAM-Teilbereiche so vorzu- nehmen, dass zusammen mit der Gestaltung der Befehlsabläufe und der Datenzugriffe von den unterschiedlichen Ausführungseinheiten möglichst wenig gleichzeitige Zugriffe zu gleichen Teil-Speicherbereichen auftreten. Diese Anordnung ist auch erweiterbar auf Zugriffe von mehr als zwei Ausführungseinheiten: Es ist in gleicher Weise auch ein Multi-Port RAM realisierbar, wenn die Umschaltung der Adressen, Daten und Steuersignale über mehrere Multiplexer sti- fenweise nacheinander vorgesehen wird (Figur 7).This arrangement with a single port RAM is less expensive than a dual port RAM with parallel access, but delays the processing of at least one execution unit when a sub memory area is accessed simultaneously (also read). Depending on the application, it is now possible to carry out different partitions of the RAM subareas in such a way that as few as possible simultaneous accesses to the same sub memory areas occur together with the configuration of the command sequences and the data accesses from the different execution units. This arrangement can also be expanded to accesses of more than two execution units: A multi-port RAM can likewise be implemented in the same way if the switching over of the addresses, data and control signals is provided successively in succession via several multiplexers (FIG. 7).
Ein solches Multi Port RAM 290 ist in Figur 7 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 enable-Signale für die Zugriffe zu den einzelnen RAMs in 281, 282 und 288. In Figur 7a ist ein Ausführungsbeispiel für einenSuch 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 enable signals for the accesses to the individual RAMs in 281, 282 and 288. In Fig. 7a is an embodiment of a
Teilspeicher 28x (281 ... 288) näher gezeigt. Dort werden in einer ersten Stufe der Steuereinrichtungen 370 die enable-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 280 verbunden ist.Partial memory 28x (281 ... 288) closer shown. There, in a first stage of the control means 370, the enable 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 connected to the single port RAM 280.
Im Gegensatz zu den Multiplexern 275 von Figur 6 verbinden die Multiplexer 375 von Figur 7a neben den Adress-, Daten- und Steuersignalen auch die enable-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 FIG. 6, the multiplexers 375 of FIG. 7a connect, in addition to the address, data and control signals, also the enable signals of the next stages, which in 381, 382 ... 388 are included. Furthermore, comparison means may be included in 375 which determine the validity of the data read from the subareas in the case of a multi-associative addressing mode.
In einem weiteren vorteilhaften Ausfuhrungsbeispiel eines Dual Port Cache-Speichers kann dieIn a further advantageous exemplary embodiment of a dual-port cache memory, the
Zuordnung von RAM-Bereichen zu verschiedenen Ausfuhrungseinheiten von einem oder mehreren Systemzuständen oder Konfigurationen abhängig gemacht werden. In Figur 8 ist dazu ein Beispiel für einen konfigurierbaren Dual Port Cache gezeigt. Dazu wird ein Modus- oder Konfigurationssignal 1000 bei der Decodierung der Eingangssignale für jeden der zwei Ports be- nutzt. Dieses Konfigurationssignal kann dem Modus-Signal Nl 50 aus Figur 12 entsprechen, o- der Teile der Informationen des Modus-Signals Nl 50 beinhalten oder aus Kombination von Nl 50 mit anderen Informationen des Multiprozessorsystems gebildet werden. 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 beide 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 A 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 derAssignment of RAM areas to different execution units of one or more system states or configurations made dependent. FIG. 8 shows an example of a configurable dual port cache for this purpose. For this purpose, a mode or configuration signal 1000 is used in decoding the input signals for each of the two ports. This configuration signal may correspond to the mode signal Nl 50 of FIG. 12, which may include portions of the information of the mode signal Nl 50 or may be formed from combination of Nl 50 with other information of the multiprocessor system. 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 have access to the entire cache. But if M = I (e.g., performance mode), each port will only have access to half of the cache, but each port will have full access to that area (without the activity on the other port). In this mode, the address bit A is not used to address the cache (in the 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 determined by the
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 an die Signale 261, 262,...267 auszugeben. Ebenso ist es möglich im Performanzmodus (M=I) nur dem Port 1 den Zugriff auf den gesamten Cache zu erlauben. Diese weitre Ausführung ist in Tabelle 3 dargestellt. Der Anwender kann auch durch mehrere Konfigurationssignale beliebige andere Aufteilungen des Caches vorndi- men. Das erlaubt bei einem größeren Cache-Bereich einerseits eine höhere Hit-Rate und verringert damit die Notwendigkeit des Holens der Daten aus dem Hauptspeicher. Andererseits be- hindern sich die verschiedenen Ausführungseinheiten 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 direkt bei einem Wechsel des Systemzustandes (Vergleichsmodus / Performanzmodus) automatisch der Cache durch das Modussignal 1000 umgeschaltet werden.Identifier then be found out whether it is the date sought and accordingly the cach-hit signal generated. Depending on where the corresponding comparator is arranged, the data including identifier and control bits are available via the signals 291, 292,... 297 to the ports 331, 332,... 337 and further to the signals 261, 262,. .267. It is also possible in the performance mode (M = I) only the port 1 to allow access to the entire cache. This weitre execution is shown in Table 3. The user can also carry out any other division of the cache by means of several configuration signals. On the one hand, this allows a higher hit rate for a larger cache area and thus reduces the need to fetch the data from the main memory. On the other hand, the various execution units do not interfere with accessing as far as possible only independent cache areas via the various 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 If the system state (comparison mode / performance mode) changes, the cache can be automatically switched over by the mode signal 1000.
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.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.
Sollen in einem Multiprozessorsystemen mit mehr als zwei Betriebsmodi abhängig von diesen Betriebsmodi auch mehr als zwei Konfigurationen des Cache-Speichers möglich sein, so reicht ein zweiwertiges Modussignal 1000 nicht aus. In diesem Fall ist es vorteilhaft, das Modussignal mehrwertig auszuführen oder ein weiteres, in den Figuren 8-10 nicht dargestelltes Modussignal 2000 einzuführen.If more than two configurations of the cache memory are to be possible in a multiprocessor system with more than two operating modes as a function of these operating modes, then a bivalent mode signal 1000 is not sufficient. In this case, it is advantageous to perform the mode signal in a multi-valued fashion or to introduce another mode signal 2000, not shown in FIGS. 8-10.
Eine weiteres Ausführungsbeispiel 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, 2822,...2827, ...2881,2882,..2887 wird dann die Gültigkeit geprüft und inAnother 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 the validity is then checked and
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 Signale 2610, 2620,...2670 weitergeleitet.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 to the signals 2610, 2620, ... 2670 forwarded.
Anstelle eines RAM-Speicher kann die erfindungsgemäße Anordnung eines Dual Port Cache- Speichers auch mit anderen Speichertechnologien wie MRAM, FERAM o. ä. dargestellt wer- den. In Figur 11 ist ein Multiprozessorsystem (W500) mit zwei Ausfiihrungseinheiten (W510a, W510b), einer Umschalt- und Vergleichseinheit (W520) und einem Dual Port Cache-Speicher (W550) gezeigt. Über den Signalpfad W518 signalisiert die Vergleichseinheit (W520), wenn im Vergleichsmodus ein Fehler aufgetreten ist. Die Ausführungseinheiten sind jeweils über Signal- leitungen bzw. Busse (W512a, W512b) mit der Umschalt- und Vergleichseinheit (W520) verbunden, die ihrerseits zwei Verbindungen (W513a, W513b) zu einem Dual Port Cache-Speicher und zwei Verbindungen (W514a, W514b) zu zwei Systemschnittstellen (W535, W545) hat. Die Signale (W512a, W512b) entsprechen dabei den Signalen 211 und 221 aus Figur 2 verfügen ü- ber den gleichen oder ähnlichen Umfang an Daten. Der Dual Port Cache-Speicher (W550) ist über eine Verbindung 241 und eine optionale Speicherschnittstelle (W530) mit einem (Haupt-)Instead of a RAM memory, the inventive arrangement of a dual-port cache memory can also be represented with other memory technologies such as MRAM, FERAM or the like. FIG. 11 shows a multiprocessor system (W500) with two execution units (W510a, W510b), a switchover and comparison unit (W520) and a dual port cache memory (W550). The comparison unit (W520) signals via signal path W518 if an error has occurred in comparison mode. The execution units are each connected via signal lines or buses (W512a, W512b) to the switching and comparison unit (W520), which in turn has two connections (W513a, W513b) to a dual port cache memory and two connections (W514a, W514b ) to two system interfaces (W535, W545). The signals (W512a, W512b) correspond to the signals 211 and 221 from FIG. 2 and have the same or similar amount of data. The dual port cache memory (W550) is connected via a connection 241 and an optional memory interface (W530) with a (main)
Speichersystem (W570) verbunden. Über die Systemschnittstellen (W535, W545) können weitere Einheiten des Prozessorsystems (W580) wie z.B. Coprozessoren oder Timer-Einheiten und Peripherals (W590) wie Digitale Ausgänge, D/A-Wandler und Kommunikationscontroller angesteuert werden. Eine Ausführungseinheit kann dabei sowohl als Prozessor/Core/CPU, als auch als FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor, ALU (Arithmetic logical Unit) realisiert sein.Storage system (W570) connected. The system interfaces (W535, W545) can be used to connect additional units of the processor system (W580), such as Coprocessors or timer units and peripherals (W590) such as digital outputs, D / A converters and communication controllers. An execution unit can be implemented both as processor / core / CPU, as well as FPU (floating point unit), DSP (digital signal processor), coprocessor, ALU (Arithmetic logical Unit).
In Figur 1 Ia ist das Multiprozessorsystem (W500) aus Figur 11 abstrahiert und zur besseren Übersichtlichkeit ohne die Systemschnittstellen (W535, W545), die Verbindungen (W514a, W514b) und die Einheiten W580 und W590 dargestellt.In FIG. 11a, the multiprocessor system (W500) of FIG. 11 is abstracted and shown for clarity without the system interfaces (W535, W545), the connections (W514a, W514b) and the units W580 and W590.
Dieses Multiprozessorsystem kann in wenigstens zwei Betriebsmodi betrieben werden, einem Vergleichsmodus VM und einem Performanzmodus PM.This multiprocessor system can be operated in at least two modes of operation, a compare mode VM and a performance mode PM.
Im Performanzmodus PM werden in den unterschiedlichen Ausführungseinheiten unterschiedliche Befehle, Programmsegmente oder Programme parallel ausgeführt. In Figur 13 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit (W520) für Schreib- und Lesezugriff auf den Cache-Speicher im Performanzmodus gezeigt. In diesem Betriebsmodus ist der Vergleicher (W522) der Umschalt- und Vergleichseinrichtung (W520) deaktiviert, d.h. es werden keine Da- ten verglichen. Zur Deaktivierung der Vergleichseinheit gibt es mehrere Möglichkeiten. Zum einen kann man an den Vergleicher ein Signal führen, mit dem dieser aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einzufügen, die dies durchführen kann. H- ne weitere Möglichkeit ist es, dem Vergleicher keine zu vergleichenden Daten zuzuführen, so wie dies in dem in Figur 13 gezeigten Ausfuhrungsbeispiel schematisch dargestellt ist. Eine dritte Möglichkeit ist es, auf Systemebene das Status- bzw. Fehlersignal (W518, dargestellt in Figur 14) des Vergleichers zu ignorieren. Weiter kann man auch das Fehlersignal selbst unter- brechen. Allen Möglichkeiten ist gemeinsam, dass sie im System einen Zustand erzeugen, bei dem es keine Rolle spielt, wenn zwei oder mehr Daten, die potenziell verglichen werden, verschieden sind. Wird dieser Zustand durch eine Maßnahme im Vergleicher oder dessen Ein- oder Ausgangssignalen erreicht, dann wird der Vergleicher als passiv oder deaktiviert bezeichnet.In the performance mode PM, different commands, program segments or programs are executed in parallel in the different execution units. FIG. 13 shows the internal switching state of the switching and comparison unit (W520) for write and read access to the cache memory in the performance mode. In this operating mode, the comparator (W522) of the switching and comparison device (W520) is deactivated, ie no data is compared. There are several options for deactivating the comparison unit. On the one hand you can lead to the comparator a signal with which this is activated or deactivated. For this purpose, an additional logic is inserted in the comparator, which can do this. H- ne further possibility is to supply the comparator no data to be compared, as shown schematically in the exemplary embodiment shown in Figure 13. A third possibility is to ignore at system level the status or error signal (W518, shown in FIG. 14) of the comparator. Furthermore, one can also interrupt the error signal itself. All options have in common that they create a state in the system that does not matter if two or more potentially matched data are different. If this state is reached by a measure in the comparator or its input or output signals, then the comparator is referred to as passive or disabled.
Im Performanzmodus ist jede Ausführungseinheit mit einem Port des Dual Port Cache-In performance mode, each execution unit is connected to one port of the dual port cache
Speichers (W550) verbunden. Dies wird in dem in Figur 13 gezeigten Ausführungsbeispiel dadurch erreicht, dass der Umschalter (W525) der Umschalt- und Vergleichseinrichtung (W520) so konfiguriert ist, dass das Signal 512a direkt mit dem Signal 513a verbunden ist und das Signal 512b direkt mit dem Signal 513b verbunden ist. Damit kann ein Lesevorgang für beliebige Speicherzellen des Dual Port Caches, insbesondere auch ein Lesezugriff auf genau die gleicheMemory (W550) connected. This is achieved in the embodiment shown in FIG. 13 in that the switch (W525) of the switching and comparison device (W520) is configured so that the signal 512a is directly connected to the signal 513a and the signal 512b is connected directly to the signal 513b connected is. This allows a read operation for any memory cells of the dual port cache, in particular a read access to exactly the same
Speicherzelle, von beiden Ausführungseinheiten gleichzeitig erfolgen.Memory cell, carried out simultaneously by both execution units.
Ein gleichzeitiger Schreibvorgang auf die gleiche Speicherzelle- oder bei blockweisem Schreiben auf den Cache-Speicher auf den gleichen Speicherblock- eines Dual Port Cache-Speichers ist nicht möglich. Für den Schreibvorgang wird beispielsweise einem der beiden Ports des DualSimultaneous write to the same memory cell or block-by-block write to the cache memory on the same memory block of a dual port cache memory is not possible. For the writing process, for example, one of the two ports of the dual
Port Cache-Speichers und damit einer Ausführungseinheit eine höhere Priorität eingerichtet, d.h. es wird verhindert, dass gleichzeitig von beiden Ausführungseinheiten auf die gleiche Speicherzelle bzw. den gleichen Speicherblock geschrieben wird. Diese Priorität kann auch dynamisch, z.B. von der Umschalt- und Vergleichseinheit des Multiprozessorsystem oder abhängig vom adressierten Speicherbereich festgelegt werden. Erst wenn der bevorzugte Port diePort Cache memory and thus a higher priority execution unit, i. it is prevented that is written from both execution units to the same memory cell or the same memory block simultaneously. This priority can also be dynamic, e.g. be determined by the switching and comparison unit of the multiprocessor system or depending on the addressed memory area. Only when the preferred port the
Schreiboperation ausgeführt hat, darf der andere Port schreiben.Write operation may write the other port.
Ein Zugriffskonflikt, z.B. ein gleichzeitiger Schreibzugriff von zwei Ausführungseinheiten auf die gleiche Speicherzelle bzw. den gleichen Speicherblock kann folgendermaßen erkannt und aufgelöst werden: Beim Zugriff auf den Dual Port Cache werden entsprechend Figur 3 die in den Signalen 211 und 221 (entspricht den Signalen 512a und 512b in Figur 11) 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 Steuersignalen auf Verträglichkeit geprüft. Sind diese Adressen gleich, und soll auf wenigstens eine der Adressen schreibend zugegriffen werden, liegt ein Konflikt vor. Im Falle eines Konfliktes wird mittels der Steuersignale, die in den Signalen 213 oder 223 enthalten sind, der Zugriff wenigstens eines Ports auf den dual Port RAM 230 verhindert..An access conflict, eg a simultaneous write access of two execution units to the same memory cell or the same memory block, can be recognized and resolved as follows: When accessing the dual port cache, the signals in the signals 211 and 221 (corresponding to the signals 512a and 512b in FIG. 11) contained addresses 212 and 222 of the processing units 215 and 225 in an address comparator 251 The device 250 compared with each other and tested together with the control signals also transmitted in 211 and 221 for compatibility. If these addresses are the same, and if at least one of the addresses is to be accessed in writing, then there is a conflict. In the event of a conflict, the access of at least one port to the dual port RAM 230 is prevented by means of the control signals contained in the signals 213 or 223.
Im Falle eines Cache Miss, d.h. wenn bei einem Lesezugriff einer ersten Ausführungseinheit auf den Cache-Speicher das angeforderte Datum bzw. der Befehl nicht im Cache-Speicher enthalten ist, muss das Datum bzw. der Befehl über das Bussystem aus einem Programm- oder Daten- Speicher, beispielsweise dem Hauptspeicher (W570 aus Figur 11), geholt werden. Die ankommenden Daten werden zu der Ausführungseinheit weitergeleitet, die diese Daten angefordert hat und werden parallel zusammen mit der Kennung und den Controlbits in den Cache geschrieben. Wenn während der Übertragung eines Speicherblocks vom Hauptspeicher in den Cache- Speicher eine Adresse aus dem gleichen Speicherblock beispielsweise von einer zweiten Aus- führungseinheit adressiert wird, wird dies vom Adresscomparator erkannt und dieser verhindert das nochmalige Übertragen dieses Speicherblocks vom Hauptspeicher.In the case of a cache miss, i. if, in a read access of a first execution unit to the cache memory, the requested data or instruction is not included in the cache memory, the data or instruction must be transferred via the bus system from a program or data memory, such as main memory (FIG. W570 from FIG. 11). The incoming data is forwarded to the execution unit that requested that data and is written to the cache in parallel along with the identifier and control bits. If, during the transmission of a memory block from the main memory into the cache memory, an address from the same memory block is addressed, for example, by a second execution unit, this is detected by the address comparator and this prevents the memory block from being re-transmitted from the main memory.
Wie in den Figuren 11 und IIa gezeigt, ist die Umschalt- und Vergleichseinheit (W520) vorteilhafter weise zwischen den Ausführungseinheiten (W510a, W510b) und dem Dual Port Ca- che-Speicher W550 angeordnet. Dies ermöglicht im Vergleichsmodus mehrere vorteilhafteAs shown in FIGS. 11 and 11a, the switching and comparing unit (W520) is advantageously arranged between the execution units (W510a, W510b) and the dual port cache memory W550. This allows several advantageous in comparison mode
Zugriffsarten der Ausführungseinheiten auf den Dual Port Cache, die im folgenden beschrieben werden.Access types of the execution units to the dual port cache, which are described below.
Im Vergleichsmodus ist jede Ausführungseinheit über die Signalverbindungen W512a und W512b mit der Umschalt- und Vergleichseinheit (W520) und damit nach Figur 15 und 16 auch mit dem dort enthaltenen Vergleicher (W522) verbunden.In the comparison mode, each execution unit is connected via the signal connections W512a and W512b to the switching and comparison unit (W520) and thus also to the comparator (W522) contained therein according to FIGS. 15 and 16.
In Figur 14 und Figur 15 ist die interne Verschattung der Umschalt- und Vergleichseinheit für zwei Ausführungen eines Lesezugriffs im Vergleichsmodus gezeigt. In einer ersten Ausführung nach Figur 14 ist der Umschalter (W525) in der gleichen Stellung wie im Performanzmodus, d.h. jede der Ausführungseinheiten (W510a, W510b) ist mit einem Port des Dual Port Cache- Speichers (W550) verbunden. Da die beiden Ausfiihrungseinheiten im Vergleichsmodus die gleichen Programme, Programmsegmente oder Befehle abarbeiten, greifen sie auch auf die gleichen Speicheradressen zu. Zunächst können die Adressen vom Vergleicher (W522) geprüft werden und die Weitergabe der Adressen erfolgt erst bei Übereinstimmung. Weiterhin ist alter- nativ oder zusätzlich möglich, die über verschiedene Ports des Cache-Speichers ausgelesenenIn FIG. 14 and FIG. 15, the internal shading of the switching and comparison unit is shown for two embodiments of a read access in comparison mode. In a first embodiment according to FIG. 14, the switch (W525) is in the same position as in the performance mode, ie each of the execution units (W510a, W510b) is connected to one port of the dual-port cache. Memory (W550) connected. Since the two execution units execute the same programs, program segments or commands in comparison mode, they also access the same memory addresses. First, the addresses can be checked by the comparator (W522) and the transfer of the addresses takes place only if they match. Furthermore, it is alternatively or additionally possible to read out the data via different ports of the cache memory
Informationen einer Speicherzelle im Vergleicher (W522) zu überprüfen. Somit können auch Fehler in der Adressierungslogik des Dual Port Cache-Speichers und in der Übertragung zwischen Cache und Vergleicher entdeckt werden. Der Vergleicher kann über das Vergleichs- /Fehlersignal (W518) eine das Vergleichsergebnis repräsentierende Information an die Ausfüh- rungseinheiten signalisieren. Allerdings ist für diese Ausführungsform eine Ausführung einesCheck the information of a memory cell in the comparator (W522). Thus, errors in the addressing logic of the dual port cache memory and in the transfer between cache and comparator can be detected. The comparator can signal to the execution units via the comparison / error signal (W518) an information representing the comparison result. However, for this embodiment, an embodiment of a
Dual Port Cache-Speichers z.B. nach Figur 3 notwendig, bei der zeitgleich über die beiden Ports auf die gleiche Speicherzelle lesend zugegriffen werden kann.Dual port cache memory e.g. according to FIG. 3, in which at the same time read access can be made to the same memory cell via the two ports.
In einer zweiten Ausführung des Vergleichsmodus nach Figur 15 ist der Umschalter, hier mit W526 bezeichnet, in einer anderen Schaltstellung. In dieser Ausführung erfolgt nur ein Zugriff über die Verbindung W513a auf den Dual Port Cache-Speicher. Dieser Zugriff erfolgt allerdings nur dann, wenn die über die Signalverbindungen W512a und W512b an den Vergleicher geführten Zugriffsadressen identisch sind. Wird vom Vergleicher eine Diskrepanz der Adressen erkannt, so kann der Speicherzugriff über das Signal W517 und die Verzögerungs- und Unter- brechungseinrichtung W519 verhindert werden.In a second embodiment of the comparison mode according to FIG. 15, the changeover switch, here designated W526, is in a different switching position. In this embodiment, only access via the W513a connection to the dual port cache memory occurs. However, this access takes place only if the access addresses routed to the comparator via the signal connections W512a and W512b are identical. If the comparator detects a discrepancy of the addresses, the memory access via the signal W517 and the delay and interruption device W519 can be prevented.
In Figur 16 ist eine Konfiguration der Umschalt- und Vergleichseinheit (W520) für einen Schreibzugriff auf den Dual Port Cache-Speicher im Vergleichsmodus gezeigt. Hierbei werden die über die Signalverbindungen W512a und W512b an den Vergleicher geführten Zugriffsad- ressen und die zu schreibenden Daten verglichen. Bei Übereinstimmung werden nur die Daten einer Ausführungseinheit, im gezeigten Ausführungsbeispiel die über die Verbindung W512a erhaltenen Daten, über eine Verbindung (W513a) und einen Port in den Dual Port Cache- Speicher geschrieben. Bei Diskrepanz der über die Verbindungen W512a und W512b erhaltenen Adressen und/oder Daten, wird in einem ersten Ausführungsbeispiel der Zugriff auf den Cache-Speicher über das Signal W517 und die Verzögerungs- und UnterbrechungseinrichtungReferring to Fig. 16, there is shown a configuration of the switch and compare unit (W520) for write access to the dual port cache memory in the compare mode. In this case, the access addresses guided via the signal connections W512a and W512b to the comparator and the data to be written are compared. If coincident, only the data of one execution unit, in the embodiment shown, the data obtained via the connection W512a, is written into the dual port cache memory via a connection (W513a) and a port. In the event of a discrepancy of the addresses and / or data obtained via the connections W512a and W512b, in a first exemplary embodiment the access to the cache memory is made via the signal W517 and the delay and interrupt device
W519 verhindert. Dies hat den Vorteil, dass nur gültige bzw. korrekte Daten in den Cache geschrieben werden, aber den Nachteil, dass der Schreibzugriff auf den Cache erst nach abgeschlossenem Vergleich durchgeführt werden kann und die Ausführungseinheiten dadurch ggf verzögert werden. Der Schalter W527 stellt sich das die Signalverbindung W512b ausschließlich an den Vergleich W522 geht.W519 prevented. This has the advantage that only valid or correct data are written into the cache, but the disadvantage that the write access to the cache can be performed only after completed comparison and the execution units thereby possibly be delayed. The switch W527 sets the signal connection W512b exclusively to the comparison W522.
In einem zweiten Ausfuhrungsbeispiel nach Figur 17 werden die über die Signalverbindungen W512a und W512b an den Vergleicher geführten Zugriffsadressen und die zu schreibenden Daten verglichen und gleichzeitig die über eine Verbindung (z.B. W512a) erhaltenen Daten in einen Pufferspeicher W529 geschrieben. Über das Signal W517 wird dem Pufferspeicher W529 eine das Vergleichsergebnis repräsentierende Information zugeführt. Bei Übereinstimmung der der über die Verbindungen W512a und W512b erhaltenen Adressen und/oder Daten wird die im Pufferspeicher gespeicherte Information über eine Verbindung (z.B. W513a) und einen Port in den Dual Port Cache-Speicher geschrieben. Erkennt der Vergleicher hingegen eine Diskrepanz, so werden die Daten im Pufferspeicher nicht für einen Schreibzugriff freigegeben und vorteilhafter weise gelöscht. Daraus ergibt sich der Vorteil, dass nur gültige bzw. korrekte Daten in den Cache geschrieben werden, aber keine Verzögerung der Ausführungseinheiten erfolgt.In a second embodiment of Fig. 17, the access addresses passed through the signal links W512a and W512b to the comparator and the data to be written are compared, and at the same time, the data obtained through a link (e.g., W512a) is written in a buffer memory W529. Via the signal W517, the buffer memory W529 is supplied with information representing the comparison result. In accordance with the addresses and / or data obtained through the links W512a and W512b, the information stored in the buffer memory is written into the dual port cache memory via a connection (e.g., W513a) and a port. On the other hand, if the comparator detects a discrepancy, the data in the buffer memory is not released for write access and advantageously deleted. This results in the advantage that only valid or correct data is written into the cache, but no delay of the execution units takes place.
In einem weiteren Ausführungsbeispiel für den Schreibzugriff im Vergleichsmodus schreibt eine der beiden Ausführungseinheiten die Daten in den Cache-Speicher. Ein Vergleich der über die Verbindungen W512a und W512b erhaltenen Adressen und/oder Daten der beiden Ausführungseinheiten erfolgt parallel zum Schreiben oder nach dem Schreiben der Daten in den Cache. Erkennt der Vergleicher eine Diskrepanz, so muss das geschriebene Datum im Cache hinterher als ungültig erklärt werden. Dazu wird dem Cache-Speicher von der Umschalt- und Vergleichseinheit eine das Vergleichsergebnis repräsentierende Information über ein Vergleich- /Fehlersignal (W518 aus Fig. 1 Ia und Fig. 14-17 bzw. N170 aus Fig. 12) zur Verfügung gestellt. Das bereits geschriebene Datum wird dann durch Setzen eines Bits in einem Status- oder Controlregister des Cache-Speichers oder durch Löschen einer Information aus der HIT-Tabelle als ungültig gekennzeichnet oder durch ein altes Datum ersetzt, falls dieses im Cache-Speicher oder im System noch vorhanden ist. Der Vorteil dieses Ausführungsbeispiels liegt darin, dass die Ausführungseinheiten durch den Vergleich der Adressen und/oder Daten nicht verzögert werden und kein Pufferspeicher in der Umschalt- und Vergleichseinheit notwendig ist.In another embodiment for write access in compare mode, one of the two execution units writes the data to the cache memory. A comparison of the addresses and / or data of the two execution units obtained via the connections W512a and W512b takes place in parallel with the writing or after the writing of the data into the cache. If the comparator detects a discrepancy, the written date in the cache must subsequently be declared invalid. For this purpose, the cache memory is provided by the switching and comparison unit with information representing a comparison result via a comparison / error signal (W518 from FIG. 11a and FIGS. 14-17 or N170 from FIG. 12). The already written date is then marked as invalid by setting a bit in a status or control register of the cache or by deleting information from the HIT table, or replaced with an old date if it is still in the cache or in the system is available. The advantage of this embodiment is that the execution units are not delayed by the comparison of the addresses and / or data and no buffer memory in the switching and comparison unit is necessary.
In einer weiteren vorteilhaften Ausführung eines Multiprozessorsystems werden zwei getrennte Dual Port Caches für Daten und für Befehle/Instruktionen vorgesehen, wobei im Instruktionsca- che üblicherweise keine Schreibvorgänge vorzusehen sind. In Figur 18 ist ein Multiprozesscr- system (W501) mit zwei getrennten Dual Port Cache-Speichern W550c und W550d gezeigt. Dabei ist beispielsweise W550c ein Instruktions-Cache, auf den von den Ausfuhrungseinheiten (W510a, W510b) über W513ac bzw. W513bc nur lesend zugegriffen wird und W550d ein Da- ten-Cache, auf den die Ausführungseinheiten über W513ad bzw. W513bd lesend und schreibende zugreifen können. Jeder Cache besitzt jeweils über die Signalverbindung 241c und die Speicherzugriffseinheit W530c bzw. die Signalverbindung 241d und die Speicherzugriffseinheit W530d einen Zugriff auf den (Haupt-)Speicher. Wie bereits in Figur 1 Ia ist das Multiprozessor- system (W501) in Figur 18 zur besseren Übersichtlichkeit abstrahiert dargestellt. Die in Figur 11 gezeigten Systemschnittstellen (W535, W545), die Verbindungen (W514a, W514b), dieIn a further advantageous embodiment of a multiprocessor system, two separate dual port caches for data and for instructions / instructions are provided, wherein in the instruction cache usually no write operations are provided. FIG. 18 shows a multiprocessing system (W501) with two separate dual port cache memories W550c and W550d. W550c, for example, is an instruction cache accessed read-only by the execution units (W510a, W510b) via W513ac or W513bc, and W550d is a data cache to which the execution units access reading and writing via W513ad or W513bd can. Each cache has access to the (main) memory via the signal connection 241c and the memory access unit W530c or the signal connection 241d and the memory access unit W530d. As already shown in FIG. 11a, the multiprocessor system (W501) is shown abstracted in FIG. 18 for better clarity. The system interfaces (W535, W545) shown in FIG. 11, the links (W514a, W514b), the
Einheiten W580 und W590 und das Speichersystem W570 können in dem Multiprozessorsys- tem (W501) nach Figur 18 ganz oder teilweise enthalten sein.Units W580 and W590 and memory system W570 may be wholly or partially included in the multiprocessor system (W501) of FIG.
In den vorangehenden Ausführungsbeispielen ist jeweils ein Multiprozessorsystem mit zwei Ausführungseinheiten, zwei Betriebsmodi und einem Dual Port Cache-Speicher beschrieben.In the preceding exemplary embodiments, a multiprocessor system with two execution units, two operating modes and a dual port cache memory is described in each case.
Die kennzeichnenden Merkmale der Erfindung können ebenso auf Multiprozessorsysteme mit mehr als zwei Ausführungseinheiten angewendet werden. Änderungen sind dabei hauptsächlich in der Umschalt- und Vergleichseinheit notwendig. Der Dual Port Cache kann dabei zu einem Multi Port Cache erweitert werden, wie beispielsweise in den in Figur 9 und Figur 10 darge- stellten Ausführungsbeispielen beschrieben ist. Die Anzahl der Ausführungseirheiten des MuI- tiprozessorsystems und die Anzahl der Ports des Multi Port Caches und die Anzahl der Teilspeicherbereiche des Cache-Speichers muss dabei nicht identisch sein. The characterizing features of the invention may also be applied to multiprocessor systems having more than two execution units. Changes are necessary mainly in the switching and comparison unit. The dual port cache can be extended to a multi-port cache, as described for example in the exemplary embodiments illustrated in FIG. 9 and FIG. The number of execution units of the multiprocessor system and the number of ports of the multi-port cache and the number of partial storage areas of the cache memory need not be identical.

Claims

Patentansprüche claims
1. 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, wobei Umschaltmittel vorgesehen sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel vorgesehen sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigs- tens 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 und bei Umschaltung.A method of storing data and / or instructions in a computer system having at least two processing units and at least one first memory or storage area for data and / or instructions, wherein switching means are provided and switched between at least two modes of operation, wherein comparison means are provided and first operating mode corresponds to a comparison mode and a second operating mode corresponds to a performance mode, characterized in that a second memory or memory area is contained in the device, wherein the device is designed as a cache memory system and is equipped with at least two separate ports and access via these ports the at least two processing units take place in 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 buffered in blocks and upon switching.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der zweite Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.2. The method according to claim 1, characterized in that the second memory or memory area is divided into at least two address areas, which can be read or written independently of each other.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der enable-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.3. The method according to claim 2, characterized in that an address decoder is present, the enable signals generated which allow simultaneous access to an address range through multiple ports only one port access and prevent the access of at least one other ports or delay , in particular by wait signals.
4. Verfahren nach Anspruch 1, 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 enable-Signale über diese Stufen weitergeleitet werden.4. The method according to claim 1, characterized in that more than two ports are provided, wherein selection devices are present and the access to the independent address ranges via the selection devices with several other stages and the enable signals are forwarded via these stages.
5. Verfahren nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, dass es mindestens ein Modussignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports un- schaltet.5. The method of claim 2, 3 or 4, characterized in that there is at least one mode signal that turns off the accessibility of the various ports.
6. Verfahren nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, dass es mindestens ein Konfigurationssignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.6. The method of claim 2, 3 or 4, characterized in that there is at least one configuration signal, which switches the access options of the various ports.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass beide Verarbeitungseinheiten einen Lesezugriff vorgeben.7. The method according to claim 1, characterized in that both processing units specify a read access.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, das bei Vorgabe des Lesezugriffs durch beide Verarbeitungseinheiten den Daten und/oder Befehle zugeordnete Kennungen oder Zugriffsadressen verglichen werden und nur bei Übereinstimmung ein Lesezugriff auf den Cache durchgeschaltet wird.8. The method according to claim 7, characterized in that when specifying the read access by both processing units of the data and / or commands associated identifiers or access addresses are compared and only if they match a read access to the cache is turned on.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei Vorgabe eines Lesezugriffs beide Verarbeitungseinheiten auf das Cachespeichersystem zugreifen.9. The method according to claim 1, characterized in that, when specifying a read access, both processing units access the cache system.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die beim Lesezugriff durch beide Verarbeitungseinheiten gelesenen Daten und/oder Befehle verglichen werden und bei Abweichung ein Signal, insbesondere ein Fehlersignal erzeugt wird.10. The method according to claim 9, characterized in that the read during read access by both processing units data and / or commands are compared and a deviation signal, in particular an error signal is generated.
11. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle verglichen werden und nur dann eingeschrieben werden, wenn diese überein- stimmen.11. The method according to claim 1, characterized in that in a write access to the second memory or memory area to be written data and / or commands are compared and are only written if they agree.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass bei einem Schreb- zugriff bis die Daten und/oder Befehle verglichen sind die Verarbeitungseinheiten angehalten werden. 12. The method according to claim 11, characterized in that in a Schreb- access until the data and / or commands are compared, the processing units are stopped.
13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die Daten und /oder Befehle in einen Pufferspeicher oder Pufferspeicherbereich geschrieben werden und erst nach erfolgreichem Vergleich in den zweiten Speicher oder Speicherbereich über- nommen werden.13. The method according to claim 11, characterized in that the data and / or commands are written in a buffer memory or buffer memory area and are taken over only after successful comparison in the second memory or memory area.
14. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle nur von einer Verarbeitungseinheit geschrieben werden und abhängig von ei- nem parallel ausgeführten Vergleich bei Unterscheidung die eingeschriebenen Daten und/oder Befehle gesperrt oder ungültig erklärt werden.14. The method according to claim 1, characterized in that data to be written in a write access to the second memory or memory area data and / or commands are written only by a processing unit and depending on a parallel executed comparison in distinguishing the written data and / or Commands locked or invalidated.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Setzen oder Rücksetzen wenigstens eines Bits erfolgt.15. The method according to claim 14, characterized in that the blocking or invalidation by setting or resetting of at least one bit takes place.
16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Überschreiben mit einem anderen, insbesondere alten Datum und/oder Befehl erfolgt.16. The method according to claim 14, characterized in that the blocking or invalidation by overwriting with another, especially old date and / or command takes place.
17. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Streichen einer entsprechenden Eintragung einer Inhaltstabelle des zweiten Speichers oder Speicherbereichs erfolgt.17. The method according to claim 14, characterized in that the blocking or invalidation by deleting a corresponding entry of a content table of the second memory or memory area is carried out.
18. 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, wobei Umschaltmittel enthalten sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel enthalten sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekem- zeichnet, 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.18. 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, wherein switching means are included and switched between at least two operating modes, wherein comparison means are included and a first operating mode corresponds to a comparison mode and a second operating mode corresponds to a performance mode, characterized in that a second memory or memory area is contained in the device, wherein the device is designed as a cache memory system and is equipped with at least two separate ports and access via these ports the at least two processing units to the same or different memory cells the second memory or memory area, wherein the data and / or commands from the first memory system are cached in blocks.
19. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass im Cachespeichersys- tem Daten und Befehle getrennt abgespeichert werden und so ein Datenspeicher oder19. The device according to claim 18, characterized in that data and commands are stored separately in the cache memory system and so a data memory or
Datenspeicherbereich und ein Befehlsspeicher oder Befehlsspeicherbereich vorgesehen sind.Data storage area and a command memory or command memory area are provided.
20. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass der zweite Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.20. The device according to claim 18, characterized in that the second memory or memory area is divided into at least two address areas that can be read or written independently of each other.
21. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der enable-Signale generiert, die bei einem gleichzeitigen Zugriff auf ei- nen 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.21. The device according to claim 18, characterized in that an address decoder is provided which generates enable signals which allow simultaneous access to an address range by a plurality of ports only one port access and prevent the access of the at least one further port or delay, in particular by wait signals.
22. Vorrichtung nach Anspruch 18, 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 mdi- reren Stufen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden. 22. The apparatus of claim 18, characterized in that more than two ports are provided, wherein selection means are provided and the access to the independent address ranges via the selection means with mdi- reren stages takes place and to the enable signals are forwarded via these stages ,
PCT/EP2006/064661 2005-08-08 2006-07-26 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 WO2007017376A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP06777976A EP1915695A1 (en) 2005-08-08 2006-07-26 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
JP2008525519A JP2009505181A (en) 2005-08-08 2006-07-26 Method and apparatus for storing instructions and / or data in a computer system having at least two processing units and at least one first memory or memory area for data and / or instructions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005037215A DE102005037215A1 (en) 2005-08-08 2005-08-08 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
DE102005037215.5 2005-08-08

Publications (1)

Publication Number Publication Date
WO2007017376A1 true WO2007017376A1 (en) 2007-02-15

Family

ID=37192655

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2006/064661 WO2007017376A1 (en) 2005-08-08 2006-07-26 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

Country Status (5)

Country Link
EP (1) EP1915695A1 (en)
JP (1) JP2009505181A (en)
CN (1) CN101243415A (en)
DE (1) DE102005037215A1 (en)
WO (1) WO2007017376A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345910B (en) * 2013-06-09 2015-11-18 苏州国芯科技有限公司 Single-port color palette SRAM controller and control method thereof
US11269777B2 (en) * 2019-09-25 2022-03-08 Facebook Technologies, Llc. Systems and methods for efficient data buffering

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247649A (en) 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
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

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01280860A (en) * 1988-05-06 1989-11-13 Hitachi Ltd Multiprocessor system with multiport cache memory
JPH0973436A (en) * 1995-09-05 1997-03-18 Mitsubishi Electric Corp Operation mode switching system of multiplied computers
US20070277023A1 (en) * 2003-06-24 2007-11-29 Reinhard Weiberle Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247649A (en) 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
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

Also Published As

Publication number Publication date
EP1915695A1 (en) 2008-04-30
DE102005037215A1 (en) 2007-02-15
CN101243415A (en) 2008-08-13
JP2009505181A (en) 2009-02-05

Similar Documents

Publication Publication Date Title
DE69732181T2 (en) METHOD AND DEVICE FOR INTERMEDIATING SYSTEM MANAGEMENT INFORMATION WITH OTHER INFORMATION
DE4218003C2 (en) Cache controller for a secondary cache memory system
DE112010004963T5 (en) Synchronizing SIMD vectors
DE112005002420T5 (en) Method and apparatus for pushing data into the cache of a processor
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
DE112006003453T5 (en) Per-sentence cache-inclusion relaxation
DE60025788T2 (en) Flexible multipurpose I / O system
DE4417068A1 (en) Method and device for operating a single-processor computer system as a multi-processor system
DE102007018033A1 (en) Coherence list actualization system for use in multi-processor computing system, has control, which is configured to set up condition for write transaction, to be invalid, when memory block is not local
DE3502147C2 (en)
DE102007006190A1 (en) Techniques for Using Memory Attributes
DE3650782T2 (en) Arrangement of cache management units
EP1915695A1 (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
DE19950255A1 (en) Microprocessor system has separate parallel bus systems for handling instructions and data
EP1915686B1 (en) Method and device for determining a start status of a computer system having at least two execution units by marking registers
EP1483682A2 (en) Reconfigurable processor
EP1917593B1 (en) Method and apparatus for controlling a memory access operation in a computer system having at least two execution units
EP1915689B1 (en) Method and device for monitoring a memory unit in a multiprocessor system
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
EP1915683B1 (en) Method and device for controlling a memory access in a computer system comprising at least two execution units
EP1915685B1 (en) Method and device for controlling a memory access in a computer system with at least two execution units
DE10025952A1 (en) Generation of multiple organised instructions for a data processing system with a minimum delay
EP1915674B1 (en) Method and device for controlling a computer system comprising at least two execution units and at least two groups of internal states
DE102005037259A1 (en) Method and device for determining a start state in a computer system having at least two execution units by switching register sets

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2006777976

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2008525519

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 200680029401.3

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2006777976

Country of ref document: EP