CN114036089A - 数据处理方法、装置、缓存器、处理器及电子设备 - Google Patents
数据处理方法、装置、缓存器、处理器及电子设备 Download PDFInfo
- Publication number
- CN114036089A CN114036089A CN202111363242.3A CN202111363242A CN114036089A CN 114036089 A CN114036089 A CN 114036089A CN 202111363242 A CN202111363242 A CN 202111363242A CN 114036089 A CN114036089 A CN 114036089A
- Authority
- CN
- China
- Prior art keywords
- data
- main memory
- data processing
- cache
- missing
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 49
- 230000015654 memory Effects 0.000 claims abstract description 315
- 238000013507 mapping Methods 0.000 claims abstract description 56
- 238000000034 method Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 abstract description 32
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
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在单位时间可以获取的最大数据量,为了提升数据获取效率就需要提高带宽。
因此,如何提高带宽,进而提高数据传输效率,就成为本领域技术人员需要解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种数据处理方法、装置、缓存器、处理器及电子设备,以实现提高带宽,进而提高数据传输效率。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种数据处理方法,包括:
接收数据处理请求,所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理,其中,所述满足映射关系的各个缓存单元,是指所述数据处理请求中的主存地址所对应的缓存单元。
第二方面,本申请实施例提供一种数据处理装置,包括:
数据处理请求模块,适于接收数据处理请求,所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
数据处理模块,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理,其中,所述满足映射关系的各个缓存单元,是指所述数据处理请求中的主存地址所对应的缓存单元。
第三方面,本申请实施例提供一种缓存器,包括一级缓存和二级缓存,所述一级缓存的至少两个缓存单元和所述二级缓存的至少两个缓存单元同时映射,且所述一级缓存和所述二级缓存均包括如上述第二方面所述的数据处理装置。
第四方面,本申请实施例提供一种处理器,所述处理器执行计算机可执行指令,以实现如上述第一方面所述的数据处理方法。
第五方面,本申请实施例提供一种电子设备,包括如上述第四方面所述的处理器。
本申请实施例所提供的数据处理方法,当接收到的数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续时,分别确定各个缓存单元中的主存地址是否均命中,即各个缓存单元的主存地址信息中是否包括了全部所述主存地址,如果是,那么对主存地址对应的数据同时进行数据处理,从而可以同时对至少两个缓存单元的数据同时进行处理。
可见,本申请实施例所提供的数据处理方法,所接收的一个数据处理请求至少对应两个缓存单元,各个缓存单元同时进行是否命中的判断,并在命中时,同时处理各个缓存单元的数据,可以在无需改变缓存单元大小的情况下,增大各级缓存间、缓存与计算单元间以及缓存与主存间的数据通道宽度,提高数据传输效率,并且可以避免加宽缓存单元所需要的映射关系改变,以及由此带来的工作量的增加,可以实现在较小工作量的基础上,提高带宽,进而提高数据传输效率的提高;进一步地,在读写请求的数量比例不一致的情况下,还可以在相邻两级传输之间改变读写请求的数据传输带宽比例,使得数据传输更满足使用要求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为计算机结构的结构示意图;
图2为一种缓存单元的结构示意图;
图3为一种数据处理请求的结构示意图;
图4为本申请实施例所提供的数据处理方法的一流程图;
图5为本申请实施例所提供的数据处理方法的数据处理请求的结构示意图;
图6为本申请实施例所提供的数据处理方法的另一流程图;
图7为本申请实施例所提供的数据处理方法的实现示例图;
图8为本申请实施例所提供的数据处理方法的另一示例图;
图9为本申请实施例所提供的数据处理方法的再一流程图;
图10为本申请实施例所提供的数据处理装置的框图;
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面对现有的缓存技术进行介绍。图1示出了计算机结构的结构示意图。如图1所示,计算机结构主要包括处理器100、高速缓存和主存130,高速缓存包括一级高速缓存110和二级高速缓存120。
其中,处理器100,可以是中央处理器,也可以是图形处理器或通用图形处理器。本申请实施例所有所述的处理器都是指功能意义上的处理器,即具有逻辑运算和控制功能的运算和控制核心,而不是从产品封装上看的包含高速缓存在内的一个封装盒,本申请实施例所述的处理器可能对应某些文献里所描述的处理器的物理核心。
高速缓存,分为多级高速缓存,一级高速缓存110存储量最小,二级高速缓存120比一级大,后面以此类推,在极小存储量的一级高速缓存110中有时还会区分成指令高速缓存和数据高速缓存,只有数据高速缓存可以存储数据,这进一步减小了一级高速缓存可以存储的数据大小。一般一个处理器100独享一个一级高速缓存110,多个处理器共享一个二级高速缓存120,在一些实施例中,也可以是一个处理器独享一个一级高速缓存110和一个二级高速缓存120,多个处理器共享一个三级高速缓存,后面以此类推,处理器100通过共享高速缓存实现了相互间的数据交流。高速缓存存取速度比主存快,存储容量比处理器大。
主存130,主存是存储所有指令和数据的存储单元,存储容量大但存取速度慢,通常采用DRAM(动态随机存取存储器)类型的存储芯片。
处理器100后连接专属的一级高速缓存110,一级高速缓存110连接二级高速缓存120,最后连接主存130,专属的一级高速缓存110一般存储空间较小,只保存对应处理器当下处理的关联数据。当一级高速缓存110中没有命中时才会去二级高速缓存120中寻找。例如在一些实施例中,二级高速缓存120为多个处理器服务,但一次只能为一个处理器提供服务,不同的处理器通过二级高速缓存实现互相访问以及与主存130的访问。在另一些实施例中二级高速缓存120仍为一个处理器所专属,共享的是三级高速缓存。处理器100通过对高速缓存的访问避免了对主存130的直接访问,从而避免了巨大速度差异带来的时间浪费,提高了效率。
图2示出了一种缓存单元的结构示意图。高速缓存由数个缓存单元(具体可以为缓存行)构成,每个缓存单元的结构相同,下面以一个缓存行为例进行说明。如图2所示,每个缓存行的前面有索引,比如图2中所示索引:0。
索引,也称为偏移量,即是数据在缓存结构中的相对位置。
一个缓存行主要包含存储数据的数据202、地址位201、有效位200。
其中,数据202用于存储数据,本申请实施例所述的数据指的是数据信息、指令信息的统称,每个缓存单元所存储的数据对应主存中的一个主存块的数据。
地址位201,适于表示存储于缓存单元中的数据在主存中的地址,由于计算机系统中,通过特定的位置转换算法可以获取任意主存地址对应的缓存单元的索引,由于同一个缓存单元与多个主存地址映射,因此在缓存单元存储数据时还必须标记数据在主存中的数据地址,也称为缓存单元的数据地址。
有效位200,用于表明该缓存行是否有效,如果有效位200的值所表示的意义为无效,无论当前缓存单元中是否有数据,处理器都会逐级向下一级访问,重新加载数据。
每个缓存行都有一个索引,缓存行与主存间有多种映射关系,在某些实施例中,可以为直接映射,缓存行根据接收到的地址,对比缓存行的索引,找到确切的缓存行,然后对比地址位201,如果地址位201和所接收的请求中的地址信息相同,则为命中,对此缓存行进行相应操作,比如读回数据操作或者写入数据操作;如果不相同,则为缺失,对于数据读取请求,只能从下一级高速缓存或者主存中寻找,对于数据写入操作,则需要确定可以写入数据的缓存行。
图3示出了一种数据处理请求的结构示意图。如图3所示,数据处理请求主要包括请求类型标识种类位300、其它控制位310、数据位320。
其中,请求类型标识种类位300,用于标明请求类型是读操作请求还是写操作请求,在一些实施例中,读写控制位为两位bit大小,用00表示读操作,用11表示写操作。
数据位320,适于标识数据处理请求所请求的数据信息或数据主存地址信息,需要注意的是,如果是读操作请求则没有数据只有主存地址信息,通过数据位320所标识的主存地址信息在缓存中寻找缓存行,并判断是否命中。
其它控制位310,起到其余控制作用。
各级缓存之间的数据通道宽度、缓存与主存之间的数据通道宽度均与缓存行的数据带宽一致,在对数据进行处理的过程中,一个数据处理请求只请求一个缓存单元(缓存行),对一个缓存单元进行是否命中的判断。
然而,某些情况下,还需要进一步提高数据的传输效率,为此,需要增加带宽,进而提高数据传输效率。
为此,本申请实施例提供一种数据处理方法,可以对连续数据地址的多个缓存单元(缓存行)同时进行处理,可以实现通过加宽带宽,提高数据传输效率。
图4示出了本申请实施例所提供的数据处理方法的一流程图。
如图4所示,该流程可以包括如下步骤:
在步骤S400中,接收数据处理请求。
在数据处理时,首先接收数据处理请求,容易理解的是,接收数据处理请求的可以为高速缓存或者主存,而当为高速缓存时,具体可以为一级高速缓存、二级高速缓存或者三级高速缓存中的一者。
需要说明的是,在接收数据处理请求的过程中,所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续。
本文所述的数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,既包括所请求的数据为适于存储于两个缓存单元的数据,也可以包括所请求的数据为适于存储于多于两个缓存单元的数据。
如前所述,主存可以分为数个主存块,每个主存块的大小与缓存单元大小相同,数据的主存地址即为存储数据的主存块,以及块内偏移。数据处理请求所请求的数据存储于至少两个缓存单元,那么对应存储于主存中需存储于至少两个主存块,而各个所述缓存单元的数据的主存地址连续,不是指在一个缓存单元中或一个主存块中的两个或多个字或字节连续,而是指数据位于连续的主存块中,且缓存单元在物理上不一定连续的,但主存块是连续的。
例如,需要处理两个数据,分别为数据1和数据2,数据1是存储于主存块12的第4个字,数据2是存储于主存块13的第7个字,与主存块12对应的缓存单元索引是3,与主存块13对应的缓存行索引是8,由于主存块12和主存块13连续,那么请求数据1和数据2的数据处理请求,即为本申请所述的数据处理请求。需要注意的是,本申请实施例提到的所有连续,表达的都是指本段所描述的连续方式。
具体地,数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,可以通过数据处理请求类型标识进行标识,即数据处理请求中包括数据处理请求类型标识,从而当各级高速缓存或者主存接收到数据处理请求后,能够确定需要对存储于至少两个缓存单元的数据进行处理。
在一种具体实施方式中,数据处理请求类型标识的实现方式可以包括增加主存地址数量标识位或增加请求类型标识种类。图5示出了本申请实施例所提供的数据处理方法的数据处理请求的结构示意图。如图5所示,该处理请求可以包括:主存地址数量标识位1000,请求类型标识种类位1010,其它控制位1020,数据1030。
对于增加主存地址数量标识位1000,比如:如果所请求的数据包括适于存储于两个缓存单元的数据,可以通过增加一个主存地址数量标识位1000以表示该请求的特殊性,当其取值为1时,表示所请求的数据是存储于两个缓存单元的数据,尽管数据处理请求中的地址仍然仅有一个主存地址,但所请求的数据为数据处理请求中的主存地址以及数据处理请求中的主存地址相邻的另一个主存地址中的数据;当然,当其取值为0时,表示所请求的数据是存储于一个缓存单元的数据。
容易理解的是,如果所请求的数据包括适于存储于多于两个缓存单元的数据,那么主存地址数量标识位1000的位数可以根据需要增加。
对于增加请求类型标识种类,比如:如果所请求的数据包括适于存储于两个缓存单元的数据,可以通过2比特来表示请求类型的标识,00表示普通的读数据请求,即所请求的数据包括适于存储于一个缓存单元的数据的读请求,01表示普通的写数据请求,即所请求的数据包括适于存储于一个缓存单元的数据的写请求,10表示所请求的数据存储于两个缓存单元的数据的读请求,11表示所请求的数据存储于两个缓存单元的数据的写请求,当然,当所请求的数据包括适于存储于两个缓存单元的数据,数据处理请求中的地址仍然仅有一个主存地址,但所请求的数据为数据处理请求中的主存地址以及数据处理请求中的主存地址相邻的另一个主存地址中的数据。
进一步地,当数据处理请求为数据读取请求时,所得到的数据需要返回至发送数据处理请求的模块,为此,数据处理请求中还可以包括各个所述缓存单元的缓存单元索引,从而保证数据处理请求所请求数据的顺利返回。
值得注意的是,本实施例还提供一种数据处理请求的标识方式,接收模块通过对接收到的请求进行分析,发现连续的数个请求所请求的数据的地址是连续的,便视为一个连续的处理请求,只有在全部命中的时候才返回给上级模块。
在步骤S410中,判断满足映射关系的各个缓存单元的主存地址信息中是否包括全部所述主存地址,如果是,则执行步骤S420,如果否,则执行步骤S430。
当接收到数据处理请求后,需要基于数据处理请求处理数据,为此需要确定数据处理请求所对应的数据在接收请求的模块(各级高速缓存或主存)中存储,如果满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址,即所请求的数据全部备份在缓存行中,确定对应模块中存储有数据,此时命中,执行步骤S420,否则,只要请求中的一个主存块的主存地址未命中,则为缺失,执行步骤S430。
容易理解的是,满足映射关系的各个缓存单元,是指所述数据处理请求中的主存地址所对应的缓存单元,基于映射方式的不同,所对应的缓存单元也不同,当映射方式为全关联映射时,满足映射关系的各个缓存单元是指全部的缓存单元,主存地址能够和全部的缓存单元进行映射;当映射方式为组关联映射时,满足映射关系的各个缓存单元是指主存地址所能够对应的一组缓存单元,即主存地址能够仅能和一部分缓存单元映射;从而,在进行查找时,所对应的查找范围不同。
主存地址信息指向的主存块中储存有处理请求所请求的数据,如果命中,那么所述的缓存单元的主存地址信息中包括了此数据的地址,所请求的全部数据的地址都包括,即所有的数据都储存在了缓存中。
在步骤S420中,对各个所述主存地址对应的数据同时进行数据处理。
满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址,尽管数据处理请求所请求的数据涉及多个缓存单元,但仍同时对多个缓存单元的数据同时进行处理。
以读操作为例,例如二级高速缓存接收到的一个数据读取请求中请求读取M1、M2这两个主存地址连续的数据,M1和M2的主存地址分别对应着二级高速缓存的缓存单元S1和S2,则二级高速缓存接收到数据读取请求后同时选中S1缓存单元和S2缓存单元,同时传输该两个缓存单元的数据内容给一级高速缓存,一级高速缓存同时接收到该两个缓存单元的数据。
容易理解的是,为了实现对各个所述主存地址对应的数据同时进行数据处理,在结构上,发送数据处理请求和接收数据处理请求的两级模块之间,至少两个缓存单元同时映射,即至少两个缓存单元的映射同时有效。
当数据处理请求所请求的数据多于两个缓存单元的数据时,映射同时有效的缓存单元的数量与数据处理请求所述请求的数据对应的缓存单元的数量相同。
在一些实施例中,还可以将每级高速缓存分为多个高速缓存器,每个高速缓存器中设置多个缓存单元。
可见,本申请实施例所提供的数据处理方法,所接收的一个数据处理请求至少对应两个缓存单元,各个缓存单元同时进行是否命中的判断,并在命中时,同时返回各个缓存单元的数据,可以在无需改变缓存单元大小的情况下,增大各级高速缓存间、高速缓存与计算单元间以及高速缓存与主存间的数据通道宽度,提高数据传输效率,并且可以避免加宽缓存单元所需要的映射关系改变,以及由此带来的工作量的增加,可以实现在较小工作量的基础上,提高带宽,进而提高数据传输效率的提高;进一步地,在读写请求的数量比例不一致的情况下,还可以在相邻两级传输之间改变读写请求的数据传输带宽比例,使得数据传输更满足使用要求。
在另一种实施例中,为了保证数据的顺利处理,还可以包括如下步骤:
在步骤S430中,将缺失的各个所述主存地址分别写入各个待处理缓存单元。
满足映射关系的各个缓存单元的主存地址信息中仅包括部分数据处理请求中的所述主存地址,或者完全未包括时,需要首先确定一些缓存单元,所确定的缓存单元能够允许将缺失的主存地址写入到待处理缓存单元。
当然,待处理缓存单元既可以为已经被占用但可以被替换的待替换缓存单元,也可以为未被占用的空闲缓存单元,即其中不存在主存地址信息。
容易理解的是,待替换缓存单元中如果存在主存地址信息,那么其中的原有的主存地址信息需与数据处理请求的数据所对应的各个所述主存地址不同,否则会出现将未命中的数据全部读入缓存后,缓存中仍然没有包含全部所请求数据的问题。当然,其中也可以不存在主存地址信息,即为空的缓存单元。
具体地,待处理缓存单元可以基于RLU原则(最近最少使用原则)进行确定。
确定了待处理缓存单元,将缺失的主存地址写入各个待处理缓存单元,但并非将数据写入各个待处理缓存单元,以便当获取到对应的数据时,将其写入对应主存地址的缓存单元。
另外,容易理解的是,本文所述的缺失的主存地址是指缺失的地址信息中的各个缓存单元中存储的基地址。
在一种替代实现中,对待处理缓存单元,没有其主存地址信息异于所述数据处理请求的数据所对应的各个所述主存地址的要求,但在每次替换完后,都要再进行缓存中是否包含所有所请求数据的检查,如果没有,就重复此过程,直到检测到所有所述请求数据都包含备份到了缓存中。
这样,通过将缺失的各个所述主存地址分别写入各个待处理缓存单元,可以在提高数据传输效率的基础上,保证数据读取或者写入的顺利执行。
为了方便理解,本发明实施例还提供了一种数据处理方法,以说明在数据读取时的具体处理方法,图6示出了本申请实施例所提供的数据处理方法的另一流程图。
容易理解的是,图6所示流程是数据处理请求为数据读取请求这一具体情况时的流程图。由于图中大部分步骤都与图4中的步骤相类似,对这部分内容不展开描述。如图6所示,该流程可以包括如下步骤。
在步骤S500中,接收数据读取请求。
步骤S500的具体内容请参考图4所示的步骤S400的描述,当然,数据处理请求为数据读取请求,其他内容,在此不再赘述。
在步骤S510中,判断满足映射关系的各个缓存单元的主存地址信息中是否包括全部所述主存地址,若是,执行步骤S520,若否,执行步骤S530。
步骤S510的具体内容,请参考图4所示的步骤S410的描述,在此不再赘述。
在步骤S520中,同时返回全部所述主存地址所对应的数据。
步骤S520的具体内容,请参考图4所示的步骤S420的描述,当然,由于数据处理请求为数据读取请求,因此,在对数据进行处理时,同时返回全部主存地址对应的数据。
这样,可以实现对于各个主存地址对应数据的读取,并且,由于可以同时返回数据,可以提高数据读取的效率。
在另一种具体实施方式中,当存在缺失的各个所述主存地址时,为了保证数据的顺利读取,还可以包括以下步骤:
在步骤S530中,将缺失的各个所述主存地址分别写入各个待处理缓存单元。
步骤S530的具体内容,请参考图4所示的步骤S430的描述,在此不再赘述。
在步骤S540中,生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求。
当存在缺失的各个所述主存地址时,为了实现数据的读取还需要生成发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求,并向下一级模块(比如:二级缓存或者主存)发送缺失数据读取请求。
可以看出,对于数据读取请求,在满足映射关系的各个缓存单元的主存地址信息中不包括全部所述主存地址时,还生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求,从而保证实现数据的读取。
在缺失的主存地址是多个地址时,根据连续不连续会出现多种情况,例如缺失的数据也是连续的数据,缺失的数据部分连续部分不连续或者缺失的数据是全部不连续的。在一些实施例中,可以针对数个缺失的连续的主存地址对应的数据发出新的合并的数据读取请求。在另一些实施例中,不管有没有连续的缺失数据,都对每个缓存单元的数据单独的发送一个数据读取请求。不同的处理方法影响后续的处理,下面举出两个不同的实现示例:
图7示出了本申请实施例所提供的数据处理方法的实现示例图。
需要说明的是,图7中大部分内容与图6中的步骤类似,对这部分内容不展开描述。如图7所示,该示例可以包括如下步骤。
在步骤S600中,接收数据读取请求。
在步骤S610中,判断满足映射关系的各个缓存单元的主存地址信息中是否包含全部所述主存地址,如果是,则执行步骤S620,如果否,则执行步骤S630。
在步骤S620中,同时返回全部所述主存地址对应的数据。
在步骤S630中,将缺失的各个所述主存地址分别写入各个待处理缓存单元。
步骤S600-步骤S630的具体内容,请参考图4所示的步骤S400-步骤S430的描述,在此不再赘述。
在步骤S640中,生成分别读取缺失的各个所述主存地址所对应的数据的各个缺失数据读取请求。
不论缺失数据是一个还是数个,是数个全部连续还是数个部分连续,都对每一个缓存单元的主存地址对应的数据分别生成一个缺失数据读取请求,挨个发送给下一级模块。每个数据请求只请求读取一个缓存单元的主存地址对应的缺失数据,缺失数据读取请求的数量与所述缺失的各个所述主存地址的数量相同,下一级模块可以是高速缓存或主存,如果发送模块是最低级高速缓存,则下一级模块是主存。若发送模块是一级缓存,则下一级模块是二级缓存。
在步骤S650中,判断是否接收到全部与缺失的各个所述主存地址对应的数据,若是,执行步骤S660,否则,再次等待和判断。
当向下一级模块发送获取数据的缺失数据读取请求后,还需确定是否接收到了全部的缺失数据,直至得到全部的缺失数据后,同时返回全部主存地址对应的数据。
当然,下一级模块如果是更低一级的缓存,仍然存在下一级模块中缺失所请求的部分数据的情况,此时会再向下一级模块发送请求,容易理解的是,具体的流程与上述流程一致,在此不再赘述。
在步骤S660中,同时返回全部主存地址对应的数据。
步骤S660的具体内容,请参考图5所示的步骤S520的描述,在此不再赘述。
这样,分别生成各个缺失数据读取请求,可以降低数据处理方法的复杂度,并且在接收到数据后,同时返回全部所述主存地址对应的数据,也可以提高数据传输效率。
图8示出了本申请实施例所提供的数据处理方法的另一示例图。需要说明的是,图8的示例与图7的区别主要在于对于缺失的数据的处理,因此对其他步骤不展开描述。如图8所示,该示例可以包括如下步骤。
在步骤S700中,接收数据读取请求。
在步骤S710中,判断满足映射关系的各缓存单元的主存地址信息中是否包括全部所述主存地址。如果是,则执行步骤S720,如果否,则执行步骤S730。
在步骤S720中,同时返回全部所述主存地址对应的数据。
在步骤S730中,将缺失的各个所述主存地址分别写入各个待处理缓存单元。
步骤S700-步骤S730的具体内容,请参考前述对应部分的描述,在此不再赘述。
在步骤S740中,获取缺失的各个所述主存地址中地址连续的主存地址,得到各个连续主存地址,根据各个所述连续主存地址,生成读取缺失的各个所述连续主存地址所对应的数据的连续缺失数据读取请求。
在生成缺失数据读取请求时,为了进一步提高数据传输效率,可以进一步获取缺失的主存地址,然后,确定新的连续主存地址,并根据连续主存地址生成连续缺失数据读取请求。
当然,容易理解的是,对于无法确定为连续主存地址的主存地址,则仅需根据各个主存地址分别生成缺失数据读取请求即可。
为方便理解,现举例如下:
比如:缺失的数据的主存地址分别为M1、M2和N1,其中主存地址M1和主存地址M2连续,那么生成连续缺失数据读取请求,主存地址N1与M1和M2不连续,那么,生成缺失数据读取请求,然后向下一级模块发送对应主存地址M1和M2的连续缺失数据读取请求和对应主存地址N1的缺失数据读取请求即可。
在步骤S750中,判断是否接收到全部与缺失的各个所述主存地址对应的数据,如果是,则执行步骤S760,如果否,则重复进行判断。
在步骤S760中,同时返回全部主存地址对应的数据。
可以看出,当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,所生成的缺失数据读取请求中仍然可以包括读取缺失的各个所述连续主存地址所对应的数据的请求,从而,在数据读取过程中,进一步提高数据传输效率。
除了能够提高数据读取时的数据传输效率,当数据写入时,也可以提高数据的传输效率,为此,本发明实施例还提供一种数据处理方法,请参考图9,图9示出本申请实施例所提供的数据处理方法的再一流程图。
如图9所示,该流程可以包括如下过程。
步骤S800,接收数据写入请求。
步骤S800的具体内容请参考图4所示的步骤S400的描述,当然,数据处理请求为数据写入请求,其他内容,在此不再赘述。
步骤S810,判断满足映射关系的各个缓存单元的主存地址信息中是否包括全部所述主存地址。如果是,则执行步骤S820,如果否,则执行步骤S830。
步骤S810的具体内容,请参考图4所示的步骤S410的描述,在此不再赘述。
步骤S820,同时接收各个所述主存地址所对应的数据,并将各个所述数据写入相对应的所述缓存单元。
步骤S820的具体内容,请参考图4所示的步骤S420的描述,当然,由于数据处理请求为数据写入请求,因此,在对数据进行处理时,同时将数据写入对应主存地址的缓存单元或者主存即可。
这样,本申请实施例所提供的数据处理方法,所接收的一个数据写入请求至少对应两个缓存单元,各个缓存单元同时进行是否命中的判断,并在命中时,同时写入各个缓存单元的数据,可以在无需改变缓存单元大小的情况下,增大各级缓存间、缓存与计算单元间以及缓存与主存间的数据通道宽度,提高数据传输效率,从而可以避免加宽缓存单元所需要的映射关系改变,以及由此带来的工作量的增加,可以实现在较小工作量的基础上,提高带宽,进而提高数据传输效率。
可以实现对于各个主存地址对应数据的写入,并且,由于可以同时写入数据,可以提高数据写入的效率。
在另一种实施例中,还可以包括步骤S830中,将缺失的各个所述主存地址分别写入各个待处理缓存单元。
步骤S830的具体内容,请参考图4所示的步骤S430的描述,当然,由于数据处理请求为数据写入请求,因此,将缺失的各个所述主存地址分别写入各个待处理缓存单元即可。
步骤S840,同时接收各个所述主存地址所对应的数据,并将各个所述数据写入相对应的所述缓存单元。
将所有缺失的主存地址都已被写入到高级缓存中后,将接收到的数据分别写入对应的缓存单元里即可。
可见,本申请实施例所提供的数据处理方法,所接收的一个数据写入请求至少对应两个缓存单元,各个缓存单元同时进行是否命中的判断,并在未命中时,将缺失的各个所述主存地址分别写入各个待处理缓存单元,然后同时写入各个缓存单元的数据,可以在无需改变缓存单元大小的情况下,增大各级缓存间、缓存与计算单元间以及缓存与主存间的数据通道宽度,提高数据传输效率,从而可以避免加宽缓存单元所需要的映射关系改变,以及由此带来的工作量的增加,可以实现在较小工作量的基础上,提高带宽,进而提高数据传输效率。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
本申请实施例还提供一种数据处理装置,该装置可以认为是实现本申请实施例提供的数据处理方法所需设置的功能模块。本文描述的装置内容与上文描述方法内容相互对应参照。
图10示出了本申请实施例所提供的数据处理装置的框图。该装置可适用于本申请实施例所提供的数据处理方法。参照图10,该装置可以包括:
数据处理请求模块910,适于接收数据处理请求,所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续。
数据处理模块920,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理,其中,所述满足映射关系的各个缓存单元,是指所述数据处理请求中的主存地址所对应的缓存单元。
在一些实施例中,数据处理模块920还适于当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元,其中,各个所述待处理缓存单元的原有的主存地址信息,均异于所述数据处理请求所请求数据的主存地址。
在一些实施例中,数据处理请求模块910可以为数据读请求模块,适于接收数据读请求,所述数据读请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
数据处理模块920可以为数据读操作模块,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,同时返回全部所述主存地址对应的数据。
在另一些实施例中,该数据读操作模块还适于当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元,生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求。
在一些实施例中,数据读操作模块,适于生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求,包括:
生成分别读取缺失的各个所述主存地址所对应的数据的各个缺失数据读取请求,所述缺失数据读取请求的数量与所述缺失的各个所述主存地址的数量相同;
数据读操作模块,还适于当接收到全部与缺失的各个所述主存地址对应的数据时,同时返回全部主存地址对应的数据。
在一些实施例中,数据读操作模块,适于生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求,包括:
获取缺失的各个所述主存地址中地址连续的主存地址,得到各个连续主存地址;
根据各个所述连续主存地址,生成读取缺失的各个所述连续主存地址所对应的数据的连续缺失数据读取请求;
数据读操作模块,还适于当接收到全部与缺失的各个所述主存地址对应的数据时,同时返回全部主存地址对应的数据。
在另一些实施例中,数据处理请求模块910可以为数据写请求模块,适于接收数据写请求,所述数据写请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
数据处理模块920可以为数据写操作模块,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,同时写入全部所述主存地址对应的数据。
在另一些实施例中,该数据写操作模块还适于当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元后,同时接收各个所述主存地址所对应的数据,并将各个所述数据写入相对应的所述缓存单元。
可以看出,本申请实施例所提供的数据处理装置,数据处理请求模块910所接收的一个数据处理请求至少对应两个缓存单元,数据处理模块920对各个缓存单元同时进行是否命中的判断,并在命中时,同时返回各个缓存单元的数据,可以在无需改变缓存单元大小的情况下,增大各级高速缓存间、高速缓存与计算单元间以及高速缓存与主存间的数据通道宽度,提高数据传输效率,并且可以避免加宽缓存单元所需要的映射关系改变,以及由此带来的工作量的增加,可以实现在较小工作量的基础上,提高带宽,进而提高数据传输效率;进一步地,在读写请求的数量比例不一致的情况下,还可以在相邻两级传输之间改变读写请求的数据传输带宽比例,使得数据传输更满足使用要求。
本申请实施例还提供一种缓存器,该缓存器可以包括一级缓存和二级缓存,所述一级缓存的至少两个缓存单元和所述二级缓存的至少两个缓存单元同时映射,且所述一级缓存和所述二级缓存均包括本申请实施例所提供的数据处理装置。
这样,通过使一级缓存的至少两个缓存单元和二级缓存的至少两个缓存单元同时映射,可以实现可以同时传输至少两个缓存单元的数据,可以在无需改变缓存单元大小的情况下,增大各级高速缓存间的数据通道宽度,提高数据传输效率。
本申请实施例还提供一种处理器,该处理器执行计算机可执行指令,以实现本申请实施例提供的数据处理方法。
本申请实施例还提供一种电子设备,该电子设备可以包括本申请实施例上述提供的处理器。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (25)
1.一种数据处理方法,其特征在于,包括:
接收数据处理请求,所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理,其中,所述满足映射关系的各个缓存单元,是指所述数据处理请求中的主存地址所对应的缓存单元。
2.如权利要求1所述的数据处理方法,其特征在于,还包括:
当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元,其中,各个所述待处理缓存单元的原有的主存地址信息,均异于所述数据处理请求的数据所对应的各个所述主存地址。
3.如权利要求2所述的数据处理方法,其特征在于,所述待处理缓存单元包括待替换缓存单元和空闲缓存单元中的至少一者。
4.如权利要求3所述的数据处理方法,其特征在于,所述待替换缓存单元通过最近最少使用原则RLU确定。
5.如权利要求1所述的数据处理方法,其特征在于,所述数据处理请求包括数据读取请求,所述当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理的步骤,包括:
当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,同时返回全部所述主存地址对应的数据。
6.如权利要求2所述的数据处理方法,其特征在于,所述数据处理请求包括数据读取请求,所述当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元的步骤之后,还包括:
生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求。
7.如权利要求6所述的数据处理方法,其特征在于,所述生成读取缺失的各个所述主存地址所对应的数据的新数据处理请求的步骤包括:
生成分别读取缺失的各个所述主存地址所对应的数据的各个缺失数据读取请求,所述缺失数据读取请求的数量与所述缺失的各个所述主存地址的数量相同;
所述数据处理方法还包括:
当接收到全部与缺失的各个所述主存地址对应的数据时,同时返回全部主存地址对应的数据。
8.如权利要求6所述的数据处理方法,其特征在于,所述生成读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求的步骤包括:
获取缺失的各个所述主存地址中地址连续的主存地址,得到各个连续主存地址;
根据各个所述连续主存地址,生成读取缺失的各个所述连续主存地址所对应的数据的连续缺失数据读取请求;
所述数据处理方法还包括:
当接收到全部与缺失的各个所述主存地址对应的数据时,同时返回全部主存地址对应的数据。
9.如权利要求1所述的数据处理方法,其特征在于,所述数据处理请求包括数据写入请求,所述当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理的步骤,包括:
当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,同时接收各个所述主存地址所对应的数据,并将各个所述数据写入相对应的所述缓存单元。
10.如权利要求2所述的数据处理方法,其特征在于,所述数据处理请求包括数据写入请求,所述当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元的步骤之后,还包括:
同时接收各个所述主存地址所对应的数据,并将各个所述数据写入相对应的所述缓存单元。
11.如权利要求1-10任一项所述的数据处理方法,其特征在于,所述数据处理请求还包括数据处理请求类型标识,所述数据处理请求类型标识用于标识所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据。
12.如权利要求11所述的数据处理方法,其特征在于,所述数据处理请求类型标识的实现方式包括增加主存地址数量标识位或增加请求类型标识种类。
13.一种数据处理装置,其特征在于,包括:
数据处理请求模块,适于接收数据处理请求,所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
数据处理模块,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,对各个所述主存地址对应的数据同时进行数据处理,其中,所述满足映射关系的各个缓存单元,是指所述数据处理请求中的主存地址所对应的缓存单元。
14.如权利要求13所述的数据处理装置,其特征在于,数据处理模块,还适于当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元,其中,各个所述待处理缓存单元的原有的主存地址信息,均异于所述数据处理请求所请求数据的主存地址。
15.如权利要求13所述的数据处理装置,其特征在于,所述数据处理请求模块包括:
数据读请求模块,适于接收数据读请求,所述数据读请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
所述数据处理模块包括:
数据读操作模块,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,同时返回全部所述主存地址对应的数据。
16.如权利要求14所述的数据处理装置,其特征在于,所述数据处理请求模块包括:
数据读请求模块,适于接收数据读请求,所述数据读请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
所述数据处理模块包括:
数据读操作模块,适于当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元,生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求。
17.如权利要求16所述的数据处理装置,其特征在于,所述数据读操作模块,适于生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求,包括:
生成分别读取缺失的各个所述主存地址所对应的数据的各个缺失数据读取请求,所述缺失数据读取请求的数量与所述缺失的各个所述主存地址的数量相同;
所述数据读操作模块,还适于当接收到全部与缺失的各个所述主存地址对应的数据时,同时返回全部主存地址对应的数据。
18.如权利要求16所述的数据处理装置,其特征在于,所述数据读操作模块,适于生成并发送读取缺失的各个所述主存地址所对应的数据的缺失数据读取请求包括:
获取缺失的各个所述主存地址中地址连续的主存地址,得到各个连续主存地址;
根据各个所述连续主存地址,生成读取缺失的各个所述连续主存地址所对应的数据的连续缺失数据读取请求。
19.如权利要求13所述的数据处理装置,其特征在于,所述数据处理请求模块包括:
数据写请求模块,适于接收数据写请求,所述数据写请求所请求的数据包括适于存储于至少两个缓存单元的数据,且各个所述缓存单元的数据的主存地址连续;
所述数据处理模块包括:
数据写操作模块,适于当满足映射关系的各个缓存单元的主存地址信息中包括全部所述主存地址时,同时写入全部所述主存地址对应的数据。
20.如权利要求14所述的数据处理装置,其特征在于,所述数据处理请求模块包括数据写请求模块,所述数据处理装置包括:
数据写操作模块,适于当满足映射关系的各个缓存单元的主存地址信息中未包括全部所述主存地址时,将缺失的各个所述主存地址分别写入各个待处理缓存单元后,同时接收各个所述主存地址所对应的数据,并将各个所述数据写入相对应的所述缓存单元。
21.如权利要求13-20任一项所述的数据处理装置,其特征在于,所述数据处理请求还包括各个所述缓存单元的缓存单元索引和数据处理请求类型标识,所述数据处理请求类型标识用于标识所述数据处理请求所请求的数据包括适于存储于至少两个缓存单元的数据。
22.如权利要求21所述的数据处理装置,其特征在于,所述数据处理请求类型标识的实现方式包括增加主存地址数量标识位或增加请求类型标识种类。
23.一种缓存器,其特征在于,包括一级缓存和二级缓存,所述一级缓存的至少两个缓存单元和所述二级缓存的至少两个缓存单元同时映射,且所述一级缓存和所述二级缓存均包括如权利要求13-22任一项所述的数据处理装置。
24.一种处理器,其特征在于,所述处理器执行计算机可执行指令,以实现如权利要求1-12任一项所述的数据处理方法。
25.一种电子设备,其特征在于,包括如权利要求24所述的处理器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363242.3A CN114036089B (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法、装置、缓存器、处理器及电子设备 |
EP22894185.2A EP4332781A1 (en) | 2021-11-17 | 2022-05-16 | Data processing method and apparatus, and cache, processor and electronic device |
PCT/CN2022/092980 WO2023087640A1 (zh) | 2021-11-17 | 2022-05-16 | 数据处理方法、装置、缓存器、处理器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111363242.3A CN114036089B (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法、装置、缓存器、处理器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114036089A true CN114036089A (zh) | 2022-02-11 |
CN114036089B CN114036089B (zh) | 2022-10-14 |
Family
ID=80138018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111363242.3A Active CN114036089B (zh) | 2021-11-17 | 2021-11-17 | 数据处理方法、装置、缓存器、处理器及电子设备 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4332781A1 (zh) |
CN (1) | CN114036089B (zh) |
WO (1) | WO2023087640A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115809208A (zh) * | 2023-01-19 | 2023-03-17 | 北京象帝先计算技术有限公司 | 缓存数据刷新方法、装置、图形处理系统及电子设备 |
WO2023087640A1 (zh) * | 2021-11-17 | 2023-05-25 | 海光信息技术股份有限公司 | 数据处理方法、装置、缓存器、处理器及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000259497A (ja) * | 1999-03-12 | 2000-09-22 | Fujitsu Ltd | メモリコントローラ |
CN110874328A (zh) * | 2018-08-31 | 2020-03-10 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111694770B (zh) * | 2019-03-15 | 2022-12-02 | 杭州宏杉科技股份有限公司 | 一种处理io请求的方法及装置 |
WO2020199061A1 (zh) * | 2019-03-30 | 2020-10-08 | 华为技术有限公司 | 一种处理方法、装置及相关设备 |
CN113157606A (zh) * | 2021-04-21 | 2021-07-23 | 上海燧原科技有限公司 | 一种缓存器实现方法、装置和数据处理设备 |
CN113222115B (zh) * | 2021-04-30 | 2024-03-01 | 西安邮电大学 | 面向卷积神经网络的共享缓存阵列 |
CN114036089B (zh) * | 2021-11-17 | 2022-10-14 | 海光信息技术股份有限公司 | 数据处理方法、装置、缓存器、处理器及电子设备 |
-
2021
- 2021-11-17 CN CN202111363242.3A patent/CN114036089B/zh active Active
-
2022
- 2022-05-16 WO PCT/CN2022/092980 patent/WO2023087640A1/zh active Application Filing
- 2022-05-16 EP EP22894185.2A patent/EP4332781A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000259497A (ja) * | 1999-03-12 | 2000-09-22 | Fujitsu Ltd | メモリコントローラ |
CN110874328A (zh) * | 2018-08-31 | 2020-03-10 | 爱思开海力士有限公司 | 控制器及其操作方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087640A1 (zh) * | 2021-11-17 | 2023-05-25 | 海光信息技术股份有限公司 | 数据处理方法、装置、缓存器、处理器及电子设备 |
CN115809208A (zh) * | 2023-01-19 | 2023-03-17 | 北京象帝先计算技术有限公司 | 缓存数据刷新方法、装置、图形处理系统及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP4332781A1 (en) | 2024-03-06 |
CN114036089B (zh) | 2022-10-14 |
WO2023087640A1 (zh) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6912628B2 (en) | N-way set-associative external cache with standard DDR memory devices | |
US6820143B2 (en) | On-chip data transfer in multi-processor system | |
CN114036089B (zh) | 数据处理方法、装置、缓存器、处理器及电子设备 | |
US20080028181A1 (en) | Dedicated mechanism for page mapping in a gpu | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
JP7340326B2 (ja) | メンテナンス動作の実行 | |
US6832294B2 (en) | Interleaved n-way set-associative external cache | |
US6745292B1 (en) | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors | |
CN112631961A (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
US8352709B1 (en) | Direct memory access techniques that include caching segmentation data | |
CN116821011B (zh) | 参数确定及数据读写方法、处理器、装置、计算机设备 | |
CN115481054A (zh) | 数据处理方法、装置及系统、系统级soc芯片及计算机设备 | |
CN115509959A (zh) | 处理系统、控制方法、芯片及计算机可读存储介质 | |
CN117389914B (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
US8127079B2 (en) | Intelligent cache injection | |
US9158682B2 (en) | Cache memory garbage collector | |
CN114238171B (zh) | 电子设备、数据处理方法和装置、计算机系统 | |
CN115687185A (zh) | 基于mmap内存映射的手持端低功耗数据采集方法 | |
JP4664586B2 (ja) | キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム | |
CN116340203A (zh) | 数据预读取方法、装置、处理器及预取器 | |
US20020002659A1 (en) | System and method for improving directory lookup speed | |
KR20120124743A (ko) | 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법 | |
US10977176B2 (en) | Prefetching data to reduce cache misses | |
CN112612726B (zh) | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 | |
CN115934367A (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 |