CN112540939A - 存储管理装置、存储管理方法、处理器和计算机*** - Google Patents
存储管理装置、存储管理方法、处理器和计算机*** Download PDFInfo
- Publication number
- CN112540939A CN112540939A CN201910901082.XA CN201910901082A CN112540939A CN 112540939 A CN112540939 A CN 112540939A CN 201910901082 A CN201910901082 A CN 201910901082A CN 112540939 A CN112540939 A CN 112540939A
- Authority
- CN
- China
- Prior art keywords
- entry
- page
- cache
- address
- virtual
- 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/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/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/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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/1063—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 virtually addressed
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
技术领域
本发明涉及处理器领域,更具体而言,涉及一种存储管理装置、存储管理方法、处理器和计算机***。
背景技术
在支持虚拟存储机制的计算机***中,可使用虚拟地址(也可称为有效地址、逻辑地址、Virtual Address或简称为VA)来指定数据,并利用多个虚拟地址管理计算机***的虚拟存储空间。在访问内存的过程中,需要将虚拟地址转译为物理地址(也可称为实际地址、真实地址、Physical Address或简称为PA)。为了实现地址转译,计算机***需要存储大量的表项,每个表项用于将指定范围的虚拟地址转译为相应的物理地址。
为了加快地址转译过程,可以采用转译后备缓冲器(Translation Look-asideBuffer,TLB)将计算机***中存储的一部分表项进行缓存,以避免每次地址转译过程均需要从计算机***中存储的全部表项中进行查找。
如果待转译的虚拟地址与TLB缓存的表项之一匹配(称为命中、匹配或hit),计算机***可以直接利用TLB实现地址转译,而无需在TLB外部进行表项查找;如果待转译的虚拟地址与TLB缓存的所有表项均不匹配(称为未命中、失配或miss),则需要从TLB外部搜索与待转译的虚拟地址匹配的待回填表项,并将该待回填表项写入TLB中的空闲存储单元或用待回填表项替换TLB中已有的表项。由此可知,TLB未命中时地址转译过程占用的***资源将远远高于TLB命中时地址转译过程占用的***资源。
若TLB能够转译的虚拟地址范围较小,则TLB未命中的出现概率较高,将会占用大量的***资源;并且,在TLB中不存在空闲存储单元时,每次TLB未命中发生后都需要用待回填表项替换掉TLB中已存储的一个表项,频繁替换TLB存储的表项也可能降低TLB的命中率。
因此,在TLB能够缓存的表项数目存在上限的情况下,期望扩大TLB可转译的虚拟地址范围,提高TLB的命中率,从而提高***性能。
发明内容
有鉴于此,本发明实施例提供一种存储管理装置、存储管理方法、处理器和***,以解决以上问题。
为了达到这个目的,第一方面,本发明提供一种存储管理装置,包括:至少一个转译后备缓冲器,用于存储多个缓存表项;地址转换单元,用于根据所述多个缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址;以及控制单元,与所述至少一个转译后备缓冲器耦接,用于扩展选定的所述缓存表项映射的地址范围。
在一些实施例中,所述控制单元被配置以执行:在所述多个缓存表项均未命中所述转译请求时,获取命中所述转译请求的待回填表项;以及扩展所述多个缓存表项之一,以使扩展后的所述缓存表项映射的地址范围包括所述待回填表项映射的地址范围。
在一些实施例中,所述控制单元与用于存储根页表的存储器耦接,所述待回填表项来源于所述根页表。
在一些实施例中,所述控制单元适于在所述多个缓存表项中查找所述待回填表项的关联表项,并扩展所述关联表项,扩展前的所述关联表项与所述待回填表项映射至连续的地址范围,扩展后的所述关联表项映射的地址范围包括所述待回填表项映射的地址范围。
在一些实施例中,扩展前的所述关联表项指定的第一虚拟页面与所述待回填表项指定的第二虚拟页面连续,扩展前所述关联表项指定的第一转译页面与所述关联表项指定的第二转译页面连续,扩展后的所述关联表项适于将所述第一虚拟页面与所述第二虚拟页面中的虚拟地址转译为所述第一转译页面和所述第二转译页面中的转译地址。
在一些实施例中,所述第一虚拟页面、所述第二虚拟页面、所述第一转译页面和所述第二转译页面具有相同的页面尺寸。
在一些实施例中,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页面;第二寄存器,用于存储转译地址标签,以指示所述虚拟页面映射的转译页面;以及第三寄存器,用于存储尺寸标记位,以指示所述虚拟页面/所述转译页面的页面尺寸,所述虚拟页面和所述转译页面具有相同的页面尺寸。
在一些实施例中,在扩展所述关联表项时,所述控制单元适于修改所述关联表项的所述尺寸标记位,使得扩展后的所述关联表项指示的页面尺寸大于扩展前的所述关联表项指示的页面尺寸。
在一些实施例中,所述控制单元适于根据所述尺寸标记位确定所述虚拟地址标签的有效位数。
第二方面,本发明提供一种处理器,包括如上任一实施例所述的存储管理装置。
在一些实施例中,处理器还包括指令预取单元,所述指令预取单元向所述地址转换单元提供所述转译请求,所述转译请求指定预取指令的虚拟地址,所述地址转换单元与所述至少一个转译后备缓冲器中的第一转译后备缓冲器通信,并根据所述第一转译后备缓冲器提供的所述缓存表项向所述指令预取单元提供所述预取指令的转译地址。
在一些实施例中,处理器还包括加载存储单元,所述加载存储单元向所述地址转换单元提供所述转译请求,所述转译请求指定加载/存储指令的虚拟地址,所述地址转换单元与所述至少一个转译后备缓冲器中的第二转译后备缓冲器通信,并根据所述第二转译后备缓冲器提供的所述缓存表项向所述加载存储单元提供所述加载/存储指令的转译地址。
第三方面,本发明提供一种计算机***,包括:如上任一实施例所述的处理器;以及存储器,与所述处理器耦接。
第四方面,本发明提供一种存储管理方法,包括:提供多个缓存表项;接收转译请求,以根据所述多个缓存表项之一将所述转移请求指定的虚拟地址转译为相应的转译地址;以及扩展选定的所述缓存表项映射的地址范围。
在一些实施例中,当所述多个缓存表项均未命中所述转译请求时,获取命中所述转译请求的待回填表项,并扩展所述多个缓存表项之一,以使扩展后的所述缓存表项映射的地址范围包括所述待回填表项映射的地址范围。
在一些实施例中,所述待回填表项来源于存储器中存储的根页表。
在一些实施例中,存储管理方法还包括:在所述多个缓存表项中查找所述待回填表项的关联表项,并扩展所述关联表项映射的地址范围,扩展前的所述关联表项与所述待回填表项映射至连续的地址范围,扩展后的所述关联表项映射的地址范围包括所述待回填表项映射的地址范围。
在一些实施例中,扩展前的所述关联表项指定的第一虚拟页面与所述待回填表项指定的第二虚拟页面连续,扩展前所述关联表项指定的第一转译页面与所述关联表项指定的第二转译页面连续,扩展后的所述关联表项适于将所述第一虚拟页面与所述第二虚拟页面中的虚拟地址转译为所述第一转译页面和所述第二转译页面中的转译地址。
在一些实施例中,所述第一虚拟页面、所述第二虚拟页面、所述第一转译页面和所述第二转译页面具有相同的页面尺寸。
在一些实施例中,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页面;第二寄存器,用于存储转译地址标签,以指示所述虚拟页面映射的转译页面;以及第三寄存器,用于存储尺寸标记位,以指示所述虚拟页面/所述转译页面的页面尺寸,所述虚拟页面和所述转译页面具有相同的页面尺寸。
在一些实施例中,在扩展所述关联表项时,修改所述关联表项的所述尺寸标记位,使得扩展后的所述关联表项指示的页面尺寸大于扩展前的所述关联表项指示的页面尺寸。
在一些实施例中,判断各个所述缓存表项是否命中所述转译请求的方法包括:根据所述尺寸标记位确定该缓存表项的所述虚拟地址标签的有效位数;对该缓存表项的所述虚拟地址标签与所述转移请求指定的虚拟地址的相应部分进行逐位比较,若一致,则该缓存表项命中所述转译请求,若不一致,则该缓存表项未命中所述转译请求,所述逐位比较的比较位数等于所述有效位数。
在一些实施例中,扩展后所述关联表项的所述虚拟地址标签等于扩展前的所述关联表项的所述虚拟地址标签与所述待回填表项的所述虚拟地址标签相同的部分。
在一些实施例中,存储管理方法还包括:当所述多个缓存表项中不存在与所述待回填表项对应的所述关联表项时,用所述待回填表项替换所述多个缓存表项之一,被替换的所述缓存表项为失效表项、空闲表项或根据替换算法选定的可替换表项。
相比于传统方案,本发明实施例提供的存储管理方法、存储管理装置、处理器和计算机***可以动态地扩展选定的单个缓存表项映射的地址空间。在访问局部性良好的情况下,扩展后的缓存表项与即将到来的多个转译请求的匹配概率较高,提高了TLB的命中率;同时,扩展后的缓存表项映射的页面尺寸较大,提高了扩展后单个缓存表项的命中率,TLB映射的总地址范围也被扩展,因此进一步提高了TLB的整体命中率,提升了处理器核***的性能,节省了指令存取时间和/或数据存取时间,也节约了***的软硬件资源。
附图说明
通过参考以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出本发明实施例的***的示意图框图;
图2是本发明实施例中处理器1100的示意性框图;
图3示出了本发明实施例的存储管理单元的示意性框图;
图4示出了采用TLB实现地址转译的原理示意图;
图5示出通过TLB实现地址转译的流程示意图;
图6示出根据本发明实施例将待回填表项写入TLB的流程示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语。
计算机***:通用嵌入式***、台式机、服务器或其他具备信息处理能力的***。
存储器:位于计算机***内,用于存储信息的物理结构。按照用途的不同,存储器可以分为主存储器(也可称为内部存储器,或简称为内存/主存)和辅助存储器(也可称为外部存储器,或简称为辅存/外存)。主存用于存储由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据,也可用于实现处理器与外存之间的信息交换。外存提供的信息需要被调入主存中才能被处理器访问,因此本文提到的存储器一般是指主存,本文提到的存储设备一般是指外存。
物理地址(Physical Address,简称为PA):地址总线上的地址。处理器或其他硬件可以向地址总线提供物理地址以访问主存。物理地址也可称为实际地址、真实地址或绝对地址。
虚拟地址:软件或程序所使用的抽象地址。虚拟地址空间可以大于物理地址空间,虚拟地址可以被映射至对应的物理地址。
分页(paging)管理机制:将虚拟地址空间划分为多个部分,每部分作为一个虚拟页面,并将物理地址空间划分为多个部分,每部分作为一个物理页面。物理页面也称为物理地址块或物理地址页框(page frame)。
根页表:用于指定虚拟页面和物理页面之间的对应关系,通常被存储在主存中。根页表中包括多个表项,每个表项分别用于指定虚拟页面到物理页面的映射关系以及一些管理标志,从而可以用于将虚拟页面中的虚拟地址转译为相应物理页面中的物理地址。
缓存表项:根页表中的一些可能常用的表项可以被缓存在转译后备缓冲器中,以便于在地址转译过程中被调用,从而加快地址转译过程。为了与根页表中的表项作区分,后文将存储于TLB中的表项简称为缓存表项。
本申请实施例可以应用于互联网和物联网(Internet of Things,简称IoT)等***中,例如5G移动互联网***、自动驾驶***等,能够提高地址转译过程中TLB的命中率。但应当领会,本发明实施例不限于此,还可以应用在任何需要实现地址转译的场景中。
***概述
图1示出本发明实施例的计算机***的示意图框图。图1中示出的计算机***1000旨在示出一个或多个电子装置的至少部分组件,在本发明的其他实施例中,可以省略图1示出的部分组件或以不同的架构实现各组件之间的连接,也可以包括图1中未示出的一些硬件和/或软件模块,图1中示出的两个或两个以上的组件也可以在软件体系和/或硬件体系上被合成为一个组件。
在一些实施例中,计算机***1000可以应用于移动设备、手持式设备或嵌入式设备中,例如应用于采用5G技术的智能手机或自动驾驶车辆的处理平台中。计算机***1000还可以应用于物联网设备、可穿戴设备(诸如智能手表、智能眼镜等设备),也可以是电视、机顶盒等设备。
如图1所示,计算机***1000可以包括一个或多个处理器1100。例如,计算机***1000可以是包含至少一个处理器的终端***、包含多个处理器的工作站***或包含大量处理器或处理器核的服务器***。计算机***1000中的一个或多个处理器1100可以是分别独立封装的芯片,也可以是集成于片上***(System of Chip,SoC)中的集成电路。处理器1100可以是中央处理器、图形处理器和物理处理器等。
如图1所示,计算机***1000还包括总线1200,处理器1100可以与一个或多个总线1200耦合。总线1200用于在处理器1100与计算机***1000中的其他部件之间传输信号,例如传输地址、数据或控制信号等。总线1200可以是处理器总线,例如为直接媒体接口(Direct Media Interface,DMI)总线,然而本发明实施例的接口总线1200不限于采用DMI总线作为接口总线,还可以包括一个或多个互连总线,例如:基于外设部件互连标准(Peripheral Component Interconnect,PCI)的总线、存储器总线或其他类型的总线。
在一些实施例中,如图1所示,计算机***1000还包括存储器1300。存储器1300作为计算机***的主存,可以是动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)或其他具有存储能力的模块。在一些实施例中,存储器1300可以用于存储数据信息和指令信息,以供一个或多个处理器1100在执行应用程序或进程时使用。除此之外,计算机***1000还可以包括一个或多个存储设备1800,作为辅助存储器提供额外的存储空间。
计算机***1000也可以经由总线1200耦合到显示设备1400,例如阴极射线管(CRT)、液晶显示器(LCD)或有机发光二极管(OLED)阵列,以显示用户需要了解的信息。
在一些实施例中,计算机***1000可以包括输入设备1500,例如为键盘、鼠标、触控面板等设备,用于将用户操作对应的信息经总线1200传送给相应的处理器1100。计算机***1000还可以包括采集设备1600,可以耦合到总线1200以传送有关图像/声音等可被采集的信息相关的指令和数据。采集设备1600例如为麦克风和/或用于采集图像的摄像机或照相机等设备。输入设备1500和采集设备1600提供的数据可以被存储在存储设备1300的相应存储区域,输入设备1500和采集设备1600提供的指令可以被相应的处理器1100执行。
计算机***1000可以进一步包括网络接口1700,以使***可以访问网络,网络例如为局域网(LAN)、广域网(WAN)、城域网(MAN)、个人区域网络(PAN)、蓝牙、云网络、移动网络(例如长期演进Long Term Evolution,LTE)网络、3G网络、4G网络或5G网络等)、内联网、因特网等。网络接口1700可以包括具有至少一个天线的无线网络接口和/或经由网络电缆通信的有线网络接口,网络电缆可以是以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
网络接口1700例如可以根据IEEE 802.11b和/或802.11g标准提供对LAN的访问,也可以根据蓝牙标准提供对个人局域网络的访问,也可以支持其他无线网络接口和/或协议,包括现有的通信标准和未来的通信标准。网络接口1700还可以利用时分多址(TDMI)协议、全球移动通信***(GSM)协议、码分多址(CDMA)协议和/或其他类型的无线通信协议等。
需要说明的是,上文以及图1仅仅用于对计算机***1000进行示例性的描述,而不用于限制计算机***1000的具体实现方式。计算机***1000还可以包括其它组成部分,例如数据处理单元等;上文描述的计算机***1000中的各个部分也可以在实际应用中适当被省略。
处理器
图2是本发明实施例中处理器1100的示意性框图。
在一些实施例中,每个处理器1100可以包括用于处理指令的一个或多个处理器核101,指令的处理和执行是可以被用户(例如通过应用程序)和/或***平台控制的。在一些实施例中,每个处理器核可以用于处理特定的指令集。在一些实施例中,指令集可以支持复杂指令集计算(Complex Instruction Set Computing,CISC)、精简指令集计算(ReducedInstruction Set Computing,RISC)或基于超长指令字(Very Long Instruction Word,VLIW)的计算。不同的处理器核101可以各自处理不同的指令集。在一些实施例中,处理器核101还可以包括其他处理模块,例如数字信号处理器(Digital Signal Processor,DSP)等。作为一种示例,图2中示出了处理器核1至m,m是非0的自然数。
在一些实施例中,如图2所示,处理器1100可以包括高速缓存器,且根据不同架构,处理器1100中的高速缓存器可以是位于各个处理器核101之内和/或之外的单个或多级的内部高速缓存器(如图2示出的3级高速缓存器L1至L3),也可以包括面向指令的指令高速缓存和面向数据的数据高速缓存。在一些实施例中,处理器1100中的各个部件可以共享至少一部分的高速缓存器,如图2所示,处理器核1至m例如共用第三级高速缓存器L3。处理器1100还可以包括外部高速缓存(未示出),其他高速缓存结构也可以作为处理器1100的外部高速缓存。
在一些实施例中,如图2所示,处理器1100可以包括寄存器堆104(RegisterFile),寄存器堆104可以包括用于存储不同类型的数据和/或指令的多个寄存器,这些寄存器可以是不同类型的。例如,寄存器堆104可以包括:整数寄存器、浮点寄存器、状态寄存器、指令寄存器和指针寄存器等。寄存器堆104中的寄存器可以选用通用寄存器来实现,也可以根据处理器1100的实际需求采用特定的设计。
处理器1100可以包括存储管理单元(Memory Management Unit,MMU)105。存储管理单元105中存储了多个缓存表项,用于实现虚拟地址到物理地址的转译。每个处理器核101中可以设置一个或多个存储管理单元105,不同处理器核101中的存储管理单元105也可以与位于其他处理器或处理器核中的存储管理单元105实现同步,使得每个处理器或处理器核可以共享统一的虚拟存储***。
在一些实施例中,内部互连结构用于将存储管理单元105经由片上***的内部总线与其他处理器核交互,或直接与片上***内的其他模块相连以实现信号交换。
存储管理单元105可以与处理器1100中用于预取指令的指令预取单元106和/或用于加载/存储数据的加载存储单元(Load/Store Unit,LSU)107进行通信。
指令预取单元106使用预取指令的虚拟地址访问存储管理单元105,用以转译预取指令的物理地址,且指令预取单元106根据存储管理单元105转译生成的物理地址在物理地址空间中进行寻址以获得相应的指令。处理器核101中的执行单元可以接收指令预取单元106获取的指令,并对该指令进行处理(例如解码),使得该指令能够被执行。
加载存储单元107是一种面向访存指令(加载指令或存储指令)的指令执行单元。加载存储单元107可以用于根据加载指令获取高速缓存器和/或存储器1300中的数据信息,并将该数据信息加载到处理器1100内相应的寄存器中;加载存储单元107也可以根据存储指令将相应寄存器中的数据信息存储到高速缓存器和/或存储器1300中。寄存器例如包括:寄存器堆104中的地址寄存器、步进寄存器以及地址掩码寄存器等。加载存储单元107根据访存指令的虚拟地址访问存储管理单元105,存储管理单元105向加载存储单元107提供转译后获得的访存指令的物理地址,使得加载存储单元107能够根据该物理地址在物理地址空间中存取相应的数据。
需要说明的是,上文以及图2仅仅用于对***中的处理器之一进行示例性的描述,而不用于限制处理器1100的具体实现方式。处理器1100还可以包括其它组成部分,例如数据处理单元等;上文描述的处理器1100中的各个部分也可以在实际应用中适当被省略。
存储管理单元
存储管理单元105在一些情况下也可以被称为内存管理单元,可以是由硬件和/或软件实现的存储管理装置。
为了更好地管理各个进程所独占的地址空间,计算机***1000可以对一些进程分配独立的虚拟地址空间,并提供虚拟地址到物理地址的映射关系,以将虚拟地址空间映射或解映射到物理地址空间。如上文所述,由于数据在计算机***1000中的传输通常是以页面为单位进行的,因此计算机***和/或计算机***上运行的操作***通常以页面为单位管理物理地址空间和虚拟地址空间,虚拟地址空间可以大于物理地址空间,即虚拟地址空间中的一个虚拟页面可以被映射到物理地址空间中的一个物理页面,也可以被映射到交换文件中,也可能没有映射内容。
基于上述分页管理机制,虚拟地址空间中各个虚拟页面与物理地址空间中各个物理页面之间的映射关系可以存储为主存中的根页表。根页表一般包括很多表项(Entry),每个表项用于提供一个虚拟页面与相应的物理页面之间的映射关系,从而与该表项匹配的虚拟页面中的虚拟地址可以根据该表项被转译为相应的物理地址。
对于某一个进程,每个虚拟页面对应的虚拟地址范围(可称为虚拟页面的页面尺寸)应当与相应的物理页面的页面尺寸一致,例如但不限于4kB(千字节)、8kB、16kB、64kB等。需要补充的是,对于不同的进程,相应的虚拟页面的页面尺寸可以保持一致,也可以不一致;同样的,对于不同的进程,相应的物理页面的页面尺寸可以保持一致,也可以不一致,不同的实施例有不同的选择。
若不设置TLB,则存储管理单元在接收到转译请求后,至少需要访问两次内存(例如存储设备1300中的RAM):查询存储在内存中的根页表,以获得与转译请求匹配的表项(第一次内存访问),再根据该表项将转译请求指定的虚拟地址转译为相应的物理地址;根据该物理地址从内存中读取指令和/或数据(第二次访问内存),多次访问内存导致处理器性能下降。
为了减少存储管理单元对内存的访问次数、加快地址的转译过程,如图2所示,存储管理单元105中设置有至少一个转译后备缓冲器TLB(也称为快表、旁路转换缓冲器、页表缓冲器等),用于将可能被访问的表项从内存复制到TLB中,并存储为缓存表项,以对常用的虚拟页面与物理页面之间的映射关系进行高速缓存。只有当TLB中无法查询到与转译请求指定的虚拟地址匹配的缓存表项时,存储管理单元105才会访问内存中的根页表以获得相应的表项;当TLB中存在与转译请求指定的虚拟地址匹配的缓存表项时,存储管理单元105无需访问根页表即可完成地址转译。因此,TLB能够减少存储管理单元访问内存的次数,节省了地址转译所需的时间,提高了处理器性能。
图3示出了本发明实施例的存储管理单元的示意性框图。
根据对于不同的处理对象,存储管理单元105可以独立设置用于管理指令存储的指令存储管理单元,和/或用于管理数据存储的数据存储管理单元。存储管理单元105也可以对指令和数据的存储进行统一管理。
在一些实施例中,存储管理单元中设置有多个TLB,其中,不同的转译后备缓冲器TLB可以是相互独立的,也可以被同步控制,不同的TLB还可以处于不同级别以形成多级缓冲结构。
在一些实施例中,如图3所示,存储管理单元105中可以设置指令TLB和数据TLB,指令TLB用于缓存与指令读写地址对应的指令缓存表项,数据TLB用于缓存与数据读写地址对应的数据缓存表项。指令TLB例如用于接收上述指令预取单元106发送的转译请求,并返回相应的物理地址至指令预取单元106。数据TLB例如用于接收加载存储单元107发送的转译请求,并返回相应的物理地址至加载存储单元107。
作为一个示例,处理器可以包括4组TLB:第一组TLB可以用于缓存较小页面尺寸的指令缓存表项,第二组TLB可以用于缓存较小页面尺寸的数据缓存表项,第三组TLB可以用于缓存较大页面尺寸的指令缓存表项,第四组TLB可以用于缓存较大页面尺寸的数据缓存表项。
如图3所示,存储管理单元105还可以包括地址转换单元51和控制单元52。其中,地址转换单元51用于根据转译请求在TLB中查找相应的缓存表项,并根据该缓存表项将转译请求指定的虚拟地址转译为物理地址;当地址转换单元51没有在TLB中查找到与待转译的虚拟地址匹配的缓存表项时,可以向控制单元52传输失配信息,控制单元52根据该失配信息从根页表中获取匹配的表项,并将该表项作为待回填表项写入TLB中,使得缓存在TLB的各个缓存表项之一能够与待转译的虚拟地址匹配;随后,地址转换单元51可以根据匹配的缓存表项将待转译的虚拟地址转换为物理地址。
在本实施例中,控制单元52可以判断TLB中已有的缓存表项与待回填表项所映射的地址空间是否存在连续关系,若是,则可以将待回填表项与TLB中与待回填表项在地址空间中具有连续关系的缓存表项进行合并,使得合并后的缓存表项映射的虚拟页面和物理页面的页面尺寸被扩展,TLB对应可扩展的虚拟地址范围,因此可以增大TLB的命中率、增大单个缓存表项的命中率,提高了处理器和***的性能。若待回填表项与TLB中已有的缓存表项在地址空间中不存在连续关系,则控制单元52可以用待回填表项替换TLB中的一个缓存表项,被替换的缓存表项优选为失效的或待更新的缓存表项、空闲的缓存表项或根据替换算法选定的缓存表项。替换算法例如优先选择近期未被引用的缓存表项之一(例如为引用位置0的缓存表项)。
如图3所示,控制单元52可以包括待回填寄存器22、查找模块23和回填模块21。查找模块23用于根据地址转换单元51提供的失配信息从内存(或高速缓存器、硬盘等存储装置中)中读取与待转译的虚拟地址匹配的待回填表项。待回填寄存器22用于暂时存储待回填表项。回填模块21首先判断TLB中已有的缓存表项与待回填表项所映射的地址空间是否存在连续关系,若是,则将待回填表项合并至TLB中与待回填表项在地址空间中具有连续关系的缓存表项,若否,则继续判断TLB中是否存在空闲存储单元(例如为空闲的缓存表项或未存储表项的空闲寄存器),若TLB中存在空闲存储单元,则优先将待回填表项作为新的缓存表项写入该空闲存储单元,若TLB中各个存储单元均存储有缓存表项,则回填模块可以用待回填表项替换掉TLB已有的一个缓存表项。
需要说明的是,上文以及图3仅仅用于对计算机***中的存储管理单元之一进行示例性的描述,而不用于限制存储管理单元105的具体实现方式。存储管理单元105还可以包括其它组成部分,上文描述的存储管理单元105中的各个部分也可以在实际应用中适当被省略。
转译后备缓冲器
在本发明的实施例中,转译后备缓冲器TLB可以包括硬件器件和/或软件程序,例如由多个寄存器实现。每个缓存表项可以被独立存储在相应的寄存器中,TLB还可以包括用于存储读指令、写指令等指令的寄存器。由于TLB能够存储的缓存表项的数目受到硬件资源的限制,因此TLB中的缓存表项的数目表征了处理器可以通过TLB实现无性能损失的地址转译过程的潜在请求数。
本实施例将以全关联(Full Associative)方式为例描述虚拟地址与TLB表项的映射方式,即TLB表项中可以映射根页表中的任一表项而不受虚拟地址或物理地址中指定位的限制。然而本发明实施例不限于此,在一些其他的实施例中,虚拟地址与TLB表项的映射方式还可以为:直接映射方式、分组关联(Set Associative)方式或其他映射方式。
图4示出了采用TLB实现地址转译的原理示意图。
以32位地址(可以指虚拟地址或物理地址)且页面(可以指虚拟页面或物理页面)中每个页内地址对应1B(Byte,字节)为例:若页面的大小为4kB,则该页面中每个地址A[31:0]的页内偏移量PO_4k=A[11:0],页面号PN_4k=A[31:12];若页面的大小为8kB,则该页面中每个地址A[31:0]的页内偏移量PO_8k=A[12:0],页面号PN_8k=A[31:13]。由于虚拟地址和物理地址之间的映射可以是页面与页面之间的映射,且虚拟页面与其映射的物理页面的页面尺寸一致,因此虚拟地址与其映射的物理地址具有相同的页内偏移量。下面将以此为例对本发明实施例利用TLB实现地址转译的过程进行描述,然而需要说明的是,本发明实施例不限于此,虚拟页面或物理页面可以具有其他页面尺寸(例如64kB、32kB等),虚拟地址或物理地址可以为其他格式(例如64位、128位等),且在一些其他的实施例中,虚拟地址(或物理地址)包含的页面号和页内偏移量的高低位置设置和划分方式可以不同。
如图4所示,转译请求指定的虚拟地址可以通过与之匹配的缓存表项被转译为相应的物理地址。TLB中各个缓存表项的数据结构可以包括:虚拟地址标签Vtag、物理地址标签Ptag以及辅助信息等。
虚拟地址标签Vtag用于判断缓存表项是否与待转译的虚拟地址匹配。基于上面的分析可知,虚拟页面号可以用于识别虚拟页面,因此可以将缓存表项的虚拟地址标签Vtag与该缓存表项映射的虚拟页面的虚拟页面号VPN设置为一致的二进制码,该缓存表项的物理地址标签与该缓存表项映射的物理页面的物理页面号PFN可以设置为一致的二进制码。当待转译的虚拟地址的虚拟页面号VPN与该缓存表项的虚拟地址标签Vtag一致时,说明该缓存表项被命中;这种情况下,由于虚拟地址与其映射的物理地址具有相同的页内偏移量PO,因此可以将被命中的缓存表项提供的物理地址标签Ptag(用于替换虚拟地址的虚拟页面号)与待转译的虚拟地址的页内偏移量PO合成为待转译的虚拟地址所映射的物理地址,以完成转译。
对于TLB中的某一缓存表项来说,其映射的虚拟页面的页面尺寸等于其映射的物理页面的页面尺寸,因此本文将该缓存表项映射的虚拟页面的页面尺寸和物理页面的页面尺寸统称为该缓存表项映射的页面尺寸或页面大小。
在本发明实施例中,不同的缓存表项可以映射不同的页面尺寸,且缓存表项映射的页面尺寸可扩展。作为一个示例,缓存表项E1可以映射一个4kB的虚拟页面VP1_4k和相应的一个4kB的物理页面PP1_4k,即缓存表项E1的虚拟地址标签Vtag1可以映射至虚拟页面VP1_4k,缓存表项E1的物理地址标签Ptag1可以映射至物理页面PP1_4k。作为另一个示例,缓存表项E2可以映射一个8kB的虚拟页面VP2_8k和相应的一个8kB的物理页面PP2_8k,即缓存表项E2的虚拟地址标签Vtag2可以映射至虚拟页面VP2_8k,缓存表项E2的物理地址标签Ptag2可以映射至物理页面PP2_8k。
为了指示每个缓存表项映射的页面尺寸的大小,缓存表项的辅助信息可以包括尺寸标记位,尺寸标记位可以是一位或多位的二进制码。在一些实施例中,缓存表项可以映射4kB或8kB的页面,则可将映射至4kB页面尺寸的缓存表项的尺寸标记位设置为0,将映射至8kB页面尺寸的缓存表项的尺寸标记位设置为1;当某一缓存表项映射的页面尺寸由4kB的页面扩展至8kB时,尺寸标记位可以由0更新为1。需要说明的是,本发明实施例不限于此,缓存表项也可以映射至其他页面尺寸,即TLB中的各个缓存表项可以分别映射多种页面尺寸之一,尺寸标记位S的位数也可以根据页面尺寸的种类相应地被设置。
在接收到转译请求之后,可以将待转译的虚拟地址的虚拟页面号VPN与各个缓存表项的虚拟地址标签Vtag进行比较,以查找匹配的缓存表项。尺寸标记位可以用于指示虚拟地址标签的有效位数(即查找过程中用于与虚拟地址进行比较的位数)。例如,缓存表项E1映射4kB的虚拟页面VP1_4k,假设该缓存表项E1的尺寸标识位S1是0,则说明其包含的虚拟地址标签Vtag1的位数是20,这20位可与待转译的虚拟地址的20位虚拟页面号进行比较,以判断是否匹配;如图5示出的缓存表项E2映射8kB的虚拟页面VP2_8k,假设该缓存表项E2的尺寸标识位S2是1,则说明其包含的虚拟地址标签Vtag2的位数是19,这19位可与待转译的虚拟地址的19位虚拟页面号进行比较,以判断是否匹配。
在另一些实施例中,各个缓存表项也可以不设置尺寸标记位,例如在一些其他的实施例中,缓存表项可以采用其他标记位指示该缓存表项被扩展的次数。进一步的,在一些实施例中,被扩展次数较多的缓存表项被替换的优先级较低。
各个缓存表项的辅助信息可以包括有效位,用于指示各个缓存表项的状态。在一些场景中,例如在执行进程切换或根页表更新的操作之后,缓存表项提供的转译关系可能不再适用于当前的情形,此时相应的缓存表项的有效位可以指示失效状态(例如为无效电平或0),说明该缓存表项无法被用于当前的地址转译过程,可以被替换或覆盖。当缓存表项的有效位指示有效状态(例如为有效电平或1)时,说明该缓存表项可以用于指示该缓存表项是否能够被用于当前的转译过程。在一些实施例中,当TLB中仍存在可用于存储缓存表项的空闲存储空间时,该空闲存储空间也可等效为失效状态的缓存表项,其有效位指示失效状态,用于指示该空闲存储空间可用于写入新的缓存表项。
需要说明的是,在后文的描述中,被命中的缓存表项均为有效状态的缓存表项。
在一些实施例中,当TLB中的各个缓存表项之一需要被替换时,可以根据各个缓存表项被使用的频率选择可以被替换的一个缓存表项,例如采用LRU(Least Recently Used,最近最少使用)算法替换最近最久未使用的缓存表项。为了指示使用频率,缓存表项的辅助信息可以包括引用位,引用位可以是一位或多位的二进制码。当某一缓存表项被用于转译时,该缓存表项的引用位可以被更新以指示更高的使用频率(或其他缓存表项的引用码被更新以指示更低的使用频率),从而在执行LRU算法时,可以根据各个缓存表项的引用位选择可替换的一个缓存表项。
在一些实施例中,缓存表项的辅助信息还可以包括脏位(dirty),用于指示内存中的某个地址空间是否已被修改。脏位也可以是一位或多位的二进制码。
在一些实施例中,缓存表项的辅助信息还可以包括其它指示位,例如用于指示与页面关联的进程标志号、页面的读写权限以及页面地址属性等。
需要说明的是,虽然在上文以及图4的描述中,每个缓存表项的虚拟地址标签、物理地址标签以及辅助信息是按照高位至低位的顺序排列的,然而本发明实施例不限于此。每个缓存表项的虚拟地址标签、物理地址标签以及尺寸标标识、有效位等辅助信息可以按照不同的顺序排列,例如尺寸标记位可以位于缓存表项的最高位以方便识别缓存表项对应的页面尺寸。
地址转译过程
图5示出通过TLB实现地址转译的流程示意图。下面将参照图5对虚拟地址到物理地址的转译过程进行示例性的描述。
如图5示出的步骤510,接收转译请求。该转译请求指定了待转译的虚拟地址,例如为预取指令的虚拟地址或加载指令的虚拟地址。
如图5示出的步骤520,查找各个缓存表项中是否存在与待转译的虚拟地址的虚拟页面号匹配的虚拟地址标签,以判断TLB是否命中。
在步骤520中,若TLB中某一缓存表项的虚拟地址标签与待转译的虚拟地址的虚拟页面号一致且该缓存表项处于有效状态(即该缓存表项可以被用于转译,例如该缓存表项的有效位处于有效电平),则说明TLB中存储有匹配的缓存表项,随后执行步骤530;若待转译的虚拟地址的虚拟页面号与TLB中的各个缓存表项的虚拟地址标签均不一致,则说明TLB中没有存储与转译请求匹配的缓存表项,随后执行步骤540。
在一些实施例中,步骤520可以包括:将待转译的虚拟地址中表示虚拟页面号的N位二进制码与各个缓存表项的虚拟地址标签进行比较,如上文所述,各个缓存表项映射的页面尺寸可以不同,各个缓存表项的尺寸标识位可以指示相应的虚拟地址标签的有效位数,因此可以根据各个缓存表项的尺寸标记位确定N的值,N为大于等于1的自然数。
作为一种示例,当被比较的缓存表项的虚拟地址标签的有效位数是8时,尺寸标记位置0,N=8,该缓存表项的虚拟地址标签与待转译的虚拟地址的高8位进行比较,若二者一致,则判定该缓存表项与待转译的虚拟地址匹配,否则不匹配;当被比较的缓存表项的虚拟地址标签的有效位数是7时,尺寸标记位置1,N=7,该缓存表项的虚拟地址标签与待转译的虚拟地址中的高7位进行比较,若二者一致,则判定该缓存表项与待转译的虚拟地址匹配,否则不匹配。
需要说明的是,上述“高8位”和“高7位”等词语仅仅是一种示例,仅用于限定待转译的虚拟地址中用于与各个虚拟地址标签进行比较的位数与虚拟地址标签的有效位数一致,可以在其他示例中分布于虚拟地址的其他位置,用于指示该虚拟地址的虚拟页面号的至少一部分。
在一些实施例中,在执行步骤541时,如果某一缓存表项被命中,可以停止查找过程,而无需继续将余下的缓存表项的虚拟地址标签与待转译的虚拟地址进行比较,以节省资源。
若TLB命中,在如图5示出的步骤530中,可以根据被命中的缓存表项生成物理地址,从而通过TLB实现虚拟地址到物理地址的转译。由于TLB命中,因此可以直接利用TLB中存储的缓存表项完成地址转译,这一过程不会占用过多的资源,不会对处理器和***的性能造成损失。
在一些实施例中,如上文所述,在生成物理地址的过程中,可以将被命中的缓存表项的物理地址标签与待转译的虚拟地址的页内偏移量合成为对应的物理地址。
若TLB未命中,在如图5示出的步骤540中,可以在根页表(存储于内存或硬盘等存储设备中)中查找与待转译的虚拟地址匹配的待回填表项,并将该待回填表项写入TLB中,从而实现TLB的更新。
在一些实施例中,当判定TLB未命中后,可以先根据待转译的虚拟地址生成失配信息(至少包含待转译的虚拟地址的虚拟页面号,也可以包含待转译的虚拟地址全部位),再根据失配信息访问根页表,从而根据失配信息查找与待转译的虚拟地址匹配的表项,并将该表项作为待回填表项。
在一些实施例中,当步骤540执行完成后,可以重新发起转译请求(与步骤510所述的转译请求对应相同的虚拟地址),并相应地执行步骤520至530,从而利用更新后的TLB进行转译以获得相应的物理地址。
在另一些实施例中,当步骤540执行完成之后,也可以直接利用TLB中被更新的缓存表项对待转译的虚拟地址进行转译,以获得相应的物理地址,以省略查找TLB中各个缓存表项的过程。
由上述对步骤540的描述可知,在TLB未命中的情况下需要执行从根页表中查找匹配的表项、读取待回填表项、将待回填表项写入TLB以及根据更新后的TLB进行转译等多个步骤,需要多个执行周期,占用了较多的***资源,限制了处理器和计算机***的性能。因此,期待能够尽量降低TLB未命中的概率,即提高TLB的命中率,这就需要TLB能够映射较大的地址范围。已知TLB映射的地址范围等于缓存表项的数量乘以每个缓存表项映射的页面尺寸,TLB存储的缓存表项的数目受到硬件资源的显示,因此,在TLB包含有限个数的缓存表项的前提下,本发明实施例可以通过扩展单个缓存表项所映射的页面尺寸提高TLB的命中率。
本发明实施例扩展单个缓存表项所映射的地址范围的过程可以在上述步骤540中执行,也可以在TLB的初始化过程或其他需要更新TLB的过程中执行。下面将以TLB未命中情况下将待回填表项写入TLB的回填过程为示例进行描述,在回填过程中,存储在TLB中的单个缓存单元映射的页面尺寸在某些条件下可以被扩展。然而本发明实施例不限于此,对单个缓存表项映射的地址范围进行扩展的方法同样可以应用于其他利用TLB实现地址转译的过程中。例如,根据本发明实施例,可以在TLB的初始化阶段或其他工作阶段查找是否存在两个映射至连续地址范围的缓存表项,若存在,则可以将这两个缓存表项合并为一个缓存表项以扩展单个缓存表项映射的地址范围,合并方式与下述实施例提供的合并方式一致,不再赘述;在另一些替代的实施例中,也可以直接根据需要对单个的缓存表项映射的地址范围进行扩展,而不限于通过将缓存表项与另一表项(或缓存表项)进行合并的方式扩展缓存表项映射的地址范围。
图6示出根据本发明实施例将待回填表项写入TLB的流程示意图。
如图6示出的步骤541中,判断各个缓存表项是否为待回填表项的关联表项。判断某一缓存表项为待回填表项的关联表项的条件是:待回填表项映射的虚拟页面的地址范围与该缓存表项所映射的虚拟页面的地址范围连续,且待回填表项映射的物理页面的地址范围与该缓存表项所映射的物理页面的地址范围连续。
判断页面的地址范围是否连续可以按照多种方式实现,下面以两种方式为例进行说明。
<方式一>
在一些实施例中,判断虚拟页面的地址范围是否连续的步骤可以包括:如果某一缓存表项映射的虚拟页面的最大地址与待回填表项映射的虚拟页面的最小地址是连续的地址,或该缓存表项映射的虚拟页面的最小地址与待回填表项映射的虚拟页面的最大地址是连续的地址,则说明该缓存表项映射的虚拟页面的地址范围与待回填表项映射的虚拟页面的地址范围连续。
同理,判断物理页面的地址范围是否连续的步骤可以包括:如果某一缓存表项映射的物理页面的最大地址与待回填表项映射的物理页面的最小地址是连续的地址,或该缓存表项映射的物理页面的最小地址与待回填表项映射的物理页面的最大地址是连续的地址,则说明该缓存表项映射的物理页面的地址范围与待回填表项映射的物理页面的地址范围连续。
<方式二>
由于虚拟页面和物理页面的最小地址或最大地址包括多位的页面偏移量,逐一比较将会消耗很多***资源,因此,为了简化步骤、节省时间和***资源,在一些实施例中,判定某一缓存表项为待回填表项的关联表项的条件还可以包括:该缓存表项映射的页面尺寸与待回填表项映射的页面尺寸相同。
基于这一判定条件,待回填表项的虚拟地址标签与关联表项的虚拟地址标签相邻(可以对应相邻的虚拟页面号),待回填表项的物理地址标签与关联表项的物理地址标签相邻(可以对应相邻的物理页面号)。
因此,在方式二中,在判断某一缓存表项是否为待回填表项的关联表项时,可以判断待回填表项的虚拟地址标签与该缓存表项的虚拟地址标签是否相邻,并判断待回填表项的物理地址标签与该缓存表项的物理地址标签是否相邻。若该缓存表项的虚拟地址标签和物理地址标签分别与待回填表项的虚拟地址标签和物理地址标签相邻,则可以判定该缓存表项为待回填表项的关联表项。
下面将结合具体示例对此进行描述。
作为一种示例,待回填表项E0的虚拟地址标签Vtag0例如映射至虚拟页面VP0,待回填表项E0的物理地址标签Ptag0例如映射至物理页面PP0,虚拟页面VP0的页面号例如为VPN0=02H=Vtag0=0000 0010,虚拟页面VP0中各虚拟地址的页内偏移量分别为000H~FFFH,物理页面PP0的页面号例如为PFN0=12H=Ptag0=0001 0010,物理页面PP0中各物理地址的页内偏移量分别为000H~FFFH,则:待回填表项E0的关联表项Ex映射的虚拟页面VPx的页面号VPNx=03H(即关联表项Ex的虚拟地址标签Vtagx可以为03H=0000 0011,与待回填表项E0的虚拟地址标签Vtag0相邻),且关联表项Ex映射物理页面PPx的页面号PFNx=13H(即关联表项Ex的物理地址标签Ptagx可以为13H=00010011,与待回填表项E0的物理地址标签Ptag0相邻)。
另外,待回填表项E0的关联表项Ex映射的虚拟页面VPx的页面号VPNx也可以是01H(即关联表项Ex的虚拟地址标签Vtagx可以为01H=0000 0001,与待回填表项E0的虚拟地址标签Vtag0相邻),且关联表项Ex映射物理页面PPx的页面号PPNx=11H(即关联表项Ex的物理地址标签Ptagx可以为11H=0001 0001,与待回填表项E0的物理地址标签Ptag0相邻)。
在一些可选的实施例中,通过比较某一缓存表项的尺寸标记位与待回填表项的尺寸标记位是否相同,可以判断该缓存表项与待回填表项映射的页面尺寸是否相同,从而可以获知各个缓存表项中用于比较的虚拟地址标签的位数。
需要说明的是,基于上述判断原理,各个缓存表项中可能不包括待回填表项的关联表项,也可能包括可以作为关联表项的一个或多个缓存表项。当TLB中存在多个可以作为关联表项的缓存表项时,可以根据预设方式选择其中的一个作为待回填表项的关联表项,例如选取步骤541中首个被判定的关联表项。
如图6所示,在执行步骤541后,若在各个缓存表项中查找到与待回填表项对应的关联表项,则执行步骤542。
在步骤542中,将待回填表项合并至关联表项中,以扩展所述关联表项映射的页面尺寸。
根据上述分析可知,待回填表项映射的虚拟页面与关联表项映射的虚拟页面在虚拟地址空间中是连续的,且待回填表项映射的物理页面与关联表项映射的物理页面在物理地址空间中是连续的,因此,可以将待回填表项合并至关联表项中,使得合并后的关联表项映射的虚拟页面的地址范围等于合并前该关联表项映射的虚拟地址范围与待回填表项映射的虚拟地址范围的累加范围、合并后的关联表项映射的物理页面的地址范围等于合并前该关联表项的物理地址范围与待回填表项映射的物理地址范围的累加范围。
合并后的关联表项仍作为缓存表项之一被存储于TLB中,其尺寸标记位表征的页面尺寸大于合并前该关联表项所映射的页面尺寸。
作为一个示例,待回填表项E0的虚拟地址标签Vtag0=0000 0010,待回填表项的关联表项Ex的虚拟地址标签Vtagx=0000 0011,则合并后的关联表项Ex’的虚拟地址标签Vtagx’=0000 001(可以是待回填表项E0的虚拟地址标签和合并前的关联表项Ex’的虚拟地址标签的相同部分),从而合并后的关联表项Ex’映射的虚拟页面包括了合并前的关联表项Ex和待回填表项E0映射的全部虚拟地址。在回填完成之后,若某一待转译的虚拟地址的高7位(指示页面号的至少部分)与这一合并后的关联表项的虚拟地址标签Vtagx’相等时,说明这一合并后的关联表项被命中,其映射的物理地址标签可以用于替换待转译的虚拟地址的高7位,以与待转译的虚拟地址中余下的各位合成待转译的虚拟地址映射的物理地址。
可以看出,表项合并之后,用于与待转译的虚拟地址进行比较的虚拟地址标签的位数发生了变化。因此,如前所述,可以在判断TLB是否命中的过程中可以根据尺寸标记位确定待比较的虚拟地址标签的位数。
例如,当TLB允许存储两种缓存表项(分别映射不同的页面尺寸)时,可以将尺寸标记位设置为1位,而当TLB允许存储两种以上的缓存表项(分别映射不同的页面尺寸)时,可以将尺寸标记位设置为多位。
尺寸标记位还可以用于确定某一缓存表项是否可以继续被合并,即:当该缓存表项的尺寸标记位指示的是TLB允许的最大页面尺寸时,该缓存表项不能与其他表项合并;当该缓存表项的尺寸标记位指示的不是TLB允许的最大页面尺寸时,该缓存表项可以与其他表项合并,且该缓存表项的尺寸标记位在合并完成后将指示合并后的页面尺寸。
为了简化回填机制,在一些实施例中,TLB可以仅允许存储两种缓存表项,分别映射至第一页面尺寸的页面和第二页面尺寸的页面。其中,第二页面尺寸是第一页面尺寸的二倍。基于此,回填过程仅允许将映射至第一页面尺寸的待回填表项与TLB中映射至第一页面尺寸的关联表项合并,合并后的关联表项映射至第二页面尺寸。因此,各个缓存表项的尺寸标记位可以设置为1位,当某个缓存表项映射的是第一页面尺寸时,其尺寸标记位可以是0,当该缓存表项是待回填表项的关联表项时,可以与待回填表项合并为映射至第二页面尺寸的缓存表项(合并后的关联表项),且合并后的关联表项的尺寸标记位变更至1;当某个缓存表项映射的是第二页面尺寸时,其尺寸标记位可以是1,且该缓存表项不能与待回填表项进行合并。
作为一个示例,合并前某一待回填表项的关联表项Ex具有置0的尺寸标记位,以指示虚拟地址标签的有效位数是8位,其映射的页面尺寸例如是4kB;而合并后的关联表项Ex’的尺寸标记位被置为1,用于指示虚拟地址标签的有效位数是7位,其映射的页面尺寸例如是8kB,是合并前的关联表项Ex映射的页面尺寸的2倍。
如图6所示,若在执行步骤541之后没有找到与待回填表项对应的关联表项,则执行步骤543。
在步骤543中,判断TLB中是否存在空闲存储单元。若是,则执行步骤544,以将待回填表项写入空闲存储单元中,例如将待回填表项写入TLB中未被占用的空闲寄存器中,从而完成回填过程;若否,则执行步骤545,即:基于替换算法在TLB中选择可以被优先替换的缓存表项,并用待回填表项替换被选定的缓存表项。
在一些实施例中,如前所述,替换算法可以是LRU算法,用于根据各个缓存表项被使用的频率选择最近最久未使用的缓存表项作为可被优先替换的缓存表项。该LRU算法例如根据各个缓存表项的引用位判断各个表项被使用的频率。
然而本发明实施例不限于此,本发明实施例还可以采用其他替换算法选择可被优先替换的缓存表项,例如,替换算法还可以依据各个缓存表项的尺寸标记位选择可被优先替换的缓存表项:在尺寸标记位指示的地址空间尺寸较小的缓存表项中,选择近期被使用次数最少的缓存表项作为可被优先替换的缓存表项。
另外,如上文所述,在一些对缓存表项设置有效位的实施例中,可以通过判断TLB中的各个缓存表项的有效位是否指示失效状态,来判断TLB中是否包含可用于写入新的缓存表项的空闲存储单元(例如可以等效为有效位置0的缓存表项)。进一步地,若TLB中包含两个或两个以上的空闲存储单元,则可以根据缓存表项的顺序(例如由各个缓存表项的虚拟地址标签中用于指示表项号的标识位来确定)选择其中一个空闲存储单元作为待回填表项的存储单元。
至此,通过示例描述了将待回填表项写入TLB的方法,即描述了TLB的更新过程。在后续执行的步骤中,更新后的各个缓存表项可在命中时用于将待转译的虚拟地址转换成相应的物理地址。本发明实施例提供的存储管理方法也在上述各实施例中进行了描述。
当处理器执行一段程序时,基于程序的访问局部性原理,无论是对数据的存取还是对指令的存取,处理器访问的连续的虚拟地址通常会映射至连续的物理地址,因此,基于上述分页管理机制可知,页面分配的连续性很强。访问局部性原理产生的现象可以包括:时间局部性,即一个正在被访问的信息很可能会在近期再次被访问,这一现象可能是由于程序循环或堆栈等设计导致的;空间局部性,即正在使用的信息与即将使用的信息很可能在地址上是连续的或邻近的;以及顺序局部性,即大部分指令是按照顺序执行,数组也可能是按照连续存放顺序被访问的。
在传统方案中,TLB中的每个缓存表项对应的页面尺寸是不可扩展的,在TLB存储有限个缓存表项的限定下,TLB的命中率以及单个缓存表项的命中率很难提升。
相比于传统方案,本发明实施例提供的存储管理方法和存储管理单元可以动态地扩展单个的缓存表项,基于前文所述的局部性原理可知,在访问局部性良好的情况下,扩展后的缓存表项与即将到来的多个转译请求的匹配概率较高,提高了单个缓存表项的命中率;同时,扩展后的缓存表项映射的页面尺寸较大,TLB能够映射的地址空间被扩展,进一步提高了TLB的整体命中率,从而提升了处理器和计算机***的性能,节省了指令存取时间和/或数据存取时间,也节约了***的软硬件资源。
本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
此外,本申请还公开了一种计算机***,该计算机***包括用于实现本文所述的各实施例的方法的装置。
需要领会,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本说明书的实施例存在许多变型。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
例如,尽管说明书中仅描述了利用TLB将虚拟地址转译为物理地址的方法,然而TLB不限于存储虚拟地址和物理地址之间的关系,在获得物理地址之前,一些TLB中的缓存表项还可以将虚拟地址转换为转译地址,该转译地址可以经历进一步的转译而被转换为物理地址,转译地址空间同样可以在分页管理机制下被划分为多个部分,每个部分称为转译页面。另外,尽管在某些实施例中TLB的缓存表项用于对虚拟地址空间中的虚拟页面进行转译,但是在其它实施例中,TLB中的缓存表项也可以用于转译其它类型的地址。
又例如,在一些实施例中,存储管理单元可以包括使能寄存器,通过配置使能寄存器中的至少一位数值,可以设置存储管理单元的开启和关闭。
另外,在根页表中查找待回填表项的过程或在TLB中查找匹配的缓存表项的过程可能需要多次或多级查找才能实现,虚拟页面号和物理页面号在不同的映射方式中也可以被划分为多个部分,用于分步骤地与各个表项(或缓存表项)的相应部分进行匹配,以实现多级索引的映射方式。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和***实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。
Claims (24)
1.一种存储管理装置,其特征在于,包括:
至少一个转译后备缓冲器,用于存储多个缓存表项;
地址转换单元,用于根据所述多个缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址;以及
控制单元,与所述至少一个转译后备缓冲器耦接,用于扩展选定的所述缓存表项映射的地址范围。
2.根据权利要求1所述的存储管理装置,其特征在于,所述控制单元被配置以执行:
在所述多个缓存表项均未命中所述转译请求时,获取命中所述转译请求的待回填表项;以及
扩展所述多个缓存表项之一,以使扩展后的所述缓存表项映射的地址范围包括所述待回填表项映射的地址范围。
3.根据权利要求2所述的存储管理装置,其特征在于,所述控制单元与用于存储根页表的存储器耦接,所述待回填表项来源于所述根页表。
4.根据权利要求2所述的存储管理装置,其特征在于,所述控制单元适于在所述多个缓存表项中查找所述待回填表项的关联表项,并扩展所述关联表项,
扩展前的所述关联表项与所述待回填表项映射至连续的地址范围。扩展后的所述关联表项映射的地址范围包括所述待回填表项映射的地址范围。
5.根据权利要求4所述的存储管理装置,其特征在于,扩展前的所述关联表项指定的第一虚拟页面与所述待回填表项指定的第二虚拟页面连续,扩展前所述关联表项指定的第一转译页面与所述关联表项指定的第二转译页面连续,
扩展后的所述关联表项适于将所述第一虚拟页面与所述第二虚拟页面中的虚拟地址转译为所述第一转译页面和所述第二转译页面中的转译地址。
6.根据权利要求4所述的存储管理装置,其特征在于,所述第一虚拟页面、所述第二虚拟页面、所述第一转译页面和所述第二转译页面具有相同的页面尺寸。
7.根据权利要求4至6任一项所述的存储管理装置,其特征在于,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:
第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页面;
第二寄存器,用于存储转译地址标签,以指示所述虚拟页面映射的转译页面;以及
第三寄存器,用于存储尺寸标记位,以指示所述虚拟页面/所述转译页面的页面尺寸,所述虚拟页面和所述转译页面具有相同的页面尺寸。
8.根据权利要求7所述的存储管理装置,其特征在于,在扩展所述关联表项时,所述控制单元适于修改所述关联表项的所述尺寸标记位,使得扩展后的所述关联表项指示的页面尺寸大于扩展前的所述关联表项指示的页面尺寸。
9.根据权利要求7所述的存储管理装置,其特征在于,所述控制单元适于根据所述尺寸标记位确定所述虚拟地址标签的有效位数。
10.一种处理器,其特征在于,包括如权利要求1至9任一项所述的存储管理装置。
11.根据权利要求10所述的处理器,其特征在于,还包括指令预取单元,所述指令预取单元向所述地址转换单元提供所述转译请求,所述转译请求指定预取指令的虚拟地址,
所述地址转换单元与所述至少一个转译后备缓冲器中的第一转译后备缓冲器通信,并根据所述第一转译后备缓冲器提供的所述缓存表项向所述指令预取单元提供所述预取指令的转译地址。
12.根据权利要求10所述的处理器,其特征在于,还包括加载存储单元,所述加载存储单元向所述地址转换单元提供所述转译请求,所述转译请求指定访存指令的虚拟地址,
所述地址转换单元与所述至少一个转译后备缓冲器中的第二转译后备缓冲器通信,并根据所述第二转译后备缓冲器提供的所述缓存表项向所述加载存储单元提供所述访存指令的转译地址。
13.一种计算机***,其特征在于,包括:
如权利要求10至12任一项所述的处理器;以及
存储器,与所述处理器耦接。
14.一种存储管理方法,其特征在于,包括:
提供多个缓存表项;
接收转译请求,以根据所述多个缓存表项之一将所述转移请求指定的虚拟地址转译为相应的转译地址;以及
扩展选定的所述缓存表项映射的地址范围。
15.根据权利要求14所述的存储管理方法,其特征在于,当所述多个缓存表项均未命中所述转译请求时,获取命中所述转译请求的待回填表项,并扩展所述多个缓存表项之一,以使扩展后的所述缓存表项映射的地址范围包括所述待回填表项映射的地址范围。
16.根据权利要求15所述的存储管理方法,其特征在于,所述待回填表项来源于存储器中存储的根页表。
17.根据权利要求15所述的存储管理方法,其特征在于,还包括:
在所述多个缓存表项中查找所述待回填表项的关联表项,并扩展所述关联表项映射的地址范围,
扩展前的所述关联表项与所述待回填表项映射至连续的地址范围,扩展后的所述关联表项映射的地址范围包括所述待回填表项映射的地址范围。
18.根据权利要求17所述的存储管理方法,其特征在于,扩展前的所述关联表项指定的第一虚拟页面与所述待回填表项指定的第二虚拟页面连续,扩展前所述关联表项指定的第一转译页面与所述关联表项指定的第二转译页面连续,
扩展后的所述关联表项适于将所述第一虚拟页面与所述第二虚拟页面中的虚拟地址转译为所述第一转译页面和所述第二转译页面中的转译地址。
19.根据权利要求18所述的存储管理方法,其特征在于,所述第一虚拟页面、所述第二虚拟页面、所述第一转译页面和所述第二转译页面具有相同的页面尺寸。
20.根据权利要求17至19任一项所述的存储管理方法,其特征在于,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:
第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页面;
第二寄存器,用于存储转译地址标签,以指示所述虚拟页面映射的转译页面;以及
第三寄存器,用于存储尺寸标记位,以指示所述虚拟页面/所述转译页面的页面尺寸,所述虚拟页面和所述物理页面具有相同的页面尺寸。
21.根据权利要求20所述的存储管理方法,其特征在于,在扩展所述关联表项时,修改所述关联表项的所述尺寸标记位,使得扩展后的所述关联表项指示的页面尺寸大于扩展前的所述关联表项指示的页面尺寸。
22.根据权利要求21所述的存储管理方法,其特征在于,判断各个所述缓存表项是否命中所述转译请求的方法包括:
根据所述尺寸标记位确定该缓存表项的所述虚拟地址标签的有效位数;
对该缓存表项的所述虚拟地址标签与所述转移请求指定的虚拟地址的相应部分进行逐位比较,若一致,则该缓存表项命中所述转译请求,若不一致,则该缓存表项未命中所述转译请求,
所述逐位比较的比较位数等于所述有效位数。
23.根据权利要求20所述的存储管理方法,其特征在于,扩展后所述关联表项的所述虚拟地址标签等于扩展前的所述关联表项的所述虚拟地址标签与所述待回填表项的所述虚拟地址标签相同的部分。
24.根据权利要求17所述的存储管理方法,其特征在于,还包括:
当所述多个缓存表项中不存在与所述待回填表项对应的所述关联表项时,用所述待回填表项替换所述多个缓存表项之一,被替换的所述缓存表项为失效表项、空闲表项或根据替换算法选定的可替换表项。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910901082.XA CN112540939A (zh) | 2019-09-23 | 2019-09-23 | 存储管理装置、存储管理方法、处理器和计算机*** |
US17/022,829 US20210089470A1 (en) | 2019-09-23 | 2020-09-16 | Address translation methods and systems |
PCT/US2020/051004 WO2021061465A1 (en) | 2019-09-23 | 2020-09-16 | Address translation methods and systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910901082.XA CN112540939A (zh) | 2019-09-23 | 2019-09-23 | 存储管理装置、存储管理方法、处理器和计算机*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112540939A true CN112540939A (zh) | 2021-03-23 |
Family
ID=74879918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910901082.XA Pending CN112540939A (zh) | 2019-09-23 | 2019-09-23 | 存储管理装置、存储管理方法、处理器和计算机*** |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210089470A1 (zh) |
CN (1) | CN112540939A (zh) |
WO (1) | WO2021061465A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836054A (zh) * | 2021-08-30 | 2021-12-24 | 中国人民解放军军事科学院国防科技创新研究院 | 用于gpu的内存页管理方法和内存页转换方法 |
CN114036077A (zh) * | 2021-11-17 | 2022-02-11 | 海光信息技术股份有限公司 | 数据处理方法及相关装置 |
CN114063934A (zh) * | 2021-12-09 | 2022-02-18 | 北京奕斯伟计算技术有限公司 | 数据更新装置、方法及电子设备 |
CN114676073A (zh) * | 2022-05-18 | 2022-06-28 | 飞腾信息技术有限公司 | 一种tlb表项管理的方法、装置及存储介质 |
CN115422098A (zh) * | 2022-02-15 | 2022-12-02 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113227995A (zh) * | 2021-03-31 | 2021-08-06 | 长江存储科技有限责任公司 | 用于闪存存储器的文件***和主机性能增强器 |
KR20220147277A (ko) * | 2021-04-27 | 2022-11-03 | 삼성전자주식회사 | 제어 장치, 이를 포함하는 컴퓨팅 시스템, 및 이의 페이지 테이블 엔트리 생성 및 탐색 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115229A1 (en) * | 2008-10-31 | 2010-05-06 | Greg Thelen | System And Method For On-the-fly TLB Coalescing |
US20130275716A1 (en) * | 2011-01-12 | 2013-10-17 | Panasonic Corporation | Program execution device and compiler system |
CN104272279A (zh) * | 2012-05-10 | 2015-01-07 | Arm有限公司 | 具有缓存和转换后备缓冲器的数据处理装置 |
CN105989758A (zh) * | 2015-02-05 | 2016-10-05 | 龙芯中科技术有限公司 | 地址翻译方法和装置 |
US9569348B1 (en) * | 2009-09-22 | 2017-02-14 | Nvidia Corporation | Method for automatic page table compression |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8276128B2 (en) * | 2009-07-14 | 2012-09-25 | Unisys Corporation | Systems, methods, and computer programs for dynamic binary translation in a master control program interpreter |
US8341380B2 (en) * | 2009-09-22 | 2012-12-25 | Nvidia Corporation | Efficient memory translator with variable size cache line coverage |
JP6584823B2 (ja) * | 2014-06-20 | 2019-10-02 | 株式会社東芝 | メモリ管理装置、プログラム、及び方法 |
-
2019
- 2019-09-23 CN CN201910901082.XA patent/CN112540939A/zh active Pending
-
2020
- 2020-09-16 US US17/022,829 patent/US20210089470A1/en not_active Abandoned
- 2020-09-16 WO PCT/US2020/051004 patent/WO2021061465A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100115229A1 (en) * | 2008-10-31 | 2010-05-06 | Greg Thelen | System And Method For On-the-fly TLB Coalescing |
US9569348B1 (en) * | 2009-09-22 | 2017-02-14 | Nvidia Corporation | Method for automatic page table compression |
US20130275716A1 (en) * | 2011-01-12 | 2013-10-17 | Panasonic Corporation | Program execution device and compiler system |
CN104272279A (zh) * | 2012-05-10 | 2015-01-07 | Arm有限公司 | 具有缓存和转换后备缓冲器的数据处理装置 |
CN105989758A (zh) * | 2015-02-05 | 2016-10-05 | 龙芯中科技术有限公司 | 地址翻译方法和装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836054A (zh) * | 2021-08-30 | 2021-12-24 | 中国人民解放军军事科学院国防科技创新研究院 | 用于gpu的内存页管理方法和内存页转换方法 |
CN113836054B (zh) * | 2021-08-30 | 2023-08-22 | 中国人民解放军军事科学院国防科技创新研究院 | 用于gpu的内存页管理方法和内存页转换方法 |
CN114036077A (zh) * | 2021-11-17 | 2022-02-11 | 海光信息技术股份有限公司 | 数据处理方法及相关装置 |
CN114036077B (zh) * | 2021-11-17 | 2022-10-21 | 海光信息技术股份有限公司 | 数据处理方法及相关装置 |
CN114063934A (zh) * | 2021-12-09 | 2022-02-18 | 北京奕斯伟计算技术有限公司 | 数据更新装置、方法及电子设备 |
CN114063934B (zh) * | 2021-12-09 | 2023-11-03 | 北京奕斯伟计算技术股份有限公司 | 数据更新装置、方法及电子设备 |
CN115422098A (zh) * | 2022-02-15 | 2022-12-02 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
CN115422098B (zh) * | 2022-02-15 | 2023-08-29 | 摩尔线程智能科技(北京)有限责任公司 | 基于扩展页表的gpu访存自适应优化方法及装置 |
CN114676073A (zh) * | 2022-05-18 | 2022-06-28 | 飞腾信息技术有限公司 | 一种tlb表项管理的方法、装置及存储介质 |
CN114676073B (zh) * | 2022-05-18 | 2022-09-23 | 飞腾信息技术有限公司 | 一种tlb表项管理的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210089470A1 (en) | 2021-03-25 |
WO2021061465A1 (en) | 2021-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210089470A1 (en) | Address translation methods and systems | |
JP6505132B2 (ja) | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 | |
CN112631961B (zh) | 一种内存管理单元、地址转译方法以及处理器 | |
US11836079B2 (en) | Storage management apparatus, storage management method, processor, and computer system | |
US9858198B2 (en) | 64KB page system that supports 4KB page operations | |
KR102290464B1 (ko) | 시스템 온 칩 및 그것의 주소 변환 방법 | |
JP2017516234A (ja) | 次の読取りアドレスプリフェッチングによるメモリ容量圧縮および/またはメモリ帯域幅圧縮を利用するメモリコントローラ、ならびに関連するプロセッサベースシステムおよび方法 | |
US8370604B2 (en) | Method and system for caching attribute data for matching attributes with physical addresses | |
US9317448B2 (en) | Methods and apparatus related to data processors and caches incorporated in data processors | |
JP2003067357A (ja) | 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法 | |
US20140156930A1 (en) | Caching of virtual to physical address translations | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
US11803482B2 (en) | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system | |
CN113722247B (zh) | 物理内存保护单元、物理内存权限控制方法和处理器 | |
US9507729B2 (en) | Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor | |
CN114258533A (zh) | 在基于处理器的设备中优化对页表条目的访问 | |
US7797492B2 (en) | Method and apparatus for dedicating cache entries to certain streams for performance optimization | |
CN112559389A (zh) | 存储控制装置、处理装置、计算机***和存储控制方法 | |
CN116795740A (zh) | 数据存取方法、装置、处理器、计算机***及存储介质 | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
US12008261B2 (en) | Method and device for accessing memory | |
CN115080464A (zh) | 数据处理方法和数据处理装置 | |
CN117331854A (zh) | 缓存处理方法、装置、电子设备及介质 | |
CN117331853A (zh) | 缓存处理方法、装置、电子设备及介质 | |
KR100343940B1 (ko) | 트랜슬레이션 룩어헤드 버퍼 예측 비트를 이용한 쓰기동작시의 캐쉬 얼리어싱 방지 |
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 |