CN1934542A - 高速缓存机制 - Google Patents
高速缓存机制 Download PDFInfo
- Publication number
- CN1934542A CN1934542A CNA2005800085649A CN200580008564A CN1934542A CN 1934542 A CN1934542 A CN 1934542A CN A2005800085649 A CNA2005800085649 A CN A2005800085649A CN 200580008564 A CN200580008564 A CN 200580008564A CN 1934542 A CN1934542 A CN 1934542A
- Authority
- CN
- China
- Prior art keywords
- cache memory
- cache
- loading
- important
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
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
依照一个实施例,公开了一种系统。所述系统包括中央处理器(CPU)、耦合到所述CPU的第一高速缓冲存储器,用来只存储用于将在所述CPU立即处理的重要加载的数据,耦合到所述CPU的第二高速缓冲存储器,用来存储用于将在所述CPU处理的半重要加载的数据,和耦合到所述CPU、第一高速缓冲存储器和第二高速缓冲存储器的第三高速缓冲存储器,用来存储将在所述CPU处理的非重要加载。
Description
技术领域
本发明涉及集成电路;本发明尤其涉及对接集成电路。
背景技术
目前,现有的几乎所有计算机系统实现超高速缓冲存储器系统。高速缓冲存储器典型情况下是随机存取存储器(RAM),计算机微处理器与访问主存储器相比可以更迅速地访问它。当微处理器处理数据时,它首先在高速缓存器中进行查看,并且如果它在所述高速缓存器中发现所述数据,那么所述微处理器就不必更费时地从更大的主存储器中读取数据。
典型情况下,计算机系统实现了常规的高速缓存结构,所述高速缓存结构实现了高速缓存器L1到L2或L3。当处理数据时,微处理器首先在L1高速缓存器中寻找所述数据。如果没有在所述L1高速缓存器中找到所述数据,那么在L2高速缓存器中搜索所述数据。如果在L2高速缓存器中没有找到所述数据,那么最后搜索L3高速缓存器。
常规高速缓存结构的问题在于:与各种指令相关联的数据比其它数据更为关键,并因而需要被更快速地处理(例如,1个等待时间周期)。然而,常规的高速缓存器操作并不考虑从高速缓存系统中快速获取这种关键(critical)数据。例如,可以把关键数据和非关键数据(例如,需要多达4个等待时间周期的数据)存储在L1高速缓存器中。把非关键数据存储在快速L1高速缓存器中是低效的,这是因为这样减少了可以被存储在所述L1高速缓存器中的关键加载(load)数据的数目。因而,必须搜索更大、更缓慢的L2或L3高速缓存器以便检索没有被存储在L1高速缓存器内并且超过1个等待时间周期的关键数据。
附图说明
根据以下详细描述和本发明各个实施例的附图,将更完全地理解本发明。然而附图不应当将本发明限制为具体实施例,而只是用于解释和理解。
图1图示了计算机系统的一个实施例;
图2是用于加载分类的一个实施例的流程图;和
图3图示了在高速缓冲存储器内加载布置的一个实施例。
具体实施方式
描述了一种高速缓存机制。依照一个实施例,高速缓存机制特点在于一个包括重要的小高速缓存器(cachelet)的经修改的高速缓存器层次结构,所述重要的小高速缓存器并不高速缓存用于半重要和非重要的加载的数据。这使重要的小高速缓存器能够由更小组加载(例如,重要的加载)更有效地利用。类似地,半重要的小高速缓存器并不高速缓存用于非重要加载的数据。在进一步的实施例中,加载被直接分配给各个小高速缓存器,所述小高速缓存器由不同的加载并行访问。此外,静态地执行加载分配,并且可以把加载/存储部件直接附于所述小高速缓存器。
参考说明“一个实施例”或“一实施例”意味着把结合所述实施例所描述的特定特征、结构或特性包括在本发明的至少一个实施例中。在说明书的不同位置处所出现的短语“在一个实施例中”未必都指的是相同的实施例。
在下面描述中,阐明了许多细节。然而,在没有这些具体细节的情况下,本领域技术人员也可以清楚地实施本发明。在其它实例中,在框图形式中没有详细地示出公知的结构和装置,以避免模糊本发明。
图1是计算机系统100的一个实施例的框图。计算机系统100包括耦合到总线105的中央处理器(CPU)102。在一个实施例中,CPU 102是Pentium处理器系列中的处理器,包括可从加利福尼亚的SantaClara的Intel公司买到的PentiumII处理器系列、PentiumIII处理器和PentiumIV处理器。作为选择,可以使用其它CPU。
还把芯片组107耦合到总线105。芯片组107包括存储器控制集线器(memory control hub MCH)110。在一个实施例中,MCH 110经由集线器接口被耦合到输入/输出控制集线器(input/output control hubICH)140。ICH 140提供了到计算机系统100内的输入/输出(I/O)设备的接口。例如,ICH 140可以被耦合到遵循由俄勒冈州的Portland的PCI专用业务组(Special Interest Group)所开发的规范修订版2.1总线的外围组件互连总线。
在一个实施例中,MCH 110包括被耦合到主系统存储器115的存储器控制器112。主系统存储器115存储可以由在系统100中所包括的CPU 102或任何其它设备执行的数据信号所表示的指令和代码序列和数据。在一个实施例中,主系统存储器115包括动态随机存取存储器(dynamic random access memory DRAM);然而,可以使用其它存储器类型来实现主系统存储器115。
依照一个实施例,高速缓冲存储器152、154和156被耦合到CPU102。在进一步的实施例中,高速缓存器152、154和156实现了新颖的高速缓存结构,该高速缓存结构给CPU 102提供加载数据,因为该数据是相关指令需要的。因而,减少了迟缓到达CPU 102的数据的数目并且更有效地利用高速缓存器,以致改进了CPU性能。
在一个实施例中,加载按重要性(vitality)分类,并且被直接分配给高速缓存器152、154和156,所述高速缓存器152、154和156是小且快速的高速缓存器,被称为小高速缓存器。在进一步的实施例中,小高速缓存器被设计有不同的等待时间以便更好地追踪加载行为。根据加载及其使用之间的距离(例如,加载-使用的距离)来定义加载的重要性。
依照一个实施例,加载被分类为三类:重要的(立即使用)、半重要的(在2到3个周期内使用)和非重要的(至少4个周期不使用)。然后,这些加载被分配给适当计时的小高速缓存器:高速缓存器152(例如,重要的小高速缓存器(单个周期))、高速缓存器154(例如,半重要的小高速缓存器(2个周期))和高速缓存器156(例如,非重要的高速缓存器(4个周期))。尽管这里相对于三个小高速缓存器进行了描述,然而本领域普通技术人员应当理解可以实现其它数量的小高速缓存器(例如4,5,6等)。
在一个实施例中,高速缓存器152是非常快(例如,1个周期等待时间)且非常小(例如,256B)的高速缓存器,其只存储用于重要加载的数据。高速缓存器152与高速缓存器154并行放置,所述高速缓存器154是快速(例如,2个周期等待时间)且很小(例如,1KB)的高速缓存器。立即需要的加载数据被分配给单周期的高速缓存器152。半重要的加载被直接分配到高速缓存器154。在一个实施例中,高速缓存器152和高速缓存器154一起在高速缓存器层次结构中的相同级别上操作。所有非重要的加载被分配给具有4个周期等待时间的高速缓存器156。如果重要的加载未命中高速缓存器152,那么它访问高速缓存器156。
依照一个实施例,根据加载分类来执行数据分配。因而,重要的加载更新高速缓存器152和高速缓存器156,而半重要的加载更新高速缓存器154和高速缓存器156。非重要的加载在高速缓存器156中分配数据。注意,因为高速缓存器152和高速缓存器154可以同时具有相同的数据,所以在它们之间可能出现相干性问题。
为了适应这点,向高速缓存器152和154以及高速缓存器156广播存储。这种存储带宽并非是性能限制器。此按要求分配和复制使得高速缓存器能够得到更有效地利用。在高速缓存器152和154之间并不强制在常规的高速缓存结构中明显的包含原理。因而,与常规的高速缓存结构相比较,在所公开的系统中具有更有效的高速缓存空间。
为了实现所公开的高速缓存机制,将在高速缓存器访问之前执行加载分类。在一个实施例中,编译器执行加载分类。然而在其它实施例中,可以使用其它软件或硬件机制来执行加载分类。编译器知道大部分加载及其使用之间的距离。从而,编译器在重要性分类方面进行有效的工作。
图2是用于加载分类的一个实施例的流程图。在处理块210,识别重要的加载。在一个实施例中,通过滤出相关距离大于1个周期的所有加载来识别重要的加载。在此过程内,存在用于使非重要分类最大化的预先调度阶段和后续调度阶段。随后,执行剖析来识别在高速缓存器152中频繁未命中的其余加载和没有重新使用的线。
在处理块220,识别半重要的加载。在一个实施例中,使用来自重要的加载识别和剖析的信息来确定半重要的加载。随后,再次执行剖析来识别在高速缓存器154中频繁未命中的加载和没有重新使用的高速缓存线。在处理块230,识别非重要的加载。在一个实施例中,使用来自重要的加载和半重要的识别的剖析信息来确定在高速缓存器154中频繁未命中的加载和没有重新使用的高速缓存线。
图3图示了在高速缓冲存储器152、154和156内加载布置的一个实施例。如图3所示,重要的加载被存储在高速缓存器152中,而半重要的和非重要的加载被分别存储在高速缓存器154和156。
上述高速缓存机制特点在于一个重新组织且优化的数据高速缓存器层次结构,其充分利用了并不是每个加载数据都会被立即需要这一事实的优点。因而,利用传统的自上而下的方法来把加载分配到高速缓存器层次结构。作为替代,由重要性分类器来执行加载的分配及其数据的分配。非重要的加载被分配给最慢的高速缓存器,并且更重要的加载被分配给快速且小的高速缓存器。快速且小的高速缓存器只分配用于更重要的加载的数据,并且向这些加载提供高命中率。
高速缓存机制得益于把加载直接分配到各个小高速缓存器,并且由于所述小高速缓存器被不同的加载并行访问,所以向CPU核心提供了更多的带宽。高速缓存机制的另一好处在于高速缓存器的访问等待时间。静态地执行加载分配,并且可以把加载/存储部件直接附于所述小高速缓存器。
尽管在阅读以上描述之后无疑使得本发明的许多改变和修改对本领域普通技术人员来说变得更加清楚,然而应当理解,借助例图所示出并描述的任何特定实施例并不意在限制。因此,各个实施例的参考细节并不意在限制权利要求的范围,在权利要求中只讲述了被认为是本发明的那些特征。
Claims (28)
1.一种系统,包括:
中央处理器(CPU);
耦合到所述CPU的一个或多个高速缓冲存储器,所述高速缓冲存储器均只存储用于要由所述CPU所处理的加载的数据,所述加载具有匹配与各自的高速缓冲存储器相关联的等待时间的重要性。
2.如权利要求1所述的系统,其中所述一个或多个高速缓冲存储器包括:
耦合到所述CPU的第一高速缓冲存储器,用来只存储用于重要的加载的数据,所述重要的加载将在所述CPU被立即处理;和
耦合到所述CPU和第一高速缓存器的第二高速缓冲存储器,用来存储将在所述CPU处理的非重要的加载。
3.如权利要求2所述的系统,其中所述一个或多个高速缓冲存储器还包括耦合到所述CPU和第二高速缓冲存储器的第三高速缓冲存储器,用来存储用于半重要的加载的数据,所述半重要的加载将在所述CPU处理。
4.如权利要求3所述的系统,其中所述CPU并行访问所述第一高速缓冲存储器、第二高速缓冲存储器和第三高速缓冲存储器。
5.如权利要求3所述的系统,其中重要的加载被直接分配给所述第一高速缓冲存储器,半重要的加载被直接分配给所述第三高速缓冲存储器,并且非重要的加载被直接分配给所述第二高速缓冲存储器。
6.如权利要求5所述的系统,其中静态地执行把所述加载分配到各自的高速缓存器。
7.如权利要求6所述的系统,其中在编译器执行所述加载的分配。
8.如权利要求3所述的系统,其中重要加载将在一个时钟周期内、在所述CPU处理。
9.如权利要求8所述的系统,其中半重要加载将在三个时钟周期内、在所述CPU处理。
10.如权利要求9所述的系统,其中非重要加载不在所述CPU处理长达至少四个时钟周期之久。
11.如权利要求3所述的系统,其中所述第一高速缓冲存储器是265B高速缓存器并且所述第三高速缓冲存储器是1KB高速缓存器。
12.如权利要求11所述的系统,其中所述第二高速缓冲存储器在物理上大于所述第三高速缓冲存储器。
13.如权利要求3所述的系统,其中所述第一高速缓冲存储器和第三高速缓冲存储器在高速缓存器层次结构的相同层级上操作。
14.如权利要求3所述的系统,其中重要加载更新所述第一高速缓冲存储器和第二高速缓冲存储器。
15.如权利要求14所述的系统,其中半重要加载更新所述第三高速缓冲存储器和第二高速缓冲存储器。
16.如权利要求15所述的系统,其中非重要加载更新所述第二高速缓冲存储器。
17.一种方法,包括:
通过滤出预定时钟周期大于相关距离的加载指令来识别具有第一重要性级别的加载指令;
识别具有第二重要性级别的加载指令;
分配具有第一重要性级别的加载指令以便存储在第一高速缓冲存储器中;并且
在第二高速缓冲存储器中分配具有第二重要性级别的加载指令。
18.如权利要求17所述的方法,还包括:
在识别具有第一重要性级别的加载指令之后,识别具有第三重要性级别的加载指令;并且
分配具有第三重要性级别的加载指令以便存储在第三高速缓冲存储器中。
19.如权利要求18所述的方法,还包括:在识别具有第一重要性级别的加载指令之后,执行剖析以便识别在所述第一高速缓冲存储器中频繁未命中的其余加载指令和未使用的高速缓存线。
20.如权利要求18所述的方法,还包括:在识别具有第三重要性级别的加载指令之后执行剖析,以便识别在所述第三高速缓冲存储器中频繁未命中的其余加载指令和未使用的高速缓存线。
21.一种计算机系统,包括:
中央处理器(CPU);
耦合到所述CPU的第一高速缓冲存储器,用来只存储用于重要的加载的数据,所述重要的加载将在所述CPU被立即处理;
耦合到所述CPU的第二高速缓冲存储器,用来只存储用于半重要的加载的数据,所述半重要的加载将在所述CPU被处理;
耦合到所述CPU、所述第一高速缓冲存储器和第二高速缓冲存储器的第三高速缓冲存储器,用来存储将在所述CPU处理的非重要的加载;
耦合到所述CPU的芯片组;和
耦合到所述芯片组的主存储器装置。
22.如权利要求21所述的系统,其中所述CPU并行访问所述第一高速缓冲存储器、第二高速缓冲存储器和第三高速缓冲存储器。
23.如权利要求22所述的系统,其中重要的加载被直接分配给所述第一高速缓冲存储器,半重要的加载被直接分配给所述第二高速缓冲存储器,并且非重要的加载被直接分配给所述第三高速缓冲存储器。
24.如权利要求23所述的系统,其中重要的加载将在一个时钟周期内在所述CPU处理,半重要的加载将在三个时钟周期内在所述CPU处理,并且非重要的加载将不在所述CPU处理长达至少四个时钟周期之久。
25.如权利要求23所述的系统,其中所述第一高速缓冲存储器和第二高速缓冲存储器在高速缓存器层次结构中的相同级别上操作。
26.如权利要求23所述的系统,其中重要的加载更新所述第一高速缓冲存储器和第三高速缓冲存储器。
27.如权利要求26所述的系统,其中半重要的加载更新所述第二高速缓冲存储器和第三高速缓冲存储器。
28.如权利要求27所述的系统,其中非重要的加载更新所述第三高速缓冲存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/803,452 US7120749B2 (en) | 2004-03-18 | 2004-03-18 | Cache mechanism |
US10/803,452 | 2004-03-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1934542A true CN1934542A (zh) | 2007-03-21 |
CN100520737C CN100520737C (zh) | 2009-07-29 |
Family
ID=34962783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800085649A Expired - Fee Related CN100520737C (zh) | 2004-03-18 | 2005-03-14 | 高速缓存系统、方法及计算机系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7120749B2 (zh) |
JP (1) | JP2007528082A (zh) |
CN (1) | CN100520737C (zh) |
TW (1) | TWI304942B (zh) |
WO (1) | WO2005091147A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102906715A (zh) * | 2010-05-17 | 2013-01-30 | 汤姆森特许公司 | 优化缓存存储器管理的方法和对应装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7467377B2 (en) * | 2002-10-22 | 2008-12-16 | Intel Corporation | Methods and apparatus for compiler managed first cache bypassing |
US20070130114A1 (en) * | 2005-06-20 | 2007-06-07 | Xiao-Feng Li | Methods and apparatus to optimize processing throughput of data structures in programs |
US9223714B2 (en) | 2013-03-15 | 2015-12-29 | Intel Corporation | Instruction boundary prediction for variable length instruction set |
US20150193358A1 (en) * | 2014-01-06 | 2015-07-09 | Nvidia Corporation | Prioritized Memory Reads |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE0000533D0 (sv) | 2000-02-18 | 2000-02-18 | Ericsson Telefon Ab L M | Static cache |
US6668306B2 (en) * | 2001-06-12 | 2003-12-23 | Intel Corporation | Non-vital loads |
-
2004
- 2004-03-18 US US10/803,452 patent/US7120749B2/en not_active Expired - Fee Related
-
2005
- 2005-03-14 CN CNB2005800085649A patent/CN100520737C/zh not_active Expired - Fee Related
- 2005-03-14 TW TW094107722A patent/TWI304942B/zh not_active IP Right Cessation
- 2005-03-14 WO PCT/US2005/008337 patent/WO2005091147A1/en active Application Filing
- 2005-03-14 JP JP2007503088A patent/JP2007528082A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102906715A (zh) * | 2010-05-17 | 2013-01-30 | 汤姆森特许公司 | 优化缓存存储器管理的方法和对应装置 |
US10691598B2 (en) | 2010-05-17 | 2020-06-23 | Interdigital Ce Patent Holdings | Method of optimization of cache memory management and corresponding apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20050210197A1 (en) | 2005-09-22 |
US7120749B2 (en) | 2006-10-10 |
CN100520737C (zh) | 2009-07-29 |
TWI304942B (en) | 2009-01-01 |
WO2005091147A1 (en) | 2005-09-29 |
JP2007528082A (ja) | 2007-10-04 |
TW200540712A (en) | 2005-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hsieh et al. | Transparent offloading and mapping (TOM) enabling programmer-transparent near-data processing in GPU systems | |
Kloosterman et al. | WarpPool: Sharing requests with inter-warp coalescing for throughput processors | |
US8560781B2 (en) | Technique for using memory attributes | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
Kloosterman et al. | Regless: Just-in-time operand staging for GPUs | |
US20090037664A1 (en) | System and method for dynamically selecting the fetch path of data for improving processor performance | |
CN1758229A (zh) | 异构多核微处理器局部空间共享存储方法 | |
US8117389B2 (en) | Design structure for performing cacheline polling utilizing store with reserve and load when reservation lost instructions | |
KR20130018742A (ko) | 가비지 콜렉션을 위한 gpu 서포트 | |
US7581067B2 (en) | Load when reservation lost instruction for performing cacheline polling | |
CN1196997C (zh) | 不按序执行指令的装置和检测不按序指令的方法 | |
Burger et al. | Datascalar architectures | |
Tse et al. | CPU cache prefetching: Timing evaluation of hardware implementations | |
Esfeden et al. | BOW: Breathing operand windows to exploit bypassing in GPUs | |
Singh et al. | Efficiently enforcing strong memory ordering in GPUs | |
CN100520737C (zh) | 高速缓存系统、方法及计算机系统 | |
Zhu et al. | Improving first level cache efficiency for gpus using dynamic line protection | |
US20080005726A1 (en) | Methods and systems for modifying software applications to implement memory allocation | |
US11726918B2 (en) | Dynamically coalescing atomic memory operations for memory-local computing | |
Gu et al. | Dynamically linked MSHRs for adaptive miss handling in GPUs | |
Zhang et al. | Locality protected dynamic cache allocation scheme on GPUs | |
Wang et al. | Shared Last-Level Cache Management and Memory Scheduling for GPGPUs with Hybrid Main Memory | |
KR20110067795A (ko) | 실시간 프로세스의 응답성 개선을 위한 tcm운용방법 | |
Wang et al. | Shared last-level cache management for GPGPUs with hybrid main memory | |
정혜린 | Optimizing Memory Swap Overhead Through Pattern Analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090729 Termination date: 20150314 |
|
EXPY | Termination of patent right or utility model |