CN100555257C - 处理页面复制期间的dma操作的存储控制器和方法 - Google Patents

处理页面复制期间的dma操作的存储控制器和方法 Download PDF

Info

Publication number
CN100555257C
CN100555257C CNB2006101074756A CN200610107475A CN100555257C CN 100555257 C CN100555257 C CN 100555257C CN B2006101074756 A CNB2006101074756 A CN B2006101074756A CN 200610107475 A CN200610107475 A CN 200610107475A CN 100555257 C CN100555257 C CN 100555257C
Authority
CN
China
Prior art keywords
page
dma operation
dma
copy
memory controller
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.)
Expired - Fee Related
Application number
CNB2006101074756A
Other languages
English (en)
Other versions
CN1945557A (zh
Inventor
约翰·M.·伯肯哈根
威廉·P.·郝维斯
丹尼尔·P.·考尔兹
杰拉尔德·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.)
Lenovo International Ltd
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1945557A publication Critical patent/CN1945557A/zh
Application granted granted Critical
Publication of CN100555257C publication Critical patent/CN100555257C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Abstract

存储控制器提供页面复制逻辑,当在存储控制器复制页面的过程中发生对页面的DMA操作时,所述页面复制逻辑保证数据一致性。页面复制逻辑比较DMA操作的页面索引和指示目前被复制的单元的复制地址指针。如果DMA操作的页面索引小于复制地址指针,那么将由DMA操作进行写操作的那部分页面已被复制,从而对新页面的物理地址进行DMA操作。如果DMA操作的页面索引大于复制地址指针,那么将由DMA操作进行写操作的那部分页面还未被复制,从而对旧页面的物理地址进行DMA操作。

Description

处理页面复制期间的DMA操作的存储控制器和方法
技术领域
本发明一般涉及计算机系统,更具体地说,涉及计算机系统中的直接存储器存取(DMA)请求的处理。
背景技术
现代计算机系统一般具有组成页面的存储器。移动计算机系统中的存储器的页面是帮助提供最佳性能和使计算机系统保持正常工作的重要维护事项。一般通过使地址转换表中的当前虚拟-物理地址映射条目无效,把页面从旧的物理单元(location)复制到新的物理单元,并向地址转换表中加入使旧的虚拟地址与新的物理地址链接的新的地址映射条目,移动存储器的页面。
直接存储器存取(DMA)操作可由I/O装置发起,以便往来于存储器直接传送数据。在存储器页面的复制期间发生的DMA操作可能导致数据一致性问题。例如,假定存储控制器决定把存储器的一个页面从存储器中的单元A移动到单元B。在现有技术中,在从块A到块B的移动完成之前,DMA控制器可对块A进行写操作。如果在已被复制到块B的单元发生对块A的写操作,那么块B现在具有陈旧的数据,这会导致系统崩溃。
解决由DMA操作导致的数据一致性问题的一种已知途径是在页面复制期间禁用DMA操作。在一些系统布局中,在不导致系统崩溃的情况下,硬件难以或者不可能暂停DMA操作。即使DMA操作可被暂停,仍然存在暂停DMA操作会产生不可接受的响应时间的商业应用。从而,如果存储管理器正在把数据从第一页移动到第二页,那么在第一页的一部分已被移动之后,DMA控制器可能访问第一页中的数据,导致数据一致性问题。如果没有确保包括DMA控制器的计算机系统中的数据一致性,而不暂停页面复制操作期间的DMA I/O操作的途径,那么计算机行业将继续遭受由DMA操作造成的数据一致性问题引起的可能崩溃和其它问题。
发明内容
根据本发明的优选实施例,存储控制器提供页面复制逻辑,当在存储控制器复制存储器的页面期间发生DMA操作时,所述页面复制逻辑保证数据一致性。页面复制逻辑确定DMA操作的虚拟地址是否在正被复制的页面上。如果是,那么页面复制逻辑比较DMA操作的页面索引和指示目前被复制的单元的复制地址指针。如果DMA操作的页面索引小于复制地址指针,那么将由DMA操作存取的那部分页面已被复制,从而对新页面的物理地址进行DMA操作。如果DMA操作的页面索引大于复制地址指针,那么将由DMA操作存取的那部分页面还未被复制,从而对旧页面的物理地址进行DMA操作。如果DMA操作的页面索引等于复制地址指针,那么页面复制逻辑等待,直到当前复制完成为止,随后对新页面的物理地址进行DMA操作。这样,存储控制器保证当发生DMA操作时,页面复制操作期间的数据一致性。
根据如附图中图解说明的本发明的优选实施例的下述更详细描述,本发明的上述和其它特征和优点将是显而易见的。
附图说明
下面结合附图说明本发明的优选实施例,附图中,相同的附图标记表示相同的部件,其中:
图1是根据优选实施例的设备的方框图;
图2是根据优选实施例的方法的流程图;
图3是根据优选实施例的方法的方框图;
图4是根据优选实施例的图1的页面复制机构的一种具体实现的方框图;
图5是根据优选实施例的改变地址转换表的方法的流程图。
具体实施方式
优选实施例提供一种保证其中在存储器中的页面的移动期间,必定发生对存储器的DMA传输的系统中的数据完整性。存储控制器提供保证当在存储控制器复制存储器的页面期间,发生DMA操作时的数据一致性的页面复制逻辑。页面复制逻辑确定DMA操作的虚拟地址是否在正被复制的页面上。如果是,那么页面复制逻辑比较DMA操作的页索引与指示当前正被复制的单元的复制地址指针。如果DMA操作的页索引小于复制地址指针,那么会被DMA操作存取的那部分页面已被复制,从而对新页面的物理地址执行DMA操作。如果DMA操作的页索引大于复制地址指针,那么会被DMA操作存取的那部分页面还未被复制,从而对旧页面的物理地址进行DMA操作。如果DMA操作的页索引等于复制地址指针,那么DMA操作等待,直到当前复制完成为止,随后对新页面的物理地址进行DMA操作。这样,存储控制器保证当发生DMA操作时,页面复制操作期间的数据一致性。
参见图1,计算机系统100是根据本发明的优选实施例的设备的一种适当实现。计算机系统100是IBM eServer iSeries计算机系统。但是,本领域的技术人员会理解本发明的机制和设备同样适用于任何计算机系统,不管计算机系统是复杂的多用户计算设备、单用户工作站还是嵌入式控制系统。如图1中所示,计算机系统100包括处理器110、存储控制器180、大容量存储器接口130、显示器接口140和网络接口150。这些系统组件通过使用系统总线160互连。存储控制器180还通过存储器总线162与主存储器120耦接。大容量存储器接口130被用于连接大容量存储装置,比如直接存取存储装置155和计算机系统100。一种特定类型的直接存取存储装置155是可读和可写的CD RW驱动器,它可把数据保存到CD RW 195和从CD RW 195读取数据。另一种特定类型的直接存取存储装置155是硬盘驱动器。
根据优选实施例的主存储器120包含数据121、操作系统122、和存储器的多个页面(图1中表示成页面123A,...,123N)。数据121表示用作给计算机系统100中的任何程序的输入或来自所述任何程序的输出的任何数据。操作系统122是本行业中称为i5/OS的多任务操作系统;但是,本领域的技术人员会认识到本发明的精神和范围并不局限于任何一种操作系统。存储页面123表示可根据需要在存储器120内重新部署或者迁移到大容量存储装置,比如DASD 155的存储页面。
计算机系统100利用公知的虚拟寻址机制,所述虚拟寻址机制允许计算机系统100的程序表现得好像它们只是访问大型的单一存储实体,而不是访问多个较小的存储实体,例如主存储器120和DASD装置155。于是,虽然数据121、操作系统122和页面123A,...,123N被表示成存在于主存储器120上,不过本领域的技术人员会认识到这些项目并不必须都同时完全包含在主存储器120中。另外应注意的是术语“存储器,,这里被用于概指计算机系统100的整个虚拟存储器,可包括与计算机系统100耦接的其它计算机系统的虚拟存储器。
处理器110可由一个或多个微处理器和/或集成电路构成。处理器110执行保存在主存储器120中的程序指令。主存储器120保存处理器110可访问的程序和数据。当计算机系统100启动时,处理器110首先执行构成操作系统122的程序指令。操作系统122是管理计算机系统100的资源的复杂程序。这些资源中的一些是处理器110、主存储器120、大容量存储器接口130、显示器接口140、网络接口150、系统总线160和存储控制器180。
虽然计算机系统100被表示成只包含一个处理器和一条系统总线,不过本领域的技术人员会理解可利用具有多个处理器和/或多条总线的计算机系统实践本发明。另外,优选实施例中使用的接口均包括独立的全编程微处理器,用于从处理器110卸下(off-load)计算密集的处理。但是,本领域的技术人员会认识到本发明同样适用于只是使用I/O适配器来执行类似功能的计算机系统。
显示器接口140用于直接连接一个或多个显示器165与计算机系统100。这些显示器165(可以是非智能(即,哑)终端或者全编程工作站)被用于允许系统管理员和用户与计算机系统100通信。但是,注意提供显示器接口140来支持与一个或多个显示器165通信,不过计算机系统100并不是一定需要显示器165,因为可通过网络接口150发生所有需要的与用户的交互和其它进程。
网络接口150用于通过网络170,连接其它计算机系统和/或工作站(例如图1中的175)与计算机系统100。不论计算机系统100可如何与其它计算机系统和/或工作站连接,本发明都同样适用,与是利用目前的模拟和/或数字技术还是借助未来的某种联网机制实现网络连接170无关。另外,许多不同的网络协议可被用于实现网络。这些协议是允许计算机通过网络170通信的专用计算机程序。TCP/IP(传输控制协议/网际协议)是适当的网络协议的一个例子。
存储控制器180提供主存储器120和访问主存储器的装置之间的接口。存储控制器180完成本领域中已知的传统存储器控制功能。另外,存储控制器180包括允许存储页面的复制期间的DMA操作的页面复制机构182。页面复制机构182包括支持页面复制期间的DMA操作的几个寄存器、指针和逻辑部分。旧页面虚拟地址寄存器183包含正被复制的页面的虚拟地址。旧页面物理地址寄存器184包含正被复制的页面的物理地址。新页面物理地址寄存器185包含新页面(它是页面复制的目标单元)的物理地址。在优选实施例中,所有三个寄存器183、184和185由软件进行写操作。但是,由于存储控制器进行虚拟-物理地址映射,因此存储控制器180可根据183中的虚拟地址确定对184进行写操作的对应物理地址,同样可根据184中的物理地址确定对183进行写操作的对应虚拟地址。复制地址指针186包含指向需要被复制的下一部分的旧页面的指针。页面复制逻辑188包含处理对正被复制的页面的DMA操作所需的智能。页面复制逻辑188首先确定DMA操作是否是对正被复制的页面。如果是,那么比较DMA操作的页索引与保存在复制地址指针186中的值。这确定DMA操作的目标单元是已被复制的一部分页面,还是还未被复制的一部分页面。如果DMA操作的页索引小于复制地址指针186,那么DMA操作的目标单元是已被复制的一部分页面。从而,对新页面进行DMA操作。如果DMA操作的页索引大于复制地址指针186,那么DMA操作的目标单元是还未被复制的一部分页面。从而,对旧页面进行DMA操作,页面复制操作最终将把新写入的数据复制到新页面。如果DMA操作的页索引等于复制地址指针186,那么页面复制逻辑188等待,直到在复制地址指针186的高速缓存线(cache line)的复制完成为止,随后对新页面进行DMA操作。这样,即使在页面的复制期间发生对页面的DMA操作,也能够保持数据一致性。
在图1中,存储控制器180被表示成与处理器110分离。但是注意在优选实施例的范围内,存储控制器180也可存在于处理器110内。
参见图2,当存储器的一个页面需要从单元A复制到单元B(步骤210)时,开始根据优选实施例的方法200。首先,复制地址指针被设定为0(步骤220)。由复制地址指针指向的高速缓存线随后从页面A复制到页面B(步骤230)。复制地址指针随后被递增(步骤240)。如果复制未完成(步骤250=否),那么方法返回步骤230并继续。一旦复制完成(步骤250=是),那么结束方法200。
如用于iSeries计算机系统的方法200中所示的页面的复制一般使用4K字节的页面大小和64字节的高速缓存线,这导致64个高速缓存线写入以执行页面复制。在该特定例子中,复制地址指针指向目前正被复制或者下面将被复制的高速缓存线。
参见图3,根据优选实施例的方法300表示在页面复制期间如何处理DMA操作。对于本例子,我们假定DMA操作指定DMA操作地址,所述DMA操作地址包含页面的虚拟地址和指向要访问页面的哪部分的页面索引。当在页面A到页面B的复制期间发生DMA操作(步骤310)时,开始方法300。比较DMA操作的虚拟地址与正被复制的页面A的虚拟地址(步骤320)。如果DMA操作的虚拟地址不等于页面A的虚拟地址(步骤320=否),那么在DMA操作和页面复制操作之间不存在可能的冲突,从而如本领域中已知的那样,利用标准DMA逻辑进行DMA操作(步骤322)。如果DMA操作的虚拟地址等于页面A的虚拟地址(步骤320=是),那么DMA操作是对正被复制的相同页面。从而,比较DMA操作的页面索引与复制地址指针(步骤330)。如果DMA操作的页面索引小于保存在复制地址指针中的值(步骤340=是),那么对页面B(新页面)进行DMA操作(步骤370),因为作为DMA操作的目标的那部分页面已被复制到页面B。如果DMA操作的页面索引大于复制地址指针中的值(步骤340=否,并且步骤350=是),那么对页面A(旧页面)进行DMA操作(步骤352),因为作为DMA操作的目标的那部分页面还未被复制到页面B。从而,如果DMA操作是对页面A的写操作,当复制地址指针指向包含新数据的高速缓存线时,数据将被及时地复制到页面B,如图2中的方法200中所示。如果DMA操作的页面索引等于复制地址指针中的值(步骤340=否,并且步骤350=否),那么页面复制逻辑等待,直到当前高速缓存线的复制完成为止(步骤360)。一旦当前高速缓存线的复制完成,就对页面B进行DMA操作(步骤370)。
参见图4,图中表示了在优选实施例的范围内的页面复制机构182的一种具体实现。页面复制机构182包括旧页面虚拟地址寄存器183,旧页面物理地址寄存器184和新页面物理地址寄存器185。注意寄存器183、184和185可由需要进行页面复制的软件进行写操作。另外还示出了复制地址指针186。另外提供了可用于启用和禁用页面复制机构182的控制/状态寄存器410。控制/状态寄存器410最好包括用于当将要发生页面复制时启用页面复制机构182,和在完成页面复制之后禁用页面复制机构182的一位。控制/状态寄存器410还包括从页面复制逻辑188接收的指示页面复制何时完成的状态位。状态位可由存储控制器180轮询,或者可产生中断。
当页面需要被复制时,存储控制器180对控制/状态寄存器410进行写操作,从而启用页面复制机构182,和开始页面复制操作。页面复制操作的开始把复制地址指针186重置为0。随后开始旧页面的复制。读/写地址420由多路复用器430驱动,多路复用器430选择旧页面物理地址184或者新页面物理地址185,取决于从页面复制逻辑188接收的选择信号440的状态。当从旧页面读取数据时,选择信号440选择旧页面物理地址184。当把数据写入新页面时,选择信号440选择新页面物理地址185。页面索引来自复制地址指针,被用于对正被复制的页面内的当前高速缓存线寻址。这样,恰当的地址被提供给存储器接口控制450。
现在我们假定在旧页面到新页面的复制期间发生DMA操作。利用比较器470比较DMA操作地址460和旧页面虚拟地址183。如果它们相符,那么这意味着DMA操作针对的是在被复制过程中的相同页面(旧页面)。随后利用比较器480比较与页面索引对应的该部分DMA操作地址460和复制地址指针186中的值。如果DMA操作地址460的页面索引小于复制地址指针186中的值,那么正被DMA操作存取的那部分旧页面是已被复制到新页面的一部分。从而,驱动选择线440,选择新页面物理地址185作为DMA操作的目标。如果DMA操作地址460的页面索引大于复制地址指针186中的值,那么正被DMA操作存取的那部分旧页面是还未被复制到新页面的一部分。从而,驱动选择线440,选择旧页面物理地址184。如果DMA操作地址460的页面索引等于复制地址指针186中的值,那么这意味着目前被复制的高速缓存线是DMA操作的目标。在允许DMA操作继续下去之前,当前高速缓存线的复制必须完成。如果当前高速缓存线是页面中的最后的高速缓存线,那么当完成该高速缓存线的复制时,在控制/状态寄存器410中设置复制完成位。如果当前高速缓存线不是页面中的最后的高速缓存线,那么当完成该高速缓存线的复制时,递增复制地址指针186。一旦当前高速缓存线的复制完成,就驱动选择线440,选择新页面物理地址185。这样,即使DMA操作以在被复制过程中的页面为目标,页面复制机构182也可为DMA操作提供数据一致性。可无延迟地执行DMA操作,这支持PCI-E总线上的DMA传输,同时在页面复制操作期间仍能提供数据一致性。
参见图5,通过启用正常地址转换(translation)(步骤510)开始根据优选实施例的方法500。正常地址转换继续,直到开始页面复制为止(步骤520=是)。一旦开始页面复制,那么启用页面复制地址转换(步骤530)。步骤530中页面复制地址转换的启用是图4中的页面复制机构182的启用,通过把适当的值写入控制/状态寄存器410中,恰当地执行所述启用。页面复制地址转换保持有效,直到页面复制完成为止(步骤540=是),此时,页面复制地址转换被禁用(步骤550)。步骤550中的页面复制地址转换的禁用是图4中的页面复制机构182的禁用,最好通过把适当的值写入控制/状态寄存器410执行所述禁用。一旦在步骤550中禁用了页面复制地址转换,那么在步骤510中启用正常地址转换。方法500图解说明除了当进行页面复制时之外,始终进行正常地址转换。在存储控制器的页面复制期间,启用由页面复制机构182提供的页面复制地址转换。
优选实施例为存储控制器提供一种保证在页面复制操作期间发生的DMA操作的数据一致性的简单并且有效的方法。如果DMA操作针对的是正被复制的相同页面,那么比较DMA操作的页面索引和指示正被复制的或者接下来要复制的那部分页面的复制地址指针。如果DMA操作小于复制地址指针,那么这意味着DMA操作针对的是已被复制的一部分页面,对新页面进行DMA操作。如果DMA操作大于复制地址指针,那么这意味着DMA操作针对的是还未被复制的一部分页面,对旧页面进行DMA操作。如果DMA操作的页面索引等于复制地址指针,那么DMA操作等待,直到当前复制完成为止,随后对新页面的物理地址进行DMA操作。这保证对恰当的单元进行DMA操作,即使在页面复制操作的中间发生DMA操作。
随着虚拟机的市场日益增大,移动存储器的页面的能力正在变得更加重要。在分区管理器(在iSeries术语学中被称为管理程序)的控制下,多个操作系统镜像可在单个虚拟化计算机系统上运行。对虚拟机上的性能来说,I/O存储器管理至关重要。目前的管理.I/O存储器的行业方案是利用分区管理器截取所有I/O存取。该方法不像硬件I/O虚拟化那样可靠,使系统性能降低20%或者更多。优选实施例提供一种当发生DMA操作时,能够有效地保证存储页面复制期间的数据一致性的存储控制器,从而允许I/O运行,而不受页面复制操作限制。结果是得到一种显著增强系统性能,同时保证I/O操作可靠的简单然而强大的解决方案。
本领域的技术人员会认识到在本发明的范围内,许多变化是可能的。从而,虽然参考本发明的优选实施例详细表示和说明了本发明,但是在不脱离本发明的精神和范围的情况下,显然可在形式和细节方面做出这些和其它变化。

