CN101341471B - 动态高速缓存管理的设备和方法 - Google Patents
动态高速缓存管理的设备和方法 Download PDFInfo
- Publication number
- CN101341471B CN101341471B CN2006800484639A CN200680048463A CN101341471B CN 101341471 B CN101341471 B CN 101341471B CN 2006800484639 A CN2006800484639 A CN 2006800484639A CN 200680048463 A CN200680048463 A CN 200680048463A CN 101341471 B CN101341471 B CN 101341471B
- Authority
- CN
- China
- Prior art keywords
- counter
- speed cache
- thresholds
- processor
- max
- 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.)
- Expired - Fee Related
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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/0893—Caches characterised by their organisation or structure
Abstract
本发明的设备通过使能多核或多处理器系统来确定性地识别适于牺牲的高速缓存(100)块以及阻止近期将被需要的存储块的牺牲,来改进计算系统的性能。为了实现这些目标,该系统具有能以估计生产时间(EPT)(102)和估计消耗时间(ECT)(104)计数器的形式来获得调度信息的FIFO,以做出适合的预提取和回写决定,从而数据传输与处理器执行重叠。
Description
技术领域
本发明涉及数据处理系统,并且尤其涉及具有优化的高速缓存管理的多处理器系统。
背景技术
计算机硬件和软件技术的进步已经产生了能通过将系统资源逻辑地划分到不同任务来执行高度复杂的并行处理的多处理器计算机系统。处理器可以存在于通常至少具有二级高速缓存的一个或多个处理器模块上。
通常,访问高速缓存比访问主存储器快。高速缓存通常位于处理器模块上,或位于处理内。高速缓存用作缓冲器,用来保存近期使用的指令和数据,从而在每次需要指令和数据时,降低与从主存储器提取指令和数据相关的等待时间。
一些高速缓存保存了来自主存储器的最频繁使用的存储器线。存储器线是来自主存储器的数据的最小可读单元,诸如8字节,高速缓存线是高速缓存内的对应单元。高速缓存线存储了存储器线,因此,每次使用存储器线时,不必从相对较慢的主存储器取回存储器线。
通常,只有最经常使用的存储器线被存储在高速缓存中,这是因为相对较快和昂贵的高速缓存通常小于主存储器。因此,正常情况下,高速缓存不存储处理事务所需要的所有数据。这通常是这样实现的:跟踪最近使用的入口或高速缓存线,以及用与不能被高速缓存的当前内容所满足的近期的高速缓存请求相关的存储器线来代替最近使用的高速缓存线。因为高速缓存线已被转移到主存储器而不能被满足的高速缓存请求经常被称为高速缓存缺失,这是因为处理器将请求发送到高速缓存,并且失去了从该高速缓存取回存储器线的内容的机会。
处理器通常包括用于保存诸如指令之类的经常使用的存储器线的副本的一级(L1)高速缓存,否则就要从相对较慢的主存储器频繁地访问这些指令。L1高速缓存可以将用于访问主存储器的大概成千上万个周期的等待时间降低为访问缓存时产生的几个周期。然而,L1高速缓存通常很小,这是因为在容量上限制了处理器内使用的面积。
二级(L2)高速缓存一般处于处理器模块上,物理上接近处理器,从而相对于访问主存储器,显著地降低了等待时间。L2高速缓存可以大于L1高速缓存,这是因为制造L2高速缓存的费用较低,并且可将L2高速缓存配置为保存例如更大数量的近期使用的存储器线。
L2高速缓存可以被实现为针对处理器模块中的多于一个处理器的大的、共享的高速缓存,或者实现为针对模块中的每个处理器的分开的、私有的高速缓存。对于涉及访问大量存储器线的处理器上的工作量需求,大的、共享的L2高速缓存是有益的。例如,当处理器正在访问大的数据库时,可重复地访问大量存储器线。然而,如果L2高速缓存不足以大到容纳大量被重复访问的存储器线或存储器块,则首先被访问的存储器线可能被重写(即被牺牲),并且处理器可能必须再次向主存储器请求那些块。
诸如YAPI和TSSA之类的流应用模块由通过FIFO通信的任务构成。通常,为了降低访问数据的等待时间,应该对FIFO进行高速缓存。然而,有时如果平均的FIFO高速缓存要求大于单个高速缓存能够处理的能力,这将导致高速缓存失配。这种实际高速缓存大小和期望高速缓存大小之间的失配将导致处于高速缓存内的其他存储块的牺牲,而倾向于将这些存储器块用于特定的FIFO。
例如,在某些情况下,将即刻需要的存储器块可能被错误地选定用于牺牲,从而导致了额外的、不必要的数据传输。另外一种可能性是,确定在近期将不被使用并且因此是牺牲的适合候选的模块将不被牺牲。因此,期望一种用于表示哪个存储块将在近期被用于写入或读出的确定方法。
已经设计出了一些包括FIFO寄存器的系统,其中FIFO寄存器具有与任务调度程序通信的输入计数单元和输出计数单元。一个特定的FIFO寄存器类型包括计数器,该计数器对要在FIFO寄存器中被交换的数据的估计生产时间(EPT)和要在FIFO寄存器中被交换的数据的估计消耗时间(ECT)进行计数。可利用这些计数器来使存储块的无效牺牲最小。
发明内容
本发明的设备通过使多核或多处理器系统能确定性地识别适于牺牲的高速缓存块并且还能阻止将在最近被需要的存储块的牺牲来改进计算系统的性能。为了获得这些目标,该系统利用了FIFO,该FIFO具有能以EPT和ECT计数器的形式获得的调度信息。
本发明的上述概括不是用于呈现本发明的每个公开的实施例或每个方面。在附图和随后的详细描述中,提供了其它方面、细节和示范性实施例。
附图说明
连同附图,考虑本发明的各种实施例的下列详细描述,将更完全地理解本发明,其中:
图1示出了FIFO缓冲器以及估计生产时间(EPT)和估计消耗时间(ECT)计数器。
具体实施方式
虽然本发明适于各种修改和可选的形式,但是在附图中,通过示例方式已经示出其特定形式,并且将给予详细的描述。然而,应该理解,目的不是将本发明限于所述的特定实施例。相反,目的是将覆盖所有属于由所附权利要求所限定的本发明的思想和范围内的修改、等效和替换。
图1示出了包括EPT计数器102和ECT计数器104的高速缓存100。高速缓存100包括5个占据高速缓存100的一部分的FIFO。每个FIFO均处理数据。根据本发明的一个实施例,高速缓存100可以是单个级的存储器。根据另一实施例,高速缓存100具有多个级。本发明的另一方面包括高速缓存100,其是在多个处理器之间共享的,或者由具有多个处理器核的单个处理器共享。
数据通常采取来自处理器或控制器的工作请求的形式。正常情况下,工作请求被组织在队列或堆栈中。工作请求的每个队列或堆栈均被馈送至FIFO,并且被存储(通常为临时存储)在先进先出序列中,用于进一步的处理。能够理解的是,虽然以利用FIFO中的EPT和ECT计数器方式描述了本发明,但是本发明还可利用与LIFO结合的这些计数器,LIFO以逆序来处理来自队列或堆栈的工作请求。因此,EPT和ECT计数器表示在各个FIFO中用于可能的数据产生或消耗的剩余时间(或周期)。
EPT计数器102和ECT计数器104与任何特定的FIFO相关。EPT计数器102和ECT计数器104可被使能或禁用。
存在三种如下描述的可能性:第一种可能性是特定FIFO的EPT计数器102和ECT计数器104均被禁用,这意味着它们将不会影响任何与高速缓存相关的它们所代表的FIFO的操作。第二种可能性是EPT计数器102或ECT计数器104中的一个被禁用,而另一个被使能。第三种可能性是两个计数器均被使能。这三种可能性的每种均存在结果。
虽然在任何给定的时间,对于这些计数器,存在三种操作可能,但是应该理解,EPT或者ECT计数器的状态(使能或禁用)在整个时间内也均可以变化。根据本发明的一个方面,可以预先确定EPT或ECT计数器的状态。更确切地说,其或者被使能或者被禁用。根据本发明的另一方面,EPT或ECT计数器的状态、或者两者的状态可以响应于被特别定义的事件的发生或不发生。根据本发明的另一方面,取决于被特别定义的事件的发生或不发生和当前的系统负载,EPT或ECT计数器的状态、或者两者的状态可以是选择性的。根据本发明的另一方面,取决于被特别定义的事件的发生或不发生和预期的系统负载,EPT或ECT计数器的状态、或者两者的状态可以是选择性的。预期的系统负载可采用预测性分析来预言或估计。
当EPT和ECT计数器均被使能时,基于预定的决策制定标准,它们均做出关于从高速缓存预提取数据和将数据回写至较低存储器级的决策。由EPT做出的预提取决策独立于由ECT做出的决策。因此,当在这个决策制定过程中采用同样数据时,根据本发明的一个方面,EPT决策的输出不会影响ECT计数器的决策制定。
特定的FIFO可具有最小值的EPT和ECT计数器,其中与该FIFO对应的数据在其被利用之前具有的被修改的机会为最小。可选地,FIFO可具有最大值的EPT和ECT计数器,其中与该FIFO对应的数据在其被利用之前具有极大的变化可能性。可以理解的是,计数器的作用是变化的,当计数器值增加时,其作用降低,直到出现计数器具有实际上没有任何意义的最大值的情况。因此,当计数器达到最大阈值时,根据本发明,EPT和ECT计数器将被禁用。
最大计数器阈值表示了多少空间可以被保存下来,以用于处理。根据本发明的一个方面,计数器阈值是预定的。根据本发明的另一方面,计数器阈值是根据特定处理器事务的特性而变化的,并且其静态地基于针对各种处理器的任务调度表。根据本发明的另一方面,计数器阈值是动态的,它随着预定的总处理能力的优化方案而变化。
当EPT和ECT数据接近对应于该FIFO的最大阈值时,存在极大可能性的是该数据在近期不会被改变,因此可去除由该FIFO占据的高速缓存线。因此,用于将与该FIFO对应的任何修改过的数据进行回写的回写操作被启动。简单地说,当EPT和ECT计数器达到最大阈值时,存储在特定FIFO中的数据被排队,用于牺牲。
如果EPT计数器具有最大值,并且被禁用,而ECT计数器具较小的值,这可能表示发生器已经产生了足够的数据,并且该发生器被调度完成。处理器之一对数据的使用者进行调度,并且开始使用该数据。如果针对FIFO的数据没有被缓存,则基于ECT计数器的采样值,自动启动适当的预提取操作,并且将与该FIFO对应的数据引入该高速缓存。数据的预提取速度取决于处理步骤和ECT计数器的最高有效值。因此,高速缓存资源被优化。
如果EPT计数器具有较小的值,而ECT具有最大值并且被禁用。在这种情况下,只有发生器被调度,而使用者仍然没有被调度来运行。因此,使用者在近期不会使用由发生器产生的数据。在这种情况下,高速缓存可被作为回写缓冲器。采用适当的回写指令来回写由发生器正在产生的数据。回写指令的速度基于EPT计数器的阈值。
如果EPT和ECT均具有较小的值,并且都被使能,则存在以下这种情况:由于正在产生的数据被使用者使用,所以FIFO的平均填充率很小。然而,如果发生器和使用者的处理步骤之间存在很大差异同样基于EPT和ECT计数器的有效阈值时,可以再次采用适当的预提取和回写指令来限制FIFO中的数据。
虽然参考几个特定的示范性实施例已经描述了本发明,但是所属领域的技术人员应该意识到,在不脱离由权利要求所提出的本发明的思想和范围的情况下,可以进行很多变化。
Claims (6)
1.一种用于处理数据流的设备,其包括:处理器;至少一级高速缓存(100),其与所述处理器通信,用于从所述处理器接收指令,并且响应于该指令,将数据线传送到所述处理器;第一计数器(102),其与所述高速缓存通信,用于估计针对特定数据线的生产时间;第二计数器(104),其与所述高速缓存(100)通信,用于估计针对特定数据线的消耗时间;其中所述第一(102)和第二(104)计数器使能所述设备来优化指令调度。
2.根据权利要求1所述的设备,其中每个计数(102、104)均具有最大阈值,当达到所述最大阈值时,所述计数器使能所述高速缓存的牺牲。
3.根据权利要求1所述的设备,其进一步包括具有任务调度表的多个处理器,所述高速缓存(100)与所述多个处理器通信,每个计数器均具有最大阈值,当达到所述最大阈值时,所述计数器使能所述高速缓存的牺牲,所述最大阈值是预定的。
4.根据权利要求1所述的设备,其进一步包括具有任务调度表的多个处理器,所述高速缓存(100)与所述多个处理器通信,每个计数器均具有最大阈值,当达到所述最大阈值时,所述计数器使能所述高速缓存(100)的牺牲,所述最大阈值是可变的。
5.根据权利要求1所述的设备,其进一步包括具有任务调度表的多个处理器,所述高速缓存(100)与所述多个处理器通信,每个计数器均具有最大阈值,当达到所述最大阈值时,所述计数器使能所述高速缓存(100)的牺牲,所述最大阈值静态地基于所述处理器的任务调度表。
6.一种用于处理数据流的系统,其包括:用于处理数据的装置,该装置包括多个处理器,所述处理器具有任务调度表;至少一级高速缓存(100),该高速缓存(100)与所述处理器进行共享通信,该高速缓存用于从所述处理器接收指令,并且响应于所述指令,将数据线传送到所述处理器;估计生产时间计数器(102),其与所述高速缓存通信,用于估计针对特定数据线的生产时间;估计消耗时间计数器(104),其与所述高速缓存通信,用于估计针对特定数据线的消耗时间;以及所述估计生产时间计数器(102)和所述估计消耗时间计数器(104)具有最大阈值,当达到所述最大阈值时,所述计数器使能特定高速缓存线的牺牲,所述最大阈值静态地基于所述处理器的任务调度表。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US75386905P | 2005-12-23 | 2005-12-23 | |
US60/753,869 | 2005-12-23 | ||
PCT/IB2006/055011 WO2007072456A2 (en) | 2005-12-23 | 2006-12-21 | Apparatus and method for dynamic cache management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101341471A CN101341471A (zh) | 2009-01-07 |
CN101341471B true CN101341471B (zh) | 2011-03-30 |
Family
ID=38091201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800484639A Expired - Fee Related CN101341471B (zh) | 2005-12-23 | 2006-12-21 | 动态高速缓存管理的设备和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080276045A1 (zh) |
EP (1) | EP1966705A2 (zh) |
JP (1) | JP2009521054A (zh) |
CN (1) | CN101341471B (zh) |
TW (1) | TW200745847A (zh) |
WO (1) | WO2007072456A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100130516A1 (en) * | 2007-03-28 | 2010-05-27 | Neurosearch A/S | Purinyl derivatives and their use as potassium channel modulators |
US8131937B2 (en) * | 2007-06-22 | 2012-03-06 | International Business Machines Corporation | Apparatus and method for improved data persistence within a multi-node system |
KR101574207B1 (ko) | 2009-10-16 | 2015-12-14 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 저장 방법 |
CN101853303B (zh) * | 2010-06-02 | 2012-02-01 | 深圳市迪菲特科技股份有限公司 | 一种基于语义智能存储方法及系统 |
US9501420B2 (en) * | 2014-10-22 | 2016-11-22 | Netapp, Inc. | Cache optimization technique for large working data sets |
TWI828391B (zh) * | 2022-10-27 | 2024-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617095A (zh) * | 2003-11-13 | 2005-05-18 | 国际商业机器公司 | 高速缓存系统与管理高速缓存的方法 |
CN1622059A (zh) * | 2003-11-24 | 2005-06-01 | 顺德市顺达电脑厂有限公司 | 高速缓存代换算法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7076609B2 (en) * | 2002-09-20 | 2006-07-11 | Intel Corporation | Cache sharing for a chip multiprocessor or multiprocessing system |
US20050015555A1 (en) * | 2003-07-16 | 2005-01-20 | Wilkerson Christopher B. | Method and apparatus for replacement candidate prediction and correlated prefetching |
-
2006
- 2006-12-20 TW TW095148034A patent/TW200745847A/zh unknown
- 2006-12-21 WO PCT/IB2006/055011 patent/WO2007072456A2/en active Application Filing
- 2006-12-21 JP JP2008546821A patent/JP2009521054A/ja not_active Withdrawn
- 2006-12-21 CN CN2006800484639A patent/CN101341471B/zh not_active Expired - Fee Related
- 2006-12-21 EP EP06842664A patent/EP1966705A2/en not_active Withdrawn
- 2006-12-21 US US12/158,994 patent/US20080276045A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617095A (zh) * | 2003-11-13 | 2005-05-18 | 国际商业机器公司 | 高速缓存系统与管理高速缓存的方法 |
CN1622059A (zh) * | 2003-11-24 | 2005-06-01 | 顺德市顺达电脑厂有限公司 | 高速缓存代换算法 |
Non-Patent Citations (1)
Title |
---|
A.M.Molnos. etc.Compositional memory systems for multimediacommunicating tasks.Design,Automation and Test in Europe第2卷.2005,第2卷932-937. * |
Also Published As
Publication number | Publication date |
---|---|
CN101341471A (zh) | 2009-01-07 |
WO2007072456A3 (en) | 2007-11-22 |
US20080276045A1 (en) | 2008-11-06 |
WO2007072456A2 (en) | 2007-06-28 |
TW200745847A (en) | 2007-12-16 |
EP1966705A2 (en) | 2008-09-10 |
JP2009521054A (ja) | 2009-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110741356B (zh) | 多处理器系统中的中继一致存储器管理 | |
US10877766B2 (en) | Embedded scheduling of hardware resources for hardware acceleration | |
Jiang et al. | Scaling up MapReduce-based big data processing on multi-GPU systems | |
US20160132541A1 (en) | Efficient implementations for mapreduce systems | |
CN110308982B (zh) | 一种共享内存复用方法及装置 | |
CN101341471B (zh) | 动态高速缓存管理的设备和方法 | |
CN103019810A (zh) | 具有不同执行优先级的计算任务的调度和管理 | |
US9684600B2 (en) | Dynamic process/object scoped memory affinity adjuster | |
KR20130018742A (ko) | 가비지 콜렉션을 위한 gpu 서포트 | |
KR20080104073A (ko) | 처리 유닛의 동적 로드 및 언로드 | |
US9317456B2 (en) | Method and system for performing event-matching with a graphical processing unit | |
US20130054546A1 (en) | Hardware-based array compression | |
US10572463B2 (en) | Efficient handling of sort payload in a column organized relational database | |
CN106201918B (zh) | 一种基于大数据量和大规模缓存快速释放的方法和系统 | |
Butcher et al. | Optimizing for KNL usage modes when data doesn't fit in MCDRAM | |
Ausavarungnirun | Techniques for shared resource management in systems with throughput processors | |
US11392388B2 (en) | System and method for dynamic determination of a number of parallel threads for a request | |
CN103019657B (zh) | 支持数据预取与重用的可重构系统 | |
CN116069480B (zh) | 一种处理器及计算设备 | |
CN100520737C (zh) | 高速缓存系统、方法及计算机系统 | |
CN115129480B (zh) | 标量处理单元的访问控制方法及标量处理单元 | |
US20080005726A1 (en) | Methods and systems for modifying software applications to implement memory allocation | |
CN109800184A (zh) | 针对小块输入的缓存方法、系统、装置及可存储介质 | |
CN109491785A (zh) | 内存访问调度方法、装置及设备 | |
US11176039B2 (en) | Cache and method for managing cache |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110330 Termination date: 20111221 |