CN114036077B - 数据处理方法及相关装置 - Google Patents
数据处理方法及相关装置 Download PDFInfo
- Publication number
- CN114036077B CN114036077B CN202111363262.0A CN202111363262A CN114036077B CN 114036077 B CN114036077 B CN 114036077B CN 202111363262 A CN202111363262 A CN 202111363262A CN 114036077 B CN114036077 B CN 114036077B
- Authority
- CN
- China
- Prior art keywords
- data
- merged
- cache unit
- data processing
- 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
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/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/0877—Cache access modes
- G06F12/0884—Parallel mode, e.g. in parallel with main memory or CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
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
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法及相关装置。
背景技术
处理器在进行运算时,需要频繁对内存中的数据进行访问,而受到成本、技术等方面的影响,内存的访问速度远低于处理器的运算速度,因此,在处理器收到所需要的指令或数据前,只能处于等待状态,这极大地影响了处理器的工作效率。
为了提高处理器的工作效率,在处理器和内存之间设置了一种容量较小但速度很快的存储器(cache),即缓存,一般可以分为多级,第一级cache的工作频率可以和处理器达到一致。处理器在读取数据时,不直接对主存进行访问,而是先在第一级cache中进行寻找,一旦在第一级cache中找到了所需的数据(hit),就可以快速读取进行运算,若第一级cache中没有找到所需的数据(mi ss),则由第一级cache发起对下一级cache或主存的访问请求,将数据读取到第一级cache中。在进行数据写回时,同样也是先由处理器将数据写回到cache,再一级级写回到主存中。
在cache发生mi ss时,需要从下一级cache或主存中读取数据,当处理器运算速度提高,对数据需求量加大时,需要提升数据获取效率,cache间的数据通道宽度乘以单位时间通道可以传递数据的次数,即为带宽,其表明了cache在单位时间可以获取的最大数据量,为了提升数据获取效率就需要提高带宽。
通过增大缓存内部的缓存行(cache l i ne)的存储带宽能够实现数据传输效率的提高,但需要修改数据地址与cache内部的映射关系,工作量较大。
因此,如何在较小工作量的基础上,提高数据传输效率,就成为本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法及相关装置,以实现通过较小的工作量提高数据传输效率。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种数据处理方法,所述方法包括:
接收各个数据处理请求;
获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元;
获取各个所述待合并缓存单元的数据地址和缓存单元索引;
对各个所述数据地址进行合并,得到合并数据地址;
根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据处理请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求;
同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输。
第二方面,本申请实施例提供一种数据处理装置,所述装置包括:
请求接收模块,适于接收各个数据处理请求;
待合并缓存单元获取模块,适于获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元;
数据地址和索引获取模块,适于获取各个所述待合并缓存单元的数据地址和缓存单元索引;
合并数据地址获取模块,适于对各个所述数据地址进行合并,得到合并数据地址;
合并数据处理请求获取模块,适于根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据处理请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求;
数据处理模块,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输。
第三方面,本申请实施例提供一种缓存器,包括一级缓存和二级缓存,所述一级缓存的至少两个缓存单元和所述二级缓存的至少两个缓存单元同时映射,且至少所述一级缓存包括如本申请实施例所提供的数据处理装置。
第四方面,本申请实施例还提供另一种缓存器,所述缓存器执行处理器下发的数据处理请求,以实现如本申请各实施例所提供的数据处理方法。
第五方面,本申请实施例还提供一种电子设备,所述电子设备包括如本申请实施例所提供的技术方案中第三方面和第四方面所述的两种缓存器。
本申请实施例所提供的数据处理方法,通过获取各个数据处理请求及其所对应的各个缓存单元中,可合并处理数据的各个待合并的缓存单元,并获取各个所述待合并缓存单元的数据地址和缓存单元索引,将各个所述数据地址合并,得到合并数据地址,根据所述合并数据地址和所述各个缓存单元索引生成合并数据处理请求,然后同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输,从而将各个数据请求所请求的数据通过一个数据请求发送,并可以同步处理各个待合并的缓存单元所对应的数据。
可见,本申请实施例所提供的数据处理方法,在需要处理至少两个缓存单元的数据时,将通过对待合并缓存单元的数据地址的合并,并结合缓存单元索引,生成合并数据处理请求,将多个请求合并为一个请求,实现可以同时传输多个缓存单元的数据,不仅可以提高数据传输的带宽,而且在数据传输过程中无需进行多次网络仲裁,从而可以提高数据的传输效率,并且并不需要改变缓存单元的宽度,也可以避免对于映射关系的调整以及由于映射关系调整所带来的后续工作,可以实现在较小工作量的基础上,提高数据传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种计算机结构的结构示意图;
图2为一种缓存结构的结构示意图;
图3为本申请实施例所提供的数据处理方法的流程示意图;
图4为本申请实施例所提供的数据处理方法的处理数据读取请求的步骤的流程示意图;
图5为本申请实施例所提供的数据处理方法的获取待合并缓存单元的步骤的流程示意图;
图6为本申请实施例所提供的数据处理方法的处理数据写入请求的步骤的流程示意图;
图7为本申请实施例所提供的数据处理方法的另一获取待合并缓存单元的步骤的流程示意图;
图8为本申请实施例所提供的数据处理装置的结构示意图;
图9为本申请实施例所提供的缓存器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了一种计算机结构的结构示意图,如图中所示,计算机结构可以包括:处理器100、高速缓存器200和主存300,所述高速缓存器200还进一步包括一级缓存210、二级缓存220。
处理器100可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器100可以用于执行与本公开描述的技术相关的功能。
高速缓存器200设置于主存300和处理器100之间,适于存储处理器100常用的数据,以提高处理器100获取的效率,当然所述高速缓存器200还可以包括三级缓存或者更多级缓存。
一级缓存210和二级缓存220相比,一级缓存210的数据读写速度更快,但空间较小,二级缓存220的数据读写速度相对较慢,但存储空间较大。
主存300是程序执行代码及数据的存放区,通常采用DRAM(动态随机存取存储器)类型的存储芯片,在本申请各实施例的叙述中又可称为内存或主存。
当所述处理器100读取数据时,首先在所述一级缓存210中寻找,如果找到所需数据,即命中,则直接从所述一级缓存210中读取,否则由所述一级缓存210发起对所述二级缓存220的数据读取请求,在所述二级缓存220中继续寻找所需数据,如果找到则将数据返回至所述一级缓存210中并进一步返回至处理器100,否则由所述二级缓存220发起对所述主存300的数据读取请求,在所述主存300中寻找所需数据。在从所述一级缓存210到所述主存300之间的任意一级存储结构中找到所需数据时,都先将数据读取至上一级存储结构。
在进行数据写入时,同样也是由所述处理器100将数据写入到所述一级缓存210中,再依据需求将数据逐级写入更低级别的存储结构直至所述主存300,当然依次写入的实际根据不同的写入逻辑可以不同。
图2示出了一种缓存结构的结构示意图,需要说明的是,本申请为了方便描述以一级缓存210为例进行说明,由于计算机结构的各级缓存均基于相同的结构设计,因此图2也适用于对本申请各个实施例所述的二级缓存220,以及未提及但可能存在的三级缓存等不同级别的缓存的结构的描述。
由图2中可见,由于所述一级缓存210包括多个缓存单元(具体如图中所示为缓存行),也即缓存行可以是构成所述一级缓存210,所述二级缓存220等各级缓存的存储结构的缓存单元。
各个缓存单元可以包括索引、地址位、有效位和数据等。
其中,索引,也称为偏移量,即是数据在缓存结构中的相对位置。
有效位,适于标记当前缓存单元中的数据是否有效,如果有效位的值所表示的意义为无效,无论当前缓存单元中是否有数据,处理器都会逐级向下一级访问,重新加载数据。
地址位,适于表示存储于缓存单元中的数据在内存中的地址,由于计算机***中,通过特定的位置转换算法可以获取任意内存地址对应的缓存单元的索引,由于同一个缓存单元与多个内存地址映射,因此在缓存单元存储数据时还必须标记数据在内存中的数据地址,也称为缓存单元的数据地址。
数据,适于存储内存中的数据地址所对应的数据,每个缓存单元所存储的数据对应内存中的一个内存块的数据。
计算机***在执行任务时,处理器访问数据时,通过数据处理请求中所携带的对应于索引和地址位等的信息访问到对应的缓存单元,并获取其中的数据。缓存行根据接收到的地址,对比缓存行的索引,找到确切的缓存行,然后对比地址位,如果地址位和所接收的请求中的地址信息部分相同,则为命中,对此缓存行进行相应操作,比如读回数据操作或者写入数据操作;如果不相同,则为缺失,对于数据读取请求,只能从下一级高速缓存或者主存中寻找,对于数据写入操作,则需要确定可以写入数据的缓存行。
为了实现前述的数据传输,各级缓存之间的数据通道宽度、所述二级缓存220与所述主存300之间的数据通道宽度均与缓存行的数据带宽一致,当所述处理器100读取或写入数据时,以缓存行为单位对各级缓存中的任意一级的缓存结构进行数据更新,因此,增大任意一级存储结构之间的数据通道宽度(即各级缓存之间和所述二级缓存220与所述主存300之间的数据通道宽度),可以提升数据的读取或写入效率。
但显而易见,增大缓存行的数据带宽需要修改各级缓存之间或所述二级缓存220与所述主存300之间的数据地址映射,具有较大的工作量和技术复杂度,而当计算机***存在多个处理器核,更复杂的缓存结构会导致修改数据地址映射的技术复杂度和工作量会更高,从而使得效率提升成本更高。
因此,本申请提供了一种数据处理方法,生成合并数据处理请求,将多个请求合并为一个请求,实现可以同时传输多个缓存单元的数据,无需通过改变缓存单元的数据带宽就能实现数据的读取和写入效率的提升,可以避免由于映射关系的改变所带来的工作量的增大和成本的提高。
请参考图3,图3为本申请实施例所提供的数据处理方法的流程示意图。
如图3所示,本申请实施例所提供的数据处理方法包括:
步骤S10:接收各个数据处理请求。
各个数据处理请求的获取,可以为合并数据处理请求的生成提供数据地址。
在计算机***运行过程中,所述数据处理请求既可以包括由图1所示的所述处理器100向所述一级缓存210发起的数据读取或写入请求,也可以包括由所述一级缓存210向所述二级缓存220的数据读取或写入请求,当存在三级缓存时,还可以为二级缓存220向三级缓存发送的数据读取或写入请求。
同时,显而易见的是,所述处理器100处理的数据的存储来源可以包括缓存、主存,接收数据处理请求的接收模块可以为一级缓存、二级缓存、三级缓存。
容易理解的是,数据处理请求是按照时间依次发送至接收模块,因此本文所述的接收各个数据处理请求并非是指同一时刻接收各个所述数据处理请求,而是指依次接收各个所述数据处理请求。
步骤S11:获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元。
获取待合并缓存单元,可以为后续生成合并数据处理请求提供基础。
为了实现对数据的处理,得到数据处理请求后,需要根据数据处理请求中所携带的内存地址信息,确定所对应的缓存单元,随着各个数据处理请求的接收,不断确定各个缓存单元,并各个缓存单元中,确定能够合并处理数据的各个待合并缓存单元。
在一种具体实施方式中,可以在预定时间内,确定能够合并处理数据的各个待合并缓存单元。
比如:每当接收到一个数据处理请求,开始计时,并确定所请求的数据的数据地址所对应的缓存单元是否为可合并处理数据的缓存单元,并进一步确定后续接收到的数据处理请求所对应的缓存单元是否为可合并处理数据的缓存单元,直至达到预定时间,如果在此期间,确定了至少2个可合并处理数据的缓存单元,那么得到各个待合并缓存单元。
当然,预定时间可以根据需要设定。
容易理解的是,由于主存与各级缓存之间的进行传输的数据最小单位为存储于一个缓存单元的数据,因此,当基于接收的数据处理请求确定缓存单元后,以各个缓存单元所对应的数据地址进行后续的处理,从而保证所得到的合并数据处理请求所请求的数据,为存储于各个待合并缓存单元的数据。
当然,本文所述的可合并处理数据的缓存单元,是满足数据合并要求的数据单元,根据数据处理请求类型的不同,数据合并要求也有所不同,详细内容可以参考后续基于数据读取请求和数据写入请求的具体说明。
步骤S12:获取各个所述待合并缓存单元的数据地址和缓存单元索引。
确定了待合并缓存单元后,为了实现能够得到同时处理各个待合并缓存单元的数据的合并数据处理请求,本申请所公开的实施例中,可以进一步确定各个待合并缓存单元的数据地址和缓存单元索引。
其中,数据地址用于生成新的数据请求地址,缓存单元索引用于方便数据的存储。
步骤S13:对各个所述数据地址进行合并,得到合并数据地址。
得到各个待合并缓存单元的数据地址后,依据具体的数据地址信息,对数据地址进行合并,得到包括各个所述待合并缓存单元的所述数据地址信息的所述合并数据地址。
在一种具体实施方式中,可以获取各个所述数据地址中的最小数据地址值,将所述最小数据地址值作为所述合并数据地址。
由于各个缓存单元的数据地址其实为存储于缓存单元中的各个数据的基地址,即最小地址,因此,将最小数据地址值作为所述合并数据地址无需改变所生成的合并数据处理请求的地址格式。
当然,在其他实施方式中,也可以直接将多个缓存单元的数据地址组合起来,作为合并数据地址,但合并数据处理请求的地址格式可能需要改变。
步骤S14:根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据处理请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求。
得到合并数据地址和各个待合并缓存单元的缓存单元索引后,结合合并数据地址的信息和缓存单元索引的信息,生成合并数据处理请求,从而所得到的合并数据处理请求可以实现对于各个待合并缓存单元的数据的处理。
容易理解的是,合并数据处理请求与普通数据处理请求所包含的信息基本相同,只有少量的信息略有不同,以表明改数据处理请求所请求的数据是至少两个缓存单元所存储的数据,具体包括:缓存单元索引的数量有所不同,与待合并缓存单元的数量形同,如果待合并缓存单元的数量为2个,那么缓存单元索引的数量也为2个。
而对于合并数据地址,合并数据处理请求的合并数据地址与普通数据处理请求的数据地址,在表示方式上可以完全相同。
另一方面,需要说明的是,如果合并数据处理请求仅仅是缓存单元索引的信息不同,由于各级缓存单元之间的连接电路始终处于连接状态,仍然难以确定该信息是否有效,对于合并数据处理请求还需要更新合并标识,将所述合并数据处理请求的合并标识更新为表示已经进行合并数据处理的信息。
具体地,合并标识可以为单独设立的一个标识位,以标识该请求是否是合并数据处理请求,以及是对应几个缓存单元的数据的合并:
比如:如果合并数据处理请求所请求的数据包括适于存储于两个待合并缓存单元的数据,可以通过增加一个标识位以表示该请求的特殊性,当其取值为1时,表示所请求的数据是存储于两个缓存单元的数据,尽管合并数据处理请求中的地址仍然仅有一个内存地址,但所请求的数据为数据处理请求中的内存地址以及数据处理请求中的内存地址相邻的另一个内存地址中的数据;当其取值为0时,则表示所请求的数据是存储于一个缓存单元的数据,即未进行合并的普通数据处理请求。
容易理解的是,如果合并数据处理请求所请求的数据包括适于存储于多于两个缓存单元的数据,那么内存地址数量标识位的位数可以根据需要增加,以实现基于对于3个、4个或者更多个待合并缓存单元合并所得到合并数据处理请求的标识。
在另一种具体实施方式中,还可以将请求类型标识来表示合并标识,合并标识的更新可以通过增加请求类型标识种类来实现。
比如:如果合并数据处理请求所请求的数据包括适于存储于两个缓存单元的数据,可以通过2位来表示请求类型的标识(同时标识是否合并),00表示普通的读数据请求,01表示普通的写数据请求,10表示所请求的合并数据处理读请求,11表示合并数据处理写请求,当然,当所请求的数据包括适于存储于两个缓存单元的数据,数据处理请求中的地址仍然仅有一个内存地址,但所请求的数据为数据处理请求中的内存地址以及数据处理请求中的内存地址相邻的另一个内存地址中的数据。
当然,容易理解的是,对于合并数据处理请求而言,更新所述合并数据处理请求的合并标识,是指将其更新为合并有效,从而在下一级模块接收到合并数据处理请求后,按照合并数据处理请求的处理方式进行处理。
得到合并数据处理请求后,进一步向下一级模块发送合并数据处理请求,从而实现数据的处理。
步骤S15:对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输。
发送给合并数据处理请求后,经过一段时间,会得到与所述合并数据处理请求对应的各个所述缓存单元的数据,然后对所得到的数据同时进行传输,从而可以实现了在单位时间内将各个所述缓存单元的数据同时进行处理。
由此可见,通过获取接收到的各个所述数据处理请求中可进行合并处理数据的各个所述待合并缓存单元,将各个所述待合并缓存单元的数据地址进行合并得到所述合并数据地址,再根据所述合并数据地址和各个所述待合并缓存单元的缓存单元索引,得到所述合并数据处理请求,由此所述合并数据处理请求中实际包括了各个所述待合并缓存单元的数据地址信息和缓存单元索引信息,通过所述合并数据处理请求实现了对各个所述待合并缓存单元中的数据进行同步调用,从而实现了对不同级别的缓存之间的数据通道的充分利用,提高了数据处理的效率。
当数据处理请求的类型不同时,对于数据处理请求的合并处理也会有所不同,因此,为了更清楚地对本申请的方案进行论述,以下分别对数据读取请求和数据写入请求进行说明。
请参照图4,图4示出了本申请实施例所提供的数据处理方法的处理数据读取请求的步骤的流程示意图。
如图中所示,所述处理数据读取请求的步骤包括:
步骤S20:接收各个数据读取请求。
步骤S20的具体内容请参考图3所示的步骤S10的描述,当然,数据处理请求为数据读取请求。
容易理解的是,本申请实施例所提供的接收数据读取请求并非为仅接收数据读取请求,而是只对数据读取请求进行后需的处理,如果接收到数据写入请求,则按照对数据写入请求的处理方式进行处理,具体内容请参考后续关于数据写入请求进行说明的实施例。
步骤S21:根据各个所述数据读取请求所对应的各个缓存单元,得到能够合并读取数据的各个待合并缓存单元。
显然,由于各个所述数据读取请求所对应待读取的数据都存储在对应的各个缓存单元中,因此当获得可进行合并读取的各个所述数据读取请求后,进一步获取满足合并要求的各个所述待合并缓存单元,以便后续得到各个待合并的数据读取中的数据。
在一种具体实施方式中,为了实现对于待合并缓存单元的获取,可以参照图5,图5示出了本申请实施例所提供的数据处理方法的获取待合并缓存单元的步骤的流程示意图。
如图中所示,本申请实施例所提供的数据处理方法的获取待合并缓存单元的步骤包括:
步骤S210:获取各个所述数据处理请求中数据未命中的所述数据处理请求。
需要说明的是,本文所述的命中,是指所述数据处理请求所请求的数据在当前级模块中找到,并可直接调用;本文所述的未命中,是指所述数据处理请求所请求的数据在当前级模块中未找到。
容易理解的是,待合并缓存单元的确定是用于生成合并数据处理请求的,当数据处理请求为数据读取请求时,如果在接收数据处理请求的模块中能够找到对应的数据,可以将所请求的数据返回,那么没有必要向下一级模块请求数据,也就无需生成合并数据处理请求了,因此,为了保证所生成的合并数据处理请求的必要性,在确定待合并缓存单元时,首先要获取所述数据处理请求中数据未命中的所述数据处理请求。
当所述数据处理请求对应的数据未命时,需在下一级模块中继续寻找,由此将产生在不同级别模块中数据处理的需求,从而为提高数据处理效率,需要将从下一级模块中获取各个缓存单元的数据的数据处理请求进行合并处理。
步骤S211:根据数据未命中的所述数据处理请求确定对应的各个缓存单元的数据地址。
得到数据未命中的各个所述数据处理请求后,由于数据处理请求中以数据地址确定缓存单元,因此所生成的合并数据处理请求也需要有合并后的数据地址,为此需要确定各个缓存单元的数据地址。
步骤S212:判断是否获取到各个缓存单元中数据地址连续的至少2个缓存单元,若是,执行步骤S213,若否,执行步骤S214。
基于前述论述,数据读取请求中的地址位的位数是确定的,为了保证在数据读取请求基本结构不变的基础上,实现合并数据处理请求的生成,在此实施例中,所确定的待合并缓存单元需要是缓存单元中数据地址连续的缓存单元,从而可以实现利用一个数据地址,标识所请求的数据。
而如果对于数据地址不连续的缓存单元,如果也利用一个数据地址标识后续生成的合并数据处理请求所请求的数据地址信息,将会使不连续的数据地址之间的所有数据地址所对应的缓存单元中的数据一并获取,如果此时所待处理的数据超过不同级别缓存之间的数据通道宽度,将造成数据处理的混乱。
进一步地,所述缓存单元的数据地址连续,不是指在一个缓存单元中两个或多个字或字节连续,而是缓存单元在物理上可以连续也可以不连续,但其对应的数据在内存中存储的内存块是连续的,即指数据位于连续的主存块中,这是由于每个主存块对应一个缓存单元,当内存块连续时,其对应的缓存单元的数据地址就连续。
当然,判断是否获取到各个缓存单元中数据地址连续的至少2个缓存单元,不可能长时间的等待,一直等到获取到各个缓存单元中数据地址连续的至少2个缓存单元,因此,在一实施例中,可以判断在预定时间内,是否获取到各个缓存单元中数据地址连续的至少2个缓存单元。
即,从接收到某一个数据未命中的数据读取请求开始计时,如果在预定时间内获取到了其他的数据未命中且与前一个数据未命中的数据读取请求所对应的数据地址连续的数据读取请求,就可以继续后续的步骤。
为了进一步提高数据处理效率,在另一种具体实施方式中,还可以对预定时间进行限制,具体地,可以使预定时间小于从下一级模块中读取数据的时间的1/40,比如:预定时间等于从下一级模块中读取数据的时间的1/50、1/60,从而可以在很短的时间内完成判断,避免由于等待时间过长,影响数据的读取效率。
步骤S213:得到各个所述待合并缓存单元。
得到数据地址连续的至少两个缓存单元,均可以作为所述待合并的缓存单元,即得到各个所述待合并缓存单元。
由此可见,通过确定各个所述数据处理请求中数据未命中的所述数据处理请求,并进一步获取所述数据处理请求对应的各个缓存单元的数据地址,从数据地址连续的至少两个缓存单元得到各个所述待合并的缓存单元,能够对所获取的待合并数据处理请求的各个缓存单元进行有效的合并处理操作,同时可以减小对后续生成的合并数据处理请求的改变。
在另一实施例中,如果未获取到各个缓存单元中数据地址连续的至少2个缓存单元,可以将各个所述数据处理请求分别发送并处理,即还可以包括:
步骤S214:分别生成包括数据缓存单元的数据地址、所述缓存单元索引和未更新的合并标识的各个新数据处理请求。
由本申请实施例的前述步骤可知,对不符合合并处理条件的各个所述数据处理请求,依旧需要分别发送并处理,由于在接收到的各个所述数据处理请求中,可能存在可合并数据处理的数据处理请求,并在后续操作中进行合并处理,因此需要基于原有不具备合并处理条件的各个数据处理请求获取其对应的缓存单元的数据地址,缓存单元索引和依旧表示不能进行合并处理的原有合并标识生成新的数据处理请求。
步骤S215:分别发送各个新数据读取请求。
在生成各个所述新数据读取请求的基础上,需要发送各个新数据读取请求实现数据读取。
由此可见,本申请的本实施例当得到不能进行合并处理的各个缓存单元所对应的数据读取请求时,只需要按照普通的数据读取请求生成新数据读取请求,并发送即可,可以在对可进行合并处理的数据读取请求进行合并处理以提高数据通道带宽的利用率的同时,也保障了不能进行合并处理的数据处理请求能依旧正常地执行数据处理操作。
步骤S22:获取各个所述待合并缓存单元的数据地址和缓存单元索引;
步骤S22的具体步骤请参照图3所示的步骤S12的具体描述,在此不再赘述。
步骤S23:对各个所述数据地址进行合并,得到合并数据地址;
步骤S23的具体步骤请参照图3所示的步骤S13的具体描述,在此不再赘述。
步骤S24:根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据读取请求,更新所述合并数据读取请求的合并标识,并发送所述合并数据读取请求。
步骤S24的具体步骤请参照图3所示的步骤S14的具体描述,在此不再赘述。
需要说明的是,在此实施例中,所得到的合并数据处理请求为合并数据读取请求。
步骤S25:同时接收根据所述合并数据处理请求返回的各个所述缓存单元的数据。
通过所述合并数据读取请求中包含的各个所述待合并缓存单元的数据地址和缓存单元索引,可以获取各个所述缓存单元的数据,当从下一级模块中获取到时,当前级模块可以同时接收根据所述合并数据处理请求返回的各个所述缓存单元的数据,由此可以实现提高数据的读取效率。
由此可见,通过获取接收到的各个所述数据读取请求中可进行合并处理数据的各个所述待合并缓存单元,将各个所述待合并缓存单元的数据地址进行合并得到所述合并数据地址,再根据所述合并数据地址和各个所述待合并缓存单元的缓存单元索引,得到所述合并数据读取请求,由此所述合并数据读取请求中实际包括了各个所述待合并缓存单元的数据地址信息和缓存单元索引信息,通过所述合并数据读取请求实现了对各个所述待合并缓存单元中的数据进行同步调用,从而实现了对不同级别的缓存之间的数据通道的充分利用,提高了数据读取的效率。
容易理解的是,在同时接收到根据所述合并数据处理请求返回的各个所述缓存单元的数据后,还需要对返回的数据进行写入。
为此,首先可以根据所述缓存单元的数据地址对所述数据进行拆分,得到各个拆分数据,然后,再根据所述合并数据处理请求的各个缓存单元索引,将各个所述拆分数据写入对应的所述待合并缓存单元。
当然,在接收返回数据时,由于对于任何一级模块(比如一级缓存)而言,所接收到的返回数据既有可能是合并数据处理请求的数据,也有可能是未经合并的数据处理请求的数据,为此,需要基于接收到的返回数据中的合并标识进行判断,如果为未经合并的数据处理请求的数据,那么直接根据缓存单元索引和数据地址写入缓存单元即可;如果是合并数据处理请求所请求的数据,那么需要首先根据数据地址进行数据拆分,得到适于分别存储于各个缓存单元的拆分,然后基于缓存单元索引,实现数据的写入。
具体地,为了进一步提高数据处理效率,可以使与各个所述待合并缓存单元所对应的数据处理请求的缓存单元索引,对应不同的缓存存储器,这样,拆分数据可以分别写入不同的缓存存储器,从而可以避免同时写入同一个缓存存储器可能引发的数据拥堵,同时进行数据的写入,提高写入速度。
另外,本申请实施例还提供了对于数据处理请求为数据写入请求的处理方法,以提高数据写入的效率,容易理解的是,本申请所述的针对数据写入请求的数据处理方法,所对应的数据写入方法为需要基于各级模块依次向下写入数据的方法。
请参考图6,图6是本申请实施例所提供的数据处理方法的处理数据写入请求的步骤的流程示意图。
如图中所示,所述处理数据写入的具体步骤包括:
步骤S30:接收各个数据写入请求。
步骤S30的具体内容请参考图3所示的步骤S10的描述,当然,数据处理请求为数据写入请求。
当然,本申请实施例所提供的接收数据写入请求并非为仅接收数据写入请求,而是只对数据写入请求进行后需的处理,如果接收到数据读取请求,则按照对数据读取请求的处理方式进行处理。
步骤S31:获取各个所述数据写入请求所对应的各个缓存单元中,能够合并发送写入数据的各个待合并缓存单元。
当然,当得到各个数据写入请求后,需要将数据写入各个缓存单元,不论接收所述数据写入请求的当前级模块在接收请求时是否存在对应的缓存单元(即是否命中),都需要找到对应的缓存单元,以便进行数据写入,如果命中,则直接确定即可,如果未命中,则通过更换其他缓存单元的数据地址信息,实现命中,从而得到待数据写入的各个所述缓存单元。
得到各个所述缓存单元后,进一步确定可合并发送写入数据的待合并缓存单元,以便生成合并数据处理请求,并同时发送数据。
在一种具体实施方式中,为了实现对于待合并缓存单元的获取,可以参照图7,图7示出了本申请实施例所提供的数据处理方法的另一获取待合并缓存单元的步骤的流程示意图。
如图中所示,在另一实施例中,本申请实施例所提供的数据处理方法的获取待合并缓存单元的步骤包括:
步骤S311:获取各个待将数据写入下一级缓存单元的各个缓存单元的数据地址。
由于各个数据写入请求的数据都要最终写入到内存中,因此每个数据写入请求所对应的缓存单元的数据地址都需要获取。
容易理解的是,由于多个数据写入请求所对应的缓存单元可能是同一个,因此,数据地址并非对应数据写入请求,而是对应各个缓存单元的。
步骤S312:判断是否获取到各个缓存单元中数据地址连续的至少2个缓存单元,若是,则执行步骤S313;若否,则执行步骤S314。
步骤S312的具体内容可以参考图5中关于步骤S212的描述,在此不再赘述。
步骤S313,得到各个所述待合并缓存单元。
步骤S313的具体内容可以参考图5中关于步骤S213的描述,在此不再赘述。
这样,通过获取各个待将数据写入下一级缓存单元的各个缓存单元的数据地址,从数据地址连续的至少两个缓存单元得到各个所述待合并的缓存单元,能够对所获取的待合并数据处理请求的各个缓存单元进行有效的合并处理操作,同时也可以减小对后续生成的合并数据处理请求的改变。
步骤S314:分别生成包括数据缓存单元的数据地址、所述缓存单元索引和未更新的合并标识的各个新数据写入请求。
显然,对不符合合并写入条件的各个所述数据写入请求,依旧需要分别发送并写入,具体步骤S314的具体内容可以参考图5中关于步骤S214的描述,在此不再赘述。
步骤S315:分别发送各个新数据写入请求。
在生成各个所述新数据写入请求的基础上,需要发送各个新数据写入请求实现数据写入。
这样,基于本申请的本实施例,当接收到不能进行合并处理的各个缓存单元所对应的数据写入请求时,只需要按照普通的数据写入请求生成新数据写入请求,并发送即可,可以在对可进行合并处理的数据写入请求进行合并处理以提高数据通道带宽的利用率的同时,也保障了不能进行合并处理的数据写入请求能依旧正常地执行数据写入操作。
步骤S32:获取各个所述待合并缓存单元的数据地址和缓存单元索引。
步骤S33:对各个所述数据地址进行合并,得到合并数据地址。
步骤S34:根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据写入请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求。
步骤S32-步骤S34的具体内容,请参考图3关于步骤S22-步骤S24的描述,在此不再赘述。
步骤S35:当接收到下一级缓存单元返回的数据可写入应答时,同时发送各个所述待合并缓存单元的待写入数据。
容易理解的是,当将合并数据处理请求后,如果下一级缓存单元已经可以接收数据,那么会返回可写入应答,当接收到可写入应答后,同时发送各个所述待合并缓存单元的待写入数据。
可以看出,本申请实施例所提供的数据处理方法,在进行数据写入时,也实现可以同时传输多个缓存单元的数据,不仅可以提高数据传输的带宽,而且在数据传输过程中无需进行多次网络仲裁,从而可以提高数据的传输效率。
本申请实施例还提供一种数据处理装置,该装置的结构如图8所示,所述数据处理装置包括:
请求接收模块100,适于接收各个数据处理请求;
待合并缓存单元获取模块110,适于获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元;
数据地址和索引获取模块120,适于获取各个所述待合并缓存单元的数据地址和缓存单元索引;
合并数据地址获取模块130,适于对各个所述数据地址进行合并,得到合并数据地址;
合并数据处理请求模块140,适于根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据处理请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求;
数据处理模块150,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输。
在进一步的一些实施例中,该装置还可进一步设置一个或多个功能模块,或者在图8所示的一个或多个功能模块的基础上增加功能。
在一些实施例中,所述请求接收模块100,适于接收各个数据处理请求包括:接收各个数据读取请求;
所述待合并缓存单元获取模块110,适于获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元包括:根据各个所述数据读取请求所对应的各个缓存单元,得到能够合并读取数据的各个待合并缓存单元;
所述数据处理模块150,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输包括:同时接收根据所述合并数据处理请求返回的各个所述缓存单元的数据。
在进一步的一些实施例中,所述待合并缓存单元获取模块110,适于根据各个所述数据读取请求所对应的各个缓存单元,得到能够合并读取数据的各个待合并缓存单元包括:
获取各个所述数据读取请求中的数据未命中的所述数据读取请求,并根据数据未命中的所述数据读取请求确定对应的各个缓存单元的数据地址;
当获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元。
在进一步的一些实施例中,所述待合并缓存单元获取模块110,适于当获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元包括:
当在预定时间内,获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元。
在一些实施例中,所述预定时间小于从下一级模块中读取数据的时间的1/40。
在进一步的一些实施例中,该装置还可进一步设置一个或多个功能模块,或者在图8所示的一个或多个功能模块的基础上增加功能,以进一步用于:
当未获取到各个缓存单元中数据地址连续的至少2个缓存单元时,根据各个数据未命中的所述数据读取请求所对应的缓存单元的数据地址,分别生成各个新数据处理请求并发送,各个所述新数据处理请求包括数据缓存单元的数据地址、所述缓存单元索引和未更新的合并标识。
在进一步的一些实施例中,该装置还可进一步设置一个或多个功能模块,或者在图8所示的一个或多个功能模块的基础上增加功能,以进一步用于:
根据所述缓存单元的数据地址对所述数据进行拆分,得到各个拆分数据;
根据所述合并数据处理请求的各个缓存单元索引,将各个所述拆分数据写入对应的所述待合并缓存单元。
可选地,与各个所述待合并缓存单元所对应的数据处理请求的缓存单元索引,对应不同的缓存存储器。
在进一步的一些实施例中,该装置还可进一步设置一个或多个功能模块,或者在图8所示的一个或多个功能模块的基础上增加功能。
在一些实施例中,所述请求接收模块100,适于接收各个数据处理请求还包括:接收各个数据写入请求;
所述待合并缓存单元获取模块110,适于获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元还包括:获取各个所述数据写入请求所对应的各个缓存单元中,能够合并发送写入数据的各个待合并缓存单元;
所述数据处理模块150,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输包括:当接收到下一级缓存单元返回的数据可写入应答时,同时发送各个所述待合并缓存单元的待写入数据。
在进一步的一些实施例中,所述待合并缓存单元获取模块110,适于获取各个所述数据写入请求所对应的各个缓存单元中,能够合并发送写入数据的各个待合并缓存单元包括:
获取各个待将数据写入下一级缓存单元的各个缓存单元的数据地址;
当获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元。
在一些实施例中,所述合并数据地址获取模块130,适于对各个所述数据地址进行合并,得到合并数据地址包括:
获取各个所述数据地址中的最小数据地址值,将所述最小数据地址值作为所述合并数据地址。
在一些实施例中,所述合并数据处理请求模块140,适于更新所述合并数据处理请求的合并标识包括:更新所述合并数据处理请求的合并标识位的值为合并有效。
本申请实施例还提供一种缓存器,该缓存器的结构如图9所示,所述缓存器300包括:
一级缓存310和二级缓存320,所述一级缓存310的至少两个缓存单元和所述二级缓存320的至少两个缓存单元同时映射,并且至少所述一级缓存310包括如图8所示的数据处理装置。
这样,通过至少在一级缓存210中内设置包括请求接收模块、待合并缓存单元获取模块等数据处理装置,可以实现对所述一级缓存310和所述二级缓存320之间的多个数据读取请求或多个数据写入请求合并为一个数据读取请求或一个数据写入请求,一级缓存310的至少两个缓存单元和二级缓存320的至少两个缓存单元同时映射,可以实现可以同时传输至少两个缓存单元的数据,不仅可以提高数据传输的带宽,而且在数据传输过程中无需进行多次网络仲裁,从而可以提高数据的传输效率,并且并不需要改变缓存单元的宽度,也可以避免对于映射关系的调整以及由于映射关系调整所带来的后续工作,可以实现在较小工作量的基础上,提高数据传输效率。
本申请实施例还提供一种缓存器,所述缓存器执行处理器下发的数据处理请求,适于实现本申请各实施例所提供的数据处理的方法。
本申请还提供一种电子设备,包括如图9所示的缓存器和用于实现本申请各实施例所提供的数据处理的方法的缓存器。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (18)
1.一种数据处理方法,其特征在于,包括:
接收各个数据处理请求;
获取各个所述数据处理请求所对应的各个高速缓存器的各个缓存单元中,能够合并处理数据的各个待合并缓存单元,所述高速缓存器设置于主存与处理器之间,所述主存包括主存块,每个所述主存块对应一个所述缓存单元;
获取各个所述待合并缓存单元的数据地址和缓存单元索引;
对各个所述数据地址进行合并,得到合并数据地址;
根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据处理请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求;
同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输。
2.根据权利要求1所述的数据处理方法,其特征在于,
所述接收各个数据处理请求的步骤包括:接收各个数据读取请求;
所述获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元的步骤包括:根据各个所述数据读取请求所对应的各个缓存单元,得到能够合并读取数据的各个待合并缓存单元;
所述同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输的步骤包括:同时接收根据所述合并数据处理请求返回的各个所述缓存单元的数据。
3.根据权利要求2所述的数据处理方法,其特征在于,
所述根据各个所述数据读取请求所对应的各个缓存单元,得到能够合并读取数据的各个待合并缓存单元的步骤包括:
获取各个所述数据读取请求中的数据未命中的所述数据读取请求,并根据数据未命中的所述数据读取请求确定对应的各个缓存单元的数据地址;
当获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元。
4.根据权利要求3所述的数据处理方法,其特征在于,所述当获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元的步骤,包括:
当在预定时间内,获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元。
5.根据权利要求4所述的数据处理方法,其特征在于,所述预定时间小于从下一级模块中读取数据的时间的1/40。
6.根据权利要求3所述的数据处理方法,其特征在于,还包括:
当未获取到各个缓存单元中数据地址连续的至少2个缓存单元时,根据各个数据未命中的所述数据读取请求所对应的缓存单元的数据地址,分别生成各个新数据处理请求并发送,各个所述新数据处理请求包括数据缓存单元的数据地址、所述缓存单元索引和未更新的合并标识。
7.根据权利要求3所述的数据处理方法,其特征在于,还包括:
根据所述缓存单元的数据地址对所述数据进行拆分,得到各个拆分数据;
根据所述合并数据处理请求的各个缓存单元索引,将各个所述拆分数据写入对应的所述待合并缓存单元。
8.根据权利要求7所述的数据处理方法,其特征在于,与各个所述待合并缓存单元所对应的数据处理请求的缓存单元索引,对应不同的缓存存储器。
9.根据权利要求1所述的数据处理方法,其特征在于:
所述接收各个数据处理请求还包括:接收各个数据写入请求;所述获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元还包括:获取各个所述数据写入请求所对应的各个缓存单元中,能够合并发送写入数据的各个待合并缓存单元;
所述同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输的步骤包括:当接收到下一级缓存单元返回的数据可写入应答时,同时发送各个所述待合并缓存单元的待写入数据。
10.根据权利要求9所述的数据处理方法,其特征在于,所述获取各个所述数据写入请求所对应的各个缓存单元中,能够合并发送写入数据的各个待合并缓存单元包括:
获取各个待将数据写入下一级缓存单元的各个缓存单元的数据地址;
当获取到各个缓存单元中数据地址连续的至少2个缓存单元时,得到各个所述待合并缓存单元。
11.根据权利要求1至10任意一项所述的数据处理方法,其特征在于,所述对各个所述数据地址进行合并,得到合并数据地址包括:
获取各个所述数据地址中的最小数据地址值,将所述最小数据地址值作为所述合并数据地址。
12.根据权利要求1至10任意一项所述的数据处理方法,其特征在于,所述更新所述合并数据处理请求的合并标识的步骤包括:更新所述合并数据处理请求的合并标识位的值为合并有效。
13.一种数据处理装置,其特征在于,包括:
请求接收模块,适于接收各个数据处理请求;
待合并缓存单元获取模块,适于获取各个所述数据处理请求所对应的各个高速缓存器的各个缓存单元中,能够合并处理数据的各个待合并缓存单元,所述高速缓存器设置于主存与处理器之间,所述主存包括主存块,每个所述主存块对应一个所述缓存单元;
数据地址和索引获取模块,适于获取各个所述待合并缓存单元的数据地址和缓存单元索引;
合并数据地址获取模块,适于对各个所述数据地址进行合并,得到合并数据地址;
合并数据处理请求获取模块,适于根据所述合并数据地址和所述各个所述缓存单元索引,生成合并数据处理请求,更新所述合并数据处理请求的合并标识,并发送所述合并数据处理请求;
数据处理模块,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输。
14.根据权利要求13所述的数据处理装置,其特征在于,
所述请求接收模块,适于接收各个数据处理请求,包括:接收各个数据读取请求;
所述待合并缓存单元获取模块,适于获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元,包括:根据各个所述数据读取请求所对应的各个缓存单元,得到能够合并读取数据的各个待合并缓存单元;
所述数据处理模块,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输的步骤包括:同时接收根据所述合并数据处理请求返回的各个所述缓存单元的数据。
15.根据权利要求13所述的数据处理装置,其特征在于,
所述请求接收模块,适于接收各个数据处理请求,包括:接收各个数据写入请求;
所述待合并缓存单元获取模块,适于获取各个所述数据处理请求所对应的各个缓存单元中,能够合并处理数据的各个待合并缓存单元还包括:获取各个所述数据写入请求所对应的各个缓存单元中,能够合并发送写入数据的各个待合并缓存单元;
所述数据处理模块,适于同时对与所述合并数据处理请求对应的各个所述缓存单元的数据进行传输,包括:当接收到下一级缓存单元返回的数据可写入应答时,同时发送各个所述待合并缓存单元的待写入数据。
16.一种缓存器,其特征在于,包括一级缓存和二级缓存,所述一级缓存的至少两个缓存单元和所述二级缓存的至少两个缓存单元同时映射,且至少所述一级缓存包括如权利要求13至15任一项所述的数据处理装置。
17.一种缓存器,其特征在,所述缓存器执行处理器下发的数据处理请求,以实现如权利要求1至12任意一项所述的数据处理方法。
18.一种电子设备,其特征在于,包括如权利要求16或17所述的缓存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363262.0A CN114036077B (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363262.0A CN114036077B (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114036077A CN114036077A (zh) | 2022-02-11 |
CN114036077B true CN114036077B (zh) | 2022-10-21 |
Family
ID=80138020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111363262.0A Active CN114036077B (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114036077B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115297198B (zh) * | 2022-09-21 | 2023-01-13 | 中昊芯英(杭州)科技有限公司 | 数据处理方法、电路、介质和计算设备 |
CN116342371B (zh) * | 2023-03-24 | 2024-05-24 | 摩尔线程智能科技(北京)有限责任公司 | 用于gpu、二级缓存的方法和gpu、二级缓存 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
CN112506567A (zh) * | 2020-11-27 | 2021-03-16 | 海光信息技术股份有限公司 | 数据读取方法和数据读取电路 |
CN112540939A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机*** |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201015321A (en) * | 2008-09-25 | 2010-04-16 | Panasonic Corp | Buffer memory device, memory system and data trnsfer method |
CN105335323B (zh) * | 2015-11-26 | 2019-04-30 | 浙江宇视科技有限公司 | 一种数据突发的缓存装置和方法 |
CN111694770B (zh) * | 2019-03-15 | 2022-12-02 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
-
2021
- 2021-11-17 CN CN202111363262.0A patent/CN114036077B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
CN112540939A (zh) * | 2019-09-23 | 2021-03-23 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机*** |
CN112506567A (zh) * | 2020-11-27 | 2021-03-16 | 海光信息技术股份有限公司 | 数据读取方法和数据读取电路 |
Also Published As
Publication number | Publication date |
---|---|
CN114036077A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114036077B (zh) | 数据处理方法及相关装置 | |
CN104679669B (zh) | 高速缓存cache存储器***及访问缓存行cache line的方法 | |
CN112948318B (zh) | 一种Linux操作***下基于RDMA的数据传输方法及装置 | |
EP0090026A1 (en) | CACHE STORAGE USING A LOWEST PRIORITY REPLACEMENT. | |
CN112328185B (zh) | 一种基于分布式存储的智能预读方法 | |
JPH04308956A (ja) | 受信バッファ | |
CN113419824A (zh) | 数据处理方法、装置、***及计算机存储介质 | |
CN112380148B (zh) | 数据传输方法和数据传输装置 | |
CN113641596B (zh) | 缓存管理方法、缓存管理装置、处理器 | |
CN115168247B (zh) | 用于并行处理器中动态共享存储空间的方法及相应处理器 | |
CN111563052A (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
CN108415861B (zh) | 用于缓存内容管理的装置和方法 | |
CN115168248A (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
CN114036089B (zh) | 数据处理方法、装置、缓存器、处理器及电子设备 | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
CN113515474A (zh) | 数据处理装置、方法、计算机设备和存储介质 | |
CN115658625B (zh) | 数据解压***、图形处理***、装置、设备及解压方法 | |
KR20190112020A (ko) | 데이터 처리 | |
CN114063923A (zh) | 数据读取方法、装置、处理器及电子设备 | |
CN108694209B (zh) | 基于对象的分布式索引方法和客户端 | |
CN112612726B (zh) | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 | |
CN110658999A (zh) | 一种信息更新方法、装置、设备及计算机可读存储介质 | |
JPH06103477B2 (ja) | 並列キャッシュメモリ | |
CN117370227A (zh) | 内存页面的确定方法及计算设备 |
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 |