DE19951046A1 - Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem - Google Patents
Speicherbaustein für ein Mehrprozessorsystem und MehrprozessorsystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, 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.
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.
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)
| 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)
| 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 |
-
1999
- 1999-10-22 DE DE19951046A patent/DE19951046A1/de not_active Withdrawn
-
2000
- 2000-10-23 WO PCT/DE2000/003735 patent/WO2001029673A1/de not_active Ceased
- 2000-10-23 DE DE10083192T patent/DE10083192D2/de not_active Expired - Fee Related
Cited By (1)
| 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 |