CN103370697B - 数据控制系统、数据控制方法及数据控制程序 - Google Patents
数据控制系统、数据控制方法及数据控制程序 Download PDFInfo
- Publication number
- CN103370697B CN103370697B CN201280008715.0A CN201280008715A CN103370697B CN 103370697 B CN103370697 B CN 103370697B CN 201280008715 A CN201280008715 A CN 201280008715A CN 103370697 B CN103370697 B CN 103370697B
- Authority
- CN
- China
- Prior art keywords
- data
- equipment
- storage
- memory
- operating unit
- 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
Links
- 238000000034 method Methods 0.000 title claims description 205
- 238000003860 storage Methods 0.000 claims description 270
- 230000005540 biological transmission Effects 0.000 claims description 100
- 238000007726 management method Methods 0.000 claims description 40
- 238000013500 data storage Methods 0.000 claims description 36
- 230000003139 buffering effect Effects 0.000 claims description 16
- 230000005055 memory storage Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 abstract description 26
- 230000010076 replication Effects 0.000 description 68
- 238000010586 diagram Methods 0.000 description 27
- 230000006399 behavior Effects 0.000 description 10
- 239000000872 buffer Substances 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000026676 system process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100190806 Arabidopsis thaliana PLT3 gene Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 101100494367 Mus musculus C1galt1 gene Proteins 0.000 description 1
- 101150035415 PLT1 gene Proteins 0.000 description 1
- 101150095879 PLT2 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
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/16—Handling requests for interconnection or transfer for access to memory bus
-
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
Abstract
CPU80在核心模式下控制从第一设备到第二设备的数据传送。主要存储器90存储待从第一设备传送到第二设备的数据。CPU80具有:控制第一设备的第一设备控制装置81;控制第二设备的第二设备控制装置;以及数据传送控制装置83,数据传送控制装置83做出指令第一设备控制装置81将从第一设备读取的数据存储在主要存储器3中的读指令,以及做出指令第二设备控制装置82将存储在主要存储器3中的数据写入第二设备的写指令。
Description
技术领域
本发明涉及执行对在两个I/O(输入/输出)设备之间以高速移动数据的控制的数据控制系统、数据控制方法以及数据控制程序。
背景技术
专利文献1公开了一种计算机系统,该计算机系统能够在没有主要存储器的情况下,将电影数据从DVD(数字多功能盘)-ROM(只读存储器)接口直接传送给DVD解码器。在专利文献1中所公开的计算机系统中,DVD解码器具有主事务控制单元,该主事务控制单元能够起动I/O读事务,并且通过DVD控制驱动器进一步控制DVD解码器和DVD接口两者。根据这个配置,在没有主要存储器的情况下,将电影数据从DVD接口直接传送给DVD解码器。
专利文献2公开了一种计算器系统,该计算器系统能够通过一次输入/输出命令针对多个设备执行多个输入/输出命令。在专利文献2中所公开的计算器系统当输入/输出适配器从CPU接收输入/输出命令时,起动输入/输出操作。输入/输出适配器在数据传输时将存储器单元所指定的数据传送给适当的输入/输出控制设备,并且在数据接收时将数据从输入/输出控制设备传送给存储器单元的指定区域。同时,输入/输出控制设备具有存储数据的缓冲器。
另外,专利文献3公开了在不停止操作的情况下替换固件的存储子系统。在专利文献3中所公开的系统中,CPU在存储器区域中分配数据缓存区,并且控制盘控制单元来从逻辑盘读取数据。进一步,CPU将所读取的数据存储在存储器区域的数据缓存区中。
引文列表
专利文献
PLT1:日本专利申请特开No.10-143437
PLT2:日本专利申请特开No.8-44652
PLT3:日本专利申请特开No.2009-230484
发明内容
技术问题
将描述使用在专利文献1中所公开的计算机系统的常见系统的示例。图15描绘了图示使用专利文献1中所公开的计算机系统的常见数据传送系统的示例的说明性视图。在图15中所图示的系统具有CPU1、主要存储器3、DVD解码器406、DVD接口407以及连接相应设备的桥2。
DVD解码器406和DVD接口407通过PCI(外围组件互连)express总线501和PCI express总线502被连接到桥2。
主要存储器3存储程序305。程序305由CPU1进行读取,并且作为应用操作单元111、操作系统操作单元112和DVD控制驱动器操作单元113进行操作。进一步,应用操作单元111根据回放电影数据的程序进行操作。DVD控制驱动器操作单元113控制DVD解码器406和DVD接口407。采用这样的配置的常见系统操作如下。
即,当应用操作单元111做出电影数据回放请求时,DVD控制驱动器操作单元113指令DVD接口407为数据传送作准备。随后,DVD控制驱动器操作单元113指令DVD解码器406起动I/O事务以从DVD接口407读取电影数据。通过这种方式,将电影数据从DVD接口407直接传送给DVD解码器406。
这种常见系统在没有主要存储器3的情况下,将数据从DVD接口407直接传送给DVD解码器406,使得可以减少总线业务。进一步,这种常见系统不通过软件传送数据,并且因此,能够实现高速数据传送。
然而,在专利文献1中所公开的系统具有下述问题:在不支持直接数据传送操作的两个I/O设备之间实现高速数据传送是不可能的。即,如同专利文献1中所公开的系统,当被连接到PCI express总线的两个I/O设备直接传送数据时,存在I/O设备需要支持这种传送处理的问题。通常,I/O设备通过受CPU所操作的设备驱动器控制而仅传送去往和来自主要存储器的数据,并且因此,不支持在两个I/O设备之间直接传送数据的操作。
此外,为了将数据从一个I/O设备移动到另一个I/O设备,在专利文献2中所公开的计算器系统需要将诸如输入/输出适配器的另一个设备引入系统中,该另一个设备扮演对I/O设备的处理的替选角色。
因此,即使在如在专利文献2中所公开的计算器系统中的,不支持直接数据传送操作的I/O设备之间传送处理时,仍期望减少开销并且以高速传送数据。
因此,本发明的示例性目的是提供能够在不支持直接数据传送操作的两个I/O设备之间以高速传送数据的数据控制系统、数据控制方法以及数据控制程序。
问题的解决方案
根据本发明的数据控制系统具有:CPU,该CPU在核心模式下控制从第一设备到第二设备的数据传送;主要存储器,该主要存储器存储待从第一设备传送到第二设备的数据,以及该CPU具有:第一设备控制装置,该第一设备控制装置控制第一设备;第二设备控制装置,该第二设备控制装置控制第二设备;以及数据传送控制装置,该数据传送控制装置做出指令第一设备控制装置将从第一设备读取的数据存储在主要存储器中的读指令,以及做出指令第二设备控制装置将存储在主要存储器中的数据写入第二设备中的写指令。
根据本发明的数据控制方法包括:在在核心模式下控制从第一设备到第二设备的数据传送的CPU处,指令对该CPU的第一设备进行控制的第一设备控制装置将从第一设备读取的数据存储在主要存储器中;以及在该CPU处,指令对该CPU的第二设备进行控制的第二设备控制装置将存储在主要存储器中的数据写入第二设备中。
根据本发明的数据控制程序是应用到具有以下的计算机的数据控制程序:CPU,该CPU在核心模式下控制从第一设备到第二设备的数据传送;以及主要存储器,该主要存储器存储待从第一设备被传送到第二设备的数据,并且促使计算机执行:控制第一设备的第一设备控制处理;控制第二设备的第二设备控制处理;以及做出在第一设备控制处理中指令将从第一设备读取的数据存储在主要存储器中的读指令,以及做出在第二设备控制处理中指令将存储在主要存储器中的数据写入第二设备中的写指令的数据传送控制处理。
发明的有益效果
本发明能够在不支持直接数据传送操作的两个I/O设备之间以高速传送数据。
附图说明
[图1]其描绘了图示根据本发明的第一示例性实施例的数据控制系统的示例的框图。
[图2]其描绘了图示I/O数据传送驱动器操作单元的示例的框图。
[图3]其描绘了图示数据存储器的示例的说明性视图。
[图4]其描绘了图示根据第一示例性实施例的数据控制系统的操作示例的流程图。
[图5]其描绘了图示根据第一示例性实施例的数据控制系统的另一个操作示例的流程图。
[图6]其描绘了图示根据第一示例性实施例的数据控制系统的另一个操作示例的部分的流程图。
[图7]其描绘了图示根据本发明的第二示例性实施例的数据控制系统的示例的框图。
[图8]其描绘了图示I/O数据传送驱动器操作单元的示例的框图。
[图9]其描绘了图示根据本发明的第三示例性实施例的数据控制系统的示例的框图。
[图10]其描绘了图示存储复制驱动器操作单元的示例的框图。
[图11]其描绘了图示根据第三示例性实施例的数据控制系统的操作示例的流程图。
[图12]其描绘了图示根据第三示例性实施例的数据控制系统的另一个操作示例的流程图。
[图13]其描绘了图示根据第三示例性实施例的数据控制系统的另一个操作示例的一部分的流程图。
[图14]其描绘了图示根据本发明的数据控制系统的最低配置的示例的框图。
[图15]其描绘了图示常见数据传送系统的示例的说明性视图。
具体实施方式
在下文中,将参考附图描述本发明的示例性实施例。
第一示例性实施例
图1描绘了图示根据本发明的第一示例性实施例的数据控制系统的示例的框图。根据本示例性实施例的数据控制系统具有CPU1、主要存储器3、是第一I/O设备的I/O设备401、是第二I/O设备的I/O设备402以及连接这些I/O设备的桥2。另外,在本示例性实施例中,将数据从I/O设备401传送给I/O设备402。
I/O设备401和I/O设备402是拥有符合PCI express的接口的I/O设备,诸如符合诸如SCSI(小型计算机系统接口)或SATA(串行高级技术附件)的标准的存储设备和网络接口。I/O设备401和I/O设备402分别通过PCI express总线501和PCI express总线502被连接到桥2。
主要存储器3具有I/O数据传送存储器301。I/O数据传送存储器301被用来在I/O设备401和I/O设备402之间传送数据。
I/O数据传送存储器301具有I/O命令存储器3011、DMA列表存储器3012和数据存储器3013。I/O命令存储器3011是存储待向I/O设备401和I/O设备402发出的I/O命令的区域。数据存储器3013是在I/O设备401和I/O设备402之间传送的数据的缓冲区。DMA列表存储器3012是存储通过列出在数据存储器3013中的地址来允许I/O设备401和I/O设备402通过DMA(直接存储器访问)执行与数据存储器3013的数据通信所获取的信息的区域。
进一步,主要存储器3存储程序302。程序302由CPU1进行读取,并且作为下述I/O数据传送应用操作单元101、操作系统操作单元102、I/O数据传送驱动器操作单元103、控制I/O设备401的I/O设备驱动器操作单元104、以及控制I/O设备402的I/O设备驱动器操作单元105进行操作。
CPU1具有I/O数据传送应用操作单元101、操作系统操作单元102、I/O数据传送驱动器操作单元103、I/O设备驱动器操作单元104、I/O设备驱动器操作单元105以及I/O设备表存储器单元114。
I/O设备表存储器单元114存储是数据传送目标的I/O设备401和I/O设备402的信息。更具体地,I/O设备表存储器单元114与指示操作系统操作单元102所拥有的I/O设备401和I/O设备402的管理信息所处的位置的地址(在下面被称为“管理信息地址”)相关联地存储I/O设备401和I/O设备402的名称。另外,设备的管理信息包括例如该设备的属性和访问模式。
I/O数据传送应用操作单元101请求数据传送驱动器操作单元103在I/O设备401和I/O设备402之间传送数据。由例如用户或另一个设备来指令该数据传送请求。
操作系统操作单元102使I/O数据传送驱动器操作单元103、I/O设备驱动器操作单元104和I/O设备驱动器操作单元105作为驱动器软件进行操作。进一步,操作系统操作单元102在I/O设备表存储器单元114中创建通过将设备名称和管理信息地址相关联来获取的信息。当例如I/O设备被连接时,操作系统操作单元102可以将所连接的I/O设备的设备名称和存储该设备的管理信息的地址关联并存储在I/O设备表存储器单元114中。
I/O数据传送驱动器操作单元103控制从I/O设备401到I/O设备402的数据传送。图2描绘了图示I/O数据传送驱动器操作单元103的示例的框图。根据本示例性实施例的I/O数据传送驱动器操作单元103具有传送控制程序操作单元1031、存储器分配程序操作单元1032、存储器释放程序操作单元1033以及I/O数据处理程序操作单元1034。
另外,将与本示例性实施例一起描述操作系统操作单元102和I/O数据传送驱动器操作单元103被分离地安装的示例。对所述单元的安装的示例是安装I/O数据传送驱动器操作单元103作为设备驱动器的方法。以这种方式安装所述单元,使得可以在小规模内包含由将功能添加到操作系统操作单元102产生的改变。进一步,I/O数据传送驱动器操作单元103和操作系统操作单元102可以被集成地安装。在这种情况下,设备可以作为一个软件被管理,使得开发和管理变得容易。
传送控制程序操作单元1031通过向I/O设备401和I/O设备402发出I/O命令来在I/O设备之间传送数据。传送控制程序操作单元1031当CPU1读取传送控制程序时进行操作。
存储器分配程序操作单元1032由传送控制程序操作单元1031调用来分配主要存储器3中的I/O数据传送存储器301。存储器分配程序操作单元1032当CPU1读取存储器分配程序时进行操作。
存储器释放程序操作单元1033由传送控制程序操作单元1031调用来释放I/O数据传送存储器301。存储器释放程序操作单元1033当CPU1读取存储器释放程序时进行操作。
I/O数据处理程序操作单元1034由传送控制程序操作单元1031调用来对待在I/O设备401和I/O设备402之间传送的数据进行处理。I/O数据处理程序操作单元1034当CPU1读取I/O数据处理程序时进行操作。
因此,I/O数据传送驱动器操作单元103读取传送控制程序、存储器分配程序、存储器释放程序和I/O数据处理程序,并且根据这些程序进行操作。在这种情况下,I/O数据传送驱动器操作单元103在CPU1的核心模式下进行操作。另外,包括传送控制程序、存储器分配程序、存储器释放程序和I/O数据处理程序的程序也将被称为“数据控制程序”。
在下文中,将详细描述在I/O数据传送驱动器操作单元103中的相应操作。传送控制程序操作单元1031从I/O数据传送应用操作单元101接收请求,并且在I/O设备401和I/O设备402之间传送数据。
更具体地,传送控制程序操作单元1031调用存储器分配程序操作单元1032,并且分配主要存储器3中的I/O数据传送存储器301。进一步,传送控制程序操作单元1031引用I/O设备表存储器单元114,并且从I/O设备401和I/O设备402的名称搜索操作系统操作单元102所拥有的这些设备的管理信息的地址。
此外,传送控制程序操作单元1031在I/O命令存储器3011中创建针对I/O设备401的数据读命令。更进一步,传送控制程序操作单元1031在DMA列表存储器3012中创建是待从I/O设备401读取(在下面被称为“读”)的数据的写目的地的数据存储器3013的地址列表。此外,传送控制程序操作单元1031通过将这些数据项(更具体地,数据读命令和DMA列表)递送给I/O设备驱动器操作单元104,来做出I/O读请求。另外,传送控制程序操作单元1031通过使用操作系统操作单元102所拥有的管理信息的地址来创建数据读命令。
因此,传送控制程序操作单元1031指令I/O设备驱动器操作单元104将从I/O设备401读取的数据存储在数据存储器3013中。
进一步,如果必要的话,传送控制程序操作单元1031可以请求I/O数据处理程序操作单元1034来执行预定的数据处理,诸如从I/O设备401读取并且被存储在数据存储器3013中的数据的格式转换和压缩。另外,格式转换和压缩是示例性的预定的数据处理,并且传送控制程序操作单元1031所请求的数据处理可以是除格式转换和压缩外的数据处理。
进一步,传送控制程序操作单元1031在I/O命令存储器3011中创建针对I/O设备402的数据写命令。此外,传送控制程序操作单元1031在DMA列表存储器3012中创建是待写入(在下面被称为“写”)I/O设备402的数据的写目的地的数据存储器3013的地址列表。此外,传送控制程序操作单元1031通过将这些数据项(更具体地,数据写命令和DMA列表)递送给I/O设备驱动器操作单元105,来做出I/O写请求。另外,传送控制程序操作单元1031通过使用操作系统操作单元102所拥有的管理信息的地址来创建数据写命令。
因此,传送控制程序操作单元1031指令I/O设备驱动器操作单元105将存储在数据存储器3013中的数据写入I/O设备402。
随后,传送控制程序操作单元1031重复一系列处理,诸如从I/O设备401读取数据的处理和将数据写入I/O设备402的处理,直到完成I/O数据传送应用操作单元101所请求的数据量的数据传送为止。另外,在数据读处理和数据写处理之间,I/O数据处理程序操作单元1034可以执行对从I/O设备401读取的数据的数据处理。因此,通过在数据读处理和数据写处理之间(即,在数据被写之前)执行数据处理,诸如格式转换和压缩,可以减少整个处理时间。
进一步,传送控制程序操作单元1031可以复用并且做出针对I/O设备401的读请求以及针对I/O设备402的写请求。图3描绘了图示数据存储器3013的示例的说明性视图。在图3中所图示的示例中,传送控制程序操作单元1031分配在数据存储器3013中的多个缓冲区30131。
通过利用每一个缓冲区30131,传送控制程序操作单元1031并行执行从I/O设备401读取数据的处理和将数据写入I/O设备402的处理。进一步,在这种情况下,I/O数据处理程序操作单元1034可以并行执行对从I/O设备401读取的数据的数据处理。而且在这种情况下,传送控制程序操作单元1031只需要重复数据读处理和数据写处理,直到数据传送量的总和达到I/O数据传送应用操作单元101所请求的数据传送量为止。
接着,将描述根据本示例性实施例的数据控制系统的操作。首先,将描述在没有复用的情况下,做出针对I/O设备401的读请求和针对I/O设备402的写请求时的操作。图4描绘了图示根据本示例性实施例的数据控制系统的操作示例的流程图。首先,I/O数据传送应用操作单元101请求数据传送驱动器操作单元103在I/O设备之间传送数据(步骤A1)。
I/O数据传送驱动器操作单元103的传送控制程序操作单元1031接收数据传送请求并且调用存储器分配程序操作单元1032,以及存储器分配程序操作单元1032分配在主要存储器3中的I/O数据传送存储器301(步骤A2)。
随后,传送控制程序操作单元1031创建在I/O命令存储器3011中的I/O命令和在DMA列表存储器3012中的DMA列表。进一步,传送控制程序操作单元1031通过将这些数据项(即,I/O读命令和DMA列表)递送给I/O设备驱动器操作单元104来做出I/O读请求、从I/O设备401读取I/O数据并且将所读取的数据存储在数据存储器3013中(步骤A3)。
随后,如果必要的话,传送控制程序操作单元1031调用I/O数据处理程序操作单元1034,并且执行数据处理,诸如对被存储在数据存储器3013中的数据的格式转换和压缩(步骤A4)。
随后,传送控制程序操作单元1031创建在I/O命令存储器3011中的I/O命令和在DMA列表存储器3012中的DMA列表。进一步,传送控制程序操作单元1031通过将这些数据项递送给I/O设备驱动器操作单元105来做出I/O写请求,并且将存储在数据存储器3013中的数据写入I/O设备402(步骤A5)。
然后,传送控制程序操作单元1031决定是否完成对所请求的量的数据的传送(步骤A6)。当没有完成对所请求量的数据的传送(步骤A6中的否)时,I/O数据传送驱动器操作单元103重复步骤A3至步骤A5中的处理。同时,当完成了对所请求的量的数据的传送(步骤A6中的是)时,传送控制程序操作单元1031调用存储器释放程序操作单元1033,并且存储器释放程序操作单元1033释放I/O数据传送存储器301(步骤A7)。因此,I/O数据传送驱动器操作单元103重复步骤A3至A5中的处理,直到完成I/O数据传送应用操作单元101所请求的量的数据的传送处理为止。
接着,将描述当复用并做出针对I/O设备401的读请求和针对I/O设备402的写请求时的操作。图5和6描绘了图示根据本示例性实施例的数据控制系统的其他操作示例的流程图。在步骤A1和步骤A2中的处理与图4中所图示的处理相同,在步骤A1和步骤A2中的处理中,I/O数据传送应用操作单元101请求I/O数据传送驱动器操作单元103在I/O设备之间传送数据,以及存储器分配程序操作单元1032分配数据传送存储器301。
传送控制程序操作单元1031在I/O命令存储器3011中创建用于将数据写入数据存储器3013中的多个缓冲区30131的多个I/O读命令。另外,传送控制程序操作单元1031在DMA列表存储器3012中创建与相应I/O读命令相对应的DMA列表。进一步,传送控制程序操作单元1031使用这些数据项(即,I/O读命令和DMA列表)来请求I/O设备驱动器操作单元104读取多个I/O数据项(图5中的步骤A8)。
随后,传送控制程序操作单元1031待机,直到完成所发出的到I/O设备的请求为止。当完成一个I/O请求(步骤A9)时,传送控制程序操作单元1031决定所完成的I/O请求是否是读请求(步骤A10)。当所完成的I/O请求是读请求(步骤A10中的是)时,传送控制程序操作单元1031针对从I/O设备401读取并且被存储在数据存储器301的缓冲区上的数据执行步骤A4和A5中的处理,其类似于当没有复用I/O请求时的操作。随后,传送控制程序操作单元1031待机,直到再次完成I/O请求为止。
接着,将描述在步骤A10中,所完成的I/O请求不是读请求(即,写请求)的情况。当在步骤A10中所完成的I/O请求是写请求(步骤A10中的否)时,传送控制程序操作单元1031决定响应于针对I/O设备401做出的读请求所读取的数据量是否达到从I/O数据传送应用操作单元101请求的数据量(步骤A11)。
当数据量没有达到所请求的数据量(步骤A11中的否)时,传送控制程序操作单元1031执行与在向I/O设备驱动器操作单元104做出I/O读请求,并且将所读取的数据存储在数据存储器3013中的步骤A3中的相同的处理。随后,传送控制程序操作单元1031待机,直到再次完成I/O请求为止。
同时,当在步骤A11中数据量达到所请求的数据量(步骤A11中的是)时,传送控制程序操作单元1031决定是否完成了向I/O设备驱动器操作单元105发出的所有写请求(步骤A12)。当没有完成所有写请求(步骤A12中的否)时,传送控制程序操作单元1031待机,直到再次完成I/O请求为止。同时,当完成了所有写请求(步骤A12中的是)时,存储器释放程序操作单元1033释放I/O数据传送存储器301(步骤A7)。
在本示例性实施例中,PCI express总线被图示为连接桥2和I/O设备401以及桥2和I/O设备402的总线。另外,可以使用诸如PCI总线或PCI-X总线的其他总线来连接桥2以及I/O设备401和402。类似地,I/O设备401和I/O设备402符合的总线标准可以是PCI或PCI-X。
进一步,已与本示例性实施例一起描述了读数据的I/O设备401和写数据的I/O设备402是不同的I/O设备的情况。然而,I/O设备401和I/O设备402可以是单个I/O设备。在这种情况下,可以在单个I/O设备的不同模块之间或在单个I/O设备的单个模块的不同地址之间执行在两个设备之间的数据传送。
如上所述,根据本示例性实施例,在核心模式下控制从I/O设备401到I/O设备402的数据传送的I/O数据传送驱动器操作单元103(更具体地,传送控制程序操作单元1031)指令I/O设备驱动器操作单元104将从I/O设备401读取的数据存储在数据存储器3013中。进一步,I/O数据传送驱动器操作单元103(更具体地,传送控制程序操作单元1031)指令I/O设备驱动器操作单元105将存储在数据存储器3013中的数据写入I/O设备402。
即,在根据本示例性实施例的数据控制系统中,I/O数据传送驱动器操作单元103在CPU的核心模式下进行操作,并且通过I/O设备驱动器操作单元105将通过I/O设备驱动器操作单元104从第一I/O设备401读取的数据写入第二I/O设备402。因此,可以在不支持在I/O设备之间直接传送数据的操作的两个I/O设备之间以高速传送数据。
进一步,当如在通用计算机系统中在用户模式下执行数据处理时,如果执行诸如数据的复制或上下文切换的处理,则发生开销。然而,在本示例性实施例中,在核心模式下执行数据处理,使得可以以高速传送数据。
进一步,根据本示例性实施例的数据控制系统执行预定的数据处理,诸如对从I/O设备401读取的数据的格式转换和压缩,并且将数据写入第二I/O设备402。因此,在没有处理传送数据的功能的两个I/O设备之间传送数据,同时执行对待被传送的数据的各种类型的处理,使得可以减少整个处理时间。
进一步,可以复用并且做出针对第一I/O设备401的读请求和针对第二I/O设备402的写请求。根据这个配置,与在没有复用I/O请求的情况下执行的数据传送相比,可以在不支持直接传送数据的操作的两个I/O设备之间以更高速度传送数据。
第二示例性实施例
图7描绘了图示根据本发明的第二示例性实施例的数据控制系统的示例的框图。另外,将为与在第一示例性实施例中的那些相同的配置指配与图1中的那些相同的参考数字,并且将不对其进行描述。根据本示例性实施例的数据控制系统具有CPU1、主要存储器3、是第一I/O设备的I/O设备401、是第二I/O设备的I/O设备402、I/O设备403以及连接这些I/O设备的桥2。即,根据第二示例性实施例的数据控制系统在具有I/O设备403方面不同于根据第一示例性实施例的数据控制系统。
主要存储器3具有I/O数据传送存储器301。进一步,I/O数据传送存储器301具有I/O命令存储器3011和DMA列表存储器3012。此外,I/O设备403具有数据存储器4031。数据存储器4031被映射在计算机的物理地址上,并且为了从CPU1读取数据并且将数据写入CPU1的目的,被用作为数据缓冲器。即,数据存储器4031对应于根据第一示例性实施例的数据存储器3013。
CPU1具有I/O数据传送应用操作单元101、操作系统操作单元102、I/O数据传送驱动器操作单元106、I/O设备驱动器操作单元104、I/O设备驱动器操作单元105以及I/O设备表存储器单元114。
进一步,主要存储器3存储程序303。程序303由CPU1进行读取,并且作为I/O数据传送应用操作单元101、操作系统操作单元102、I/O数据传送驱动器操作单元106、控制I/O设备401的I/O设备驱动器操作单元104以及控制I/O设备402的I/O设备驱动器操作单元105进行操作。
I/O传送驱动器操作单元106执行与根据第一示例性实施例的I/O传送驱动器操作单元103的操作相同的操作。同时,I/O传送驱动器操作单元106在将数据存储器4031用作I/O数据传送的数据缓冲器方面,不同于根据第一示例性实施例的I/O传送驱动器操作单元103。
图8描绘了图示I/O数据传送驱动器操作单元106的示例的框图。根据本示例性实施例的I/O数据传送驱动器操作单元106具有传送控制程序操作单元1031、存储器分配程序操作单元1061、存储器释放程序操作单元1062以及I/O数据处理程序操作单元1034。
存储器分配程序操作单元1061由传送控制程序操作单元1031调用来分配在数据存储器4031中的传送存储器区域。此外,存储器释放程序操作单元1062被传送控制程序操作单元1031调用来释放在数据存储器4031中的传送存储器区域。另外,存储器分配程序操作单元1061当CPU1读取存储器分配程序时进行操作。此外,存储器释放程序操作单元1061当CPU1读取存储器释放程序时进行操作。
其他配置和操作与在第一示例性实施例中的那些相同。
如上所述,在根据本示例性实施例的数据控制系统中,I/O传送驱动器操作单元106将第三I/O设备所拥有的存储器区域(即,数据存储器4031)用作调解I/O数据传送的数据缓冲器。通过这种方式,当在两个I/O设备之间进行数据传送时将主要存储器3用作为数据缓冲器是不必要的,使得除根据第一示例性实施例的效果外,可以减少主要存储器资源和主要存储器总线资源的消耗。
第三示例性实施例
接着,将描述第三示例性实施例。在根据第三示例性实施例的数据控制系统中,在第一示例性实施例中在其之间传送数据的I/O设备是存储设备。同时,存储设备是符合诸如SCSI、SAS(Serial Attached SCSI)或SATA的存储标准的数据存储设备。在本示例性实施例中,将详细描述在存储复制时执行的数据传送。
图9描绘了图示根据本发明的第三示例性实施例的数据控制系统的示例的框图。另外,将为与第一示例性实施例中的那些相同的配置指配与图1中的那些相同的参考数字,并且将不对其进行描述。根据本示例性实施例的数据控制系统具有CPU1、主要存储器3、是第一存储设备的存储设备404、是第二存储设备的存储设备405以及连接这些存储设备的桥2。
CPU1具有存储复制应用操作单元107、操作系统操作单元102、存储复制驱动器操作单元108、存储设备驱动器操作单元109、存储设备驱动器操作单元110以及I/O设备表存储器单元114。
即,根据第三示例性实施例的存储复制应用操作单元107、存储复制驱动器操作单元108、存储设备驱动器操作单元109、存储设备驱动器操作单元110、存储设备404和存储设备405分别对应于根据第一示例性实施例的I/O数据传送应用操作单元101、I/O数据传送驱动器操作单元103、I/O设备驱动器操作单元104、I/O设备驱动器操作单元105、I/O设备401和I/O设备402。
主要存储器3具有I/O数据传送存储器301。另外,I/O数据传送存储器301的细节与第一示例性实施例中的细节相同。进一步,主要存储器3存储程序304。程序304对应于根据第一示例性实施例的程序302。程序304由CPU1进行读取,并且作为存储复制应用操作单元107、操作系统操作单元102、存储复制驱动器操作单元108、存储设备驱动器操作单元109和存储设备驱动器操作单元110进行操作。
存储复制驱动器操作单元108执行从存储设备404到存储设备405的复制控制。图10描绘了图示存储复制驱动器操作单元108的示例的框图。根据本示例性实施例的存储复制驱动器操作单元108具有存储复制控制程序操作单元1081、存储器分配程序操作单元1032和存储器释放程序操作单元1033。
存储复制控制程序操作单元1081通过向存储设备404和存储设备405发出I/O命令来在存储设备之间复制数据。存储复制控制程序操作单元1081当CPU1读取存储复制控制程序时进行操作。
另外,存储器分配程序操作单元1032和存储器释放程序操作单元1033与第一示例性实施例中的那些相同。
因此,存储复制驱动器操作单元108读取存储复制控制程序、存储器分配程序和存储器释放程序,并且根据这些程序进行操作。在这种情况下,存储复制驱动器操作单元108在CPU1的核心模式下进行操作。
在下文中,将详细描述存储复制驱动器操作单元108的相应操作单元。存储复制控制程序操作单元1081从存储复制应用操作单元107接收请求,并且在存储设备404和存储设备405之间复制数据。
更具体地,存储复制控制程序操作单元1081调用存储器分配程序操作单元1032,并且分配在主要存储器3中的I/O数据传送存储器301。进一步,存储复制控制程序操作单元1081引用I/O设备表存储器单元114,并且从存储设备404和存储设备405的名称搜索操作系统操作单元102所拥有的这些设备的管理信息的地址。
此外,存储复制控制程序操作单元1081在I/O命令存储器3011中创建针对存储设备404的数据读命令。更进一步,存储复制控制程序操作单元1081在DMA列表存储器3012中创建是从存储设备404读取的数据的写目的地的数据存储器3013的地址列表。此外,存储复制控制程序操作单元1081通过将这些数据项(更具体地,数据读命令和DMA列表)递送给存储设备驱动器操作单元109,来做出I/O读请求。另外,存储复制控制程序操作单元1081通过使用操作系统操作单元102所拥有的管理信息的地址来创建数据读命令。
进一步,存储复制控制程序操作单元1081在I/O命令存储器3011中创建针对存储设备405的数据写命令。此外,存储复制控制程序操作单元1081在DMA列表存储器3012中创建是待被写入存储设备405的数据的写目的地的数据存储器3013的地址列表。更进一步,存储复制控制程序操作单元1081通过将这些数据项(更具体地,数据写命令和DMA列表)递送给存储设备驱动器操作单元110,来做出I/O写请求。另外,存储复制控制程序操作单元1081通过使用操作系统操作单元102所拥有的管理信息的地址来创建数据写命令。
随后,存储复制控制程序操作单元1081重复一系列处理,诸如从存储设备404读取数据的处理和将数据写入存储设备405的处理,直到完成存储复制应用操作单元107所请求的数据量的传送为止。
进一步,存储复制控制程序操作单元1081可以复用并且做出针对存储设备404的读请求和针对存储设备405的写请求。在这种情况下,如图3中所图示,可以在数据存储器3013中分配多个缓冲区30131。
更具体地,存储复制控制程序操作单元1081通过利用每一个缓冲区30131来并行执行从存储设备404读取数据的处理和将数据写入存储设备405的处理。进一步,存储复制控制程序操作单元1081重复数据读处理和数据写处理,直到数据传送量的总和达到存储复制应用操作单元107所请求的数据传送量为止。
接着,将描述根据本示例性实施例的数据控制系统的操作。首先,将描述当在没有复用的情况下做出针对存储设备404的读请求和针对存储设备405的写请求时的操作。图11描绘了图示根据本示例性实施例的数据控制系统的操作示例的流程图。首先,存储复制应用操作单元107请求存储复制驱动器操作单元108在存储设备之间复制数据(步骤B1)。
存储复制驱动器操作单元108的存储复制控制程序操作单元1081接收数据复制请求并且调用存储器分配程序操作单元1032,以及存储器分配程序操作单元1032分配在主要存储器3中的I/O数据传送存储器301(步骤B2)。
随后,存储复制控制程序操作单元1081创建在I/O命令存储器3011中的I/O命令和在DMA列表存储器3012中的DMA列表。进一步,存储复制控制程序操作单元1081通过将这些数据项(即,I/O读命令和DMA列表)递送给存储设备驱动器操作单元109来做出I/O读请求,从存储设备404读取I/O数据并且将所读取的数据存储在数据存储器3013中(步骤B3)。
随后,存储复制控制程序操作单元1081创建在I/O命令存储器3011中的I/O命令和在DMA列表存储器3012中的DMA列表。进一步,存储复制控制程序操作单元1081通过将这些数据项递送给存储设备驱动器操作单元110来做出I/O写请求,并且将存储在数据存储器3013中的数据写入存储设备405(步骤B4)。
随后,存储复制控制程序操作单元1081决定是否完成了对所请求的数据量的复制处理(步骤B5)。当没有完成对所请求的数据量的复制处理(步骤B5中的否)时,存储复制控制程序操作单元1081重复步骤B3和步骤B4中的处理。同时,当完成了对所请求的数据量的复制处理(步骤B5中的是)时,存储复制控制程序操作单元1081调用存储器释放程序操作单元1033,并且存储器释放程序操作单元1033释放I/O数据传送存储器301(步骤B6)。因此,存储复制控制程序操作单元1081重复步骤B3和B4中的处理,直到完成存储复制应用操作单元107所请求的数据量的复制处理为止。
接着,将描述在复用并且做出针对存储设备404的读请求和针对存储设备405的写请求时的操作。图12和13描绘了图示根据本示例性实施例的数据控制系统的其他操作示例的流程图。在步骤B1和步骤B2中的处理与图11中所图示的处理相同,在步骤B1和步骤B2中的处理中,存储复制应用操作单元107请求存储复制驱动器操作单元108在存储设备之间复制数据,以及存储器分配程序操作单元1032分配I/O数据传送存储器301。
存储复制控制程序操作单元1081在I/O命令存储器3011中创建用于将数据写入数据存储器3013中的多个缓冲区30131的多个I/O读命令。另外,存储复制控制程序操作单元1081在DMA列表存储器3012中创建与相应I/O读命令相对应的DMA列表。进一步,存储复制控制程序操作单元1081通过使用这些数据项(即,I/O读命令和DMA列表)来请求存储设备驱动器操作单元109读取多个I/O数据项(步骤B7)。
随后,存储复制控制程序操作单元1081待机,直到完成到发出的存储设备的请求为止。当完成一个I/O请求(步骤B8)时,存储复制控制程序操作单元1081决定所完成的I/O请求是否是读请求(步骤B9)。当所完成的I/O请求是读请求(步骤B9中的是)时,存储复制控制程序操作单元1081针对从存储设备404读取并且被存储在数据存储器301上的缓冲区中的数据执行步骤B4中的处理(即,将数据写入存储设备405),其类似于当没有复用I/O请求时的操作。随后,存储复制控制程序操作单元1081待机,直到再次完成I/O请求。
接着,将描述在步骤B9中,所完成的I/O请求不是读请求(即,写请求)的情况。当在步骤B9中所完成的I/O请求是写请求(步骤B9中的否)时,存储复制控制程序操作单元1081决定响应于针对存储设备404做出的读请求所读取的数据量是否达到存储复制应用操作单元107所请求的数据量(步骤B10)。
当数据量没有达到所请求的数据量(步骤B10中的否)时,存储复制控制程序操作单元1081执行与在向存储设备驱动器操作单元109做出I/O读请求,并且将所读取的数据存储在数据存储器3013中的步骤B3中的处理相同的处理。随后,存储复制控制程序操作单元1081待机,直到再次完成I/O请求为止。
同时,当在步骤B10中数据量达到所请求的数据量(步骤B10中的是)时,存储复制控制程序操作单元1081决定是否完成了向存储设备驱动器操作单元110发出的所有写请求(步骤B11)。当没有完成所有写请求(步骤B11中的否)时,存储复制控制程序操作单元1081待机,直到再次完成I/O请求。同时,当完成了所有写请求(步骤B11中的是)时,存储器释放程序操作单元1033释放I/O数据传送存储器301(步骤B6)。
另外,类似于第一示例性实施例,存储复制控制程序操作单元1081在复制数据时可以执行预定的数据处理,诸如格式转换和压缩。
如上所述,根据本示例性实施例,在核心模式下将数据从存储设备404复制到存储设备405的存储复制驱动器操作单元108(更具体地,存储复制控制程序操作单元1081)指令存储设备驱动器操作单元109将从存储设备404读取的数据存储在数据存储器3013中。进一步,存储复制驱动器操作单元108(更具体地,存储复制控制程序操作单元1081)指令存储设备驱动器操作单元110将存储在数据存储器3013中的数据写入存储设备405。因此,可以在不支持直接复制数据的操作的两个存储设备之间以高速复制数据。
接着,将描述本发明的最低配置的示例。图14描绘了图示根据本发明的数据控制系统的最低配置的示例的框图。根据本发明的数据控制系统具有:CPU80(例如,CPU1),CPU80在核心模式下控制从第一设备(例如,I/O设备401)到第二设备(例如,I/O设备402)的数据传送;以及主要存储器90(例如,主要存储器3),主要存储器90存储待从第一设备被传送到第二设备的数据。
CPU80具有:控制第一设备的第一设备控制装置81(例如,I/O设备驱动器操作单元104);控制第二设备的第二设备控制装置(例如,I/O设备驱动器操作单元105);以及数据传送控制装置83(例如,I/O数据传送驱动器操作单元103),数据传送控制装置83做出指令第一设备控制装置81将从第一设备读取的数据存储在主要存储器3中的读指令,以及做出指令第二设备控制装置82将存储在主要存储器3中的数据写入第二设备的写指令。
根据这个配置,可以在不支持直接数据传送操作的两个I/O设备之间以高速传送数据。
可以如在下面的说明中描述上面示例性实施例的部分或全部,然而,其决不限于下面的说明。
(补充说明1)一种数据控制系统,具有:
CPU,所述CPU在核心模式下控制从第一设备到第二设备的数据传送;以及主要存储器,所述主要存储器存储待从第一设备传送到第二设备的数据,以及该CPU具有:第一设备控制装置,该第一设备控制装置控制第一设备;第二设备控制装置,该第二设备控制装置控制第二设备;以及数据传送控制装置,该数据传送控制装置做出指令第一设备控制装置将从第一设备读取的数据存储在主要存储器中的读指令,以及做出指令第二设备控制装置将存储在主要存储器中的数据写入第二设备的写指令。
(补充说明2)在补充说明1中所述的数据控制系统中,数据传送控制装置在向第二设备做出写指令之前,针对存储在主要存储器中的数据执行预定的处理。
(补充说明3)在补充说明1或2中所述的数据控制系统中,当第一设备向第二设备做出数据传送请求时,数据传送控制装置重复到第一设备控制装置的读指令和到第二设备的写指令,直到完成所请求的数据量的传送为止。
(补充说明4)在补充说明1至3中的任何一个中所述的数据控制系统具有:区域分配装置,该区域分配装置在主要存储器中分配存储待被传送的数据的区域;以及区域释放装置,该区域释放装置释放该区域。
(补充说明5)在补充说明1至4中的任何一个中所述的数据控制系统中,主要存储器具有:指令命令存储器装置,该指令命令存储器装置存储指示读指令的读指令命令和指示写指令的写指令命令;以及存储目的地列表存储器装置,该存储目的地列表存储器装置存储存储目的地列表,所述存储目的地列表是指示传送数据在主要存储器中的存储目的地的列表,以及数据传送控制装置创建读指令命令和写指令命令并且将读指令命令和写指令命令存储在指令命令存储器装置中,以及创建存储目的地列表并且将存储目的地列表存储在存储目的地列表存储器装置中,第一设备控制装置基于存储在指令命令存储器装置中的读指令命令和存储目的地列表,将从第一设备读取的数据存储在存储目的地列表所指示的存储目的地中,以及第二设备控制装置基于存储在指令命令存储器装置中的写指令命令和存储目的地列表,将从存储目的地列表所指示的存储目的地读取的数据写入第二设备。
(补充说明6)在补充说明5中所述的数据控制系统,进一步具有管理信息地址存储器装置,该管理信息地址存储器装置与第一设备和第二设备的名称相关联地存储管理信息地址,该管理信息地址是指示存储第一设备和第二设备的管理信息的位置的地址,以及数据传送控制装置基于存储在管理信息地址所指示的位置处的管理信息来创建读指令命令和写指令命令。
(补充说明7)在补充说明1至6中的任何一个中所述的数据控制系统中,主要存储器具有存储传送数据的多个缓冲区,以及数据传送控制装置并行地每缓冲区向第一设备控制装置做出读指令,以及并行地每缓冲区向第二设备控制装置做出写指令。
(补充说明8)在补充说明1至7中的任何一个中所述的数据控制系统中,CPU在核心模式下控制从第一存储设备到第二存储设备的数据复制,主要存储器存储待从第一存储设备复制到第二存储设备的数据;第一设备控制装置控制第一存储设备,以及第二设备控制装置控制第二存储设备。
(补充说明9)在补充说明1至8中的任何一个中所述的数据控制系统具有第三设备,该第三设备存储待从第一设备传送到第二设备的数据,以及数据传送控制装置做出指令第一设备控制装置将从第一设备读取的数据存储在第三设备中的读指令,以及做出指令第二设备控制装置将存储在第三设备中的数据写入第二设备的写指令。
(补充说明10)一种数据控制方法,包括:
在在核心模式下控制从第一设备到第二设备的数据传送的CPU处,指令对该CPU的第一设备进行控制的第一设备控制装置将从第一设备读取的数据存储在主要存储器中;以及在该CPU处,指令对该CPU的第二设备进行控制的第二设备控制装置将存储在主要存储器中的数据写入第二设备。
(补充说明11)在补充说明10中所述的数据控制方法,进一步包括,在该CPU处,在向第二设备做出写指令之前,针对存储在主要存储器中的数据执行预定的处理。
(补充说明12)在补充说明10或11中所述的数据控制方法,进一步包括,在该CPU处,当第一设备向第二设备做出数据传送请求时,重复到第一设备控制装置的读指令和到第二设备的写指令,直到完成所请求的数据量的传送为止。
(补充说明13)在补充说明10至12中的任何一个中所述的数据控制方法,进一步包括:
在该CPU处,分配存储待被传送的数据的区域;以及在该CPU处,释放该区域。
(补充说明14)在补充说明10至13中的任何一个中所述的数据控制方法,进一步包括:
在该CPU处,创建指示读指令的读指令命令和指示写指令的写指令命令,并且将读指令命令和写指令命令存储在主要存储器的指令命令存储器装置中;在该CPU处,创建存储目的地列表,该存储目的地列表是指示传送数据在主要存储器中的存储目的地的列表,并且将该存储目的地列表存储在主要存储器的存储目的地列表存储器装置中;在该CPU处,基于存储在指令命令存储器装置中的读指令命令和存储目的地列表,将从第一设备读取的数据存储在存储目的地列表所指示的存储目的地中;以及在该CPU处,基于存储在指令命令存储器装置中的写指令命令和存储目的地列表,将从存储目的地列表所指示的存储目的地读取的数据写入第二设备。
(补充说明15)在补充说明14中所述的数据控制方法,进一步包括,在该CPU处,引用管理信息地址存储器装置,该管理信息地址存储器装置与第一设备和第二设备的名称相关联地存储管理信息地址,该管理信息地址是指示存储第一设备和第二设备的管理信息的位置的地址,以及基于存储在管理信息地址所指示的位置处的管理信息来创建读指令命令和写指令命令。
(补充说明16)在补充说明10至15中的任何一个中所述的数据控制方法,进一步包括,在该CPU处,并行地为主要存储器的多个缓冲区中的每一个向第一设备控制装置做出读指令,以及并行地每缓冲区向第二设备控制装置做出写指令。
(补充说明17)在补充说明10至16中的任何一个中所述的数据控制方法,进一步包括:
在在核心模式下控制从第一存储设备到第二存储设备的数据传送的CPU处,指令第一设备控制装置将从第一存储设备读取的数据存储在主要存储器中;以及在该CPU处,指令第二设备控制装置将存储在主要存储器中的数据写入第二存储设备。
(补充说明18)在补充说明10至17中的任何一个中所述的数据控制方法,进一步包括:
做出指令第一设备控制装置将从第一设备读取的数据存储在第三设备中的读指令以及指令第二设备控制装置将存储在第三设备中的数据写入第二设备的写指令,所述第三设备存储待从第一设备传送到第二设备的数据。
(补充说明19)一种被应用到具有以下的计算机的数据控制程序:CPU,该CPU在核心模式下控制从第一设备到第二设备的数据传送;以及主要存储器,该主要存储器存储待从第一设备被传送到第二设备的数据,促使计算机执行:控制第一设备的第一设备控制处理;控制第二设备的第二设备控制处理;以及做出在第一设备控制处理中指令将从第一设备读取的数据存储在主要存储器中的读指令,以及做出在第二设备控制处理中指令将存储在主要存储器中的数据写入第二设备的写指令的数据传送控制处理。
(补充说明20)在补充说明19中所述的数据控制程序,进一步促使计算机在数据传送控制处理中,在向第二设备做出写指令之前,针对被存储在主要存储器中的数据执行预定的处理。
(补充说明21)在补充说明19或20中所述的数据控制程序,进一步促使计算机在数据传送控制处理中,当第一设备向第二设备做出数据传送请求时,重复在第一设备控制处理中的读指令和在第二设备中的写处理,直到完成所请求的数据量的传送为止。
(补充说明22)在补充说明19至21中的任何一个中所述的数据控制程序,进一步促使计算机执行:在主要存储器中分配存储待被传送的数据的区域的区域分配处理;以及释放该区域的区域释放处理。
(补充说明23)根据补充说明19至22中的任何一个所述的数据控制程序,进一步促使计算机:在数据传送控制处理中,创建指示读指令的读指令命令和指示写指令的写指令命令,并且将读指令命令和写指令命令存储在主要存储器的指令命令存储器装置中,以及创建存储目的地列表,该存储目的地列表是指示传送数据在主要存储器中的存储目的地的列表,并且将该存储目的地列表存储在主要存储器的存储目的地列表存储器装置中;在第一设备控制处理中,基于存储在指令命令存储器装置中的读指令命令和存储目的地列表,将从第一设备读取的数据存储在存储目的地列表所指示的存储目的地中;以及在第二设备控制处理中,基于存储在指令命令存储器装置中的写指令命令和存储目的地列表,将从存储目的地列表所指示的存储目的地读取的数据写入第二设备。
(补充说明24)在补充说明23中所述的数据控制程序,进一步促使计算机:在数据传送控制处理中,基于存储在管理信息地址存储器装置所存储的管理信息地址所指示的位置处的管理信息,创建读指令命令和写指令命令,该管理信息地址存储器装置与第一设备和第二设备的名称相关联地存储管理信息地址,该管理信息地址是指示存储第一设备和第二设备的管理信息的位置的地址。
(补充说明25)在补充说明19至24中的任何一个中所述的数据控制程序,进一步促使计算机:在数据传送控制处理中,并行地为主要存储器的多个缓冲区中的每一个在第一设备控制处理中做出读指令,以及并行地每缓冲区在第二设备控制处理中做出写指令。
(补充说明26)在补充说明19至25中的任何一个中所述的、被应用于具有以下的计算机的数据控制程序:CPU,该CPU在核心模式下控制从第一存储设备到第二存储设备的数据传送;以及主要存储器,该主要存储器存储待从第一存储设备传送到第二存储设备的数据,进一步促使计算机:在第一设备控制处理中,控制第一存储设备;以及在第二设备控制装置中,控制第二存储设备。
(补充说明27)在补充说明19至26中的任何一个中所述的数据控制程序,进一步促使计算机在数据传送控制处理中,做出在第一设备控制处理中指令将从第一设备读取的数据存储在第三设备中的读指令,所述第三设备存储待从第一设备被传送到第二设备的数据;以及做出在第二设备控制处理中指令将存储在第三设备中的数据写入第二设备的写指令。
尽管已参考示例性实施例和示例描述了本发明,然而,本发明决不限于所述示例性实施例和示例。在本领域技术人员能够理解的本发明的范围内,可以多方面地改变本发明的配置和细节。
本申请要求于2011年3月2日提交的日本专利申请No.2011-044951的优先权,通过引用将其全部内容并入本文。
工业实用性
本发明适合于应用到执行对在两个I/O设备之间以高速移动数据的控制的计算机系统。进一步,本发明还适合于应用到以高速传送数据,同时对待在两个I/O设备之间传送的数据进行处理的计算机系统。
参考标记列表
1 CPU
2 桥
3 主要存储器
101I/O 数据传送应用操作单元
102 操作系统操作单元
103I/O 数据传送驱动器操作单元
104、105I/O 设备驱动器操作单元
106I/O 数据传送驱动器操作单元
107 存储复制应用操作单元
108 存储复制驱动器操作单元
109、110 存储设备驱动器操作单元
301I/O 数据传送存储器
302、303、304 程序
401、402、403I/O 设备
404、405 存储设备
501、502PCI express 总线
Claims (10)
1.一种数据控制系统,包括:
CPU,所述CPU在核心模式下控制从第一设备到第二设备的数据传送;以及
主要存储器,所述主要存储器存储待从所述第一设备传送到所述第二设备的数据,
其中所述CPU包括:
第一设备控制单元,所述第一设备控制单元控制所述第一设备;
第二设备控制单元,所述第二设备控制单元控制所述第二设备;以及
数据传送控制单元,所述数据传送控制单元做出指令所述第一设备控制单元将从所述第一设备读取的数据存储在所述主要存储器中的读指令,以及做出指令所述第二设备控制单元将存储在所述主要存储器中的所述数据写入所述第二设备的写指令,
其中,所述数据传送控制单元并行地复用和做出所述读指令和所述写指令,
其中,所述数据传送控制单元在所述主要存储器中创建直接存储器访问列表,
其中,所述第一设备控制单元利用所述直接存储器访问列表控制所述第一设备,以及
其中,所述第二设备控制单元利用所述直接存储器访问列表控制所述第二设备。
2.根据权利要求1所述的数据控制系统,
其中所述数据传送控制单元在向所述第二设备做出所述写指令之前,针对存储在所述主要存储器中的所述数据执行预定的处理。
3.根据权利要求1所述的数据控制系统,
其中,当所述第一设备向所述第二设备做出数据传送请求时,所述数据传送控制单元重复到所述第一设备控制单元的所述读指令和到所述第二设备的所述写指令,直到完成所请求的数据量的传送为止。
4.根据权利要求1所述的数据控制系统,进一步包括:
区域分配单元,所述区域分配单元在所述主要存储器中分配存储待被传送的数据的区域;以及
区域释放单元,所述区域释放单元释放所述区域。
5.根据权利要求1所述的数据控制系统,其中:
所述主要存储器包括:
指令命令存储器单元,所述指令命令存储器单元存储指示所述读指令的读指令命令和指示所述写指令的写指令命令;以及
存储目的地列表存储器单元,所述存储目的地列表存储器单元存储存储目的地列表,所述存储目的地列表是指示传送数据在所述主要存储器中的存储目的地的列表;
所述数据传送控制单元创建所述读指令命令和所述写指令命令,并且将所述读指令命令和所述写指令命令存储在所述指令命令存储器单元中,以及创建所述存储目的地列表并且将所述存储目的地列表存储在所述存储目的地列表存储器单元中;
所述第一设备控制单元基于存储在所述指令命令存储器单元中的所述读指令命令和所述存储目的地列表,将从所述第一设备读取的所述数据存储在所述存储目的地列表所指示的所述存储目的地中;以及
所述第二设备控制单元基于存储在所述指令命令存储器单元中的所述写指令命令和所述存储目的地列表,将从所述存储目的地列表所指示的所述存储目的地读取的所述数据写入所述第二设备。
6.根据权利要求5所述的数据控制系统,进一步包括:管理信息地址存储器单元,所述管理信息地址存储器单元与所述第一设备和所述第二设备的名称相关联地存储管理信息地址,所述管理信息地址是指示存储所述第一设备和所述第二设备的管理信息的位置的地址,
其中所述数据传送控制单元基于存储在所述管理信息地址所指示的所述位置处的所述管理信息来创建读指令命令和写指令命令。
7.根据权利要求1所述的数据控制系统,其中:
所述主要存储器包括存储传送数据的多个缓冲区;以及
所述数据传送控制单元并行地每缓冲区向所述第一设备控制单元做出所述读指令,以及并行地每缓冲区向所述第二设备控制单元做出所述写指令。
8.根据权利要求1所述的数据控制系统,其中:
所述CPU在所述核心模式下控制从第一存储设备到第二存储设备的数据复制;
所述主要存储器存储待从所述第一存储设备复制到所述第二存储设备的数据;
所述第一设备控制单元控制所述第一存储设备;以及
所述第二设备控制单元控制所述第二存储设备。
9.一种数据控制方法,包括:
在在核心模式下控制从第一设备到第二设备的数据传送的CPU处,指令对所述CPU的所述第一设备进行控制的第一设备控制单元将从所述第一设备读取的数据存储在主要存储器中;
在所述CPU处,指令对所述CPU的所述第二设备进行控制的第二设备控制单元将存储在所述主要存储器中的所述数据写入所述第二设备;以及
在所述CPU处,并行地复用和做出指令所述第一设备控制单元的读指令和指令所述第二设备控制单元的写指令,
其中,数据传送控制单元在所述主要存储器中创建直接存储器访问列表,
其中,所述第一设备控制单元利用所述直接存储器访问列表控制所述第一设备,以及
其中,所述第二设备控制单元利用所述直接存储器访问列表控制所述第二设备。
10.一种数据控制装置,包括:
CPU,所述CPU在核心模式下控制从第一设备到第二设备的数据传送;以及
主要存储器,所述主要存储器存储待从所述第一设备传送到所述第二设备的数据,
其中所述CPU包括:
第一设备控制单元,所述第一设备控制单元控制所述第一设备;
第二设备控制单元,所述第二设备控制单元控制所述第二设备;以及
数据传送控制单元,所述数据传送控制单元做出指令所述第一设备控制单元将从所述第一设备读取的数据存储在所述主要存储器中的读指令,以及做出指令所述第二设备控制单元将存储在所述主要存储器中的所述数据写入所述第二设备的写指令,
其中,所述数据传送控制单元并行地复用和做出所述读指令和所述写指令,
其中,所述数据传送控制单元在所述主要存储器中创建直接存储器访问列表,
其中,所述第一设备控制单元利用所述直接存储器访问列表控制所述第一设备,以及
其中,所述第二设备控制单元利用所述直接存储器访问列表控制所述第二设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-044951 | 2011-03-02 | ||
JP2011044951 | 2011-03-02 | ||
PCT/JP2012/001229 WO2012117701A1 (ja) | 2011-03-02 | 2012-02-23 | データ制御システム、データ制御方法およびデータ制御用プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103370697A CN103370697A (zh) | 2013-10-23 |
CN103370697B true CN103370697B (zh) | 2016-09-07 |
Family
ID=46757646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280008715.0A Expired - Fee Related CN103370697B (zh) | 2011-03-02 | 2012-02-23 | 数据控制系统、数据控制方法及数据控制程序 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9280498B2 (zh) |
EP (1) | EP2682870B1 (zh) |
JP (1) | JP6395203B2 (zh) |
CN (1) | CN103370697B (zh) |
BR (1) | BR112013020341B1 (zh) |
WO (1) | WO2012117701A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6810962B2 (ja) * | 2017-03-30 | 2021-01-13 | 株式会社アクセル | データ処理装置、データ転送装置、データ処理方法、及びデータ転送プログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633649A (zh) * | 2002-02-15 | 2005-06-29 | 科学园株式会社 | 使用基于网络的输入装置的输入特征的个人鉴别方法、其程序以及程序的记录媒体 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6459446A (en) * | 1987-08-31 | 1989-03-07 | Toshiba Corp | Information processing system |
JPS6476343A (en) * | 1987-09-18 | 1989-03-22 | Fujitsu Ltd | Cache memory control system |
JPH05151137A (ja) * | 1991-11-29 | 1993-06-18 | Nec Corp | 電子計算機装置 |
JP3515142B2 (ja) * | 1992-06-11 | 2004-04-05 | セイコーエプソン株式会社 | データ転送制御装置 |
JPH0785308A (ja) * | 1993-07-02 | 1995-03-31 | Sony Corp | 画像表示方法 |
FR2717921B1 (fr) * | 1994-03-24 | 1996-06-21 | Texas Instruments France | Dispositif de gestion de conflit d'accès entre un CPU et des mémoires. |
JP2901882B2 (ja) | 1994-07-26 | 1999-06-07 | 株式会社日立製作所 | 計算機システムおよび入出力命令の発行方法 |
JPH08106443A (ja) * | 1994-10-05 | 1996-04-23 | Hitachi Ltd | データ処理システム及び並列コンピュータ |
EP0732659B1 (en) * | 1995-03-17 | 2001-08-08 | LSI Logic Corporation | Controlling (n+i) I/O channels with (n) data managers in a homogeneous software programming environment |
JPH10143437A (ja) | 1996-11-14 | 1998-05-29 | Toshiba Corp | コンピュータシステムおよび動画像転送方法 |
US6016515A (en) * | 1997-04-04 | 2000-01-18 | Microsoft Corporation | Method, computer program product, and data structure for validating creation of and routing messages to file object |
US6330623B1 (en) * | 1999-01-08 | 2001-12-11 | Vlsi Technology, Inc. | System and method for maximizing DMA transfers of arbitrarily aligned data |
JP2001159956A (ja) * | 1999-12-01 | 2001-06-12 | Hitachi Ltd | ディスクアクセス制御方法および装置 |
JP2002262099A (ja) * | 2001-02-27 | 2002-09-13 | Canon Inc | 画像処理装置及び画像処理装置用dmaコントローラ |
US7020724B2 (en) * | 2001-09-28 | 2006-03-28 | Intel Corporation | Enhanced power reduction capabilities for streaming direct memory access engine |
US7228550B1 (en) * | 2002-01-07 | 2007-06-05 | Slt Logic, Llc | System and method for making communication streams available to processes executing under control of an operating system but without the intervention of the operating system |
US7130933B2 (en) * | 2002-07-24 | 2006-10-31 | Intel Corporation | Method, system, and program for handling input/output commands |
US7406481B2 (en) * | 2002-12-17 | 2008-07-29 | Oracle International Corporation | Using direct memory access for performing database operations between two or more machines |
KR100630052B1 (ko) * | 2004-01-26 | 2006-09-27 | 삼성전자주식회사 | 실시간 전송 프로토콜 데이터의 전송을 위한 처리 시스템 및 방법 |
US20050256977A1 (en) * | 2004-05-14 | 2005-11-17 | Dehaemer Eric J | Integrated circuit having processor and switch capabilities |
JP2006287715A (ja) * | 2005-04-01 | 2006-10-19 | Seiko Epson Corp | 画像処理コントローラ及び電子機器 |
US8046506B2 (en) * | 2006-03-21 | 2011-10-25 | Mediatek Inc. | FIFO system and operating method thereof |
JP4895394B2 (ja) * | 2007-11-16 | 2012-03-14 | 株式会社リコー | 画像処理装置 |
JP2009230484A (ja) | 2008-03-24 | 2009-10-08 | Nec Corp | ストレージサブシステム、ストレージシステム、ファームウェア置換方法、及びプログラム |
US8327040B2 (en) * | 2009-01-26 | 2012-12-04 | Micron Technology, Inc. | Host controller |
JP5293283B2 (ja) * | 2009-03-09 | 2013-09-18 | 株式会社リコー | 半導体集積回路及びメモリアクセス制御方法 |
US9063561B2 (en) * | 2009-05-06 | 2015-06-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Direct memory access for loopback transfers in a media controller architecture |
WO2011161722A1 (en) * | 2010-06-24 | 2011-12-29 | Hitachi, Ltd. | Data transfer system and data transfer method |
-
2012
- 2012-02-23 CN CN201280008715.0A patent/CN103370697B/zh not_active Expired - Fee Related
- 2012-02-23 EP EP12752370.2A patent/EP2682870B1/en not_active Not-in-force
- 2012-02-23 BR BR112013020341-2A patent/BR112013020341B1/pt not_active IP Right Cessation
- 2012-02-23 WO PCT/JP2012/001229 patent/WO2012117701A1/ja active Application Filing
- 2012-02-23 US US14/002,945 patent/US9280498B2/en not_active Expired - Fee Related
- 2012-02-23 JP JP2013502184A patent/JP6395203B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633649A (zh) * | 2002-02-15 | 2005-06-29 | 科学园株式会社 | 使用基于网络的输入装置的输入特征的个人鉴别方法、其程序以及程序的记录媒体 |
Also Published As
Publication number | Publication date |
---|---|
US9280498B2 (en) | 2016-03-08 |
WO2012117701A1 (ja) | 2012-09-07 |
JP6395203B2 (ja) | 2018-09-26 |
JPWO2012117701A1 (ja) | 2014-07-07 |
CN103370697A (zh) | 2013-10-23 |
BR112013020341A2 (pt) | 2017-11-14 |
BR112013020341B1 (pt) | 2021-06-08 |
EP2682870A1 (en) | 2014-01-08 |
EP2682870B1 (en) | 2016-11-02 |
US20130346643A1 (en) | 2013-12-26 |
EP2682870A4 (en) | 2015-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3617632B2 (ja) | Raid制御装置及びその制御方法 | |
US10778751B2 (en) | Method of micro-service transformation for power trading functions | |
TWI337709B (en) | Apparatus, method and system for processing a plurality of i/o sequences | |
CN103793342B (zh) | 一种多通道直接内存存取dma控制器 | |
EP2254036B1 (en) | Storage apparatus and data copy method | |
KR20200078382A (ko) | 개시자 모드를 갖는 솔리드-스테이트 드라이브 | |
CN101013352A (zh) | 可以逻辑分割的存储装置和存储装置系统 | |
CN1553346A (zh) | 冗余外部储存虚拟化计算机系统 | |
CN101639811B (zh) | 数据写入的方法、控制器和多控制器系统 | |
CN103678201B (zh) | 具有逻辑设备能力的pci express切换器 | |
CN101221484A (zh) | 数据存储系统及其管理方法 | |
JP2021002172A (ja) | デイジーチェーン接続システム及びシステム制御方法 | |
CN101615106A (zh) | 用于虚拟化sas存储适配器的方法和系统 | |
CN102137133A (zh) | 内容分发的方法、系统及调度服务器 | |
JP3617631B2 (ja) | ストレージ制御装置及びその制御方法 | |
CN103348333A (zh) | 用于分级高速缓存设计中的高速缓存之间的高效通信的方法和装置 | |
CN104965678A (zh) | 一种固态存储的控制方法、装置及固态存储设备 | |
CN100345129C (zh) | 指配优先权的方法、系统、和程序 | |
US7562111B2 (en) | Multi-processor architecture with high capacity I/O | |
CN101310262A (zh) | 能使多个通信信道独立工作的集成电路 | |
CN107179946A (zh) | 一种写操作负载均衡系统的多节点调度方法 | |
CN111684431A (zh) | 数据存储装置空闲时间处理 | |
CN103370697B (zh) | 数据控制系统、数据控制方法及数据控制程序 | |
EP2093656B1 (en) | Storage system and access instruction sending method | |
CN102043741B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160907 |