Source: http://www.google.fr/patents/US8032711
Timestamp: 2018-01-21 14:56:27
Document Index: 113623299

Matched Legal Cases: ['Application No. 2007', 'Application No. 200710300796', 'Application No. 10', 'Application No. 10', 'Application No. 10', 'Application No. 10']

Brevet US8032711 - Prefetching from dynamic random access memory to a static random access memory - Google Brevets
Embodiments of the invention are generally directed to systems, methods, and apparatuses for prefetching from a dynamic random access memory (DRAM) to a static random access memory (SRAM). In some embodiments, prefetch logic receives a prefetch hint associated with a load instruction. The prefetch logic...http://www.google.fr/patents/US8032711?utm_source=gb-gplus-shareBrevet US8032711 - Prefetching from dynamic random access memory to a static random access memory
Numéro de publication US8032711 B2
Numéro de demande US 11/644,358
Date de dépôt 22 déc. 2006
Date de priorité 22 déc. 2006
Autre référence de publication CN101241475A, CN101241475B, DE102007059784A1, US20080155196
Numéro de publication 11644358, 644358, US 8032711 B2, US 8032711B2, US-B2-8032711, US8032711 B2, US8032711B2
Inventeurs Bryan Black, Murali M. Annavaram, Donald W. McCauley, John P. Devale
Citations de brevets (39), Citations hors brevets (32), Référencé par (33), Classifications (17), Événements juridiques (2)
Prefetching from dynamic random access memory to a static random access memory
US 8032711 B2
Embodiments of the invention are generally directed to systems, methods, and apparatuses for prefetching from a dynamic random access memory (DRAM) to a static random access memory (SRAM). In some embodiments, prefetch logic receives a prefetch hint associated with a load instruction. The prefetch logic may transfer two or more cache lines from an open page in the DRAM to the SRAM based, at least in part, on the prefetch hint.
a first die to be stacked with a second die, wherein a through-silicon die-to-die via is coupled between the first die and the second die, the first die having:
a static random access memory (SRAM);
a plurality of processor cores coupled to one another by the bus, the plurality of processor cores to further couple to a dynamic random access memory (DRAM) of the second die via the bus and the through-silicon die-to-die via, wherein the bus to experience a level of usage by the plurality of processors, the plurality of processor cores having a first processor core including:
instruction processing logic to generate a prefetch hint associated with a first load instruction, wherein the instruction processing logic to generate the prefetch hint in response to detecting an instruction pointer history, the prefetch hint representing a level of confidence that two or more load instructions subsequent to the first load instruction are likely to request data from a same cache page, the instruction processing logic further to send the prefetch hint in response to a miss of the L1 cache; and
prefetch logic coupled to the instruction processing logic, the prefetch logic to compare to one another the level of confidence represented in the prefetch hint and an indication of the level of usage experienced by the bus, the prefetch logic further to determine, based on the comparing, whether or not to prefetch data, and where the prefetch logic determines to prefetch data, the prefetch logic further to transfer two or more cache lines from an open page in the DRAM to the SRAM, wherein data of the two or more cache lines is transferred by way of the through-silicon die-to-die via and the bus, wherein the DRAM provides a level of cache and the SRAM provides a next higher level of cache.
2. The integrated circuit of claim 1, wherein the two or more cache lines comprises a page of memory.
3. The integrated circuit of claim 1, the plurality of cores further having a second core including:
an second L1 cache;
second instruction processing logic to generate a second prefetch hint associated with a second load instruction representing a second level of confidence that two or more load instructions subsequent to the second load instruction are likely to request data from a same cache page, the instruction processing logic further to send the second prefetch hint in response to a miss of the second L1 cache; and
second prefetch logic coupled to the second instruction processing logic, the second prefetch logic to compare to one another the second level of confidence represented in the second prefetch hint and an indication of a second level of usage experienced by the bus, the prefetch logic further to transfer, based on the comparing, two or more other cache lines from an open page in the DRAM to a second SRAM, the transferring the two or more other cache lines via the through-silicon die-to-die via.
4. The integrated circuit of claim 1, wherein the first processor core includes the SRAM.
5. The integrated circuit of claim 1, wherein the DRAM comprises bulk memory.
6. The integrated circuit of claim 1, wherein the level of cache is an L3 cache and the next higher level of cache is an L2 cache.
7. The integrated circuit of claim 6, wherein each of the plurality of processor cores includes a respective prefetch logic.
8. The integrated circuit of claim 6, wherein the processor core comprises a graphics core.
with instruction processing logic of a first processor core, generating a prefetch hint associated with a load instruction, the first processor core including an L1 cache, wherein a first die having a plurality of processor cores including the first processor core is stacked with a second die, wherein a through-silicon die-to-die via is coupled between the first die and the second die, wherein the plurality of cores are coupled to one another by a bus of the first die, and wherein the plurality of cores are further coupled to a dynamic random access memory (DRAM) of the second die by the bus and the through-silicon die-to-die via, wherein the bus experiences a level of usage by the plurality of processors, the generating the prefetch hint in response to detecting an instruction pointer history, the prefetch hint representing a level of confidence that two or more load instructions subsequent to the first load instruction are likely to request data from a same cache page;
in response to a cache miss of the L1 cache, the instruction processing logic sending the prefetch hint; and
with prefetch logic of the first processor core:
comparing to one another the level of confidence represented in the prefetch hint and an indication of the level of usage experienced by the bus;
based on the comparing, determining whether or not to prefetch data; and
in response to determining to prefetch data, transferring two or more cache lines from an open page in the DRAM to a static random access memory (SRAM) of the first die, wherein data of the two or more cache lines is transferred by way of the through-silicon die-to-die via and the bus.
10. The method of claim 9, wherein the level of confidence is one of three or more values.
11. The method of claim 10, wherein the three or more values comprise high, medium, and low.
12. The method of claim 9, wherein transferring the two or more cache lines from the open page in the DRAM comprises:
transferring a cache page from the open page in the DRAM.
13. The method of claim 9, wherein the DRAM comprises bulk memory.
14. The method of claim 9, wherein the DRAM provides a level of cache.
a first die including a dynamic random access memory (DRAM); and
a second die stacked with the first die, wherein a through-silicon die-to-die via is coupled between the first die and the second die, the second die including:
a plurality of processor cores coupled to one another by the bus, the plurality of processor cores further coupled to the DRAM via the bus and the through-silicon die-to-die via, wherein the bus to experience a level of usage by the plurality of processors, the plurality of processor cores including a first processor core having:
an L1 cache,
instruction processing logic to generate a prefetch hint associated with a first load instruction, wherein the instruction processing logic to generate the prefetch hint in response to detecting an instruction pointer history, the prefetch hint representing a level of confidence that two or more load instructions subsequent to the first load instruction are likely to request data from a same cache page, the instruction processing logic further to send the prefetch hint in response to a miss of the L1 cache, and
prefetch logic coupled to the instruction processing logic, the prefetch logic to compare to one another the level of confidence represented in the prefetch hint and an indication of the level of usage experienced by the bus, the prefetch logic further to determine, based on the comparing, whether or not to prefetch data, and where the prefetch logic determines to prefetch data, the prefetch logic further to transfer two or more cache lines from an open page in the DRAM to the SRAM, wherein data of the two or more cache lines is transferred by way of the through-silicon die-to-die via and the bus, and wherein the DRAM provides a level of cache and the SRAM provides a next higher level of cache.
16. The system of claim 15, wherein the two or more cache lines comprises a page of memory.
17. The system of claim 15, the plurality of cores further having a second core including:
18. The integrated circuit of claim 15, wherein the processor core comprises a graphics core.
Embodiments of the invention generally relate to the field of integrated circuits and, more particularly, to systems, methods, and apparatuses for prefetching from a dynamic random access memory (DRAM) to a static random access memory (SRAM).
Industrial chip designs are moving towards chip multi-processors (CMPs). In comparison to high frequency uniprocessors, CMPs provide improved performance and reduced power consumption. CMPs use relatively simple cores and rely on thread level parallelism (TLP) to improve performance. Applications running on CMPs have to increase TLP to efficiently utilize the core count.
Increasing TLP, however, also increases memory level parallelism (MLP) by increasing the number of outstanding memory requests per clock. In addition, the data working set of the multi-threaded applications will likely grow with the thread count. Finally, increasing TLP is also likely to increase the randomness of accesses to the shared caches since accesses from several threads will be interleaved. Thus, memory bandwidth and cache capacity should scale with core count to support the increased MLP and data footprint.
Recently, three dimensional (3D) die stacking has been proposed as a viable option for stacking a dense memory die (such as DRAM) on a microprocessor die. Stacking allows disparate Si technologies to be combined in a die stack, without concern for technology integration into a single process flow. Stacking also provides a very-high bandwidth interface between the die using through-silicon-vias. Thus, 3D stacking of memory (such as DRAM) on CMPs may effectively address the memory hierarchy hurdles for CMP scaling.
DRAMs typically keep an open row activated until another row is required to reduce access latency. This technique is called an open-page policy and it works best if successive accesses to the DRAM are to the same open page. Otherwise, bank closes and precharge penalties significantly increase the total latency of accessing a bank. Traditionally, there is only one open page per bank in DRAM designs.
FIG. 2 is a conceptual diagram illustrating a block transfer according to an embodiment of the invention.
FIG. 3 is a high-level block diagram illustrating selected aspects of a computing system implemented according to an embodiment of the invention.
FIG. 4 is a high-level block diagram illustrating an embodiment in which the L2 cache is shared.
FIG. 5 is a high-level block diagram illustrating an embodiment in which the prefetch logic is used at different levels within the cache hierarchy.
FIG. 6 is a flow diagram illustrating selected aspects of a block transfer according to an embodiment of the invention.
FIG. 7 is a cross-sectional view of a semiconductor device, implemented according to an embodiment of the invention.
Experience has shown that the locality of accesses to the DRAM is likely to be more random as the number of threads accessing the DRAM increases. Since DRAMs have a limited number of banks (e.g., 16) the number of page opens may increase dramatically as the number of threads increases. Thus, the consequences of bank thrashing could significantly impact the performance of the system.
Embodiments of the invention are generally directed to systems, methods, and apparatuses for prefetching from a dynamic random access memory (DRAM) to a static random access memory (SRAM). In some embodiments, two or more cache lines are transferred from an open page in DRAM to an SRAM. The transfer may occur over a dense interconnect such as a die-to-die via. As is further described below, embodiments of the invention may effectively provide memory resources suitable for CMP scaling.
FIG. 1 is a block diagram illustrating selected aspects of a computing system implemented according to an embodiment of the invention. Computing system 100 includes core(s) 102 coupled with DRAM 104 through interconnect 106. Core 102 may be nearly any core logic of an integrated circuit including a general processing core, a graphics core, and the like. In some embodiments, core 102 is one of a plurality of cores on a die (e.g., a CMP).
Core 102 includes instruction processing logic 108, Ln cache (e.g., L2 cache) 110, and prefetch (PF) logic 112. Instruction processing logic 108 may include one or more elements to process instructions such as an instruction pointer, decode logic, registers, and an L1 cache. In some embodiments instruction logic 108 may also include logic to generate a prefetch hint (e.g., prefetch hint 114). A prefetch hint broadly refers to an indication that two or more load instructions are likely to request data from the same cache page. In some embodiments, the prefetch hint may be a confidence value generated by an instruction pointer (IP) history based stride detection mechanism. In alternative embodiments, a different mechanism may be used to generate the prefetch hint.
Ln cache 110 and PF logic 112 are coupled with instruction processing logic 108 through interconnect 116 (e.g., an L2 bus). In some embodiments, if there is an L1 cache miss, then the miss and prefetch hint 114 are forwarded (directly or through one or more levels in a memory hierarchy) to Ln cache 110 and/or prefetch logic 112. Prefetch logic 112 may determine whether to prefetch two or more cache lines from an open page of DRAM 104 based, at least in part, on prefetch hint 114. For example, if prefetch hint 114 indicates that there is a high probability that a number of LOAD instructions are going to exhibit streaming behavior, then PF logic 112 may transfer an entire open page of data from DRAM 104 to Ln cache 110.
In some embodiments, PF logic 112 may include logic to throttle a prefetch if, for example, the usage level of interconnect 106 is too high. In such embodiments, PF logic 112 may compare the level of confidence (e.g., high, medium, or low) provided by prefetch hint 114 with an indication of interconnect usage level and determine whether or not to prefetch data from DRAM 104. The term “data,” as used herein, broadly refers to any type of information, including instructions, in any form recognizable to core 102.
DRAM 104 may be nearly any form of DRAM including commodity DRAM, reduced latency DRAM (RLDRAM), magnetic random access memory (MRAM), and the like. In addition, DRAM 104 may have nearly any number of banks having almost any page size. In some embodiments, DRAM 104 has 16 banks and each page is 4 kilobytes (KB).
Interconnect 106 may be any of a wide range of die-to-die and/or chip-to-chip interconnects. In some embodiments, core 102 and DRAM 104 are vertically stacked and interconnect 106 is a high density die-to-die via. In alternative embodiments, core 102 and DRAM 104 are packaged together in a multi-chip module and interconnect 106 provides a high density interconnect between (at least) some of the chips in the module. In yet other alternative embodiments, core 102 and DRAM 104 may be in separate packages and interconnect 106 connects the packages.
FIG. 2 is a conceptual diagram illustrating a block transfer according to an embodiment of the invention. DRAM 202 is organized into one or more cache pages 204. In some embodiments, DRAM 202 has one cache page open at any given time (assuming the device is in operation). For example, in the illustrated embodiment, cache page 206 is open. Each cache page consists of two or more cache lines 208 each having two or more bytes of data. In some embodiments, prefetch logic (e.g., prefetch logic 112, shown in FIG. 1) transfers a block of two or more cache lines from open DRAM cache page 206 to SRAM 210. The decision to transfer a block of cache lines may be based, at least in part, on a prefetch hint (e.g., prefetch hint 114, shown in FIG. 1). Block transfers of data from a DRAM to an SRAM are further described below with reference to FIGS. 3-7.
FIG. 3 is a high-level block diagram illustrating selected aspects of a computing system implemented according to an embodiment of the invention. System 300 includes a plurality of cores 302. Cores 302 may be any of a wide variety of cores includes general processing cores and graphics cores. In some embodiments, each core has a private L1 cache 304 and a private L2 cache 306. In addition, each core (or a subset of the cores) may include PF logic 308.
In some embodiments, DRAM L3 cache 310 is on a die that is vertically stacked with the die that contains cores 302. In such embodiments, L3 bus 314 may be a high density die-to-die interconnect. Bulk DRAM 312 provides system memory and may include a number of memory devices that are separate from cores 302 and DRAM L3 cache 310.
In some embodiments, PF logic 308 transfers two or more cache lines from an open page of DRAM L3 cache to an SRAM L2 cache. The decision to transfer a block of cache lines may be based, at least in part, on a prefetch hint provided to PF logic 308 from instruction processing logic on core 302 (e.g., instruction processing logic 102, shown in FIG. 1). In addition, the decision to transfer a block of cache lines may be based, at least in part, on the level of use experienced by bus 314. In some embodiments, PF logic 308 may transfer an entire page of memory from DRAM L3 310 to SRAM L2 306.
FIG. 4 is a high-level block diagram illustrating an embodiment in which the L2 cache is shared. In the illustrated embodiment, each core 302 has a private L1 cache and the cores share L2 cache 402. If there is a miss for L1 cache 304, the miss and a prefetch hint may be forwarded to L2 cache 402 and/or PF logic 404. In some embodiments, PF logic 404 determines whether to transfer two or more cache lines from an open page of DRAM L3 310 based, at least in part, on the prefetch hint. In addition, prefetch logic 404 may base the transfer decision on other factors including the usage level of L3 bus 314.
FIG. 5 is a high-level block diagram illustrating an embodiment in which the prefetch logic is used at different levels within the cache hierarchy. In some embodiments, a cache miss (e.g., both an L1 and L2 cache miss) and a prefetch hint may be forwarded to DRAM L3 cache 502 and/or PF logic 504. PF logic 504 may transfer two or more cache lines from an open page of bulk DRAM 312 to DRAM L3 cache 502 based, at least in part, on the prefetch hint (and possibly other factors such as bus usage levels). Prefetch logic 308 may, in turn, transfer two or more cache lines from an open page of DRAM L3 cache 502 to SRAM L2 cache 306. While the illustrated embodiment shows two levels of batch prefetching, it is to be appreciated that the batch transfer of a block of cache lines could be performed nearly any number of times across nearly any number of levels of cache.
FIG. 6 is a flow diagram illustrating selected aspects of a block transfer according to an embodiment of the invention. Referring to process block 602, prefetch logic (e.g., prefetch logic 112, shown in FIG. 1) receives a prefetch hint associated with a LOAD instruction. In some embodiments, the prefetch hint is generated by an IP-based stride detection algorithm. In such embodiments, the prefetch hint may indicate how likely it is that subsequent LOAD instructions will have a monotonically increasing or decreasing address stride. In some embodiments, the prefetch hint may have any of a number of values indicating a degree of confidence in whether subsequent LOAD instructions will have a monotonically increasing or decreasing address stride. For example, the prefetch hint may indicate a confidence of high, medium, or low. Alternatively, nearly any scheme may be used to indicate the level of confidence.
Referring to process block 604, the PF logic may throttle the block prefetch based on one or more conditions or factors. The term “throttle” can refer to a number of behaviors including delaying a transfer, cancelling a transfer, altering the size of a transfer, and the like. The conditions that trigger a throttling of the transfer may include: a usage level of the interconnect over which the transfer is to occur, a prefetch hint, a power savings level, and the like. As indicated by the dashed line, the throttling mechanism is optional in some embodiments.
Referring to process block 606, the PF logic transfers two or more cache lines from a DRAM to an SRAM based, at least in part, on the prefetch hint. For example, if the prefetch hint indicates a high likelihood that a number of LOAD instructions will have a monotonically increasing or decreasing address stride, then the PF logic may transfer a block of cache lines into cache to increase the likelihood that requested data is stored in cache. The DRAM may be part of the cache hierarch and/or an element of bulk memory. In addition, the SRAM may reside at nearly any level of the cache hierarchy.
FIG. 7 illustrates a cross-sectional view of a semiconductor device 700 in accordance with an embodiment of the invention. Device 700 may include a package 702, die 728, die 730, and die-to-die vias 726. One or more bumps 704-1 through 704-N (collectively referred to herein as “bumps 704”) may allow electrical signals including power, ground, clock, and/or input/output (I/O) signals to pass between the package 702 and the die 728. Die 728 may include one or more through-die vias 706 to pass signals between the bumps 704 and the die 730. The device 700 may further include a heat sink 708 to allow for dissipation of generated heat by the die 730 and/or device 700.
Dies 728 and 730 may include various layers. For example, die 728 may include a bulk silicon (SI) layer 710, an active Si layer 712, and a metal stack 714. Die 730 may include a metal stack 720, an active Si layer 722, and a bulk Si layer 724. As shown in FIG. 2, the vias 726 may communicate with the dies 728 and 730 through the metal stacks 714 and 720, respectively. In an embodiment, die 728 may be thinner than die 730. For example, die 728 may include a memory device (such as a random access memory device) and die 730 may include one or more processor cores and/or shared or private caches.
Die 730 includes one or more instances of PF logic 732. In some embodiments, PF logic 732 may transfer two or more cache lines from a DRAM in die 728 to an SRAM in die 730. The transfer may occur through die-to-die vias 726. In some embodiments, the relatively high bandwidth of die-to-die vias 726 enables PF logic 732 to transfer blocks of multiple cache lines without a significant increase in latency.
Device 700 may include additional dies, e.g., to integrate other components into the same device or system. In such an embodiment, die-to-die and/or through-die vias may be used to communicate signals between the various dies (e.g., such as discussed with respect to the vias 726 and 706).
US5659713 7 déc. 1995 19 août 1997 Digital Equipment Corporation Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
US5778436 25 nov. 1997 7 juil. 1998 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
US6055622 * 3 févr. 1997 25 avr. 2000 Intel Corporation Global stride prefetching apparatus and method for a high-performance processor
US6061073 * 12 nov. 1997 9 mai 2000 Cirrus Logic, Inc. Tracking of graphics polygon data from different clock domains in a graphics processor
US6317810 * 25 juin 1997 13 nov. 2001 Sun Microsystems, Inc. Microprocessor having a prefetch cache
US6341334 26 oct. 1998 22 janv. 2002 Mitsubishi Denki Kabushiki Kaisha Bridge method, bus bridge, and multiprocessor system
US6446167 * 8 nov. 1999 3 sept. 2002 International Business Machines Corporation Cache prefetching of L2 and L3
US6690604 18 déc. 2001 10 févr. 2004 Intel Corporation Register files and caches with digital sub-threshold leakage current calibration
US6820173 23 févr. 2001 16 nov. 2004 Nvidia Corporation Data prefetcher with predictor capabilities
US6983356 19 déc. 2002 3 janv. 2006 Intel Corporation High performance memory device-state aware chipset prefetcher
US7487296 * 17 févr. 2005 3 févr. 2009 Sun Microsystems, Inc. Multi-stride prefetcher with a recurring prefetch table
US7533242 * 15 avr. 2006 12 mai 2009 Sun Microsystems, Inc. Prefetch hardware efficiency via prefetch hint instructions
US20020144083 30 mars 2001 3 oct. 2002 Hong Wang Software-based speculative pre-computation and multithreading
US20020199179 21 juin 2001 26 déc. 2002 Lavery Daniel M. Method and apparatus for compiler-generated triggering of auxiliary codes
US20030088740 * 18 juin 2002 8 mai 2003 Ip-First, Llc. Microprocessor and method for performing selective prefetch based on bus activity level
US20030105940 * 5 juin 2002 5 juin 2003 Cooksey Robert N. Method and apparatus for reinforcing a prefetch chain
US20040123043 19 déc. 2002 24 juin 2004 Intel Corporation High performance memory device-state aware chipset prefetcher
US20040133736 18 déc. 2003 8 juil. 2004 Samsung Electronics Co., Ltd. Memory module device for use in high-frequency operation
US20040164334 * 24 févr. 2004 26 août 2004 Masleid Robert P. Hybrid bulk/silicon-on-insulator multiprocessors
US20040268050 * 30 juin 2003 30 déc. 2004 Cai Zhong-Ning Apparatus and method for an adaptive multiple line prefetcher
US20040268051 * 20 juil. 2004 30 déc. 2004 University Of Washington Program-directed cache prefetching for media processors
US20050071542 * 10 mai 2004 31 mars 2005 Advanced Micro Devices, Inc. Prefetch mechanism for use in a system including a host connected to a plurality of memory modules via a serial memory interconnect
US20050216678 * 29 mars 2004 29 sept. 2005 Jeddeloh Joseph M Memory hub and method for providing memory sequencing hints
US20060041711 27 nov. 2003 23 févr. 2006 Renesas Technology Corporation Memory module, memory system, and information device
US20060041723 * 17 août 2004 23 févr. 2006 Hakura Ziyad S System, apparatus and method for predicting accesses to a memory
US20060179236 13 janv. 2005 10 août 2006 Hazim Shafi System and method to improve hardware pre-fetching using translation hints
US20060181953 11 févr. 2005 17 août 2006 Eric Rotenberg Systems, methods and devices for providing variable-latency write operations in memory devices
US20060248281 * 2 mai 2005 2 nov. 2006 Al-Sukhni Hassan F Prefetching using hashed program counter
US20070005902 7 déc. 2005 4 janv. 2007 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US20070043907 * 11 août 2006 22 févr. 2007 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US20070136534 * 27 mars 2006 14 juin 2007 Wayne Mesard Method and apparatus for selectively prefetching based on resource availability
US20070290315 * 4 oct. 2006 20 déc. 2007 International Business Machines Corporation Chip system architecture for performance enhancement, power reduction and cost reduction
US20080098176 * 18 oct. 2006 24 avr. 2008 Krishna M V V Anil Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
EP0908892A2 11 sept. 1998 14 avr. 1999 Nec Corporation Semiconductor integrated circuit device
JPH11272552A Titre non disponible
WO2001048618A2 28 nov. 2000 5 juil. 2001 Intel Corporation Dynamic priority external transaction system
WO2004059720A1 20 déc. 2002 15 juil. 2004 International Business Machines Corporation Three-dimensional device fabrication method
WO2006012418A2 20 juil. 2005 2 févr. 2006 Beach Unlimited Llc Distributed storage architecture based on block map caching and vfs stackable file system modules
WO2006055477A1 10 nov. 2005 26 mai 2006 Intel Corporation Heterogeneous processors sharing a common cache
1 "Final Office Action for U.S. Appl. No. 11/286,585", (Aug. 4, 2008), Whole Document.
2 "Final Office Action for U.S. Appl. No. 11/374,936", (Jun. 29, 2009), Whole Document.
3 "First Office Action for Japanese Patent Application No. 2007-329083", (Mar. 4, 2010), Whole Document.
4 "Non-Final Office Action for U.S. Appl. No. 11/286,585", (Dec. 3, 2007), Whole Document.
5 "Non-Final Office Action for U.S. Appl. No. 11/374,936", (Nov. 12, 2008), Whole Document.
6 "Office Action for Chinese Patent Application No. 200710300796.2", (Nov. 13, 2009), with English Translation, Whole Document.
7 "Office Action for Korean Patent Application No. 10-2007-135086", (Feb. 26, 2010), Whole Document.
8 "Office Action for United Kingdom Application No. GB0724812.3 dated Jun. 5, 2009", Whole Document.
9 "Office Action with English Translation for German Application No. 10 2007 059 784.5-53 dated Jun. 9, 2009", Whole Document.
10 "Office Action with English Translation for German Patent Application No. 10 2007 059 784.5-53", (Feb. 14, 2011), Whole Document.
11 Beckerman, et al., "Early Load Address Resolution Via Register Tracking, ISCA, May 2000".
12 Black, et al., "3D Processing Technology and its Impact on iA32 Microprocessors", Proceedings of the IEEE Int'l Conference on Computer Design (ICCD'04), 3 pages.
13 Black, et al., "Die Stacking (3D) Microarchitecture, Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, Dec 13, 2006, pp. 469-479.", 69-479.
14 Collins, et al., "Dynamic Speculative Precomputation, ISM, Dec. 2001", Whole Document.
15 Collins, et al., "Speculative Precomputation: Long-Range Prefetching of Delinquent Loads, ISC", (2001), 14-25.
16 Genua, et al., "A Cache Primer", Freescale Semiconductor, Inc., 2004, AN2663, Rev. 1, Oct. 2004, pp. 1-15.
17 Gochman, et al., "Introduction to Intel Core Duo Processor Architecture", Intel Technology Journal vol. 10, Iss 02, May 15, 2006; ISSn 1535-864X, pp. 89-98.
18 Hassanein, et al., "Data Forwarding Through In-Memory Precomputation, ICS'04, Jun. 26-Jul. 1, 2004".
19 Kipo, "Non-Final Office Action for Korean Application No. 10-2007-0135086, and English Translation dated Sep. 16, 2009", Whole Document.
20 * Kyle J. Nesbit and James E. Smith, "Data Cache Prefetching Using Global History Buffer," IEEE Computer Society, publication 0272-1732/05, Jan.-Feb. 2005, pp. 90-97.
21 Mendelson, et al., "MP Implementation in Systems Based on the Intel Core Duo Processor", Intel Technology Journal ol. 10, Iss 02, May 15, 2006; ISSN 1535-864X, pp. 99-108.
22 Morrow, et al., "Three-Dimensional Wafer Stacking Via Cu-Cu bonding Integrated with 65-nm Strained-SiLow-k CMOS Technology", IEEE Electron Device Letters, vol. 27, No. 5, May 2006, pp. 335-337.
23 Nelson, et al., "A 3D Interconnect Methodology Applied to iA32-class Architectures for Performance Improvement through RC Mitigation", Intel Corp. 6 pages, (2004).
24 Pending U.S. Appl. No. 11/286,585, filed Nov. 22, 2005 (inventor: McCauley et al.).
25 Pending U.S. Appl. No. 11/374,936, filed Mar. 14, 2006 (Inventor Black et al.).
26 Puttaswamy, et al., "Implementing Caches in a 3D Technology for High Performance Processors", Georgia Institute of Technology; School of Electrical and computing engineering, College of Computing, 15 pages, (2005).
27 Puttaswamy, et al., "Implementing Cashes in a 3D Technology for High Performance Processors", Proceedings of 2005 IEEE International Confrence on Computer Design: VSLI in Computer and Processors (ICCD 2005), IEEE, 2005, 525-532.
28 Reed, et al., "Design Aspects of a Microprocessor Data Cache using 3D die Interconnect Technology", 2005 IEEE Int'l Conference on Integrated Circuit and Technology, pp. 15-18.
29 Rotenberg, et al., "Trace Cache: a Low Latency Approach to High Bandwidth Instruction Fetching, ISM, Dec. 2-4, 1996".
30 Search Report for counterpart foreign application P25147GB dated Mar. 20, 2008.
31 * Y. K. Tsui et al., "Three-Dimensional Packaging for Multi-Chip Module with Through-the-Silicon Via Hole," Hong Kong University of Science and Technology, Kowloon, Hong Kong, China, 2003.
32 Zilles, et al., "Understanding the Backward Slices of Performance Degrading Instructions, ISC, Jun. 12-14, 2000".
US8261004 * 14 févr. 2011 4 sept. 2012 Samsung Electronics Co., Ltd. Stacked semiconductor memory device with compound read buffer
US9053039 * 21 déc. 2012 9 juin 2015 Advanced Micro Devices, Inc. Installation cache
US9244781 17 août 2015 26 janv. 2016 International Business Machines Corporation Salvaging hardware transactions
US9244782 18 août 2015 26 janv. 2016 International Business Machines Corporation Salvaging hardware transactions
US9262206 27 févr. 2014 16 févr. 2016 International Business Machines Corporation Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments
US9262207 28 août 2015 16 févr. 2016 International Business Machines Corporation Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments
US9311178 27 févr. 2014 12 avr. 2016 International Business Machines Corporation Salvaging hardware transactions with instructions
US9329946 27 févr. 2014 3 mai 2016 International Business Machines Corporation Salvaging hardware transactions
US9336097 27 févr. 2014 10 mai 2016 International Business Machines Corporation Salvaging hardware transactions
US9342397 16 sept. 2015 17 mai 2016 International Business Machines Corporation Salvaging hardware transactions with instructions
US9361041 27 févr. 2014 7 juin 2016 International Business Machines Corporation Hint instruction for managing transactional aborts in transactional memory computing environments
US9389802 28 août 2015 12 juil. 2016 International Business Machines Corporation Hint instruction for managing transactional aborts in transactional memory computing environments
US9411729 27 févr. 2014 9 août 2016 International Business Machines Corporation Salvaging lock elision transactions
US9424072 27 févr. 2014 23 août 2016 International Business Machines Corporation Alerting hardware transactions that are about to run out of space
US9430273 27 févr. 2014 30 août 2016 International Business Machines Corporation Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration
US9442775 27 févr. 2014 13 sept. 2016 International Business Machines Corporation Salvaging hardware transactions with instructions to transfer transaction execution control
US9442776 16 sept. 2015 13 sept. 2016 International Business Machines Corporation Salvaging hardware transactions with instructions to transfer transaction execution control
US9442853 27 févr. 2014 13 sept. 2016 International Business Machines Corporation Salvaging lock elision transactions with instructions to change execution type
US9448836 14 sept. 2015 20 sept. 2016 International Business Machines Corporation Alerting hardware transactions that are about to run out of space
US9454483 15 sept. 2015 27 sept. 2016 International Business Machines Corporation Salvaging lock elision transactions with instructions to change execution type
US9465673 27 févr. 2014 11 oct. 2016 International Business Machines Corporation Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling
US9471371 27 févr. 2014 18 oct. 2016 International Business Machines Corporation Dynamic prediction of concurrent hardware transactions resource requirements and allocation
US9524187 2 mars 2014 20 déc. 2016 International Business Machines Corporation Executing instruction with threshold indicating nearing of completion of transaction
US9524195 27 févr. 2014 20 déc. 2016 International Business Machines Corporation Adaptive process for data sharing with selection of lock elision and locking
US9524196 25 août 2015 20 déc. 2016 International Business Machines Corporation Adaptive process for data sharing with selection of lock elision and locking
US9547595 16 sept. 2015 17 janv. 2017 International Business Machines Corporation Salvaging lock elision transactions
US9575890 27 févr. 2014 21 févr. 2017 International Business Machines Corporation Supporting atomic accumulation with an addressable accumulator
US9639415 18 sept. 2015 2 mai 2017 International Business Machines Corporation Salvaging hardware transactions with instructions
US9645879 27 févr. 2014 9 mai 2017 International Business Machines Corporation Salvaging hardware transactions with instructions
US9753764 18 août 2016 5 sept. 2017 International Business Machines Corporation Alerting hardware transactions that are about to run out of space
US9852014 28 août 2015 26 déc. 2017 International Business Machines Corporation Deferral instruction for managing transactional aborts in transactional memory computing environments
US20110138087 * 14 févr. 2011 9 juin 2011 Samsung Electronics Co., Ltd. Stacked semiconductor memory device with compound read buffer
US20140181389 * 21 déc. 2012 26 juin 2014 Advanced Micro Devices, Inc. Installation cache
Classification aux États-Unis 711/137, 711/E12.057
Classification internationale G06F13/16, G06F12/06
Classification coopérative Y02D10/13, G06F2212/6028, G06F12/0862, G06F9/30043, G06F12/0215, G06F9/383, G06F9/3802, G06F9/3455
Classification européenne G06F12/02C, G06F9/38D2, G06F12/08B8, G06F9/30A2L, G06F9/38B
20 janv. 2010 AS Assignment
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BLACK, BRYAN;ANNAVARAM, MURALI M;MCCAULEY, DONALD W;AND OTHERS;REEL/FRAME:023820/0593;SIGNING DATES FROM 20061220 TO 20070629
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BLACK, BRYAN;ANNAVARAM, MURALI M;MCCAULEY, DONALD W;AND OTHERS;SIGNING DATES FROM 20061220 TO 20070629;REEL/FRAME:023820/0593