CN116069689A - 页表访问方法、系统、电子组件及页表配置方法 - Google Patents
页表访问方法、系统、电子组件及页表配置方法 Download PDFInfo
- Publication number
- CN116069689A CN116069689A CN202310188017.3A CN202310188017A CN116069689A CN 116069689 A CN116069689 A CN 116069689A CN 202310188017 A CN202310188017 A CN 202310188017A CN 116069689 A CN116069689 A CN 116069689A
- Authority
- CN
- China
- Prior art keywords
- page table
- context
- virtual address
- shared
- address
- 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.)
- Granted
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/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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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
-
- 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
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
技术领域
本公开涉及存储器技术领域,尤其涉及一种页表访问方法、系统、电子组件及页表配置方法。
背景技术
在使用CPU(Central Processing Unit,中央处理器)和/或GPU(GraphicsProcessing Unit,图形处理器)的应用场景中,很多应用会给上下文(context)划分页表(Page Table),以将虚拟地址转换为物理地址。
即使不同的context所需处理的数据存在重复,需要去同一物理存储位置获取该重复的数据,由于不同的context的虚拟地址空间不同,这些不同的context也无法使用同一份页表去获取该重复的数据。取而代之的做法是,根据各个context具体的虚拟地址空间,为其配置对应的页表,以便各个context使用与之对应的页表去获取该重复数据。由此可见,在现有技术中,需要内存保存多份页表。
然而,随着应用所需数据量的增大,与单个context对应的页表所占的存储空间也越来越大,若依旧采用现有技术中的保存多份页表的方式,会占用大量的存储空间,导致存储资源的浪费。
发明内容
本公开的目的是提供一种页表访问方法、系统、电子组件及页表配置方法,有利于减少页表所占用的存储空间,提高存储资源的利用率。
根据本公开的一个方面,提供一种页表访问方法,包括:接收主设备发起的携带虚拟地址及上下文标识的页表访问请求;根据所述上下文标识及所述虚拟地址,判断所述页表访问请求的访问对象是否是共享页表;在是所述共享页表的情况下,根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,并将携带所述偏移计算的结果的访问请求转发到所述共享页表;
所述共享页表的页表项指向的物理地址空间,是各个上下文可访问的物理地址空间,所述物理地址空间存储的数据是可访问所述共享页表的上下文所共享的数据。
本公开一种可行的实现方式中,所述判断所述页表访问请求的访问对象是否是共享页表,包括:判断所述上下文标识是否属于预先配置的上下文标识集合,以及判断所述虚拟地址是否属于预先配置的与所述上下文标识对应的虚拟地址配置空间;
在均属于的情况下,表示所述访问对象是所述共享页表,否则表示所述访问对象不是所述共享页表;
所述预先配置的上下文标识集合,是可访问所述共享页表的上下文的上下文标识的并集。
本公开一种可行的实现方式中,对于与所述上下文标识对应的虚拟地址配置空间包含的虚拟地址,根据与所述上下文标识对应的地址偏移对该虚拟地址做偏移计算后得到的虚拟地址,是与所述上下文标识对应的上下文与其他上下文共享的数据对应的虚拟地址。
本公开一种可行的实现方式中,所述根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,包括:将所述虚拟地址与所述上下文标识对应的地址偏移进行求差,得到的差值为所述偏移计算的结果。
本公开一种可行的实现方式中,与不同上下文标识对应的地址偏移相同或不同。
本公开一种可行的实现方式中,可发起所述页表访问请求的不同主设备所使用的页表格式相同。
本公开一种可行的实现方式中,所述方法还包括:在不是所述共享页表的情况下,将所述访问请求转发到与所述上下文标识对应的私有页表。
根据本公开的另一方面,还提供一种页表访问系统,包括页表管理单元及内存,在所述内存内存储共享页表;
所述页表管理单元被配置为:接收主设备发起的携带虚拟地址及上下文标识的页表访问请求;根据所述上下文标识及所述虚拟地址,判断所述页表访问请求的访问对象是否是共享页表;在是的情况下,根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,并将携带所述偏移计算的结果的访问请求转发到所述共享页表;
所述共享页表的页表项指向的物理地址空间,是各个上下文可访问的物理地址空间,所述物理地址空间存储的数据是可访问所述共享页表的上下文所共享的数据。
在一种可行的实现方式中,所述页表管理单元,具体被配置为:判断所述上下文标识是否属于预先配置的上下文标识集合,以及判断所述虚拟地址是否属于预先配置的与所述上下文标识对应的虚拟地址配置空间;在均属于的情况下,表示所述访问对象是所述共享页表,否则表示所述访问对象不是所述共享页表;
所述预先配置的上下文标识集合,是可访问所述共享页表的上下文的上下文标识的并集。
在一种可行的实现方式中,对于与所述上下文标识对应的虚拟地址配置空间包含的虚拟地址,根据与所述上下文标识对应的地址偏移对该虚拟地址做偏移计算后得到的虚拟地址,是与所述上下文标识对应的上下文与其他上下文共享的数据对应的虚拟地址。
在一种可行的实现方式中,所述页表管理单元,具体被配置为:将所述虚拟地址与所述上下文标识对应的地址偏移进行求差,得到的差值为所述偏移计算的结果。
在一种可行的实现方式中,不同上下文标识对应的地址偏移相同或不同。
在一种可行的实现方式中,可发起所述页表访问请求的不同主设备所使用的页表格式相同。
在一种可行的实现方式中,可发起所述页表访问请求的主设备是同一个主设备。
在一种可行的实现方式中,在所述内存内存储与所述主设备的各个上下文的上下文标识一一对应的私有页表;所述页表管理单元还被配置为:在否的情况下,将携带所述虚拟地址的所述访问请求转发到与所述上下文标识对应的私有页表。
在一种可行的实现方式中,所述内存是DDR(Double Data Rate SDRAM,双倍数据速率存储器)。
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述任一实施例中所述的页表访问系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
根据本公开的另一方面,还提供一种页表配置方法,包括:
为每个上下文配置对应的私有页表,所述私有页表中的页表项将对应上下文的第一虚拟地址映射为第一物理地址;所述第一物理地址用于保存所述对应上下文独占的数据;
为多个上下文配置可共享的共享页表,所述共享页表中的页表项将第二虚拟地址映射为第二物理地址;所述第二物理地址用于保存所述多个上下文均可使用的重复数据;所述多个上下文中的任一上下文的虚拟地址空间基于对应的地址偏移进行偏移计算后,包括所述第二虚拟地址。
在一种可行的实现方式中,在所述多个上下文中,不同上下文的地址偏移相同或不同。
附图说明
图1是本公开一个实施例的页表访问系统的结构示意图;
图2是各个上下文所能访问的页表的示意图;
图3为本公开一个实施例的页表访问方法的流程示意图;
图4是本公开一个实施例的页表配置方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任一和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
在现有技术中,即使各个context待处理的数据存在重复,也需要根据各个context具体的虚拟地址空间,为各个context配置对应的页表并存储在内存。
现假设存在m个context,且该m个context中的n(m、n均为正整数,且n小于等于m)个context所处理的数据存在重复,为重复数据。为便于描述,将这n个context称之为特殊context,将与之对应的页表称之为特殊页表。相应的,在内存中保存有m份页表,m份页表中存在n份特殊页表,且在这n份特殊页表中均包括指向同一物理地址的页表项,该同一物理地址即为某个重复数据所在的物理地址。
如此,将会导致在内存中,针对同一物理地址存在n个页表项,较为浪费存储空间。
基于此,本公开的目的是提供一种页表访问方案,有利于减少页表所占用的存储空间,进而可提高存储资源的利用率。
具体的,请参照图1,本公开一个实施例提出一种页表访问系统,该页表访问系统包括页表管理单元、内存、数据总线及其他组件(如果必要),例如图1中所示的主设备Master。
可选的,Master可以是CPU、DMA(Direct Memory Access 直接内存访问)等可对内存发起访问请求的单元,即内存可视为Master的从设备。
其中,上述内存可以是DDR,也可以是其他可读可写的存储器。
同一个Master在不同的应用场景下,存在对应的上下文context。Master在初始化context时,会运行预先烧录的固件为context配置对应的虚拟地址空间,且context间的虚拟地址空间不一定完全相同。该虚拟地址空间表示该context在运行过程中可使用的虚拟地址空间,
此外,在初始化context时,还会根据context的虚拟地址空间为context分配页表。
在本公开实施例中,为了避免属于不同页表的页表项(例如属于页表A的页表项0与属于页表B的表项0)均映射为同一物理地址,即避免context间处理的重复数据所在的物理地址占用多个页表,在为各个context分配页表时,在内存中存储一份共享页表以及为每个context存储对应的私有页表。如图2所示,各个context可访问的页表包括:共享页表以及与自身对应的私有页表。
其中,在共享页表内包括多个页表项,页表项表示的是将虚拟地址映射为物理地址的映射关系。共享页表中的每个页表项所映射的物理地址所存储的数据,是至少两个context所需处理的重复数据。
假设将context间所需处理的重复数据的交集称之为重复数据块,那么将共享页表中的每个页表项所映射出的物理地址组成的物理地址空间,是存储重复数据块的物理地址空间。
当然,由共享页表中的每个页表项所映射出的物理地址组成的物理地址空间不一定连续。
私有页表内也包括多个页表项,页表项表示的是将虚拟地址映射为物理地址的映射关系。针对某一具体的context来说,其私有页表中的每个页表项所映射的物理地址所存储的数据,是该context独占的数据,无需与其他context共享。
当然,由私有页表中的每个页表项所映射出的物理地址组成的物理地址空间不一定连续。
相应的,在为context分配页表时,将与之对应的虚拟地址空间至少拆分成虚拟地址子空间A以及虚拟地址子空间B,以便context基于虚拟地址子空间A中的虚拟地址访问其私有页表,以及基于虚拟地址空间B中的虚拟地址访问共享页表。
当然,各个虚拟地址子空间的内部地址连续。
由于重叠数据一般使用高位地址空间,因此,在一些实施方式中,用于配置到共享页表的虚拟地址子空间是context的虚拟地址空间中的高位虚拟地址子空间。
为了实现context基于其虚拟地址子空间A中的虚拟地址访问其私有页表,在为任意context(假设为context 1)分配页表时,将context 1的虚拟地址子空间A配置到与该context 1对应的私有页表中。
如此配置之后,使得在与该context 1对应的私有页表中,将该私有页表中的各个页表项表示的映射关系中的虚拟地址形成的虚拟地址空间,等于该context 1的虚拟地址子空间A。
为了实现各个context可以基于其虚拟地址子空间B中的虚拟地址访问共享页表,在为context分配页表时,在内存中统一配置一份共享页表。
针对需要使用共享页表的context组,由于context组中的各个context的虚拟地址子空间B不一定相同,即context组中的各个context可用于访问共享页表的起始虚拟地址不一定相同,例如context 1的虚拟地址子空间A为0~1G,context 1的虚拟地址子空间B为1G~2G;context 2的虚拟地址子空间A为0~2G,context 2的虚拟地址子空间B为2G~3G。那么在配置共享页表时,针对context组,共享页表中的各个页表项表示的映射关系中的虚拟地址所形成的虚拟地址空间,等于该context组中的至少一个context(为便于描述,称之为基础context)的虚拟地址子空间B,即是基于基础context的虚拟地址子空间B来配置共享页表,等于context组中的每个context的虚拟地址子空间B和与该context对应的offset之差。
具体的,完成对共享页表配置后,需要使用共享页表的context组中的每个context的虚拟地址子空间B与共享页表的页表项指示的虚拟地址空间之间的地址偏移offset即可被确定,可以保证各个context的虚拟地址子空间B基于与之对应的offset进行偏移计算后得到的另一虚拟地址子空间等于共享页表中的各个页表项表示的映射关系中的虚拟地址形成的虚拟地址空间。
当然,对于基础context来说,与之对应的offset为0。
例如context 1的虚拟地址子空间B为0x10000000~0x20000000,context 2的虚拟地址子空间B为0x20000000~0x30000000,context 3的虚拟地址子空间B为0x20000000~0x30000000。若以context1为基础context配置的共享页表的页表项表示的虚拟地址空间为0x10000000~0x20000000,那么与context 1对应的offset1为0,与context 2对应的offset2为0x10000000(基于0x20000000-0x10000000得到,或者基于0x30000000-0x20000000得到),与context 3对应的offset3为0x10000000。若以context 2为基础context配置的共享页表的页表项表示的虚拟地址空间为0x20000000~0x30000000,那么与context 1对应的offset1为-0x100000000(基于0x10000000-0x20000000得到,或者基于0x20000000-0x30000000得到),与context2对应的offset2为0,与context 3对应的offset3为0。
当然,若某个context所需处理的数据未与任何其他context所需处理的数据存在重复,那么为该context分配页表时,其虚拟地址子空间B为空,或者无需对其虚拟地址空间进行拆分。相应的,该context也无需使用共享页表。
在完成上述配置后,当Master中的某一上下文需要获取数据时,Master可发起携带上下文标识以及虚拟地址的页表访问请求。上下文标识(例如ID)用于唯一标识该需要获取数据的上下文,虚拟地址是该上下文中预先为待获取的数据分配的虚拟地址,且该虚拟地址属于该上下文的虚拟地址空间。
对于页表访问系统而言,其页表管理单元即可被配置为:接收主设备发起的携带虚拟地址及上下文标识的页表访问请求;根据上下文标识及虚拟地址,判断该页表访问请求的访问对象是否为共享页表,以及在判断结果为是的情况下,根据与上下文标识对应的地址偏移对虚拟地址做偏移计算,并将携带偏移计算的结果的访问请求转发到共享页表。
其中,上述与上下文标识对应的地址偏移,即前文所提及的与上下文对应的offset。
可选的,页表管理单元根据与上下文标识对应的地址偏移对虚拟地址做偏移计算,具体可以为:将所述虚拟地址与上下文标识对应的地址偏移进行求差,得到的差值为所述偏移计算的结果。
当然,与不同上下文标识对应的地址偏移相同或不同,具体取决于对应上下文的虚拟地址子空间B的起始虚拟地址是否相同。
页表管理单元将携带偏移计算的结果的访问请求转发到共享页表后,共享页表即可根据偏移计算的结果,向Master返回与偏移计算的结果对应的页表项所指向的物理地址,以便Master在后续从该物理地址获取待获取的数据。
值得指出的是,共享页表各个页表项所表示的映射关系中的物理地址所形成的物理地址空间,是各个可使用共享页表的上下文可访问的物理地址空间。
由上述内容可知,在本公开提供的页表访问方案中,页表管理单元在基于上下文标识以及上下文所需使用的数据的虚拟地址确定页表访问请求的访问对象为共享页表的情况下,通过访问共享页表来获取页表内容;此外,各个上下文可复用同一份共享页表来获取到页表内容,进而获取到对应的数据。那么对于各个上下文来说,不必再为其单独设置与共享页表的页表内容指向同一物理地址的页表,进而可以减少内存中的页表所占用的存储空间,有利于提高存储资源的利用率。
可选的,可以在页表管理单元内预先保存上下文标识集合,以及预先保存与上下文标识集合中的每个上下文标识配置对应的虚拟地址配置空间。当然,页表管理单元可对上下文标识集合内的上下文标识以及每个上下文标识配置对应的虚拟地址配置空间进行维护以及管理,例如通过配置实现对上下文标识集合内的上下文标识以及对上下文标识配置对应的虚拟地址配置空间的删/增等。当上下文标识集合内的所有上下文标识均无效后,页表管理单元可清除共享页表。
该上下文标识集合是可使用共享页表的上下文的上下文标识的并集,即需要使用共享页表的context组中各个上下文的上下文标识的并集。该虚拟地址配置空间是对应上下文标识所标识的上下文的虚拟地址空间的子集,具体为对应上下文的虚拟地址子空间B。此外,对于与上下文标识对应的虚拟地址配置空间包含的虚拟地址,根据与上下文标识对应的地址偏移对该虚拟地址做偏移计算后所得到的虚拟地址,是与该上下文标识对应的上下文与其他上下文共享的数据对应的虚拟地址。
页表管理单元在判断页表访问请求的访问对象是否为共享页表的情况下,具体被配置为:判断上下文标识是否属于预先配置的上下文标识集合,以及判断虚拟地址是否属于预先配置的与上下文标识对应的虚拟地址配置空间。其中,在均属于的情况下,表示访问请求的访问对象是共享页表,否则表示访问请求的访问对象不是共享页表。
当然,在一些实施方式中,当访问请求的访问对象不是共享页表时,即可表征该访问请求的访问对象是上下文标识所标识的上下文的私有页表。在这种情况下,页表管理单元,还被配置为:将携带虚拟地址的访问请求转发到与上下文标识对应的私有页表。
现假设存在如下场景:某个Master下存在三种上下文,分别为context 0、context1以及context2。在页表管理单元内保存的上下文标识集合分别为context 1以及context2,表示context 1与context 2可访问共享页表。其中,假设页表管理单元内与context 1对应的虚拟地址配置空间为0x10000000-0x20000000,与context 1对应的offset为0;与context 2对应的虚拟地址配置空间为0x20000000-0x30000000,与context2对应的offset为0x10000000;共享页表的虚拟地址空间为0x10000000-0x20000000。
当Master发起的访问请求通过页表管理单元、数据总线访问页表时,可能存在如下情况:
1)若该访问请求携带context 0以及虚拟地址,那么页表管理模块判断context 0不属于上下文标识集合,表示context 0不能访问共享页表,则直接将携带context0以及虚拟地址的访问请求发送至与context 0对应的私有页表0。
2)若访问请求携带context 1以及虚拟地址0x00000001,页表管理模块判断context 1属于上下文标识集合,但判断0x00000001不属于与context 1对应的虚拟地址配置空间0x10000000-0x20000000,表示当前访问请求的访问对象是context 1的私有页表,则直接将携带context1以及虚拟地址0x00000001的访问请求发送至与context 1对应的私有页表1。
3)若访问请求携带context 1以及虚拟地址0x10000001,页表管理模块判断context 1属于上下文标识集合,且判断0x10000001属于与context 1对应的虚拟地址配置空间0x10000000-0x20000000,表示当前访问请求的访问对象为共享页表,那么页表管理模块将虚拟地址0x10000001-offset1后,将携带偏移计算的结果的访问请求转发到共享页表。由于offset1=0,0x10000001-offset1=0x10000001,因此,页表管理模块将携带0x10000001的访问请求转发到共享页表。
假设共享页表中与0x10000001对应的页表项将0x10000001映射成的物理地址是物理地址A,后续,共享页表将物理地址A返回给Master,以便Master为context 1去物理地址A获取重复数据A。
4)若访问请求携带context 2以及虚拟地址0x20000001,页表管理模块判断context 2属于上下文标识集合,且判断0x20000001属于与context 2对应的虚拟地址配置空间0x20000000-0x30000000,表示当前访问请求的访问对象为共享页表,那么页表管理模块将虚拟地址0x20000001-offset2后,将携带偏移计算的结果的访问请求转发到共享页表。由于offset2=0x10000000,0x20000001-offset2=0x10000001,因此,页表管理模块将携带0x10000001的访问请求转发到共享页表。
共享页表中与0x10000001对应的页表项将0x10000001映射成的物理地址是物理地址A,后续,共享页表将物理地址A返回给Master,以便Master为context 2去物理地址A获取重复数据A。
假设Master先初始化context 1,且在初始化context 1过程中,通过访问共享页表获取到了重复数据块所在的物理地址以及获取到了重复数据块,那么当后续Master需要切换到初始化context 2时,由于context 2也需要使用该重复数据块,且该重复数据块所在的物理地址已经被Master预先获取到,那么Master可直接根据该物理地址直接获取到该重复数据块,而不必再通过访问共享页表去获取物理地址,进而可以提高context 的初始化配置过程。
可选的,上述可用于对共享页表发起访问请求的主设备,可以是同一个主设备,也可以是不同的主设备。
当然,若上述可用于对共享页表发起访问请求的主设备是不同的主设备,那么这些不同的主设备所使用的页表格式均相同,均为共享页表所使用的页表格式。
此外,请参照图3,本公开实施例还提供一种页表访问方法,该方法可以包括:
步骤S110、接收主设备发起的携带虚拟地址及上下文标识的页表访问请求;
步骤S120、根据所述上下文标识及所述虚拟地址,判断所述页表访问请求的访问对象是否是共享页表;
步骤S130、在是所述共享页表的情况下,根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,并将携带所述偏移计算的结果的访问请求转发到所述共享页表。
其中,所述共享页表的页表项指向的物理地址空间,是各个上下文可访问的物理地址空间,所述物理地址空间存储的数据是可访问所述共享页表的上下文所共享的数据。
可选的,所述判断所述页表访问请求的访问对象是否是共享页表,包括:判断所述上下文标识是否属于预先配置的上下文标识集合,以及判断所述虚拟地址是否属于预先配置的与所述上下文标识对应的虚拟地址配置空间;在均属于的情况下,表示所述访问对象是所述共享页表,否则表示所述访问对象不是所述共享页表。
其中,所述预先配置的上下文标识集合,是可访问所述共享页表的上下文的上下文标识的并集。
可选的,对于与所述上下文标识对应的虚拟地址配置空间包含的虚拟地址,根据与所述上下文标识对应的地址偏移对该虚拟地址做偏移计算后得到的虚拟地址,是与所述上下文标识对应的上下文与其他上下文共享的数据对应的虚拟地址。
可选的,所述根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,包括:将所述虚拟地址与所述上下文标识对应的地址偏移进行求差,得到的差值为所述偏移计算的结果。
可选的,与不同上下文标识对应的地址偏移相同或不同。
可选的,可发起所述页表访问请求的不同主设备所使用的页表格式相同。
可选的,基于上述任一实施方式,所述方法还包括:在不是所述共享页表的情况下,将所述访问请求转发到与所述上下文标识对应的私有页表。
此外,本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的页表访问系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
此外,本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
此外,本公开实施例还提供一种页表配置方法,请参照图4,该方法可以包括:
步骤S210、为每个上下文配置对应的私有页表,所述私有页表中的页表项将对应上下文的第一虚拟地址映射为第一物理地址;
步骤S220、为多个上下文配置可共享的共享页表,所述共享页表中的页表项将第二虚拟地址映射为第二物理地址。
所述第一物理地址用于保存所述对应上下文独占的数据;所述第二物理地址用于保存所述多个上下文均可使用的重复数据;所述多个上下文中的任一上下文的虚拟地址空间基于对应的地址偏移进行偏移计算后,包括所述第二虚拟地址。
可选的,在所述多个上下文中,不同上下文的地址偏移可不同,即不同上下文的地址偏移相同或不同。
通过上述页表配置方法,可减少内存中的页表项占用的存储空间。
基于上述方案,在本公开提供的页表访问方案中,页表管理单元在基于上下文标识以及上下文所需使用的数据的虚拟地址确定页表访问请求的访问对象为共享页表的情况下,通过访问共享页表来获取页表内容;此外,各个上下文可复用同一份共享页表来获取到页表内容,进而获取到对应的数据。那么对于各个上下文来说,不必再为其单独设置与共享页表的页表内容指向同一物理地址的页表,进而可以减少内存中的页表所占用的存储空间,有利于提高存储资源的利用率。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (19)
1.一种页表访问方法,包括:
接收主设备发起的携带虚拟地址及上下文标识的页表访问请求;
根据所述上下文标识及所述虚拟地址,判断所述页表访问请求的访问对象是否是共享页表;
在是所述共享页表的情况下,根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,并将携带所述偏移计算的结果的访问请求转发到所述共享页表;所述共享页表的页表项指向的物理地址空间,是各个上下文可访问的物理地址空间,所述物理地址空间存储的数据是可访问所述共享页表的上下文所共享的数据。
2.根据权利要求1所述的页表访问方法,所述判断所述页表访问请求的访问对象是否是共享页表,包括:
判断所述上下文标识是否属于预先配置的上下文标识集合,以及判断所述虚拟地址是否属于预先配置的与所述上下文标识对应的虚拟地址配置空间;
在均属于的情况下,表示所述访问对象是所述共享页表,否则表示所述访问对象不是所述共享页表;
所述预先配置的上下文标识集合,是可访问所述共享页表的上下文的上下文标识的并集。
3.根据权利要求2所述的页表访问方法,对于与所述上下文标识对应的虚拟地址配置空间包含的虚拟地址,根据与所述上下文标识对应的地址偏移对该虚拟地址做偏移计算后得到的虚拟地址,是与所述上下文标识对应的上下文与其他上下文共享的数据对应的虚拟地址。
4.根据权利要求1所述的页表访问方法,所述根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,包括:
将所述虚拟地址与所述上下文标识对应的地址偏移进行求差,得到的差值为所述偏移计算的结果。
5.根据权利要求4所述的页表访问方法,与不同上下文标识对应的地址偏移相同或不同。
6.根据权利要求1所述的页表访问方法,可发起所述页表访问请求的不同主设备所使用的页表格式相同。
7.根据权利要求1-6任一项所述的页表访问方法,所述方法还包括:
在不是所述共享页表的情况下,将所述访问请求转发到与所述上下文标识对应的私有页表。
8.一种页表访问系统,包括页表管理单元及内存,所述内存存储共享页表;
所述页表管理单元被配置为:接收主设备发起的携带虚拟地址及上下文标识的页表访问请求;根据所述上下文标识及所述虚拟地址,判断所述页表访问请求的访问对象是否是共享页表;在是的情况下,根据与所述上下文标识对应的地址偏移对所述虚拟地址做偏移计算,并将携带所述偏移计算的结果的访问请求转发到所述共享页表;
所述共享页表的页表项指向的物理地址空间,是各个上下文可访问的物理地址空间,所述物理地址空间存储的数据是可访问所述共享页表的上下文所共享的数据。
9.根据权利要求8所述的页表访问系统,所述页表管理单元,具体被配置为:判断所述上下文标识是否属于预先配置的上下文标识集合,以及判断所述虚拟地址是否属于预先配置的与所述上下文标识对应的虚拟地址配置空间;在均属于的情况下,表示所述访问对象是所述共享页表,否则表示所述访问对象不是所述共享页表;
所述预先配置的上下文标识集合,是可访问所述共享页表的上下文的上下文标识的并集。
10.根据权利要求9所述的页表访问系统,对于与所述上下文标识对应的虚拟地址配置空间包含的虚拟地址,根据与所述上下文标识对应的地址偏移对该虚拟地址做偏移计算后得到的虚拟地址,是与所述上下文标识对应的上下文与其他上下文共享的数据对应的虚拟地址。
11.根据权利要求8所述的页表访问系统,所述页表管理单元,具体被配置为:将所述虚拟地址与所述上下文标识对应的地址偏移进行求差,得到的差值为所述偏移计算的结果。
12.根据权利要求11所述的页表访问系统,不同上下文标识对应的地址偏移相同或不同。
13.根据权利要求8所述的页表访问系统,可发起所述页表访问请求的不同主设备所使用的页表格式相同。
14.根据权利要求8所述的页表访问系统,可发起所述页表访问请求的主设备是同一个主设备。
15.根据权利要求8-14任一所述的页表访问系统,在所述内存内存储与所述主设备的各个上下文的上下文标识一一对应的私有页表;
所述页表管理单元还被配置为:在否的情况下,将携带所述虚拟地址的所述访问请求转发到与所述上下文标识对应的私有页表。
16.一种电子组件,包括权利要求8-15任一所述的页表访问系统。
17.一种电子设备,包括权利要求16所述的电子组件。
18.一种页表配置方法,包括:
为每个上下文配置对应的私有页表,所述私有页表中的页表项将对应上下文的第一虚拟地址映射为第一物理地址;所述第一物理地址用于保存所述对应上下文独占的数据;
为多个上下文配置可共享的共享页表,所述共享页表中的页表项将第二虚拟地址映射为第二物理地址;所述第二物理地址用于保存所述多个上下文均可使用的重复数据;所述多个上下文中的任一上下文的虚拟地址空间基于对应的地址偏移进行偏移计算后,包括所述第二虚拟地址。
19.根据权利要求18所述的页表配置方法,在所述多个上下文中,不同上下文的地址偏移相同或不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310188017.3A CN116069689B (zh) | 2023-03-02 | 2023-03-02 | 页表访问方法、系统、电子组件及页表配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310188017.3A CN116069689B (zh) | 2023-03-02 | 2023-03-02 | 页表访问方法、系统、电子组件及页表配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116069689A true CN116069689A (zh) | 2023-05-05 |
CN116069689B CN116069689B (zh) | 2023-07-21 |
Family
ID=86183748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310188017.3A Active CN116069689B (zh) | 2023-03-02 | 2023-03-02 | 页表访问方法、系统、电子组件及页表配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069689B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851289A (zh) * | 2024-03-07 | 2024-04-09 | 北京象帝先计算技术有限公司 | 页表获取方法、系统、电子组件及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016082191A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 访问文件的方法和装置 |
CN113806251A (zh) * | 2021-11-19 | 2021-12-17 | 沐曦集成电路(上海)有限公司 | 一种共享内存管理单元的系统及搭建方法、内存访问方法 |
CN114327777A (zh) * | 2021-12-30 | 2022-04-12 | 元心信息科技集团有限公司 | 确定全局页目录的方法、装置、电子设备及存储介质 |
CN115102896A (zh) * | 2022-07-22 | 2022-09-23 | 北京象帝先计算技术有限公司 | 数据广播方法、广播加速器、noc、soc及电子设备 |
-
2023
- 2023-03-02 CN CN202310188017.3A patent/CN116069689B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016082191A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 访问文件的方法和装置 |
CN105830022A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 访问文件的方法和装置 |
CN113806251A (zh) * | 2021-11-19 | 2021-12-17 | 沐曦集成电路(上海)有限公司 | 一种共享内存管理单元的系统及搭建方法、内存访问方法 |
CN114327777A (zh) * | 2021-12-30 | 2022-04-12 | 元心信息科技集团有限公司 | 确定全局页目录的方法、装置、电子设备及存储介质 |
CN115102896A (zh) * | 2022-07-22 | 2022-09-23 | 北京象帝先计算技术有限公司 | 数据广播方法、广播加速器、noc、soc及电子设备 |
Non-Patent Citations (1)
Title |
---|
杜静,戴华东,杨学军: "CC-NUMA系统中面向页迁移的反向页表技术", 计算机工程, no. 06 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851289A (zh) * | 2024-03-07 | 2024-04-09 | 北京象帝先计算技术有限公司 | 页表获取方法、系统、电子组件及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116069689B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11341061B2 (en) | Address translation method, apparatus, and system | |
US7600093B2 (en) | Device, method and computer program product for multi-level address translation | |
CN114338594B (zh) | 在Kubernetes环境下的ARP代答方法、装置、设备及存储介质 | |
US20210365394A1 (en) | Data processing method and device | |
EP3757782A1 (en) | Data accessing method and apparatus, device and medium | |
CN116069689B (zh) | 页表访问方法、系统、电子组件及页表配置方法 | |
US8661207B2 (en) | Method and apparatus for assigning a memory to multi-processing unit | |
CN112840327A (zh) | 一种片上系统、访问命令的路由方法及终端 | |
US11656779B2 (en) | Computing system and method for sharing device memories of different computing devices | |
CN113760560A (zh) | 一种进程间通信方法以及进程间通信装置 | |
CN115729849B (zh) | 内存管理方法及计算设备 | |
CN116010296A (zh) | 一种处理请求的方法、装置及系统 | |
JP2016522915A (ja) | 共有メモリシステム | |
WO2023125565A1 (zh) | 网络节点的配置和访问请求的处理方法、装置 | |
JP6676052B2 (ja) | 不均一メモリアーキテクチャにおける改善されたレイテンシを可能にするためのシステムおよび方法 | |
CN115190102B (zh) | 信息广播方法、装置、电子单元、soc及电子设备 | |
CN113806251B (zh) | 一种共享内存管理单元的系统及搭建方法、内存访问方法 | |
EP3913488A1 (en) | Data processing method and device | |
CN113971157A (zh) | 多核soc的代码共享方法、装置、多核soc及介质 | |
CN117851289A (zh) | 页表获取方法、系统、电子组件及电子设备 | |
CN111147556A (zh) | 一种负载均衡方法、装置、设备及存储介质 | |
CN115858422A (zh) | 页表的处理方法、电子设备和存储介质 | |
CN115442239B (zh) | 带宽资源分配方法、PCIe通道切换器及电子设备 | |
CN113326213B (zh) | 一种飞腾服务器平台下在驱动程序中实现地址映射的方法 | |
CN117851290A (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 |