DE19809640A1 - Speed-optimized cache system - Google Patents
Speed-optimized cache systemInfo
- Publication number
- DE19809640A1 DE19809640A1 DE19809640A DE19809640A DE19809640A1 DE 19809640 A1 DE19809640 A1 DE 19809640A1 DE 19809640 A DE19809640 A DE 19809640A DE 19809640 A DE19809640 A DE 19809640A DE 19809640 A1 DE19809640 A1 DE 19809640A1
- Authority
- DE
- Germany
- Prior art keywords
- cache
- memory
- data
- access
- address
- 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
- 230000015654 memory Effects 0.000 claims abstract description 61
- 101000931570 Dictyostelium discoideum Farnesyl diphosphate synthase Proteins 0.000 claims 1
- 230000009172 bursting Effects 0.000 abstract 1
- 238000010276 construction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 208000021668 chronic eosinophilic leukemia Diseases 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 101000921780 Solanum tuberosum Cysteine synthase Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0851—Cache with interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
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)
Abstract
Description
Bausteine der Gattung DFP (vgl. DE 44 16 881 A1, P 196 51 075.9), RAW-Machines, Digitale Signalprozessoren, DPGA, als auch Mikroprozessoren der nächsten Generation besitzen mehrere interne hochparallelen Rechenwerke. FPGAs werden häufig als numerische Koprozessoren eingesetzt und werden mit einer Vielzahl von möglichst parallel arbeitenden Rechenwerken programmiert.Building blocks of the genus DFP (cf. DE 44 16 881 A1, P 196 51 075.9), RAW machines, digital signal processors, DPGA, as next-generation microprocessors also have several internal highly parallel arithmetic units. FPGAs are often called numerical coprocessors and are used with a Large number of arithmetic units working in parallel if possible programmed.
Die oben genannten Bausteine erreichen interne Datentransferraten von mehreren Gigabyte pro Sekunde. Eine Vielzahl von Rechenwerken (CELs) benötigen zeitgleich Daten aus dem Cache.The above modules reach internal Data transfer rates of several gigabytes per second. A A large number of arithmetic units (CELs) require data at the same time from the cache.
Cachesysteme nach dem Stand der Technik lassen nur Zugriffe von einem Rechenwerk oder wenigen Rechenwerken pro Zeiteinheit zu. Die Datenraten der Caches werden durch möglichst breite Cachezeilen (Cachelines) erreicht.State-of-the-art cache systems only allow access from one arithmetic unit or a few arithmetic units per unit of time to. The data rates of the caches are as wide as possible Cache lines reached.
Cachesysteme nach dem Stand der Technik sind ungeeignet für schnelle Bausteine der oben angegebenen Gattungen, da parallele zeitgleiche Zugriffe nur bedingt möglich sind. Durch die hohen Cachebreiten ist der Aufwand und die damit verbundene zeitliche Verzögerung zum Zerlegen der Cachedaten in die angeforderten Daten nicht unerheblich. Der Aufbau von Cachesystemen für schnelle Bussysteme wie z. B. den RAMBUS ist äußerst kompliziert und technisch kaum, oder nur mit erheblichem Aufwand und Kosten realisierbar, da dabei erhebliche Transferraten auftreten, die besonders schnelle Speicher und Steuerungen benötigen.State-of-the-art cache systems are unsuitable for fast building blocks of the above-mentioned types, because parallel simultaneous accesses are only possible to a limited extent. By The high cache width is the effort and therefore the connected time delay for disassembling the cache data not insignificant in the requested data. The construction of Cache systems for fast bus systems such as B. is the RAMBUS extremely complicated and technically hardly, or only with considerable effort and costs can be realized because of this considerable transfer rates occur that are particularly fast Storage and controls need.
Aufgabe der Erfindung ist ein hochgradig paralleles Cachesystem, das geschwindigkeitsoptimiert eine Vielzahl von gleichzeitigen Zugriffen ermöglicht und die Daten in der für die jeweiligen Rechenwerke optimalen Breite liefert.The object of the invention is a highly parallel Cache system that optimizes a variety of speed allows simultaneous access and the data in the for provides the respective arithmetic units optimal width.
Anstatt eines durchgehenden breiten Cache-Speichers, werden mehrere Cache-Speicher verwendet, wobei jeder der Speicher einen eindeutigen Adressraum besitzt. Eine Mehrzahl von Rechenwerken kann auf eine Mehrzahl von Cache-Speichern zugreifen, indem der Cache-Speicher anhand eindeutiger Adressen selektiert wird. Greifen mehrere Rechenwerke auf denselben Cache-Speicher zu, wird jeweils eines der Rechenwerke pro Takteinheit arbitriert und erhält die Zugriffsrechte. Liegen die Daten im Cache-Speicher nicht vor, wird bei Zugriffen auf den Speicher grundsätzlich gebursted, d. h. eine Mehrzahl von Daten wird über eine komplette Zeile von Cachespeichern (CL) in den Speicher geschrieben, bzw. aus den Speicher gelesen. Besonders durch diese Eigenschaft wird der Aufbau eins Cachesystems für moderne Bussystem wie z. B. den RAMBUS erheblich vereinfacht.Instead of having a continuous wide cache, uses multiple cache memories, each of the memories has a unique address space. A majority of Arithmetic units can have a plurality of caches access by caching based on unique Addresses is selected. Take up several arithmetic units the same cache memory, one of the Arithmetic units per clock unit arbitrate and receive the Access rights. If the data is not in the cache memory, is always bursted when the memory is accessed, d. H. a lot of data is over a complete line written to or from cache memories (CL) read the memory. Especially through this property the construction of a cache system for modern bus systems such as B. the RAMBUS considerably simplified.
Es existieren eine Mehrzahl von Cache-Speichern, wobei jeder
einen eindeutigen Adressraum besitzt. Dabei wird der
Adressraum des einzelnen CS anhand der niederwertigen
Adressbits An . . . A0 so festgelegt, da die CS einen linear
zusammenhängenden, unterbrechungsfreien Adressraum bilden. Die
Anzahl der Cache-Speicher muß 2n für n = 0, 1, 2, 3, . . . betragen,
d. h. die Adressbits An . . . A0 werden zur Selektion des jeweiligen
Cache-Speichers verwendet. Die folgende Tabelle gibt einen
Überblick über die Anzahl der Cache-Speicher und die
Dekodierung der Adressbits. n ist eine beliebige ganze Zahl
(Integer, s. o.); C# gibt die Anzahl der Cachespeicher an; ADR
CACHE 2n gibt den Binärwert von An . . . A0 zur Selektion des
entsprechenden Cache-Speichers an; die Tabelle ist bei
größeren n entsprechend in Breite und Tiefe zu erweitern:
There are a number of cache memories, each with a unique address space. The address space of the individual CS is based on the low-order address bits A n . . . A 0 is determined in such a way that the CS form a linearly connected, uninterrupted address space. The number of cache memories must be 2 n for n = 0, 1, 2, 3,. . . amount, ie the address bits A n . . . A 0 are used to select the respective cache memory. The following table gives an overview of the number of cache memories and the decoding of the address bits. n is any integer (integer, see above); C # indicates the number of caches; ADR CACHE 2 n gives the binary value of A n . . . A 0 for selection of the corresponding cache memory; For larger n the table should be expanded accordingly in width and depth:
Zum Anschluß eines Rechenwerkes (CEL) an die CS wird über einen Dekoder, der An . . . A0 auskodiert, die jeweils adressierte CS(An × 2n + . . . A1 × 21 + A0 × 2⁰) selektiert. Die Adress-, Daten- und Kontrolleitungen der CS werden dabei über Demultiplexer und Multiplexer mit dem Rechenwerk verbunden. Des weiteren ist eine Synchronisation notwendig, die CEL signalisiert, wann die Daten vom Cache akzeptiert wurden, bzw. im Cache zur Verfügung stehen.To connect an arithmetic unit (CEL) to the CS, a decoder, the A n . . . A 0 is encoded, the respective addressed CS (A n × 2 n +... A 1 × 2 1 + A 0 × 2⁰) selected. The address, data and control lines of the CS are connected to the arithmetic unit via demultiplexers and multiplexers. Synchronization is also required, which signals to the CEL when the data from the cache has been accepted or is available in the cache.
Die Verwaltung des Speichers übernimmt eine Statemachine, die auf einen Cache-Miss reagiert. Ein Cache-Miss tritt auf, wenn auf Adressbereiche zugegriffen wird, die sich nicht im Cache befinden. A state machine takes over the management of the memory responded to a cache miss. A cache miss occurs when access to address areas that are not in the cache are located.
Die Statemachine schreibt zunächst die neu zu belegende Cacheline (CL) in den Speicher. Eine CL sind gemäß dem Stand der Technik alle Daten, die sich auf der gleichen horizontalen Speicherebene befinden - also die gleiche Y-Adresse haben -, wie die angeforderten. Eine CL erstreckt sich dabei über alle CS, wobei die genaue Definition im nächsten Absatz folgt. Die Statemachine liest danach die neuen Daten aus dem Speicher in die CL. Beim Schreiben und Lesen der CL wird vorzugsweise zur Steigerung der Busgeschwindigkeit ein Bus-Burst, nach dem Stand der Technik, durchgeführt.The state machine first writes the new one Cacheline (CL) in memory. A CL are according to the state the technology all data that is on the same horizontal Storage level - i.e. have the same Y address -, like the requested. A CL extends over all of them CS, the exact definition follows in the next paragraph. The The state machine then reads the new data from the memory in the CL. When writing and reading the CL is preferably used Increase the bus speed a bus burst after which State of the art.
Da die CS wie bereits erläutert immer 2n-fach angeordnet sind gilt, i.b. für eine CL, folgendes: Jede beliebige Adresse der Breite g wird in einen Teil B der Breite b, der der Größe des Caches entspricht und einen Restteil T der Breite t = g - b zerlegt. Adressteil B läßt sich in einen höherwertigen Teil M der Breite m = b - n und einen niederwertigen Teil N der Breite n zerlegen, dabei entspricht 2n der Anzahl der CS. Für einen beliebigen Wert W, wobei die Adresse W in die Werte Wm = An × 2n + . . . + A1×21 + A0×2⁰ des Adressteils M und die Werte Wn = Am × 2m + A(m-1) × 2(m-1) + . . . + A(n+1) × 2(n+1) + An × 2n des Adressteils N zerlegt ist (⇒ W=[Wm, Wn]), gilt für Wn somit 0 ≦ Wn < 2n. Die Daten der Adresse W=[Wm, Wn] befinden sich in CS(Wn); die Daten der Adresse W=[Wm, 0] befinden sich in CS(0); die Daten der Adresse W=[Wm, (2n-1)] befinden sich in CS((2n-1)). Eine CL erstreckt sich dabei im einfachsten Fall über alle Wn von 0 bis (2n-1). Ein Burst beginnt bei Wn = 0 (⇒ W=[Wm, 0]) und endet bei Wn = (2n-1) (⇒ W=[Wm, (2n-1)]). Since the CS, as already explained, is always arranged 2 n times, ib for a CL, the following: any address of the width g is divided into a part B of the width b which corresponds to the size of the cache and a remainder T of the width t = g - b disassembled. Address part B can be broken down into a more significant part M of width m = b-n and a less significant part N of width n, 2 n corresponding to the number of CS. For any value W, where the address W is in the values Wm = A n × 2 n +. . . + A 1 × 2 1 + A 0 × 2⁰ of the address part M and the values Wn = A m × 2 m + A (m-1) × 2 (m-1) +. . . + A (n + 1) × 2 (n + 1) + A n × 2 n of the address part N is broken down (⇒ W = [Wm, Wn]), the following applies for Wn 0 ≦ Wn <2 n . The data of the address W = [Wm, Wn] are in CS (Wn); the data of the address W = [Wm, 0] are in CS (0); the data of the address W = [Wm, (2 n -1)] are in CS ((2 n -1)). In the simplest case, a CL extends over all Wn from 0 to (2 n -1). A burst begins at Wn = 0 (⇒ W = [Wm, 0]) and ends at Wn = (2 n -1) (⇒ W = [Wm, (2 n -1)]).
Um längere Bursts durchzuführen kann W in 3 Adressteile Wo, Wp, Wn der Längen o, p, n zerlegt werden. Dabei entspricht m = o+p, n ist wie gehabt ⇒ W=[Wo, Wp, Wn]. Ein Burst läuft in diesem Fall über die Speicherworte W=[Wo, 0, 0] bis W=[Wo, (2p-1), (2n-1)], dabei wird jeder CS 2p-mal durchlaufen, die CL erstreckt sich über alle Wp, Wn.To perform longer bursts, W can be broken down into 3 address parts Wo, Wp, Wn of lengths o, p, n. Here, m = o + p, n is as usual ⇒ W = [Wo, Wp, Wn]. In this case, a burst runs via the memory words W = [Wo, 0, 0] to W = [Wo, (2 p -1), (2 n -1)], each CS being run through 2 p times CL extends over all Wp, Wn.
Der Teil T wird bei einem Cache-Zugriff nach dem Stand der Technik im sogenannten TAG-RAM abgelegt. Der Inhalt des TAG-RAMs (t_tag) wird bei Zugriffen mit dem Teil T der Zugriffsadresse verglichen. Ist t_tag ungleich T, liegen die betreffenden Daten nicht im Cache, ein sogenannter Cache-Miss liegt vor. Die Daten müssen aus dem Speicher transferiert werden. Ist t_tag gleich T liegen die betreffenden Daten im Cache, ein sogenannter Cache-Hit liegt vor. Das Cache Hit/Miss Verfahren entspricht dem Stand der Technik.The part T is in a cache access according to the state of the Technology stored in the so-called TAG-RAM. The content of the TAG RAM (t_tag) is used for access with part T of Access address compared. If t_tag is not equal to T, they are data in question is not in the cache, a so-called cache miss is available. The data must be transferred from memory become. If t_tag is equal to T, the relevant data are in the Cache, a so-called cache hit. The cache hit / miss The method corresponds to the state of the art.
Der beschriebene Cache besitzt mehrere CS, die jeweils eine eindeutige Adresse besitzen und dadurch über einen eindeutigen Adressraum verfügen. Eine Vielzahl von Rechenwerken kann zeitgleich auf die CS zugreifen, sofern jedes Rechenwerk einen unterschiedlichen Adressraum An . . . A0 verwendet. Um diese Einschränkung zu umgehen, wird jedem CS ein Arbeiter zugeordnet, der, sofern mehrere Rechenwerke auf denselben Adressraum An . . . A0 zugreifen, eines der Rechenwerke pro Zeiteinheit arbitriert. Dazu werden die Busse aller Rechenwerke auf einen Multiplexer/Demultiplexer geschaltet. The cache described has several CS, each of which has a unique address and therefore has a unique address space. A large number of arithmetic units can access the CS at the same time, provided that each arithmetic unit has a different address space A n . . . A 0 used. In order to circumvent this restriction, each CS is assigned a worker who, if several arithmetic units on the same address space A n . . . Access A 0 , one of the arithmetic units arbitrates per time unit. For this purpose, the buses of all arithmetic units are switched to a multiplexer / demultiplexer.
Jeder Bus liefert ein aus An . . . A0 auskodiertes Signal, das genau einen der CS selektiert. Über den einem CS zugeordneten Arbeiter wird jeweils einer der Busse zum Zugriff auf das jeweilige CS selektiert. Die Synchronisation der CEL mit den CS muß im Falle einzelner Rechenwerke für jedes Rechenwerk einzeln von CS generiert werden, um zusätzlich anzuzeigen, ob das jeweilige Rechenwerk das akutell Arbitrierte ist.Each bus delivers one from A n . . . A 0 coded signal that selects exactly one of the CS. One of the buses is selected for access to the respective CS via the worker assigned to a CS. In the case of individual arithmetic units, the synchronization of the CEL with the CS must be generated individually by CS for each arithmetic unit in order to additionally indicate whether the respective arithmetic unit is the currently arbitrated.
Schnelle Bussysteme (z. B. RAMBUS nach dem Stand der Technik) tauschen die Speicherdaten über eine Vielzahl von Registern oder Ports (BR) aus, in die die Daten sequentiell in einer Art Interleaving zum Senken der Taktfrequenzen geschrieben werden (vgl. RAMBUS-RAC). Dabei ist grundsätzlich kein Cache zwischen den BR und den CEL vorgesehen.Fast bus systems (e.g. state-of-the-art RAMBUS) exchange the memory data via a large number of registers or ports (BR) into which the data is sequentially sorted in a kind Interleaving to lower the clock frequencies can be written (see RAMBUS-RAC). There is basically no cache between the BR and the CEL.
Aufgrund des besseren Datendurchsatzes wird ein Verfahren zum
Cachen von Daten, die mittels derart schneller Bussysteme
übertragen werden, beschrieben:
Dabei wird jeweils eine CS einem oder einer Menge von
Registern zugeordnet, d. h. jedes BR oder jede Gruppe von BR
wird von einem CS gecachet. Aufgrund der Eindeutigkeit der
Adressen An . . . A0 für jede CS ist diese Zuordnung möglich, sofern
auch die Register eindeutig denselben An . . . A0 zugeordnet sind.
Das ist grundsätzlich der Fall, wenn ein Burst, wie mehrfach
angegeben, immer bei An × 2n + . . . + A1 × 21 + A0 × 2⁰ = 0 beginnt und
immer bei An × 2n + . . . + A1 × 21 + A0 × 2⁰ = 2n-1 endet.
Because of the better data throughput, a method for caching data that is transmitted using such fast bus systems is described:
A CS is assigned to one or a set of registers, ie each BR or group of BRs is cached by a CS. Due to the uniqueness of the addresses A n . . . A 0 for each CS this assignment is possible, provided that the registers also clearly have the same A n . . . A 0 are assigned. This is basically the case if a burst, as stated several times, always at A n × 2 n +. . . + A 1 × 2 1 + A 0 × 2⁰ = 0 begins and always at A n × 2 n +. . . + A 1 × 2 1 + A 0 × 2⁰ = 2n-1 ends.
Die Anzahl der BR muß 2r für r = 0, 1, 2, 3, . . . betragen, was jedoch für gewöhnlich der Fall ist. Das Verhältnis von CS zu BR beträgt 2v = 2n : 2r.The number of BR must be 2 r for r = 0, 1, 2, 3,. . . amount, which is usually the case. The ratio of CS to BR is 2 v = 2 n : 2 r .
- - Ist v = 0, 2v = 1 ist jedem CS ein BR zugeordnet.- If v = 0, 2 v = 1, a BR is assigned to each CS.
-
- Es existieren mehr BR als CS (v<0, 2v<1):
Grundsätzlich werden 2-v Cachelines je lesendem oder schreibendem Zugriff übertragen. Dabei ist die Adresse des jeweiligen BR Ar . . . A0 = Av . . . An+1 . . . An . . . A0.- There are more BR than CS (v <0, 2 v <1):
Basically, 2 -v cachelines are transferred for each read or write access. The address of the respective BR A r . . . A 0 = A v . . . A n + 1 . . . A n . . . A 0 . -
- Es existieren mehr CS als BR (v<0, 2v<1):
Um eine Cacheline schreibend oder lesend zu übertragen, finden 2v Zugriffe auf das Bussystem statt. Dabei ist die Adresse der CS An . . . A0 = Av . . . Ar+i . . . Ar . . . A0.- There are more CS than BR (v <0, 2 v <1):
In order to transmit a read or write cache line, 2v accesses to the bus system take place. The address of the CS A n . . . A 0 = A v . . . A r + i . . . A r . . . A 0 .
Fig. 1a, b zeigt die Anordnung der Caches Fig. 1a, b shows the arrangement of caches
Fig. 2a zeigt einen Cache nach dem Stand der Technik Fig. 2a shows a cache according to the prior art
Fig. 2b zeigt einen erfindungsgemäßen Cache FIG. 2b shows a cache according to the invention
Fig. 3 zeigt einen erfindungsgemäßen Cache mit zeitgleicher, arbitrierter Zugriffsmöglichkeit durch mehrere Rechenwerke Fig. 3 shows a cache according to the invention with simultaneous, arbitrated access possibility by several arithmetic units
Fig. 4 zeigt den internen Aufbau eines eines Caches Fig. 4 shows the internal structure of a cache
Fig. 5 zeigt den Anschluß eines erfindungsgemäßen Caches an den Speicher Fig. 5 illustrates the connection of a cache memory according to the invention to the
Fig. 6 zeigt den Ablauf in der Statemachine des Caches Fig. 6 shows the flow of the State Machine in the cache
Fig. 7 zeigt den Anschluß des erfindungsgemäßen Cachesystems an ein schnelles Bussystem am Beispiel eines RAMBUS Controllers (RAC) Fig. 7 shows the connection of the cache system of the invention to a fast bus system using the example of a RAMBUS controller (RAC)
Fig. 8 zeigt den Aufbau einer Multiplexer/Demultiplexer Struktur Fig. 8 shows the construction of a multiplexer / demultiplexer structure
In Fig. 1a ist eine Mehrzahl (2n) von Cache-Speichern (0101) abgebildet. Die Adressen An . . . A0 werden zur Selektion eines aus den 2n Cache-Speichern verwendet. Eine Cacheline (CL) reicht von An × 2n + . . . + A1 × 21 + A0 × 2⁰ = 0 bis An × 2n + . . . + A1 × 21 + A0 × 2⁰ = 2n-1. Der Cache ist 2m Einträge tief, d. h. er reicht von An+m . . . An+1. Der Bereich An+m+t . . . An+m+1 wird in das, dem Cache-Speicher zugeordneten, TAG-RAM (0102) eingetragen.A plurality (2 n ) of cache memories ( 0101 ) is shown in FIG. 1a. The addresses A n . . . A 0 are used to select one of the 2 n cache memories. A cacheline (CL) ranges from A n × 2 n +. . . + A 1 × 2 1 + A 0 × 2⁰ = 0 to A n × 2 n +. . . + A 1 × 2 1 + A 0 × 2⁰ = 2 n -1. The cache is 2 m entries deep, ie it ranges from A n + m . . . A n + 1 . The area A n + m + t . . . A n + m + 1 is entered in the TAG-RAM ( 0102 ) assigned to the cache memory.
Der Burst reicht über eine CL von
The burst extends over a CL of
bis
to
In Fig. 1b ist eine Mehrzahl (2n) von Cache-Speichern (0101) abgebildet. Die Adressen An . . . A0 werden zur Selektion eines aus den 2n Cache-Speichern verwendet. Eine Cacheline (CL) reicht über mehrere Cachezeilen von An×2n + . . . + A1×21 + A0×2⁰ = 0 bis A(n+p)×2(n+p) + . . . + A1×21 + A0×2⁰ = 2n+p-1. Der Cache ist 2m Einträge tief, d. h. er reicht von An+m . . . An+1. Dabei gilt An+m . . . An+1 = An+m . . . An+p . . . An+1. Der Bereich An+m+t . . . An+m+1 wird in das, dem Cache-Speicher zugeordneten, TAG-RAM (0102) eingetragen. A plurality (2 n ) of cache memories ( 0101 ) is shown in FIG. 1b. The addresses A n . . . A 0 are used to select one of the 2 n cache memories. A cache line (CL) extends over several cache lines of A n × 2 n +. . . + A 1 × 2 1 + A 0 × 2⁰ = 0 to A (n + p) × 2 (n + p) +. . . + A 1 × 2 1 + A 0 × 2⁰ = 2 n + p -1. The cache is 2 m entries deep, ie it ranges from A n + m . . . A n + 1 . A n + m applies. . . A n + 1 = A n + m . . . A n + p . . . A n + 1 . The area A n + m + t . . . A n + m + 1 is entered in the TAG-RAM ( 0102 ) assigned to the cache memory.
Der Burst reicht über eine CL von
The burst extends over a CL of
bis
to
In Fig. 2a ist ein einzelner Cache (0201) nach dem Stand der Technik abgebildet. Dabei kann die Datenbreite zum angeschlossenen Rechenwerk um ein Vielfaches höher (b») sein als die Datenbreite des Speicher-Anschlusses (0202).A single cache ( 0201 ) according to the prior art is shown in FIG. 2a. The data width to the connected arithmetic unit can be many times larger (b ») than the data width of the memory connection ( 0202 ).
Fig. 2b zeigt einen erfindungsgemäßen Cache-Speicher, der aus mehreren einzelnen Speichern (0203) besteht. Durch die von den Rechenwerken stammenden Adressen An . . . A0 (0204) wird über einen Multiplexer/Demultiplexer (0205) einer der Cache-Speicher für den Zugriff durch das Rechenwerk (0211) ausgewählt. Eine in Fig. 5 und Fig. 6 näher beschriebene Statemachine (0206) steuert den Zugriff und den Burst der Cachelines in den Speicher (0210). Dazu wählt sie über den Multiplexer/Demultiplexer (0207) anhand der von 0206 generierten Adressen (0208) während eines Burst jeweils eines der 0203 aus. Die Adresse der Cacheline (je nach Implementierung An+m . . . An+1 oder An+m . . . An+p . . . An+1) wird über 0209 den 0203 zugeführt. FIG. 2b shows a cache memory according to the invention, which consists of several individual memories (0203). Through the addresses A n coming from the arithmetic units. . . A 0 ( 0204 ) one of the cache memories is selected for access by the arithmetic unit ( 0211 ) via a multiplexer / demultiplexer ( 0205 ). A state machine (0206) described in more detail in Fig. 5 and Fig. 6 controls the access and the burst of the cache lines in the memory (0210). To do this, it selects one of the 0203 using the multiplexer / demultiplexer ( 0207 ) based on the addresses ( 0208 ) generated by 0206 during a burst. The address of the cache line (depending on the implementation A n + m ... A n + 1 or A n + m ... A n + p ... A n + 1 ) is fed to 0203 via 0209 .
Fig. 2c zeigt den internen Aufbau eines Caches nach dem Stand der Technik (vgl. Fig. 2a). Im Speicher (0212) sind mehrere Datenwörter (0213) in horizontaler Richtung zusammengefaßt, auf die nur ein gemeinsamer Zugriff möglich ist. Eine Cacheline (CL) umfaßt mehrere Datenwörter mit gleicher Y-Adresse. Fig. 2c shows the internal construction of a cache according to the state of the art (see. Fig. 2a). Several data words ( 0213 ) are combined in the memory ( 0212 ) in the horizontal direction, to which only common access is possible. A cacheline (CL) comprises several data words with the same Y address.
Fig. 3 zeigt eine mögliche Ausgestaltung des Anschlusses der CS an mehrere CELs. Dabei wird jeder CS (0304) ein Multiplexer/Demultiplexer (0301) zugeordnet, dem der Bus (0302) jedes Rechenwerkes zugeführt wird. Dabei sind die Adressleitungen An . . . A0 auskodiert (0303) und dienen als Zugriffsanforderung auf den jeweiligen der Auskodierung angeordneten CS. Ein Arbeiter (0305), vorzugsweise ein SCRR-ARB (vgl. PACT10) selektiert eine der Zugriffsanforderungen und steuert 0301 entsprechend an. Fig. 3 shows a possible embodiment of the connection of the CS to several CELs. Each CS ( 0304 ) is assigned a multiplexer / demultiplexer ( 0301 ) to which the bus ( 0302 ) of each arithmetic unit is fed. The address lines are A n . . . A 0 is encoded ( 0303 ) and serves as an access request to the respective CS arranged for the encoding. A worker ( 0305 ), preferably an SCRR-ARB (see PACT10) selects one of the access requests and controls 0301 accordingly.
Fig. 4 zeigt einen möglichen Aufbau eines 0304. Die in der Zeichnung nach oben geführten Leitungen dienen zum Anschluß des Speichers, die nach unten geführten Leitungen dienen zum Anschluß an das/die Rechenwerk(e) (CEL). Über einen Multiplexer (0407) gelangen die Adressen An+m . . . An+1 als CAn+m . . . CAn+1 (0404) an den Adresseingang des TAG-RAMs 0401. Der TAG-RAM speichert bei Zugriffen durch die Statemachine (0206) die Adressen An+m+t . . . An+m+1. Greifen die CEL auf den Cache zu, werden mittles 0402 die in 0401 gespeicherten Adressen mit den von CEL angeforderten Adressen verglichen. Sind die Adressen "gleich", befinden sich die Daten in dem Cache-RAM (0403) was einen Cache-Hit bedeutet, ansonsten befinden sich die Daten nicht im Cache-RAM, entsprechend bedeutet "ungleich" wird ein Cache-Miss signalisiert. Fig. 4 shows a possible structure of a 0304th The lines routed upwards in the drawing are used to connect the memory, the lines routed downwards are used for connection to the calculator (s) (CEL). The addresses A n + m arrive via a multiplexer ( 0407 ). . . A n + 1 as CA n + m . . . CA n + 1 ( 0404 ) to the address input of TAG-RAM 0401 . When accessed by the state machine ( 0206 ), the TAG-RAM stores the addresses A n + m + t . . . A n + m + 1 . If the CEL accesses the cache, the addresses stored in 0401 are compared with the addresses requested by CEL using 0402 . If the addresses are "equal", the data are in the cache RAM ( 0403 ), which means a cache hit, otherwise the data are not in the cache RAM, correspondingly "unequal" means a cache miss is signaled.
0404 wird als Adresseingang an 0403 geführt. Die Daten werden bei Lesezugriffen über den Demultiplexer/Multiplexer 0405 ausgegeben, bzw. bei Schreibzugriffen über den Multiplexer/Demultiplexer 0405 geschrieben. 0404 is routed to 0403 as an address input . The data is output for read accesses via the demultiplexer / multiplexer 0405 , or for write accesses via the multiplexer / demultiplexer 0405 .
Mittels des 1-bit Speichers 0406 wird vermerkt, ob die CEL die Daten an einer bestimmten Adresse geändert haben. Greifen die CEL schreibend auf die Daten zu, wird an der Adresse (0404) der Daten "Dirty" in 0406 geschrieben. Bei einem lesenden Zugriff bleibt 0406 unverändert. Bei schreibendem Zugriff auf die Daten durch die Statemachine 0206 wird "clean" an die betreffende Adresse geschrieben. Anhand von "dirty" und "clean" erkennt 0206 ob die Cacheline von den CEL verändert wurde ("dirty") und in den Speicher zurückgeschrieben werden muß, oder ob die unveränderte Cacheline einfach überschrieben werden kann. Der Ablauf der Statemachine 0206 wird in Fig. 6 dargestellt.The 1-bit memory 0406 is used to record whether the CEL changed the data at a specific address. If the CEL has write access to the data, "Dirty" in 0406 is written to the address ( 0404 ). With read access, 0406 remains unchanged. With write access to the data by the state machine 0206 , "clean" is written to the relevant address. On the basis of "dirty" and "clean", 0206 recognizes whether the celeline has been changed by the CEL ("dirty") and has to be written back into memory, or whether the unchanged cacheline can simply be overwritten. The sequence of the state machine 0206 is shown in FIG. 6.
Über den Vergleicher 0409 wird festgestellt, ob die Statemachine 0206 auf dieselben Adressen (Same_Adr) wie die CEL zugreift. Das bedeutet, das 0206 verändert die Daten in 0403, während die CEL den Zugriff auf genau diese Daten anfordert - oder umgekehrt. Da zu einem Zeitpunkt entweder die CEL oder 0206 auf die Daten zugreift, ergibt sich daraus kein Konsistenzproblem. Jedoch geht erhebliche Geschwindigkeit verloren, wenn Daten, die von den CEL benötigt werden, zunächst von 0206 mit anderen Daten überschrieben werden, um nach einem daraus zwangsläufig resultierenden Cache-Miss wieder neu von 0206 geschrieben werden zu werden. Liegt ein Cache-Hit UND (0410) ein Same_Adr vor, wird 0206 signalisiert (FreeReq), daß das Überschreiben der Daten in 0403 so lange verzögert werden soll, bis die CEL ihrerseits die Daten gelesen bzw. geschrieben haben. Für das bessere Verständnis wird auf Fig. 6 verwiesen.The comparator 0409 determines whether the state machine 0206 accesses the same addresses (Same_Adr) as the CEL. This means that the 0206 changes the data to 0403 while the CEL requests access to precisely this data - or vice versa. Since either the CEL or 0206 is accessing the data at one point in time, there is no consistency problem. However, considerable speed is lost when data are required by the CEL are overwritten first of 0206 with other data to be rewritten for a fact inevitably resulting cache miss again from 0206 to become. If there is a cache hit AND ( 0410 ) a Same_Adr, 0206 is signaled (FreeReq) that the overwriting of the data in 0403 should be delayed until the CEL has read or written the data. For a better understanding, reference is made to FIG. 6.
Ein Cache-Miss wird an 0206 weitergeleitet und bewirkt das Laden der entsprechenden Daten.A cache miss is forwarded to 0206 and causes the corresponding data to be loaded.
Den CEL muß angezeigt werden, wann der Zugriff vom Cachesystem akzeptiert wurde. Dazu kann zur Synchronisation ein einfaches Quittierungssignal an die CEL gesendet werden. Z.B. kann ein Cache-Hit gemäß P 197 04 728-9 ein ACK-Handshake-Signal generieren um anzuzeigen, daß der aktuelle Zugriff akzeptiert wurde.The CEL must be shown when access from the cache system was accepted. This can be done by a simple synchronization Acknowledgment signal to be sent to the CEL. E.g. can one Cache hit according to P 197 04 728-9 an ACK handshake signal generate to indicate that the current access is accepting has been.
Die Multiplexer 0407, 0405, 0408 werden von 0206 über ein Signal "LOCK" derart angesteuert, daß entweder die CEL Zugriff auf den Cache haben oder 0206 auf den Cache zugreift.The multiplexers 0407 , 0405 , 0408 are controlled by 0206 via a "LOCK" signal in such a way that either the CEL have access to the cache or 0206 accesses the cache.
In Fig. 5 gelangen die Cache-Miss Signale (0504) auf einen Arbeiter (0501), vorzugsweise eine SCRR-ARB gemäß PACT10. Der Arbeiter (0501) selektiert jeweils einen der einen Cache-Miss sendenden Cachespeicher pro Zeiteinheit und schaltet dessen Bus (0505) über den Multiplexer/Demultiplexer 0502 auf den Speicherbus (0503). Das Valid-Signal des Arbeiters (0506, vgl. Stand der Technik), das anzeigt, daß aufgrund des Auftretens eines Cache-Miss-Signals ein Cachespeicher zur Bearbeitung ausgewählt wurde, wird an die Statemachine 0206 geleitet. Die Dirty-Signale (0508) aller CS werden verODERt (0509) und 0206 zugeführt. Ebenfalls werden die FreeReq-Signale (0510) aller CS verODERt (0511) und 0206 zugeführt. In FIG. 5, the cache miss, signals (0504) to a worker (0501), preferably a SCRR-ARB according PACT10. The worker ( 0501 ) selects one of the cache memories sending a cache miss per time unit and switches its bus ( 0505 ) via the multiplexer / demultiplexer 0502 to the memory bus ( 0503 ). The valid signal of the worker ( 0506 , cf. prior art), which indicates that a cache memory signal has been selected for processing due to the occurrence of a cache miss signal, is sent to the state machine 0206 . The dirty signals ( 0508 ) of all CS are ORed ( 0509 ) and 0206 . The FreeReq signals ( 0510 ) of all CS are also ORed ( 0511 ) and 0206 .
Über 0512 (FreeAck) zeigt 0206 den CS an, daß das anstehende FreeReq akzeptiert wurde und die CS noch einen Taktzyklus Zeit zur Durchführung der anstehenden Zugriffe erhalten. Über 0513 (Lock) zeigt 0206 den CS an, daß sie die Kontrolle über die CS zur Durchführung einer Veränderung einer CL übernimmt. 0513 schaltet die Multiplexer 0407, 0405, 0408 so, daß 0206 die Kontrolle erhält.Via 0512 (FreeAck), 0206 indicates to the CS that the pending FreeReq has been accepted and that the CS still have one clock cycle time to carry out the pending accesses. Via 0513 (Lock), 0206 indicates to the CS that it is taking control of the CS in order to change a CL. 0513 switches the multiplexers 0407 , 0405 , 0408 so that 0206 receives control.
0514 ist das Write-Enable Signal, das die aus dem Speicher gelesenen Daten in die CS schreibt und dabei 0406 auf "clean" setzt. 0514 is the write-enable signal, which writes the data read from the memory to the CS and sets 0406 to "clean".
Über den Bus 0507 werden die Steuersignale, je nach angeschlossenem Ramsystem (z. B. RAMBUS), an den Speicher gesendet.Depending on the connected RAM system (e.g. RAMBUS), the control signals are sent to the memory via bus 0507 .
Fig. 6 zeigt den Ablauf innerhalb der Statemachine 0206. Der Grundzustand ist IDLE. Beim Auftreten eines VALID-Signals (0506) generiert die Statemachine das Signal LOCK. LOCK bleibt während aller Zustände, außer bei IDLE gesetzt! Tritt direkt nach dem Setzen von "LOCK" ein FreeReq-Signal auf, springt die Statemachine in den Zustand WAIT und generiert für einen Taktzyklus das Signal FreeAck um den CEL einen letzten Zugriff auf die CS zu genehmigen; FreeAck besitzt in den CS eine höhere Priorität als LOCK. Fig. 6 shows the sequence within the State Machine 0206th The basic state is IDLE. When a VALID signal ( 0506 ) occurs, the state machine generates the LOCK signal. LOCK remains set during all states, except for IDLE! If a FreeReq signal occurs immediately after "LOCK" has been set, the state machine jumps to the WAIT state and generates the FreeAck signal for one clock cycle in order to allow the CEL one last access to the CS; FreeAck has a higher priority in CS than LOCK.
Unabhängig, ob die Statemachine im Zustand IDLE keinen FreeReq
erhält oder den Zustand WAIT verläßt, geschieht folgendes:
Regardless of whether the state machine receives no FreeReq in the IDLE state or leaves the WAIT state, the following happens:
-
a) ein DIRTY-Signal liegt an. D.h. die Daten in der aktuellen
Cacheline wurden verändert. Die Statemachine schreibt die
Grundadresse des Bursts
auf den Bus (0503, 0507) und schreibt die Daten aus der CL so lange in den Speicher, bis das Ende der Cacheline erreicht wurde:
Danach springt die Statemachine nach Punkt b)a) A DIRTY signal is present. Ie the data in the current cache line has been changed. The state machine writes the basic address of the burst
on the bus ( 0503 , 0507 ) and writes the data from the CL into the memory until the end of the cache line has been reached:
Then the state machine jumps to point b) -
b) kein DIRTY-Signal liegt an; oder 0206 springt von Punkt a).
D.h. die Daten in der aktuellen Cacheline wurden nicht
verändert. Die Statemachine schreibt die Grundadresse des
Bursts
auf den Bus (0503, 0507) und liest die Daten aus der CL so lange aus dem Speicher in den Cache, bis das Ende der Cacheline erreicht wurde:
Danach springt die Statemachine in den Zustand IDLE.b) there is no DIRTY signal; or 0206 jumps from point a). Ie the data in the current cache line have not been changed. The state machine writes the basic address of the burst
on the bus ( 0503 , 0507 ) and reads the data from the CL into the cache until the end of the cache line has been reached:
The state machine then jumps to the IDLE state.
In Fig. 7 ist als Implementationsbeispiel die Verbindung der erfindungsgemäßen Cachestruktur mit dem RAMBUS-System. Dabei werden je zwei 8-bit Register (0701) der RAC (0702) zu einem 16-bit Register zusammengefaßt (vgl. Stand der Technik/RAMBUS). Die 8 8-bit Register der RAC sind somit 4 16-bit CS (0703) zugeordnet. Der Inhalt der 8 Register kann in einem Zyklus in das Cachesystem der 4 CS geschrieben werden, oder in eine Mehrzahl von Zyklen, wobei mindestens 2 0701 in einem Zyklus übertragen werden. Die folgende Berechnung am Beispiel der ConcurrentRDRAM Daten zeigt den technischen Vorteil der vorliegenden Erfindung, i.b. in Hinsicht auf die Reduzierung der Geschwindigkeitsanforderungen an die Cachespeicher: Das ConcurrentRDRAM-RAMBUS-System bietet eine Datentransferrate zum Speicher (0705) von maximal 633MB/s, d. h. jedes der 8 0701 (8-bit) wird mit ca. 80 MHz beschrieben. Für die Übertragung der Daten (16-bit) aus den 0701 in die 0703 genügt eine moderate Frequenz von 40 MHz, wodurch der Einsatz von Standard-Cachespeichern nach dem Stand der Technik ermöglicht wird. Die Statemachine 0704 steuert die 0703 und 0702, wie bereits mehrfach ausgeführt.In Fig. 7 is as an implementation example, the compound of the cache structure of the invention with the RAMBUS system. Two 8-bit registers ( 0701 ) of the RAC ( 0702 ) are combined to form a 16-bit register (see state of the art / RAMBUS). The 8 8-bit registers of the RAC are therefore assigned to 4 16-bit CS ( 0703 ). The contents of the 8 registers can be written into the cache system of the 4 CS in one cycle, or in a plurality of cycles, with at least 2 0701 being transferred in one cycle. The following calculation using the example of the ConcurrentRDRAM data shows the technical advantage of the present invention, in terms of reducing the speed requirements for the cache memory: The ConcurrentRDRAM RAMBUS system offers a data transfer rate to the memory ( 0705 ) of a maximum of 633MB / s, ie each the 8 0701 (8-bit) is written with approx. 80 MHz. A moderate frequency of 40 MHz is sufficient for the transmission of the data (16-bit) from the 0701 to the 0703 , which enables the use of standard cache memories according to the prior art. The state machine 0704 controls the 0703 and 0702 , as already stated several times.
Fig. 8 zeigt die Implementierung einer Multiplexer-/De multiplexer-Struktur wie mehrfach angewendet. Eine erste Gruppe von Bussen (0801) wird über Multiplexer (0802) auf eine zweite Gruppe von Bussen (0803) übertragen. Die zweite Gruppe von Bussen wird wiederum über die Multiplexer 0804 auf die erste Gruppe von Bussen übertragen. Aus der Sicht der Gruppe 0801 stellen 0802 die Multiplexer und 0804 die Demultiplexer dar. Figure 8 shows the implementation of a multiplexer / de multiplexer structure as used multiple times. A first group of buses ( 0801 ) is transmitted to a second group of buses ( 0803 ) via multiplexers ( 0802 ). The second group of buses is in turn transmitted to the first group of buses via the multiplexers 0804 . From the point of view of group 0801 , 0802 are the multiplexers and 0804 are the demultiplexers.
Claims (5)
- a) das Cachesystem aus einer Mehrzahl aus einzelnen Cache-Spei chern besteht,
- b) alle Cache-Speicher zusammen einen linearen unterbrechungsfreien Adressraum über die niederwertigen Adressen ergeben.
- a) the cache system consists of a plurality of individual cache memories,
- b) all caches together result in a linear, uninterrupted address space over the low-order addresses.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19809640A DE19809640A1 (en) | 1998-03-06 | 1998-03-06 | Speed-optimized cache system |
PCT/DE1999/000639 WO1999045474A2 (en) | 1998-03-06 | 1999-03-07 | Speed-optimized cache system |
AU36985/99A AU3698599A (en) | 1998-03-06 | 1999-03-07 | Speed-optimized cache system |
DE19980350T DE19980350D2 (en) | 1998-03-06 | 1999-03-07 | Speed-optimized cache system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19809640A DE19809640A1 (en) | 1998-03-06 | 1998-03-06 | Speed-optimized cache system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE19809640A1 true DE19809640A1 (en) | 1999-09-09 |
Family
ID=7859951
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19809640A Withdrawn DE19809640A1 (en) | 1998-03-06 | 1998-03-06 | Speed-optimized cache system |
DE19980350T Expired - Fee Related DE19980350D2 (en) | 1998-03-06 | 1999-03-07 | Speed-optimized cache system |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19980350T Expired - Fee Related DE19980350D2 (en) | 1998-03-06 | 1999-03-07 | Speed-optimized cache system |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU3698599A (en) |
DE (2) | DE19809640A1 (en) |
WO (1) | WO1999045474A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001075607A2 (en) | 2000-03-31 | 2001-10-11 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2043000B1 (en) | 2002-02-18 | 2011-12-21 | Richter, Thomas | Bus systems and reconfiguration method |
MY139705A (en) * | 2004-07-19 | 2009-10-30 | Basf Ag | Mixtures of hyperbranched polyesters with polycarbonates as additive for polyester molding compositions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07502358A (en) * | 1991-12-23 | 1995-03-09 | インテル・コーポレーション | Interleaved cache for multiple accesses based on microprocessor clock |
US5581734A (en) * | 1993-08-02 | 1996-12-03 | International Business Machines Corporation | Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity |
JP2000501539A (en) * | 1996-09-25 | 2000-02-08 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | Multi-port cache memory with address conflict detection |
-
1998
- 1998-03-06 DE DE19809640A patent/DE19809640A1/en not_active Withdrawn
-
1999
- 1999-03-07 WO PCT/DE1999/000639 patent/WO1999045474A2/en active Application Filing
- 1999-03-07 DE DE19980350T patent/DE19980350D2/en not_active Expired - Fee Related
- 1999-03-07 AU AU36985/99A patent/AU3698599A/en not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001075607A2 (en) | 2000-03-31 | 2001-10-11 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
WO2001075607A3 (en) * | 2000-03-31 | 2002-05-23 | Intel Corp | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
US6606684B1 (en) * | 2000-03-31 | 2003-08-12 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
US6898690B2 (en) | 2000-03-31 | 2005-05-24 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
Also Published As
Publication number | Publication date |
---|---|
WO1999045474A2 (en) | 1999-09-10 |
WO1999045474A3 (en) | 1999-11-11 |
AU3698599A (en) | 1999-09-20 |
DE19980350D2 (en) | 2001-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69128107T2 (en) | Bus arrangement for memory access | |
DE69323790T2 (en) | Method and apparatus for multiple pending operations in a cache coherent multiprocessor system | |
DE69132195T2 (en) | System for distributed multiple computer communication | |
DE69312192T2 (en) | DISTRIBUTION OF BUS ACCESS BETWEEN SEVERAL FINAL MACHINES WITH MINIMUM WAITING PERIOD AND PRIORIZATION OF SIMILAR CYCLE TYPES | |
DE69025232T2 (en) | Method for maintaining cache coherence in a multi-computer system | |
DE3586389T2 (en) | DYNAMICALLY ASSIGNED LOCAL / GLOBAL STORAGE ARRANGEMENT. | |
DE68902193T2 (en) | DATA STORAGE ARRANGEMENT. | |
DE2350215A1 (en) | COMPUTER SYSTEM AS WELL AS THIS USABLE MULTI-LEVEL STORAGE SYSTEM | |
DE60034998T2 (en) | Improvements in or regarding microprocessors | |
DE2547488A1 (en) | MICROPROGRAMMED DATA PROCESSING SYSTEM | |
DE3650249T2 (en) | High capacity memory for multiprocessor system. | |
DE69031696T2 (en) | Cache memory with the possibility in the event of a mistake to update at the same time and to make a decision about the next address | |
EP0882267B1 (en) | Multi-processor central processing unit | |
DE3046912C2 (en) | Circuit arrangement for the selective deletion of cache memories in a multiprocessor data processing system | |
EP1915694A1 (en) | Apparatus and method for storing data and/or instructions in a computer system having at least two processing units and at least one first memory or memory area for data and/or instructions | |
DE69027919T2 (en) | Arrangement and method for supporting access to I / O devices through large, directly mapped data cache memories | |
DE60009817T2 (en) | Shared memory distributing multiprocessor device | |
DE602004008712T2 (en) | A memory bandwidth control device | |
EP0739509B1 (en) | Arrangement with master and slave units | |
DE69727172T2 (en) | Use of a processor bus for I / O traffic transmission | |
DE4114053A1 (en) | COMPUTER SYSTEM WITH CACHE MEMORY | |
DE60009618T2 (en) | Multiprocessor device having a shared memory interface | |
DE102007055138B4 (en) | System for accessing a single port multi-way cache | |
DE19809640A1 (en) | Speed-optimized cache system | |
DE69030368T2 (en) | Tandem cache memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8143 | Withdrawn due to claiming internal priority |