CN117851289A - 页表获取方法、系统、电子组件及电子设备 - Google Patents
页表获取方法、系统、电子组件及电子设备 Download PDFInfo
- Publication number
- CN117851289A CN117851289A CN202410257125.6A CN202410257125A CN117851289A CN 117851289 A CN117851289 A CN 117851289A CN 202410257125 A CN202410257125 A CN 202410257125A CN 117851289 A CN117851289 A CN 117851289A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- access request
- mmu
- memory access
- page table
- 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
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000015654 memory Effects 0.000 claims abstract description 245
- 238000013519 translation Methods 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供一种页表获取方法、系统、电子组件及电子设备,该页表获取方法包括:主设备根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将内存访问请求及标识信息发送给自身所在的第一子系统的第一MMU;第一MMU根据标识信息判断第一子系统不是目标子系统时,将内存访问请求转发给标识信息指向的目标子系统的第二MMU;第二MMU根据内存访问请求从目标子系统的对应内存中获取用于翻译第一虚拟地址的目标页表反馈给第一MMU。通过该方法,有利于减少跨内存访问时页表所占用的内存空间,提高内存利用率。
Description
技术领域
本公开涉及芯片技术领域,尤其涉及一种页表获取方法、系统、电子组件及电子设备。
背景技术
在现有技术中,片上系统(System on Chip,SOC)内的各个主设备(Master),例如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、DMA(Direct Memory Access 直接内存访问)等,可对内存发起访问请求。由于软件普遍运行在虚拟地址空间,所以当软件下发命令调用各个主设备访问内存时,主设备生成携带虚拟地址的内存访问请求下发给地址翻译单元(即MMU),由MMU基于页表将虚拟地址翻译成物理地址后,主设备的内存访问请求才能被发出去。
为了实现跨内存访问,例如主设备1访问主设备2的内存,现有技术中提出了在单个主设备对应的内存中复制其他主设备所对应的内存的页表的方案,在该主设备需要进行跨内存访问时,该主设备对应的MMU从该主设备对应的内存保存的多份页表中取出待访问内存对应的页表,然后进行地址翻译。但随着虚拟地址位宽的增加,单份页表所占用的内存空间往往不可忽视,例如40bit(位)的虚拟地址空间,4K的地址映射,存储最后一级页表需要几百M的内存空间,如果再复制多份页表,那么全体页表占用的内存空间会呈线性增加,对内存空间造成极大浪费。
发明内容
本公开的目的是提供一种页表获取方法、系统、电子组件及电子设备,有利于减少跨内存访问时,存储页表所占用的内存空间,避免内存空间的浪费,进而提高内存利用率。
根据本公开的一个方面,提供一种页表获取系统,包括多组主设备和多组地址翻译单元MMU,对应的一组主设备和一组MMU属于同一子系统,每个所述子系统包括对应内存及用于表示所述对应内存的虚拟地址与其物理地址的映射关系的页表;
所述主设备,被配置为:根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将所述内存访问请求及所述标识信息发送给自身所在的第一子系统的第一MMU;所述第一MMU,被配置为:根据所述标识信息判断所述第一子系统是否是所述目标子系统,在否的情况下,将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU;
所述第二MMU,被配置为:根据所述内存访问请求从所述目标子系统的对应内存中获取用于翻译所述第一虚拟地址的目标页表。
本公开一种可行的实现方式中,所述第一MMU还被配置为:在是的情况下,根据所述内存访问请求从所述第一子系统的对应内存中获取所述目标页表。
本公开一种可行的实现方式中,所述页表获取系统的虚拟地址空间按照相同的划分粒度被划分成多个条带,且每个所述子系统对应整数个条带,所述子系统的虚拟地址范围是其所对应的每个条带的虚拟地址段的并集;
所述主设备在根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息的情况下,具体被配置为:将所述第一虚拟地址的二进制表达式中,连续的N bit所形成的二进制数作为所述标识信息,所述子系统的个数不大于2N,N为正整数,所述N bit中的最低bit是所述二进制表达式中的第n bit,且2n等于所述划分粒度。
本公开一种可行的实现方式中,各子系统对应的条带数量相同或者不同。
本公开一种可行的实现方式中,所述页表获取系统的虚拟地址空间的起始虚拟地址为0,或者为所述划分粒度所对应的虚拟地址的正整数倍。
本公开一种可行的实现方式中,所述页表获取系统还包括多组片上网络,对应的一组主设备、一组MMU和一组片上网络属于同一子系统;所述在将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU的情况下,所述第一MMU,被配置为:通过所述第一子系统的第一片上网络将所述内存访问请求经所述目标子系统的第二片上网络路由至所述第二MMU。
本公开一种可行的实现方式中,任一子系统的片上网络,还被配置为:接收由本子系统的主设备发送的内存访问请求,判断所述内存访问请求所携带的地址是否为物理地址,在是的情况下,将所述内存访问请求转发至本子系统的对应内存;否则将所述内存访问请求路由至本子系统的MMU。
本公开一种可行的实现方式中,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
根据本公开的另一方面,还提供一种页表获取方法,应用于页表获取系统,所述页表获取系统包括多组主设备和多组地址翻译单元MMU,对应的一组主设备和一组MMU属于同一子系统,每个所述子系统包括对应内存及用于表示所述对应内存的虚拟地址与其物理地址的映射关系的页表;所述方法包括:
所述主设备根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将所述内存访问请求及所述标识信息发送给自身所在的第一子系统的第一MMU;
所述第一MMU根据所述标识信息判断所述第一子系统是否是所述目标子系统,在否的情况下,将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU;
所述第二MMU根据所述内存访问请求从所述目标子系统的对应内存中获取用于翻译所述第一虚拟地址的目标页表。
本公开一种可行的实现方式中,所述方法还包括:在是的情况下,所述第一MMU根据所述内存访问请求从所述第一子系统的对应内存中获取所述目标页表。
本公开一种可行的实现方式中,所述页表获取系统的虚拟地址空间按照相同的划分粒度被划分成多个条带,且每个所述子系统对应整数个条带,所述子系统的虚拟地址范围是其所对应的每个条带的虚拟地址段的并集;所述根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,包括:所述主设备将所述第一虚拟地址的二进制表达式中,连续的N bit所形成的二进制数作为所述标识信息,所述子系统的个数不大于2N,N为正整数,所述N bit中的最低bit是所述二进制表达式中的第n bit,且2n等于所述划分粒度。
本公开一种可行的实现方式中,所述页表获取系统还包括多组片上网络,对应的一组主设备、一组MMU和一组片上网络属于同一子系统;所述将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU,包括:所述第一MMU通过所述第一子系统的第一片上网络将所述内存访问请求经所述目标子系统的第二片上网络路由至所述第二MMU。
本公开一种可行的实现方式中,所述方法还包括:任一子系统的片上网络接收由本子系统的主设备发送的内存访问请求,判断所述内存访问请求所携带的地址是否为物理地址,在是的情况下,将所述内存访问请求转发至本子系统的对应内存;否则将所述内存访问请求路由至本子系统的MMU。
本公开一种可行的实现方式中,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
本公开一种可行的实现方式中,各子系统对应的条带数量相同或者不同。
本公开一种可行的实现方式中,所述页表获取系统的虚拟地址空间的起始虚拟地址为0,或者为所述划分粒度所对应的虚拟地址的正整数倍。
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述任一实施例中所述的页表获取系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1是本公开一个实施例的页表获取系统的结构示意图;
图2是本公开一个实施例的子系统的虚拟地址范围示意图;
图3为本公开一个实施例的页表获取方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任一和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
为了实现跨内存访问,例如主设备1访问主设备2的内存,现有技术中提出了在单个主设备对应的内存中复制其他主设备所对应的内存的页表的方案,即在同一主设备的对应内存中保存多份页表。在该主设备需要进行跨内存访问时,该主设备对应的MMU从该主设备对应的内存保存的多份页表中取出待访问内存对应的页表,然后进行地址翻译。
但随着虚拟地址位宽的增加,单份页表所占用的内存空间往往不可忽视,例如40bit(位)的虚拟地址空间,4K的地址映射,存储最后一级页表需要几百M的内存空间,如果再复制多份页表,那么全体页表占用的内存空间会呈线性增加,对内存空间造成极大浪费。
基于此,本公开的目的是提供一种页表获取方案,目的在于减少跨内存访问时,存储页表所需占用的内存空间,避免内存空间的浪费,进而提高内存利用率。
具体的,请参照图1,本公开一个实施例提出一种页表获取系统,该页表获取系统包括包括多组主设备和多组地址翻译单元MMU。对应的一组主设备和一组MMU属于同一子系统,相应的,每个所述子系统包括:主设备Master、地址翻译单元MMU、对应内存、以及其他组件(如果必要),例如图1中所示的每个子系统中的片上网络等。
值得指出的是,在本公开实施例中,各个子系统的对应内存,可以属于同一内存,即是将同一内存从逻辑上进行划分后,分别将划分后的各个部分分配给各个子系统,相应的,此种情况下,各个子系统的对应内存之间并无严格的物理位置划分。
对应于该情况,上述页表获取系统的产品形态可以是包括多个主设备的一个SOC,且以主设备来划分子系统,例如每组主设备包括至少一个主设备,不同组主的主设备属于相同的SOC;相应的,该组主设备所属的子系统包括:对应内存、该组主设备所包括的全部主设备、片上网络、地址翻译单元等。在不同组的主设备属于相同的SOC的情况下,不同子系统中所包括的片上网络,是属于该同一SOC内的同一片上网络。每个子系统是一个延时域,意味着属于本子系统内的主设备访问本子系统的对应内存的延时,小于访问其他子系统的对应内存的延时。
在本公开另一实施例中,各个子系统的对应内存,可以分别属于不同内存,即是将来自于同一电子组件(例如显卡、主板等)内的不同内存分别分配给各个子系统,相应的,各个子系统的对应内存之间存在严格的物理界限。
对应于该情况,上述页表获取系统的产品形态可以是包括多个SOC互联的级联芯片,且以SOC来划分子系统,例如不同组主的主设备属于不同的SOC,同一组的主设备属于同一SOC,相应的,该组主设备所属的子系统包括:对应内存、该组主设备所属的SOC内的全部主设备、片上网络、地址翻译单元等。每个子系统是一个延时域,意味着本子系统内的主设备访问本子系统的对应内存的延时,小于访问其他子系统的对应内存的延时。
可选的,上述任一实施例中的内存可以是DDR(Double Data Rate,双倍速率同步动态随机存储器),也可以是其他可读可写的存储器。
其中,针对每个子系统的对应内存来说,其内存储有用于表示该对应内存的虚拟地址与该对应内存的物理地址的映射关系的页表。地址翻译单元可以基于页表的页表项将虚拟地址翻译成物理地址。
可选的,上述任一实施例中的主设备Master,可以是CPU、DMA、GPU等可对本子系统的内存或者其他子系统的内存发起内存访问请求的单元,即内存可视为Master的从设备。
当然,可以理解,无论子系统中的主设备是访问本子系统的内存,还是跨内存访问其他子系统的内存,均需要经过地址翻译单元将内存访问请求所携带的虚拟地址映射成物理地址,然后经过片上网络去访问对应物理地址的内存。地址翻译单元在将虚拟地址映射成物理地址前,需要从内存中取回相应的页表,以便根据取回的页表实施地址翻译操作。
在本公开实施例中,对于任一子系统的主设备来说,可以在响应上层软件的调用后,生成携带虚拟地址(为便于区分,以下称之为第一虚拟地址)的内存访问请求,以访问内存中与该第一虚拟地址对应的物理地址所指向的内存。
其中,与该第一虚拟地址对应的物理地址所指向的内存,即访问对象,可以是主设备所在子系统的对应内存;此外,访问对象也可以是其他子系统的对应内存,此时即对应跨内存访问场景。
在整个系统支持跨内存访问时,为了避免需要在每个子系统中占用大量的内存空间来复制存储各个子系统的页表,在本公开实施例中,各个子系统只保存与自身的对应内存相应的页表。后续当主设备在生成内存访问请求后,先根据第一虚拟地址生成标识信息,以指示访问对象所在的目标子系统,然后将内存访问请求及标识信息发送给自身所在的子系统(为便于区分,以下称之为第一子系统)的MMU(为便于区分,以下称之为第一MMU)。
第一MMU在接收到内存访问请求及标识信息后,先根据标识信息判断自身所在的第一子系统是否为访问对象所在的目标子系统。
其中,若第一子系统是目标子系统,则说明访问对象是第一子系统的对应内存。那么第一MMU则按照常规做法,根据内存访问请求从第一子系统的对应内存中获取目标页表,进而基于目标页表将第一虚拟地址翻译成第一物理地址,并在后续将携带物理地址的内存访问请求发送给第一子系统所在的片上网络,由片上网络将访问请求路由至对应的访问对象处实现内存访问。
若第一子系统不是目标子系统,则说明访问对象是其他子系统的对应内存。由于在本公开实施例中,子系统只保存自身对应内存的对应页表,所以第一MMU无法在第一子系统内获取到目标页表,需要将内存访问请求单播转发给标识信息指向的目标子系统所在的MMU(为便于区分,以下称之为第二MMU)。
由于第二MMU是目标子系统的MMU,且目标页表必然在目标子系统中,所以第二MMU接收到内存访问请求后,根据内存访问请求从目标子系统的对应内存中获取用于翻译第一虚拟地址的目标页表,进而实现将第一虚拟地址翻译成第一物理地址,并在后续将携带物理地址的内存访问请求发送给自身所在的目标子系统的片上网络,由该片上网络将访问请求路由至对应的访问对象处实现内存访问。
相应的,在本公开实施例中,主设备,被配置为:根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将所述内存访问请求及所述标识信息发送给自身所在的第一子系统的第一MMU;
所述第一MMU,被配置为:根据所述标识信息判断所述第一子系统是否是所述目标子系统,在否的情况下,将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU;
所述第二MMU,被配置为:根据所述内存访问请求从所述目标子系统的对应内存中获取用于翻译所述第一虚拟地址的目标页表。
另外,所述第一MMU还被配置为:在是的情况下,根据所述内存访问请求从所述第一子系统的对应内存中获取所述目标页表。
当然,在一些实施方式中,第一MMU在转发内存访问请求给第二MMU时,也可以将标识信息一并转发给第二MMU。相应的,第二MMU在接收到内存访问请求时,也可以采取与第一MMU类似的操作,即根据所述标识信息判断第二MMU自身所在的第二子系统是否是目标子系统,并在是的情况下,根据内存访问请求从目标子系统的对应内存中获取目标页表。
在另一些实施方式中,第一MMU在转发内存访问请求给第二MMU时,也可以不携带标识信息。相应的,对于此种情况,对于任一MMU来说,当其接收到内存访问请求时,若携带有标识信息,则表示自身所在的子系统是否为目标子系统还处于待定情况,需要自身基于标识信息进行进一步判断。若未携带有标识信息,则表示自身所在的子系统已由其他MMU判断为是目标子系统,此时可直接根据接收到的内存访问请求从自身所在的子系统(即目标子系统)的对应内存中获取目标页表。
在上述过程中,由于主设备在生成内存访问请求时,也一并确定访问对象所在的目标子系统的标识信息,所以可以保证各个子系统在只保存有本子系统的对应内存的页表的情况下,也可基于标识信息将内存访问请求转发至目标页表所在的目标子系统的第二MMU处,进而完成页表获取,进而实现既节省了保存页表所需的内存空间,又可保证跨内存访问的正常运行。
下面将针对上述过程进行详细介绍。
前文提及,主设备根据第一虚拟地址生成标识信息,以指示访问对象所在的目标子系统。
其中,标识信息可以是各个子系统的标识,例如标识信息表示为子系统0、子系统1...子系统N。另外,标识信息也可以是预先约定的,且与各个子系统的标识存在一一对应关系的特定字符,例如存在4个子系统,分别是子系统0~子系统3。其中用2 bit来表示子系统的标识信息,且当2bit表示为00时表示子系统0,当2bit表示为01时表示为子系统1,当2bit表示为10时表示为子系统2,当2bit表示为11时表示为子系统3。
另外,为了使得主设备能够根据第一虚拟地址生成标识信息,在本公开实施例中,预先将整个页表获取系统的虚拟地址空间按照相同的划分粒度,例如1K、1G等,划分成多个条带,然后将各个条带分配给各个子系统。
其中,每个子系统至少对应A个条带,A为正整数。各子系统对应的条带数量可相同,也可不同,具体按照实际需求进行配置。
相应的,该子系统的对应的虚拟地址范围,是其所对应的全部条带所对应的虚拟地址段的并集。
示例性的,假设划分粒度为1G,且存在4个子系统,分别为子系统0~子系统3。每个子系统的对应内存占2GB的空间,相应的,如图2所示,每个子系统均对应2个条带,进而每个子系统的虚拟地址空间共2G,整个系统的虚拟地址空间共8G(230×23),占33bit。
其中,假设虚拟地址从0开始,那么子系统0对应的虚拟地址范围是0x0_0000_0000~0x0_3FFF_FFFF与0x1_0000_0000~0x1_3FFF_FFFF的并集。
那么子系统1对应的虚拟地址范围是:0x0_4000_0000~0x0_7FFF_FFFF与0x1_4000_0000~0x1_7FFF_FFFF的并集。
那么子系统2对应的虚拟地址范围是:0x0_8000_0000~0x0_BFFF_FFFF与0x1_8000_0000~0x1_BFFF_FFFF的并集。
那么子系统3对应的虚拟地址范围是:0x0_C000_0000~0x0_FFFF_FFFF与0x1_C000_0000~0x1_FFFF_FFFF的并集。
基于上述划分可知,对于子系统0,其所对应的虚拟地址范围的二进制表达式中,其bit[31:30]所形成数值“00”换算到十进制始终等于0;对于子系统1,其所对应的虚拟地址范围的二进制表达式中,其bit[31:30]所形成数值“01”换算到十进制始终等于1;对于子系统2,其所对应的虚拟地址范围的二进制表达式中,其bit[31:30]所形成数值“10”换算到十进制始终等于2;对于子系统3,其所对应的虚拟地址范围的二进制表达式中,其bit[31:30]所形成数值“11”换算到十进制始终等于3。
基于此,在本公开实施例中,主设备在根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息的情况下,具体可以将第一虚拟地址的二进制表达式中,连续的N bit所形成的二进制数作为标识信息。其中,子系统的个数不大于2N,N为正整数。
所述N bit中的最低bit是所述二进制表达式中的第n bit,且2n等于所述划分粒度,例如划分粒度为1G,子系统个数为4,那么N可以等于2,由于230=1G,所以连续的N bit是bit[31:30]。
基于此,后续主设备即可基于第一虚拟地址的bit[31:30]来确定出目标子系统的标识信息。
当然,页表获取系统的虚拟地址空间的起始虚拟地址可以从0开始,也可以不从0开始,但其起始虚拟地址需要满足是划分粒度所对应的虚拟地址的正整数倍,例如划分粒度为1G,那么起始虚拟地址需要是1G的整数倍。
此外,在一些实施方式中,在第一MMU所在的第一子系统不是目标子系统,第一MMU需要将内存访问请求转发给标识信息指向的目标子系统的第二MMU的情况下,第一MMU具体可通过第一子系统的片上网络(为便于区分,后续称之为第一片上网络)将内存访问请求经目标子系统的第二片上网络路由至第二MMU。
为了实现该效果,在本公开实施例中,对于任一片上网络说,可配置两套路由策略,分别是针对物理地址的第一路由策略以及针对虚拟地址的第二路由策略。
当片上网络接收到携带物理地址的内存访问请求时,说明该内存访问请求中的地址已经经过页表翻译,此时可基于第一路由策略将该内存访问请求直接路由至物理地址所指向的目标内存。
当片上网络接收到携带虚拟地址的内存访问请求时,说明该内存访问请求中的地址未经过页表翻译,当前还需要进行地址翻译操作。此时,若该内存访问请求是来自其他子系统的内存访问请求,或者是来自本子系统的主设备发送的内存访问请求,那么片上网络基于第二路由策略将该内存访问请求路由至本子系统的MMU;若该内存访问请求是来自本子系统的MMU,则将该内存访问请求路由至标识信息所指向的目标子系统的第二MMU。
此外,任一子系统的片上网络,还被配置为:接收由本子系统的主设备发送的内存访问请求,判断所述内存访问请求所携带的地址是否为物理地址,在是的情况下,将所述内存访问请求转发至本子系统的对应内存;否则将所述内存访问请求路由至本子系统的MMU。
至于片上网络如何判断地址为虚拟地址或者是物理地址,在本公开一种实施例中,可为物理地址与虚拟地址设置不同的位宽,以供片上网络基于地址的位宽对其属性进行判断。
在另一些实现方式中,也可为物理地址与虚拟地址设置相同的位宽,但配置不重叠的地址空间,相应的,片上网络根据当前地址所属的地址空间来对地址的属性进行判断。
此外,基于类似的发明构思,本公开实施例还提供一种页表获取方法,应用于页表获取系统,所述页表获取系统包括多组主设备和多组地址翻译单元MMU,对应的一组主设备和一组MMU属于同一子系统,每个所述子系统包括对应内存及用于表示所述对应内存的虚拟地址与其物理地址的映射关系的页表。
请参照图3,该方法可以包括:
步骤S110:主设备根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将所述内存访问请求及所述标识信息发送给自身所在的第一子系统的第一MMU;
步骤S120:所述第一MMU根据所述标识信息判断所述第一子系统是否是所述目标子系统,在否的情况下,将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU;
步骤S130:所述第二MMU根据所述内存访问请求从所述目标子系统的对应内存中获取用于翻译所述第一虚拟地址的目标页表。
本公开一种可行的实现方式中,所述方法还包括:在是的情况下,所述第一MMU根据所述内存访问请求从所述第一子系统的对应内存中获取所述目标页表。
本公开一种可行的实现方式中,所述页表获取系统的虚拟地址空间按照相同的划分粒度被划分成多个条带,且每个所述子系统对应整数个条带,所述子系统的虚拟地址范围是其所对应的每个条带的虚拟地址段的并集;所述根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,包括:所述主设备将所述第一虚拟地址的二进制表达式中,连续的N bit所形成的二进制数作为所述标识信息,所述子系统的个数不大于2N,N为正整数,所述N bit中的最低bit是所述二进制表达式中的第n bit,且2n等于所述划分粒度。
本公开一种可行的实现方式中,所述页表获取系统还包括多组片上网络,对应的一组主设备、一组MMU和一组片上网络属于同一子系统;所述将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU,包括:所述第一MMU通过所述第一子系统的第一片上网络将所述内存访问请求经所述目标子系统的第二片上网络路由至所述第二MMU。
本公开一种可行的实现方式中,所述方法还包括:任一子系统的片上网络接收由本子系统的主设备发送的内存访问请求,判断所述内存访问请求所携带的地址是否为物理地址,在是的情况下,将所述内存访问请求转发至本子系统的对应内存;否则将所述内存访问请求路由至本子系统的MMU。
本公开一种可行的实现方式中,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
本公开一种可行的实现方式中,各子系统对应的条带数量相同或者不同。
本公开一种可行的实现方式中,所述页表获取系统的虚拟地址空间的起始虚拟地址为0,或者为所述划分粒度所对应的虚拟地址的正整数倍。
此外,本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的页表获取系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
此外,本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (16)
1.一种页表获取系统,包括多组主设备和多组地址翻译单元MMU,对应的一组主设备和一组MMU属于同一子系统,每个所述子系统包括对应内存及用于表示所述对应内存的虚拟地址与其物理地址的映射关系的页表;
所述主设备,被配置为:根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将所述内存访问请求及所述标识信息发送给自身所在的第一子系统的第一MMU;
所述第一MMU,被配置为:根据所述标识信息判断所述第一子系统是否是所述目标子系统,在否的情况下,将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU;
所述第二MMU,被配置为:根据所述内存访问请求从所述目标子系统的对应内存中获取用于翻译所述第一虚拟地址的目标页表。
2.根据权利要求1所述的页表获取系统,所述第一MMU还被配置为:在是的情况下,根据所述内存访问请求从所述第一子系统的对应内存中获取所述目标页表。
3.根据权利要求1所述的页表获取系统,所述页表获取系统的虚拟地址空间按照相同的划分粒度被划分成多个条带,且每个所述子系统对应整数个条带,所述子系统的虚拟地址范围是其所对应的每个条带的虚拟地址段的并集;
所述主设备在根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息的情况下,具体被配置为:将所述第一虚拟地址的二进制表达式中,连续的N bit所形成的二进制数作为所述标识信息,所述子系统的个数不大于2N,N为正整数,所述N bit中的最低bit是所述二进制表达式中的第n bit,且2n等于所述划分粒度。
4.根据权利要求3所述的页表获取系统,各子系统对应的条带数量相同或者不同。
5.根据权利要求3所述的页表获取系统,所述页表获取系统的虚拟地址空间的起始虚拟地址为0,或者为所述划分粒度所对应的虚拟地址的正整数倍。
6.根据权利要求1所述的页表获取系统,所述页表获取系统还包括多组片上网络,对应的一组主设备、一组MMU和一组片上网络属于同一子系统;在将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU的情况下,所述第一MMU,被配置为:通过所述第一子系统的第一片上网络将所述内存访问请求经所述目标子系统的第二片上网络路由至所述第二MMU。
7.根据权利要求6所述的页表获取系统,任一子系统的片上网络,还被配置为:接收由本子系统的主设备发送的内存访问请求,判断所述内存访问请求所携带的地址是否为物理地址,在是的情况下,将所述内存访问请求转发至本子系统的对应内存;否则将所述内存访问请求路由至本子系统的MMU。
8.根据权利要求1-7任一项所述的页表获取系统,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
9.一种电子组件,包括权利要求1-8任一所述的页表获取系统。
10.一种电子设备,包括权利要求9所述的电子组件。
11.一种页表获取方法,应用于页表获取系统,所述页表获取系统包括多组主设备和多组地址翻译单元MMU,对应的一组主设备和一组MMU属于同一子系统,每个所述子系统包括对应内存及用于表示所述对应内存的虚拟地址与其物理地址的映射关系的页表;所述方法包括:
所述主设备根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,并将所述内存访问请求及所述标识信息发送给自身所在的第一子系统的第一MMU;
所述第一MMU根据所述标识信息判断所述第一子系统是否是所述目标子系统,在否的情况下,将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU;
所述第二MMU根据所述内存访问请求从所述目标子系统的对应内存中获取用于翻译所述第一虚拟地址的目标页表。
12.根据权利要求11所述的方法,所述方法还包括:
在是的情况下,所述第一MMU根据所述内存访问请求从所述第一子系统的对应内存中获取所述目标页表。
13.根据权利要求11所述的方法,所述页表获取系统的虚拟地址空间按照相同的划分粒度被划分成多个条带,且每个所述子系统对应整数个条带,所述子系统的虚拟地址范围是其所对应的每个条带的虚拟地址段的并集;所述根据内存访问请求所携带的第一虚拟地址,生成访问对象所在的目标子系统的标识信息,包括:所述主设备将所述第一虚拟地址的二进制表达式中,连续的N bit所形成的二进制数作为所述标识信息,所述子系统的个数不大于2N,N为正整数,所述N bit中的最低bit是所述二进制表达式中的第n bit,且2n等于所述划分粒度。
14.根据权利要求11所述的方法,所述页表获取系统还包括多组片上网络,对应的一组主设备、一组MMU和一组片上网络属于同一子系统;所述将所述内存访问请求转发给所述标识信息指向的所述目标子系统的第二MMU,包括:所述第一MMU通过所述第一子系统的第一片上网络将所述内存访问请求经所述目标子系统的第二片上网络路由至所述第二MMU。
15.根据权利要求14所述的方法,所述方法还包括:任一子系统的片上网络接收由本子系统的主设备发送的内存访问请求,判断所述内存访问请求所携带的地址是否为物理地址,在是的情况下,将所述内存访问请求转发至本子系统的对应内存;否则将所述内存访问请求路由至本子系统的MMU。
16.根据权利要求11-15任一项所述的方法,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257125.6A CN117851289B (zh) | 2024-03-07 | 页表获取方法、系统、电子组件及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257125.6A CN117851289B (zh) | 2024-03-07 | 页表获取方法、系统、电子组件及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117851289A true CN117851289A (zh) | 2024-04-09 |
CN117851289B CN117851289B (zh) | 2024-06-21 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233668B1 (en) * | 1999-10-27 | 2001-05-15 | Compaq Computer Corporation | Concurrent page tables |
US20090222816A1 (en) * | 2008-02-29 | 2009-09-03 | Arm Limited | Data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuirty |
CN103777926A (zh) * | 2012-10-25 | 2014-05-07 | 辉达公司 | 多线程处理单元中的高效存储器虚拟化 |
US20150220452A1 (en) * | 2014-01-31 | 2015-08-06 | Lsi Corporation | System, Method and Computer-Readable Medium for Dynamically Mapping a Non-Volatile Memory Store |
US20180032443A1 (en) * | 2016-07-29 | 2018-02-01 | Advanced Micro Devices, Inc. | Controlling Access to Pages in a Memory in a Computing Device |
CN109558211A (zh) * | 2018-11-27 | 2019-04-02 | 上海瓶钵信息科技有限公司 | 保护可信应用与普通应用的交互完整性和保密性的方法 |
US20210081324A1 (en) * | 2019-09-17 | 2021-03-18 | Micron Technology, Inc. | Page table hooks to memory types |
CN115827502A (zh) * | 2022-12-09 | 2023-03-21 | 北京奕斯伟计算技术股份有限公司 | 一种内存访问系统、方法及介质 |
WO2023040464A1 (zh) * | 2021-09-14 | 2023-03-23 | 华为技术有限公司 | 一种总线通信方法及相关设备 |
CN116069689A (zh) * | 2023-03-02 | 2023-05-05 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233668B1 (en) * | 1999-10-27 | 2001-05-15 | Compaq Computer Corporation | Concurrent page tables |
US20090222816A1 (en) * | 2008-02-29 | 2009-09-03 | Arm Limited | Data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuirty |
CN103777926A (zh) * | 2012-10-25 | 2014-05-07 | 辉达公司 | 多线程处理单元中的高效存储器虚拟化 |
US20150220452A1 (en) * | 2014-01-31 | 2015-08-06 | Lsi Corporation | System, Method and Computer-Readable Medium for Dynamically Mapping a Non-Volatile Memory Store |
US20180032443A1 (en) * | 2016-07-29 | 2018-02-01 | Advanced Micro Devices, Inc. | Controlling Access to Pages in a Memory in a Computing Device |
CN109558211A (zh) * | 2018-11-27 | 2019-04-02 | 上海瓶钵信息科技有限公司 | 保护可信应用与普通应用的交互完整性和保密性的方法 |
US20210081324A1 (en) * | 2019-09-17 | 2021-03-18 | Micron Technology, Inc. | Page table hooks to memory types |
WO2023040464A1 (zh) * | 2021-09-14 | 2023-03-23 | 华为技术有限公司 | 一种总线通信方法及相关设备 |
CN115827502A (zh) * | 2022-12-09 | 2023-03-21 | 北京奕斯伟计算技术股份有限公司 | 一种内存访问系统、方法及介质 |
CN116069689A (zh) * | 2023-03-02 | 2023-05-05 | 北京象帝先计算技术有限公司 | 页表访问方法、系统、电子组件及页表配置方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3757782A1 (en) | Data accessing method and apparatus, device and medium | |
US8868883B1 (en) | Virtual memory management for real-time embedded devices | |
US11748279B2 (en) | System on chip, access command routing method, and terminal | |
EP3163451B1 (en) | Memory management method and device, and memory controller | |
GB2551756A (en) | Apparatus and method for performing address translation | |
CN116431530B (zh) | 一种cxl内存模组、内存的处理方法及计算机系统 | |
US9984003B2 (en) | Mapping processing method for a cache address in a processor to provide a color bit in a huge page technology | |
CN115729849B (zh) | 内存管理方法及计算设备 | |
CN112540938A (zh) | 处理器核、处理器、装置和方法 | |
EP3007067B1 (en) | Method of memory access, buffer scheduler and memory module | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
CN117389914B (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
CN117851289B (zh) | 页表获取方法、系统、电子组件及电子设备 | |
CN117851289A (zh) | 页表获取方法、系统、电子组件及电子设备 | |
CN113806251B (zh) | 一种共享内存管理单元的系统及搭建方法、内存访问方法 | |
CN116383101A (zh) | 内存访问方法、内存管理单元、芯片、设备和存储介质 | |
CN117851292B (zh) | 集成电路系统、组件、设备及内存管理方法 | |
CN117851290B (zh) | 页表管理方法、系统、电子组件及电子设备 | |
WO2017035813A1 (zh) | 一种数据访问方法、装置及系统 | |
CN116069689B (zh) | 页表访问方法、系统、电子组件及页表配置方法 | |
CN111026680A (zh) | 将第一标识符映射到第二标识符 | |
CN117851292A (zh) | 集成电路系统、组件、设备及内存管理方法 | |
CN115794667B (zh) | 内存管理方法、系统、组件及设备 | |
CN117851291B (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 |