EP1163587A1 - Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen - Google Patents

Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen

Info

Publication number
EP1163587A1
EP1163587A1 EP00908968A EP00908968A EP1163587A1 EP 1163587 A1 EP1163587 A1 EP 1163587A1 EP 00908968 A EP00908968 A EP 00908968A EP 00908968 A EP00908968 A EP 00908968A EP 1163587 A1 EP1163587 A1 EP 1163587A1
Authority
EP
European Patent Office
Prior art keywords
cache
state
tlc
mesi
entry
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP00908968A
Other languages
English (en)
French (fr)
Inventor
Annie Stoess
Johann Schachtner
Wolfgang Ziemann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Technology Solutions GmbH
Original Assignee
Fujitsu Technology Solutions 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 Fujitsu Technology Solutions GmbH filed Critical Fujitsu Technology Solutions GmbH
Publication of EP1163587A1 publication Critical patent/EP1163587A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Definitions

  • the invention relates to a device for increasing the performance of processor systems according to the preamble of claim 1.
  • Large servers consist of a processor system with a large number of individual processors.
  • the number of individual processors is, for example, 16, 32, 64, 128 and so on.
  • Such servers are known as UNIX or NT systems.
  • the individual processors today mostly have a cache memory already in the chip. It is therefore also spoken of a so-called on-chip first level cache or a first level cache.
  • the individual processors can also be assigned additional cache memories outside of the chip. In the case of a first further such cache memory, it is then spoken of a so-called off-chip second level cache memory or a second level cache memory.
  • additional caches can be provided, which are then referred to as third level caches, for example.
  • the additional cache memories are used in particular to combine individual processors or groups of individual processors into a cluster.
  • Today's standard processors only allow the expansion of up to four individual processors. If several such additional cache memories are provided, each with four individual processors, for example, the large processor systems mentioned above can be set up.
  • the individual additional cache memories must be coupled to one another in a cache-coherent manner. The coupling could include hierarchy levels, not only four individual processors each, but also several each additional caches are coupled together. As a result, a processor system with a large number of pre-processors is obtained which has a high performance.
  • a processor system must behave in a cache-coherent manner. For this purpose it is possible to observe and interpret the bus transactions. From the analysis of the bus transactions, it can be concluded in which status situations the cache data blocks of the cache memories affected by the bus transaction are located. If it is known in which status situations the cache data blocks are located, it can be ensured that cache coherence is established or maintained within the processor system.
  • the status of the cache data blocks can be described using a cache protocol.
  • a known cache protocol follows the so-called MESI standard.
  • the individual cache data blocks are assigned one of four predefined MESI states.
  • the four pre-defined MESI states are: MODIFIED (M), EXCLUSIVE (E), SHARED (S) and INVALID (I). These states can be represented coded with two MESI bits.
  • MODIFIED means that the associated cache block is contained exclusively in the cache but has been rewritten. It is currently not known in the rest of the processor system. EXCLUSIVE means that the associated cache block has not been changed. He agrees with the content of the
  • SHARED means that the associated cache block is still in another cache and is still valid.
  • INVALID means that the associated cache block is invalid or does not exist in the TAG RAM of the memory.
  • the state of a cache memory block can be changed by a respective assigned individual processor via a read and write process. The state can also be changed by querying the system, also known as snooping. It can also be modified by external logic units, for example another single processor or a second level cache, ie by an external snooping. In any case, a respective cache block is only in one of the four MESI states mentioned at any point in time.
  • One way to ensure cache coherence in a processor system with additional cache memories is to ensure that the additional cache memories have a superset of all cache data blocks of the other cache memories directly connected to them. For this purpose, it is necessary that an update request is sent to all connected processes, for example to a connected single processor or its cache memory, and that a cache block affected by the displaced process is requested back. For such update requests or their processing, a system performance is required that is not available to a user as a useful service. The performance of the overall system is therefore limited.
  • the object of the present invention is therefore to provide technical measures by means of which the performance, in particular of a large processor system, is increased. This object is inventively achieved by a device in the processor system, which comprises the features of claim 1. ⁇ .
  • the additional cache memories have not only implemented a simple cache block management via the states M, E, S and I, but a combined status management has been implemented between the respective additional cache memories or the cache memories of the individual processors.
  • This combined state management can be seen in the expansion of the MESI states of the cache protocol of the additional cache memories.
  • the advantage is that an increased number of update requests in the direction of other places in the processor system can be saved, since it can be decided in advance on the basis of the expanded MESI states that the requested cache data blocks in question are not at the other places in the processor system can.
  • the effort that was previously required for these update requirements is now available to the processor system as a benefit. The performance of the processor system is thus increased.
  • the additional Cachespei ⁇ cher can the previous update request initiating partial report to the processor system that said MESI allocation has been made, although this assignment is actually initiated by about ⁇ sharmlichen cache until a subsequent measure.
  • the processor system therefore does not have to wait until the actual end of the update request has been confirmed, but can start immediately with the next tasks.
  • a processor system is hierarchically structured with regard to its cache memory structure in order to obtain a maximum number of saved update requests in the direction of the hierarchical levels below it by intercepting update requests even at the highest possible hierarchy levels.
  • the number ⁇ Need Beer-saturated MESI states are minimized. If the number of MESI states is as small as possible, the smallest possible number of coding points is necessary for the digital coding of the MESI states. The hardware effort is reduced.
  • FIG. 1 shows a basic circuit of a large processor system according to the prior art
  • FIG. 2 shows a state transition diagram of MESI states according to the prior art
  • FIG. 3 shows a state transition diagram of extended MESI states according to the invention
  • Figure 4 is a table with situations in which at a
  • FIG. 1 Can be of Figure 3 to an application of MESI Zustan ⁇
  • Figures 1 to 4 are intended to help illustrate the facts according to the invention. They do not claim to be complete. In this respect, the following description relates to a possible embodiment of the prior art and the invention.
  • FIG. 1 shows two groups with respective individual processors EP, each of which is connected to an additional cache memory CS via respective first buses BS1.
  • the respective additional cache memories CS are connected to a main memory component MEM via a common second bus BS2.
  • the second bus BS2 can also be referred to as a cache or system bus.
  • all types of I / O or connection systems for further system components can be connected to the second bus BS2.
  • no further systems are connected, at least in the drawing.
  • the first bus BS1 can be called a processor bus.
  • the processor system shown in FIG. 1 has a hierarchical structure. From the point of view of the additional cache memories CS, lower hierarchical levels are arranged in the direction of the first buses BS1 and higher in the direction of the second bus BS2.
  • connections between the individual processors EP and the respectively associated first bus BS1, between the first buses BS1 and the respective additional cache memories CS, between the additional cache memories CS and the second Bus BS2, and memory component between the second bus BS2, and the main ⁇ MEM are each bidirectionally det easilybil ⁇ so that between all the components in all directions and data exceeds codes other required information, and are portable.
  • the individual processors EP each have a cache memory internally and externally, which are not shown in detail in FIG. 1.
  • the cache hierarchy which is formed by the two cache memories of a single processor EP, is referred to below as the second level cache memory (SLC).
  • SLC second level cache memory
  • this also includes the associated single processor EP, which controls the two cache memories.
  • the two cache memories belonging internally and externally to the single processor EP are addressed.
  • the short designation SLC is used in FIGS. 2 to 4.
  • the additional caches CS are referred to as third level caches (TLC).
  • TLC third level caches
  • the short designation TLC is also used in FIGS. 2 to 4.
  • the short designation TLC is optionally used in the following instead of the term "additional cache memory CS".
  • Requests between the additional cache memories CS and the individual processors EP are to be regarded as internal requests, while requests between the additional cache memories CS and the main memory component MEM or the components otherwise coupled to the cache memory bus BS2, for example I / O components, are to be understood as external requirements.
  • Commands that initiate requests and their processing in the processor system and play a role in maintaining cache coherence can be, for example:
  • the state transition diagram shown in FIG. 2 is based on the fact that the cache protocol mentioned above works with four MESI states.
  • the state transition diagram shown in FIG. 3 is based on the fact that the cache protocol mentioned above works with extended MESI states. In the present case, the cache protocol works with 8 MESI states.
  • the state transition diagrams of FIGS. 2 and 3 can be seen from the perspective of a memory block of an additional cache memory CS.
  • the caches of the individual processors EP have corresponding state transition diagrams.
  • an internal RDS command directed to the additional cache memory CS with regard to these cache memory blocks ultimately leads to a state transition from state I to State S.
  • the entry is updated by the additional cache CS since the entry present in the additional cache memory CS is invalid. This requires inquiries from the other caches to determine where a current entry can be found. This process is also referred to below as TLC command.
  • TLC command After completion of the TLC command, the entry is stored as a shared, valid entry in the additional cache memory CS. The same applies if, with the same starting position, instead of the RDS command, provided that a such a possibility exists, a prefetch request is made.
  • the first line of the box in question shows that state I also prevails in state I in the TLC in SLC. This is because in the present exemplary embodiment of the TLC a superset does not necessarily have the actual entries but the information about the states of the entries of the connected SLC. The consequence of this is that only the same or less significant states always occur in the SLC. Conversely, that was to ⁇ in TLC always equal or higher quality than the stand to ⁇ the SLC.
  • a gradation of the MESI state with respect to this entry in the SLC by the associated single processor EP is therefore possible. This does not matter for the TLC, since the entry itself has not been changed and is therefore still valid overall.
  • the TLC noticed a change because the entry had to be brought into an E or M state beforehand by the individual processor concerned.
  • the RDS or prefetch command is not linked to a modification.
  • Behind the state S of an entry in the TLC there can actually be one of the MESI states I or S for a relevant entry with respect to this entry in the SLC, that is to say generally m lower cache hierarchies. This fact is indicated in the lower left box mentioned above in the second line.
  • the commands RDE or RDM request an exclusive entry from the TLC. Regardless of whether state I or S is previously noted for the entry in the TLC, the entry in the TLC is subsequently marked as state E. According to what has been said above, one of the states I, S, E or M can actually be assigned in the SLC for this entry. This is indicated in the lower left box m in the third line.
  • Each of the RDE or RDM commands causes a TLC command, that is, a bus request, since the TLC must ensure that the entry concerned is transferred before the entry is transferred TLC in the lower cache hierarchies of the processor system this entry is marked with the state I.
  • an SLC If an SLC has requested an entry from the TLC with the RDE or RDM command and then modified it, it must ensure that the modified entry is written back to the TLC with the WR command m. The TLC then marks the modified entry with the state M.
  • the requesting SLC can keep the entry modified and mark it as such. He can also write back the entry and, following the write-back, downgrade the state of the entry and only keep it in state E, for example. If the entry is requested or suppressed in the SLC, the entry can be either state S or get status I assigned by the SLC. This is possible because the state M is the most significant before the states E, S or I m in this order. The foregoing is indicated in the box m on the fourth line shown at the bottom left in FIG. 2.
  • the status for this entry in the TLC is not changed. If an RDM command is sent to the TLC, in an advantageous embodiment of the invention the status of the relevant entry can be carried out in place of the note M the note E. This has the advantage that in some cases the cache block is not read unnecessarily. Becomes a
  • the TLC When the cache block is requested by an individual processor EP with RDM located in a lower cache hierarchy, the TLC knows that the cache block is actually being changed. This information is part of the RDM requirement. If the cache block was not changed with certainty, it was requested with the RDE command. In other words, a cache block is loaded with an RDM If requested incorrectly, the requesting single processor or the associated SLC ultimately has the latest Exclusive data. If this fact is noted as such, the data is not searched for in the TLC when accessing this data, but immediately with a corresponding time saving in a connected SLC.
  • a second box is drawn at the bottom right in FIG. 2, in which the commands mentioned above are listed again.
  • the commands there are essential actions which are carried out for these commands with respect to the TLC or SLC on the basis of possible different initial states of a cache block in question.
  • the same box with the same meaning is also drawn under the state transition diagram in FIG. 3.
  • FIG. 3 shows a state transition diagram expanded compared to the state diagram in FIG. 2.
  • the state transition diagram according to FIG. 3 has the expanded states SI, ES, MI and MS.
  • the states II, SS, EM and MM proceed in the order given from the states I, S, E and M of the state transition diagram in FIG. 2.
  • the first letter of a state designation refers to the state in the TLC, while the second letter relates to the state in the SLC or m of a lower cache hierarchy level.
  • the entry EM has been selected as the entry for the state description of a cache memory block instead of the entry EE because, for example, starting from the states SI or SS, when an RDE command from an individual processor EP arrives at the TLC of the TLC, this is expected must, if a single processor EP requests a cache block Exclusive, it may also modify it. Since the TLC supersets the state situation tion in the system, he enters the new situation as EM.
  • this method optimizes the state transition diagram because a state situation does not have to be represented, for the data-technical coding of which an additional bit position may have to be provided.
  • Eight states can be encoded with three bit positions. With nine or more states, more than three bit positions are required.
  • Line 5 of the lower left box of FIG. 3 corresponds to line 3 in the lower left box of FIG. 2.
  • lines 1, 3 and 8 of the lower left box of FIG. 3 correspond to lines 1, 2 and 4 of the lower left box of FIG. 2. The correspondence is based on the principles mentioned above.
  • the status situation SI is noted in the lower left box of FIG. 3 m line 2.
  • the TLC assumes the MI state for this cache block.
  • the SLC has suppressed the entry and is no longer valid there.
  • the TLC comes into the same situation if it had a modified entry, i.e. was in the MM state for this entry, and the entry is written again with a WR command. Even then, the TLC assumes the MI state. In this state, the TLC knows that the entry in question can no longer be with an SLC, for example.
  • an external command is understood to be a command that is directed from the system bus side to the TLC.
  • One external command is an RDS command and the other an RDE command.
  • FIG. 4 shows the case of the extended MESI states in a lower part of the figure, and the case of the previous four MESI states in an upper part of the figure.
  • both the TLC and the SLC must be used for the RDE command to ensure that the state assigned to the relevant cache block is changed from S to I.
  • the cache block in question is then necessary for Exclusive to the side of the individual processors EP. This places a burden on the processor bus, which is therefore temporarily not available for other tasks.
  • a requirement on the processor side is not always necessary with regard to the RDE command. For example, if the status noted with regard to the requested entry at the TLC SI, it is no longer necessary to ensure from the TLC that a SLC in question changes its status note for the cache block in question to status I. The TLC already knows that the cache block in question is classified as I on the individual processor side. In this case, the processor side is no longer stressed. Ultimately, this means more processor power is available for other tasks.
  • the performance of the processor system can be increased by saving an unproductive performance. If, in the extended state model, a cache block has been assigned the state ES and an external RDS command is issued with regard to this cache block, further requests on the part of the TLC in the direction of lower cache hierarchies can be omitted. It is already known from the SLC that the cache block in question is already there in state S. The fact that the cache block in question is kept in the lower cache hierarchies in state S means that no modification has occurred in the lower cache hierarchies with respect to the cache block in question. It is therefore not possible for the lower cache hierarchies to get more up-to-date data. It is therefore not necessary to check whether more up-to-date data is available, nor must it be ensured that the status marking is changed.
  • the expanded state model allows a differentiation of the modified state.
  • the modified state is divided into the states MI, MS and MM.
  • an external RDS command is sent to the TLC, in the MI and MS cases, analogously to what was said earlier, any requirement on the part of lower cache hierarchies can be omitted.
  • an RDE command is present, at least it is not necessary to check whether newer data exists. Simple requirements in the direction of lower cache hierarchies are sufficient to ensure that the status identification for the relevant cache memory block is changed to I in the lower cache hierarchies.

Landscapes

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

Abstract

Zur Erhöhung der Leistungsfähigkeit von Prozessorsystemen bestehend aus einer grossen Zahl von Einzelprozessoren, das zur Aufrechterhaltung der Cachekohärenz innerhalb des Prozessorsystems sich des MESI-Zustandsmodells bedient, wird vorgeschlagen, das an sich auf vier Zustände begrenzte MESI-Zustandsmodell mit weiteren Zuständen zu erweitern. Die Zustandssituationen innerhalb des Prozessorsystems können auf diese Weise differenzierter behandelt und unnötige Buszugriffe vermieden werden. Die freiwerdende Bearbeitungskapazität kann zur Leistungssteigerung des Systems genutzt werden.

Description

Beschreibung
Einrichtung zur Erhöhung der Leistungsfähigkeit von Prozessorsystemen
Die Erfindung betrifft eine Einrichtung zur Erhöhung der Leistungsfähigkeit von Prozessorsystemen gemäß dem Oberbegriff des Anspruchs 1.
Große Server bestehen aus einem Prozessorsystem mit einer großen Anzahl von Einzelprozessoren. Die Anzahl der Einzelprozessoren betragt beispielsweise 16, 32, 64, 128 u.s.w.. solche Server sind als UNIX- oder als NT-Systeme bekannt. Die Einzelprozessoren haben heute meistens einen Cachespeicher bereits im Chip. Es wird daher auch von einem sogenannten On- Chip First Level Cachespeicher beziehungsweise von einem First Level Cachespeicher gesprochen. Den Einzelprozessoren können daneben außerhalb des Chips noch weitere Cachespeicher zugeordnet sein. Bei einem ersten weiteren solchen Cachespei- eher wird dann von einem sogenannten Off-Chip Second Level Cachespeicher beziehungsweise von einem Second Level Cachespeicher gesprochen. Neben den First und Second Level Cachespeichern können zusatzliche Chachespeicher vorgesehen sein, die dann beispielsweise als Third Level Cachespeicher bezeichnet werden.
Die zusatzlichen Cachespeicher sind insbesondere verwendet, um jeweils einzeln oder gruppenweise Einzelprozessoren zu einem Cluster zusammenfassen. Heutige Standardprozessoren er- lauben nur den Ausbau von jeweils bis zu vier Einzelprozessoren. Werden mehrere solche zusätzlichen Cachespeicher mit zum Beispiel jeweils vier Einzelprozessoren vorgesehen, können die oben erwähnten großen Prozessorsysteme aufgebaut werden. Die einzelnen zusätzlichen Cachespeicher müssen dabei cachekoharent miteinander verkoppelt sein. Die Verkopplung konnte Hierarchieabstufungen beinhalten, m denen nicht nur jeweils vier Einzelprozessoren, sondern jeweils auch mehrere zusatzliche Cachespeicher miteinander verkoppelt werden. Als Ergebnis wird ein Prozessorsystem mit einer großen Anzahl vor Einzelprozessoren erhalten, das eine große Leistungsfähigkeit hat.
Wie oben angesprochen, muss sich ein Prozessorsystem cachekoharent verhalten. Hierzu ist es möglich, die Bustransaktionen zu beobachten und zu interpretieren. Aus der Analyse der Bustransaktionen kann geschlossen werden, in welchen Zu- Standssituationen sich die Cachedatenblocke der von der Bustransaktion betroffenen Cachespeicher befinden. Ist bekannt, m welchen Zustandssituationen sich die Cachedatenblocke befinden, kann dafür gesorgt werden, dass innerhalb des Prozessorsystems Cachekoharenz hergestellt bzw. aufrechterhalten wird.
Die Beschreibung der Zustande der Cachedatenblocke kann mittels eines Cache-Protokolls erfolgen. Ein bekanntes Cache- Protokoll folgt dem sogenannten MESI-Standard. Gemäß dem MESI-Standard wird den einzelnen Cachedatenblocken einer von vier vordefinierten MESI-Zustanden zugeordnet. Die vier vor- defimerten MESI-Zustande sind: MODIFIED (M) , EXCLUSIVE (E) , SHARED (S) und INVALID (I) . Diese Zustande sind mit zwei MESI-Bits kodiert darstellbar.
MODIFIED bedeutet, dass der zugehörige Cachespeicherblock exklusiv im Cachespeicher enthalten ist, aber neu geschrieben worden ist. Er ist aktuell nicht im übrigen Prozessorsystem bekannt. EXCLUSIVE bedeutet, dass der zugehörige Cachespei- cherblock nicht verändert ist. Er stimmt mit dem Inhalt des
System-Hauptspeichers uberein. SHARED bedeutet, dass sich der zugehörige Cachespeicherblock noch m einem weiteren Cachespeicher befindet und noch gültig ist. INVALID bedeutet, dass der zugehörige Cachespeicherblock ungültig oder nicht im TAG- RAM des Speichers vorhanden ist. Der Zustand eines Cachespeicherblocks kann durch einen jeweilig zugeordneten Einzelprozessor über einen Lese- und Schreibvorgang abgeändert werden. Der Zustand kann auch durch ein systeminternes Abfragen, auch als Snooping bekannt, abge- ändert werden. Er kann ebenso von externen Logikeinheiten, z.B. einem anderen Einzelprozessor oder einem Second Level Cachespeicher, d.h. durch ein externes Snooping, abgeändert werden. In jedem Fall befindet sich zu jedem Zeitpunkt ein jeweiliger Cachespeicherblock nur in einem der vier genannten MESI-Zustände.
Eine genauere Funktionsbeschreibung des MESI-Protokolls ist beispielsweise im Internet unter der Internetadresse: http: //www.altavista. com/egi- bin/query?pg*=q&kl=de&q=MESI&search=Search, Punkt 1, "Pentium: Neuerungen in der x86 Architektur", zuletzt geändert am 28.3.1997 bzw. in der dazugehörigen Schrift im Internet mit der Internetadresse: http : //plweb.htu. tuwien. ac. at/pentium, Punkt 2.7.1 M.E.S.I. -Protokoll offenbart.
Eine Möglichkeit, die Cachekohärenz in einem Prozessorsystem mit zusätzlichen Cachespeichern zu gewährleisten ist, sicherzustellen, dass die zusätzlichen Cachespeicher eine Obermenge aller Cachedatenblöcke der mit ihnen direkt in Verbin- düng stehenden anderen Cachespeicher haben. Dazu ist es erforderlich, dass bei allen Verdrängungsvorgängen eine Update- Anforderung zum Beispiel an einen angeschlossenen Einzelprozessor bzw. dessen Cachespeicher gerichtet und ein vom Verdrängungsvorgang betroffener Cachespeicherblock zurückgefor- dert wird. Für derartige Update-Anforderungen bzw. deren Abarbeitung ist eine Systemleistung erforderlich, die einem Anwender nicht als Nutzleistung zur Verfügung steht. Die Leistungsfähigkeit des Gesamtsystems ist daher eingeschränkt.
Aufgabe der vorliegenden Erfindung ist es daher, technische Maßnahmen anzugeben, durch die die Leistungsfähigkeit insbesondere eines großen Prozessorsystems erhöht wird. Diese Aufgabe wird erfindungsgemäß durch eine Einrichtung im Prozessorsystem gelöst, die die Merkmale des Anspruchs 1 auf¬ weist.
Danach haben die zusätzlichen Cachespeicher nicht nur eine einfache Cachespeicherblock-Verwaltung über die Zustände M, E, S und I realisiert, sondern es ist eine kombinierte Zu- standsverwaltung zwischen jeweiligen zusätzlichen Cachespei- ehern bzw. den Cachespeichern der Einzelprozessoren realisiert. Diese kombinierte Zustandsverwaltung zeigt sich in der Erweiterung der MESI-Zustände des Cache-Protokolls der zusätzlichen Cachespeicher. Der Vorteil ist, dass eine erhöhte Anzahl von Update-Anforderungen (Requests) in Richtung andere Stellen im Prozessorsystem eingespart werden können, da auf Grund der erweiterten MESI-Zustände vorab entschieden werden kann, dass betreffende angeforderte Cachedatenblöcke nicht an den anderen Stellen im Prozessorsystem sein können. Der Leistungsaufwand, der für diese Update-Anforderungen bisher be- nötigt wurde, steht daher jetzt dem Prozessorsystem als Nutzleistung zur Verfügung. Die Leistungsfähigkeit des Prozessorsystems ist somit erhöht.
Zu einer Erhöhung der Leistungsfähigkeit des Prozessorsystems trägt außerdem der Umstand bei, dass auf Grund der erweiterten MESI-Zustände nochmals einige Fälle unterschieden werden können, in denen zwar Handlungen nötig sind, die aber insgesamt schneller erfüllt werden können. Beispielsweise gibt es Fälle, in denen zwar auf Grund einer vorausgehenden Update-Anforderung von einem Teil des Prozessorsystems an einen zusätzlichen Cachespeicher eine vom zusätzlichen Cachespeicher durchgeführte nachfolgende Update-Anforderung an niedrigere Cachehierarchien notwendig ist. Beispielsweise um zu erreichen, dass ein betreffender Cachespeicherblock den MESI-Zustand I zugewiesen bekommt. In den besagten Fällen kann aber auf Grund des vorliegenden erweiterten MESI-Zu- stands bekannt sein, dass vom betreffenden Cachespeicherblock nicht vorher noch modifizierte Daten zu übertragen sind. In diesen Fallen beispielsweise kann der zusätzliche Cachespei¬ cher dem die vorausgegangene Update-Anforderung initiierenden Teil des Prozessorsystems sofort mitteilen, dass die besagte MESI-Zuweisung erfolgt ist, obwohl diese Zuweisung vom zu¬ sätzlichen Cachespeicher tatsächlich erst in einer anschließenden Maßnahme veranlasst wird. Das Prozessorsystem braucht daher nicht bis zur Bestätigung des tatsächlichen Endes der Update-Anforderung warten, sondern kann sofort mit nächsten Aufgaben beginnen.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand von Unteranspruchen.
Danach ist ein Prozessorsystem bezüglich seiner Cachespeicherstruktur hierarchisch gegliedert, um durch Abfangen von Update-Anforderungen bereits an möglichst hohen Hierarchieebenen ein Maximum an eingesparten Update-Anforderungen m Richtung darunter liegender Hierarchieebenen zu erhalten.
Durch Auswahl geeigneter MESI-Zustande kann die Anzahl benö¬ tigter MESI-Zustande möglichst gering gehalten werden. Bei einer möglichst geringen Anzahl von MESI-Zustanden ist eine möglichst geringe Anzahl von Kodierungsstellen bei der digi- talen Kodierung der MESI-Zustande notig. Der Hardwareaufwand ist dadurch reduziert.
Nachfolgend wird die Erfindung anhand einer Zeichnung naher erläutert. Darin zeigen
Figur 1 eine Prinzipschaltung eines großen Prozessorsystems gemäß dem Stand der Technik, Figur 2 ein Zustandsubergangsdiagramm von MESI-Zustanden gemäß dem Stand der Technik, Figur 3 ein Zustandsubergangsdiagramm von erweiterten MESI- Zustanden gemäß der Erfindung, und Figur 4 eine Tabelle mit Situationen, in denen bei einer
Anwendung von erweiterten MESI-Zustanden gemäß der Figur 3 gegenüber einer Anwendung von MESI-Zustan¬ den gemäß der Figur 2 Systemleistung eingespart und als Nutzleistung von einem Prozessorsystem gemäß der Figur 1 genutzt werden kann.
Die Figuren 1 bis 4 sollen helfen, den erfmdungsgemaßen Sachverhalt darzustellen. Sie erheben keinen Anspruch auf Vollständigkeit. Insofern bezieht sich die nachfolgende Beschreibung auf eine mögliche Ausfuhrungsform des Standes der Technik und der Erfindung.
Figur 1 zeigt zwei Gruppen mit jeweiligen Einzelprozessoren EP, die über jeweilige erste Busse BSl mit jeweils einem zusatzlichen Cachespeicher CS verbunden sind. Die jeweiligen zusatzlichen Cachespeicher CS sind über einen gemeinsamen zweiten Bus BS2 mit einer Hauptspeicherkomponente MEM verbunden. Der zweite Bus BS2 kann auch als Cache- oder System-Bus bezeichnet werden. An den zweiten Bus BS2 können neben den zusatzlichen Cachespeichern können alle Arten von I/O- bzw. Verbindungssystemen zu weiterfuhrenden Systemkomponenten angeschlossen sein. Im vorliegenden Ausfuhrungsbeispiel sind zumindest zeichnerisch keine weiteren Systeme angeschlossen. So wie der zweite Bus BS2 als Cache- oder System-Bus bezeichnet werden kann, kann der erste Bus BSl als Prozessor-Bus bezeichnet werden.
Das m der Figur 1 gezeigte Prozessorsystem ist hierarchisch aufgebaut. Aus der Sicht der zusatzlichen Cachespeicher CS sind m Richtung erste Busse BSl niedrigere und m Richtung zweiter Bus BS2 höhere Hierarchiestufen angeordnet.
Die Verbindungen zwischen den Einzelprozessoren EP und dem jeweils zugehörigen ersten Bus BSl, zwischen den ersten Bussen BSl und den jeweiligen zusätzlichen Cachespeichern CS, zwischen den zusätzlichen Cachespeichern CS und dem zweiten Bus BS2, sowie zwischen dem zweiten Bus BS2 und der Haupt¬ speicherkomponente MEM sind jeweils bidirektional ausgebil¬ det, so dass zwischen allen Komponenten in allen Richtungen Daten und Codes und sonstige benötigte Informationen über- tragbar sind.
Die Einzelprozessoren EP haben intern und extern jeweils einen Cachespeicher, die in der Figur 1 nicht näher dargestellt sind. Die Cachehierarchie, die durch die beiden Cachespeicher eines Einzelprozessors EP zusammen gebildet wird, wird nachfolgend als Second Level Cachespeicher (SLC) bezeichnet. Soweit vom SLC gesprochen wird, ist darunter auch der zugehörige Einzelprozessor EP zu verstehen, der die beiden Cachespei- cher steuert. Umgekehrt sind, soweit ein Einzelprozessor EP angesprochen ist, die beiden intern und extern zu dem Einzelprozessor EP gehörenden Cachespeicher angesprochen.
Die Kurzbezeichnung SLC ist in den Figuren 2 bis 4 verwendet. Demgegenüber sind die zusätzlichen Cachespeicher CS als Third Level Cachespeicher (TLC) bezeichnet. Die Kurzbezeichnung TLC ist ebenfalls in den Figuren 2 bis 4 verwendet. Die Kurzbezeichnung TLC wird nachfolgend wahlweise an Stelle des Begriffs "zusätzliche Cachespeicher CS" verwendet.
Anforderungen (Requests) zwischen den zusätzlichen Cachespeichern CS und den Einzelprozessoren EP sind als interne Anforderungen aufzufassen, während Anforderungen zwischen den zusätzlichen Cachespeichern CS und der Hauptspeicherkomponente MEM bzw. der am Cachespeicherbus BS2 ansonsten angekoppel- ten Komponenten, zum Beispiel I/O-Komponenten, als externe Anforderungen aufzufassen sind.
Befehle, die Anforderungen und deren Abarbeitung im Prozessorsystem initiieren und bei der Aufrechterhaltung der Cache- kohärenz eine Rolle spielen, können zum Beispiel sein:
PREFETCH, READSHARED (RDS), READEXCLUSIVE (RDE), READMODIFIED (RDM) und WRITE (WR) . Diese Befehle verursachen Übergänge von Zustanden, die betroffenen Cachedatenblocke auf Grund eines nach dem MESI-Pπnzip arbeitenden Cache-Protokolls zur Aufrechterhaltung der Cachekoharenz zugeordnet sind. Mögliche Zustandsubergangsdiagramme sind den Figuren 2 und 3 zu ent- nehmen.
Das m der Figur 2 gezeigte Zustandsubergangsdiagramm basiert darauf, dass das oben angesprochene Cache-Protokoll mit vier MESI-Zustanden arbeitet. Das in der Figur 3 gezeigte Zu- standsubergangsdiagramm basiert darauf, dass das oben angesprochene Cache-Protokoll mit erweiterten MESI-Zustanden arbeitet. Im vorliegenden Fall arbeitet das Cache-Protokoll mit 8 MESI-Zustanden. Die Zustandsubergangsdiagramme der Figuren 2 und 3 sind aus der Sicht eines Speicherblocks eines zusatz- liehen Cachespeichers CS zu sehen. Die Cachespeicher der Einzelprozessoren EP haben entsprechende Zustandsubergangsdiagramme .
Die nachfolgende Beschreibung bezieht sich auf die Figur 2
Ausgehend von einem Zustand I eines betreffenden Cachespeicherblocks eines zusatzlichen Cachespeichers CS, der anzeigt, dass der Eintrag des betreffenden Cachespeicherblocks ungültig ist, fuhrt ein an den zusatzlichen Cachespeicher CS ge- richteter interner RDS-Befehl bezüglich diesen Cachespeicherblocks letztlich zu einem Zustandsubergang vom Zustand I zum Zustand S. Vorher wird aber der Eintrag, da der im zusatzlichen Cachespeicher CS vorliegende Eintrag ungültig ist, durch den zusätzlichen Cachespeicher CS aktualisiert. Dazu sind Nachfragen bei den anderen Cachespeichern notig, um festzustellen, wo ein aktueller Eintrag zu finden ist. Dieser Vorgang wird nachfolgend auch als TLC-Command bezeichnet. Nach Abschluss des TLC-Commands steht der Eintrag als ein gemeinsam genutzter, gültiger Eintrag im zusätzlichen Cachespeicher CS . Entsprechendes gilt, wenn bei gleicher Ausgangslage anstelle des RDS-Befehls, unter der Voraussetzung, dass eine solche Möglichkeit überhaupt gegeben ist, eine Prefetch- Anforderung durchgeführt wird.
In den Kästen unterhalb des Zustandsübergangsdiagramms ist im linken Kasten eine Aufstellung der möglichen vier Zustände gezeigt. Daneben sind für den SLC die in den jeweiligen Fällen möglichen Zustände gezeigt. Es sind auch die für den TLC möglichen Zustände gezeigt. Da die Betrachtung von einem TLC ausgeht, stimmen dieses Zustände mit den in der ersten Spalte des Kastens angegebenen Zustände überein. Wenn nachfolgend der Einfachheit halber auch nicht stets explizit angegeben, betreffen bei der Angabe von MESI-Zuständen jeweilige Cachespeicherblöcke in einem betreffenden Cachespeicher.
Der ersten Zeile des angesprochenen Kastens ist zu entnehmen, dass bei einem Zustand I im TLC im SLC ebenfalls der Zustand I vorherrscht. Dies ist deshalb so, weil im vorliegenden Ausführungsbeispiel der TLC eine Obermenge zwar nicht unbedingt der tatsächlichen Einträge aber der Informationen über die Zustände der Einträge der angeschlossenen SLC hat. Dies hat zur Folge, dass im SLC stets nur gleiche bzw. nied- rigwertigere Zustände auftreten. Umgekehrt gilt, dass der Zu¬ stand im TLC stets gleich oder höherwertiger ist, als der Zu¬ stand der SLC.
Eine Ausnahme bildet der Zustand Exclusive, da dieser Zustand im wesentlich nur dann sinnvoll ist, wenn zumindest beabsichtigt ist, den betreffenden Eintrag zu modifizieren. Da der TLC bei einer Exclusive-Anforderung nicht weiß, ob der ange- forderte Eintrag tatsächlich modifiziert wird, hat er trotzdem davon auszugehen, dass der Eintrag modifiziert wird. Bei einer Exclusive-Anforderung kann daher der tatsächliche Zustand in einem SLC auch M sein. Dieser Umstand spielt keine Rolle, weil eine Modify-Anforderung letztlich eine Exclusive- Anforderung ist, lediglich mit der Bestimmtheit, dass der Eintrag modifiziert wird. Ist ein Eintrag im TLC bereits als S markiert und ergeht an den TLC ein RDS-Befehl bezüglich dieses Eintrags, ändert sich der MESI-Zustand des Eintrags nicht. Auf der anderen Seite kann aber der Eintrag m einem SLC, nachdem er vom TLC geholt worden ist, wieder verworfen werden. Eine Abstufung des MESI- Zustandes bezüglich dieses Eintrags im SLC durch den zugehörigen Einzelprozessor EP ist daher möglich. Dies spielt für den TLC keine Rolle, da der Eintrag selbst nicht verändert wurde und somit insgesamt noch Gültigkeit hat. Eine Verande- rung wurde der TLC bemerken, weil dazu vorher der Eintrag durch den betreffenden Einzelprozessor in einen E- bzw. M- Zustand gebracht worden sein muss. Mit dem RDS- oder Pre- fetch-Befehl ist keine Berechtigung einer Modifizierung verbunden. Hinter dem Zustand S eines Eintrags im TLC kann daher bezuglich dieses Eintrags im SLC, das heißt allgemein m niedrigeren Cachehierarchien tatsächlich einer der MESI- Zustande I oder S für einen betreffenden Eintrag stehen. Dieser Sachverhalt ist m dem oben angesprochenen unteren linken Kasten m der zweiten Zeile angegeben.
Dieses Prinzip gilt auch für die nachfolgenden Betrachtungen, weshalb dort nicht mehr stets m dieser Ausführlichkeit eingegangen wird.
Die Befehle RDE oder RDM fordern vom TLC einen Eintrag Exclu- sive an. Unabhängig davon, ob für den Eintrag vorher im TLC der Zustand I oder S vorgemerkt ist, wird nachfolgend der Eintrag im TLC als Zustand E markiert. Gemäß dem oben Gesagten kann im SLC für diesen Eintrag letztlich tatsachlich ei- ner der Zustande I, S, E oder M zugeordnet sein. Dieser Sachverhalt ist m dem unteren linken Kasten m der dritten Zeile angegeben.
Jeder der Befehle RDE oder RDM bewirkt ein TLC-Command, das heißt ein Bus-Request, da der TLC vor der Übergabe des Eintrags dafür sorgen muss, dass ausgehend von dem betreffenden TLC in den niedrigeren Cachehierarchien des Prozessorsystems dieser Eintrag mit dem Zustand I markiert wird.
Hat ein SLC einen Eintrag des TLC mit dem Befehl RDE oder RDM angefordert und dann modifiziert, hat er dafür zu sorgen, dass der modifizierte Eintrag wieder mit dem WR-Befehl m den TLC zurückgeschrieben wird. Der TLC markiert daraufhin den modifizierten Eintrag mit dem Zustand M.
Nach dem modifizieren des angeforderten Eintrags kann der anfordernde SLC den Eintrag modifiziert behalten und als solchen kennzeichnen. Er kann den Eintrag auch zurückschreiben und m Folge des Zuruckschreibens den Zustand des Eintrags herabstufen und ihn nur noch zum Beispiel im Zustand E fuh- ren. Sollte der Eintrag im SLC angefordert oder verdrangt werden, kann der Eintrag m entsprechender Weise entweder den Zustand S oder den Zustand I vom SLC zugewiesen bekommen. Dies ist möglich, weil der Zustand M vor den Zustanden E, S oder I m dieser Reihenfolge am höchstwertigen ist. Der vor- stehende Sachverhalt ist m dem m der Figur 2 unten links angegebenen Kasten m der vierten Zeile angegeben.
Ergeht an den TLC ein RDS-, RDE- oder WR-Befehl bezüglich des betreffenden Cachespeicherblocks mit dem Zustand M, wird der Zustand zu diesem Eintrag im TLC nicht verändert. Ergeht an den TLC ein RDM-Befehl, kann m einer vorteilhaften Ausfuhrungsform der Erfindung der Zustand zum betreffenden Eintrag an Stelle des Vermerks M der Vermerk E gefuhrt werden. Dies hat den Vorteil, dass m manchen Fallen der Cachespeicher- block nicht m unnötiger Weise gelesen wird. Wird ein
Cachespeicherblock von einem m einer niedrigeren Cachehierarchie angeordneten Einzelprozessor EP mit RDM angefordert, weiß der TLC, dass der Cachespeicherblock tatsächlich verändert wird. Diese Information ist Teil der RDM-Anforderung. Wurde der Cachespeicherblock nicht mit Sicherheit verändert werden, wurde er mit dem RDE-Befehl angefordert werden. Mit anderen Worten, wird ein Cachespeicherblock mit einem RDM-Be- fehl angefordert, hat letztlich der anfordernde Einzelprozessor bzw. der zugehörige SLC die neuesten Daten Exclusive. Wird dieser Sachverhalt gleich als solcher Vermerkt, werden die Daten bei einem Zugriff auf diese Daten nicht erst im TLC gesucht, sondern sofort mit einem entsprechenden Zeitgewinn m einem angeschlossenen SLC.
In der Figur 2 ist unten rechts ein zweiter Kasten gezeichnet, m dem die oben angesprochenen Befehle nochmals aufge- fuhrt sind. Neben den Befehlen stehen wesentliche Aktionen, die bei diesen Befehlen bezüglich des TLC bzw. SLC ausgehend von möglichen unterschiedlichen Ausgangszustanden eines betreffenden Cachespeicherblocks durchgeführt werden. Gleicher Kasten mit gleicher Bedeutung ist auch unter dem Zustands- ubergangsdiagramm der Figur 3 gezeichnet.
In der Figur 3 ist ein gegenüber dem Zustandsdiagramm der Figur 2 erweitertes Zustandsubergangsdiagramm zu sehen. Das Zustandsubergangsdiagramm gemäß der Figur 3 hat die erweiterten Zustande SI, ES, MI und MS. Die Zustande II, SS, EM und MM gehen m der angegebenen Reihenfolge von den Zustanden I, S, E und M des Zustandsubergangsdiagramms der Figur 2 aus.
Der erste Buchstabe einer Zustandsbezeichnung bezieht sich auf den Zustand im TLC, wahrend sich der zweite Buchstabe auf den Zustand im SLC bzw. m einer niedrigeren Cachehierarchie- stufe bezieht.
Im Ausfuhrungsbeispiel ist als Eintrag für die Zustandsbe- Schreibung eines Cachespeicherblocks an Stelle des Eintrags EE der Eintrag EM gewählt, weil zum Beispiel ausgehend von den Zustanden SI bzw. SS bei Ankommen eines RDE-Befehls seitens eines Einzelprozessors EP an den TLC der TLC damit rechnen muss, dass wenn ein Einzelprozessor EP einen Cachespei- cherblock Exclusive anfordert, er ihn möglicherweise auch modifiziert. Da der TLC die Obermenge über die Zustandssitua- tion im System zu behalten hat, trägt er sich die neue Situation als EM ein.
Im Falle, dass der betreffende Cachespeicherblock gleich mit einem RDM-Befehl von einem Einzelprozessor EP angefordert wird, ist die Situation soweit klar, dass der angeforderte Cachespeicherblock modifiziert wird. Der Eintrag EM bezüglich des angeforderten Cachespeicherblocks ist daher folgerichtig.
Insgesamt wird mit dieser Methode eine Optimierung des Zu- standsübergangsdiagramms erzielt, weil eine Zustandssituation nicht dargestellt werden muss, für deren datentechnische Codierung möglicherweise eine zusätzliche Bitstelle bereitgestellt werden muss. Acht Zustände lassen sich mit drei Bitstellen kodieren. Bei neun und mehr Zuständen sind mehr als drei Bitstellen nötig.
Bei einer Exclusive-Anforderung (RDE-Befehl) eines Cachespeicherblocks durch einen Einzelprozessor EP ist es, wie oben angesprochen nicht zwingend, dass der Cachespeicherblock modifiziert wird. Der anfordernde Einzelprozessor EP hat den betreffenden Cachespeicherblock Exclusive und kann letztlich alle möglichen Varianten der Behandlung durchführen. Er kann ihn beispielsweise an andere Stellen weitergeben oder ihn verdrängen. Im ersten Fall hätte der TLC für den betreffenden Cachespeicherblock den Zustand ES reservieren müssen, im zweiten Fall als EI. Alle diese Fälle deckt der TLC mit der Zustandsbeschreibung EM ab, weil diese die Sicherheit gibt, dass bezüglich des betreffenden Cachespeicherblocks auf jeden Fall dann erhalten wird, wenn er sich an den betreffenden
Einzelprozessor EP wendet. Die vorgenannten Fälle sind in dem linken unteren Kasten der Figur 3 in Zeile fünf vermerkt.
Die Zeile 5 des linken unteren Kastens der Figur 3 entspricht der Zeile 3 im linken unteren Kasten der Figur 2. Außerdem entsprechen in der angegebenen Reihenfolge die Zeilen 1, 3 und 8 des unteren linken Kastens der Figur 3 den Zeilen 1, 2 und 4 des linken unteren Kastens der Figur 2. Den Entsprechungen sind jeweils die oben erwähnten Prinzipien zu Grunde gelegt .
Da die Prinzipien, die dem Zustandsubergangsdiagramm der Fi¬ gur 2 zu Grunde liegen, auch dem Zustandsubergangsdiagramm der Figur 3 zu Grunde liegen, beschrankt sich die Beschreibung des Zustandsubergangsdiagramms der Figur 3 im wesentlichen auf die Beschreibung der Unterschiede. Die einzelnen Zu- standsubergange und die Einnahme von Zustanden bei Vorliegen entsprechender Befehle können der Figur 3 entnommen werden.
Gemäß des Zustandsubergangsdiagramms der Figur 3 gibt es bezüglich eines TLC zwei Shared-, zwei Exclusive- und drei Mo- dified-Zustande . Bei Prefetch-Anforderungen ist beispielsweise klar, dass ein in den TLC geholter Eintrag nur im betreffenden TLC vorhanden ist. Für diese Situation trifft die Zustandsbeschreibung SI zu. Wird dieser Sonderfall, außer dem es noch andere geben kann, extra markiert, kann bei Anforde- rungen nach diesem Eintrag auf eine Anfrage auf anderen Ebenen verzichtet werden. Dadurch wird auf Seiten der ersten Busse BSl Kapazität frei, die für andere Bearbeitungen durch die Einzelprozessoren EP zur Leistungssteigerung des Prozessorsystems genutzt werden können.
Die Zustandssituation SI ist im linken unteren Kasten der Figur 3 m Zeile 2 notiert.
Bei den Exclusive-Zustanden gibt es bezüglich der TLC den zu- satzlichen Zustand ES. Dieser Zustand wird beispielsweise erhalten, wenn ein im TLC Exclusive vorliegender Eintrag von einem SLC Shared gelesen wird. In diesem Fall behalt der TLC den Zustand E bei und vermerkt den Cachespeicherblock bei sich für den SLC als Zustand S. Der TLC weiß dann, dass der Zustand im SLC tatsachlich nur S oder I sein kann. Der Zustand kann nicht M oder E sein, weil eine solche Berechtigungsanfrage nicht ergangen ist. Der Eintrag kann also auf keinen Fall verändert sein. Der Vorteil durch dieses Wissen wird im Zusammenhang mit der Figur 4 naher erläutert.
Die möglichen Zustande für die SLC-Ebene sind im linken un- teren Kasten der Figur 3 in Zeile 4 angegeben.
Neben der Zustandsbeschreibung MM sind die erweiterten Zu- standssituationen MI und MS in der Figur 3 angegeben.
Hatte sich ein SLC einen Eintrag des TLC Exclusive geholt, modifiziert und dann mit dem WR-Befehl m den TLC zurückgeschrieben, dann nimmt der TLC für diesen Cachespeicherblock den Zustand MI ein. Der SLC hat den Eintrag verdrangt und ist dort nicht mehr gültig. In die gleiche Situation gelangt der TLC, wenn er einen modifizierten Eintrag hatte, also für diesen Eintrag im Zustand MM war, und auf den Eintrag nochmals mit einem WR-Befehl geschrieben wird. Auch dann nimmt der TLC den Zustand MI ein. In diesem Zustand weiß der TLC, dass der betreffende Eintrag nicht mehr beispielsweise bei einem SLC sein kann.
Diese Situation ist im linken unteren Kasten der Figur 3 m der Zeile 6 notiert.
Schließlich gibt es noch den erweiterten Zustand MS, der unabhängig davon auftritt, ob für einen SLC der Zustand I oder M eingetragen ist. Der Zustand MS tritt auf, wenn von einem SLC Shared gelesen wird. Wie oben schon mehrfach angesprochen, kann aber ein SLC nach einer entsprechenden Aktion ei- nen logisch gesehen herabgesetzten Zustand verursachen, so dass letztlich hinter der Zustandsbeschreibung MS für einen betreffenden SLC einer der Zustande I oder S stehen kann.
Dieser Sachverhalt ist im linken unteren Kasten der Figur 3 m Zeile 7 notiert. Der Vorteil der erweiterten Cachezustände liegt darin, dass der TLC eine tiefergehende Kenntnis über die Zustandssitua- tion innerhalb des Prozessorsystems hat, die es ihm ermög¬ licht, beispielsweise die an die Einzelprozessoren EP ge- richteten Anforderungen gezielter weiterzuleiten bzw. abzu¬ fangen. Letzteres kann erfolgen, weil die Anforderungen vom TLC selbst abgehandelt werden können. Die Auslastung der Pro¬ zessorseite wird dadurch verringert. Die Einzelprozessoren EP können verstärkt Aufgaben zur Steigerung der Wirkleistung des Prozessorsystems warnehmen.
In Figur 4 sind einige Fälle dargestellt, in welchen Einsparungen bezüglich von Anforderungen an die Prozessorseite mög¬ lich sind.
Als Beispiel sind zwei externe Befehle herangezogen worden. Unter einem externen Befehl ist, wie früher schon erwähnt, ein Befehl zu verstehen, der von der Systembusseite an den TLC gerichtet wird. Der eine externe Befehl ist ein RDS- und der andere ein RDE-Befehl.
In der Figur 4 ist in einem unteren Teil der Figur der Fall der erweiterten MESI-Zustände in einem oberen Teil der Figur der Fall der bisherigen vier MESI-Zustände gegenübergestellt.
Im Fall, dass ein Cachespeicherblock im TLC den Zustand I bzw. II hat, ist das Ergebnis in beiden Fällen das gleiche. In beiden Fällen sind keine Maßnahmen durchzuführen. In beiden Fällen liegt ein sogenannter MISS-Fall vor, das heißt, es können keine Daten geliefert werden.
Ist der Zustand des vom RDS- bzw. RDE-Befehl betroffenen Eintrags im TLC als S markiert, dann sind bei einem RDS-Befehl sowohl beim vierer als auch beim erweiterten Zustandsmodell keine Maßnahmen nötig, weil der Eintrag im TLC bereits S ist. Bezüglich des erweiterten Zustandsmodells macht es keinen Un- terschied, ob tatsächlich der Zustand SI oder SS vorgelegen hat.
Beim RDE-Befehl ist beim vierer Zustandsmodell sowohl bezüg- lieh des TLC als auch des SLC dafür zu sorgen, dass der dem betreffenden Cachespeicherblock zugewiesene Zustand von S nach I abgeändert wird. Der betreffende Cachespeicherblock ist dann Exclusive für an die Seite der Einzelprozessoren EP notwendig. Dies belastet den Prozessorbus, der deshalb für andere Aufgaben zeitweise nicht zur Verfügung steht.
Beim erweiterten Zustandsmodell ist bezüglich des RDE-Befehls nicht immer eine Anforderung an die Prozessorseite nötig. War zum Beispiel der vermerkte Zustand bezüglich des an- geforderten Eintrags beim TLC SI, ist es nicht mehr nötig, vom TLC aus dafür zu sorgen, dass ein betreffender SLC seinen Zustandsvermerk zum betreffenden Cachespeicherblock in den Zustand I abändert. Der TLC weiß bereits, dass der betreffende Cachespeicherblock auf Seiten der Einzelprozessoren als I eingestuft ist. In diesem Fall wird also die Prozessorseite nicht mehr extra belastet. Letztlich steht dadurch mehr Prozessorleistung für andere Aufgaben zur Verfügung.
Ist der Zustand des vom RDS- bzw. RDE-Befehl betroffenen Ein- trags im TLC E, ist es beim vierer Zustandsmodell und RDS-Befehl, bevor dafür gesorgt wird, dass ein betreffender Cachespeicherblock im TLC und in den niedrigeren Cachehierarchien den Zustand S zugewiesen bekommt, erforderlich, nachzusehen, ob nicht irgendwo im Prozessorsystem zwischenzeit- lieh neuere Daten zum betreffenden Cachespeicherblock vorliegen, da, wie oben schon erwähnt, ein als Exclusive angeforderter Cachespeicherblock später bei entsprechenden weiteren Aktionen durch die anfordernde Einheit in einen der Zustände M, E, S oder I gebracht werden konnte. Die Prozessor- seite wird daher in diesem Fall nicht produktiv belastet. Entsprechendes gilt beim RDE-Befehl mit dem Unterschied, dass die SLC-Emheiten dazu gebracht werden müssen, den betreffen¬ den Cachespeicherblock mit dem Zustand I zu kennzeichnen. Auch hier wird die Prozessorseite unproduktiv belastet.
Mit dem erweiterten Zustandsmodell kann die Leistung des Prozessorsystems gesteigert werden, indem eine unproduktive Leistung eingespart wird. Hat beim erweiterten Zustandsmodell ein Cachespeicherblock den Zustand ES zugewiesen und erfolgt bezüglich dieses Cachespeicherblocks ein externer RDS-Befehl, können weitere Veranlassungen seitens des TLC in Richtung niedrigere Cachehierarchien entfallen. Über die SLC ist bereits bekannt, dass der betreffende Cachespeicherblock dort schon im Zustand S gefuhrt ist. Durch die Tatsache, dass der betreffende Cachespeicherblock m den niedrigeren Cachehierarchien im Zustand S gefuhrt ist, ist bekannt, dass m den niedrigeren Cachehierarchien keine Modifizierung bezüglich des betreffenden Cachespeicherblocks passiert ist. Es können also von Seiten der niedrigeren Cachehierarchien her keine aktuelleren Daten geholt werden. Es braucht somit weder nachgeprüft werden, ob aktuellere Daten vorliegen, noch muss dafür gesorgt werden, dass eine Änderung der Zustandskennzeichnung erfolgt.
Ausgehend von der Zustandskennzeichnung ES beim TLC und einem vorliegenden externen RDE-Befehl ist, da, wie oben beschrieben, bekannt ist, dass keine neueren Daten vorliegen können, lediglich dafür zu sorgen, dass der Cachespeicherblock m den niedrigeren Cachehierarchien mit I gekennzeichnet wird. Dafür ist nur eine einfache Anforderung an die Seite der niedrigeren Cachehierarchien erforderlich. Insgesamt ist die unproduktive Leistung des Prozessorsystems geringer, als wenn, wie im vierer Zustandsmodell, noch zusatzlich vorher nachgeprüft werden muss, ob möglicherweise noch neuere Daten vorliegen.
Besonders deutlich wird das Einsparungspotential m dem Fall, m dem im TLC Cachespeicherblocke im Zustand M gefuhrt sind. Bezüglich des vierer Zustandsmodells, bei dem keine tiefergehende Unterteilung des Modified-Zustands getroffen ist, gilt sowohl für den RDS- als auch für den RDE-Befehl, dass stets alle Maßnahmen getroffen werden müssen, um entweder zu prü- fen, ob nicht noch neuere Daten existieren, bevor dann veran- lasst wird, dass der betreffende Cachespeicherblock mit dem Zustand S bzw. I gekennzeichnet wird.
Das erweiterte Zustandsmodell läßt eine Differenzierung des Modified-Zustands zu. Im vorliegenden Ausführungsbeispiel ist der Modified-Zustand in die Zustände MI, MS und MM unterteilt. Im Falle, dass ein externer RDS-Befehl an den TLC gerichtet wird, kann in den Fällen MI und MS in Analogie zum früher Gesagten jegliche Anforderung an die Seite niedrigere Cachehierarchien entfallen. Bei Vorliegen eines RDE-Befehls kann braucht zumindest nicht nachgeprüft werden, ob neuere Daten existieren. Es genügen einfache Anforderungen in Richtung niedrigere Cachehierarchien, durch die dafür gesorgt wird, dass in den niedrigeren Cachehierarchien die Zustands- kennzeichnung zum betreffenden Cachespeicherblock in I abgeändert wird.
In der Figur 4 sind die Positionen, bei denen Maßnahmen gar nicht oder nur eingeschränkt notwendig sind, mit einem Ausru- fezeichen gekennzeichnet. In Bezug auf diese Positionen können unproduktive Belastungen des Prozessorsystems eingespart werden.

Claims

Patentansprüche
1. Einrichtung zur Erhöhung der Leistungsfähigkeit von Pro¬ zessorsystemen bestehend aus einer großen Zahl von Einzelpro- zessoren und mehreren Cachespeichern, die zur Aufrechterhaltung von Cachekohärenz untereinander für die Verarbeitung eines nach einem MESI-Standard arbeitenden Cache-Protokolls ausgelegt sind, dadurch gekennzeichnet, dass das nach dem MESI-Standard arbeitende Cache-Protokoll in der Weise konfiguriert ist, dass bei der Anzeige von MESI-Zu- ständen wenigstens zum Teil eine Mehrfachanzeige gegeben ist in der Weise, dass wenigstens jeweils sowohl der MESI-Zustand eines betreffenden Cachespeichers (CS) als auch der MESI-Zustand eines daran angeschalteten Einzelprozessors (EP) be- ziehungsweise eines daran angeschalteten anderen Cache-Speichers (CS) angezeigt ist.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, dass das Prozessorsystem Einzelprozessoren (EP) hat, die wenigstens zum Teil zugehörige erste bzw. erste und zweite Cachespeicher haben, und dass das Prozessorsystem zusätzliche Cachespeicher (CS) hat, die wenigstens in einer ersten Hierarchiestufe angeordnet sind und an die einzeln oder gruppenweise, rein oder gemischt Einzelprozessoren (EP) bzw. weitere zusätzliche Cachespeicher (CS) angeschaltet sind.
3. Einrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass durch die Mehrfachanzeige MESI-Zu- Standskombinationen wie II, SI, SS, EM, ES, MI, MS oder MM angezeigt sind.
EP00908968A 1999-02-26 2000-02-01 Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen Withdrawn EP1163587A1 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19908415 1999-02-26
DE19908415 1999-02-26
PCT/DE2000/000285 WO2000052582A1 (de) 1999-02-26 2000-02-01 Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen

Publications (1)

Publication Number Publication Date
EP1163587A1 true EP1163587A1 (de) 2001-12-19

Family

ID=7899003

Family Applications (1)

Application Number Title Priority Date Filing Date
EP00908968A Withdrawn EP1163587A1 (de) 1999-02-26 2000-02-01 Einrichtung zur erhöhung der leistungsfähigkeit von prozessorsystemen

Country Status (3)

Country Link
EP (1) EP1163587A1 (de)
TW (1) TW502163B (de)
WO (1) WO2000052582A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484044B2 (en) * 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
US20070150663A1 (en) 2005-12-27 2007-06-28 Abraham Mendelson Device, system and method of multi-state cache coherence scheme

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715428A (en) * 1994-02-28 1998-02-03 Intel Corporation Apparatus for maintaining multilevel cache hierarchy coherency in a multiprocessor computer system
JP3919224B2 (ja) * 1996-01-25 2007-05-23 ユニシス・コーポレイション マルチレベル分散データ処理システムにおいて読出コマンドを実行しデータ語を変更するための方法および回路

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
TW502163B (en) 2002-09-11
WO2000052582A1 (de) 2000-09-08

Similar Documents

Publication Publication Date Title
DE69732938T2 (de) Hybrides Speicherzugangsprotokoll in einem Datenverarbeitungssystem mit verteiltem, gemeinsamem Speicher
DE69530776T2 (de) Zweiwege set-assoziativer cache-speicher
DE10394081B4 (de) Verfahren und Vorrichtung zum Einprägen von Schreibdaten in einen Cache-Speicher
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE69628127T2 (de) Verfahren und Gerät um die Kohärenz in einem Multiprozessorsystem anzuzeigen
DE10232926B4 (de) Verfahren zum Aufrechterhalten der Kohärenz in einer hierarchischen Cacheanordnung eines Computersystems
DE102009023898B4 (de) Optimierung von gleichzeitigen Zugriffen in einem verzeichnisbasierten Kohärenzprotokoll
DE69906585T2 (de) Datenverarbeitungssystem mit nichtuniformen speicherzugriffen (numa) mit spekulativer weiterleitung einer leseanforderung an einen entfernten verarbeitungsknoten
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE112008002018B4 (de) Bereitstellen eines gemeinsam genutzten Inklusiv-Cache bei Mehrkern-Cache-Clustern
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE2260353A1 (de) Verfahren und vorrichtung zur speichersteuerung und adressenumsetzung
DE19732011A1 (de) Verfahren zum ortstransparenten Austausch von Prozeßdaten
DE2847216A1 (de) Datenverarbeitungssystem mit mehrprogrammbetrieb
DE3502147C2 (de)
DE69724879T2 (de) Verfahren und Vorrichtung für einen Kohärenzumwandler zur Verbindung von Rechnersystemkohärenzdomänen
EP1249744A1 (de) Verfahren zum Herstellen konsistenter Speicherinhalte in redundanten Systemen
DE69721641T2 (de) Verfahren und Vorrichtung für ein verzeichnisloses Speicherzugriffsprotokoll in einem Rechnersystem mit verteiltem gemeinsamen Speicher
DE69723500T2 (de) Datenqualitätsverwaltungssystem
DE69822364T2 (de) Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen
DE102020108666A1 (de) Cache-kohärenz-management für multi-kategorie-erinnerungen
DE102021108294B4 (de) System und verfahren für skalierbare hardware-kohärente speicherknoten
DE19538448B4 (de) Datenbankmanagementsystem sowie Datenübertragungsverfahren
EP0265636A1 (de) Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20010726

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE

17Q First examination report despatched

Effective date: 20011220

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: FUJITSU SIEMENS COMPUTERS GMBH

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

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

18D Application deemed to be withdrawn

Effective date: 20110901