CN110546623B - 以计算系统中迁移页面为目标的转换请求的静默重试请求 - Google Patents

以计算系统中迁移页面为目标的转换请求的静默重试请求 Download PDF

Info

Publication number
CN110546623B
CN110546623B CN201880026849.2A CN201880026849A CN110546623B CN 110546623 B CN110546623 B CN 110546623B CN 201880026849 A CN201880026849 A CN 201880026849A CN 110546623 B CN110546623 B CN 110546623B
Authority
CN
China
Prior art keywords
page
request
table entry
migration
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.)
Active
Application number
CN201880026849.2A
Other languages
English (en)
Other versions
CN110546623A (zh
Inventor
韦德·K·史密斯
安东尼·阿萨罗
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.)
ATI Technologies ULC
Advanced Micro Devices Inc
Original Assignee
ATI Technologies ULC
Advanced Micro Devices Inc
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 ATI Technologies ULC, Advanced Micro Devices Inc filed Critical ATI Technologies ULC
Publication of CN110546623A publication Critical patent/CN110546623A/zh
Application granted granted Critical
Publication of CN110546623B publication Critical patent/CN110546623B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文中公开用于迁移存储器页面的系统、设备和方法。响应于检测到第一页面在存储器位置之间的迁移开始,对与所述第一页面对应的第一页面表项(PTE)定位并且将迁移挂起指示存储于所述第一PTE中。在一个实施方案中,通过禁用读取权限和写入权限来将所述迁移挂起指示编码在所述第一PTE中。如果以所述第一PTE为目标的转换请求被MMU接收到并且所述转换请求对应于读取请求,那么允许对所述第一页面进行读取操作。另外,如果所述转换请求对应于写入请求,那么阻止对所述第一页面进行写入操作,并且生成静默重试请求并将所述静默重试请求传送到请求客户端。

Description

以计算系统中迁移页面为目标的转换请求的静默重试请求
背景技术
相关技术的描述
许多计算装置使用虚拟存储器技术来处理软件程序对数据的存取。虚拟存储器页面转换机制使得系统软件能够为每个进程或应用程序创建单独的地址空间。这些地址空间被称作虚拟地址空间。系统软件使用分页机制来使用一组分层地址转换表选择性地将物理存储器的单独页面映射到所述虚拟地址空间中,该组分层地址转换表被统称为页面表。虚拟存储器可以用任何处理器来实施,包括但不限于中央处理单元(CPU)、图形处理单元(GPU)和加速处理单元(APU)。
当程序存取数据时,将包括所述数据的具有给定大小(例如,4千字节(KB))的存储器的块(被称作存储器的“页面”)从备份存储体(例如,磁盘驱动器或半导体存储器)复制到计算装置中的主存储器中的可用物理位置。一些系统具有存储于存储器中的多个不同的页面大小。胜于使用程序来管理页面的物理位置,计算装置中的存储器管理单元管理页面的物理位置。替代使用基于页面的物理位置的地址(或“物理地址”)来存取存储器,所述程序使用虚拟地址空间中的虚拟地址来存取存储器。从程序的观点来看,虚拟地址指示数据存储于存储器中的页面内的实际物理地址(即,物理位置),并且因此通过程序使用所述虚拟地址来进行存储器存取。然而,虚拟地址并未直接映射到存储数据的物理位置的物理地址。因此,作为管理页面的物理位置的部分,存储器管理单元将所述程序使用的虚拟地址转换成数据实际上所处的物理地址。随后使用经转换的物理地址来执行所述程序的存储器存取。为了执行上述转换,存储器管理单元使用存储器中的页面表,所述页面表包括所述存储器中存储的页面的从虚拟地址到物理地址的一组转换。
不时地,系统可以在存储器位置之间迁移页面,致使虚拟到物理地址转换改变。在一些情况中,系统确定要将页面从第一存储器移动到第二存储器。可选地,所述系统可以作为垃圾回收操作的部分在单个存储器内移动页面。然而,在进程正在运行时(例如,图形程序正在执行渲染任务),对页面进行迁移可能会中断。
附图说明
结合附图,通过参考以下描述将能更好地理解本文中描述的方法和机制的优点,在附图中:
图1是计算系统的一个实施方案的框图。
图2示出页面表项(PTE)格式的实例。
图3是页面迁移正在进行中的系统的一个实施方案的框图。
图4是页面迁移完成之后的系统的一个实施方案的框图。
图5是示出用于在存储器位置之间迁移第一页面的方法的一个实施方案的一般化流程图。
图6是示出用于处理转换请求的方法的一个实施方案的一般化流程图,所述转换请求命中具有迁移挂起指示的PTE。
图7是示出用于处理转换请求的方法的一个实施方案的一般化流程图。
具体实施方式
在以下描述中,陈述众多具体细节以提供对本文中呈现的方法和机制的全面理解。然而,本领域的普通技术人员应认识到,可以在没有这些具体细节的情况下实施各种实施方案。在一些情况中,未详细地示出熟知的结构、部件、信号、计算机程序指令和技术以免掩盖本文中描述的方法。将了解,为了简单地并清楚地进行说明,图式中所示的元件不一定按比例绘制。举例来说,所述元件中的一些元件的尺寸可以相对于其它元件放大。
本文中公开用于在存储器位置之间迁移页面的系统、设备和方法。在一个实施方案中,一种系统包括至少一个处理器、存储器管理单元(MMU)和存储器子系统。在一个实施方案中,检测第一页面将从所述存储器子系统中的第一存储器位置迁移到第二存储器位置的指示。在迁移所述第一页面之前,对与所述第一页面对应的第一页面表项(PTE)定位。随后,将迁移挂起指示存储于所述第一PTE中。在一个实施方案中,通过禁用所述第一页面的读取权限和写入权限来将所述迁移挂起指示编码在所述第一PTE中。在将所述迁移挂起指示存储于所述第一PTE中之后,可以开始所述第一页面的迁移。
在一个实施方案中,在将所述迁移挂起指示编码在所述第一PTE中时,由所述MMU接收以所述第一PTE为目标的转换请求。如果所述转换请求对应于读取请求,那么允许对所述第一页面执行读取操作。否则,如果所述转译请求对应于以所述第一页面为目标的写入请求,那么防止对所述第一页面执行写入操作,并且生成静默重试请求并将所述静默重试请求传送到请求客户端。在一个实施方案中,所述静默重试被称作“静默”是因为它不包括生成中断或更新状态寄存器。因此,所述请求客户端被配置为在之后的时间点重试所述写入请求。
现在参看图1,示出计算系统100的一个实施方案的框图。在一个实施方案中,计算系统100包括经由中央处理单元(CPU)芯片集140联接到系统存储器150的系统单芯片(SoC)105。SoC 105还可以被称作集成电路(IC)。在一个实施方案中,SoC 105至少包括输入/输出(I/O)接口155、结构120、图形处理单元(GPU)130和本地存储器110。SoC105还可以包括为了避免使图式难懂而未在图1中示出的其它部件。在另一个实施方案中,GPU 130可以是另一种类型的处理单元(例如,中央处理单元(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP))。
GPU 130至少包括转换后备缓冲器(TLB)复合体135和计算机单元145A-N,所述计算机单元表示用于图形处理或通用处理的任何数目和类型的计算单元。GPU 130经由结构120联接到本地存储器110。在一个实施方案中,使用高带宽存储器(HBM)来实施本地存储器110。在一个实施方案中,GPU 130被配置为执行图形管线操作,诸如绘图命令、像素操作、几何计算以及用于向显示器呈现图像的其它操作。在另一个实施方案中,GPU 130被配置为执行与图形无关的操作。在另一个实施方案中,GPU 130被配置为执行图形操作和非图形相关操作。
在一个实施方案中,GPU 130使用TLB来高速缓存被分配给在这些装置上执行的不同进程的虚拟地址的、虚拟地址到物理地址的映射。这些TLB被示出为计算单元145A-N中相应的L1 TLB 170A-N以及TLB复合体135中的L2 TLB 160。TLB复合体135还包括表格查看器165。一般来说,取决于实现方式,存储器管理单元可以包括一个或多个TLB、表格查看逻辑、故障处理程序和电路。在一些实施方案中,可以在GPU 130内为指令或数据实施不同的TLB。举例来说,由执行查找需要更多循环的较大L2 TLB给相对较小且较快的L1TLB做后备。与对页面表125A-B的表格查看相比,由L2 TLB执行的查找相对较快。取决于实施方案,页面表125A-B可以位于本地存储器110、系统存储器150中,或者页面表125A-B的部分可以位于本地存储器110和系统存储器150中。TLB复合体的一些实施方案包括指令TLB(ITLB)、一级数据TLB(L1 DTLB)以及二级数据TLB(L2DTLB)。TLB复合体的其它实施方案可以包括其它配置和/或层级的TLB。
可以通过将对虚拟地址转换的请求传递到L1 TLB来执行针对GPU 130中的载入指令或存储指令的地址转换。如果在L1 TLB的项中发现所述虚拟地址,那么L1 TLB返回物理地址。如果所述对虚拟地址转换的请求在L1 TLB中未命中,那么将所述请求传递到L2TLB。如果所述对虚拟地址的请求在L2 TLB中未命中,那么针对所述请求执行页面表查看。页面表查看可能会导致对页面表层级的一个或多个查找。
将页面从系统存储器150移动到本地存储器110或将页面从本地存储器110移动到系统存储器150的过程在本文中被称作“页面迁移”。另外,在系统存储器150内移动页面或在本地存储器110内移动页面在本文中也被称作“页面迁移”。本地存储器110与系统存储器150的组合在本文中可以被称作“存储器子系统”。可选地,本地存储器110或系统存储器150在本文中可以被称作“存储器子系统”。系统100被配置为生成一个指示,所述指示是在给定页面将在存储器子系统中的位置之间移动时,所述给定页面处于页面迁移状态。这样允许无缝地继续进行其它操作。在一个实施方案中,系统100被配置为修改给定页面的页面表项并且在给定页面处于页面迁移状态时关闭读取特权和写入特权。此特定组合(读取特权和写入特权被禁用)的含义已变成指示给定页面处于页面迁移状态。在其它实施方案中,对给定页面处于页面迁移状态进行编码的其它方式是可能的并且能设想到。
如本文中使用,术语“页面”被定义为虚拟存储器的固定长度的相连块。“页面”还被定义为系统100用于进行存储器管理的数据单位。页面的大小可以依照实施方案而改变,并且在单个实施方案中可以利用多个不同的页面大小。应理解,术语“存储器页面”和“页面”意欲表示任何大小的存储器区。
在一个实施方案中,响应于检测到第一页面在存储器位置之间的迁移开始,对与第一页面对应的第一页面表项(PTE)定位并且将迁移挂起指示存储于第一PTE中。在一个实施方案中,通过禁用读取权限和写入权限来将所述迁移挂起指示编码在第一PTE中。如果在迁移挂起指示编码在第一PTE中时以第一PTE为目标的转换请求被所述MMU接收到并且所述转换请求对应于读取请求,那么允许对所述第一页面进行读取操作。否则,如果所述转换请求对应于写入请求,那么防止对所述第一页面进行写入操作,并且生成静默重试请求并将所述静默重试请求传送到请求客户端。所述请求客户端随后可以在之后的时间点重试所述写入请求。在另一个实施方案中,如果所述转换请求对应于读取请求,那么阻止所述读取请求,并且针对所述读取操作生成重试请求。
I/O接口155联接到结构120和CPU芯片集140,并且I/O接口155表示任何数目和类型的接口(例如,外围部件互连(PCI)总线、PCI-扩展(PCI-X)、PCIE(PCI快速)总线、千兆以太网(GBE)总线、通用串行总线(USB))。SoC 105经由CPU芯片集140联接到存储器150,其中存储器150包括一个或多个存储器模块。所述存储器模块中的每一者包括安装在其上的一个或多个存储器装置。在一些实施方案中,存储器150包括安装在母板或其它载体上的一个或多个存储器装置,SoC 105也安装在所述母板或其它载体上。在一个实施方案中,存储器150用于实施随机存取存储器(RAM)以在操作期间与SoC 105一起使用。所实施的RAM可以是静态RAM(SRAM)、动态RAM(DRAM)、电阻式RAM(ReRAM)、相变RAM(PCRAM)或任何其它易失性或非易失性RAM。用于实施存储器150的DRAM的类型包括(但不限于)双倍数据速率(DDR)DRAM、DDR2 DRAM、DDR3 DRAM等等。
在各种实施方案中,计算系统100可以是计算机、膝上型计算机、移动装置、服务器或各种其它类型的计算系统或装置中的任一者。请注意,计算系统100和/或SoC 105的部件的数目可以依照实施方案而改变。各个部件/子部件的数目可以比图1中所示的数目多或少。举例来说,在另一个实施方案中,SoC 105可以包括联接到多个存储器的多个存储器控制器。还请注意,计算系统100和/或SoC 105可以包括图1中未示出的其它部件。举例来说,在另一个实施方案中,SoC 105还可以包括具有一个或多个处理器核心的中央处理单元(CPU)。另外,在其它实施方案中,计算系统100和SoC 105可以通过与图1中所示的方式不同的其它方式来建构。
现在转向图2,示出页面表项(PTE)格式的实例。图2顶部处的PTE格式205示出了根据一个实施方案的PTE格式。在一个实施方案中,物理页面地址存储于位39到12中。在一个实施方案中,由PTE格式205中的物理页面地址指向的页面的大小是4KB。因此,可寻址存储器的每个4KB逻辑页面各有一个PTE。在其它实施方案中,由PTE格式205中的物理页面地址指向的页面可以是各种其它大小中的任一者。
在PTE格式205中示出写入权限字段210和读取权限字段215。在一个实施方案中,当这两个字段被设为“0”时,这指示由该项指向的页面处于页面迁移状态。举例来说,在图2的中间示出页面迁移状态220的PTE格式以说明指向将在存储器位置之间迁移的页面的项的写入权限字段和读取权限字段的值。项220还包括地址225以及PTE格式205中示出的其它字段。请注意,在其它实施方案中,在PTE内对页面迁移状态指示进行编码的其它方式是可能的并且能设想到。
根据另一个实施方案的PTE格式的实例在图2的底部处示出为PTE格式235。在PTE格式235中,T字段240用于指示对应的页面是否具有读取权限。在PTE格式235中使用T字段240来对读取权限进行编码实现了仅写入页面的迁移。在一个实施方案中,如果T字段240被设为一,那么对应的页面具有读取权限。否则,如果T字段240被设为零,那么对应的页面不具有读取权限。在一个实施方案中,当给定页面的R和W字段等于零(即,给定页面处于页面迁移状态)时,如果T字段240被设为一,那么允许对给定页面进行读取。然而,如果给定页面的R和W字段等于零,那么如果T字段240被设为零,那么阻止对给定页面进行读取。请注意,在其它实施方案中,可以利用与图2中所示的PTE格式不同的其它合适的PTE格式。
现在参看图3,示出页面迁移正在进行中的系统300的一个实施方案的框图。示出页面表块305中的页面表项330,并且项330至少包括页面地址310、写入权限字段315和读取权限字段320。如项330中所示,写入权限字段315与读取权限字段320均被设为零。在一个实施方案中,这指示由项330指向的页面345A处于页面迁移状态。在其它实施方案中,可以利用对对应的页面处于页面迁移状态进行编码的其它方式。在页面迁移之前,页面345A存储于本地存储器340中。为了进行此讨论,假定页面345A正迁移到系统存储器350。这示出为系统存储器350中的已迁移页面345B。在其它实施方案中,页面345A可以迁移到其它位置。举例来说,页面345A可以迁移到本地存储器340内的另一个位置或迁移到除系统存储器350之外的另一个存储器。
在一个实施方案中,当转换请求命中项330时,如果存储器请求是读取请求,那么将允许对页面地址310的后续存储器请求继续进行。随后将对本地存储器340的页面345A执行读取请求。否则,如果存储器请求是写入请求,那么将生成静默重试请求并将所述静默重试请求发送到请求客户端。在此时间点将不会允许写入请求继续进行。客户端可以在之后的时间点重试写入请求,并且如果在处理针对重试的写入请求的另一个转换请求时页面迁移已完成,那么将允许写入请求继续。
现在转向图4,在页面迁移完成之后的系统400的一个实施方案的框图。系统400的页面表块405、本地存储器440和系统存储器450意欲表示在对于已迁移页面445已完成页面迁移操作之后的之后的时间点时的系统300(图3)相应的页面表块305、本地存储器340和系统存储器350,所述已迁移页面现在位于地址410处。因此,项430的写入权限字段415和读取权限字段420均被设为一以指示页面迁移已完成并且写入权限和读取权限已归还给已迁移页面445。可选地,如果已迁移页面445仅具有写入特权或读取特权,那么在页面迁移完成之后将设置这些字段中的仅一者。如果以已迁移页面445为目标的转换请求被页面表块405接收到,那么将响应于检测到在项430中启用写入权限或读取权限而以典型方式来处理转换请求和后续的存储器请求。
现在参看图5,示出用于在存储器位置之间迁移第一页面的方法500的一个实施方案。为了进行讨论,按顺序的次序示出这个实施方案中的步骤以及图6到图7的那些步骤。然而,请注意,在所描述的方法的各种实施方案中,同时地、按与所示次序不同的次序来执行所描述的元件中的一者或多者或完全省去所描述的元件中的一者或多者。还按需要执行其它额外元件。本文中描述的各种系统或设备中的任一者被配置为实施方法500。
检测第一页面将从第一存储器位置迁移到第二存储器位置的指示(框505)。在一个实施方案中,第一存储器位置是在第一存储器(例如,本地存储器)中,并且第二存储器位置是在第二存储器(例如,全局存储器)中。在另一个实施方案中,第一与第二存储器位置均位于单个存储器内。
接下来,对与第一页面对应的第一页面表项(PTE)以及第一PTE的任何高速缓存的副本定位(框510)。将第一页面处于页面迁移状态的指示存储于第一PTE和第一PTE的任何高速缓存的副本中(框515)。在一个实施方案中,通过禁用第一页面的读取权限和写入权限来将所述指示编码在PTE中。在其它实施方案中,可以利用将迁移挂起指示编码在第一PTE中的其它方式。此外,将对第一页面的无效请求发送到TLB,并且清除对存储器的任何未决写入(框520)。一旦对存储器的未决写入作出决定,那么可以开始第一页面的页面迁移复制过程(框522)。
如果第一页面的迁移已完成(条件框525,“是”分支),那么从第一PTE和第一PTE的任何高速缓存的副本清除迁移挂起指示(框530)。此外,第一PTE被修改成指向第一页面已迁移到的第二存储器位置(框535)。此外,为第一PTE的任何高速缓存的副本生成无效请求(框540)。随后,所述系统等待无效完成确认,然后重新使用第一存储器位置(框542)。在框542处,方法500结束。如果第一页面的迁移还未完成(条件框525,“否”分支),那么所述系统等待页面迁移完成(框545)并且随后返回到条件框525。
现在转向图6,示出用于处理转换请求的方法600的一个实施方案,所述转换请求命中具有迁移挂起指示的PTE。处理器生成针对给定虚拟地址的转换请求(框605)。在一个实施方案中,所述处理器是包括至少一个处理器、MMU和存储器子系统的系统(例如,图1的系统100)的部分。取决于所述实施方案,所述系统还可以包括任何数目的其它部件。MMU检测给定虚拟地址的PTE包括迁移挂起指示(框610)。如果以给定虚拟地址为目标的存储器请求是读取请求(条件框615,“是”分支),那么确定是否允许对目标物理页面进行读取(条件框620)。在一个实施方案中,是否允许对目标物理页面进行读取可以受到可编程控制。如果允许对目标物理页面进行读取(条件框620,“是”分支),那么允许对目标物理页面执行读取操作(框635)。在框635之后,方法600结束。如果不允许对目标物理页面进行读取(条件框620,“否”分支),那么防止对目标物理页面执行读取操作并且生成静默重试错误并将所述静默重试错误传送到请求客户端(框640)。在之后的时间点,客户端重试对给定虚拟地址的读取请求(框645)。在框645之后,方法600结束。
如果以所述虚拟地址为目标的存储器请求是写入请求(条件框615,“写入”分支),那么防止对目标物理页面执行写入操作,并且生成静默重试错误并将所述静默重试错误传送到请求客户端(框625)。在一个实施方案中,所述静默重试错误被称作“静默”是因为所述错误不包括生成中断或更新状态寄存器。静默重试错误向客户端指示其应在之后的时间点重试所述写入请求。在之后的时间点,客户端将重试对给定虚拟地址的写入请求(框630)。一旦迁移完成,将对新位置处的物理页面执行写入请求。在框630之后,方法600结束。
现在参看图7,示出用于处理转换请求的方法700的一个实施方案。检测对读取权限和写入权限被禁用的页面表项(PTE)的命中(框705)。在一个实施方案中,当禁用PTE的读取权限和写入权限时,这指示对应的物理页面目前正在存储器位置之间迁移。如果后续的存储器请求是读取请求(条件框710,“读取”分支),那么允许对目标物理页面执行读取请求,尽管禁用了所述页面的读取权限(框715)。此外,系统软件防止针对所述存储器请求生成错误(框720)。在框720之后,方法700结束。如果后续的存储器请求是写入请求(条件框710,“写入”分支),那么将重试请求发送给客户端并且阻止写入请求(框725)。在之后的时间点,客户端可以重试写入请求(框730)。在框730之后,方法700结束。
在各种实施方案中,使用软件应用程序的程序指令来实施先前描述的方法和/或机制。所述程序指令以高级编程语言(诸如C)来描述硬件的行为。可选地,使用硬件设计语言(HDL),诸如Verilog。所述程序指令存储于非暂时性计算机可读存储介质上。众多类型的存储介质是可用的。所述存储介质在使用期间可由计算系统存取以将程序指令和随附数据提供给计算系统以实现程序执行。所述计算系统包括至少一个或多个存储器以及被配置为执行程序指令的一个或多个处理器。
应强调,上述实施方案仅是实现方式的非限制性实例。一旦完全了解了以上公开内容,众多变化和修改将变成本领域的技术人员显而易见的。以下权利要求意欲被解释为包括所有此类变化和修改。

Claims (20)

1.一种用于重试以迁移页面为目标的转换请求的系统,所述系统包括:
存储器子系统;以及
处理器,所述处理器联接到所述存储器子系统;
其中所述系统被配置为:
检测第一页面将从所述存储器子系统中的第一存储器位置迁移到第二存储器位置;
对与所述第一页面对应的第一页面表项定位;
将迁移挂起指示存储于所述第一页面表项中;并且
响应于检测到与以所述第一页面表项为目标的写入请求相对应的转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,防止对所述第一页面执行写入操作并且生成静默重试请求。
2.如权利要求1所述的系统,其中响应于检测到以所述第一页面表项为目标的转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,所述系统被配置为:
如果所述转换请求对应于以所述第一页面为目标的读取请求,那么允许对所述第一页面执行读取操作。
3.如权利要求2所述的系统,其中响应于检测到与以所述第一页面表项为目标的所述写入请求相对应的所述转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,不生成页面错误。
4.如权利要求3所述的系统,其中生成所述写入请求的客户端被配置为响应于所述静默重试请求在之后的时间点重试所述写入请求。
5.如权利要求1所述的系统,其中通过禁用对所述第一页面表项的读取权限和写入权限来将所述迁移挂起指示编码在所述第一页面表项中。
6.如权利要求1所述的系统,其中响应于所述第一页面从所述第一存储器位置到所述第二存储器位置的所述迁移完成,所述系统被配置为:
清除所述迁移挂起指示;并且
为与所述第一页面表项对应的任何高速缓存的转换生成无效请求。
7.如权利要求1所述的系统,其中:
所述存储器子系统包括第一存储器和第二存储器;
所述第一存储器位置是在所述第一存储器中;并且
所述第二存储器位置是在所述第二存储器中。
8.一种用于重试以迁移页面为目标的转换请求的方法,所述方法包括:
通过计算系统检测第一页面将从第一存储器位置迁移到第二存储器位置;
对与所述第一页面对应的第一页面表项定位;
将迁移挂起指示存储于所述第一页面表项中;以及
响应于检测到与以所述第一页面表项为目标的写入请求相对应的转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,防止对所述第一页面执行写入操作并且生成静默重试请求而不生成中断。
9.如权利要求8所述的方法,其中响应于检测到以所述第一页面表项为目标的转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,所述方法还包括:
如果所述转换请求对应于以所述第一页面为目标的读取请求,那么允许对所述第一页面执行读取操作。
10.如权利要求9所述的方法,其中响应于检测到与以所述第一页面表项为目标的所述写入请求相对应的所述转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,不生成页面错误。
11.如权利要求10所述的方法,所述方法还包括生成所述写入请求的客户端在之后的时间点重试所述写入请求。
12.如权利要求8所述的方法,其中通过禁用对所述第一页面表项的读取权限和写入权限来将所述迁移挂起指示编码在所述第一页面表项中。
13.如权利要求8所述的方法,其中响应于所述第一页面从所述第一存储器位置到所述第二存储器位置的所述迁移完成,所述方法还包括:
清除所述迁移挂起指示;以及
为与所述第一页面表项对应的任何高速缓存的转换生成无效请求。
14.如权利要求8所述的方法,其中所述第一存储器位置是在第一存储器中,并且其中所述第二存储器位置是在第二存储器中。
15.一种用于重试以迁移页面为目标的转换请求的设备,所述设备包括;
存储器子系统;以及
存储器管理单元MMU;
其中所述MMU被配置为:
检测第一页面将从所述存储器子系统中的第一存储器位置迁移到第二存储器位置;
对与所述第一页面对应的第一页面表项定位;
将迁移挂起指示存储于所述第一页面表项中;并且
响应于检测到与以所述第一页面表项为目标的写入请求相对应的转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,防止对所述第一页面执行写入操作并且生成静默重试请求而不生成中断。
16.如权利要求15所述的设备,其中响应于检测到以所述第一页面表项为目标的转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,所述MMU被配置为:
如果所述转换请求对应于以所述第一页面为目标的读取请求,那么允许对所述第一页面执行读取操作。
17.如权利要求16所述的设备,其中响应于检测到与以所述第一页面表项为目标的所述写入请求相对应的所述转换请求并且检测到所述第一页面表项中的所述迁移挂起指示,不生成页面错误。
18.如权利要求17所述的设备,其中生成所述写入请求的客户端被配置为在之后的时间点重试所述写入请求。
19.如权利要求15所述的设备,其中通过禁用对所述第一页面表项的读取权限和写入权限来将所述迁移挂起指示编码在所述第一页面表项中。
20.如权利要求15所述的设备,其中响应于所述第一页面从所述第一存储器位置到所述第二存储器位置的所述迁移完成,所述设备被配置为:
清除所述迁移挂起指示;并且
为与所述第一页面表项对应的任何高速缓存的转换生成无效请求。
CN201880026849.2A 2017-04-24 2018-04-24 以计算系统中迁移页面为目标的转换请求的静默重试请求 Active CN110546623B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/495,296 US10365824B2 (en) 2017-04-24 2017-04-24 Silent active page migration faults
US15/495,296 2017-04-24
PCT/US2018/029188 WO2018200559A1 (en) 2017-04-24 2018-04-24 Silent active page migration faults

Publications (2)

Publication Number Publication Date
CN110546623A CN110546623A (zh) 2019-12-06
CN110546623B true CN110546623B (zh) 2023-11-07

Family

ID=62117174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880026849.2A Active CN110546623B (zh) 2017-04-24 2018-04-24 以计算系统中迁移页面为目标的转换请求的静默重试请求

Country Status (6)

Country Link
US (1) US10365824B2 (zh)
EP (1) EP3616070B1 (zh)
JP (1) JP7228528B2 (zh)
KR (1) KR102554377B1 (zh)
CN (1) CN110546623B (zh)
WO (1) WO2018200559A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10310985B2 (en) 2017-06-26 2019-06-04 Ati Technologies Ulc Systems and methods for accessing and managing a computing system memory
US10318344B2 (en) 2017-07-13 2019-06-11 Advanced Micro Devices, Inc. Predicting page migration granularity for heterogeneous memory systems
US11526278B2 (en) 2017-12-21 2022-12-13 Advanced Micro Devices, Inc. Adaptive page close prediction
US20200294182A1 (en) * 2019-03-15 2020-09-17 Intel Corporation On chip dense memory for temporal buffering
US11755354B2 (en) * 2019-11-20 2023-09-12 Sap Se NUMA-aware resource allocation and placement of database containers
US12086447B2 (en) 2019-12-18 2024-09-10 Advanced Micro Devices, Inc. Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor
US11726693B2 (en) * 2020-12-29 2023-08-15 Ati Technologies Ulc Migrating pages of memory accessible by input-output devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467081A (en) * 1992-02-22 1995-11-14 U.S. Philips Corporation Datacarriers with separate storage of read and write-inhibited memory locations
CN101410813A (zh) * 2006-05-25 2009-04-15 国际商业机器公司 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品
WO2012083695A1 (zh) * 2011-07-28 2012-06-28 华为技术有限公司 内存迁移的实现方法和装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282614B1 (en) 1999-04-15 2001-08-28 National Semiconductor Corporation Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches
US7233998B2 (en) 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
EP1870814B1 (en) * 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US8099556B2 (en) 2005-09-13 2012-01-17 Arm Limited Cache miss detection in a data processing apparatus
US7739476B2 (en) * 2005-11-04 2010-06-15 Apple Inc. R and C bit update handling
US7669011B2 (en) 2006-12-21 2010-02-23 Advanced Micro Devices, Inc. Method and apparatus for detecting and tracking private pages in a shared memory multiprocessor
US7870351B2 (en) 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US8185901B2 (en) 2008-04-24 2012-05-22 International Business Machines Corporation Parsing an application to find serial and parallel data segments to minimize migration overhead between serial and parallel compute nodes
US8589629B2 (en) 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US20120011329A1 (en) * 2010-07-09 2012-01-12 Hitachi, Ltd. Storage apparatus and storage management method
US20120023302A1 (en) * 2010-07-20 2012-01-26 Ibm Corporation Concurrent Atomic Operations with Page Migration in PCIe
US8407389B2 (en) * 2010-07-20 2013-03-26 International Business Machines Corporation Atomic operations with page migration in PCIe
US20120059983A1 (en) 2010-09-03 2012-03-08 David Wilkins Nellans Predictor-based management of dram row-buffers
US8499066B1 (en) 2010-11-19 2013-07-30 Amazon Technologies, Inc. Predicting long-term computing resource usage
US9038088B2 (en) 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
WO2013018128A1 (en) 2011-08-01 2013-02-07 Hitachi, Ltd. Storage apparatus and method for allocating an internal logical volume associated with an external logical volume to an internal tiered pool by assessing or inferring, the performance of said external logical volume
US10133677B2 (en) * 2013-03-14 2018-11-20 Nvidia Corporation Opportunistic migration of memory pages in a unified virtual memory system
US9355041B2 (en) * 2013-03-14 2016-05-31 Nvidia Corporation Frame buffer access tracking via a sliding window in a unified virtual memory system
US9229878B2 (en) 2013-06-10 2016-01-05 Red Hat Israel, Ltd. Memory page offloading in multi-node computer systems
US9092146B2 (en) 2013-06-28 2015-07-28 International Business Machines Corporation Dynamically varying transfer size in a storage device for improved performance
US9465669B2 (en) 2013-08-13 2016-10-11 Vmware, Inc. NUMA scheduling using inter-vCPU memory access estimation
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US11100004B2 (en) * 2015-06-23 2021-08-24 Advanced Micro Devices, Inc. Shared virtual address space for heterogeneous processors
US10235290B2 (en) 2015-06-26 2019-03-19 Advanced Micro Devices, Inc. Hot page selection in multi-level memory hierarchies
US10146469B2 (en) 2015-09-29 2018-12-04 EMC IP Holding Company, LLC Dynamic storage tiering based on predicted workloads
US9575815B1 (en) * 2015-12-22 2017-02-21 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US10705972B2 (en) 2016-09-13 2020-07-07 Advanced Micro Devices, Inc. Dynamic adaptation of memory page management policy
US10067709B2 (en) 2016-09-19 2018-09-04 Advanced Micro Devices, Inc. Page migration acceleration using a two-level bloom filter on high bandwidth memory systems
US10089014B2 (en) 2016-09-22 2018-10-02 Advanced Micro Devices, Inc. Memory-sampling based migrating page cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467081A (en) * 1992-02-22 1995-11-14 U.S. Philips Corporation Datacarriers with separate storage of read and write-inhibited memory locations
CN101410813A (zh) * 2006-05-25 2009-04-15 国际商业机器公司 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品
WO2012083695A1 (zh) * 2011-07-28 2012-06-28 华为技术有限公司 内存迁移的实现方法和装置

Also Published As

Publication number Publication date
WO2018200559A1 (en) 2018-11-01
US20180307414A1 (en) 2018-10-25
JP2020518063A (ja) 2020-06-18
KR102554377B1 (ko) 2023-07-11
CN110546623A (zh) 2019-12-06
KR20200002859A (ko) 2020-01-08
JP7228528B2 (ja) 2023-02-24
EP3616070A1 (en) 2020-03-04
EP3616070B1 (en) 2023-06-07
US10365824B2 (en) 2019-07-30

Similar Documents

Publication Publication Date Title
CN110546623B (zh) 以计算系统中迁移页面为目标的转换请求的静默重试请求
US10228874B2 (en) Persistent storage device with a virtual function controller
US10241925B2 (en) Selecting a default page size in a variable page size TLB
US9928142B2 (en) Resolving page faults out of context
US10067709B2 (en) Page migration acceleration using a two-level bloom filter on high bandwidth memory systems
US20140281296A1 (en) Fault buffer for tracking page faults in unified virtual memory system
US10467138B2 (en) Caching policies for processing units on multiple sockets
US11307993B2 (en) Dynamic remapping of virtual address ranges using remap vector
US11741015B2 (en) Fault buffer for tracking page faults in unified virtual memory system
CN113906389A (zh) 向访客操作系统提供输入输出存储器管理单元寄存器副本
EP3224729A1 (en) Memory management device
CN114270317B (zh) 层次型存储器系统
CN114341816A (zh) 三层层次型存储器系统
CN113272789A (zh) 由输入输出存储器管理单元进行的域标识符和装置标识符转译
CN114080587A (zh) 输入-输出存储器管理单元对访客操作系统缓冲区和日志的访问
US20150153965A1 (en) Electronic system and method of operating the same
US12086447B2 (en) Systems and methods for reducing instruction code memory footprint for multiple processes executed at a coprocessor
US10705745B2 (en) Using a memory controller to mange access to a memory based on a memory initialization state indicator
CN114341817A (zh) 分层存储器系统
US20180300253A1 (en) Translate further mechanism
CN114258534B (zh) 阶层式存储器系统
CN114270442A (zh) 层次型存储器系统
CN114341818A (zh) 分级存储器设备
CN114270324A (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