CN106560798B - 一种内存访问方法、装置及计算机*** - Google Patents
一种内存访问方法、装置及计算机*** Download PDFInfo
- Publication number
- CN106560798B CN106560798B CN201510639399.2A CN201510639399A CN106560798B CN 106560798 B CN106560798 B CN 106560798B CN 201510639399 A CN201510639399 A CN 201510639399A CN 106560798 B CN106560798 B CN 106560798B
- Authority
- CN
- China
- Prior art keywords
- cache
- physical page
- memory
- flag bit
- physical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了一种内存访问方法、装置及计算机***,所述方法包括:获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址;获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置;若所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。通过本发明实施例可以提高内存访问的效率,提升处理器的性能。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种内存访问方法、装置及计算机***。
背景技术
缓存(英文:Cache)位于中央处理器(英文:Central Processing Unit,缩写:CPU)和内存(英文:Memory)之间,主要是为了解决CPU运算速度和内存读写速度不匹配的问题。目前CPU一般采用三级Cache结构,包括一级缓存L1 Cache、二级缓存L2 Cache和三级缓存L3 Cache。基于上述的多级Cache,现有技术中CPU执行内存数据读取操作的具体过程如下:当CPU的核心Core发出读数据请求时,通过逐层查找的方式,即按照L1 Cache、L2 Cache、L3Cache的顺序查找数据,如果找不到,则再去内存中查找,直至查找到数据为止。
在上述的查找过程中,通常需要经过多次查找方可命中,例如要读取的数据存储在内存中,这样必须在CPU的内部缓存(即L1 Cache、L2 Cache和L3 Cache)均未命中的情况下才会到内存查找数据,从而带来了较长的查找延迟,导致内存的访问效率较低,影响处理器性能的发挥。
发明内容
本发明实施例提供了一种内存访问方法、装置及计算机***,可以提高内存访问的效率,提升处理器的性能。
本发明实施例第一方面提供了一种内存访问方法,包括:
获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址;
获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置;
若所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
结合第一方面,在第一方面的第一种可能的实施方式中,所述根据所述第二标志位从所述内存中读取所述物理页,包括:
根据所述物理地址从所述内存的Cache中读取所述物理页;
若所述内存的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,还包括:
若所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,则根据所述物理地址从所述处理器的Cache中读取所述物理页。
结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第三种可能的实施方式中,所述获取第一内存访问请求包括的虚拟地址之前,还包括:
获取第二内存访问请求包括的所述虚拟地址,并从所述TLB中查询所述虚拟地址对应的所述物理地址;
针对所述物理地址对应的所述物理页,在所述PTE中设置第一标志位,并将所述第一标志位的指示状态初始化为所述处理器的Cache中不包括所述物理页;
根据所述物理地址从所述内存中读取所述物理页,将所述物理页从所述内存复制到所述处理器的Cache中,并在所述内存的Cache包括的所述物理页中记录所述处理器的标识信息;
修改所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,并针对所述物理页在所述PTE中设置第二标志位,所述第二标志位用于指示所述物理页在所述内存中的位置。
结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,还包括:
当所述TLB发生替换或所述内存的Cache发生替换时,修改所述PTE中所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页;
根据所述第二标志位将所述处理器的标识信息从所述内存的Cache包括的所述物理页中清除;
将所述PTE中所述第二标志位的指示信息清除。
结合第一方面,在第一方面的第五种可能的实施方式中,所述内存包括堆叠式动态随机存储器Stacked DRAM。
本发明实施例第二方面提供了一种内存访问装置,包括:
查询模块,用于获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址;
获取模块,用于获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置;
读取模块,用于在所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页时,根据所述第二标志位从所述内存中读取所述物理页。
结合第二方面,在第二方面的第一种可能的实施方式中,所述读取模块根据所述第二标志位从所述内存中读取所述物理页的具体方式为:
根据所述物理地址从所述内存的Cache中读取所述物理页;
若所述内存的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第二种可能的实施方式中,所述读取模块,还用于在所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页时,根据所述物理地址从所述处理器的Cache中读取所述物理页。
结合第二方面或第二方面的第一种可能的实施方式,在第二方面的第三种可能的实施方式中,所述查询模块,还用于在获取第一内存访问请求包括的虚拟地址之前,获取第二内存访问请求包括的所述虚拟地址,并从所述TLB中查询所述虚拟地址对应的所述物理地址;
其中,所述装置还包括:
设置模块,用于针对所述物理地址对应的所述物理页,在所述PTE中设置第一标志位,并将所述第一标志位的指示状态初始化为所述处理器的Cache中不包括所述物理页;
复制模块,用于根据所述物理地址从所述内存中读取所述物理页,将所述物理页从所述内存复制到所述处理器的Cache中;
记录模块,用于在所述内存的Cache包括的所述物理页中记录所述处理器的标识信息;
其中,所述设置模块,还用于修改所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,并针对所述物理页在所述PTE中设置第二标志位,所述第二标志位用于指示所述物理页在所述内存中的位置。
结合第二方面的第三种可能的实施方式,在第二方面的第四种可能的实施方式中,所述设置模块,还用于当所述TLB发生替换或所述内存的Cache发生替换时,修改所述PTE中所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页;
其中,所述装置还包括:
清除模块,用于根据所述第二标志位将所述处理器的标识信息从所述内存的Cache包括的所述物理页中清除,并将所述PTE中所述第二标志位的指示信息清除。
结合第二方面,在第二方面的第五种可能的实施方式中,所述内存包括堆叠式动态随机存储器Stacked DRAM。
本发明实施例第三方面提供了一种计算机***,包括内存和上述任一项所述的装置。
通过本发明实施例可获取第一内存访问请求包括的虚拟地址,从页表缓存TLB中查询该虚拟地址对应的物理地址,并获取该TLB的页表条目PTE中针对该物理地址对应的物理页预先设置的第一标志位和第二标志位,该第一标志位用于指示处理器的缓存Cache中是否包括该物理页,该第二标志位用于指示该物理页在内存中的位置,如果该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则根据该第二标志位从该内存中读取该物理页,可以提高内存访问的效率,提升处理器的性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种计算机***的结构示意图;
图2是本发明实施例提供的一种内存访问方法的第一实施例流程示意图;
图3是本发明实施例提供的一种内存访问方法的第二实施例流程示意图;
图4是本发明实施例提供的一种内存访问装置的第一实施例结构示意图;
图5是本发明实施例提供的一种内存访问装置的第二实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种内存访问方法、装置及计算机***,可以提高内存访问的效率,提升处理器的性能。以下分别进行详细说明。
本发明提供的内存访问方法,其执行主体可以为包含多级缓存Cache的CPU中的CPU Core,也可以为包含多级Cache的CPU中的具有数据读/写功能的硬件设备,该方法可以适用于单核(Single-core)计算机***,也可以适用于多核(Multi-core)/众核(Many-core)计算机***。
请参阅图1,为本发明实施例提供的一种计算机***的结构示意图。该计算机***包括CPU Core、CPU Cache以及内存(英文:Memory)。以四核CPU为例,并且每个CPU具有三个级别的Cache,该三个级别的缓存包括一级缓存(英文:Level 1Cache,缩写:L1 Cache)、二级缓存(英文:Level 2Cache,缩写:L2 Cache)和三级缓存(英文:Level 3Cache,缩写:L3Cache),其中,L1 Cache包括指令缓存I-Cache(英文:Instruction-Cache)、数据缓存D-Cache(英文:Data-Cache),CPU访问三级Cache时的优先级别为:L1 Cache>L2 Cache>L3Cache。
其中,对于具有N级Cache的计算机***而言,一级缓存的级别最高,N级缓存的级别最低,一级缓存到N级缓存之间的缓存级别递减。
进一步的,该计算机***还可以包括页表缓存(英文:Translation Look-asideBuffer,缩写:TLB),TLB具体包括:指令页表缓存I-TLB(英文:Instruction-TLB)、数据页表缓存D-TLB(英文:Data-TLB)。
具体的,L1 Cache采用高速小容量的Cache,L2 Cache采用速度中等容量较大的Cache,L3 Cache采用低速大容量的Cache,并且L1 Cache、L2 Cache为各个CPU Core的私有缓存,L3 Cache为多个CPU Core的共享缓存。所谓私有缓存是为一个CPU Core所私有的,所谓共享缓存是为多个CPU Core所共享的。
请参阅图2,为本发明实施例提供的一种内存访问方法的第一实施例流程示意图。本实施例中所描述的内存访问方法,包括以下步骤:
S101、获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址。
其中,现代操作***提供了一种内存管理的抽象,即虚拟内存(英文:VirtualMemory)技术,程序运行在虚拟地址空间(英文:Virtual Address Space),进程使用虚拟内存中的地址,进程需要获取某个物理地址(英文:Physical Address,缩写:PA)对应的数据时,先发出虚拟地址,由操作***协助内存管理单元(英文:Memory Manager Unit,缩写:MMU)把虚拟地址映射得到物理地址,有了这样的抽象,一个程序就可以使用比物理地址空间大得多的虚拟地址空间。物理地址是放在寻址总线上的地址。放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输。如果是写,电路根据这个地址每位的值就在相应地址的物理内存中放入数据总线上的内容。物理内存是以8位字节(英文:byte)为单位编址的。
其中,目前大多数使用虚拟存储器的***都使用一种称为分页(英文:paging)的机制,即虚拟地址空间划分成称为页(英文:page)的单位,而相应的物理地址空间也被进行划分,单位是页桢(英文:frame),页和页桢的大小必须相同,虚拟地址和物理地址的映射以页为单位进行,虚拟地址和物理地址的映射关系保存在页表(英文:page table)中,页表一般保存在内存中,其中最近经常被使用的那部分页表保存在CPU Core的TLB中,TLB是MMU一个小的,虚拟寻址的缓存,用于改进虚拟地址到物理地址转换速度,其中每一行都保存着一个由单个页表条目(英文:Page Table Entry,缩写:PTE)组成的块,一个PTE中包含一条虚拟地址与物理地址的映射关系,如果没有TLB,则每次读取数据都需要访问内存,即查询内存中的页表以获得虚拟地址对应的物理地址,再根据物理地址从内存中读取数据(即物理地址对应的物理页)。
其中,TLB的工作原理是:当CPU对数据进行读请求时,CPU根据虚拟地址的前20位到TLB中查找,TLB中保存着虚拟地址前20位和页框号的映射关系,如果匹配到虚拟地址就可以快速查找到页框号(页框号可以理解为页表项),通过页框号与虚拟地址后12位的偏移组合得到最终的物理地址。如果没有在TLB中匹配到虚拟地址就出现TLB缺失,需要到页表中查询页表项,如果不在页表中,说明要读取的内容不在内存,需要到磁盘读取。在分页机制中,TLB中的数据和页表的数据关联,不是由处理器维护,而是由操作***OS来维护,TLB的刷新是通过装入处理器中的CR3寄存器来完成。如果MMU发现在TLB中没有命中,它在常规的页表查找后,用找到的页表项替换TLB中的一个PTE。
其中,物理页即为真实的内存,与虚拟内存对应,对于32位的CPU来说,每个物理页的大小是4KB。
具体的,当CPU的执行机构(例如CPU Core)收到程序需要读取数据而发送的第一内存访问请求时,CPU Core首先获取其中包括的虚拟地址,进而从TLB中查找与该虚拟地址匹配的页表,如果TLB中存放着所需的页表,则称为TLB命中(英文:TLB Hit),接下来CPUCore再获取TLB中所需页表包括的物理地址。
进一步的,如果CPU Core在TLB中没有找到与该虚拟地址匹配的页表,则发生了TLB缺失(英文:TLB Miss),那么CPU Core从内存的页表中查询以得到该虚拟地址对应的物理地址。
需要指出的是,CPU Core中可以包含TLB,但TLB不限于设置在CPU Core中。
S102、获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置。
其中,处理器(例如CPU)可包含多级缓存,CPU缓存是为更快速的连接CPU与内存而存在的中间媒介,是位于CPU与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却比内存要快得多,在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。一般地,CPU可分为三级Cache,包括L1 Cache、L2 Cache和L3 Cache)。
具体的,CPU Core可在每个PTE中扩展(1+n)个比特(英文:bit),其中1个bit(记为第一标志位)用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的n个bit(记为第二标志位)用来指示该物理地址对应的物理页在内存中的位置,该(1+n)个bit可全部初始化为空(英文:Null)或0,即第一标志位为Null或0时指示该物理地址对应的物理页不在处理器的Cache中,第一标志位为1时指示该物理地址对应的物理页在处理器的Cache中。
进一步的,CPU Core从该PTE中获取预先针对该物理页设置的第一标志位和第二标志位。
其中,内存中的数据是以bit为单位写入一张大的矩阵中,每个单元格称为Cell,只要指定行和列就可以准确地定位到某个Cell,这就是内存寻址的基本原理,而这样的一个阵列就称为内存的Bank(本发明中指逻辑Bank),n的值具体根据内存Bank的数量N确定,对应关系为:2n=N,例如Bank的数量N=256,则n=8,从而在每个PTE中扩展9个bit,此时其中1个bit用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的8个bit用来指示该物理地址对应的物理页在内存中的位置(即Bank ID)。
本发明中的内存具体可为堆叠式动态随机存储器Stacked DRAM。
S103、若所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
具体的,如果第一标志位的指示状态为该处理器的Cache中不包括该物理页,则CPU Core可直接根据该第二标志位从内存的相应Bank中直接读取该物理页,从而直接跳过从处理器的Cache中根据该物理地址查询该物理页的环节,消除了在处理器的Cache中查询带来的延迟,从而提高了内存数据读取的速度。
在一些可行的实施方式中,如果该第一标志位的指示状态为该处理器的Cache中包括该物理页,则CPU Core可根据该物理地址从处理器的Cache中读取该物理页,假设该处理器的Cache有N级,则CPU Core按照该N级Cache的级别由高到低的顺序依次查找,查找一个i(1≤i≤N)级缓存是否命中的过程可以为:利用虚拟地址的中间若干bit到该i级缓存中查找,选出一组缓存行(英文:Cache Line)的标签(英文:Tag),该Tag可以是物理地址的高位bit,然后将TLB得到的物理地址的高位bit和选出的一组Tag进行比较,若某组CacheLine的Tag能和物理地址的高位bit匹配上,则该i级缓存命中,否则,则该i级缓存未命中。
通过本发明实施例可获取第一内存访问请求包括的虚拟地址,从页表缓存TLB中查询该虚拟地址对应的物理地址,并获取该TLB的页表条目PTE中针对该物理地址对应的物理页预先设置的第一标志位和第二标志位,该第一标志位用于指示处理器的缓存Cache中是否包括该物理页,该第二标志位用于指示该物理页在内存中的位置,如果该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则根据该第二标志位从该内存中读取该物理页,可以提高内存访问的效率,提升处理器的性能。
请参阅图3,为本发明实施例提供的一种内存访问方法的第二实施例流程示意图。本实施例中所描述的内存访问方法,包括以下步骤:
S201、获取第二内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址。
其中,现代操作***提供了一种内存管理的抽象,即虚拟内存(英文:VirtualMemory)技术,程序运行在虚拟地址空间(英文:Virtual Address Space),进程使用虚拟内存中的地址,进程需要获取某个物理地址对应的数据时,先发出虚拟地址,由操作***协助内存管理单元(英文:Memory Manager Unit,缩写:MMU)把虚拟地址映射得到物理地址,有了这样的抽象,一个程序就可以使用比物理地址空间大得多的虚拟地址空间。
其中,目前大多数使用虚拟存储器的***都使用一种称为分页(英文:paging)的机制,即虚拟地址空间划分成称为页(英文:page)的单位,而相应的物理地址空间也被进行划分,单位是页桢(英文:frame),页和页桢的大小必须相同,虚拟地址和物理地址的映射以页为单位进行,映射关系保存在页表(英文:page table)中,页表一般保存在内存中,其中最近经常被使用的那部分页表保存在CPU Core的TLB中,TLB是MMU一个小的,虚拟寻址的缓存,用于改进虚拟地址到物理地址转换速度,其中每一行都保存着一个由单个页表条目(英文:Page Table Entry,缩写:PTE)组成的块,一个PTE中包含一条虚拟地址与物理地址的映射关系,如果没有TLB,则每次读取数据都需要访问内存,即查询内存中的页表以获得虚拟地址对应的物理地址,再根据物理地址从内存中读取数据(即物理地址对应的物理页)。
其中,物理页即为真实的内存,与虚拟内存对应,对于32位的CPU来说,每个物理页的大小是4KB。
具体的,当CPU的执行机构(例如CPU Core)收到程序需要读取数据而发送的第二内存访问请求时,CPU Core首先获取其中包括的虚拟地址,进而从TLB中查找与该虚拟地址匹配的页表,如果TLB中存放着所需的页表,则称为TLB命中(英文:TLB Hit),接下来CPUCore再获取TLB中所需页表包括的物理地址。
进一步的,如果CPU Core在TLB中没有找到与该虚拟地址匹配的页表,则发生了TLB缺失(英文:TLB Miss),那么CPU Core从内存的页表中查询以得到该虚拟地址对应的物理地址。
S202、针对所述物理地址对应的物理页,在所述TLB的页表条目PTE中设置第一标志位,并将所述第一标志位的指示状态初始化为处理器的Cache中不包括所述物理页。
其中,CPU Core可在每个PTE中扩展(1+n)个bit,其中1个bit(记为第一标志位)用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的n个bit(记为第二标志位)用来指示该物理地址对应的物理页在内存中的位置,该(1+n)个bit可全部初始化为空(英文:Null)或0,即第一标志位为Null或0时指示该物理地址对应的物理页不在处理器的Cache中,第一标志位为1时指示该物理地址对应的物理页在处理器的Cache中。
进一步的,内存中的数据是以bit为单位写入一张大的矩阵中,每个单元格称为Cell,只要指定行和列就可以准确地定位到某个Cell,这就是内存寻址的基本原理,而这样的一个阵列就称为内存的Bank(本发明中指逻辑Bank),n的值具体根据内存Bank的数量N确定,对应关系为:2n=N,例如Bank的数量N=256,则n=8,从而在每个PTE中扩展9个bit,此时其中1个bit用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的8个bit用来指示该物理地址对应的物理页在内存中的位置(即Bank ID)。
具体的,当CPU复位或上电时该(1+n)个bit可全部初始化为Null或0,因此此时任意一个物理地址对应的物理页的第一标志位的指示状态均为处理器的Cache中不包括该任意一个物理地址对应的物理页。
本发明中的内存具体可为堆叠式动态随机存储器Stacked DRAM。
S203、根据所述物理地址从所述内存中读取所述物理页,将所述物理页从内存复制到所述处理器的Cache中,并在所述内存的Cache包括的所述物理页中记录所述处理器的标识信息。
具体的,由于该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则CPU Core直接根据该物理地址从内存中读取该物理页,获取该物理页在该内存中的位置(即Bank ID),同时将该物理页复制到处理器的Cache中,并在该内存的Cache包括的该物理页中记录该处理器的标识信息,用来指示该物理页是否被多个CPU Core或者多个进程同时使用。
其中,该处理器的标识信息具体可以是各个CPU Core自动生成的相互之间不重复的CPU ID,例如在四核CPU(包括Core 0、Core 1、Core2和Core 3)中,CPU ID可以分别表示为00、01、10和11,对于CPU ID的具体表示方式本发明实施例不做限定。
S204、修改所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,并针对所述物理页在所述PTE中设置第二标志位,所述第二标志位用于指示所述物理页在所述内存中的位置。
具体实现中,CPU Core将该物理页复制到处理器的Cache中之后,可以通过将与该第一标志位对应的1个bit置为1的方式实现将该第一标志位的指示状态修改为该处理器的Cache中包括该物理页,同时针对该物理页在对应的PTE中设置第二标志位(即n个bit),例如内存Bank的数量N为64,则n=6,即此时6个bit代表该物理页在该内存中的位置,假设CPUCore获取的该物理页在该内存中的Bank ID为33,则第二标志位即可设为100001,此时该PTE中扩展的(1+6)个bit位可为1100001或者1000011。
S205、获取第一内存访问请求包括的所述虚拟地址,并从所述TLB中查询所述虚拟地址对应的所述物理地址。
S206、获取所述PTE中针对所述物理地址对应的物理页设置的第一标志位和第二标志位。
S207、若所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
S208、若所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,则根据所述物理地址从所述处理器的Cache中读取所述物理页。
具体的,当程序再次访问该物理地址对应的该物理页时,CPU Core首先从该物理地址对应的PTE中获取针对该物理页设置的第一标志位和第二标志位,此时如果该第一标志位的指示状态为该处理器的Cache中包括该物理页,则CPU Core根据该物理地址从该处理器的Cache中读取该物理页,如果期间该第一标志位对应的1个bit被重置为Null或0,则此时该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则CPU Core根据第二标志位(即Bank ID)从该内存中读取该物理页,例如第二标志位为100001,则CPU Core直接从内存中Bank ID为33的Bank中读取该物理页。
在一些可行的实施方式中,当该TLB发生替换或该内存的Cache发生替换(即该物理页被其它物理页替换)时,CPU Core可以通过将与该第一标志位对应的1个bit置为Null或0的方式修改该PTE中该第一标志位的指示状态为该处理器的Cache中不包括所述物理页,该CPU Core在确定该内存的Cache包括的该物理页中的处理器标识信息还包括其它CPUCore的CPU ID时,根据CPU ID通知相应的CPU Core将各自存储的TLB中对应PTE包括的第一标志位对应的1个bit和第二标志位对应的n个bit置为Null或0,同时根据该第二标志位将该处理器的标识信息从该内存的Cache包括的该物理页中清除,最后将该PTE中该第二标志位的指示信息清除(即将n个bit置为Null或0)。
通过本发明实施例可获取第二内存访问请求包括的虚拟地址,并从页表缓存TLB中查询该虚拟地址对应的物理地址,针对该物理地址对应的物理页在该TLB的页表条目PTE中设置第一标志位,并将该第一标志位的指示状态初始化为处理器的Cache中不包括该物理页,进而根据该物理地址从该内存中读取该物理页,将该物理页从内存复制到该处理器的Cache中,并在该内存的Cache包括的该物理页中记录该处理器的标识信息,修改该第一标志位的指示状态为该处理器的Cache中包括该物理页,并针对该物理页在该PTE中设置第二标志位,该第二标志位用于指示该物理页在该内存中的位置;获取第一内存访问请求包括的该虚拟地址,从该TLB中查询该虚拟地址对应的该物理地址,并获取该PTE中针对该物理地址对应的物理页设置的第一标志位和第二标志位,该第二标志位用于指示该物理页在内存中的位置,如果该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则根据该第二标志位从该内存中读取该物理页,否则,则根据该物理地址从该处理器的Cache中读取该物理页,可以提高内存访问的效率,提升处理器的性能。
请参阅图4,为本发明实施例提供的一种内存访问装置的第一实施例结构示意图。本实施例中所描述的内存访问装置,包括:查询模块401、获取模块402和读取模块403,其中:
查询模块401,用于获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址。
具体的,当CPU的执行机构(例如CPU Core)收到程序需要读取数据而发送的第一内存访问请求时,查询模块401首先获取其中包括的虚拟地址,进而从TLB中查找与该虚拟地址匹配的页表,如果TLB中存放着所需的页表,则称为TLB命中(英文:TLB Hit),接下来查询模块401再获取TLB中所需页表包括的物理地址。
进一步的,如果查询模块401在TLB中没有找到与该虚拟地址匹配的页表,则发生了TLB缺失(英文:TLB Miss),那么查询模块401从内存的页表中查询以得到该虚拟地址对应的物理地址。
需要指出的是,CPU Core中可以包含TLB,但TLB不限于设置在CPU Core中。
获取模块402,用于获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置。
其中,处理器(例如CPU)可包含多级缓存,CPU缓存是为更快速的连接CPU与内存而存在的中间媒介,是位于CPU与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却比内存要快得多,在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。一般地,CPU可分为三级Cache,包括L1 Cache、L2 Cache和L3 Cache)。
具体的,CPU Core可在每个PTE中扩展(1+n)个bit,其中1个bit(记为第一标志位)用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的n个bit(记为第二标志位)用来指示该物理地址对应的物理页在内存中的位置,该(1+n)个bit可全部初始化为空(英文:Null)或0,即第一标志位为Null或0时指示该物理地址对应的物理页不在处理器的Cache中,第一标志位为1时指示该物理地址对应的物理页在处理器的Cache中。
进一步的,获取模块402从该PTE中获取预先针对该物理页设置的第一标志位和第二标志位。
其中,内存中的数据是以bit为单位写入一张大的矩阵中,每个单元格称为Cell,只要指定行和列就可以准确地定位到某个Cell,这就是内存寻址的基本原理,而这样的一个阵列就称为内存的Bank(本发明中指逻辑Bank),n的值具体根据内存Bank的数量N确定,对应关系为:2n=N,例如Bank的数量N=256,则n=8,从而在每个PTE中扩展9个bit,此时其中1个bit用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的8个bit用来指示该物理地址对应的物理页在内存中的位置(即Bank ID)。
本发明中的内存具体可为堆叠式动态随机存储器Stacked DRAM。
读取模块403,用于在所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页时,根据所述第二标志位从所述内存中读取所述物理页。
具体的,如果第一标志位的指示状态为该处理器的Cache中不包括该物理页,则读取模块403可直接根据该第二标志位从内存的相应Bank中直接读取该物理页,从而直接跳过从处理器的Cache中根据该物理地址查询该物理页的环节,消除了读取模块403在处理器的Cache中查询带来的延迟,从而提高了内存数据读取的速度。
在一些可行的实施方式中,如果该第一标志位的指示状态为该处理器的Cache中包括该物理页,则读取模块403可根据该物理地址从处理器的Cache中读取该物理页,假设该处理器的Cache有N级,则读取模块403按照该N级Cache的级别由高到低的顺序依次查找,查找一个i(1≤i≤N)级缓存是否命中的过程可以为:利用虚拟地址的中间若干bit到该i级缓存中查找,选出一组缓存行(英文:Cache Line)的标签(英文:Tag),该Tag可以是物理地址的高位bit,然后将TLB得到的物理地址的高位bit和选出的一组Tag进行比较,若某组Cache Line的Tag能和物理地址的高位bit匹配上,则该i级缓存命中,否则,则该i级缓存未命中。
通过本发明实施例可获取第一内存访问请求包括的虚拟地址,从页表缓存TLB中查询该虚拟地址对应的物理地址,并获取该TLB的页表条目PTE中针对该物理地址对应的物理页预先设置的第一标志位和第二标志位,该第一标志位用于指示处理器的缓存Cache中是否包括该物理页,该第二标志位用于指示该物理页在内存中的位置,如果该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则根据该第二标志位从该内存中读取该物理页,可以提高内存访问的效率,提升处理器的性能。
请参阅图5,为本发明实施例提供的一种内存访问装置的第二实施例结构示意图。本实施例中所描述的内存访问装置,包括:查询模块501、设置模块502、复制模块503、记录模块504、获取模块505、读取模块506和清除模块507,其中:
查询模块501,用于获取第二内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址。
具体的,当CPU的执行机构(例如CPU Core)收到程序需要读取数据而发送的第二内存访问请求时,查询模块501首先获取其中包括的虚拟地址,进而从TLB中查找与该虚拟地址匹配的页表,如果TLB中存放着所需的页表,则称为TLB命中(英文:TLB Hit),接下来查询模块501再获取TLB中所需页表包括的物理地址。
进一步的,如果查询模块501在TLB中没有找到与该虚拟地址匹配的页表,则发生了TLB缺失(英文:TLB Miss),那么查询模块501从内存的页表中查询以得到该虚拟地址对应的物理地址。
设置模块502,用于针对所述物理地址对应的物理页,在所述TLB的页表条目PTE中设置第一标志位,并将所述第一标志位的指示状态初始化为处理器的Cache中不包括所述物理页。
其中,设置模块502可在每个PTE中扩展(1+n)个bit,其中1个bit(记为第一标志位)用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的n个bit(记为第二标志位)用来指示该物理地址对应的物理页在内存中的位置,设置模块502可将该(1+n)个bit全部初始化为空(英文:Null)或0,即第一标志位为Null或0时指示该物理地址对应的物理页不在处理器的Cache中,第一标志位为1时指示该物理地址对应的物理页在处理器的Cache中。
进一步的,内存中的数据是以bit为单位写入一张大的矩阵中,每个单元格称为Cell,只要指定行和列就可以准确地定位到某个Cell,这就是内存寻址的基本原理,而这样的一个阵列就称为内存的Bank(本发明中指逻辑Bank),n的值具体根据内存Bank的数量N确定,对应关系为:2n=N,例如Bank的数量N=256,则n=8,从而在每个PTE中扩展9个bit,此时其中1个bit用来指示该物理地址对应的物理页是否存在于处理器的Cache中,另外的8个bit用来指示该物理地址对应的物理页在内存中的位置(即Bank ID)。
具体的,当CPU复位或上电时设置模块502可将该(1+n)个bit全部初始化为Null或0,因此此时任意一个物理地址对应的物理页的第一标志位的指示状态均为处理器的Cache中不包括该任意一个物理地址对应的物理页。
本发明中的内存具体可为堆叠式动态随机存储器Stacked DRAM。
复制模块503,用于根据所述物理地址从内存中读取所述物理页,将所述物理页从所述内存复制到所述处理器的Cache中。
记录模块504,用于在所述内存的Cache包括的所述物理页中记录所述处理器的标识信息。
具体的,由于该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则复制模块503直接根据该物理地址从内存中读取该物理页,获取该物理页在该内存中的位置(即Bank ID),同时将该物理页复制到处理器的Cache中,记录模块504在该内存的Cache包括的该物理页中记录该处理器的标识信息,用来指示该物理页是否被多个CPU Core或者多个进程同时使用。
其中,该处理器的标识信息具体可以是各个CPU Core自动生成的相互之间不重复的CPU ID,例如在四核CPU(包括Core 0、Core 1、Core2和Core 3)中,CPU ID可以分别表示为00、01、10和11,对于CPU ID的具体表示方式本发明实施例不做限定。
所述设置模块502,还用于修改所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,并针对所述物理页在所述PTE中设置第二标志位,所述第二标志位用于指示所述物理页在所述内存中的位置。
具体实现中,在复制模块503将该物理页复制到处理器的Cache中之后,设置模块502可以通过将与该第一标志位对应的1个bit置为1的方式实现将该第一标志位的指示状态修改为该处理器的Cache中包括该物理页,同时设置模块502针对该物理页在对应的PTE中设置第二标志位(即n个bit),例如内存Bank的数量N为64,则n=6,即此时6个bit代表该物理页在该内存中的位置,假设CPU Core获取的该物理页在该内存中的Bank ID为33,则设置模块502可将第二标志位设为100001,此时该PTE中扩展的(1+6)个bit位可为1100001或者1000011。
所述查询模块501,还用于获取第一内存访问请求包括的所述虚拟地址,并从所述TLB中查询所述虚拟地址对应的物理地址。
获取模块505,用于获取所述PTE中针对所述物理地址对应的所述物理页设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置。
读取模块506,用于在所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页时,根据所述第二标志位从所述内存中读取所述物理页。
在一些可行的实施方式中,所述读取模块506根据所述第二标志位从所述内存中读取所述物理页的具体方式为:
根据所述物理地址从所述内存的Cache中读取所述物理页。
若所述内存的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
所述读取模块506,还用于在所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页时,根据所述物理地址从所述处理器的Cache中读取所述物理页。
在一些可行的实施方式中,所述设置模块502,还用于当所述TLB发生替换或所述内存的Cache发生替换时,修改所述PTE中所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页。
所述装置还包括:清除模块507,用于根据所述第二标志位将所述处理器的标识信息从所述内存的Cache包括的所述物理页中清除,并将所述PTE中所述第二标志位的指示信息清除。
具体的,当程序再次访问该物理地址对应的该物理页时,获取模块505首先从该物理地址对应的PTE中获取针对该物理页设置的第一标志位和第二标志位,此时如果该第一标志位的指示状态为该处理器的Cache中包括该物理页,则读取模块506根据该物理地址从该处理器的Cache中读取该物理页,如果期间该第一标志位对应的1个bit被重置为Null或0,则此时该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则读取模块506根据第二标志位(即Bank ID)从该内存中读取该物理页,例如第二标志位为100001,则读取模块506直接从内存中Bank ID为33的Bank中读取该物理页。
在一些可行的实施方式中,当该TLB发生替换或该内存的Cache发生替换(即该物理页被其它物理页替换)时,设置模块502可以通过将与该第一标志位对应的1个bit置为Null或0的方式修改该PTE中该第一标志位的指示状态为该处理器的Cache中不包括所述物理页,在确定该内存的Cache包括的该物理页中的处理器标识信息还包括其它CPU Core的CPU ID时,清除模块507根据CPU ID通知相应的CPU Core将各自存储的TLB中对应PTE包括的第一标志位对应的1个bit和第二标志位对应的n个bit置为Null或0,同时清除模块507根据该第二标志位将该处理器的标识信息从该内存的Cache包括的该物理页中清除,最后将该PTE中该第二标志位的指示信息清除(即将n个bit置为Null或0)。
通过本发明实施例可获取第二内存访问请求包括的虚拟地址,并从页表缓存TLB中查询该虚拟地址对应的物理地址,针对该物理地址对应的物理页在该TLB的页表条目PTE中设置第一标志位,并将该第一标志位的指示状态初始化为处理器的Cache中不包括该物理页,进而根据该物理地址从该内存中读取该物理页,将该物理页从内存复制到该处理器的Cache中,并在该内存的Cache包括的该物理页中记录该处理器的标识信息,修改该第一标志位的指示状态为该处理器的Cache中包括该物理页,并针对该物理页在该PTE中设置第二标志位,该第二标志位用于指示该物理页在该内存中的位置;获取第一内存访问请求包括的该虚拟地址,从该TLB中查询该虚拟地址对应的该物理地址,并获取该PTE中针对该物理地址对应的物理页设置的第一标志位和第二标志位,该第二标志位用于指示该物理页在内存中的位置,如果该第一标志位的指示状态为该处理器的Cache中不包括该物理页,则根据该第二标志位从该内存中读取该物理页,否则,则根据该物理地址从该处理器的Cache中读取该物理页,可以提高内存访问的效率,提升处理器的性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,简称RAM)等。
以上对本发明实施例所提供的一种内存访问方法、装置及计算机***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种内存访问方法,其特征在于,包括:
获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址;
获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置;
若所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页;
其中,所述获取第一内存访问请求包括的虚拟地址之前,还包括:
获取第二内存访问请求包括的所述虚拟地址,并从所述TLB中查询所述虚拟地址对应的所述物理地址;针对所述物理地址对应的所述物理页,在所述PTE中设置第一标志位,并将所述第一标志位的指示状态初始化为所述处理器的Cache中不包括所述物理页;
根据所述物理地址从所述内存中读取所述物理页,将所述物理页从所述内存复制到所述处理器的Cache中,并在所述内存的Cache包括的所述物理页中记录所述处理器的标识信息;
修改所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,并针对所述物理页在所述PTE中设置第二标志位,所述第二标志位用于指示所述物理页在所述内存中的位置。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第二标志位从所述内存中读取所述物理页,包括:
根据所述物理地址从所述内存的Cache中读取所述物理页;
若所述内存的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,则根据所述物理地址从所述处理器的Cache中读取所述物理页。
4.根据权利要求2所述的方法,其特征在于,还包括:
若所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,则根据所述物理地址从所述处理器的Cache中读取所述物理页。
5.根据权利要求1至4任意一项所述的方法,其特征在于,还包括:
当所述TLB发生替换或所述内存的Cache发生替换时,修改所述PTE中所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页;
根据所述第二标志位将所述处理器的标识信息从所述内存的Cache包括的所述物理页中清除;
将所述PTE中所述第二标志位的指示信息清除。
6.根据权利要求1所述的方法,其特征在于,
所述内存包括堆叠式动态随机存储器Stacked DRAM。
7.一种内存访问装置,其特征在于,包括:
查询模块,用于获取第一内存访问请求包括的虚拟地址,并从页表缓存TLB中查询所述虚拟地址对应的物理地址;
获取模块,用于获取所述TLB的页表条目PTE中针对所述物理地址对应的物理页预先设置的第一标志位和第二标志位,所述第一标志位用于指示处理器的缓存Cache中是否包括所述物理页,所述第二标志位用于指示所述物理页在内存中的位置;
读取模块,用于在所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页时,根据所述第二标志位从所述内存中读取所述物理页;
其中,所述查询模块,还用于在获取第一内存访问请求包括的虚拟地址之前,获取第二内存访问请求包括的所述虚拟地址,并从所述TLB中查询所述虚拟地址对应的所述物理地址;
其中,所述装置还包括:设置模块,用于针对所述物理地址对应的所述物理页,在所述PTE中设置第一标志位,并将所述第一标志位的指示状态初始化为所述处理器的Cache中不包括所述物理页;
复制模块,用于根据所述物理地址从所述内存中读取所述物理页,将所述物理页从所述内存复制到所述处理器的Cache中;
记录模块,用于在所述内存的Cache包括的所述物理页中记录所述处理器的标识信息;
其中,所述设置模块,还用于修改所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页,并针对所述物理页在所述PTE中设置第二标志位,所述第二标志位用于指示所述物理页在所述内存中的位置。
8.根据权利要求7所述的装置,其特征在于,所述读取模块根据所述第二标志位从所述内存中读取所述物理页的具体方式为:
根据所述物理地址从所述内存的Cache中读取所述物理页;
若所述内存的Cache中不包括所述物理页,则根据所述第二标志位从所述内存中读取所述物理页。
9.根据权利要求7所述的装置,其特征在于,
所述读取模块,还用于在所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页时,根据所述物理地址从所述处理器的Cache中读取所述物理页。
10.根据权利要求8所述的装置,其特征在于,
所述读取模块,还用于在所述第一标志位的指示状态为所述处理器的Cache中包括所述物理页时,根据所述物理地址从所述处理器的Cache中读取所述物理页。
11.根据权利要求7至10任意一项所述的装置,其特征在于,
所述设置模块,还用于当所述TLB发生替换或所述内存的Cache发生替换时,修改所述PTE中所述第一标志位的指示状态为所述处理器的Cache中不包括所述物理页;
其中,所述装置还包括:
清除模块,用于根据所述第二标志位将所述处理器的标识信息从所述内存的Cache包括的所述物理页中清除,并将所述PTE中所述第二标志位的指示信息清除。
12.根据权利要求7所述的装置,其特征在于,
所述内存包括堆叠式动态随机存储器Stacked DRAM。
13.一种计算机***,其特征在于,包括内存和如权利要求7~12中任一项所述的装置。
14.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质存储有计算机程序,所述计算机程序用于指令相关硬件,来完成权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510639399.2A CN106560798B (zh) | 2015-09-30 | 2015-09-30 | 一种内存访问方法、装置及计算机*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510639399.2A CN106560798B (zh) | 2015-09-30 | 2015-09-30 | 一种内存访问方法、装置及计算机*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106560798A CN106560798A (zh) | 2017-04-12 |
CN106560798B true CN106560798B (zh) | 2020-04-03 |
Family
ID=58485302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510639399.2A Active CN106560798B (zh) | 2015-09-30 | 2015-09-30 | 一种内存访问方法、装置及计算机*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106560798B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804350B (zh) * | 2017-04-27 | 2020-02-21 | 华为技术有限公司 | 一种内存访问方法及计算机*** |
CN111159005B (zh) * | 2018-11-07 | 2024-03-29 | 珠海全志科技股份有限公司 | 一种内存管理功能的测试方法和*** |
CN112148665B (zh) | 2019-06-28 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | 缓存的分配方法及装置 |
CN112463544B (zh) * | 2020-12-17 | 2023-05-02 | 深圳软牛科技有限公司 | 程序的运行监控方法、装置、设备及存储介质 |
US20240045805A1 (en) * | 2021-01-20 | 2024-02-08 | Alibaba Group Holding Limited | Core-aware caching systems and methods for multicore processors |
CN113836053A (zh) * | 2021-09-07 | 2021-12-24 | 上海砹芯科技有限公司 | 信息获取方法、装置和电子设备 |
CN114116540B (zh) * | 2022-01-26 | 2022-04-12 | 广东省新一代通信与网络创新研究院 | 一种用于提高处理器页表缓冲性能的方法及*** |
CN115080464B (zh) * | 2022-06-24 | 2023-07-07 | 海光信息技术股份有限公司 | 数据处理方法和数据处理装置 |
CN116339916B (zh) * | 2023-03-17 | 2023-11-10 | 摩尔线程智能科技(北京)有限责任公司 | 一种内存虚拟化方法及装置、电子设备和存储介质 |
CN116644006B (zh) * | 2023-07-27 | 2023-11-03 | 浪潮电子信息产业股份有限公司 | 一种内存页面管理方法、***、装置、设备及计算机介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
CN201540564U (zh) * | 2009-12-21 | 2010-08-04 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的电路 |
CN201570016U (zh) * | 2009-12-25 | 2010-09-01 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的电路 |
CN104239236A (zh) * | 2013-06-17 | 2014-12-24 | 华为技术有限公司 | 旁路转换缓冲缺失的处理方法及旁路转换缓冲 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080028181A1 (en) * | 2006-07-31 | 2008-01-31 | Nvidia Corporation | Dedicated mechanism for page mapping in a gpu |
-
2015
- 2015-09-30 CN CN201510639399.2A patent/CN106560798B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661437A (zh) * | 2008-08-28 | 2010-03-03 | 国际商业机器公司 | 旁路转换缓冲器以及在其中进行地址匹配的方法和装置 |
CN201540564U (zh) * | 2009-12-21 | 2010-08-04 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的电路 |
CN201570016U (zh) * | 2009-12-25 | 2010-09-01 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的电路 |
CN104239236A (zh) * | 2013-06-17 | 2014-12-24 | 华为技术有限公司 | 旁路转换缓冲缺失的处理方法及旁路转换缓冲 |
Also Published As
Publication number | Publication date |
---|---|
CN106560798A (zh) | 2017-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106560798B (zh) | 一种内存访问方法、装置及计算机*** | |
CN108804350B (zh) | 一种内存访问方法及计算机*** | |
CN104346294B (zh) | 基于多级缓存的数据读/写方法、装置和计算机*** | |
JP6505132B2 (ja) | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 | |
US9465748B2 (en) | Instruction fetch translation lookaside buffer management to support host and guest O/S translations | |
EP2350833B1 (en) | Opportunistic page largification | |
CN109582214B (zh) | 数据访问方法以及计算机*** | |
US9772943B1 (en) | Managing synonyms in virtual-address caches | |
JP2009512944A (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
US20070094476A1 (en) | Updating multiple levels of translation lookaside buffers (TLBs) field | |
EP3553665B1 (en) | Non-volatile memory access method, device, and system | |
US20180101480A1 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
CN109952565B (zh) | 内存访问技术 | |
US9135187B2 (en) | Apparatus and method for protecting memory in multi-processor system | |
US20140173210A1 (en) | Multi-core processing device with invalidation cache tags and methods | |
US9558121B2 (en) | Two-level cache locking mechanism | |
EP3485382B1 (en) | System and method for storing cache location information for cache entry transfer | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
US20040117591A1 (en) | Data processing system having no system memory | |
CN109478163B (zh) | 用于在高速缓存条目处标识存储器访问请求的待决的***和方法 | |
US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
US20040117590A1 (en) | Aliasing support for a data processing system having no system memory | |
CN102360339A (zh) | 一种提高tlb利用效率的方法 | |
US20140013054A1 (en) | Storing data structures in cache | |
US8812782B2 (en) | Memory management system and memory management method |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200420 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |