CN113127065B - 一种基于纯缺失检测方法的存算一体程序划分方法及装置 - Google Patents
一种基于纯缺失检测方法的存算一体程序划分方法及装置 Download PDFInfo
- Publication number
- CN113127065B CN113127065B CN202110419624.7A CN202110419624A CN113127065B CN 113127065 B CN113127065 B CN 113127065B CN 202110419624 A CN202110419624 A CN 202110419624A CN 113127065 B CN113127065 B CN 113127065B
- Authority
- CN
- China
- Prior art keywords
- miss
- pure
- list
- cpu
- loop body
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000001514 detection method Methods 0.000 title claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 238000005070 sampling Methods 0.000 claims abstract description 14
- 238000005192 partition Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 abstract description 14
- 230000037430 deletion Effects 0.000 abstract description 14
- 238000000638 solvent extraction Methods 0.000 abstract description 3
- 125000004122 cyclic group Chemical group 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种基于纯缺失检测方法的存算一体程序划分方法及装置,方法包括:S1,判断代码是否为循环体;S2,如果是,将循环体的部分指令在CPU上执行,通过检测纯缺失,计算出纯缺失率,缺失检测包括:S21,当发生cache命中,记录当前的缓存行信息到命中列表中,缺失状态保持寄存器,记录缺失的缓存行信息到缺失列表中;S22,比较命中列表和缺失列表,找出纯缺失;S3,如果纯缺失率大于预设的阈值,将循环体划分到存算一体计算单元中进行计算。装置包括:CPU和存算一体单元,CPU上设有划分识别模块,该模块进行的循环采样,包括相互连接的最后一级缓存和缺失状态保持寄存器,最后一级缓存中设有纯缺失侦测部件。
Description
技术领域
本发明涉及计算机体系结构设计技术领域,尤其是涉及了一种基于纯缺失检测方法的存算一体程序划分方法及装置。
背景技术
随着大数据、云计算、人工智能等信息技术的快速发展,信息处理已经从计算密集型向数据密集型转变。传统的冯•诺伊曼体系结构面临存储墙瓶颈,难以满足信息社会对计算能力的需求。挑战主要来自两个方面:一是在存储与计算分离的冯•诺伊曼体系结构中,计算单元与存储单元之间频繁的数据传输已成为功耗和系统性能的瓶颈;其次,随着数据量的增加,传统的利用数据局部性的存储分层的方法有效性降低甚至失效。
随着存储器三维堆叠技术的发展,提出了一种解决存储墙问题的方法:存算一体(PIM,Processing in Memory)体系结构。PIM也叫存内计算或者近数据计算,是将计算资源集成到存储器中,减少了不必要的数据移动,从而显著提高内存访问的能源效率。
在PIM体系结构中,如何合理划分程序,选择合适的PIM指令成为一个重大的挑战。不合理的程序负载划分会导致CPU和存储器之间频繁的数据移动,导致不必要的性能和能量开销。随着PIM处理器的计算能力不断增强,为了提高整个PIM系统的性能和能源效率,有必要建立一个准确有效的程序划分模型。
目前,已经有研究人员提出存算一体程序划分的方法,例如PEI(Program EnableInstructions)考虑程序的局部性,并使用最后一级缓存(LLC,Last Level Cache)缺失作为代码划分的标准。再如GraphPIM通过将图计算中对图属性访问的原子操作划分到PIM中进行计算。
然而,现代的计算系统不仅有存储的层次结构支持,而且还有各种数据访问并发性支持。利用访存并发或数据并行的技术,如乱序执行和非阻塞缓存,可以有效的减少访存阻塞。访存并发允许多个内存请求重叠,以减少内存暂停时间。平均内存访问时间(AMAT,Average memory access time)是分析内存系统性能的一个标准指标。AMAT的一个隐含假设是内存只支持顺序访问,不会有多个内存访问重合。已经有研究提出C-AMAT(Concurrent-AMAT)性能模型,考虑到内存并发性,缓存请求的缺失(Cache miss)可以分为两种不同的类型:混合缺失(命中与缺失重叠)和纯缺失(命中与缺失没有重叠)。混合缺失不会对系统的性能造成影响,因为处理器仍然可以在重叠的缓存命中时执行。而在考虑并发性的现代存储系统中,纯缺失可能会对系统整体造成更大的性能损失。
另一方面,受限于现有的工艺条件,如芯片面积,散热等,PIM端的处理核心单元并不能做到和CPU端有着相同的性能,同时这一趋势在短期内是无法改进的。而在通常PIM架构下,现有的程序划分方法往往将程序以粗略的标准划进行程序划分,导致存算一体计算单元执行的代码较多,进而可能影响PIM系统的整体性能。
综上,由于目前的程序划分方法并没有充分考虑并发内存访问,引起两种类型访存缺失都可能加载到PIM计算单元,导致不必要的代码转移到PIM中。同时由于CPU和PIM处理单元之间的性能差异,将过多的任务迁移到PIM端执行可能会导致存算一体整体系统的性能下降。
发明内容
为解决现有技术的不足,实现更有效地并发内存访问,避免不必要的代码转移,减少程序搬运量,提升系统性能的目的,本发明采用如下的技术方案:
一种纯缺失检测方法,包括如下步骤:
S21,在发生最后一级缓存请求时,根据每个缓存行的标记区来确定是否发生cache命中,命中的内容即为程序所需的数据,如果缓存请求命中,记录当前的缓存行信息到命中列表中,根据缺失状态保持寄存器,记录缺失的缓存行信息到缺失列表中,所述记录缺失的缓存行信息,包括混合缺失和纯缺失的缓存行信息,通过所述缺失状态保持寄存器中的缺失缓存行标记,记录其对应的缓存行信息到缺失列表中;
S22,比较命中列表和缺失列表,查看缺失列表中的每一项是否出现在命中列表中,如果没有,则该访存缺失为纯缺失。
在存算一体计算中引入纯访存缺失的概念,提出的一种纯缺失的检测方法,充分考虑了访存并发性和局部性,并且实现纯缺失率的计算。
进一步地,所述当前的缓存行信息,是缓存行命中的访存周期号;所述缺失的缓存行信息,是缓存行缺失的周期号。
一种存算一体程序划分方法,包括如下步骤:
S1,判断代码是否为循环体,如果不是,则代码相应的指令直接在CPU上执行;
S2,如果是循环体,将循环体定义为一个代码块,将代码块的部分指令在CPU上执行,通过检测纯缺失,计算出纯缺失率;
S3,如果纯缺失率大于预设的阈值,则说明该程序不适合在CPU上执行,将代码块(循环体)划分到存算一体计算单元中进行计算,否则,将代码块(循环体)继续在CPU上进行计算。
进一步地,所述纯缺失率=纯缺失的访存周期数/总的CPU访存周期数。
进一步地,所述部分指令是代码块(循环体)的前5%-15%的指令,高于此范围的采样可能会导致采样时间过长,低于该范围可能导致采样不具有代表性。
进一步地,所述阈值是3-7%,使程序划分的整体性能提高。
一种纯缺失检测装置,包括相互连接的最后一级缓存和缺失状态保持寄存器,所述最后一级缓存中设有纯缺失侦测部件,该部件包括命中列表和缺失列表,分别记录缓存命中与缺失信息,所述缺失信息,通过缺失状态保持寄存器记录到缺失列表中,比较命中列表和缺失列表,查看缺失列表中的每一项是否出现在命中列表中,如果没有,则该访存缺失为纯缺失。
进一步地,所述缓存命中与缺失信息,分别是缓存命中与缺失周期号。
一种存算一体程序划分装置,包括CPU和存算一体单元,所述CPU上,设有划分识别模块,用于识别出该程序段是否为循环体,对于非循环体的代码段对应的指令,该模块将对应的指令按照常规的体系结构下的模式执行;对于循环体,该模块会对循环体的部分指令在CPU上循环展开,进行循环采样,通过纯缺失检测装置得到纯缺失,通过纯缺失率计算模块,算出采样代码段的纯缺失率,如果纯缺失率大于预设的阈值,则说明该程序不适合在CPU上执行,将循环体划分到存算一体计算单元中进行计算,否则,将循环体继续在CPU上进行计算。
进一步地,所述纯缺失率=纯缺失的访存周期数/总的CPU访存周期数。
本发明的优势和有益效果在于:
本发明充分考虑访存的并发性,利用最后一级缓存的纯缺失率来判断需要在PIM中执行的代码,避免不必要的代码转移,同时避免过多的任务迁移,从而使存算一体系统获得更好的性能。
附图说明
图1是本发明中纯缺失检测流程图。
图2是本发明中程序划分的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
大多数现有的PIM程序划分策略都没有充分考虑内存访问的并发性。需要一个准确的标准来定义代码的哪一部分会导致CPU访存等待,以便将它们移到PIM中执行。本发明提出一种在CPU和PIM处理单元之间的程序代码划分方法,考虑访存的并发性,利用最后一级缓存的纯缺失率来判断真正会造成CPU停顿的代码段,并将其搬运至PIM中执行。另一方面该方法也可相对的减少程序搬运的量,使整体性能得到一定的提升。
纯缺失检测方法,如图1所示,在发生最后一级缓存请求时,根据每个缓存行(cache line)的标记区(tab array)来确定是否发生命中,命中是指cache命中,程序执行时,CPU会先在cache中查询所需的数据是否已经从内存中缓存至cache中,命中的内容即为程序所需的数据,如果缓存请求命中,记录当前的缓存行命中的访存周期号到命中列表中,同时,传统的体系结构中缺失状态保持寄存器(MSHR,Miss Status Holding Register)记录缺失的缓存行相关信息(缓存行缺失的周期号),而本发明的缺失状态保持寄存器与cache在硬件结构上相连,主要用于处理缓存缺失的情况,通过查看MSHR中的缺失缓存行标记(entry)将其对应的缺失周期记录到缺失列表中。混合缺失和纯缺失都将记录到缺失列表中。比较命中列表和缺失列表,查看缺失列表中的每一项是否出现在命中列表中,如果没有,则该访存缺失为纯缺失。定义纯缺失率为:纯缺失的访存周期数/总的CPU访存周期数。在存算一体计算中引入纯访存缺失的概念,提出的一种纯缺失的检测方法,充分考虑了访存并发性和局部性,并且实现纯缺失率的计算。
如图2所示,循环体作为一个代码块(指令划分的最小单元)来实现指令划分。选择加载循环体到存算一体单元进行计算,主要因为在现有的高密度访存应用程序中,如:图计算、神经网络等,往往存在大量的循环体,同时循环体是导致计算时访存纯缺失主要的程序段,是优化系统效率的重点,另外,在没有编译器帮助的情况下,循环体可以很容易地在程序中定位。首先判断代码是否为循环体,如果不是则相应指令直接在CPU上执行,否则将循环体定义为一个代码块,将代码块的前5%(代码块的百分比的范围为5%-15%,高于此范围的采样可能会导致采样时间过长,低于该范围可能导致采样不具有代表性)的指令在CPU上执行,计算出纯缺失率(纯缺失的访存周期数/总的CPU访存周期数),如果纯缺失率≥3-7%(其中,5%使程序划分的整体性能最好)则说明该程序不适合在CPU上执行,将划分到存算一体计算单元中进行计算,否则将继续在CPU上进行计算。基于纯缺失率,设计程序划分标准与方法。找到引起纯访存缺失的关键代码,划分到PIM计算单元上执行,以获得更好的性能。
在CPU片上增加有划分识别模块,该模块能够通过软件的方式识别出该程序段是否为循环体,对于是非循环体的代码段对应的指令,该模块可将对应的指令按照常规的体系结构下的模式执行;如果识别出该代码段为循环体,则该模块会对循环体的前5%循环展开进行循环采样,主要是收集该采样代码段的缓存命中与缺失周期号。
循环采样的工作在硬件实现上,主要是在最后一级缓存中增加纯缺失侦测硬件部件,该部件中主要包含两个表结构,分别记录缓存命中与缺失周期号。分别得到缓存命中与缺失周期号之后,可以通过纯缺失率计算模块算出该采样代码段的纯缺失率。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。
Claims (8)
1.一种存算一体程序划分方法,其特征在于包括如下步骤:
S1,判断代码是否为循环体,如果不是,则代码相应的指令直接在CPU上执行;
S2,如果是循环体,将循环体的部分指令在CPU上执行,通过检测纯缺失,计算出纯缺失率;
S21,在发生最后一级缓存请求时,根据每个缓存行的标记区来确定是否发生cache命中,如果缓存请求命中,记录当前的缓存行信息到命中列表中,根据缺失状态保持寄存器,记录缺失的缓存行信息到缺失列表中;
S22,比较命中列表和缺失列表,查看缺失列表中的每一项是否出现在命中列表中,如果没有,则访存缺失为纯缺失;
S3,如果纯缺失率大于预设的阈值,将循环体划分到存算一体计算单元中进行计算,否则,将循环体继续在CPU上进行计算。
2.根据权利要求1所述的一种存算一体程序划分方法,其特征在于所述当前的缓存行信息,是缓存行命中的访存周期号;所述缺失的缓存行信息,是缓存行缺失的周期号。
3.根据权利要求1所述的存算一体程序划分方法,其特征在于所述纯缺失率=纯缺失的访存周期数/总的CPU访存周期数。
4.根据权利要求1所述的存算一体程序划分方法,其特征在于所述部分指令是循环体的前5%-15%的指令。
5.根据权利要求1所述的存算一体程序划分方法,其特征在于所述阈值是3-7%。
6.一种存算一体程序划分装置,包括CPU和存算一体单元,其特征在于所述CPU上,设有划分识别模块,用于识别出程序段是否为循环体,对于非循环体的代码段对应的指令,该模块将对应的指令按照常规的体系结构下的模式执行;对于循环体,该模块会对循环体的部分指令在CPU上循环展开,进行循环采样,通过纯缺失检测装置得到纯缺失,通过纯缺失率计算模块,算出采样代码段的纯缺失率,如果纯缺失率大于预设的阈值,将循环体划分到存算一体计算单元中进行计算,否则,将循环体继续在CPU上进行计算;纯缺失检测装置包括相互连接的最后一级缓存和缺失状态保持寄存器,其特征在于所述最后一级缓存中设有纯缺失侦测部件,该部件包括命中列表和缺失列表,分别记录缓存命中与缺失信息,所述缺失信息,通过缺失状态保持寄存器记录到缺失列表中,比较命中列表和缺失列表,查看缺失列表中的每一项是否出现在命中列表中,如果没有,则访存缺失为纯缺失。
7.根据权利要求6所述的一种存算一体程序划分装置,其特征在于所述缓存命中与缺失信息,分别是缓存命中与缺失周期号。
8.根据权利要求6所述的一种存算一体程序划分装置,其特征在于所述纯缺失率=纯缺失的访存周期数/总的CPU访存周期数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110419624.7A CN113127065B (zh) | 2021-04-19 | 2021-04-19 | 一种基于纯缺失检测方法的存算一体程序划分方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110419624.7A CN113127065B (zh) | 2021-04-19 | 2021-04-19 | 一种基于纯缺失检测方法的存算一体程序划分方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127065A CN113127065A (zh) | 2021-07-16 |
CN113127065B true CN113127065B (zh) | 2022-07-08 |
Family
ID=76778141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110419624.7A Active CN113127065B (zh) | 2021-04-19 | 2021-04-19 | 一种基于纯缺失检测方法的存算一体程序划分方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127065B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114356588B (zh) * | 2022-03-18 | 2022-06-17 | 苏州云途半导体有限公司 | 一种数据预加载方法和装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761515A (en) * | 1996-03-14 | 1998-06-02 | International Business Machines Corporation | Branch on cache hit/miss for compiler-assisted miss delay tolerance |
EP0883059A2 (en) * | 1997-06-04 | 1998-12-09 | Nec Corporation | Compiler applicable to nonblocking cache memory and code scheduling method thereof |
CN102455977A (zh) * | 2010-11-02 | 2012-05-16 | 江苏大学 | 一种嵌入式设备低功耗混合Cache的实现方法 |
CN103543959A (zh) * | 2013-10-08 | 2014-01-29 | 深圳市国泰安信息技术有限公司 | 海量数据高速缓存的方法及装置 |
CN108255690A (zh) * | 2018-01-16 | 2018-07-06 | 宿州新材云计算服务有限公司 | 一种服务器性能度量方法 |
CN108345763A (zh) * | 2018-04-02 | 2018-07-31 | 东南大学 | 乱序处理器Cache缺失服务时间的评估方法 |
CN110168508A (zh) * | 2017-01-13 | 2019-08-23 | 微软技术许可有限责任公司 | 经由高速缓存的有效断点检测 |
CN110879797A (zh) * | 2019-10-31 | 2020-03-13 | 西安交通大学 | 高速可重构处理器配置信息缓存替换方法及存储体系结构 |
CN111142941A (zh) * | 2019-11-27 | 2020-05-12 | 核芯互联科技(青岛)有限公司 | 一种非阻塞高速缓存缺失处理方法及装置 |
CN111258927A (zh) * | 2019-11-13 | 2020-06-09 | 北京大学 | 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法 |
CN111813709A (zh) * | 2020-07-21 | 2020-10-23 | 北京计算机技术及应用研究所 | 一种基于fpga存算一体架构的高速并行存储方法 |
CN112308222A (zh) * | 2020-10-27 | 2021-02-02 | 之江实验室 | 一种基于rram存算一体全系统模拟器及其设计方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080010555A1 (en) * | 2006-06-16 | 2008-01-10 | Phillip Emma | Method and Apparatus for Measuring the Cost of a Pipeline Event and for Displaying Images Which Permit the Visualization orf Said Cost |
US10795815B2 (en) * | 2016-05-27 | 2020-10-06 | Arm Limited | Method and apparatus for maintaining data coherence in a non-uniform compute device |
-
2021
- 2021-04-19 CN CN202110419624.7A patent/CN113127065B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5761515A (en) * | 1996-03-14 | 1998-06-02 | International Business Machines Corporation | Branch on cache hit/miss for compiler-assisted miss delay tolerance |
EP0883059A2 (en) * | 1997-06-04 | 1998-12-09 | Nec Corporation | Compiler applicable to nonblocking cache memory and code scheduling method thereof |
CN102455977A (zh) * | 2010-11-02 | 2012-05-16 | 江苏大学 | 一种嵌入式设备低功耗混合Cache的实现方法 |
CN103543959A (zh) * | 2013-10-08 | 2014-01-29 | 深圳市国泰安信息技术有限公司 | 海量数据高速缓存的方法及装置 |
CN110168508A (zh) * | 2017-01-13 | 2019-08-23 | 微软技术许可有限责任公司 | 经由高速缓存的有效断点检测 |
CN108255690A (zh) * | 2018-01-16 | 2018-07-06 | 宿州新材云计算服务有限公司 | 一种服务器性能度量方法 |
CN108345763A (zh) * | 2018-04-02 | 2018-07-31 | 东南大学 | 乱序处理器Cache缺失服务时间的评估方法 |
CN110879797A (zh) * | 2019-10-31 | 2020-03-13 | 西安交通大学 | 高速可重构处理器配置信息缓存替换方法及存储体系结构 |
CN111258927A (zh) * | 2019-11-13 | 2020-06-09 | 北京大学 | 一种基于采样的应用程序cpu末级高速缓存缺失率曲线的预测方法 |
CN111142941A (zh) * | 2019-11-27 | 2020-05-12 | 核芯互联科技(青岛)有限公司 | 一种非阻塞高速缓存缺失处理方法及装置 |
CN111813709A (zh) * | 2020-07-21 | 2020-10-23 | 北京计算机技术及应用研究所 | 一种基于fpga存算一体架构的高速并行存储方法 |
CN112308222A (zh) * | 2020-10-27 | 2021-02-02 | 之江实验室 | 一种基于rram存算一体全系统模拟器及其设计方法 |
Non-Patent Citations (1)
Title |
---|
优化内存系统能效的DRAM 架构研究综述;展旭升等;《高技术通讯》;20181231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113127065A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hsieh et al. | Accelerating pointer chasing in 3D-stacked memory: Challenges, mechanisms, evaluation | |
Hsieh et al. | Transparent offloading and mapping (TOM) enabling programmer-transparent near-data processing in GPU systems | |
US6938252B2 (en) | Hardware-assisted method for scheduling threads using data cache locality | |
Nesbit et al. | AC/DC: An adaptive data cache prefetcher | |
US5349656A (en) | Task scheduling method in a multiprocessor system where task selection is determined by processor identification and evaluation information | |
TWI596479B (zh) | 具有資料預取器的處理器及其運作方法 | |
Kloosterman et al. | WarpPool: Sharing requests with inter-warp coalescing for throughput processors | |
WO2020073641A1 (zh) | 一种面向数据结构的图形处理器数据预取方法及装置 | |
Ghose et al. | The processing-in-memory paradigm: Mechanisms to enable adoption | |
CN113127065B (zh) | 一种基于纯缺失检测方法的存算一体程序划分方法及装置 | |
Islam et al. | Zero-value caches: Cancelling loads that return zero | |
Dickmans | Subject-object discrimination in 4D dynamic scene interpretation for machine vision | |
Yan et al. | Copim: a concurrency-aware pim workload offloading architecture for graph applications | |
Liang et al. | VStore: in-storage graph based vector search accelerator | |
US20160070701A1 (en) | Indexing accelerator with memory-level parallelism support | |
Park et al. | ELF: Maximizing memory-level parallelism for GPUs with coordinated warp and fetch scheduling | |
KR20210090442A (ko) | L1 데이터 캐시의 바이패스 방법 및 장치 | |
Wu et al. | Ribbon: High performance cache line flushing for persistent memory | |
Yoon et al. | Self-learnable cluster-based prefetching method for DRAM-flash hybrid main memory architecture | |
Falahati et al. | ISP: Using idle SMs in hardware-based prefetching | |
Zhu et al. | Onac: optimal number of active cores detector for energy efficient gpu computing | |
Castro et al. | Load-store queue management: an energy-efficient design based on a state-filtering mechanism | |
Knafla | Analysing Object Relationships to Predict Page Access for Prefetching. | |
Wu et al. | The dynamically efficient mechanism of HDFS data prefetching | |
Wu et al. | Wap: The warp feature aware prefetching method for llc on cpu-gpu heterogeneous architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |