CN115905038B - 缓存数据读取方法、装置、计算机设备和存储介质 - Google Patents
缓存数据读取方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN115905038B CN115905038B CN202211531116.9A CN202211531116A CN115905038B CN 115905038 B CN115905038 B CN 115905038B CN 202211531116 A CN202211531116 A CN 202211531116A CN 115905038 B CN115905038 B CN 115905038B
- Authority
- CN
- China
- Prior art keywords
- address offset
- offset position
- data
- cache
- cache data
- 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 51
- 238000012545 processing Methods 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims abstract description 28
- 230000008878 coupling Effects 0.000 claims description 107
- 238000010168 coupling process Methods 0.000 claims description 107
- 238000005859 coupling reaction Methods 0.000 claims description 107
- 230000008569 process Effects 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000001514 detection method Methods 0.000 description 17
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- 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
本申请涉及数据处理技术领域,涉及一种缓存数据读取方法、集群预测方法、装置、计算机设备、存储介质和计算机程序产品。缓存数据读取方法包括:接收读取指令;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置;根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;读取匹配到的缓存数据。采用本方法能够同时进行至少两个组合地址偏移位置的匹配动作和读取动作,大大提高数据读取的效率,使得在不大幅增加硬件逻辑的前提下,实现缓存数据读取吞吐率的翻倍提升,且该种设置能够适用于只读缓存、可读可写缓存和只写缓存,通用性强。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种缓存数据读取方法、集群预测方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
传统的高速缓存Cache,每个时钟周期(cycle)只能处理一次匹配检测和读取一条指令。在计算单元和线程数目翻倍的情况下,为了能够满足增加线程的请求,有可能需要每个时钟周期处理多条指令。常规的处理方式是,设计多个Cache来满足要求,但是这样需要大量硬件逻辑,在实际实施中将大大提高装置成本。
对于指令缓存也是如此,如果为了满足每个时钟周期为多个线程读取多条指令,那么简单的策略就是直接使用多个指令缓存,但是这大大增加了硬件逻辑,导致需要大量硬件开销,性价比过低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够节省硬件开销,提高读取效率的缓存数据读取方法、装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种缓存数据读取方法,包括:
接收读取指令;
按照预设规则,将所述读取指令对应的地址偏移位置转换为组合地址偏移位置;其中,所述地址偏移位置包含至少一种地址偏移位置;
根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;
读取匹配到的缓存数据。
在其中一个实施例中,每个所述数据组中保存有至少一种缓存数据类型,且每种缓存数据类型由多组预设字节长度的缓存数据组成,每个所述数据组中包含至少一种耦合编号类型,且每种耦合编号类型由预设数量的耦合编号组成;至少一种所述缓存数据类型与至少一种所述耦合编号类型一一对应,且每组所述缓存数据与对应的耦合编号类型中的耦合编号一一对应;
所述按照预设规则,将所述读取指令对应的地址偏移位置转换为组合地址偏移位置,包括:
根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第一数值;
根据所述地址偏移位置对应的原始编号和所述预设数量,确定所述地址偏移位置对应的第二数值;
根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第三数值;
根据所述地址偏移位置对应的第一数值、第二数值、第三数值和所述预设字节长度,确定所述地址偏移位置对应的组合地址偏移位置。
在其中一个实施例中,所述根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第一数值,包括:
将所述地址偏移位置对应的原始编号,与所述数据组中所有耦合编号的总数做相除取整处理;
将相除取整处理后得到的整数作为所述第一数值。
在其中一个实施例中,所述根据所述地址偏移位置对应的原始编号和所述预设数量,确定所述地址偏移位置对应的第二数值,包括:
根据所述原始编号对应的最低比特位和所述预设数量,确定所述第二数值。
在其中一个实施例中,所述根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第三数值,包括:
将所述原始编号与所述数据组中所有耦合编号的总数做相除取余处理;
将相除取余处理后得到的余数按照第二预设数值进行右移位处理,得到所述地址偏移位置对应的第三数值。
在其中一个实施例中,所述根据所述地址偏移位置对应的第一数值、第二数值、第三数值和所述预设字节长度,确定所述地址偏移位置对应的组合地址偏移位置,采用如下公式计算得到所述组合地址偏移位置:
其中,δ表示所述组合地址偏移位置;n表示所述预设字节长度;j表示所述原始编号;p表示所述预设数量;t表示所述缓存数据类型或所述耦合编号类型的种类,t=2u,且u为正整数;表示所述第一数值,/>表示所述原始编号和所述数据组中所有耦合编号的总数做相除取整处理;(j&t)*p表示所述第二数值,(j&t)表示选择j的最低u比特位;[(j%(tp))》u]表示所述第三数值,j%(tp)表示将所述原始编号与所述数据组中所有耦合编号的总数做相除取余处理;》表示右移位处理。
在其中一个实施例中,所述根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据,还包括:
当所述数据组中不存在对应的缓存数据时,按照所述读取指令从存储器中调取对应的存储数据;
将所述存储数据存入新的数据组中,以形成新的缓存数据。
第二方面,本申请还提供了一种缓存数据读取装置,包括:
接收模块,用于接收读取指令;
转换模块,用于按照预设规则,将所述读取指令对应的地址偏移位置转换为组合地址偏移位置;其中,所述地址偏移位置包含至少一种地址偏移位置;
匹配模块,用于根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;
读取模块,用于读取匹配到的缓存数据。
第三方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例中所述的缓存数据读取方法的步骤。
第四方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序产品被处理器执行时实现上述任一实施例中所述的缓存数据读取方法的步骤。
上述缓存数据读取方法、装置、计算机设备、存储介质和计算机程序产品能够接收针对至少一种地址偏移位置的读取指令,并将至少一种地址偏移位置按照预设规则转换为组合地址偏移位置,能够同时进行组合地址偏移位置的匹配动作和读取动作,大大提高数据读取的效率,使得在不大幅增加硬件逻辑的前提下,实现缓存数据读取吞吐率的翻倍提升,且该种设置能够适用于只读缓存、可读可写缓存和只写缓存,通用性强。
附图说明
图1为一个实施例中缓存数据读取方法的流程示意图;
图2为一个实施例中执行单元采用耦合型指令缓存时的结构框图;
图3为一个实施例中执行单元采用耦合型指令缓存时,处理着色指令程序的流程示意图;
图4为一个实施例中耦合型指令缓存中主要逻辑部件的结构框图;
图5为一个实施例中耦合型指令缓存中的数据组存储缓存数据的示意图;
图6为一个实施例中缓存数据读取装置的结构框图;
图7为一个实施例中缓存数据读取装置中转换模块的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,提供了一种缓存数据读取方法,本实施例以该缓存数据读取方法应用于处理器进行举例说明,可以理解的是,该处理器可位于终端或服务器上。如图1所示,该缓存数据读取方法包括:
步骤202、接收读取指令。
读取指令指的是向处理区发送的获取缓存数据的指令。
读取指令可以是用户通过终端上的人机交互界面发出的,也可以是根据预先设置的定时触发任务自动发出的,还可以是根据预先设置的触发频率自动发出的。
作为示例,现代图形处理器(graphics processing unit,GPU)中包括大量的执行单元,用于动态计算各种着色程序,从而可以利用GPU的多线程多执行单元的特点,实现并行计算加速。GPU中的线程称作Wave,包含多个子单元(lane),GPU能够把所有lane打包,以单指令流多数据流(SIMD)的方式进行读写和计算;通常,GPU会将32个或者64个lane打包为一个GPU线程Wave,称作simd32、simd64的wave。
进一步地,GPU中的执行单元由线程寄存单元(Wave Register Unit,WVR)、线程调度单元(Wave Controller,WVC)、计算单元(arithmetic logic unit,ALU)、指令缓存(Instruction Cache,IC)和输入输出(INOUT)等部件构成,其中,WVR用于暂存线程Wave的中间数据;WVC用于管理和调度每个线程wave的控制单元,包括选择线程、取指、译码、发射等步骤,可以在每个预先设置的时钟周期内按照优先级从WVR暂存的8个线程wave中选择一个合适的线程wave,并发送该线程wave的指令读取指令至IC、对返回的缓存数据进行译码、发送处理指令到ALU使得ALU进行线程wave的计算执行;ALU用于完成线程wave的计算功能,能够以SIMD的方式同时处理多个lane的计算,包括算术运算、逻辑运算、位运算、跳转判断、特殊函数等操作,并将计算结果写入WVR或者通过ONOUT输出;IC用于根据WVC发出的指令读取请求,为指令读取请求对应的线程wave读取缓存数据,它是一种高速缓存,包含缓存空间、匹配控制逻辑、Tag单元等部分,缓存空间组织为多个缓存行的形式进行管理。
则本实施例中的读取指令可以是WVR按照预先设置的优先级顺序,选择一个线程wave向IC发出指令读取请求,该指令读取请求用于从IC中读取WVR选择的线程wave对应的缓存数据。
步骤204、按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置。
地址偏移位置指的是寻常指令缓存中读取指令对应的数据所在的位置。
作为示例,组合地址偏移位置指的是组合型指令缓存中读取指令对应的数据所在的位置。组合型指令缓存可以分别存储至少两种缓存数据类型。本实施例中的读取指令可以同时用于为至少两个线程wave读取缓存数据,作为示例,组合地址偏移位置可以分别指代奇型缓存行和偶型缓存行中的两种位置。
地址偏移位置指的是读取指令中包含的寻常指令缓存中对应的数据所在的位置。
GPU中的着色程序经过编译器调用后,得到可以直接在GPU上执行的指令集合,称作着色指令程序。其中,每条着色指令程序由多条指令组成,每个指令对应一个线程wave。
作为示例,当每条指令假设占用n个字节(byte),且着色指令程序共有m条指令时,那么当前着色指令程序共占用(m*n)个字节(byte)。
寻常的指令缓存IC采用多个依次排列的缓存行的形式存储缓存数据,IC中的所有缓存行形成了多个数据组,一次只能针对一个线程wave的读取指令,进行一次匹配检测,读取一条指令。IC可以根据读取指令对应的第i条指令,计算出对应的地址偏移位置(i*n),从而可以直接取得对应的缓存数据。
为了大幅度增强算力,提高数据的吞吐率,当读取指令用于同时为k个线程wave读取缓存数据时,本实施例中的执行单元可以采用组合型指令缓存替换IC,组合型指令缓存将缓存数据分为k种,分别进行存储,并分别映射到组合型指令缓存的数据组中,组合型指令缓存的每个数据组包含k种缓存行,且每个缓存行中存储有以k为间隔的耦合编号的缓存数据,组合型指令缓存可以使用k套匹配检测机制,对读取指令对应的k种位置的缓存行分别进行匹配检测和读取操作,同时,本实施例中采用k个ALU分别对k种缓存行中的缓存数据进行计算,采用k个WVR用于分别暂存k种缓存行中的缓存数据,其余部件保持不变。
其中,k大于等于2。
在一种实施例中,如图2所示,当读取指令用于同时为两个线程wave读取缓存数据时,本实施例中的执行单元可以采用耦合型指令缓存(Coupled Instruction Cache,CIC)替换IC,CIC将缓存数据按照奇偶交错的方式进行存储,并分别映射到CIC的数据组中,CIC的每个数据组包含奇型缓存行和偶型缓存行,CIC可以使用两套匹配检测机制,对读取指令对应的奇偶两种位置的缓存行分别进行匹配检测和读取操作,同时,本实施例中采用两个ALU(ALU0和ALU1)分别对奇偶缓存行中的缓存数据进行计算,采用两个WVR(WVR0和WVR1)用于分别暂存奇偶缓存行中的缓存数据,其余部件保持不变。本实施例中的CIC能够实现每个读取指令针对奇偶两种缓存行中数据的同时检测和读取,并且对硬件实现比较友好,硬件逻辑开销不大。
因此,如图3所示,对于耦合型指令缓存,需要由驱动预先把着色指令程序重组为奇偶指令交错的形式,然后存储到内存空间中,在运行时由CIC重新计算组合地址偏移位置,再用新的组合地址偏移位置读取对应的缓存数据。
具体的,地址偏移位置指的是IC中具体缓存行中数据所在的位置,组合地址偏移位置指的是CIC中具体奇偶缓存行中数据所在的位置。
本实施例中,处理器采用耦合型指令缓存,并在接收到读取指令时,将读取指令原先携带的用于指示寻常指令缓存的缓存行中数据所在的位置,转化为耦合型指令缓存的奇偶缓存行中数据所在的位置。
步骤206、根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据。
当读取指令用于同时为k个线程wave读取缓存数据时,本实施例中采用组合型指令缓存来存储缓存数据,组合型指令缓存包括k种缓存行,每个缓存行中存储有采用以k为间隔的缓存数据组,地址偏移位置对应的组合地址偏移位置指的分别是k种缓存行中的k个位置。
作为示例,当读取指令用于同时为两个线程wave读取缓存数据时,本实施例中采用CIC存储缓存数据,CIC中采用奇偶交错的缓存行存储缓存数据,地址偏移位置对应的组合地址偏移位置指的是CIC的奇型缓存行中的一个位置和偶型缓存行中的一个位置。
作为示例,本实施例中的CIC与IC相比,主要使用了两套匹配控制逻辑,并且把缓存空间划分为了奇偶两块,以便同时处理针对两个线程wave的读取请求。作为示例,如图4所示,CIC的主要逻辑部件包括CIC_CTRL、Even/Odd TAG、MATCH_E/MATCH_O、PEND_FIFO0/PEND_FIFO1、MISS_FIFO和CRAM0/CRAM1,其中,CIC_CTRL指的是控制单元,用于接收线程调度单元发来的读取指令请求,将把读取指令对应的地址偏移位置转换为组合地址偏移位置,并把读取请求分别发送给左右两个匹配控制逻辑;Even TAG和Odd TAG用于记录所有缓存行的Tag信息,每个缓存行的Tag包括虚拟地址、优先级、状态等信息,用于请求匹配检测操作;Even TAG和Odd TAG分别记录缓冲行地址为偶数和奇数的Tag信息;MATCH_E和MATCH_O指的是CIC的匹配控制逻辑,分别与Even TAG和Odd TAG对应,MATCH_E和MATCH_O用于根据各自接收到的读取请求,从对应的TAG单元中读取缓存行的Tag信息,进行地址的匹配检测,并更新TAG单元,常用PLRU策略更新匹配二叉树,输出匹配结果到后续单元;PEND_FIFO0和PEND_FIFO1指的是两个暂存匹配结果的缓存,按照先进先出顺序从CRAM0或者CRAM1中读写数据;CRAM0和CRAM1指的是两块指令缓存空间,分别用于记录偶型缓存行和奇型缓存行的缓存数据,每个空间被组织成多个缓存行的存储结构,每个缓存行记录一个固定大小的数据(例如2kbits),每个缓存行的Tag信息记录在TAG单元中。
具体的,步骤206中,CIC的处理逻辑如下:(1)、CIC中的控制单元CIC_CTRL接收WVC发出的针对两个线程Wave的读取指令,其中,读取指令包含针对偶型缓存行的req0和针对奇型缓存行的req1;(2)、CIC_CTRL将req0和req1对应的地址偏移位置转换为组合地址偏移位置,并把req0和req1的组合地址偏移位置分别发送给左右两个匹配控制逻辑;(3)、CIC中的MATCH_E和MATCH_O从EVEN/ODD TAG中读取相应的缓存行Tag信息,分别对req0和req1的组合地址偏移位置进行地址匹配检测操作,在MATCH_E负责req0的的组合地址偏移位置的匹配检测,MATCH_O负责req1的的组合地址偏移位置的匹配检测;(4)、MATCH_E和MATCH_O的匹配检测结果分别输出到两个PEND_FIFO,按照先进先出顺序从PEND_FIFO获得匹配结果。
本实施例中,处理器根据地址偏移位置对应的组合地址偏移位置,从本实施例中的CIC的奇偶缓存行中匹配到对应的缓存数据所在的位置,并确定对应的缓存数据。
步骤208、读取匹配到的缓存数据。
作为示例,步骤208中,处理器按照先进先出顺序从PEND_FIFO获得匹配结果后,对CRAM0或者CRAM1中相应的缓存行进行读写数据操作,每个CRAM需要处理一个读指令请求,获取对应的缓存数据,随后CIC将返回缓存数据给线程调度单元WVC,便于WVC继续处理对应的两个线程。
如图4所示,CIC的处理逻辑还包括:(5)、按照先进先出顺序从PEND_FIFO获得匹配结果,并对CRAM0或者CRAM1中相应的缓存行进行读写数据操作,每个CRAM需要处理一个读指令请求。
本实施例中,处理器CIC的奇偶缓存行中将匹配到的缓存数据读取出来,完成缓存数据的读取。
上述缓存数据读取方法中,处理器能够接收针对至少两个线程wave的读取指令,该读取指令中携带有至少两个线程wave对应的、适用于寻常的指令缓存IC的地址偏移位置,处理器将至少两个地址偏移位置按照预设规则转换为组合地址偏移位置,随后根据转换后的组合地址偏移位置在组合型指令缓存的缓存行中匹配到对应的缓存数据并进行读取。上述缓存数据读取方法能够同时接收针对至少两个线程wave的缓存数据的读取指令,并同时进行至少两个位置的匹配动作和读取动作,大大提高数据读取的效率,使得在不大幅增加硬件逻辑的前提下,实现缓存数据读取吞吐率的翻倍提升,且该种设置能够适用于只读缓存、可读可写缓存和只写缓存,通用性强。
以下实施例中的执行单元均采用CIC替换IC,CIC将缓存数据按照奇偶交错的方式进行存储,CIC的每个数据组包含奇型缓存行和偶型缓存行,读取指令用于同时为两个以上的线程wave读取缓存数据、执行单元采用组合型指令缓存的应用过程不再一一赘述。
在一些可能的实施例中,每个数据组中保存有至少一种缓存数据类型,且每种缓存数据类型由多组预设字节长度的缓存数据组成,每个数据组中包含至少一种耦合编号类型,且每种耦合编号类型由预设数量的耦合编号组成;至少一种缓存数据类型与至少一种耦合编号类型一一对应,且每组缓存数据与对应的耦合编号类型中的耦合编号一一对应;步骤204包括:根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第一数值;根据地址偏移位置对应的原始编号和预设数量,确定地址偏移位置对应的第二数值;根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第三数值;根据地址偏移位置对应的第一数值、第二数值、第三数值和预设字节长度,确定地址偏移位置对应的组合地址偏移位置。
具体的,地址偏移位置对应的原始编号指的是IC中缓存数据的组的编号。具体的,IC将所有缓存数据按照预设大小进行划分,得到多个组,且这些组按照顺序进行依次排列,并依次分配从小到大的数值作为编号。
每个数据组包含至少一种缓存数据类型,每种缓存数据类型中包含多组缓存数据且每种缓存数据类型对应一种耦合编号类型,每种缓存数据类型中的每组缓存数据均对应一种耦合编号类型中的一个耦合编号。
作为示例,本实施例中的IC和CIC的每个数据组的大小为256byte,IC的每个组和CIC中每种缓存数据类型的每组缓存数据的大小均为8byte,因此IC的每个组可以存放32组缓存数据,第一组例如标记为{instr0、instr1、instr2、……、instr31},相应的CIC的一种缓存数据类型存放16组缓存数据、另一种缓存数据类型存放16组缓存数据,前一种缓存数据类型的16个数据组例如标记为{instr0、instr2、instr4、……、instr30},后一种缓存数据类型的16个数据组例如标记为{instr1、instr3、instr5、……、instr31}。
进一步地,步骤204可以采用如下公式确定地址偏移位置在CIC中的组合地址偏移位置:
δ=n*{L1+L2+L3}
其中,δ表示组合地址偏移位置,n表示预设字节长度,L1表示第一数值,L2表示第二数值,L3表示第三数值。
本实施例中,处理器按照IC中缓存数据的组的编号、CIC中每个数据组包含的两种耦合编号类型的耦合编号的总数、预先设置的预设数量,和两种缓存数据类型中每组缓存数据的预设字节长度,确定地址偏移位置对应的组合地址偏移位置。
在一些可能的实施例中,根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第一数值,包括:将地址偏移位置对应的原始编号,与数据组中所有耦合编号的总数做相除取整处理;将相除取整处理后得到的整数作为第一数值。
本实施例中,处理器采用如下公式计算得到第一数值:
其中,L1表示第一数值,表示相除取整,j表示地址偏移位置对应的原始编号,p表示预设数量。
本实施例中,处理器将地址偏移位置对应的原始编号与所有耦合编号类型中耦合编号的总数相除后取整数,并将获得的整数与所有耦合编号类型中耦合编号的总数相乘,得到第一数值。
在一些可能的实施例中,根据地址偏移位置对应的原始编号和预设数量,确定地址偏移位置对应的第二数值,包括:当原始编号为奇数时,将预设数量作为第二数值;当原始编号为偶数时,将第一预设数值作为第二数值。
具体的,第一预设数值可以是0。
进一步地,本实施例中,处理器采用如下公式计算得到第二数值:
L2=(j&0x1)*p
其中,L2表示第二数值,(j&0x1)在j为奇数时,返回1,在j为偶数时,返回0。
本实施例中,处理器在地址偏移位置对应的原始编号为奇数时,将预设数量作为第二数值,在地址偏移位置对应的原始编号为偶数时,将第一预设数值作为第二数值。
在一些可能的实施例中,根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第三数值,包括:将原始编号与数据组中所有耦合编号的总数做相除取余处理;将相除取余处理后得到的余数按照第二预设数值进行右移位处理,得到地址偏移位置对应的第三数值。
具体的,第二预设数值可以为1。
进一步地,本实施例中,处理器采用如下公式计算得到第三数值:
L3=[(j%(2p)>>1]
其中,L3表示第三数值,j%(2p)表示将j与2p相除取余,》表示右移位。
具体的,上述计算第三数值的公式中采用二进制数值进行表示。
本实施例中,处理器将地址偏移位置对应的原始编号与数据组中第一类耦合编号和第二类耦合编号的总数相除,将得到的余数的二进制数向右移一位,得到第三数值。
在一些可能的实施例中,根据地址偏移位置对应的第一数值、第二数值、第三数值和预设字节长度,确定地址偏移位置对应的组合地址偏移位置,采用如下公式计算得到组合地址偏移位置:
其中,δ表示组合地址偏移位置;n表示预设字节长度;j表示原始编号;p表示预设数量;t表示缓存数据类型或耦合编号类型的种类,t=2u,且u为正整数;表示第一数值,/>表示原始编号和数据组中所有耦合编号的总数做相除取整处理;(j&t)*p表示第二数值,(j&t)表示选择j对应的最低u比特位;[(j%(tp))>>u]表示第三数值,j%(tp)表示将原始编号与数据组中所有耦合编号的总数做相除取余处理;>>表示右移位处理。
作为示例,当u=2时,t=4,则在组合型指令缓存中的每个数据组包含四个依次排列的缓存行,则每个缓存行中多个组的耦合编号以4为间隔,例如,第一个缓存行包含的多个组可以与耦合编号0、4、8、12…对应,第二个缓存行包含的多个组可以与耦合编号1、5、8、13…对应,第三个缓存行包含的多个组可以与耦合编号2、6、9、14…对应,第四个缓存行包含的多个组可以与耦合编号3、7、10、15…对应,则当j=2时,(j&t)输出2,当j=15时,输出为3,以此类推。
当u=3时,t=8,则在组合型指令缓存中的每个数据组包含八个依次排列的缓存行,则每个缓存行中多个组的耦合编号以8为间隔,例如,第一个缓存行包含的多个组可以与耦合编号0、8、16、24…对应,第二个缓存行包含的多个组可以与耦合编号1、9、17、25…对应,第三个缓存行包含的多个组可以与耦合编号2、10、18、26…对应,第四个缓存行包含的多个组可以与耦合编号3、11、19、27…对应……第八个缓存行包含的多个组可以与耦合编号7、15、23、31…对应,则当j=11时,(j&t)输出3,当j=30时,输出为2,以此类推。
作为示例,如图5所示,CIC中每个数据组的大小为256byte,且CIC中每种缓存数据类型的每组缓存数据的大小为8byte,CIC中可以包括两个数据组,一个数据组包含两个缓存行,奇型缓存行存放16组缓存数据,标记为{instr0、instr2、instr4、……、instr30}和{instr32、instr34、instr36、……、instr62},。偶型缓存行也存放16组缓存数据,标记为{instr1、instr3、instr5、……、instr31}和{instr33、instr35、instr37、……、instr63},若CIC收到读取指令,且该读取指令对应的地址偏移位置的原始编号为5,则采用公式 可以计算得出 由此可知,该读取指令实际想要调取的缓存数据被存储在CIC的144byte始处;若CIC收到读取指令,且该读取指令对应的地址偏移位置的原始编号为34,则采用公式/> 可以计算得出/> 由此可知,该读取指令实际想要调取的缓存数据被存储在CIC的264byte处。
又或者,当读取指令对应的用于同时为两个线程wave读取缓存数据,且这两个线程wave读取缓存数据的顺序均为{instr0、instr1、instr2、……、instr63}时,处理器首先为第一个线程wave读取instr0中的缓存数据,此时第二个线程wave的缓存数据获取过程发生冲突,因此暂停执行,在第一个线程wave成功读取instr0中的缓存数据后,处理器继续为第一个线程wave读取instr1中的缓存数据,由于奇偶两种缓存行分别使用独立的一套匹配检测机制,因此此时处理器可以同时为第二个线程wave读取instr0中的缓存数据,进一步的,处理器为第一个线程wave读取instr j中的缓存数据时,可以同时为第二个线程wave读取instrj-1中的缓存数据,从而实现采用一个指令缓存同时为两个线程wave进行缓存数据的匹配检测和读取处理。
在一些可能的实施例中,步骤206中还包括:当数据组中不存在对应的缓存数据时,按照读取指令从存储器中调取对应的存储数据;将存储数据存入新的数据组中,以形成新的缓存数据。
当数据组中不存在对应的缓存数据时,可以认为发生读取失配。
作为示例,如图4所示,CIC的逻辑部件还包括MISS_FIFO,用于暂存两个匹配控制逻辑的失配的结果,MISS_FIFO可以按照顺序,从外部的缓存器中读取失配的读取指令对应的存储数据,CIC的处理逻辑还包括:(6)、PEND_FIFO0和PEND_FIFO1在发生失配情况时,等待从外部的存储器读取到存储数据、并更新到CRAM0或CRAM1后,继续执行;(7)、存储器中调取的存储数据返回后,更新到被替换的缓存行,并唤起在PEND_FIFO中被挂起的对应请求,继续执行;(8)、在req0和req1读取相应的指令操作后,CIC将返回指令结果给线程调度单元WVC,便于WVC继续处理对应的两个线程。
具体的,CIC中的MATCH_E或MATCH_O无法从Even TAG或Odd TAG中获取到对应的缓存数据时,可以确定req0或者req1请求发生失配的情况,此时CIC需要锁定req0或者req1对应的缓存行,然后送入到MISS_FIFO,从外部的存储器获取读取指令对应的存储数据;这一过程可能较长,在PEND_FIFO中的对应请求将被挂起,直到外部的存储数据返回。
需要注意的是,如果req0或者req1均匹配成功,那么可以从CIC中同时读取两个组合地址偏移位置对应的缓存数据并且同时返回;但是如果一个匹配成功而另一个失配,那么只能先返回匹配成功的缓存数据,失配的req将被挂起,直到处理器从外部的存储器获取读取指令对应的存储数据并写入到相应的缓存行以后,才能返回给WVC,由于CIC的奇偶部分是相对独立的模块,所以两者操作能够并行执行,不会互相影响。
上述缓存数据读取方法,能够采用耦合型指令缓存CIC,将缓存数据按照奇偶交错的方式存储,并分别映射到CIC的奇偶缓存行中,并同时使用了两套匹配检测机制对同一个读取指令对应的两个组合地址偏移位置分别进行匹配检测和读取操作。该耦合型指令缓存能够实现两个组合地址偏移位置的同时检测和读取,并且对硬件实现比较友好,硬件逻辑开销不大。该种设置大大提高数据读取的效率,使得在不大幅增加硬件逻辑的前提下,实现缓存数据读取吞吐率的翻倍提升,且该种设置能够适用于只读缓存、可读可写缓存和只写缓存,通用性强。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的缓存数据读取方法的缓存数据读取装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个缓存数据读取装置实施例中的具体限定可以参见上文中对于缓存数据读取方法的限定,在此不再赘述。
如图6所示,本申请实施例还提供了一种缓存数据读取装置700,包括接收模块702、转换模块704、匹配模块706、读取模块708;收模块702用于接收读取指令;转换模块704用于按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置;匹配模块706用于根据至少一种地址偏移位置对应的组合地址偏移位置,分别从数据组中匹配到对应的缓存数据;读取模块708用于读取匹配到的缓存数据并展示。
如图7所示,在一些可能的实施例中,每个数据组中保存有至少一种缓存数据类型,且每种缓存数据类型由多组预设字节长度的缓存数据组成,每个数据组中包含至少一种耦合编号类型,且每种耦合编号类型由预设数量的耦合编号组成;至少一种缓存数据类型与至少一种耦合编号类型一一对应,且每组缓存数据与对应的耦合编号类型中的耦合编号一一对应;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置,包括:第一确定单元7042,用于根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第一数值;第二确定单元7044,用于根据地址偏移位置对应的原始编号和预设数量,确定地址偏移位置对应的第二数值;第三确定单元7046,用于根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第三数值;第四确定单元7048,用于根据地址偏移位置对应的第一数值、第二数值、第三数值和预设字节长度,确定地址偏移位置对应的组合地址偏移位置。
在一些可能的实施例中,第一确定单元7042还被配置为:将地址偏移位置对应的原始编号,与数据组中所有耦合编号的总数做相除取整处理;将相除取整处理后得到的整数作为第一数值。
在一些可能的实施例中,第二确定单元7044还被配置为:根据原始编号对应的最低比特位和预设数量,确定第二数值。
在一些可能的实施例中,第三确定单元7046还被配置为:将原始编号与数据组中所有耦合编号的总数做相除取余处理;将相除取余处理后得到的余数按照第二预设数值进行右移位处理,得到地址偏移位置对应的第三数值。
在一些可能的实施例中,第四确定单元7048还被配置为:采用如下公式计算得到组合地址偏移位置:
其中,δ表示组合地址偏移位置;n表示预设字节长度;j表示原始编号;p表示预设数量;t表示缓存数据类型或耦合编号类型的种类,t=2u,且u为正整数;表示第一数值,/>表示原始编号和数据组中所有耦合编号的总数做相除取整处理;(j&t)*p表示第二数值,(j&t)表示选择j的最低u比特位;[(j%(tp))》u]表示第三数值,j%(tp)表示将原始编号与数据组中所有耦合编号的总数做相除取余处理;>>表示右移位处理。
在一些可能的实施例中,匹配模块706还被配置为:当数据组中不存在对应的缓存数据时,按照读取指令从存储器中调取对应的存储数据;将存储数据存入新的数据组中,以形成新的缓存数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:接收读取指令;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置;根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;读取匹配到的缓存数据。
在一些可能的实施例中,每个数据组中保存有至少一种缓存数据类型,且每种缓存数据类型由多组预设字节长度的缓存数据组成,每个数据组中包含至少一种耦合编号类型,且每种耦合编号类型由预设数量的耦合编号组成;至少一种缓存数据类型与至少一种耦合编号类型一一对应,且每组缓存数据与对应的耦合编号类型中的耦合编号一一对应;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置,包括:根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第一数值;根据地址偏移位置对应的原始编号和预设数量,确定地址偏移位置对应的第二数值;根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第三数值;根据地址偏移位置对应的第一数值、第二数值、第三数值和预设字节长度,确定地址偏移位置对应的组合地址偏移位置。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:将地址偏移位置对应的原始编号,与数据组中所有耦合编号的总数做相除取整处理;将相除取整处理后得到的整数作为第一数值。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:根据原始编号对应的最低比特位和预设数量,确定第二数值。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:将原始编号与数据组中所有耦合编号的总数做相除取余处理;将相除取余处理后得到的余数按照第二预设数值进行右移位处理,得到地址偏移位置对应的第三数值。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:当数据组中不存在对应的缓存数据时,按照读取指令从存储器中调取对应的存储数据;将存储数据存入新的数据组中,以形成新的缓存数据。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序产品被处理器执行时实现如下步骤:接收读取指令;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置;根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;读取匹配到的缓存数据。
在一些可能的实施例中,每个数据组中保存有至少一种缓存数据类型,且每种缓存数据类型由多组预设字节长度的缓存数据组成,每个数据组中包含至少一种耦合编号类型,且每种耦合编号类型由预设数量的耦合编号组成;至少一种缓存数据类型与至少一种耦合编号类型一一对应,且每组缓存数据与对应的耦合编号类型中的耦合编号一一对应;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置,包括:根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第一数值;根据地址偏移位置对应的原始编号和预设数量,确定地址偏移位置对应的第二数值;根据地址偏移位置对应的原始编号、数据组中所有耦合编号的总数,确定地址偏移位置对应的第三数值;根据地址偏移位置对应的第一数值、第二数值、第三数值和预设字节长度,确定地址偏移位置对应的组合地址偏移位置。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:将地址偏移位置对应的原始编号,与数据组中所有耦合编号的总数做相除取整处理;将相除取整处理后得到的整数作为第一数值。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:根据原始编号对应的最低比特位和预设数量,确定第二数值。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:将原始编号与数据组中所有耦合编号的总数做相除取余处理;将相除取余处理后得到的余数按照第二预设数值进行右移位处理,得到地址偏移位置对应的第三数值。
在一些可能的实施例中,计算机程序被处理器执行时还实现以下步骤:当数据组中不存在对应的缓存数据时,按照读取指令从存储器中调取对应的存储数据;将存储数据存入新的数据组中,以形成新的缓存数据。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序产品被处理器执行时实现如下步骤:接收读取指令;按照预设规则,将读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置;根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;读取匹配到的缓存数据。
在一些可能的实施例中,每个数据组保存有预设字节长度的多组第一类缓存数据和多组第二类缓存数据,且每个数据组中包含预设数量的第一类耦合编号和预设数量的第二类耦合编号;多组第一类缓存数据与多个第一类耦合编号一一对应,多组第二类缓存数据与多个第二类耦合编号一一对应;计算机程序被处理器执行时还实现以下步骤:根据地址偏移位置对应的原始编号、数据组中第一类耦合编号和第二类耦合编号的总数,确定地址偏移位置对应的第一数值;根据地址偏移位置对应的原始编号和预设数量,确定地址偏移位置对应的第二数值;根据地址偏移位置对应的原始编号,确定地址偏移位置对应的第三数值;根据地址偏移位置对应的第一数值、第二数值、第三数值和预设字节长度,确定地址偏移位置对应的组合地址偏移位置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述集群预测模型训练方法或集群预测方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random AccessMemory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种缓存数据读取方法,其特征在于,包括:
接收读取指令;
按照预设规则,将所述读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置;
根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;每个所述数据组中保存有至少一种缓存数据类型,且每种所述缓存数据类型由多组预设字节长度的缓存数据组成;
读取匹配到的缓存数据。
2.根据权利要求1所述的方法,其特征在于,每个所述数据组中包含至少一种耦合编号类型,且每种耦合编号类型由预设数量的耦合编号组成;至少一种所述缓存数据类型与至少一种所述耦合编号类型一一对应,且每组所述缓存数据与对应的耦合编号类型中的耦合编号一一对应;
所述按照预设规则,将所述读取指令对应的至少一种地址偏移位置转换为组合地址偏移位置,包括:
根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第一数值;
根据所述地址偏移位置对应的原始编号和所述预设数量,确定所述地址偏移位置对应的第二数值;
根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第三数值;
根据所述地址偏移位置对应的第一数值、第二数值、第三数值和所述预设字节长度,确定所述地址偏移位置对应的组合地址偏移位置。
3.根据权利要求2所述的方法,其特征在于,所述根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第一数值,包括:
将所述地址偏移位置对应的原始编号,与所述数据组中所有耦合编号的总数做相除取整处理;
将相除取整处理后得到的整数作为所述第一数值。
4.根据权利要求2所述的方法,其特征在于,所述根据所述地址偏移位置对应的原始编号和所述预设数量,确定所述地址偏移位置对应的第二数值,包括:
根据所述原始编号对应的最低比特位和所述预设数量,确定所述第二数值。
5.根据权利要求2所述的方法,其特征在于,所述根据所述地址偏移位置对应的原始编号、所述数据组中所有耦合编号的总数,确定所述地址偏移位置对应的第三数值,包括:
将所述原始编号与所述数据组中所有耦合编号的总数做相除取余处理;
将相除取余处理后得到的余数按照第二预设数值进行右移位处理,得到所述地址偏移位置对应的第三数值。
6.根据权利要求2所述的方法,其特征在于,所述根据所述地址偏移位置对应的第一数值、第二数值、第三数值和所述预设字节长度,确定所述地址偏移位置对应的组合地址偏移位置,采用如下公式计算得到所述组合地址偏移位置:
其中,δ表示所述组合地址偏移位置;n表示所述预设字节长度;j表示所述原始编号;p表示所述预设数量;t表示所述缓存数据类型或所述耦合编号类型的种类,t=2u,且u为正整数;表示所述第一数值,/>表示所述原始编号和所述数据组中所有耦合编号的总数做相除取整处理;(j&t)*p表示所述第二数值,(j&t)表示选择j的最低u比特位;[(j%(tp))>>u]表示所述第三数值,j%(tp)表示将所述原始编号与所述数据组中所有耦合编号的总数做相除取余处理;>>表示右移位处理。
7.根据权利要求1所述的方法,其特征在于,所述根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据,还包括:
当所述数据组中不存在对应的缓存数据时,按照所述读取指令从存储器中调取对应的存储数据;
将所述存储数据存入新的数据组中,以形成新的缓存数据。
8.一种缓存数据读取装置,其特征在于,包括:
接收模块,用于接收读取指令;
转换模块,用于按照预设规则,将所述读取指令对应的地址偏移位置转换为组合地址偏移位置;其中,所述地址偏移位置包含至少一种地址偏移位置;
匹配模块,用于根据至少一种地址偏移位置对应的组合地址偏移位置,从数据组中匹配到对应的缓存数据;所述数据组中保存有至少一种缓存数据类型,且每种所述缓存数据类型由多组预设字节长度的缓存数据组成;
读取模块,用于读取匹配到的缓存数据。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的缓存数据读取方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的缓存数据读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211531116.9A CN115905038B (zh) | 2022-12-01 | 2022-12-01 | 缓存数据读取方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211531116.9A CN115905038B (zh) | 2022-12-01 | 2022-12-01 | 缓存数据读取方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115905038A CN115905038A (zh) | 2023-04-04 |
CN115905038B true CN115905038B (zh) | 2023-12-22 |
Family
ID=86474444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211531116.9A Active CN115905038B (zh) | 2022-12-01 | 2022-12-01 | 缓存数据读取方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905038B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112639727A (zh) * | 2018-06-29 | 2021-04-09 | 高通股份有限公司 | 组合加载指令或存储指令 |
CN114253483A (zh) * | 2021-12-24 | 2022-03-29 | 深圳忆联信息系统有限公司 | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130232304A1 (en) * | 2012-03-05 | 2013-09-05 | Qualcomm Incorporated | Accelerated interleaved memory data transfers in microprocessor-based systems, and related devices, methods, and computer-readable media |
-
2022
- 2022-12-01 CN CN202211531116.9A patent/CN115905038B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112639727A (zh) * | 2018-06-29 | 2021-04-09 | 高通股份有限公司 | 组合加载指令或存储指令 |
CN114253483A (zh) * | 2021-12-24 | 2022-03-29 | 深圳忆联信息系统有限公司 | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
一种基于强化学习的混合缓存能耗优化与评价;范浩;徐光平;薛彦兵;高赞;张桦;;计算机研究与发展(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115905038A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10592243B2 (en) | Streaming engine with cache-like stream data storage and lifetime tracking | |
US10860326B2 (en) | Multi-threaded instruction buffer design | |
US11099933B2 (en) | Streaming engine with error detection, correction and restart | |
US20230185649A1 (en) | Streaming engine with deferred exception reporting | |
KR100278328B1 (ko) | 캐시 미스 버퍼 | |
US10255228B2 (en) | System and method for performing shaped memory access operations | |
KR100956970B1 (ko) | 프로세서에서의 마스킹된 저장 동작들을 위한 시스템 및방법 | |
US9348762B2 (en) | Technique for accessing content-addressable memory | |
CN102141905A (zh) | 一种处理器体系结构 | |
US9798543B2 (en) | Fast mapping table register file allocation algorithm for SIMT processors | |
US20190187903A1 (en) | Streaming engine with fetch ahead hysteresis | |
US11709778B2 (en) | Streaming engine with early and late address and loop count registers to track architectural state | |
CN112241290A (zh) | 用于在并行处理单元中有效执行数据规约的技术 | |
CN112860596B (zh) | 一种神经网络张量处理器的数据流高速缓存装置 | |
CN115905038B (zh) | 缓存数据读取方法、装置、计算机设备和存储介质 | |
CN110018847B (zh) | 可配置寄存器及基于可配置寄存器的数据存取方法 | |
US9740428B1 (en) | Circular buffer descriptor for describing and/or accessing a circular buffer | |
CN1238788C (zh) | 可处理变长数据的先进先出寄存器队列装置及控制方法 | |
WO2022199680A1 (zh) | 数据处理装置、方法及相关产品 | |
JPH10116191A (ja) | 圧縮命令用バッファを備えたプロセッサ | |
JP2022552885A (ja) | ニアメモリデータ削減 | |
US20080028192A1 (en) | Data processing apparatus, and data processing method | |
CN116431967A (zh) | 一种基于CSR存储格式的SpMV实现方法、装置及介质 | |
JP2536651B2 (ja) | 例外アドレスバッファ管理方式 | |
JP2016018320A (ja) | 情報処理システム、情報処理方法、および、プログラム |
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 |