EP1915695A1 - Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle - Google Patents

Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle

Info

Publication number
EP1915695A1
EP1915695A1 EP06777976A EP06777976A EP1915695A1 EP 1915695 A1 EP1915695 A1 EP 1915695A1 EP 06777976 A EP06777976 A EP 06777976A EP 06777976 A EP06777976 A EP 06777976A EP 1915695 A1 EP1915695 A1 EP 1915695A1
Authority
EP
European Patent Office
Prior art keywords
memory
data
access
commands
cache
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.)
Ceased
Application number
EP06777976A
Other languages
English (en)
French (fr)
Inventor
Reinhard Weiberle
Bernd Mueller
Eberhard Boehl
Yorck Collani
Rainer Gmehlich
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of EP1915695A1 publication Critical patent/EP1915695A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0853Cache with multiport tag or data arrays

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)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

Verfahren und Vorrichtung zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle, wobei Umschaltmittel vorgesehen sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel vorgesehen sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden und bei Umschaltung.

Description

Verfahren und Vorrichtung zur Speicherung von Daten und/oder Befehlen in einem
Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
Die vorliegende Erfindung bezieht sich auf Mikroprozessorsysteme mit schnellem Zwi- schenspeicher (Cache) und beschreibt in diesem Kontext einen dual port Cache.
Stand der Technik
Aus dem Stand der Technik sind MikroController mit wenigstens zwei integrierten Cores (CPUs) bekannt. Diese MikroController sind auch unter der Bezeichnung Dual-Core oder Multi-
Core-Systeme bekannt. Dabei führen die wenigstens zwei Cores redundant und taktsynchron die gleiche Programme, Programmsegmente oder Befehle aus, die Ergebnisse der beiden Cores werden verglichen, und ein Fehler wird dann bei dem Vergleich auf Übereinstimmung erkannt werden. Im Folgenden wird diese Konfiguration eines Multi-Core Systems als Vergleichsmodus bezeichnet.
Dual-Core oder Multi-Core Architekturen werden in anderen Anwendungen auch zur Perfor- manz-Steigerung eingesetzt. Beide Cores führen unterschiedliche Programme, Programmsegmente und Befehle aus, wodurch sich eine Leistungssteigerung erzielen lässt, weshalb diese Konfiguration eines Multi-Core Systems als Leistungsmodus oder Performanzmodus bezeichnet wird. Dieses System wird auch als ein symmetrisches Multiprozessorsystem (SMP) bezeichnet. Eine Erweiterung dieser Systeme kann mittels einer Umschaltung erreicht werden, d.h. je nach Anwendungszweck des Multiprozessorsystem kann dieses in einem Vergleichsmodus oder in einem Performanzmodus betreiben werden. Im Vergleichsmodus werden die Ausgangsignale der Cores miteinander verglichen. Bei einer Differenz wird ein Fehlersignal ausgegeben. Im Performanzmodus arbeiten die beiden Cores als ein symmetrisches Mehrprozessorsystem
(SMP) und führen unterschiedliche Programme, Programmsegmente oder Befehle aus. Die Vergleichseinheit ist in diesem Modus nicht aktiv. Dieser Erweiterung liegt die Annahme zugrunde, dass nicht alle Programmsegmente sicherheitskritisch sind und für diese die vorhandenen Komponenten nicht zur Fehlerentdeckung sondern zur Performanzsteigerung eingesetzt werden können.
Zwischen diesen beiden Modi eines solchen Multiprozessorsystems mit wenigstens zwei Ausführungseinheiten kann, über Software gesteuert, dynamisch im Betrieb umgeschaltet werden.
Mikroprozessoren werden ab einer bestimmten Taktfrequenz mit schnellen Zwischenspeichern
(Caches) ausgerüstet, um den Zugriff zu Instruktionen und Daten zu beschleunigen. Das ist bei der ständig wachsenden Datenmenge einerseits und der zunehmenden Komplexität der Datenverarbeitung mit immer schneller arbeitenden Prozessoren andererseits notwendig. Caches sind in solchen Speichertechnologien realisiert, die einen schnellen Zugriff auf den Speicherinhalt ermöglichen und sind räumlich nahe am Prozessor angebracht. In einem Cache ist eine Teilmenge der Daten und/oder Befehle aus dem Hauptspeicher zwischengespeichert. Durch den Einsatz eines Cache-Speichers wird der langsame Zugriff auf einen großen (Haupt-) Speicher teilweise vermieden bzw. reduziert und der Prozessor muss dann nicht auf die verzögerte Bereitstellung der Daten durch den Hauptspeicher warten. Es sind sowohl Caches ausschließlich für Befehle als auch ausschließlich für Daten bekannt, aber auch "Unified Caches", bei denen sowohl Daten als auch Instruktionen in demselben Cache abgelegt werden. Bekannt sind auch Systeme mit mehreren Levels (Hierarchiestufen) von Caches. Solche mehrstufigen Caches werden eingesetzt, um mit abgestuften Speichergrößen und verschiedenartigen Adressierungsstrategien der Caches auf den verschiedenen Levels eine optimale Anpassung der Geschwindigkeiten zwischen Prozessor und dem (Haupt-) Speicher vorzunehmen. Bei den aus dem Stand der Technik bekannten Multiprozessorsystemen ist es üblich, jeden Prozessor mit einem Cache oder bei Multi-Level Caches mit entsprechend mehreren hierarchisch gegliederten Caches auszurüsten. Haben die Prozessoren jeweils einen Cache fest zugeordnet und sind sie darüber hinaus in verschiedene Betriebsmodi des Prozessorsystems schaltbar, wo sie entweder unterschiedliche Programme, Programmsegmente oder Befehle abarbeiten (Per- formanzmodus) oder gleiche Programme, Programmsegmente oder Befehle abarbeiten und die Ergebnisse einem Vergleich unterziehen (Vergleichsmodus), so müssen die Daten bzw. Befehle in den parallelen Caches eines jeden Controllers beim Umschalten zwischen den Betriebsmodi entweder gelöscht werden, oder sie müssen beim Laden der Caches mit der entsprechenden In- formation des jeweiligen Betriebsmodus versehen werden, die vorzugsweise zusammen mit den
Daten abgespeichert wird.
Aufgabe der Erfindung ist es Mittel und Verfahren zur Verfügung zu stellen, die Größe des Caches zu optimieren und den Vorgang der Umschaltung zwischen einem Performanzmodus und einem Vergleichsmodus zu beschleunigen.
Vorteile der Erfindung
In einem Multiprozessorsystem, das während des Betriebs zwischen verschiedenen Betriebsmo- di umschalten kann, ist es von besonderem Vorteil, wenn nur ein gemeinsamer (ggf. hierarchisch gegliederter) Cache vorhanden ist. Jedes Datum oder jeder Befehl ist darin nur einmal abgelegt und der Zugriff darauf ist gleichzeitig möglich.
In einem Multiprozessorsystem mit mehreren Betriebsmodi ergeben sich durch den Einsatz ei- nes Dual Port Cache folgende Vorteile:
Die Daten/Befehle müssen für die verschiedenen Ausführungseinheiten und/oder die verschiedenen Betriebsmodi nicht mehrfach in den Cache geholt und ggf. gepflegt werden. - A -
Pro Datum/Befehl muss hardwaremäßig nur ein Speicherplatz bereitgestellt werden, auch wenn dieses Datum bzw. dieser Befehl von mehreren Ausfiihrungseinheiten und/oder in mehreren Betriebsmodi benutzt wird.
Die Daten/Befehle im Cache müssen nicht dahingehend unterschieden werden, ob sie in verschiedenen Betriebsmodi des Multiprozessorsystems benutzt werden.
Die Daten/Befehle im Cache müssen nicht dahingehend unterschieden werden, in welchen Betriebsmodi des Multiprozessorsystems sie bearbeitet werden und/oder in welchen Betriebsmodi sie in den Cache geladen bzw. geschrieben wurden und/oder von welchem Core sie angefordert bzw. geschrieben wurden.
Der Cache muss bei Wechsel des Betriebsmodus nicht gelöscht werden, damit müssen die Cache-Inhalte weniger oft geladen werden und die Zugriffe auf den Hauptspeicher werden redu- ziert. Eine Umschaltung kann dadurch schneller erfolgen als in Systemen, die mehrerer Caches haben.
Zwei Prozessoren können gleichzeitig zu den gleichen Daten/Befehlen im Cache lesend zugreifen.
Anstelle des „write through" Modus kann auch ein „write back" Modus für den Cache eingesetzt werden, der insbesondere beim Schreiben zeitgünstiger ist, weil nicht ständig der (Haupt-) Speicher aktualisiert werden muss, sondern erst beim Überschreiben der Daten im Cache; es gibt keine Konsistenzprobleme, weil der Cache für beide Prozessoren die Daten aus der glei- chen Quelle liefert.
Vorteilhaft ist ein Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle beschrieben, wobei Umschaltmittel vorgesehen sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel vorgesehen sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist undü- ber diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden und bei Umschaltung .
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass der zweite Speicher o- der Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.
Vorteilhaft ist ein Verfahren beschrieben,, dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der enable-Signale generiert, die bei einem gleichzeitigen Zugriff auf einen Adressbereich durch mehrere Ports nur einem Port den Zugriff ermöglichen und den Zugriff des wenigstens einen weiteren Ports unterbinden oder verzögern, insbesondere durch wait-Signale.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneh- ander unabhängigen Adressbereichen über die Auswahleinrichtungen mit mehreren Stufen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass es mindestens ein Modussignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass es mindestens ein Konfigurationssignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass beide Verarbeitungseinheiten einen Lesezugriff vorgeben. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, das bei Vorgabe des Lesezugriffs durch beide Verarbeitungseinheiten den Daten und/oder Befehle zugeordnete Kennuα- gen oder Zugriffsadressen verglichen werden und nur bei Übereinstimmung ein Lesezugriff auf den Cache durchgeschaltet wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei Vorgabe eines Lesezugriffs beide Verarbeitungseinheiten auf das Cachespeichersystem zugreifen.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die beim Lesezugriff durch beide Verarbeitungseinheiten gelesenen Daten und/oder Befehle verglichen werden und bei Abweichung ein Signal, insbesondere ein Fehlersignal erzeugt wird.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle verglichen werden und nur dann eingeschrieben werden, wenn diese übereinstimmen.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff bis die Daten und/oder Befehle verglichen sind die Verarbeitungseinheiten angehalten werden.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Daten und /oder Befehle in einen Pufferspeicher oder Pufferspeicherbereich geschrieben werden und erst nach erfolgreichem Vergleich in den zweiten Speicher oder Speicherbereich übernommen werden.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle nur von einer Verarbeitungseinheit geschrieben werden und abhängig von einem parallel ausgeführten Vergleich bei Unterscheidung die eingeschriebenen Daten und/oder Befehle gesperrt oder ungültig erklärt werden.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Sperrung oder Un- gültigerklärung durch Setzen oder Rücksetzen wenigstens eines Bits erfolgt. Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Sperrung oder Un- gültigerklärung durch Überschreiben mit einem anderen, insbesondere alten Datum und/oder Befehl erfolgt.
Vorteilhaft ist ein Verfahren beschrieben, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Streichen einer entsprechenden Eintragung einer Inhaltstabelle des zweiten Speichers oder Speicherbereichs erfolgt.
Vorteilhaft ist eine Vorrichtung zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle, wobei Umschaltmittel enthalten sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel enthalten sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus ei- nem Performanzmodus entspricht, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter
Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Be- fehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.
Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass im Cachespeichersystem Daten und Befehle getrennt abgespeichert werden und so ein Datenspeicher oder Datenspeicherbereich und ein Befehlsspeicher oder Befehlsspeicherbereich vorgesehen sind. Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass der zweite
Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.
Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass ein Adressde- coder vorhanden ist, der enable-Signale generiert, die bei einem gleichzeitigen Zugriff auf einen Adressbereich durch mehrere Ports nur einem Port den Zugriff ermöglichen und den Zugriff des wenigstens einen weiteren Ports unterbinden oder verzögern, insbesondere durch wait-Signale.
Vorteilhaft ist weiterhin eine solche Vorrichtung, dadurch gekennzeichnet, dass mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneinander unabhängigen Adressbereichen über die Auswahleinrichtungen mit mehreren Sti- fen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden.
Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche sowie der Beschreibung.
Figuren und Tabellen
In Figur 1 ist ein Multiprozessorsystem mit zwei Ausführungseinheiten gezeigt, mit Mitteln zum Vergleich von Daten der Ausführungseinheiten und Mitteln zur Um- Schaltung zwischen wenigstens zwei Betriebsmodi des Multiprozessorsys- tems.
In Figur 2 ist ein Dual Port Cache Speicher für Daten und/oder Befehle gezeig, der einen internen Dual Port Speicher, zwei Ports zum Anschluss jeweils einer Ausführungseinheit und ein Interface zum Daten-/Adressbus des Multiprozessorsys- tems hat.
In Figur 3 ist ein Dual Port Cache mit weiteren Details gezeigt.
In Figur 4 ist eine Einrichtung und ein Verfahren zur Adresstransformation in einem Dual Port Cache gezeigt.
In Figur 5 ist eine Aufteilung des internen Dual Port Speichers in zwei Teilbereiche ge- zeigt, die unabhängig voneinander betrieben werden können und mit je zwei separaten enable-Signalen von jedem Port im Zugriff gesteuert werden.
In Figur 6 ist eine Realisierung eines Dual Port Speicherbereiches durch einen Single
Port Speicher mittels Portumschaltung gezeigt. In Figur 7 ist die Einteilung eines Multiple Port Speichers mit p Ports in mehrere Teil-
Adressbereiche l...q, die parallel bearbeitet werden können, gezeigt.
In Figur 7a ist eine Realisierung eines Multi Port Speicherbereiches durch einen Single Port Speicher mittels Portumschaltung gezeigt. In Figur 8 ist eine Aufteilung der RAM-Bereiche für die Ports in Abhängigkeit von einem Systemzustand oder einer Konfiguration gezeigt.
In Figur 9 ist Aufteilung eines multi port RAMs in Bereiche in Abhängigkeit von einem
Systemzustand oder einer Konfiguration durch Generierung der entsprechende Enable-Signale gezeigt. In Figur 10 ist die Aufteilung eines multi port RAMs in Bereiche mit mehrfachassoziativem Zugriff gezeigt.
In Figur 11/1 Ia ist ein Multiprozessorsystem mit zwei Ausführungseinheiten und einem Dual Port Cache gezeigt, das vorzugsweise symmetrisch aufgebaut ist.
In Figur 12 ist ein allgemeiner Fall einer Umschalt- und Vergleichseinheit, auch für die Verwendung für mehr als zwei Ausführungseinheiten, gezeigt.
In Figur 13 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit für Schreibund Lesezugriffe auf den Cache-Speicher im Performanzmodus gezeigt.
In Figur 14 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit für Lesezugriffe auf den Cache-Speicher in einer ersten Ausführung des Vergleichs- modus gezeigt.
In Figur 15 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit für Lesezugriffe auf den Cache-Speicher in einer zweiten Ausführung des Vergleichsmodus gezeigt.
In Figur 16 ist eine Konfiguration einer Umschalt- und Vergleichseinheit mit Unterbre- chungseinrichtung für schreibenden Zugriff auf den Cache-Speicher im Vergleichsmodus gezeigt.
In Figur 17 ist eine Konfiguration einer Umschalt- und Vergleichseinheit mit Puffereinrichtung für schreibenden Zugriff auf den Cache-Speicher im Vergleichsmodus gezeigt. In Figur 18 ist ein Multiprozessorsystem mit zwei Ausfiihrungseinheiten und mit getrennten Dual Port Cache-Speichern für Befehle und Daten gezeigt.
Beschreibung der Ausfiihrungsbeispiele
Als Ausfiihrungseinheit kann im Folgenden sowohl ein Prozessor, ein Core, eine CPU, als auch eine FPU (Floating Point Unit), ein DSP (Digitaler Signalprozessor), ein Coprozessor oder eine ALU (Arithmetic logical Unit) bezeichnet werden.
Die Erfindung bezieht sich auf ein in Figur 1 dargestelltes Multiprozessorsystem (WlOO) mit wenigstens zwei Ausführungseinheiten (Wl 10a, Wl 10b), einer Vergleichseinheit (W120) und einer Umschalteinheit (Wl 50). Die Ausführungseinheiten sind jeweils über Signalleitungen bzw. Busse (Wl 12a, Wl 12b) mit der Vergleichseinheit (W120) und der Umschalteinheit
(W 150) verbunden. Die Umschalteinheit (W 150) hat wenigstens zwei Ausgänge zu zwei Systemschnittstellen (W130a, W130b). Über diese Schnittstellen können Speicher oder Peripherals wie Digitale Ausgänge, D/A- Wandler, Kommunikationscontroller angesteuert werden. Eine Ausführungseinheit kann dabei sowohl als Prozessor/Core/CPU, als auch als FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor, ALU (Arithmetic logical Unit) realisiert sein.
Dieses Multiprozessorsystem kann in wenigstens zwei Betriebsmodi betrieben werden, einem Vergleichsmodus VM und einem Performanzmodus PM.
Im Performanzmodus PM werden in den unterschiedlichen Ausführungseinheiten unterschiedliche Befehle, Programmsegmente oder Programme parallel ausgeführt. In diesem Betriebsmodus ist die Vergleichseinheit deaktiviert. Die Umschalteinheit (Wl 50) ist in diesem Betriebsmodus so konfiguriert, dass jede Ausführungseinheit exklusiv mit einer der Systemschnittstellen (W130a, W130b) verbunden ist. Über die Systemschnittstellen kann ein Resultat einer Ausfih- rungseinheit in einen Speicher (W 170) geschrieben werden oder auf einen Peripheriebaustein (W180, W190) ausgegeben werden. Ein Peripheriebaustein kann z.B. ein Analog-Digital- Wandler oder ein Kommunikationscontroller eines Kommunikationssystems (z.B. SPI, LIN, CAN, FlexRay) sein. Zur Deaktivierung der Vergleichseinheit gibt es mehrere Möglichkeiten. Zum einen kann man an den Vergleicher ein Signal führen (z.B. über die Verbindung W125), mit dem dieser aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einzufügen, die dies durchführen kann. Eine weitere Möglichkeit ist es, dem Vergleicher keine zu vergleichenden Daten zuzuführen. Eine dritte Möglichkeit ist es, auf Systemebene das Fehlersignal (Wl 55) des
Vergleichers zu ignorieren. Weiter kann man auch das Fehlersignal selbst unterbrechen. Allen Möglichkeiten ist gemeinsam, dass sie im System einen Zustand erzeugen, bei dem es keine Rolle spielt, wenn zwei oder mehr Daten, die potenziell verglichen werden, verschieden sind. Wird dieser Zustand durch eine Maßnahme im Vergleicher oder dessen Ein- oder Ausgangssig- nalen erreicht, dann wird der Vergleicher als passiv oder deaktiviert bezeichnet.
Im Vergleichsmodus VM werden in beiden Ausführungseinheiten (Wl 10a, Wl 10b) gleiche o- der gleichartige Befehle, Programmsegmente oder Programme abgearbeitet. Über die Signalleitungen bzw. Busse (Wl 12a, Wl 12b) werden die Ausgangssignale der Ausführungseinheiten an die Vergleichseinheit (W 120) und an die Umschalteinheit (W 150) geführt. In der Vergleichseinheit werden die beiden Daten auf Übereinstimmung geprüft. Nach erfolgtem Vergleich wird der Umschalteinheit über ein Statussignal (W125) mitgeteilt, ob diese eines der übereinstimmenden Ergebnisse an eine der Systemschnittstellen ausgeben darf oder ob sie aufgrund einer erkannten Diskrepanz der Ergebnisse das Signal sperren muss. In diesem Fall kann von der Vergleichseinheit ein optionales Fehlersignal (Wl 55) ausgegeben werden. Dieses Fehlersignal kann anstatt von der Vergleichseinheit auch von der Umschalteinheit ausgegeben werden (Wl 56). Die Vergleichseinheit (W120) und die Umschalteinheit (Wl 50) können auch zu einer kombinierten Umschalt- und Vergleichseinheit (W520) zusammengefasst werden.
Ein allgemeiner Fall der Umschalt- und Vergleichskomponente, auch für die Verwendung für mehr als zwei Ausführungseinheiten, ist in Figur 12 gezeigt. Von den n zu berücksichtigenden Ausführungseinheiten gehen n Signale N 140,..., N14n an die Umschalt- und Vergleichskomponente W520. Diese kann bis zu n Ausgangssignale N160,..., N16n aus diesen Eingangssignalen erzeugen. Im einfachsten Fall, dem "reinen Performanzmodus", werden alle Signale N14i auf die entsprechenden Ausgangssignale N16i geleitet. Im entgegen gesetzten Grenzfall, dem "reinen Vergleichsmodus" werden alle Signale N 140,..., N14n nur auf genau eines der Ausgangssignale N16i geleitet. In einem System mit n Ausfiihrungseinheiten und n > 2 sind mehr als nur zwei Betriebsmodi denkbar. Anhand Fig.12 lässt sich darlegen, wie die verschiedenen denkbaren Modi entstehen können. Dazu ist in dieser Figur die logische Komponente einer Schaltlogik Nl 10 enthalten. Diese legt zunächst fest, wie viele Ausgangssignale es überhaupt gibt. Weiter legt die Schaltlogik Nl 10 fest, welche der Eingangssignale zu welchem der Ausgangssignale beitragen. Dabei kann ein Eingangssignal zu genau einem Ausgangssignal beitragen. In mathematischer Form anders formuliert ist also durch die Schaltlogik eine Funktion definiert, die jedem Element der Menge {N140,..., N14n} ein Element der Menge {N160,..., N16n} zuordnet.
Die Verarbeitungslogik N 120 legt dann zu jedem der Ausgänge N16i fest, in welcher Form die Eingänge zu diesem Ausgangsignal beitragen. Um beispielhaft die verschiedenen Variationsmöglichkeiten zu beschreiben, sei ohne Beschränkung der Allgemeinheit angenommen, dass der Ausgang N 160 durch die Signale N141, ..., N 14m erzeugt wird. Falls m = 1 entspricht dies eh- fach einer Durchschaltung des Signals, falls m= 2 dann werden die Signale N141, N142 verglichen. Dieser Vergleich kann synchron oder asynchron durchgeführt werden, er kann bitweise oder nur auf signifikante Bits oder auch mit einem Toleranzband durchgeführt werden.
Die Konfiguration der Umschalt- und Vergleichseinheit (W520) ist je nach Priorität der Sys- temkomponenten abhängig vom Betriebsmodus des Multiprozessorsystems oder definiert diesen. Um innerhalb des Systems eine konsistente Information über den Betriebsmodus sicherai- stellen und diesen ggf. externen Einheiten mitzuteilen, ist es vorteilhaft, die Information über den Betriebsmodus in einer der Systemkomponenten zu identifizieren und in einem oder mehreren Signalen zur Verfügung zu stellen.
In einer bevorzugten Ausführung kann dieses Signal in der Umschalt- und Vergleichseinheit erzeugt werden und als Modussignal Nl 50 anderen Teilen des Systems zur Verfügung gestellt werden. Darüber hinaus ist ein Fehlersignal N 170 in dieser Figur eingezeichnet. Das optionale Fehlersignal wird von der Fehlerschaltungslogik N130, die die Fehlersignale sammelt, generiert und ist entweder eine direkte Weiterleitung der Einzelfehlersignale oder eine Bündelung der darin enthaltenen Fehlerinformation. Das Modussignal Nl 50 ist optional, seine Verwendung außerhalb dieser Komponente kann aber an vielen Stellen vorteilhaft verwendet werden. Die Kombination der Information der Schaltlogik Nl 10 (d.h. die o. g. Funktion) und der Verarbeitungslogik (d.h. die Festlegung der Vergleichsoperation pro Ausgangssignal, d.h. pro Funktionswert) ist die Modusinformation und diese legt den Betriebsmodus des Multiprozessorsys- tems fest bzw. spiegelt diesen wider. Diese Information ist im allgemeinen Fall natürlich mehr- wertig, d.h. nicht nur über ein logisches Bit darstellbar. Nicht alle theoretisch denkbaren Modi sind in einer gegebenen Implementierung sinnvoll, man wird vorzugsweise die Zahl der erlaubten Modi einschränken. Das Modussignal bringt dann die relevante Modusinformation nach außen. Eine HW-Implementierung ist vorzugsweise so dargestellt, dass das extern sichtbare Modussignal konfiguriert werden kann. Vorzugsweise sind ebenfalls die Verarbeitungslogik und die Schaltlogik konfigurierbar gestaltet. Vorzugsweise sind diese Konfigurationen aufeinander abgestimmt. Alternativ kann man auch nur oder ergänzend Änderungen des Modussignals nach außen geben. Dies hat insbesondere in einer Zweierkonfiguration Vorteile.
Gemäß den kennzeichnenden Merkmalen des Anspruchs 1 wird in der vorliegenden Erfindung der Einsatz eines Dual Port Cache-Speichers in einem Multiprozessorsystem mit wenigstens zwei Ausführungseinheiten vorgeschlagen. Besonders vorteilhaft ist eine solche Konfiguration dann, wenn das Multiprozessorsystem zwischen wenigstens zwei Betriebsmodi, beispielsweise dem oben beschriebenen Vergleichsmodus und dem Performanzmodus, umschalten kann.
In Figur 2 ist ein Dual Port Cache 200 gezeigt, der zu wesentlichen Teilen aus einem Dual Port
RAM (dpRAM, 230), einer Buszugriffssteuerung 240 und einer Einheit 250, dieu. a. eine Ad- ressdecodierung enthält, besteht. Der dpRAM 230 ist vorzugsweise mit zwei voneinander unabhängigen Adressdecodern, zwei Daten Schreib-/Lese- Stufen und im Unterschied zu einer einfe- chen Speicherzellen-Matrix auch mit duplizierten Wort- und Bitleitungen versehen, so dass zu- mindest der Lesevorgang für beliebige Speicherzellen des dpRAMs von beiden Ports gleichzeitig erfolgen kann. (Sinngemäß gilt aber die Anordnung auch, wenn nicht alle Zugriffselemente dupliziert sind und der dpRAM deshalb nur bedingt gleichzeitig über beide Ports zugreifbar ist.) Unter einem dual Port RAM wird deshalb jeder RAM verstanden, der über zwei Ports 231 und 232 verfügt, die unabhängig voneinander benutzt werden können, ohne in Betracht zu ziehen, wie viel Zeit zur Abarbeitung einer Anforderung zum Lesen oder Schreiben von diesem Port benötigt wird, d.h. wie lange es dauert, bis der angeforderte Lese- oder Schreibvorgang auch ggf. in Wechselwirkung mit Anforderungen von dem anderen Port abgeschlossen ist. Die beiden Ports des dpRAM sind über die Signale 201 bzw. 202 mit den Einrichtungen 210 bzw. 220 verbunden, die eine Prüfung der ankommenden Adressen, Daten und Steuersignale 211 bzw. 221 von unabhängigen Ausführungseinheiten 215 und 225 vornehmen und optional die Adressen transformieren. Die Ausführungseinheiten 215 und 225 entsprechen dabei in einem bevorzugten Ausführungsbeispiel den Ausführungseinheiten Wl 10a und Wl 10b aus Figur 1. Die Da- ten werden beim Lesen aus dem Cache-Speicher je nach Port über 201 durch 210 auf 211 oder über 202 durch 220 auf 221 ausgegeben bzw. in jeweils umgekehrter Richtung von den Ausführungseinheiten in den Cache-Speicher geschrieben. Beide Ports des dpRAM sind über die Signale 201 und 202 mit einer Buszugriffssteuerung 240 verbunden, die mit Signalen 241 verbinden ist, die die Verbindung zu einem hier nicht dargestellten (Haupt-)Speicher oder zu einem Cache der nächsten Stufe herstellen.
In Figur 3 sind die Einheiten 210, 220 und 250 detaillierter beschrieben. Beim Zugriff auf den Dual Port Cache werden die in den Signalen 211 und 221 enthaltenen Adressen 212 und 222 der Verarbeitungseinheiten 215 und 225 in einem Adresscomparator 251 der Einrichtung 250 mi- einander verglichen und zusammen mit den in 211 und 221 ebenfalls übermittelten Steuersignalen auf Verträglichkeit geprüft. Im Falle eines Konfliktes wird mittels der Steuersignale, die in den Signalen 213 oder 223 enthalten sind, der Zugriff auf den dual Port RAM 230 verhindert. Solche Konflikte können sein, dass beide Ausführungseinheiten auf die gleiche Adresse schreiben wollen oder dass eine Ausführungseinheit schreibt während die andere von der gleichen Adresse lesen will.
Der Cache kann teilweise oder vollständig assoziativ ausgeführt sein, d.h. die Daten können an mehreren oder gar beliebigen Stellen des Caches abgelegt sein. Um den Zugriff auf den dpRAM zu ermöglichen, muss dazu erst die Adresse ermittelt werden, über die auf die gewünschten Da- ten/Befehle zugegriffen werden kann. Je nach Adressierungsmodus wird eine oder werden mehrere Blockadressen ausgewählt, an denen das von der Ausführungseinheit adressierte Datum im Cache gesucht wird. Alle diese Blöcke werden gelesen und die mit den Daten im Cache abgespeicherte Kennung wird mit der Index- Adresse (Teil der Original- Adresse) verglichen. Bei Übereinstimmung und nach der zusätzlichen Überprüfung der Gültigkeit mit Hilfe der ebenfalls im Cache zu jedem Block abgespeicherten Controlbits (z.B. Valid-Bits, Dirty-Bits und Prozess-
ID) wird ein Cache Hit Signal erzeugt, das die Gültigkeit des Datums anzeigt. Zur Adresstransformation wird vorzugsweise eine Tabelle eingesetzt, die in einer in Figur 2 dargestellten Speichereinheit 214 bzw. 224 (Register oder RAM, auch als TAGRAM bezeichnet) angeordnet ist und sich in den Einheiten 210 bzw. 220 befindet. Die Tabelle ist eine Adress- transformationseinheit, die sowohl die virtuelle Adresse in eine physikalische Adresse umwandelt als auch im Falle eines direct-mapped Cache die genaue (eindeutige) Cache-Zugriffsadresse liefert; bei einer mehrfach assoziativen Cacheorganisation werden mehrere Blöcke angesprochen und bei einem vollständig assoziativen Cache müssen alle Blöcke des Caches gelesen und verglichen werden. Eine solche Adresstransformationseinheit ist z.B. im US Patent 4669043 beschrieben.
Zum Beispiel wird in der o. g. Tabelle zu jeder Adresse bzw. Adressgruppe eines Blocks die Zugriffsadresse des dpRAMs hinterlegt. In der in Figur 4 dargestellten Adressierungsart werden dazu entsprechend der Blockgröße des Caches die signifikanten Adressbits (Index- Adresse) für die Tabelle als Adresse benutzt und der Inhalt ist die Zugriffsadresse des dpRAMs. Als Block bezeichnet man dabei die Anzahl der Bytes, die im Falle eines Cache Miss (Fehlen der erfordσ- lichen Daten im Cache) gemeinsam aus dem (Haupt-) Speicher in den Cache geholt werden, wenn auf eine Adresse aus diesem Bereich lesend zugegriffen wird.
Für den byte- oder Wortweisen Zugriff zum Cache werden die für den Block signifikanten Ad- ressbits mit der Tabelle transformiert und die restlichen (niederwertigen) Adressbits unverändert übernommen.
Für den Schreibvorgang wird beispielsweise einem der beiden Ports eine höhere Priorität eingerichtet, d.h. es wird verhindert, dass gleichzeitig von beiden Ports geschrieben wird. Diese Prfa- rität kann auch dynamisch, z.B. von der Umschalt- und Vergleichseinheit des Multiprozessor- system oder abhängig vom adressierten Speicherbereich erfolgen. Erst wenn der bevorzugte Port die Schreiboperation ausgeführt hat, darf der andere Port schreiben; ggf. hat auch nur ein Prozessor Schreibrechte für entsprechend zugeordnete Speicherbereiche. Ebenso kann man bei einer beliebigen Schreiboperation auf eine Speicherzelle verhindern, dass die gleiche Speicher- zelle vom jeweils anderen Port gelesen wird, oder die Leseoperation kann verzögert werden, indem der Prozessor mit Lesewunsch solange angehalten wird, bis die Schreiboperation abgeschlossen ist. Dazu ist ein in Figur 3 dargestellter Adresscomparator aller Adressbits (251) mit einem entsprechenden Arbiter 252 vorgesehen, der auch die Steuersignaleder Prozessoren auswertet und die Ausgangssignale 213 und 223 bildet, die diese Abläufe steuern. Die Ausgangssignale 213 und 223 können in einer vorteilhaften Ausführung jeweils drei Signalzustände einnehmen: enable, wait, equal. Für einen reinen Instruktionscache ist ein Schreibzugriff nicht notwendig; in diesem Fall reicht ein Signalzustand "equal" für die Ausgangssignale 213 und 223 aus.
Im Falle eines Cache Miss muss das Datum bzw. der Befehl über das Bussystem aus einem Programm- oder Datenspeicher geholt werden. Die ankommenden Daten werden zu der Ausfüh- rungseinheit weitergeleitet, die diese Daten angefordert hat und werden parallel zusammen mit der Kennung und den Controlbits in den Cache geschrieben. Auch hier verhindert der Adress- comparator das nochmalige Holen des Datums vom Speicher, wenn kein Hit vorliegt aber ein Signal equal (Bestandteil oder Zustand von 213 und 223) vom Adresscomparator angezeigt wird. Das Signal equal wird im Falle des Lesens über beide Ports nur von den signifikanten Ad- ressbits gebildet, weil immer der gesamte Block aus dem Speicher geholt wird. Erst wenn der
Block im Cache gespeichert ist, kann die wartende Ausführungseinheit auf den Cache zugreifen.
In einer weiteren vorteilhaften Ausführung werden zwei getrennte Dual Port Caches für Daten und für Befehle/Instruktionen vorgesehen, wobei im Instruktionscache üblicherweise keine Schreibvorgänge vorzusehen sind. Der Adress-Comparator prüft in diesem Fall immer nur auf
Gleichheit der signifikanten Adressbits und stellt das entsprechende Steuersignal "equal" in den Signalen 213 bzw. 223 bereit.
In einem weiteren Ausführungsbeispiel wird der gleichzeitige Lese-Zugriff von beiden Ports auf den internen Speicher nur dann uneingeschränkt funktionieren, wenn die angeforderten Daten in verschiedenen Adressbereichen vorliegen, die den gleichzeitigen Zugriff ermöglichen. Dadurch können bei der Hardware-Realisierung Aufwendungen gespart werden, weil nicht alle Zugriffs- Mechanismen im Speicher dupliziert werden müssen. Beispielsweise kam der Cache in mehreren Teilspeicherbereichen realisiert werden, die unabhängig voneinander betrieben werden kön- nen. Jeder Teilspeicher ermöglicht über enable-Signale nur die Abarbeitung eines Ports. In Figur 5 ist ein solcher Speicher 230 gezeigt, der zwei Teilspeicherbereiche 235 und 236 beinhaltet. In dem hier gezeigten Ausführungsbeispiel werden aus einem Adressbit A die zwei Enable- Signale E0 und Ei gebildet, und zwar so, dass fiir den Fall A=O gilt: E0=I und Ei=O; und fiir den Fall A1=I gilt: E0=O und Ei=I . In den Signalen 233 und 234 sind in diesem Fall die beiden e- nable-Signale und die niederwertigen Adressbits A i ... A0 enthalten.
Für ein weiteres Ausfiihrungsbeispiel mit vier Teilspeichern können die 4 enable-Signale aus zwei Adressbits generiert werden, da jeder Teilspeicher eindeutig einen bestimmten Adressbereich bedient. So können beispielsweise mit den 2 Adressbits A+i und A1 vier Teilspeicherbereiche angesprochen werden, indem die vier enable-Signale E0 bis E3 entsprechend der binären Wertigkeit gemäß Tabelle 1 generiert werden.
Für die in Figur 5 gezeigten Teilspeicher 235 und 236 ist in Figur 6 ein Ausfiihrungsbeispiel dargestellt. Der dort mit 260 bezeichnete Teilspeicher ist in dieser besonderen Ausführung als Single Port RAM 280 ausgeführt, dessen Adressen, Daten und Steuersignale je nach Anforderung umgeschaltet werden. Die Umschaltung wird durch eine Steuerschaltung 270 mit Hilfe el- nes Multiplexers 275 vorgenommen, abhängig von den enable-Signalen und anderer Steuersignale 2901 bzw. 2902 (z.B. read, write) von den entsprechenden Ports. Diese Signale sind ai- sammen mit den Daten und Adressen in den Signalen 233 bzw. 234 enthalten und werden über 5281 bzw. 5282 an den Multiplexer 275 geführt, der je nach Entscheidung der Steuerschaltung 270 entsprechend dem Ausgangssignal 2701 entweder 5281 oder 5282 mit den Signalen 2801 verbindet. In diesem Beispiel wird ohne Einschränkung der Allgemeinheit von einer direkten
Adressierung des Caches ausgegangen (direct-mapped). Falls eine mehrfach-assoziative Cacheorganisation vorliegt, muss entweder in den Einheiten 275 noch der Vergleich auf Gültigkeit stattfinden und das Cache-hit Signal zum Port weitergeleitet werden oder alle Daten werden ü- ber den Port 5331 und das Signal 233 zu 231 bzw. über den Port 5332 und das Signal 234 zu 232 weitergeleitet, wo die Gültigkeit geprüft wird.
Die Steuerschaltung kann dabei die Weiterschaltung der Signale 5281 bzw. 5282 auf 2801 und damit zum Single Port RAM 280 vornehmen und auch die Daten und anderen Signale von 280 in die entgegengesetzte Richtung weiterleiten. Dies geschieht in Abhängigkeit eines gültigen enable-Signals und der Signale 233 und 234 und/oder der Reihenfolge, in welcher die Ports über diese Signale eine Lese- oder Schreib-Operation mit dem Speicher 280 veranlassen. Werden in den Signalen 233 und 234 gleichzeitig die Lese- oder Schreibsignale aktiv, so wird ein zuvor definierter Port zuerst bedient. Dieser Vorzugsport bleibt auch dann mit 2801 verbunden, wenn kein Lese- oder Schreibsignal aktiv ist. Der Vorzugsport kann alternativ auch dynamisch vom Prozessorsystem festgelegt werden, vorzugsweise abhängig von Zustandsinformationen des Prozessorsystems.
Diese Anordnung mit einem Single Port RAM ist kostengünstiger als ein Dual Port RAM mit paralleler Zugriffsmöglichkeit, verzögert aber die Abarbeitung mindestens einer Ausführungseinheit, wenn auf einen Teilspeicherbereich gleichzeitig (auch lesend) zugegriffen wird. Je nach Anwendung ist es nun möglich, verschiedene Aufteilungen der RAM-Teilbereiche so vorzu- nehmen, dass zusammen mit der Gestaltung der Befehlsabläufe und der Datenzugriffe von den unterschiedlichen Ausführungseinheiten möglichst wenig gleichzeitige Zugriffe zu gleichen Teil-Speicherbereichen auftreten. Diese Anordnung ist auch erweiterbar auf Zugriffe von mehr als zwei Ausführungseinheiten: Es ist in gleicher Weise auch ein Multi-Port RAM realisierbar, wenn die Umschaltung der Adressen, Daten und Steuersignale über mehrere Multiplexer sti- fenweise nacheinander vorgesehen wird (Figur 7).
Ein solches Multi Port RAM 290 ist in Figur 7 dargestellt. Dort werden die Port- Eingangssignale 261, 262,...267 in den Decodiereinrichtungen 331, 332, ..337 zu den Signalen 291, 292 ...297 decodiert. Diese Decodierung erzeugt die enable-Signale für die Zugriffe zu den einzelnen RAMs in 281, 282 und 288. In Figur 7a ist ein Ausführungsbeispiel für einen
Teilspeicher 28x (281 ... 288) näher gezeigt. Dort werden in einer ersten Stufe der Steuereinrichtungen 370 die enable-Signale und Steuersignale 3901, 3902, ... 3908 aus den Steuersignalen 291, 292 ... 298 verarbeitet zu den Ausgangssignalen 3701,.. 3707. Diese Ausgangssignale steuern je einen Multiplexer 375 an, der je nach Signalwert die Verbindungen der Busse 381 oder 382, bis 387 oder 388 mit den Signalen 481 ...488 herstellt. In weiteren Stufen sind ähnliche Steuereinrichtungen 370 und Multiplexer 375 entsprechend geschaltet bis in einer letzten Stufe die Signale 5901 und 5902 für die Steuereinrichtung benutzt werden. Das Ausgangssignal 5701 verbindet dann entweder 581 oder 582 mit 681, das mit dem Single Port RAM 280 verbunden ist.
Im Gegensatz zu den Multiplexern 275 von Figur 6 verbinden die Multiplexer 375 von Figur 7a neben den Adress-, Daten- und Steuersignalen auch die enable-Signale der nächsten Stufen, die in 381, 382 ... 388 enthalten sind. Weiterhin können in 375 Vergleichseinrichtungen enthalten sein, die bei einer mehrfach-assoziativen Adressierungsart die Gültigkeit der aus den Teilbereichen gelesenen Daten ermitteln.
In einem weiteren vorteilhaften Ausfuhrungsbeispiel eines Dual Port Cache-Speichers kann die
Zuordnung von RAM-Bereichen zu verschiedenen Ausfuhrungseinheiten von einem oder mehreren Systemzuständen oder Konfigurationen abhängig gemacht werden. In Figur 8 ist dazu ein Beispiel für einen konfigurierbaren Dual Port Cache gezeigt. Dazu wird ein Modus- oder Konfigurationssignal 1000 bei der Decodierung der Eingangssignale für jeden der zwei Ports be- nutzt. Dieses Konfigurationssignal kann dem Modus-Signal Nl 50 aus Figur 12 entsprechen, o- der Teile der Informationen des Modus-Signals Nl 50 beinhalten oder aus Kombination von Nl 50 mit anderen Informationen des Multiprozessorsystems gebildet werden. Tabelle 2 zeigt eine Möglichkeit der Veränderung der Decodierung in Abhängigkeit von diesem Signal 1000, das hier mit M bezeichnet ist. Ist M=O, so liegt zum Beispiel ein Vergleichsmodus vor, in dem beide Ports Zugriff auf den gesamten Cache haben. Wird aber M=I (z.B. Performanz-Modus), so hat jeder Port nur noch den Zugriff auf die Hälfte des Cache, aber jeder Port kann uneingeschränkt (ohne Einfluss der Aktivitäten am anderen Port) auf diesen Bereich zugreifen. In diesem Modus wird das Adressbit A nicht zur Adressierung des Caches (im direct-mapped mode) verwendet, sondern Daten, die sich in der Adressierung nur in diesem Bit unterscheiden, werden an der gleichen Stelle im Cache abgelegt. Erst beim Lesen des Cache-Inhalts kann anhand der
Kennung dann herausgefunden werden, ob es sich um das gesuchte Datum handelt und entsprechend das Cach-hit Signal generiert werden. Je nachdem, wo der entsprechende Vergleicher angeordnet ist, sind die Daten einschließlich Kennung und Controlbits über die Signale 291, 292,...297 an die Ports 331, 332, ...337 und weiter an die Signale 261, 262,...267 auszugeben. Ebenso ist es möglich im Performanzmodus (M=I) nur dem Port 1 den Zugriff auf den gesamten Cache zu erlauben. Diese weitre Ausführung ist in Tabelle 3 dargestellt. Der Anwender kann auch durch mehrere Konfigurationssignale beliebige andere Aufteilungen des Caches vorndi- men. Das erlaubt bei einem größeren Cache-Bereich einerseits eine höhere Hit-Rate und verringert damit die Notwendigkeit des Holens der Daten aus dem Hauptspeicher. Andererseits be- hindern sich die verschiedenen Ausführungseinheiten nicht, wenn über die verschiedenen Ports möglichst nur auf voneinander unabhängige Cache-Bereiche zugegriffen wird. Da diese Bedingungen von den zur Anwendung vorgesehenen Programmen abhängig sind ist es vorteilhaft, wenn je nach Anwendung die Möglichkeit einer anderen Konfiguration besteht. Andererseits kann direkt bei einem Wechsel des Systemzustandes (Vergleichsmodus / Performanzmodus) automatisch der Cache durch das Modussignal 1000 umgeschaltet werden.
Diese Möglichkeit der Umschaltung der Ports in Abhängigkeit von einem Modus- oder Konfigurationssignal wird in Figur 9 auf einen Multi-Port Cache 290 erweitert. Dabei sind 331, 332, ... 337 die Ports, die mit Hilfe dieses Modus- oder Konfigurationssignals die Zuschaltung verschiedener Teil-RAM-Bereiche 281,282,... 288 steuern. Diese Steuerung wird mittels entsprechend in den Ports generierter select-Signale gewährleistet, die in den Signalen 291, 292,...297 enthalten sind.
Sollen in einem Multiprozessorsystemen mit mehr als zwei Betriebsmodi abhängig von diesen Betriebsmodi auch mehr als zwei Konfigurationen des Cache-Speichers möglich sein, so reicht ein zweiwertiges Modussignal 1000 nicht aus. In diesem Fall ist es vorteilhaft, das Modussignal mehrwertig auszuführen oder ein weiteres, in den Figuren 8-10 nicht dargestelltes Modussignal 2000 einzuführen.
Eine weiteres Ausführungsbeispiel ist in Figur 10 gezeigt, wenn ein mehrfach-assoziativer Cache vorliegt, bei dem aus jedem Teilspeicher 281, 282,...288 die Daten zusammen mit der Kennung und den Controlbits zurückgelesen werden. In den Vergleichseinrichtungen 2811, 2812,...2817, 2821, 2822,...2827, ...2881,2882,..2887 wird dann die Gültigkeit geprüft und in
Abhängigkeit davon das Datum auf den Signalen 2910, 2920...2970 zusammen mit den Gültigkeitssignalen weitergeleitet. Eine Umschaltung mit Modus- oder Konfigurationssignalen ist dabei optional genauso möglich, wie schon in Figur 9 gezeigt und erläutert. In den Ports 3310, 3320,.. 3370 werden die Gültigkeitssignale und ggf. die Modus- und Konfigurationssignale 1000 ausgewertet und das entsprechende gültige Datum mit dem Cache Hit Signal bzw. das Cache Miss Signal an die Signale 2610, 2620,...2670 weitergeleitet.
Anstelle eines RAM-Speicher kann die erfindungsgemäße Anordnung eines Dual Port Cache- Speichers auch mit anderen Speichertechnologien wie MRAM, FERAM o. ä. dargestellt wer- den. In Figur 11 ist ein Multiprozessorsystem (W500) mit zwei Ausfiihrungseinheiten (W510a, W510b), einer Umschalt- und Vergleichseinheit (W520) und einem Dual Port Cache-Speicher (W550) gezeigt. Über den Signalpfad W518 signalisiert die Vergleichseinheit (W520), wenn im Vergleichsmodus ein Fehler aufgetreten ist. Die Ausführungseinheiten sind jeweils über Signal- leitungen bzw. Busse (W512a, W512b) mit der Umschalt- und Vergleichseinheit (W520) verbunden, die ihrerseits zwei Verbindungen (W513a, W513b) zu einem Dual Port Cache-Speicher und zwei Verbindungen (W514a, W514b) zu zwei Systemschnittstellen (W535, W545) hat. Die Signale (W512a, W512b) entsprechen dabei den Signalen 211 und 221 aus Figur 2 verfügen ü- ber den gleichen oder ähnlichen Umfang an Daten. Der Dual Port Cache-Speicher (W550) ist über eine Verbindung 241 und eine optionale Speicherschnittstelle (W530) mit einem (Haupt-)
Speichersystem (W570) verbunden. Über die Systemschnittstellen (W535, W545) können weitere Einheiten des Prozessorsystems (W580) wie z.B. Coprozessoren oder Timer-Einheiten und Peripherals (W590) wie Digitale Ausgänge, D/A-Wandler und Kommunikationscontroller angesteuert werden. Eine Ausführungseinheit kann dabei sowohl als Prozessor/Core/CPU, als auch als FPU (Floating Point Unit), DSP (Digitaler Signalprozessor), Coprozessor, ALU (Arithmetic logical Unit) realisiert sein.
In Figur 1 Ia ist das Multiprozessorsystem (W500) aus Figur 11 abstrahiert und zur besseren Übersichtlichkeit ohne die Systemschnittstellen (W535, W545), die Verbindungen (W514a, W514b) und die Einheiten W580 und W590 dargestellt.
Dieses Multiprozessorsystem kann in wenigstens zwei Betriebsmodi betrieben werden, einem Vergleichsmodus VM und einem Performanzmodus PM.
Im Performanzmodus PM werden in den unterschiedlichen Ausführungseinheiten unterschiedliche Befehle, Programmsegmente oder Programme parallel ausgeführt. In Figur 13 ist der interne Schaltzustand der Umschalt- und Vergleichseinheit (W520) für Schreib- und Lesezugriff auf den Cache-Speicher im Performanzmodus gezeigt. In diesem Betriebsmodus ist der Vergleicher (W522) der Umschalt- und Vergleichseinrichtung (W520) deaktiviert, d.h. es werden keine Da- ten verglichen. Zur Deaktivierung der Vergleichseinheit gibt es mehrere Möglichkeiten. Zum einen kann man an den Vergleicher ein Signal führen, mit dem dieser aktiviert oder deaktiviert wird. Dazu ist im Vergleicher eine zusätzliche Logik einzufügen, die dies durchführen kann. H- ne weitere Möglichkeit ist es, dem Vergleicher keine zu vergleichenden Daten zuzuführen, so wie dies in dem in Figur 13 gezeigten Ausfuhrungsbeispiel schematisch dargestellt ist. Eine dritte Möglichkeit ist es, auf Systemebene das Status- bzw. Fehlersignal (W518, dargestellt in Figur 14) des Vergleichers zu ignorieren. Weiter kann man auch das Fehlersignal selbst unter- brechen. Allen Möglichkeiten ist gemeinsam, dass sie im System einen Zustand erzeugen, bei dem es keine Rolle spielt, wenn zwei oder mehr Daten, die potenziell verglichen werden, verschieden sind. Wird dieser Zustand durch eine Maßnahme im Vergleicher oder dessen Ein- oder Ausgangssignalen erreicht, dann wird der Vergleicher als passiv oder deaktiviert bezeichnet.
Im Performanzmodus ist jede Ausführungseinheit mit einem Port des Dual Port Cache-
Speichers (W550) verbunden. Dies wird in dem in Figur 13 gezeigten Ausführungsbeispiel dadurch erreicht, dass der Umschalter (W525) der Umschalt- und Vergleichseinrichtung (W520) so konfiguriert ist, dass das Signal 512a direkt mit dem Signal 513a verbunden ist und das Signal 512b direkt mit dem Signal 513b verbunden ist. Damit kann ein Lesevorgang für beliebige Speicherzellen des Dual Port Caches, insbesondere auch ein Lesezugriff auf genau die gleiche
Speicherzelle, von beiden Ausführungseinheiten gleichzeitig erfolgen.
Ein gleichzeitiger Schreibvorgang auf die gleiche Speicherzelle- oder bei blockweisem Schreiben auf den Cache-Speicher auf den gleichen Speicherblock- eines Dual Port Cache-Speichers ist nicht möglich. Für den Schreibvorgang wird beispielsweise einem der beiden Ports des Dual
Port Cache-Speichers und damit einer Ausführungseinheit eine höhere Priorität eingerichtet, d.h. es wird verhindert, dass gleichzeitig von beiden Ausführungseinheiten auf die gleiche Speicherzelle bzw. den gleichen Speicherblock geschrieben wird. Diese Priorität kann auch dynamisch, z.B. von der Umschalt- und Vergleichseinheit des Multiprozessorsystem oder abhängig vom adressierten Speicherbereich festgelegt werden. Erst wenn der bevorzugte Port die
Schreiboperation ausgeführt hat, darf der andere Port schreiben.
Ein Zugriffskonflikt, z.B. ein gleichzeitiger Schreibzugriff von zwei Ausführungseinheiten auf die gleiche Speicherzelle bzw. den gleichen Speicherblock kann folgendermaßen erkannt und aufgelöst werden: Beim Zugriff auf den Dual Port Cache werden entsprechend Figur 3 die in den Signalen 211 und 221 (entspricht den Signalen 512a und 512b in Figur 11) enthaltenen Adressen 212 und 222 der Verarbeitungseinheiten 215 und 225 in einem Adresscomparator 251 der Einrichtung 250 miteinander verglichen und zusammen mit den in 211 und 221 ebenfalls übermittelten Steuersignalen auf Verträglichkeit geprüft. Sind diese Adressen gleich, und soll auf wenigstens eine der Adressen schreibend zugegriffen werden, liegt ein Konflikt vor. Im Falle eines Konfliktes wird mittels der Steuersignale, die in den Signalen 213 oder 223 enthalten sind, der Zugriff wenigstens eines Ports auf den dual Port RAM 230 verhindert..
Im Falle eines Cache Miss, d.h. wenn bei einem Lesezugriff einer ersten Ausführungseinheit auf den Cache-Speicher das angeforderte Datum bzw. der Befehl nicht im Cache-Speicher enthalten ist, muss das Datum bzw. der Befehl über das Bussystem aus einem Programm- oder Daten- Speicher, beispielsweise dem Hauptspeicher (W570 aus Figur 11), geholt werden. Die ankommenden Daten werden zu der Ausführungseinheit weitergeleitet, die diese Daten angefordert hat und werden parallel zusammen mit der Kennung und den Controlbits in den Cache geschrieben. Wenn während der Übertragung eines Speicherblocks vom Hauptspeicher in den Cache- Speicher eine Adresse aus dem gleichen Speicherblock beispielsweise von einer zweiten Aus- führungseinheit adressiert wird, wird dies vom Adresscomparator erkannt und dieser verhindert das nochmalige Übertragen dieses Speicherblocks vom Hauptspeicher.
Wie in den Figuren 11 und IIa gezeigt, ist die Umschalt- und Vergleichseinheit (W520) vorteilhafter weise zwischen den Ausführungseinheiten (W510a, W510b) und dem Dual Port Ca- che-Speicher W550 angeordnet. Dies ermöglicht im Vergleichsmodus mehrere vorteilhafte
Zugriffsarten der Ausführungseinheiten auf den Dual Port Cache, die im folgenden beschrieben werden.
Im Vergleichsmodus ist jede Ausführungseinheit über die Signalverbindungen W512a und W512b mit der Umschalt- und Vergleichseinheit (W520) und damit nach Figur 15 und 16 auch mit dem dort enthaltenen Vergleicher (W522) verbunden.
In Figur 14 und Figur 15 ist die interne Verschattung der Umschalt- und Vergleichseinheit für zwei Ausführungen eines Lesezugriffs im Vergleichsmodus gezeigt. In einer ersten Ausführung nach Figur 14 ist der Umschalter (W525) in der gleichen Stellung wie im Performanzmodus, d.h. jede der Ausführungseinheiten (W510a, W510b) ist mit einem Port des Dual Port Cache- Speichers (W550) verbunden. Da die beiden Ausfiihrungseinheiten im Vergleichsmodus die gleichen Programme, Programmsegmente oder Befehle abarbeiten, greifen sie auch auf die gleichen Speicheradressen zu. Zunächst können die Adressen vom Vergleicher (W522) geprüft werden und die Weitergabe der Adressen erfolgt erst bei Übereinstimmung. Weiterhin ist alter- nativ oder zusätzlich möglich, die über verschiedene Ports des Cache-Speichers ausgelesenen
Informationen einer Speicherzelle im Vergleicher (W522) zu überprüfen. Somit können auch Fehler in der Adressierungslogik des Dual Port Cache-Speichers und in der Übertragung zwischen Cache und Vergleicher entdeckt werden. Der Vergleicher kann über das Vergleichs- /Fehlersignal (W518) eine das Vergleichsergebnis repräsentierende Information an die Ausfüh- rungseinheiten signalisieren. Allerdings ist für diese Ausführungsform eine Ausführung eines
Dual Port Cache-Speichers z.B. nach Figur 3 notwendig, bei der zeitgleich über die beiden Ports auf die gleiche Speicherzelle lesend zugegriffen werden kann.
In einer zweiten Ausführung des Vergleichsmodus nach Figur 15 ist der Umschalter, hier mit W526 bezeichnet, in einer anderen Schaltstellung. In dieser Ausführung erfolgt nur ein Zugriff über die Verbindung W513a auf den Dual Port Cache-Speicher. Dieser Zugriff erfolgt allerdings nur dann, wenn die über die Signalverbindungen W512a und W512b an den Vergleicher geführten Zugriffsadressen identisch sind. Wird vom Vergleicher eine Diskrepanz der Adressen erkannt, so kann der Speicherzugriff über das Signal W517 und die Verzögerungs- und Unter- brechungseinrichtung W519 verhindert werden.
In Figur 16 ist eine Konfiguration der Umschalt- und Vergleichseinheit (W520) für einen Schreibzugriff auf den Dual Port Cache-Speicher im Vergleichsmodus gezeigt. Hierbei werden die über die Signalverbindungen W512a und W512b an den Vergleicher geführten Zugriffsad- ressen und die zu schreibenden Daten verglichen. Bei Übereinstimmung werden nur die Daten einer Ausführungseinheit, im gezeigten Ausführungsbeispiel die über die Verbindung W512a erhaltenen Daten, über eine Verbindung (W513a) und einen Port in den Dual Port Cache- Speicher geschrieben. Bei Diskrepanz der über die Verbindungen W512a und W512b erhaltenen Adressen und/oder Daten, wird in einem ersten Ausführungsbeispiel der Zugriff auf den Cache-Speicher über das Signal W517 und die Verzögerungs- und Unterbrechungseinrichtung
W519 verhindert. Dies hat den Vorteil, dass nur gültige bzw. korrekte Daten in den Cache geschrieben werden, aber den Nachteil, dass der Schreibzugriff auf den Cache erst nach abgeschlossenem Vergleich durchgeführt werden kann und die Ausführungseinheiten dadurch ggf verzögert werden. Der Schalter W527 stellt sich das die Signalverbindung W512b ausschließlich an den Vergleich W522 geht.
In einem zweiten Ausfuhrungsbeispiel nach Figur 17 werden die über die Signalverbindungen W512a und W512b an den Vergleicher geführten Zugriffsadressen und die zu schreibenden Daten verglichen und gleichzeitig die über eine Verbindung (z.B. W512a) erhaltenen Daten in einen Pufferspeicher W529 geschrieben. Über das Signal W517 wird dem Pufferspeicher W529 eine das Vergleichsergebnis repräsentierende Information zugeführt. Bei Übereinstimmung der der über die Verbindungen W512a und W512b erhaltenen Adressen und/oder Daten wird die im Pufferspeicher gespeicherte Information über eine Verbindung (z.B. W513a) und einen Port in den Dual Port Cache-Speicher geschrieben. Erkennt der Vergleicher hingegen eine Diskrepanz, so werden die Daten im Pufferspeicher nicht für einen Schreibzugriff freigegeben und vorteilhafter weise gelöscht. Daraus ergibt sich der Vorteil, dass nur gültige bzw. korrekte Daten in den Cache geschrieben werden, aber keine Verzögerung der Ausführungseinheiten erfolgt.
In einem weiteren Ausführungsbeispiel für den Schreibzugriff im Vergleichsmodus schreibt eine der beiden Ausführungseinheiten die Daten in den Cache-Speicher. Ein Vergleich der über die Verbindungen W512a und W512b erhaltenen Adressen und/oder Daten der beiden Ausführungseinheiten erfolgt parallel zum Schreiben oder nach dem Schreiben der Daten in den Cache. Erkennt der Vergleicher eine Diskrepanz, so muss das geschriebene Datum im Cache hinterher als ungültig erklärt werden. Dazu wird dem Cache-Speicher von der Umschalt- und Vergleichseinheit eine das Vergleichsergebnis repräsentierende Information über ein Vergleich- /Fehlersignal (W518 aus Fig. 1 Ia und Fig. 14-17 bzw. N170 aus Fig. 12) zur Verfügung gestellt. Das bereits geschriebene Datum wird dann durch Setzen eines Bits in einem Status- oder Controlregister des Cache-Speichers oder durch Löschen einer Information aus der HIT-Tabelle als ungültig gekennzeichnet oder durch ein altes Datum ersetzt, falls dieses im Cache-Speicher oder im System noch vorhanden ist. Der Vorteil dieses Ausführungsbeispiels liegt darin, dass die Ausführungseinheiten durch den Vergleich der Adressen und/oder Daten nicht verzögert werden und kein Pufferspeicher in der Umschalt- und Vergleichseinheit notwendig ist.
In einer weiteren vorteilhaften Ausführung eines Multiprozessorsystems werden zwei getrennte Dual Port Caches für Daten und für Befehle/Instruktionen vorgesehen, wobei im Instruktionsca- che üblicherweise keine Schreibvorgänge vorzusehen sind. In Figur 18 ist ein Multiprozesscr- system (W501) mit zwei getrennten Dual Port Cache-Speichern W550c und W550d gezeigt. Dabei ist beispielsweise W550c ein Instruktions-Cache, auf den von den Ausfuhrungseinheiten (W510a, W510b) über W513ac bzw. W513bc nur lesend zugegriffen wird und W550d ein Da- ten-Cache, auf den die Ausführungseinheiten über W513ad bzw. W513bd lesend und schreibende zugreifen können. Jeder Cache besitzt jeweils über die Signalverbindung 241c und die Speicherzugriffseinheit W530c bzw. die Signalverbindung 241d und die Speicherzugriffseinheit W530d einen Zugriff auf den (Haupt-)Speicher. Wie bereits in Figur 1 Ia ist das Multiprozessor- system (W501) in Figur 18 zur besseren Übersichtlichkeit abstrahiert dargestellt. Die in Figur 11 gezeigten Systemschnittstellen (W535, W545), die Verbindungen (W514a, W514b), die
Einheiten W580 und W590 und das Speichersystem W570 können in dem Multiprozessorsys- tem (W501) nach Figur 18 ganz oder teilweise enthalten sein.
In den vorangehenden Ausführungsbeispielen ist jeweils ein Multiprozessorsystem mit zwei Ausführungseinheiten, zwei Betriebsmodi und einem Dual Port Cache-Speicher beschrieben.
Die kennzeichnenden Merkmale der Erfindung können ebenso auf Multiprozessorsysteme mit mehr als zwei Ausführungseinheiten angewendet werden. Änderungen sind dabei hauptsächlich in der Umschalt- und Vergleichseinheit notwendig. Der Dual Port Cache kann dabei zu einem Multi Port Cache erweitert werden, wie beispielsweise in den in Figur 9 und Figur 10 darge- stellten Ausführungsbeispielen beschrieben ist. Die Anzahl der Ausführungseirheiten des MuI- tiprozessorsystems und die Anzahl der Ports des Multi Port Caches und die Anzahl der Teilspeicherbereiche des Cache-Speichers muss dabei nicht identisch sein.

Claims

Patentansprüche
1. Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle, wobei Umschaltmittel vorgesehen sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel vorgesehen sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekennzeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigs- tens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden und bei Umschaltung.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der zweite Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der enable-Signale generiert, die bei einem gleichzeitigen Zugriff auf einen Adressbereich durch mehrere Ports nur einem Port den Zugriff ermöglichen und den Zugriff des wenigstens einen weiteren Ports unterbinden oder verzögern, insbesondere durch wait-Signale.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneinander unabhängigen Adressbereichen über die Auswahleinrichtungen mit meh- reren Stufen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden.
5. Verfahren nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, dass es mindestens ein Modussignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports un- schaltet.
6. Verfahren nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, dass es mindestens ein Konfigurationssignal gibt, das die Zugriffsmöglichkeiten der verschiedenen Ports umschaltet.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass beide Verarbeitungseinheiten einen Lesezugriff vorgeben.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, das bei Vorgabe des Lesezugriffs durch beide Verarbeitungseinheiten den Daten und/oder Befehle zugeordnete Kennungen oder Zugriffsadressen verglichen werden und nur bei Übereinstimmung ein Lesezugriff auf den Cache durchgeschaltet wird.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei Vorgabe eines Lesezugriffs beide Verarbeitungseinheiten auf das Cachespeichersystem zugreifen.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die beim Lesezugriff durch beide Verarbeitungseinheiten gelesenen Daten und/oder Befehle verglichen werden und bei Abweichung ein Signal, insbesondere ein Fehlersignal erzeugt wird.
11. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle verglichen werden und nur dann eingeschrieben werden, wenn diese überein- stimmen.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass bei einem Schreb- zugriff bis die Daten und/oder Befehle verglichen sind die Verarbeitungseinheiten angehalten werden.
13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die Daten und /oder Befehle in einen Pufferspeicher oder Pufferspeicherbereich geschrieben werden und erst nach erfolgreichem Vergleich in den zweiten Speicher oder Speicherbereich über- nommen werden.
14. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass bei einem Schreibzugriff auf den zweiten Speicher oder Speicherbereich zu schreibende Daten und/oder Befehle nur von einer Verarbeitungseinheit geschrieben werden und abhängig von ei- nem parallel ausgeführten Vergleich bei Unterscheidung die eingeschriebenen Daten und/oder Befehle gesperrt oder ungültig erklärt werden.
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Setzen oder Rücksetzen wenigstens eines Bits erfolgt.
16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Überschreiben mit einem anderen, insbesondere alten Datum und/oder Befehl erfolgt.
17. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Sperrung oder Ungültigerklärung durch Streichen einer entsprechenden Eintragung einer Inhaltstabelle des zweiten Speichers oder Speicherbereichs erfolgt.
18. Vorrichtung zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle, wobei Umschaltmittel enthalten sind und zwischen wenigstens zwei Betriebsmodi umgeschaltet wird, wobei Vergleichsmittel enthalten sind und ein erster Betriebsmodus einem Vergleichsmodus und ein zweiter Betriebsmodus einem Performanzmodus entspricht, dadurch gekem- zeichnet, dass in der Vorrichtung ein zweiter Speicher oder Speicherbereich enthalten ist, wobei die Vorrichtung als Cachespeichersystem ausgebildet ist und mit wenigstens zwei getrennten Ports ausgestattet ist und über diese Ports ein Zugriff der wenigstens zwei Verarbeitungseinheiten zu gleichen oder verschiedenen Speicherzellen des zweiten Speichers oder Speicherbereichs erfolgt, wobei die Daten und/oder Befehle aus dem ersten Speichersystem Blockweise zwischengespeichert werden.
19. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass im Cachespeichersys- tem Daten und Befehle getrennt abgespeichert werden und so ein Datenspeicher oder
Datenspeicherbereich und ein Befehlsspeicher oder Befehlsspeicherbereich vorgesehen sind.
20. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass der zweite Speicher oder Speicherbereich in wenigstens zwei Adressbereiche unterteilt ist, die unabhängig voneinander gelesen oder geschrieben werden können.
21. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass ein Adressdecoder vorhanden ist, der enable-Signale generiert, die bei einem gleichzeitigen Zugriff auf ei- nen Adressbereich durch mehrere Ports nur einem Port den Zugriff ermöglichen und den Zugriff des wenigstens einen weiteren Ports unterbinden oder verzögern, insbesondere durch wait-Signale.
22. Vorrichtung nach Anspruch 18, dadurch gekennzeichnet, dass mehr als zwei Ports vorgesehen sind, wobei Auswahleinrichtungen vorhanden sind und der Zugriff zu den voneinander unabhängigen Adressbereichen über die Auswahleinrichtungen mit mdi- reren Stufen erfolgt und dazu die enable-Signale über diese Stufen weitergeleitet werden.
EP06777976A 2005-08-08 2006-07-26 Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle Ceased EP1915695A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005037215A DE102005037215A1 (de) 2005-08-08 2005-08-08 Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Verarbeitungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle
PCT/EP2006/064661 WO2007017376A1 (de) 2005-08-08 2006-07-26 Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle

Publications (1)

Publication Number Publication Date
EP1915695A1 true EP1915695A1 (de) 2008-04-30

Family

ID=37192655

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06777976A Ceased EP1915695A1 (de) 2005-08-08 2006-07-26 Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle

Country Status (5)

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

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345910B (zh) * 2013-06-09 2015-11-18 苏州国芯科技有限公司 单端口调色板sram控制器及其控制方法
US11269777B2 (en) * 2019-09-25 2022-03-08 Facebook Technologies, Llc. Systems and methods for efficient data buffering

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247649A (en) 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
JPH01280860A (ja) * 1988-05-06 1989-11-13 Hitachi Ltd マルチポートキヤツシユメモリを有するマルチプロセツサシステム
JPH0973436A (ja) * 1995-09-05 1997-03-18 Mitsubishi Electric Corp 多重化計算機における動作モード切替方式
US6101589A (en) * 1998-04-01 2000-08-08 International Business Machines Corporation High performance shared cache
US20070277023A1 (en) * 2003-06-24 2007-11-29 Reinhard Weiberle Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
DE10332700A1 (de) 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
DE102005037215A1 (de) 2007-02-15
CN101243415A (zh) 2008-08-13
JP2009505181A (ja) 2009-02-05
WO2007017376A1 (de) 2007-02-15

