[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN117851290B - 页表管理方法、系统、电子组件及电子设备 - Google Patents

页表管理方法、系统、电子组件及电子设备 Download PDF

Info

Publication number
CN117851290B
CN117851290B CN202410257128.XA CN202410257128A CN117851290B CN 117851290 B CN117851290 B CN 117851290B CN 202410257128 A CN202410257128 A CN 202410257128A CN 117851290 B CN117851290 B CN 117851290B
Authority
CN
China
Prior art keywords
address
subsystem
page table
memory
mirror
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
Application number
CN202410257128.XA
Other languages
English (en)
Other versions
CN117851290A (zh
Inventor
姜莹
王海洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xiangdixian Computing Technology Co Ltd
Original Assignee
Beijing Xiangdixian Computing Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xiangdixian Computing Technology Co Ltd filed Critical Beijing Xiangdixian Computing Technology Co Ltd
Priority to CN202410257128.XA priority Critical patent/CN117851290B/zh
Publication of CN117851290A publication Critical patent/CN117851290A/zh
Application granted granted Critical
Publication of CN117851290B publication Critical patent/CN117851290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17318Parallel communications techniques, e.g. gather, scatter, reduce, roadcast, multicast, all to all
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供一种页表管理方法、系统、电子组件及电子设备,该页表管理方法包括:所述广播单元接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址;所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个;所述页表更新单元将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存。通过该方法,有利于减少MMU取回其他主设备内存中对应页表项的耗时,提高主设备进行跨内存访问的效率,进而提高系统性能。

Description

页表管理方法、系统、电子组件及电子设备
技术领域
本公开涉及芯片技术领域,尤其涉及一种页表管理方法、系统、电子组件及电子设备。
背景技术
在现有技术中,片上系统(System on Chip,SOC)内的各个主设备(Master),例如CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、DMA(Direct Memory Access 直接内存访问)等,可对内存发起访问请求。由于软件普遍运行在虚拟地址空间,所以当软件下发命令调用各个主设备访问内存时,主设备生成携带虚拟地址的内存访问请求下发给地址翻译单元(即MMU),由MMU基于页表将虚拟地址翻译成物理地址后,主设备的内存访问请求才能被发出去。也就是说,在MMU取回页表完成虚拟地址到物理地址的翻译之前,主设备所生成的内存访问请求处于阻塞状态。
由上述内容可知,主设备的内存访问请求效率取决于虚拟地址被翻译成物理地址的效率。然而,主设备与待访问内存之间的物理距离存在远近差别,当主设备存在跨内存访问的需求时,例如主设备1访问主设备2的内存,由于MMU取回其他主设备内存中所存页表的耗时明显大于取回本主设备内存中所存页表的耗时,所以访问请求会被长时间阻塞,进而导致主设备进行跨内存访问时存在较大的时延,影响了系统性能。
发明内容
本公开的目的是提供一种页表管理方法、系统、电子组件及电子设备,有利于减少MMU取回其他主设备内存中对应页表项的耗时,提高主设备进行跨内存访问的效率,进而提高系统性能。
根据本公开的一个方面,提供一种页表管理系统,包括广播单元、页表更新单元及多个主设备;多个主设备中的一组主设备属于同一子系统,每个所述子系统包括对应内存且共用同一镜像地址空间,且每个所述镜像地址在所述子系统内唯一;
所述广播单元,被配置为:接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址;所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个;
所述页表更新单元,被配置为:将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存。
本公开一种可行的实现方式中,所述待更新地址是所述第一镜像地址。
本公开一种可行的实现方式中,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;在向待同步的子系统广播基于所述第一镜像地址得到的待更新地址的情况下,所述广播单元具体被配置为:基于预配置的所述镜像地址空间与各所述子系统的线性地址子空间的映射关系,将所述第一镜像地址映射成与所述待同步的子系统对应的第一线性地址,向各所述待同步的子系统发送与之对应的第一线性地址,所述待更新地址是对应的第一线性地址。
本公开一种可行的实现方式中,所述待同步的子系统是多个子系统中预先被标记需要同步更新的子系统;在向待同步的子系统广播基于所述第一镜像地址得到的待更新地址的情况下,所述广播单元具体被配置为:向所述多个子系统中被标记的子系统广播所述待更新地址。
本公开一种可行的实现方式中,所述被标记需要同步更新的子系统,是所述多个子系统中的全部子系统,或者是所述多个子系统中的部分子系统。
本公开一种可行的实现方式中,所述页表内容包括页表项或者用于表示页表无效的状态信息。
本公开一种可行的实现方式中,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
本公开一种可行的实现方式中,所述页表管理系统还包括与所述主设备对应的地址翻译单元,所述一组主设备及其对应的一组地址翻译单元属于同一子系统,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述地址翻译单元,被配置为:响应自身所在第一子系统的第一主设备访问所述第一子系统对应的第一内存或者其他主设备所在的第二子系统对应的第二内存的内存访问请求,基于所述内存访问请求携带的第二镜像地址,从所述第一内存中读取与所述第二镜像地址对应的页表,且将所述内存访问请求携带的虚拟地址翻译成所述线性地址后发送给所述第一主设备。
根据本公开的另一方面,还提供一种页表管理方法,应用于页表管理系统,所述页表管理系统包括广播单元、页表更新单元及多个主设备;多个主设备中的一组主设备属于同一子系统,每个所述子系统包括对应内存;所述多个子系统共用同一镜像地址空间,且每个所述镜像地址在所述子系统内唯一;所述方法包括:
所述广播单元接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址;所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个;
所述页表更新单元将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存。
在一种可行的实现方式中,所述待更新地址是所述第一镜像地址。
在一种可行的实现方式中,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述向待同步的子系统广播基于所述第一镜像地址得到的待更新地址,包括:所述广播单元基于预配置的所述镜像地址空间与各所述子系统的线性地址子空间的映射关系,将所述第一镜像地址映射成与所述待同步的子系统对应的第一线性地址,向各所述待同步的子系统发送与之对应的第一线性地址,所述待更新地址是对应的第一线性地址。
在一种可行的实现方式中,所述待同步的子系统是多个子系统中预先被标记需要同步更新的子系统;所述向待同步的子系统广播基于所述第一镜像地址得到的待更新地址,包括:所述广播单元向所述多个子系统中被标记的子系统广播所述待更新地址。
在一种可行的实现方式中,所述被标记需要同步更新的子系统,是所述多个子系统中的全部子系统,或者是所述多个子系统中的部分子系统。
在一种可行的实现方式中,所述页表内容包括页表项或者用于表示页表无效的状态信息。
在一种可行的实现方式中,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
在一种可行的实现方式中,所述页表管理系统还包括与所述主设备对应的地址翻译单元,所述一组主设备及其对应的一组地址翻译单元属于同一子系统,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述方法还包括:所述地址翻译单元响应自身所在第一子系统的第一主设备访问所述第一子系统的第一内存或者其他主设备所在的第二子系统的第二内存的内存访问请求,基于所述内存访问请求携带的第二镜像地址,从所述第一内存中读取与所述第二镜像地址对应的页表,且将所述内存访问请求携带的虚拟地址翻译成所述线性地址后发送给所述第一主设备。
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述任一实施例中所述的页表管理系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1是本公开一个实施例的页表管理系统的结构示意图;
图2是本公开一个实施例的镜像地址与线性地址的关系示意图;
图3为本公开一个实施例的页表管理方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任一和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
在现有技术中,各主设备与待访问内存之间的物理距离存在远近差别,当主设备存在跨内存访问的需求时,例如主设备1访问主设备2的内存,由于该主设备所对应的MMU取回其他主设备内存中所存页表的耗时明显大于取回本主设备内存中所存页表的耗时,所以访问请求会被长时间阻塞,进而导致主设备进行跨内存访问时存在较大的时延,影响了系统性能。
基于此,本公开的目的是提供一种页表管理方案,有利于减少MMU取回其他主设备内存中对应页表项的耗时,从而提高主设备进行跨内存访问的效率,进而提高系统性能。
具体的,请参照图1,本公开一个实施例提出一种页表管理系统,该页表管理系统包括广播单元、页表更新单元、多个主设备以及其他组件(如果必要),例如图1中所示的片上网络、地址翻译单元等。
其中,多个主设备中的一组主设备属于同一子系统,每个子系统包括对应内存。
值得指出的是,在本公开实施例中,各个子系统的对应内存,可以属于同一内存,即是将同一内存从逻辑上进行划分后,分别将划分后的各个部分分配给各个子系统,相应的,此种情况下,各个子系统的对应内存之间并无严格的物理位置划分。
对应于该情况,上述页表管理系统的产品形态可以是包括多个主设备的一个SOC,且以主设备来划分子系统,例如每组主设备包括至少一个主设备,不同组的主设备属于相同的SOC;相应的,该组主设备所属的子系统包括:对应内存、该组主设备所包括的全部主设备、片上网络、地址翻译单元等。在不同组的主设备属于相同的SOC的情况下,不同子系统中所包括的片上网络,是属于该同一SOC内的同一片上网络。每个子系统是一个延时域,意味着属于本子系统内的主设备访问本子系统的对应内存的延时,小于访问其他子系统的对应内存的延时。
在本公开另一实施例中,各个子系统的对应内存,可以分别属于不同内存,即是将来自同一电子组件(例如显卡、主板等)内的不同内存分别分配给各个子系统,相应的,各个子系统的对应内存之间存在严格的物理界限。
对应于该情况,上述页表管理系统的产品形态可以是包括多个SOC互联的级联芯片,且以SOC来划分子系统,例如不同组的主设备属于不同的SOC,同一组的主设备属于同一SOC,相应的,该组主设备所属的子系统包括:对应内存、该组主设备所属的SOC内的全部主设备、片上网络、地址翻译单元等。每个子系统是一个延时域,意味着本子系统内的主设备访问本子系统的对应内存的延时,小于访问其他子系统的对应内存的延时。
可选的,上述任一实施例中的内存可以是DDR(Double Data Rate,双倍速率同步动态随机存储器),也可以是其他可读可写的存储器。
值得指出的是,在本公开实施例中,每个子系统的对应内存内均存储有页表,地址翻译单元可以基于页表的页表项将虚拟地址翻译成物理地址。
在本公开实施例中,页表更新单元,可以是处理器等具有管理能力的硬件单元,例如可以是SOC里的CPU核,其内通常运行管理页表的程序,负责对各个子系统的对应内存中的页表进行管理。
可选的,上述任一实施例中的主设备Master,可以是CPU、DMA、GPU等可对本子系统的内存或者其他子系统的内存发起内存访问请求的单元,即内存可视为Master的从设备。
当然,可以理解,无论子系统中的主设备是访问本子系统的内存,还是跨内存访问其他子系统的内存,均需要经过地址翻译单元将内存访问请求所携带的虚拟地址映射成物理地址,然后经过片上网络去访问对应物理地址的内存。
地址翻译单元在将虚拟地址映射成物理地址前,需要从内存中取回相应的页表项,以便根据取回的页表项实施地址翻译操作。
为了减少地址翻译单元取回其他子系统对应内存中对应页表项的耗时,在本公开实施例中,在各个子系统的页表配置阶段以及后续的页表更新阶段中的任一阶段,页表更新单元均会响应管理页表的程序的调用,进而生成页表写请求以及将页表写请求发送给广播单元,进而使得广播单元对多个子系统广播信息,促使各个子系统的对应内存中所存储的页表的页表项始终保持相同。
也就是说,在本公开实施例中,基于页表写请求所对应的操作,可以适用于页表的配置以及页表的更新(包括修改、删除)。
为了实现上述过程,在本公开实施例中,针对每个子系统,其对应内存被预先配置线性地址及镜像地址,线性地址及镜像地址均为物理地址,且预先配置镜像地址与线性地址之间的映射关系。
其中,每个子系统的对应内存的线性地址形成该子系统的线性地址子空间。各个子系统的线性地址子空间形成整个页表管理系统对应的线性地址空间,线性地址空间大小等于整个页表管理系统所对应内存的总容量,线性地址在整个页表管理系统内唯一。每个子系统的对应内存的镜像地址形成该子系统的镜像地址空间,且各个子系统共用同一镜像地址空间,镜像地址在单个子系统内唯一,在整个页表管理系统内不唯一。
如此配置后,对于每个子系统的对应内存来说,存在对应的镜像地址空间以及线性地址子空间,且镜像地址空间与线性地址子空间之间存在映射关系。那么对应任一镜像地址,如图2所示,该镜像地址在被不同的子系统(对应于图2中的延时域)接收后,可通过对应子系统的镜像地址空间与线性地址子空间之间存在映射关系,将该镜像地址映射成不同的线性地址,进而可访问到不同子系统中的不同线性地址所指向的不同内存。
示例性的,假设一共存在4个子系统,分别为子系统0~子系统3。每个子系统的对应内存占4GB的空间,每个子系统的4GB地址空间共用的镜像地址空间是0x4_0000_0000~0x4_FFFF_FFFF。
整个页表管理系统所属的子系统0~子系统3这16GB(4×4GB=16GB)的内存空间占用的线性地址空间范围是0x0000_0000~0x3_FFFF_FFFF。
其中,子系统0的线性地址子空间范围是0x0000_0000~0x0_FFFF_FFFF,与之对应的镜像地址空间与其他子系统的镜像地址空间相同,均是0x4_0000_0000~0x4_FFFF_FFFF。子系统1的线性地址子空间范围是0x1_0000_0000~0x1_FFFF_FFFF,与之对应的镜像地址空间与其他子系统的镜像地址空间相同,均是0x4_0000_0000~0x4_FFFF_FFFF。子系统2的线性地址子空间范围是0x2_0000_0000~0x2_FFFF_FFFF,与之对应的镜像地址空间与其他子系统的镜像地址空间相同,均是0x4_0000_0000~0x4_FFFF_FFFF。子系统3的线性地址子空间范围是0x3_0000_0000~0x3_FFFF_FFFF,与之对应的镜像地址空间与其他子系统的镜像地址空间相同,均是0x4_0000_0000~0x4_FFFF_FFFF。
基于上述配置,当上层软件需要针对某一子系统(为便于区分,以下称之为特定子系统)进行页表配置或者页表更新操作的情况下,页表更新单元生成针对该特定子系统的页表写请求。
在页表写请求中,携带镜像地址(为便于区分,以下称之为第一镜像地址)和页表内容。其中,第一镜像地址表示在该特定子系统中页表内容应该被写入的待写入内存的镜像地址。
广播单元接收到页表写请求后,向待同步的子系统广播基于第一镜像地址得到的待更新地址,以便页表更新单元基于待更新地址,将本该只写入特定子系统的页表内容,写入待同步的子系统(为多个子系统中的至少两个子系统)的对应内存,具体为对应内存中待更新地址所指向的目标内存,进而在多个子系统中,形成彼此所存页表的页表项副本。其中,待同步的子系统可以是全部子系统,也可以是全部子系统中的部分子系统。
相应的,广播单元,被配置为:接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址;所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个;
页表更新单元,被配置为:将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存。
在上述过程中,由于在页表的配置以及更新阶段,上述多个子系统中的待同步的子系统的内存中的页表的页表项彼此之间均是同步更新,所以对于待同步的子系统来说,在每个待同步的子系统的内存所保存的页表内,实际存储的是所有待同步的子系统的页表的页表项的并集。那么当其中一个待同步的子系统内的主设备有访问其他待同步的子系统的内存的需求时,由于在自身所在子系统的内存中已存放对应的页表项,所以在自身所在子系统的地址翻译单元取页表的过程中,即可在本子系统的内存中命中页表项而实施地址翻译过程,而不必再去其他子系统的内存取页表,进而有利于减少地址翻译单元取回其他主设备内存中对应页表项的耗时,从而提高主设备进行跨内存访问的效率,进而提高系统性能。
下面将针对上述过程进行详细介绍。
前文提及,广播单元接收到页表写请求后,向多个子系统中的待同步的子系统广播基于第一镜像地址得到的待更新地址。
在一些实施方式中,上述待更新地址可以是第一镜像地址本身,即广播单元直接向需要广播的多个子系统,即待同步的子系统广播该第一镜像地址。
由于第一镜像地址在子系统内唯一,所以对于每个接收到第一镜像地址的待同步的子系统来说,均可以根据该第一镜像地址,准确找到与该第一镜像地址对应的目标内存,进而在后续由页表更新单元将页表内容写入到各个待同步的子系统的不同目标内存中,实现页表项的同步配置或更新。
在一些实施方式中,上述待更新地址可以是根据第一镜像地址所映射出的线性地址。
前文提及,子系统的对应内存的镜像地址空间与线性地址子空间之间存在映射关系。在本公开一些实现方式中,在广播单元内预先配置各个子系统的对应内存的镜像地址空间与线性地址子空间之间存在映射关系,例如存在4个子系统,相应存在4组映射关系,且将这4组映射关系预先配置在广播单元内。
在向待同步的子系统广播基于第一镜像地址得到的待更新地址的情况下,广播单元具体被配置为:基于预配置的镜像地址空间与各子系统的线性地址子空间的映射关系,将第一镜像地址映射成与各个子系统或者与待同步的子系统对应的第一线性地址,然后向各待同步的子系统发送与之对应的第一线性地址。此种情况下,待更新地址是对应的第一线性地址。
例如,上述4个子系统分别为子系统0~子系统3,且各个子系统的镜像地址空间与其线性地址子空间之间的映射关系如表1所示。
表1
假设子系统0~子系统3均为待同步的子系统,当广播单元接收到第一镜像地址0x4_0000_0001后,按照上述映射关系,将第一镜像地址分别映射成子系统0对应的第一线性地址0x_0000_0001,子系统1对应的第一线性地址0x1_0000_0001,子系统2对应的第一线性地址0x2_0000_0001,子系统3对应的第一线性地址0x3_0000_0001,并将各个第一线性地址广播到对应的子系统中。
相应的,页表更新单元将相同的页表内容,分别写入到子系统0对应的第一线性地址0x_0000_0001,子系统1对应的第一线性地址0x1_0000_0001,子系统2对应的第一线性地址0x2_0000_0001,子系统3对应的第一线性地址0x3_0000_0001。
至于待同步的子系统,在一些实现方式中,当待同步的子系统是全部子系统的情况下,无需新增额外的配置,直接向全部子系统广播待更新地址即可。
在另一些实现方式中,当待同步的子系统是部分子系统的情况下,可以通过寄存器或者为各个子系统设置状态位来记录各个子系统是否被标记,以及默认被标记的子系统是需要同步更新的待同步的子系统。相应的,在向待同步的子系统广播基于第一镜像地址得到的待更新地址的情况下,广播单元具体被配置为:向多个子系统中被标记的子系统广播待更新地址。
当然,在待同步的子系统是全部子系统的情况下,也可以采用标记的形式标记全部子系统。
前文提及,在本公开实施例中基于页表写请求所对应的操作,可以适用于页表的配置以及页表的更新(包括修改、删除)。
针对页表的配置以及修改,页表内容均为对应的页表项。
在一些实施方式中,每个页表包括对应的状态信息,例如vaild,且在状态信息为第一预设字符时表示该页表有效,在状态信息为第二预设字符时表示该页表无效,例如在vaild=1时表示对应页表有效,在vaild=0时表示对应页表无效。
相应的,针对页表的删除,对应页表写请求的页表内容可以是用于表示页表无效的状态信息,用于将对应页表的状态信息置为无效,进而实现删除页表的效果。
此外,在各个子系统的页表的页表项同步更新的基础上,当子系统1向本子系统的对应内存放起内存访问请求时,子系统1的地址翻译单元1可基于镜像地址在子系统1的对应内存1所存储的页表中读取到对应页表项完成地址翻译操作。
假设子系统2与子系统1均为待同步的子系统,当子系统1向子系统2发起跨内存访问请时,由于在子系统1中也同步存储子系统2的页表的页表项,所以子系统1的地址翻译单元1也可基于镜像地址在子系统1的对应内存1所存储的页表中读取到子系统2所存页表的对应页表项完成地址翻译操作,进而减少获取页表项的时延。
至于上述用于获取页表的镜像地址,由主设备所生成的内存访问请求中携带。当然值得指出的是,在本公开实施例中,页表可以是单级页表,也可以是多级页表。无论是单级页表还是多级页表,除最后一级页表外,其他级页表指向的是下一级页表的基镜像地址,最后一级页表中的内容指向的是翻译后最终的线性地址。所以在本公开实施例中,可通过镜像地址进行页表寻址。
相应的,在一些实施方式中,每个子系统的地址翻译单元,被配置为:响应自身所在第一子系统的第一主设备访问第一子系统的第一内存或者其他主设备所在的第二子系统的第二内存的内存访问请求,基于内存访问请求携带的第二镜像地址,从第一内存中读取与第二镜像地址对应的页表,且基于获取到的页表将内存访问请求携带的虚拟地址翻译成线性地址后发送给第一主设备。
此外,基于类似的发明构思,本公开实施例还提供一种页表管理方法,应用于页表管理系统,所述页表管理系统包括广播单元、页表更新单元及多个主设备;多个主设备中的一组主设备属于同一子系统,每个所述子系统包括对应内存且;所述多个子系统共用同一镜像地址空间,且每个所述镜像地址在所述子系统内唯一。
请参照图3,该方法可以包括:
步骤S110:广播单元接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址。
所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个。
步骤S120:页表更新单元将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存。
在一种可行的实现方式中,所述待更新地址是所述第一镜像地址。
在一种可行的实现方式中,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述向待同步的子系统广播基于所述第一镜像地址得到的待更新地址,包括:所述广播单元基于预配置的所述镜像地址空间与各所述子系统的线性地址子空间的映射关系,将所述第一镜像地址映射成与所述待同步的子系统对应的第一线性地址,向各所述待同步的子系统发送与之对应的第一线性地址,所述待更新地址是对应的第一线性地址。
在一种可行的实现方式中,所述待同步的子系统是所述多个子系统中预先被标记需要同步更新的子系统;所述向待同步的子系统广播基于所述第一镜像地址得到的待更新地址,包括:所述广播单元向所述多个子系统中被标记的子系统广播所述待更新地址。
在一种可行的实现方式中,所述被标记需要同步更新的子系统,是所述多个子系统中的全部子系统,或者是所述多个子系统中的部分子系统。
在一种可行的实现方式中,所述页表内容包括页表项或者用于表示页表无效的状态信息。
在一种可行的实现方式中,所述多个主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
在一种可行的实现方式中,所述页表管理系统还包括与所述主设备对应的地址翻译单元,所述一组主设备及其对应的一组地址翻译单元属于同一子系统,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述方法还包括:所述地址翻译单元响应自身所在第一子系统的第一主设备访问所述第一子系统的第一内存或者其他主设备所在的第二子系统的第二内存的内存访问请求,基于所述内存访问请求携带的第二镜像地址,从所述第一内存中读取与所述第二镜像地址对应的页表,且将所述内存访问请求携带的虚拟地址翻译成所述线性地址后发送给所述第一主设备。
此外,本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的页表管理系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
此外,本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (12)

1.一种页表管理系统,包括广播单元、页表更新单元及多个主设备;多个主设备中的一组主设备属于同一子系统,每个所述子系统包括对应内存且共用同一镜像地址空间,且每个所述镜像地址在所述子系统内唯一;
所述广播单元,被配置为:接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址;所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个;
所述页表更新单元,被配置为:将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存;
每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;在向待同步的子系统广播基于所述第一镜像地址得到的待更新地址的情况下,所述广播单元具体被配置为:基于预配置的所述镜像地址空间与各所述子系统的线性地址子空间的映射关系,将所述第一镜像地址映射成与所述待同步的子系统对应的第一线性地址,向各所述待同步的子系统发送与之对应的第一线性地址,所述待更新地址是对应的第一线性地址。
2.根据权利要求1所述的页表管理系统,所述待更新地址是所述第一镜像地址。
3.根据权利要求1所述的页表管理系统,所述待同步的子系统是多个子系统中预先被标记需要同步更新的子系统;在向待同步的子系统广播基于所述第一镜像地址得到的待更新地址的情况下,所述广播单元具体被配置为:向所述多个子系统中被标记的子系统广播所述待更新地址。
4.根据权利要求3所述的页表管理系统,所述被标记需要同步更新的子系统,是所述多个子系统中的全部子系统,或者是所述多个子系统中的部分子系统。
5.根据权利要求1所述的页表管理系统,所述页表内容包括页表项或者用于表示页表无效的状态信息。
6.根据权利要求1-5任一项所述的页表管理系统,不同组的主设备属于同一SOC,且每个所述子系统的对应内存属于同一内存;或者,不同组的主设备属于不同的SOC,且每个所述子系统的对应内存之间相互独立。
7.根据权利要求6所述的页表管理系统,所述页表管理系统还包括与所述主设备对应的地址翻译单元,所述一组主设备及其对应的一组地址翻译单元属于同一子系统,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述地址翻译单元,被配置为:响应自身所在第一子系统的第一主设备访问所述第一子系统对应的第一内存或者其他主设备所在的第二子系统对应的第二内存的内存访问请求,基于所述内存访问请求携带的第二镜像地址,从所述第一内存中读取与所述第二镜像地址对应的页表,且将所述内存访问请求携带的虚拟地址翻译成所述线性地址后发送给所述第一主设备。
8.一种电子组件,包括权利要求1-7任一所述的页表管理系统。
9.一种电子设备,包括权利要求8所述的电子组件。
10.一种页表管理方法,应用于页表管理系统,所述页表管理系统包括广播单元、页表更新单元及多个主设备;多个主设备中的一组主设备属于同一子系统,每个所述子系统包括对应内存且共用同一镜像地址空间,且每个所述镜像地址在所述子系统内唯一;所述方法包括:
所述广播单元接收针对任一子系统的携带第一镜像地址和页表内容的页表写请求,且向待同步的子系统广播基于所述第一镜像地址得到的待更新地址;所述第一镜像地址表示在所述任一子系统中所述页表内容对应的待写入内存的镜像地址;所述待同步的子系统至少为两个;
所述页表更新单元将所述页表内容写入所述待同步的子系统接收到的待更新地址所指向的目标内存,所述目标内存属于所述待同步的子系统的对应内存;
每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述向待同步的子系统广播基于所述第一镜像地址得到的待更新地址,包括:所述广播单元基于预配置的所述镜像地址空间与各所述子系统的线性地址子空间的映射关系,将所述第一镜像地址映射成与所述待同步的子系统对应的第一线性地址,向各所述待同步的子系统发送与之对应的第一线性地址,所述待更新地址是对应的第一线性地址。
11.根据权利要求10所述的方法,所述待同步的子系统是多个子系统中预先被标记需要同步更新的子系统;所述向待同步的子系统广播基于所述第一镜像地址得到的待更新地址,包括:所述广播单元向所述多个子系统中被标记的子系统广播所述待更新地址。
12.根据权利要求10-11任一项所述的方法,所述页表管理系统还包括与所述主设备对应的地址翻译单元,所述一组主设备及其对应的一组地址翻译单元属于同一子系统,每个所述子系统还配置一一对应的线性地址子空间,每个所述线性地址子空间中的每个线性地址在所述页表管理系统内唯一;所述方法还包括:所述地址翻译单元响应自身所在第一子系统的第一主设备访问所述第一子系统对应的第一内存或者其他主设备所在的第二子系统对应的第二内存的内存访问请求,基于所述内存访问请求携带的第二镜像地址,从所述第一内存中读取与所述第二镜像地址对应的页表,且将所述内存访问请求携带的虚拟地址翻译成所述线性地址后发送给所述第一主设备。
CN202410257128.XA 2024-03-07 2024-03-07 页表管理方法、系统、电子组件及电子设备 Active CN117851290B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410257128.XA CN117851290B (zh) 2024-03-07 2024-03-07 页表管理方法、系统、电子组件及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410257128.XA CN117851290B (zh) 2024-03-07 2024-03-07 页表管理方法、系统、电子组件及电子设备

Publications (2)

Publication Number Publication Date
CN117851290A CN117851290A (zh) 2024-04-09
CN117851290B true CN117851290B (zh) 2024-06-21

Family

ID=90546849

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410257128.XA Active CN117851290B (zh) 2024-03-07 2024-03-07 页表管理方法、系统、电子组件及电子设备

Country Status (1)

Country Link
CN (1) CN117851290B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256396A (zh) * 2020-10-23 2021-01-22 海光信息技术股份有限公司 内存管理方法、系统及安全处理装置、数据处理装置
CN113674133A (zh) * 2021-07-27 2021-11-19 阿里巴巴新加坡控股有限公司 Gpu集群共享显存系统、方法、装置及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69132300T2 (de) * 1990-03-12 2000-11-30 Hewlett-Packard Co., Palo Alto Durch Anwender festgelegter direkter Speicherzugriff mit Anwendung von virtuellen Adressen
US7310721B2 (en) * 2003-10-30 2007-12-18 Microsoft Corporation Shadow page tables for address translation control
CN116701248B (zh) * 2022-02-24 2024-04-30 象帝先计算技术(重庆)有限公司 页表管理方法、单元、soc、电子设备及可读存储介质
CN115190102B (zh) * 2022-07-22 2024-04-16 北京象帝先计算技术有限公司 信息广播方法、装置、电子单元、soc及电子设备
CN115827502A (zh) * 2022-12-09 2023-03-21 北京奕斯伟计算技术股份有限公司 一种内存访问系统、方法及介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256396A (zh) * 2020-10-23 2021-01-22 海光信息技术股份有限公司 内存管理方法、系统及安全处理装置、数据处理装置
CN113674133A (zh) * 2021-07-27 2021-11-19 阿里巴巴新加坡控股有限公司 Gpu集群共享显存系统、方法、装置及设备

Also Published As

Publication number Publication date
CN117851290A (zh) 2024-04-09

Similar Documents

Publication Publication Date Title
US9569349B2 (en) Method and apparatus for reallocating memory content
US8669992B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
US8938602B2 (en) Multiple sets of attribute fields within a single page table entry
US8868883B1 (en) Virtual memory management for real-time embedded devices
US9697111B2 (en) Method of managing dynamic memory reallocation and device performing the method
US20070061549A1 (en) Method and an apparatus to track address translation in I/O virtualization
CN117120990A (zh) 用于转移分层存储器管理的方法和装置
CN115481054A (zh) 数据处理方法、装置及系统、系统级soc芯片及计算机设备
CN114546898A (zh) 一种tlb管理方法、装置、设备及存储介质
CN114817081A (zh) 内存访问方法、装置和输入输出内存管理单元
US7290107B2 (en) Direct deposit using locking cache
CN117389914B (zh) 缓存系统、缓存写回方法、片上系统及电子设备
CN117851290B (zh) 页表管理方法、系统、电子组件及电子设备
US12032489B2 (en) Input output memory management unit and electronic device having the same
CN117992360A (zh) 存储系统及存储方法
CN117851289B (zh) 页表获取方法、系统、电子组件及电子设备
CN113961487A (zh) 加速存储器存取的电子装置及方法
CN116745754A (zh) 一种访问远端资源的系统及方法
CN117851292B (zh) 集成电路系统、组件、设备及内存管理方法
CN117971728B (zh) 缓存器及缓存控制方法、集成电路系统、电子组件及设备
WO2024061344A1 (zh) 数据迁移方法、装置、芯片以及计算机可读存储介质
US11847074B2 (en) Input/output device operational modes for a system with memory pools
JPH1091527A (ja) 記憶装置および記録媒体
CN118672969A (zh) 一种soc芯片及访问内存的方法
CN115858422A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Page table management methods, systems, electronic components, and electronic devices

Granted publication date: 20240621

Pledgee: Ji Aiqin

Pledgor: Xiangdixian Computing Technology (Chongqing) Co.,Ltd.|Beijing xiangdixian Computing Technology Co.,Ltd.

Registration number: Y2024980043989