[go: up one dir, main page]

DE19951046A1 - Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem - Google Patents

Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem

Info

Publication number
DE19951046A1
DE19951046A1 DE19951046A DE19951046A DE19951046A1 DE 19951046 A1 DE19951046 A1 DE 19951046A1 DE 19951046 A DE19951046 A DE 19951046A DE 19951046 A DE19951046 A DE 19951046A DE 19951046 A1 DE19951046 A1 DE 19951046A1
Authority
DE
Germany
Prior art keywords
memory
processor
controller
access
controllers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19951046A
Other languages
English (en)
Inventor
Alexander Mirescu
Frank Bellosa
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.)
Siemens Corp
Original Assignee
Siemens Corp
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 Siemens Corp filed Critical Siemens Corp
Priority to DE19951046A priority Critical patent/DE19951046A1/de
Priority to PCT/DE2000/003735 priority patent/WO2001029673A1/de
Priority to DE10083192T priority patent/DE10083192D2/de
Publication of DE19951046A1 publication Critical patent/DE19951046A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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

Abstract

Ein Speicherbaustein (SPB) für ein Mehrprozessorsystem, bei welchem mehrere Prozessoren (PR1...PRn) über einen Prozessorbus (PBU) an das Interface (IFA) des Bausteins anschließbar sind. Dabei ist eine über einen internen Bus (IBU) mit mehreren Controllern (CO1...COm) verbundene DRAM-Speicherbank (DSB) vorgesehen und die Controller, welche andererseits mit dem Interface (IFA) verbunden sind, sind je mit einem RAM-Cache (RAC) ausgestattet sowie konfigurierbar.

Description

Die Erfindung bezieht sich auf einen Speicherbaustein für ein Mehrprozessorsystem, bei welchem mehrere Prozessoren über einen Prozessorbus an das Interface des Bausteins anschließ­ bar sind.
Ebenso bezieht sich die Erfindung auf ein Mehrprozessorsystem mit einem Speicherbaustein.
Bei Mehrprozessorsystemen sollen mehrere Mikroprozessoren über einen gemeinsamen Bus an einen gemeinsamen Speicher zugreifen. Man verwendet dabei üblicherweise DRAMs, d. s. dynamische RAM-Speicher, die sich für große Speicherkapazitä­ ten eignen, jedoch eine Zugriffszeit von ca. 60 ns aufweisen. Bei Mikroprozessoren, die mit hoher Frequenz getaktet sind, wird die Systemleistung maßgeblich von der Speicherzugriffs­ zeit bestimmt und die vorhin genannte Zugriffszeit von 60 ns für DRAMS hat einen erheblichen Anteil an der mittleren Spei­ cherzugriffszeit. Nach dem Stand der Technik werden als Spei­ cher sogenannte "Synchronous DRAMS" verwendet, und die damit erzielbare Zugriffsgeschwindigkeit in der genannten Größen­ ordnung wird akzeptiert. Dabei besitzen die einzelnen Prozes­ soren, die auf den Speicher zugreifen sollen, Chaches und ein eigenes Chache-Kohärenzprotokoll sorgt dafür, dass die Cha­ che-Kohärenz aufrecht erhalten wird. Durch aufwendige Chache- Kohärenzprotokolle kann die tatsächliche Zugriffszeit durch Ausnutzung bekannter Referenzlokalitäten verhältnismäßig gering gehalten werden. Es ist jedoch nachteilig, dass neben der eigentlichen Datenübertragung zwischen Speicher und Pro­ zessoren auch ein aufwendiges Kohärenzprotokoll auf dem Bus­ system laufen muss, welches letztlich auch die Verlustlei­ stung eines Bausteins erhöht. Das Problem der Chachekohärenz ist zusammen mit einem viel verwendeten Kohärenzprotokoll dem MESI-Protokoll beispielsweise erläutert in: Wolfgang K. Gi­ loi, "Rechnerarchitektur", Springer-Verlag 1993, Seiten 111 bis 116.
Neben DRAMS sind auch sogenannte SRAMS (statische RAMS) be­ kannt, die mit einer durchschnittlichen Latenz von 10 ns wesentlich schneller als DRAMS arbeiten, jedoch von ihrer Fläche her wesentlich größer sind. Für die Speicherung eines Bits oder Bytes ist bei einem SRAM etwa die 4-fache Fläche notwendig, die bei einem DRAM erforderlich ist. Das heißt aber, dass die Verwendung eines SRAMs als Speicher wesentlich kürzere Zugriffszeiten ergäbe, jedoch von der Kostenseite her nicht in Frage kommt.
Es ist nun eine Aufgabe der Erfindung, einen Speicherbaustein zu schaffen, welcher eine wesentlich geringere Zugriffszeit bietet, ohne dass von der prinzipiellen Verwendung eines DRAMS abgegangen wird.
Diese Aufgabe wird mit einem Speicherbaustein der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass eine über einen internen Bus mit mehreren Controllern verbundene DRAM- Speicherbank vorgesehen ist, wobei die Controller, welche andererseits mit dem Interface verbunden sind, je mit einem RAM-Cache ausgestattet sowie konfigurierbar sind.
Die Erfindung verlagert de facto die Chaches von den Prozes­ soren in den Speicherchip, da nun die SRAMS geringer Größe z. B. 1024 Bit in den der Speicherbank zugeordneten Control­ lern eine Art Chache darstellen. Dadurch wird auch der nicht unbeachtliche Aufwand für ein aufwendiges Chache-Kohärenz­ protokoll für die Prozessorchaches und dessen Betrieb vermie­ den.
Ein Speicherbaustein nach der Erfindung kann außerdem leicht an die jeweilige Anwendung angepasst werden, wobei über eine Referenzlokalität verbundene Speicherblöcke bereits in dem Hauptspeicher gecacht werden können und ihr Transferieren in die Prozessoren nebenläufig erfolgen kann. Die Erfindung ist besonders vorteilhaft bei eingebetteten Systemen, da dort das Speicherzugriffsverhalten der Prozessoren vorbekannt und im Ablauf deterministisch ist. Daher kann das Speichersystem für optimales Caching und Pre-Fetching konfiguriert werden, um die mittlere Speicherzugriffszeit zu minimieren.
Eine weitere Aufgabe der Erfindung besteht darin, ein Mehr­ prozessorsystem zu schaffen, welches einen Hauptspeicher mit zumindest einem Speicherbaustein verwendet und welches gerin­ ge Zugriffszeiten bei geringen Kosten bietet.
Diese Aufgabe wird mit einem Mehrprozessorsystem gelöst, welches einen Speicherbaustein der erfindungsgemäßen Art enthält und bei welchem die Anzahl m der Controller zumindest gleich der Anzahl n der Prozessoren ist und für jeden Prozes­ sor zumindest ein Controller vorgesehen ist.
Ein solches Mehrprozessorsystem bietet die oben bereits ge­ nannten Vorteile. Durch die räumliche Nähe der Controller mit ihren Caches zu der Speicherbank kann ein einfach realisier­ bares Kohärenzprotokoll Anwendung fingen, welches auf dem internen Bus des Speicherbausteins abläuft.
Es ist auch von Vorteil, wenn ein einem Prozessor zugeordne­ ter Controller unter Berücksichtigung der Zugriffscharakteri­ stik des Prozessors programmierbar ist. Dadurch lässt sich eine optimale Anpassung der Prefetch-Stategie an die System­ gegebenheiten erzielen. Dabei ist es für bestimmte Fälle auch empfehlenswert, wenn auf dem internen Bus des Speicherbau­ steins ein Cachekohärenzprotokoll abläuft.
Die Erfindung samt weiterer Vorteile ist im folgenden anhand beispielsweiser Ausführungen unter Zuhilfenahme der Zeichnung näher erläutert. In dieser zeigt die einzige Figur in einem Blockschaltbild ein Mehrprozessorsystem mit einem Speicher­ baustein nach der Erfindung.
Wie der Figur entnehmbar ist, enthält ein Mehrprozessorsystem im wesentlichen eine Anzahl n von Prozessoren PR1, PR2 . . . PRn, einen Speicherbaustein SPB, eine Ein-/Ausgabe-Einheit I/O sowie einen Prozessorbus PBU. Sämtliche Prozessoren PR1 . . . PRn können dabei über den Prozessorbus PBU auf den gemeinsamen Speicher SPB zugreifen. Derartige Multiprozessorsysteme sind bekannt und beispielsweise beschreiben in: W. Oberschelp/­ G. Bossen, "Rechenaufbau und Rechnerstrukturen", 7. Auflage, R. Oldenburg Verlag, 1998, ISBN 3-486-24288-1, Kapitel 13, p. 415 ff. Wie bereits eingangs erwähnt sind bei solchen bekannten Strukturen die Cache-Speicher bei bzw. in jedem Prozessor für den Zugriff auf den Speicher von Bedeutung.
Der im Gegensatz dazu von der Erfindung beschrittene Weg sieht nun vor, dass der Speicherbaustein SPB nicht nur eine DRAM-Speicherbank DSB enthält, sondern auch mehrere Control­ ler CO1 . . . COm, z. B. 16 Stück, die je ein RAM-Chache RAC enthalten und über einen internen Bus IBU mit der DRAM-Spei­ cherband DSB kommunizieren können. Diese Speicherbank DSB kann beispielsweise eine Größe von 256 kByte, 1 MByte oder 4 MByte besitzen, die RAM-Caches RAC hingegen weisen eine ge­ ringe Größe von z. B. lediglich ein kByte auf, mit beispiels­ weise Cache-Zeilen ("Cachelines") von 32 Byte. Die Controller CO1 . . . COm stehen über ein Interface IFA, hier symbolisch angedeutet, mit dem Prozessorbus PBU in Verbindung.
Neben dieser Struktur ist es wesentlich, dass die Controller CI1 . . . COm konfigurierbar sind, wobei für jeden Prozessor PR1 . . . PRn ein Controller CO1 . . . COm programmiert werden kann, sodass er den (Haupt)speicherzugriff, d. h. den Zugriff auf die DRAM-Speicherbank DSB, des jeweiligen Prozessors steuert. Dazu muss natürlich für jeden Prozessor PR1 . . . PRn zumindest ein Controller CO1 . . . COm vorgesehen sein, doch können auch andere Konfigurationen zweckmäßig sein. Beispielsweise können bei Vorhandensein von vier Prozessoren dem ersten Prozessor acht der sechzehn Controller zugeordnet werden, dem zweiten Prozessor sechs der Controller und dem dritten und vierten Prozessor jeweils ein einziger Controller abhängig von dem Aufgabenbereich und der Leistung der einzelnen Prozessoren.
Jedem der Controller CO1 . . . COm wird die Zugriffscharakteri­ stik des zugeordneten Prozessors PR1 . . . PRn mitgeteilt, wobei man im allgemeinen folgende Charakteristika vorsehen kann.
"Sequential" Sequentieller Zugriff mit auf-/abstei­ genden Adressen.
"Blocked" Zugriff auf Speicherblöcke bekannter Größe
"Random" Zugriff auf den Speicher ohne Referenz­ muster.
Je nach Typ des Speicherzugriffs wird Speicherinhalt asyn­ chron zu den laufenden Anforderungen in ein RAM-Chache RAC der Controller CO1 . . . COm transferiert, nämlich:
"Sequential Access": Durch einen 2-Bit Prediktor wird die Zugriffsrichtung - nämlich auf- oder absteigend - bestimmt und ab einem be­ stimmten, z. B. dem dritten Zugriff wird ein Prefetching der nachfolgenden Cache-Zeile ("Chacheline") durchge­ führt. Der Prediktor protokolliert die Zugriffsrichtung im Hinblick auf auf- oder absteigende Adressen, um bei einem erneuten Zugriff vorherzusagen, ob die Cacheline mit ab- oder aufsteigenden Adressen gefüllt werden soll.
"Blocked Access": In einem Registerfeld eines Controllers CO1 . . . COm wird für jeden Speicherbe­ reich, z. B. 4 MByte, die Blockgröße, typischerweise im Bereich von 64 bis 1024 Bytes, gespeichert. Beim z. B. dritten Zugriff auf einen Block wird der gesamte Block in das RAM-Chache RAC transferiert.
"Random Access": In diesem Fall eines völlig irregulären Zugriffs wird keinerlei Prefetching durchgeführt.
Die Erfindung ermöglicht somit einen quasi parallelen Zugriff der Prozessoren PR1 . . . PRn auf die DRAM-Speicherbank SPB, doch ist ein direkter Zugriff eines Prozessors auf die Speicher­ bank nicht möglich. An dieser Stelle sei erwähnt, dass die hier verwendete Einzahl "Speicherbank" nicht physikalisch zu sehen ist und nicht ausschließen soll, dass auch mehrere Speicherbänke bzw. mehrere Speicherbausteine in einem System vorhanden sind.

Claims (5)

1. Speicherbaustein (SPB) für ein Mehrprozessorsystem, bei welchem mehrere Prozessoren (PR1 . . . PRn) über einen Prozessor­ bus (PBU) an das Interface (IFA) des Bausteins anschließbar sind, dadurch gekennzeichnet,
dass eine über einen internen Bus (IBU) mit mehreren Control­ lern (CO1 . . . COm) verbundene DRAM-Speicherbank (DSB) vorgese­ hen ist,
wobei die Controller, welche andererseits mit dem Interface (IFA) verbunden sind, je mit einem RAM-Cache (RAC) ausgestat­ tet sowie konfigurierbar sind.
2. Mehrprozessorsystem mit einem Speicherbaustein (SPB) nach Anspruch 1, dadurch gekennzeichnet, dass die Anzahl m der Con­ troller (CO1 . . . COm) zumindest gleich der Anzahl n der Prozes­ soren (PR1 . . . PRn) ist und für jeden Prozessor zumindest ein Controller vorgesehen ist.
3. Mikroprozessorsystem nach Anspruch 2, dadurch gekennzeichnet, dass ein einem Prozessor (PR1 . . . PRn) zugeordneter Controller (CO1 . . . COm) unter Berück­ sichtigung der Zugriffscharakteristik des Prozessors program­ mierbar ist.
4. Mikroprozessorsystem nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, dass auf dem internen Bus (IBU) des Speicherbausteins (SPB) ein Cachekohärenzprotokoll abläuft.
5. Mikroprozessorsystem nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass das Cachekohärenzpro­ tokoll eine "store-through"-Strategie beinhaltet.
DE19951046A 1999-10-22 1999-10-22 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem Withdrawn DE19951046A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE19951046A DE19951046A1 (de) 1999-10-22 1999-10-22 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem
PCT/DE2000/003735 WO2001029673A1 (de) 1999-10-22 2000-10-23 Speicherbaustein für ein mehrprozessorsystem und mehrprozessorsystem
DE10083192T DE10083192D2 (de) 1999-10-22 2000-10-23 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19951046A DE19951046A1 (de) 1999-10-22 1999-10-22 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem

Publications (1)

Publication Number Publication Date
DE19951046A1 true DE19951046A1 (de) 2001-04-26

Family

ID=7926607

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19951046A Withdrawn DE19951046A1 (de) 1999-10-22 1999-10-22 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem
DE10083192T Expired - Fee Related DE10083192D2 (de) 1999-10-22 2000-10-23 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE10083192T Expired - Fee Related DE10083192D2 (de) 1999-10-22 2000-10-23 Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem

Country Status (2)

Country Link
DE (2) DE19951046A1 (de)
WO (1) WO2001029673A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004102376A3 (en) * 2003-05-09 2005-07-07 Intel Corp Apparatus and method to provide multithreaded computer processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5502828A (en) * 1992-12-18 1996-03-26 Advanced Micro Devices, Inc. Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention
US5696937A (en) * 1995-04-28 1997-12-09 Unisys Corporation Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses
US5799209A (en) * 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004102376A3 (en) * 2003-05-09 2005-07-07 Intel Corp Apparatus and method to provide multithreaded computer processing

Also Published As

Publication number Publication date
WO2001029673A1 (de) 2001-04-26
DE10083192D2 (de) 2002-01-24

Similar Documents

Publication Publication Date Title
DE3687307T2 (de) Computeranordnungen mit cache-speichern.
DE69132186T2 (de) Cache-Speicherverwaltungsanordnung
DE69432133T2 (de) Datenprozessor mit Cache-Speicher
DE3586389T2 (de) Dynamisch zugeordnete lokale/globale speicheranordnung.
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE69701078T2 (de) Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE69224084T2 (de) Rechneranordnung mit Mehrfachpufferdatencachespeicher und Verfahren dafür
DE102008062044B4 (de) 1Speicherinterne, seiteninterne Verzeichnis-Chache-Kohärenz-Konfiguration
DE60034998T2 (de) Verbesserungen in oder bezüglich von Mikroprozessoren
DE102007018033A1 (de) Kohärenzverzeichnisaktualisierung
DE19807872A1 (de) Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE112008001679T5 (de) Cache-Speicher mit konfigurierbarer Assoziativität
DE3438869A1 (de) Computersystem mit adressumwandlung
DE69937611T2 (de) Intelligenter Puffer-Speicher
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69616226T2 (de) Ungültigkeitserklärungsbusoptimierung für Multiprozessoren mit verzeichnisbasierten Kohärenzprotokollen
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE102013018135B4 (de) Adressenbit-Wiederabbildungsschema zur Reduzierung einer Zugriffsauflösung von DRAM-Zugriffen
DE69027919T2 (de) Anordnung und Verfahren zur Unterstützung des Zugriffs auf E/A-Geräte durch grosse, direkt abgebildete Datencache-Speicher
DE19908618A1 (de) Gemeinsam genutzter Hochleistungscachespeicher
DE112012004926B4 (de) Gemeinsame Speichernutzung durch Prozessoren
DE69808628T2 (de) Mikroprozessorcachespeicherübereinstimmung
DE69629331T2 (de) System und Verfahren zur Bereitstellung einer flexiblen Speicherhierarchie

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8143 Withdrawn due to claiming internal priority