DE69432314T2 - Cachespeicher mit aufgeteiltem pegel - Google Patents

Cachespeicher mit aufgeteiltem pegel Download PDF

Info

Publication number
DE69432314T2
DE69432314T2 DE69432314T DE69432314T DE69432314T2 DE 69432314 T2 DE69432314 T2 DE 69432314T2 DE 69432314 T DE69432314 T DE 69432314T DE 69432314 T DE69432314 T DE 69432314T DE 69432314 T2 DE69432314 T2 DE 69432314T2
Authority
DE
Germany
Prior art keywords
data
memory
cache
address
floating point
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.)
Expired - Lifetime
Application number
DE69432314T
Other languages
English (en)
Other versions
DE69432314D1 (de
Inventor
John Brennan
Yan-Tek Peter HSU
A. William HUFFMAN
Paul Rodman
T. Joseph SCANLON
Kit Man TANG
J. Steve CIAVAGLIA
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.)
MIPS Tech LLC
Original Assignee
MIPS Technologies Inc
MIPS Tech LLC
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 MIPS Technologies Inc, MIPS Tech LLC filed Critical MIPS Technologies Inc
Publication of DE69432314D1 publication Critical patent/DE69432314D1/de
Application granted granted Critical
Publication of DE69432314T2 publication Critical patent/DE69432314T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F12/0851Cache with interleaved addressing
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Description

  • Gebiet der Erfindung
  • Die Erfindung bezieht sich generell auf Speichersysteme für Hochgeschwindigkeits-Datenprozessoren, insbesondere auf eine Speicherhierarchie, einschließlich Hochgeschwindigkeits-Daten-Cache-Speicher.
  • Stand der Technik
  • Derzeit kommen Super-Rechner mit einer Rechenleistung von Milliarden von Gleitkomma-Operationen pro Sekunde (Ligaflops; flop = floating point operation) auf der Basis von Mikroprozessor-Bauweisen auf den Markt.
  • Obwohl Superrechner im allgemeinen durch ihre beeindruckende Gleitkomma-Rechengeschwindigkeit charakterisiert werden, unterscheiden sie sich auch in der Speichergröße und Bandbreite von anderen Rechnern. Jede Gleitkomma-Operation erfordert ein bis drei Speicher-Zugriffe pro Operation. Mithin benötigt ein Mikroprozessor mit einer Rechenleistung von einigen hundert Megaflops eine Speicherhierarchie mit einer Ausgabe-Bandbreite von Gigabytes pro Sekunde.
  • Derzeit stehen Speicher für eine Fließband-Verarbeitung zur Verfügung, die eine hinreichend hohe Bandbreite haben. Bekanntlich beeinträchtigt jedoch die Zugriffszeit dieser Speicher unmittelbar die Ausführungsgeschwindigkeit von Ganzzahl-Programmen, zum Beispiel Betriebssystemen und Compilern, sowie den Festwertmultiplikator teil von Gleitkomma-Programmen. Diese Programme bevorzugen den direkten Zugriff auf ganzzahlige und Adressen-Daten in einem Speicher mit kurzer Zugriffszeit, zum Beispiel einem kleinen internen Cache-Speicher.
  • Die gegensätzlichen Anforderungen an Ganzzahl- und Gleitkomma-Operationen bedeuten daher höhere Anforderungen an die Ausbildung von Superrechnern auf der Basis von Mikroprozessoren.
  • In der US-A-5214765 ist ein Fließband-Rechnersystem beschrieben, das einen Drei-Pegel-Cache-Speicher aufweist, der insbesondere die Verarbeitungsgeschwindigkeit von Gleitkomma-Zahlen steigern soll.
  • In der US-A-4928225 ist ein Mehrprozessorsystem dargestellt. Dieses System enthält einen Cache-Speicher für jeden Prozessor, und deren Kohärenz wird in Bezug auf den globalen Speicher in der Weise sichergestellt, daß alle Prozessoren die korrekten Daten verarbeiten.
  • Die US-A-5155816 offenbart einen Mikroprozessor mit "Fließband"-Aufbau (pipeline-architecture) und einem internen (chipintegrierten) Cache-Speicher. Der Cache-Speicher ist für den Fall, daß während eines Datenabrufzyklus ein Cache-Speicher adressiert wird, direkt mit dem "Fließband" (pipeline) verbunden.
  • In der US-A-5051885 ist eine Vorrichtung zur gleichlaufenden Ausgabe von Befehlen für den gleichzeitigen Empfangen durch Gleitkomma- und Ganzzahl-Prozessoren beschrieben. Die Befehle werde durch einen Cache-Speicher aufgenommen und gespeichert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die Erfindung ist ein Cache-Speicher mit aufgeteiltem Pegel, der einen kleinen örtlichen Cache-Speicher kurzer Zugriffszeit zum Speichern von Ganzzahl- und Adressendaten und einen großen, globalen Cache-Speicher mit längerer Zugriffszeit zum Speichern von Gleitkomma-Daten oder Daten aufweist, die von einem Matrix-Prozessor (Vektorrechner) benötigt werden. Der örtliche Lache-Speicher ist eine Untereinheit des globalen Lache-Speichers (d. h. die in dem örtlichen Cache-Speicher gespeicherten Daten sind eine Untereinheit der in dem globalen Lache-Speicher gespeicherten Daten) und ist der primäre Lache-Speicher für die Ganzzahl-Einheit. Der globale Lache-Speicher speichert Datenreihen für die Benutzung durch eine Gleitkomma-Einheit oder einen Matrixprozessor und ist der primäre Cache-Speicher für die Gleitkomma-Einheit oder den Matrixprozessor und der sekundäre Lache-Speicher für die Ganzzahl-Einheit.
  • Gemäß einem ersten Aspekt der Erfindung ist ein Cache-Speichersystem mit aufgeteiltem Pegel gemäß Anspruch 1 ausgebildet.
  • Gemäß einem zweiten Aspekt besteht die Erfindung in einem Verfahren zum Speichern von Daten in einem Cache-Speichersystem, wie es in Anspruch 6 angegeben ist.
  • Andere Merkmale und Vorteile ergeben sich aus den beiliegenden Zeichnungen und der nachstehenden ausführlichen Beschreibung.
  • KURZE BESCHREIBUNG DER FIGUREN
  • 1 ist ein vereinfachtes Blockschaltbild des Cache-Speichersystems und stellt die Verbindungen zwischen dem örtlichen Cache-Speicher, dem globalen Cache-Speicher, der Gleitkomma-Einheit, der Ganzzahl-Einheit und dem äußeren Hauptspeicher dar.
  • 2 ist ein ausführlicheres Blockschaltbild des in 1 dargestellten Systems.
  • 3 ist ein vereinfachtes Blockschaltbild des Fließband-Aufbaus des externen globalen Cache-Speichers.
  • 4 ist ein ausführlicheres Blockschaltbild des in 3 dargestellten Fließband-Aufbaus.
  • 5 ist ein Diagramm des Formats einer physikalischen Adresse.
  • 6 ist ein ausführliches Blockschaltbild eines kundenspezifischen Kennzeichen-RAM.
  • 7 ist ein Logik-Diagramm des internen örtlichen Cache-Speichers und
  • 8 ein Blockschaltbild der Speicherdatenpfade.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
  • 1 ist ein Blockschaltbild eines bevorzugten Ausführungsbeispiels der Erfindung, das einen kleinen, internen Nicht-Fließband-Cache-Speicher mit geringer Zugriffszeit zur Ausgabe von Ganzzahl- und Adreßdaten an eine Ganzzahl-Einheit eines großen, äußeren Fließband-Cache-Speichers zur Abgabe von Gleitkomma-Daten an eine Gleitkomma-Einheit aufweist.
  • Nach 1 enthält eine Ganzzahl-Einheit (GE) 10 auf demselben Chip einen örtlichen Cache-Speicher mit einem ersten Pegel (nachstehend "örtlicher Cache" genannt) 12. Ein Adressenausgang der GE 10 ist durch einen Adressenbus 16 mit einem externen globalen Cache-Speicher 14 mit zweitem Pegel (nachstehend "globaler Cache" genannt) verbunden. Ein Dateneingangs-Port des örtlichen Cache 12 ist mit einem Datenausgangs-Port des globalen Cache 14 durch einen Füllbus 18 verbunden.
  • Ein Befehlsport der GE 10 ist mit einem Befehlsport einer Gleitkomma-Einheit (GKE) 20 durch einen TBUS 22 verbunden. Der Dateneingangs-Port der GKE 20 ist mit dem Datenausgangs-Port des globalen Cache 14 durch einen Lade-Bus 24 verbunden. Der Datenausgangs-Port der GKE 20 ist mit dem Dateneingangs-Port des globalen Cache 14 durch einen Speicher-Bus 26 verbunden.
  • Der Dateneingangs-Port des globalen Cache 14 ist ferner mit dem Dateneingangs-/Datenausgangsport des externen Hauptspeichers 27 verbunden. Der Datenausgangs-Port der GKE 20 ist mit dem Dateneingangs-/Datenausgangsport des externen Hauptspeichers 27 verbunden.
  • Der globale Cache 14 enthält einen globalen Cache-Fiennzeichenspeicher 28 und einen globalen Cache-Datenspeicher 30. Der Adressenbus 16 enthält einen Offset-Bus 160 zur Übertragung niedrigstelliger Adressenbits, einen Index-Bus 16I zur Übertragung höherstelliger Adressenbits und einen Kennzeichen-Bus 16T für die Kennzeichen-Feldbits. Der Index-Bus 16I und der Kennzeichen-Bus 16T sind mit dem globalen Cache-Kennzeichenspeicher 28 verbunden. Der Index-Bus 16I und der Offset-Bus 160 sind mit den Adresseneingängen des globalen Cache-Datenspeichers 30 verbunden. Das Satzwählsignal des globalen Cache-Kennzeichenspeichers 28 wird einem Satzadresseneingang des globalen Cache-Datenspeichers 30 über einen Wähl-Bus 34 zugeführt.
  • Eine Steuereinheit erzeugt Takt- und Steuersignale zum Steuern von Datenübertragungen. Diese Steuereinheit, die in an sich bekannter Weise ausgebildet ist, bildet keinen Teil der Erfindung und ist in den Zeichnungen nicht dargestellt.
  • 2 stellt ein ausführlicheres Blockschaltbild des in 1 dargestellten Ausführungsbeispiels dar. Nach 2 sind die GE 10 und GKE 20 als einzelne Chips mit dem örtlichen Cache 12 auf der GE ausgebildet. Bei dem bevorzugten Ausführungsbeispiel ist die GE 10 ein RISC-Prozessor, der alle Datenverarbeitungsbefehle mit Daten ausführt, die in einer Register-Datei 36 gespeichert sind. Verarbeitete Daten, die in der Register-Datei 36 gespeichert sind, werden aus der Register-Datei (d. h. über den Datenausgangs-Port) in den örtlichen Cache 12 (d. h. über den Dateneingangs-Port) während Speicheroperationen übertragen. In ähnlicher Weise werden in dem örtlichen Cache 12 gespeicherte Daten aus dem örtlichen Speicher (d. h. über den Datenausgangs-Port) in die Register-Datei 36 (d. h. über den Dateneingangs-Port) während Ladeoperationen übertragen.
  • Ein Adressengenerator (AGEN) 38 in der GE erzeugt virtuelle Adressen, die zur Adressierung des örtlichen Lache 12 dienen. Diese virtuellen Adressen werden einem Adressen-Umsetzer (auch Adressen-Übersetzer oder "-Zuordner" genannt) zugeführt, der die physikalischen Adressen erzeugt, die zum Zugreifen auf Daten in dem externen Hauptspeicher benutzt werden. Der Adressen-Umsetzer ist bei dem bevorzugten Ausführungsbeispiel ein assoziativer Umsetz-Speicher 40.
  • In der Speicherhierarchie des bevorzugten Ausführungsbeispiels wird ein virtueller Speicher, der alle Daten speichert, auf die der Datenprozessor zugreifen kann, durch virtuelle Adressen adressiert, die durch den AGEN 38 erzeugt werden. Die im externen Hauptspeicher 27 gespeicherten Daten bilden eine Untergruppe der im virtuellen Speicher gespeicherten Daten und werden durch physikalische Adressen adressiert, die durch den assoziativen Pufferspeicher 40 erzeugt werden. Die im globalen Cache 14 gespeicherten Daten bilden eine Untereinheit oder einen Unter-Satz der im externen Hauptspeicher 27 gespeicherten Daten und werden durch die Index- und Offset-Felder der physikalischen Adresse, die durch den assoziativen Pufferspeicher 40 ausgegeben wird, und ein Satz-Wählsignal adressiert, das durch den globalen Cache-Kennzeichenspeicher 28 ausgegeben wird. Die in dem örtlichen Cache 12 gespeicherten Daten bilden einen Unter-Satz der im globalen Cache 14 gespeicherten Daten. Auf den Daten-Chache 12 wird durch die Index- und Offset-Felder der virtuellen Adresse zugegriffen, die durch den AGEN 38 erzeugt werden, und sind physikalisch gekennzeichnet.
  • Wie nachstehend ausführlicher beschrieben wird, ist der globale Cache-Kennzeichenspeicher 28 aus Kennzeichen-Direktzugriffspeicherchips (Kennzeichen-RAM-Chips) und der globale Cache-Datenspeicher 30 aus Artikel-SSRAMs (SSRAM = synchroner statischer RAM) aufgebaut, die als 4-wege-satzadressierter Cache-Speicher organisiert sind. Der Satzwählsignalausgang des globalen Cache-Kennzeichenspeichers 28 wählt einen von vier assoziativen Sätzen. Außerdem ist der globale Cache-Datenspeicher 30 als verschachtelter Speicher mit geradzahligen und ungeradzahligen Bänken (Gruppen) organisiert, auf die gleichzeitig zugriffen werden kann, um die Bandbreite zu erhöhen.
  • Das globale Cache-Fließband hat fünf (mit G, H, I, J und K beschriftete) Stufen, die in 3 als vereinfachtes Blockschaltbild und in 4 ausführlicher dargestellt sind. Die Verarbeitung in jeder Stufe wird in einem Maschinenzyklus beendet.
  • Nach den 3 und 4 werden während der Stufe G vom GE-Chip Adressen zu den Kennzeichen-RAM-Chips übertragen. Die Kennzeichen werden nachgeschlagen, und die Information "Treffer" beziehungsweise "kein Treffer" wird während der Stufe H in ein Satzwählsignal codiert. Jeder 4-wege-satzadressierte Kennzeichen-RAM codiert eine Satz-Information mit zwei Bits. Die codierte Information aus den Kennzeichen-RAMs 42 wird während der Stufe I in die globalen Cache-Datenspeicher-SSRAMs 44 eingegeben.
  • Während der Stufe J wird auf jeden globalen Cache-Datenspeicher-SSRAM 44 intern zugegriffen. In den SSRAMs sind Eingabe- und Ausgaberegister auf dem Chip integriert, so daß ein RAM-Zugriff nach dem Fließbandverfahren in drei Zyklen aufgeteilt ist, d. h. einen Adresseneinstellzyklus, einen RAM-Zugriffzyklus und einen Datenausgabezyklus. Schließlich werden während der Stufe K die Daten, auf die zugegriffen wurde, aus den SSRAM-Chips 44 in die GE und die GKE zurückgesandt.
  • Während der Stufen I und K wird den "Chipkreuzungen" ein vollständiger Zyklus zugeordnet, weil Transistor-Transistor-Logik-Treiber (TTL-Treiber) mit hinreichender Ladekapazität bei der Zielfrequenz von 75 MHz einen nahezu vollständigen Zyklus benötigen.
  • Die während der Stufe H des globalen Fließband-Cache benutzten Kennzeichen-RAMs 42 werden nachstehend anhand der 5 und 6 beschrieben. Das generelle Format einer physikalischen Adresse ist in 5 dargestellt. Jede Adresse enthält ein Kennzeichen-Feld, ein Index-Feld und ein OFFSET-Feld. Bekanntlich werden die Indexund Offset-Felder zur physikalischen Adressierung von Daten in dem Cache-Speicher benutzt. Das Index-Feld greift auf einen bestimmten Satz zu, wobei jeder Satz 4-Cache-Zeilen aufweist. Wenn auf die Zeile, die die Daten enthält, auf die zugegriffen wird, in dem Cache-Speicher vorhanden ist, dann handelt es sich um eine dieser vier Zeilen, auf die zugriffen wird. Das der Zeile, auf die zugegriffen wird, zugeordnete Kennzeichen wird mit dem Kennzeichen verglichen, das jeder dieser 4-Cache-Zeilen zugeordnet ist, um festzustellen, ob der Cache die interessierenden Daten enthält. Wenn eine Übereinstimmung auftritt, dann zeigt das OFFSET-Feld an, welches Wort in der identifizierten Zeile den Daten entspricht, auf die zugegriffen wird.
  • Wie schon erwähnt wurde, ist das bevorzugte Ausführungsbeispiel ein 4-wege-satzadressierter Speicher. Eine Zeile in dem externen Hauptspeicher mit einem vorgegebenen Index-Feld kann in einem Satz aus vier Zeilen in dem Cache-Speicher, auf den durch den vorgegebenen Index zugegriffen wird, abgebildet werden. Bei dem bevorzugten Ausführungsbeispiel werden die beiden höherstelligen Bits der Cache-Speicher-Adresse als Satzwählsignaldaten und die übrigen Adressenbits für das Index-Feld benutzt. Für jeden indizierten Satz in dem globalen Cache-Datenspeicher 30 sind vier Kennzeichen-Felder in dem globalen Cache-Kennzeichenspeicher 28 an einem Platz gespeichert, auf den ein Index-Feld zugreift.
  • Nach 6 ist ein Index-Register 50 über einen Index-Bus 56 mit dem ADDR-Eingang eines Kennzeichen-RAM 52 und eines Speichermarken-RAM 54 verbunden. Ein Kennzeichen-Register 58 ist mit einem ersten Eingang von jeweils vier Komparatoren 60A – 60D über einen Kennzeichen-Bus 62 verbunden. Ein zweiter Eingang jedes Komparators 60A – 60D ist jeweils mit einem Kennzeichen-Ausgang des Kennzeichen-RAM 52 über einen Kennzeichen-Bus 64 verbunden. Die Ausgangssignale der Komparatoren 60A – 60D werden den Eingängen eines Codierers 66 und eines NOR-Gliedes 68 zugeführt. Das Ausgangssignal des Codierers 66 wird in ein Satz-Wähl-Register 70 geleitet, und das Ausgangssignal des NOR-Gliedes 68 in ein Übereinstimmungs-Register 72. In einem RWSA-Register 74 wird ein Cache-Lese- und Schreibsignal gespeichert und einer Speichermarken-Schreiblogik 76 über einen RWSA-Bus 78 zugeführt. Die Ausgangssignale des Codierers und der NOR-Glieder 66 und 68 werden ebenfalls der Speichermarken-Schreiblogik 76 zugeführt.
  • Wenn eine bestimmte physikalische Adresse durch die GE 10 erzeugt worden ist, wird ihr Kennzeichen-Feld in dem Kennzeichen-Register 58 und ihr Index-Feld in dem Index-Register 50 gespeichert. Der Speicherplatz in dem Kennzeichen-RAM 52, auf den das Index-Feld zugreift, speichert das Kennzeichen-Feld, das den Cache-Daten zugeordnet ist, die in jeder der vier Zeilen in dem Assoziativsatz gespeichert sind, auf den durch das Index-Feld zugegriffen werden kann. Der Kennzeichen-RAM 52 ist so organisiert, daß das Kennzeichen-Feld der in der ersten Zeile des Assoziativsatzes gespeicherten Daten dem zweiten Eingang des ersten Komparators 60A, die zweite Zeile des Assoziativsatzes dem zweiten Komparator 60B usw. zugeführt wird.
  • Wenn die dem zweiten Eingang irgendeines Komparators 60A – 60D zugeführten Kennzeichen-Daten mit dem Kennzeichen-Feld übereinstimmen, das in dem Kennzeichen-Register 58 gespeichert ist, dann stellt das Ausgangssignal des Komparators eine logische "1" dar. Andernfalls ist das Komparator-Ausgangssignal eine logische "0".
  • Das NOR-Glied 68 erhält die Ausgangssignale des Komparators und erzeugt eine "0", wenn irgendeines seiner Eingangssignale eine logische "1" darstellt. Mithin zeigt ein "0"-Ausgangssignal des NOR-Glieds einen Treffer an, d. h. daß der durch die gesamte physikalische Adresse vorgeschriebene Datenblock in dem globalen Cache 14 gespeichert ist.
  • Wenn der Cache getroffen ist, gibt der Codierer 66 ein 2-Bit-Satzwählsignal aus, das vorschreibt, welche Zeile in dem Satz die durch die gesamte physikalische Adresse vorgeschriebenen Daten enthält. Der Kennzeichen-RAM 52, die Komparatoren 60A – 60D und der Codierer 66 bilden daher einen Wählsignalgenerator zum Erzeugen eines Satzwählsignals. Das Satzwählsignal funktioniert ebenso wie die zwei höherstelligen Bits, die den SSRAM-Chips zugeführt werden, die den globalen Cache-Datenspeicher 30 bilden. Mithin erfolgt, wie vorstehend beschrieben wurde, die Erzeugung von Treffer- bzw. Kein-Treffer-Daten und der den Satz vorschreibenden Information während der Stufe H des globalen Fließband-Cache-Speichers, wozu ein einziger Maschinenzyklus erforderlich ist.
  • In an sich bekannter Weise werden, wenn die durch die gesamte physikalische Adresse vorgeschriebenen Daten nicht in dem Cache gespeichert sind, die Daten aus dem Hauptspeicher 27 in den Cache geschrieben, wo sie die zuvor in dem Cache gespeicherten Daten ersetzen. Wenn die ersetzten Daten in dem Cache nicht modifiziert wurden, nachdem sie aus dem externen Hauptspeicher 27 in den Cache übertragen wurden, dann sind die Daten im Lache und die Daten im äußeren Hauptspeicher 27 gleich (d. h. die Daten sind kohärent). Daher können die Daten problemlos ersetzt werden, weil dieselben Daten im externen Hauptspeicher 27 gespeichert und gewünschtenfalls aufgerufen werden können. Wenn die ersetzten Daten in dem Lache jedoch durch eine Schreiboperation geändert wurden, dann sind sie nicht mehr mit den im äußeren Hauptspeicher 27 gespeicherten Daten kohärent.
  • Mithin werden vor dem Ersetzen der Daten im Cache die Cache-Daten in einer Rückschreiboperation gespeichert, so daß die richtigen Daten im äußeren Hauptspeicher 27 gespeichert und für den Prozessor zugänglich sind. Wenn daher in dem Cache gespeicherte Daten durch eine Schreiboperation geändert worden sind, wird eine Speichermarke (ein "dirty bit"), die den Daten zugeordnet ist, gelöscht, um anzuzeigen, daß die Daten "schmutzig" (d. h. nicht mehr mit den im äußeren Hauptspeicher gespeicherten Daten kohärent) sind.
  • Immer wenn das RWSA-Signal nach 6 anzeigt, daß Daten in den Cache eingeschrieben werden sollen, und das Übereinstimmungs-Signal einen Cache-Treffer anzeigt, wird eine in einem Speichermarken-RAM-Speicherplatz gespeicherte Speichermarke, auf die durch das Index-Feld zugegriffen wird, gelöscht. Die Speichermarken-Verarbeitung benötigt daher einen einzigen Maschinenzyklus und erfolgt in der Stufe J des globalen Fließband-Cache-Speichers.
  • Das in 6 dargestellte System dient zur Anzeige einer mangelnden Kohärenz zwischen den im globalen Cache 14 und den im externen Hauptspeicher 27 gespeicherten Daten. Wegen der speziellen Organisation des Cache-Speichers mit aufgeteiltem Pegel ist auch ein System zum Anzeigen einer mangelnden Kohärenz zwischen dem örtlichen Cache 12 und dem globalen Cache 14 erforderlich.
  • Wie schon erwähnt wurde, benutzt die GE 10 den örtlichen Cache 12 als primären Cache und den globalen Cache 14 als sekundären Cache. Die GKE 20 benutzt den globalen Cache 14 als primären Cache und den örtlichen Cache 12 überhaupt nicht. Wenn die gleichen Daten in beiden Cache-Speichern 12 und 14 gespeichert sind, gibt es zwei Inkohärenz-Ursachen. Die erste Ursache ist eine Änderung nur der Daten im örtlichen Cache durch ein Einschreiben der GE in den örtlichen Cache 12 und die zweite Ursache eine Änderung der im globalen Cache gespeicherten Daten durch ein Einschreiben der GKE in den örtlichen Cache 14.
  • Die erste Inkohärenz-Ursache wird durch eine Durchschreiboperation gelöst: Die in den örtlichen Cache 12 eingeschriebenen Daten werden auch in den globalen Lache 14"durchgeschrieben". Die Durchschreiboperation ist wegen der sehr hohen Schreibbandbreite des globalen Lache 14 möglich. Es ist kein externer Puffer erforderlich, weil der globale Lache 14 das Durchschreiben mit voller Bandbreite ermöglicht.
  • Die zweite Inkohärenz-Ursache tritt nur bei einem Lache-Speichersystem mit aufgeteiltem Pegel auf und ergibt eine Inkohärenz zwischen Ganzzahl- und Gleitkomma-Daten. Das Problem ist, daß GE-Ladungen und -Speicherungen zwar auf den örtlichen Lache 12 und den globalen Lache 14 zugreifen, GKE-Ladungen und -Speicherungen jedoch nur auf den globalen Lache 14 zugreifen. Wenn daher beispielsweise in einen bestimmten Speicherplatz zuerst durch eine GE-Speicherung eingeschrieben und dann durch eine GKE-Speicherung erneut eingeschrieben wird, würde ein nachfolgendes GE-Laden "verdorbene" (veraltete) Daten aus dem örtlichen Lache 14 ergeben, sofern nichts dagegen unternommen wird.
  • Obwohl eine unmittelbare Lösung darin bestehen könnte, daß eine Lache-Zeile in dem örtlichen Lache 12 immer dann ungültig gemacht würde, wenn eine GKE-Speicherung auftritt, ist das Problem noch komplizierter, weil jede Lache-Zeile mehrere Wörter Speichert und eine bestimmte Lache-Zeile eine Mischung aus Gleitkomma-Daten und ganzzahligen Daten enthalten kann. Wenn ein Programm zuerst auf ganzzahlige Zeichendaten zugreift, so daß die betreffende Cache-Zeile die in den örtlichen Speicher 12 geladen wird, dann würde eine nachfolgende Gleitkomma-Speicherung die gesamte Zeile ungültig machen. In diesem Falle wären jedoch die ganzzahligen Daten in der betreffenden Cache-Zeile des örtlichen Speichers 12 zwar weiterhin gültig, da die Zeile jedoch ungültig gemacht wurde, würde ein weiterer Zugriff auf die ganzzahligen Daten in der betreffenden Zeile einen weiteren Cache-Fehltreffer ergeben, so daß die betreffende Cache-Zeile erneut in den örtlichen Cache geladen werden müßte. Bei graphischen Anwendungen ist dieses Verhalten besonders wahrscheinlich, weil gemischte Ganzzahl- und Gleitkomma-Strukturen üblich sind. Da die Cache-Leistung in hohem Maße von der Frequenz abhängt, mit der neue Daten in den Cache geladen werden müssen, ergäbe das Ungültigmachen der gesamten Zeile des örtlichen Cache eine geringe Leistung.
  • Die bei dem bevorzugten Ausführungsbeispieh angewandte Lösung besteht darin, ein Gültigkeitsbit an jedem Wort in jeder Cache-Zeile des örtlichen Cache 12 anzubringen, so daß den Gültigkeitsbits eine feinere Körnigkeit erteilt wird. Bei einer GKE-Speicheroperation wird die Adresse sowohl dem örtlichen Cache 12 als auch dem globalen Cache 14 zugeführt. Wenn sich die adressierten Daten in dem örtlichen Cache befinden, wird das an dem adressierten Wort angebrachte Gültigkeitsbit gelöscht, um einen Kohärenzmangel zwischen dem modifizierten Wort in dem örtlichen Cache 12 und dem globalen Cache 14 anzuzeigen. Das an dem jeweiligen Wort, auf das bei einer GE-Speicherung zugegriffen wird, angebrachte Gültigkeitsbit wird so eingestellt, daß es eine Kohärenz zwischen den Cache-Speichern 12 und 14 infolge der erwähnten Durchschreiboperation anzeigt.
  • Diese Lösung ermöglicht es der GE, frei auf Daten aus dem örtlichen Cache zuzugreifen, ohne Gefahr zu laufen, das auf verdorbene Daten zugegriffen wird, weil irgendwelche Gleitkomma-Daten, die durch eine GKE-Einschreibung modifiziert wurden, ein daran angebrachtes gelöschtes Gültigkeitsbit aufweisen würden. Leistungsverluste aufgrund unnötiger Cache-Ladeoperationen werden daher minimiert.
  • Das Löschen des Gültigkeitsbits im örtlichen Cache 12 bei einer Gleitkomma-Speicheroperation wird nachstehend anhand von 7 beschrieben. Bei dem bevorzugten Ausführungsbeispiel hat der örtliche Cache 12 zwei Ports, um entweder ein zweimaliges oder einmaliges Laden und eine Speicheroperation pro Zyklus zu unterstützen. Der örtliche Cache 12 ist ein 16-KB-Chache mit direkter Abbildung, wobei jede Zeile 32 in acht Wörtern organisierte Bytes speichert. Der örtliche Cache 12 wird in sieben Maschinenzyklen erneut aus dem globalen Cache 14 gefüllt. Der örtliche Cache 12 wird virtuell adressiert und physikalisch Gekennzeichnet und ist eine Untereinheit des örtlichen Cache 14.
  • Nach 7 wird die durch den Adressengenerator 38 der GE 10 (siehe 2) ausgegebene virtuelle Adresse in einem Adressen-Zwischenspeicherregister 90 gespeichert. Der örtliche Cache 12 ist in einen VRAM 12V und einen Datenspeicher 12D unterteilt dargestellt. Jede Cache-Zeile 92 in dem Datenspeicher 12D enthält acht Wortpositionen, die jeweils vier Datenbytes aufweisen. Das Index-Feld der virtuellen Adresse greift auf ein Kennzeichen-Feld und ein Masken-Feld aus einem Speicherplatz in dem VRAM 12V und der Cache-Zeile in dem Datenspeicher 12D zu. Das OFF-Feld der virtuellen Adresse schreibt eine bestimmte Wortposition in der Cache-Zeile 92 vor. Das Kennzeichen-Feld und das Masken-Feld, die aus dem VRAM 12v ausgelesen wurden, werden in einem zweiten Zwischenspeicher-Register 94 gespeichert. Das Kennzeichen-Feld, auf das in dem VRAM 12V zugegriffen wird, entspricht den höherstelligen Bits der physikalischen Adresse der in der Cache-Zeile 92 gespeicherten Daten. Das Masken-Feld, auf das zugegriffen wird, enthält acht Gültigkeitsbits, die jeweils an einem entsprechenden Wort in der Cache-Zeile 92 angebracht sind. Das in dem zweiten Zwischenspeicherregister 94 gespeicherte Kennzeichen-Feld wird dem ersten Eingang eines Komparators 96 und das Kennzeichen-Feld der virtuellen Adresse dem zweiten Eingang des Komparators 96 zugeführt. Eine Maskenbit-Löschlogik 98 ist mit dem zweiten Zwischenspeicher-Register 94 verbunden, in dem die Maske, das OFF-Feld der virtuellen Adresse und das Ausgangssignal des Komparators 96 gespeichert sind.
  • Während einer Gleitkomma-Speicheroperation, bei der an einem Platz gespeichert wird, der durch die in dem ersten Zwischenspeicher-Register 90 gespeicherte Virtuelle Adresse vorgeschrieben wird, wird während eines ersten Maschinenzyklus durch den VRAM 12V auf das Kennzeichen-Feld und das Masken-Feld zugegriffen. Wenn das Kennzeichen-Feld, auf das zugegriffen wird, mit dem Kennzeichen-Feld der virtuellen Adresse übereinstimmt, gibt das Ausgangssignal des Komparators die Maskenbit-Löschlogik frei, um das in dem zweiten Zwischenspeicher-Register 94 gespeicherte Gültigkeitsbit zu löschen, das dem Wort in der Cache-Zeile 92 entspricht, die durch das OFF-Feld der virtuellen Andresse vorgeschrieben wird. Die Übereinstimmung zeigt an, daß die Gleitkomma-Daten in dem globalen Cache 14 geändert (modifiziert) werden und das durch die virtuelle Adresse vorgeschriebene Daten-Wort nicht mehr kohärent ist. Durch das Löschen des Gültigkeitsbits in dem Masken-Feld wird daher dieses Wort im örtlichen Chache 12 ungültig gemacht. Im nächsten Taktzyklus wird das modifizierte Masken-Feld, das das gelöschte Gültigkeitsbit enthält, wieder an demjenigen Speicherplatz in dem VRAM 12V gespeichert, der durch das Index-Feld der virtuellen Adresse vorgeschrieben wird.
  • Nachstehend wird anhand von 8 die Durchschreiboperation für ganzzahlige Daten beschrieben, die in dem örtlichen Cache 12 gespeichert sind. Bei dem bevorzugten Ausführungsbeispiel werden Gleitkomma-Befehle, Adressen und Daten in einer Warteschlange eingereiht, um die Zugriffszeit des örtlichen Cache 14 und der GKE 20 auszugleichen. Mithin gibt es keinen unmittelbaren Datenpfad von der GE 10 zum globalen Cache 14. Für eine GE-Speicheroperation überträgt der örtliche Cache 12 mithin die in einer Gleitkomma-Befehlswarteschlange 100 gespeicherten Daten, und die Daten werden an die GKE 20 über den TBUS 22 übertragen und als Durchschreibdaten codiert. Außerdem wird die physikalische Adresse der Durchschreibdaten in eine Speicheradressenwarteschlange 102 übertragen. Die GKE 20 erkennt die Durchschreibdaten an und leitet sie in eine Speicherdaten-Warteschlange 104. Die Taktgabe der Warteschlage ist so gewählt, daß die Adresse der Durchschreibdaten und die Durchschreibdaten während desselben Maschinenzyklus dem globalen Cache-Datenspeicher 30 zugeführt werden.

Claims (6)

  1. Cache-Speichersystem mit aufgeteiltem Pegel, das in einem Daten-Prozessor verwendbar ist, der eine Ganzzahl-Einheit (10) und eine Gleitkomma-Einheit (20) mit einem Dateneingangs-Port und einem Datenausgangs-Port aufweist, wobei das Cache-Speichersystem mit aufgeteiltem Pegel aufweist: einen ersten örtlichen Cache-Speicher (12), der den primären Cache-Speicher für die Ganzzahl-Einheit (10) bildet und einen mit der Ganzzahl-Einheit (10) verbundenen Datenausgangs-Port, einen Dateneingangs-Port und einen Adresseneingangs-Port zum Speichern von Ganzzahl- und Adressendaten, die von der Ganzzahl-Einheit (10) verarbeitet werden sollen, aufweist; einen zweiten globalen Cache-Speicher (14), der den primären Cache-Speicher für die Gleitkornma-Einheit (20) und den sekundären Cache-Speicher für die Ganzzahl-Einheit (10) bildet und einen Dateneingangs-Port, einen Datenausgangs-Port sowie einen mit der Ganzzahl-Einheit (10) verbundenen Adresseneingangs-Port zum Speichern der Ganzzahl- und der Adressendaten, die von der Ganzzahl-Einheit (10) verarbeitet werden sollen, und zum Speichern der Gleitkomma-Daten aufweist, wobei jede Speicheradresse des ersten, örtlichen Cache-Speichers (12) eine entsprechende Speicher-Adresse in dem zweiten, globalen Cache-Speicher (14) aufweist, wobei der örtliche Cache-Speicher (12) eine Untereinheit des globalen Cache-Speichers (14) bildet; erste Datenübertragungsmittel (18, 24), die angeschlossen sind an dem Datenausgangs-Port des zweiten, globalen Cache-Speichers (14) und dem Dateneingangs-Port des ersten, globalen Cache-Speichers (12) und dem Dateneingangs-Port der Gleitkomma-Einheit (20) zum Übertragen von Daten aus dem zweiten, globalen Cache-Speicher (14) in den ersten, örtlichen Cache-Speicher (12), wenn die in dem zweiten, globalen Cache-Speicher (14) gespeicherten Ganzzahl- und die Adressendaten von der Ganzzahl-Einheit (12) verarbeitet werden sollen, und zwischen dem zweiten, globalen Cache-Speicher (14) und der Gleitkomma-Einheit (20), wenn Gleitkomma-Daten von der Gleitkomma-Einheit (20) verarbeitet werden sollen; und zweite Datenübertragungsmittel (26), die mit dem Datenausgangs-Port der Gleitkomma-Einheit (20) und dem Dateneingangs-Port des zweiten, globalen Cache-Speichers (14) zur Übertragung von Daten aus der Gleitkomma-Einheit (20)in den zweiten, globalen Cache-Speicher (14) während einer Gleitkomma-Speicheroperation verbunden sind; dadurch gekennzeichnet daß der erste, örtliche Cache-Speicher (12) so ausgebildet ist, daß er eine Durchschreib-Operation in den zweiten, globalen Cache-Speicher (14) ausführt, bei der eine Kopie der Daten, die von der Ganzzahl-Einheit (10) unter einer Speicher-Adresse des ersten, örtlichen Cache-Speichers (12) auf ei nem dritten Übertragungsmittel (22) gespeichert wird, das mit Befehlsports der Ganzzahl-Einheit (10) und der Gleitkomma-Einheit (20) verbunden ist, und die Gleitkomma-Einheit (20) so ausgebildet ist, daß sie das Speichern dieser Daten unter der entsprechenden Speicher-Adresse des zweiten, globalen Cache-Speicher (14) bewirkt, und daß jede Speicheradresse des ersten örtlichen Lache-Speichers (12) ein ihr zugeordnetes Gültigkeitsbit aufweist, das gelöscht wird, wenn die Gleitkomma-Einheit (20) Daten unter der entsprechenden Speicher-Adresse des zweiten, globalen Lache-Speichers (14) während einer Gleitkomma-Speicheroperation speichert, und gesetzt wird, wenn die Ganzzahl-Einheit unter der zugeordneten Speicheradresse des ersten, örtlichen Lache-Speichers (12) während einer Ganzzahl-Speicheroperation speichert.
  2. Lache-Speichersystem nach Anspruch 1, bei dem der erste, örtliche Lache-Speicher (12) und die Ganzzahl-Einheit (10) auf dem gleichen einzigen Chip hergestellt sind und der zweite, globale Cache-Speicher (14) von dem einzigen Chip abgetrennt ist.
  3. Lache-Speichersystem nach Anspruch 1 oder Anspruch 2, bei dem der Datenprozessor ferner aufweist: einen virtuellen Speicher, auf den durch eine virtuelle Adresse zugegriffen wird und der alle Daten für die Benutzung durch den Daten-Prozessor enthält, und einen äußeren Hauptspeicher (27), auf den durch eine physikalische Adresse zugegriffen wird und der eine Untergruppe der in dem virtuellen Speicher gespeicherten Daten enthält, und wobei die Ganzzahl-Einheit (10) einen Adressengenerator (38) zum Erzeugen der virtuellen Adressen und einen Umsetzer (40) zum Umsetzen virtueller Adressen in physikalische Adressen aufweist.
  4. Cache-Speichersystem nach Anspruch 3, bei dem jede virtuelle Adresse und jede physikalische Adresse ein INDEX- und ein OFFSET-Feld enthält und eine erste Kopie einer speziellen Cache-Zeile in dem ersten, örtlichen Cache-Speicher (12) und eine zweite Kopie der speziellen Cache-Zeile in dem zweiten, globalen Cache-Speicher (14) gespeichert ist, wobei die spezielle Cache-Zeile eine Vielzahl von Wörtern enthält und der erste, örtliche Cache-Speicher (12) aufweist: einen ersten Datenspeicher zum Speichern der ersten Kopie der speziellen Cache-Zeile in einem Speicherplatz, auf den durch das INDEX-Feld der virtuellen Adresse zugegriffen wird; und der zweite, globale Cache-Speicher (14) ferner aufweist: einen zweiten Datenspeicher zum Speichern der zweiten Kopie der speziellen Cache-Zeile in einem Speicherplatz, auf den durch das INDEX-Feld der physikalischen Adresse zugegriffen wird.
  5. Cache-Speichersystem nach Anspruch 3 oder Anspruch 4, bei dem die physikalische Adresse ein KENNZEI-CHEN-Feld und ein INDEX-Feld aufweist und der zweite, globale Cache-Speicher (14) einen Datenspeicher (30) und einen Wählsignalgenerator aufweist, wobei: der Datenspeicher (30) ein N-Weg-Satz-Assoziativ-Speicher ist, wobei N eine ganze Zahl ist, die gleich einer Potenz von zwei ist, wobei ein vorgegebener Satz durch ein Satzwählsignal (34) und eine vorgegebene Cache-Zeile in einem Satz durch das INDEX-Feld der physikalischen Adresse gewählt wird, und wobei der Wählsignalgenerator aufweist: ein Kennzeichen-Speicher (52) zur Bildung von N KENNZEICHEN-Feldern, auf die durch das INDEX-Feld zugegriffen wird, wobei jedes KENNZEICHEN-Feld Daten entspricht, die in einem der Sätze des Datenspeichers (30) enthalten sind; N Komparatoren (60A-60D), wobei jeder Komparator (60A-60D) einen ersten Eingang aufweist, der so angeschlossen ist, daß er das KENNZEICHEN-Feld der physikalischen Adresse aufnimmt, und einen zweiten Eingang aufweist, der so angeschlossen ist, daß er jeweils eines der KENNZEICHEN-Felder aufnimmt, die durch den KENNZEICHEN-Speicher (52) geliefert werden, wobei jeder Komparator (60A-60D) ein Ausgangssignal aufweist, das gesetzt wird, wenn die KENNZEICHEN-Felder an den Komparator-Eingängen übereinstimmen, und zurückgesetzt wird, wenn die KENNZEICHEN-Felder an den Komparator-Eingängen nicht übereinstimmen; und Codiermittel (66), die so angeschlossen sind, daß sie die Ausgangssignale der Komparatoren (60A-60D) aufnehmen, um ein Wählsignal zu erzeugen, das die Position eines Komparators kodiert, der ein Ausgangssignal aufweist, das anzeigt, daß die KENNZEICHEN-Felder an seinen Eingängen übereinstimmen.
  6. Verfahren zum Speichern von Daten in einem Cache-Speichersystem mit aufgeteiltem Pegel, das aufweist: a) einen ersten, örtlichen Cache-Speicher (12), der den primären Cache für eine Ganzzahl-Einheit (10) bildet und mit der Ganzzahl-Einheit (10) verbunden ist und einen Dateneingangs-Port und einen Adresseneingangs-Port zum Speichern von Ganzzahlund Adressendaten aufweist, die durch die Ganzzahl-Einheit (10) verarbeitet werden sollen; b) einen zweiten, globalen Cache-Speicher (14), der den primären Cache für eine Gleitkomma-Einheit und den sekundären Cache für die Ganzzahl-Einheit (10) bildet und einen Dateneingangs-Port, einen Datenausgangs-Port und einen Adresseneingangs-Port aufweist, der mit der Ganzzahl-Einheit (10) verbunden ist, um die Ganzzahl- und Adressendaten zu speichern, die durch die Ganzzahl-Einheit (10) verarbeitet werden sollen, und um die Gleitkomma-Daten zu speichern, wobei jede Speicheradresse des ersten, örtlichen Cache-Speichers (12) eine entsprechende Speicher-Adresse in dem zweiten, globalen Cache-Speicher (14) aufweist und der örtliche Cache-Speicher (12) eine Untereinheit des globalen Cache-Speichers (14) ist; c) erste Datenübertragungsmittel (18, 24), die mit dem Datenausgangs-Port des zweiten, globalen Cache-Speichers (14) und dem Dateneingangs-Port des ersten, globalen Cache-Speichers (12) und dem Dateneingangs-Port der Gleitkomma-Einheit (20) verbunden sind, um Daten aus dem zweiten, globalen Lache-Speicher (14) in den ersten, örtlichen Cache-Speicher (12) zu übertragen, wenn Ganzzahl- und Adressendaten, die in dem zweiten, globalen Cache-Speicher (14) gespeichert sind, zur Verarbeitung durch die Ganzzahl-Einheit (10) erforderlich sind, und zwischen dem örtlichen Lache-Speicher (14) und der Gleitkomma-Einheit (20) zu übertragen, wenn Gleitkomma-Daten zur Verarbeitung durch die Gleitkomma-Einheit (20) erforderlich sind; und d) zweite Datenübertragungsmittel (26), die mit dem Dateneingangs-Port der Gleitkomma-Einheit (20) und dem Dateneingangs-Port des zweiten, globalen Cache-Speichers (14) verbunden sind, um Daten aus der Gleitkomma-Einheit (20) in den zweiten, globalen Cache-Speicher (14) während einer Gleitkomma-Speicheroperation zu übertragen; dadurch gekennzeichnet, daß Daten, die unter einer Speicheradresse des ersten, örtlichen Cache-Speichers (12) durch die Ganzzahl-Einheit (10) gespeichert werden, auf einem dritten Übertragungsmittel (22) angeordnet werden, das mit Befehlsports der Ganzzahl-Einheit (10) und der Gleitkomma-Einheit (20) verbunden ist, und die Gleitkomma-Einheit (20) bewirkt, daß diese Daten unter der entsprechenden Speicheradresse des zweiten, örtlichen Cache-Speichers (14) gespeichert werden, und daß ein Gültigkeitsbit, das einer Speicheradresse des ersten, örtlichen Cache-Speichers (12) zugeordnet ist, gelöscht wird, wenn während einer Gleitkomma-Speicheroperation Daten unter der entsprechenden Speicheradresse des zweiten, örtlichen Cache-Speichers (14) gespeichert werden, und das Gültigkeitsbit gesetzt wird, wenn die Ganzzahl-Einheit (10) während einer Ganzzahl-Speicheroperation unter der zugeordneten Speicher-Adresse des ersten, örtlichen Cache-Speichers (12) speichert.
DE69432314T 1993-12-15 1994-12-12 Cachespeicher mit aufgeteiltem pegel Expired - Lifetime DE69432314T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US168832 1988-03-16
US08/168,832 US5510934A (en) 1993-12-15 1993-12-15 Memory system including local and global caches for storing floating point and integer data
PCT/US1994/014380 WO1995016961A1 (en) 1993-12-15 1994-12-12 Split level cache

Publications (2)

Publication Number Publication Date
DE69432314D1 DE69432314D1 (de) 2003-04-24
DE69432314T2 true DE69432314T2 (de) 2004-02-12

Family

ID=22613120

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69432314T Expired - Lifetime DE69432314T2 (de) 1993-12-15 1994-12-12 Cachespeicher mit aufgeteiltem pegel

Country Status (5)

Country Link
US (1) US5510934A (de)
EP (1) EP0734553B1 (de)
JP (1) JPH09506729A (de)
DE (1) DE69432314T2 (de)
WO (1) WO1995016961A1 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378062B1 (en) * 1994-01-04 2002-04-23 Intel Corporation Method and apparatus for performing a store operation
US6021471A (en) * 1994-11-15 2000-02-01 Advanced Micro Devices, Inc. Multiple level cache control system with address and data pipelines
WO1996012229A1 (en) 1994-10-14 1996-04-25 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5710944A (en) * 1996-02-09 1998-01-20 Motorola, Inc. Memory system and data communications system
US6199142B1 (en) * 1996-07-01 2001-03-06 Sun Microsystems, Inc. Processor/memory device with integrated CPU, main memory, and full width cache and associated method
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US5809526A (en) * 1996-10-28 1998-09-15 International Business Machines Corporation Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US5920890A (en) * 1996-11-14 1999-07-06 Motorola, Inc. Distributed tag cache memory system and method for storing data in the same
US5898849A (en) * 1997-04-04 1999-04-27 Advanced Micro Devices, Inc. Microprocessor employing local caches for functional units to store memory operands used by the functional units
US6161167A (en) * 1997-06-27 2000-12-12 Advanced Micro Devices, Inc. Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group
US6088789A (en) * 1998-05-13 2000-07-11 Advanced Micro Devices, Inc. Prefetch instruction specifying destination functional unit and read/write access mode
US6272597B1 (en) * 1998-12-31 2001-08-07 Intel Corporation Dual-ported, pipelined, two level cache system
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6751707B2 (en) * 2002-05-06 2004-06-15 Sony Computer Entertainment Inc. Methods and apparatus for controlling a cache memory
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US20080016326A1 (en) * 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7631149B2 (en) * 2006-07-24 2009-12-08 Kabushiki Kaisha Toshiba Systems and methods for providing fixed-latency data access in a memory system having multi-level caches
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9946547B2 (en) * 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US20080104333A1 (en) * 2006-10-31 2008-05-01 Veazey Judson E Tracking of higher-level cache contents in a lower-level cache
US8683139B2 (en) 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US8365169B1 (en) 2008-01-10 2013-01-29 Hewlett-Packard Development Company, L.P. Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support
US20090248986A1 (en) * 2008-03-26 2009-10-01 Daniel Citron Apparatus for and Method of Implementing Multiple Content Based Data Caches
US8645404B2 (en) * 2011-10-21 2014-02-04 International Business Machines Corporation Memory pattern searching via displaced-read memory addressing
US9421793B2 (en) * 2014-06-26 2016-08-23 Cellresin Technologies, Llc Electrostatic printing of cyclodextrin compositions

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
US5155816A (en) * 1989-02-10 1992-10-13 Intel Corporation Pipelined apparatus and method for controlled loading of floating point data in a microprocessor
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
EP0459232B1 (de) * 1990-05-29 1998-12-09 National Semiconductor Corporation Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür

Also Published As

Publication number Publication date
US5510934A (en) 1996-04-23
EP0734553B1 (de) 2003-03-19
DE69432314D1 (de) 2003-04-24
EP0734553A4 (de) 1997-07-16
JPH09506729A (ja) 1997-06-30
WO1995016961A1 (en) 1995-06-22
EP0734553A1 (de) 1996-10-02

Similar Documents

Publication Publication Date Title
DE69432314T2 (de) Cachespeicher mit aufgeteiltem pegel
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE69721368T2 (de) Verfahren und Gerät zur dynamischen Vorhersage des Weges für mehrstufige und mehrwege-satz-assoziative Cachespeicher
DE3909896C2 (de)
DE19526007C2 (de) Horizontal partitionierter Befehls-Cache-Speicher
DE4132833C2 (de) Hierarchischer Cache-Speicher
DE3724317C2 (de)
DE69434728T2 (de) Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel
DE69629140T2 (de) Cachefähigkeitsattribut für virtuelle Adressen in Cachespeichern mit sowohl virtuellen als auch physikalischem Index
DE3151745C2 (de)
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE102005032949A1 (de) Verfahren und Vorrichtung zum Implementieren von Speicherordnungsmodellen mit Ordnungsvektoren
DE2501853A1 (de) Prozessor fuer ein datenverarbeitungssystem
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE10056827A1 (de) Duale Verwendung von Cache-Verbindungen
DE3923253C2 (de) Mikroprozessor
DE10002120A1 (de) Logikstruktur eines Adressumsetzpuffers
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE3740834A1 (de) Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher
EP1449091B1 (de) Verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage
DE4234695A1 (de) Speichermanagementsystem und verfahren zur aufrechterhaltung der cache-kohaerenz zwischen einem daten-cache und einem segmentdeskriptor-cache
DE3832758C2 (de) Verfahren zum Adressieren eines im Rückschreib-Modus betriebenen virtuellen Cache-Speichers
DE102020121508A1 (de) Cache-Speichervorrichtung, System dieselbe enthaltend und Verfahren zum Betreiben derselben
DE19947055A1 (de) Verfahren und Vorrichtung zur Steuerung eines Cache-Speichers
DE69924939T2 (de) Verbesserte Speicherhierarchie für Prozessoren und Koherenzprotokoll hierfür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition