Cache circuitry, data processing apparatus and method for prefetching data

    公开(公告)号:US20080229070A1

    公开(公告)日:2008-09-18

    申请号:US11716675

    申请日:2007-03-12

    IPC分类号: G06F9/30

    摘要: Cache circuitry, a data processing apparatus including such cache circuitry, and a method for prefetching data into such cache circuitry, are provided. The cache circuitry has a cache storage comprising a plurality of cache lines for storing data values, and control circuitry which is responsive to an access racquet issued by a device of the data processing apparatus identifying a memory address of a data value to be accessed, to cause a lookup operation to be performed to determine whether the data value for that memory address is stored within the cache storage. If not, a linefill operation is initiated to retrieve the data value from memory. Further, prefetch circuitry is provided which is responsive to a determination that the memory address specified by a current access request is the same as a predicted memory address, to perform either a first prefetch linefill operation or a second prefetch linefill operation to retrieve from memory at least one further data value in anticipation of that data value being the subject of a subsequent access request. The selection of either the first prefetch linefill operation or the second prefetch linefill operation is performed in dependence on an attribute of the current access request. The first prefetch linefill operation involves issuing a sequence of memory addresses to memory, and allocating into a corresponding sequence of cache lines the data values returned from the memory in response to that sequence of addresses. The second prefetch linefill operation comprises issuing a selected memory address to memory, and storing in a linefill buffer the at least one data value returned from the memory in response to that memory address, with that at least one data value only being allocated into the cache when a subsequent access request specifies the selected memory address. By such an approach, the operation of the prefetch circuitry can be altered to take into account the type of access request being issued.

    Handling of write access requests to shared memory in a data processing apparatus
    3.
    发明授权
    Handling of write access requests to shared memory in a data processing apparatus 有权
    在数据处理设备中处理对共享存储器的写访问请求

    公开(公告)号:US08271730B2

    公开(公告)日:2012-09-18

    申请号:US11907265

    申请日:2007-10-10

    IPC分类号: G06F12/00

    CPC分类号: G06F12/0831

    摘要: A plurality of processing units for performing data processing operations require access to data in shared memory. Each has an associated cache storing a subset of the data for access by that processing unit. A cache coherency protocol ensures data accessed by each unit is up-to-date. Each unit issues a write access request when outputting a data value for storing in shared memory. When the write access request requires both the associated cache and the shared memory to be updated, a coherency operation is initiated within the cache coherency logic. The coherency operation is performed for all of the caches including the cache associated with the processing unit that issued the write access request in order to ensure that the data in those caches is kept coherent.

    摘要翻译: 用于执行数据处理操作的多个处理单元需要访问共享存储器中的数据。 每个具有存储用于该处理单元访问的数据的子集的相关联的高速缓存。 缓存一致性协议确保每个单元访问的数据是最新的。 当输出用于存储在共享存储器中的数据值时,每个单元发出写访问请求。 当写访问请求需要更新相关联的高速缓存和共享存储器时,在高速缓存一致性逻辑内启动一致性操作。 对于包括与发出写访问请求的处理单元相关联的缓存的所有缓存执行一致性操作,以便确保这些高速缓存中的数据保持一致。

    Speculative data value usage
    4.
    发明授权
    Speculative data value usage 有权
    投机数据使用量

    公开(公告)号:US07590826B2

    公开(公告)日:2009-09-15

    申请号:US11593151

    申请日:2006-11-06

    IPC分类号: G06F15/76

    摘要: A data processing system 2 utilizes a register renaming mechanism 10, 26 to rename architectural register specifiers to physical register specifiers to facilitate out-of-order processing. The register renaming mechanism 10, 26 includes a renaming recovery unit 26 which enables recovery from incorrectly executed speculative instructions by restoring the register mapping to the state prior to those incorrect instructions with the physical registers restored to containing the data values which were current at the time prior to that incorrect instruction. In the case of load instructions, these are treated as speculative but the data value returned in response to the load instruction and stored within a physical register is released for use as soon as it is returned and prior to a determination result being available as to whether or not that data value is corrupt. Corruption checking an take the form of ECC checking, parity checking and the like, and when a late error signal is generated then this indicates whether or not the data value has been properly released for use. If corruption is detected, then the renaming recovery unit 26 is used to recover the state of the system 2 in a precise way to that preceding the failing load instruction.

    摘要翻译: 数据处理系统2利用寄存器重命名机构10,26将架构寄存器说明符重命名为物理寄存器说明符,以便于无序处理。 寄存器重命名机构10,26包括重命名恢复单元26,其使得能够通过将寄存器映射恢复到在那些不正确的指令之前的状态,使得恢复到不正确执行的推测性指令,使物理寄存器恢复为包含当时当前的数据值 在该错误指令之前。 在加载指令的情况下,这些被视为推测性的,但是响应于加载指令返回并存储在物理寄存器中的数据值在返回时被解除使用,并且在确定结果可用于是否 或者不是该数据值已损坏。 腐败检查采取ECC检查,奇偶校验等形式,并且当产生延迟错误信号时,这指示数据值是否已被正确释放以供使用。 如果检测到损坏,则重命名恢复单元26用于以精确的方式将系统2的状态恢复到故障加载指令之前的状态。

    Speculative data value usage
    5.
    发明申请
    Speculative data value usage 有权
    投机数据使用量

    公开(公告)号:US20080109614A1

    公开(公告)日:2008-05-08

    申请号:US11593151

    申请日:2006-11-06

    IPC分类号: G06F9/30 G06F15/76 G06F12/00

    摘要: A data processing system 2 utilises a register renaming mechanism 10, 26 to rename architectural register specifiers to physical register specifiers to facilitate out-of-order processing. The register renaming mechanism 10, 26 includes a renaming recovery unit 26 which enables recovery from incorrectly executed speculative instructions by restoring the register mapping to the state prior to those incorrect instructions with the physical registers restored to containing the data values which were current at the time prior to that incorrect instruction. In the case of load instructions, these are treated as speculative but the data value returned in response to the load instruction and stored within a physical register is released for use as soon as it is returned and prior to a determination result being available as to whether or not that data value is corrupt. Corruption checking an take the form of ECC checking, parity checking and the like, and when a late error signal is generated then this indicates whether or not the data value has been properly released for use. If corruption is detected, then the renaming recovery unit 26 is used to recover the state of the system 2 in a precise way to that preceding the failing load instruction.

    摘要翻译: 数据处理系统2利用寄存器重命名机构10,26将架构寄存器说明符重命名为物理寄存器说明符,以便于无序处理。 寄存器重命名机构10,26包括重命名恢复单元26,其使得能够通过将寄存器映射恢复到在那些不正确的指令之前的状态,使得恢复到不正确执行的推测性指令,使物理寄存器恢复为包含当时当前的数据值 在该错误指令之前。 在加载指令的情况下,这些被视为推测性的,但是响应于加载指令返回并存储在物理寄存器中的数据值在返回时被解除使用,并且在确定结果可用于是否 或者不是该数据值已损坏。 腐败检查采取ECC检查,奇偶校验等形式,并且当产生延迟错误信号时,这指示数据值是否已被正确释放以供使用。 如果检测到损坏,则重命名恢复单元26用于以精确的方式将系统2的状态恢复到故障加载指令之前的状态。

    Store buffer capable of maintaining associated cache information
    6.
    发明授权
    Store buffer capable of maintaining associated cache information 有权
    能够维护关联缓存信息的存储缓冲器

    公开(公告)号:US07587556B2

    公开(公告)日:2009-09-08

    申请号:US11391689

    申请日:2006-03-29

    IPC分类号: G06F13/00 G06F13/28

    摘要: A store buffer, method and data processing apparatus is disclosed. The store buffer comprises: reception logic operable to receive a request to write a data value to an address in memory; buffer logic having a plurality of entries, each entry being selectively operable to store request information indicative of a previous request and to maintain associated cache information indicating whether a cache line in a cache is currently allocated for writing data values to an address associated with that request; and entry selection logic operable to determine which one of the plurality entries to allocate to store the request using the request information and the associated cache information of the plurality of entries to determine whether a cache line in the cache is currently allocated for writing the data value to the address in memory. By reviewing the entries in the buffer logic and identifying which entry to store the request based on information currently stored by the buffer logic, the need to obtain cache information indicating whether any cache line in a cache is currently allocated for writing the data value may be obviated. In turn, the need to perform a cache look up to obtain the cache information may also be obviated. It will be appreciated that by obviating the need to perform a cache lookup, the power consumption of the store buffer may be reduced. Also, the amount of cache bandwidth consumed by performing unnecessary cache lookups may also be reduced, thereby significantly improving the performance of the cache.

    摘要翻译: 公开了存储缓冲器,方法和数据处理装置。 存储缓冲器包括:接收逻辑,用于接收将数据值写入存储器中的地址的请求; 缓冲器逻辑具有多个条目,每个条目可选择性地操作以存储指示先前请求的请求信息,并且维护指示高速缓存中的高速缓存行当前是否被分配用于将数据值写入与该请求相关联的地址的相关联的高速缓存信息 ; 以及条目选择逻辑,其可操作以使用所述多个条目的所述请求信息和所述相关联的高速缓存信息来确定要分配的所述多个条目中的哪一个以存储所述请求,以确定所述高速缓存中的高速缓存行当前是否被分配用于写入所述数据值 到内存中的地址。 通过根据缓冲器逻辑当前存储的信息来查看缓冲器逻辑中的条目并识别存储请求的条目,需要获得指示高速缓存中的任何高速缓存行当前被分配用于写数据值的高速缓存信息可以是 消除了 反过来,也可以避免执行缓存查询以获得高速缓存信息的需要。 应当理解,通过消除执行高速缓存查找的需要,可以减少存储缓冲器的功耗。 此外,还可以减少通过执行不必要的高速缓存查找而消耗的高速缓存带宽的量,从而显着地提高高速缓存的性能。

    Handling of cache accesses in a data processing apparatus
    7.
    发明授权
    Handling of cache accesses in a data processing apparatus 有权
    处理数据处理设备中的高速缓存访​​问

    公开(公告)号:US07761665B2

    公开(公告)日:2010-07-20

    申请号:US11134513

    申请日:2005-05-23

    IPC分类号: G06F12/00

    摘要: The present invention provides a data processing apparatus and method for handling cache accesses. The data processing apparatus comprises a processing unit operable to issue a series of access requests, each access request having associated therewith an address of a data value to be accessed. Further, the data processing apparatus has an n-way set associative cache memory operable to store data values for access by the processing unit, each way of the cache memory comprising a plurality of cache lines, and each cache line being operable to store a plurality of data values. The cache memory further comprises for each way a TAG storage for storing, for each cache line of that way, a corresponding TAG value. The cache memory is operable, when the processing unit is issuing access requests specifying data values held sequentially in a cache line of a current way of the cache memory, to perform a speculative lookup in at least one TAG storage to determine whether the TAG value associated with the next cache line in one way associated with the at least one TAG storage equals an expected tag value. If that TAG value does equal the expected tag value, and following an access request identifying a last data value in the cache line of the current way, a further access request is issued identifying the next cache line, then the cache memory is operable, without further reference to any TAG storage of the cache memory, to access from that next cache line of the one way the data value the subject of the further access request. This provides significant power savings when handling accesses to a cache memory.

    摘要翻译: 本发明提供一种用于处理高速缓存存取的数据处理装置和方法。 数据处理装置包括可操作以发出一系列访问请求的处理单元,每个访问请求具有与其相关联的要访问的数据值的地址。 此外,数据处理装置具有n路组合关联高速缓冲存储器,其可操作以存储用于由处理单元进行访问的数据值,高速缓存存储器的每个方式包括多条高速缓存行,并且每条高速缓存行可操作以存储多个 的数据值。 高速缓冲存储器还包括用于每个方式的TAG存储器,用于针对每个高速缓存行存储相应的TAG值。 高速缓存存储器可操作,当处理单元发出指定在缓冲存储器的当前方式的高速缓存行中顺序保持的数据值的访问请求时,在至少一个TAG存储器中执行推测查找以确定是否相关联的TAG值 其中与所述至少一个TAG存储器相关联的下一个高速缓存行与预期的标签值相等。 如果该TAG值等于预期标签值,并且在当前方式的高速缓存行中识别出最后一个数据值的访问请求之后,则发出另一个访问请求,标识下一个高速缓存行,则高速缓冲存储器可操作,而不需要 进一步参考高速缓冲存储器的任何TAG存储器,从该方式的下一个高速缓存行访问数据值作为进一步访问请求的主题。 当处理对高速缓冲存储器的访问时,这提供了显着的功率节省。

    Management of cache memories in a data processing apparatus
    9.
    发明授权
    Management of cache memories in a data processing apparatus 有权
    数据处理装置中的高速缓冲存储器的管理

    公开(公告)号:US07434007B2

    公开(公告)日:2008-10-07

    申请号:US11091929

    申请日:2005-03-29

    IPC分类号: G06F12/00

    CPC分类号: G06F12/0897 G06F12/0891

    摘要: The present invention provides a data processing apparatus and method for managing cache memories. The data processing apparatus comprises a processing unit for issuing an access request seeking access to a data value, and a hierarchy of cache memories for storing data values for access by the processing unit. The hierarchy of cache memories comprises at least an n-th level cache memory and n+1-th level cache memory which at least in part employ exclusive behavior with respect to each other. Each cache memory comprises a plurality of cache lines, at least one dirty value being associated with each cache line, and each dirty value being settable to indicate that at least one data value held in the associated cache line is more up-to-date than a corresponding data value stored in a main memory. When employing exclusive behavior, the n-th level cache memory is operable, on eviction of a cache line from the n-th level cache memory to the n+1-th level cache memory, to additionally pass an indication of the at least one associated dirty value from the n-th level cache memory to the n+1-th level cache memory. This has been found to reduce the frequency of evictions of lines from the n+1-th level cache memory when employing exclusive behaviour.

    摘要翻译: 本发明提供一种用于管理高速缓冲存储器的数据处理装置和方法。 数据处理装置包括用于发出寻求对数据值的访问的访问请求的处理单元和用于存储由处理单元访问的数据值的高速缓存存储器的层级。 高速缓冲存储器的层级包括至少部分地采用彼此排他行为的至少第n级高速缓冲存储器和n + 1级高速缓冲存储器。 每个高速缓冲存储器包括多个高速缓存行,至少一个脏值与每个高速缓存行相关联,并且每个脏值可被设置以指示保持在相关联的高速缓存行中的至少一个数据值更新到比 存储在主存储器中的相应数据值。 当采用独占行为时,在从第n级高速缓冲存储器到第n + 1级高速缓冲存储器的高速缓存行的逐出时,第n级高速缓冲存储器可操作,以附加地通过至少一个 相关联的脏值从第n级高速缓存到第n + 1级缓存。 已经发现,当采用独占行为时,可以减少n + 1级高速缓冲存储器中线路的驱逐频率。

    Cache logic, data processing apparatus including cache logic, and a method of operating cache logic
    10.
    发明申请
    Cache logic, data processing apparatus including cache logic, and a method of operating cache logic 有权
    缓存逻辑,包括高速缓存逻辑的数据处理装置,以及操作高速缓存逻辑的方法

    公开(公告)号:US20080109606A1

    公开(公告)日:2008-05-08

    申请号:US11592320

    申请日:2006-11-03

    IPC分类号: G06F12/08

    摘要: Cache logic is provided for use in a data processing apparatus, the cache logic having a cache storage comprising a plurality of cache lines for storing data values. Control logic is arranged, in response to an access request issued by a device of the data processing apparatus identifying a memory address of the data value to be accessed, to cause a lookup operation to be performed to determine whether the data value for that memory address is stored within the cache storage. The control logic is further operable if the data value is not stored in the cache storage to perform a linefill process, the linefill process comprising performing an eviction to evict to memory of the data processing apparatus current content of a selected cache line, keeping the current content valid in the selected cache line whilst the eviction is taking place, and storing from the memory into the selected cache line new content including the data value the subject of the access request. Whilst the eviction is taking place, the control logic allows the current content of the selected cache line to be accessed by subsequent read access requests seeking to read a data value within that current content, but prevents the current content of the selected cache line being accessed by subsequent write access requests seeking to write to a data value within that current content.

    摘要翻译: 高速缓存逻辑被提供用于数据处理设备,高速缓存逻辑具有高速缓存存储器,其包括用于存储数据值的多条高速缓存行。 响应于由数据处理装置的设备发出的识别要访问的数据值的存储器地址的访问请求来布置控制逻辑,以执行查找操作以确定该存储器地址的数据值 存储在缓存存储器中。 如果数据值未被存储在高速缓冲存储器中以执行线路填充处理,则该控制逻辑进一步可操作,该线路填充处理包括执行驱逐以驱逐数据处理装置的存储器,以选择高速缓存行的当前内容,保持当前 内容在被驱逐的同时在所选择的高速缓存行中有效,并且从存储器存储到所选择的高速缓存行中,包括访问请求的主题的数据值的新内容。 在发生迁移的同时,控制逻辑允许通过随后的读取访问请求来访问所选择的高速缓存行的当前内容,该读取访问请求尝试读取该当前内容内的数据值,但是阻止所选择的高速缓存行的当前内容被访问 通过随后的写访问请求寻求写入当前内容内的数据值。