CN116821008B - 具有提高的高速缓存命中率的处理装置及其高速缓存设备 - Google Patents
具有提高的高速缓存命中率的处理装置及其高速缓存设备 Download PDFInfo
- Publication number
- CN116821008B CN116821008B CN202311091792.3A CN202311091792A CN116821008B CN 116821008 B CN116821008 B CN 116821008B CN 202311091792 A CN202311091792 A CN 202311091792A CN 116821008 B CN116821008 B CN 116821008B
- Authority
- CN
- China
- Prior art keywords
- memory
- cluster
- cache device
- computation
- cache
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims description 30
- 230000001788 irregular Effects 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 description 25
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
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
本公开提供了具有提高的高速缓存命中率的处理装置及其高速缓存设备。该高速缓存设备包括:接口电路,被配置为从处理器接收关于存取存储器簇的配置指令;以及簇分析器,耦合到接口电路并且被配置为:基于配置指令获取要存取的存储器簇的信息;并且通过接口电路将存储器簇从存储器中读入高速缓存设备的缓存行中,其中,存储器簇包括根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域,并且每个存储器区域对应于存储器中的一段连续地址。
Description
技术领域
本公开概括而言涉及计算设备的领域,更具体而言,涉及具有提高的高速缓存命中率的处理装置及其高速缓存设备。
背景技术
对于诸如稀疏矩阵乘法、图形神经网络或社交关系发掘之类的不规则计算,由于存储器中的不规则数据存储,难以提高高速缓存命中率。处理器管线往往带有许多气泡并且资源利用率很低。
发明内容
本公开的一个方面提供了一种高速缓存设备。该高速缓存设备包括:接口电路,被配置为从处理器接收关于存取存储器簇的配置指令;以及簇分析器,耦合到接口电路并且被配置为:基于配置指令获取要存取的存储器簇的信息;并且通过接口电路将存储器簇从存储器中读入高速缓存设备的缓存行中,其中,存储器簇包括根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域,并且每个存储器区域对应于存储器中的一段连续地址。
本公开的另一方面提供了一种控制高速缓存设备存取数据的方法。该方法包括:接收关于存取存储器簇的配置指令;基于配置指令获取要存取的存储器簇的信息;以及将存储器簇从存储器中读入高速缓存设备的缓存行中,其中,存储器簇包括根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域,并且每个存储器区域对应于存储器中的一段连续地址。
本公开的另一方面提供了一种处理装置,包括上述高速缓存设备。
本公开的另一方面提供了一种计算机可读存储介质,其上存储有指令,所述这些指令当被计算设备执行时实现上述控制高速缓存设备存取数据的方法。
附图说明
将参考附图来描述根据本公开的各种示例,在附图中:
图1示出了根据实施例的稀疏矩阵乘法的示例存储器访问轨迹。
图2示出了将图1的存储器访问轨迹归类为存储器簇的示意图。
图3示出了根据本申请的实施例的高速缓存设备的示意框图。
图4示出了根据本申请的实施例的基于第五代精简指令集计算机(RISC-V)高速缓存管理操作(CMO)规范的关于存取存储器簇的配置指令的示例。
图5示出了根据本申请的实施例的存储器簇的数据结构的示例。
图6示出了根据本申请的实施例的控制高速缓存设备存取数据的示例过程。
图7示出了针对稀疏矩阵乘法进行评估时与常见的先进先出(FIFO)缓存替代策略相比本申请实施例的技术方案数据等待周期减小的分布情况。
图8示出了处理针对高速缓存设备的配置指令的计算硬件的示例。
图9示出了根据本公开各种实施例的高速缓存设备可以用在其中的示例计算设备的框图。
具体实施方式
针对对于不规则计算难以提高高速缓存命中率的问题,就中央处理单元(CPU)而言,一般解决方案是扩大高速缓存大小,而就图形处理单元(GPU)而言,一般解决方案是使用许多硬件线程来隐藏存储器等待时间。
在第五代精简指令集计算机(RISC-V)中,引入了用于高速缓存管理操作(CMO)的指令集体系结构(ISA )扩展。CMO允许软件提供关于将如何使用高速缓存块的高速缓存硬件提示,从而高速缓存可在发生实际存储器存取之前预取数据。然而,RISC-V CMO 未针对不规则计算进行优化,因为其对每个指令的单个块起作用。对于不规则计算,每次存储器访问将需要一个CMO 指令,从而使得预取带来的好处被抵消掉。
对于不规则计算,目前已提出的一些具体的改进方案包括:Kartik Hegde等人在其文章“ExTensor: An Accelerator for Sparse Tensor Algebra(ExTensor:用于稀疏张量代数的加速器)”中提出了在处理元件(PE)的阵列内引入“定序器和扫描器”以识别稀疏张量中的非零块,然后压缩计算;Yang Yifan等人在其文章“SpZip: architecturalsupport for effective data compression in irregular applications(SpZip:对于不规则计算中的有效数据压缩的体系结构支持)”中提出了在高速缓存和核心之间提供解耦的可编程获取器和压缩器,以加速不规则应用所使用的数据结构的遍历、解压缩和压缩;Anurag Mukkara等人在其文章“PHI: Architectural Support for Synchronization-and Bandwidth-Efficient Commutative Scatter Updates(PHI:对同步且带宽有效的可交换散布更新的体系结构支持)”中提出通过在高速缓存中引入装仓(binning)阶段和累积阶段以利用时间和空间局部性益处,来使得散布更新同步且带宽有效;以及MichaelPellauer等人在其文章“Buffets: An Efficient and Composable Storage Idiom forExplicit Decoupled Data Orchestration(Buffets:针对显式解耦数据编排的高效且可组合的存储习语)”中提出了一种用于显式解耦数据编排的可组合组件来支持加速器设计。然而,这些改进方案集中于从数据路径卸载不规则计算所需的地址生成和存储器请求,而没有考虑如何利用有可能在不规则计算中重复使用的数据,从而由于不规则计算的不规则性,高速缓存命中率和管线使用率仍然很差。
本公开的实施例提供了一种高速缓存设备,其被配置为以存储器簇格式存取数据,以及用于控制高速缓存设备以存储器簇格式存取数据的方法。本公开的实施例还提供了用于配置高速缓存设备以存储器簇格式存取数据的处理装置。通过这样的高速缓存设备和处理装置的结合,使得处理器能够在执行不规则计算时重复使用高速缓存设备内的数据,从而提高了效率。举例而言,与普通先进先出(FIFO )高速缓存替换策略相比,本公开提出的高速缓存设备针对稀疏矩阵乘法减少了45%的数据等待周期。
本公开所使用的术语“处理装置”可以是任何包括中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、微控制器、加速器等等中任意一者或多者而具有运算能力的装置。
本公开所使用的术语“存储器簇”指的是根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域。本公开所使用的术语“存储器区域”指的是存储器中的一段连续地址。在本文中,将要执行的计算可以包括各种不规则计算,比如,稀疏矩阵乘法、图形神经网络或社交关系发掘等等。
为了更形象地说明存储器簇和存储器区域,以下以稀疏矩阵乘法作为将要执行的计算的示例来进行描述。
假定矩阵A和B,其中至少有一者为稀疏矩阵,它们被以压缩稀疏行格式(CSR)格式存储在存储器中。为了计算它们的乘积C=A×B,在计算矩阵C的每一元素时,需要高速缓存设备从存储器中读取矩阵A的一行和矩阵B的一列。由于矩阵A和B被以CSR格式存储在存储器中,读取操作的存储器轨迹是随机的、不连续的。图1示出了根据实施例的稀疏矩阵乘法的示例存储器访问轨迹。
参见图1,例如,在计算矩阵C的元素1和元素2时,存储器访问轨迹具有相似性,从而可以将这些存储器访问轨迹归类为一个存储器簇。类似的,针对在计算矩阵C的其他元素时相似的存储器访问轨迹也可以归类为一个存储器簇。
图2示出了将图1的存储器访问轨迹归类为存储器簇的示意图。在图2中,存储器簇1、存储器簇k(即第个k存储器簇,k为大于1的正整数)分别包括对应的存储器区域1、存储器区域2、存储器区域3和存储器区域4。
每个存储器簇包括的存储器区域的数目取决于将使用该存储器簇来计算的每个元素的计算所需要的存储器访问轨迹,而存储器访问轨迹进一步取决于矩阵A和B各自的稀疏程度和存储格式。在本申请的实施例中,每个存储器簇至少包括两个存储器区域。
如图2所示,如果在计算矩阵C 的元素1和元素2之前预取存储器簇1,并且在计算矩阵C 的元素3之前预取存储器簇2,则能够有益地提高高速缓存命中率。
图3示出了根据本申请的实施例的高速缓存设备300的示意框图。高速缓存设备300可被包括在各种计算机体系结构中,例如本领域中已知的用于膝上型电脑、桌面型电脑、手持个人计算机(personal computer,PC)、个人数字助理、工程工作站、服务器、分解式服务器、网络设备、网络集线器、交换机、路由器、嵌入式处理器、数字信号处理器(digitalsignal processor,DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备、以及各种其他电子设备的计算机体系结构。
根据实施例,高速缓存设备300可以包括接口电路310、簇分析器320以及缓存行330。
接口电路310可以包括一个或多个接口,用于耦合到处理器和存储器。
处理器可以包括中央处理单元(CPU)、高吞吐量处理器、网络或通信处理器、压缩引擎、图形处理单元(GPU)、通用图形处理单元(GPGPU)、神经网络处理单元(NPU)、嵌入式处理器等等中的任意一个或多个。存储器可以是任何类型的存储器,比如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等),等等。
处理器经由特定指令和接口配置智能高速缓存设备并经由特定指令和接口激活智能高速缓存设备。接口电路310被配置为从处理器接收指令,例如,关于存取存储器簇的配置指令。
目前的RISC-V CMO ISA 扩展已定义了4条指令(即,cbo.clean,cbo. flush,cbo.inval 和cbo. zero)用来清除、刷新、无效和归零高速缓存块,以及3条指令(即,prefetch.i,prefetch. r 和prefetch. w)用来向硬件提供如下提示(HINT):高速缓存块在不久的将来可能被以如下方式访问:指令提取、数据读取和数据写入。为充分利用上述已经存在的指令,本申请提出了基于RISC-V CMO规范的关于存取存储器簇的配置指令,这些配置指令向硬件提供如下HINT:存储器簇将被访问。
图4示出了根据本申请的实施例的基于RISC-V CMO规范的关于存取存储器簇的配置指令的示例。图4示出了PREFETCH. MCR 和PREFETCH. MCW两个指令的编码。PREFETCH.MCR用于提示硬件即将进行存储器簇读取,而PREFETCH. MCW用于提示硬件即将进行存储器簇写入。在图4的示例中,存储器簇的有效地址是rs1字段中指定的基地址(base)与imm[11:0]中编码的经符号扩展的偏移(offset)之和。在图4的示例中,ORI字段和OP-IMM用于表明PREFETCH. MCR 和PREFETCH. MCW两个指令是基于RISC-V CMO规范的指令,这两个字段与所有基于RISC-V CMO规范的指令相同,不可重新编码。例如,PREFETCH. MCR用于提示硬件即将从rs1字段中指定的基地址(base)与imm [11:0]中编码的经符号扩展的偏移(offset)之和所指示的存储器位置处开始进行存储器簇读取,PREFETCH. MCW用于提示硬件即将从rs1字段中指定的基地址(base)与imm [11:0]中编码的经符号扩展的偏移(offset)之和所指示的存储器位置处开始进行存储器簇写入。关于所读取或写入的存储器簇的数据结构例如可以参见图5。
根据本申请的实施例还可以存在其他关于存取存储器簇的配置指令,在此不再一一详述。
簇分析器320耦合到接口电路310以基于所接收的关于存取存储器簇的配置指令获取要存取的存储器簇的信息,并且通过接口电路310将存储器簇从存储器中读入缓存行330中。
根据本申请的实施例,存储器簇包括根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域,并且每个存储器区域对应于存储器中的一段连续地址。
根据一些实施例,要存取的存储器簇的信息可以包括,例如,存储器簇所包括的存储器区域的数目、每个所述存储器区域的大小和存储器地址、以及与存储器簇相关联的计算。“相关联的计算”可以是矩阵乘法乘积中元素的索引,卷积输出特征图中元素的索引,或其他计算任务的其他标识符。
在一个实施例中,接口电路310从处理器接收的关于存取存储器簇的配置指令可以直接表明要存取的存储器簇的信息,从而簇分析器320可以直接从中得出要存取的存储器簇的信息。
在另一实施例中,关于存取存储器簇的配置指令可以表明将要执行的计算的类型(例如,矩阵乘法、卷积等)、输入数据的存储格式(例如,稀疏矩阵表示、内核压缩等)、以及元数据地址(例如在输入数据中被以CSR格式存储的情况下,用于表明输入数据中的非零元素的位置)等。簇分析器320可以基于要执行的计算的类型、输入数据的存储格式、以及元数据地址动态地生成要存取的存储器簇的信息,例如,使用K-means 或其他算法。
在再一实施例中,关于存取存储器簇的配置指令可以表明要存取的存储器簇的信息,并且簇分析器320可以基于所表明的要存取的存储器簇的信息来导出动态的存储器簇信息。
在又一实施例中,关于存取存储器簇的配置指令可以仅表明计算(例如,不规则计算)的开始,并且簇分析器320可以从存储器访问踪迹导出要存取的存储器簇的信息。
簇分析器320还可以被配置为在获取要存取的存储器簇的信息后,将要存取的存储器簇的信息存储在高速缓存设备300中。处理器可以经由特定指令和接口从高速缓存设备300获得该信息。例如,簇分析器320还可以被配置为响应于处理器的问询而向处理器发送要存取的存储器簇的信息。
在存储器簇被从存储器读入缓存行330中后,处理器可以针对与当前存储器簇相关联的输出元素进行计算,然后高速缓存设备300以存储器簇格式缓存计算结果,并且将以存储器簇格式缓存的结果写入到存储器中。在高速缓存设备300将以存储器簇格式缓存的结果写入到存储器中之后,处理器经由特定指令和接口清理高速缓存设备300。
需要说明的是,虽然在图3中高速缓存设备300被示出为在处理器外部,但这示出为了清楚地描述高速缓存设备300与处理器之间的通信,实际上,高速缓存设备300也可以被集成到处理器内部,在此情况下针对图3所描述的高速缓存设备300与处理器之间的通信仍然适用。至于高速缓存设备在处理器内部还是外部,本申请不作限定。
图5示出了根据本申请的实施例的存储器簇的数据结构的示例。图5所示的存储器簇的数据结构可以包括表明存储器区域的数目的字段(如“区域的数目(N+1)”)、表明存储器簇的基地址的字段(如“整个存储器簇的基地址”)、表明每个存储器区域的大小的字段(如“区域0的长度”、“区域1的长度”……“区域N的长度”)、以及表明每个存储器区域相对于所述基地址的偏移的字段(如 “区域0的偏移地址”、“区域1的偏移地址”……“区域N的偏移地址”)。
图6示出了根据本申请的实施例的控制高速缓存设备存取数据的示例过程600。示例过程600可例如由图3的高速缓存设备来执行。
示例过程600包括:在610,接收关于存取存储器簇的配置指令;在620,基于配置指令获取要存取的存储器簇的信息;以及在630,将存储器簇从存储器中读入所述高速缓存设备的缓存行中。可选地,示例过程600还可以包括:在640,以存储器簇格式缓存配置指令所指示的计算的结果,并且在650,将以存储器簇格式缓存的结果写入到存储器中。
图6所描述的过程可以在一个或多个模块中作为存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存之类的机器或计算机可读存储介质中的逻辑指令集实现;在诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)之类的可配置逻辑中实现;在使用诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术之类的电路技术的固定功能逻辑硬件中实现;或者在其任意组合中实现。
例如,图6所描述的过程中所示的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括面向对象的编程语言,例如JAVA、SMALLTALK、C++等,以及常规的过程编程语言,例如“C”编程语言或类似的编程语言。另外,逻辑指令可以包括汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、集成电路的配置数据、使硬件本地的电子电路和/或其它结构组件(例如,主处理器、中央处理单元(CPU)、图形处理单元(GPU)、微控制器等)个性化的状态信息。
根据本申请实施例的高速缓存设备和控制该高速缓存设备存取数据的方法能够基于来自处理器的关于存取存储器簇的配置指令获取要存取的存储器簇的信息,并且将存储器簇从存储器中读入高速缓存设备的缓存行中,以使得处理器能够针对与存储器簇相关联的输出元素进行计算,并且高速缓存设备能够以存储器簇格式缓存计算的结果并将以存储器簇格式缓存的结果写入到存储器中。在高速缓存设备中的预取数据有益于在不规则计算中获得高效率。
为了说明本申请实施例的技术方案的上述优点,针对稀疏矩阵乘法评估了根据本申请实施例的高速缓存设备和控制该高速缓存设备存取数据的方法。
为进行评估,从套件稀疏矩阵集合(SuiteSparse Matrix Collection),以前称为佛罗里达大学稀疏矩阵集合(University of Florida Sparse Matrix Collection)中选取1000对200×200的稀疏矩阵。在测试时,在乘积矩阵中存在成百上千的元素。这些元素被分类为8个存储器簇。事先使用诸如K-Mean算法之类的算法来获得存储器簇信息。图7示出了针对稀疏矩阵乘法进行评估时与常见的先进先出(FIFO)缓存替代策略相比本申请实施例的技术方案数据等待周期减小的分布情况。
从图7可以看出,与常见的FIFO 缓存替换策略相比,本申请实施例的技术方案的数据等待周期减小了45%。在最佳情况下,节省了75%的数据等待周期。这种好处是以零高速缓存大小成本获得的,即没有增大高速缓存设备的大小,并且运行时开销是可以忽略的,因为它需要少量的指令来配置高速缓存设备,而且这些指令可以在实际计算之前发出。
由于SuiteSparse Matrix Collection的随机性和通用性,本申请实施例的技术方案在其他不规则计算场景以及规则计算场景下也同样是有利的。
图8示出了处理针对高速缓存设备的配置指令的计算硬件800的示例。该指令可以是关于存取存储器簇的配置指令,例如prefetch. mcr 和prefetch. mcw指令。如图所示,存储装置803存储要被执行的指令801。
指令801被解码器电路805接收。例如,解码器电路805从取得(fetch)电路(未示出)接收该指令。该指令可以采取任何适当的格式,例如上面参考图4描述的格式。在一种示例中,该指令包括用于操作码、一个或多个)源标识符和目的地标识符的字段。在一些示例中,源和目的地是寄存器,而在其他示例中,它们中的一个或多个是存储器位置。在一些示例中,源中的一个或多个可以是立即数操作对象。在一些示例中,操作码详述了针对高速缓存设备的配置。
解码器电路805将指令解码成一个或多个操作。在一些示例中,这种解码包括生成要被执行电路(例如执行电路809)执行的多个微操作。解码器电路805也对指令前缀进行解码。
在一些示例中,寄存器重命名、寄存器分配和/或调度电路807提供用于以下各项中的一项或多项的功能:1)将逻辑操作对象值重命名为物理操作对象值(例如,一些示例中的寄存器别名表);2)向经解码的指令分配状态比特和标志;以及3)从指令池调度经解码的指令来由执行电路执行(例如,在一些示例中,使用预留站)。
寄存器(寄存器堆)和/或存储器808存储数据作为指令的操作对象,执行电路809将对这些操作对象进行操作。示例寄存器类型包括紧缩(packed)数据寄存器、通用寄存器(general purpose register,GPR)、以及浮点寄存器。
执行电路809执行经解码的指令。执行经解码的指令使得执行电路对高速缓存设备进行配置。
在一些示例中,引退/写回电路811在体系结构上将目的地寄存器提交到寄存器或存储器808中,并引退该指令。
图9示出了根据本公开各种实施例的高速缓存设备可以用在其中的示例计算设备900的框图。具体地,图9所示的计算设备900包括一个或多个处理器(或处理器核)910、一个或多个存储器/存储设备920、和一个或多个通信资源930,其中,这些处理器、存储器/存储设备、和通信资源中的每一者可以经由总线940或其他接口电路通信地耦合。对于利用节点虚拟化(例如,网络功能虚拟化(NFV))的实施例,可以执行管理程序902以提供一个或多个网络切片/子切片的执行环境从而利用计算设备900的硬件资源。
处理器910可以包括例如,处理器912和处理器914。处理器910可以是例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、诸如基带处理器的数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、射频集成电路(RFIC)、另一处理器(包括本文讨论的那些处理器)、或其任何合适的组合。
存储器/存储设备920可以包括主存储器、磁盘存储设备、或其任何适当组合。存储器/存储设备920可以包括但不限于任何类型的易失性、非易失性、或半易失性存储器,例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态存储器等。
通信资源930可包括互连或网络接口控制器、组件、或其他合适的设备,以经由网络908与一个或多个外围设备904或一个或多个数据库906或其他网络元件通信。例如,通信资源930可以包括有线通信组件(例如,用于经由USB、以太网等进行耦合)、蜂窝通信组件、近场通信(NFC)组件、Bluetooth®(或Bluetooth®低能量)组件、Wi-Fi®组件、和其他通信组件。
指令950可以包括软件、程序、应用程序、小程序、应用程序、或其他可执行代码,用于使处理器910中的至少任意一个处理器执行各种处理过程。指令950可以全部或部分驻留在处理器910(例如,在处理器的高速缓存中)、存储器/存储设备920、或其任何适当组合中的至少一者内。此外,指令950的任意部分可以从外围设备904或数据库906的任意组合传送到计算设备900的硬件资源。因此,处理器910的存储器、存储器/存储设备920、外围设备904、和数据库906是计算机可读和机器可读介质的示例。
以下提供了根据本申请实施例的附加示例和说明。
示例1. 一种高速缓存设备,包括:接口电路,被配置为从处理器接收关于存取存储器簇的配置指令;以及簇分析器,耦合到所述接口电路并且被配置为:基于所述配置指令获取要存取的存储器簇的信息;并且通过所述接口电路将所述存储器簇从存储器中读入所述高速缓存设备的缓存行中,其中,所述存储器簇包括根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域,并且每个所述存储器区域对应于所述存储器中的一段连续地址。
示例2. 如示例1所述的高速缓存设备,其中,所述配置指令是基于精简指令集计算机(RISC)高速缓存设备管理操作(CMO)规范的指令,并且所述配置指令包括预取-存储器簇读指令(PREFETCH. MCR)和预取-存储器簇写指令(PREFETCH. MCW)。
示例3. 如示例1或2所述的高速缓存设备,其中,所述要存取的存储器簇的信息包括所述存储器区域的数目、每个所述存储器区域的大小和存储器地址、以及与所述存储器簇相关联的计算。
示例4. 如示例1到33所述的高速缓存设备,其中,所述存储器簇的数据结构包括表明所述存储器区域的数目的字段、表明所述存储器簇的基地址的字段、表明每个存储器区域的大小的字段、以及表明每个存储器区域相对于所述基地址的偏移的字段。
示例5. 如示例1到4所述的高速缓存设备,其中,所述配置指令直接表明所述要存取的存储器簇的信息。
示例6. 如示例1到4所述的高速缓存设备,其中,所述配置指令表明所述将要执行的计算的类型、输入数据的存储格式、以及元数据地址,其中所述元数据地址表明所述输入数据中的非零元素的位置,并且所述簇分析器基于配置指令动态地生成所述要存取的存储器簇的信息。
示例7. 如示例1到4所述的高速缓存设备,其中,所述簇分析器分析所述存储器访问轨迹,并且还基于所述存储器访问轨迹获取所述要存取的存储器簇的信息。
示例8. 如示例7所述的高速缓存设备,其中,所述簇分析器响应于所述处理器的问询而向所述处理器发送所述要存取的存储器簇的信息。
示例9. 一种控制高速缓存设备存取数据的方法,包括
接收关于存取存储器簇的配置指令;
基于所述配置指令获取要存取的存储器簇的信息;以及
将所述存储器簇从存储器中读入所述高速缓存设备的缓存行中,
其中,所述存储器簇包括根据将要执行的计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列存储器区域,并且每个所述存储器区域对应于所述存储器中的一段连续地址。
示例10. 如示例9所述的方法,还包括:
以存储器簇格式缓存所述将要执行的计算的结果;并且
将以存储器簇格式缓存的所述结果写入到所述存储器中。
示例11. 如示例9所述的方法,其中,所述配置指令是基于精简指令集计算机(RISC)高速缓存设备管理操作(CMO)规范的指令,并且所述配置指令包括预取-存储器簇读指令(PREFETCH. MCR)和预取-存储器簇写指令(PREFETCH. MCW)。
示例12. 如示例9到11所述的方法,其中,所述要存取的存储器簇的信息包括所述存储器区域的数目、每个所述存储器区域的大小和存储器地址、以及与所述存储器簇相关联的计算。
示例13. 如示例9到12所述的方法,其中,所述存储器簇的数据结构包括表明所述存储器区域的数目的字段、表明所述存储器簇的基地址的字段、表明每个存储器区域的大小的字段、以及表明每个存储器区域相对于所述基地址的偏移的字段。
示例14. 如示例9到13所述的方法,其中,所述配置指令直接表明所述要存取的存储器簇的信息。
示例15. 如示例9到13所述的方法,其中,所述配置指令表明所述将要执行的计算的类型、输入数据的存储格式、以及元数据地址,其中所述元数据地址表明所述输入数据中的非零元素的位置,并且所述方法包括基于配置指令动态地生成所述要存取的存储器簇的信息。
示例16. 如示例9到13所述的方法,还包括:分析所述存储器访问轨迹,并且还基于所述存储器访问轨迹获取所述要存取的存储器簇的信息。
示例17. 如示例16所述的方法,其中,还包括:响应于所述处理器的问询而向所述处理器发送所述要存取的存储器簇的信息。
示例18. 一种计算机可读存储介质,其上存储有指令,所述指令当被计算设备执行时,使得所述计算设备执行如示例9到17所述的控制高速缓存设备存取数据的方法。
示例19. 一种装置,包括用于执行如示例9到17所述的控制高速缓存设备存取数据的方法的部件。
示例20. 一种计算设备,包括处理器,存储器,以及如示例1到8中任一项所述的高速缓存设备。
提及“一种示例”、“一个示例”等等表明所描述的示例可以包括特定的特征、结构或特性,但可能不一定每个示例都包括该特定特征、结构或特性。此外,这种短语不一定指的是同一示例。另外,当结合一个示例来描述特定的特征、结构或特性时,应当认为结合其他示例(无论是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内的。
此外,在上文描述的各种示例中,除非另有特别注明,否则诸如短语“A、B或C中的至少一者”或者“A、B和/或C”之类的选取语言应当被理解为指的是A、B或C,或者其任何组合(即,A和B,A和C,B和C,以及A、B和C)。
因此,说明书和附图应当被认为是示例性的,而不是限制性的。然而,显然可能对其作出各种修改和变更,而不脱离如权利要求中阐述的本公开的更宽精神和范围。
Claims (11)
1.一种高速缓存设备,包括
接口电路,被配置为从处理器接收关于存取存储器簇的配置指令;以及
簇分析器,耦合到所述接口电路并且被配置为:
基于所述配置指令获取要存取的存储器簇的信息;并且
通过所述接口电路将所述存储器簇从存储器中读入所述高速缓存设备的缓存行中,
其中,所述存储器簇包括根据将要执行的不规则计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列非连续存储器区域,并且每个所述存储器区域对应于所述存储器中的一段连续地址,所述将要执行的不规则计算的操作对象被以压缩稀疏行格式存储在所述存储器中,所述将要执行的不规则计算的结果中的每个元素的计算所需要的存储器访问轨迹对应于在单独计算该元素的情况下所需要访问的所述存储器中的地址,并且所述要存取的存储器簇的信息包括所述存储器区域的数目、每个所述存储器区域的大小和存储器地址、以及与所述存储器簇相关联的所述不规则计算。
2. 如权利要求1所述的高速缓存设备,其中,所述配置指令是基于精简指令集计算机高速缓存设备管理操作规范的指令,并且所述配置指令包括预取-存储器簇读指令PREFETCH. MCR和预取-存储器簇写指令PREFETCH. MCW。
3.如权利要求1所述的高速缓存设备,其中,所述存储器簇的数据结构包括表明所述存储器区域的数目的字段、表明所述存储器簇的基地址的字段、表明每个存储器区域的大小的字段、以及表明每个存储器区域相对于所述基地址的偏移的字段。
4.如权利要求1所述的高速缓存设备,其中,所述配置指令直接表明所述要存取的存储器簇的信息。
5.如权利要求1所述的高速缓存设备,其中,所述配置指令表明所述将要执行的不规则计算的类型、输入数据的存储格式、以及元数据地址,其中所述元数据地址表明所述输入数据中的非零元素的位置,并且所述簇分析器基于配置指令动态地生成所述要存取的存储器簇的信息。
6.如权利要求1所述的高速缓存设备,其中,所述簇分析器分析所述存储器访问轨迹,并且还基于所述存储器访问轨迹获取所述要存取的存储器簇的信息。
7. 如权利要求6所述的高速缓存设备,其中,所述簇分析器响应于所述处理器的问询而向所述处理器发送所述要存取的存储器簇的信息。
8.一种控制高速缓存设备存取数据的方法,包括
接收关于存取存储器簇的配置指令;
基于所述配置指令获取要存取的存储器簇的信息;以及
将所述存储器簇从存储器中读入所述高速缓存设备的缓存行中,
其中,所述存储器簇包括根据将要执行的不规则计算的结果中的每个元素的计算所需要的存储器访问轨迹的相似性进行归类的一系列非连续存储器区域,并且每个所述存储器区域对应于所述存储器中的一段连续地址,所述将要执行的不规则计算的操作对象被以压缩稀疏行格式存储在所述存储器中,所述将要执行的不规则计算的结果中的每个元素的计算所需要的存储器访问轨迹对应于在单独计算该元素的情况下所需要访问的所述存储器中的地址,并且所述要存取的存储器簇的信息包括所述存储器区域的数目、每个所述存储器区域的大小和存储器地址、以及与所述存储器簇相关联的所述不规则计算。
9. 如权利要求8所述的方法,还包括:
以存储器簇格式缓存所述将要执行的计算的结果;并且
将以存储器簇格式缓存的所述结果写入到所述存储器中。
10.一种处理装置,包括如权利要求1到7中任一项所述的高速缓存设备。
11.一种计算机可读存储介质,其上存储有指令,所述指令当被计算设备执行时实现如权利要求8或9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311091792.3A CN116821008B (zh) | 2023-08-28 | 2023-08-28 | 具有提高的高速缓存命中率的处理装置及其高速缓存设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311091792.3A CN116821008B (zh) | 2023-08-28 | 2023-08-28 | 具有提高的高速缓存命中率的处理装置及其高速缓存设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116821008A CN116821008A (zh) | 2023-09-29 |
CN116821008B true CN116821008B (zh) | 2023-12-26 |
Family
ID=88120622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311091792.3A Active CN116821008B (zh) | 2023-08-28 | 2023-08-28 | 具有提高的高速缓存命中率的处理装置及其高速缓存设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821008B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725329B1 (en) * | 2000-04-19 | 2004-04-20 | Western Digital Technologies, Inc. | Cache control system and method having hardware-based tag record allocation |
CN108268423A (zh) * | 2016-12-31 | 2018-07-10 | 英特尔公司 | 实现用于具有写到读依赖关系的稀疏线性代数运算的增强的并行性的微架构 |
CN109461113A (zh) * | 2018-10-11 | 2019-03-12 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785564B2 (en) * | 2013-08-20 | 2017-10-10 | Seagate Technology Llc | Hybrid memory with associative cache |
US9892180B2 (en) * | 2014-11-21 | 2018-02-13 | International Business Machines Corporation | Data transfer between multiple databases |
US9582422B2 (en) * | 2014-12-24 | 2017-02-28 | Intel Corporation | Hardware prefetcher for indirect access patterns |
-
2023
- 2023-08-28 CN CN202311091792.3A patent/CN116821008B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6725329B1 (en) * | 2000-04-19 | 2004-04-20 | Western Digital Technologies, Inc. | Cache control system and method having hardware-based tag record allocation |
CN108268423A (zh) * | 2016-12-31 | 2018-07-10 | 英特尔公司 | 实现用于具有写到读依赖关系的稀疏线性代数运算的增强的并行性的微架构 |
CN109461113A (zh) * | 2018-10-11 | 2019-03-12 | 中国人民解放军国防科技大学 | 一种面向数据结构的图形处理器数据预取方法及装置 |
Non-Patent Citations (1)
Title |
---|
Eager Memory Cryptography in Caches;Xin Wang, et al;2022 55th IEEE/ACM International Symposium on Microarchitecture (MICRO);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116821008A (zh) | 2023-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11243768B2 (en) | Mechanism for saving and retrieving micro-architecture context | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
Lee et al. | Warped-compression: Enabling power efficient GPUs through register compression | |
CN113553209B (zh) | 用于存储器损坏检测的硬件装置和方法 | |
CN108292215B (zh) | 用于加载-索引和预取-聚集操作的指令和逻辑 | |
TWI733760B (zh) | 記憶體複製指令、處理器、方法及系統 | |
US20170177361A1 (en) | Apparatus and method for accelerating graph analytics | |
US20170024210A1 (en) | Extension of CPU Context-State Management for Micro-Architecture State | |
US10289752B2 (en) | Accelerator for gather-update-scatter operations including a content-addressable memory (CAM) and CAM controller | |
US10175987B2 (en) | Instruction prefetching in a computer processor using a prefetch prediction vector | |
Lee et al. | Improving energy efficiency of GPUs through data compression and compressed execution | |
US20170177345A1 (en) | Instruction and Logic for Permute with Out of Order Loading | |
CN114661434A (zh) | 用于难以预测的分支的替代路径解码 | |
Dixon et al. | THE NEXT-GENERATION INTEL CORE MICROARCHITECTURE. | |
US9229874B2 (en) | Apparatus and method for compressing a memory address | |
US10069512B2 (en) | Systems, methods, and apparatuses for decompression using hardware and software | |
US9928033B2 (en) | Single-pass parallel prefix scan with dynamic look back | |
EP3333710A1 (en) | System, apparatus and method for dynamic profiling in a processor | |
CN116821008B (zh) | 具有提高的高速缓存命中率的处理装置及其高速缓存设备 | |
CN112395000B (zh) | 一种数据预加载方法和指令处理装置 | |
CN114661635A (zh) | 具有错误时并行解压缩的经压缩的高速缓存存储器 | |
CN112148106A (zh) | 用于处理器的混合预留站的系统、装置和方法 | |
US20230198548A1 (en) | Apparatus and method for constant detection during compress operations | |
EP4202664B1 (en) | System, apparatus and method for throttling fusion of micro-operations in a processor | |
BR102022023763A2 (pt) | Aparelho e método para detecção de constante durante operações de compactação |
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 |