CN115269454A - 数据访问方法、电子设备和存储介质 - Google Patents
数据访问方法、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115269454A CN115269454A CN202210893893.1A CN202210893893A CN115269454A CN 115269454 A CN115269454 A CN 115269454A CN 202210893893 A CN202210893893 A CN 202210893893A CN 115269454 A CN115269454 A CN 115269454A
- Authority
- CN
- China
- Prior art keywords
- data
- line
- register
- cache
- access
- 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.)
- Pending
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
-
- 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
技术领域
本发明涉及计算机技术领域,具体涉及一种数据访问方法、电子设备和存储介质。
背景技术
当处理器接收到数据访问请求时,处理器会根据请求访问的数据提取指令并计算指令的访问地址,通过访问地址在数据存储器进行寻址访问以确定数据在数据存储器中的存储位置,进而读取数据返回结果。例如,处理器通过访问地址在缓存中进行寻址访问时,会将访问地址分为行标记位、索引位、偏移位,需要先通过索引位确定访问地址对应缓存中的哪个分组,再通过行标记位确定访问地址对应分组中的哪个缓存行,然后再通过缓存行前的有效位确定该缓存行中存储有该访问地址请求访问的数据,最后才能通过偏移位从缓存行中读取访问地址所请求访问的数据返回结果。
然而,同一个缓存行通常用于存储相同类型或相关联的多个数据,当处理器接收到多个数据的数据访问请求且多个数据为相同类型或相关联的数据时,处理器根据多个数据对应的多条指令的访问地址在缓存中进行寻址访问的过程,都需通过每条指令对应的访问地址中的行标记位确定缓存行后,再通过缓存行前的有效位确定所匹配的缓存行是否正确,即对同一缓存行的多个数据进行的多次访问都需确定缓存行后再通过有效位确定缓存行是否正确,数据访问效率较低。
发明内容
本发明实施例提供了一种数据访问方法,可以在电子设备接收到存储在缓存中的同一缓存行的多个数据的访问请求时,从寄存器中读取数据,提高处理器执行速度,降低处理器执行功耗。
第一方面,本发明提供了一种数据访问方法,应用于电子设备,该方法包括:电子设备接收到第一访问请求,其中,第一访问请求请求访问第一访问地址的第一数据;判断第一数据是否存储在寄存器中;对应于第一数据存储在寄存器中,从寄存器中读取第一数据,其中,第一数据对应在缓存器中的第一缓存行的整行数据存储在寄存器中;对应于第一数据未存储在寄存器中,从缓存器的第二缓存行中读取第一数据。
在本发明实施例中,电子设备接收到第一访问请求时,通过控制单元获取第一访问请求对应的请求指令并发送至运算单元,通过运算单元计算该请求指令的第一访问地址并判断第一访问地址所对应的第一数据是否存储在寄存器中,若第一数据未存储在寄存器中,则处理器从缓存中读取第一数据;若第一数据存储在寄存器中,则处理器从寄存器中读取第一数据,且由于寄存器中存储有第一数据在缓存器对应的缓存行(第一缓存行)的整行数据,进而后续电子设备接收到存储在第一缓存行的多个数据的访问请求时,处理器可以直接从寄存器中读取数据,相较于从缓存器中读取数据,从寄存器中读取数据不仅可以提高处理器执行速度,还可以降低处理器执行功耗。
在上述第一方面的一种可能的实现中,上述方法还包括:对应于第一数据未存储在寄存器中,将缓存器中的第二缓存行的整行数据写入寄存器中。
在本发明的实施例中,将第一数据在缓存中所对应第二缓存行的整行数据写入寄存器中,进而后续电子设备接收到存储在第二缓存行的多个数据的访问请求时,处理器可以直接从寄存器中读取数据,相较于从缓存器中读取数据,从寄存器中读取数据不仅可以提高处理器执行速度,还可以降低处理器执行功耗。
在上述第一方面的一种可能的实现中,上述方法还包括:第二缓存行的整行数据包括多个第一子数据;电子设备接收到预设次数的访问请求,其中,预设次数的访问请求请求访问数据集,其中,数据集包括多个第二子数据;其中,任一第二子数据对应为第二缓存行的整行数据中的其中一个第一子数据。
在本发明的实施例中,预设次数用于表示将第一数据在缓存中所对应第二缓存行的整行数据写入寄存器后,后续电子设备接收到存储在第二缓存行的多个数据的访问请求次数。
在上述第一方面的一种可能的实现中,上述从缓存器中将第二缓存行的整行数据写入寄存器中,包括:从寄存器中删除第一缓存行的整行数据后,将第二缓存行的整行数据写入寄存器中。
在上述第一方面的一种可能的实现中,上述判断第一数据是否存储在寄存器中,包括:判断第一访问地址的行标记位是否与第一缓存行的行标识相同;若相同,则对应于第一数据存储在寄存器中;若不同,则对应于第一数据未存储在寄存器中。
在本发明的实施例中,处理器判断寄存器中是否存储有第一数据,仅需判断访问地址的行标记位是否与第一缓存行的行标识相同,相同则表示寄存器存储第一数据,判断过程简单,处理器执行速度快,执行功耗低。
在上述第一方面的一种可能的实现中,上述从缓存器的第二缓存行中读取第一数据,包括;根据第一访问地址的行标记位与第二缓存行的行标识和有效位匹配,确定第一数据存储在第二缓存行后,从缓存器的第二缓存行中读取第一数据。
在本发明的实施例中,处理器判断缓存器中是否存储第一数据,需要通过组选择、行匹配、行确定、块抽取过程(参见下文中图2描述),才能确定缓存器中存储有第一数据,判断过程复杂,处理器执行速度慢,执行功耗高。
第二方面,本发明提供了一种计算装置,应用于电子设备,装置包括:控制单元,用于提取电子设备接收到访问请求的指令;运算单元,用于计算指令的访问地址并判断访问地址的数据是否存储在寄存器中;内部存储单元和/或外部存储单元,用于存储访问地址的数据。
在上述第二方面的一种可能的实现中,上述方法还包括:将访问地址与对应存储有访问地址的数据的寄存器的对应关系存储至运算单元中。
第三方面,本发明实施例提供了一种可读存储介质,该可读存储介质上存储有指令,该指令在电子设备上执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据访问方法。
第四方面,本发明实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于执行存储器中存储的指令以实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据访问方法。
第五方面,本发明实施例提供了一种程序产品,该程序产品在电子设备上运行时可以使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据访问方法。
附图说明
图1根据本发明的一些实施例,示出了一种计算装置210的框架示意图;
图2根据本发明的一些实施例,示出了缓存寻址的示意图;
图3根据本发明的一些实施例,示出了另一种计算装置220的框架示意图;
图4根据本发明的一些实施例,示出了地址比较器的框架示意图;
图5根据本发明的一些实施例,示出了一种数据访问方法的流程示意图;
图6根据本发明的一些实施例,示出了一种电子设备100的结构示意图。
具体实施方式
本发明的说明性实施例包括但不限于一种数据访问方法、电子设备和存储介质。
下面结合附图对本发明的技术方案进行介绍。
图1根据本发明的一些实施例,示出了一种计算装置210的框架图。如图1所示,计算装置210可以包括处理器200和外部存储单元204,处理器200可以包括控制单元201、运算单元202、内部存储单元203,内部存储单元203可以包括缓存(Cache)2031和寄存器(Register)2032,外部存储单元204可以包括主存储器、本地存储器(如磁盘)、远程存储器(如分布式文件***、网络服务器)等。
处理器200接收到数据访问请求时,由控制单元201在对应的指令寄存器中获取对应数据的请求指令(以下简称指令)并发送至运算单元202,再通过运算单元202计算得到指令所请求访问的数据的访问地址,处理器200根据访问地址可以在内部存储单元203或外部存储单元204进行寻址访问以读取数据返回结果。其中,由于处理器200直接访问外部存储单元204的速度较慢,可以将处理器200历史访问的数据或预测出处理器200待访问的数据存储在缓存2031中,从而可以直接从缓存2031中访问该部分数据,提高处理器200访问数据的速度。进而控制单元201获取到指令并通过运算单元202计算得到指令的访问地址时,处理器200可以先在缓存2031中进行寻址访问,当缓存命中时,可以直接从缓存2031中读取数据返回,当缓存2031未命中时,处理器200再从外部存储单元204读取数据返回,同时将外部存储单元204读取的数据存储在缓存2031中,以便后续相同数据的指令可以直接从缓存2031中访问数据。可以理解,处理器200从缓存2031中访问数据的速度大于处理器200从外部存储单元204访问数据的速度。
在本发明的一些实施例中,在缓存2031中存储数据时,多个相同类型的数据或相关联的数据会被存储在同一个缓存行(cache line)中,例如,一个数组中所包括的多个数据的数据类型一定相同,则该数组存入缓存2031中时会被存储在同一个缓存行中。
进一步地,处理器200接收到多个数据的数据访问请求时,且多个数据为相同类型或相关联的数据,控制单元201会根据请求访问的多个数据在指令寄存器中对应提取多条指令后发送至运算单元202计算得到多个访问地址,处理器200根据多个访问地址在内部存储单元203或外部存储单元204进行寻址访问返回结果。其中,处理器200可以通过流水线的方式来执行多条指令以提高处理器200执行指令的速度,如控制单元201可以根据多条指令提取的顺序生成指令队列,并按照指令队列依次将多条指令按顺序发送至运算单元202依次计算得到访问地址,再依次根据得到的访问地址在内部存储单元203或外部存储单元204进行寻址访问返回结果。可以理解为,多条指令可以按照指令队列的顺序依次且连续的从内部存储单元203或外部存储单元204中读取数据返回结果。
在本发明的一些实施例中,一个数组可以包括多个数据,且一个数组所包括的多个数据为相同类型或相关联的数据。进一步地,当处理器200接收一个数组的数据访问请求时,若该数组存储在缓存2031中,则该数组中所包括的多个数据一定存储在缓存2031的同一个缓存行中,处理器200根据该数组所包括的多个数据所对应的多条指令在缓存2031中进行寻址访问时,可以通过流水线的方式使多条指令依次且连续的在缓存2031中进行寻址访问,且多条指令每次在缓存2031中进行寻址访问的过程都需要匹配缓存行后才能读取对应数据返回结果。
然而,由于缓存2031的存储结构复杂(将在下文中详细描述缓存2031的储存结构),匹配缓存行需要通过指令的访问地址中的行标记位先确定该缓存行后,再通过缓存行前的有效位确定所匹配的缓存行是否正确,即确定缓存行中是否真正存储有该访问地址请求访问的数据。则上述数组所包括的多个数据所对应的多条指令在缓存2031中读取数据时,每条指令都需通过指令的访问地址中的行标记位先确定该缓存行,再通过缓存行前的有效位确定所匹配的缓存行是否正确,而由于一个数组所包括的多个数据一定是存储在同一个缓存行中,相当于对同一个缓存行中的多个数据的连续访问依然每次在确定缓存行后还需通过有效位确定缓存行是否正确,数据访问效率较低。
需特别说明的是,本发明仅以一个数组所包括的多个数据作为多个相同类型或相关联的数据的示例进行说明,在其他实施列中,多个相同类型或相关联的数据还可以是其他数据,本发明在此不做限制。
由此,本发明提出一种数据访问方法,当多条指令请求访问数据存储在同一缓存行中时,处理器200可以在多条指令的第一条指令缓存命中时将缓存行中的数据写入寄存器2032中,且由于多条指令所请求访问的数据存储在同一缓存行中,进而使得后续指令可以直接访问已存储在寄存器2032中的缓存行的数据返回结果,由于处理器200从寄存器2032中的访问数据延迟低于从缓存2031中访问数据的延迟,从寄存器2032直接读取数据返回结果可以提高处理器200执行速度。
以下以处理器200接收到一个存储于缓存2031中的数组的数据访问请求作为示例,对本发明的一些实施列进行说明。
在本发明的一些实施例中,处理器接收到一个数组的数据访问请求后,控制单元201根据多个数据在数组中的顺序依次从指令寄存器中提取指令,并依次发送至运算单元202计算对应指令的访问地址,处理器200再根据依次得到的访问地址进行读取数据返回结果。其中,由于一个数组所包括的多个数据一定存储在同一个缓存行中,则在根据第一条指令的访问地址在缓存2031中进行寻址访问读取数据返回结果的同时将该缓存行的数据同步存储于寄存器2032中,以便后续指令可以直接从寄存器2032中读取数据而无需通过行标记位确定。
其中,第一条指令在缓存2031中进行寻址访问的过程具体如下:
在本发明的一些实施例中,缓存2031的数据存储结构可以分为组、行、块,可以理解为缓存2031的存储结构可以分为S个缓存2031组,一个组包括E个缓存行,一个缓存行包括B个存储块,而请求访问的数据存储在于存储块中,且每个组、行、块均有对应的标识,通过组、行、块的标识来表示数据存储在缓存2031中的存储位置。同时,通过指令的访问地址在缓存2031中进行寻址访问时,处理器200可以将访问地址分为行标记位(tag)、索引位(index)、偏移位(offset),通过索引位匹配缓存2031中的组的标识,通过行标记位匹配组中行的标识,通过偏移位匹配行中块的标识,进而处理器200可以通过访问地址在缓存2031中匹配到访问地址对应的数据在缓存2031中的存储位置。需特别说明的是,缓存2031可以是多级缓存2031,如一级缓存、二级缓存、三级缓存等,判断缓存2031是否命中时,先在一级缓存中判断是否命中,若一级缓存未命中,再依次到二级缓存、三级缓存判断是否命中,当一级至三级缓存均未命中时,最后到外部存储单元204中根据访问地址读取数据返回结果。以下以缓存2031仅设有一级缓存作为示例,对本发明的一些实施例进行说明。
如图2所示,示例性的,缓存2031的存储结构可以包括组A与组B两个组,一个组包括三个行,如组A包括行A1、A2、A3,一行包括四个块,如行A2包括块a、b、c、d。其中,可以理解为通过A、B对组进组标识,通过A1、A2、A3对行进行标识,通过a、b、c、d对块进块标识。第一条指令的访问地址为访问地址C,访问地址C在缓存2031中进行寻址访问时,处理器200会将访问地址C分为行标记位、索引位、偏移位,处理器200通过索引位确定访问地址C对应缓存2031中的哪个组,再通过行标记位确定访问地址对应组中的哪个行,并通过行前的有效位确定访问地址所请求访问的数据存储在该行中,最后通过偏移位确定访问地址对应行中的哪个块,确定块后即可从块中读取访问地址的数据返回。其中,可以理解,通过有效位确定访问地址所请求访问的数据存储在该行中,是为了预先判断该行中存储有访问地址所请求访问的数据,避免行标记位可以匹配行,但偏移位无法匹配到块的情况出现,所以通过行的有效位确定访问地址所请求访问的数据存储在该行的过程,即确定了通过访问地址的偏移位可以匹配到块,由此在确定有效位后可以将缓存2031寻址的结果称为缓存命中,即访问地址所请求访问的数据存储在缓存2031中,缓存命中为本领域公知常识,故在此不加以赘述。
具体地,处理器200通过访问地址C中的索引位可以确定访问地址C对应缓存2031中的组A,确定组后通过行标记位与组A中的行A1、A2、A3匹配来确定行。其中,访问地址中的行标记位与缓存2031中的行匹配可以通过行标识的前一位有效位进行判断,如有效位可以是1或0,若行标记位与行匹配正确,有效位为1,表征访问地址C的数据对应存储在缓存2031中,若行标记位与行匹配失败,有效位为0,表征访问地址C的数据未存储于缓存2031中,需访问外部存储单元204。如图2所示,当访问地址C通过行标记位与组A中的行A2匹配时,有效位为1,表征行标记位与行匹配正确,即确定访问地址C的数据存储于缓存2031中,最后通过访问地址C的偏移位即可确定访问地址C的数据存储在行A2中的哪个块中。如图2所示,通过访问地址C的偏移位确定访问地址C的数据存储在组A中的行A2中的块c中,由此,处理器200可以从缓存2031中的组A、行A2、块c中读取访问地址C的数据并返回结果。可以理解的是,处理器200在缓存2031中进行寻址访问至少需要通过组选择、行匹配、行确定、块抽取的过程才能确定访问地址的数据在缓存2031中的存储位置进而才能读取数据返回,寻址过程复杂。
在本发明的一些实施例中,在一个数组的数据访问请求的第一条指令在缓存2031寻址读取数据返回结果的同时,将第一条指令缓存2031寻址时缓存命中对应的行(以下将行称为缓存行)的数据存储在寄存器2032中,以便一个数组的数据访问请求的后续指令可以直接从寄存器2032中读取数据而无需访问缓存2031。
图3根据本发明的一些实施例,示出了另一种计算装置220的框架图。如图3所示,装置220中用于计算指令地址的运算单元202可以包括地址比较器2021,地址比较器2021用于判断运算单元202计算得到指令请求访问的数据的访问地址是否为目标访问地址。
在本发明的一些实施例中,可以通过在运算单元202中设置一个地址比较器,将存入寄存器2032中缓存行的行标识存入地址比较器中,当运算单元202在计算指令的访问地址时通过地址比较器判断该访问地址是否与存入地址比较器中的缓存行的行标识匹配,即通过访问地址中的行标记位与存入地址比较器中的缓存行的行标识匹配,若匹配,则表示该指令所请求访问的数据存储在寄存器2032中,可以直接从寄存器2032中读取数据返回结果。且由于一个数组所包括的多个数据一定存在同一个缓存行中,即一个数组所包括的多个数据所对应的指令的访问地址中的行标记位一定相同,则在第一条指令缓存命中后将对应缓存行的数据存入寄存器2032且将缓存行的行标识存入地址比较器中后,接着在第一条指令的后续指令在计算得到访问地址时,通过地址比较器可以判断访问地址中的行标记位一定与存入地址比较器中的行标识匹配,即判断后续指令所请求访问的数据存储在寄存器2032中,无需访问缓存2031,直接从寄存器2032中读取数据返回结果即可。
在本发明的一些实施例中,当一个缓存行的数据通过多个寄存器2032存储时,例如,一条缓存行的数据大小为256字节,可以通过四个64字节的寄存器2032存储该缓存行的数据,则在将缓存行的行标识存储在比较地址器中时,将各个寄存器2032所存储的缓存行的部分数据与各个寄存器2032的寄存器2032标识的对应关系存储在比较地址器中,以便后续指令通过对应关系快速匹配到哪个寄存器2032中存储有指令所请求访问的数据。
例如,如图2所示,缓存行A2的数据大小为256字节,则对应缓存行A2中的a、b、c、d块大小为64字节,若通过四个64字节的寄存器2032存储缓存行A2的数据,则每个寄存器2032中可以存储一个块的数据,由此可以将块标识与存储有该块数据的寄存器2032的寄存器2032标识形成对应关系并存储在地址比较器中。结合图2和图4所示,在第一条指令缓存命中后,将命中的缓存行的行标识A2存储在地址比较器中,并将缓存行的数据分为四个块分别存储在寄存器401至404中,同时将块的块标识a至d与存储有该块数据的寄存器2032的寄存器2032标识(如401、402、403、404)形成对应关系并存储在地址比较器中。在确定访问地址中的行标记位与存储在地址比较器中的行标识匹配后,可以通过访问地址中的偏移位匹配块标识,再通过该对应关系可以匹配到存储有块标识的数据的寄存器2032。由此,无需通过行标识前的有效位确定该缓存行中是否存储有对应请求访问的数据,通过地址比较器匹配行标记位和行标识后即可确定请求访问的数据存储在寄存器2032中,提高请求访问的速度。
在本发明的一些实施例中,一个数组的数据访问请求完成后,在处理器200接收到其他数组的数据访问请求时,可以在其他数组的第一条指令缓存命中后将所命中的缓存行数据更新至寄存器2032中,并同步更新地址比较器中的行标识和对应关系,以便其他数组的第一条指令的后续指令可以从寄存器2032中读取数据返回结果,提高数据访问效率。
下面结合上述图3所示的计算装置220的结构,对以下内容进行描述。
图5根据本发明的一些实施例,示出了一种数据访问方法的流程图。如图5所示,方法流程包括如下步骤:
S501:处理器200接收到多个数据的数据访问请求时,对应提取多条指令并计算多条指令的访问地址;其中,多个数据存储在同一个缓存行中。
在本发明的一些实施例中,处理器200接受到多个数据的数据访问请求时,由控制单元201根据所请求访问的数据从指令寄存器中提取指令发送至运算单元202,再通过运算单元202计算得到指令请求访问的数据的访问地址,处理器200通过访问地址可以访问缓存2031以读取数据返回。其中,多个相同类型的数据或相关联的数据会被存储在同一个缓存行中,例如,一个数组中所包括的多个数据的数据类型一定相同,则该数组存入缓存2031中时会被存储在同一个缓存行中。
S502:地址比较器2021判断访问地址所请求访问的数据是否存在寄存器2032中。
若地址比较器2021判断访问地址所请求访问的数据存在寄存器2032中,转至步骤S502B;若否,则转至步骤S502A。
在本发明的一些实施例中,由于多个数据存储在同一个缓存行中,即表示多个数据的访问地址中的行标记位相同,而若多条指令的访问地址每次都需要通过访问缓存2031读取数据返回,则每次都需要通过组选择、行匹配、行确定、块抽取的过程才能确定访问地址的数据在缓存2031中的存储位置进而才能读取数据返回(如图2所示),数据访问效率较慢。由此,可以在多条指令的第一条指令缓存命中时,将所命中的缓存行的数据存储至寄存器2032中,且由于请问访问的多个数据存储在同一个缓存行中,即可以理解第一条指令的后续指令可以直接从寄存器2032中读取数据而无需访问缓存2031,同时由于处理器200从寄存器2032中的访问数据延迟低于从缓存2031中访问数据的延迟,从寄存器2032直接读取数据返回结构可以提高处理器200数据访问的速度。
S502A:处理器200从缓存2031读取数据返回。
在本发明的一些实施例中,可以将步骤S502A理解为多条指令的第一条指令的数据访问步骤,具体数据访问过程可参见上文图2的描述,通过访问地址中的行标记位、索引位、偏移位在缓存2031中经过组选择、行匹配、行确定、块抽取后读取数据返回结果,在此不加以赘述。
S502B:处理器200从寄存器2032读取数据返回。
在本发明的一些实施例中,可以将步骤S502B理解为第一条指令的后续指令。其中,判断访问地址所请求访问的数据是否存在寄存器2032中可以通过在第一条指令在缓存命中时将所命中的缓存行的行标识存入地址比较器中,当运算单元在访问地址时通过地址比较器判断该访问地址是否与存入地址比较器中的缓存行的行标识匹配,即通过访问地址中的行标记位与存入地址比较器中的缓存行的行标识匹配,若匹配,则标识该指令所请求访问的数据存储在寄存器2032中,可以直接从寄存器2032中读取数据返回结果。
通过本发明实施例提供的方法,当处理器200接收到多条指令请求访问数据存储在同一缓存行中时,处理器200可以在第一条指令缓存命中时将缓存行中的数据写入寄存器2032中并将缓存行的行标识存入地址比较器中,通过地址比较器判断后续指令的访问地址中的行标记位与地址比较器中的行标识是否匹配,来判断后续指令所请求访问的数据是否存在寄存器2032中,且由于处理器200接收到多条指令请求访问数据存储在同一缓存行,即后续指令可以直接访问寄存器2032读取数据返回结果,提高处理器200的数据访问速度。
进一步,图6根据本申请的一些实施例,示出了一种电子设备100的结构示意图。如图6所示,电子设备100包括一个或多个处理器200、***内存102、非易失性存储器(Non-Volatile Memory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器、***内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的***控制逻辑106。其中:
处理器200可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central Processing Unit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(Digital Signal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(Artificial Intelligence,人工智能)处理器或可编程逻辑器件FPGA(FieldProgrammable Gate Array)、神经网络处理器(Neural-network Processing Unit,NPU)等的处理模块或处理电路可以包括一个或多个单核或多核处理器。在一些实施例中,CPU可以包括控制单元201、运算单元202、内部存储单元203,控制单元201接收数据访问指令并发送至运算单元202计算访问地址,通过访问地址在内部存储单元203进行数据寻址访问。
***内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous DynamicRandom Access Memory,DDR SDRAM)等。***内存102用于临时存储数据和/或指令,例如,在一些实施例中,***内存102可以用于存储处理器200向外部存储单元204寻址的指令。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。
特别地,***内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器200中的至少一个执行时使电子设备100实现本申请各实施例提供的数据访问方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器200中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信。
输入/输出(I/O)设备105可以输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与电子设备100进行交互,例如输入待运行的神经网络模型等。
***控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,***控制逻辑106可以包括一个或多个存储器控制器,以提供连接到***内存102和非易失性存储器103的接口。
在一些实施例中,处理器200中的至少一个可以与用于***控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成***封装(System in Package,SiP)。在另一些实施例中,处理器200中的至少一个还可以与用于***控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成片上***(System-on-Chip,SoC)。
可以理解,图6所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
可以理解,电子设备100可以是任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等,本申请实施例不做限定。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何***。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的范围。
Claims (10)
1.一种数据访问方法,应用于电子设备,其特征在于,包括:
所述电子设备接收到第一访问请求,其中,所述第一访问请求请求访问第一访问地址的第一数据;
判断所述第一数据是否存储在寄存器中;
对应于所述第一数据存储在所述寄存器中,从所述寄存器中读取所述第一数据,其中,所述第一数据对应在缓存器中的第一缓存行的整行数据存储在所述寄存器中;
对应于所述第一数据未存储在所述寄存器中,从所述缓存器的第二缓存行中读取所述第一数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
对应于所述第一数据未存储在所述寄存器中,将所述缓存器中的所述第二缓存行的整行数据写入所述寄存器中。
3.根据权利要求2所述的方法,其特征在于,还包括:
所述第二缓存行的整行数据包括多个第一子数据;
所述电子设备接收到预设次数的访问请求,其中,所述预设次数的访问请求请求访问数据集,其中,所述数据集包括多个第二子数据;
其中,任一所述第二子数据对应为所述第二缓存行的整行数据中的其中一个所述第一子数据。
4.根据权利要求2所述的方法,其特征在于,所述从所述缓存器中将所述第二缓存行的整行数据写入所述寄存器中,包括:
从所述寄存器中删除所述第一缓存行的整行数据后,将所述第二缓存行的整行数据写入所述寄存器中。
5.根据权利要求1所述的方法,其特征在于,所述判断所述第一数据是否存储在寄存器中,包括:
判断所述第一访问地址的行标记位是否与所述第一缓存行的行标识相同;
若相同,则对应于所述第一数据存储在所述寄存器中;
若不同,则对应于所述第一数据未存储在所述寄存器中。
6.根据权利要求1所述的方法,其特征在于,所述从所述缓存器的第二缓存行中读取所述第一数据,包括;
根据所述第一访问地址的行标记位与所述第二缓存行的行标识和有效位匹配,确定所述第一数据存储在所述第二缓存行后,从所述缓存器的第二缓存行中读取所述第一数据。
7.一种计算装置,应用于电子设备,其特征在于,所述装置包括:
控制单元,用于提取所述电子设备接收到访问请求的指令;
运算单元,用于计算所述指令的访问地址并判断所述访问地址的数据是否存储在寄存器中;
内部存储单元和/或外部存储单元,用于存储所述访问地址的数据。
8.根据权利要求7所述的装置,其特征在于,还包括:
将所述访问地址与对应存储有所述访问地址的数据的寄存器的对应关系存储至所述运算单元中。
9.一种电子设备,其特征在于,包括:
存储器,用于存储由电子设备的一个或多个处理器执行的指令;
以及处理器,是所述电子设备的处理器之一,用于执行所述存储器中存储的指令以实现权利要求1至6中任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有指令,所述指令在电子设备上执行时使所述电子设备实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210893893.1A CN115269454A (zh) | 2022-07-27 | 2022-07-27 | 数据访问方法、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210893893.1A CN115269454A (zh) | 2022-07-27 | 2022-07-27 | 数据访问方法、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115269454A true CN115269454A (zh) | 2022-11-01 |
Family
ID=83769978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210893893.1A Pending CN115269454A (zh) | 2022-07-27 | 2022-07-27 | 数据访问方法、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115269454A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117132446A (zh) * | 2023-05-26 | 2023-11-28 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
CN117217977A (zh) * | 2023-05-26 | 2023-12-12 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
-
2022
- 2022-07-27 CN CN202210893893.1A patent/CN115269454A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117132446A (zh) * | 2023-05-26 | 2023-11-28 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
CN117217977A (zh) * | 2023-05-26 | 2023-12-12 | 摩尔线程智能科技(北京)有限责任公司 | Gpu的数据访问处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237728B2 (en) | Method for accessing extended memory, device, and system | |
US9858192B2 (en) | Cross-page prefetching method, apparatus, and system | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US9690953B2 (en) | Generating efficient reads for a system having non-volatile memory | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
US9928166B2 (en) | Detecting hot spots through flash memory management table snapshots | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
US10642727B1 (en) | Managing migration events performed by a memory controller | |
US20240143219A1 (en) | Software-hardware combination method for internal mapping address query of zoned namespace | |
CN107818053A (zh) | 用于存取高速缓存的方法与装置 | |
US10459662B1 (en) | Write failure handling for a memory controller to non-volatile memory | |
WO2018057273A1 (en) | Reusing trained prefetchers | |
US11048644B1 (en) | Memory mapping in an access device for non-volatile memory | |
CN106445472B (zh) | 一种字符操作加速方法、装置、芯片、处理器 | |
US9727474B2 (en) | Texture cache memory system of non-blocking for texture mapping pipeline and operation method of texture cache memory | |
US11645209B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
US20180011663A1 (en) | Solid state drive | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
US11836092B2 (en) | Non-volatile storage controller with partial logical-to-physical (L2P) address translation table | |
JP7170093B2 (ja) | 記憶デバイスのための改良された先読み能力 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115033500A (zh) | 缓存***模拟方法、装置、设备和存储介质 | |
CN116340203A (zh) | 数据预读取方法、装置、处理器及预取器 | |
US20210064368A1 (en) | Command tracking |
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 |