CN105900060B - 内存访问方法、装置和计算机设备 - Google Patents
内存访问方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN105900060B CN105900060B CN201480038252.1A CN201480038252A CN105900060B CN 105900060 B CN105900060 B CN 105900060B CN 201480038252 A CN201480038252 A CN 201480038252A CN 105900060 B CN105900060 B CN 105900060B
- Authority
- CN
- China
- Prior art keywords
- word
- continues
- address
- memory device
- controller hub
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供一种内存访问方法、装置和计算机设备,该方法包括:缓存设备接收处理器发送的N个读命令,N为大于或等于2的整数,个读命令包括待读字的地址,待读字的地址包括待读字所属内存行的地址以及待读字在内存行中的地址,读命令用于读取待读字;当缓存设备中未缓存N个待读字时,向内存控制器转发所述N个读命令;接收内存控制器发送的N个待读字,以及向处理器发送N个待读字;接收内存控制器发送的N个待读字所属内存行中除N个待读字之外的其它字。由于缓存设备在获取这N个待读字的过程中不需要获取这N个待读字所在内存行中的其它字,从而不会增加读取该N个待读字的时延,降低了待读字的读取时延。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种内存访问方法、装置和计算机设备。
背景技术
处理器所需要使用的数据一般存储在内存中,处理器需要从内存中获取数据并存储在缓存中以进行使用,其中,处理器获取使用的数据是以字(英文:word)为单位进行获取,现有技术中,当处理器需要获取某一数据时,发送针对该数据的读指令给缓存,该读指令用于获取处理器所需要的字,即关键字;如果查找到这一数据,则将该数据返回给处理器;如果在缓存中未找到该数据,则会由缓存将读指令转发给内存,内存根据该读指令将这一关键字所属的内存行都返回给缓存,以在缓存中形成缓存行(英文:cacheline)。其中,一个内存行可以包括8个字,例如包括第0、1、2、3、4、5、6、7这8个字,当读指令用于读取第6个字时,内存将整个内存行按照第6、7、1、2、3、4、5个字的顺序返回给缓存,即在内存行内部会优先返回读指令所需的关键字,缓存行中除了关键字以外的字称为预取字;然后缓存再将关键字返回给处理器。
但是,若处理器通过缓存向内存同时发送多个读指令时,内存需要将一个读指令对应的一个内存行中的所有字全部返回给缓存之后,内存才能根据另一读指令向缓存返回另一内存行中的字,此时缓存才能向处理器返回该另一读指令所指示的关键字,从而增加了其它关键字的读取延迟。
发明内容
本发明实施例提供一种内存访问方法、装置和计算机设备,用于降低处理器所需字的读取延迟。
第一方面,本发明实施例提供一种内存访问方法,包括:
缓存设备接收处理器发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
当所述缓存设备中未缓存所述N个待读字时,所述缓存设备向内存控制器转发所述N个读命令;
所述缓存设备接收所述内存控制器发送的所述N个待读字,以及向所述处理器发送所述N个待读字;
所述缓存设备接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。
在第一方面的第一种可能的实现方式中,所述缓存设备接收所述内存控制器发送的第一字,包括:
所述缓存设备接收所述内存控制器发送的所述第一字和所述第一字的优先级;
所述方法,还包括:
所述缓存设备根据所述第一字的优先级从高到低的顺序,缓存所述第一字;
其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
第二方面,本发明实施例提供一种内存访问方法,包括:
内存控制器接收缓存设备发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
所述内存控制器根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字,并向所述缓存设备发送所述N个待读字;
所述内存控制器从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字,并向所述缓存设备发送所述其它字。
在第二方面的第一种可能的实现方式中,所述内存控制器向所述缓存设备发送所述其它字,包括:
所述内存控制器根据所述N个待读字所属内存行中属于同一内存颗粒的除所述N个待读字之外的各个字的优先级从高至低的顺序,向所述缓存设备发送所述其它字。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述内存控制器向所述缓存设备发送第一字,包括:
所述内存控制器向所述缓存设备发送所述第一字和所述第一字的优先级;其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述内存控制器向所述缓存设备发送所述第一字之前,还包括:
所述内存控制器根据所述N个待读字所属内存行中各个字的读写频率,确定所述各个字的优先级。
结合第二方面或第二方面的第一种至第三种可能的实现方式中的任意一种,在第二方面的第四种可能的实现方式中,所述N个待读字所属内存行中的每个字存储在一个内存颗粒中。
第三方面,本发明实施例提供一种缓存设备,包括:
接收单元,用于接收处理器发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
处理单元,用于确定所述缓存设备中是否缓存所述N个待读字;
发送单元,用于当所述处理单元确定所述缓存设备中未缓存所述N个待读字时,向内存控制器转发所述N个读命令;
所述接收单元,还用于接收所述内存控制器发送的所述N个待读字,以及
所述发送单元,还用于向所述处理器发送所述N个待读字;
所述接收单元,还用于接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。
在第三方面的第一种可能的实现方式中,所述接收单元用于接收所述内存控制器发送的第一字,包括:所述接收单元用于,接收所述内存控制器发送的所述第一字和所述第一字的优先级;
所述处理单元,还用于根据所述第一字的优先级从高到低的顺序,缓存所述第一字;
其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
第四方面,本发明实施例提供一种内存控制器,包括:
接收单元,用于接收缓存设备发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
处理单元,用于根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字;
发送单元,用于向所述缓存设备发送所述N个待读字;
所述处理单元,还用于从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字;
所述发送单元,还用于向所述缓存设备发送所述其它字。
在第四方面的第一种可能的实现方式中,所述发送单元用于向所述缓存设备发送所述其它字,包括:所述发送单元用于根据所述N个待读字所属内存行中属于同一内存颗粒的除所述N个待读字之外的各个字的优先级从高至低的顺序,向所述缓存设备发送所述其它字。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述发送单元用于向所述缓存设备发送第一字,包括:所述发送单元用于,向所述缓存设备发送所述第一字和所述第一字的优先级;其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
结合第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,所述处理单元,还用于在所述发送单元向所述缓存设备发送所述第一字之前,根据所述N个待读字所属内存行中各个字的读写频率,确定所述各个字的优先级。
结合第四方面或第四方面的第一种至第三种可能的实现方式中的任意一种,在第四方面的第四种可能的实现方式中,所述N个待读字所属内存行中的每个字存储在一个内存颗粒中。
第五方面,本发明实施例提供一种计算机设备,包括:本发明实施例第三方面或第三方面的第一种可能的实现方式提供的缓存设备、本发明实施例第四方面或第四方面的各种可能的实现方式提供的内存控制器、处理器以及内存设备。
本发明实施例提供的内存访问方法、装置和计算机设备,通过缓存设备接收处理器发送的至少两个读命令,当所述缓存设备中未缓存所述N个待读字时,向内存控制器转发这至少两个读命令,再接收所述内存控制器发送的所述N个待读字,以及向所述处理器发送所述N个待读字,然后接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。由于缓存设备在获取这N个待读字的过程中不需要获取这N个待读字所属内存行中的其它字,从而不会增加读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明内存访问方法实施例一的流程图;
图2为本发明内存访问方法实施例二的流程图;
图3为本发明内存访问方法实施例三的流程图;
图4为本发明实施例提供的访问待读字的一种示意图;
图5为本发明实施例提供的内存行的一种示意图;
图6为本发明内存访问方法实施例四的流程图;
图7为本发明实施例提供的访问待写字的一种示意图;
图8为本发明内存访问方法实施例五的流程图;
图9为本发明实施例提供的访问待读字的一种示意图;
图10为本发明缓存设备实施例一的结构示意图;
图11这本发明内存控制器实施例一的结构示意图;
图12为本发明计算机设备实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明内存访问方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
S101、缓存设备接收处理器发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字。
本实施例中,缓存设备可以接收处理器的一个处理器核发送的N个读命令,或者,缓存设备可以接收处理器的多个处理器核发送的N个读命令,N个读命令中的每个读命令包括待读字的地址,其中,每个读命令包括的待读字的地址可以均不相同,待读字的地址包括该待读字所属内存行的地址以及该待读字在该所属内存行中的地址,每个读命令用于读用该读命令包括的地址所对应的待读字。
S102、当所述缓存设备中未缓存所述N个待读字时,所述缓存设备向内存控制器转发所述N个读命令。
本实施例中,缓存设备可以根据N个待读取字的地址,判断是否已缓存该N个待读取字,若该缓存设备中已缓存该N个待读字,则缓存设备将该N个待读字发送给处理器,即将这N个字存储在处理器中的相应的寄存器中,若该缓存设备中未缓存所述N个待读字,即为cache miss,则缓存设备需要从内存中获取这N个待读字,缓存设备向内存控制器发送包括该N个读命令。
S103、所述缓存设备接收所述内存控制器发送的所述N个待读字,以及向所述处理器发送所述N个待读字。
本实施例中,内存在接收到上述N个读命令后,根据N个待读字的地址,从内存中存储的该N个待读字所属内存行中获取这N个待读字,并将这N个待读字发送给缓存设备,因此,缓存设备可以接收内存控制器发送的N个待读字,并将这个N个待读字发送给处理器。。
S104、所述缓存设备接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。
本实施例中,缓存设备接收到N个待读字后,接收内存控制器发送的该N个待读字所属内存行中除这N个待读字之外的其它字。由于缓存设备在接收N个待读字时未接收内存控制器发送的该N个待读字所属内存行中除该N个待读字之外的其它字,因此缓存设备在获取这N个待读字时不会受到其它字的读取干扰,从而不会增加读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。
本发明实施例提供的内存访问方法,通过缓存设备接收处理器发送的至少两个读命令,当所述缓存设备中未缓存所述N个待读字时,向内存控制器转发这至少两个读命令,再接收所述内存控制器发送的所述N个待读字,以及向所述处理器发送所述N个待读字,然后接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。由于缓存设备在获取这N个待读字的过程中不需要获取这N个待读字所属内存行中的其它字,从而不会增加读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。
图2为本发明内存访问方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
S201、内存控制器接收缓存设备发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字。
S202、所述内存控制器根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字,并向所述缓存设备发送所述N个待读字。
本实施例中,内存控制器根据该N个待读字的地址,确定该N个待读字所属的内存行,再从内存中存储的该N个待读字所属的内存行中获取该N个待读字,并将获取的该N个待读字发送给缓存设备。
S203、所述内存控制器从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字,并向所述缓存设备发送所述其它字。
本实施例中,内存控制器再从内存中存储的该N个待读字所属内存行中获取除该N个待读字之外的其它字,并将获取的这些其它字发送给缓存设备。
本实施例中,在内存控制器获取到该N个待读字后,暂时不对该N个待读字所属内存行中除该N个待读字之外的字进行任何处理,而是优先将这N个待读字发送给缓存设备,因此缓存设备在获取这N个待读字时不会受到其它字的读取干扰,从而不会增加缓存设备读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。
本发明实施例提供的内存访问方法,通过内存控制器接收缓存设备发送的N个读命令,并根据N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字,并向所述缓存设备优先发送所述N个待读字,然后从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字,并向所述缓存设备发送所述其它字。由于内存控制器在获取这N个待读字的过程中不需要获取这N个待读字所在内存行中的其它字,而且缓存设备在获取这N个待读字时不会受到其它字的读取干扰,从而不会增加读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。
图3为本发明内存访问方法实施例三的流程图,如图3所示,本实施例的方法可以包括:
S301、处理器向缓存设备发送N个读命令。
其中,每个读命令包括待读字的地址,每个读命令还可以包括寄存器的标识,具体地,该读命令用于指示将该待读字存储在该处理器的该寄存器中。
本实施例以N为2进行举例说明,缓存设备会接收处理器发送的2个读命令,如图4所示,这两个读命令例如分别为LoadR0,Addr1+8、LoadR1,addr1+16。这两个读命令分别用于读取同一内存行中的不同的字,LoadR0,Addr1+8用于指示将地址为Addr1的内存行中的地址为8的字存储在寄存器R0中,LoadR1,addr1+16用于指示将地址为Addr1的内存行中的地址为16的字存储在寄存器R1中。
S302、所述缓存设备确定未缓存所述N个待读字。
S303、所述缓存设备向内存控制器转发该N个读命令。
本实施例中,缓存设备接收到上述读命令,判断是否已缓存上述待读字,缓存设备可以根据待读取字的地址,判断是否已缓存该些待读取字,若该缓存设备中已缓存该些待读字,则缓存设备将该些待读字存储在相应的寄存器中,若该缓存设备中未缓存上述两个待读字,即为cache miss,则缓存设备向内存控制器转发该两个读命令;本实施例是以缓存设备未缓存所有待读字为例。若缓存设备中已缓存其中一个待读字,则缓存设备将待读字存储在相应的寄存器中,并且缓存设备向内存控制器发送另一个读命令。
S304、所述内存控制器根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字。
本实施例中,内存控制器根据这两个待读字的地址:Addr1+8和Addr1+16,从地址为Addr1的内存行中优先获取地址为8的待读字和地址为16的待读字。其中,本实施例中的每个待读字存储在该待读字所属内存行的其中一个内存颗粒中。如图5所示,内存控制器中的每个内存行存储有8个字,这8个字分别存储在不同的内存颗粒中,例如:内存行中的字0(表示内存行中的第0个字)存储在内存颗粒0中,内存行中的字1(表示内存行中的第1个字)存储在内存颗粒1中,以此类推,此处不再赘述。具体地,如图4所示,内存控制器可以根据地址Addr1确定待读字所属的内存行,然后根据地址8和地址16,从地址8对应的内存颗粒1获取字1,该字1为待读字,并从地址16对应的内存颗粒2中获取字2,该字2为待读字。
S305、所述内存控制器向所述缓存设备发送所述N个待读字以及N个待读字的优先级。
本实施例中,内存控制器在获取到字1和字2这两个待读字后,内存控制器将字1以及字1的优先级,以及字2的优先级。相应地,缓存设备也接收内存控制器发送的字1以及字1的优先级,以及,字2以及字2的优先级。
其中,所述内存控制器根据内存行中所有字的读写频率,确定所有字的优先级,即若字0的读写频率高于字1的读写频率,则字0的优先级高于字1的优先级,如图4所示,内存行中的优先级从高到低的顺序为:字0到字7。
S306、所述缓存设备向所述处理器发送所述N个待读字。
具体地,缓存设备可以根据所述寄存器的标识,将每个所述待读字存储在对应的所述处理器的所述寄存器中。缓存设备根据字1携带的字1的地址(Addr1+8),可以确定对应的读命令为:LoadR0,Addr1+8,然后缓存设备根据R0,将接收到的字1存储在寄存器R0中。缓存设备根据字2携带的字2的地址(Addr1+16),可以确定对应的读命令为:LoadR1,Addr1+16,然后缓存设备根据R1,将接收到的字2存储在寄存器R1中。
S307、所述缓存设备根据所述N个待读字的优先级从高到低的顺序,缓存所述N个待读字。
本实施例中,缓存设备还可以将这两个待读字:字1和字2进行缓存,具体地,缓存设备中的缓存行与内存控制器中的内存行存在对应关系,缓存设备根据字1的地址中的Addr1,确定与地址为Addr1的内存行对应的缓存行,然后根据字1的地址中的地址8,将字1存储在该缓存行地址为8的位置。缓存设备根据字2的地址中的Addr1,确定与地址为Addr1的内存行对应的缓存行,然后根据字2的地址中的地址16,将字2存储在该缓存行地址为16的位置。
本实施例中,缓存设备还可以根据字1的优先级高于字2的优先级(如图4所示),先缓存字1再缓存字2。
需要说明的是,S306与S307的执行顺序不分先后。
S308、所述内存控制器从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字。
S309、所述内存控制器向所述缓存设备发送所述其它字和所述其它字的优先级。
本实施例中,内存控制器在向缓存设备发送字1以及字2之后,内存控制器再获取字1和字2所属内存行中除该字1和字2之外的字,如内存控制器再获取字0、字3、字4、字5、字6、字7,这些字可以称为预取字,然后向缓存设备发送字0和字0的优先级、字3和字3的优先级、字4和字4的优先级、字5和字5的优先级、字6和字6的优先级、字7和字7的优先级。相应地,缓存设备可以接收内存控制器发送的字0和字0的优先级、字3和字3的优先级、字4和字4的优先级、字5和字5的优先级、字6和字6的优先级、字7和字7的优先级。
S310、所述缓存设备根据所述其它字的优先级从高到低的顺序,缓存所述其它字。
本实施例中,缓存设备还可以将除这两个待读字之外的字:字0、字3、字4、字5、字6、字7进行缓存,具体地,缓存设备可以根据字0的地址,确定字0的地址中的Addr1,确定与地址为Addr1的内存行对应的缓存行,然后根据字0的地址中的地址0,将字0存储在该缓存行地址为0的位置。字3、字4、字5、字6、字7的缓存过程类似,此处不再赘述。
本实施例中,缓存设备还可以根据优先级从高到低的顺序:字0>字3>字4>字5>字6>字7,缓存各个字,缓存顺序为:字0、字3、字4、字5、字6、字7。
本实施例中,由于内存控制器在获取以及发送这N个待读字的过程中不需要获取和发送这N个待读字所在内存行中的其它字,而且缓存设备在获取这N个待读字的过程中不需要获取这N个待读字所在内存行中的其它字,从而不会增加读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。
图6为本发明内存访问方法实施例四的流程图,如图6所示,本实施例的方法在本发明方法实施例一至三或五任一实施例的基础上,进一步地,本实施例的方法还可以包括:
S401、处理器向缓存设备发送M个写命令。
其中,M为大于或等于1的整数,每个所述写命令包括待写字和所述待写字的地址,所述待写字的地址包括所述待写字所属内存行的地址以及所述待写字写入所属内存行中的地址,所述写命令用于写入所述待写字。
本实施例以M为1进行举例说明,缓存设备会接收处理器发送的1个写命令,如图7所示,这个写命令例如为StoreR0,Addr1+16,Addr1+16表示待写字的地址,即地址为Addr1的内存行中为8的地址,R0表示存储待写字的寄存器,StoreR0,Addr1+16用于指示将寄存器R0中的字存储到地址为Addr1+16的位置。
S402、所述缓存设备根据每个所述待写字的地址,将所述每个待写字写入所述每个待写字所属内存行对应缓存行中的相应位置。
本实施例中,缓存设备中的缓存行与内存控制器中的内存行存在对应关系,缓存设备根据待写字的地址中的Addr1,确定与地址为Addr1的内存行对应的缓存行,然后根据待写字的地址中的地址16,将待写字存储在该缓存行地址为16的位置。
S403、所述缓存设备向所述内存控制器转发M个写命令。
本实施例中,缓存设备可以根据这个写命令,判断是否已缓存地址为Addr1的内存行,若已缓存,则执行S406,若未缓存,则缓存设备内存控制器转发写命令。本实施例是以缓存设备中未缓存待写字所属内存行为例进行说明。
S404、所述内存控制器根据所述写命令,向所述缓存设备发送所述M个待写字所属内存行中除所述M个待写字的地址所对应的字之外的其它字。
本实施例中,内存控制器接收缓存设备发送的包括待写字的地址的写命令,内存控制器可以根据该写命令,停止获取该待写字的地址所对应的字,而获取该待写字所属内存行中除待写字的地址所对应的字之外的字,本实施例中是获取地址为Addr1的内存行中除字2(地址为16所对应的字)之外的其它字,这些字为字0、字1、字3、字4、字5、字6、字7,这些字也可以称为预取字,然后向缓存设备发送字0和字0的地址(Addr1+0)、字1和字1的地址(Addr1+8)、字3和字3的地址(Addr1+24)、字4和字4的地址(Addr1+32)、字5和字5的地址(Addr1+40)、字6和字6的地址(Addr1+48)、字7和字7的地址(Addr1+56)。相应地,缓存设备可以接收内存控制器发送的上述字。
可选地,内存控制器可以将字0和字0的优先级,字1和字1的优先级,字3和字3的优先级,字4和字4的优先级、字5和字5的优先级、字6和字6的优先级、字7和字7的优先级发送给缓存设备。
S405、所述缓存设备缓存所述M个待写字所属内存行中除所述M个待写字的地址所对应的字之外的其它字。
本实施例中,缓存设备可以将接收到的内存控制器发送的字0、字1、字3、字4、字5、字6、字7进行缓存。具体地,缓存设备可以根据字0的地址,确定字0的地址中的Addr1,确定与地址为Addr1的内存行对应的缓存行,然后根据字0的地址中的地址0,将字0存储在该缓存行地址为0的位置。字1、字3、字4、字5、字6、字7的缓存过程类似,此处不再赘述。
可选地,缓存设备还可以根据优先级从高到低的顺序:字0>字1>字3>字4>字5>字6>字7,缓存各个字,缓存顺序为:字0、字1、字3、字4、字5、字6、字7。
S406、所述缓存设备向所述内存控制器发送所述M个待写字所属内存行对应的缓存行。
本实施例中,缓存设备在缓存好上述内存行中的所有字之后,缓存设备向内存控制器发送待写字所属内存行对应的缓存行,即缓存设备将字0、字1、待写字、字3、字4、字5、字6、字7发送给内存控制器。
S407、所述内存控制器将所述M个待写字所属内存行分别改写为所述M个待写字所属内存行对应的缓存行。
本实施例中,内存控制器接收缓存设备发送的待写字所属内存行对应的缓存行,内存控制器将地址为Addr1的内存行改写为接收的缓存设备发送的缓存行,即将地址为Addr1的内存行中的所有字改写为字0、字1、待写字、字3、字4、字5、字6、字7,从而实现字的改写过程。
本实施例中,由于内存控制器接收到写命令后,不需要将整个内存行中的所有字发送给缓存设备,从而可以节省开销。
图8为本发明内存访问方法实施例五的流程图,如图8所示,本实施例的方法可以包括:
S501、处理器向缓存设备发送N个读命令。
其中,N为大于或等于2的整数,每个读命令包括待读字的地址和寄存器的标识,该读命令用于指示将该待读字存储在该寄存器中。
本实施例以N为3进行举例说明,缓存设备会接收处理器发送的3个读命令,如图9所示,这3个读命令例如分别为LoadR0,Addr0+16、LoadR1,addr1+32、LoadR1,addr2+48,这3个读命令分别用于读取不同内存行中的字,LoadR0,Addr0+16用于指示将地址为Addr0的内存行中的地址为16的字存储在寄存器R0中,LoadR1,addr1+32用于指示将地址为Addr1的内存行中的地址为32的字存储在寄存器R1中,LoadR2,addr2+48用于指示将地址为Addr2的内存行中的地址为48的字存储在寄存器R2中。
S502、所述缓存设备确定未缓存所述N个待读字。
S503、所述缓存设备向内存控制器转发所述N个读命令。
本实施例中,缓存设备接收到上述读命令,判断是否已缓存上述待读字,缓存设备可以根据待读取字的地址,判断是否已缓存该待读取字,若该缓存设备中已缓存该待读字,则缓存设备将该待读字存储在相应的寄存器中,若该缓存设备中未缓存上述3个待读字,即为cache miss,则缓存设备向内存控制器转发该3个读命令;本实施例是以缓存设备未缓存所有待读字为例。
S504、所述内存控制器根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字。
本实施例中,内存控制器根据这3个待读字的地址:Addr0+16、Addr1+32、Addr2+48,从地址为Addr0的内存行中优先获取地址为16的待读字、从地址为Addr1的内存行中优先获取地址为32的待读字、从地址为Addr2的内存行中优先获取地址为48的待读字。而且,内存控制器根据这个待写字的地址:Addr3+56,停止从地址为Addr3的内存行中获取地址为56的字,其中,本实施例中的每个字存储在该字所属内存行的其中一个内存颗粒中。如图9所示,内存控制器中的每个内存行存储有8个字,这8个字分别存储在不同的内存颗粒中,例如:内存行0中的字00(表示内存行0中的第0个字)存储在内存颗粒0中,内存行1中的字11(表示内存行1中的第1个字)存储在内存颗粒1中,以此类推,此处不再赘述。其中,字00、字10、字20存储在内存颗粒0中,字01、字11、字21存储在内存颗粒1中,以此类推,此处不再赘述。具体地,如图9所示,内存控制器可以根据地址Addr0确定待读字所属的内存行0,然后根据地址16,从地址16对应的内存颗粒2中获取字02,该字02为待读字;内存控制器可以根据地址Addr1确定待读字所属的内存行1,然后根据地址32,从地址32对应的内存颗粒4中获取字14,该字14为待读字;内存控制器可以根据地址Addr2确定待读字所属的内存行2,然后根据地址48,从地址48对应的内存颗粒6中获取字26,该字26为待读字。
S505、所述内存控制器向所述缓存设备发送所述N个待读字和所述N个待读字的优先级。
本实施例中,内存控制器在获取到字02、字14和字26这3个待读字后,内存控制器将字01、字01的优先级、字14和字14的优先级、字26和字26的优先级发送给缓存设备,使得缓存设备根据字01的地址、字14的地址、字26的地址可以区分接收到的这3个字分别为哪一个读命令所需要获取的字。需要说明的是,与现有技术类似,上述各个字均会携带各个字的地址。
S506、所述缓存设备向所述处理器发送所述N个待读字。
本实施例中,缓存设备根据所述寄存器的标识,将每个所述待读字存储在对应的所述寄存器中。如,缓存设备根据字02的地址(Addr0+16),可以确定对应的读命令为:LoadR0,Addr0+16,然后缓存设备根据R0,将接收到的字02存储在寄存器R0中。缓存设备根据字14的地址(Addr1+32),可以确定对应的读命令为:LoadR1,Addr1+32,然后缓存设备根据R1,将接收到的字14存储在寄存器R1中。缓存设备根据字26的地址(Addr1+32),可以确定对应的读命令为:LoadR2,Addr2+48,然后缓存设备根据R2,将接收到的字26存储在寄存器R2中。
S507、所述缓存设备根据所述N个待读字的优先级从高到低的顺序,缓存所述N个待读字。
本实施例中,缓存设备还可以将这3个待读字:字02、字14和字26进行缓存,具体地,缓存设备中的缓存行与内存控制器中的内存行存在对应关系,缓存设备根据字02的地址中的Addr0,确定与地址为Addr0的内存行0对应的缓存行0,然后根据字02的地址中的地址16,将字02存储在该缓存行0地址为16的位置。缓存设备根据字14的地址中的Addr1,确定与地址为Addr1的内存行1对应的缓存行1,然后根据字14的地址中的地址32,将字14存储在该缓存行1地址为32的位置。缓存设备根据字26的地址中的Addr2,确定与地址为Addr2的内存行2对应的缓存行2,然后根据字26的地址中的地址48,将字26存储在该缓存行2地址为48的位置。
如图9所示,缓存设备还可以根据26的优先级高于字14的优先级,字14的优先级高于字02的优先级,先缓存字26,再缓存字14,然后缓存字02。
需要说明的是,S506与S507的执行顺序不分先后。
S508、所述内存控制器从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字。
S509、所述内存控制器根据所述N个待读字所属内存行中属于同一内存颗粒的除所述N个待读字之外的各个字的优先级从高至低的顺序,向所述缓存设备发送所述其它字以及所述其它字的优先级。
本实施例中,内存控制器在获取字02,字14以及字26之后,内存控制器再获取字02所属内存行0中除该字02之外的字、字14所属内存行1中除该字14之外的字、字26所属内存行2中除该字26之外的字,这些字可以称为预取字,然后向缓存设备发送这些字和这些字的地址。相应地,缓存设备可以接收内存控制器发送的这些字和这些字的地址。
本实施例中,所述内存控制器可以根据属于同一内存颗粒的各个字的优先级从高至低的顺序,向所述缓存设备发送该N个待读字所属内存行中除N个待读字之外的其它字。针对内存颗粒0,内存控制器向缓存设备依次发送字20、字10、字00。针对内存颗粒1,内存控制器向缓存设备依次发送字21、字11、字01。针对内存颗粒2,内存控制器向缓存设备依次发送字22、字12。针对内存颗粒3,内存控制器向缓存设备依次发送字23、字13、字03。针对内存颗粒4,内存控制器向缓存设备依次发送字24、字04。针对内存颗粒5,内存控制器向缓存设备依次发送字25、字15、字05。针对内存颗粒6,内存控制器向缓存设备依次发送字16、字06。针对内存颗粒7,内存控制器向缓存设备依次发送字27、字17、字07。
若内存控制器可以同时向缓存设备发送8个字,则内存控制器首先向缓存设备发送字27、字26、字25、字14、字23、字02、字21、字20,再发送字17、字16、字15、字24、字13、字22、字11、字10,再发送字07、字06、字05、字04、字03、字12、字01、字00。
若内存控制器同时可以向缓存设备发送少于8个字,则内存控制器首先根据优先级从高到低的顺序,向缓存设备发送字26、字14、字02、字27、字25、字23、字21、字20;再根据优先级从高到低的顺序,发送字17、字16、字15、字24、字13、字22、字11、字10,再根据优先级从高到低的顺序,发送字07、字06、字05、字04、字03、字12、字01、字00。
若内存控制器同时可以向缓存设备发送少于8个字,则内存控制器可以先发送字26、字14、字02,再根据优先级从高到低的顺序,向缓存设备发送:字27、字25、字23、字21、字20、字17、字16、字15、字24、字13、字22、字11、字10、字07、字06、字05、字04、字03、字12、字01、字00。
本实施例中,内存控制器还可以将上述各个字的优先级也发送给缓存设备。
S510、所述缓存设备根据所述其它字的优先级从高到低的顺序,缓存所述其它字。
本实施例中,缓存设备根据所述其它字的地址,将所述其它字缓存至所述其它字所属内存行对应缓存行中的相应位置。例如,根据字07的地址中的地址40,将字07存储在该缓存行0地址为56的位置。其它字的缓存过程类似,此处不再赘述。
缓存设备还可以根据S509中所述的各个字的优先级从高到低的顺序,缓存上述各个字,例如:缓存设备先根据优先级从高到低的顺序,缓存字27、字25、字23、字21、字20;再根据优先级从高到低的顺序,缓存字17、字16、字15、字24、字13、字22、字11、字10;再根据优先级从高到低的顺序,缓存字07、字06、字05、字04、字03、字12、字01、字00。
本实施例中,由于内存控制器在获取以及发送这N个待读字的过程中不需要获取和发送这N个待读字所在内存行中的其它字,而且缓存设备在获取这N个待读字的过程中不需要获取这N个待读字所在内存行中的其它字,从而不会增加读取该N个待读字的时延,与现有技术相比,可以降低待读字的读取时延。同时由于内存控制器接收到第二写命令后,不需要将整个内存行中的所有字发送给缓存设备,从而可以节省开销。
图10为本发明缓存设备实施例一的结构示意图,如图10所示,本实施例的缓存设备包括:接收单元11、处理单元12和发送单元13;其中,接收单元11,用于接收处理器发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;处理单元12,用于确定所述缓存设备中是否缓存所述N个待读字;发送单元13,用于当处理单元12确定所述缓存设备中未缓存所述N个待读字时,向内存控制器转发所述N个读命令;接收单元11,还用于接收所述内存控制器发送的所述N个待读字,以及发送单元13,还用于向所述处理器发送所述N个待读字;接收单元11,还用于接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。
可选地,接收单元11用于接收所述内存控制器发送的第一字,包括:接收单元11用于,接收所述内存控制器发送的所述第一字和所述第一字的优先级;处理单元12,还用于根据所述第一字的优先级从高到低的顺序,缓存所述第一字;其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
本实施例的缓存设备,可以用于执行本发明上述方法实施例中缓存设备所执行的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明内存控制器实施例一的结构示意图,如图11所示,本实施例的内存控制器包括:接收单元21、处理单元22和发送单元23;其中,接收单元21,用于接收缓存设备发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;处理单元22,用于根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字;发送单元23,用于向所述缓存设备发送所述N个待读字;处理单元22,还用于从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字;发送单元23,还用于向所述缓存设备发送所述其它字。
可选地,发送单元23用于向所述缓存设备发送所述其它字,包括:发送单元23用于根据所述N个待读字所属内存行中属于同一内存颗粒的除所述N个待读字之外的各个字的优先级从高至低的顺序,向所述缓存设备发送所述其它字。
可选地,发送单元23用于向所述缓存设备发送第一字,包括:发送单元23用于,向所述缓存设备发送所述第一字和所述第一字的优先级;其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
可选地,处理单元22,还用于发送单元23向所述缓存设备发送所述第一字之前,根据所述N个待读字所属内存行中各个字的读写频率,确定所述各个字的优先级。
可选地,所述N个待读字所属内存行中的每个字存储在一个内存颗粒中。
本实施例的内存控制器,可以用于执行本发明上述方法实施例中内存控制器所执行的技术方案,其实现原理和技术效果类似,此处不再赘述。
图12为本发明计算机设备实施例一的结构示意图,如图12所示,本实施例的计算机设备,本实施例提供的计算机设备700可以是包含计算能力的主机服务器,或者是个人计算机(英文:Personal Computer,简称:PC),或者是可携带的便携式计算机或终端等,本发明在此不做限制,本发明具体实施例并不对计算机设备700的具体实现做限定。计算机设备700可以包括:缓存设备710、内存控制器720、处理器(Processor)730、内存设备740;该计算机设备700还可以包括:通信总线750,其中,缓存设备710、内存控制器720、处理器730、内存设备740可以通过通信总线750完成各设备之间的通信。该计算机设备700还可以包括通信接口760,处理器730可以通过通信接口760与外部设备进行通信。
其中,缓存设备710可以采用如图10所示的结构,其对应地,可以执行本发明上述方法实施例中缓存设备所执行的技术方案,此处不再赘述;内存控制器720可以采用如图11所示的结构,可以执行本发明上述方法实施例中内存控制器所执行的执行方案,此处不再赘述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读内存(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种内存访问方法,其特征在于,包括:
缓存设备接收处理器发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
当所述缓存设备中未缓存所述N个待读字时,所述缓存设备向内存控制器转发所述N个读命令;
所述缓存设备接收所述内存控制器发送的所述N个待读字,以及向所述处理器发送所述N个待读字;
所述缓存设备接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。
2.根据权利要求1所述的方法,其特征在于,所述缓存设备接收所述内存控制器发送的第一字,包括:
所述缓存设备接收所述内存控制器发送的所述第一字和所述第一字的优先级;
所述方法,还包括:
所述缓存设备根据所述第一字的优先级从高到低的顺序,缓存所述第一字;
其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
3.一种内存访问方法,其特征在于,包括:
内存控制器接收缓存设备发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
所述内存控制器根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字,并向所述缓存设备发送所述N个待读字;
所述内存控制器从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字,并向所述缓存设备发送所述其它字。
4.根据权利要求3所述的方法,其特征在于,所述内存控制器向所述缓存设备发送所述其它字,包括:
所述内存控制器根据所述N个待读字所属内存行中属于同一内存颗粒的除所述N个待读字之外的各个字的优先级从高至低的顺序,向所述缓存设备发送所述其它字。
5.根据权利要求3或4所述的方法,其特征在于,所述内存控制器向所述缓存设备发送第一字,包括:
所述内存控制器向所述缓存设备发送所述第一字和所述第一字的优先级;其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
6.根据权利要求5所述的方法,其特征在于,所述内存控制器向所述缓存设备发送所述第一字之前,还包括:
所述内存控制器根据所述N个待读字所属内存行中各个字的读写频率,确定所述各个字的优先级。
7.根据权利要求3或4所述的方法,其特征在于,所述N个待读字所属内存行中的每个字存储在一个内存颗粒中。
8.一种缓存设备,其特征在于,包括:
接收单元,用于接收处理器发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
处理单元,用于确定所述缓存设备中是否缓存所述N个待读字;
发送单元,用于当所述处理单元确定所述缓存设备中未缓存所述N个待读字时,向内存控制器转发所述N个读命令;
所述接收单元,还用于接收所述内存控制器发送的所述N个待读字,以及
所述发送单元,还用于向所述处理器发送所述N个待读字;
所述接收单元,还用于接收所述内存控制器发送的所述N个待读字所属内存行中除所述N个待读字之外的其它字。
9.根据权利要求8所述的缓存设备,其特征在于,所述接收单元用于接收所述内存控制器发送的第一字,包括:所述接收单元用于,接收所述内存控制器发送的所述第一字和所述第一字的优先级;
所述处理单元,还用于根据所述第一字的优先级从高到低的顺序,缓存所述第一字;
其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
10.一种内存控制器,其特征在于,包括:
接收单元,用于接收缓存设备发送的N个读命令,所述N为大于或等于2的整数,所述每个读命令包括待读字的地址,所述待读字的地址包括所述待读字所属内存行的地址以及所述待读字在所述内存行中的地址,所述读命令用于读取所述待读字;
处理单元,用于根据所述N个待读字的地址,从所述N个待读字所属内存行中获取所述N个待读字;
发送单元,用于向所述缓存设备发送所述N个待读字;
所述处理单元,还用于从所述N个待读字所属内存行中获取除所述N个待读字之外的其它字;
所述发送单元,还用于向所述缓存设备发送所述其它字。
11.根据权利要求10所述的内存控制器,其特征在于,所述发送单元用于向所述缓存设备发送所述其它字,包括:所述发送单元用于根据所述N个待读字所属内存行中属于同一内存颗粒的除所述N个待读字之外的各个字的优先级从高至低的顺序,向所述缓存设备发送所述其它字。
12.根据权利要求10或11所述的内存控制器,其特征在于,所述发送单元用于向所述缓存设备发送第一字,包括:所述发送单元用于,向所述缓存设备发送所述第一字和所述第一字的优先级;其中,所述第一字为所述N个待读字或者所述N个待读字所属内存行中除所述N个待读字之外的其它字。
13.根据权利要求12所述的内存控制器,其特征在于,所述处理单元,还用于在所述发送单元向所述缓存设备发送所述第一字之前,根据所述N个待读字所属内存行中各个字的读写频率,确定所述各个字的优先级。
14.根据权利要求10或11所述的内存控制器,其特征在于,所述N个待读字所属内存行中的每个字存储在一个内存颗粒中。
15.一种计算机设备,其特征在于,包括:处理器、内存设备、如权利要求8或9所述的缓存设备、如权利要求10-14任意一项所述的内存控制器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/090649 WO2016070431A1 (zh) | 2014-11-07 | 2014-11-07 | 内存访问方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105900060A CN105900060A (zh) | 2016-08-24 |
CN105900060B true CN105900060B (zh) | 2019-05-03 |
Family
ID=55908444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480038252.1A Active CN105900060B (zh) | 2014-11-07 | 2014-11-07 | 内存访问方法、装置和计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105900060B (zh) |
WO (1) | WO2016070431A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536526B (zh) * | 2017-03-02 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 一种基于可编程硬件的资源管理方法以及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055550A (zh) * | 2007-05-31 | 2007-10-17 | 威盛电子股份有限公司 | 存储器存取装置及其方法 |
CN101377749A (zh) * | 2007-08-31 | 2009-03-04 | 华为技术有限公司 | 存储器数据校验方法、装置、可编程逻辑器件及系统 |
WO2011109958A1 (zh) * | 2010-03-10 | 2011-09-15 | 上海海尔集成电路有限公司 | 跳转指令的处理方法及微控制器 |
CN103092778A (zh) * | 2013-01-23 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统的缓存镜像方法 |
US8677078B1 (en) * | 2007-06-28 | 2014-03-18 | Juniper Networks, Inc. | Systems and methods for accessing wide registers |
CN103810116A (zh) * | 2013-12-24 | 2014-05-21 | 苏州国芯科技有限公司 | 用于嵌入式系统的指令存储装置 |
CN103873562A (zh) * | 2014-02-27 | 2014-06-18 | 车智互联(北京)科技有限公司 | 缓存方法和缓存系统 |
CN104050092A (zh) * | 2013-03-15 | 2014-09-17 | 上海芯豪微电子有限公司 | 一种数据缓存系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581151B2 (en) * | 2001-07-18 | 2003-06-17 | Ip-First, Llc | Apparatus and method for speculatively forwarding storehit data based on physical page index compare |
-
2014
- 2014-11-07 WO PCT/CN2014/090649 patent/WO2016070431A1/zh active Application Filing
- 2014-11-07 CN CN201480038252.1A patent/CN105900060B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101055550A (zh) * | 2007-05-31 | 2007-10-17 | 威盛电子股份有限公司 | 存储器存取装置及其方法 |
US8677078B1 (en) * | 2007-06-28 | 2014-03-18 | Juniper Networks, Inc. | Systems and methods for accessing wide registers |
CN101377749A (zh) * | 2007-08-31 | 2009-03-04 | 华为技术有限公司 | 存储器数据校验方法、装置、可编程逻辑器件及系统 |
WO2011109958A1 (zh) * | 2010-03-10 | 2011-09-15 | 上海海尔集成电路有限公司 | 跳转指令的处理方法及微控制器 |
CN103092778A (zh) * | 2013-01-23 | 2013-05-08 | 浪潮(北京)电子信息产业有限公司 | 一种存储系统的缓存镜像方法 |
CN104050092A (zh) * | 2013-03-15 | 2014-09-17 | 上海芯豪微电子有限公司 | 一种数据缓存系统及方法 |
CN103810116A (zh) * | 2013-12-24 | 2014-05-21 | 苏州国芯科技有限公司 | 用于嵌入式系统的指令存储装置 |
CN103873562A (zh) * | 2014-02-27 | 2014-06-18 | 车智互联(北京)科技有限公司 | 缓存方法和缓存系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2016070431A1 (zh) | 2016-05-12 |
CN105900060A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9727471B2 (en) | Method and apparatus for stream buffer management instructions | |
CN110275841B (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
US10545672B2 (en) | Method for accessing extended memory, device, and system | |
US8788759B2 (en) | Double-buffered data storage to reduce prefetch generation stalls | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN105183662B (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN105446888B (zh) | 存储设备间移动数据的方法、控制器和存储系统 | |
CN109219805B (zh) | 一种多核系统内存访问方法、相关装置、系统及存储介质 | |
CN102859504B (zh) | 复制数据的方法和系统以及获得数据副本的方法 | |
CN105095104B (zh) | 数据缓存处理方法及装置 | |
US9063667B2 (en) | Dynamic memory relocation | |
CN106354664A (zh) | 一种固态硬盘数据传输方法及装置 | |
CN110187832A (zh) | 一种数据操作的方法、设备和系统 | |
CN105389268B (zh) | 资料储存系统及其运作方法 | |
CN107250995B (zh) | 存储器管理设备 | |
CN107329929B (zh) | 一种基于SoC FPGA的数据传输系统及数据传输方法 | |
WO2012024053A2 (en) | Method and system of handling non-aligned memory accesses | |
CN111563052A (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
CN112639749A (zh) | 减少由于地址转换缺失而引起的管线暂缓的方法、装置和系统 | |
CN105900060B (zh) | 内存访问方法、装置和计算机设备 | |
CN102591823A (zh) | 一种具有指令队列功能的Nandflash控制器 | |
CN104375955B (zh) | 高速缓冲存储器设备及其控制方法 | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
CN117389914A (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
CN105653478B (zh) | 串行闪存控制器、串行闪存控制方法及串行闪存控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |