CN109219804B - 非易失内存访问方法、装置和系统 - Google Patents
非易失内存访问方法、装置和系统 Download PDFInfo
- Publication number
- CN109219804B CN109219804B CN201680084386.6A CN201680084386A CN109219804B CN 109219804 B CN109219804 B CN 109219804B CN 201680084386 A CN201680084386 A CN 201680084386A CN 109219804 B CN109219804 B CN 109219804B
- Authority
- CN
- China
- Prior art keywords
- address information
- page table
- address
- ait
- nvm
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 121
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims description 39
- 238000013507 mapping Methods 0.000 claims description 23
- 238000012217 deletion Methods 0.000 abstract description 3
- 230000037430 deletion Effects 0.000 abstract description 3
- 230000002829 reductive effect Effects 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 16
- 230000036961 partial effect Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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
-
- 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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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
- G06F2212/1021—Hit rate 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
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
一种对非易失内存的访问方法,装置和系统。该方法包括:NVM控制器接收来自处理器的第一访问请求,根据第一访问请求中携带的第一地址信息,确定第一访问请求是否用于访问页表,若第一访问请求用于访问页表,NVM控制器读取第一地址信息指示的页表表项,并根据该页表表项中记录的第二地址信息,从AIT中获取第二地址信息对应的AIT表项,并将该AIT表项缓存至AIT缓存。NVM控制器监控处理器对页表的访问,提前从AIT中预取待访问的第二地址信息对应的AIT表项,并将预取的AIT表项缓存至AIT缓存,从而较少了后续的AIT缓存缺失,提高了NVM数据访问的速度。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种非易失内存访问方法,装置和系统。
背景技术
主机的内存一直是计算机系统的重要的组成部分,是决定系统性能的一个重要的部件。传统的内存一直是用动态随机存取存储器(Dynamic Random Access Memory,DRAM)构成。DRAM组成内存的最大的劣势是不具备非易失性,当主机断电时存放在内存DRAM中的数据将会丢失,造成不可恢复的数据丢失问题。给数据的一致性以及数据的可靠性带来了极大的挑战,为了克服内存的这一缺点,常需采用额外的复杂的数据断电保护措施。除此之外,由于DRAM的物理特性,DRAM每隔一定时间间隔就需要进行数据刷新操作以防止数据的丢失,这就直接导致了DRAM的能耗相当高。
非易失性内存(Non-Volatile Memory,NVM)逐渐成为一个趋势,例如,相变存储器(Phase change memory,PCM)、磁阻式随机存储器(Magneto resistiveRandom-AccessMemory,MRAM)、铁电存储器(Ferro electronic RAM,Fe_RAM)和闪存等。NVM具有掉电非易失、存储密度高、不需要频繁的刷新、能耗低等优点。但针对NVM的访问技术还不成熟,当发生页表缓冲(translation look aside buffer,TLB)缺失时,处理器往往需要较长的时间才能实现对NVM的访问。
发明内容
有鉴于此,本发明公开了一种对非易失内存(Non-Volatile Memory,NVM)的访问方法,装置和系统,通过将即将被访问的间接地址表(Address Indirection Table,AIT)表项预取到AIT缓存,减小了内存访问的时延。
第一方面,本申请公开了一种非易失内存的访问方法,该方法包括:NVM控制器接收来自处理器的第一访问请求,并根据第一访问请求中携带的第一地址信息,确定第一访问请求是否用于访问页表,若第一访问请求用于访问页表,NVM控制器读取第一地址信息指示的页表表项,并根据该页表表项中记录的第二地址信息,从AIT中获取第二地址信息对应的AIT表项,并将该AIT表项缓存至AIT缓存。
第二地址信息可以为物理页面号,用于指示处理器即将访问的物理页面。AIT用于记录物理地址与NVM器件地址的映射关系,更具体的,AIT用于记录物理块号与NVM内部块号之间的映射关系。NVM控制器监控对页表的访问,如果被访问的页表表项记录的物理页面号对应的AIT表项在AIT缓存中不存在,则NMV控制器预取该物理页面号对应的一个或多个AIT表项,并缓存至AIT缓存。后续NVM可以直接从AIT缓存中获取待访问的物理块号对应的NVM内部块号。
根据第一方面,在第一方面第一种可能的实现方式中,该方法还包括:NVM控制器将第二地址信息发送给处理器,并接收来自处理器的第二访问请求,其中,第二访问请求中携带第二地址信息,NVM控制器根据第二地址信息和AIT缓存中的AIT表项获取第二地址信息对应的NVM器件地址,并根据第二地址信息对应的NVM器件地址对NVM进行访问。
更具体的,第二访问请求携带第三地址信息,该第三地址信息的部分字段为第二地址信息,第三地址信息为处理器要访问的物理地址,第二地址信息为物理页面号,第二地址信息对应的NVM器件地址为NVM内部块号,NVM控制器根据该物理页面号和AIT缓存中的AIT表项获取该物理页面号对应的NVM内部块号,并根据该NVM内部块号和第三地址信息的部分字段对NVM进行访问。
根据第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,该方法还包括:NVM控制器根据第二地址信息,确定第二访问请求是否用于访问页表,若第二访问请求用于访问页表,NVM控制器获取第二地址信息对应的NVM器件地址之后,将第二地址信息对应的AIT表项从AIT缓存中删除。
如果第一访问请求和第二访问请求均用于访问页表,则说明页表为多级页表,对于页表的访问,因为页表访问后,会将最终的虚拟页面号与物理页面号的对应关系缓存在TLB中,之前缓存的AIT表项的重用性不高,为了节省AIT缓存空间,可以将第二地址信息对应的AIT表项从AIT缓存中删除。应理解,此处的删除可以是将该页表条目无效,或者在下次缓存替换中将其替换出去。
根据第一方面或第一方面以上任一种可能的实现方式,在第一方面第三种可能的实现方式中,NVM控制器确定访问请求是否用于访问页表表项之前,该方法还包括:NVM控制器接收来自处理器的页表地址信息。NVM控制器根据第一地址信息和页表地址信息确定第一访问请求是否用于访问页表。
具体的,页表地址信息中包含页表基地址和页表大小,NVM控制器可以根据页表基地址和页表大小确定页表的地址范围,NVM控制器可以通过判断第一地址信息是否落入页表的地址范围,来判断第一访问请求是否用于访问页表。
根据第一方面或第一方面以上任一种可能的实现方式,在第一方面第四种可能的实现方式中,该方法还包括:NVM控制器接收来自处理器的页表无效信息,并根据页表无效信息将页表地址信息无效。
处理器在销毁一个进程后,向NVM控制器发送页表无效消息,NVM控制器接收来自处理器的页表无效消息后,将该进程相关的页表地址信息无效。从而节省了NVM控制器侧的存储空间。
第二方面,本申请提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,该存储控制器执行第一方面或第一方面的任一种可能的实现方式中的方法。
第二方面,本申请提供了一种NVM存储控制器,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当该NVM存储控制器运行时,处理器执行存储器存储的执行指令,以使该NVM存储控制器执行第一方面或第一方面的任一种可能的实现方式中的方法。
第四方面,本申请提供了一种非易失内存访问装置,该装置包括:接收单元,用于接收来自处理器的第一访问请求,其中,第一访问请求中携带第一地址信息,确定单元,用于根据第一地址信息,确定第一访问请求是否用于访问页表,处理单元,若第一访问请求用于访问页表,处理单元用于读取所述第一地址信息指示的页表表项,并根据所述页表表项中记录的第二地址信息,从间接地址表AIT中获取所述第二地址信息对应的AIT表项,并将所述AIT表项缓存至AIT缓存,其中所述AIT用于记录物理地址与NVM器件地址的映射关系。
根据第四方面,在第四方面第一种可能的实现方式中,该装置还包括发送单元,用于将第二地址信息发送给处理器,接收单元还用于接收来自处理器的第二访问请求,其中,第二访问请求中携带第二地址信息,处理单元还用于根据第二地址信息和AIT缓存中的AIT表项获取第二地址信息对应的NVM器件地址,并根据第二地址信息对应的NVM器件地址对NVM进行访问。
根据四方面第一种可能的实现方式,在第四方面第二种可能的实现方式中,该确定单元还用于根据第二地址信息,确定第二访问请求是否用于访问页表,若第二访问请求用于访问页表,处理单元获取第二地址信息对应的NVM器件地址之后,还用于将AIT表项从AIT缓存中删除。
根据第四方面或第四方面以上任一种可能的实现方式,在第四方面第三种可能的实现方式中,接收单元还用于接收来自处理器的页表地址信息,确定单元用于根据第一地址信息和页表地址信息确定第一访问请求是否用于访问页表。
根据第四方面第三种可能的实现方式,在第四方面第四种可能的实现方式中,接收单元还用于接收来自处理器的页表无效信息,处理单元还用于根据页表无效信息将页表地址信息无效。
第四方面为第一方面方法对应的装置实现方式,所以第一方面或第一方面任一种可能的实现方式中的描述对应适用于第四方面或第四方面任一种可能的实现方式,在此不再赘述。
第五方面,本申请提供了一种非易失内存访问系统,该系统包括处理器,非易失内存NVM和如第四方面或第四方面任一种可能的实现方式中的非易失内存访问装置。
根据本发明实施例公开的技术方案,NVM控制器监控处理器对页表的访问,当获取到处理器对页表的访问请求后,解析页表内容,获取后续可能被访问的物理页面号,并在处理器真正的访问该物理页面号之前,提前从AIT中预取该物理页面号对应的AIT表项,并将预取的AIT表项缓存至AIT缓存,从而较少了后续的AIT缓存缺失,提高了NVM数据访问的速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为依据本发明一实施例的系统逻辑结构示意图;
图2为依据本发明一实施例的地址转换的示范性流程图;
图3为依据本发明一实施例的非易失内存访问方法的示范性流程图;
图4为依据本发明一实施例的的二级页表访问的示范性流程图;
图5为依据本发明一实施例的非易失内存访问装置的逻辑结构示意图;
图6为依据本发明一实施例的非易失内存访问装置的硬件结构示意图。
具体实施方式
下面将结合附图,对本发明实施例进行描述。
在计算机系统中,系统应用使用的是内存的虚拟地址,当处理器访问内存时,需要将虚拟地址映射为物理地址。更具体的,处理器需要将虚拟地址中虚拟页面号转化为物理页面号。页表保存有虚拟页面号对应的物理页面号,处理器可以根据虚拟地址(或虚拟地址的部分字段)在页表中索引到虚拟页面号对应的物理页面号。
页表一般是存储在内存中,对页表的一次访问需要一次内存访问。为了减少访问页表的时延,处理器使用页表缓存(translation look aside buffer,TLB)来缓存一些会被经常使用到的虚拟页面号与物理页面号的映射关系。当处理器需要的虚拟页面号与物理页面号的映射关系在TLB中存在时,即发生了TLB命中;当处理器需要的虚拟页面号与物理页面号的映射关系不在TLB中时,即发生了TLB缺失,处理器需要去页表中索引虚拟页面号对应的物理页面号。
在使用非易失内存(Non-Volatile Memory,NVM)的计算机系统中,处理器发送到NVM控制器的访问请求中携带待访问的物理地址,NVM控制器接收到处理器发送的访问请求后,还需要将待访问的物理地址转化为实际的NVM器件地址,并根据NVM器件地址进行内存访问。更具体的,NVM控制器把物理地址空间和NVM器件地址空间以块为单位进行管理和对应,NVM控制器需要将物理地址中的物理块号转化为NVM内部块号。间接地址表(AddressIndirection Table,AIT)存储有物理块号与NVM内部块号之间的对应关系,NVM控制器可以根据物理地址(或物理地址的部分字段)在AIT中索引到物理块号对应的NVM内部块号。为了描述方便,在本发明实施例中,物理地址与NVM器件地址的映射关系可以具体为物理块号与NVM内部块号的映射关系。
同样的,为了减少访问AIT的时延,NVM控制器使用一个AIT缓存来缓存一些会被经常使用到的物理地址与NVM器件地址的映射关系。当NVM控制器需要的物理地址与NVM器件地址的映射关系在AIT缓存中存在时,即发生了AIT缓存命中;当NVM控制器需要的物理地址与NVM器件地址的映射关系在AIT缓存中不存在时,即发生了AIT缓存缺失,NVM控制器需要去AIT中查询物理地址对应的NVM器件地址。
每次发生AIT缓存缺失,NVM控制器访问AIT都会给内存访问带来较大的时延,为了减少AIT缓存缺失,本发明实施例中,NVM控制器监听处理器对页表的访问事件,当监听到处理器要访问页表时,NVM控制器根据处理器访问的页表表项确定待访问的物理页面号,如果AIT缓存中不存在待访问的物理页面对应的NVM内部块号,则NVM控制器确定待访问的物理页面号对应的AIT表项,并将该AIT表项缓存至AIT缓存。更具体的,NVM控制器确定待访问的物理页面所在的物理块对应的AIT表项,并将该AIT表项缓存至AIT缓存,该AIT表项记录了该物理块号与NVM内部块号之间映射关系。这样就减少或避免了后续的AIT缓存缺失,从而减少了NVM内存访问的时延。
为了描述方便,在本发明实施例中,使用虚拟地址、物理地址和NVM器件地址来多方案进行描述,但应理解,虚拟地址可以是实际虚拟地址的部分字段,物理地址可以实际物理地址的部分字段,NVM器件地址也可以是实际NVM器件地址的部分字段,例如,虚拟页面号是虚拟地址的部分字段,物理页面号是物理地址的部分字段,物理块号也是物理地址的部分字段,NVM内部块号为NVM器件地址的部分字段。
图1为依据本发明一实施例的系统100的逻辑结构示意图,如图1所示,系统100包括:处理器102,缓存104,页表缓存106,间接地址表缓存108,非易失内存控制器110,非易失内存112,间接地址表114,页表116和总线118。
其中,页表116中存储有系统虚拟页面号对应的物理页面号。
页表缓存106中存储有系统经常使用到的虚拟页面号与物理页面号的映射关系。其中,页表缓存106可以配置在处理器102内部,也可以配置在处理器102外部,通过总线118与处理器102互联。
间接地址表114中存储有系统物理地址与NVM器件地址的映射关系。AIT114可以保存在一个独立于非易失内存112的存储空间,对处理器102不透明,例如,AIT 114可以保存在一个挂载在NVM控制器110上的动态随机存取存储器(Dynamic Random Access Memory,DRAM),但应理解,本发明实施例并不限定AIT 114的保存形式,在某些实现方式中AIT 114也直接保存在NVM 112中一块独立的存储空间。
间接地址表缓存108中存储有系统经常使用到的物理地址与NVM器件地址之间的映射关系,间接地址表缓存108中存储的数据是间接地址表114中存储的数据的子集。
更具体的,AIT 114或AIT缓存108中存储的物理地址与NVM器件地址的映射关系为物理块号与NVM内部块号的映射关系。
处理器102可以包含一个或者多个处理器核,用于执行系统100的计算机程序指令。处理器102可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),或者一个或多个集成电路等方式来具体实现。
除非另有说明,在本发明中,一个用于执行特定功能的组件,例如,处理器102,可以通过配置一个通用的组件来执行相应功能来实现,也可以通过一个专门执行特定功能的专用组件来实现,本申请并不对此进行限定。
缓存104可以包含一级或多级缓存,例如缓存104可以包含一个一级(L0)缓存和一个二级(L1)缓存。
非易失内存控制器110用于处理对NVM 112的访问操作,内存控制器可以采用通用的处理器,微处理器,应用专用集成电路,或者一个或多个集成电路等方式来具体实现。
非易失内存112可以直接与非易失内存控制器110互联,如图1所示,也可以直接连接在总线110上,通过总线110与非易失内存控制器110互联。本发明实施例对此并不进行限定。
处理器102生成的涉及到内存访问的请求由非易失内存控制器110来执行,例如内存读,内存写以及预取等。
当处理器102运行内存访问指令时,首先查询TLB 106内部是否包含该内存访问指令要访问的虚拟地址对应到物理地址。如果在TLB 106中找到了该内存访问指令要访问的虚拟地址与物理地址的映射关系,即发生了TLB命中,则发射一个内存访问请求,其中包含待访问的物理地址。如果发生了TLB缺失,则处理器需要去页表116中查找待访问的虚拟页面号对应的物理页面号。
AIT缓存108中维护有部分物理地址与NVM器件地址的映射关系。当NVM控制器110接收到处理器102的访问请求后,首先在AIT缓存108中查找待访问物理地址与NVM器件地址的映射关系,如果发生了AIT缓存命中,则NVM控制器110根据获取到的NVM器件地址访问NVM内存112。如果发生了AIT缺失,则NVM控制器110需要查询AIT 114来获取待访问的物理地址与NVM器件地址的映射关系。
如图2所示,当NVM控制器110接收到处理器102发送的访问请求后,首先去AIT缓存108中查找物理块号对应的NVM内部块号,如果发生了AIT缓存命中,则NVM根据NVM内部块号和访问请求携带的地址信息的部分字段确定NVM器件地址后,就将访问请求加入到对NVM的访问队列。如果发生了AIT缓存缺失,则NMV控制器110需要去AIT表114中查找物理块号对应的NVM内部块号,然后才能根据NVM内部块号和访问请求携带的地址信息的部分字段确定NVM器件地址,将访问请求加入到对NVM的访问队列。由图2可知,如果发生了AIT缓存缺失,NVM控制器110需要多一个对AIT表114的访问,而对AIT表114的访问相对于对AIT缓存108的访问,十分耗时,会影响内存访问的速度。
可选的,系统100包含输入/输出接口和通信接口(图1未示出)。输入/输出接口用于接收输入的数据和信息,输出操作结果等数据。通信接口使用例如但不限于收发器一类的收发装置,来实现系统100与其他设备或通信网络之间的通信。
总线118用于在系统100的各个部件之间传送信息。
应注意,尽管图1所示的系统100仅仅示出了处理器102,缓存104,页表缓存106,间接地址表缓存108,非易失内存控制器110,非易失内存112,间接地址表114,页表116和总线118,但是在具体实现过程中,本领域的技术人员应当明白,系统100还包含实现正常运行所必须的其他器件。
同时,根据具体需要,本领域的技术人员应当明白,系统100还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,系统100也可仅仅包含实现本发明实施例所必须的组件,而不必包含图1中所示的全部器件。
图3为依据本发明一实施例的一种NVM访问方法,如图3所示,方法300包括:
S302:处理器向NVM控制器发送第一访问请求。
其中,第一访问请求中携带第一地址信息。
具体的,第一地址信息为物理地址。该第一地址信息可以为待访问内存数据的物理地址或页表表项的物理地址。
当处理器发生Cache miss,需要访问内存数据时,处理器在向NVM控制器发送访问请求前,需要将虚拟地址转化为物理地址,处理器在TLB中查找虚拟页面号对应的物理页面号,其中,虚拟页面号可以为内存数据的虚拟地址的部分字段(例如,高位字段),如果发生了TLB命中,则处理器从TLB中获取内存数据的物理页面号,根据物理页面号和虚拟地址的部分字段(例如,低位字段)作为偏移量,确定要访问的内存数据的物理地址。
当发生TLB缺失时,处理器根据内存数据的虚拟地址的部分字段和页表的基地址,确定保存有该物理页面号的页表表项的物理地址,并向NVM控制器发送访问请求,访问请求中携带该页表表项的物理地址。
对于单级页表,处理器可以通过一次访问请求,从该单级页表中获取待访问的内存数据的虚拟页面号对应的物理页面号。更具体的,处理器可以根据页表的基地址和内存数据的虚拟地址的部分字段(例如,高位字段,虚拟页面号等)作为偏移量,确定保存有该物理页面号的页表表项的物理地址,并根据页表表项的物理地址读取该页表表项中记录的虚拟页面号对应的物理页面号。处理器在根据读取到物理页面号之后,根据物理页面号和虚拟地址的部分字段(例如,低位字段)作为偏移量确定内存数据的物理地址,并根据内存数据的物理地址访问内存数据。
页表的基地址可以存储于一个专门的寄存器,例如,页表的基地址可以存储于控制寄存器CR3,CR3中含有页目录表物理内存基地址,因此该寄存器也被称为页目录基地址寄存器(Page-Directory Base address Register,PDBR)。
对于多级页表,则处理器需要根据页表的级数给处理器发送多次访问请求,才可以获取待访问内存数据的虚拟页面号对应的物理页面号。
例如,当页表分为两级时,如图3所示,一级页表的一个表项指向一个第二级页表,第二级页表的一个表项记录有内存数据的虚拟页面号对应的物理页面号。处理器根据CR3寄存器中存储的一级页表的基地址和内存数据的虚拟地址的部分字段作为偏移量(例如虚拟地址的高M位),确定物理地址A,并根据确定的物理地址A发送一次访问请求,物理地址A处读出的数据是一个二级页表的基地址,处理器再根据二级页表的基地址和虚拟地址的部分字段作为偏移量(例如虚拟地址的中N位),确定物理地址B,并根据物理地址B发送一次访问请求,物理地址B读出的数据就是二级页表的一个页表表项,该页表表项中记录有待访问内存数据的虚拟页面号对应的物理页面号。处理器根据该物理页面号和虚拟地址的部分字段作为偏移量(例如虚拟地址的低L位)确定待访问内存数据的物理地址。
S304:NVM控制器接收到第一访问请求后,根据第一地址信息,判断第一访问请求是否用于访问页表,若第一访问请求不是用于访问页表,则执行步骤S306,若第一访问请求用于访问页表,则执行步骤S308。
在步骤S304之前,方法300还包括:NVM控制器接收来自处理器的页表地址信息,NVM控制器可以根据页表地址信息判断接收到的访问请求是否用于访问页表。
页表地址信息可以包含CR3寄存器中存储的地址或CR3寄存器的地址,其中,CR3寄存器用于存储页表的基地址。
TLB缺失必然触发处理器异常,处理器可以在异常处理程序中把引发TLB缺失的进程的CR3寄存器的地址或CR3寄存器中存储的地址发送给NVM控制器,NVM控制器根据CR3中存储的基地址来跟踪页表访问。
处理器也可以在新建一个进程时,就将线程对应的CR3寄存器的地址或CR3寄存器中存储的地址发给NVM控制器。
页表地址信息中还可以包含页表级数,每一级页表的解析方式,每个页的大小等信息。这样NVM控制器可以根据页表地址信息确定访问请求是否是对页表的访问,对于多级页表,还可以根据页表地址信息跟踪各级页表访问,直到取到待访问内存数据的物理页面号。
进一步的,因为应用进程可能很多,NVM控制器只能存储有限个页表地址信息。当处理器发送过来的页表地址信息多于NVM控制器能存储的数量,可以按照一定的算法来替换,例如,可以根据最近最少使用(Least Recently Used,LRU)或最不常用(LeastFrequently Used,LFU)等替换策略来保留部分页表地址信息。
NVM控制器根据第一地址信息和页表地址信息判断所述第一访问请求是否用于访问页表。具体的,NVM控制器可以通过判断第一地址信息是否落入页表地址信息的范围,来判断第一访问请求是否用于访问页表,如果第一地址信息落入了页表地址信息的范围,则说明第一访问请求用于访问页表,如果第一地址信息没有落入页表地址信息的范围,则说明第一访问请求用于访问正常的内存数据,不是用于访问页表。
NVM控制器根据页表表项数和每条页表表项的大小确定页表的大小。则页表的地址范围就是[页表基地址,页表基地址+页表大小),NVM控制器通过第一地址信息是否落在页表的地址范围,判断第一访问请求是否是用于访问页表。如果第一地址信息落入页表的地址范围,则第一访问请求用于访问页表。
对于多级页表,对于第一级页表,其基地址保存于控制寄存器。对于第二级页表,其基地址保存于第一级页表的某个页表表项,以此类推,直至获取到最后一级页表的基地址,并从最后一级页表中获取待访问内存数据的物理页面号。
NVM控制器还可以通过第一地址信息的部分字段(例如,高位字段)和页表的基地址来判断第一访问请求是否用于访问页表,如果第一地址信息的部分字段与NVM控制器维护的页表基地址相同,则说明第一地址信息落入页表地址信息的范围,说明第一访问请求用于访问页表。
S306:NVM控制器根据第一访问请求对NVM进行正常访问操作。
如果第一访问请求不是用于访问页表,则第一地址信息为待访问内存数据的物理地址,NVM控制器根据第一访问请求对NVM进行正常访问。
具体的,NVM控制器根据第一地址信息,在AIT缓存中查找与第一地址信息对应的NVM器件地址,更具体的,NVM控制器在AIT缓存中查找第一地址信息(例如,第一地址信息的高位字段)指示的物理块号对应的NVM内部块号,并根据NVM内部块号和第一地址信息(例如,第一地址信息的低位字段)对NVM进行访问。
S308:NVM控制器根据第一地址信息指示的页表表项中记录的第二地址信息,从AIT中获取第二地址信息对应的AIT表项,并将该AIT表项缓存至AIT缓存。
如果第一访问请求用于访问页表表项,则说明处理器发生了TLB缺失,第一访问请求用于获取待访问数据的虚拟页面号对应的物理页面号,第一地址信息为保存有该物理页面号的页表表项的物理地址。
NVM控制器根据第一地址信息,读取页表表项记录的第二地址信息,第二地址信息具体为一个物理页面号。如果AIT缓存中没有第二地址信息对应的AIT表项,则NVM控制器在AIT中获取第二地址信息对应的AIT表项,并将AIT表项缓存至AIT缓存,以供后续使用。
其中,第二地址信息可以对应一个或多个AIT表项,更具体的,第二地址信息对应的AIT表项是第二地址信息指示的物理页面所分布的一个或多个物理块号对应的AIT表项。
1、如果物理页面和物理块大小一致(例如,都是4KB),则一个物理页面号可以对应一个物理块号,从而一个物理块号可以对应一个AIT表项,可以直接使用物理页面号索引其对应的NVM内部块号。如果二者的大小相同,则系统可以根据物理地址的相同字段描述物理页面号和物理块号,即使用物理地址的相同字段(例如,高位字段)实现对物理页面和物理块的索引,例如,假设物理地址有32位,其中的高16位用于指示物理页面号和物理块号,则物理地址的好16位既可以作为物理页面的索引,又可以作为物理块号的索引。
2、如果物理页面比物理块大,则一个物理页面号可以对应多个物理块号,从而一个物理页面可以对应多个AIT表项,需要从AIT中获取物理页面号对应的多个AIT表项。例如,物理地址为32位,其中的高16位用于指示物理页面号,高18位用于指示物理块号,即物理地址的高16用作物理页面的索引,高18位用作物理块号的索引,一个物理页面对应4个物理块,则需要从AIT中获取物理页面号对应的4个AIT表项。
3、如果物理页面比物理块小,则多个物理页面号可以对应同一个物理块号,可以忽略掉物理页面号最末的几位,作为对应AIT表的索引。例如,物理地址为32位,其中的高16位用于指示物理块号,高18位用于指示物理页面号,即物理地址的高16位为物理块的索引,高18为物理页面的索引,一个物理块对应4个物理页面,则在进行AIT表索引的时候,忽略掉物理页面号的后两位。
S310:NVM控制器将第二地址信息发送给处理器。
第二地址信息指示的物理页面为处理器即将访问的物理页面,NVM控制器获取到第二地址信息后,将其发送给处理器。
第二地址信息可以为待访问内存数据的物理页面号。对于多级页表,第二地址信息也可以为第二级页表的基地址。
S312:处理器向NVM控制器发送第二访问请求,其中第二访问请求中携带该第二地址信息。
因为发生了TLB缺失,处理器接收到第二地址信息(物理页面号)后,如果第二地址信息为待访问内存数据的物理页面号,则处理器还会将待访问的内存数据的虚拟页面号与第二地址信息的对应关系存储于TLB,以供后续使用。
具体的,处理器根据第二地址信息和待访问内存数据的虚拟地址的部分字段作为偏移量,确定一个物理地址,并在第二访问请求中携带该物理地址。
S314:NVM控制器根据接收到的第二访问请求的第二地址信息和AIT缓存中预存的该AIT表项,确定第二地址信息对应的NVM器件地址,并根据第二地址信息对应的NVM器件地址对NVM进行访问。
因为在步骤S308中,NVM控制器已经将第二地址信息对应的AIT表项存储于AIT缓存,NVM控制器在接收到第二访问请求后,可以直接在AIT缓存中查找到第二地址信息对应的AIT表项,该AIT表项中记录有第二访问请求要访问的NVM内部块号。
第二访问请求中携带的是处理器根据第二地址信息作为基地址和待访问内存数据的部分字段作为偏移量确定的物理地址,NVM控制器确定第二地址信息指示的物理页面所在的物理块号对应的NVM内部块号,并根据NVM内部块号和该物理地址的部分字段作为偏移量确定NVM内部地址。
在多级页表的情况下,第二访问请求也可以用于访问页表,例如,第一访问请求用于访问一级页表,第二访问请求用于访问二级页表,方法300还可以包括:NVM控制器根据第二地址信息判断第二访问请求是否用于访问页表。
若第二访问请求用于访问页表,NVM控制器根据第二地址信息和存储于AIT缓存中的第二地址信息对应的AIT表项获取第二地址信息对应的NVM器件地址之后,将第二地址信息对应的AIT表项从AIT缓存中删除。其中,删除包括:将第二地址信息对应的AIT表项作为其他AIT表项的替换备选。
因为对于多级页表访问,获取待访问内存数据的虚拟页标号对应的物理页标号后,处理器会将该虚拟页面号与物理页面号的对应关系存储于TLB中,后续处理器可以直接在TLB中获取待访问的虚拟页面号对应的物理页面号。所以对于页表的访问,AIT重用性不高,在一轮访问结束后,为了减少对AIT缓存的污染,可以将不会再被用到的页表相关的AIT表项删除。
在另一种实现方式中,为了减少对AIT缓存的污染,NVM控制器可以使用专门的一部分缓存块来缓存与页表相关的AIT表项。
可选的,方法300还包括:处理器在销毁一个进程后,向NVM控制器发送页表无效消息,NVM控制器接收来自处理器的页表无效消息后,将该进程相关的页表地址信息无效。
根据本发明实施例公开的技术方案,NVM控制器监控处理器对页表的访问,当获取到处理器对页表的访问请求后,解析页表内容,获取后续可能被访问的物理页面号,并在处理器真正的访问该物理页面号之前,提前从AIT中预取该物理页面号对应的AIT表项,并将预取的AIT表项缓存至AIT缓存,从而较少了后续的AIT缓存缺失,提高了NVM数据访问的速度。
图5为依据本发明一实施例的非易失内存访问装置500的逻辑结构示意图,如图5所示,装置500包括:接收单元502,确定单元504,处理单元506和发送单元508,其中,
接收单元502,用于接收来自处理器的第一访问请求,其中,第一访问请求中携带第一地址信息。
确定单元504,用于根据第一地址信息,确定第一访问请求是否用于访问页表。
若第一访问请求用于访问页表,处理单元506用于根据第一地址信息指示的页表表项中记录的第二地址信息,从间接地址表AIT中获取第二地址信息对应的AIT表项,并将AIT表项缓存至AIT缓存,其中AIT用于存储地址信息与NVM器件地址的映射关系。
发送单元508,用于将第二地址信息发送给处理器。接收单元502还用于接收来自处理器的第二访问请求,其中,第二访问请求中携带第二地址信息,处理单元506还用于根据第二地址信息和AIT缓存中的AIT表项获取第二地址信息对应的NVM器件地址,并根据第二地址信息对应的NVM器件地址对NVM进行访问。
可选的,确定单元504还用于根据第二地址信息,确定第二访问请求是否用于访问页表,若第二访问请求用于访问页表,处理单元506获取第二地址信息对应的NVM器件地址之后,还用于将AIT表项从AIT缓存中删除。
接收单元502还用于接收来自处理器的页表地址信息,确定单元504用于根据第一地址信息和页表地址信息确定第一访问请求是否用于访问页表。
可选的,接收单元502还用于接收来自处理器的页表无效信息,处理单元506还用于根据页表无效信息将页表地址信息无效。
本发明实施例是NVM控制器的装置实施例,图1-图4实施例部分的特征描述,适用于本发明实施例,在此不再赘述。
图6为依据本发明一实施例的的非易失内存访问装置600的硬件结构示意图,如图6所示,装置600包括处理逻辑602、存储器604、输入/输出接口606、通信接口608和总线610。其中,处理逻辑602、存储器604、输入/输出接口606和通信接口608通过总线610实现彼此之间的通信连接。
处理逻辑602是装置600的控制中心,用于实现本发明实施例所提供的技术方案。处理逻辑602可以采用通用处理器,微处理器,应用专用集成电路,或者一个或多个集成电路,以实现本发明实施例所提供的技术方案。
更具体的,如果处理逻辑602使用处理器来实现,处理逻辑用于执行存储器604中的程序代码,用于实现本发明实施例所提供的技术方案。
存储器604可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。在通过软件或者固件来实现本发明实施例提供的技术方案时,用于实现本发明实施例提供的技术方案的程序代码保存在存储器604中,并由处理逻辑602来执行。存储器604可以与处理逻辑602集成在一起或集成在处理逻辑602的内部,也可以是独立于处理逻辑602的一个或多个存储单元。
供处理逻辑602执行的程序代码可以存储在与其连接的外部存储设备中或存储器604中。可选的,存储器604为RAM,存储在外部存储设备内部的程序代码被拷贝到存储器604中,以供处理逻辑602执行。
除非另有说明,在本发明中,一个用于执行特定功能的组件,例如,处理逻辑602或存储器604,可以通过配置一个通用的组件来执行相应功能来实现,也可以通过一个专门执行特定功能的专用组件来实现,本申请并不对此进行限定。
输入/输出接口606用于接收输入的数据和信息,输出操作结果等数据。
通信接口608使用例如但不限于收发器一类的收发装置,来实现装置600与其他设备或通信网络之间的通信。
总线610可包括一通路,在装置600各个部件(例如处理逻辑602、存储器604、输入/输出接口606和通信接口608)之间传送信息。
应注意,尽管图6所示的计装置600仅仅示出了处理逻辑602、存储器604、输入/输出接口606、通信接口608以及总线610,但是在具体实现过程中,本领域的技术人员应当明白,装置600还包含实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当明白,装置600还可包含实现其他附加功能的硬件器件。此外,本领域的技术人员应当明白,装置600也可仅仅包含实现本发明实施例所必须的器件,而不必包含图6中所示的全部器件。
图3所示的接收单元302和发送单元308可以由图6所示的处理逻辑602结合通信接口608来实现,更具体的,可以由处理逻辑602执行存储器604中的程序代码,结合通信接口608来实现。
图5所示的确定单元504和处理单元506可以由图6所示的处理逻辑602来实现,更具体的,可以由处理逻辑602执行存储器604中的程序代码来实现。
图6所示的硬件结构以及上述描述适用于本发明实施例所提供的各种非易失内存访问装置,适用于执行本发明实施例所提供的各种非易失内存访问方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (13)
1.一种非易失内存访问方法,其特征在于,所述方法包括:
非易失内存NVM控制器接收来自处理器的第一访问请求,其中,所述第一访问请求中携带第一地址信息;
所述NVM控制器根据所述第一地址信息,确定所述第一访问请求是否用于访问页表;
若所述第一访问请求用于访问页表,所述NVM控制器读取所述第一地址信息指示的页表表项,并根据所述页表表项中记录的第二地址信息,从间接地址表AIT中获取所述第二地址信息对应的AIT表项,并将所述AIT表项缓存至AIT缓存,其中所述AIT用于记录物理地址与NVM器件地址的映射关系,所述第一地址信息为虚拟地址,所述第二地址信息为物理地址。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述NVM控制器将所述第二地址信息发送给所述处理器;
所述NVM控制器接收来自处理器的第二访问请求,其中,所述第二访问请求中携带所述第二地址信息;
所述NVM控制器根据所述第二地址信息和所述AIT缓存中的所述AIT表项获取所述第二地址信息对应的NVM器件地址,并根据所述第二地址信息对应的NVM器件地址对所述NVM进行访问。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述NVM控制器根据所述第二地址信息,确定所述第二访问请求是否用于访问页表;
若所述第二访问请求用于访问页表,所述NVM控制器获取所述第二地址信息对应的NVM器件地址之后,将所述AIT表项从所述AIT缓存中删除。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述NVM控制器确定所述第一访问请求是否用于访问页表表项之前,所述方法还包括:
所述NVM控制器接收来自所述处理器的页表地址信息;
所述NVM控制器根据所述第一地址信息,确定所述第一访问请求是否用于访问页表表项包括:
所述NVM控制器根据所述第一地址信息和所述页表地址信息确定所述第一访问请求是否用于访问页表。
5.根据权利要求4所述的方法,其特征在于,所述NVM控制器接收来自所述处理器的页表指示信息之后,所述方法还包括:
所述NVM控制器接收来自所述处理器的页表无效信息;
所述NVM控制器根据所述页表无效信息将所述页表地址信息无效。
6.一种非易失内存访问装置,其特征在于,所述装置包括:
接收单元,用于接收来自处理器的第一访问请求,其中,所述第一访问请求中携带第一地址信息;
确定单元,用于根据所述第一地址信息,确定所述第一访问请求是否用于访问页表;
处理单元,若所述第一访问请求用于访问页表,所述处理单元用于读取所述第一地址信息指示的页表表项,并根据所述页表表项中记录的第二地址信息,从间接地址表AIT中获取所述第二地址信息对应的AIT表项,并将所述AIT表项缓存至AIT缓存,其中所述AIT用于记录物理地址与NVM器件地址的映射关系,所述第一地址信息为虚拟地址,所述第二地址信息为物理地址。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括发送单元,用于将所述第二地址信息发送给所述处理器;
所述接收单元还用于接收来自处理器的第二访问请求,其中,所述第二访问请求中携带所述第二地址信息;
所述处理单元还用于根据所述第二地址信息和所述AIT缓存中的所述AIT表项获取所述第二地址信息对应的NVM器件地址,并根据所述第二地址信息对应的NVM器件地址对所述NVM进行访问。
8.根据权利要求7所述的装置,其特征在于,所述确定单元还用于根据所述第二地址信息,确定所述第二访问请求是否用于访问页表;
若所述第二访问请求用于访问页表,所述处理单元获取所述第二地址信息对应的NVM器件地址之后,还用于将所述AIT表项从所述AIT缓存中删除。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述接收单元还用于接收来自所述处理器的页表地址信息;
所述确定单元用于根据所述第一地址信息和所述页表地址信息确定所述第一访问请求是否用于访问页表。
10.根据权利要求9所述的装置,其特征在于,所述接收单元还用于接收来自所述处理器的页表无效信息;
所述处理单元还用于根据所述页表无效信息将所述页表地址信息无效。
11.一种非易失内存访问系统,其特征在于,所述系统包括处理器,非易失内存NVM和如权利要求6-10任一项所述的非易失内存访问装置。
12.一种可读介质,其特征在于,包括执行指令,当内存控制器的处理器执行所述执行指令时,所述内存控制器执行权利要求1-5任一项所述的方法。
13.一种内存控制器,其特征在于,包括:处理器、存储器和总线;
所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述内存控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述内存控制器执行权利要求1-5任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/112699 WO2018119773A1 (zh) | 2016-12-28 | 2016-12-28 | 非易失内存访问方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109219804A CN109219804A (zh) | 2019-01-15 |
CN109219804B true CN109219804B (zh) | 2023-12-29 |
Family
ID=62710808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680084386.6A Active CN109219804B (zh) | 2016-12-28 | 2016-12-28 | 非易失内存访问方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10997078B2 (zh) |
EP (1) | EP3553665B1 (zh) |
CN (1) | CN109219804B (zh) |
WO (1) | WO2018119773A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703660B (zh) * | 2020-05-22 | 2024-03-19 | 超聚变数字技术有限公司 | 数据预取方法和数据预取装置 |
KR20220032808A (ko) * | 2020-09-08 | 2022-03-15 | 삼성전자주식회사 | 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치 |
KR20220049396A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 간접 어드레싱을 위한 시스템, 장치 및 방법 |
CN114356793B (zh) * | 2021-11-25 | 2024-02-27 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN114610655B (zh) * | 2022-05-10 | 2022-08-05 | 沐曦集成电路(上海)有限公司 | 连续数据访问处理装置和芯片 |
CN114996024A (zh) * | 2022-07-29 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 内存带宽监测方法、服务器和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1283222C (en) * | 1989-09-22 | 1991-04-16 | Howard Gene Sachs | Microprocessor having separate instruction and data interfaces |
CN103164343A (zh) * | 2013-02-27 | 2013-06-19 | 山东大学 | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN103946819A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
CN104115129A (zh) * | 2011-12-21 | 2014-10-22 | 英特尔公司 | 用于从处理器到存储器子系统智能刷新数据的系统和方法 |
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN105830059A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 文件访问方法、装置及存储设备 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101466585B1 (ko) * | 2008-07-10 | 2014-11-28 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
JP5605238B2 (ja) * | 2011-01-25 | 2014-10-15 | ソニー株式会社 | メモリシステムおよびその動作方法 |
US9229853B2 (en) * | 2011-12-20 | 2016-01-05 | Intel Corporation | Method and system for data de-duplication |
US9262336B2 (en) | 2011-12-23 | 2016-02-16 | Intel Corporation | Page miss handler including wear leveling logic |
US10380030B2 (en) * | 2012-12-05 | 2019-08-13 | Arm Limited | Caching of virtual to physical address translations |
EP3060993B1 (en) * | 2013-10-21 | 2023-03-08 | FLC Global, Ltd. | Final level cache system and corresponding method |
KR20150139718A (ko) * | 2014-06-03 | 2015-12-14 | 에스케이하이닉스 주식회사 | 불휘발성 메모리를 제어하는 컨트롤러 및 그것을 포함하는 반도체 장치 |
CN105354152B (zh) * | 2014-08-19 | 2018-06-26 | 华为技术有限公司 | 非易失性存储器及磨损均衡方法 |
CN105786721A (zh) * | 2014-12-25 | 2016-07-20 | 研祥智能科技股份有限公司 | 一种内存地址映射管理方法及处理器 |
CN105786722B (zh) * | 2014-12-25 | 2020-10-27 | 研祥智能科技股份有限公司 | 基于异构混合内存的nvm内存擦写控制方法和系统 |
-
2016
- 2016-12-28 WO PCT/CN2016/112699 patent/WO2018119773A1/zh unknown
- 2016-12-28 CN CN201680084386.6A patent/CN109219804B/zh active Active
- 2016-12-28 EP EP16925965.2A patent/EP3553665B1/en active Active
-
2019
- 2019-06-27 US US16/455,466 patent/US10997078B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1283222C (en) * | 1989-09-22 | 1991-04-16 | Howard Gene Sachs | Microprocessor having separate instruction and data interfaces |
CN103946819A (zh) * | 2011-09-30 | 2014-07-23 | 英特尔公司 | 用于非易失性系统存储器的统计耗损均衡 |
CN104115129A (zh) * | 2011-12-21 | 2014-10-22 | 英特尔公司 | 用于从处理器到存储器子系统智能刷新数据的系统和方法 |
CN103164343A (zh) * | 2013-02-27 | 2013-06-19 | 山东大学 | 基于相变存储器的分页、ecc校验及多位预取方法及其结构 |
CN103810112A (zh) * | 2014-01-28 | 2014-05-21 | 华中科技大学 | 一种非易失性内存系统及其管理方法 |
CN105830059A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 文件访问方法、装置及存储设备 |
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
Non-Patent Citations (1)
Title |
---|
SPARC V8处理器中存储管理单元的设计;肖建青等;《科学技术与工程》;20101108(第31期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20190324914A1 (en) | 2019-10-24 |
EP3553665A4 (en) | 2020-01-29 |
WO2018119773A1 (zh) | 2018-07-05 |
EP3553665A1 (en) | 2019-10-16 |
EP3553665B1 (en) | 2024-05-15 |
US10997078B2 (en) | 2021-05-04 |
CN109219804A (zh) | 2019-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109219804B (zh) | 非易失内存访问方法、装置和系统 | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
KR102407782B1 (ko) | 변환 색인 버퍼의 엔트리들에 대한 리스의 적응 확장 | |
KR101379596B1 (ko) | Tlb 프리페칭 | |
JP5628404B2 (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
US9792221B2 (en) | System and method for improving performance of read/write operations from a persistent memory device | |
US10019377B2 (en) | Managing cache coherence using information in a page table | |
CN109582214B (zh) | 数据访问方法以及计算机系统 | |
US6782453B2 (en) | Storing data in memory | |
US20150143046A1 (en) | Systems and methods for reducing first level cache energy by eliminating cache address tags | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US9817762B2 (en) | Facilitating efficient prefetching for scatter/gather operations | |
CN111858404B (zh) | 地址转换的方法和系统、以及计算机可读介质 | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
US10078588B2 (en) | Using leases for entries in a translation lookaside buffer | |
CN107870867B (zh) | 32位cpu访问大于4gb内存空间的方法与装置 | |
US7380068B2 (en) | System and method for contention-based cache performance optimization | |
US11169924B2 (en) | Prefetch management in a hierarchical cache system | |
US6587923B1 (en) | Dual line size cache directory | |
CN114063934B (zh) | 数据更新装置、方法及电子设备 | |
KR970029072A (ko) | 이중 디렉토리 가상 캐쉬 및 그 제어 방법 | |
US20030033483A1 (en) | Cache architecture to reduce leakage power consumption | |
CN107870870B (zh) | 访问超过地址总线宽度的内存空间 | |
CN112631961B (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
CN111198827B (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 |