WO1995031783A1 - Speichervorrichtung zum speichern von daten - Google Patents

Speichervorrichtung zum speichern von daten Download PDF

Info

Publication number
WO1995031783A1
WO1995031783A1 PCT/EP1995/001780 EP9501780W WO9531783A1 WO 1995031783 A1 WO1995031783 A1 WO 1995031783A1 EP 9501780 W EP9501780 W EP 9501780W WO 9531783 A1 WO9531783 A1 WO 9531783A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
entry
auxiliary memory
useful
address space
Prior art date
Application number
PCT/EP1995/001780
Other languages
English (en)
French (fr)
Inventor
Jochen Liedtke
Original Assignee
Gmd - Forschungszentrum Informationstechnik Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Gmd - Forschungszentrum Informationstechnik Gmbh filed Critical Gmd - Forschungszentrum Informationstechnik Gmbh
Priority to EP95919439A priority Critical patent/EP0760134A1/de
Priority to JP7529345A priority patent/JPH10500235A/ja
Priority to US08/737,140 priority patent/US6260130B1/en
Publication of WO1995031783A1 publication Critical patent/WO1995031783A1/de

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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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]

Definitions

  • Storage device for storing data
  • the invention relates to a storage device for storing data.
  • the invention relates to a cache or a translation lookaside buffer (TLB), the innovation being a flush buffer, in particular working in parallel, which allows larger and smaller areas to be flushed without the entire cache or TLB being flushed immediately must become.
  • TLB translation lookaside buffer
  • TLBs Modern processors use TLBs for the fast conversion of virtual to real addresses.
  • the TLB and cache are typically located on the processor chip.
  • real indexed caches they are arranged in serial
  • the TLB is a special cache for address translation. Fully associative TLBs are also used, but TLBs are generally not associative. 6 shows a direct-mapped TLB, that is to say a single-associative TLB. The higher part v 'of the virtual len address v is used to select a line (memory entry) of the TLB. There you will find the virtual page address v ' i; the real page address r'i and status bits not shown in FIG. 6, which among other things indicate whether the entry is valid at all. If it is valid and v'i matches the current page address v ', there is a TLB hit and the real address is composed of the low-order part v "of the virtual address and the real page address r'i supplied by the TLB.
  • An n-way associative TLB differs from the direct-mapped TLB in that there are several entries in one line, which are selected at the same time and checked in parallel against v '. A hit occurs if one of these entries applies; Its r'i and status bits are then used to form the real address r and validate the access.
  • TLBs shorten the address translation process. If the defining address mapping, i.e. one or more page table entries, changed, for consistency reasons those TLB entries which are affected by the change must be invalidated (“flushed”) or changed accordingly.
  • the change in the address mapping only refers to one page, it is sufficient to flush or change the corresponding entry, provided it is in the TLB. Since this is at most one TLB entry, the effort is comparable to a normal TLB conversion step: the TLB is addressed with the virtual page address, and the entry is invalidated or changed in the event of a hit. With changes that cover larger areas, this process quickly becomes too complex. For a virtual area with m sides one would need m steps. With fully associative TLBs, the problem can be solved efficiently by performing conditional flushing in parallel on all TLB entries. Unfortunately, the hardware effort is usually too great.
  • the screening of the entire TLB is expensive and not scalable, k / n steps for a TLB with k entries. For this reason, the entire TLB is usually flushed in such cases, which can be achieved in one step. As the TLB size increases, this becomes less and less interesting because of the TLB misses induced thereby.
  • the invention is based on the object of specifying a storage device, in particular an n-way associative cache or TLB, which efficiently enables larger address space areas (virtual regions) to be flushed.
  • the invention proposes a storage device with the features of claim 1.
  • the features of advantageous further developments of the invention are specified in the subclaims.
  • the memory device is provided with a useful memory which has a plurality of memory entries which can be addressed by means of addresses.
  • This useful memory can be, for example, a cache memory or a translation look-aside buffer, which acts as a special cache memory for the address implementation can be understood.
  • the useful memory of the device according to the invention has, in particular, considerably fewer memory entries than the address space contains addresses for addressing the useful memory.
  • Each memory entry is provided with a data field in which one or more data words can be stored. In addition to the data field, each memory entry has a status field which in at least one restricted state for restricting write / read access to the data field and in at least one non-restricted state for non-restricting write / read Access to the data field is transferable.
  • Each memory entry also has additional fields, in particular a marking field and a validity / invalidation field.
  • a marking field When the useful memory is addressed, the address or parts thereof are compared with the content of the marking fields of all addressed useful memory entries. If there is a match with a marking field, read / write access to the data field can take place if this is marked as valid on the one hand by the validity / invalidation field and the status field is either non-restricted. State or the status field is in a restricted state and the address used when addressing the useful memory is not part of at least one address space area stored in the auxiliary memory.
  • the memory device is provided with an auxiliary memory which has one or more memory entries in which data can be stored which specify an area of the address space.
  • auxiliary memory hereinafter also referred to as flush look-aside buffer, abbreviated FLB) , designated
  • SPARE BL ⁇ JT RULE 26 the useful memory can be efficiently flushed area-specifically, namely by a single operation step.
  • the procedure for area-selective flushing of the useful memory is as follows: As soon as an address space area is stored in the auxiliary memory, the status fields of all useful memory entries are converted into a restricted state. When a user memory entry is subsequently addressed, write / read access to the data field of this user memory entry cannot take place if the address is within at least one address space area stored in the auxiliary memory and the status field is in a restricted state . To determine this, the address used to address the useful memory entry is checked to determine whether it is included in at least one address space area stored in the auxiliary memory. If this is the case, the auxiliary memory outputs a signal indicating this state (hereinafter also called Fhit).
  • Fhit a signal indicating this state
  • the data fields of all those useful memory entries which can be addressed by means of an address which is not covered by at least one address space area stored in the auxiliary memory can still be accessed.
  • the usable memory is implemented as a TLB or cache
  • time-consuming table walks or main memory accesses for the usable memory entries not affected by the selective flushing can be avoided, with relatively little hardware and software expenditure, since only an auxiliary memory must be provided next to the useful memory and the memory entries of the useful memory must be supplemented by the status field, If necessary, these status fields can be converted simultaneously into a restricted state and selectively into a non-restricted state upon a central command.
  • the status field of the user memory entry concerned is then then restricted to a restriction State transferred when the address with which the useful memory entry has been addressed is not part of at least one address space area stored in the auxiliary memory. If, on the other hand, the address is part of at least one address space area stored in the auxiliary memory, the status field of the addressed useful memory entry is transferred to a non-restricted state.
  • the status field of an addressed useful memory entry is always transferred to a non-restricted state during a load access, regardless of whether the address used for addressing is part of at least one address space area stored in the auxiliary memory or Not. If the status field of an addressed useful memory entry is in a restricted state before addressing (which is particularly the case when the useful memory is initialized or after each flushing) and the address used for addressing is not part of at least one address space stored in the auxiliary memory Area, the status field is converted into a non-restricted state during addressing, so that from then until the status field is transferred into the restricted state
  • each auxiliary memory entry has a valid bit which indicates whether the data stored in the auxiliary memory entry is valid or not. Such a valid bit is also provided for each useful memory entry (referred to above as the validity / invalidation field).
  • the address space area to be newly stored is advantageously examined for overlaps with address space areas already stored in the auxiliary memory. If the intersection of the union of all address space areas stored in the auxiliary memory with the address space area to be newly stored is the same, the new address space area need not be stored again in the auxiliary memory; it is rather sufficient to convert the status fields of all useful memory entries into a restricted state. The auxiliary memory can then continue to be used unchanged.
  • an address space area is stored in the auxiliary memory which is completely within the additional address space to be stored, which is larger than the address space area already stored, or which overlaps or adjoins the address space area to be newly stored (with or without spacing), so that auxiliary memory can Entry in which the address space area which has already been stored is stored is overwritten with the data specifying the new address space area to be stored.
  • the useful memory is in turn selectively flushed by converting the status fields of all useful memory entries into a restricted state.
  • auxiliary memory entry (s) and / or the new auxiliary memory entry are always updated or selected such that at least all of the previous and new data are always specified in the auxiliary memory Fected address space areas are stored.
  • the status fields of all useful memory entries can preferably be converted into a restricted state at the same time, independently of an operation on the auxiliary memory and independently of its state.
  • SPARE BLADE RULE 2 In the simplest form of realizing the status field, it is designed as a 1-bit field which can be set or reset to specify the restricted or non-restricted state.
  • the memory device has a generation number counter which is incremented into an auxiliary memory entry each time an address space area is stored. Each auxiliary memory entry is supplemented by a generation number field.
  • the generation number field of an auxiliary memory entry is set to the value of the generation number counter prior to the incrementation at the moment when an address space area is stored in this auxiliary memory entry.
  • the status field of a user memory entry to which a load access is made is set to the current value of the generation number counter.
  • Whether the status field of an addressed useful memory entry is in the restricted or non-restricted state is then decided by comparing the value of the status field with the value of the generation number field of the auxiliary memory entry in which the address for the Usable memory entry address used comprehensive address space area is stored.
  • the non-restricted state is present precisely when the value of the status field is greater than the value of the generation number field of the relevant auxiliary memory entry.
  • the status field values of the useful memory entries and the generation number field values of the auxiliary memory entries therefore always indicate which of the two entries is more current (auxiliary memory entry or the useful memory entry with the address which lies within the address space range specified by the auxiliary memory entry).
  • the status field is in a non-restricted or in a restricted state.
  • the address with which a slot memory entry is addressed is within a plurality of dining area areas stored in the auxiliary memory.
  • the non-restricting or restricting states of the status fields are realized by comparing the generation numbers of the useful memory and the auxiliary memory, there is the case in which the address of an addressed useful memory entry is within the number given by the data rer auxiliary memory entries specified address space areas, the status field of the addressed Nutz ⁇ memory entry is in a non-restricted state if the value of the status field is greater than the largest generation numbers stored in the generation number fields of those auxiliary memory entries, in to which the address area areas used for addressing the useful memory entry are stored. Otherwise the status field of the addressed useful memory entry is in a restricted state.
  • the generation number counter is preferably incremented only if the address space area overlaps with one or more address space areas already stored in the auxiliary memory. This can reduce the number of generation numbers to be assigned in total
  • REPLACEMENTB which in turn has the advantage that the corresponding generation number fields of the auxiliary memory and status fields of the useful memory can be reduced.
  • All useful and auxiliary memory entries are marked as not valid and the generation number counter is also reset when the auxiliary memory overflows, i.e. further address space areas can no longer be stored in the auxiliary memory.
  • the generation number counter is reset and all useful and auxiliary memory entries are marked as not valid even if the generation number counter exceeds a predeterminable maximum value.
  • Fig. 1 shows schematically the structure of a "flush look aside
  • Buffer as a supplement to an existing TLB /
  • 3 is a block diagram of FLB and TLB with logic circuitry.
  • 4 schematically shows the structure of an FLB with generation numbers for identifying a restricted and non-restricted state
  • 5 shows the structure of an FLB with generation numbers and without a valid bit and Fhit signal
  • Fig. 7 is a block diagram of FLB and TLB with each
  • FIG. 13 is a block diagram of a system consisting of TLB and FLB with "write protect",
  • FIG. 15 shows the structure of a cache memory system consisting of TLB and cache and working in parallel
  • FIGS. 1 to 3 a first exemplary embodiment of a storage device according to the invention is explained in more detail, specifically using a TLB storage system. All of the considerations listed below (this applies to all exemplary embodiments) can also be transferred in an analogous manner to a cache memory system. It should be noted that a TLB is physically a cache memory.
  • this TLB system is expanded by a small, fully associative flush lookaside buffer (hereinafter referred to as FLB).
  • FLB a small, fully associative flush lookaside buffer
  • Each entry of the FLB comprises a valid bit and can take up the specification of a region j (FIG. 1).
  • a region can be specified, for example, by start and end address or length, but also by address and a mask, which specifies which address bits are used for hit checking and which are to be ignored.
  • the FLB signals a hit Fhit if there is at least one entry j which is valid (valid j ) and whose area p. contains the virtual address v.
  • the TLB is expanded by a collision-sensitive bit cs 1 , which indicates for each entry whether a collision with an FLB hit should be considered (it), ie a restricted state, or ignored (it) should, ie there is a non-restricted state.
  • the TLB signals thit and delivers the real address r 'and the collision-sensitive bit from the hit entry.
  • TLB and FLB hits If there are TLB and FLB hits during an implementation (Thit ⁇ Fhit), this is called a collision.
  • the collision is real if it is also set; otherwise it is fake.
  • the overall system ignores TLB hits in real collisions, i.e. if and only if an FLB hit is reported and the collision sensitive bit is set, i.e.
  • the region can be flushed by loading p into a free entry and setting it valid.
  • FIGS. 1 to 6 describe a second exemplary embodiment of the invention, in which the status information or the content of the status field, which indicates whether to the data field of an addressed TLB memory entry, which by means of an address which is part of an FLB stored address space is, is addressed, may or may not be accessed.
  • the simple FLB is expanded by one generation number field G j per entry. If there is no overlap between regions in the FLB, the generation number G j of the relevant entry in G is returned in the case of an FLB hit. In the case of overlapping regions, the largest generation number G j of all applicable (v 'e P j ) valid entries in G are delivered with the FLB hit.
  • REPLACEMENTB indicated by a reserved minimum generation number - ⁇ .
  • vahd,: false If 0 is used as a representation of - ⁇ and k bits are available for each generation number field g t in the TLB, 1 to 2 k "1 can be used as valid generation values.
  • the concrete flush semantics is essentially defined by the administration of the FLB. Two methods are outlined here as an example.
  • the TLB can also only be collision-sensitive again by all generation numbers gi being reset at the same time.
  • the FLB can then remain unchanged or be changed so that the entirety of all valid FLB entries after the change at least covers the corresponding regions valid before the change.
  • This model is shown in Figs. 8 and 9.
  • Bit masks can also be used instead of the generation numbers; instead of the arithmetic comparison ⁇ "bitwise ANDing" is necessary.
  • the generation number or mask is sufficiently wide, one can do without the generation information G. for the FLB and g 1 as addresses of FLB entries. As shown in FIG. 10, the FLB then supplies a signal Fhit for each entry j. All these signals are masked or ORed for k FLB entries:
  • the mask (m -,! ⁇ , ... m ,, .. ! ) Is either saved directly in the TLB entry and delivered as g, or generated from the supplied g, for example as -2 g .
  • -.Xhit ⁇ Thit there is a hit
  • Xhit ⁇ Thit there is a real collision.
  • ERSATZBL ⁇ TT REG new region to be entered in the FLB overlaps with those already in it.
  • each entry only becomes active when it causes a real collision for the first time.
  • Inactive entries can then be expanded or used for a new flushing without a real FLB and TLB flush being required.
  • Each FLB entry is expanded by an activity bit actV j . 11 shows this for the simple FLB, with valid bits and without generation numbers.
  • the other FLB types are expanded in the same way by adding the activity bits.
  • the activity note is always reset.
  • the activity bits of all matching (Vv'ep j : actV j !) FLB entries are only set in the event of a real collision, although invalid entries can be ignored. Note that several activity bits only need to be set if regions of the FLB can overlap. Otherwise there is only one applicable FLB entry in a real collision.
  • a region p does not coincide with any region p already noted in the FLB. overlaps that is also active (actV j ) and at least one FLB entry is free, the region can be flushed by loading p into a free entry and setting it valid.
  • non-active FLB entries can be modified or released.
  • the only requirement for compliance with the flush semantics is that the entirety of all valid FLB entries after the change at least covers the corresponding regions that were valid before the change.
  • the TLB can be flushed selectively by sequentially testing the fields v ' ⁇ of all valid TLB entries against the FLB. If the FLB reports a hit at v ⁇ , this TLB entry is invalidated. If the entire TLB is screened in this way, all FLB entries that have not been changed since the beginning of this screening can be released. In particular, the entire FLB can be flushed if no FLB changes are applied during the screening.
  • the TLB screening can be accelerated by the factor n for n-way TLBs by testing the n related TLB entries in parallel. Depending on the speed of the FLB, this must be multiplied.
  • the system can be supplemented by a "shadow" TLB, see FIG.
  • the shadow TLB is not an associative but a directly addressed memory.
  • the TLB addresses can be adopted.
  • the shadow TLB duplicates the virtual address, validity and collision information of each TLB entry. For TLBs with a collision sensitive bit, the following applies to the entries of the shadow TLB (see FIG. 12):
  • FIG. 13 shows an FLB which also carries a write protect signal per region, which is delivered in the case of an FLB hit in Fwp.
  • the final write-protect signal wp is formed as Twp v (Fhit ⁇ Fwp), where Twp is the write-protect signal supplied by the TLB.
  • Twp is the write-protect signal supplied by the TLB.
  • This method can also be used for virtual aliasing and call-on-reference.
  • the method described in 2.1 can be expanded so that TLB entries are not flushed if possible, but are changed on the basis of the information provided by the FLB.
  • Each FLB entry is expanded by the bit IoW j .
  • all IoW j bits and the Fhit signal are reset.
  • the lower limit p of the new area is offered to the FLB and each element carries out step 1 in accordance with the following rule:

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

Die Speichervorrichtung weist neben einem Nutzspeicher auch einen Hilfsspeicher auf. Beide Speicher sind mit mehreren Speichereinträgen versehen. Der Hilfsspeicher ist zur Speicherung von Bereichen eines Adreßraums vorgesehen, der eine Vielzahl von Adressen umfaßt, mit denen der Nutzspeicher ansprechbar ist. Ein Schreib-Lese-Zugriff auf einen Nutzspeicher-Eintrag ist genau dann nicht möglich, wenn ein dem Nutzspeicher-Eintrag zugeordnetes Statusfeld einen Einschränk-Zustand signalisiert und die Adresse, mittels derer der Nutzspeicher-Eintrag angesprochen ist, innerhalb mindestens eines im Hilfsspeicher gespeicherten Adreßraum-Bereichs liegt. Mit dieser Vorgehensweise kann bereichsselektives Flushen des Nutzspeichers effizient durchgeführt werden.

Description

Speichervorrichtung zum Speichern von Daten
Die Erfindung betrifft eine Speichervorrichtung zum Speichern von Daten. Insbesondere betrifft die Erfin¬ dung einen Cache oder einen Translation Lookaside Buffer (TLB) , wobei die Neuerung in einem insbesondere parallel arbeitenden Flush-Buffer besteht, der Flushing größerer und kleinerer Bereiche erlaubt, ohne daß so¬ fort der ganze Cache bzw. TLB geflusht werden muß.
Moderne Prozessoren benutzen TLBs für die schnelle Um- setzung virtueller in reale Adressen. Typischerweise befinden sich TLB und Cache auf dem Prozessorchip. Bei real indizierten Caches sind sie serial angeordnet
(Fig. 4) , bei virtuell indizierten, real markierten
Caches parallel (Fig. 5) .
Der TLB ist dabei ein spezieller Cache für die Adreßum- setzung. Zwar werden auch voll-assoziative TLBs einge¬ setzt, in der Regel sind TLBs jedoch n- ege assoziativ. Fig. 6 zeigt einen direct-mapped TLB, also einen 1- ege assoziativen TLB. Der höherwertige Teil v' der virtuel- len Adresse v wird benutzt, um eine Zeile (Speicher- Eintrag) des TLBs anzuwählen. Dort finden sich die zu diesem Eintrag gehörige virtuelle Seitenadresse v'i; die reale Seitenadresse r'i sowie in Fig. 6 nicht auf- geführte Statusbits, die unter anderem angeben, ob der Eintrag überhaupt gültig ist. Wenn er gültig ist und v'i mit der aktuellen Seitenadresse v' übereinstimmt, liegt ein TLB-Treffer vor und die Realadresse wird aus dem niederwertigen Teil v" der virtuellen Adresse und der vom TLB gelieferten realen Seitenadresse r'i zusam¬ mengesetzt.
Ein n-Wege assoziativer TLB unterscheidet sich vom direct-mapped TLB dadurch, daß sich in einer Zeile meh- rere Einträge befinden, die gleichzeitig angewählt und parallel gegen v' geprüft werden. Ein Treffer liegt dann vor, wenn einer dieser Einträge zutrifft; dessen r'i und Statusbits werden dann zur Bildung der Real- adresse r und Validierung des Zugriffs benutzt.
TLBs kürzen den Vorgang der Adreßumsetzung ab. Wird die definierende Adreßabbildung, d.h. eine oder mehrere Page Table Einträge, verändert, müssen aus Konsistenz- gründen diejenigen TLB-Einträge ungültig gemacht " (ge- flusht") oder entsprechend verändert werden, die von der Änderung tangiert sind.
Bezieht sich die Änderung in der Adreßabbildung nur auf eine Seite, reicht es aus, den entsprechenden Eintrag zu flushen oder abzuändern, sofern er im TLB ist. Da es sich dabei um höchstens einen TLB-Eintrag handelt, ist der Aufwand mit einem normalen Umsetzschritt des TLBs vergleichbar: der TLB wird mit der virtuellen Seiten¬ adresse angesprochen, und bei einem Treffer wird der Eintrag ungültig gemacht oder verändert. Bei Änderungen, die größere Bereiche umfassen, wird dieses Verfahren schnell zu aufwendig. Für einen vir¬ tuellen Bereich mit m Seiten würde man nämlich m Schritte benötigen. Bei voll-assoziativen TLBs läßt sich das Problem effizient lösen, indem man bedingtes Flushing parallel auf allen TLB-Einträgen ausführt. Leider ist der Hardware-Aufwand dafür in der Regel zu groß.
Bei n-Wege assoziativen TLBs ist die Durchmusterung des gesamten TLBs teuer und nicht skalierbar, k/n Schritte bei einem TLB mit k Einträgen. Deshalb wird in solchen Fällen üblicherweise der gesamte TLB geflusht, was sich in einem Schritt realisieren läßt. Mit zunehmender TLB- Größe wird das wegen der dadurch induzierten TLB-Misses immer uninteressanter.
Der Erfindung liegt die Aufgage zugrunde, eine Speichervorrichtung, insbesondere n-Wege assoziativer Cache bzw. TLB anzugeben, die Flushing größerer Adreß- raum-Bereiche (virtueller Regionen) effizient ermög¬ licht.
Zur Lösung dieser Aufgabe wird mit der Erfindung eine Speichervorrichtung mit den Merkmalen des Anspruchs 1 vorgeschlagen. Die Merkmale vorteilhafter Weiterbildun¬ gen der Erfindung sind jeweils in den Unteransprüchen angegeben.
Die erfindungsgemäße Speichervorrichtung ist mit einem Nutzspeicher versehen, der mehrere mittels Adressen adressierbare Speicher-Einträge aufweist . Bei diesem Nutzspeicher kann es sich beispielsweise um einen Cache-Speicher oder um einen Translation-Lookaside- Buffer handeln, der als spezieller Cache-Speicher für die Adreßumsetzung aufgefaßt werden kann. Der Nutz¬ speicher der erfindungsgemäßen Vorrichtung weist insbe¬ sondere wesentlich weniger Speicher-Einträge auf als der Adreßraum Adressen zur Adressierung des Nutz- Speichers umfaßt. Jeder Speicher-Eintrag ist mit einem Datenfeld versehen, in dem ein oder mehrere Datenwörter abspeicherbar sind. Zusätzlich zu dem Datenfeld weist jeder Speicher-Eintrag ein Statusfeld auf, das in min¬ destens einen Einschränk-Zustand zum Einschränken eines Schreib/Lese-Zugriffs auf das Datenfeld und in min¬ destens einen Nichteinschränk-Zustand zum Nichtein- schränken eines Schreib/Lese-Zugriffs auf das Datenfeld überführbar ist. Jeder Speicher-Eintrag weist darüber hinaus weitere Felder auf, insbesondere ein Markie- rungsfeld und ein Gültigkeits-/Ungültigkeits-Feld. Beim Ansprechen des Nutzspeichers wird die Adresse oder Teile davon mit dem Inhalt der Markierungsfelder sämt¬ licher adressierter Nutzspeicher-Einträge verglichen. Im Falle einer Übereinstimmung mit einem Markierungs- feld kann dann ein Schreib/Lese-Zugriff auf das Daten¬ feld erfolgen, wenn dieses einerseits durch das Gültig- keits-/Ungültigkeits-Feld als gültig markiert ist und entweder sich das Statusfeld in einem Nichteinschränk- Zustand befindet oder sich das Statusfeld in einem Ein- schränk-Zustand befindet sowie die beim Ansprechen des Nutzspeichers verwendete Adresse nicht Teil mindestens eines im Hilfsspeicher abgespeicherten Adreßraum-Be¬ reichs ist.
Ferner ist die erfindungsgemäße Speichervorrichtung mit einem Hilfsspeicher versehen, der ein oder mehrere Speicher-Einträge aufweist, in die Daten abspeicherbar sind, welche einen Bereich des Adreßraums • spezifizie¬ ren. Mittels dieses Hilfsspeicherε (nachfolgend auch als Flush-Lookaside-Buffer, abgekürzt FLB, bezeichnet)
ERSATZBLÄJT REGEL 26 läßt sich der Nutzspeicher effizient bereichsselektiv flushen, nämlich durch einen einzigen Operations- schritt.
Die Verfahrensweise zum bereichsselektiven Flushen des Nutzspeichers ist wie folgt: Sobald in den Hilfs¬ speicher ein Adreßraum-Bereich abgespeichert wird, wer¬ den die Statusfelder sämtlicher Nutzspeicher-Einträge in einen Einschränk-Zustand überführt. Bei einer danach erfolgenden Adressierung eines Nutzspeicher-Eintrages kann dann nicht auf das Datenfeld dieses Nutzspeicher- Eintrages ein Schreib/Lese-Zugriff erfolgen, wenn die Adresse innerhalb mindestens eines im Hilfsspeicher gespeicherten Adreßraum-Bereichs liegt und sich das Statusfeld in einem Einschränk-Zustand befindet. Um dies zu Ermitteln, wird die zur Adressierung des Nutz¬ speicher-Eintrages verwendete Adresse daraufhin über¬ prüft, ob sie von mindestens einem im Hilfsspeicher gespeicherten Adreßraum-Bereich umfaßt ist. Ist dies der Fall, so gibt der Hilfsspeicher ein diesen Zustand anzeigendes Signal (nachfolgend auch Fhit genannt) aus. Anders herum ausgedrückt kann nach einem Flushing des Nutzspeichers weiterhin auf die Datenfelder sämtlicher derjenigen Nutzspeicher-Einträge zugegriffen werden, die mittels einer Adresse adressierbar sind, welche nicht von mindestens einem im Hilfsspeicher gespeicher¬ ten Adreßraum-Bereich umfaßt ist. Bei der Realisierung des Nutzspeichers als TLB oder Cache können also zeit¬ aufwendige Table Walk bzw. Hauptspeicherzugriffe für die nicht von dem selektiven Flushing betroffenen Nutz- speicher-Einträge vermieden werden, und zwar bei ver¬ hältnismäßig geringem Hard- und Software-Aufwand, da lediglich ein Hilfsspeicher neben dem Nutzspeicher vor¬ gesehen werden muß und die Speicher-Einträge des Nutz- Speichers um das Statusfeld ergänzt werden müssen, wobei diese Statusfelder im Bedarfsfall auf einen zen¬ tralen Befehl hin simultan in einen Einschränk-Zustand und selektiv in einen Nichteinschränk-Zustand überführ¬ bar sind.
Vorteilhafterweise wird beim Laden eines Nutzspeicher- Eintrages, bei dem dieser initialisiert wird (im Regel¬ fall werden dabei Daten in den Nutzspeicher-Eintrag ge¬ schrieben und dieser dann als gültig markiert) , das Statusfeld des betreffenden Nutzspeicher-Eintrages genau dann in einen Einschränk-Zustand überführt, wenn die Adresse, mit der der Nutzspeicher-Eintrag adres¬ siert worden ist, nicht Teil mindestens eines im Hilfs¬ speicher gespeicherten Adreßraum-Bereichs ist. Ist hin- gegen die Adresse Teil mindestens eines in dem Hilfs¬ speicher gespeicherten Adreßraum-Bereichs, so wird das Statusfeld des adressierten Nutzspeicher-Eintrages in einen Nichteinschränk-Zustand überführt.
Alternativ dazu kann vorgesehen sein, das Statusfeld eines adressierten Nutzspeicher-Eintrags bei einem Lade-Zugriff stets in einen Nichteinschränk-Zustand zu überführen, und zwar unabhängig davon, ob die zur Adressierung verwendete Adresse Teil mindestens eines in dem Hilfsspeicher gespeicherten Adreßraum-Bereichs ist oder nicht. Befindet sich das Statusfeld eines adressierten Nutzspeicher-Eintrages vor einer Adressie¬ rung in einem Einschränk-Zustand (was insbesondere bei der Initialisierung des Nutzspeichers oder nach jedem Flushing der Fall ist) und ist die zur Adressierung verwendete Adresse nicht Teil mindestens eines im Hilfsspeicher gespeicherten Adreßraum-Bereichs, so wird das Statusfeld bei der Adressierung in einen Nichtein¬ schränk-Zustand überführt, so daß von da ab bis zum Überführen des Statusfeldes in den Einschränk-Zustand
ERSATZB eine Abfrage des Hilfsspeichers bei Ansprache des Nutz- speicher-Eintrages nicht mehr notwendig ist.
Zweckmäßigerweise werden beim Einschreiben von einen Bereich des Adreßraums spezifizierenden Daten in einen Hilfsspeicher-Eintrag die Statusfelder sämtlicher Nutz¬ speicher-Einträge in einen Einschränk-Zustand über¬ führt. Vorzugsweise ist der Hilfsspeicher mit mehreren Speicher-Einträgen versehen. Beim Überlaufen des Hilfs- Speichers wird vorteilhafterweise derart verfahren, daß sämtliche Nutzspeicher-Einträge und sämtliche Hilfs- speicher-Einträge als nicht gültig markiert werden. An dieser Stelle sei angemerkt, daß in der schaltungstech¬ nischen Realisierung jeder Hilfsspeicher-Eintrag ein Valid-Bit aufweist, das anzeigt, ob die im Hilfs¬ speicher-Eintrag gespeicherten Daten gültig sind oder nicht. Ein derartiges Valid-Bit ist auch bei jedem Nutzspeicher-Eintrag vorgesehen (oben als Gültig- keits-/Ungültigkeits-Feld bezeichnet) .
Vorteilhafterweise wird vor jedem Abspeichern eines Adreßraum-Bereichs in einen Hilfsspeicher-Eintrag der neu abzuspeichernde Adreßraum-Bereich auf Überschnei¬ dungen mit bereits im Hilfsspeicher abgespeicherten Adreßraum-Bereichen untersucht. Ist die Schnittmenge der Vereinigung aller im Hilfsspeicher gespeicherter Adreßraum-Bereiche mit dem neu abzuspeichernden Adre߬ raum-Bereich gleich diesem, so braucht der neue Adre߬ raum-Bereich nicht erneut im Hilfsspeicher abge- speichert zu werden; es reicht vielmehr aus, die Statusfelder sämtlicher Nutzspeicher-Einträge in einen Einschränk-Zustand zu überführen. Der Hilfsspeicher kann dann unverändert weiterbenutzt werden. Ist hin¬ gegen beispielsweise im Hilfsspeicher ein Adreßraum- Bereich abgespeichert, der vollständig innerhalb des zusätzlich abzuspeichernden Adreßraum-Bereichs liegt, wobei dieser größer ist als der bereits abgespeicherte Adreßraum-Bereich, oder der sich mit dem neu abzu¬ speichernden Adreßraum-Bereich überlappt oder sich an diesen (mit oder ohne Abstand) anschließt, so kann der¬ jenige Hilfsspeicher-Eintrag, in dem der bereits abge¬ speicherte Adreßraum-Bereich abgelegt ist, mit den den neu abzuspeichernden Adreßraum-Bereich spezifizierenden Daten überschrieben werden. In gewohnter Weise wird der Nutzspeicher wiederum selektiv geflusht, indem die Statusfelder sämtlicher Nutzspeicher-Einträge in einen Einschränk-Zustand überführt werden. Die obigen Über¬ legungen gelten entsprechend in Bezug auf einen Ver¬ gleich des neu abzuspeichernden Adreßraum-Bereichs mit der Vereinigungsmenge sämtlicher bereits im Hilfs¬ speicher gespeicherter Adreßraum-Bereiche.
Die vorstehend beschriebenen Operationen auf dem Hilfs- speicher verfolgen den Zweck, den Hilfsspeicher optimal auszunutzen, um ein zu schnelles Überlaufen des Hilfs¬ speichers zu verhindern. Mit anderen Worten werden bei dieser Weiterbildung der Erfindung der oder die be¬ stehenden Hilfsspeicher-Einträge und/oder der neue Hilfsspeicher-Eintrag stets derart aktualisiert bzw. gewählt, daß im Hilfsspeicher stets mindestens sämt¬ liche durch die bisherigen und die neuen Daten spezi¬ fizierte Adreßraum-Bereiche abgespeichert sind.
Vorzugsweise lassen sich die Statusfelder sämtlicher Nutzspeicher-Einträge gleichzeitig in einen Einschränk- Zustand überführen, und zwar unabhängig von einer Ope¬ ration auf dem Hilfsspeicher und unabhängig von dessen Zustand.
ERSATZBLÄTT REGEL 2 Bei der einfachsten Form der Realisierung des Status- feldes ist dieses als ein 1-Bit-Feld ausgeführt, welches zur Spezifizierung des Einschränk- bzw. Nicht- einschränk-Zustandes setzbar bzw. rücksetzbar ist.
Eine zur zuvor genannten Weiterbildung alternative Realisierung des Statusfeldes besteht darin, daß das Statusfeld mehrere Bits umfaßt und daß sich in das Statusfeld "Generationsnummern" abspeichern lassen. Hierbei weist die erfindungsgemäße Speichervorrichtung einen Generationsnummern-Zähler auf, der bei jeder Ab¬ speicherung eines Adreßraum-Bereichs in einen Hilfs¬ speicher-Eintrag inkrementiert wird. Jeder Hilfs- speicher-Eintrag ist um ein Generationsnummernfeld er- gänzt. Das Generationsnummernfeld eines Hilfsspeicher- Eintrages wird in dem Augenblick, in dem in diesen Hilfsspeicher-Eintrag ein Adreßraum-Bereich abge¬ speichert wird, auf den vor der Inkrementierung vorlie¬ genden Wert des Generationsnummern-Zählers gesetzt. Das Statusfeld eines Nutzspeicher-Eintrages, auf den ein Lade-Zugriff erfolgt, wird auf den aktuellen Wert des Generationsnummern-Zählers gesetzt. Ob sich das Status¬ feld eines adressierten Nutzspeicher-Eintrages im Ein¬ schränk- oder Nichteinschränk-Zustand befindet, wird dann durch Vergleich des Wertes des Statusfeldes mit dem Wert des Generationsnummernfeldes desjenigen Hilfs- speicher-Eintrages entschieden, in dem der die zur Adressierung des Nutzspeicher-Eintrages verwendete Adresse umfassende Adreßraum-Bereich gespeichert ist. Der Nichteinschränk-Zustand liegt genau dann vor, wenn der Wert des Statusfeldes größer ist als der Wert des Generationsnummernfeldes des betreffenden Hilfs- speicher-Eintrages. Die Statusfeld-Werte der Nutz- speicher-Einträge und die Generationsnummernfeld-Werte der Hilfsspeicher-Einträge geben also stets an, welche der beiden Einträge aktueller ist (Hilfspeicher-Eintrag oder der Nutzspeicher-Eintrag mit derjenigen Adresse, die innerhalb des durch den Hilfsspeicher-Eintrag spezifizierten Adreßraum-Bereichs liegt) . In Abhängig- keit davon befindet sich das Statusfeld in einem Nicht- einschränk- oder in einem Einschränk-Zustand.
Nach der Erfindung ist es grundsätzlich möglich, daß die Adresse, mit der ein Nutspeicher-Eintrag adressiert wird, innerhalb mehrerer im Hilfsspeicher abgespeicher¬ ter Areßraum-Bereiche liegt. Bei der Realisierung der Nichteinschränk- bzw. Einschränk-Zustände der Status¬ felder durch Vergleich von Generationsnummern des Nutz- speichers und des Hilfsspeichers befindet sich in dem Fall, in dem die Adresse eines adressierten Nutz¬ speicher-Eintrages innerhalb der durch die Daten mehre¬ rer Hilfsspeicher-Einträge spezifizierten Adreßraum- Bereiche liegt, das Statusfeld des adressierten Nutz¬ speicher-Eintrages in einem Nichteinschränk-Zustand, wenn der Wert des Statusfeldes größer ist als der grö߬ te in den Generationsnummernfeldern derjenigen Hilfs- speicher-Einträge gespeicherten Generationsnummern, in denen die zur Adressierung des Nutzspeicher-Eintrags verwendete Adresse umfassende Adreßraum-Bereiche abge- speichert sind. Andernfalls befindet sich das Status¬ feld des adressierten Nutzspeicher-Eintrages in einem Einschränk-Zustand.
Vorzugsweise wird der Generationsnummern-Zähler bei einer Abspeicherung eines Adreßraum-Bereichs in einen Hilfsspeicher-Eintrag nur dann inkrementiert, wenn der Adreßraum-Bereich Überschneidungen mit einem oder meh¬ reren bereits im Hilfsspeicher abgespeicherten Adreß- raum-Bereichen aufweist. Hierdurch kann die Anzahl an insgesamt zu vergebenden Generationsnummern reduziert
ERSATZB werden, was wiederum den Vorteil hat, daß die ent¬ sprechenden Generationsnummernfelder des Hilfsspeichers und Statusfelder des Nutzspeichers verkleinert werden können.
Sämtliche Nutz- und Hilfsspeicher-Einträge werden als nicht gültig markiert und zusätzlich wird der Genera¬ tionsnummern-Zähler rückgesetzt, wenn der Hilfsspeicher überläuft, d.h. weitere Adreßraum-Bereiche in den Hilfsspeicher nicht mehr abspeicherbar sind. Ein Rück¬ setzen des Generationsnummern-Zählers und die Markie¬ rung sämtlicher Nutz- und Hilfsspeicher-Einträge als nicht gültig erfolgt auch dann, wenn der Generations¬ nummern-Zähler einen vorgebbaren Maximalwert über- steigt.
Nachfolgend werden anhand der Figuren Ausführungsbei- spiele der Erfindung näher erläutert. Im einzelnen zei¬ gen:
Fig. 1 schematisch den Aufbau eines "Flush-Lookaside-
Buffer" als Ergänzung für ein bestehendes TLB/
Cache-System,
Fig. 2 den Aufbau eines TLB mit als Collision-Sensi- tive-Bit ausgeführtem Statusfeld,
Fig. 3 ein Blockschaltbild von FLB und TLB mit Logik- Beschaltung,
Fig. 4 schematisch den Aufbau eines FLB mit Genera- tionsnummern zur Kennzeichnung eines Ein¬ schränk- und Nichteinschränk-Zustandes, Fig. 5 den Aufbau eines FLB mit Generationsnummern und ohne Valid-Bit und Fhit-Signal,
Fig. 6 einen TLB mit Generationsnummern,
Fig. 7 ein Blockschaltbild von FLB und TLB jeweils mit
Generationsnummern und mit Logik-Beschaltung der Ausgänge,
Fig. 8 den Aufbau eines TLB ohne Valid-Bit und Thit- Signal,
Fig. 9 den Aufbau (als Blockschaltbild) von FLB und TLB ohne Valid- und Thit-Signal,
Fig. 10 einen TLB mit maskiertem FLB (als Blockschalt¬ bild) ,
Fig. 11 den grundsätzlichen Aufbau eines einfachen FLB mit Aktivitätsvermerk,
Fig. 12 den Aufbau eines Schatten-TLB,
Fig. 13 als Blockschaltbild ein System aus TLB und FLB mit "Write-Protect" ,
Fig. 14 den grundsätzlichen Aufbau eines aus TLB und Cache bestehenden seriell arbeitenden Cache- Speichersystems,
Fig. 15 den Aufbau eines aus TLB und Cache bestehenden, parallel arbeitenden Cache-Speichersystems und
Fig. 16 einen direct-mapped TLB (grundsätzlicher Auf- bau) . 1. Flush Lookaside Buffer
1.1 Ein einfacher FLB
Nachfolgend wird anhand der Fign. 1 bis 3 ein erstes Ausführungsbeispiel einer erfindungsgemäßen Speicher¬ vorrichtung näher erläutert, und zwar anhand eines TLB- Speichersyste s. Sämtliche nachfolgend aufgeführten Überlegungen (dies gilt für sämtliche Ausführungsbei- spiele) lassen sich in analoger Weise auch auf ein Cache-Speichersystem übertragen. Dabei ist zu beachten, daß es sich bei einem TLB physikalisch um einen Cache- Speicher handelt.
Um bei einem TLB-System die Erfindung verwirklichen zu können, wird dieses TLB-System um einen kleinen, voll¬ assoziativen Flush-Lookaside-Buffer (nachfolgend FLB genannt) erweitert. Jeder Eintrag des FLB umfaßt ein Valid-Bit und kann die Spezifikation einer Region j aufnehmen (Fig. 1) .
Dabei kann eine Region beispielsweise durch Anfangs¬ und Endadresse bzw. Länge spezifiziert sein, aber auch durch Adresse und eine Maske, die angibt, welche Adreß- bits zur Trefferprüfung benutzt und welche ignoriert werden sollen.
Der FLB signalisiert einen Treffer Fhit, wenn es min¬ destens einen Eintrag j gibt, der gültig ist (validj) und dessen Bereich p. die virtuelle Adresse v enthält.
Der TLB wird um ein Collision-Sensitive-Bit cs1 er¬ weitert, das pro Eintrag angibt, ob Kollision mit einem FLB-Treffer hierbei beachtet (es) werden soll, d.h. ein Einschränk-Zustand vorliegt, oder ignoriert (es) werden soll, d.h. ein Nichteinschränk-Zustand vorliegt. Bei einem Treffer signalisiert der TLB Thit und liefert die Realadresse r' sowie das Collision-Sensitive-Bit es aus dem Treffereintrag.
Liegen bei einer Umsetzung TLB- und FLB-Treffer vor (Thit Λ Fhit) , wird von einer Kollision gesprochen. Die Kollision ist echt, wenn zusätzlich es gesetzt ist; andernfalls ist sie unecht. Das Gesamtsystem ignoriert TLB-Treffer bei echten Kollisionen, d.h. genau dann, wenn auch ein FLB-Treffer gemeldet wird und das Colli¬ sion-Sensitive-Bit gesetzt ist, d.h.
hit = Thit Λ -i (Fhit Λ es) .
Zur Verdeutlichung dieses Treffer-Aspekts siehe Fig. 3
Immer dann, wenn ein TLB-Eintrag neu geladen wird, wird das Collision-Sensitive-Bit cSi dabei genau dann ge- setzt, wenn die entsprechende virtuelle Adresse keinen FLB-Treffer auslöst. Andernfalls wird cSi dabei zurück¬ gesetzt. Da TLB-Einträge normalerweise aufgrund eines TLB-Miss geladen werden (Lade-Zugriff) und in diesem Fall die entsprechende virtuelle Adresse V parallel zum TLB-Schritt vom FLB verarbeitet wurde, wird als CSi des neuen TLB-Eintrags auf Fhit = -iFhit gesetzt, ge¬ nauer auf den Wert von Fhit, der beim TLB-Miss auftrat. Man beachte, daß das unabhängig davon ist, ob ein ech¬ ter TLB-Miss (Thit) oder eine echte Kollision vorliegt.
Bei einem TLB-Hit mit echter Kollision wird
1. der entsprechende TLB-Eintrag geflusht
Figure imgf000016_0001
false) ,
2. ein TLB-Miss signalisiert und ein MMU-Table-Walk durchgeführt, 3. da Fhit beim TLB-Miss gesetzt war, wird das Colli¬ sion-Sensitive-Bit cSi des verwandten Eintrags beim erneuten Laden zurückgesetzt.
Ein erneutes Ansprechen derselben virtuellen Adresse führt dann nur zu einer unechten Kollision.
Bei der Darstellung des Zusammenspiels der Hit-Signale sind im folgenden jeweils links von → die Voraussetzun- gen für die rechts davon beschriebenen Operationen auf¬ geführt. Zur Anwahl einer Alternative müssen alle dafür aufgeführten Voraussetzungen erfüllt sein (UND-Ver- knüpfung) . Alle durch Komma getrennte Operationen er¬ folgen parallel. Überstreichung (wie Fhit) bezeichnet die Negation eines Signals bzw. eines Bits, "!" das Setzen und "~! " das Zurücksetzen eines Signals bzw. eines Bits.
, validi !
Figure imgf000017_0001
Methode der FLB-Nutzung:
• Wenn eine Region p sich mit keiner schon im FLB vermerkten Region Pj überschneidet und noch min¬ destens ein FLB-Eintrag frei ist, kann die Region geflusht werden, indem p in einen freien Eintrag geladen und dieser gültig gesetzt wird.
ERSATZBLÄTT(REGEL26) • Beim Überlaufen des FLB oder bei Überschneidung
(a) können .FLB und TLB vollständig geflusht wer¬ den, in der Regel durch gleichzeitiges Rück¬ setzen aller Valid-Bits, (b) oder der TLB wird lediglich wieder kollisions- sensitiviert, indem alle Collision-Sensitive- Bits CSi gleichzeitig gesetzt werden, der TLB sonst aber intakt bleibt. Der FLB kann dann unverändert bleiben oder so verändert werden, daß die Vereinigungsmenge der Regionen aller gültigen FLB-Einträge nach der Änderung die entsprechende Menge vor der Veränderung um¬ faßt.
1.2 FLB mit Generationsnummern
Nachfolgend wird anhand der Fign. 1 bis 6 ein zweites Ausführungsbeispiel der Erfindung beschrieben, bei dem die Statusinformation bzw. der Inhalt des Statusfeldes, die bzw. der angibt, ob auf das Datenfeld eines adres¬ sierten TLB-Speichereintrages, der mittels einer Adres¬ se, welche Teil eines im FLB abgespeicherten Adreßraum- Bereichs ist, adressiert ist, zugegriffen werden darf oder nicht.
Der einfache FLB wird pro Eintrag um ein Generations- nummernfeld Gj erweitert. Sind keine Überschneidungen von Regionen im FLB zulässig, wird bei einem FLB-Hit die Generationsnummer Gj des zutreffenden Eintrags in G geliefert. Bei überschneidenden Regionen wird beim FLB- Hit die größte Generationsnummer Gj aller zutreffender (v' e Pj) gültiger Einträge in G geliefert.
Eine in Fig. 5 gezeigte Alternative verzichtet auf das Valid-Bit und Fhit-Signal. Hierbei wird Ungültigkeit
ERSATZB durch eine reservierte minimale Generationsnummer -∞ angezeigt. FLB-Einträge werden durch Gj = -∞ als ungül¬ tig gekennzeichnet. Außerdem liefert der FLB G = -∞, wenn kein Treffer vorliegt. Um die Darstellung in den Figuren und die Beschreibung einfacher zu halten, wird im folgenden immer diese zweite Realisierung angenom¬ men. Eine Realisierung mit Valid-Bit und Fhit-Signal, die schaltungstechnisch unter Umständen einfacher oder schneller ist, kann auf einfache Weise aus diesen Be- Schreibungen abgeleitet werden.
Der TLB erhält anstelle eines Collision-Sensitive-Bits pro Eintrag eine Generationsnummer g. (Fig. 6) . Bei einem TLB-Treffer wird dann die entsprechende Genera¬ tionsnummer in g geliefert. Es gibt ein Register γ, das die jeweils aktuelle Generation angibt. Initial bzw. nach jedem FLB-Flush erhält es beispielsweise den Wert 1. Bei jeder Änderung des FLB-Inhalts wird die Genera¬ tion um eins erhöht. Bei jedem Laden eines TLB-Eintrags wird seine Generationsnummer auf die aktuelle Genera¬ tion gesetzt, g := γ.
Eine Kollision liegt bei Thit Λ G > -∞ vor. Sie ist genau dann echt, wenn G ≥ g gilt, siehe Fig. 7. Bei geeigneter Verwendung von γ und der FLB-Felder G. führt erneutes Ansprechen derselben virtuellen Adresse dann nur zu einer unechten Kollision, es gilt also:
, vahd, := false
Figure imgf000019_0001
Verwendet man 0 als Repräsentation von -∞ und hat k Bits für jedes Generationsnummerfeld gt im TLB zur Ver¬ fügung, können als gültige Generationswerte 1 bis 2k"1 benutzt werden.
Methoden der FLB-Verwaltung
Die konkrete Flush-Semantik wird wesentlich durch die Verwaltung des FLB definiert. Als Beispiel werden hier zwei Methoden skizziert.
(a) Wenn die ' Generationsnummernfelder ausreichend breit sind, kann man bei jedem neuen FLB-Eintrag den Wert von γ in Gj übernehmen und danach das Register γ um 1 inkrementieren. Überlappung mit anderen FLB-Einträgen spielt dann keine Rolle mehr. Läuft der FLB über, wird er und der TLB ge- flusht sowie γ zurückgesetzt.
(b) In vielen Fällen kann man aber mit Hilfe einer Erweiterung der unter 1.1 beschriebenen Methode auch mit schmaleren Generationsnummernfeldern aus¬ kommen. Dabei wird Gj eines neuen FLB-Eintrags stets auf γ gesetzt, danach wird das Register γ aber nur dann um 1 inkrementiert, wenn eine Über¬ lappung der neu einzutragenden Region p mit min¬ destens einer der gültigen j auftritt. Andern¬ falls bleibt γ unverändert. Falls der FLB über¬ läuft oder die aktuelle Generationsnummer γ zu groß wird, werden FLB und TLB geflusht sowie γ zurückgesetzt.
Bei Methode (b) kann anstelle eines totalen TLB Flushs auch der TLB nur wieder kollisions-sensitiviert werden, indem alle Generationsnummern gi gleichzeitig zurückge-
ERSATZB 19 -
setzt werden, z.B. auf 1. Der FLB kann dann unverändert bleiben oder so verändert werden, daß die Gesamtheit aller gültigen FLB-Einträge nach der Änderung min¬ destens die entsprechenden vor der Veränderung gültigen Regionen überdeckt.
Ohne Valid-Bits und Thit-Signal
Auch beim TLB kann man mit Hilfe der reservierten mini- malen Generationsnummer -∞ auf Valid-Bit und Thit-Sig¬ nal verzichten, indem man g± = -∞ bei ungültigen TLB- Einträgen setzt, im Falle von mehr-Wege assoziativen TLBs nur Einträge mit g > -∞ berücksichtigt und in jedem Fall -∞ in g liefert, wenn kein Treffer vorliegt. Dieses Modell ist in den Fign. 8 und 9 gezeigt.
Es gilt.-
G < g hit !
Figure imgf000021_0001
Interessant bei diesem Modell ist insbesondere, daß im TLB ein Bit pro Eintrag gespart wird. Wenn beispiels¬ weise anstatt der beiden Bits CSi und validi ein 2-Bit Feld gi verwandt und der Wert 0 als -∞ benutzt wird, sind mit demselben Speicheraufwand schon 3 echte Gene¬ rationen möglich.
Allerdings ist Kollisions-Sensitivierung durch Rück¬ setzen aller gültigen (gL > 0) Generationsnummern jetzt schaltungstechnisch nicht mehr einfach. 1.3 FLB und TLB mit Generationsmasken
Anstelle der Generationsnummern können auch Bit-Masken verwandt werden; statt des arithmetischen Vergleichs < wird dann "bitweises UNDen" nötig.
1.4 TLB mit maskiertem FLB
Ist die Generationsnummer bzw. Maske genügend breit, kann man auf die Generationsinformation G. beim FLB verzichten und g1 als Adressen von FLB-Einträgen auf¬ fassen. Wie in Fig. 10 dargestellt, liefert der FLB dann für jeden Eintrag j ein Signal Fhit.. Alle diese Signale werden maskiert geODERt, bei k FLB-Einträgen:
Xhit = (Fhit0 Λ m0) v (Flii^ Λ 1 ) v...v (Fhitk-1 Λ mk-1)
Dabei wird die Maske (m-,!^, ...m,,..!) entweder direkt im TLB-Eintrag gespeichert und als g geliefert, oder aus dem gelieferten g erzeugt, beispielsweise als -2g. Bei -.Xhit Λ Thit liegt ein Treffer (hit) , bei Xhit Λ Thit eine echte Kollision vor. Es gilt:
, valid. := false
Figure imgf000022_0001
1.5 FLB mit Aktivitätsvermerk
Einige FLB-Betriebsarten flushen den TLB oder machen ihn wieder vollständig kollisions-sensitiv, wenn eine
ERSATZBLÄTT REG neu in den FLB einzutragende Region sich mit schon darin befindlichen überlappt. Um die Häufigkeit solcher Ereignisse zu reduzieren, kann man aktive und inaktive Einträge im FLB unterscheiden: jeder Eintrag wird erst aktiv, wenn er zum ersten Mal eine echte Kollision be¬ wirkt. Inaktive Einträge können dann erweitert oder für ein erneutes Flushing verwandt werden, ohne daß ein echter FLB- und TLB-Flush erforderlich ist.
Jeder FLB-Eintrag wird um ein Aktivitätsbit actVj er¬ weitert. Fig. 11 zeigt das für den einfachen FLB, mit Valid-Bits und ohne Generationsnummern. Die anderen FLB-Typen werden genauso durch Hinzufügen der Aktivi¬ tätsbits erweitert. Beim Neuladen eines FLB-Eintrags wird der Aktivitätsvermerk stets zurückgesetzt. Erst bei einer echten Kollision werden die Aktivitätsbits aller matchenden (Vv'epj : actVj ! ) FLB-Einträge ge¬ setzt, wobei allerdings ungültige Einträge ignoriert werden können. Man beachte, daß nur dann mehrere Akti- vitätsbits gesetzt werden müssen, wenn Überlappungen von Regionen im FLB auftreten können. Andernfalls gibt es bei einer echten Kollision nur genau einen zutref¬ fenden FLB-Eintrag.
Bei einfachem FLB und TLB mit Collision-Sensitive- und Valid-Bits gilt:
, validi ! , W £ pj : actVj !
Figure imgf000023_0001
Bei FLB mit Generationsnummern G- und TLB mit Genera¬ tionsnummern g1 sowie Valid-Bits gilt:
, valtd, := false , Vt. € ρ : actv !
Figure imgf000024_0001
Bei FLB mit Generationsnummern G- und TLB mit Genera¬ tionsnummern gλ ohne Valid-Bits gilt :
G < g At< !
Figure imgf000024_0002
Bei TLB mit maskiertem FLB gilt
, valtd. := false , W G p3 actVj '
Figure imgf000024_0003
Wenn eine Region p sich mit keiner schon im FLB ver¬ merkten Region p. überschneidet, die auch aktiv ist (actVj) und noch mindestens ein FLB-Eintrag frei ist, kann die Region geflusht werden, indem p in einen frei¬ en Eintrag geladen und dieser gültig gesetzt wird.
Außerdem können nichtaktive (actVj) FLB-Einträge modifiziert oder freigegeben werden. Voraussetzung für die Einhaltung der Flush-Semantik ist nur, daß die Ge¬ samtheit aller gültigen FLB-Einträge nach der Änderung mindestens die entsprechenden vor der Veränderung gül- tigen Regionen überdeckt.
2. Weitere FLB-Möglichkeiten
2.1 Selektives TLB-Flushing
Der TLB kann selektiv geflusht werden, indem sequen¬ tiell die Felder v'± aller gültigen TLB-Einträge gegen den FLB getestet werden. Falls der FLB bei v± einen Treffer meldet, ■ wird dieser TLB-Eintrag invalidiert. Ist der gesamte TLB in dieser Art durchgemustert, kön¬ nen alle FLB-Einträge freigegeben werden, die seit Be¬ ginn dieser Durchmusterung nicht verändert wurden. Ins¬ besondere kann der gesamte FLB geflusht werden, wenn keine FLB-Änderungen während der Durchmusterung auftra- gen.
Die TLB-Durchmusterung kann für n-Wege TLBs um den Fak¬ tor n beschleunigt werden, indem parallel die jeweils n zusammengehörigen TLB-Einträge getestet werden. Je nach Geschwindigkeit des FLB muß dieser dazu vervielfacht werden.
Um parallel zur Durchmusterung normale Adreßumsetzung durch den TLB zu ermöglichen, kann man das System um einen "Schatten"-TLB ergänzen, siehe Fig. 12. Im Gegen- satz zu TLB ist der Schatten TLB kein assoziativer son¬ dern ein direkt adressierter Speicher. Bei Updates auf¬ grund von TLB-Änderungen können die TLB-Adressen über¬ nommen werden. Der Schatten-TLB dupliziert virtuelle Adresse, Gültigkeits- und Kollisionsinformation jedes TLB-Eintrages. Bei TLBs mit Collision-Sensitive-Bit gilt für die Einträge des Schatten-TLB (siehe Fig. 12) :
w. = v. , X-L = valid. Λ CSJ ,
bei TLBs mit Generationsnummer und Valid-Bit gilt
w. = v. , x, = (valid,, gx) ,
und bei TLBs mit Generationsnummer ohne Valid-Bit
w. = v, , x, = g. .
Änderungen in den entsprechenden TLB-Feldern werden sofort zum Schatten-TLB propagiert. Selektives Flushing geschieht vermittels Durchmusterung des Schatten-TLBs. Wenn dabei ein zu flushender Eintrag gefunden wird, wird die Flush-Operation auf Schatten- und eigentlichem TLB ausgeführt.
2.2 FLB als temporärer TLB
Man kann FLB-Einträge um Felder erweitern, die auch im TLB gehalten werden, beispielsweise Zugriffsattribute. Wenn diese dann für eine Region verändert (einge¬ schränkt) werden, reicht es bei einem Fhit aus, die entsprechende Information vom FLB zu übernehmen. Ein Table-Walk wird unnötig. Fig. 13 zeigt als Beispiel einen FLB, der auch ein Write-Protect-Signal pro Region mitführt, das bei einem FLB-Treffer in Fwp geliefert wird. Das endgültige Write-Protect-Signal wp wird als Twp v (Fhit Λ Fwp) ge- bildet, wobei Twp das vom TLB gelieferte Write-Protect- Signal ist. Damit kann eine Region temporär schreibge¬ schützt werden, ohne daß zusätzliche TLB-Misses und damit Table-Walks erforderlich werden.
Diese Methode kann auch für virtuelles Aliasing und Call-on-Reference genutzt werden. Das in 2.1 beschrie¬ bene Verfahren kann so erweitert werden, daß TLB-Ein¬ träge falls möglich nicht geflusht werden, sondern an¬ hand der vom FLB gelieferten Information verändert wer- den.
2.3 Überlappungen im FLB
Bei größeren FLBs kann es aufwendig werden, fest- zustellen, ob eine neue Region p = [p , p] sich mit schon gültig eingetragenen Regionen Pj = [pj,Pj] überschnei¬ det. Als voll-assoziatives Element kann der FLB diese Entscheidung unabhängig von seiner Größe in 2 Schritten treffen; allerdings steigen Komplexität und damit auch Kosten des FLB hierdurch.
Jeder FLB-Eintrag wird um das Bit IoWj erweitert. Zu Beginn einer Untersuchung auf Überschneidung werden alle IoWj-Bits sowie das Fhit-Signal zurückgesetzt. Dem FLB wird die Untergrenze p des neuen Bereichs angeboten und jedes Element führt Schritt 1 gemäß folgender Vor¬ schrift durch:
p t Pi hii \
G >
Figure imgf000027_0001
Dann wird dem FLB die Obergrenze p angeboten und jedes Element führt Schritt 2 gemäß folgender Vorschrift durch:
Figure imgf000028_0001
Ist nach Schritt 2 das Signal Fhit gesetzt, liegt eine Überlappung vor.
2.4 Caches
Alle aufgeführten Methoden lassen sich genau so mit Caches anstelle der TLBs einsetzen. Anstelle eines Table-Walks mit neuem Laden eines TLB-Eintrags tritt dann ein Hauptspeicher-Zugriff.

Claims

ANSPRÜCHE
Speichervorrichtung zum Speichern von Daten, ins¬ besondere Cache-Speichervorrichtung oder Trans- lation-Lookaside-Buffer, mit einem Nutzspeicher, der mehrere mittels Adres¬ sen eines Adreßraums adressierbare Speicher- Einträge aufweist, von denen jeder ein als gültig oder nicht gültig markiertes Datenfeld und ein veränderbares Statusfeld aufweist, das in mindestens einen Einschränk-Zustand zum Einschränken eines Schreib/Lese-Zugriffs auf das gültige Datenfeld und in mindestens einen Nichteinschränk-Zustand zum Nichteinschränken eines Schreib/Lese-Zugriffs auf das gültige Datenfeld überführbar ist, und einem Hilfsspeicher mit mindestens einem Speicher-Eintrag zum Speichern von einen Be¬ reich des Adreßraums spezifizierenden Daten, wobei der Schreib/Lese-Zugriff auf das Daten¬ feld eines adressierten Nutzspeicher-Eintrages dann nicht erlaubt ist, wenn die Adresse innerhalb mindestens eines im Hilfsspeicher gespeicherten Adreßraum-Bereichs liegt und das Statusfeld des Nutzspeicher-Eintrags den Schreib/Lese-Zugriff einschränkt.
Speichervor'richtung nach Anspruch 1, dadurch ge¬ kennzeichnet, daß bei einem Lade-Zugriff, mit dem der Nutzspeicher-Eintrag initialisiert wird, das Statusfeld eines adressierten Nutzspeicher-Ein¬ trags in einen Einschränk-Zustand überführt wird, wenn die Adresse nicht Teil mindestens eines in dem Hilfsspeicher gespeicherten Adreßraum- Bereichs ist, und andernfalls in einen Nichteinschränk-Zustand überführt wird, wenn die Adresse Teil min¬ destens eines in dem Hilfsspeicher gespeicher¬ ten Adreßraum-Bereichs ist.
3. Speichervorrichtung nach Anspruch 1, dadurch ge¬ kennzeichnet, daß das Statusfeld eines adressier¬ ten Nutzspeicher-Eintrags bei einem Lade-Zugriff, mit dem der Nutzspeicher-Eintrag initialisiert wird, in einen Nichteinschränk-Zustand überführt wird.
4. Speichervorrichtung nach Anspruch 3, dadurch ge¬ kennzeichnet, daß das Statusfeld eines adressier¬ ten Nutzspeicher-Eintrags bei dessen Adressierung in einen Nichtschränk-Zustand überführt wird, wenn es zuvor in einem Einschränk-Zustand war und die zur Adressierung verwendete Adresse nicht Teil mindestens eines im Hilfsspeicher gespeicherten Adreßraum-Bereichs ist.
5. Speichervorrichtung nach einem der Ansprüche 2 bis
4, dadurch gekennzeichnet, daß beim Einschreiben von einen Bereich des Adreßraums spezifizierenden Daten in einen Hilfsspeicher-Eintrag die Status- felder sämtlicher Nutzspeicher-Einträge in einen Einschränk-Zustand überführt werden.
6. Speichervorrichtung nach einem der Ansprüche 1 bis
5, dadurch gekennzeichnet, daß der Hilfsspeicher mehrere Speicher-Einträge aufweis .
ERSATZBLÄTT 7. Speichervorrichtung nach einem der Ansprüche 1 bis
6, dadurch gekennzeichnet, daß in dem Fall, daß sich in sämtlichen Hilfsspeicher-Einträgen jeweils einen Bereich des Adreßraums spezifizierende Daten befinden und weitere einen Bereich des Adreßraums spezifizierende Daten in den Hilfsspeicher abge¬ speichert werden sollen, sämtliche Nutzspeicher- Einträge und Hilfsspeicher-Einträge als nicht gül¬ tig markiert werden.
8. Speichervorrichtung nach einem der Ansprüche 1 bis
7, dadurch gekennzeichnet, daß vor dem Abspeichern von einen Bereich des Adreßraums spezifizierenden Daten in einen Hilfsspeicher-Eintrag dieser Adre߬ raum-Bereich auf Überschneidungen mit bereits im Hilfsspeicher abgespeicherten Adreßraum-Bereichen untersucht wird und der oder die gegebenenfalls bestehenden Hilfsspeicher-Einträge und/oder der neue Hilfsspeicher-Eintrag derart aktualisiert bzw. gewählt wird/werden, daß im Hilfsspeicher sämtliche durch die bisherigen und die neuen Daten spezifizierte Adreßraum-Bereiche abgespeichert sind und die Statusfelder sämtlicher Nutzspeicher- Einträge in einen Einschränk-Zustand überführt werden.
9. Speichervorrichtung nach einem der Ansprüche 1 bis
8, dadurch gekennzeichnet, daß die Statusfelder sämtlicher Nutzspeicher-Einträge gleichzeitig in einen Einschränk-Zustand überführbar sind, und zwar unabhängig von einer Operation auf dem Hilfs¬ speicher oder dessen Zustand.
10. Speichervorrichtung nach einem der Ansprüche 1 bis
9, dadurch gekennzeichnet, daß das Statusfeld eines Nutzspeicher-Eintrages ein einziges Bit umfaßt, welches zur Spezifizierung des Einschränk- und des Nichteinschränk-Zustandes setzbar und rücksetzbar ist.
11. Speichervorrichtung nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß jeder Hilfsspeicher-Eintrag ein Genera¬ tionsnummernfeld aufweist, daß ein Generationsnummern-Zähler vorgesehen ist, der bei jeder Abspeicherung von einen Adreßraum-Bereich spezifizierenden Daten in einen Hilfsspeicher-Eintrag inkrementierbar ist, wobei das Generationsnummernfeld eines Hilfsspeicher-Eintrags auf den vor der Inkre- mentierung vorliegenden Wert des Generations¬ nummern-Zählers setzbar ist, wenn in diesen Hilfsspeicher-Eintrag einen Adreßraum-Bereich spezifizierende Daten abgespeichert werden, und wobei das Statusfeld eines Nutzspeicher- Eintrags auf den aktuellen Wert des Genera¬ tionsnummern-Zählers setzbar ist, wenn auf den Nutzspeicher-Eintrag ein diesen initialisie¬ render Lade-Zugriff erfolgt, und daß sich das Statusfeld eines adressierten NutzSpeicher-Eintrags
- in einem Nichteinschränk-Zustand befindet, wenn der Wert des Statusfeldes größer ist als der Wert des Generationsnummernfeldes desjenigen Hilfsspeicher-Eintrages, der die Adresse des adressierten Nutzspeicher-Ein¬ trages umfaßt, und
- andernfalls in einem Einschränk-Zustand be¬ findet.
ERSATZBLÄTT RE 12. Speichervorrichtung nach Anspruch 11, dadurch ge¬ kennzeichnet, daß in dem Fall, daß die Adresse eines adressierten Nutzspeicher-Eintrages inner¬ halb der durch die Daten mehrerer Hilfsspeicher- Einträge spezifizierten Adreßraum-Bereiche liegt, sich das Statusfeld des adressierten Nutzspeicher- Eintrages in einem Nichteinschränk-Zustand befindet, wenn der Wert des Statusfeldes größer ist als der größte in den Generationsnummernfeldern der betreffenden Hilfsspeicher-Einträge gespeicher¬ ten Generationsnummern, und andernfalls in einem Einschränk-Zustand befin¬ det.
13. Speichervorrichtung nach Anspruch 11 oder 12, da¬ durch gekennzeichnet, daß der Generationsnummern- Zähler bei einer Abspeicherung von einen Adre߬ raum-Bereich spezifizierenden Daten in einen Hilfsspeicher-Eintrag nur dann inkrementiert wird, wenn der durch diese Daten spezifizierte Adre߬ raum-Bereich Überschneidungen mit einem oder mehreren bereits im Hilfsspeicher abgespeicherten Adreßraum-Bereichen aufweist.
14. Speichervorrichtung nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet, daß sämtliche Nutz- und Hilfsspeicher-Einträge als nicht gültig markiert werden und der Generationsnummern-Zähler rückgesetzt wird, wenn weitere einen Adreßraum- Bereich spezifizierende Daten in dem Hilfsspeicher nicht mehr abspeicherbar sind.
15. Speichervorrichtung nach einem der Ansprüche 11 bis 14, dadurch gekennzeichnet, daß sämtliche Nutz- und Hilfsspeicher-Einträge als nicht gültig markiert werden und der Generationsnummern-Zähler rückgesetzt wird, wenn der Generationsnummern-Zäh¬ ler einen vörgebbaren Maximalwert übersteigt.
PCT/EP1995/001780 1994-05-11 1995-05-11 Speichervorrichtung zum speichern von daten WO1995031783A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP95919439A EP0760134A1 (de) 1994-05-11 1995-05-11 Speichervorrichtung zum speichern von daten
JP7529345A JPH10500235A (ja) 1994-05-11 1995-05-11 データ記憶装置
US08/737,140 US6260130B1 (en) 1994-05-11 1995-05-11 Cache or TLB using a working and auxiliary memory with valid/invalid data field, status field, settable restricted access and a data entry counter

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE4416658 1994-05-11
DEP4416658.3 1994-05-11

Publications (1)

Publication Number Publication Date
WO1995031783A1 true WO1995031783A1 (de) 1995-11-23

Family

ID=6517893

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1995/001780 WO1995031783A1 (de) 1994-05-11 1995-05-11 Speichervorrichtung zum speichern von daten

Country Status (5)

Country Link
US (1) US6260130B1 (de)
EP (1) EP0760134A1 (de)
JP (1) JPH10500235A (de)
DE (1) DE19516949A1 (de)
WO (1) WO1995031783A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272033B1 (en) 1999-06-08 2001-08-07 Arm Limited Status bits for cache memory

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978357B1 (en) 1998-07-24 2005-12-20 Intel Corporation Method and apparatus for performing cache segment flush and cache segment invalidation operations
US6510508B1 (en) * 2000-06-15 2003-01-21 Advanced Micro Devices, Inc. Translation lookaside buffer flush filter
US7284100B2 (en) 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US7530067B2 (en) * 2003-05-12 2009-05-05 International Business Machines Corporation Filtering processor requests based on identifiers
US9454490B2 (en) 2003-05-12 2016-09-27 International Business Machines Corporation Invalidating a range of two or more translation table entries and instruction therefore
US20050182903A1 (en) * 2004-02-12 2005-08-18 Mips Technologies, Inc. Apparatus and method for preventing duplicate matching entries in a translation lookaside buffer
JP5459006B2 (ja) * 2010-03-24 2014-04-02 富士通株式会社 メモリ管理装置、メモリ管理方法及びメモリ管理プログラム
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US20140006747A1 (en) * 2012-06-29 2014-01-02 Broadcom Corporation Systems and methods for processing instructions when utilizing an extended translation look-aside buffer having a hybrid memory structure
US9892060B2 (en) 2015-12-02 2018-02-13 International Business Machines Corporation Identifying stale entries in address translation cache

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4053948A (en) * 1976-06-21 1977-10-11 Ibm Corporation Look aside array invalidation mechanism
US4068303A (en) * 1975-03-24 1978-01-10 Hitachi, Ltd. Address translation managing system with translation pair purging
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
EP0568195A1 (de) * 1992-04-29 1993-11-03 International Business Machines Corporation Datenverarbeitungssystem mit mehreren virtuellen Adressräumen

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6091462A (ja) * 1983-10-26 1985-05-22 Toshiba Corp 演算制御装置
EP0348628A3 (de) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache-Speicheranordnung
US5265227A (en) * 1989-11-14 1993-11-23 Intel Corporation Parallel protection checking in an address translation look-aside buffer
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
US5222222A (en) * 1990-12-18 1993-06-22 Sun Microsystems, Inc. Apparatus and method for a space saving translation lookaside buffer for content addressable memory
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
EP0813709B1 (de) * 1995-03-03 2007-10-17 Fujitsu Limited Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
US5764944A (en) * 1995-09-08 1998-06-09 United Microelectronics Corp. Method and apparatus for TLB invalidation mechanism for protective page fault
US5802568A (en) * 1996-06-06 1998-09-01 Sun Microsystems, Inc. Simplified least-recently-used entry replacement in associative cache memories and translation lookaside buffers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4068303A (en) * 1975-03-24 1978-01-10 Hitachi, Ltd. Address translation managing system with translation pair purging
US4053948A (en) * 1976-06-21 1977-10-11 Ibm Corporation Look aside array invalidation mechanism
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
EP0568195A1 (de) * 1992-04-29 1993-11-03 International Business Machines Corporation Datenverarbeitungssystem mit mehreren virtuellen Adressräumen

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272033B1 (en) 1999-06-08 2001-08-07 Arm Limited Status bits for cache memory

Also Published As

Publication number Publication date
US6260130B1 (en) 2001-07-10
DE19516949A1 (de) 1996-02-15
EP0760134A1 (de) 1997-03-05
JPH10500235A (ja) 1998-01-06

Similar Documents

Publication Publication Date Title
DE112005003863B3 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE3586635T2 (de) Vorausholungsanordnung fuer einen schnellpufferspeicher.
DE10002120B4 (de) Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE69637294T2 (de) Mikro-tlb mit parallelem zugriff zum beschleunigen der adressübersetzung
DE68924720T2 (de) Verfahren und Vorrichtung für Zugriffsrechtensteuerung.
DE60117735T2 (de) Pufferspeichersystem
DE112006000339B4 (de) System für einen beschränkten Cache-Zugriff während des Datentransfers und Verfahren dazu
DE69434728T2 (de) Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel
DE69025302T2 (de) Hochleistungsrasterpuffer- und -cachespeicheranordnung
DE68902193T2 (de) Datenspeicheranordnung.
DE4335475A1 (de) Datenverarbeitungseinrichtung mit Cache-Speicher
DE3833933C2 (de) Informationsverarbeitungseinrichtung mit einer Adressenerweiterungsfunktion
DE102006030879B4 (de) System zum Reduzieren der Latenzzeit von exklusiven Leseanforderungen in einem symmetrischen Multiprozessorsystem
DE112008001666T5 (de) Hierarchische Cache-Tag-Architektur
DE112006002565T5 (de) Befehlsunterstützte Cache-Verwaltung für den effizienten Einsatz von Cache und Speicher
DE69937611T2 (de) Intelligenter Puffer-Speicher
WO1995031783A1 (de) Speichervorrichtung zum speichern von daten
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69030072T2 (de) Schneller Durchschreib-Cache-Speicher
DE69930983T2 (de) Pseudo-genaue I-Cache-Speichereinschliessbarkeit für vertikale Cache-Speicher
DE69815482T2 (de) Computer Anordnung mit Prozessor und Speicher-Hierarchie und sein Betriebsverfahren
DE19882617B4 (de) Speicherattributpalette
DE3650021T2 (de) Cache-Speicherübereinstimmungsvorrichtung mit Verriegelung.
DE19939764A1 (de) Verfahren zum Betrieb eines Speichersystems sowie Speichersystem

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1995919439

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 08737140

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1995919439

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1995919439

Country of ref document: EP