WO2012140813A1 - データ転送装置 - Google Patents

データ転送装置 Download PDF

Info

Publication number
WO2012140813A1
WO2012140813A1 PCT/JP2012/000201 JP2012000201W WO2012140813A1 WO 2012140813 A1 WO2012140813 A1 WO 2012140813A1 JP 2012000201 W JP2012000201 W JP 2012000201W WO 2012140813 A1 WO2012140813 A1 WO 2012140813A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
transfer
request
read
write
Prior art date
Application number
PCT/JP2012/000201
Other languages
English (en)
French (fr)
Inventor
耕造 西村
太田 雄策
西岡 伸一郎
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Publication of WO2012140813A1 publication Critical patent/WO2012140813A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • the present invention relates to a data transfer apparatus for realizing data transfer between external devices, and more particularly to a data transfer apparatus that receives a data transfer request between external devices from a request apparatus and performs efficient data transfer.
  • storage devices such as eSD (Embedded SD) memory devices and SDXC (SD eXtended Capacity) memory cards are installed in embedded devices such as recorder devices and mobile devices.
  • the transfer performance of these storage devices is improving year by year.
  • content take-out processing such as processing to transfer data to the Internet.
  • the point of product differentiation is how to carry out this large-capacity content take-out process without imposing a load on the embedded device.
  • the memory card copying apparatus disclosed in Patent Document 1 has a processor interposed between a transfer source storage device and a transfer destination storage device, and the processor sequentially reads data from the transfer source storage device while storing the transfer destination memory. Write data to the device. According to this method, content data can be taken out without imposing a load on the processor mounted on the embedded device.
  • a data transfer apparatus that uses a personal computer or an embedded device as a host computer to transfer data in response to a transfer request from the host computer.
  • the host computer transmits a transfer request to the data transfer device, and the data transfer device performs data transfer processing, thereby reducing the processing load on the host computer.
  • the memory card copying apparatus of Patent Document 1 does not correspond to a data transfer apparatus that performs data transfer in response to a transfer request from a host computer.
  • the memory card copying apparatus of Patent Document 1 includes a CPU, a ROM, and a buffer (RAM), and can autonomously execute file copying in response to a user operation. That is, the memory card copying apparatus uses the computer function of a personal computer or embedded device for an apparatus dedicated to file copying.
  • Patent Document 1 it is conceivable to improve the memory card copying apparatus of Patent Document 1 to an apparatus that performs data transfer in response to a transfer request from a host computer.
  • the memory card copy apparatus includes a CPU, a ROM, and a buffer
  • the data transfer apparatus has the same level as the computer function of the embedded device, and the cost increases.
  • the memory card copying apparatus disclosed in Patent Document 1 does not describe how to create and update file management information in the transfer destination storage device after file copying, but is presumed to be performed by the memory card copying apparatus.
  • An SD memory device normally supports a read command and a write command, but can specify only one address to be read or written. For this reason, if the data transfer device is excessively simplified, data transfer can only be performed between one read command and one write command having the same transfer size as in a DMA (Direct Memory Access) controller.
  • DMA Direct Memory Access
  • the present invention relates to updating management information when data is transferred in response to a request from the host computer and management information of the file of the transfer destination device after the data transfer is created by the host computer. It is an object of the present invention to provide a data transfer apparatus that can reduce the processing load on a host computer.
  • the present invention has been made in view of the above-described problems, and according to the present invention, a data transfer apparatus that receives a data transfer request from a transfer source device to a transfer destination device from a request apparatus and performs data transfer, Data reading means for reading data from the transfer source device, data writing means for writing data to the transfer destination device, read data storage means for storing data read by the data reading means, and in response to the data transfer request Transfer control means for controlling the data reading means and the data writing means, wherein the data transfer request includes at least one first request group including at least one read request and at least one write request; A second request group consisting of two write requests, wherein the transfer control means includes the first request group.
  • the data read from the transfer source device by the data reading unit according to the read request is stored in the read data storage unit, and the data stored in the read data storage unit is stored according to the write request of the first request group.
  • Control that writes data to the transfer destination device by the data writing means, and writes management information indicating the data arrangement of the transfer destination device transmitted from the requesting device to the transfer destination device by the data writing means in accordance with the write request of the second request group A data transfer device is provided that performs the above.
  • the data transfer device of the present invention performs data transfer in response to a request from the requesting device, and manages when the management information of the file of the transfer destination device after the data transfer is created by the requesting device. It is possible to reduce the processing load of the requesting device regarding the update of information.
  • movement when the request apparatus which concerns on Embodiment 1 reads the file management information on a target device The figure which shows the issuing procedure of the read command and write command at the time of the file copy which concerns on Embodiment 1 Flowchart for operation outline of data transfer apparatus according to embodiment 1
  • FIG. The flowchart regarding the operation
  • FIG. which showed typically the control command and the flow of a process in the case of mainly copying a data file in Embodiment 1.
  • a flowchart showing an outline of access control processing according to the first embodiment A flowchart showing a command queue registration process included in the access control process according to the first embodiment.
  • Flowchart showing order control included in access control processing according to Embodiment 1 7 is a flowchart showing file data read processing included in the sequence control according to the first embodiment.
  • the flowchart which shows the file data write-in process included in the order control which concerns on Embodiment 1.
  • Flowchart relating to processing of data reading means and processing of data writing means according to the first embodiment The figure which shows typically another state in which the command is registered into the command queue which concerns on Embodiment 1
  • the figure which shows the issuing procedure of the read command and write command at the time of the file copy which concerns on Embodiment 2 Block diagram of order control means according to Embodiment 2
  • Block diagram showing a main configuration example of a requesting device according to the first and second embodiments Command list according to modification 1 Overall system diagram in the case where a transfer target device exists in a remote environment via a network including the data transfer apparatus according to the second modification
  • Overall system diagram including data transfer device having network function according to modification 2 The figure which showed a series of operation
  • the block diagram which shows the example which formed the request apparatus which concerns on this Embodiment in the integrated circuit Image diagram of an example of deployment of the first data transfer system according to the present embodiment to a set product Image diagram of development example of set of second data transfer system according to this embodiment to set product
  • FIG. 1 is a block diagram showing the main components of the entire data transfer system including the data transfer apparatus according to this embodiment.
  • the data transfer system includes a request device 1000 that requests data transfer, and a data transfer device 2000 that performs data transfer processing in response to a data transfer request from the request device 1000.
  • the request device 1000 and the data transfer device 2000 are connected to a data / command transfer bus 3100 and a transfer completion notification bus 3200 for transferring data and commands, respectively.
  • the requesting device 1000 transmits a data transfer request to the data transfer device 2000 via the data / command transfer bus 3100.
  • the data transfer device 2000 notifies the completion of the data transfer process via the transfer completion notification bus 3200.
  • the data command transfer bus 3100 is connected to a transfer source device 3300 in which data to be transferred is stored and a transfer destination device 3400 to which the data to be transferred is written.
  • both the requesting device 1000 and the data transfer device 2000 can access the transfer source device 3300 and the transfer destination device 3400 via the data / command transfer bus 3100.
  • the transfer source device 3300 and the transfer destination device 3400 are a non-volatile recording medium that can be written and read (for example, a non-volatile memory such as a flash memory, which is an example of a storage unit), And a controller for performing reading.
  • the transfer source device 3300 and the transfer destination device 3400 are realized by, for example, an eSD memory device or an SDXC memory card. These transfer source device 3300 and transfer destination device 3400 are connected to the data / command transfer bus 3100 by being inserted into, for example, a connection slot provided in the data transfer system.
  • the requesting device 1000 is realized as part of an embedded device such as a recorder device or a mobile device.
  • the requesting device 1000 includes a computer including a central processing unit (CPU), a read only memory (ROM), a random access memory (RAM), a bus connecting them, and an interface (see FIG. 32).
  • CPU central processing unit
  • ROM read only memory
  • RAM random access memory
  • FIG. 32 an interface
  • FIG. 2 is a detailed configuration diagram of the transfer control unit 2100 included in the requesting device 1000 and the data transfer device 2000.
  • the requesting apparatus 1000 includes a transfer completion receiving unit 1100, a transfer request issuing unit 1200, a data transfer unit 1300, a data transfer response unit 1400, and a management information storage unit 1500.
  • the transfer request issuing unit 1200, the data transfer unit 1300, the data transfer response unit 1400, and the management information storage unit 1500 are connected to the data / command transfer bus 3100.
  • the transfer completion receiving unit 1100 is connected to the transfer completion notification bus 3200 and receives a transfer request completion notification from the data transfer device 2000.
  • the transfer request completion notification is implemented as an interrupt, for example, so that it is not necessary for the requesting apparatus 1000 to constantly monitor the data transfer, thereby reducing the processing load on the requesting apparatus 1000.
  • the transfer request issuing unit 1200 issues a data transfer request to the data transfer apparatus 2000 through the data / command transfer bus 3100.
  • the data transfer means 1300 transmits / receives data or commands to / from the data transfer device 2000, the transfer source device 3300, and the transfer destination device 3400 through the data / command transfer bus 3100.
  • This data transfer means 1300 allows the requesting device 1000 to directly access the transfer source device 3300 or the transfer destination device 3400. In that case, the data transfer unit 1300 reads data from the transfer source device 3300 and writes data to the transfer destination device 3400.
  • the file management information is directly read from the transfer source device 3300 and the transfer destination device 3400 by the data transfer means 1300.
  • the data transfer means 1300 is normally used when the data transfer device 2000 is initialized or function settings are performed. As will be described later, the data transfer means 1300 is also used when writing data to the second buffer in the data transfer apparatus 2000.
  • the data transfer response unit 1400 reads data in the requesting device 1000 and data into the requesting device 1000 in response to access requests from the data reading unit and data writing unit in the data transfer device 2000. The writing process is performed.
  • the management information storage unit 1500 stores new management information of the transfer destination device 3400 after data transfer.
  • the data transfer device 2000 includes a transfer control unit 2100, a data read unit 2200, and a data write unit 2300.
  • Transfer control means 2100 and data reading means 2200 are connected by a data reading bus 2400.
  • the transfer control means 2100 and the data writing means 2300 are connected by a data writing bus 2500.
  • the transfer control unit 2100 controls the data reading unit 2200 and the data writing unit 2300 in response to a data transfer request from the requesting device 1000, as will be described later.
  • the data reading unit 2200 and the data writing unit 2300 are connected to the data / command transfer bus 3100, and can access the transfer source device 3300 and the transfer destination device 3400.
  • the data read unit 2200 When the data read unit 2200 receives a data read command from the transfer control unit 2100, the data read unit 2200 reads the data from the transfer source device 3300 via the data / command transfer bus 3100 and sends it to the transfer control unit 2100.
  • the data reading means 2200 can also access the requesting device 1000 via the data / command transfer bus 3100 and read data from the requesting device 1000.
  • the data write unit 2300 When the data write unit 2300 receives a data write command from the transfer control unit 2100, the data write unit 2300 writes the designated data to the transfer destination device 3400 via the data / command transfer bus 3100.
  • the transfer control means 2100 receives a transfer request from the requesting device 1000 via the data / command transfer bus 3100 and decodes the content of the transfer request.
  • the transfer control unit 2100 instructs the data read unit 2200 to read data from the transfer source device 3300, and the data read unit 2200 receives the transfer source device 3300. Read data from.
  • the transfer control unit 2100 instructs the data write unit 2300 to write data to the transfer destination device 3400, and the data write unit 2300 transfers the transfer destination device 3400.
  • the data read by the data reading means 2200 is written into the.
  • the transfer control unit 2100 After completion of the transfer process, the transfer control unit 2100 notifies the requesting apparatus 1000 of the transfer end via the transfer completion notification bus 3200.
  • the transfer control unit 2100 includes a transfer request decoding unit 2110, a sequence control unit 2120, and a transfer completion notification unit 2130.
  • the transfer request decoding means 2110 is connected to the data / command transfer bus 3100.
  • the transfer request decoding unit 2110 and the order control unit 2120 are connected by a request notification bus 2140.
  • the order control means 2120 and the data reading means 2200 are connected by a data reading bus 2400. Further, the order control means 2120 and the data writing means 2300 are connected by a data writing bus 2500. The order control unit 2120 and the transfer completion notification unit 2130 are connected by a transfer state notification signal line 2150.
  • the transfer request decoding unit 2110 includes a decoder, decodes the transfer request from the data / command transfer bus 3100, and transmits a data read request or a data write request to the sequence control unit 2120 via the request notification bus 2140.
  • the order control unit 2120 gives a command to the data reading unit 2200 and the data writing unit 2300 in response to the data reading request or the data writing request transmitted from the transfer request decoding unit 2110.
  • the transfer completion notification unit 2130 acquires the transfer processing status from the sequence control unit 2120 via the transfer status notification signal line 2150, determines the end of transfer, and outputs the result to the transfer completion notification bus 3200.
  • FIG. 3 is a configuration diagram of the order control unit 2120 included in the transfer control unit 2100.
  • the order controller 2120 includes a controller 2121, a read command queue 2122, a write command queue 2123, a first buffer 2124, and a second buffer 2125.
  • a data read request (a read command described later) is registered in the read command queue 2122, and a data write request (a write command described later) is registered in the write command queue 2123.
  • the first buffer 2124 is provided for accumulating data read by the data reading means 2200 (an example of read data storage means).
  • the second buffer 2125 is provided for accumulating data to be written to the transfer destination device 3400 by the data writing means 2300 (an example of a management information storage unit).
  • the storage capacity of the first buffer 2124 is set to be smaller (for example, 1 MB) than the storage capacity (for example, 100 MB) of the main memory (RAM) provided in the requesting device 1000.
  • the storage capacity of the second buffer 2125 is smaller than the storage capacity of the first buffer 2124.
  • Control means 2121, first buffer 2124, and second buffer 2125 are connected to request notification bus 2140, data read bus 2400, and data write bus 2500.
  • the read command queue 2122 is connected to the request notification bus 2140 and the data read bus 2400.
  • the write command queue 2123 is connected to the request notification bus 2140 and the data write bus 2500.
  • control means 2121 When the control means 2121 receives a data read request from the request notification bus 2140, the control means 2121 registers the request in the read command queue 2122 and issues a command to the data read means 2200 in the registered order. Specifically, the read request is transmitted to the data reading unit 2200 in the registration order.
  • control unit 2121 suspends transmission of the next read request when the data reading unit 2200 is operating (when reading data).
  • the read request is stored in the read command queue 2122, the read request is extracted from the read command queue 2122, and the data read request is sent to the data reading unit 2200. Send.
  • control means 2121 registers the data write request received from the request notification bus 2140 in the write command queue 2123, and issues a command to the data write means 2300 in the registered order. Specifically, the write request is transmitted to the data writing means 2300 in the registration order.
  • the control unit 2121 suspends the command to the data writing unit 2300 when the data writing unit 2300 is operating.
  • the data writing means 2300 is not in operation and the write request is accumulated in the write command queue 2123, the data read request is taken out from the write command queue 2123 and the write request is sent to the data writing means 2300. Send.
  • FIG. 4 is a diagram showing a format of a data transfer request command according to the present embodiment.
  • the read command is a command for reading data from the transfer source device 3300, and the start address, read size, device ID (device identification number), and transfer of the transfer source device 3300 storing the data to be read are stored.
  • the group attribute is a setting parameter.
  • the write command is a command for writing data to the transfer destination device, and uses the start address, write size, device ID, and transfer group attribute of the area in which the write target data is written as setting parameters.
  • the read command specifies the read destination, but does not specify where the read data is transmitted.
  • the write command specifies the write destination, but does not specify where the data to be written is. Therefore, it is necessary to appropriately store the data read when the read command is executed by the order control unit 2120 and supply the data to be written to the data writing unit 2300 when the write command is executed.
  • transfer group information is set in each command when the requesting device 1000 creates a transfer request.
  • the requesting device 1000 may generate a plurality of read commands and a plurality of write commands when transferring one file.
  • the same transfer group information is set for each of the plurality of read commands and the plurality of write commands generated to transfer the one or more files.
  • the transfer group information when two files are transferred, the transfer group information includes a first command group including a read command and a write command for transferring the first file, and a second file. It can be said that this is identification information that can identify the second command group including the write command for performing the command.
  • common transfer group information can be set for a plurality of read commands and a plurality of write commands for transferring a plurality of files.
  • the requesting device 1000 grasps the free area of the transfer destination device 3400 based on the file management information of the transfer destination device 3400 and issues a write command. If the data to be transferred is very large, or if the transfer destination storage area is fragmented, a plurality of write commands are issued. The plurality of write commands are assigned the same group attribute. ⁇ Operation> Based on the above configuration example and command format, a series of operations between the requesting apparatus 1000 and the data transfer apparatus 2000 according to the embodiment of the present invention will be described.
  • FIG. 5 is a diagram schematically showing file copy processing.
  • FIG. 6 is a diagram illustrating a processing procedure when copying a file.
  • the storage area 3310 of the transfer source device 3300 includes a management information storage area for storing management information and a file storage area for storing data files.
  • the start address of the management information storage area is A0.
  • Two files F1 and F2 are stored in the file storage area.
  • the files F1 and F2 are fragmented into two, and the top addresses of the fragmented data are A1, A2, A4, and A5.
  • the storage area 3410 of the transfer destination device 3400 shows a state after the files F1 and F2 are copied.
  • the start address of the management information storage area is A7.
  • the files F1 and F2 of the transfer source device 3300 are copied to the transfer destination device 3400 as shown in FIG.
  • the first is the reading of file management information on the file system that is the target of data transfer between devices and the generation of a data transfer request.
  • the requesting apparatus 1000 before generating a transfer request, directly accesses the transfer source device 3300 and the transfer destination device 3400, and manages file information indicating the respective data arrangement (sometimes referred to as a file allocation table). To get. Based on the management information, the address and size of the transfer target data in the transfer source device 3300 and the free area of the transfer destination device 3400 are grasped. Furthermore, the write destination address and size of the transfer target data in the transfer destination device 3400 are determined, and new management information of the transfer destination device 3400 after file copy is created. Further, a data transfer request is generated based on the arrangement of the transfer target data in the transfer source device 3300 and the transfer target data in the transfer destination device 3400 after file copying.
  • the transfer target data is very large or fragmented
  • multiple read commands are generated.
  • the plurality of read commands are assigned the same transfer group information. If the free area of the transfer destination device 3400 is fragmented, a plurality of write commands to which the same transfer group information is assigned are generated.
  • the second is execution of a transfer request by the data transfer device 2000. Specifically, in order to transfer the data file body, data is read from the transfer source device and data is written to the transfer destination device.
  • the third is data writing for updating the data management information of the transfer destination device or the file management information on the file system.
  • the transfer destination device is a non-volatile storage device such as an eSD memory device or an SDXC memory card, and inconsistency between recorded data and its management information may occur due to processing interruption due to an unexpected power shutdown. Therefore, in order to avoid inconsistency between the data and the management information as much as possible, the update timing of the management information is processed according to a request sequence from the requesting device.
  • FIG. 7 is a flowchart showing the operation of the requesting device 1000 during file copying.
  • FIG. 8 is a diagram illustrating a read operation of management information of a file that is a target of data transfer between devices.
  • FIG. 9 is a diagram showing a procedure for issuing a read command and a write command when copying a file. The detailed operation will be described below with reference to FIG. Moreover, FIG.5, FIG.6, FIG.8, FIG.9 is referred at any time.
  • the requesting device 1000 reads management information from the transfer source device 3300 and the transfer destination device 3400 (S1001, S1002). At this time, the requesting device 1000 directly accesses the transfer source device 3300 or the like via the data / command transfer bus 3100 and reads the management information without passing through the data transfer device 2000 (see FIGS. 5 and 8).
  • the requesting apparatus 1000 confirms the size and arrangement state of the data block of the copy target file and the free information of the transfer destination device 3400 based on the read management information, and the management information image of the transfer destination device 3400 after file copy That is, new copy destination management information (hereinafter, new management information) is created in the requesting apparatus 1000 (S1003).
  • the new management information is stored in the management information storage unit 1500.
  • a part for creating new management information is management information creation means (not shown).
  • the files F1 and F2 to be copied are fragmented into two pieces of data, respectively, and are fragmented based on the management information (copy source management information) of the transfer source device 3300.
  • the start address and size of each data is acquired.
  • the write destination area is a storage area of addresses 2048 bytes and addresses A6 to 2048 bytes based on the management information (copy destination management information) of the transfer destination device 3400.
  • the requesting device 1000 displays the files stored in the transfer source device 3300 and the transfer destination device 3400 on the display device after receiving the management information, and accepts a user operation on the input device. Then, the process of S1003 is executed with a file selected by a user operation on the input device as a copy target.
  • new management information after file copying is written in advance into the second buffer 2125 of the data transfer device 2000 by the data transfer means 1300 (S1004). This is because the management information of the transfer destination device 3400 is updated by the data transfer device 2000.
  • the requesting device 1000 directly accesses the second buffer 2125 via the data / command transfer bus 3100. Management information can be written.
  • a data transfer request is generated based on the information (address, size, etc.) of the file to be copied acquired earlier and new management information after file copying (S1005).
  • the data transfer request includes a file transfer request for transferring a data file and a management information transfer request for transferring management information.
  • the file transfer request includes one or more read commands and one or more write commands (an example of a first request group).
  • each of the file transfer requests for the files F1 and F2 is composed of two read commands and one write command.
  • each of the file transfer requests for the files F1 and F2 corresponds to a first request group.
  • the above two read commands are No. Read commands 1 and 2 (or read commands 3 and 4) issued in Nos. 4 and 5 (or Nos. 7 and 8).
  • the above one write command is No. Write command 1 (or write command 2) issued in No. 6 (or No. 9).
  • the same transfer group information G1 (or G2) is set to the transfer group attribute for two read commands and one write command.
  • the management information transfer request is composed of one write command (an example of the second request group).
  • the write command for the file F1 is a command for writing new management information stored in the second buffer 2125 to the address A7 of the transfer destination device 3400 (FIGS. 6 and 9). No. 10).
  • This write command includes information on the write destination address and write size, but does not include information on reading data from the second buffer 2125.
  • the target data of the management information transfer request is not read from the transfer source device 3300, unlike the data constituting the file itself. Therefore, transfer group information G3 different from the command included in the file transfer request is set in the transfer group attribute in order to distinguish it from the data constituting the file itself. Thus, by setting the transfer group information, it becomes possible to identify the write command included in the file transfer request and the write command included in the management information transfer request.
  • the transfer request issuing means 1200 After generating the data transfer request, the transfer request issuing means 1200 issues a transfer request to the data transfer device 2000 (S1006) (see FIG. 14). Specifically, the above-described file transfer request and management information transfer request are transmitted to the transfer request decoding unit 2110 of the data transfer apparatus 2000. As a result, data transfer processing is executed by the data transfer device 2000 as will be described later.
  • the data transfer device 2000 notifies the transfer process completion by the transfer completion notification means 2130.
  • the requesting device 1000 receives the completion notification by the transfer completion receiving means 1100, the requesting device 1000 ends one transfer process (S1007).
  • FIG. 10 is a flowchart conceptually showing the processing order of the data transfer device 2000 at the time of file copying.
  • the data transfer device 2000 receives the transfer request transmitted from the requesting device 1000 by the transfer request decoding means 2110 (S2001). Thereafter, the data transfer indicated by the transfer request is executed by the order control means 2120 (S2002). When the data transfer ends, the requesting device 1000 is notified of the transfer completion (S2003). In addition, each process is not necessarily performed in order like this figure, and operate
  • FIG. 11 shows the processing of the transfer request decoding means 2110 in S2001
  • FIG. 12 shows the processing of the order control means 2120 in S2002
  • FIG. 13 shows the processing of the transfer completion notifying means 2130 in S2003.
  • FIG. 14 is a diagram schematically showing a control command and a processing flow mainly when copying a data file.
  • the transfer request decoding unit 2110 When the transfer request decoding unit 2110 receives a command (S1006 in FIG. 14) from the requesting device 1000 (S2011), it decodes the received command content (S2012).
  • the validity check prevents execution of a transfer request including a command that the specified address does not exist in the transfer source device 3300 and the transfer destination device 3400.
  • the transfer request contains multiple commands. For example, in FIG. 4 to No. As shown in FIG. 10, four read commands and three write commands are included. And No.
  • the write command 10 is a request for writing new management information to the transfer destination device.
  • the order control means 2120 receives the decryption result (S2021) and performs data transfer access control processing (S2022). Details of the access control process will be described later.
  • the transfer completion notification means 2130 waits for a signal indicating transfer completion to be output from the transfer state notification signal line 2150 (S2031). When the transfer completion is output, a data transfer completion notification is transmitted to the transfer completion receiving means 1100 of the requesting apparatus 1000 (S2032).
  • FIG. 15 is a flowchart of the access control process S2022 in the system according to the present embodiment. In this process, the command queue registration process S5001 and the order control S5002 are performed in parallel.
  • FIG. 16 is a diagram showing a processing flow of command queue registration processing S5001 in the system according to the present embodiment.
  • FIG. 17 is a diagram schematically showing a read command registered in the read command queue 2122 and a write command registered in the write command queue 2123.
  • the order control unit 2120 determines whether each command included in the received decoding result is a read command or a write command (S5101), and registers it in the corresponding command queue (S5102, S5103). .
  • queue registration is performed in the order of a plurality of commands transmitted from the transfer request decoding means 2110. Specifically, in the example of FIG. 4 to No. The queue registration is performed in the order of 10.
  • FIG. 18 is a flowchart showing processing of sequence control S5002 in the system according to the present embodiment.
  • the control means 2121 confirms the contents of the write command queue 2123. If there is a write command, the control means 2121 proceeds to the processing after step S5211 (S5201). On the other hand, when the write command queue 2123 is empty, it waits for the write command to be registered. The reason why only the write command queue 2123 is confirmed is that the read command is registered first in the present embodiment. Therefore, in principle, when the write command is registered in the write command queue 2123 after the start of the sequence control process, the read command is also registered.
  • the transfer group information of both the head read command in the read command queue 2122 and the head write command in the write command queue 2123 are compared (S5211). If the transfer group information of the head read command and the write command is the same, it is determined that the head commands of both command queues are a data read request and a data write request forming a transfer pair, and after step S5212. Perform processing.
  • the transfer group information of the head read command and the write command is the same, the transfer group information is stored in the storage means (for example, a register) of the control means 2121 (S5212).
  • the “storage group information” that is the transfer group information stored in this storage means is used in the subsequent processing to determine whether or not the write command is a management information write request.
  • the read command transfer group information precedes (S5221).
  • the transfer command group information of the read command precedes the file data read process is started (S5222). Even when the write command queue 2123 is empty, it is determined that the transfer group information of the read command precedes.
  • the transfer group information of the write command at the head of the queue is preceded, it is determined whether the command processed immediately before and the transfer group information are the same. Specifically, it is determined whether or not it is the same as the “storage group information” described above. If they are the same, it is a file data write request, so a file data write process is performed (S5232).
  • management information write processing is performed (S5241).
  • the present embodiment there is no read command to be a transfer pair in the write command for making a management information write request. This is because the write target data (management information) has already been written to the second buffer 2125, and it is not necessary to read the management information from the requesting device 1000 by a read command.
  • FIG. 19 is a flowchart of the file data reading process (S5213, S5222).
  • the state of the data reading unit 2200 is confirmed (S52131).
  • the file data reading process ends without sending a read request to the data reading unit 2200.
  • the data reading means 2200 is not reading data, the head command of the read command queue 2122 is extracted (S52132).
  • the extracted read command is transmitted to the reading means as a read request (S52134) (see FIG. 14).
  • the reading unit 2200 that has received the read request requests the control unit 2121 to store the data read from the transfer source device 3300 in the first buffer 2124, as will be described later.
  • the control unit 2121 performs control to write the data transmitted from the reading unit 2200 into the first buffer 2124 (S52135).
  • the read command at the head of the queue is invalidated (for example, the read point of the read command queue 2122 is shifted by one), and the process is terminated (S52136).
  • FIG. 20 is a flowchart of the file data write processing (S5214, S5232). In the description of the file data writing process, the description is simplified for the parts similar to the file data reading process.
  • the file data writing process ends without sending a write request.
  • the data writing means 2300 is not writing data, the head command of the write command queue 2123 is extracted (S52142).
  • the write request is transmitted by transmitting the extracted write command to the data writing means 2300 (S52144) (see FIG. 14). Further, the data stored in the first buffer 2124 is read and the write data is transmitted to the data writing means 2300 (S52145). In reading data from the first buffer 2124, data is sequentially read from the data closest to the read pointer of the first buffer 2124 to the write pointer side. If there is no data between the read pointer and the write pointer, the process waits until the data read by the data reading unit 2200 is accumulated in the first buffer 2124.
  • the data writing unit 2300 performs a process of writing the write data to the transfer destination device 3400, as will be described later. Further, after the writing is completed, the data writing unit 2300 outputs a transfer state (writing stopped) indicating the end of writing.
  • control unit 2121 When the control unit 2121 receives the write completion transfer state output from the data writing unit 2300 (S52146), the control unit 2121 invalidates the write command at the head of the queue (for example, shifts the read point by one) and ends the processing ( S52147).
  • FIG. 21 is a flowchart of the management information writing process (S5241). In the description of the management information writing process, the description is simplified for the parts similar to the file data reading process (or writing process).
  • FIG. 22 is a diagram schematically showing a control command and data flow in the management information writing process.
  • the management information writing process is terminated without sending a write request (S52411).
  • the data writing means 2300 is not writing data, the head command of the write command queue 2123 is extracted (S52412).
  • FIG. 23a shows a processing flow of the data reading unit 2200 in the system according to the present embodiment. It is a figure.
  • the data reading unit 2200 When the read request is transmitted from the order control unit 2120 (S3001), the data reading unit 2200 outputs a transfer state indicating that reading is in progress (S3002).
  • a read command is issued to the transfer source device 3300 using the start address of the data to be read and the transfer size as parameters (S3003).
  • the device ID of the transfer source device 3300 is included in the address in the read command, and the data reading unit 2200 designates the device ID of the transfer source device 3300 as the read command issue destination in the data / command transfer bus 3100. To do.
  • the transfer source device 3300 reads data from the designated head address and transmits it to the data reading means 2200.
  • the data reading unit 2200 requests the control unit 2121 to store the read data in the first buffer 2124, and sends the data received from the transfer source device 3300 to the first buffer 2124 (S3004).
  • the above processing is performed each time a read request is made.
  • FIG. 23B is a diagram showing a processing flow of the data writing unit 2300 in the system according to the present embodiment.
  • the data writing unit 2300 When the write request is transmitted from the sequence control unit 2120 (S4001), the data writing unit 2300 outputs a transfer state indicating that reading is in progress (S4002).
  • a write command is issued to the transfer destination device 3400 using the transfer start address and transfer size as parameters (S4003). That is, a write command is transmitted to the transfer destination device 3400.
  • the device ID of the transfer destination device 3400 is included in the address in the write command, and the data writing means 2300 designates the device ID of the transfer destination device 3400 as the issue destination of the write command in the data / command transfer bus 3100. To do.
  • the transfer destination device 3400 is in a writable state by issuing this write command. In other words, the state in which the data transmitted from the data writing means 2300 is written to the storage area is entered.
  • the data writing unit 2300 requests the control unit 2121 to transmit the write data, and transfers the write target data transmitted from the order control unit 2120 to the transfer destination device 3400 (S4004). As a result, data is written to the transfer destination device 3400.
  • the above processing is performed each time a read request is made.
  • a plurality of read commands and a plurality of write commands are registered in the command queue in the order specified by the requesting device 1000, and are issued in the registered order.
  • file copying can be performed while maintaining the correct order of data to be transferred.
  • the command of the preceding transfer group (for example, the smaller transfer group number) is processed preferentially. If a command is processed regardless of the transfer group, there is a high possibility that the data reading unit 2200 is reading or the data writing unit 2300 is writing even if a subsequent command is processed. Will be processed. Therefore, the command can be efficiently processed by preferentially processing the command of the preceding transfer group.
  • the determination processing in S5231 is performed when the transfer group information of the write command is preceded or when the read command queue 2122 is empty. In S5231, it is determined whether or not the write command at the head of the queue is a management information write request. Specifically, it is checked whether or not the transfer group information of the first write command is the same as the stored transfer group information.
  • the transfer group information (storage group information) is stored in S5212 when the transfer group information of the head command in the queue is the same (S5211).
  • the management information write request has no read request as a transfer pair.
  • the transfer group information of the management information write request is not stored. Therefore, when the write command at the head of the queue is a management information write request, the transfer group information of the command is different from the storage group information. Using such an event, it is determined whether or not the write command is a management information write request.
  • FIG. 24 is a diagram schematically showing a state in which commands are registered in the read command queue 2122 and the write command queue 2123.
  • the first request group (transfer group information is G1) includes one read command and three write commands. Such a combination is obtained, for example, when the free area of the transfer destination device 3400 is fragmented and one file is divided and stored in three areas.
  • the second request group (transfer group information is G2) consists of one write command.
  • step S5231 When the writing process of the write command 1 is completed, the determination in step S5231 is performed. Since the transfer group information G1 of the write command 2 is the same as the storage group information, it is determined not to be a management information write request. The same applies to the write command 3. On the other hand, since the transfer group information G2 of the write command 4 is different from the storage group information G1, it is determined that the request is a management information write request.
  • the transfer group information in the command it is possible to determine whether or not the write command is a management information write request even when the read command queue 2122 is empty. The same applies when the transfer group information of the first command in the write command queue 2123 precedes the transfer group information of the first command in the read command queue 2122.
  • control unit 2121 uses the transfer group information in order control to identify whether the target data of the write request is a file or management information, reads the data from a different buffer, and sends it to the data writing unit 2300. Send. Thereby, even if the read destination is not specified in the write request, the data can be read from an appropriate buffer, and the management information is updated by the data transfer apparatus 2000.
  • the write command for the management information write request precedes the read command, for example, when the management information is updated a plurality of times in one transfer, or when the data transfer apparatus 2000 accepts a plurality of transfer requests. Yes (see FIG. 25).
  • each of the write commands 1 to 3 is an example of a command for writing only a part of the data read by the read command 1.
  • Each of the read command 2 and the read command 3 is an example of a command for reading only a part of data written by the write command 3.
  • the read command and the write command included in the transfer request of the requesting apparatus 1000 are finally delivered to the transfer source device 3300 and the transfer destination device 3400.
  • the third and fourth parameters are deleted, but the first and second parameters, which are the main parts, are not corrected.
  • the requesting device 1000 issues a read command and a write command when directly accessing the transfer source and transfer destination devices, but can generate a transfer request to the data transfer device 2000 in a similar format.
  • the data transfer apparatus 2000 of the present embodiment only needs to add the third and fourth parameters to the command that the conventional request apparatus has issued directly to the transfer source and transfer destination devices.
  • the requesting device 1000 can be realized without greatly changing the configuration.
  • the data transfer device 2000 only needs to issue commands included in the transfer request in an appropriate order and time, and does not need to perform processing such as creating a command based on the transfer request. As a result, the data transfer device 2000 can be easily simplified.
  • the data transfer system according to the present embodiment can not only reduce the processing load of the requesting device 1000 but also reduce changes from the conventional requesting device, thereby simplifying the data transfer device 2000.
  • the data transfer device 2000 according to the present invention includes the transfer control unit 2100, the data read unit 2200, and the data write unit 2300, and the transfer control unit 2100 further decodes the transfer request. Means 2110, order control means 2120, and transfer completion notification means 2130 are included.
  • the order control means 2120 included in the transfer control means 2100 in the data transfer apparatus 2000 according to the present invention includes a control means 2121, a read command queue 2122, a write command queue 2123, a first buffer 2124, and a second buffer. 2125 is included.
  • the data transfer device 2000 when there is a data transfer request from the requesting device 1000, the data transfer device 2000 writes the read data from one or more transfer source devices 3300 to the transfer destination device 3400 according to the setting order. Can do. As a result, the number of read requests from the transfer source device 3300 and the number of write requests to the transfer destination device 3400 do not have to match, and the number of read requests and the number of write requests are matched as in the conventional case. Therefore, since it is not necessary to divide into smaller transfer requests, the processing load of the requesting device 1000 can be reduced.
  • the requesting device 1000 since the requesting device 1000 is released from the process related to data transfer until the data transfer is completed after issuing the data transfer request command to the data transfer device 2000, the requesting device 1000 succeeds in reducing the processing load. . At that time, if there is no other content to be processed, the requesting device 1000 can make a transition to the sleep state, for example, and is greatly effective in reducing the power consumption.
  • the data transfer apparatus can perform the file copy process managed on the file system without imposing a processing load on the request apparatus.
  • the new management information of the transfer destination device 3400 after the file copy is stored in the second buffer 2125 of the data transfer apparatus 2000 in advance.
  • new management information can be stored in the requesting device 1000, and the new management information can be read by the data transfer device 2000 as necessary.
  • the data transfer system of the present embodiment includes the request device 1000 and the data transfer device 2000 that are substantially the same as those of the first embodiment, the drawings corresponding to FIGS. 1 and 2 are omitted.
  • the requesting device 1000 will be described later with reference to a flowchart because handling of new management information is different.
  • the data transfer device 2000 also has different parts in the configuration of the sequence control means and the sequence control processing, and will be described later with reference to the drawings.
  • FIG. 26 is a diagram schematically illustrating a file copy process.
  • FIG. 27 is a diagram showing a command issuance procedure when copying a file. The outline of the file copy processing of this embodiment will be described with reference to FIGS.
  • No. in FIG. 9 a read command and a write command for reading and writing new management information are paired. And according to the transfer group information, No. Commands 3 to 8 are assigned to the first request group (divided into two request groups). Nine and ten commands are assigned to the second request group.
  • FIG. 28 is a block diagram showing the configuration of the order control means 5120. Note that the transfer control unit 2100 is assigned the same reference numeral as in the first embodiment.
  • the order control means 5120 does not include the second buffer 2125, and is simpler than the order control means 2120 of the first embodiment.
  • FIG. 29 is a flowchart showing the operation of the requesting apparatus 1000 during file copying (corresponding to FIG. 7). Note that steps S1001 to S1007 are the same as those in the first embodiment, and a description thereof will be omitted.
  • FIG. 30 is a diagram schematically showing a control command and a flow of processing when a data file is mainly copied (corresponding to FIG. 14).
  • step S1011 new management information is stored at a predetermined address Ah of the management information storage unit 1500.
  • the requesting device 1000 issues a transfer request (S1006), and when a read request is made from the data reading means 2200 (S1012), it makes a read access response (S1013).
  • the data transfer response unit 1400 reads new management information from the management information storage unit 1500 and transmits it to the data reading unit 2200 via the data / command transfer bus 3100.
  • the data transfer apparatus 2000 can write new management information in the transfer destination device 3400.
  • FIG. 10 and FIG. 11 are the same as those of the first embodiment, the illustration is omitted.
  • FIG. 31 is a diagram showing a processing flow of the sequence control S5002 (corresponding to FIG. 18).
  • FIG. 31 omits S5231 and S5241 from FIG.
  • file data reading / writing and management information reading / writing are performed in the same procedure. Therefore, S5213 and S5222 are referred to as data read processing, and S5214 and S5232 are referred to as data write processing.
  • the No. in FIG. When the 9 read command 5 is transmitted to the requesting device 1000, new management information is transmitted to the data reading means 2200 according to the access response of the requesting device 1000.
  • the new management information is stored in the first buffer 2124, and written to the transfer destination device 3400 by the data writing means 2300 in either S5214 or S5232. As a result, the management information is updated.
  • the requesting device 1000 is subjected to a processing load for responding to the access by the data transfer device 2000, and for example, the period for suspending the function may be shortened. Is not suitable. Therefore, when priority is given to the power saving of the requesting device 1000 over the simplification of the data transfer device 2000, the method using the second buffer is effective.
  • FIG. 32 is a block diagram showing an example of a physical main configuration of the requesting apparatus 1000.
  • the request device 1000 includes a CPU 1011, a RAM 1012, a ROM 1013, and a main bus 1014 that connects them.
  • a storage host 1021 that manages storage devices and a storage bus 1022 connected to the main bus 1014 via the storage host 1021 are included.
  • a data transfer device 2000, a transfer source device 3300, and a transfer destination device 3400 are connected to the storage bus 1022.
  • the storage bus 1022 corresponds to the data / command transfer bus 3100 of FIG. Further, the storage bus 1022 may be a plurality of buses. In this case, for example, data is transmitted from the data transfer device 2000 to the transfer destination device 3400 while transmitting data from the transfer source device 3300 to the data transfer device 2000. It is possible to send.
  • the storage host 1021 mediates transmission / reception of data or commands between the CPU 1011 and the like, the data transfer device 2000, the transfer source, and the transfer destination device.
  • the storage host 1021 has at least some of the functions of the transfer request issuing unit 1200, the data transfer unit 1300, and the data transfer response unit 1400 shown in FIG.
  • the transfer target data is transmitted in the following order.
  • Data to be transferred is transmitted from the transfer source device 3300 to the data transfer device 2000 via the storage bus 1022 and stored in the first buffer 2124.
  • the data to be transferred does not pass through the main bus 1014 and the CPU 1011, and not only reduces the processing load on the CPU 1011 but also does not occupy the main bus 1014. Therefore, even if the CPU 1011 performs a process other than the data transfer, the process is not hindered by the data transfer. In this respect, a reduction in processing efficiency of the CPU 1011 during data transfer is suppressed.
  • the main bus 1014 is a specific example of the first bus
  • the storage host 1021 is a specific example of the external device management unit
  • the storage bus 1022 is a specific example of the second bus.
  • a part of the storage area of the RAM 1012 can function as the management information storage unit 1500.
  • the storage host 1021 can function as a transfer completion receiving unit 1100, a transfer request issuing unit 1200, a data transfer unit 1300, and a data transfer response unit 1400.
  • the transfer request command has the transfer group as the fourth parameter.
  • the present invention is not necessarily limited to this case.
  • a command related to data transfer but also a command for specifying a transfer group may be additionally expanded. .
  • FIG. 33A shows an example in which a transfer group delimiter setting command for setting transfer group information is added.
  • the transfer group delimiter setting command is set at the command group boundary, and the same transfer group information is set in the command group. Give.
  • the first and second parameters are not set in the transfer group separation setting command.
  • the device IDs of the read command and the write command are not shown.
  • This transfer group delimiter setting command may be registered only in the write command queue 2123 or may be registered in the read command queue 2122 and the write command queue 2123.
  • (B) of FIG. 33 is an example in which the transfer group number is set as the first parameter in the transfer group delimiter setting command for setting the transfer group information.
  • the transfer group number is set as the first parameter in the transfer group delimiter setting command for setting the transfer group information.
  • FIG. 33 is an example in which a transfer group setting start command and a transfer group end command for setting transfer group information are added, and a transfer group start command before and after a command group for which the same transfer group information is to be set. Used with the transfer group end command.
  • FIG. 33D shows an example in which the transfer group number is set as the first parameter in the transfer group setting start command and the transfer group end command.
  • the transfer source device and the transfer destination device are directly connected to the data command transfer bus 3100.
  • the present invention is not limited to such a mode.
  • the transfer source device and the transfer destination device may be connected to the data transfer apparatus 2000 via a network.
  • FIG. 34 is a diagram showing a data transfer system in which the data transfer device 2000 or the like is connected to a transfer source device and a transfer destination device via a network.
  • the network can include, for example, a home network based on WLAN (Wireless Local Area Network), the Internet, and the like.
  • the data transfer system includes a network communication device 15001 that performs communication via a network 15000, a remote device 15002 having a network communication function, and a transfer source device 15004 and a transfer destination device 15005 connected to the remote system 15002.
  • the network communication device 15001 and the remote system 15002 transmit / receive data or commands using, for example, the TCP / IP protocol.
  • the data reading unit 2200 issues a read command issue request to the transfer source device 15004 connected to the remote system 15002 to the network communication device 15001 (hereinafter abbreviated as “communication device”).
  • the remote system 15002 returns a response to the communication device 15001 as to whether or not the issue request is possible. Here, it is assumed that an issue request is possible.
  • the communication device 15001 transmits the response to the data reading unit 2200.
  • the remote system 15002 transmits a read command to the transfer source device 15004, receives data read from the transfer source device 15004, and transmits it to the communication device 15001 via the network 15000.
  • the communication device 15001 transmits the data transmitted from the remote system 15002 to the data reading unit 2200.
  • Data received by the data reading means 2200 is stored in the first buffer 2124. Thereafter, the data in the first buffer 2124 is written into the transfer destination device 3400 by the data writing means 2300.
  • the data reading unit 2200 issues a read command to the transfer source device 3300. Thereafter, data to be transferred is read from the transfer source device 3300 and stored in the first buffer 2124.
  • the data writing unit 2300 issues a write command issuance request to the communication destination 15001 to the transfer destination device 15005 connected to the remote system 15002.
  • the remote system 15002 returns a response to the communication device 15001 as to whether or not the issue request is possible.
  • a command can be issued.
  • the communication device 15001 transmits the response to the data writing unit 2300.
  • the remote system 15002 issues a write command to the destination device 15005 and requests write preparation.
  • the data writing means 2300 receives the transfer target data stored in the first buffer 2124 and transmits it to the communication device 15001.
  • the communication device 15001 transmits the transfer target data to the remote system 15002, and the remote system 15002 transfers the transfer target data to the transfer destination device 15005, and executes data writing.
  • the remote system 15002 transmits the execution result of data writing to the communication device 15001, and the communication device 15001 transmits the received execution result to the data writing means 2300. If the execution result is the completion of writing, the data writing unit 2300 sets the transfer state to indicate the end of writing.
  • data can be read from the transfer source device 15004 connected via the network 15000, or data can be written to the transfer source device 15005.
  • the remote system 15002 has the same function as the data reading unit 2200 and the same function as the data writing unit 2300.
  • the data transfer device 2000 may include the communication device 15001.
  • Fig. 35 schematically shows the configuration of the data transfer system.
  • the data transfer apparatus 12000 of this example includes a network communication unit 12001, and it is not necessary to provide a separate communication apparatus 15001, which is advantageous in terms of cost and installation space.
  • the order control unit 2120 in the data transfer apparatus 2000 has the first buffer has been described.
  • the present invention is not necessarily limited to this case.
  • the order control unit 2120 may directly transfer the data read from the data reading unit 2200 to the data writing unit 2300. By doing in this way, the data transfer apparatus 2000 is simplified and the mounting cost is reduced.
  • the request device 1000 and the data transfer device 2000 according to the above-described two embodiments and modifications can be formed in an integrated circuit such as an LSI.
  • FIG. 37 is a diagram schematically showing an example in which the data transfer device 2000 is formed of an LSI.
  • FIG. 38 is a diagram schematically showing an example in which the requesting device 1000 is formed by LSI.
  • FIG. 39 is a diagram schematically showing an example in which each of the requesting device 1000 and the data transfer device 2000 is formed by LSI. Further, in this figure, an LSI including each of the requesting device 1000 and the data transfer device 2000 is attached to the electronic circuit board 99001 and used in various electronic devices.
  • the electronic devices are, for example, a digital television set 90010, a broadcast recording / reproducing device 99011, a mobile phone 99012, a digital camera 99013 (still camera, movie camera), an in-vehicle terminal 99014 (for example, car navigation) installed in an automobile 90015, and the like.
  • FIG. 40 is a diagram schematically showing an example in which the requesting device 1000 and the data transfer device 2000 are formed in one LSI. Also in this case, it can be used for various electronic devices as in FIG.
  • the requesting device 1000 is a part of a recorder device or a mobile device, but the present invention is not necessarily limited to this case.
  • the requesting device 1000 may be a consumer device such as a personal computer, a digital television, or a digital camera. In this way, efficient data transfer between devices is realized in various devices.
  • the data transfer request has a form in which a plurality of commands are sequentially transmitted to the data transfer apparatus 2000, but is not necessarily limited to this form.
  • a plurality of read commands and write commands belonging to one transfer group may be combined into one data and transferred to the data transfer device 2000 as write data at once.
  • the transfer request decoding means 2110 can extract a plurality of commands existing in the transferred data and assign the same transfer group information to the plurality of commands.
  • DMA Direct Memory Access
  • the transfer group attribute of the command belonging to the second request group is a number that can be distinguished from other transfer groups, but is not necessarily limited to this case.
  • the transfer group attribute of the command belonging to the second request group for example, the entry number of the second buffer 2125 or the address of the second buffer 2125 may be set.
  • the present invention is not necessarily limited to this premise.
  • the amount of data read by a plurality of read requests from the transfer source device included in the first request group forming the transfer pair is different from the amount of data written by a plurality of write requests to the transfer destination device. If the amount of data is larger, excess data may be discarded.
  • the amount of data read by a plurality of read requests from the transfer source device included in the first request group forming the transfer pair is different from the amount of data written by a plurality of write requests to the transfer destination device. If the amount of data is larger, the excess data may be used at the beginning of the next data transfer.
  • the amount of data to be written differs from the amount of data read by multiple read requests from the transfer source device included in the first request group forming the transfer pair and the amount of data written by multiple write requests to the transfer destination device. If it is larger, the deficient dummy data may be supplemented. As described above, the data transfer apparatus 2000 can deal with the mismatch in the total transfer size between data reading and data writing, thereby simplifying the fraction processing on the requesting apparatus 1000 side.
  • the write request is transmitted from the sequence control unit 2120 to the data writing unit 2300 regardless of whether data is accumulated in the first buffer 2124 or not. It was broken.
  • a write request may be transmitted when data larger than the write size exists in the first buffer 2124.
  • the file data write process may be terminated without transmitting a write request. In this case, the determination can be performed after S52142.
  • the device ID is set in the command.
  • the present invention is not limited to this.
  • the data reading unit 2200 may store the device ID of the transfer source device 3300
  • the data writing unit 2300 may store the device ID of the transfer destination device 3400.
  • the order control unit may transmit the device ID together with the read command or the write command to the data reading unit 2200 or the data writing unit 2300.
  • the third and fourth parameters are not transmitted to the transfer source and transfer destination devices in the above-described two embodiments and modifications, the present invention is not limited to this.
  • the transfer source and transfer destination devices may be configured to read the first parameter (head address) and second parameter (size) of the command and ignore the third and fourth parameters.
  • the command transmitted from the order control unit 2120 can be transmitted to the transfer source device and the transfer destination device without being changed.
  • the read command is transmitted regardless of whether or not the first buffer 2124 is empty. However, the first buffer 2124 is not empty. In this case, sending of the read request may be suspended. If there is no empty area larger than the read size of the read command, the file data read process can be terminated without sending a read request.
  • the transfer source device may receive a plurality of read commands, for example, including a read command queue.
  • data can be efficiently read from the transfer source device by transmitting a plurality of read commands in advance by the data reading means 2200. This is because there is a time lag between when the transfer source device 3300 receives the read command and when a response signal indicating that the read preparation is completed is issued, so that the time lag can be reduced by transmitting a plurality of read commands. .
  • the destination device may receive a plurality of read commands, for example, including a read command queue.
  • the data reading unit 2200 is provided with a buffer, the data read from the transfer source device 3300 is stored in the buffer, and the first buffer 2124 has a free capacity.
  • the data may be transmitted to the buffer 2124, and the data transmission to the first buffer 2124 may be suspended when there is no free space.
  • error determination may be performed. For example, a determination process may be inserted between S5221 and S5231, and if an error is determined, an error flag may be set in the transfer state and the sequence control may be terminated.
  • the error judgment is made up of four types: (a) first buffer is empty, (b) read command is not being executed, (c) read command queue is empty, and (d) second buffer is empty. If the condition is met, it can be determined that there is no data to be written and that it is an error.
  • This error determination is suitable when the transfer source device accepts a plurality of read commands and issues a plurality of read commands to the transfer source device in advance.
  • the error determination may be performed in the write processing of FIG. 20 and FIG. 21 instead of FIG. In this case, for example, the determination process can be inserted after S5221 and before S5231.
  • the storage bus 1022 in FIG. 32 may be a ring bus.
  • the requesting apparatus 1000 directly accesses the second buffer 2125 and writes new management information.
  • the present invention is not limited to this.
  • the transfer request decoding unit 2110 accepts a write request to the second buffer 2125 transmitted from the requesting device 1000, and transmits the decoding result of the write request and management information data received thereafter to the order control unit. It is good also as what to do.
  • the order control means can control to write management information data received thereafter to the second buffer 2125.
  • the write request designating the second buffer 2125 can set the device ID to a value indicating the second buffer 2125, for example.
  • the request apparatus 1000 is connected to the second buffer 2125 via the data / command transfer bus 3100.
  • the present invention is not limited to this.
  • the data transfer unit 1300 of the requesting device 1000 may be directly connected to the second buffer 2125 through a signal line so that the requesting device 1000 directly accesses the second buffer 2125.
  • the processing is supposed to return to S2011.
  • a command other than the transfer request exists in the command from the requesting device 1000
  • a process corresponding to the command may be performed.
  • the command from the requesting device 1000 includes, for example, a command for reading the contents of a register provided in the control unit 2121 of the data transfer device, a command for writing a predetermined value in the register, and the like.
  • S5213, S5214 and the like are processes for starting the data reading process and the data writing process.
  • the process may be performed until the data reading process is completed in S5213 and may be performed in S5214 until the data writing process is completed (the same applies to S5222, S5232, and S5241).
  • the data write process in S5214 is performed.
  • the data transfer device 2000 (12000) can be configured by an electronic circuit without using a CPU.
  • the data in the first buffer 2124 is retained for at least a period until all commands included in the same request group (command group having the same transfer group information) are completed. It is good as well. As a result, when writing to the transfer destination device fails and a retry is performed, data can be written to the transfer destination device using data that has already been read and held without reading the data from the transfer source device again. Therefore, it is possible to increase the speed (efficiency) of data transfer.
  • At least one of the read command queue and the write command queue may hold a command for a period until all commands included in the same request group are completed. Good. As in (23) above, this allows processing to continue from command execution instead of issuing a command from the requesting device when data transfer is re-executed. Can be planned.
  • different transfer group information is set in the command group (read command and write command) for transferring the two files F1 and F2.
  • common transfer group information may be set for a command group (read command and write command) for transferring the two files F1 and F2. That is, the data transfer system according to the first embodiment can identify at least a command group for data file transfer and a command group for management information transfer.
  • a data transfer apparatus is a data transfer apparatus that receives a data transfer request from a transfer source device to a transfer destination device from a request apparatus and performs data transfer, and reads data from the transfer source device Means, data writing means for writing data to a transfer destination device, read data storage means for storing data read by the data reading means, the data reading means and the data writing means in response to the data transfer request
  • the data transfer request includes a first request group consisting of at least one read request and at least one write request, and a second request consisting of at least one write request.
  • the transfer control means includes the data according to the read request of the first request group.
  • Data read from the transfer source device by the reading means is stored in the read data storage means, and the data stored in the read data storage means is transferred by the data writing means in accordance with the write request of the first request group.
  • the management information indicating the data arrangement of the transfer destination device transmitted from the requesting device and written to the destination device is controlled to be written to the transfer destination device by the data writing means according to the write request of the second request group.
  • the data transfer device in this section can reduce the processing load on the requesting device by executing data transfer according to the transfer request of the requesting device. Further, by writing the management information of the transfer destination device transmitted from the requesting device to the transfer destination device, it is possible to reduce the processing load of the requesting device regarding the update of the management information.
  • the data transfer device in this section does not require complicated functions such as generation of management information after data transfer, and has only a function for mainly executing a read request and a write request, thereby realizing a simple configuration. it can.
  • a storage device represented by an SD memory device normally corresponds to a read request and a write request. Therefore, a conventional host computer (corresponding to a requesting device) transmits a read request and a write request directly to the storage device, and reads / writes data in the storage device. Therefore, by making the data transfer device perform data transfer using the read request and write request generated by the conventional host computer, the change of the conventional host computer is minimized as much as possible when the request device is realized. There is a request to do.
  • the read destination is set in the read request, but where the read data is transmitted is not set.
  • the write destination is set, but which data should be written is not set. Therefore, the data read by the read request is stored in the read data storage unit by the transfer control unit, and the data to be written by the write request is appropriately supplied to the data writing unit.
  • the transfer control means is configured to perform control to compensate for the lack of information in the read request and write request, data transfer can be realized.
  • a combination of two read requests and one write request can be made by temporarily storing data in the read data storage means. Therefore, the number of data transfer requests from the requesting device can be reduced as compared with the conventional case, the processing overhead of the requesting device related to the setting of the transfer request is reduced, and the transfer rate is improved.
  • the read data storage means when there is a difference in data transfer speed between the read means and the write means, and the write means is slower, the data write means can be operated without interrupting the processing of the data read means. By processing in parallel, data transfer throughput can be improved.
  • At least one of the transfer source device and the transfer destination device can be configured by a storage device.
  • the storage device can be, for example, a memory device such as an eSD (Embedded SD) memory device or an SDXC memory card, a hard disk, an optical disk playback device (or recording device), or the like.
  • the data transfer request may include identification information for identifying the first request group and the second request group.
  • the transfer request in this section has identification information, the first request group and the second request group can be easily identified.
  • the data transfer device further includes a management information storage unit that stores the management information transmitted by the requesting device before the start of data transfer, and the second request group includes a read request
  • the transfer control means identifies the write request of the first request group and the write request of the second request group using the identification information, and writes the write request of the second request group.
  • control for transmitting the management information stored in the management information storage unit to the data writing unit may be performed.
  • the data transfer device in this section has a management information storage unit. Therefore, the requesting device can transmit new management information to the data transfer device in advance before performing the data transfer. Then, the management information stored in the management information storage unit is written to the transfer destination device by a write request of the second request group. As a result, the requesting device does not need to perform processing related to updating the management information after transmitting new management information to the data transfer device, and the processing load on the requesting device is reduced.
  • the mode of this section is compared with the mode in which the requesting device receives the data transfer completion notification from the data transfer device and updates the management information of the transfer destination device by the requesting device itself.
  • the data transfer completion notification is generally an interrupt notification, and a processor overhead occurs due to the process of switching between the process executed by the processor (CPU) of the requesting device and the task generated by the interrupt. Therefore, by transmitting new management information to the data transfer apparatus in advance, it is possible to prevent overhead and reduce the processing load on the processor.
  • the management information storage unit may be referred to as a management information storage unit (or management information storage means).
  • the first request group includes a read request for reading only a part of data written by one write request and a part of the data read by one read request. There may be at least one of the write request for writing only the write request.
  • the number of read requests and the number of write requests included in the first request group and those with different transfer sizes are included. That is, there is no one-to-one correspondence between read requests and write requests.
  • data can be written by temporarily storing the data read by the read request in the read data storage means. Since the data transfer device can execute read requests and write requests that do not correspond one-to-one, the request device can generate read requests and write requests with a relatively large transfer size, and generate transfer requests. Processing burden to be reduced.
  • the read request and the write request do not correspond one-on-one in the following cases.
  • the transfer source data is fragmented, if the sector size is different between the copy source and the copy destination, or if the buffer capacity is different between the read path and the write path, it can be accepted by the transfer source device and the transfer destination device This is the case when the number of different commands (the number of read requests or the number of write requests) is different.
  • the request device is a CPU, a main storage unit, a first bus connecting them, the transfer source device connected to the first bus, and the transfer destination device
  • An external device management unit that transmits and receives signals to and from an external device, and a second bus connected to the external device management unit, the data reading unit, the data writing unit, the transfer source device, and The transfer destination device may transfer data via the second bus without passing through the first bus.
  • the requesting device has two buses. Since the data transfer is performed via the second bus, the processing of the CPU is not hindered by occupying the first bus to which the CPU of the requesting device and the main storage unit (RAM) are connected. Therefore, it is possible to prevent the processing efficiency of the requesting device from being reduced by data transfer.
  • the data reading unit reads data from the transfer source device by transmitting at least a part of the read request to the transfer source device
  • the transfer source device Includes a transfer source storage unit and a transfer source controller
  • the transfer source controller reads data from the transfer source storage unit upon receiving at least a part of the read request from the data reading unit, and sends it to the data reading unit.
  • the data writing means transmits at least a part of the write request to the transfer destination device to prepare the transfer destination device for writing
  • the transfer destination device includes a transfer destination storage unit and A transfer destination controller, and the transfer destination controller receives the write request from the data writing means.
  • the transfer destination controller Upon receiving at least a portion, followed by the data transmitted from said data writing means performs a control to write to the destination storage unit, it is also possible.
  • data can be read and written only by transmitting at least part of the read request or write request included in the transfer request to the transfer source and transfer destination devices.
  • the data transfer apparatus does not need to generate a request, and the data transfer apparatus can be easily simplified.
  • a read request or a write request sent to a transfer source or transfer destination device by a conventional host computer can be used, and the request device is realized by a small change of the conventional host computer. can do.
  • the read request can be, for example, a part of a plurality of parameters included in the read request.
  • the write request can be, for example, a part of a plurality of parameters included in the read request. The same applies to the write request.
  • the data transfer device includes: a transfer request decoding unit that decodes the data transfer request; and a transfer completion notification unit that notifies the requesting device to that effect after the data transfer ends. Also good.
  • the data transfer device in this section can notify the end of data transfer by the transfer completion notification means, and the burden of the request device monitoring data transfer is reduced.
  • the transfer control means includes request storage means for storing a read request and a write request included in the data transfer request, and the read stored in the request storage means The request and the write request may be executed in the order specified by the requesting device.
  • the data transfer device in this section can store read requests and write requests in the request storage means.
  • the write request includes a read command for reading data from the transfer source device, and the read request includes a write command for writing data to the transfer destination device. It may be.
  • the requesting device only has to set an access command consisting of a read command and a write command that has been issued for data transfer between devices by itself in the data transfer device.
  • the data transfer apparatus can process the data transfer process without changing the program, and the amount of mounting change associated with the conventional change can be reduced.
  • each of the read command and the write command may include an identification information field for setting the identification information.
  • the data transfer device can easily identify the transfer group by referring to the identification information field of each command set from the requesting device.
  • the transfer control unit may include a read command queue for registering the read command and a write command queue for registering the write command.
  • the read command queue and the write command queue are examples of request storage means.
  • the read command queue and the write command queue may be processed in parallel.
  • the processing of the next read command can be started without waiting for the completion of data writing by the write command, so that the data transfer throughput can be improved.
  • the data transfer apparatus may be configured such that the number of read commands and the number of write commands included in the first request group are different.
  • the number of read requests and write requests generated by the requesting device can be reduced.
  • the second request group includes a management information read request for reading the management information stored in the request device
  • the transfer control means includes the management information Management information read from the requesting device by the data reading means in accordance with an information read request is stored in the read data storage means, and the management information stored in the read data storage means is stored in the second request group. Control may be performed to write to the transfer destination device by the data writing means in accordance with a write request.
  • This configuration can reduce the processing load for the requesting device to update the management information by reading the management information from the requesting device in response to a read request.
  • the data transfer apparatus may further include a network function, and may be connected to at least one of a transfer source device and a transfer destination device to be transferred via a network.
  • data transfer is performed for data existing in a remote environment via a high-speed wireless network such as Gigabit Ethernet (registered trademark), WLAN (wireless LAN), or WiGig (Wireless Gigabit).
  • a high-speed wireless network such as Gigabit Ethernet (registered trademark), WLAN (wireless LAN), or WiGig (Wireless Gigabit).
  • WLAN wireless LAN
  • WiGig Wireless Gigabit
  • An integrated circuit is an integrated circuit that receives a data transfer request from a transfer source device to a transfer destination device from a requesting device and performs data transfer, and includes a data reading unit that reads data from the transfer source device A data writing means for writing data to the transfer destination device; a read data storage means for storing data read by the data reading means; and controlling the data reading means and the data writing means in response to the data transfer request Transfer control means, wherein the data transfer request includes a first request group comprising at least one read request and at least one write request, and a second request group comprising at least one write request.
  • the transfer control means includes the data reading means according to a read request for the first request group.
  • the data read from the transfer source device is stored in the read data storage means, and the data stored in the read data storage means is transferred by the data write means according to the write request of the first request group.
  • the management information indicating the data arrangement of the transfer destination device transmitted from the requesting device is controlled to be written to the transfer destination device by the data writing means in accordance with the write request of the second request group. .
  • a data transfer method includes a data reading unit that reads data from a transfer source device, a data writing unit that writes data to a transfer destination device, and a read that stores data read by the data reading unit And a data transfer apparatus including a data storage means for receiving a data transfer request from the transfer source device to the transfer destination device from the requesting apparatus and transferring the data, wherein the data transfer request includes at least one read request and , A first request group consisting of at least one write request, and a second request group consisting of at least one write request, and the transfer source by the data reading means according to the read request of the first request group Storing the data read from the device in the read data storage means; Writing the data stored in the read / write data storage means to the transfer destination device by the data write means in accordance with the write request of the first request group; and the data arrangement of the transfer destination device transmitted from the requesting device. Writing management information to the transfer destination device by the data writing means in accordance with a write request of the second request group.
  • This configuration can reduce the processing load on the requesting device in data transfer.
  • a data transfer system includes a transfer source device, a transfer destination device, a request device that makes a data transfer request between the two devices, and a data transfer device that receives the data transfer request and performs data transfer
  • the data transfer device stores data read means for reading data from a transfer source device, data write means for writing data to a transfer destination device, and data read by the data read means.
  • Read data storage means and transfer control means for controlling the data read means and the data write means in response to the data transfer request, the data transfer request comprising at least one read request and at least one write A first group of requests and at least one write request A second request group, wherein the transfer control means stores the data read from the transfer source device by the data reading means in accordance with the read request of the first request group in the read data storage means.
  • the data stored in the read data storage means is written to the transfer destination device by the data writing means in accordance with the write request of the first request group, and shows the data arrangement of the transfer destination device transmitted from the requesting device
  • the management information is controlled to be written in the transfer destination device by the data writing means in accordance with the write request of the second request group.
  • This configuration can reduce the processing load on the requesting device in data transfer.
  • a data transfer apparatus is a data transfer apparatus that responds to a data transfer request between devices from a request apparatus, and the data transfer apparatus reads data from at least one transfer source device.
  • the transfer control unit includes at least the data transfer request.
  • a transfer request decoding means for decoding, controlling the processing order of the data reading means and the data writing means, controlling the order and order of data delivery between the data reading means and the data writing means, and between devices
  • Order control means for performing data transfer, and after completion of data transfer Characterized in that it comprises a transfer completion notification means for notifying.
  • the data transfer device transfers the read data from the plurality of transfer source devices by writing them to the transfer destination device according to the setting order.
  • the number of read requests from the source device and the number of write requests to the transfer destination device do not have to match, and the transfer request can be made more detailed by matching the number of read requests and the number of write requests as in the past. Since it is not necessary to divide, the processing load of the requesting device is reduced.
  • a data transfer apparatus is a data transfer apparatus that receives a data transfer request from a transfer source device to a transfer destination device from a request apparatus and performs data transfer, and reads data from the transfer source device Means, data writing means for writing data to a transfer destination device, read data storage means for storing data read by the data reading means, the data reading means and the data writing means in response to the data transfer request
  • the data transfer request includes a plurality of read requests and a plurality of write requests, and the plurality of read requests and the plurality of write requests are defined by a single write request.
  • Read request to read only a part of the data to be written and read by one read request There is at least one of a write request for writing only a part of the data to be transmitted, and the transfer control means includes request storage means for storing a plurality of read requests and a plurality of write requests included in the data transfer request;
  • the read request and the write request stored in the request storage means are executed in the order specified by the requesting device, and the transfer target data read from the transfer source device by the data read means according to the read request is read data
  • Transfer request processing means for storing the data to be transferred stored in the read data storage means to the data writing means when storing in the storage means and writing to the transfer destination device by the data writing means in accordance with the write request It is characterized by including.
  • the data transfer device when the data transfer device receives a data transfer request from the requesting device and processes it on behalf of the requesting device, the overhead of transfer data transfer can be greatly reduced as compared with the prior art. As a result, the processing load related to data transfer of the requesting device is reduced, the power consumption for data transfer processing is reduced, and the data transfer throughput between devices is greatly improved. Therefore, it is effective for integrated circuit products that perform file copying between high-speed and large-capacity storage devices such as SDXC cards and eSD memory devices. In addition, it is also effective for integrated circuit products, home appliances, personal computers, and mobile terminals such as mobile phones, smartphones, and tablets that perform data transfer between remote devices via a network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 ホストコンピュータの要求に応じてデータ転送を行うとともに、ホストコンピュータによってデータ転送後における転送先デバイスのファイルの管理情報が作成される場合に、管理情報の更新に関してホストコンピュータの処理負担を低減し得るデータ転送装置を提供する。ホストコンピュータとなる要求装置1000からの転送要求を受けるデータ転送装置2000は、転送制御手段2100を備える。転送制御手段2100は、転送要求に含まれる読出し要求と書込み要求とに従いデータ転送を実行する。また、データ転送装置2000は、要求装置1000から送信された管理情報を書込み要求によって転送先デバイス3400に書き込むことで、要求装置1000の処理負担を低減する。

Description

[規則37.2に基づきISAが決定した発明の名称] データ転送装置
 本発明は外部デバイス間のデータ転送を実現するためのデータ転送装置であって、特に要求装置から外部デバイス間のデータ転送要求を受けて、効率的なデータ転送を行うデータ転送装置に関する。
近年、レコーダ機器やモバイル機器などのようなコンピュータ機能が組み込まれた組込み機器には、eSD(Embedded SD)メモリデバイスや、SDXC(SD eXtended Capacity)メモリカードなどの記憶装置が搭載されている。これらの記憶装置の転送性能は、年々向上している。また、組込み機器に記憶された大容量のコンテンツデータをSDXCメモリカードなどの記憶装置に転送する処理や、USB等のインターフェースを介して、他の組込み機器に搭載されたeSDメモリデバイスなどの記憶装置に転送する処理など、所謂コンテンツ持ち出し処理を行うことが普及している。この大容量のコンテンツの持ち出し処理を、如何に組込み機器に負荷をかけずに実現できるかが商品差別化のポイントとなりつつある。
 通常、このような大容量のコンテンツ持ち出しは、レコーダ機器の備えるホストプロセッサが転送元からコンテンツデータを読出して、読み出したデータを転送先へ書き込むことによって行われる。ところが、レコーダ機器やモバイル機器に搭載されるホストプロセッサは、比較的低い性能に抑えられているため、例え高い稼動状態であってもコンテンツ持ち出し処理のボトルネックとなってしまう。そこで、例えば特許文献1のメモリカードコピー装置が提案されている。
 特許文献1のメモリカードコピー装置は、転送元の記憶装置と転送先の記憶装置との間にプロセッサを介在させて、プロセッサが転送元の記憶装置からデータを順次に読み出しながら、転送先の記憶装置へデータの書込みを行う。この方法によれば、組込み機器に搭載されるプロセッサに負荷をかけることなく、コンテンツデータの持ち出しが実現される。
特開2005-275992 公報
 ところで、パーソナルコンピュータや組込み機器をホストコンピュータとして、ホストコンピュータの転送要求に応じてデータ転送を行うデータ転送装置が望まれている。ホストコンピュータは転送要求をデータ転送装置に送信し、データ転送装置がデータ転送処理を行うことで、ホストコンピュータの処理負担が軽減される。
 なお、特許文献1のメモリカードコピー装置は、ホストコンピュータの転送要求に応じてデータ転送を行うデータ転送装置には該当しない。それは、特許文献1のメモリカードコピー装置は、CPU,ROM,バッファ(RAM)を備えており、ユーザ操作に応じて自律的にファイルコピーを実行することができる。つまり、メモリカードコピー装置は、パーソナルコンピュータや組込み機器が有するコンピュータ機能を、ファイルコピー専用の装置に用いているものだからである。
 ここで、特許文献1のメモリカードコピー装置を、ホストコンピュータの転送要求に応じてデータ転送を行う装置に改良することが考えられる。しかし、上述のように、メモリカードコピー装置は、CPU,ROM,バッファを備えているため、組み込み機器が有するコンピュータ機能と同レベルのデータ転送装置となり、コスト増になる。
 特許文献1のメモリカードコピー装置は、ファイルコピー後における転送先の記憶装置のファイル管理情報の作成および更新をどのように行うかは記載されていないが、メモリカードコピー装置が行うものと推測される。
 これに対し、ホストコンピュータによってファイル管理情報を作成することで、データ転送装置を簡素化することが考えられる。しかし、ホストコンピュータがデータ転送装置の処理を監視し、データ転送終了後にファイル管理情報を更新するのでは、ホストコンピュータがデータ転送を監視する処理負担が増大するという問題がある。
 ここで、SDメモリデバイスを例として、データ転送に関する事情について述べる。SDメモリデバイスは、通常、リードコマンドとライトコマンドとに対応しているが、読出し対象あるいは書込み対象のアドレスは1つしか指定できない。そのため、データ転送装置を過度に簡素化すると、DMA(Direct Memory Access)コントローラのように転送サイズが等しい1つのリードコマンドと1つのライトコマンドとの間でデータ転送を行うことしかできなくなる。具体的には、例えば、2つのリードコマンドと、転送サイズが2つのリードコマンド分の1つのライトコマンドと、の間でデータ転送を行うことが困難である。その場合、ホストコンピュータは、2つのリードコマンドに合わせて、1つのライトコマンドを2つのライトコマンドに分割してコマンドを発行する必要があり、ホストコンピュータのリソースの消費、プロセッサの負荷増加を招いてしまうという問題がある。また、リードコマンドとライトコマンドとの個数が同じであっても、対応するコマンド同士の転送サイズが同じにならない場合も同様である(詳細は後述する)。
 上記の課題に鑑み、本発明は、ホストコンピュータの要求に応じてデータ転送を行うとともに、ホストコンピュータによってデータ転送後における転送先デバイスのファイルの管理情報が作成される場合に、管理情報の更新に関してホストコンピュータの処理負担を低減し得るデータ転送装置を提供することを目的とする。
 本発明は上述の課題を鑑みてなされたものであり、本発明によれば、転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行うデータ転送装置であって、転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、を含み、前記データ転送要求は、少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、少なくとも1つの書込み要求から成る第二の要求群と、を含み、前記転送制御手段は、前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行うことを特徴とするデータ転送装置が提供される。
 上記構成によれば、本発明のデータ転送装置は、要求装置の要求に応じてデータ転送を行うとともに、要求装置によってデータ転送後における転送先デバイスのファイルの管理情報が作成される場合に、管理情報の更新に関して要求装置の処理負担を低減し得る。
実施の形態1に係るデータ転送装置を含むシステム全体図 実施の形態1に係るデータ転送装置および要求装置のブロック図 実施の形態1に係る順序制御手段のブロック図 実施の形態1に係る転送グループ属性フィールドを含むコマンドの一覧表 実施の形態1に係るファイルのコピー処理を模式的に示す図 実施の形態1に係るファイルのコピー時における処理の手順を示す図 実施の形態1に係る要求装置の動作概要に関するフローチャート 実施の形態1に係る要求装置が対象デバイス上のファイル管理情報を読み出したときの動作を示した図 実施の形態1に係るファイルのコピー時におけるリードコマンドおよびライトコマンドの発行手順を示す図 実施の形態1に係るデータ転送装置の動作概要に関するフローチャート 実施の形態1に係る転送要求解読手段の動作概要に関するフローチャート 実施の形態1に係る順序制御手段の動作概要に関するフローチャート 実施の形態1に係る転送完了通知手段の動作概要に関するフローチャート 実施の形態1において主としてデータファイルをコピーする場合における、制御指令および処理の流れを模式的に示した図 実施の形態1に係るアクセス制御処理の概要を示すフローチャート 実施の形態1に係るアクセス制御処理に含まれるコマンドキュー登録処理を示すフローチャート 実施の形態1に係るコマンドキューにコマンドが登録されている状態を模式的に示す図 実施の形態1に係るアクセス制御処理に含まれる順序制御を示すフローチャート 実施の形態1に係る順序制御に含まれるファイルデータ読出し処理を示すフローチャート 実施の形態1に係る順序制御に含まれるファイルデータ書込み処理を示すフローチャート 実施の形態1に係る順序制御に含まれる管理情報書込み処理を示すフローチャート 実施の形態1に係るデータ転送システムにおいて第二のバッファを利用してファイル管理情報を転送先デバイスに書込むときの動作を示した図 実施の形態1に係るデータ読出し手段の処理とデータ書込み手段の処理に関するフローチャート 実施の形態1に係るコマンドキューにコマンドが登録されている別の状態を模式的に示す図 実施の形態1に係るコマンドキューにコマンドが登録されているさらに別の状態を模式的に示す図 実施の形態2に係るファイルのコピー処理を模式的に示す図 実施の形態2に係るファイルのコピー時におけるリードコマンドおよびライトコマンドの発行手順を示す図 実施の形態2に係る順序制御手段のブロック図 実施の形態2に係る要求装置の動作概要に関するフローチャート 実施の形態2に係るデータ転送システムにおいて第一のバッファを利用してファイル管理情報を転送先デバイスに書込むときの動作を示した図 実施の形態2に係るアクセス制御処理に含まれる順序制御を示すフローチャート 実施の形態1、2に係る要求装置の主要構成例を示すブロック図 変形例1に係るコマンド一覧表 変形例2に係るデータ転送装置を含み転送対象デバイスがネットワークを介したリモート環境に存在する場合のシステム全体図 変形例2に係るネットワーク機能を有するデータ転送装置を含むシステム全体図 その他の変形例に係るデバイス間データ転送を第一のバッファを用いずに行なった場合の一連の動作を示した図 本実施の形態に係るデータ転送装置を集積回路内に形成した例を示すブロック図 本実施の形態に係る要求装置を集積回路内に形成した例を示すブロック図 本実施の形態に係る第一のデータ転送システムのセット製品への展開例のイメージ図 本実施の形態に係る第二のデータ転送システムのセット製品への展開例のイメージ図
以下、本発明に係る実施の形態について、図面を用いて詳細に説明する。なお、本明細書および図面において同一の機能を有する構成要素については同一の識別符号を付与することとし、重複説明は省略する。
 [実施の形態1]
<構成>
 (1)システム全体構成
 図1は本実施の形態に係るデータ転送装置を含むデータ転送システム全体の主要構成要素を示したブロック図である。
 データ転送システムは、データ転送の要求を行う要求装置1000、および要求装置1000からのデータの転送要求に応じてデータ転送処理を行うデータ転送装置2000を備えている。
 要求装置1000およびデータ転送装置2000は、それぞれデータおよびコマンドを転送するデータ・コマンド転送用バス3100、および転送完了通知用バス3200に接続されている。要求装置1000は、データ・コマンド転送用バス3100を介して、データ転送装置2000にデータの転送要求を送信する。データ転送装置2000は、転送完了通知用バス3200を介して、データ転送処理の完了を通知する。
 また、データ・コマンド転送用バス3100には、転送対象のデータが記憶されている転送元デバイス3300、および転送対象のデータの書き込み先となる転送先デバイス3400が接続されている。このように、要求装置1000およびデータ転送装置2000のいずれも、データ・コマンド転送用バス3100を介して、転送元デバイス3300、および転送先デバイス3400にアクセスすることができる。
 転送元デバイス3300、および転送先デバイス3400は、書き込みおよび読み出しが可能な不揮発性の記録媒体(例えば、フラッシュメモリ等の不揮発メモリであり、記憶部の一例である)と、記録媒体への書込みおよび読出しを行うコントローラとを備えている。転送元デバイス3300、および転送先デバイス3400は、例えばeSDメモリデバイスやSDXCメモリカードなどによって実現される。これら転送元デバイス3300、および転送先デバイス3400は、例えば、データ転送システムに設けられた接続スロットに挿入されることでデータ・コマンド転送用バス3100に接続される。
 (2)要求装置
 本実施の形態に係る要求装置1000は、例えばレコーダ機器やモバイル機器などの組込み機器の一部として実現される。要求装置1000は、CPU(Central Processing Unit),ROM(Read Only Memory),RAM(Random Access Memory),それらを接続するバス,およびインターフェースからなるコンピュータを含む(図32参照)。
 図2は、要求装置1000、およびデータ転送装置2000に含まれる転送制御手段2100の詳細な構成図である。
 要求装置1000は、転送完了受理手段1100、転送要求発行手段1200、データ転送手段1300、データ転送応答手段1400、および管理情報記憶手段1500を含む。
 転送要求発行手段1200、データ転送手段1300、データ転送応答手段1400、および管理情報記憶手段1500は、データ・コマンド転送用バス3100に接続されている。
 転送完了受理手段1100は、転送完了通知用バス3200に接続されており、データ転送装置2000からの転送要求の完了通知を受理する。転送要求の完了通知は、例えば割込みとして実装されることで、要求装置1000がデータ転送を常に監視する必要がなくなるため、要求装置1000の処理負荷が軽減される。
 転送要求発行手段1200は、データ・コマンド転送用バス3100を通じて、データの転送要求をデータ転送装置2000に発行する。
 データ転送手段1300は、データ・コマンド転送用バス3100を通じて、データ転送装置2000、転送元デバイス3300および転送先デバイス3400との間でデータあるいはコマンドの送受信を行う。このデータ転送手段1300により、要求装置1000が、転送元デバイス3300あるいは転送先デバイス3400に直接アクセスすることができる。その場合には、データ転送手段1300は、転送元デバイス3300からのデータの読出し、および、転送先デバイス3400へのデータの書込みを行なう。また、データ転送手段1300により、転送元デバイス3300および転送先デバイス3400から、直接的にファイル管理情報の読出しが行われる。
 また、データ転送手段1300は、通常、データ転送装置2000の初期化や機能設定を行う場合等に使用される。また、後に説明するが、データ転送手段1300は、データ転送装置2000内の第二のバッファへのデータ書込みを行なう場合にも使用される。
 データ転送応答手段1400は、後に説明するが、データ転送装置2000内のデータ読出し手段およびデータ書込み手段からのアクセス要求に応じて、要求装置1000内のデータの読出し、および要求装置1000内へのデータの書込み処理を行なう。
 管理情報記憶手段1500には、後に説明するが、データ転送後における転送先デバイス3400の新たな管理情報が格納される。
 (3)データ転送装置
 (2-1)全体構成
 図1に示したように、データ転送装置2000は、転送制御手段2100、データ読出し手段2200、およびデータ書込み手段2300を含んでいる。
 転送制御手段2100とデータ読出し手段2200は、データ読出し用バス2400で接続されている。転送制御手段2100とデータ書込み手段2300は、データ書込み用バス2500で接続されている。
 転送制御手段2100は、後述するように、要求装置1000からのデータ転送の要求に応じて、データ読出し手段2200、およびデータ書込み手段2300を制御する。
 データ読出し手段2200およびデータ書込み手段2300は、データ・コマンド転送用バス3100に接続されており、転送元デバイス3300、および転送先デバイス3400にアクセスすることができる。
 データ読出し手段2200は、転送制御手段2100からデータ読出し指令を受けた場合、データ・コマンド転送用バス3100を介して、転送元デバイス3300からデータを読み出して転送制御手段2100に送る。また、データ読出し手段2200は、データ・コマンド転送用バス3100を介して要求装置1000にアクセスし、要求装置1000からデータを読み出すこともできる。
 データ書込み手段2300は、転送制御手段2100からデータ書込み指令を受けた場合、データ・コマンド転送用バス3100を介して、転送先デバイス3400に指定されたデータを書き込む。
 ここで、データ転送装置2000の機能について簡単に説明する。
 転送制御手段2100は、データ・コマンド転送用バス3100を介して要求装置1000からの転送要求を受け、転送要求の内容を解読する。
 解読した転送要求にデータの読出し要求がある場合、転送制御手段2100は、データ読出し手段2200に対して転送元デバイス3300からデータを読出すように指令を与え、データ読出し手段2200は転送元デバイス3300からデータを読出す。
 解読した転送要求にデータの書込み要求がある場合、転送制御手段2100は、データ書込み手段2300に対して転送先デバイス3400へデータを書込むように指令を与え、データ書込み手段2300は転送先デバイス3400へデータ読出し手段2200で読み出されたデータを書込む。
 転送処理の終了後、転送制御手段2100は、転送完了通知用バス3200を介して要求装置1000に転送終了を通知する。
 (2-2)転送制御手段
 図2に示したように、転送制御手段2100は、転送要求解読手段2110、順序制御手段2120、および転送完了通知手段2130を含んでいる。
 転送要求解読手段2110は、データ・コマンド転送用バス3100に接続されている。また、転送要求解読手段2110と順序制御手段2120は、要求通知用バス2140で接続されている。
 順序制御手段2120とデータ読出し手段2200は、データ読出し用バス2400で接続されている。また、順序制御手段2120とデータ書込み手段2300は、データ書込み用バス2500で接続されている。また、順序制御手段2120と転送完了通知手段2130は、転送状態通知信号線2150で接続されている。
 転送要求解読手段2110は、デコーダを備え、データ・コマンド転送用バス3100からの転送要求を解読し、要求通知用バス2140を介してデータ読出し要求またはデータ書込み要求を順序制御手段2120に送信する。
 順序制御手段2120は、転送要求解読手段2110から送信されたデータ読出し要求またはデータ書込み要求に応じて、データ読出し手段2200およびデータ書込み手段2300に指令を与える。
 転送完了通知手段2130は、順序制御手段2120から転送状態通知信号線2150を介して転送処理の状態を取得し、転送の終了を判断してその結果を、転送完了通知用バス3200に出力する。
 (2-3)順序制御手段
 図3は、転送制御手段2100に含まれる順序制御手段2120の構成図である。
 順序制御手段2120は、制御手段2121、リードコマンドキュー2122、ライトコマンドキュー2123、第一のバッファ2124、および第二のバッファ2125を含んでいる。
 リードコマンドキュー2122にはデータの読出し要求(後述するリードコマンド)が登録され、ライトコマンドキュー2123にはデータの書込み要求(後述するライトコマンド)が登録される。
 第一のバッファ2124は、データ読出し手段2200によって読み出されたデータを蓄積するために設けられている(読出しデータ記憶手段の一例である)。一方、第二のバッファ2125は、データ書込み手段2300によって転送先デバイス3400に書込みを行うデータを蓄積するために設けられている(管理情報格納部の一例である)。なお、第一のバッファ2124の記憶容量は、要求装置1000が備えている主記憶(RAM)の記憶容量(例えば、100MB)よりも小さいものとされている(例えば、1MB)。また、第二のバッファ2125の記憶容量は、第一のバッファ2124の記憶容量よりも小さいものとされている。
 制御手段2121、第一のバッファ2124、および第二のバッファ2125は、要求通知用バス2140、データ読出し用バス2400およびデータ書込み用バス2500に接続されている。リードコマンドキュー2122は、要求通知用バス2140、およびデータ読出し用バス2400に接続されている。ライトコマンドキュー2123は、要求通知用バス2140、およびデータ書込み用バス2500に接続されている。
 制御手段2121は、要求通知用バス2140からデータの読出し要求を受信した場合、その要求をリードコマンドキュー2122に登録し、登録された順序でデータ読出し手段2200に指令を出す。具体的には、読出し要求を登録順にデータ読出し手段2200に送信する。
 なお、制御手段2121は、データ読出し手段2200が動作中(データの読出しを行っているとき)の場合に、次の読出し要求の送信を保留する。そして、データ読出し手段2200が動作中でなく、かつ、リードコマンドキュー2122に読出し要求が蓄積されている場合に、リードコマンドキュー2122から読出し要求を取り出し、データ読出し手段2200に対してデータ読出し要求を送信する。
 同様に制御手段2121は、要求通知用バス2140から受信したデータの書込み要求をライトコマンドキュー2123に登録し、登録された順序でデータ書込み手段2300に指令を出す。具体的には、書込み要求を登録順にデータ書込み手段2300に送信する。
 なお、制御手段2121は、データ書込み手段2300が動作中の場合は、データ書込み手段2300への指令を保留する。そして、データ書込み手段2300が動作中でなく、かつ、ライトコマンドキュー2123に書込み要求が蓄積されている場合に、ライトコマンドキュー2123からデータ読出し要求を取り出し、データ書込み手段2300に対して書込み要求を送信する。
 制御手段2121は、第一のバッファ2124を介して、データ読出し手段2200によって読出されたデータをデータ書込み手段2300に受け渡す。すなわち、制御手段2121は、データ読出し手段2200で読み出したデータを一旦、第一のバッファ2124に書込んだ後、第一のバッファ2124内のデータを読出してデータ書込み手段2300へ渡す制御を行う。
