Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR CONTROLLING A MEMORY ACCESS OPERATION IN A COMPUTER SYSTEM HAVING AT LEAST TWO EXECUTION UNITS
Document Type and Number:
WIPO Patent Application WO/2007/017390
Kind Code:
A1
Abstract:
Method and apparatus for controlling a memory access operation in a computer system having at least two execution units, wherein a buffer store, in particular a cache, is provided for each execution unit and changeover means and comparison means are also provided, and wherein the system changes over between a performance mode and a comparison mode, characterized in that, in the performance mode, each execution unit accesses the buffer store that is respectively assigned to it and, in the comparison mode, both execution units access one buffer store.

Inventors:
WEIBERLE REINHARD (DE)
MUELLER BERND (DE)
BOEHL EBERHARD (DE)
COLLANI YORCK (DE)
GMEHLICH RAINER (DE)
Application Number:
PCT/EP2006/064700
Publication Date:
February 15, 2007
Filing Date:
July 26, 2006
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
WEIBERLE REINHARD (DE)
MUELLER BERND (DE)
BOEHL EBERHARD (DE)
COLLANI YORCK (DE)
GMEHLICH RAINER (DE)
International Classes:
G06F12/08; G06F11/16; G06F12/0842
Foreign References:
US6640313B12003-10-28
EP0863464A11998-09-09
US20040059875A12004-03-25
US6385755B12002-05-07
US5822767A1998-10-13
Attorney, Agent or Firm:
ROBERT BOSCH GMBH (Stuttgart, DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei je Ausführungseinheit ein Zwischenspeicher, insbesondere ein Cache vorgesehen ist und weiterhin Umschaltmittel und Ver- gleichsmittel vorgesehen sind, wobei zwischen einem Performanzmodus und einem

Vergleichsmodus umgeschaltet wird, dadurch gekennzeichnet, dass im Performanzmodus jede Ausführungseinheit auf den dieser jeweils zugeordneten Zwischenspeicher zugreift und im Vergleichsmodus beide Ausführungseinheiten auf einen Zwischenspeicher zugreifen.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Zwischenspeicher auf den im Vergleichsmodus von beiden Ausführungseinheiten zugegriffen wird dem Zwischenspeicher einer Ausführungseinheit entspricht.

3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass wenigstens ein zusätzlicher Zwischenspeicher, insbesondere ein zusätzlicher Cache, vorgesehen ist und im Vergleichsmodus von beiden Ausführungseinheiten auf diesen zusätzlichen Zwischenspeicher zugegriffen wird.

4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass wenigstens ein zusätzlicher Zwischenspeicher vorgesehen ist und der Zwischenspeicher auf den beide Ausführungseinheiten im Vergleichsmodus zugreifen sich aus dem zusätzlichen Zwischenspeicher und einem Zwischenspeicher einer Ausführungseinheit zusammensetzt.

5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass im Vergleichsmodus auf den einer Ausführungseinheit zugeordneten Speicher nur lesend zugegriffen werden kann.

6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler ein Zugriff auf den Zwischenspeicher verhindert wird.

7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler Informationen im Zwischenspeicher ungültig gemacht oder gesperrt werden.

8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler das Rechnersystem neu oder wieder gestartet wird.

9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler wenigstens eine Ausführungseinheit neu oder wieder gestartet wird.

10. Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten, wobei je Ausführungseinheit ein Zwischenspeicher, insbesondere ein Cache vorgesehen ist und weiterhin Umschaltmittel und Vergleichsmittel vorgesehen sind, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird, dadurch gekennzeichnet, dass Mittel enthalten sind, die derart ausgebildet sind dass im Performanzmodus jede Ausführungseinheit auf den dieser jeweils zugeordneten Zwischenspeicher zugreift und im Vergleichsmodus beide Ausführungseinheiten auf einen Zwischenspeicher zugreifen.

11. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass der Zwischenspeicher auf den im Vergleichsmodus von beiden Ausführungseinheiten zugegriffen wird dem Zwischenspeicher einer Ausführungseinheit entspricht.

12. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass wenigstens ein zusätz- licher Zwischenspeicher, insbesondere ein zusätzlicher Cache, vorgesehen ist und im

Vergleichsmodus von beiden Ausfiihrungseinheiten auf diesen zusätzlichen Zwischenspeicher zugegriffen wird.

13. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass wenigstens ein zusätz- licher Zwischenspeicher vorgesehen ist und der Zwischenspeicher auf den beide Ausführungseinheiten im Vergleichsmodus zugreifen sich aus dem zusätzlichen Zwischenspeicher und einem Zwischenspeicher einer Ausführungseinheit zusammensetzt.

14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass die Vorrichtung derart ausgebildet ist, dass im Vergleichsmodus auf den einer Ausführungseinheit zugeordneten Speicher nur lesend zugegriffen werden kann.

15. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese im Vergleichsmodus Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkennen und bei Fehler einen Zugriff auf den Zwischenspeicher verhindern.

16. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese im Vergleichsmodus Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkennen und bei Fehler Informationen im Zwischenspeicher ungültig machen oder sperren.

17. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Vergleichsmittel zwischen wenigstens einer Ausführungseinheit und den Zwischenspeichern lokalisiert sind.

18. Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, dass die Zwischenspeicher zwischen wenigstens einer Ausführungseinheit und den Vergleichsmitteln lokalisiert sind.

19. Vorrichtung nach Anspruch 10 und 17 oder 10 und 18, dadurch gekennzeichnet, dass die Umschaltmittel und die Vergleichsmittel als eine Umschalt- und Vergleichseinheit realisiert sind.

Description:

Verfahren und Vorrichtung zur Steuerung eines Speicherzugriffs bei einem Rechnersvs- tem mit wenigstens zwei Ausfiihrungseinheiten

Stand der Technik

Die Erfindung geht aus von einem Verfahren und einer Vorrichtung zum Vergleich zwischen

Ausgangsdaten wenigstens zweier Ausführungseinheiten eines Mikroprozessors gemäß den O- berbegriffen der unabhängigen Ansprüche.

Transiente Fehler, ausgelöst durch Alpha-Teilchen oder kosmische Strahlung, werden zuneh- mend ein Problem für integrierte Schaltungen. Durch abnehmende Strukturbreiten, sinkende

Spannungen und höhere Taktfrequenzen nimmt die Wahrscheinlichkeit zu, dass eine Spannungsspitze, hervorgerufen durch ein Alpha-Teilchen oder kosmische Strahlung, einen logischen Wert in einer integrierten Schaltung verfälscht. Ein falsches Berechnungsresultat kann die Folge sein. In sicherheitsrelevanten Systemen müssen daher solche Fehler zuverlässig detdctiert werden.

Bei sicherheitsrelevanten Systemen, wie z.B. einem ABS-Regelsystem in einem Kraftfahrzeug, in denen Fehlfunktionen der Elektronik sicher detektiert werden müssen, werden gerade bei den entsprechenden Steuereinrichtungen solcher Systeme üblicherweise Redundanzen zur Fehlerer- kennung vorgesehen. So ist beispielsweise in bekannten ABS-Systemen jeweils der komplette

MikroController dupliziert, wobei die gesamten ABS-Funktionen redundant berechnet und auf übereinstimmung geprüft werden. Tritt eine Diskrepanz der Ergebnisse auf, so wird das ABS- System abgeschaltet.

Solche Prozessoreinheiten mit wenigstens zwei integrierten Ausfiihrungseinheiten sind auch als Dual-Core oder Multi-Core Architekturen bekannt. Die verschiedenen Ausführungseinheiten (Cores) führen redundant und taktsynchron das gleiche Programmsegment aus, die Ergebnisse der beiden Ausfuhrungseinheiten werden verglichen, und ein Fehler wird dann bei dem Ver- gleich auf übereinstimmung erkannt werden.

Prozessoren werden mit Caches ausgerüstet, um den Zugriff auf Instruktionen und Daten zu beschleunigen. Das ist bei der ständig wachsenden Datenmenge einerseits und der zunehmenden Komplexität der Datenverarbeitung mit immer schneller arbeitenden Prozessoren andererseits notwendig. Durch einen Cache wird der langsame Zugriff auf einen großen (Haupt-) Speicher teilweise vermieden und der Prozessor muss damit nicht auf die Bereitstellung der Daten warten. Es sind sowohl Caches ausschließlich für Befehle als auch ausschließlich für Daten bekannt, aber auch "Unified Caches", bei denen sowohl Daten als auch Instruktionen in demselben Cache abgelegt werden. Bekannt sind auch Systeme mit mehreren Levels (Hierarchiestufen) von Caches. Solche mehrstufigen Caches werden eingesetzt, um mit abgestuften Speichergrößen und verschiedenartigen Adressierungsstrategien der Caches auf den verschiedenen Levels eine optimale Anpassung der Geschwindigkeiten zwischen Prozessor und dem (Haupt-) Speicher vorzunehmen.

Der zweite Grund für den Einsatz von Caches ist das Vermeiden von Zugriffskonflikten auf den

System- oder Speicherbus in einem Multiprozessorsystemen. Dort ist es üblich, jeden Prozessor mit einem Cache oder bei Multi-Level Caches mit entsprechend mehreren Caches auszurüsten.

In einer bekannten Anordnung von Caches in einem umschaltbarem Dual Core System besitzt jeder der zwei Cores einen fest zugeordneten Cache auf den der Core im Performanzmodus zα- greift. Im Vergleichsmodus greifen beide Cores auf ihren jeweiligen Cache zu. Neben der Tatsache, dass im Vergleichsmodus ein Datum mehrfach im Cache gespeichert wird (für jede Ausführungseinheit separat), ist insbesondere der zeitliche Aufwand bei einem Wechsel vom Performanzmodus in den Vergleichsmodus beträchtlich. Bei diesem Wechsel muss der Zustand der Caches angeglichen werden. Erst dadurch wird gewährleistet, dass im Vergleichsmodus nicht der Fall eintritt, dass eine der am Vergleich beteiligten Ausführungseinheiten einen Cache-Miss (geforderte Datum ist nicht im Cache gespeichert und muss nachgeladen werden) hat und ein

andere einen Cache-Hit (geforderte Datum ist im Cache gespeichert und muss nicht nachgeladen werden).

Vorteile der Erfindung

Aufgabe der Erfindung ist es bei einem Mehrprozessorsystem, dass die Nachteile der bisher bekannten Verfahren bei der Verwendung von Caches in einem umschaltbarem Mehrprozessorsystems vermieden werden. Als Nachteil stellt sich dabei vor allem dar, dass in bekannten Anordnungen von Caches diese aufwändig bei einer Umschaltung von einem Performanzmodus in einen Vergleichsmodus synchronisiert werden müssen

Für die Umschaltmöglichkeit zwischen verschiedenen Modi eines Mehrprozessorsystems wie Performanz- und Vergleichsmodus ist es vorteilhaft, wenn nicht jede Ausführungseinheit einen eigenen Cache besitzt, da insbesondere beim Umschalten in den Vergleichsmodus eine zeirau- bende Angleichung der Caches vorgenommen werden müsste. Darauf kann in den vorgeschlagenen Strukturen weitgehend verzichtet werden.

Weiterhin ist es vorteilhaft wenn verschiedene Caches für die verschiedenen Modi (Vergleich bzw. Performanz) mit ihrer Größe den Anforderungen der Modi angepasst werden können. Weiterhin kann es vorteilhaft sein, dass in manchen Modi auf den Cache ganz verzichtet wird, insbesondere wenn der Buszugriff selbst nicht wesentlich langsamer als ein Cache-Zugriff ist.

Vorteilhaft ist ein Verfahren zur Steuerung eines Speicherzugriffs bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten beschrieben, wobei je Ausführungseinheit ein Zwischenspeicher, insbesondere ein Cache vorgesehen ist und weiterhin Umschaltmittel und

Vergleichsmittel vorgesehen sind, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird, dadurch gekennzeichnet, dass im Performanzmodus jede Ausführungseinheit auf den dieser jeweils zugeordneten Zwischenspeicher zugreift und im Vergleichsmodus beide Ausführungseinheiten auf einen Zwischenspeicher zugreifen.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der Zwischenspeicher auf den im Vergleichsmodus von beiden Ausführungseinheiten zugegriffen wird dem Zwischenspeicher einer Ausführungseinheit entspricht.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass wenigstens ein zusätzlicher Zwischenspeicher, insbesondere ein zusätzlicher Cache, vorgesehen ist und im Vergleichsmodus von beiden Ausfuhrungseinheiten auf diesen zusätzlichen Zwischenspeicher zugegriffen wird.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass wenigstens ein zusätzlicher Zwischenspeicher vorgesehen ist und der Zwischenspeicher auf den beide Ausführungseinheiten im Vergleichsmodus zugreifen sich aus dem zusätzlichen Zwischenspeicher und einem Zwischenspeicher einer Ausführungseinheit zusammensetzt.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Vergleichsmodus auf den einer Ausführungseinheit zugeordneten Speicher nur lesend zugegriffen werden kann.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler ein Zugriff auf den Zwischenspeicher verhindert wird.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler Informationen im Zwischenspeicher ungültig gemacht oder gesperrt werden.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler das Rechnersystem neu oder wieder gestartet wird.

Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass im Vergleichsmodus die Vergleichsmittel Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkannt wird, wobei bei Fehler wenigstens eine Ausführungseinheit neu oder wieder gestartet wird.

Vorteilhaft ist eine Vorrichtung zur Steuerung eines Speicherzugrifls bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten enthalten, wobei je Ausführungseinheit ein Zwischenspeicher, insbesondere ein Cache vorgesehen ist und weiterhin Umschaltmittel und

Vergleichsmittel vorgesehen sind, wobei zwischen einem Performanzmodus und einem Vergleichsmodus umgeschaltet wird, dadurch gekennzeichnet, dass Mittel enthalten sind, die derart ausgebildet sind dass im Performanzmodus jede Ausfiihrungseinheit auf den dieser jeweils zugeordneten Zwischenspeicher zugreift und im Vergleichsmodus beide Ausführungs- einheiten auf einen Zwischenspeicher zugreifen.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass der Zwischenspeicher auf den im Vergleichsmodus von beiden Ausführungseinheiten zugegriffen wird dem Zwischenspeicher einer Ausführungseinheit entspricht.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass wenigstens ein zusätzlicher Zwischenspeicher, insbesondere ein zusätzlicher Cache, vorgesehen ist und im Vergleichsmodus von beiden Ausführungseinheiten auf diesen zusätzlichen Zwischenspeicher zugegriffen wird.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass wenigstens ein zusätzlicher Zwischenspeicher vorgesehen ist und der Zwischenspeicher auf den beide Ausführungseinheiten im Vergleichsmodus zugreifen sich aus dem zusätzlichen Zwischenspeicher und einem Zwischenspeicher einer Ausführungseinheit zusammensetzt.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vorrichtung derart ausgebildet ist, dass im Vergleichsmodus auf den einer Ausführungseinheit zugeordneten Speicher nur lesend zugegriffen werden kann.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese im Vergleichsmodus Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkennen und bei Fehler einen Zugriff auf den Zwischenspeicher verhindern.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel derart ausgestaltet sind, dass diese im Vergleichsmodus Informationen auf übereinstimmung vergleichen und bei Abweichung auf Fehler erkennen und bei Fehler Informationen im Zwischenspeicher ungültig machen oder sperren.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Vergleichsmittel zwischen wenigstens einer Ausfiihrungseinheit und den Zwischenspeichern lokalisiert sind.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Zwischenspei- eher zwischen wenigstens einer Ausfiihrungseinheit und den Vergleichsmitteln lokalisiert sind.

Vorteilhaft ist eine Vorrichtung enthalten, dadurch gekennzeichnet, dass die Umschaltmittel und die Vergleichsmittel als eine Umschalt- und Vergleichseinheit realisiert sind.

Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.

Figuren

Figur 1 zeigt ein System ClOO mit zwei Ausfiihrungseinheiten von der nur eine im

Performanz- und Vergleichsmodus über einen Cache auf einen Bus ClO zugreift.

Figur 2 zeigt ein System ClOOc mit zwei Ausfiihrungseinheiten von denen beide im

Performanz- und Vergleichsmodus über einen Cache auf einen Bus ClO zugreifen, von denen aber nur einer im Vergleichsmodus genutzt wird.

Figur 3 zeigt ein System ClOOa mit zwei Ausführungseinheiten von denen nur eine im Performanzmodus über einen Cache auf einen Bus ClO zugreift. Im Vergleichsmodus wird kein Cache verwendet.

Figur 4 zeigt ein System C200 mit zwei Ausführungseinheiten von denen beide im

Performanz- und Vergleichsmodus über einen Cache auf einen Bus ClO zugreifen. Im Vergleichsmodus erfolgt der Zugriff auf den Bus über eine separate Busanschlusseinheit.

Figur 5 zeigt ein System C200a mit zwei Ausführungseinheiten von denen beide im

Performanz- und Vergleichsmodus über einen Cache auf einen Bus ClO

zugreifen. Im Vergleichsmodus erfolgt der Zugriff auf den Bus über einen separaten Cache und eine separate Busanschlusseinheit.

Figur 6 zeigt ein System C300 mit zwei Ausführungseinheiten von denen beide im Performanz- und Vergleichsmodus über einen Cache auf einen Bus ClO zugreifen, von denen aber nur einer im Vergleichsmodus genutzt wird. Der im Vergleichsmodus genutzte Cache nutzt intern verschiedene Speicher für seine Aufgabe, abhängig vom aktuellen Modus des System C300.

Figur 7 zeigt ein System C400 mit zwei Ausführungseinheiten von denen beide im

Performanz- und Vergleichsmodus über einen Cache auf einen Bus ClO zugreifen, von denen aber nur einer im Vergleichsmodus genutzt wird. Der im Vergleichsmodus genutzte Cache nutzt intern verschiedene Speicher für seine Aufgabe, abhängig vom aktuellen Modus des System C400. Das Größenver- hältnis dieser beiden Speicher zueinander wird durch eine separate Einheit gesteuert.

Figur 8 zeigt ein System C500 mit zwei Ausführungseinheiten die über eine Cacheeinheit auf den Bus ClO zugreifen. Je nach Modus des System C500 werden die Speicherzugriffe der Ausführungseinheiten unterschiedliche bedient.

Beschreibung der Ausführungsbeispiele

Eine Ausführungseinheit kann im Folgenden sowohl einen Prozessor/Core/CPU, als auch eine FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor oder ALU (Arithme- tic logical Unit) bezeichnen.

Bei manchen Mehrprozessorsystemen wird ein Cache nur deshalb eingesetzt, um Konflikte auf dem System- und/oder Speicherbus zu vermeiden. Wäre nur eine Ausführungseinheit vcrhan- den, dann würde in diesem Fall kein Cache notwendig sein, da der Speicher schnell genug ist, um die Leseanforderungen einer Ausführungseinheit zu bedienen.

Figur 1 zeigt eine erste Ausführung eines Mehrprozessorsystem ClOO mit zwei Ausführungseinheiten CI lOa und CI lOb, welches über einen Bus ClO auf einen Speicher zugreifen kann. Die Einheit C130 regelt, je nach dem Modus des Systems ClOO, wie auf den Bus ClO zugegrif-

fen wird. Im Performanzmodus ist der Schalter C131 geschlossen und der Schalter C 132 geöffnet. Somit greift die Ausfiihrungseinheit CI lOb über den Cache C 120 und den Busanschluss C 150 auf den Bus ClO zu. Die Ausführungseinheit CI lOa ist über den Anschluss C 140 direkt mit dem Bus ClO verbunden. Ist der Cache C 120 richtig dimensioniert, so werden Speichσ- Zugriffe der Ausführungseinheit CI lOb hauptsächlich aus C 120 bedient, so dass nur selten ein

Zugriff auf den Bus ClO notwendig ist. Die Speicherzugriffe der Ausführungseinheit CI lOa führen immer zu Zugriffen auf den Bus ClO. Nur wenn ein Speicherzugriff nicht durch den Cache C 120 bedient werden kann, wird über die Einheit C 150 auf den Bus zugegriffen. Findet zur selben Zeit ein Zugriff auf den Bus ClO durch die Ausführungseinheit Cl 10a über C 140 statt, tritt ein Buskonflikt auf, der durch das Busprotokoll aufgelöst werden muss. Da der Cache C 120 für die Software nicht sichtbar ist, ist es vorteilhaft, wenn die Einheit C 120 auf dem Bus ClO mithorcht („Bus-Snooping"), ob die Ausführungseinheit CI lOa über C 140 ein Datum im Speicher ändert, welches sich auch im Cache C 120 befindet. Ist dies der Fall muss das entsprechende Datum in C 120 durch das neue Datum ersetzt oder als ungültig markiert werden.

Im Vergleichsmodus ist der Schalter C 132 geschlossen und der Schalter Cl 31 offen. Beide Ausführungseinheiten greifen gemeinsam über den Cache C 120 auf den Bus ClO zu. Eine Vergleichseinheit C 160 vergleicht die Ausgangssignale beider Ausführungseinheiten und generiert bei Unterschieden ein Fehlersignal. Optional kann die Vergleichseinheit C 160 mit der Busan- Schlusseinheit C 150 verbunden sein (hier nicht eingezeichnet) und einen Schreibzugriff verhindern, sollten die Ausgangssignale der beiden Cores differieren. Im Performanzmodus ist die Einheit C 160 deaktiviert. Die Deaktivierung der Vergleichseinheit kann auf verschiedene Weise realisiert werden: Entweder wird ein Vergleich durch die Einheit C 160 wird nicht durchgeführt, es werden keine Signale zum Vergleich an die Einheit C 160 angelegt oder obwohl der Ver- gleich stattfindet, wird das Ergebnis ignoriert.

Eine Ausführungsform der Erfindung ist in Figur 2 mit dem System ClOOc dargestellt. In dieser Ausführungsform arbeiten die aus Figur 1 bekannten Elemente in gleicher Art und Weise. Die Ausführungseinheit ClOOa greift im Performanzmodus mit geschlossenem Schalter C131 aller- dings ebenfalls über einen Cache C 140a und den Busanschluss C 140 auf den Bus ClO zu. Im

Vergleichsmodus wird über den dann geschlossenen Schalter C 132 der Cache C 120 von beiden Ausführungseinheiten Cl 10a und Cl 10b verwendet, während C 140a nur im Performanzmodus von Cl 10a verwendet wird. Die beiden Caches C 120 und C 140a können verschiedene Größen besitzen und dementsprechend für die in den verschiedenen Modi angepassten Aufgaben opti- miert werden.

In Figur 3 ist eine weitere Ausführungsform der Erfindung dargestellt. ClOOa bezeichnet dabei ein Mehrprozessorsystems. Hier ist im Performanzmodus der Schalter C133 offen und der Schalter C 134 geschlossen und eine Ausführungseinheit CI lOb greift über einen Cache C 120 und die Busanschlusseinheit C 150 auf den Bus ClO zu. Die andere Ausführungseinheit CI lOa greift direkt über die Einheit C 140 auf den Bus ClO zu. Im Vergleichsmodus dagegen ist der Schalter C133 geschlossen und C134 offen und beide Ausfiihrungseinheiten greifen direkt über C 140 auf den Bus ClO zu und es wird der Cache C 120 nicht verwendet. Eine Vergleichseinheit C 160 vergleicht die Ausgangssignale beider Ausführungseinheiten und generiert bei Unter- schieden ein Fehlersignal. Optional kann auch hier die Vergleichseinheit C160 mit den Busanschlusseinheiten C 140 verbunden sein (hier nicht eingezeichnet) und einen Schreibzugriff verhindern, sollten die Ausgangssignale der beiden Ausführungseinheiten differieren. Im Performanzmodus ist die Einheit C 160 deaktiviert. Die Deaktivierung kann auf verschiedene, schon beschriebene Weisen realisiert werden

In einer weiteren Ausführung des Mehrprozessorsystems werden ebenfalls Caches nur zur Vσ- meidung von Zugriffskonflikten auf dem Speicherbus eingesetzt. Figur 4 zeigt ein Mehrprozessorsystem C200 mit zwei Ausführungseinheiten C210a und C210b, welche auf verschiedene Art und Weise über einen Bus ClO auf einen Speicher zugreifen können. Die Einheit C230 re- gelt, je nach dem Modus des Systems C200, wie auf den Bus ClO zugegriffen wird. Im Perftr- manzmodus sind die Schalter C231 und C234 geschlossen und die Schalter C232 und C233 geöffnet. Somit greift die Ausführungseinheit C210a über den Cache C240a mit Busanschluss C250a und die Ausführungseinheit C210b über den Cache C240b mit dem Busanschluss C250b auf den Bus ClO zu. Nur wenn die Speicherzugriffe aus den jeweiligen Caches der Ausfih- rungseinheiten nicht bedient werden können, muss ein Zugriff auf den Bus ClO erfolgen. Findet zur selben Zeit ein Zugriff auf den Bus ClO durch andere Ausführungseinheiten statt, tritt ein Buskonflikt auf, der durch das Busprotokoll aufgelöst werden muss. Da die Caches C240a und C240b für die Software nicht sichtbar sind, ist es vorteilhaft, wenn ein Datum, welches von einer Ausführungseinheit C210a, C210b in den jeweiligen Cache C240a, C240b geschrieben wird, ebenfalls sofort über den jeweiligen Busanschluss C250a, C250b auf den Bus ClO in den

Speicher geschrieben wird („Write through" Strategie).

Weiterhin ist es vorteilhaft, wenn die Einheiten C240a und C240b (über C250a resp. C250b) auf dem Bus ClO mithorchen („Bus-Snooping"), ob die Ausführungseinheit C210a über C250a bzw. C210b über C250b ein Datum im Speicher ändert, welches sich auch im jeweils anderen

Cache befindet. Ist dies der Fall muss das entsprechende Datum durch das neue Datum im betroffen Cache ersetzt oder als ungültig markiert werden.

Im Vergleichsmodus sind die Schalter C232 und C233 geschlossen und die Schalter C231 und C234 offen. Beide Ausführungseinheiten greifen gemeinsam über C260 auf den Bus ClO zu.

Die Caches (C240a, C240b) werden nicht verwendet. Eine Vergleichseinheit C220 vergleicht die Ausgangssignale beider Ausführungseinheiten und generiert bei Unterschieden ein Fehlersignal. Optional kann die Vergleichseinheit C220 mit der Busanschlusseinheit C260 verbunden sein (hier nicht eingezeichnet) und einen Schreibzugriff verhindern, sollten die Ausgangssignale der beiden Ausführungseinheiten differieren. Im Performanzmodus ist die Einheit C220 deaktiviert. Die Deaktivierung kann auf verschiedene, schon beschriebene Weisen realisiert werden

Figur 5 zeigt eine weitere Ausführungsform C200a des Mehrprozessorsystems, in der gegenüber der Ausführungsform C200 dargestellt in Figur 4 ein zusätzlicher Cache 270 für den Ver- gleichsmodus eingefügt wurde. Die schon bekannten Komponenten aus Figur 4 arbeiten in gleichen wie dort beschriebenen Art und Weise. Auch in diesem System ist es von Vorteil, wenn für alle Caches eine „write through" Strategie verwendet und der Inhalt aller Caches durch „Bus snooping" konsistent gehalten wird.

Die hier vorher beschriebenen Varianten nach den Figuren 4 und 5 lassen sich auf mehr als zwei

Ausführungseinheiten erweitern. Je Ausführungseinheit sind in diesen Fall eine Cacheeinheit und eine Busanschlusseinheit vorhanden, die im Performanzmodus genutzt werden. Im Vσ- gleichsmodus greifen alle Ausführungseinheiten über die Busanschlusseinheit C260 (optional mit einem Cache C270) auf den Bus ClO zu.

Eine weitere Ausführungsform der Erfindung ist in Figur 6 dargestellt. Auch hier besteht die Prozessoreinheit C300 aus mindestens zwei Ausführungseinheiten C310a und C310b, welche jeweils über einen Cache C340a, 340b und einen Busanschluss C350a, C350b über den Bus ClO auf einen Speicher zugreifen. Im Performanzmodus ist der Schalter C332 offen und der Schalter C331 in der Einheit C330 geschlossen. Die Ausführungseinheit C310a greift in dieser

Konfiguration über den Cache C340aund den Busanschluss C350a auf den Bus ClO zu und die Ausführungseinheit C310b über den Cache C340bund den Busanschluss C350b.

Im Vergleichsmodus ist in der Umschalteinheit C330 der Schalter C332 geschlossen und der Schalter C331 offen. Jetzt greifen beide Ausführungseinheiten über den Cache C340a und den

Busanschluss C350a auf den Bus ClO zu. Die Einheit C340a besteht selbst wiederum aus zwei separaten Cachespeichern oder Cachebereichen C341,C342, die fiir das Caching verwendet werden. Im Performanzmodus wird nur der Speicher/Bereich C341 verwendet, während im Vergleichsmodus zusätzlich zum Speicher/Bereich C341 der Speicher/Bereich C342 für das Ca- ching verwendet wird. Eine Vergleichseinheit C320 vergleicht im Vergleichsmodus die Ausgangssignale beider Ausführungseinheiten und generiert bei Unterschieden ein Fehlersignal. Optional kann auch hier die Vergleichseinheit C320 mit den Busanschlusseinheiten C350a verbunden sein (hier nicht eingezeichnet) und einen Schreibzugriff verhindern, sollten die Ausgangssignale der beiden Cores im Vergleichsmodus differieren. Im Performanzmodus ist die Vergleichseinheit C320 wie schon für die Vergleichseinheit C 160, dargestellt in Figur 1, beschrieben, deaktiviert.

In einer weiteren Ausführungsform kann die Einheit C340a so aufgebaut sein, dass im Vergleichsmodus der Speicher C341 und C342 zwar ebenso zusammen benutzt, aber nur Inhalte aus dem Speicher C342 im Vergleichsmodus verdrängt und durch andere Inhalte ersetzt werden können.

Allen Ausführungsformen in Ausgestaltung von Figur 6 lassen sich auf mehr als zwei Ausführungseinheiten erweitern. Je Ausführungseinheit sind in diesen Fall eine Cacheeinheit und eine Busanschlusseinheit vorhanden, die im Performanzmodus genutzt werden. Im Vergleichsmodus greifen alle Ausführungseinheiten über den Cache C340a und die Busanschlusseinheit C350a auf den Bus ClO zu.

Eine weitere mögliche Ausführungsform der Erfindung ist in Figur 7 dargestellt. Auch hier be- steht die Prozessoreinheit C400 aus mindestens zwei Ausführungseinheiten C410a und C410b, welche jeweils über einen Cache (C440a, 440b) und einen Busanschluss (C450a, C450b) auf den Bus ClO auf den (Haupt-)Speicher zugreifen.

Im Performanzmodus ist der Schalter C432 offen und der Schalter C431 in der Einheit C430 ge- schlössen. Die Ausführungseinheit C410a greift in dieser Konfiguration über den Cache C440a und den Busanschluss C450a auf den Bus ClO zu und die Ausführungseinheit C410b über den Cache C440b und den Busanschluss C450b.

Im Vergleichsmodus ist in der Umschalteinheit C430 der Schalter C432 geschlossen und der Schalter C431 offen. Jetzt greifen beide Ausführungseinheiten über den Cache C440a und den

Busanschluss C450a auf den Bus ClO zu. Die Einheit C440a besteht selbst wiederum aus zwei separaten Cachespeichern oder Bereichen C441, C442, die fiir das Caching verwendet werden. Im Performanzmodus wird nur der Speicher/Bereich C441 verwendet, während im Vergleichsmodus der Speicher/Bereich C442 fiir das Caching verwendet wird. Die Summe der Größe bei- der Speicher/Bereiche C441 + C442 ist konstant, aber der Verhältnis der Größe zwischen C441 und C442 wird durch die Einheit C443 gesteuert. Durch diese Einheit C443 ist eine änderung des Verhältnisses im Betrieb möglich.

Eine Vergleichseinheit C420 vergleicht im Vergleichsmodus die Ausgangssignale beider Aus- fiihrungseinheiten und generiert bei Unterschieden ein Fehlersignal. Optional kann auch hier die

Vergleichseinheit C420 mit den Busanschlusseinheiten C450a verbunden sein (hier nicht eingezeichnet) und einen Schreibzugriff verhindern, sollten die Ausgangssignale der beiden Cores im Vergleichsmodus differieren. Im Performanzmodus ist die Einheit C420 deaktiviert, wie schon für Vergleichseinheit C 160 aus Figur 1 beschrieben.

Die Einheit C440a kann jetzt unter Beibehaltung der Funktion von Einheit C443 wie folgt ausgeführt werden:

1. Im Vergleichsmodus werden beide Speicher C441 und C442 für den Cache verwendet. 2. Im Vergleichsmodus werden beide Speicher C441 und C442 für den Cache verwendet, wobei aber nur Inhalte aus dem Speicher C442 im Vergleichsmodus verdrängt und durch andere Inhalte ersetzt werden können.

Allen Ausführungsformen in der Ausgestaltung von Figur 7 lassen sich auf mehr als zwei Aus- fiihrungseinheiten erweitern. Je Ausführungseinheit sind in diesen Fall eine Cacheeinheit und eine Busanschlusseinheit vorhanden, die im Performanzmodus genutzt werden. Im Vergleichsmodus greifen alle Ausführungseinheiten über den Cache C440a und die Busanschlusseinheit C450a auf den Bus ClO zu.

In Figur 8 ist eine weitere mögliche Ausführungsform gezeigt. In einem Prozessorsystem C500 existieren mindestens zwei Ausführungseinheiten C510a und C510b. Beide Ausfiihrungseinhei- ten sind mit einer Cacheeinheit C530 verbunden. Diese Einheit C530 besitzt je Ausfiihrungseh- heit eine Busanschlusseinheit C550a, C550b über die ein Zugriff auf den Bus ClO auf einen Speicher möglich ist. Die Cacheeinheit C530 besitzt je angeschlossener Ausführungseinheit zwei Cachespeicher (hier C531 und C533 für C510a und C534 und C536 für C510b). Die

Summe der Größen dieser Speicherpaare ist konstant, das Verhältnis kann aber über jeweils eine Einheit (C532 fiir C531, C533 und C535 für C534, C536) im Betrieb geändert werden.

Im Performanzmodus werden Speicherzugriffe der Ausführungseinheiten immer von dem Spei- cherpaar „gecached", welches der Ausführungseinheit zugeordnet ist. Dabei wird nur einer der beiden Cachespeicher verwendet (hier C531 für C510a und C534 für C510b). Können Speicherzugriffe der Ausführungseinheit nicht aus dem Cachespeicher bedient werden, werden die notwendigen Buszugriffe auf ClO immer über den zur Ausführungseinheit zugeordneten Busan- schluss getätigt (hier C550a für C510a und C550b für C510b). Zugriffe im Performanzmodus durch Ausführungseinheiten, die gleichzeitig stattfinden, können auch gleichzeitig durch die

Einheit C530 bedient werden, es sei denn, es tritt durch den gleichzeitigen Zugriff auf ClO ein Buskonflikt auf.

Im Vergleichsmodus werden Speicherzugriffe der Ausführungseinheiten durch die Cachspei- eher bedient, die nicht im Performanzmodus verwendet werden (hier C533 und 536). Welcher

Busanschluss für einen Buszugriff verwendet wird ist beliebig. Eine Vergleichseinheit C520 vergleicht im Vergleichsmodus die Ausgangssignale aller Ausführungseinheiten und generiert bei Unterschieden ein Fehlersignal. Optional kann auch hier die Vergleichseinheit C520 mit den Busanschlusseinheiten C550a, C550b verbunden sein (hier nicht eingezeichnet) und einen Schreibzugriff verhindern, sollten die Ausgangssignale der beiden Cores im Vergleichsmodus differieren. Im Performanzmodus ist die Einheit C520 deaktiviert. Die Deaktivierung kann erfolgen entsprechend wie bei Vergleichseinheit C 160 aus Figur 1.

In einer weiteren Ausführungsform kann die Einheit C530 so aufgebaut sein, dass im Ver- gleichsmodus sämtliche Cachespeicher (hier C531 , C533, C534, C536) verwendet wird aber nur

Inhalte aus den Cachespeichern verworfen und ersetzt werden, die im Performanzmodus nicht verwendet werden.

Für alle hier beispielhaft dargestellten Implementierungen gilt, dass die Umschalt- und Ver- gleichseinheit immer zwischen den Ausführungseinheiten und ihren zugehörigen Caches liegt.

Wird im Vergleichsmodus ein Cache verwendet, so muss dieser mit ECC oder Parity abgesichert sein, damit auch hier Fehler erkannt werden. Zusätzlich ist es von Vorteil, wenn für die Caches eine „write through" Strategie verwendet und der Inhalt der Caches durch „Bus snoo- ping" konsistent gehalten wird.