CN117851291A - 内存访问系统、电子组件及电子设备 - Google Patents

内存访问系统、电子组件及电子设备 Download PDF

Info

Publication number
CN117851291A
CN117851291A CN202410257130.7A CN202410257130A CN117851291A CN 117851291 A CN117851291 A CN 117851291A CN 202410257130 A CN202410257130 A CN 202410257130A CN 117851291 A CN117851291 A CN 117851291A
Authority
CN
China
Prior art keywords
page table
address
translation module
translation
memory
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
Application number
CN202410257130.7A
Other languages
English (en)
Other versions
CN117851291B (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 CN202410257130.7A priority Critical patent/CN117851291B/zh
Publication of CN117851291A publication Critical patent/CN117851291A/zh
Application granted granted Critical
Publication of CN117851291B publication Critical patent/CN117851291B/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开提供一种内存访问系统、电子组件及电子设备,该内存访问系统包括第一翻译模块,第一翻译模块位于第一延时域内或靠近第一延时域,第一翻译模块接收来自第二延时域的内存访问请求和地址翻译请求,地址翻译请求携带有虚拟地址,虚拟地址对应的物理地址是第一内存的一个物理地址;第一翻译模块确定虚拟地址对应的物理地址;第一翻译模块根据确定出的物理地址访问第一内存,第一内存位于第一延时域。本公开中,第二延时域将内存访问请求和地址翻译请求发送给第一翻译模块进行处理,第一翻译模块在确定出虚拟地址对应的物理地址后,可以立即处理内存访问请求,从而根据确定出的物理地址访问第一内存,有效缩短了内存访问延时。

Description

内存访问系统、电子组件及电子设备
技术领域
本公开涉及数据处理技术领域,尤其涉及一种内存访问系统、电子组件及电子设备。
背景技术
主设备(例如CPU)上执行的程序通常运行在虚拟地址空间,因此需要基于虚拟地址对物理内存进行访问。具体而言,程序在调用SOC(System on Chip,片上系统)上的硬件主设备访问内存时,会将虚拟地址下发给硬件主设备,然后由硬件的地址翻译模块从本地SOC的内存或其他SOC的内存上读回页表,并根据读回的页表将虚拟地址翻译成物理地址,然后再由主设备根据物理地址访问目标内存。
然而上述内存访问过程的延时较长,尤其是随着SOC规模的不断提升,或者随着多个SOC互联的应用场景的出现,导致页表存放位置与地址翻译模块的距离较远,或者待访问的目标内存与主设备的距离较远,从而进一步增大了主设备访问内存的延时。
发明内容
本公开的目的是提供一种内存访问系统、电子组件及电子设备,旨在降低内存访问延时。
根据本公开的一个方面,提供一种内存访问系统,所述系统包括第一翻译模块,所述第一翻译模块位于以下多种位置中的任一种位置处:第一延时域内、所述第一延时域和第二延时域的边界处、所述第二延时域内的更靠近所述第一延时域的位置;所述第一延时域内还包括第一内存;所述第一翻译模块被配置为:
接收来自第二延时域的内存访问请求和地址翻译请求,所述地址翻译请求携带有虚拟地址,所述虚拟地址对应的物理地址是所述第一内存的一个物理地址;
确定所述虚拟地址对应的物理地址;
根据确定出的物理地址访问所述第一内存。
本公开一种可行的实现方式中,在用于翻译所述虚拟地址的页表为单级页表的情况下,所述第一翻译模块在确定所述虚拟地址对应的物理地址时,具体被配置为:
根据第一寄存器中的页表基地址和所述虚拟地址中的偏移信息,确定所述虚拟地址对应的物理地址。
本公开一种可行的实现方式中,所述单级页表存储于所述第一内存中。
本公开一种可行的实现方式中,在用于翻译所述虚拟地址的页表为多级页表的情况下,所述多级页表中的最后M级页表存储于所述第一内存中,所述M为大于或等于1的整数,所述地址翻译请求还携带有页表基地址,所述页表基地址是所述最后M级页表中的最高级页表的基地址;所述第一翻译模块在确定所述虚拟地址对应的物理地址时,具体被配置为:
根据所述页表基地址、所述虚拟地址中的偏移信息、以及所述最后M级页表中每一级页表的相应页表条目,确定所述虚拟地址对应的物理地址。
本公开一种可行的实现方式中,所述第一翻译模块还被配置为:
将访问所述第一内存的访问结果返回给所述第二延时域。
根据本公开的另一方面,还提供另一种内存访问系统,所述系统包括主设备和第二翻译模块,所述主设备和所述第二翻译模块位于第二延时域内;
所述第二翻译模块被配置为:向第一翻译模块发送携带有虚拟地址的地址翻译请求,使所述第一翻译模块确定所述虚拟地址对应的物理地址;其中,所述第一翻译模块位于以下多种位置中的任一种位置处:第一延时域内、所述第一延时域和所述第二延时域的边界处、所述第二延时域内的更靠近所述第一延时域的位置;所述虚拟地址对应的物理地址是第一内存的一个物理地址,所述第一内存位于所述第一延时域内;
所述主设备或所述第二翻译模块被配置为:向所述第一翻译模块发送内存访问请求,使所述第一翻译模块根据确定出的物理地址访问所述第一内存。
本公开一种可行的实现方式中,所述地址翻译请求和所述内存访问请求是同时发送给所述第一翻译模块的;或者,所述内存访问请求是在所述第一翻译模块确定出所述物理地址之前发送给所述第一翻译模块的。
本公开一种可行的实现方式中,所述地址翻译请求和所述内存访问请求是在以下情况下发送给所述第一翻译模块的:
用于翻译所述虚拟地址的页表为单级页表。
本公开一种可行的实现方式中,所述地址翻译请求和所述内存访问请求是在以下情况下发送给所述第一翻译模块的:
用于翻译所述虚拟地址的下一级页表是最后一级页表。
本公开一种可行的实现方式中,所述地址翻译请求和所述内存访问请求是在以下情况下发送给所述第一翻译模块的:
用于翻译所述虚拟地址的下一级页表是最后M级页表中的最高级页表,所述M为大于或等于1的整数。
本公开一种可行的实现方式中,所述地址翻译请求还携带有最后M级页表中的最高级页表的基地址。
本公开一种可行的实现方式中,最后M级页表存储于所述第一内存中。
本公开一种可行的实现方式中,所述第二翻译模块还被配置为:
在用于翻译所述虚拟地址的下一级页表不是最后M级页表中的最高级页表的情况下,从存储有下一级页表的目标位置获取下一级页表或下一级页表中的目标页表条目。
本公开一种可行的实现方式中,在存储有下一级页表的目标位置是除第二延时域以外的其他位置的情况下,所述第二翻译模块在获取下一级页表或目标页表条目时,具体被配置为:
向总线或片上网络发送信息获取请求,所述信息获取请求携带有下一级页表的基地址,或者所述信息获取请求携带有下一级页表的基地址和目标页表条目对应的偏移信息;
接收其他延时域或页表缓存器通过总线或片上网络返回的下一级页表或目标页表条目;其中,所述页表缓存器用于缓存所述第二延时域所需的且存在于所述其他延时域的页表或页表条目。
本公开一种可行的实现方式中,所述系统还包括所述页表缓存器,所述页表缓存器被配置为:
在接收到来自所述第二翻译模块的信息获取请求后,根据所述信息获取请求携带的基地址或所述信息获取请求携带的基地址和偏移信息,查询本地是否缓存有相应的页表或页表条目;
如果本地缓存有相应的页表或页表条目,则将相应的页表或页表条目返回给所述第二翻译模块。
本公开一种可行的实现方式中,所述第二延时域内的第二翻译模块为多个,每个第二翻译模块分别服务于一个主设备,所述页表缓存器服务于多个第二翻译模块。
本公开一种可行的实现方式中,所述主设备或所述第二翻译模块被配置为:接收所述第一翻译模块返回的访问结果。
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述任一实施例中所述的内存访问系统。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备、穿戴设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1为相关技术中主设备访问内存的流程示意图;
图2是本公开一实施例提供的内存访问过程的示意图;
图3是本公开一实施例提供的地址翻译过程示意图;
图4是本公开另一实施例提供的内存访问过程的示意图;
图5是本公开另一实施例提供的内存访问过程的示意图;
图6是本公开一实施例提供的电子组件的结构示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
如图1所示,相关技术中,主设备在跨SOC访问内存时,主要包括以下步骤:
S110:SOC-a上的主设备a向其对应的地址翻译模块a发送地址翻译请求;
S120:地址翻译模块a从本地SOC-a的内存和/或其他SOC(比如SOC-b)的内存获取多级页表中的每一级页表,从而利用获取的页表将虚拟地址翻译成物理地址;
S130:主设备a基于翻译出的物理地址访问相应的目标内存,目标内存可能位于本地的SOC-a,也可能位于其他SOC(比如SOC-b)。
上述内存访问过程的延时较长,尤其是随着SOC规模的不断提升,导致页表存放位置与地址翻译模块的距离较远,或者待访问的目标内存与主设备的距离较远,从而进一步增大了主设备访问内存的延时。需要补充说明的是,上述内存访问过程仅作为本公开的相关技术,并不能将上述内存访问过程直接视为现有技术。
本公开为了降低内存访问延时,提供一种内存访问系统。需要说明的是,本公开不仅可以应用于多SOC系统,从而解决跨SOC访问内存效率偏低的问题,还可以应用于单个SOC,解决SOC内部访问内存效率偏低的问题。此外,本公开也可以应用于其他集成电路系统,用于解决这些集成电路系统内部访问内存效率偏低的问题。
此外,本公开所述的内存访问系统可以是SOC中的子系统,也可以理解成SOC本身,还可以是包括多个SOC的系统。或者,本公开所述的内存访问系统也可以是显卡、主板或者电子设备(比如手机、电脑、服务器、穿戴设备等)。
本公开提供的内存访问系统包括第一翻译模块,第一翻译模块位于以下多种位置中的任一种位置处:第一延时域内、第一延时域和第二延时域的边界处、第二延时域内的更靠近所述第一延时域的位置。
在一些实施例中,第一翻译模块位于第一延时域内。
在另一些实施例中,第一翻译模块位于第一延时域和第二延时域的边界处。比如第一翻译模块的一部分位于第一延时域内,另一部分位于第二延时域内。或者比如当第一延时域与第二延时域之间具有一定间距时,第一翻译模块的一部分位于第一延时域内,另一部分位于间距内;或者第一翻译模块的一部分位于第二延时域内,另一部分位于间距内;或者第一翻译模块的第一部分位于第一延时域内,第二部分位于第二延时域内,第三部分位于间距内。
在另一些实施例中,第一翻译模块位于第二延时域内的更靠近第一延时域的位置。比如当第一延时域位于第二延时域右侧时,则第一翻译模块位于第一延时域的中轴线的右侧;或者比如第二延时域中包括如下文所述的第二翻译模块,则第一翻译模块相较于第二翻译模块更靠近第一延时域。
为便于说明,以下以第一翻译模块位于第一延时域内为例,对本公开进行说明。参考图2,图2是本公开一实施例提供的内存访问过程的示意图。如图2所示,第一翻译模块和第一内存位于第一延时域内。其中,第一翻译模块还属于内存访问系统,图2中未示出内存访问系统,第一翻译模块被配置为:
第一翻译模块接收来自第二延时域的内存访问请求和地址翻译请求,地址翻译请求携带有虚拟地址,虚拟地址对应的物理地址是第一内存的一个物理地址;第一翻译模块确定虚拟地址对应的物理地址;第一翻译模块根据确定出的物理地址访问第一内存。
具体而言,内存访问请求和地址翻译请求是第二延时域中的翻译模块发送的;或者,内存访问请求和地址翻译请求是第二延时域中的主设备发送的;再或者,内存访问请求是第二延时域中的主设备发送的,地址翻译请求是第二延时域中的翻译模块发送的。本公开对于内存访问请求和地址翻译请求的具体发送者不做限定。
本公开中,延时域是一个抽象的概念。例如,可以将每个SOC及其对应的内存视为一个延时域,比如将SOC1及其对应的内存1视为一个延时域1,将SOC2及其对应的内存2视为一个延时域2。或者例如,可以将每个SOC视为一个延时域,每个SOC中包括至少一块内存。或者例如,可以将几个相邻的内存通道划分为一个延时域。或者例如,可以按照延时均衡原则将一个系统划分为多个延时域;其中,延时均衡原则具体可以是:划分出的每个延时域内各模块之间的最大访问延时不超过第一预设阈值;或者延时均衡原则具体可以是:划分出的每个延时域内各模块之间的最大访问延时不超过第一预设阈值,且最小访问延时不小于第二预设阈值,第二预设阈值小于第一预设阈值。
内存访问请求和地址翻译请求可以是两个独立的请求;或者,内存访问请求和地址翻译请求也可以合并在一个请求中;或者,地址翻译请求的相关信息可以被包含在内存访问请求中;或者内存访问请求的相关信息可以被包含在地址翻译请求中。
第一翻译模块用于将虚拟地址翻译成物理地址,第一翻译模块可以选用MMU(Memory Management Unit,内存管理单元);或者,第一翻译模块也可以选用通用处理器,通用处理器通过执行相应程序,从而实现相应的地址翻译功能;再或者,第一翻译模块也可以是:通过对硬件描述语言HDL编写的代码依次经过综合和布局布线后产生的电路,具体而言,可以按照本公开中第一翻译模块所需实现的功能,基于硬件描述语言(例如Verilog语言)编写出能实现相应功能的代码,然后对编写出的代码依次经过综合和布局布线,从而得到本公开中的第一翻译模块。
基于本公开提供的内存访问系统,第一方面,第二延时域中的模块将内存访问请求和地址翻译请求发送给第一翻译模块进行处理,第一翻译模块在确定出虚拟地址对应的物理地址后,可以立即处理内存访问请求,从而根据确定出的物理地址访问第一内存;第二方面,待访问的第一内存位于第一延时域,而第一翻译模块位于第一延时域内或靠近第一延时域,因此第一翻译模块不需要跨延时域访问第一内存,或者第一翻译模块访问第一内存的距离较短。总言之,基于上述第一方面和第二方面,本公开可以有效缩短内存访问延时。
在一些实施例中,内存访问请求和地址翻译请求是同时被发送给第一翻译模块的。或者,在第一翻译模块确定出地址翻译请求中的虚拟地址所对应的物理地址之前,第一翻译模块已经接收到内存访问请求。第一翻译模块中包括存储单元,用于缓存内存访问请求,当第一翻译模块确定出虚拟地址对应的物理地址之后,第一翻译模块从存储单元中读取出内存访问请求,并基于确定出的物理地址处理该内存访问请求,换言之,基于确定出的物理地址访问第一内存。
在一些实施例中,在用于翻译虚拟地址的页表为单级页表的情况下,第一翻译模块在确定虚拟地址对应的物理地址时,具体被配置为:根据第一寄存器中的页表基地址和虚拟地址中的偏移信息,确定虚拟地址对应的物理地址。
换言之,如果用于翻译虚拟地址的页表为单级页表,则第一翻译模块根据第一寄存器中的页表基地址和虚拟地址中的偏移信息,确定虚拟地址对应的物理地址。具体而言,地址翻译请求携带的虚拟地址中包括虚拟页号VPN和虚拟页偏移量VPO;第一翻译模块首先根据第一寄存器(第一寄存器可以是页表基址寄存器PTBR)中的页表基地址,查询到相应的页表;然后根据虚拟地址中的虚拟页号VPN,从查询到的页表中索引出相应的页表条目PTE,并从该页表条目PTE中读取出物理页号PPN;最后将读取出的物理页号PPN和虚拟地址中的虚拟页偏移量VPO串连起来,从而得到物理地址。其中,页表基地址也可以理解成页表的起始地址,虚拟页号VPN也可以理解为页表的偏移地址。
为了进一步降低内存访问延时,在一些实施例中,上述单级页表是存储于第一内存中的。如此,第一翻译模块可以直接从本地延时域(即第一延时域)的第一内存中读取出单级页表,单级页表的读取延时较短,从而有利于进一步降低内存访问延时。需要说明的是,第一延时域内可以仅设置一块内存,即所述第一内存。或者,第一延时域内可以设置多块内存,多块内存统称为第一内存,比如第一延时域内设置有第一内存a和第一内存b,在一些场景下,用于翻译上述虚拟地址的单级页表存储在第一内存a中,虚拟地址对应的物理地址是第一内存b的一个物理地址。本公开对于单级页表与物理地址是否对应于第一延时域内的同一内存,不做限定。
在实施本公开时,针对多个延时域中的每个单级页表,需要预先根据每个单级页表指向的物理页所在的延时域,将该单级页表存储至该延时域的内存中。例如,单级页表1指向的物理页属于第一延时域中的内存,因此需要预先将单级页表1存储至第一延时域中的内存;单级页表2指向的物理页属于第二延时域中的内存,因此需要预先将单级页表2存储至第二延时域中的内存。
在一些实施例中,在用于翻译虚拟地址的页表为多级页表的情况下,多级页表中的最后M级页表存储于第一内存中,M为大于或等于1的整数,例如M等于1、2或者3。此外,第二延时域发送的地址翻译请求还携带有页表基地址,页表基地址是最后M级页表中的最高级页表的基地址。本实施例中,第一翻译模块可以直接从本地延时域(即第一延时域)的第一内存中读取出最后M级页表,页表的读取延时较短,从而有利于进一步减小内存访问延时。
为便于理解,示例性地,如图3所示,假设用于翻译虚拟地址的页表为4级页表,4级页表从最高级页表到最低级页表分别为:第4级页表、第3级页表、第2级页表、第1级页表。4级页表中的最后M级页表存储于第一内存中,假设M等于2,因此第2级页表和第1级页表存储于第一内存中。第二延时域发送的地址翻译请求还携带有第2级页表的基地址(第2级页表是最后两级页表中的最高级页表),该基地址是第3级页表的相应页表条目PTE中记录的基地址,第一翻译模块可以根据该基地址从本地延时域的第一内存中查询到相应的页表。
需要说明的是,第一延时域内可以仅设置一块内存,即所述第一内存。或者,第一延时域内可以设置多块内存,多块内存统称为第一内存,比如第一延时域内设置有第一内存a和第一内存b,在一些场景下,用于翻译上述虚拟地址的最后M级页表中的部分页表存储在第一内存a中,另一部分页表存储在第一内存b中,虚拟地址对应的物理地址是第一内存b的一个物理地址。本公开对于最后M级页表与物理地址是否对应于第一延时域内的同一内存,不做限定。本公开对于最后M级页表中的每一级页表是否对应于第一延时域内的同一内存,也不做限定。
在实施本公开时,针对多个延时域中的较低级页表(即最后M级页表中的每一级页表),需要预先根据每一级页表指向的物理页所在的延时域,将该级页表存储至该延时域的内存中。
第一翻译模块在确定虚拟地址对应的物理地址时,具体被配置为:根据地址翻译请求携带的页表基地址、虚拟地址中的偏移信息、以及最后M级页表中每一级页表的相应页表条目,确定虚拟地址对应的物理地址。
为便于理解,示例性地,如图3所示,地址翻译请求携带的虚拟地址中包括虚拟页号VPN4、虚拟页号VPN3、虚拟页号VPN2、虚拟页号VPN1及虚拟页偏移量VPO。第二延时域中的第二翻译模块首先根据页表基址寄存器PTBR中的页表基地址,查询到相应的第4级页表;然后第二翻译模块根据虚拟地址中的虚拟页号VPN4,从查询到的第4级页表中索引出相应的页表条目PTE,并从该页表条目PTE中读取出第3级页表的基地址;接着第二翻译模块根据第3级页表的基地址,查询到相应的第3级页表;再接着第二翻译模块根据虚拟地址中的虚拟页号VPN3,从查询到的第3级页表中索引出相应的页表条目PTE,并从该页表条目PTE中读取出第2级页表的基地址;随后第二翻译模块向第一延时域的第一翻译模块发送地址翻译请求,该地址翻译请求携带了虚拟地址和第2级页表的基地址。
第一翻译模块在接收到地址翻译请求后,根据其携带的第2级页表的基地址,查询到相应的第2级页表;然后第一翻译模块根据虚拟地址中的虚拟页号VPN2,从查询到的第2级页表中索引出相应的页表条目PTE,并从该页表条目PTE中读取出第1级页表的基地址;接着第一翻译模块根据第1级页表的基地址,查询到相应的第1级页表;再接着第一翻译模块根据虚拟地址中的虚拟页号VPN1,从查询到的第1级页表中索引出相应的页表条目PTE,并从该页表条目PTE中读取出物理页号PPN;最后第一翻译模块将读取出的物理页号PPN和虚拟地址中的虚拟页偏移量VPO串连起来,从而得到物理地址。其中,页表的基地址也可以理解成页表的起始地址,虚拟页号VPN也可以理解为页表的偏移地址。
在一些优选的实施例中,可以将M取值为1。换言之,在用于翻译虚拟地址的页表为多级页表的情况下,多级页表中的最后一级页表存储于第一内存中,地址翻译请求还携带有页表基地址,该页表基地址是最后一级页表的基地址。第一翻译模块在确定虚拟地址对应的物理地址时,具体被配置为:根据最后一级页表的基地址、虚拟地址中的偏移信息、以及最后一级页表的相应页表条目,确定虚拟地址对应的物理地址。
在一些实施例中,第一翻译模块还被配置为:将访问第一内存的访问结果返回给第二延时域。具体而言,第一翻译模块根据确定出的物理地址和内存访问请求中的相关信息(比如数据长度信息),从第一内存中读取出第二延时域所需的数据,然后将读取出的数据返回给第二延时域。例如第一翻译模块可以将读取出的数据返回给第二延时域的第二翻译模块,或者将读取出的数据返回给第二延时域的主设备。
参考图4,图4是本公开另一实施例提供的内存访问过程的示意图。需要说明的是,图4所示方案与图2所示方案基于同一发明构思,图4对应方案中的相关名词解释,可参照图2对应方案的实施例。
如图4所示,主设备和第二翻译模块位于第二延时域内。此外,主设备和第二翻译模块还属于内存访问系统,图4中未示出内存访问系统。
其中,第二翻译模块被配置为:向第一翻译模块发送携带有虚拟地址的地址翻译请求,使第一翻译模块确定虚拟地址对应的物理地址;其中,第一翻译模块位于以下多种位置中的任一种位置处:第一延时域内、第一延时域和第二延时域的边界处、第二延时域内的更靠近第一延时域的位置;虚拟地址对应的物理地址是第一内存的一个物理地址,第一内存位于第一延时域内。
主设备或第二翻译模块被配置为:向第一翻译模块发送内存访问请求,使第一翻译模块根据确定出的物理地址访问第一内存。
需要说明的是,第一翻译模块可以位于第一延时域内,也可以位于第一延时域和第二延时域的边界处,还可以位于第二延时域内的更靠近第一延时域的位置。图4仅示出了“第一翻译模块位于第一延时域内”这种情况。此外,为便于说明,以下也以第一翻译模块位于第一延时域内为例,对本公开进行说明。
具体而言,在一些实施例中,地址翻译请求和内存访问请求均是由第二翻译模块发送给第一翻译模块的。在这些实施例中,主设备可以向第二翻译模块下发内存访问请求和虚拟地址,第二翻译模块经过相应处理后,向第一翻译模块发送内存访问请求和地址翻译请求。
或者,在另一些实施例中,地址翻译请求是由第二翻译模块发送给第一翻译模块的,而内存访问请求是由主设备发送给第一翻译模块的。在这些实施例中,主设备向第一翻译模块发送内存访问请求,并向第二翻译模块下发虚拟地址,第二翻译模块经过相应处理后,向第一翻译模块发送地址翻译请求。
第二翻译模块用于将虚拟地址翻译成物理地址,第二翻译模块可以选用MMU(Memory Management Unit,内存管理单元);或者,第二翻译模块也可以选用通用处理器,通用处理器通过执行相应程序,从而实现相应的地址翻译功能;再或者,第二翻译模块也可以是:通过对硬件描述语言HDL编写的代码依次经过综合和布局布线后产生的电路,具体地,可以按照本公开中第二翻译模块所需实现的功能,基于硬件描述语言(例如Verilog语言)编写出能实现相应功能的代码,然后对编写出的代码依次经过综合和布局布线,从而得到本公开中的第二翻译模块。
在一些实施例中,前述第一翻译模块专门用于接收和处理其他延时域发送的地址翻译请求和内存访问请求。而每个第二翻译模块分别对应于一个主设备,每个第二翻译模块仅服务于其对应的主设备,用于对相应主设备下发的虚拟地址进行翻译,和/或用于向其他延时域的翻译模块发送地址翻译请求。
基于本公开提供的内存访问系统,第一方面,第二延时域的第二翻译模块和/或主设备将内存访问请求和地址翻译请求发送给第一翻译模块进行处理,第一翻译模块在确定出虚拟地址对应的物理地址后,可以立即处理内存访问请求,从而根据确定出的物理地址访问第一内存;第二方面,待访问的第一内存位于第一延时域,而第一翻译模块位于第一延时域内或靠近第一延时域,因此第一翻译模块不需要跨延时域访问第一内存,或者第一翻译模块访问第一内存的距离较短。总言之,基于上述第一方面和第二方面,本公开可以有效缩短内存访问延时。
在一些实施例中,地址翻译请求和内存访问请求是同时发送给第一翻译模块的。或者,内存访问请求是在第一翻译模块确定出物理地址之前发送给第一翻译模块的,换言之,在第一翻译模块确定出地址翻译请求中的虚拟地址所对应的物理地址之前,第二翻译模块或主设备已经将内存访问请求发送给了第一翻译模块。
在一些实施例中,地址翻译请求和内存访问请求是在以下情况下发送给第一翻译模块的:用于翻译虚拟地址的页表为单级页表。换言之,如果用于翻译虚拟地址的页表是单级页表,则第二翻译模块需要向第一翻译模块发送地址翻译请求,并且第二翻译模块或主设备需要向第一翻译模块发送内存访问请求。
在实施本公开时,示例性地,第二翻译模块可以提前根据配置信息,确定出用于翻译虚拟地址的页表是否是单级页表。需要说明的是,在实施本公开时,除了可以采用上述方式以外,还可以采用其他方式确定出用于翻译虚拟地址的页表为单级页表,本公开对于具体的确定方式不做限定。
为了进一步降低内存访问延时,在一些实施例中,上述单级页表是存储于第一内存中的。如此,第一翻译模块可以直接从本地延时域(即第一延时域)的第一内存中读取出单级页表,单级页表的读取延时较短,从而有利于进一步降低内存访问延时。
本公开具体实现时,以下是一些可能的具体实现方式:第二翻译模块根据页表基址寄存器PTBR中的页表基地址、以及每个延时域对应的页表基地址范围,确定出单级页表所在的延时域后(例如确定出的延时域为第一延时域),第二翻译模块从其配置信息中查找出第一延时域对应的翻译模块地址/id(即第一翻译模块的地址/id),然后第二翻译模块向第一翻译模块发送地址翻译请求和内存访问请求;或者第二翻译模块向第一翻译模块发送地址翻译请求,然后通知主设备向第一翻译模块发送内存访问请求。
在一些实施例中,地址翻译请求和内存访问请求是在以下情况下发送给第一翻译模块的:用于翻译虚拟地址的下一级页表是最后M级页表中的最高级页表,M为大于或等于1的整数,例如M等于1、2或者3。换言之,在用于翻译虚拟地址的页表为多级页表的情况下,如果用于翻译虚拟地址的下一级页表是最后M级页表中的最高级页表,则第二翻译模块需要向第一翻译模块发送地址翻译请求,并且第二翻译模块或主设备需要向第一翻译模块发送内存访问请求。
其中,最后M级页表存储于第一内存中。此外,地址翻译请求还可以携带有最后M级页表中的最高级页表的基地址。
本实施例中,第一翻译模块可以直接从本地延时域(即第一延时域)的第一内存中读取出最后M级页表,页表的读取延时较短,从而有利于进一步减小内存访问延时。
在实施本公开时,示例性地,如图3所示,假设M等于2,因此第2级页表和第1级页表存储于第一内存中。第二延时域发送的地址翻译请求还携带有第2级页表的基地址,该基地址是第3级页表的相应页表条目PTE中记录的基地址,第一翻译模块可以根据该基地址从本地延时域的第一内存中查询到相应的页表。
对于第二翻译模块而言,为了判断下一级页表是否是最后M级页表中的最高级页表,第二翻译模块可以执行以下判断方案:第二翻译模块提前根据配置信息,确定出页表级数(比如页表为4级页表);第二翻译模块可以根据页表级数,确定出虚拟地址的各个比特位与相应级别的页表的对应关系,例如虚拟地址的第0至11位对应如图3所示的虚拟页偏移量VPO,虚拟地址的第12至20位对应如图3所示的最后一级页表的虚拟页号VPN1...第二翻译模块从虚拟地址的最高比特位开始进行地址翻译,第二翻译模块可以根据当前处理到的虚拟地址的具体比特位,判断出下一级页表是否是最后M级页表中的最高级页表。
需要说明的是,在实施本公开时,除了可以采用上述判断方式以外,还可以采用其他方式判断下一级页表是否是最后M级页表中的最高级页表,本公开对于具体的判断方式不做限定。
本公开具体实现时,以下是一些可能的具体实现方式:第二翻译模块判断出下一级页表是最后M级页表中的最高级页表后,根据下一级页表的基地址、以及每个延时域对应的页表基地址范围,确定出下一级页表所在的延时域后(例如确定出的延时域为第一延时域),第二翻译模块从其配置信息中查找出第一延时域对应的翻译模块地址/id(即第一翻译模块的地址/id),然后第二翻译模块向第一翻译模块发送地址翻译请求和内存访问请求;或者第二翻译模块向第一翻译模块发送地址翻译请求,然后通知主设备向第一翻译模块发送内存访问请求。
在一些优选的实施例中,可以将M取值为1。换言之,地址翻译请求和内存访问请求是在以下情况下发送给第一翻译模块的:用于翻译虚拟地址的下一级页表是最后一级页表;地址翻译请求还携带有最后一级页表的基地址;最后一级页表存储于第一内存中。
在一些实施例中,第二翻译模块还被配置为:在用于翻译虚拟地址的下一级页表不是最后M级页表中的最高级页表的情况下,从存储有下一级页表的目标位置获取下一级页表或下一级页表中的目标页表条目。
具体而言,对于除了最后M级页表以外的其他更高级的页表(比如图3示例中的第4级页表和第3级页表),无论这些页表是存储在第二延时域内,还是存储在第二延时域以外的其他位置,都会由第二翻译模块去获取这些页表或相应页表条目,并根据这些页表或页表条目对虚拟地址进行第一阶段的翻译,从而得到第一阶段的翻译结果,即最后M级页表中的最高级页表的基地址(比如图3示例中的第2级页表的基地址)。如前所述,第二翻译模块会向第一翻译模块发送地址翻译请求,由第一翻译模块对虚拟地址进行第二阶段的翻译,从而得到第二阶段的翻译结果,即最终确定出的物理地址。
在一些具体实施方式中,在存储有下一级页表的目标位置是除第二延时域以外的其他位置的情况下,第二翻译模块在获取下一级页表或目标页表条目时,具体被配置为:
向总线或片上网络发送信息获取请求,信息获取请求携带有下一级页表的基地址,或者信息获取请求携带有下一级页表的基地址和目标页表条目对应的偏移信息;接收其他延时域或页表缓存器通过总线或片上网络返回的下一级页表或目标页表条目;其中,页表缓存器用于缓存第二延时域所需的且存在于其他延时域的页表或页表条目。
参考图5,图5是本公开另一实施例提供的内存访问过程的示意图。在图5所示的方案中,内存访问系统还包括页表缓存器,页表缓存器被配置为:在接收到来自第二翻译模块的信息获取请求后,根据信息获取请求携带的基地址或信息获取请求携带的基地址和偏移信息,查询本地是否缓存有相应的页表或页表条目;如果本地缓存有相应的页表或页表条目,则将相应的页表或页表条目返回给第二翻译模块。
在一些具体实施方式中,第二翻译模块根据下一级页表的基地址,判断下一级页表是否存储在第二延时域内;若是,则直接从第二延时域内获取相应页表或页表条目;若否,则第二翻译模块生成信息获取请求,并将该信息获取请求发送至总线上,该信息获取请求中携带了下一级页表的基地址,或者还携带了偏移信息。
当总线连接的每个页表缓存器接收到信息获取请求后,根据请求中携带的基地址,查询本地是否缓存有相应的页表,或者根据请求中携带的基地址和偏移信息,查询本地是否缓存有相应的页表条目;如果本地缓存有相应的页表或页表条目,则该页表缓存器将相应页表或页表条目发送给第二翻译模块。
此外,如果本地没有缓存相应的页表或页表条目,则该页表缓存器进一步根据请求携带的基地址,判断该页表缓存器对应的延时域中是否存储有相应页表或页表条目。若是,则该页表缓存器从对应的延时域中读取出相应的页表或页表条目,并将读取出的页表或页表条目发送给第二翻译模块,该页表缓存器还可以根据预设的缓存策略,决定是否缓存该页表或页表条目。若否,则该页表缓存器停止对该信息获取请求的处理。
为便于理解,沿用图3所示的示例,第二翻译模块首先根据页表基址寄存器PTBR中的页表基地址(即第4级页表的基地址),判断第二延时域内是否存储有第4级页表;假设第二延时域内没有存储第4级页表,则第二翻译模块生成信息获取请求a,并将信息获取请求a发送至总线上,信息获取请求a中携带了第4级页表的基地址和虚拟地址中的虚拟页号VPN4。
每个页表缓存器接收到信息获取请求a后,根据请求a中的基地址和虚拟页号VPN4,查询本地是否缓存有相应的页表条目;如果缓存有相应的页表条目,则将该页表条目发送给第二翻译模块;如果没有缓存相应的页表条目,则根据请求a中的基地址和虚拟页号VPN4,判断自身对应的延时域中是否存储有相应的页表条目。
如果对应延时域中存储有相应的页表条目,则从对应的延时域中读取出相应的页表条目,并将该页表条目发送给第二翻译模块,并且该页表缓存器还根据预设的缓存策略,决定是否缓存该页表条目;如果对应延时域中没有存储相应的页表条目,则停止对该信息获取请求的处理。
第二翻译模块接收到某一个页表缓存器发送的页表条目后,从该页表条目中读取出第3级页表的基地址,第二翻译模块根据该基地址,判断第二延时域内是否存储有第3级页表;假设第二延时域内存储有第3级页表,则第二翻译模块从第二延时域内读取出第3级页表,再接着第二翻译模块根据虚拟地址中的虚拟页号VPN3,从第3级页表中索引出相应的页表条目PTE,并从该页表条目PTE中读取出第2级页表的页表基地址。
基于上述实施例,第二翻译模块不需要缓存其他延时域中的页表或页表条目,而是由页表缓存器缓存,使得第二翻译模块中的缓存空间得到有效利用,减少了缓存空间的浪费,且第二翻译模块中的缓存空间可专注于存储本地延时域内的页表,在非一致性内存模块访问(Non-Uniform Memory Access,NUMA)场景下,可以提高页表缓存的命中率。
在一些实施例中,如图5所示,第二延时域内的第二翻译模块为多个,每个第二翻译模块分别服务于一个主设备,页表缓存器服务于多个第二翻译模块。
本实施例中,第二翻译模块服务于主设备,具体是指:第二翻译模块对主设备下发的虚拟地址进行翻译,或者针对该虚拟地址向其他延时域的翻译模块发送地址翻译请求。页表缓存器服务于第二翻译模块,具体是指:页表缓存器接收第二翻译模块发送的信息获取请求,并处理该信息获取请求。如此,页表缓存器服务于多个第二翻译模块,具体是指:一个页表缓存器可以接收多个第二翻译模块发送的信息获取请求,并对每个第二翻译模块的信息获取请求进行处理。本公开中,页表缓存器服务于多个第二翻译模块,可以提升页表缓存器的利用率。
在一些实施例中,主设备或第二翻译模块还被配置为:接收第一翻译模块返回的访问结果。具体而言,第一翻译模块根据确定出的物理地址和内存访问请求中的相关信息(比如数据长度信息),从第一内存中读取出第二延时域所需的数据,然后将读取出的数据返回给第二延时域的第二翻译模块或主设备。
本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的内存访问系统。在一些实施例中,如图6所示,电子组件包括图2所示方案中的内存访问系统或其具体实施例,并且电子组件还包括图4所示方案中的内存访问系统或其具体实施例。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (18)

1.一种内存访问系统,所述系统包括第一翻译模块,所述第一翻译模块位于以下多种位置中的任一种位置处:第一延时域内、所述第一延时域和第二延时域的边界处、所述第二延时域内的更靠近所述第一延时域的位置;所述第一延时域内还包括第一内存;所述第一翻译模块被配置为:
接收来自第二延时域的内存访问请求和地址翻译请求,所述地址翻译请求携带有虚拟地址,所述虚拟地址对应的物理地址是所述第一内存的一个物理地址;
确定所述虚拟地址对应的物理地址;
根据确定出的物理地址访问所述第一内存。
2.根据权利要求1所述的系统,在用于翻译所述虚拟地址的页表为单级页表的情况下,所述第一翻译模块在确定所述虚拟地址对应的物理地址时,具体被配置为:
根据第一寄存器中的页表基地址和所述虚拟地址中的偏移信息,确定所述虚拟地址对应的物理地址。
3.根据权利要求2所述系统,所述单级页表存储于所述第一内存中。
4.根据权利要求1所述的系统,在用于翻译所述虚拟地址的页表为多级页表的情况下,所述多级页表中的最后M级页表存储于所述第一内存中,所述M为大于或等于1的整数,所述地址翻译请求还携带有页表基地址,所述页表基地址是所述最后M级页表中的最高级页表的基地址;所述第一翻译模块在确定所述虚拟地址对应的物理地址时,具体被配置为:
根据所述页表基地址、所述虚拟地址中的偏移信息、以及所述最后M级页表中每一级页表的相应页表条目,确定所述虚拟地址对应的物理地址。
5.根据权利要求1所述的系统,所述第一翻译模块还被配置为:
将访问所述第一内存的访问结果返回给所述第二延时域。
6.一种内存访问系统,所述系统包括主设备和第二翻译模块,所述主设备和所述第二翻译模块位于第二延时域内;
所述第二翻译模块被配置为:向第一翻译模块发送携带有虚拟地址的地址翻译请求,使所述第一翻译模块确定所述虚拟地址对应的物理地址;其中,所述第一翻译模块位于以下多种位置中的任一种位置处:第一延时域内、所述第一延时域和所述第二延时域的边界处、所述第二延时域内的更靠近所述第一延时域的位置;所述虚拟地址对应的物理地址是第一内存的一个物理地址,所述第一内存位于所述第一延时域内;
所述主设备或所述第二翻译模块被配置为:向所述第一翻译模块发送内存访问请求,使所述第一翻译模块根据确定出的物理地址访问所述第一内存。
7.根据权利要求6所述的系统,所述地址翻译请求和所述内存访问请求是同时发送给所述第一翻译模块的。
8.根据权利要求6所述的系统,所述地址翻译请求和所述内存访问请求是在以下情况下发送给所述第一翻译模块的:
用于翻译所述虚拟地址的页表为单级页表。
9.根据权利要求6所述的系统,所述地址翻译请求和所述内存访问请求是在以下情况下发送给所述第一翻译模块的:
用于翻译所述虚拟地址的下一级页表是最后M级页表中的最高级页表,所述M为大于或等于1的整数。
10.根据权利要求9所述的系统,所述地址翻译请求还携带有最后M级页表中的最高级页表的基地址。
11.根据权利要求9所述的系统,最后M级页表存储于所述第一内存中。
12.根据权利要求9所述的系统,所述第二翻译模块还被配置为:
在用于翻译所述虚拟地址的下一级页表不是最后M级页表中的最高级页表的情况下,从存储有下一级页表的目标位置获取下一级页表或下一级页表中的目标页表条目。
13.根据权利要求12所述的系统,在存储有下一级页表的目标位置是除第二延时域以外的其他位置的情况下,所述第二翻译模块在获取下一级页表或目标页表条目时,具体被配置为:
向总线或片上网络发送信息获取请求,所述信息获取请求携带有下一级页表的基地址,或者所述信息获取请求携带有下一级页表的基地址和目标页表条目对应的偏移信息;
接收其他延时域或页表缓存器通过总线或片上网络返回的下一级页表或目标页表条目;其中,所述页表缓存器用于缓存所述第二延时域所需的且存在于所述其他延时域的页表或页表条目。
14.根据权利要求13所述的系统,所述系统还包括所述页表缓存器,所述页表缓存器被配置为:
在接收到来自所述第二翻译模块的信息获取请求后,根据所述信息获取请求携带的基地址或所述信息获取请求携带的基地址和偏移信息,查询本地是否缓存有相应的页表或页表条目;
如果本地缓存有相应的页表或页表条目,则将相应的页表或页表条目返回给所述第二翻译模块。
15.根据权利要求14所述的系统,所述第二延时域内的第二翻译模块为多个,每个第二翻译模块分别服务于一个主设备,所述页表缓存器服务于多个第二翻译模块。
16.根据权利要求6所述的系统,所述主设备或所述第二翻译模块被配置为:接收所述第一翻译模块返回的访问结果。
17.一种电子组件,包括权利要求1-5任一项所述的系统;或者,包括权利要求6至16任一项所述的系统;或者,包括权利要求1-5任一项所述的系统和权利要求6至16任一项所述的系统。
18.一种电子设备,包括权利要求17所述的电子组件。
CN202410257130.7A 2024-03-07 2024-03-07 内存访问系统、电子组件及电子设备 Active CN117851291B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410257130.7A CN117851291B (zh) 2024-03-07 2024-03-07 内存访问系统、电子组件及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410257130.7A CN117851291B (zh) 2024-03-07 2024-03-07 内存访问系统、电子组件及电子设备

Publications (2)

Publication Number Publication Date
CN117851291A true CN117851291A (zh) 2024-04-09
CN117851291B CN117851291B (zh) 2024-06-21

Family

ID=90532927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410257130.7A Active CN117851291B (zh) 2024-03-07 2024-03-07 内存访问系统、电子组件及电子设备

Country Status (1)

Country Link
CN (1) CN117851291B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150097981A (ko) * 2014-02-19 2015-08-27 한국과학기술원 가상화 시스템에서 메모리 조정방법
CN106155577A (zh) * 2015-04-23 2016-11-23 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN108139994A (zh) * 2016-05-28 2018-06-08 华为技术有限公司 内存访问方法及内存控制器
CN110428856A (zh) * 2019-07-29 2019-11-08 珠海市一微半导体有限公司 一种用于读写ddr内存的延时参数优化方法和系统
CN113741987A (zh) * 2021-08-24 2021-12-03 重庆金美通信有限责任公司 一种Linux系统下FPGA数据低延时接收方法
WO2023040464A1 (zh) * 2021-09-14 2023-03-23 华为技术有限公司 一种总线通信方法及相关设备
CN116185894A (zh) * 2023-02-24 2023-05-30 瑞芯微电子股份有限公司 内存管理方法和装置、芯片、电子设备及存储介质
CN116501526A (zh) * 2023-04-23 2023-07-28 南京地平线集成电路有限公司 内存访问定位的方法、装置、可读存储介质及电子设备
CN116820765A (zh) * 2023-06-27 2023-09-29 杭州阿里巴巴飞天信息技术有限公司 内存延时的确定方法、装置、电子设备和介质
CN117349197A (zh) * 2022-06-28 2024-01-05 平头哥(上海)半导体技术有限公司 内存管理单元和内存访问方法
CN117407326A (zh) * 2022-07-25 2024-01-16 华为技术有限公司 内存访问方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150097981A (ko) * 2014-02-19 2015-08-27 한국과학기술원 가상화 시스템에서 메모리 조정방법
CN106155577A (zh) * 2015-04-23 2016-11-23 华为技术有限公司 扩展内存的访问方法、设备以及系统
CN108139994A (zh) * 2016-05-28 2018-06-08 华为技术有限公司 内存访问方法及内存控制器
CN110428856A (zh) * 2019-07-29 2019-11-08 珠海市一微半导体有限公司 一种用于读写ddr内存的延时参数优化方法和系统
CN113741987A (zh) * 2021-08-24 2021-12-03 重庆金美通信有限责任公司 一种Linux系统下FPGA数据低延时接收方法
WO2023040464A1 (zh) * 2021-09-14 2023-03-23 华为技术有限公司 一种总线通信方法及相关设备
CN117349197A (zh) * 2022-06-28 2024-01-05 平头哥(上海)半导体技术有限公司 内存管理单元和内存访问方法
CN117407326A (zh) * 2022-07-25 2024-01-16 华为技术有限公司 内存访问方法及装置
CN116185894A (zh) * 2023-02-24 2023-05-30 瑞芯微电子股份有限公司 内存管理方法和装置、芯片、电子设备及存储介质
CN116501526A (zh) * 2023-04-23 2023-07-28 南京地平线集成电路有限公司 内存访问定位的方法、装置、可读存储介质及电子设备
CN116820765A (zh) * 2023-06-27 2023-09-29 杭州阿里巴巴飞天信息技术有限公司 内存延时的确定方法、装置、电子设备和介质

Also Published As

Publication number Publication date
CN117851291B (zh) 2024-06-21

Similar Documents

Publication Publication Date Title
US7636810B2 (en) Method, system, and apparatus for memory compression with flexible in-memory cache
US5956756A (en) Virtual address to physical address translation of pages with unknown and variable sizes
CN104679669B (zh) 高速缓存cache存储器系统及访问缓存行cache line的方法
US11474951B2 (en) Memory management unit, address translation method, and processor
EP0851354A2 (en) Reorganization of collisions in a hash bucket of a hash table to improve system performance
US20140040541A1 (en) Method of managing dynamic memory reallocation and device performing the method
CN113868155A (zh) 一种内存空间扩展方法、装置及电子设备和存储介质
CN116594925B (zh) 一种地址转换系统、处理器、地址转换方法及电子设备
US6772299B2 (en) Method and apparatus for caching with variable size locking regions
CN108694133A (zh) 用于即时高速缓存关联性的装置、方法和系统
CN115934587B (zh) 内存管理单元和内存管理方法
CN116028388B (zh) 高速缓存方法、装置、电子设备、存储介质和程序产品
CN116383101A (zh) 内存访问方法、内存管理单元、芯片、设备和存储介质
CN114546898A (zh) 一种tlb管理方法、装置、设备及存储介质
CN114817081A (zh) 内存访问方法、装置和输入输出内存管理单元
CN115080459A (zh) 缓存管理方法及装置、计算机可读存储介质
CN115033185A (zh) 访存处理方法和装置、存储装置、芯片、板卡、电子设备
CN108897701B (zh) cache存储装置
CN100414518C (zh) 改进的虚拟地址变换方法及其装置
CN116303138B (zh) 一种缓存架构及缓存方法、电子设备
CN117851291B (zh) 内存访问系统、电子组件及电子设备
CN115794667B (zh) 内存管理方法、系统、组件及设备
US8555013B1 (en) Method and system for memory protection by processor carrier based access control
CN117851292B (zh) 集成电路系统、组件、设备及内存管理方法
CN114925002A (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: Memory access 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