<コマンドフォーマット>
 図4は、本実施の形態に係るデータの転送要求コマンドのフォーマットを示した図である。
 リードコマンドは、転送元デバイス3300からデータを読出すためのコマンドであり、読出し対象のデータが記憶されている転送元デバイス3300の先頭アドレス、読出しサイズ、デバイスID(デバイスの識別番号)、および転送グループ属性を設定パラメータとする。
 ライトコマンドは、転送先デバイスへデータを書込むためのコマンドであり、書込み対象のデータを書き込む領域の先頭アドレス、書込みサイズ、デバイスID、および転送グループ属性を設定パラメータとする。
 このように、リードコマンドには、読出し先は指定されているが、読み出したデータをどこに送信するかは指定されていない。また、ライトコマンドには、書込み先は指定されているが、書き込むデータがどこにあるかは指定されていない。よって、順序制御手段2120により、リードコマンド実行時において読み出したデータを適切に格納し、ライトコマンド実行時において書き込むべきデータをデータ書込み手段2300に供給する必要がある。
 転送グループ属性には、要求装置1000が転送要求を作成する際に各コマンドに転送グループ情報が設定される。要求装置1000は、例えば、1つのファイルを転送する場合に、複数のリードコマンドと複数のライトコマンドとを生成する場合がある。このような場合、前記1以上のファイルを転送するために生成された複数のリードコマンド、および複数のライトコマンドの各々には、互いに同じ転送グループ情報が設定される。
 このように、転送グループ情報は、例えば、2つのファイルが転送される場合、第一のファイルを転送するためのリードコマンドとライトコマンドとを含む第一のコマンド群と、第二のファイルを転送するためのライトコマンド含む第二のコマンド群とを識別し得る識別情報であると言える。
 なお、複数のファイルをまとめて転送する場合に、複数のファイルを転送するための複数のリードコマンドと複数のライトコマンドとに、共通の転送グループ情報を設定することもできる。
 また、要求装置1000は、転送先デバイス3400のファイル管理情報に基づき、転送先デバイス3400の空き領域を把握し、ライトコマンドを発行する。ここで、転送対象データが非常に大きい場合や、転送先の記憶領域が断片化されている場合は、複数のライトコマンドを発行する。これら複数のライトコマンドには、互いに同じグループ属性が付与される。
<動作>
 以上の構成例およびコマンドフォーマットを元に、本発明の実施の形態に係る要求装置1000とデータ転送装置2000の間の一連の動作について説明する。
 (1)システム全体動作概要
 (1-1)
 本実施の形態に係るデバイス間データ転送は、要求装置1000とデータ転送装置2000との一連の動作により実現される。
 図5は、ファイルのコピー処理を模式的に示す図である。図6は、ファイルのコピー時における処理の手順を示す図である。
 転送元デバイス3300の記憶領域3310は、管理情報が記憶される管理情報記憶領域と、データファイルが記憶されるファイル記憶領域とを含む。管理情報記憶領域の先頭アドレスはA0である。ファイル記憶領域には、2つのファイルF1,F2が記憶されている。
 ファイルF1,F2は、2つに断片化されており、断片化されたデータの先頭アドレスは、A1,A2,A4,A5である。
 図5において、転送先デバイス3400の記憶領域3410は、ファイルF1,F2がコピーされた後の状態を示している。記憶領域3410のうち、管理情報記憶領域の先頭アドレスはA7である。
 データ転送システムによるファイルのコピー処理によって、図5に示すように、転送元デバイス3300のファイルF1,F2が、転送先デバイス3400にコピーされる。
 以後の説明において、上記具体例を参照する場合がある。
 (1-2)デバイス間ファイルコピー処理の動作概要
 本実施の形態に係るデバイス間データ転送をファイルシステム上のファイルコピーに適用した場合、その処理は大きく次の3つに分割することができる。
 1つ目は、デバイス間データ転送のターゲットとなるファイルシステム上のファイルの管理情報の読出しおよびデータ転送要求の生成である。
 まず、要求装置1000は、転送要求を生成する前に、転送元デバイス3300および転送先デバイス3400に直接アクセスし、それぞれのデータ配置を示すファイルの管理情報(ファイル・アロケーション・テーブルと呼ばれる場合がある)を取得する。そして、管理情報に基づき、転送元デバイス3300における転送対象データのアドレスやサイズ、および転送先デバイス3400の空き領域を把握する。さらに、転送先デバイス3400における転送対象データの書込み先アドレスおよびサイズを決定し、ファイルコピー後の転送先デバイス3400の新たな管理情報を作成する。また、転送元デバイス3300における転送対象データの配置、および、ファイルコピー後の転送先デバイス3400における転送対象データの配置に基づいてデータ転送要求を生成する。
 ここで、転送対象データが非常に大きい場合や断片化されている場合は、複数のリードコマンドを生成する。これら複数のリードコマンドには、互いに同じ転送グループ情報が付与される。また、転送先デバイス3400の空き領域が断片化されている場合は、互いに同じ転送グループ情報が付与された複数のライトコマンドを生成する。
 2つ目は、データ転送装置2000による転送要求の実行である。具体的には、データファイル本体を転送するため、転送元デバイスからのデータ読出しと転送先デバイスへのデータ書込みである。
 3つ目は、転送先デバイスのデータの管理情報、もしくはファイルシステム上のファイルの管理情報を更新するためのデータ書込みである。転送先デバイスは、eSDメモリデバイスやSDXCメモリカードなどの不揮発性記憶デバイスであり、不意な電源遮断による処理中断で、記録されたデータとその管理情報との不整合が生じる場合がある。よって、データと管理情報との不整合を極力回避すべく、管理情報の更新のタイミングは、要求装置からの要求シーケンスに従い処理される。
 以下に、本実施の形態に係る要求装置1000とデータ転送装置2000の動作について詳細を説明する。
 (2)要求装置1000の動作概要
 図7はファイルコピー時における要求装置1000の動作を示したフローチャートである。図8はデバイス間データ転送の対象となるファイルの管理情報の読出し動作を示した図である。図9はファイルのコピー時におけるリードコマンドおよびライトコマンドの発行手順を示す図である。以下、図7について、その詳細動作を説明する。また、随時、図5、図6、図8、図9を参照する。
 まず、要求装置1000は、転送元デバイス3300および転送先デバイス3400から管理情報を読み出す(S1001、S1002)。このとき、要求装置1000は、データ・コマンド転送用バス3100を介して転送元デバイス3300等に直接アクセスし、データ転送装置2000を介さずに管理情報を読み出す(図5、図8参照)。
 要求装置1000は、読み出した管理情報に基づき、コピー対象ファイルのデータブロックのサイズや配置状態、および転送先デバイス3400の空き情報を確認しながら、ファイルコピー後の転送先デバイス3400の管理情報のイメージ、つまり、新たなコピー先の管理情報(以後、新たな管理情報)を要求装置1000内に作成する(S1003)。この新たな管理情報は、管理情報記憶手段1500に格納される。なお、要求装置1000のうち、新たな管理情報を作成する部分は管理情報作成手段である(図示省略)。
 図5、図6の例では、コピー対象のファイルF1,F2は、それぞれ2つずつのデータに断片化されており、転送元デバイス3300の管理情報(コピー元管理情報)に基づき、断片化された各データの先頭アドレスとサイズとが取得される。また、書込み先の領域は、転送先デバイス3400の管理情報(コピー先管理情報)に基づき、アドレスA3から2048バイト、および、アドレスA6から2048バイトの記憶領域となる。
 なお、図示を省略するが、要求装置1000は、管理情報の取得後、転送元デバイス3300および転送先デバイス3400に記憶されているファイルを表示装置に表示し、入力装置に対するユーザの操作を受け付ける。そして、入力装置へのユーザ操作によって選択されたファイルをコピー対象として、上記S1003の処理を実行する。
 次に、ファイルコピー後の新たな管理情報を、データ転送手段1300によって予めデータ転送装置2000の第二のバッファ2125に書き込む(S1004)。これは、データ転送装置2000によって転送先デバイス3400の管理情報を更新するためである。なお、例えば、第二のバッファ2125がデータ・コマンド転送用バス3100に接続されている場合(図示省略)、要求装置1000はデータ・コマンド転送用バス3100を介して第二のバッファ2125に直接アクセスし、管理情報を書き込むことができる。
 先に取得したコピー対象のファイルの情報(アドレス、サイズ等)、および、ファイルコピー後の新たな管理情報に基づき、データ転送要求が生成される(S1005)。
 ここで、データ転送要求には、データファイルを転送するためのファイル転送要求と、管理情報を転送するための管理情報転送要求とが含まれる。
 ファイル転送要求は、1以上のリードコマンドと、1以上のライトコマンドとを含む(第一の要求群の一例である)。図5の例では、ファイルF1、F2のファイル転送要求の各々は、2つのリードコマンドと、1つのライトコマンドとからなる。本実施形態において、ファイルF1、F2のファイル転送要求の各々が、第一の要求群に該当する。
 図9では、上記2つのリードコマンドは、No.4,5(あるいは、No.7,8)で発行されるリードコマンド1、2(あるいはリードコマンド3、4)である。上記1つのライトコマンドは、No.6(あるいはNo.9)で発行されるライトコマンド1(あるいはライトコマンド2)である。なお、2つのリードコマンドと、1つのライトコマンドとには、転送グループ属性に、互いに同じ転送グループ情報G1(あるいはG2)が設定される。
 一方、管理情報転送要求は、1つのライトコマンドからなる(第二の要求群の一例である)。図5の例では、ファイルF1のライトコマンドは、第二のバッファ2125に格納されている新たな管理情報を、転送先デバイス3400のアドレスA7に書き込むためのコマンドである(図6、図9のNo.10)。
 なお、このライトコマンドには、書込み先アドレスおよび書込みサイズの情報が含まれているが、データを第二のバッファ2125から読み出すという情報までは含まれていない。しかし、この管理情報転送要求の対象データは、ファイル自体を構成するデータとは異なり、転送元デバイス3300から読み出されるわけではない。そのため、ファイル自体を構成するデータと区別するために、転送グループ属性に、上記ファイル転送要求に含まれるコマンドとは異なる転送グループ情報G3が設定されている。このように、転送グループ情報が設定されることで、ファイル転送要求に含まれるライトコマンドと、管理情報転送要求に含まれるライトコマンドとを識別することが可能になる。
 データ転送要求を生成した後、転送要求発行手段1200によってデータ転送装置2000に転送要求を発行する(S1006)(図14参照)。具体的には、上述のファイル転送要求および管理情報転送要求が、データ転送装置2000の転送要求解読手段2110に送信される。その結果、後述するように、データ転送装置2000によってデータ転送処理が実行される。
 ここで、データ転送装置2000は、前述のように、データ転送処理が完了すると、転送完了通知手段2130によって転送処理の完了通知を行う。要求装置1000は、転送完了受理手段1100によって完了通知を受理すると、1回の転送処理を終了する(S1007)。
 (3)データ転送装置2000の動作概要
 図10はファイルコピー時におけるデータ転送装置2000の処理順序を概念的に示したフローチャートである。
 データ転送装置2000は、要求装置1000から送信された転送要求を、転送要求解読手段2110によって受け付ける(S2001)。その後、順序制御手段2120によって転送要求に示されたデータ転送を実行する(S2002)。データ転送が終了すると、要求装置1000に転送完了を通知する(S2003)。なお、各処理は、この図のように順番に実行されるとは限らず、並列に動作する。
 以下に、各処理の詳細を図示して説明する。
 図11はS2001における転送要求解読手段2110の処理、図12はS2002における順序制御手段2120の処理、図13はS2003における転送完了通知手段2130の処理を示している。
 図14は、主としてデータファイルをコピーする場合における、制御指令および処理の流れを模式的に示した図である。
 (3-1)転送要求受付処理
 以下、図11について、その詳細動作を説明する。
 転送要求解読手段2110は、要求装置1000からの指令(図14のS1006)を受信すると(S2011)、受信した指令内容を解読する(S2012)。
 指令内容が転送要求である場合(S2013)、転送要求の正当性の確認を行ない(S2014)、正当性の確認できた結果を制御手段2121に転送する(S2015)。なお、正当性の確認によって、指定アドレスが転送元デバイス3300、転送先デバイス3400に存在しないといったコマンドを含む転送要求の実行が防止される。
 転送要求には、複数のコマンドが含まれている。例えば、図9のNo.4~No.10に示すように、4つのリードコマンドと、3つのライトコマンドが含まれている。そして、No.10のライトコマンドは、新たな管理情報を転送先デバイスに書込む要求である。
 (3-2)データ転送実行
 以下、図12について説明する。
 順序制御手段2120は、解読結果を受信し(S2021)、データ転送のアクセス制御処理(S2022)を行なう。なお、アクセス制御処理の詳細は後に説明する。
 アクセス制御による転送が完了したら、その旨を、転送状態通知信号線2150を介して転送完了通知手段2130に送る(S2023)。
 (3-3)転送完了通知
 以下、図13について説明する。
 転送完了通知手段2130は、転送完了を示す信号が転送状態通知信号線2150から出力されるのを待つ(S2031)。そして、転送完了が出力されると、データ転送の完了通知を要求装置1000の転送完了受理手段1100に送信する(S2032)。
 (3-4)アクセス制御処理(S2022)
 以下、データ転送のアクセス制御処理S2022の詳細動作を説明する。
 図15は、本実施の形態に係るシステムにおけるアクセス制御処理S2022のフローチャートであり、その処理は、コマンドキュー登録処理S5001と順序制御S5002が並列的に行われる。
 以下、コマンドキュー登録S5001と順序制御S5002の各々の詳細動作について説明する。
 (3-4-1) コマンドキュー登録処理S5001の詳細動作
 図16は本実施の形態に係るシステムにおけるコマンドキュー登録処理S5001の処理フローを示した図である。図17は、リードコマンドキュー2122に登録されたリードコマンド、およびライトコマンドキュー2123に登録されたライトコマンドを模式的に示す図である。
 順序制御手段2120は、受信した解読結果に含まれる各コマンドに対して、リードコマンド、またはライトコマンドの何れかであるかを判断し(S5101)、対応するコマンドキューに登録する(S5102,S5103)。
 なお、転送要求解読手段2110から送信される複数のコマンドの順序通りにキュー登録が行われる。具体的には、図17の例では、No.4~No.10の順にキュー登録が行われる。
 コマンドが無くなると処理を終了する(S5104)。
 (3-4-2) 順序制御S5002の詳細動作
 (3-4-2-1) 順序制御S5002の全体
 図18は本実施の形態に係るシステムにおける順序制御S5002の処理を示すフローチャートである。
 以下、図18について、その詳細動作を説明する。
 まず、制御手段2121はライトコマンドキュー2123の中身を確認し、ライトコマンドが存在する場合はステップS5211以降の処理に進む(S5201)。一方、ライトコマンドキュー2123が空の場合は、ライトコマンドが登録されるのを待つ。なお、ライトコマンドキュー2123だけを確認するのは、本実施形態において、リードコマンドが先に登録されるからである。よって、原則的に、順序制御処理の開始後、ライトコマンドキュー2123にライトコマンドが登録された時点で、リードコマンドも登録されていることとなる。
 次に、リードコマンドキュー2122の先頭のリードコマンドと、ライトコマンドキュー2123の先頭のライトコマンド双方の転送グループ情報を比較する(S5211)。それら先頭のリードコマンドおよびライトコマンドの転送グループ情報が同じであるならば、双方のコマンドキューの先頭のコマンドは、転送対を成すデータ読出し要求とデータ書込み要求であると判断し、ステップS5212以降の処理を行なう。
 先頭のリードコマンドおよびライトコマンドの転送グループ情報が同じ場合、制御手段2121が有する記憶手段(例えば、レジスタ)に転送グループ情報を格納する(S5212)。この記憶手段に格納された転送グループ情報である「格納グループ情報」は、後の処理において、ライトコマンドが管理情報の書込み要求であるか否かの判断に用いられる。
 その後、転送元デバイス3300からファイルデータを読み出す処理(S5213)、転送先デバイス3400に書き込む処理(S5214)が開始される。これらファイルデータ読出し、書込み処理の詳細は後述する。
 先頭のリードコマンドおよびライトコマンドの転送グループ情報が異なる場合、リードコマンドの転送グループ情報が先行しているか否かが判断される(S5221)。リードコマンドの転送グループ情報が先行している場合、ファイルデータ読出し処理が開始される(S5222)。なお、ライトコマンドキュー2123が空である場合も、リードコマンドの転送グループ情報が先行していると判断されるものとする。
 キューの先頭のライトコマンドの転送グループ情報が先行している場合、直前に処理したコマンドと転送グループ情報が同じか否か判断される。具体的には、前述の「格納グループ情報」と同じか否かが判断される。同じである場合は、ファイルデータの書込み要求であるので、ファイルデータ書込み処理が行われる(S5232)。
 一方、ライトコマンドの転送グループ情報が上記格納グループ情報と異なる場合、そのライトコマンドは転送対をなさない管理情報の書込み要求であるので、管理情報書込み処理が行われる(S5241)。
 ここで、本実施の形態において、管理情報の書込み要求を行うライトコマンドには、転送対となるリードコマンドが存在しない。これは、書込み対象のデータ(管理情報)が既に第二のバッファ2125に書き込まれており、リードコマンドによって要求装置1000から管理情報を読み出す必要がないからである。なお、予備的に説明すると、後の実施形態においては、リードコマンドによって要求装置1000から管理情報を読み出す態様がある。その態様では、管理情報の書込み要求を行うライトコマンドに、転送対となるリードコマンドが存在する。
 最後に、リードコマンドキュー2122およびライトコマンドキュー2123にコマンドが登録されていなければ(S5251)、読出し処理、書込み処理の終了後に順序制御処理が終了する(S5261)。一方、コマンドが登録されている場合、S5211以下の処理が行われる。
 (3-4-2-2) ファイルデータ読出し処理
 図19はファイルデータ読出し処理(S5213,S5222)のフローチャートである。
 まず、データ読出し手段2200の状態が確認され(S52131)、データを読み出している状態(リード中)では、読出し要求がデータ読出し手段2200に送出されずにファイルデータ読出し処理が終了する。一方、データ読出し手段2200がデータの読み出しを行っていない場合は、リードコマンドキュー2122の先頭コマンドが抽出される(S52132)。
 抽出されたリードコマンドは、読出し要求として読出し手段に送信される(S52134)(図14参照)。
 ここで、読出し要求を受信した読出し手段2200は、後述するように、転送元デバイス3300から読み出したデータを第一のバッファ2124に格納することを、制御手段2121に要求する。制御手段2121は、この要求に応え、読出し手段2200から送信されるデータを第一のバッファ2124に書き込む制御を行う(S52135)。その後、キューの先頭のリードコマンド(抽出したリードコマンド)を無効化し(例えば、リードコマンドキュー2122のリードポイントを1つシフトさせる)、処理を終了する(S52136)。
 なお、S52132においてリードコマンドを抽出した時点ではキューの先頭のリードコマンドは無効化されておらず、S52133によってファイルデータ読出し処理が終了した場合、次回実行時に再び同じリードコマンドが抽出される場合がある。
 上記ファイルデータ読込み処理、下記ファイルデータ書込み処理は、図18の順序制御のメイン処理と並列的に行われる。
 (3-4-2-3) ファイルデータ書込み処理
 図20はファイルデータ書込み処理(S5214,S5232)のフローチャートである。なお、ファイルデータ書込み処理の説明において、上記ファイルデータ読出し処理と類似している部分は説明を簡略化する。
 データ書込み手段2300がデータを書き込んでいる状態(ライト中)では、書込み要求が送出されずにファイルデータ書込み処理が終了する。一方、データ書込み手段2300がデータの書込みを行っていない場合は、ライトコマンドキュー2123の先頭コマンドが抽出される(S52142)。
 上記抽出されたライトコマンドがデータ書込み手段2300に送信されることで、書込み要求が送信される(S52144)(図14参照)。また、第一のバッファ2124に格納されているデータを読み出して、データ書込み手段2300に書込みデータを送信する(S52145)。なお、第一のバッファ2124からのデータの読出しにおいて、第一のバッファ2124のリードポインタに最も近いデータから、ライトポインタ側に順にデータが読み出される。また、リードポインタとライトポインタとの間にデータがない場合は、データ読出し手段2200によって読み出されたデータが第一のバッファ2124に蓄積されるまで待機する。
 ここで、データ書込み手段2300は、後述するように、書込みデータを転送先デバイス3400に書き込む処理を行う。また、データ書込み手段2300は、書込みが終了した後、書込み終了を示す転送状態(ライト停止中)を出力する。
 制御手段2121は、データ書込み手段2300が出力する書込み終了の転送状態を受け取ると(S52146)、キューの先頭のライトコマンドを無効化し(例えば、リードポイントを1つシフトさせる)、処理を終了する(S52147)。
 (3-4-2-4) 管理情報書込み処理
 図21は管理情報書込み処理(S5241)のフローチャートである。なお、管理情報書込み処理の説明において、上記ファイルデータ読出し処理(あるいは書込み処理)と類似している部分は説明を簡略化する。図22は、管理情報書込み処理における制御指令およびデータの流れを模式的に示す図である。
 データ書込み手段2300がデータを書き込んでいる状態(ライト中)では、書込み要求が送出されずに管理情報書込み処理が終了する(S52411)。一方、データ書込み手段2300がデータの書込みを行っていない場合は、ライトコマンドキュー2123の先頭コマンドが抽出される(S52412)。
 次に、第二のバッファ2125に、管理情報のデータが存在する場合(S52413)、書込み要求がデータ書込み手段2300に送出される(S52414)。また、第二のバッファ2125に格納されている管理情報を読み出して、データ書込み手段2300に送信する(S52415)。その結果、データ書込み手段2300によって転送先デバイス3400に管理情報が書き込まれる。
 その後、データ書込み手段2300が返信する書込み終了を示す転送状態を受信すると(S52416)、キューの先頭のライトコマンドを無効化する(S52417)。そして、記憶手段に格納されている転送グループ情報を、抽出したライトコマンドのものに更新した後(S52418)、処理を終了する。
 上記S52413において、第二のバッファ2125に管理情報のデータが存在しない場合、書込み要求が送信されずにエラーフラグがセットされ(S52419)、管理情報書込み処理が終了する。このエラーフラグがセットされると転送処理は中止される。また、例えば、エラーが生じている旨が転送完了通知手段2130によって要求装置1000に送信される。要求装置1000は、表示装置にエラーの発生を表示し、ユーザにデータ転送が正常に終了しなかったことを通知する。
 以上により、順序制御S5002では、リードコマンドキュー2122およびライトコマンドキュー2123に格納されたコマンドに対応するデータ転送処理を実現する。
 (4)データ読出し手段2200、データ書込み手段2300の詳細動作
 (4-1) データ読出し手段2200の詳細動作
 図23のaは、本実施の形態に係るシステムにおけるデータ読出し手段2200の処理フローを示した図である。
 以下、図23のaについて、その詳細動作を説明する。
 データ読出し手段2200は、順序制御手段2120から読出し要求が送信されると(S3001)、リード中を示す転送状態を出力する(S3002)。
 その後、転送元デバイス3300に対して読出し対象のデータの先頭アドレス、転送サイズをパラメータとしてリードコマンドを発行する(S3003)。なお、リードコマンド中のアドレスに転送元デバイス3300のデバイスIDが含まれており、データ読出し手段2200は、データ・コマンド転送バス3100に、リードコマンドの発行先として転送元デバイス3300のデバイスIDを指定する。
 転送元デバイス3300は、リードコマンドに応答して、指定された先頭アドレスからデータを読み出してデータ読出し手段2200に送信する。データ読出し手段2200は、制御手段2121に読出しデータを第一のバッファ2124に格納する要求を行い、転送元デバイス3300から受信したデータを第一のバッファ2124に送る(S3004)。
 リードコマンドで指定されたサイズのデータが読み出されると、リード完了(リード停止)を示す転送状態を出力する(S3009)。
 上記の処理は、読出し要求がなされる度に行われる。
 (4-2) データ書込み手段2300の詳細動作
 図23のbは、本実施の形態に係るシステムにおけるデータ書込み手段2300の処理フローを示した図である。
 以下、図23のbについて、その詳細動作を説明する。
 データ書込み手段2300は、順序制御手段2120から書込み要求が送信されると(S4001)、リード中を示す転送状態を出力する(S4002)。
 その後、転送先デバイス3400に対して転送先の先頭アドレス、転送サイズをパラメータとしてライトコマンドを発行する(S4003)。つまり、転送先デバイス3400にライトコマンドを送信する。なお、ライトコマンド中のアドレスに転送先デバイス3400のデバイスIDが含まれており、データ書込み手段2300は、データ・コマンド転送バス3100に、ライトコマンドの発行先として転送先デバイス3400のデバイスIDを指定する。
 このライトコマンドの発行により、転送先デバイス3400は、書込み可能状態となる。つまり、データ書込み手段2300から送信されるデータを記憶領域に書き込む処理を行う状態となる。
 データ書込み手段2300は、制御手段2121に書込みデータの送信を要求し、順序制御手段2120から送信される書込み対象のデータを転送先デバイス3400に転送する(S4004)。その結果、データが転送先デバイス3400に書き込まれる。
 ライトコマンドで指定されたサイズのデータが書き込まれると、ライト完了(ライト停止)を示す転送状態を出力する(S4009)。
 上記の処理は、読出し要求がなされる度に行われる。
 (5)以上で順序制御の説明を終了する。上記順序制御において、新たな管理情報が既に第二のバッファ2125に準備されているため、管理情報の書込み要求を実行する際に要求装置1000へアクセスして新たな管理情報を読み出す必要がない。また、要求装置1000が転送先デバイス3400にアクセスして管理情報を更新する必要もない。このため、管理情報の更新中の要求装置1000への処理負荷は削減され、省電力化に好適である。
 また、本実施形態において、複数のリードコマンド、複数のライトコマンドは、それぞれ要求装置1000の指定順にコマンドキューに登録され、かつ、登録された順序で発行される。これにより、転送対象のデータの並び順を正しく保ちつつファイルコピーを行うことができる。
 なお、キューの先頭のリードコマンドとライトコマンドとの転送グループが異なる場合、先行する転送グループ(例えば、転送グループを示す番号が小さい方)のコマンドが優先的に処理される。仮に、転送グループに関係なくコマンドを処理する場合、後続のコマンドを処理しようとしても、データ読出し手段2200がリード中であったり、データ書込み手段2300がライト中であったりする可能性が高く、余計な処理を行うこととなる。よって、先行する転送グループのコマンドを優先的に処理することで、効率よくコマンドを処理することができる。
 <その他>
 (a)順序制御処理(図18)のS5231の判定処理について補足的に説明する。
 S5231の判定処理は、ライトコマンドの転送グループ情報が先行している場合、あるいは、リードコマンドキュー2122が空の場合に行われる。S5231では、キューの先頭のライトコマンドが管理情報の書込み要求であるか否かを判定している。具体的には、先頭のライトコマンドの転送グループ情報が、格納された転送グループ情報と同じか否かが調べられる。
 ここで、S5212において転送グループ情報(格納グループ情報)が格納されるのは、キューの先頭コマンドの転送グループ情報が同じ場合である(S5211)。一方、本実施形態において、管理情報の書込み要求には転送対となる読出し要求が存在しない。その結果、管理情報の書込み要求の転送グループ情報は格納されることはない。よって、キューの先頭のライトコマンドが管理情報の書込み要求である場合、コマンドの転送グループ情報は格納グループ情報と異なることとなる。このような事象を利用して、ライトコマンドが管理情報の書込み要求であるか否かが判定される。
 しかしながら、図17の例では、上記判定の意義が把握し難いため、以下に別の具体例を示して説明する。
 図24はリードコマンドキュー2122、ライトコマンドキュー2123にコマンドが登録されている状態を模式的に示す図である。この図において、第一の要求群(転送グループ情報がG1)は、1つのリードコマンドと、3つのライトコマンドとを含んでいる。このような組合せになるのは、例えば、転送先デバイス3400の空き領域が断片化しており、1つのファイルが3つの領域に分割して記憶される場合である。第二の要求群(転送グループ情報がG2)は、1つのライトコマンドからなる。
 これらのコマンドは、前述の順序制御(図18)において先頭のコマンド(図において上側)から処理される。このとき、転送グループ情報G1が格納され、格納グループ情報がG1となる。そして、リードコマンド1によって転送元デバイス3300から転送対象のデータが読み出され、それに並行してライトコマンド1によってデータが読み出された順に転送先デバイス3400に書き込まれる。
 ライトコマンド1の書込み処理が終了すると、順序制御のS5231の判定が行われる。ライトコマンド2の転送グループ情報G1が、格納グループ情報と同じであるため、管理情報の書込み要求ではないと判定される。ライトコマンド3も同様である。一方、ライトコマンド4の転送グループ情報G2は、格納グループ情報G1と異なるため、管理情報の書込み要求であると判定される。
 このように、コマンドに転送グループ情報を設定することで、リードコマンドキュー2122が空の状態であっても、ライトコマンドが管理情報の書込み要求であるか否かを判定することができる。また、ライトコマンドキュー2123の先頭コマンドの転送グループ情報が、リードコマンドキュー2122の先頭コマンドの転送グループ情報より先行している場合も同様である。
 このように、制御手段2121は、順序制御において転送グループ情報を利用して書込み要求の対象データがファイルであるか管理情報であるかを識別し、異なるバッファからデータを読み出してデータ書込み手段2300に送信する。これにより、書込み要求に読出し先が指定されていなくとも、適切なバッファからデータを読み出すことができ、データ転送装置2000による管理情報の更新が実現されている。
 なお、管理情報の書込み要求のライトコマンドがリードコマンドより先行するのは、例えば、1回の転送において管理情報の更新を複数回行う場合、データ転送装置2000が複数の転送要求を受け付ける場合などである(図25参照)。
 図25において、ライトコマンド1~3の各々は、リードコマンド1によって読み出されたデータの一部のみを書き込むコマンドの一例である。また、リードコマンド2、およびリードコマンド3の各々は、ライトコマンド3によって書き込まれるデータの一部のみを読み出すコマンドの一例である。
 (b)コマンドについて補足的に説明する。
 本実施形態において、要求装置1000の転送要求に含まれるリードコマンド、ライトコマンドは、最終的に転送元デバイス3300、転送先デバイス3400に届けられる。このとき、第三、第四パラメータは削除されているが、主要部である第一、第二パラメータは修正されることはない。
 これにより、要求装置1000は、転送元、転送先デバイスに直接アクセスする場合もリードコマンド、ライトコマンドを発行するのであるが、それと類似の形式でデータ転送装置2000への転送要求を生成することができる。つまり、本実施形態のデータ転送装置2000は、従来の要求装置が転送元、転送先デバイスに直接発行していたコマンドに、第三、第四パラメータを付加するだけでよく、従来の要求装置の構成を大きく変えることなく要求装置1000を実現することができる。また、データ転送装置2000は、転送要求に含まれるコマンドを適切な順序および時期に発行するだけでよく、転送要求に基づいてコマンドを作成するといった処理を行う必要がない。その結果、データ転送装置2000を容易に簡素化することができる。
 このように、本実施形態のデータ転送システムは、要求装置1000の処理負荷の低減だけでなく、従来の要求装置からの変更を少なくし、データ転送装置2000の簡素化を図ることができる。
<まとめ>
 以上、本実施の形態によれば、本発明にデータ転送装置2000は、転送制御手段2100、データ読出し手段2200、およびデータ書込み手段2300を含む構成とし、さらに、転送制御手段2100は、転送要求解読手段2110、順序制御手段2120、および転送完了通知手段2130を含む構成とした。
 また、本発明に係るデータ転送装置2000内の転送制御手段2100に含まれる順序制御手段2120は、制御手段2121、リードコマンドキュー2122、ライトコマンドキュー2123、第一のバッファ2124、および第二のバッファ2125を含む構成とした。
 本構成により、データ転送装置2000は、要求装置1000からのデータ転送要求があった場合に、1以上の転送元デバイス3300からの読出しデータを、設定順序に従い転送先デバイス3400へ書込んでいくことができる。これにより、転送元デバイス3300からの読み出し要求の個数と、転送先デバイス3400への書込み要求の個数が一致しなくてもよく、従来のように読み出し要求の個数と書込み要求の個数を合わせるように、より細かい転送要求に分割する必要が無くなるため、要求装置1000の処理負荷の軽減に奏功する。
 また、上記構成によれば、従来に比べて、要求装置1000からのデータの転送要求の個数を削減できるため、転送要求の設定に係る処理オーバヘッドを軽減し、転送レートの向上に奏功する。
 また、要求装置1000は、データ転送要求のコマンドをデータ転送装置2000に発行した後は、データ転送が完了するまでの間、データ転送に係る処理から開放されるため、処理負荷の軽減に奏功する。またそのときに、要求装置1000は、他に処理すべき内容が無いようならば、例えばスリープ状態に遷移することができ、電力消費量の低減に大きく奏功する。
 本構成によれば、ファイルシステム上で管理されるファイルのコピー処理を、データ転送装置は要求装置に処理負荷をかけることなく行なうことができる。
 [実施の形態2]
 上記実施の形態1において、ファイルコピー後における転送先デバイス3400の新たな管理情報は、予めデータ転送装置2000の第二のバッファ2125に格納されていた。これに対し、新たな管理情報を要求装置1000に記憶しておき、必要に応じてデータ転送装置2000によって新たな管理情報を読み出させることもできる。
 本実施形態のデータ転送システムは、実施の形態1と略同様の要求装置1000およびデータ転送装置2000を備えているため、図1、図2に対応する図面を省略する。なお、要求装置1000については、新たな管理情報の取り扱いが異なるため、後にフローチャートを用いて説明する。また、データ転送装置2000についても、順序制御手段の構成および順序制御処理に異なる部分があるため、後に図面を用いて説明する。
 <ファイルコピー処理の概要>
 図26は、ファイルのコピー処理を模式的に示す図である。図27は、ファイルのコピー時におけるコマンドの発行手順を示す図である。これら図26および図27を用いて、本実施形態のファイルコピー処理について概要を説明する。
 本実施形態において、図27のNo.9,10に示すように、新たな管理情報を読み出し及び書き込むためのリードコマンドと、ライトコマンドとが対にされている。そして、転送グループ情報により、No.3~8のコマンドが第一の要求群(2つの要求群に分けられている)にされ、No.9,10のコマンドが第二の要求群にされている。
 新たな管理情報の読出しと書込みについて簡単に説明する。
 図27の第二の要求群に含まれるリードコマンド5が発行されると、図26に示したように、要求装置1000の管理情報記憶手段1500のアドレスAhから新たな管理情報が読み出され、データ転送装置2000の第一のバッファ2124に格納される。この第一のバッファ2124に格納されている新たな管理情報が、ライトコマンド3の発行によって転送先デバイス3400に書き込まれる。
 <順序制御手段の構成>
 図28は、順序制御手段5120の構成を示すブロック図である。なお、転送制御手段2100には、実施の形態1と同じ符号を付している。順序制御手段5120は、第二のバッファ2125を備えておらず、実施の形態1の順序制御手段2120よりも簡素化されている。
 <要求装置の動作>
 図29はファイルコピー時における要求装置1000の動作を示したフローチャートである(図7に相当する)。なお、S1001~S1007は、実施の形態1と同様であるため説明を省略する。図30は主としてデータファイルをコピーする場合における、制御指令および処理の流れを模式的に示した図である(図14に相当する)。
 ステップS1011において、新たな管理情報が管理情報記憶手段1500の所定のアドレスAhに格納される。
 要求装置1000は、転送要求を発行した後(S1006)、データ読出し手段2200から読出し要求がなされると(S1012)、リードアクセス応答を行う(S1013)。リードアクセス応答では、データ転送応答手段1400が管理情報記憶手段1500から新たな管理情報を読み出し、データ・コマンド転送用バス3100を介してデータ読出し手段2200に送信する。その結果、後述するように、データ転送装置2000が新たな管理情報を転送先デバイス3400に書き込むことができる。
 <データ転送装置の動作>
 図10、図11については実施の形態1と同じであるため、図示を省略する。
 図31は順序制御S5002の処理フローを示した図である(図18に相当する)。
なお、図31は図18からS5231、S5241を省いたものであるため説明を簡略化する。なお、本実施形態において、ファイルデータの読出し・書込みと、管理情報の読出し・書込みは同じ手順で行われる。よって、S5213,S5222はデータ読出し処理、S5214,S5232はデータ書込み処理と呼ぶこととする。
 S5213,S5222のいずれかにおいて、図27のNo.9のリードコマンド5が要求装置1000に送信されると、要求装置1000のアクセス応答によって新たな管理情報がデータ読出し手段2200に送信される。新たな管理情報は、第一のバッファ2124に格納され、S5214,S5232のいずれかにおいて、データ書込み手段2300によって転送先デバイス3400に書き込まれる。その結果、管理情報が更新される。
 このような処理により、要求装置1000が管理情報を更新する処理負担が低減されている。
 ただし、本方法を適用すると、要求装置1000は、データ転送装置2000によるアクセスに応答するための処理負荷がかかり、例えば、機能を休止させる期間がより短くなる可能性があるため、省電力化には向いていない。そこで、データ転送装置2000の簡素化よりも要求装置1000の省電力化を優先する場合は、第二のバッファを用いた方法が有効となる。
 [補足]
 上記実施形態1、2において、要求装置1000の機能構成をブロック図(図2)によって示した。ここで、図32は要求装置1000の物理的な主要構成例を示すブロック図である。
 要求装置1000は、CPU1011、RAM1012、ROM1013、およびそれらを接続するメインバス1014を含む。また、ストレージデバイスを管理するストレージホスト1021、ストレージホスト1021を介してメインバス1014に接続されるストレージバス1022を含む。
 ストレージバス1022には、データ転送装置2000、転送元デバイス3300、および転送先デバイス3400が接続されている。このストレージバス1022は、図2のデータ・コマンド転送用バス3100に対応する。また、ストレージバス1022は、複数のバスであってもよく、その場合は、例えば、転送元デバイス3300からデータ転送装置2000にデータを送信しつつ、データ転送装置2000から転送先デバイス3400にデータを送信することが可能である。
 ストレージホスト1021は、CPU1011等と、データ転送装置2000、転送元、転送先デバイスとの間でのデータあるいはコマンドの送受信の仲介を行う。このストレージホスト1021は、図2の転送要求発行手段1200、データ転送手段1300、およびデータ転送応答手段1400のうちの少なくとも一部の機能を有している。
 上記2つの実施形態で行われたファイルコピーにおいて、転送対象のデータは、次の順で送信される。
 (i)転送対象のデータは、転送元デバイス3300からストレージバス1022を介してデータ転送装置2000に送信され、第一のバッファ2124に格納される。
 (ii)第一のバッファ2124に格納された転送対象のデータは、読み出されてストレージバス1022を介して送信され、転送先デバイス3400に書き込まれる。
 このように、転送対象のデータは、メインバス1014、CPU1011を経由することがなく、CPU1011の処理負担を低減するだけでなく、メインバス1014を占有することもない。よって、CPU1011がデータ転送以外の処理を行っていても、その処理がデータ転送によって妨げられることがない。このような点において、データ転送時におけるCPU1011の処理効率の低下を抑制している。
 なお、メインバス1014は第一のバスの具体例であり、ストレージホスト1021は外部デバイス管理部の具体例であり、ストレージバス1022は第二のバスの具体例である。
 本態様において、例えば、RAM1012の記憶領域の一部を、管理情報記憶手段1500として機能させることができる。また、例えば、ストレージホスト1021を、転送完了受理手段1100、転送要求発行手段1200、データ転送手段1300、およびデータ転送応答手段1400として機能させることができる。
 [変形例1]
 上記2つの実施の形態では、図4に示すように、転送要求のコマンドは第四のパラメータとして転送グループを持つとしたが、必ずしもこの場合に限定されない。例えば、図33の(a)、(b)、(c)、および(d)に示すように、データ転送に係るコマンドだけでなく、転送グループを指定するためのコマンドを追加拡張しても良い。
 図33の(a)は、転送グループ情報の設定用の転送グループ区切り設定コマンドを追加した例であり、コマンド群の境界に転送グループ区切り設定コマンドを設定し、コマンド群に同一の転送グループ情報を付与する。
 なお、この例では、転送グループ区切り設定コマンドには、第一、第二パラメータは設定されていない。また、リードコマンドおよびライトコマンドのデバイスIDは図示を省略している。この転送グループ区切り設定コマンドは、ライトコマンドキュー2123だけに登録してもよいし、リードコマンドキュー2122およびライトコマンドキュー2123に登録してもよい。
 図33の(b)は、転送グループ情報の設定用の転送グループ区切り設定コマンドに、転送グループ番号を第一パラメータとして設定した例である。転送グループ番号を設定することによって、例えば、データ転送装置からデータ転送実行中の転送グループ番号を要求装置1000に送信することが可能になる。
 図33の(c)は、転送グループ情報の設定用の転送グループ設定開始コマンドと転送グループ終了コマンドを追加した例であり、同一の転送グループ情報を設定したいコマンド群の前後を転送グループ開始コマンドと転送グループ終了コマンドとで挟み込んで使用する。図33の(d)は、転送グループ設定開始コマンドと、転送グループ終了コマンドとに、転送グループ番号を第一パラメータとして設定した例である。
 [変形例2]
 上記2つの実施の形態では、転送元デバイスおよび転送先デバイスが、データ・コマンド転送用バス3100に直接接続される態様であったが、このような態様に限定されない。例えば、転送元デバイスおよび転送先デバイスが、ネットワークを介してデータ転送装置2000に接続されていてもよい。
 図34はデータ転送装置2000等がネットワークを介して転送元デバイスおよび転送先デバイスに接続されているデータ転送システムを示す図である。ネットワークは、例えば、WLAN(Wireless Local Area Network)などによる家庭内ネットワークや、インターネット等を含むものとすることができる。
 データ転送システムは、ネットワーク15000を介して通信を行うネットワーク通信装置15001と、ネットワーク通信機能を備えたリモート装置15002と、リモートシステム15002に接続された転送元デバイス15004および転送先デバイス15005とを含む。ネットワーク通信装置15001とリモートシステム15002とは、例えば、TCP/IPプロトコルによってデータあるいはコマンドを送受信する。
 (a)具体例1
 ここで、転送元デバイス15004に記憶されているデータを、転送先デバイス3400に転送する例について説明する。なお、デバイスIDには、ネットワーク上の転送元デバイス15004の識別番号あるいはIPアドレスが設定されているものとする。
 データ読出し手段2200は、ネットワーク通信装置15001(以後、通信装置と略記する)に、リモートシステム15002に接続された転送元デバイス15004へのリードコマンドの発行要求を行う。リモートシステム15002は、上記発行要求の可否を通信装置15001に応答する。ここでは、発行要求が可能であるとする。通信装置15001は、上記応答をデータ読出し手段2200に送信する。
 リモートシステム15002は、リードコマンドを転送元デバイス15004に送信し、転送元デバイス15004から読み出されたデータを受け取り、ネットワーク15000を介して通信装置15001に送信する。
 通信装置15001は、リモートシステム15002から送信されたデータをデータ読出し手段2200に送信する。データ読出し手段2200が受けとったデータは第一のバッファ2124に格納される。その後、第一のバッファ2124内のデータがデータ書込み手段2300によって転送先デバイス3400に書き込まれる。
 (b)具体例2
 次に、転送元デバイス3300に記憶されているデータを、転送先デバイス15005に転送する例について説明する。
 データ読出し手段2200は、転送元デバイス3300に対して、リードコマンドを発行する。その後、転送元デバイス3300から転送対象のデータが読み出され、第一のバッファ2124に格納される。
 また、リードコマンドの発行に並行して、データ書込み手段2300は、通信装置15001に対して、リモートシステム15002に接続された転送先デバイス15005へのライトコマンドの発行要求を行う。リモートシステム15002は、上記発行要求の可否を通信装置15001に応答する。ここでは、コマンドの発行が可能であるとする。通信装置15001は、上記応答をデータ書込み手段2300に送信する。
 リモートシステム15002は、転に送先デバイス15005にライトコマンドを発行し、書込み準備を要請する。
 データ書込み手段2300は、第一のバッファ2124に格納されている転送対象のデータを受け取り、通信装置15001に送信する。通信装置15001は転送対象のデータをリモートシステム15002に送信し、リモートシステム15002は転送対象のデータを転送先デバイス15005に転送し、データの書込みを実行する。
 リモートシステム15002はデータ書込みの実行結果を通信装置15001に送信し、通信装置15001は受信した実行結果をデータ書込み手段2300に送信する。データ書込み手段2300は、実行結果が書込みの完了であれば、転送状態を書込み終了を示す状態にする。
 (c)以上のように、ネットワーク15000を介して接続されている転送元デバイス15004からデータを読出し、あるいは、転送元デバイス15005にデータを書き込むことができる。なお、上記説明から分かるように、リモートシステム15002は、データ読出し手段2200と同様の機能、および、データ書込み手段2300と同様の機能を備えている。
 上記図34のデータ転送システムは、データ転送装置2000と別個に通信装置15001を備えていたが、データ転送装置2000が通信装置15001を備えていてもよい。
 図35にデータ転送システムの構成を模式的に示す。
 この例のデータ転送装置12000は、ネットワーク通信部12001を備えており、別個に通信装置15001を設ける必要がないため、コストや設置スペースの点で有利である。
[その他の変形例、補足事項]
 (1)上記2つの実施の形態では、データ転送装置2000内の順序制御手段2120が第一のバッファを有する場合を説明したが、本発明は必ずしもこの場合に限定されない。例えば、図36に示すように、順序制御手段2120は、データ読出し手段2200から読み出したデータをデータ書込み手段2300に直接受け渡すようにしてもよい。このようにすることで、データ転送装置2000を簡素化し、実装コストの削減が実現される。
 (2)上記2つの実施の形態および変形例の要求装置1000、およびデータ転送装置2000を、LSI等の集積回路内に形成することができる。
 図37は、データ転送装置2000をLSIによって形成した例を模式的に示す図である。図38は、要求装置1000をLSIによって形成した例を模式的に示す図である。
 図39は、要求装置1000およびデータ転送装置2000の各々をLSIによって形成した例を模式的に示す図である。また、この図において、要求装置1000およびデータ転送装置2000の各々を備えたLSIが、電子回路基板99001に取り付けられ、種々の電子機器に用いられる例を示している。電子機器は、例えば、デジタルテレビ99010、放送記録再生装置99011、携帯電話機99012、デジタルカメラ99013(スチルカメラ、ムービーカメラ)、自動車99015に設置される車載端末99014(例えば、カーナビゲーション)などである。
 図40は、要求装置1000およびデータ転送装置2000を1つのLSIに形成した例を模式的に示す図である。この場合も図40と同様に、種々の電子機器に用いることができる。
 (3)上記2つの実施の形態では、転送元デバイス3300からのデータ読み出し処理と転送先デバイス3400へのデータ書込み処理がシーケンシャルに動作する例を示したが、本発明は必ずしもこの場合に限定されない。例えば、これらの処理を並列動作させて、データ転送のスループットを向上させるようにしてもよい。
 (4)上記2つの実施の形態では、コマンドキューの個数とリード、ライトともに1つの場合を説明したが、本発明は必ずしもこの場合に限定されない。例えば、転送対象デバイスが複数存在する場合、それの個数と同じ個数のコマンドキューを設ける構成としてもよい。
 (5)上記2つの実施の形態では、S5201(図18、図31)において、ライトコマンドキュー2123が空の場合、リードコマンドキュー2122にコマンドが存在する場合でも、データ読出し処理を行なわないようにしたが、その限りではない。例えば、第一のバッファ2124の残量に応じて、データ読出し処理の可否を判断するようにしてもよく、その場合、データ読出し処理を前倒しできるためデータ転送のスループットの向上が実現される。
 (6)上記2つの実施の形態では、要求装置1000の例としてレコーダ機器やモバイル機器の一部であることを説明したが、本発明は必ずしもこの場合に限定されない。例えば、要求装置1000はパーソナルコンピュータやデジタルテレビやデジタルカメラなどの民生機器であってよい。このようにすることで、様々な機器で効率的なデバイス間のデータ転送が実現される。
 (7)上記2つの実施の形態では、データの転送要求は、複数のコマンドを順次データ転送装置2000に送信するような形態をとっているが、必ずしもこの形態に限定されない。例えば、1つの転送グループに属する複数のリードコマンドおよびライトコマンドを1つのデータにまとめ、これを書き込みデータとして一括でデータ転送装置2000に転送してもよい。この場合、転送要求解読手段2110が転送されたデータ内に存在する複数のコマンドを抽出し、それら複数のコマンドに対して同一の転送グループ情報を付与することもできる。また、要求装置1000からの1つのデータとなった転送要求の設定に、例えばDMA(Direct Memory Access)を用いるようにしてもよく、これにより要求装置1000の処理負荷が更に軽減される。
 (8)上記2つの実施の形態では、第二の要求群に属するコマンドの転送グループ属性は、他の転送グループと区別可能な番号としているが、必ずしもこの場合に限定されない。第二の要求群に属するコマンドの転送グループ属性は、例えば、第二のバッファ2125のエントリ番号、あるいは第二のバッファ2125のアドレスを設定してもよい。
 (9)上記2つの実施の形態では、データ転送の転送対を成すデータ読出しの総サイズと、データ書込みの総サイズは同じであることを前提としているが、必ずしもこの前提に限定されない。例えば、転送対を成す第一の要求群に含まれる転送元デバイスからの複数の読出し要求で読み出されるデータ量と、転送先デバイスへの複数の書込み要求で書き込まれるデータ量が異なり、読出されるデータ量のほうが大きい場合、余りのデータを廃棄してもよい。あるいは、転送対を成す第一の要求群に含まれる転送元デバイスからの複数の読出し要求で読み出されるデータ量と、転送先デバイスへの複数の書込み要求で書き込まれるデータ量が異なり、読出されるデータ量のほうが大きい場合、余りのデータを次のデータ転送の先頭に充当するとしてもよい。
 また、転送対を成す第一の要求群に含まれる転送元デバイスからの複数の読出し要求で読み出されるデータ量と、転送先デバイスへの複数の書込み要求で書き込まれるデータ量が異なり書き込まれるデータ量のほうが大きい場合、不足分のダミーデータを補充するとしてもよい。以上のように、データ転送装置2000がデータの読出しとデータの書込みの間の総転送サイズの不一致に対処することにより、要求装置1000側での端数処理を簡略化することができる。
 (10)上記2つの実施形態および各変形例において、転送元デバイスと転送先デバイスが1つずつであったが、少なくとも一方が複数存在していてもよい。データ読出し手段、あるいはデータ書込み手段は、各コマンドに設定されたデバイスに、リードコマンド、あるいはライトコマンドを発行することができる。
 (11)上記2つの実施形態および各変形例において、順序制御手段2120からデータ書込み手段2300への書込み要求の送信は、第一のバッファ2124にデータが蓄積されているか否かに拘らず、行われていた。これに対し、第一のバッファ2124に書込みサイズ以上のデータが存在する場合に、書込み要求が送信されることとしてもよい。一方、第一のバッファ2124に、抽出されたライトコマンドの書込みサイズ以上のデータが存在しない場合、書込み要求が送信されずにファイルデータ書込み処理が終了することとしてもよい。この場合、S52142の後に、判定を行うことができる。
 (12)上記2つの実施形態および各変形例において、コマンドにデバイスIDが設定されていたが、これに限定されない。例えば、コマンドにデバイスIDが設定されてなくとも、データ読出し手段2200が転送元デバイス3300のデバイスIDを記憶し、データ書込み手段2300が転送先デバイス3400のデバイスIDを記憶していてもよい。
 また、順序制御手段が、リードコマンドあるいはライトコマンドとともに、デバイスIDをデータ読出し手段2200、あるいはデータ書込み手段2300送信してもよい。
 (13)上記2つの実施形態および各変形例において、転送元、転送先デバイスに、第三、第四パラメータ(デバイスID、転送グループ情報)は送信されていなかったが、これに限定されない。例えば、転送元、転送先デバイスが、コマンドの第一パラメータ(先頭アドレス)、第二パラメータ(サイズ)を読み取り、第三、第四パラメータは無視する構成にされている場合がある。このような場合は、順序制御手段2120から送信されたコマンドを変更せずに、転送元、転送先デバイスに送信することができる。
 (14)上記実施形態1、2の図19において、第一のバッファ2124に空きがあるか否かに拘らず、リードコマンドを送信する構成であったが、第一のバッファ2124に空きがない場合に、読出し要求の送出を保留してもよい。リードコマンドの読出しサイズ以上の空き領域が存在しない場合、読出し要求が送出されずにファイルデータ読出し処理を終了させることができる。
 (15)上記2つの実施形態および各変形例において、転送元デバイスが、例えばリードコマンドキューを備えているなど、複数のリードコマンドを受け付けるものとしてもよい。この場合、データ読出し手段2200によって先行的に複数のリードコマンドを送信しておくことで、転送元デバイスから効率的にデータを読み出すことができる。これは、転送元デバイス3300がリードコマンドを受け取ってから、読出し準備完了の応答信号を発するまでにタイムラグがあるため、複数のリードコマンドを送信しておくことで上記タイムラグを低減し得るからである。転送先デバイスについても同様のことが言える。
 (16)上記2つの実施形態および各変形例において、データ読出し手段2200にバッファを設け、転送元デバイス3300から読み出したデータをバッファに蓄え、第一のバッファ2124の空き容量がある場合に第一のバッファ2124にデータを送信し、空き容量がない場合に第一のバッファ2124へのデータ送信を保留する構成にしてもよい。
 (17)上記実施形態1、2の順序制御(図18)において、エラー判断を行ってもよい。例えば、S5221とS5231との間に判断処理を挿入し、エラーと判断された場合に、転送状態にエラーフラグをセットし、順序制御を終了することとしてもよい。ここで、エラー判断は、(a) 第一のバッファが空、(b) リードコマンド実行中でない、(c) リードコマンドキューが空、および、(d) 第二のバッファが空の、4つの条件が成り立つ場合に、書込むべきデータが存在しないとして、エラーと判断することができる。
 このエラー判断は、転送元デバイスが複数のリードコマンドを受け付けるものであり、転送元デバイスに複数のリードコマンドを予め発行する場合に好適である。
 また、図18ではなく、図20、図21の書込み処理において上記エラー判断を行ってもよい。この場合、判断処理は、例えば、S5221の後、S5231の前に挿入することができる。
 なお、図21の書込み処理において、エラー処理(S52413,S52419)を省略してもよい。
 (18)図32のストレージバス1022をリング型のバスにしてもよい。
 (19)上記実施形態1において、要求装置1000が第二のバッファ2125に直接アクセスして新たな管理情報の書込みを行っていたが、これには限られない。
 例えば、転送要求解読手段2110を、要求装置1000から送信された第二のバッファ2125への書込み要求を受け付け、その書込み要求の解読結果、およびその後に受信する管理情報のデータを順序制御手段に送信するものとしてもよい。この場合、順序制御手段は、第二のバッファ2125を指定する書込み要求を受信した場合、その後に受信する管理情報のデータを第二のバッファ2125に書き込む制御を行うものとすることができる。なお、第二のバッファ2125を指定する書込み要求は、例えば、デバイスIDを第二のバッファ2125を示す値とすることができる。
 また、上記実施形態1において、要求装置1000が第二のバッファ2125とデータ・コマンド転送用バス3100によって接続されている例を述べたが、これに限られない。
 例えば、要求装置1000のデータ転送手段1300が、第二のバッファ2125と信号線によって直接接続され、要求装置1000が第二のバッファ2125に直接アクセスする構成であってもよい。
 (20)上記実施形態1の図11において、要求装置1000からの指令が、転送要求でない場合(S2013)、処理がS2011に戻ることとされていた。これに対し、要求装置1000からの指令に、転送要求以外の指令が存在する場合、その指令に応じた処理を行う構成にしてもよい。なお、要求装置1000からの指令には、例えば、データ転送装置の制御手段2121が備えるレジスタの内容を読み出す指令や、レジスタに所定の値を書き込む指令などがある。
 (21)上記実施形態1の図18において、S5213,S5214等は、データ読出し処理、データ書込み処理を開始させる処理とされていた。これに対し、S5213においてデータ読出し処理が終了するまで行われ、S5214においてデータ書込み処理が終了するまで行われてもよい(S5222,S5232,S5241も同様)。この場合、S5213のデータ読出し処理が終了してから、S5214のデータ書込み処理が行われることとなる。
 この場合、S5213とS5214との処理をまとめて行い、読出し要求の転送(S52134)と書込み要求の転送(S52144)とを行った後に、S52136, S52145の処理を行うこととしてもよい。これにより、データ読出し手段2200による読出し要求(リードコマンド)の発行およびデータ書込み手段2300による書込み要求の発行を素早く行い、転送元デバイス3300の読出し準備、転送先デバイス3400の書込み準備を迅速に行うことができる。その結果、データ転送にかかる時間を低減し得る。
 (22)各実施形態および各変形例において、データ転送装置2000(12000)を、CPUを用いずに、電子回路によって構成することができる。
 (23)各実施形態および各変形例において、第一のバッファ2124のデータを、少なくとも同一の要求群(転送グループ情報が同じコマンド群)に含まれる全てのコマンドが完了するまでの期間は保持することとしてもよい。これにより、転送先デバイスへの書込みに失敗し、リトライする場合に、再度転送元デバイスからデータを読み出すことなく、既に読出し済みで保持されているデータを用いて転送先デバイスへ書き込みを行なうことができ、データ転送の高速化(効率化)を図ることができる。
 (24)各実施形態および各変形例において、リードコマンドキューとライトコマンドキューとの少なくとも一方を、少なくとも同一の要求群に含まれる全てのコマンドが完了するまでの期間はコマンドを保持することとしてもよい。これにより、上記(23)項と同様に、データ転送の再実行をする際に、要求装置からのコマンドの発行からではなく、コマンドの実行から処理が継続できるため、高速化(効率化)を図ることができる。
 (25)上記実施形態1において、2つのファイルF1、F2を転送するコマンド群(リードコマンドおよびライトコマンド)に異なる転送グループ情報が設定されていた。これに対し、2つのファイルF1、F2を転送するコマンド群(リードコマンドおよびライトコマンド)に共通の転送グループ情報を設定してもよい。つまり、上記実施形態1のデータ転送システムを、少なくとも、データファイル転送用のコマンド群と、管理情報転送用のコマンド群とを識別し得るものとすることができる。
 (26)以下に、実施形態に係る各種の携帯情報端末における構成及び効果について説明する。
 (i)実施形態に係るデータ転送装置は、転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行うデータ転送装置であって、転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、を含み、前記データ転送要求は、少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、少なくとも1つの書込み要求から成る第二の要求群と、を含み、前記転送制御手段は、前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行うことを特徴とする。
 本項のデータ転送装置は、要求装置の転送要求に従いデータ転送を実行することで、要求装置の処理負担を低減し得る。また、要求装置から送信された転送先デバイスの管理情報を転送先デバイスに書き込むことで、管理情報の更新に関する要求装置の処理負担を低減し得る。
 また、本項のデータ転送装置は、データ転送後の管理情報の生成を行うといった複雑な機能は不要であり、主として読出し要求と書込み要求とを実行する機能があればよく、簡素な構成を実現できる。
 ここで、SDメモリデバイスに代表される記憶デバイスは、通常、読出し要求および書込み要求に対応している。よって、従来のホストコンピュータ(要求装置に該当する)は、記憶デバイスに直接読出し要求および書込み要求を送信し、記憶デバイスのデータを読み書きしていた。そこで、従来のホストコンピュータが生成していた読出し要求および書込み要求を用いてデータ転送装置にデータ転送を行わせることで、要求装置を実現する際に従来のホストコンピュータの変更を可及的に少なくしたいという要請がある。
 しかしながら、読出し要求には読出し先は設定されているが、読み出したデータをどこに送信するかは設定されていない。また、書込み要求には、書込み先は設定されているが、どのデータを書き込めばよいのかは設定されていない。そこで、転送制御手段によって、読出し要求によって読み出されたデータを読出しデータ記憶手段に記憶させ、書込み要求によって書き込むデータを適宜データ書込み手段に供給している。このように、転送制御手段は、読出し要求、書込み要求に情報が不足していることを前提に、その不足を補う制御を行うように構成されているため、データ転送が実現できるのである。
 また、上記構成によれば、読出しデータ記憶手段にデータを一時記憶させることで、2つの読出し要求と1つの書込み要求といった組合せの転送要求を行うことができる。そのため、従来に比べて要求装置からのデータの転送要求の個数を削減でき、転送要求の設定に係る要求装置の処理オーバヘッドを軽減し、転送レートの向上に奏功する。
 また、読出しデータ記憶手段を備えることで、読出し手段と書込み手段の間でデータ転送の速度差があり、書込み手段のほうが遅い場合に、データ読出し手段の処理を中断させることなく、データ書込み手段を並列に処理させることで、データ転送のスループットを向上できる。
 転送元デバイスおよび転送先デバイスの少なくとも一方は、記憶デバイスによって構成することができる。記憶デバイスは、例えば、eSD(Embedded SD)メモリデバイスやSDXCメモリカードなどのメモリデバイス、ハードディスク、光学ディスクの再生装置(あるいは、記録装置)などとすることができる。
 (ii)実施形態に係るデータ転送装置は、前記データ転送要求は、前記第一の要求群と、前記第二の要求群とを識別する識別情報を有する、こととしてもよい。
 本項の転送要求は識別情報を有しているため、第一の要求群と第二の要求群との識別が容易になる。
 (iii)実施形態に係るデータ転送装置は、さらに、データ転送の開始前に前記要求装置によって送信される前記管理情報を格納する管理情報格納部を備え、前記第二の要求群は、読出し要求を伴わず、前記転送制御手段は、前記識別情報を利用して前記第一の要求群の書込み要求と前記第二の要求群の書込み要求とを識別し、前記第二の要求群の書込み要求に従い転送先デバイスに書き込む場合に、前記管理情報格納部に格納されている前記管理情報を前記データ書込み手段に送信する制御を行う、こととしてもよい。
 本項のデータ転送装置は、管理情報格納部を備えている。よって、要求装置は、データ転送を行う前に、予め新たな管理情報をデータ転送装置に送信しておくことができる。そして、管理情報格納部に格納された管理情報は、第二の要求群の書込み要求によって転送先デバイスに書き込まれる。その結果、要求装置は、新たな管理情報をデータ転送装置に送信した後、管理情報の更新に関する処理を行う必要がなく、要求装置の処理負担が低減する。
 ここで、本項の態様と、要求装置がデータ転送装置からデータ転送の完了通知を受けて、要求装置自身で転送先デバイスの管理情報を更新する態様とを比較する。データ転送の完了通知は、一般的に割込み通知が行われ、要求装置のプロセッサ(CPU)が実行しているプロセスと、割り込みにより発生したタスクとを切替える処理により、プロセッサのオーバヘッドが発生する。よって、予め新たな管理情報をデータ転送装置に送信しておくことにより、オーバヘッドの発生を防ぎ、プロセッサの処理負担を低減し得るのである。
 また、転送先デバイスへの書込むべきデータを第二のバッファに前もって書き込むことにより、転送先デバイスへの書込み時に書込み用のデータの準備で待たされることが無くなり、データ転送のスループットを向上できる。
 管理情報格納部を、管理情報記憶部(あるいは、管理情報記憶手段)と称してもよい。
 (iv)実施形態に係るデータ転送装置は、前記第一の要求群には、1つの書込み要求によって書き込まれるデータの一部のみを読み出す読出し要求と、1つの読出し要求によって読み出されるデータの一部のみを書き込む書込み要求との少なくとも一方が存在する、こととしてもよい。
 本項では、第一の要求群に含まれる読出し要求と書込み要求との個数や転送サイズが異なっているものが含まれている。つまり、読出し要求と書込み要求とが一対一で対応していない。
 このような場合、読出し要求によって読み出されたデータを読出しデータ記憶手段に一時記憶することで、書込みが可能になる。データ転送装置は、一対一で対応していない読出し要求と書込み要求とを実行できるため、要求装置は、比較的大きな転送サイズの読出し要求と書込み要求とを生成することができ、転送要求を生成する処理負担を低減し得る。
 なお、読出し要求と書込み要求とが一対一で対応しないのは、次のような場合である。例えば、転送元データが断片化されている場合、コピー元とコピー先とでセクタサイズが異なる場合、読出し経路と書込み経路とでバッファ容量が異なる場合、転送元デバイスと転送先デバイスとで受理可能なコマンド数(読出し要求の数、あるいは書込み要求の数)が異なる場合などである。
 (v)実施形態に係るデータ転送装置は、前記要求装置は、CPU,主記憶部、それらを接続する第一のバス、前記第一のバスに接続されて前記転送元デバイスおよび前記転送先デバイスを含む外部デバイスとの信号の送受信を行う外部デバイス管理部、および前記外部デバイス管理部に接続されている第二のバスを含み、前記データ読出し手段、前記データ書込み手段、前記転送元デバイス、および前記転送先デバイスは、前記第一のバスを介さずに前記第二のバスを介してデータの授受を行う、こととしてもよい。
 本項では、要求装置が2つのバスを備えている。そして、データ転送は、第二のバスを介して行われるため、要求装置のCPUや主記憶部(RAM)が接続されている第一のバスを占有してCPUの処理を妨げることがない。よって、要求装置の処理効率が、データ転送によって低下することを防ぐことができる。
 (vi)実施形態に係るデータ転送装置は、前記データ読出し手段は、前記読出し要求の少なくとも一部を前記転送元デバイスに送信することで前記転送元デバイスからデータの読出しを行い、前記転送元デバイスは、転送元記憶部と、転送元コントローラとを備え、前記転送元コントローラは、前記データ読出し手段から読出し要求の少なくとも一部を受け取ると前記転送元記憶部からデータを読み出して前記データ読出し手段に送信する制御を行い、前記データ書込み手段は、前記書込み要求の少なくとも一部を前記転送先デバイスに送信することで前記転送先デバイスに書込み準備をさせ、前記転送先デバイスは、転送先記憶部と、転送先コントローラとを備え、前記転送先コントローラは、前記データ書込み手段から前記書込み要求の少なくとも一部を受け取ると、その後に前記データ書込み手段から送信されたデータを前記転送先記憶部に書き込む制御を行う、こととしてもよい。
 本項では、転送要求に含まれる読出し要求、あるいは書込み要求の少なくとも一部を転送元、転送先デバイスに送信するだけで、データの読出し、書込みを行うことができる。これにより、データ転送装置は要求の生成を行う必要がなく、データ転送装置を容易に簡素化することができる。
 また、従来のホストコンピュータ(要求装置に相当する)が転送元、転送先デバイスに送信していた読出し要求、あるいは書込み要求を利用することができ、従来のホストコンピュータの小変更により要求装置を実現することができる。
 なお、読出し要求の少なくとも一部は、例えば、読出し要求に含まれる複数のパラメータのうちの一部のパラメータ、とすることができる。書込み要求についても同様である。
 (vii)実施形態に係るデータ転送装置は、前記データ転送要求を解読する転送要求解読手段と、データ転送の終了後、前記要求装置のその旨を通知する転送完了通知手段とを含む、こととしてもよい。
 本項のデータ転送装置は、転送完了通知手段によってデータ転送の終了を通知することができ、要求装置がデータ転送を監視する負担が減少する。
 (viii)実施形態に係るデータ転送装置は、前記転送制御手段は、前記データ転送要求に含まれる読出し要求と書込み要求とを格納する要求格納手段を備え、前記要求格納手段に格納されている読出し要求および書込み要求を、前記要求装置の指定の順序で実行する、こととしてもよい。
 本項のデータ転送装置は、要求格納手段に読出し要求、書込み要求を格納することができる。
 (ix)実施形態に係るデータ転送装置は、前記書込み要求は、転送元デバイスからデータを読出すためのリードコマンドからなり、前記読出し要求は、転送先デバイスへデータを書込むためのライトコマンドからなる、こととしてもよい。
 本構成によれば、要求装置は、従来自らがデバイス間のデータ転送のために発行していたリードコマンドとライトコマンドから成るアクセスコマンドを、データ転送装置に設定するだけでよく、要求装置の制御プログラムを変更することなく、データ転送装置にデータ転送処理を処理させることができ、従来からの変更に伴う実装変更量を削減できる。
 (x)実施形態に係るデータ転送装置は、前記リードコマンド及びライトコマンドの各々は、前記識別情報を設定する識別情報フィールドを有する、こととしてもよい。
 本構成によれば、データ転送装置は、要求装置から設定された各コマンドの識別情報フィールドを参照することにより、転送グループの識別を容易にすることができる。
 (xi)実施形態に係るデータ転送装置は、前記転送制御手段は、前記リードコマンドを登録するリードコマンドキューと、前記ライトコマンドを登録するライトコマンドキューとを備える、こととしてもよい。
 本構成によれば、要求装置からの複数個のリードコマンドまたはライトコマンドを前もって設定でき、要求装置のデータ転送要求の設定に係る処理をまとめることが可能となり、要求装置の処理負荷を下げることができ、さらに要求装置が無負荷時には休止期間を延ばすことが可能となり、電力を削減できる。なお、リードコマンドキューおよびライトコマンドキューは、要求格納手段の一例である。
 (xii)実施形態に係るデータ転送装置は、前記リードコマンドキューと前記ライトコマンドキューは、並列に処理される、こととしてもよい。
 本構成によれば、ライトコマンドによるデータ書込みの完了を待つことなく、次のリードコマンドの処理を開始できるため、データ転送スループットを向上できる。
 また、本構成によれば、リードコマンドで取得したデータが、ライトコマンドによるデータの書込みのサイズに足りない場合や、転送先デバイスへのインターフェースを一旦他のデータアクセスのために開放する期間を設けて、その期間にリードコマンドによって読出されたデータを蓄積することにより、転送先デバイス側のインターフェースを有効活用することができる。
 (xiii)実施形態に係るデータ転送装置は、前記リードコマンドキューまたは前記ライトコマンドキューにおいて、各キュー内で同一の前記識別情報の付与された複数のコマンドは、登録された順序で処理される、こととしてもよい。
 本構成によれば、要求装置の指定順にコマンドを登録し、登録順に実行することで、転送元のデータと転送先データとの間でデータの並びに関する整合性を保証できる。
 (xiv)実施形態に係るデータ転送装置は、前記第一の要求群に含まれる前記リードコマンドの個数と前記ライトコマンドの個数とが異なる、こととしてもよい。
 本構成によれば、要求装置が生成する読出し要求および書込み要求の個数を低減し得る。
 (xv)実施形態に係るデータ転送装置は、前記第二の要求群は、前記要求装置に記憶されている前記管理情報を読み出すための管理情報読出し要求を含み、前記転送制御手段は、前記管理情報読出し要求に従い前記データ読出し手段によって前記要求装置から読み出された管理情報を前記読出しデータ記憶手段に記憶させ、前記読出しデータ記憶手段に記憶されている前記管理情報を前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行う、こととしてもよい。
 本構成は、読出し要求によって要求装置から管理情報を読出すことで、要求装置が管理情報を更新する処理負担を低減し得る。
 (xvi)実施形態に係るデータ転送装置は、さらに、ネットワーク機能を備え、転送対象となる転送元デバイスと転送先デバイスとの少なくとも一方と、ネットワークを介して接続されている、こととしてもよい。
 本構成によれば、例えば、ギガビットイーサネット(登録商標)や、WLAN(無線LAN)やWiGig(Wireless Gigabit)などの高速な無線ネットワークを介したリモート環境に存在するデータを対象にデータ転送を行なうことができる。また、本構成によれば、ネットワークを介したリモート環境に存在するデータを対象にしたデータ転送をするために、新たにネットワーク装置を追加することなく、コストを削減することができる。なお、データ転送装置がネットワーク機能を備えていなくとも、ネットワーク機能を備えた通信装置を介してデータ転送装置がネットワークにアクセスしてもよい。
 (xvii)実施形態に係る集積回路は、転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行う集積回路であって、転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、を含み、前記データ転送要求は、少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、少なくとも1つの書込み要求から成る第二の要求群と、を含み、前記転送制御手段は、前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行うことを特徴とする。
 本構成によれば、集積回路による小型化が実現できる。
 (xviii)実施形態に係るデータ転送方法は、転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段とを含むデータ転送装置によって、転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行う方法であって、前記データ転送要求は、少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、少なくとも1つの書込み要求から成る第二の要求群と、を含み、前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させるステップと、前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込むステップと、前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込むステップとを含むことを特徴とする。
 本構成によれば、データ転送における要求装置の処理負担を減少させることができる。
 (xix)実施形態に係るデータ転送システムは、転送元デバイス、転送先デバイス、それら2つのデバイス間のデータ転送要求を行う要求装置、およびデータ転送要求を受けてデータ転送を行うデータ転送装置を含むデータ転送システムであって、前記データ転送装置は、転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、を含み、前記データ転送要求は、少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、少なくとも1つの書込み要求から成る第二の要求群と、を含み、前記転送制御手段は、前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行うことを特徴とする。
 本構成によれば、データ転送における要求装置の処理負担を減少させることができる。
 (xx)実施形態に係るデータ転送装置は、要求装置からのデバイス間のデータ転送要求に対して応答するデータ転送装置であって、前記データ転送装置は、少なくとも1つの転送元デバイスからデータを読み出すデータ読出し手段と、少なくとも1つの転送先デバイスへデータを書き込むデータ書込み手段と、少なくとも前記データ転送要求に対するデータ転送処理を制御する転送制御手段を含み、前記転送制御手段は、少なくとも前記データ転送要求を解読する転送要求解読手段と、前記データ読出し手段と前記データ書込み手段の処理順序を制御し、前記データ読出し手段と前記データ書込み手段との間のデータ受渡しの相手と順序を制御し、デバイス間のデータ転送を行う順序制御手段と、データ転送の終了後、前記要求装置のその旨を通知する転送完了通知手段を含むことを特徴とする。
 上記構成によれば、データ転送装置は、要求装置からのデータ転送要求があった場合に、複数の転送元デバイスからの読出しデータを、設定順序に従い転送先デバイスへ書込んでいくことにより、転送元デバイスからの読み出し要求の個数と、転送先デバイスへの書込み要求の個数が一致しなくてもよく、従来のように読み出し要求の個数と書込み要求の個数を合わせるように、より細かい転送要求に分割する必要が無くなるため、要求装置の処理負荷の軽減に奏功する。
 また、上記構成によれば、従来に比べて、要求装置からのデータの転送要求の個数を削減できるため、転送要求の設定に係る処理オーバヘッドを軽減し、転送レートの向上に奏功する。
 (xxi)実施形態に係るデータ転送装置は、転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行うデータ転送装置であって、転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、を含み、前記データ転送要求は、複数の読出し要求と、複数の書込み要求とを含み、前記複数の読出し要求および前記複数の書込み要求には、1つの書込み要求によって書き込まれるデータの一部のみを読み出す読出し要求と、1つの読出し要求によって読み出されるデータの一部のみを書き込む書込み要求との少なくとも一方が存在し、前記転送制御手段は、前記データ転送要求に含まれる複数の読出し要求と複数の書込み要求とを格納する要求格納手段と、前記要求格納手段に格納されている読出し要求および書込み要求を、前記要求装置の指定の順序で実行し、前記読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出した転送対象データを、前記読出しデータ記憶手段に記憶し、前記書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込みを行う場合に、前記読出しデータ格納手段に格納されている転送対象データを前記データ書込み手段に送信する転送要求処理手段とを含むことを特徴とする。
 上記構成によれば、前項(xx)と同様の作用効果を奏し得る。
 本発明は、要求装置からのデータ転送要求を受けてデータ転送装置が要求装置に代わり処理することにより、従来技術に比べて転送データ受渡しのオーバヘッドを大幅に低減できる。その結果、要求装置のデータ転送に係る処理負荷の軽減、およびデータ転送処理のための電力消費量の低減や、装置間でのデータ転送スループットの飛躍的な向上に奏功する。従って、SDXCカードやeSDメモリデバイスなどのような高速・大容量蓄積デバイスの間でファイルコピーを行なう集積回路製品に有効である。その他、ネットワークを介したリモートのデバイス間でデータ転送を行うような集積回路製品、家電製品、パーソナルコンピュータ、および携帯電話やスマートフォン、タブレットなどのモバイル端末などにも有効である。
 1000  要求装置
 1100  転送完了受理手段
 1200  転送要求発行手段
 1300  データ転送手段
 1400  データ転送応答手段
 1500  管理情報記憶手段
 2000  データ転送装置
 2100  転送制御手段
 2110  転送要求解読手段
 2120  順序制御手段
 2121  制御手段
 2122  リードコマンドキュー
 2123  ライトコマンドキュー
 2124  第一のバッファ
 2125  第二のバッファ
 2130  転送完了通知手段
 2140  要求通知用バス
 2150  転送状態通知信号線
 2200  データ読出し手段
 2300  データ書込み手段
 2400  データ読出し用バス
 2500  データ書込み用バス
 3100  データ・コマンド転送用バス
 3200  転送完了通知用バス
 3300  転送元デバイス
 3310  記憶領域
 3400  転送先デバイス
 3410  記憶領域
15000 ネットワーク
15001 ネットワーク通信装置
15002 ネットワークを介したリモートシステム
A0~A11 転送対象のアドレスを識別するための記号
G1~G3  転送グループ属性を識別するための記号
LSI   集積回路

Claims (19)

  1.  転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行うデータ転送装置であって、
     転送元デバイスからデータを読み出すデータ読出し手段と、
     転送先デバイスへデータを書き込むデータ書込み手段と、
     前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、
     前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、
     を含み、
     前記データ転送要求は、
     少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、
     少なくとも1つの書込み要求から成る第二の要求群と、
     を含み、
     前記転送制御手段は、
     前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、
     前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、
     前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行う
     ことを特徴とするデータ転送装置。
  2.  前記データ転送要求は、
     前記第一の要求群と、前記第二の要求群とを識別する識別情報を有する
     請求項1に記載のデータ転送装置。
  3.  さらに、データ転送の開始前に前記要求装置によって送信される前記管理情報を格納する管理情報格納部を備え、
     前記第二の要求群は、読出し要求を伴わず、
     前記転送制御手段は、
     前記識別情報を利用して前記第一の要求群の書込み要求と前記第二の要求群の書込み要求とを識別し、
     前記第二の要求群の書込み要求に従い転送先デバイスに書き込む場合に、前記管理情報格納部に格納されている前記管理情報を前記データ書込み手段に送信する制御を行う
     請求項2に記載のデータ転送装置。
  4.  前記第一の要求群には、
     1つの書込み要求によって書き込まれるデータの一部のみを読み出す読出し要求と、
     1つの読出し要求によって読み出されるデータの一部のみを書き込む書込み要求との少なくとも一方が存在する
     請求項3に記載のデータ転送装置。
  5.  前記要求装置は、CPU,主記憶部、それらを接続する第一のバス、前記第一のバスに接続されて前記転送元デバイスおよび前記転送先デバイスを含む外部デバイスとの信号の送受信を行う外部デバイス管理部、および前記外部デバイス管理部に接続されている第二のバスを含み、
     前記データ読出し手段、前記データ書込み手段、前記転送元デバイス、および前記転送先デバイスは、前記第一のバスを介さずに前記第二のバスを介してデータの授受を行う
     請求項1に記載のデータ転送装置。
  6.  前記データ読出し手段は、前記読出し要求の少なくとも一部を前記転送元デバイスに送信することで前記転送元デバイスからデータの読出しを行い、
     前記転送元デバイスは、転送元記憶部と、転送元コントローラとを備え、
     前記転送元コントローラは、前記データ読出し手段から読出し要求の少なくとも一部を受け取ると前記転送元記憶部からデータを読み出して前記データ読出し手段に送信する制御を行い、
     前記データ書込み手段は、前記書込み要求の少なくとも一部を前記転送先デバイスに送信することで前記転送先デバイスに書込み準備をさせ、
     前記転送先デバイスは、転送先記憶部と、転送先コントローラとを備え、
     前記転送先コントローラは、前記データ書込み手段から前記書込み要求の少なくとも一部を受け取ると、その後に前記データ書込み手段から送信されたデータを前記転送先記憶部に書き込む制御を行う
     請求項1に記載のデータ転送装置。
  7.  前記データ転送要求を解読する転送要求解読手段と、
     データ転送の終了後、前記要求装置のその旨を通知する転送完了通知手段と
    を含む
     請求項1に記載のデータ転送装置。
  8.  前記転送制御手段は、
     前記データ転送要求に含まれる読出し要求と書込み要求とを格納する要求格納手段を備え、
     前記要求格納手段に格納されている読出し要求および書込み要求を、前記要求装置の指定の順序で実行する
     請求項1に記載のデータ転送装置。
  9.  前記読出し要求は、転送元デバイスからデータを読出すためのリードコマンドからなり、
     前記書込み要求は、転送先デバイスへデータを書込むためのライトコマンドからなる
     請求項2に記載のデータ転送装置。
  10.  前記リードコマンド及びライトコマンドの各々は、前記識別情報を設定する識別情報フィールドを有する
     請求項9に記載のデータ転送装置。
  11.  前記転送制御手段は、
     前記リードコマンドを登録するリードコマンドキューと、
     前記ライトコマンドを登録するライトコマンドキューと
    を備える
     請求項9に記載のデータ転送装置。
  12.  前記リードコマンドキューと前記ライトコマンドキューは、並列に処理される
     請求項11に記載のデータ転送装置。
  13.  前記リードコマンドキューまたは前記ライトコマンドキューにおいて、
     各キュー内で同一の前記識別情報の付与された複数のコマンドは、登録された順序で処理される
     請求項11に記載のデータ転送装置。
  14.  前記第一の要求群に含まれる前記リードコマンドの個数と前記ライトコマンドの個数とが異なる
     請求項9に記載のデータ転送装置。
  15.  前記第二の要求群は、前記要求装置に記憶されている前記管理情報を読み出すための管理情報読出し要求を含み、
     前記転送制御手段は、
     前記管理情報読出し要求に従い前記データ読出し手段によって前記要求装置から読み出された管理情報を前記読出しデータ記憶手段に記憶させ、前記読出しデータ記憶手段に記憶されている前記管理情報を前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行う
     請求項1に記載のデータ転送装置。
  16.  さらに、ネットワーク機能を備え、
     転送対象となる転送元デバイスと転送先デバイスとの少なくとも一方と、ネットワークを介して接続されている
     請求項1に記載のデータ転送装置。
  17.  転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行う集積回路であって、
     転送元デバイスからデータを読み出すデータ読出し手段と、
     転送先デバイスへデータを書き込むデータ書込み手段と、
     前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、
     前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、
     を含み、
     前記データ転送要求は、
     少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、
     少なくとも1つの書込み要求から成る第二の要求群と、
     を含み、
     前記転送制御手段は、
     前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、
     前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、
     前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行う
     ことを特徴とする集積回路。
  18.  転送元デバイスからデータを読み出すデータ読出し手段と、転送先デバイスへデータを書き込むデータ書込み手段と、前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段とを含むデータ転送装置によって、転送元デバイスから転送先デバイスへのデータ転送要求を要求装置から受けてデータ転送を行う方法であって、
     前記データ転送要求は、
     少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、
     少なくとも1つの書込み要求から成る第二の要求群と、
     を含み、
     前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させるステップと、
     前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込むステップと、
     前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込むステップと
     を含むことを特徴とするデータ転送方法。
  19.  転送元デバイス、転送先デバイス、それら2つのデバイス間のデータ転送要求を行う要求装置、およびデータ転送要求を受けてデータ転送を行うデータ転送装置を含むデータ転送システムであって、
     前記データ転送装置は、
     転送元デバイスからデータを読み出すデータ読出し手段と、
     転送先デバイスへデータを書き込むデータ書込み手段と、
     前記データ読出し手段によって読み出されたデータを記憶する読出しデータ記憶手段と、
     前記データ転送要求に応じて前記データ読出し手段および前記データ書込み手段を制御する転送制御手段と、
     を含み、
     前記データ転送要求は、
     少なくとも1つの読出し要求と、少なくとも1つの書込み要求とからなる第一の要求群と、
     少なくとも1つの書込み要求から成る第二の要求群と、
     を含み、
     前記転送制御手段は、
     前記第一の要求群の読出し要求に従い前記データ読出し手段によって転送元デバイスから読み出したデータを、前記読出しデータ記憶手段に記憶させ、
     前記読出しデータ記憶手段に記憶されているデータを、前記第一の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込み、
     前記要求装置から送信された転送先デバイスのデータ配置を示す管理情報を、前記第二の要求群の書込み要求に従い前記データ書込み手段によって転送先デバイスに書き込む制御を行う
     ことを特徴とするデータ転送システム。
PCT/JP2012/000201 2011-04-14 2012-01-16 データ転送装置 WO2012140813A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011089802 2011-04-14
JP2011-089802 2011-04-14

Publications (1)

Publication Number Publication Date
WO2012140813A1 true WO2012140813A1 (ja) 2012-10-18

Family

ID=47009011

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/000201 WO2012140813A1 (ja) 2011-04-14 2012-01-16 データ転送装置

Country Status (1)

Country Link
WO (1) WO2012140813A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014123328A (ja) * 2012-12-21 2014-07-03 Mega Chips Corp 半導体記憶装置及びコンピュータシステム
JP2022046413A (ja) * 2020-09-10 2022-03-23 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316633A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd ファイル転送方法およびシステム
JP2008527496A (ja) * 2004-12-29 2008-07-24 ネットセル コーポレイション 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
JP2008217469A (ja) * 2007-03-05 2008-09-18 Seiko Epson Corp コピー装置、データ転送制御装置、情報処理装置及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316633A (ja) * 2002-04-23 2003-11-07 Hitachi Ltd ファイル転送方法およびシステム
JP2008527496A (ja) * 2004-12-29 2008-07-24 ネットセル コーポレイション 低減されたローカルバストラフィックでのディスクドライブ動作のためのインテリジェントストレージエンジン
JP2008217469A (ja) * 2007-03-05 2008-09-18 Seiko Epson Corp コピー装置、データ転送制御装置、情報処理装置及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014123328A (ja) * 2012-12-21 2014-07-03 Mega Chips Corp 半導体記憶装置及びコンピュータシステム
JP2022046413A (ja) * 2020-09-10 2022-03-23 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力
JP7170093B2 (ja) 2020-09-10 2022-11-11 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力

Similar Documents

Publication Publication Date Title
US6886083B2 (en) Apparatus and method for controlling a card device
US7707337B2 (en) Object-based storage device with low process load and control method thereof
JP2008269282A (ja) 情報処理装置および方法、並びにプログラム
JP2011512591A5 (ja)
JP2004302713A (ja) 記憶システム及びその制御方法
CN105408875B (zh) 在存储器接口上的分布式过程执行和文件系统
US10162833B2 (en) Wireless access device and wireless access system
US20130232284A1 (en) Storage system and data transfer control method
JP2010015610A (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JPH09224044A (ja) 配信システム
JP4724494B2 (ja) Pciブリッジ及pciブリッジを搭載するシステム
TW498209B (en) Data transfer control apparatus and electronic machine
WO2012140813A1 (ja) データ転送装置
JP2004054845A (ja) データ管理装置
CN102043741B (zh) 用于管道仲裁的电路和方法
TWI235921B (en) System and method for effectively performing physical direct memory access operations
JPH08235092A (ja) データ転送制御装置
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
JP4936088B2 (ja) ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法
US7921238B2 (en) USB host system and method for transferring transfer data
EP2960801B1 (en) Wireless access device and wireless access system
US10223264B2 (en) Data access control apparatus
JP6395203B2 (ja) データ制御システム、データ制御方法およびデータ制御用プログラム
US11842066B2 (en) Control apparatus and information processing system for providing a bridge apparatus between a host controller and a non-volatile storage medium to encrypt and decrypt data
JPH11149455A (ja) メモリディスク共有方法及びその実施装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12771997

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12771997

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP