EP0243724A2

Multilevel storage hierarchy with a variable address mode.

Abstract

The disclosure provides a data processing system which contains a multi-level storage hierarchy, in which the two highest hierarchy levels (e.g. Ll and L2) are private (not shared) to a single CPU, in order to be in close proximity to each other and to the CPU. Each cache has a data line length convenient to the respective cache. A common directory and an L1 control array (L1CA) are provided for the CPU to access both the L1 and L2 caches. The common directory contains and is addressed by the CPU requesting logical addresses, each of which is either a real/absolute address or a virtual address, according to whichever address mode the CPU is in. Each entry in the directory contains a logical address representation derived from a logical address that previously missed in the directory. A CPU request "hits" in the directory if its requested address is in any private cache (e.g. in L1 or L2). A line presence field (LPF) is included in each directory entry to aid in determining a hit in the L1 cache. The L1CA contains Ll cache information to supplement the corresponding common directory entry; the L1CA is used during a L1 LRU castout, but is not the critical path of an L1 or L2 hit. A translation lookaside buffer (TLB) is not used to determine cache hits. The TLB output is used only during the infrequent times that a CPU request misses in the cache directory, and the translated address (i.e. absolute address) is then used to access the data in a synonym location in the same cache, or in main storage, or in the L1 or L2 cache in another CPU in a multiprocessor system using synonym/cross-interrogate directories.

EP0243724A2, drawing sheet 1
Sheet 1 of 18

Term

Term ended

Projected expiry passed 3 April 2007, 19.5 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

24 claims: 24 independent, 0 dependent

  1. 1
    Logical address cache arrangement in a data processing system, which contains a multilevel storage hierarchy, in which one or more levels contain a cache (i. e. high speed buffer) to speed up the access of data and/or instructions between a central processing unit (CPU) and storage, including also a processor, a translation lookaside buffer (TLB) and a main storage, the processor being able to switch its mode of addressing between real and virtual in its requests for data units from main storage, comprising:a first cache directly accessible to the processor, the first cache having locations for containing a plurality of lines of data initially copied from main storage, a cache directory having a plurality of directory entries, each cache directory entry including a logical address representation with an associated indicator of whether the representation is of a real/absolute address or is of a virtual address, means providing to the cache directory each logical address (LA) requested by the processor with an indicator signal of whether the requested logical address (LA) is a real/absolute address or a virtual address, common directory selecting means for receiving each logical address (LA) requested by the processor and selecting a set containing one or more potential hit entries in the cache directory, cache hit determining means for examining each potential hit entry in the set by comparing the logical address (LA) and the indicator signal requested by the processor with a logical address representation and the associated indicator in each valid entry in the set for a match condition in order to determine if any entry is a hit entry without using any address translation from the translation lookaside buffer (TLB).
  2. 2
    Logical address cache arrangement in a data processing system as defined in claim 1, further comprising:plural caches private to the processor including the first cache through an Nth cache, the caches being at different hierarchy levels in relation to the processor, the cache directory being a common cache directory for the plural caches for receiving each indicator signal and its logical address (LA) request from the processor to determine if data requested by the processor exists in any data line in one or more of the plural caches.
  3. 3
    Logical address cache arrangement in a data processing system as defined in claim 2, further comprising:the common directory selecting means receiving a logical address (LA) representation from the processor for each new storage request for selecting a congruence class of set-associative entries in the common directory, cache hit determining means comparing each requested indicator signal and its logical address signal with each indicator and its logical address (LA) representation in each valid entry in the selected congruence class to determine if a hit entry exists in at least one of the caches.
  4. 4
    Logical address cache arrangement in a data processing system as defined in claim 2, further comprising:means for providing to the translation lookaside buffer (TLB) each logical address (LA) and inserting with the logical address its translated or untranslated real/absolute address in accordance with a processor request for translation with any required prefixing, common cache directory miss signal means for generating a miss signal when no common directory entry is found for the indicator and logical address (LA) representation requested by the processor, translation lookaside buffer (TLB) output means actuated by the common cache directory miss signal to provide the translated or untranslated real/absolute address (associated with a requested logical address (LA) for a main storage access.
  5. 5
    Logical address cache arrangement in a data processing system as defined in claim 2, further comprising:at least one control array associated with the first cache to contain information for determining locations in another cache to receive castouts from locations in the first cache selected for replacement.
  6. 6
    Logical address cache arrangement in a data processing system as defined in claim 4 or 5, further comprising:control array addressing means receiving a requested logical address (LA) representation from the processor for each new storage request for selecting a congruence class of set-associative entries in the control array.
  7. 7
    Logical address cache arrangement in a data processing system as defined in claim 3 or 6, further comprising:at least one control array associated with the first cache to contain information supplementary to the common directory for determining locations in another cache for castouts of the first cache array.
  8. 8
    Logical address cache arrangement in a data processing system as defined in claim 5, further comprising:line presence fields (LPFs) in each entry in the common cache directory for indicating whether any part of an associated line in the Nth cache is available in another cache more directly accessible to the processor.
  9. 9
    Logical address cache arrangement in a data processing system as defined in claim 8, characterized in that each line presence field (LPF) has first subfields for indicating whether or not one or more locations in the other cache contain part(s) of the line in the Nth cache associated with the entry in the common cache directory containing the respective line presence field (LPF).
  10. 10
    Logical address cache arrangement in a data processing system as defined in claim 9, characterized in that a second subfield is provided with each first subfield in each line presence field (LPF) for indicating the particular location in the other cache that contain an associated part of the line in the Nth cache indicated to exist in the other cache.
  11. 11
    Logical address cache arrangement in a data processing system as defined in claim 10, further comprising:a logical address (LA) field being contained in each entry in the control array for containing a logical address (LA) for locating a line in another cache to be updated by a cast out of the corresponding line in the first cache array if the corresponding line has been changed.
  12. 12
    Logical address cache arrangement in a data processing system as defined in claim 11, further comprising:a change field (CH) being contained in each entry in the control array for indicating any change previously made in the associated line being cast out of the first cache to update a line in another cache located by the logical address (LA) field in the same control array entry.
  13. 13
    Logical address cache arrangement in a data processing system as defined in claim 11, further comprising:an exclusive/readonly field (EX) being contained in each entry in the control array for indicating the exclusive/readonly state designated for an associated line in the first cache.
  14. 14
    Logical address cache arrangement in a data processing system as defined in claim 11, further comprising:a bin number field being contained in each entry in the control array to locate a set-associative position in a congruence class located by the logical address (LA) field in the same control array entry in order to find the line in another cache to be updated by receiving a cast out of the corresponding line in the first cache array if the corresponding line has been changed.
  15. 15
    Logical address cache arrangement in a data processing system as defined in claim 4, further comprising:a synonym directory containing a plurality of entries and being associated with the common directory, a logical address (LA) field in each synonym directory entry for enabling the locating of a common directory entry which caused the generation of the respective synonym directory entry, means for locating in the synonym directory entry a real/absolute address representation that is the same as a received translated or untranslated real/absolute address provided by a common cache directory miss signal associated with a requested logical address (LA) requiring a main storage access, means for generating in the synonym directory a new entry when no synonym entry is found, the new entry having a real/absolute address representation that is the same as the received translated or untranslated real/absolute address associated with the requested logical address (LA) that caused a current common cache directory miss signal.
  16. 16
    Logical address cache arrangement in a data processing system as defined in claim 15, the locating means further comprising:synonym directory addressing means for receiving each translated or untranslated real/absolute address (associated with a requested logical address (LA)) for a main storage access due to a common cache directory miss signal to select a congruence class in the synonym directory which may contain a synonym entry, set-associative comparison means for comparing the received translated or untranslated real/ absolute address with the real/absolute address representation in each entry in the selected congruence class to find any synonym entry by any equal comparison.
  17. 17
    Logical address cache arrangement in a multiprocessing system (MP), including a plurality of data processing systems as defined in claim 4, all central processing units (CPUs) in the multiprocessing system (MP) having their caches access data in a common main storage, the multiprocessing system (MP) further comprising:a plurality of main storage request registers respectively receiving cache miss requests from the central processing units (CPUs), each cache miss request including at least a real/absolute address representation and a logical address (LA) representation of the request that missed in the respective cache, a plurality of synonym/cross-interrogate (S/XI) directories each containing a plurality of synonym/ cross-interrogate (S/XI) entries and being associated with the common directory of a respective central processing unit (CPU) , each synonym/cross-interrogate (S/XI) entry including at least a real/absolute address representation and a logical address (LA) representation found in a current entry in the respective cache, a priority circuit receiving the cache miss requests provided to the main storage request registers and priority selecting a received cache miss request of an identified central processing unit (CPU) for a synonym/cross-interrogate (S/XI) determination, synonym/cross-interrogate (S/XI) search means with each synonym/cross-interrogate (S/XI) directory for receiving a real/absolute address representation provided with a priority selected cache miss request for searching the synonym/cross-interrogate (S/XI) entries in each synonym/cross-interrogate (S/XI) directory for any equal real/ absolute address representation, the synonym/ cross-interrogate (S/XI) search means providing, an unequal signal if no synonym/cross-interrogate (S/XI) entry is found or providing synonym/cross-interrogate (S/XI) hit signals if a synonym/cross-interrogate (S/XI) entry is found, the synonym/cross-interrogate (S/XI) hit signals including the logical address (LA) representation in the synonym/ cross-interrogate (S/XI) entry found by a synonym/ cross-interrogate (S/XI) search, a synonym/cross-interrogate (S/XI) bus transmitting the logical address (LA) representation with hit signals to the central processing unit (CPU) requesting the synonym/cross-interrogate (S/XI) search.
  18. 18
    Logical address cache arrangement in a multiprocessing system (MP), as defined in claim 17, the multiprocessing system (MP) further comprising:a synonym signal being provided by the synonym/ cross-interrogate (S/XI) bus when the central processing unit (CPU) making a request is identified as the central processing unit (CPU) associated with the synonym/cross-interrogate (S/XI) directory providing the hit signals found by a synonym/cross-interrogate (S/XI) search.
  19. 19
    Logical address cache arrangement in a multiprocessing system (MP), as defined in claim 17, the multiprocessing system (MP) further comprising:a cast out signal being provided by the synonym/ cross-interrogate (S/XI) bus when the central processing unit (CPU) making a request is identified as not being the central processing unit (CPU) associated with the synonym/cross-interrogate (S/XI) directory providing the hit entry found by a synonym/cross-interrogate (S/XI) search.
  20. 20
    Logical address cache arrangement in a multiprocessing system (MP), as defined in claim 17, the multiprocessing system (MP) further comprising:a cast out signal being provided by the S/XI bus when the central processing unit (CPU) making a request is identified as not being the central processing unit (CPU) associated with the synonym/ cross-interrogate (S/XI) directory providing the hit entry, and the hit entry identifies exclusive data.
  21. 21
    Logical address cache arrangement in a multiprocessing system (MP), as defined in claim 17, the multiprocessing system (MP) further comprising:an invalidate signal being provided by the synonym/ cross-interrogate (S/XI) bus when the central processing unit (CPU) making a request is identified as not being the central processing unit (CPU) associated with the synonym/cross-interrogate (S/XI) directory providing the hit entry, and the hit entry identifies readonly data when the current request is for exclusive data.
  22. 22
    Logical address cache arrangement in a multiprocessing system (MP), as defined in claim 17, the multiprocessing system (MP) further comprising:a set-associative bin number field and a logical address (LA) representation field and a real/ absolute address representation field being provided in each of the main storage request registers respectively receiving cache miss requests from the central processing units (CPUs) , each S/XI entry in each synonym/cross-interrogate (S/XI) directory containing a set-associative bin number field and a logical address (LA) representation field and a real/absolute address representation field, each synonym/cross-interrogate (S/XI) entry being associated with the common directory of a respective central processing unit (CPU), a synonym/cross-interrogate (S/XI) priority register receiving the priority selected output of the priority circuit for searching the synonym/ cross-interrogate (S/XI) entries in each synonym/ cross-interrogate (S/XI) directory, the synonym/ cross-interrogate (S/XI) priority register containing a set-associative bin number field and a logical address (LA) representation field and a real/absolute address representation field, the bin number in a found synonym/cross-interrogate (S/XI) entry identifying a set-associative location in a central processing unit (CPU) cache required by a central processing unit (CPU) request currently in the synonym/cross-interrogate (S/XI) priority register.
  23. 23
    A logical address cache arrangement in a multiprocessing system (MP), as defined in claim 22, the multiprocessing system (MP) further comprising:set-associative location selection means of the central processing unit (CPU) identified by hit signals on the synonym/cross-interrogate (S/XI) bus to ingate a bin number being transmitted on the bus for selecting a set-associative location in a Nth cache of the central processing unit (CPU), the selected location containing line presence fields (LPFs) for locating any set-associative entry(s) in any faster-access cache for obtaining data lines needed for cast out and/or invalidation, means for casting out and/or invalidating any lines found in the faster-access cache at locations indicated by the line presence fields (LPFs) and then casting out and/or invalidating a line found at the selected location in the Nth cache.
  24. 24
    Logical address cache arrangement in a data processing system in which the processor also provides a translation table identifier with each requested logical address, comprising:the cache means including an Ll cache and an L2 cache, each line in the L2 cache being a multiple of the line size in the Ll cache, the Ll cache having faster access time than the L2 cache for the central processing unit (CPU), each entry in a common cache directory corresponding to a data line in the L2 cache and including a line presence field (LPF), which includes a plurality of subfields equal in number to a multiple of the line size in the Ll cache, a plurality of subline locations in each line location in the L2 cache corresponding to the respective subfields in a line presence field (LPF), each L2 cache subline location being equal in size to the line size in the Ll cache, each subfield in the line presence field (LPF) indicating if a corresponding L2 cache subline exists in the Ll cache.
Independent claims24