Similar Documents

Publication Publication Date Title
DE69732181T2 (de) Verfahren und gerät zum zwischenspeichern von systemverwaltungsinformationen mit anderen informationen
DE4218003C2 (de) Cache-Steuereinrichtung für ein sekundäres Cache-Speichersystem
DE112010004963T5 (de) Synchronisieren von SIMD Vektoren
DE112005002420T5 (de) Verfahren und Vorrichtung zum Pushen von Daten in den Cache eines Prozessors
EP1915694A1 (de) Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE112006003453T5 (de) Per-Satz-Relaxation der Cache-Inklusion
DE60025788T2 (de) Flexibles Mehrzweck-Ein/Ausgabesystem
DE4417068A1 (de) Verfahren und Einrichtung zum Betreiben eines Einzel-Prozessor-Computersystems als Mehr-Prozessor-System
DE102007018033A1 (de) Kohärenzverzeichnisaktualisierung
DE3502147C2 (de)
DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
DE3650782T2 (de) Anordnung von Cachespeicherverwaltungseinheiten
WO2007017376A1 (de) Verfahren und vorrichtung zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei verarbeitungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE19950255A1 (de) Mikroprozessor
EP1915686B1 (de) Verfahren und vorrichtung zur festlegung eines startzustandes bei einem rechnersystem mit wenigstens zwei ausführungseinheiten durch markieren von registern
EP1483682A2 (de) Reconfigurierbarer prozessor
EP1917593B1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP1915689B1 (de) Verfahren xmd vorrichtung zur überwachung einer speichereinheit in einem mehrprozessorsystem
WO2007017367A1 (de) Vorrichtung und verfahren zur speicherung von daten und/oder befehlen in einem rechnersystem mit wenigstens zwei ausführungseinheiten und wenigstens einem ersten speicher oder speicherbereich für daten und/oder befehle
DE102014012155A1 (de) Verbesserte verwendung von speicherressourcen
EP1915683B1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
EP1915685B1 (de) Verfahren und vorrichtung zur steuerung eines speicherzugriffs bei einem rechnersystem mit wenigstens zwei ausführungseinheiten
DE10025952A1 (de) Vorabruf-Puffer
EP1915674B1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems mit wenigstens zwei ausführungseinheiten und mit wenigstens zwei gruppen von internen zuständen
DE102005037259A1 (de) Verfahren und Vorrichtung zur Festlegung eines Startzustandes bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten durch Umschalten von Registersätzen

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080310

AK Designated contracting states

Kind code of ref document: A1

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

17Q First examination report despatched

Effective date: 20081006

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20120430