技术领域
本发明涉及USB技术,特别是涉及一种向多个存储介质复制数据的装置、系统及复制方法。
背景技术
在一些应用场景下,需要把大量的数据复制到多个存储介质(包括硬盘、光盘、闪存等)中。例如,预装操作系统的计算机出厂,分发音视频媒体到不同地方,批量制作软件安装光盘等等。所述复制过程需要的时间决定于待复制的数据量大小,以及需要复制到的目标存储介质的多少。
目前一种复制大量源数据到多个目标存储介质的方法是:采用普通计算机的USB(Universal Serial Bus,通用串行总线)、IDE(Integrated DeviceElectronics,是一种硬盘的传输接口)、SATA(Serial ATA的缩写,即串行ATA)、SCSI(Small Computer System Interface,小型计算机系统接口)等接口同时连接多个目标存储介质(例如硬盘、光盘等),计算机同时进行复制,通常采用的方法是同时启动多个直接文件复制或者磁盘复制的进程。
以USB接口为例,按照USB的设计规范,USB设备分主设备(USB HOST)、从设备(USB Device)、移动USB(USB OTG)三类。USB主设备是指主机,USB从设备是指从机,移动USB既能做主机又能做从机。当移动USB插到PC上时,它的角色就是PC的从设备;当另一个USB插到该移动USB上时,该移动USB的角色就是另一个USB的主设备。
通常,主机至少包括一个USB HOST单元(主设备单元),从机包括一个USB Device单元(从设备单元)。参照图1,是所述从机中的USB Device单元结构图。USB Device单元的芯片通常包括USB收发器11、串行接口引擎12、USB控制器13和外设功能等四个模块,其中USB收发器11负责通过USB电缆与主机通信,串行接口引擎12主要以硬件方式处理大多数USB协议,USB控制器负责与主机交换信息。外设功能在数据复制过程中主要指介质访问单元14,如果该从机相连的存储介质是磁盘,则所述介质访问单元14即为磁盘访问逻辑14(如图1所示)。
如前所述,目前将源数据复制到目标存储介质的方式是将主机与从机相连,源数据从主机流向从机,或者从移动USB(它充当了主设备)流向从机,也就是说,目标存储介质是在从机上。参照图2,是所述从主机到从机实现一对一的数据复制示意图。主机与从机通过USB电缆连接,源数据存放在主机的存储上,目标存储介质在从机上,源数据从主机的USB HOST单元流向从机的USB Device单元,USB Device单元再把数据复制到存储介质中。
目前将源数据复制到多个目标存储介质的方式是,主机连接了2个或更多的从机实现一对多的数据复制。参照图3,是主机到从机实现一对多的数据复制示意图。一个主机同时连接了多个从机,源数据从主机的USB HOST单元同时流向各个从机的USB Device单元。
上述数据复制方式的缺点是:
其一,连接的目标存储设备有限。由于普通的计算机是为了通用性的功能而设计,并不适合同时连接非常多的目标存储介质。例如,USB接口的理论值是128个,但实际上需要大量的USB集线器来实现多连接,而电缆和电路的可靠性往往导致连接超过16个左右的设备就无法稳定工作。而SCSI、SATA、IDE等接口,由于主板的设计限制,通常无法同时连接超过4个以上的目标存储介质。
其二,带宽有限带来的传输缓慢。由于这种复制方法是同时复制,所以需要共享USB的带宽,而带宽资源有限,导致向多个目标存储介质同时复制的时候,传输速率远远相差于向一个目标存储介质中复制的速率。
其三,系统资源限制了同时进行的复制进程的数量。一般的计算机软件受到内存容量等限制,也无法很好支持多个文件或磁盘复制的进程同时运行。
发明内容
本发明所要解决的技术问题是提供一种向多个存储介质复制数据的装置、系统及复制方法,以解决目前的复制方式存在连接的目标存储设备有限、带宽有限带来的传输缓慢、系统资源限制了同时进行的复制进程数量的问题。
为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案:
一种数据复制装置,包括从设备单元,用于向所在装置相连的存储介质复制数据,所述从设备单元包括USB收发器、串行接口引擎、USB控制器和介质访问单元,所述装置还包括:
主设备单元和用于连接从设备单元与主设备单元的级联控制逻辑单元,其中主设备单元包括串行接口引擎和USB收发器;所述级联控制逻辑单元分别与主设备单元的串行接口引擎、从设备单元的串行接口引擎相连,完成待复制数据由从设备单元向主设备单元的传输;所述级联控制逻辑单元与USB控制器相连,将主设备单元与下一级装置的传输状态通知USB控制器;所述主设备单元的USB收发器负责将待复制的数据传输给下一级复制装置。
其中,所述级联控制逻辑单元分别与主设备单元的串行接口引擎、从设备单元的串行接口引擎的连接包括:所述级联控制逻辑单元与主设备单元中串行接口引擎的控制端点相连,实现对下一级复制装置的配置;级联控制逻辑单元与主设备单元中串行接口引擎的输入端点和输出端点相连,并与从设备单元中串行接口引擎的输入端点和输出端点相连,完成待复制数据由从设备单元向主设备单元的传输。
其中,所述主设备单元可为多个。
本发明还提供了向多个存储介质复制数据的系统,用于将源数据复制到多个目标存储介质中,包括:
多个首尾串行相连的数据复制装置,每个复制装置包括从设备单元、主设备单元和级联控制逻辑单元;其中,从设备单元用于从上一级装置的主设备单元接收源数据,并复制到所在装置相连的存储介质中;级联控制逻辑单元用于连接本级装置中的从设备单元和主设备单元,将源数据由从设备单元传输到主设备单元;主设备单元用于将源数据传输到下一级装置的从设备单元。
其中,每个复制装置的主设备单元包括:串行接口引擎和USB收发器,所述串行接口引擎与USB收发器相连,其中所述串行接口引擎通过级联控制逻辑单元与本级从设备单元的串行接口引擎相连,所述USB收发器用于将源数据传输到下一级装置的从设备单元。
其中,每个复制装置中级联控制逻辑单元分别与本级从设备单元和主设备单元的连接包括:级联控制逻辑单元与主设备单元中串行接口引擎的控制端点相连,实现对下一级装置中从设备单元的配置;级联控制逻辑单元与主设备单元中串行接口引擎的输入端点和输出端点相连,并与从设备单元中串行接口引擎的输入端点和输出端点相连,完成源数据由从设备单元向主设备单元的传输。
其中,每个复制装置中级联控制逻辑单元与本级从设备单元的连接还包括:级联控制逻辑单元与从设备单元的USB控制器相连,将本级主设备单元与下一级装置的从设备单元的传输状态通知所述USB控制器:当本级主设备单元与下一级装置的从设备单元的传输出错,USB控制器向上一级装置反馈出错状态;当本级主设备单元与下一级装置的从设备单元的传输正常,并且本级从设备单元与上一级装置的主设备单元的传输出错,USB控制器向上一级装置反馈出错状态;当本级主设备单元与下一级装置的从设备单元的传输正常,并且本级从设备单元与上一级装置的主设备单元的传输正常,USB控制器向上一级装置反馈成功状态。
本发明还提供了向多个存储介质复制数据的方法,包括:
将多个数据复制装置首尾串行连接,并与存放源数据的主机串行相连,其中每个数据复制装置均称为从机;
主机的主设备单元将源数据传输到与主机相连的从机的从设备单元,从设备单元将源数据复制到所在从机相连的存储介质中;
所述从设备单元将源数据通过级联控制逻辑单元传输到本级从机的主设备单元;
本级从机的主设备单元将源数据传输到下一级从机的从设备单元,下一级从机再按照上述步骤将源数据依次传输给每个从机,每个从机将源数据复制到相连的存储介质中。
其中,所述主机与从机、从机与下一级从机之间的串行数据传输过程包括读操作:主机或上一级从机向本级从机发送读请求,本级从机再转发给下一级从机;下一级从机将请求数据传输给本级从机,本级从机再传输给主机或上一级从机;下一级从机将执行状态反馈给本级从机,本级从机再向主机或上一级从机反馈。
其中,所述主机与从机、从机与下一级从机的数据传输过程包括写操作:主机或上一级从机向本级从机发送写请求,本级从机再转发给下一级从机;主机或上一级从机向本级从机传输数据,本级从机再传输给下一级从机;下一级从机将执行状态反馈给本级从机,本级从机再向主机或上一级从机反馈。
其中,所述反馈状态包括成功反馈和出错反馈,如果下一级从机反馈的状态为出错,则本级从机向主机或上一级从机反馈出错状态;如果下一级从机反馈的状态为成功,则当本级从机与主机或上一级从机的操作出错时,本级从机向主机或上一级从机反馈出错状态;如果下一级从机反馈的状态为成功,并且本级从机与主机或上一级从机的操作成功时,本级从机向主机或上一级从机反馈成功状态。
其中,主机与从机、从机与下一级从机之间的串行数据传输之前,还包括:每个从机通过级联控制逻辑单元完成对下一级从机中从设备单元的配置。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明实施例提出一种基于USB接口的级联方式,是对目标存储介质所在的USB从机进行的改造,通过将多个从机串行化连接来实现一对多的数据复制。本发明在现有USB从机的内部结构中增加了USB HOST单元,并在USBDevice单元和USB Host单元之间增加了一个级联控制逻辑单元。其中每个从机的USB Device单元与上一级从机或主机的USB Host单元相连,从机的USBHost单元与下一级从机的USB Device单元相连,级联控制逻辑单元用于连接本级的USB Device单元和USB Host单元。
复制数据时,源数据从主机的USB Host单元流向从机的USB Device单元,从机的USB Device单元将数据复制到直接相连的目标存储介质中;然后,源数据由从机的USB Device单元经级联控制逻辑单元流向本级从机的USB Host单元,USB Host单元再将数据传输到下一级从机的USB Device单元。以此类推,源数据从主机逐级传输到各个从机,每个从机将数据复制到存储介质中,从而实现一对多的数据复制。
首先,针对连接的目标存储设备有限的问题,本发明采用的是级联方式,多个从机串行连接,主机只需要至少一个USB Host单元即可同时连接多个存储设备;
其次,针对带宽有限带来的传输缓慢的问题,由于本发明并非通过USB集线器来并行连接多个目标存储设备,每一级从机所需要的带宽并不需要共享同一个总线的带宽,因此,每一级从机与下一级从机之间都可以保持最高的传输速度,提高了整个系统的传输效率;
再次,针对系统资源限制了同时进行的复制进程数量的问题,由于本发明不需要对存放源数据的主机具有任何特殊改造,对于主机来说,复制数据的过程与仅仅往一个目标存储介质中的复制过程完全没有区别,因此,主机不需要特别的操作系统或者更大的内存。
综上所述,本发明可以让整个复制过程一次性、全速地完成。本发明由于基于USB来实现,因此具有方便热插拔、配置灵活、扩展方便的特点,根据需要同时复制的目标存储介质的数量,可以随时添加新的从机。由于USB海量存储设备本身所能支持的目标存储类型丰富,例如硬盘、闪存(FLASH)、光驱光盘等等,因此本发明可以适用于多种类型的目标存储介质。而且,由于数据逐级传输的方法可以采用比较简单的逻辑单元来实现,使得整个数据复制系统的成本降到非常低的程度,便于大规模应用。
附图说明
图1是现有技术所述从机中的USB Device单元结构图;
图2是现有技术中从主机到从机实现一对一的数据复制示意图;
图3是现有技术中从主机到从机实现一对多的数据复制示意图;
图4是本发明实施例所述从机的内部结构图;
图5是本发明实施例所述向多个存储介质复制数据的系统结构图;
图6是本发明另一实施例所述向多个存储介质复制数据的系统结构图;
图7.1和7.2分别是现有技术中和本发明实施例中主机向从机的读操作(成功,无故障情况)流程图;
图8.1和8.2分别是现有技术中和本发明实施例中主机向从机的读操作(失败,出现错误的情况)流程图;
图9.1和9.2分别是现有技术中和本发明实施例中主机向从机的写操作(成功,无故障情况)流程图;
图10.1和10.2分别是现有技术中和本发明实施例中主机向从机的写操作(失败,出现错误的情况)流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例提出一种基于USB接口的级联方式,是对目标存储介质所在的USB从机进行的改造,通过将多个从机串行化连接来实现一对多的数据复制。本发明在现有USB从机的内部结构中增加了USB HOST单元,并在USBDevice单元和USB Host单元之间增加了一个级联控制逻辑单元。其中每个从机的USB Device单元与上一级从机或主机的USB Host单元相连,从机的USBHost单元与下一级从机的USB Device单元相连,级联控制逻辑单元用于连接本级的USB Device单元和USB Host单元。
为实现上述发明,首先提供了一种数据复制装置实施例。参照图4,是所述装置的结构图,即为从机的内部结构图。
每个从机中除了常规的USB Device单元,还包括USB Host单元和级联控制逻辑单元41。其中,USB Device单元包括USB收发器421、串行接口引擎422、USB控制器423和介质访问单元424(如磁盘访问逻辑),USB Host单元包括USB收发器431和串行接口引擎432。级联控制逻辑单元41用于连接USBDevice单元和USB Host单元,本实施例中,级联控制逻辑单元41与USB Device单元中的串行接口引擎422和USB控制器423分别相连,并与USB Host单元中的串行接口引擎432相连。通常,从机中的USB Device单元与USB Host单元采用集成电路芯片加上一定的控制逻辑的形式实现,这种芯片包括但不限于专用集成电路或者现场可编程门阵列等等。
图4中,串行接口引擎422和串行接口引擎432分别有三个端点,即端点逻辑0、端点逻辑1和端点逻辑2,这三个端点是逻辑连接点,USB Host单元与USB Device单元的端点间的连接叫做管道,每个管道分别独立地在USB Host单元和USB Device单元间传输数据。其中,端点逻辑0是控制端点,用于传输配置和控制信息,是缺省或默认端点;端点逻辑1和端点逻辑2,一个是输入端点,另一个是输出端点,均用于传输数据。
按照USB的设计规范,USB设备接口的数据通信分为两个阶段:列举阶段和应用阶段。列举阶段是指主机与设备在进行实际数据交换之前,主机了解设备并根据设备要求进行系统配置的阶段。为了进行列举,所有设备的接口必须都支持控制传输、标准USB请求和端点逻辑0功能。应用阶段是指主机和设备进行实际数据交换的通信过程,主机与设备间的数据均通过端点逻辑1和端点逻辑2进行传输。
图4中,串行接口引擎422的端点逻辑1和端点逻辑2除了和本机的USB控制器423连接,实现本机存储介质的访问之外,还和级联控制逻辑单元41连接;级联控制逻辑单元41还与串行接口引擎432的端点逻辑1和端点逻辑2连接,共同实现数据通信的应用阶段。此外,级联控制逻辑单元41为了实现对下一级从机的列举阶段,还和串行接口引擎432的端点逻辑0连接。级联控制逻辑单元41还需要和USB Device单元的USB控制器423进行连接,实现数据通信状态的及时反馈。
需要说明的是,串行接口引擎422和串行接口引擎432通过级联控制逻辑单元41相连时,串行接口引擎422的输出端点需要与串行接口引擎432的输入端点对应,串行接口引擎422的输入端点需要与串行接口引擎432的输出端点对应,本实施例在此并不对图中的端点逻辑1和端点逻辑2进行具体限定,只要满足上述对应关系即可。
图4所示装置(即从机)的数据复制过程是:源数据从主机的USB HOST单元送出,被复制到从机的USB Device单元,从机的USB Device单元将数据送到它直接相连的目标存储介质之中;然后,源数据由从机的USB Device单元经级联控制逻辑单元41流向本机的USB Host单元,USB Host单元再将数据传输到下一级从机的USB Device单元。
利用上述数据复制装置,本发明还提供了一种向多个存储介质复制数据的系统实施例。参照图5,是实施例所述向多个存储介质复制数据的系统结构图。
源数据存放在主机上,主机与从机51相连,从机51又与下一级从机52相连,依次类推,多个从机采用级联方式连接。其中,每个从机采用图4所示的装置结构,在此不再详述。所述系统中从机的级联方式是:每个从机的USBDevice单元与上一级从机或主机的USB Host单元相连,从机的USB Host单元与下一级从机的USB Device单元相连,从机的USB Device单元和USB Host单元通过级联控制逻辑单元连接(图中未示出)。
所述系统的数据复制过程是:源数据从主机的USB Host单元流向从机的USB Device单元,从机的USB Device单元将数据复制到直接相连的目标存储介质中;然后,源数据由从机的USB Device单元经级联控制逻辑单元流向本级从机的USB Host单元,USB Host单元再将数据传输到下一级从机的USBDevice单元。以此类推,源数据从主机逐级传输到各个从机,每个从机将数据复制到存储介质中,从而实现一对多的数据复制。
在上述数据复制过程中,每个从机中的级联控制逻辑单元会将下一级从机与本机的通信状态,反馈给本级USB Device单元的USB控制器,USB控制器再向上一级反馈。所述反馈状态包括成功反馈和出错反馈,如果下一级从机反馈的状态为出错,则本级从机向主机或上一级从机反馈出错状态;如果下一级从机反馈的状态为成功,则当本级从机与主机或上一级从机的操作出错时,本级从机向主机或上一级从机反馈出错状态;如果下一级从机反馈的状态为成功,并且本级从机与主机或上一级从机的操作成功时,本级从机向主机或上一级从机反馈成功状态。在整个复制过程中,只要所述逐级传递的数据复制过程在每个级别都没有检查到错误,整个复制系统就可以持续运行下去;但任何时候,如果某个级别的从设备发现它对更下一级从设备的读写操作出现错误,则向它的上一级主设备进行错误反馈。这种状态反馈机制使整个级联复制过程中,任何的错误都可以让整个复制过程终止,并向操作者提示哪个位置出现了错误,避免出现无效的数据被写入目标存储介质的情况。
需要说明的是,主机或每一个从机内的USB Host单元,具备连接至少一个下一级从机的USB Device单元的能力,即具备至少一个USB Host单元。而且,主机或者每一个从机内的USB Host单元只与下一级从机内的USB Device单元交换数据,主机内的USB Host单元与下一级从机内的USB Host单元并没有直接的数据交换,同时也不需要知道下一级从机内是否存在USB Host单元。因此,处在最末级别的从机,可以是只含有一个USB Device单元而没有USBHost单元的普通设备。
在实际应用中,源数据不一定存储在主机所直接连接的磁盘或光盘等介质内,也可以存在其他与主机连接的设备中,例如图6所示的系统。但是,无论源数据存放在何处,并限定本发明的描述。
针对上述数据复制装置和系统,本发明还提供了基于所述装置或系统的数据复制方法。所述方法将多个从机采用串行方式首尾相连,并与存放源数据的主机串行相连,可将主机上的源数据快速复制到多个目标存储介质中。所述方法主要包括两个阶段,分别是列举阶段和应用阶段。
1、列举阶段
如前所述,列举阶段是主机(或上一级从机)的USB Host单元与从机的USB Device单元在进行实际数据交换之前,主机了解从机并根据从机要求进行系统配置的阶段。列举阶段主要通过每个从机的级联控制逻辑单元实现。每个从机内的级联控制逻辑单元通过一个特定的逻辑,实现级联方式下的数据交换,所述特定的逻辑如下:
级联控制单元按照USB的标准规范,通过USB Host单元中的端点逻辑0,执行对下一级从机的列举阶段。下一级从机在插入本级从机的USB Host单元的物理接口时,本级从机的USB Host单元都通过端点逻辑0(即地址0)与下一级从机的端点逻辑0进行通讯。在这个过程中,级联控制逻辑单元发出一系列得到描述符的请求,通过这些请求,级联控制单元得到所有感兴趣的从机的描述符,从而知道下一级从机的情况;然后通过设定地址命令为下一级从机设置一个唯一的地址,配置过程完成以后,本级从机的USB Host单元就通过为从机所设定的地址与从机的USB Device单元通讯,而不再使用默认地址0。配置地址后,还要获取一次描述符,然后设置配置,之后便完成了对新插入的下一级从机的USB Device单元的配置过程。
2、应用阶段
完成列举阶段之后,进入应用阶段。USB Host单元与USB Device单元间的所有数据均通过输入端点和输出端点来进行传输,不再通过控制端点(端点逻辑0)来传输任何数据。
源数据从主机复制到多个存储介质的过程是:
主机的USB Host单元将源数据传输到与主机相连的从机的USB Device单元,USB Device单元将源数据复制到所在从机相连的存储介质中;所述USBDevice单元将源数据通过级联控制逻辑单元传输到本级从机的USB Host单元;本级从机的USB Host单元将源数据传输到下一级从机的USB Device单元,下一级从机再按照上述步骤将源数据依次传输给每个从机,每个从机将源数据复制到相连的存储介质中。
在上述过程中,有三种类型的数据在USB Host单元和USB Device单元之间传送,分别是CBW、CSW和普通数据。CBW(Command Block Wrapper,即命令块包)是从USB Host单元发送到USB Device单元的命令,USB Device单元需要将具体命令从CBW中提取出来,执行相应的命令;完成以后,向USB Host单元发出反映当前命令执行状态的CSW(Command Status Wrapper,即命令状态包),USB Host单元根据CSW来决定是否继续发送下一个CBW或数据。
USB Host单元和USB Device单元之间所执行的操作描述如下,包括:
主机向从机的读操作(成功,无故障情况);
主机向从机的读操作(失败,出现错误的情况);
主机向从机的写操作(成功,无故障情况);
主机向从机的写操作(失败,出现错误的情况)。
下面把现有技术中以上四种操作与本发明中的四种操作方法进行比较描述。
(1)主机向从机的读操作(成功,无故障情况)
参照图7.1和7.2,分别是现有技术中和本发明实施例中主机向从机的读操作(成功,无故障情况)流程图。
本发明中:2(本级从机中的USB Device单元)收到1(上一级主机或上一级从机中的USB Host单元)发来的CBW命令后,通过5(级联控制逻辑单元)传给3(本级从机中的USB Host单元),3(本级从机中的USB Host单元)再直接传给4(下级从机中的USB Device单元)。
在成功传输的情况,5(级联控制逻辑单元)在收到4(下级从机中的USBDevice单元)发来的CSW命令后,向1(上一级主机或上一级从机中的USB Host单元)发送同样的CSW命令作为响应。
(2)主机向从机的读操作(失败,出现错误的情况)
参照图8.1和8.2,分别是现有技术中和本发明实施例中主机向从机的读操作(失败,出现错误的情况)流程图。
本发明中:2(本级从机中的USB Device单元)收到1(上一级主机或上一级从机中的USB Host单元)发来的CBW命令后,通过5(级联控制逻辑单元)传给3(本级从机中的USB Host单元),3(本级从机中的USB Host单元)再直接传给4(下级从机中的USB Device单元)。之后开始传输数据。
如果4(下级从机中的USB Device单元)发来的CSW命令是包含出错信息的,即使2(本级从机中的USB Device单元)和1(上一级主机或上一级从机中的USB Host单元)的数据传输没有出现错误,5(级联控制逻辑单元)也需通知2(本级从机中的USB Device单元)中的USB控制器向1(上一级主机或上一级从机中的USB Host单元)发送出错信息的CSW命令。此时,5(级联控制逻辑单元)应该用任意一种方式,例如点亮一个发光二极管向操作者进行出错提示。
(3)主机向从机的写操作(成功,无故障情况)
图9.1和9.2分别是现有技术中和本发明实施例中主机向从机的写操作(成功,无故障情况)流程图。
本发明中:2(本级从机中的USB Device单元)收到1(上一级主机或上一级从机中的USB Host单元)发来的CBW命令后,通过5(级联控制逻辑单元)传给3(本级从机中的USBHost单元),3(本级从机中的USB Host单元)再直接传给4(下级从机中的USB Device单元)。接下来,2(本级从机中的USB Device单元)收到1(上一级主机或上一级从机中的USB Host单元)发来的待写入的数据(DATA OUT)后,5(级联控制逻辑单元)通过直接内存访问(DMA,Direct Memory Access,直接存储器存取)等方式,把待写入的数据(DATA OUT)同步传输给3(本级从机中的USB Host单元),3(本级从机中的USB Host单元)则通过与4(下级从机中的USB Device单元)之间的USB线路连接,把数据(DATA OUT)传递给4(下级从机中的USB Device单元)。
在成功传输的情况,5(级联控制逻辑单元)在收到4(下级从机中的USBDevice单元)发来的CSW命令后,通知2(本级从机中的USB Device单元)中的USB控制器向1(上一级主机或上一级从机中的USB Host单元)发送同样的CSW命令作为响应。
(4)主机向从机的写操作(失败,出现错误的情况)
图10.1和10.2分别是现有技术中和本发明实施例中主机向从机的写操作(失败,出现错误的情况)流程图。
本发明中:2(本级从机中的USB Device单元)收到1(上一级主机或上一级从机中的USB Host单元)发来的CBW命令后,通过5(级联控制逻辑单元)传给3(本级从机中的USB Host单元),3(本级从机中的USB Host单元)再直接传给4(下级从机中的USB Device单元)。接下来,2(本级从机中的USB Device单元)收到1(上一级主机或上一级从机中的USB Host单元)发来的待写入的数据(DATA OUT)后,5(级联控制逻辑单元)通过直接内存访问(DMA,Direct Memory Access,直接存储器存取)等方式,把待写入的数据(DATA OUT)同步传输给3(本级从机中的USB Host单元),3(本级从机中的USB Host单元)则通过与4(下级从机中的USB Device单元)之间的USB线路连接,把数据(DATA OUT)传递给4(下级从机中的USB Device单元)。
如果4(下级从机中的USB Device单元)发来的CSW命令是包含出错信息的,即使2(本级从机中的USB Device单元)和1(上一级主机或上一级从机中的USB Host单元)的数据传输没有出现错误,5(级联控制逻辑单元)也需通知2(本级从机中的USB Device单元)中的USB控制器,向1(上一级主机或上一级从机中的USB Host单元)发送出错信息的CSW命令。此时,5(级联控制逻辑单元)应该用任意一种方式,例如点亮一个发光二极管向操作者进行出错提示。
综上所述,本发明实施例提供的数据复制装置、系统及方法,具有以下优点:
其一,本发明可以让整个复制过程一次性、全速地完成,相当于只用了往一个目标存储介质中复制的时间,完成了对多个目标存储介质的同步复制,大大节省了操作者的时间,提高工作效率;
其二,本发明是基于USB来实现的,因此它具有方便热插拔、配置灵活、扩展方便的特点;根据需要同时复制的目标存储介质的数量,可以随时添加新的从设备单元;
其三,由于USB海量存储设备本身所能支持的目标存储类型丰富,例如硬盘、闪存(FLASH)、光驱光盘等等,因此本发明可以适用于多种类型的目标存储介质;
其四,由于本发明的每一级从设备所需要的带宽并不需要共享同一个总线的带宽,因此,每一级从设备都可以保持最大的传输速度,提高了整个系统传输效率;
其五,本发明不需要对存放源数据的主机具有任何特殊改造,对于主机来说,复制数据的过程与仅仅往一个目标存储介质中的复制过程完全没有区别,因此,主机不需要特别的操作系统或者更大的内存;
其六,由于本发明的数据逐级传输的方法可以采用比较简单的逻辑单元来实现,使得整个数据复制系统的成本降到非常低的程度,便于大规模应用。
上述方法中未详述的部分可以参见图4所示装置、图5和图6所示系统的相关部分,为了篇幅考虑,在此不再详述。
以上对本发明所提供的向多个存储介质复制数据的装置、系统及复制方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。