CN101410812B - 用于迁移受到输入/输出设备访问的数据的方法和设备 - Google Patents
用于迁移受到输入/输出设备访问的数据的方法和设备 Download PDFInfo
- Publication number
- CN101410812B CN101410812B CN2007800108688A CN200780010868A CN101410812B CN 101410812 B CN101410812 B CN 101410812B CN 2007800108688 A CN2007800108688 A CN 2007800108688A CN 200780010868 A CN200780010868 A CN 200780010868A CN 101410812 B CN101410812 B CN 101410812B
- Authority
- CN
- China
- Prior art keywords
- page
- data
- migration
- source
- destination
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Bus Control (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种计算机实现方法、数据处理系统以及计算机可用程序代码,用于迁移可由使用直接存储器访问的设备访问的数据。接收迁移数据的请求。响应于迁移所述数据的请求,将所述数据从源页面迁移到目的地页面。从所述源页面读取所述直接存储器访问的读数据。将所述直接存储器访问的写数据存储在所述源页面和所述目的地页面这二者中。
Description
技术领域
本申请一般地涉及数据处理领域。更特别地,本申请涉及迁移受到输入/输出设备访问的数据。
背景技术
在计算机系统运行时可以实现对计算机系统的重新配置。然而,这样做常常需要中断数据处理操作。例如,如果在计算机上运行多个操作系统,则可能需要重新分配正由第一操作系统使用的存储块,以便其可以由第二操作系统使用。常规地,这种情况需要第一操作系统在物理存储块被重新分配之前停止使用该物理存储块。作为另一个例子,当在物理存储块中检测到问题的时候,可能期望从操作中移除该存储器以便能够对其进行替换。此外,在替换过程期间,正在使用存储块的操作系统必须停止使用该存储块。
常常可以通过使用当前操作系统中可用的虚拟存储管理机制来重新配置计算机系统而无需中断数据处理操作。然而,当待移动的存储块受到输入/输出(I/O)设备访问(通常被称为直接存储器访问(DMA))的时候,这些机制并不令人满意。特别地,受到I/O设备访问的存储块按照惯例被“钉住(pinned)”,即,避免被移动,因为对这些存储块的访问是通过本质上无穷尽的I/O程序(只要操作系统运行其就运行)来维护的;并且停止这样的I/O程序将破坏系统。
有可能使将要被迁移的存储块(也被称为“页面”)的I/O地址转换条目无效。然后,如果I/O设备试图访问该页面,则无效的转换条目将导致报告I/O页面故障,并且I/O设备驱动器将不得不响应。也就是说,在该页面再次变得可用之后,驱动器将重新启动I/O操作。然而,为了该过程起作用,有可能会访问该页面的所有I/O设备的设备驱动器将不得不实现I/O页面故障恢复代码,这并不是实用的解决方案。
认识到用于迁移受到I/O设备访问的数据的现有机制的缺陷,一种解决方案涉及一种用于迁移数据的机制,其中,对于访问正被迁移的数据的I/O适配器的DMA操作在一段短时间内被禁用。虽然该机制在很多应用中都有效,但是工业标准PCI-E总线并不含有用于在不对去往/来自I/O适配器的其它转移造成不利影响的情况下暂时禁用DMA操作的机制。
发明内容
不同的说明性实施例提供了一种计算机实现的方法、数据处理系统以及计算机可用程序代码,用于迁移可由使用直接存储器访问的设备来访问的数据。说明性实施例接收对于迁移数据的请求,以及响应于所述请求,将所述数据从源页面迁移到目的地页面。说明性实施例确保从所述源页面读取直接存储器访问的读数据。说明性实施例还确保将直接存储器访问的写数据存储在所述源页面和所述目的地页面这二者中。
附图说明
现在将参照附图,仅通过举例的方式来描述本发明,在附图中:
图1描绘了可以在其中实现说明性实施例的数据处理系统的网络的图形表示;
图2描绘了可以在其中实现说明性实施例的数据处理系统的框图;
图3依照说明性实施例描绘了说明数据处理系统的相关细节的框图;
图4A依照说明性实施例描绘了示意性说明在迁移之前的迁移数据的例子的示图;
图4B依照说明性实施例描绘了示意性说明在迁移之后所迁移的数据的例子的示图;以及
图5依照说明性实施例描绘了说明迁移受到I/O设备访问的数据的操 作的流程图。
具体实施方式
这些说明性实施例适合用于迁移受到输入/输出设备访问的数据。现参照附图,并且特别参照图1至图2,提供了可以在其中实现本发明的实施例的数据处理环境的示例图。应当理解图1至图2仅是示例性的,而并不打算主张或暗示关于可以在其中实现不同实施例的环境的任何限制。可以对所描述的环境进行很多修改。
现参照附图,图1描述了可以在其中实现说明性实施例的数据处理系统的网络的图形表示。网络数据处理系统100是可以在其中实现实施例的计算机的网络。网络数据处理系统100含有网络102,其是用于在网络数据处理系统100内连在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆的连接。
在所描述的例子中,服务器104和服务器106与存储单元108一起连接至网络102。另外,客户机110、112和114连接至网络102。这些客户机110、112和114可以是例如个人计算机或网络计算机。在所描述的例子中,服务器104向客户机110、112和114提供诸如引导文件、操作系统映像以及应用这样的数据。在该例中,客户机110、112和114是服务器104的客户机。网络数据处理系统100可以包括附加的服务器、客户机和未示出的其它设备。
在所描述的例子中,网络数据处理系统100是具有网络102的因特网,网络102代表使用传输控制协议/网际协议(TCP/IP)协议组来相互通信的全世界的网络和网关的集合。处于因特网核心的是主节点或主计算机之间的高速数据通信线路的主干线,包括路由数据和消息的成千上万的商业、政府、教育和其它的计算机系统。当然,还可以将网络数据处理系统100实现为许多不同类型的网络,举例来说,像内联网、局域网(LAN)或广域网(WAN)。图1意在举例,而并不作为对不同实施例的体系结构限制。
现参照图2,其示出了可以在其中实现说明性实施例的数据处理系统 的框图。数据处理系统200是诸如图1中的服务器104或客户机110这样的计算机的例子,可以在其中安置实现用于说明性实施例的过程的计算机可用代码或指令。
在所描绘的例子中,数据处理系统200采用包括北桥和存储控制器集线器(MCH)202以及南桥和输入/输出(I/O)控制器集线器(ICH)204在内的集线器体系结构。处理器206、主存储器208以及图形处理器210耦合于北桥和存储控制器集线器202。举例来说,图形处理器210可以通过加速图形端口(AGP)而耦合于MCH。
在所描绘的例子中,局域网(LAN)适配器212耦合于南桥和I/O控制器集线器204,并且音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)端口和其它通信端口232,以及PCI/PCIe设备234通过总线238耦合于南桥和I/O控制器集线器204,并且硬盘驱动器(HDD)226和CD-ROM驱动器230通过总线240耦合于南桥和I/O控制器集线器204。PCI/PCIe设备可以包括,例如,以太网适配器、附加卡(add-in cards)以及用于笔记本计算机的PC卡。PCI使用卡式总线控制器,而PCIe并不使用。ROM224可以是,例如,闪速二进制输入/输出系统(BIOS)。硬盘驱动器226和CD-ROM驱动器230可以使用,例如,集成驱动器电子电路(IDE)或串行高级技术配件(SATA)接口。超级I/O(SIO)设备236可以耦合于南桥和I/O控制器集线器204。
操作系统在处理器206上运行,并且协调和提供对图2中数据处理系统200内的各种组件的控制。操作系统可以是市售的操作系统,例如MicrosoftWindowsXP(Microsoft和Windows是微软公司在美国、其它国家或二者的商标)。面向对象的编程系统,例如JavaTM编程系统,可以结合操作系统运行并且从在数据处理系统200上执行的Java程序或应用向操作系统提供调用(Java和所有基于Java的商标是Sun Microsystems公司在美国、其它国家或二者的商标)。
用于操作系统、面向对象的编程系统以及应用或程序的指令位于诸如 硬盘驱动器226这样的存储设备上,并且可以被加载到主存储器208中给处理器206执行。可以由处理器206使用计算机实现的指令来实现说明性实施例的过程,举例来说,计算机实现的指令可以位于诸如主存储器208、只读存储器224的存储器中,或者位于一个或多个外围设备中。
图1至图2中的硬件可以取决于实现而变化。除了图1至图2中所描述的硬件之外,或者代替图1至图2中所描述的硬件,可以使用其它的内部硬件或外围设备,例如闪速存储器、等效非易失性存储器或光盘驱动器等。此外,可以将说明性实施例的过程应用于多处理器数据处理系统。
在一些说明性的例子中,数据处理系统200可以是个人数字助理(PDA),其通常被配置具有闪速存储器,以便提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。总线系统可以包括一种或多种总线,例如系统总线、I/O总线和PCI总线。当然,可以使用在依附于构造或体系结构的不同组件或设备之间提供数据传递的任何类型的通信构造或体系结构来实现总线系统。通信单元可以包括用于发送和接收数据的一个或多个设备,例如调制解调器或网络适配器。存储器可以是,例如,主存储器208或者诸如在北桥和存储控制器集线器202中找到的高速缓存。处理单元可以包括一个或多个处理器或CPU。图1至图2中所描述的例子以及上述例子并不意味着暗示体系结构限制。例如,数据处理系统200除了采取PDA的形式之外,还可以是平板计算机(tablet computer)、膝上型计算机或电话设备。
图3依照示例性实施例描绘了说明数据处理系统的相关细节的框图。该系统通常由参考数字300标明,并且可以在图2的数据处理系统200中实现。数据处理系统300通常包括处理单元302、易失性存储器304、多个I/O设备306、308和310以及I/O桥接器312。在图3所示的示例性实施例中,数据处理系统300采用PCIe体系结构,并且I/O桥接器312包括PCI主桥接器(PHB)。
如文中所使用的,术语“I/O设备”可以包括连接到计算机系统并且向系统提供信息和/或从系统接收信息的各种设备中的任何设备。I/O设备 的例子包括存储器、鼠标、键盘、显示器、打印机、光学扫描仪等。在图3所示的示例性实施例中,I/O设备306包括非易失性存储器,例如存储数据316的块314的磁盘存储器。
可以将数据316的块314从I/O设备306写至易失性存储器304。块314被称为“物理页面”318,与其在易失性存储器304中的实际物理位置有关。易失性存储器304有时也被称为“物理存储器”。
易失性存储器304中的物理页面318可被I/O设备306、308和310以及数据处理系统300的处理单元(“CPU”)302访问。更具体而言,物理页面318通过总线320耦合于I/O桥接器312,并且I/O设备306、308和310分别通过I/O适配器322、324和326以及I/O总线334的分段328、330和332耦合于I/O桥接器312。
I/O桥接器312包括I/O桥接器逻辑336,其在I/O设备之间进行仲裁,即准许I/O设备每次一个地访问I/O总线334,并且从I/O总线334到总线320。I/O桥接器312还包括I/O数据缓冲器338,用于响应于I/O设备的请求,高速缓存来自物理页面318或来自I/O设备(例如I/O设备306)的数据316。I/O桥接器逻辑336包括用于处理数据缓冲的逻辑。在所说明的实施例中,I/O桥接器逻辑336还包括I/O控制器340,其也被称为I/O处理器。
数据处理系统302执行操作系统和固件指令,其映像在图3的数据处理系统中被表示为操作系统344和固件346。由数据处理系统302执行的指令包括来自固件346的指令,来自操作系统344的在固件346支持下运行的指令,以及在固件346和操作系统344支持下运行的应用指令(未示出)。应当理解,固件346实质上独立于操作系统344而运行在数据处理系统302上,并且其提供了更低级别的接口,因此比操作系统344更多地访问诸如数据处理系统302这样的硬件组件。
在某些方面,操作系统344向运行在数据处理系统302上的应用呈现数据316的块314的视图,表现为虚拟存储器348的页面,以便数据316的实际位置是完全透明的,而不管数据是在例如易失性存储器304中还是 在I/O设备306上。因此,操作系统344包括分页机制350和页面表352,用于在某种程度上将数据316透明地移入和移出易失性存储器304。
关于I/O设备虚拟存储器354,操作系统344指导I/O桥接器逻辑336通过转换控制条目(“TCE”)表356中的条目来将数据316的块314映射到物理页面318。在所说明的实施例中,固件346提供的服务被用于将数据从物理页面318中的一个页面移至物理页面318中的另一页面,从而使得第一页面能够被用于不同的服务或处于空闲。为了实现该功能,操作系统344在TCE表356中为物理页面318中的第一页面找到具有一个或多个条目的一组条目。然后,操作系统344指导固件346组件(例如页面复制软件358)将数据从物理页面318中与I/O设备虚拟存储器354中的给定页面相关联的第一物理页面复制到物理页面318中的第二物理页面,然后在TCE表356中改变关联的映射,以便将来对I/O设备虚拟存储器354的访问被导向第二物理页面。页面复制软件358具有将在下文详细描述的多种功能。
为了理解TCE表356,考虑I/O设备306、308和310,其分别具有其自己的数据316的视图,表现为I/O设备虚拟存储器354的页面,类似于数据处理系统302的虚拟存储器视图。I/O桥接器逻辑336向I/O设备306、308和310呈现该视图。为了维护该视图,TCE表356中的条目(图3中未示出)将数据316的块314映射到I/O设备虚拟存储器354中的页面。因此,I/O设备可以通过参考I/O设备虚拟存储器354中的页面来引用数据316,而不管该数据的实际位置,即,不管哪个物理页面318可能当前正存储着该数据。
I/O桥接器312提供了I/O桥接器逻辑336,其介于总线320与I/O总线334之间。I/O总线334上的存储请求从I/O设备进入,具有反映I/O设备虚拟存储器354的虚拟地址。地址转换逻辑360有效地访问TCE表356(以I/O设备虚拟页面顺序保存该表),以便确定为了访问物理页面318中与来自I/O总线334的存储请求相关联的正确物理页面而应当应用于总线320的物理页面地址。
图4A依照说明性实施例描绘了示意性说明在迁移之前的迁移数据的例子的示图。根据说明性实施例,较为详细地示出了TCE表402、多个物理页面404,以及I/O设备虚拟存储页面406,以便说明从物理页面404中的第一物理页面迁移数据的例子。TCE表402可以是诸如图3的TCE表356这样的TCE表,物理页面404可以是诸如图3的物理页面318这样的物理页面,并且I/O设备虚拟存储页面406可以是诸如图3的I/O设备虚拟存储器354中的页面这样的页面。具体而言,如图4A和图4B所示,物理页面404的各个页面可以被称为404.1、404.2等。
在所说明的例子中,来自页面404.3的数据是迁移的目标。从各个I/O设备的视角示出了I/O设备虚拟存储页面406,等等。也就是说,第一组I/O设备虚拟存储页面406.1用于诸如图3的盘306这样的第一I/O设备,第二组页面406.2用于诸如图3的设备308这样的第二I/O设备,并且第三组406.3被示为用于诸如图3的I/O设备310这样的第三I/O设备。
区段408、410和412在各自的区段中包括对于TCE表402所示出的特定条目408.X、410.X和412.X。这些区段408、410和412对应于相应的I/O设备,例如图3的I/O设备306、308和310。以这种方式,条目在表402中所处的区段指示了可以访问对应于该条目的物理页面的I/O设备。在所说明的例子中,目标物理页面404.3被第一I/O设备视为I/O设备虚拟存储页面406.1.5,而被第三I/O设备视为I/O设备虚拟存储页面406.3.2。基于表402的第二区段410中缺乏用于页面404.3的条目,诸如图3的页面复制软件358这样的页面复制软件便确定第二I/O设备不具有到页面404.3的映射。也就是说,页面404.3不受到第二I/O设备的访问。
总结上述内容,页面复制软件通过在表402中发现物理页面404.3的条目,已经标识出可以访问页面404.3的I/O设备(以及不可以访问页面404.3的那些I/O设备)。具体而言,在该例中,页面复制软件已经确定第一I/O设备和第三I/O设备可以访问页面404.3。
为了允许直接存储器访问(DMA)操作,I/O适配器向页面404.3写数据或从页面404.3读数据,说明性实施例认识到,只要直接存储器访问读数据是从源迁移页面读取的并且直接存储器访问写数据被存储在迁移源页面以及迁移目的地页面这二者中,那么在处理器将迁移源页面复制到迁移目的地页面的时间期间,直接存储器访问操作就可以继续。
说明性实施例进一步认识到,当处理器将迁移源页面复制到迁移目的地页面的时候,源页面中的数据可以不是静态的。因此,数据复制操作必须将来自源的原子数据段复制到目的地,并且然后检验出在源位置中的数据仍然是一样的。
根据示例性实施例,在TCE表中定义了迁移模式比特。TCE表中的低阶12比特被保留用于控制目的。迁移模式比特将间接级别(a level ofindirection)插入到TCE读取过程。原始TCE的真实地址部分指向16字节迁移描述符。16字节迁移描述符的最初8个字节以TCE格式提供了源页面的真实地址,并且随后的8个字节也以TCE格式提供了目的地页面的真实地址。
对迁移模式比特的开启如下修改了DMA操作的处理器主桥接器(PHB)处理:
A.DMA读操作:
1.读取TCE,并且确定迁移比特被设置为开启;
2.读取迁移描述符的最初8个字节,其仅提供一个周期的间接;
3.读取由源页面TCE所指定的DMA读数据;以及
4.通过源页面来提供DMA读数据。
B.DMA写操作:
1.读取TCE,并且确定迁移比特被设置为开启;
2.读取整个16字节的迁移描述符;
3.对于每个源TCE,将数据相关地写入源页面(注意:高速缓存的副本必须在下一次写之前被无效。);以及
4.对于每个目的地TCE,将数据相关地写入目的地页面(注意:高速 缓存的副本必须在下一次写之前被无效。)
为了将数据从一个物理存储位置迁移到另一个物理存储位置,页面复制软件实现以下功能:
A.设置迁移描述符,在迁移块内被唯一映射的每个物理块均需要一个迁移描述符;
B.设置映射到迁移块的TCE,以便访问适当的迁移描述符;
C.循环通过源页面,例如,对于每个源页面字,循环通过源页面,直到源字(source word)在存储之后是相同的,以便获得在复制期间DMA写入对数据进行改变的情况:
a.加载源字;
b.将字存储到目标页面;
c.重新加载源字用于测试;以及
d.结束循环;以及
D.将TCE设置成迁移描述符的目的地页面字段中的值。
现在参照图4B,其依照说明性实施例描绘了示意性说明在迁移之后所迁移的数据的例子的示图。如图4B所示,页面复制软件将数据从第一物理页面404.3移至第二物理页面404.5。一旦移动了数据,页面复制软件就更新TCE表402中的条目集合。如图所示,在更新之后,条目408.4使得虚拟页面406.1.5引用新的物理页面404.5,并且条目412.1使得虚拟页面406.3.2引用新的物理页面404.5。
图5依照说明性实施例描绘了说明迁移受到I/O设备访问的数据的操作的流程图。在这些例子中,可以在诸如图3的页面复制软件358这样的组件中实现该过程。当操作开始的时候,接收请求,以便将数据从物理页面“X”移至物理页面“Y”(步骤502)。页面复制软件在引用了迁移源页面和迁移目的地页面的转换控制条目迁移块中设置迁移描述符(步骤504)。正被迁移的每个物理页面均需要迁移描述符。页面复制软件然后将一个或多个TCE设置成指向迁移块,以便TCE可以访问迁移描述符(步骤506)。然后,页面复制软件开始循环通过迁移源页面(步骤508)。
页面复制软件一次循环通过迁移源页面n个字节,从而使得迁移存储(migration store)是相同的,以便获得如果在迁移期间发生DMA写入而可能进行的改变。因而,页面复制软件一次加载迁移源页面数据n个字节(步骤510)。将n个字节存储到迁移目的地页面(步骤512)。重新加载迁移源页面数据,以便确定迁移有效(步骤514)。如果所存储的目的地页面不同,则重新加载的迁移源页面数据被存储在目的地页面,并且检验过程重复。一旦来自迁移源页面的所有数据都已经被移至迁移目的地页面,则循环结束(步骤516)。因此,一旦迁移开始,任何的DMA写入都是对迁移源页面以及迁移目的地页面这二者进行的;然而,循环过程确保迁移源页面数据与迁移目的地页面数据相同。最后,页面复制软件将TCE表中的TCE设置成迁移描述符中所指定的目的地页面值(步骤518),且此后操作结束。
因而,说明性实施例接收迁移数据的请求,并且响应于该请求,将数据从源页面迁移到目的地页面。说明性实施例确保直接存储器访问的读数据是从源页面读取的,并且确保直接存储器访问的写数据被存储在源页面以及目的地页面这二者中。
本发明可以采取全硬件实施例、全软件实施例或者既含有硬件元素又含有软件元素的实施例的形式。在优选的实施例中,以软件实现本发明,其包括但不限于固件、常驻软件、微码等。
此外,本发明可以采取可访问于计算机可用或计算机可读介质的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的程序代码。对于该描述来说,计算机可用或计算机可读介质可以是能够容纳、存储、通信、传播或传送由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何有形装置。
介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可装卸计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、 硬磁盘和光盘。光盘的当前的例子包括只读光盘存储器(CD-ROM)、读/写光盘(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统可以包括通过系统总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所采用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供对至少一些程序代码的临时存储的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过插入I/O控制器耦合于系统。
网络适配器也可以耦合于系统,从而使得数据处理系统能够适于通过介入专用或公用网络而耦合于其它的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡正是几种当前可用类型的网络适配器。
已经出于说明和描述的目的给出了对本发明的描述,但并不旨在以所公开的形式穷举或限制本发明。对本领域的普通技术人员来说,很多修改和变形将是显而易见的。所选择和描述的实施例是为了最好地解释本发明的原理、实际应用,以及使本领域的普通技术人员能够针对适于预期的特定用途的各种实施例以及各种修改来理解本发明。
Claims (16)
1.一种用于迁移可由使用直接存储器访问的设备访问的数据的计算机实现方法,所述计算机实现方法包括:
响应于迁移源页面中的数据的请求,将所述数据从所述源页面迁移到目的地页面;
在将所述数据从所述源页面迁移到所述目的地页面期间,从所述源页面读取任何直接存储器访问的读数据;以及
在将所述数据从所述源页面迁移到所述目的地页面期间,将任何直接存储器访问的写数据存储在所述源页面和所述目的地页面中。
2.根据权利要求1的计算机实现方法,其中,将所述数据从所述源页面迁移到所述目的地页面包括:
响应于接收到迁移所述数据的请求,在所述数据的迁移块中设置迁移描述符,其中所述迁移描述符提供了所述源页面的真实地址以及所述目的地页面的真实地址;
在转换控制条目表中设置映射到所述迁移块的转换控制条目,以便访问所述迁移描述符;
循环通过所述源页面,其中,循环过程确保迁移源页面数据与迁移目的地页面数据相同;以及
将所述转换控制条目设置成所述迁移描述符中所指定的目的地页面值。
3.根据权利要求1的计算机实现方法,其中将所述数据从所述源页面迁移到所述目的地页面的步骤进一步包括:
加载源页面数据;
在所述目的地页面处存储所述源页面数据;
重新加载所述源页面数据以便形成重新加载的源页面数据;
将所述重新加载的源页面数据与所存储的目的地页面数据进行检验;以及
响应于所述检验一致,结束数据迁移。
4.根据权利要求3的计算机实现方法,其进一步包括:
响应于所述检验失败,在所述目的地页面处存储所述重新加载的源页面数据;
重新加载所述源页面数据以便形成新的重新加载的源页面数据;
将所述新的重新加载的源页面数据与所存储的目的地页面数据进行检验;以及
响应于所述检验一致,结束所述数据迁移。
5.根据权利要求2的计算机实现方法,其中确保所述直接存储器访问的写数据被存储在所述源页面和所述目的地页面中的步骤进一步包括:
在转换控制条目中设置迁移模式比特;
从所述转换控制条目表中读取所述转换控制条目,并且确定所述迁移模式比特被设置为开启,其中,对迁移模式比特的开启修改了直接存储器访问操作的处理器主桥接器处理;
读取整个迁移描述符,其中所述迁移描述符提供了所述源页面的真实地址以及所述目的地页面的真实地址;以及
将数据相关地写入所述源页面以及所述目的地页面。
6.根据权利要求5的计算机实现方法,其中所述迁移模式比特将间接级别插入到所述转换控制条目的读取过程中。
7.根据权利要求2的计算机实现方法,其中确保所述直接存储器访问的读数据是从所述源页面读取的步骤进一步包括:
在转换控制条目中设置迁移模式比特;
从所述转换控制条目表中读取所述转换控制条目,并且确定所述迁移模式比特被设置为开启,其中,对迁移模式比特的开启修改了直接存储器访问操作的处理器主桥接器处理;
读取迁移描述符的一部分,其中,所述迁移描述符的一部分提供了所述源页面的真实地址;以及
从所述源页面相关地读出数据。
8.根据权利要求7的计算机实现方法,其中所述迁移模式比特将间接级别插入到所述转换控制条目的读取过程中。
9.一种用于迁移可由使用直接存储器访问的设备访问的数据的设备,其包括:
用于响应于迁移源页面中的数据的请求,将所述数据从所述源页面迁移到目的地页面的装置;用于在将所述数据从所述源页面迁移到所述目的地页面期间,从所述源页面读取任何直接存储器访问的读数据的装置;以及用于在将所述数据从所述源页面迁移到所述目的地页面期间,将任何直接存储器访问的写数据存储在所述源页面和所述目的地页面中的装置。
10.根据权利要求9的设备,其中,将所述数据从所述源页面迁移到所述目的地页面包括:响应于接收到迁移所述数据的请求,在所述数据的迁移块中设置迁移描述符,其中所述迁移描述符提供了所述源页面的真实地址以及所述目的地页面的真实地址;在转换控制条目表中设置映射到所述迁移块的转换控制条目,以便访问所述迁移描述符;循环通过所述源页面,其中,循环过程确保迁移源页面数据与迁移目的地页面数据相同;以及将所述转换控制条目设置成所述迁移描述符中所指定的目的地页面值。
11.根据权利要求9的设备,其中,将所述数据从所述源页面迁移到所述目的地页面包括:加载源页面数据;在所述目的地页面处存储所述源页面数据;重新加载所述源页面数据以便形成重新加载的源页面数据;将所述重新加载的源页面数据与所存储的目的地页面数据进行检验;以及响应于所述检验一致,结束数据迁移。
12.根据权利要求11的设备,其进一步包括:用于响应于所述检验失败,在所述目的地页面处存储所述重新加载的源页面数据的装置;用于重新加载所述源页面数据以便形成新的重新加载的源页面数据的装置;用于将所述新的重新加载的源页面数据与所存储的目的地页面数据进行检验的装置;以及用于响应于所述检验一致,结束所述数据迁移的装置。
13.根据权利要求10的设备,其中确保所述直接存储器访问的写数据被存储在所述源页面和所述目的地页面中的操作进一步包括:
在转换控制条目中设置迁移模式比特;
从所述转换控制条目表中读取所述转换控制条目,并且确定所述迁移模式比特被设置为开启,其中,对迁移模式比特的开启修改了直接存储器访问操作的处理器主桥接器处理;
读取整个所述迁移描述符,其中所述迁移描述符提供了所述源页面的真实地址以及所述目的地页面的真实地址;以及
将数据相关地写入所述源页面以及所述目的地页面。
14.根据权利要求13的设备,其中所述迁移模式比特将间接级别插入到所述转换控制条目的读取过程中。
15.根据权利要求10的设备,其中确保所述直接存储器访问的读数据是从所述源页面读取的操作进一步包括:
在转换控制条目中设置迁移模式比特;
从所述转换控制条目表中读取所述转换控制条目,并且确定所述迁移模式比特被设置为开启,其中,对迁移模式比特的开启修改了直接存储器访问操作的处理器主桥接器处理;
读取所述迁移描述符的一部分,其中,所述迁移描述符的一部分提供了所述源页面的真实地址;以及
从所述源页面相关地读出数据。
16.根据权利要求15的设备,其中所述迁移模式比特将间接级别插入到所述转换控制条目的读取过程中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/380,052 | 2006-04-25 | ||
US11/380,052 US7500072B2 (en) | 2006-04-25 | 2006-04-25 | Migrating data that is subject to access by input/output devices |
PCT/EP2007/053085 WO2007122063A1 (en) | 2006-04-25 | 2007-03-30 | Migrating data that is subject to access by input/output devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101410812A CN101410812A (zh) | 2009-04-15 |
CN101410812B true CN101410812B (zh) | 2011-05-04 |
Family
ID=38179831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800108688A Active CN101410812B (zh) | 2006-04-25 | 2007-03-30 | 用于迁移受到输入/输出设备访问的数据的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7500072B2 (zh) |
EP (1) | EP2016499B1 (zh) |
JP (1) | JP2009534767A (zh) |
CN (1) | CN101410812B (zh) |
AT (1) | ATE444528T1 (zh) |
DE (1) | DE602007002628D1 (zh) |
WO (1) | WO2007122063A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7734843B2 (en) * | 2006-05-25 | 2010-06-08 | International Business Machines Corporation | Computer-implemented method, apparatus, and computer program product for stalling DMA operations during memory migration |
TWI390399B (zh) * | 2008-11-17 | 2013-03-21 | Prolific Technology Inc | 具有虛擬儲存裝置之外接裝置 |
US8024496B2 (en) | 2009-04-10 | 2011-09-20 | International Business Machines Corporation | Enhanced memory migration descriptor format and 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 |
US9081764B2 (en) * | 2011-06-21 | 2015-07-14 | International Business Machines Corporation | Iimplementing DMA migration of large system memory areas |
CN103475682B (zh) * | 2012-06-07 | 2017-02-08 | 华为技术有限公司 | 文件迁移方法及设备 |
US9927988B2 (en) * | 2013-07-31 | 2018-03-27 | Hewlett Packard Enterprise Development Lp | Data move engine to move a block of data |
US9037753B2 (en) * | 2013-08-29 | 2015-05-19 | International Business Machines Corporation | Automatic pinning and unpinning of virtual pages for remote direct memory access |
CN104899218B (zh) * | 2014-03-06 | 2018-12-28 | 腾讯科技(深圳)有限公司 | 数据读写方法及数据读写装置 |
US10496496B2 (en) * | 2014-10-29 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Data restoration using allocation maps |
CN104536751B (zh) * | 2014-12-26 | 2018-04-06 | 小米科技有限责任公司 | 网页源码迁移方法和装置 |
US9841921B2 (en) * | 2016-04-27 | 2017-12-12 | Pure Storage, Inc. | Migrating data in a storage array that includes a plurality of storage devices |
CN110321225B (zh) * | 2019-07-08 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 负载均衡方法、元数据服务器及计算机可读存储介质 |
CN110647352B (zh) * | 2019-09-29 | 2023-06-30 | 金蝶软件(中国)有限公司 | 一种数据移植的方法、终端及存储介质 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5789128A (en) | 1980-11-25 | 1982-06-03 | Hitachi Ltd | Controlling system for information interchange |
EP0683457A1 (en) * | 1994-05-20 | 1995-11-22 | Advanced Micro Devices, Inc. | A computer system including a snoop control circuit |
JP2748862B2 (ja) * | 1994-06-15 | 1998-05-13 | 日本電気株式会社 | バスインタフェースアダプタ |
US5717952A (en) | 1994-11-16 | 1998-02-10 | Apple Computer, Inc. | DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command |
US6351780B1 (en) | 1994-11-21 | 2002-02-26 | Cirrus Logic, Inc. | Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated |
US5634099A (en) | 1994-12-09 | 1997-05-27 | International Business Machines Corporation | Direct memory access unit for transferring data between processor memories in multiprocessing systems |
JP2751880B2 (ja) * | 1995-06-30 | 1998-05-18 | 日本電気株式会社 | 情報処理装置 |
JP2000082011A (ja) * | 1998-05-13 | 2000-03-21 | Axis Ab | Dmaユニットによる改良されたメモリ・アクセスをする方法及びコンピュ―タ・システム |
US6393500B1 (en) | 1999-08-12 | 2002-05-21 | Mips Technologies, Inc. | Burst-configurable data bus |
US6421744B1 (en) | 1999-10-25 | 2002-07-16 | Motorola, Inc. | Direct memory access controller and method therefor |
US6845409B1 (en) | 2000-07-25 | 2005-01-18 | Sun Microsystems, Inc. | Data exchange methods for a switch which selectively forms a communication channel between a processing unit and multiple devices |
US7152151B2 (en) | 2002-07-18 | 2006-12-19 | Ge Fanuc Embedded Systems, Inc. | Signal processing resource for selective series processing of data in transit on communications paths in multi-processor arrangements |
US20020199040A1 (en) | 2001-06-26 | 2002-12-26 | Irwin David S. | High speed communications device/system |
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 |
US6865622B2 (en) | 2002-05-13 | 2005-03-08 | Intel Corporation | System including real-time data communication features |
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 |
US7200688B2 (en) | 2003-05-29 | 2007-04-03 | International Business Machines Corporation | System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command |
JP4215606B2 (ja) * | 2003-09-24 | 2009-01-28 | 日本電気株式会社 | ディスクアレイ装置および記憶容量拡張方法ならびにプログラム |
US20060069818A1 (en) | 2004-09-27 | 2006-03-30 | Cliff Mather | Synchronizing direct memory access and evacuation operations in a computer system |
US8621120B2 (en) * | 2006-04-17 | 2013-12-31 | International Business Machines Corporation | Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism |
-
2006
- 2006-04-25 US US11/380,052 patent/US7500072B2/en active Active
-
2007
- 2007-03-30 AT AT07727557T patent/ATE444528T1/de not_active IP Right Cessation
- 2007-03-30 WO PCT/EP2007/053085 patent/WO2007122063A1/en active Application Filing
- 2007-03-30 EP EP07727557A patent/EP2016499B1/en active Active
- 2007-03-30 JP JP2009507013A patent/JP2009534767A/ja active Pending
- 2007-03-30 CN CN2007800108688A patent/CN101410812B/zh active Active
- 2007-03-30 DE DE602007002628T patent/DE602007002628D1/de active Active
Also Published As
Publication number | Publication date |
---|---|
EP2016499B1 (en) | 2009-09-30 |
JP2009534767A (ja) | 2009-09-24 |
WO2007122063A1 (en) | 2007-11-01 |
EP2016499A1 (en) | 2009-01-21 |
US7500072B2 (en) | 2009-03-03 |
CN101410812A (zh) | 2009-04-15 |
DE602007002628D1 (de) | 2009-11-12 |
US20070260839A1 (en) | 2007-11-08 |
ATE444528T1 (de) | 2009-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101410812B (zh) | 用于迁移受到输入/输出设备访问的数据的方法和设备 | |
US8024496B2 (en) | Enhanced memory migration descriptor format and method | |
US10929130B2 (en) | Guarded storage event handling during transactional execution | |
US9836397B2 (en) | Direct memory access of dynamically allocated memory | |
US11010066B2 (en) | Identifying processor attributes based on detecting a guarded storage event | |
US10725685B2 (en) | Load logical and shift guarded instruction | |
CN100589089C (zh) | 处理直接存储器访问请求的设备和方法 | |
EP3571594B1 (en) | Loading and storing controls regulating the operation of a guarded storage facility | |
US10482008B2 (en) | Aligned variable reclamation | |
AU2018209084A1 (en) | Saving/restoring guarded storage controls in a virtualized environment | |
US8402221B2 (en) | Storing the most significant and the least significant bytes of characters at non-contiguous addresses | |
US8078793B1 (en) | Method, apparatus, and computer-readable medium for storing data on a non-volatile memory device | |
EP2115574B1 (en) | Employing a buffer to facilitate instruction execution | |
US20050256914A1 (en) | Symbolic links with a plurality of addresses | |
CN101201872A (zh) | 为硬件描述语言仿真器创建波形轨迹生成的方法和系统 |
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 |