Claims (11)

1、一种存储控制器,包括:
第一寄存器,它包含第一页面的物理地址;
第二寄存器,它包含第二页面的物理地址;
复制地址指针,它指向第一页面中的一个单元,并且指示第一页面的目前正被复制的部分;和
页面复制逻辑,所述页面复制逻辑启动第一页面到第二页面的复制,接收直接存储器存取(DMA)操作,确定DMA操作是否针对的是第一页面,如果是,比较DMA操作的页面索引和复制地址指针,如果DMA操作的页面索引小于复制地址指针,那么在第一页面到第二页面的复制期间页面复制逻辑导致对第二页面进行DMA操作,如果DMA操作的页面索引大于复制地址指针,那么在第一页面到第二页面的复制期间页面复制逻辑导致对第一页面进行DMA操作。
2、按照权利要求1所述的存储控制器,其中如果DMA操作的页面索引等于复制地址指针,那么页面复制逻辑延迟DMA操作直到在复制地址指针的写操作完成为止,随后对第二页面进行DMA操作。
3、按照权利要求1所述的存储控制器,还包含第三寄存器,所述第三寄存器包含由页面复制逻辑用于确定DMA操作是否针对的是第一页面的第一页面的逻辑地址。
4、按照权利要求2所述的存储控制器,还包含控制和状态寄存器,所述控制和状态寄存器控制页面复制逻辑的功能,并且指示页面复制何时完成。
5、按照权利要求4所述的存储控制器,其中当存储控制器未正在进行页面复制时,控制和状态寄存器允许禁用页面复制逻辑。
6、按照权利要求1所述的存储控制器,还包括由页面复制逻辑驱动的选择机构,所述选择机构选择第一页面中的地址和第二页面中的地址之一。
7、一种存储控制器,包括:
第一页面虚拟地址寄存器,它包含第一页面的虚拟地址;
第一页面物理地址寄存器,它包含第一页面的物理地址;
第二页面物理地址寄存器,它包含第二页面的物理地址;
复制地址指针,它指向第一页面中的一个单元,并且指示第一页面的目前被复制的部分;
页面复制逻辑,所述页面复制逻辑开始第一页面中的数据到第二页面的写入,接收直接存储器存取(DMA)操作,确定DMA操作是否针对的是第一页面,如果是,比较DMA操作的页面索引和复制地址指针,如果DMA操作的页面索引小于复制地址指针,那么在第一页面中的数据到第二页面的写入期间页面复制逻辑导致对第二页面进行DMA操作,如果DMA操作的页面索引大于复制地址指针,那么页面复制逻辑导致对第一页面进行DMA操作,如果DMA操作的页面索引等于复制地址指针,那么在第一页面中的数据到第二页面的写入期间页面复制逻辑延迟DMA操作直到在复制地址指针的写操作完成为止,随后对第二页面进行DMA操作;和
控制和状态寄存器,所述控制和状态寄存器控制页面复制逻辑的功能,指示页面复制何时完成,并且当存储控制器未正在进行页面复制时,允许禁用页面复制逻辑。
8、一种在存储控制器把第一页面复制到第二页面的过程中存储控制器进行直接存储器存取(DMA)操作的方法,所述方法包括下述步骤:
(A)确定DMA操作是否针对的是第一页面;
(B)如果DMA操作针对的是第一页面,那么比较DMA操作的页面索引和复制地址指针,所述复制地址指针指向第一页面中的一个单元,并且指示第一页面的目前被复制的部分;
(C)如果DMA操作的页面索引小于复制地址指针,那么在把第一页面复制到第二页面的过程中导致对第二页面进行DMA操作;和
(D)如果DMA操作的页面索引大于复制地址指针,那么在把第一页面复制到第二页面的过程中导致对第一页面进行DMA操作。
9、按照权利要求8所述的方法,还包括下述步骤:
(E)如果DMA操作的页面索引等于复制地址指针,那么延迟DMA操作,直到在复制地址指针的从第一页面到第二页面的复制完成为止;和
(F)对第二页面进行DMA操作。
10、按照权利要求8所述的方法,其中步骤(A)包括比较DMA操作的虚拟地址和对应于第一页面的虚拟地址的范围的步骤。
11、按照权利要求8所述的方法,其中步骤(C)和(D)由硬件选择机构执行,所述硬件选择机构选择第一页面中的地址和第二页面中的地址之一。
CNB2006101074756A 2005-10-07 2006-07-25 处理页面复制期间的dma操作的存储控制器和方法 Expired - Fee Related CN100555257C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/246,827 US7533198B2 (en) 2005-10-07 2005-10-07 Memory controller and method for handling DMA operations during a page copy
US11/246,827 2005-10-07

Publications (2)

Publication Number Publication Date
CN1945557A CN1945557A (zh) 2007-04-11
CN100555257C true CN100555257C (zh) 2009-10-28

Family

ID=37912129

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101074756A Expired - Fee Related CN100555257C (zh) 2005-10-07 2006-07-25 处理页面复制期间的dma操作的存储控制器和方法

Country Status (3)

Country Link
US (2) US7533198B2 (zh)
CN (1) CN100555257C (zh)
TW (1) TWI406131B (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6434620B1 (en) * 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6697868B2 (en) * 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US7543087B2 (en) * 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7516108B2 (en) * 2005-12-22 2009-04-07 International Business Machines Corporation Block allocation times in a computer system
US20080240168A1 (en) * 2007-03-31 2008-10-02 Hoffman Jeffrey D Processing wireless and broadband signals using resource sharing
US20080263171A1 (en) * 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
US20100161914A1 (en) * 2008-12-23 2010-06-24 Eilert Sean S Autonomous memory subsystems in computing platforms
US8966132B2 (en) 2012-11-16 2015-02-24 International Business Machines Corporation Determining a mapping mode for a DMA data transfer
US8984179B1 (en) 2013-11-15 2015-03-17 International Business Machines Corporation Determining a direct memory access data transfer mode
TWI497296B (zh) * 2013-12-04 2015-08-21 Univ Nat Taiwan 記憶體配置與分頁位址轉換系統及方法
US11354244B2 (en) * 2014-11-25 2022-06-07 Intel Germany Gmbh & Co. Kg Memory management device containing memory copy device with direct memory access (DMA) port
US20170139740A1 (en) * 2015-11-12 2017-05-18 Futurewei Technologies, Inc. Systems and Methods for Real Time Context Based Isolation and Virtualization
CN110515872B (zh) * 2018-05-21 2020-07-31 阿里巴巴集团控股有限公司 直接内存存取方法、装置、专用计算芯片及异构计算系统
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access
US11650742B2 (en) * 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11455264B2 (en) * 2020-08-10 2022-09-27 International Business Machines Corporation Minimizing delay while migrating direct memory access (DMA) mapped pages

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276848A (en) * 1988-06-28 1994-01-04 International Business Machines Corporation Shared two level cache including apparatus for maintaining storage consistency
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
CN1268695A (zh) * 1999-03-31 2000-10-04 国际商业机器公司 用于改进超高速缓存性能的输入/输出页面删除确定
CN1622071A (zh) * 2004-12-31 2005-06-01 北京中星微电子有限公司 一种直接存储器存取装置及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4590467A (en) * 1983-10-13 1986-05-20 Rockwell International Corporation Local area network interface controller
US4658351A (en) * 1984-10-09 1987-04-14 Wang Laboratories, Inc. Task control means for a multi-tasking data processing system
US5640527A (en) * 1993-07-14 1997-06-17 Dell Usa, L.P. Apparatus and method for address pipelining of dynamic random access memory utilizing transparent page address latches to reduce wait states
US5778427A (en) * 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
US6931471B2 (en) * 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US6804729B2 (en) * 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US20060069818A1 (en) * 2004-09-27 2006-03-30 Cliff Mather Synchronizing direct memory access and evacuation operations in a computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276848A (en) * 1988-06-28 1994-01-04 International Business Machines Corporation Shared two level cache including apparatus for maintaining storage consistency
US5463739A (en) * 1992-12-22 1995-10-31 International Business Machines Corporation Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold
CN1268695A (zh) * 1999-03-31 2000-10-04 国际商业机器公司 用于改进超高速缓存性能的输入/输出页面删除确定
CN1622071A (zh) * 2004-12-31 2005-06-01 北京中星微电子有限公司 一种直接存储器存取装置及方法

Also Published As

Publication number Publication date
CN1945557A (zh) 2007-04-11
TWI406131B (zh) 2013-08-21
US20080201495A1 (en) 2008-08-21
US7533198B2 (en) 2009-05-12
TW200739356A (en) 2007-10-16
US20070083682A1 (en) 2007-04-12
US7783793B2 (en) 2010-08-24

Similar Documents

Publication Publication Date Title
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
KR101602991B1 (ko) 비가상화 시스템에서의 메모리 확장을 지원하기 위한 상호 운영 시스템 메모리 핫스왑
CN100405303C (zh) 数据处理系统
JP3403284B2 (ja) 情報処理システム及びその制御方法
US7721023B2 (en) I/O address translation method for specifying a relaxed ordering for I/O accesses
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
EP3992790B1 (en) Information processing method, physical machine and pcie device
JP4597459B2 (ja) 装置の列挙のための仮想rom
US6925546B2 (en) Memory pool configuration system
TW508522B (en) System input/output interface design for scaling
KR20170013882A (ko) 플래시 메모리 기반 저장 디바이스의 멀티 호스트 전력 제어기(mhpc)
US7007126B2 (en) Accessing a primary bus messaging unit from a secondary bus through a PCI bridge
KR20180041037A (ko) 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
TW200400436A (en) Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US6425071B1 (en) Subsystem bridge of AMBA's ASB bus to peripheral component interconnect (PCI) bus
JP4965974B2 (ja) 半導体集積回路装置
US20230169013A1 (en) Address translation cache and system including the same
CN114281726B (zh) 用于soc芯片的系统架构及外设通信方法
US7539787B2 (en) Destructive DMA lists
JP2008123333A5 (zh)
JP2001027920A (ja) バスブリッジ回路及びそのパワーマネージメント方法
JP2003186666A (ja) マイクロコンピュータおよびdma制御回路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170713

Address after: Hongkong, China

Patentee after: Lenovo International Ltd

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091028

Termination date: 20170725

CF01 Termination of patent right due to non-payment of annual fee