CN101278270A - 在虚拟存储器环境中处理dma请求的设备和方法 - Google Patents

在虚拟存储器环境中处理dma请求的设备和方法 Download PDF

Info

Publication number
CN101278270A
CN101278270A CNA2006800367654A CN200680036765A CN101278270A CN 101278270 A CN101278270 A CN 101278270A CN A2006800367654 A CNA2006800367654 A CN A2006800367654A CN 200680036765 A CN200680036765 A CN 200680036765A CN 101278270 A CN101278270 A CN 101278270A
Authority
CN
China
Prior art keywords
data
dma controller
bit
write
block
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
CNA2006800367654A
Other languages
English (en)
Other versions
CN100589089C (zh
Inventor
G·K·巴特利
J·M·博肯哈根
W·P·郝维斯
D·P·考尔兹
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 CN101278270A publication Critical patent/CN101278270A/zh
Application granted granted Critical
Publication of CN100589089C publication Critical patent/CN100589089C/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)
  • Bus Control (AREA)

Abstract

设备包括将数据从存储器内的第一块(A)移至第二块(B)的虚拟存储器管理器。在虚拟存储器管理器准备将数据从第一块传送给第二块时,定义存储器的第三临时存储器块(C)。改变DMA控制器内的转换表以使目标为第一块的DMA传送改为目标为临时存储器块。然后,虚拟存储器管理器将数据从第一块传送给第二块。在传送完成时,检验在将数据从第一块写入第二块时DMA是否将数据传送给临时存储器块了。如果是,将写入临时存储器块的数据写入第二块。优选的是,用硬件寄存器来有效地检测临时存储器块的改变。

Description

在虚拟存储器环境中处理DMA请求的设备和方法
技术领域
本发明涉及计算机系统,具体地说,涉及在提供虚拟存储器环境的计算机系统中处理直接存储器访问(DMA)请求的技术。
背景技术
许多计算机系统具有将虚拟地址映射为存储器内的物理地址的虚拟存储器环境。一种特定类型的虚拟存储器环境在单个平台上定义了多个逻辑部分,从而使得每个逻辑部分从客户机角度来看呈现为一个独立和唯一的计算机系统。在逻辑分区的计算机系统内,通常需要诸如硬盘驱动器之类的I/O装置来写入存储器。硬盘驱动器与存储器之间的这种传送通常通过总线芯片组(chipset)中的直接存储器访问(DMA)控制器进行。由于出现DMA传送相对处理器事件是异步的,这种DMA传送就可能会引起数据一致性(data coherency)问题。例如,假设虚拟存储器管理器决定将数据从存储器内的块A移至块B,在现有技术中,DMA控制器能够在将数据从块A移至块B的移动完成前,写入块A。如果写入块A出现在已经拷贝到块B的位置,块B现在有的就是过时的数据,这可能导致总线或系统崩溃。由于还没有一种方式能保证在包括DMA控制器和虚拟存储器系统的计算机系统内的数据一致性,计算机产业得继续忍受由于数据一致性问题而引起的潜在系统性崩溃和其他问题。
发明内容
本发明的第一方面提供了一种设备,这种设备包括:至少一个处理器;与至少一个处理器耦接的直接存储器访问(DMA)控制器;与DMA控制器和与至少一个处理器耦接的存储器;以及驻留在存储器内并由至少一个处理器执行的虚拟存储器管理器。虚拟存储器管理器在存储器内创建临时块,改变DMA控制器内的地址转换表,以使DMA控制器的未来写操作写入临时块,在存储器内将数据从第一块移至第二块,以及在将数据从第一块移至第二块后确定在虚拟存储器管理器将数据从第一块移至第二块期间是否出现过DMA控制器对临时块的任何写操作。如果确定结果为肯定,虚拟存储器管理器将在数据移动期间DMA控制器写入临时位置的数据从临时位置写入第二块。
本发明的第二方面提供了一种在存储器内将数据从第一块移至第二块的方法,这种方法包括下列步骤:
(A)在存储器内创建临时块;
(B)改变DMA控制器内的地址转换表,以使DMA控制器的未来写操作写入临时块;
(C)在存储器内将数据从第一块移至第二块;
(D)在步骤(C)的数据移动后,确定在步骤(C)的数据移动期间是否出现过DMA控制器对临时块的任何写操作;以及
(E)如果在步骤(C)的数据移动期间出现过DMA控制器对临时块的任何写操作,将在步骤(C)的数据移动期间由DMA控制器所写的数据从临时位置写入第二块。
按照这些优选实施例,设备包括在存储器内将数据从第一块移至第二块的虚拟存储器管理器。在虚拟存储器管理器准备将数据从第一块传送给第二块时,将存储器的第三存储器块定义为临时存储器块。改变DMA控制器内的转换表,以使DMA传送指向第三存储器块。然后,虚拟存储器管理器将数据从第一块传送给第二块。在传送完成时,检验在将数据从第一块写入第二块时DMA是否将数据传送给临时存储器块。如果是,则将写入临时存储器块的数据写入第二块。优选的是,可以用硬件的修改记录寄存器(MRR)来有效地检测临时存储器块的改变。MRR包括多个比特,每个比特与所定义的存储器块对应,其中,如果DMA控制器将数据写入与每个比特对应的所定义的块,则该比特为1,并且如果DMA控制器没有将数据写入与该比特对应的所定义的块,则该比特为0。如果MRR非零,每次一个比特地扫描MRR,将与寄存器内为1的比特对应的存储器块从临时块写入第二块,在将存储器块写入第二块后将为1的比特清为0。一旦所有的比特都已清零(意味着所有的对应存储器块都已写入第二块),MRR再进行检验,以确保在前一次对MRR比特清零期间没有再出现DMA传送操作。这个过程继续,直到所有的MRR比特都为零,表示从上次检验MRR以来没有出现DMA传送。
本发明的其他方面包括具有一组控制数据处理设备使之执行如上所述的方法的程序代码指令的计算机程序。
从以下对如附图所例示的本发明的优选实施例的更为具体的说明中可以清楚地看到本发明的以上这些和其他一些特征和优点。
附图说明
以下结合附图对本发明的实施例进行比较详细的例示性说明,在这些附图中,同样的标记所标的是同样的部分,其中:
图1为作为优选实施例的设备的方框图;
图2为作为优选实施例的方法的流程图;
图3为作为优选实施例的修改记录寄存器(MRR)和对应存储器块的方框图;以及
图4为作为优选实施例的用如图3所示的MRR具体实现图2中的步骤240的方法的流程图。
具体实施方式
本发明的实施例提供了在运行虚拟存储器管理器、允许对存储器进行DMA传送的系统内保证数据完整性的方式。在存储器内的数据块需从第一位置移至第二位置时,DMA传送被重定向至临时位置。数据块被移动,随后进行检验,确定在移动期间是否出现写入临时位置操作。如果是,则将写入临时位置的数据写入第二位置,再进行另一次检验,确定是否出现任何写入临时位置操作。在最为优选的实现中,当对临时位置做出改变时,硬件寄存器进行跟踪,从而允许根据寄存器的状态容易地确定是否有任何数据需要从临时位置拷贝到第二位置。
参见图1,计算机系统100为作为本发明的优选实施例的设备的一个适当实现。计算机系统100为IBM的eServer iSeries计算机系统。然而,本领域的技术人员可以看到,本发明的机理和设备同样适用于任何计算机系统,无论这计算机系统是复杂的多用户计算设备、单用户工作站还是嵌入式控制系统。如图1所示,计算机系统100包括处理器110、主存储器120、大容量存储装置接口130、显示器接口140和网络接口150。处理器110通过处理器总线162与总线控制器芯片组180耦接。总线控制器芯片组180通过系统总线164与主存储器120、大容量存储装置接口130、显示器接口140和网络接口150耦接。大容量存储装置接口130用来将诸如直接存取存储装置(DASD)155之类的大容量存储装置接到计算机系统100上。一种特定类型的直接存取存储装置155是可以将数据存储到CD RW 195上和从CD RW195读出数据的可读和可写CD RW驱动器。另一种特定类型的直接存取存储装置155是硬盘驱动器。
按照优选实施例,主存储器120含有数据121、操作系统122、虚拟存储器管理器123和所定义的存储器块124、125和126。数据121表示任何输入计算机系统100内的任何程序或从计算机系统100内任何程序输出的数据。操作系统122是在行业中称为i5/OS的多任务操作系统,然而,本领域的技术人员可以理解,本发明的精神实质和专利保护范围不局限于任何操作系统。存储器块124-126由虚拟存储器管理器123管理。由于单个硬盘驱动器可以划分成用于不同逻辑分区的独立逻辑驱动器,因此虚拟存储器管理器必须对在逻辑分区之间共享磁盘驱动器进行管理。这种在多个逻辑分区之间的硬件资源共享通常需要在存储器位置之间拷贝数据。因此,虚拟存储器管理器123可以周期性地将数据从存储器120内的一个块移至存储器内的另一个块。存储器块124-126呈现为可以由虚拟存储器管理器123管理的任意存储器块。
计算机系统100使用众所周知的虚拟寻址机制,其使得计算机系统100的程序表现为它们似乎只能访问大的、单个存储实体而不是访问多个较小的诸如主存储器120和DASD装置155之类的存储实体。因此,虽然数据121、操作系统122和虚拟存储器管理机构123示为驻留在主存储器120内,但本领域的技术人员可以认识到这些数据项不必同时都完全包含在主存储器120内。还应注意的是,所谓“存储器”在这里用来指计算机系统100的整个虚拟存储器(virtualmemory),并可以包括与计算机系统100耦接的其他计算机系统的虚拟存储器。
处理器110可以由一个或多个微处理器和/或集成电路构成。处理器110执行存储在主存储器120内的程序指令。主存储器120存储处理器110可以访问的程序和数据。在计算机系统100启动时,处理器110最初执行构成操作系统122的程序指令。操作系统122是复杂的管理计算机系统100的资源的程序。这些资源中的一些是处理器110、主存储器120、大容量存储装置接口130、显示器接口140、网络接口150和系统总线160。
虽然计算机系统100示为只含有单个处理器和单个系统总线,但本领域的技术人员可以理解,本发明可以用具有多个处理器和/或多个总线的计算机系统实施。此外,在这个优选实施例中所用的这些接口各包括独立的、完整编程的、用来使处理器110卸下计算强度大的处理的微处理器。然而,本领域的技术人员可以理解,本发明同样适用于仅用I/O适配器执行类似功能的计算机系统。
显示器接口140用来直接将一个或多个显示器165连接到计算机系统100上。这些显示器165可以是非智能(即,低能力)的终端或可完全编程的工作站,用来使系统管理员和用户可以与计算机系统100通信。然而,要注意的是,虽然提供了显示器接口140来支持与一个或多个显示器165通信,但计算机系统100不一定需要显示器165,因为与用户和其他过程的所有所需交互作用都可以通过网络接口150进行。
网络接口150用来使计算机系统100可通过网络170与其他计算机系统和/或工作站(例如,图1中的175)连接。无论计算机系统100如何与其他计算机系统和/或工作站连接、无论网络连接170是用当今的模拟和/或数字技术还是通过今后的一些联网机制,本发明同样适用。此外,可用许多不同的网络协议来实现网络。这些协议是专用的计算机程序,使计算机可以通过网络170通信。TCP/IP(传输控制协议/因特网协议)是适当的网络协议的例子。
总线控制器芯片组180可以控制包括(但不局限于)PCI、PCI-X和PCI快速总线的任何适当总线的功能。注意,这些总线在它们处理DMA传送上是不同的。在PCI或PCI-X总线的情况下,可以告诉想要执行DMA传送的设备等待。然而,在PCI快速总线的情况下,没有办法告诉设备等待。因此,如果虚拟存储器管理器执行将数据从第一块移至第二块的移动,DMA控制器可能在第一块内的一部分已经被移动后将数据写入第一块中,从而导致数据一致性问题,使得第二块内的数据不正确,因为DMA控制器所传送的数据被写入第一块而不是第二块。
总线控制器芯片组180包括允许设备在没有处理器干预的情况下直接传送数据的DMA控制器182。DMA控制器182包括提供将虚拟地址转换成存储器内对应物理地址的转换表184。DMA控制器182还包括修改记录寄存器(MRR)186。MRR 186具有多个比特,每个比特对应于一个所定义的存储器块。如果DMA控制器写入MRR在跟踪的存储器块,则将MRR内的对应比特置位为1,表示该存储器块已有改变。稍后将结合图3和4较为详细地说明这种呈现为MRR寄存器186的硬件支持。
注意,总线控制器芯片组180在图1中示为与处理器110分开的。然而,这些优选实施例明显可以扩展到总线控制器功能集成在处理器本身内的实现。
在这一点上,重要的是要注意,虽然本发明一直是而且继续是就功能完全的计算机系统的情况进行说明的,但本领域的技术人员可以理解本发明能作为各种形式的程序产品销售,无论实际用来销售的计算机可读信号承载媒体是什么具体类型,本发明同样适用。适当的计算机可读信号承载媒体的例子包括:诸如软盘和CD RW(例如,图1中的195)之类的可记录型媒体,以及诸如数字和模拟通信链路之类的传输型媒体。注意,优选的信号承载媒体是有形媒体。
参见图2,在需要将块A 124内的数据写入块B 125时,由图1中的虚拟存储器管理器123执行根据优选实施例的方法200。首先,定义称为块C 126的临时位置(步骤210)。虚拟存储器管理器123写入DMA转换表184,使得正常要写入块A的任何未来DMA写操作改为写入块C(步骤220)。然后,虚拟存储器管理器将数据从块A移至块B(步骤230)。由于DMA传送与正在执行虚拟存储器管理器123的处理器110异步,有可能在将数据从块A移至块B(步骤230)期间出现DMA传送。因此,方法200此时必须确定在移动期间是否执行过任何DMA写操作。这可以通过确定是否有任何数据写入块C(步骤240)来实现。如果没有(步骤240=否),就知道没有出现给块C的DMA传送,从而方法200完成。如果有数据写入块C(步骤240=是),则将块C内的新数据移至块B(步骤250)。然后,方法200循环回步骤240,查看是否出现了还没有写入块B的另一个写入块C的操作(步骤240)。这个过程一直继续,直到没有还未写入块B的对块C的写入(步骤240=否)。通过定义一个新的临时块C,方法200允许在正在移动存储器内的数据块的同时可以进行DMA传送。
图2中的步骤240的确定是否对块C执行了写操作的一种方式是将块C内的每个位置都初始化为某个初始值,诸如零,然后在将数据从块A移至块B后读块C,以查看块C内哪些位置为非零的。这种解决方案是基于软件的解决方案,虽然有效,但比较慢。为了提高性能,可以定义一个硬件寄存器来指出是否有数据被DMA控制器182写入块C。这个寄存器在这里称为修改记录寄存器(MRR)186,较为详细地示于图3。MRR包括多个比特,每个比特与一个所定义的存储器块对应。因此,由图3可见,MRR的比特0与存储器块0对应;MRR的比特1与存储器块1对应,诸如此类,直到最后的与存储器块N对应的比特N。最初将MRR清为全零。在出现DMA控制器对在MRR内具有对应比特的存储器块中的一个的写操作时,对应比特就被置位为1,以指出该存储器块中有些内容已被DMA控制器修改。注意,与MRR比特对应的存储器块可以具有任何适当等级的粒度。在IBM开发的iSeries计算机系统的一个典型实现中,每个存储器段为一页,或者4k字节。通过为128字节的高速缓存行来完成每个页。如果页内有任何高速缓存行被DMA控制器修改,与该页对应的比特就被置位为1。因此,在图2中的步骤230的将数据从块A移至块B后,就可以扫描MRR,以确定哪些比特被置位为1。在最为优选的实现中,每次一个比特地对MRR进行扫描。在遇到1时,则将对应的数据块写入块B,然后将这个比特清为0。以串行方式每次一个比特一直继续,直到与MRR内所有为1的比特对应的数据都已拷贝到块B。注意,在对MRR清零的过程期间,可能会出现DMA传送,这可能会将已经扫描过的比特置位为1。因此,在将MRR内所有为1的比特清零后,再次对MRR进行扫描,以确定在处理MRR期间有没有出现DMA传送。如果有比特为1,则将对应的数据块写入块B。这个过程一直继续,直到MRR为全零,表示从上次检验MRR以来没有出现过DMA传送。因此,这个优选实施例确保在启用了DMA访问的情况下当运行虚拟存储器管理器时的数据一致性。
参见图4,方法240表示在使用图3所示的MRR 186时图2中的步骤240的一个适当实现。对于每个写入块C的操作,将1写入与写入位置对应的MRR比特(步骤410)。如果MRR为全零(步骤420=是),DMA控制器没有写入块C,因此将写入C设置为假(步骤430)。如果MRR不全零(步骤420=否),表明DMA控制器写入过块C,因此将写入C设置为真(步骤440)。于是方法240完成。MRR 186为确定DMA控制器是否在虚拟存储器管理器将数据从块A移至块B期间执行过任何写入块C的操作提供了一种快捷和高效的方式。再来看图1,DMA控制器182内的硬件在允许转换表184内的地址被改变前强制MRR 186为全零。
优选实施例提供了一种虚拟存储器管理器在存储器内传送数据块而不必担心数据会被DMA传送破坏的方式。首先定义临时块,并改变DMA控制器内的转换表,使得未来写入将是对临时块的。然后,移动存储器内的数据,再检验在移动期间DMA控制器是否写入过临时块。如果是,还移动写入临时块的数据,这个过程一直继续,直到DMA控制器没有写过临时块。这样,就确保在启用了DMA访问的运行虚拟存储器管理器的系统中的数据一致性。
本领域的技术人员可以理解在本发明的范围内许多变动都是可行的。因此,虽然本发明是结合其优选实施例具体进行说明的,但本领域的技术人员可以理解,在不背离本发明的精神和范围的情况下在形式上和细节上都可以对这些优选实施例进行这些和其他一些改变。

Claims (20)

1.一种设备,包括:
至少一个处理器;
与至少一个处理器耦接的直接存储器访问(DMA)控制器;
与DMA控制器和与至少一个处理器耦接的存储器;以及
驻留在存储器内并由至少一个处理器执行的虚拟存储器管理器,虚拟存储器管理器在存储器内创建临时块,改变DMA控制器内的地址转换表,以使DMA控制器的未来写操作写入临时块,在存储器内将数据从第一块移至第二块,在将数据从第一块移至第二块后确定在虚拟存储器管理器将数据从第一块移至第二块期间是否出现过DMA控制器对临时块的任何写操作,以及如果确定结果为肯定则将在将数据从第一块移至第二块期间DMA控制器写入临时位置的数据从临时位置写入第二块。
2.权利要求1的设备,所述设备还包括具有多个比特、每个比特与所定义的存储器块对应的硬件寄存器,其中如果DMA控制器将数据写入与每个比特对应的所定义的块,则该比特的值为1,并且如果DMA控制器没有将数据写入与该比特对应的所定义的块,则该比特的值为0。
3.权利要求2的设备,其中所述硬件寄存器包括修改记录寄存器。
4.权利要求2的设备,其中所述硬件寄存器驻留在DMA控制器中。
5.权利要求2的设备,其中在对应的存储器块内的数据被写入第二块时,所述硬件寄存器的每个为1的比特被改变为0。
6.一种在存储器内将数据从第一块移至第二块的计算机实施的方法,所述方法包括下列步骤:
(A)在存储器内创建临时块;
(B)改变DMA控制器内的地址转换表,以使DMA控制器的未来写操作写入临时块;
(C)在存储器内将数据从第一块移至第二块;
(D)在步骤(C)的数据移动后,确定在步骤(C)的数据移动期间是否出现过DMA控制器对临时块的任何写操作;以及
(E)如果在步骤(C)的数据移动期间出现过DMA控制器对临时块的任何写操作,将在步骤(C)的数据移动期间由DMA控制器所写的数据从临时位置写入第二块。
7.权利要求6的方法,还包括下列步骤:
(F)如果在步骤(E)的数据写期间出现过DMA控制器对临时块的任何写操作,将DMA控制器在步骤(E)的数据写期间所写的数据从临时位置写入第二块。
8.权利要求7的方法,还包括下列步骤:
(G)重复步骤(F),直到在步骤(F)的数据写期间没有数据要被DMA控制器写入临时单元。
9.权利要求8的方法,其中通过检验硬件寄存器的反映DMA控制器对临时块进行改变的状态来实现所述步骤(D)。
10.权利要求9的方法,其中所述硬件寄存器驻留在DMA控制器内。
11.权利要求9的方法,其中所述硬件寄存器包括多个比特,每个比特与所定义的存储器块对应,其中,如果DMA控制器将数据写入与每个比特对应的所定义的块,则该比特的值为1,并且如果DMA控制器没有将数据写入与该比特对应的所定义的块,则该比特的值为0。
12.权利要求11的方法,其中在对应的存储器块内的数据被写入第二块时,所述硬件寄存器的每个为1的比特被改变为0。
13.一种计算机程序,包括一组在计算机可读程序代码中实现的指令,用来控制数据处理设备的操作以提供虚拟存储器管理器,所述虚拟存储器管理器:
在存储器内创建临时块,
改变DMA控制器内的地址转换表,以使DMA控制器的未来写操作写入临时块,
在存储器内将数据从第一块移至第二块,
在将数据从第一块移至第二块后确定在虚拟存储器管理器将数据从第一块移至第二块期间是否出现过DMA控制器对临时块的任何写操作,以及
如果确定结果为肯定,则将在将数据从第一块移至第二块期间DMA控制器写入临时位置的数据从临时位置写入第二块。
14.一种计算机程序产品,包括:
(A)权利要求13的计算机程序;以及
(B)承载计算机程序的计算机可读信号承载媒体。
15.权利要求14的计算机程序产品,其中所述计算机可读信号承载媒体包括可记录媒体。
16.权利要求14的计算机程序产品,其中所述计算机可读信号承载媒体包括传输媒体。
17.权利要求13的计算机程序产品,其中所述虚拟存储器管理器在将数据从第一块移至第二块后,通过读包括多个比特、每个比特与存储器内的所定义的数据块对应的硬件寄存器来确定在虚拟存储器管理器将数据从第一块移至第二块期间是否出现过DMA控制器对临时块的任何写操作,其中如果DMA控制器将数据写入与每个比特对应的所定义的块,则该比特的值为1,并且如果DMA控制器没有将数据写入与该比特对应的所定义的块,则该比特的值为0。
18.权利要求17的计算机程序产品,其中所述硬件寄存器包括修改记录寄存器。
19.权利要求17的计算机程序产品,其中所述硬件寄存器驻留在DMA控制器内。
20.权利要求17的计算机程序产品,其中在对应存储器块内的数据被写入第二块时,所述硬件寄存器的每个为1的比特被改变为0。
CN200680036765A 2005-10-07 2006-10-03 处理直接存储器访问请求的设备和方法 Expired - Fee Related CN100589089C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/246,824 2005-10-07
US11/246,824 US7725620B2 (en) 2005-10-07 2005-10-07 Handling DMA requests in a virtual memory environment

Publications (2)

Publication Number Publication Date
CN101278270A true CN101278270A (zh) 2008-10-01
CN100589089C CN100589089C (zh) 2010-02-10

Family

ID=37912128

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680036765A Expired - Fee Related CN100589089C (zh) 2005-10-07 2006-10-03 处理直接存储器访问请求的设备和方法

Country Status (7)

Country Link
US (2) US7725620B2 (zh)
EP (1) EP1934762B1 (zh)
JP (1) JP4629779B2 (zh)
CN (1) CN100589089C (zh)
AT (1) ATE450831T1 (zh)
DE (1) DE602006010893D1 (zh)
WO (1) WO2007042428A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521010A (zh) * 2010-11-03 2012-06-27 微软公司 虚拟化以及卸载读和写
CN102741820A (zh) * 2010-02-08 2012-10-17 微软公司 虚拟存储器的后台迁移
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4770602B2 (ja) * 2006-06-23 2011-09-14 株式会社デンソー 電子機器
US20080229053A1 (en) * 2007-03-13 2008-09-18 Edoardo Campini Expanding memory support for a processor using virtualization
US8903966B2 (en) * 2011-06-01 2014-12-02 International Business Machines Corporation Re-programming programmable hardware devices without system downtime
WO2014068607A1 (en) * 2012-10-30 2014-05-08 Hitachi, Ltd. Computer system and method for updating configuration information
US9582223B2 (en) 2014-04-14 2017-02-28 International Business Machines Corporation Efficient reclamation of pre-allocated direct memory access (DMA) memory

Family Cites Families (13)

* 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
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
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
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
US7574709B2 (en) * 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US20060069818A1 (en) * 2004-09-27 2006-03-30 Cliff Mather Synchronizing direct memory access and evacuation operations in a computer system
US20060181949A1 (en) * 2004-12-31 2006-08-17 Kini M V Operating system-independent memory power management
US20070074067A1 (en) * 2005-09-29 2007-03-29 Rothman Michael A Maintaining memory reliability

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102741820A (zh) * 2010-02-08 2012-10-17 微软公司 虚拟存储器的后台迁移
CN102741820B (zh) * 2010-02-08 2015-04-01 微软公司 虚拟存储器的后台迁移
US9081510B2 (en) 2010-02-08 2015-07-14 Microsoft Technology Licensing, Llc Background migration of virtual storage
US10025509B2 (en) 2010-02-08 2018-07-17 Microsoft Technology Licensing, Llc Background migration of virtual storage
CN102521010A (zh) * 2010-11-03 2012-06-27 微软公司 虚拟化以及卸载读和写
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
CN102521010B (zh) * 2010-11-03 2016-05-11 微软技术许可有限责任公司 虚拟化以及卸载读和写
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US11614873B2 (en) 2011-03-11 2023-03-28 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size

Also Published As

Publication number Publication date
JP4629779B2 (ja) 2011-02-09
EP1934762B1 (en) 2009-12-02
EP1934762A2 (en) 2008-06-25
US20080244112A1 (en) 2008-10-02
ATE450831T1 (de) 2009-12-15
US20070083681A1 (en) 2007-04-12
US7725620B2 (en) 2010-05-25
DE602006010893D1 (de) 2010-01-14
WO2007042428A2 (en) 2007-04-19
WO2007042428A3 (en) 2007-06-28
JP2009512004A (ja) 2009-03-19
CN100589089C (zh) 2010-02-10

Similar Documents

Publication Publication Date Title
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
CN110232037B (zh) 主机系统及其方法和加速装置
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
US10002085B2 (en) Peripheral component interconnect (PCI) device and system including the PCI
CN100543709C (zh) 迁移数据页面的方法和装置
EP2016499B1 (en) Migrating data that is subject to access by input/output devices
EP3992790B1 (en) Information processing method, physical machine and pcie device
US7721023B2 (en) I/O address translation method for specifying a relaxed ordering for I/O accesses
US20060123142A1 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
US8255639B2 (en) Partition transparent correctable error handling in a logically partitioned computer system
KR100347076B1 (ko) 2차 버스로부터의 메시징 유닛 액세스
US6105080A (en) Host adapter DMA controller with automated host reply capability
US10459662B1 (en) Write failure handling for a memory controller to non-volatile memory
CN1679009B (zh) 允许对内部配置寄存器的外部访问的方法及设备
US20060120376A1 (en) Method and apparatus for providing peer-to-peer data transfer within a computing environment
CN104123173A (zh) 一种实现虚拟机间通信的方法及装置
US20220335109A1 (en) On-demand paging support for confidential computing
EP1839148A2 (en) Transferring data between system and storage in a shared buffer
CN110928682A (zh) 外部设备访问计算机内存的方法
CN111045961A (zh) 数据处理方法及使用所述方法的存储控制器
US20240202156A1 (en) Device and method for adaptive bus protocol
US20230136091A1 (en) High-performance storage infrastructure offload

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: 20170717

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: 20100210

Termination date: 20171003

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