WO2013115282A1 - インタフェース変換装置及びインタフェース変換方法、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体 - Google Patents

インタフェース変換装置及びインタフェース変換方法、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体 Download PDF

Info

Publication number
WO2013115282A1
WO2013115282A1 PCT/JP2013/052113 JP2013052113W WO2013115282A1 WO 2013115282 A1 WO2013115282 A1 WO 2013115282A1 JP 2013052113 W JP2013052113 W JP 2013052113W WO 2013115282 A1 WO2013115282 A1 WO 2013115282A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
interface
usb
conversion
unit
Prior art date
Application number
PCT/JP2013/052113
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
Priority claimed from JP2012017613A external-priority patent/JP5491548B2/ja
Priority claimed from JP2012017618A external-priority patent/JP5491549B2/ja
Priority claimed from JP2013013875A external-priority patent/JP2013254479A/ja
Application filed by 株式会社ユニテックス filed Critical 株式会社ユニテックス
Publication of WO2013115282A1 publication Critical patent/WO2013115282A1/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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0661Format or protocol conversion arrangements
    • 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/0673Single storage device
    • G06F3/0682Tape device

Definitions

  • the present invention relates to an interface conversion apparatus and an interface conversion method for connecting hardware having different types of interfaces, and particularly suitable when an error occurs in data transfer from one hardware to the other.
  • the present invention relates to an interface conversion apparatus and an interface conversion method that enable reliable data retransfer.
  • the present invention also relates to an information processing apparatus, an information processing system, an information processing method, a program, and a recording medium, and more specifically, an information processing apparatus having a USB port, an information processing system including the information processing apparatus, and a USB port.
  • the present invention relates to an information processing method in an information processing apparatus, a program used in an information processing apparatus having a USB port, and a recording medium on which the program is recorded.
  • the present invention also relates to a conversion device, an information processing system, a conversion method, a program, and a recording medium. More specifically, the present invention includes a conversion device provided on a communication path between two devices having different interface standards, and the conversion device. Information processing system, conversion method in conversion device provided on communication path between two devices having different interface standards, program used for device provided on communication path between two devices having different interface standards, and the program Relates to a recording medium on which is recorded.
  • USB Universal Serial Bus
  • peripheral devices such as printers and external hard disks are connected via USB. It is becoming.
  • high-end devices such as LTO (Linear Tape Open) devices use a different interface from USB such as SAS (suspension, Serial Attached SCSI) to ensure data transfer reliability. ing.
  • FIG. 4 is a diagram showing how data is transferred in such a conventional interface conversion apparatus.
  • the host computer 1 has a USB 2 as an interface
  • the tape device (LTO device) 3 has a SAS 4 as an interface.
  • the interface conversion device 5 is connected between the USB 2 and the SAS 4.
  • a CBW Common Block Wrapper
  • the interface conversion device 5 converts the CBW into a command frame having a format suitable for SAS, and transmits the command frame to the SAS 4.
  • the SAS 4 Upon receiving the command frame as a data transfer request, the SAS 4 reads the data to be transmitted from the tape device 3 and, as shown in FIG. 4B, the read data is converted into data frames delimited by a predetermined frame size. Then, the data is sequentially transmitted to the interface conversion device 5. Upon receiving the data frame transmission, the interface conversion device 5 converts the received data frame into a data packet divided into a predetermined packet size, and sequentially transfers it to the USB 2.
  • An information processing apparatus such as a personal computer can be expanded in function by adding an external device, and is used as a core apparatus of various systems.
  • SCSI Small Computer System Interface
  • ANSI American National Standards Institute
  • USB Universal Serial Bus
  • serialized SAS Serial Attached SCSI
  • Patent Document 3 discloses a signal conversion device including a USB connection interface and a virtual serial port driver.
  • Patent Document 5 discloses an information processing apparatus having virtual communication port creation / deletion means.
  • Patent Document 6 discloses a reading device that aims to continue reading data quickly and appropriately when a reading error occurs.
  • An information processing apparatus such as a personal computer can be expanded in function by adding an external device, and is used as a core apparatus of various systems.
  • SCSI Small Computer System Interface
  • ANSI American National Standards Institute
  • USB Universal Serial Bus
  • serialized SAS Serial Attached SCSI
  • Patent Document 1 discloses a USB storage device.
  • Patent Document 2 discloses a USB-ATAPI interface system and an ATAPI-USB conversion device used therefor.
  • Patent Document 7 discloses a sense data holding method for the purpose of reducing the memory capacity necessary for holding sense data.
  • a data transfer error may occur when the data transfer speed of each interface is different.
  • a predetermined time for example, 1 ms
  • the interface converter 5 or the tape device 3 determines that a timeout (data transfer failure) has occurred, and the SAS 4 changes to the USB 2 as shown in FIG. 4 (e). The data will be retransmitted.
  • the inventors of the present invention do not cause the inconvenience that occurs in the case of a data transfer error due to the difference in the data transfer speed of each interface. It was found that appropriate data transfer can be maintained by using the following method. That is, in an interface conversion apparatus and interface conversion method for connecting hardware having different types of interfaces, when an error occurs in data transfer from one hardware to the other, appropriate data re-transfer It is an object of the present invention to provide an interface conversion device and an interface conversion method capable of enabling
  • OS operating system
  • a storage class driver, a storage port driver, and a SCSI miniport driver are interposed between the application software and the SCSI port. Further, a storage class driver, a storage port driver, and a SAS miniport driver are interposed between the application software and the SAS port. A storage class driver, a USB mass storage class driver, and a USB port driver are interposed between the application software and the USB port.
  • the application software is not the software itself, but may be, for example, a processing unit in which software is installed and executes the software.
  • the application software When the application software is application software that controls a SCSI device, the application software makes an inquiry to the storage port driver via a storage class driver, for example, and controls a device connected to the SCSI port.
  • the application software is application software for controlling a USB device
  • the application software inquires of the USB mass storage class driver via the storage class driver, for example, and targets the device connected to the USB port as the control target. .
  • the application software that controls the SCSI device cannot recognize the USB device connected to the USB port (see FIG. 32).
  • USB device recognized as a SCSI device
  • the modification is impossible or the cost is higher than the modification of the application software. .
  • the present invention has been made under such circumstances, and a first object of the present invention is information capable of controlling a USB device with software corresponding to an interface standard different from the USB standard without causing an increase in cost. It is to provide a processing apparatus.
  • a second object of the present invention is to provide an information processing system capable of constructing a system according to the purpose without incurring an increase in cost.
  • a third object of the present invention is to provide an information processing method capable of controlling a USB device with software corresponding to an interface standard different from the USB standard without causing an increase in cost.
  • a fourth object of the present invention is to provide a program that enables an information processing apparatus to control a USB device with software that supports an interface standard different from the USB standard without causing an increase in cost. It is to provide a recording medium on which the program is recorded.
  • the inventors have developed a conversion device provided on a communication path between a first device compatible with the USB standard and a second device compatible with the SAS standard.
  • the inventors then convert information in a format corresponding to the USB standard from the first device into a format compatible with the SAS standard, output the information to the second device, and also output the SAS standard from the second device.
  • a conversion device that converts information in a format compatible with the USB format into information in a format compatible with the USB standard and outputs the converted information to the first device was prototyped.
  • the tape device Even if there is an abnormality such as a magnetic tape not being mounted, information regarding the abnormality is not notified to the information processing apparatus.
  • the prototype conversion device converts the read command into a predetermined command frame and outputs it to the tape device.
  • the tape device creates sense data including information regarding the content of the abnormality, and outputs a predetermined response frame including the sense data to the prototype conversion device.
  • the sense data is cleared after the response frame is output.
  • the prototype conversion device When the prototype conversion device receives the response frame from the tape device, it outputs dummy data and status information indicating a command failure to the information processing device.
  • the information processing apparatus When the information processing apparatus receives the status information, it issues a request sense command for requesting sense information.
  • the prototype conversion device converts the request sense command into a predetermined command frame and outputs it to the tape device.
  • the tape device outputs a predetermined data frame including sense information to the prototype conversion device. However, at this time, since the sense data has already been cleared in the tape device, no sense data is set in the sense information.
  • the prototype conversion device When the prototype conversion device receives a data frame from the tape device, it converts the data frame into a predetermined format and outputs it to the information processing device.
  • the present invention has been made on the basis of the new knowledge obtained by the inventors as described above, and a first object of the present invention is to provide a first apparatus and a SAS standard corresponding to the USB standard without causing an increase in cost.
  • An object of the present invention is to provide a conversion device that can normally perform communication with a corresponding second device.
  • a second object of the present invention is to provide an information processing system that can construct a system according to the purpose without increasing the cost.
  • a third object of the present invention is to perform conversion that can normally perform communication between a first device that conforms to the USB standard and a second device that conforms to the SAS standard without incurring an increase in cost. It is to provide a method.
  • a fourth object of the present invention is to perform normal communication between the first device compatible with the USB standard and the second device compatible with the SAS standard without incurring an increase in cost for the conversion device. It is an object of the present invention to provide a program that can be executed and a recording medium on which the program is recorded.
  • (1)-(1) An interface that enables communication between a first device having a first interface and a second device having a second interface having a communication method different from that of the first interface.
  • a data storage unit for storing the data after conversion by the data converter, and the data received from the data storage unit to the second interface
  • a second data transmission / reception unit for transmitting, wherein the second data transmission / reception unit stores a plurality of the data stored in the data storage unit In this order, the data is transmitted to the second interface without depending on the transmission interval of the plurality of data.
  • An interface that enables communication between a first device having a first interface and a second device having a second interface having a communication method different from that of the first interface.
  • a data storage unit for storing data; a first data transmission / reception unit for transmitting the data received from the first interface to the data storage unit; and the first data reception unit received from the data storage unit.
  • a data converter that converts the data that conforms to the communication method of the first interface into a data format that conforms to the communication method of the second interface, and the data received from the data converter to the second interface.
  • a second data transmission / reception unit for transmitting, wherein the second data transmission / reception unit changes the plurality of data converted by the data conversion unit. In the changed order, the data is transmitted to the second interface without depending on the transmission interval of the plurality of data.
  • the second data transmitting / receiving unit transmits data received from the second interface to the data converting unit
  • the data converting unit includes: The data that conforms to the communication method of the second interface is converted into a data format that conforms to the communication method of the first interface, and the first data transmission / reception unit receives the data received from the data conversion unit To the first interface.
  • the data conversion unit converts a data suitable for the communication method of the first interface into a data format suitable for the communication method of the second interface, and a first data transmission / reception A transmission / reception step for transmitting data received from the first interface to the data conversion unit; a data storage unit for storing the data converted by the data conversion unit; and a second data transmission / reception A transmission / reception step of transmitting the data received from the data storage unit to the second interface;
  • the plurality of data stored in the data storage unit are transmitted to the second interface in the order in which they are stored without depending on the transmission interval of the plurality of data.
  • (1)-(5) An interface that enables communication between a first device having a first interface and a second device having a second interface having a communication method different from that of the first interface.
  • the data storage unit stores data
  • the first data transmission / reception unit transmits / receives the data received from the first interface to the data storage unit
  • data A converting unit that converts the data that is received from the data storage unit and that conforms to the communication method of the first interface into a data format that conforms to the communication method of the second interface
  • a transmission / reception unit including a transmission / reception step of transmitting the data received from the data conversion unit to the second interface;
  • the transmission / reception step by the data transmission / reception unit 2 transmits the plurality of pieces of data converted by the data conversion unit to the second interface in the order of conversion without depending on the transmission interval of the plurality of data.
  • the present invention provides an interface conversion device that performs interface conversion between a first device having a first interface and a second device having a second interface.
  • Data receiving means for receiving the data via the first interface
  • data converting means for converting the data received by the data receiving means into a method suitable for the second interface
  • Data transfer means for transferring to the second device via the two interfaces
  • transfer data information storage means for storing information relating to the data transferred to the second device by the data transfer means, and second data from the first device.
  • Data transfer restarting means for restarting the process according to the above.
  • the first interface retransmits all data that should have been originally transmitted in the data retransmission when an error occurs
  • the interface may accept a transfer other than the data already transferred before the error out of all the data that should have been initially transmitted in the data retransmission at the time of the error.
  • the information related to the transferred data stored in the transfer data information storage means is information serving as an index of the amount of data already transferred to the second device. There may be.
  • the information serving as an index of the transferred data amount may be the transferred data amount to the second device.
  • the data transferred from the first device is data transferred in the form of a data frame
  • the information used as an index of the transferred data amount is the second It may be the number of data frames transferred to the device.
  • the determination of the occurrence of an error may be made when reception of data in the second device is stagnated for a predetermined time or more.
  • the information related to the transferred data stored in the transfer data information storage means is the amount of data transferred from the data receiving means to the data converting means. It may be information serving as an index.
  • the data transferred from the first device is data transferred in the form of a data frame, and information serving as an index of the transferred data amount is It may be the number of data frames transferred from the data receiving means to the data converting means.
  • the present invention provides an interface conversion method for performing interface conversion between a first device having a first interface and a second device having a second interface.
  • Receiving data from the device via the first interface converting the data received from the first device into a method compatible with the second interface, and converting the data into a method compatible with the second interface.
  • Transferring data to the second device via the second interface storing information about the data transferred to the second device, and transferring data from the first device to the second device.
  • the first device retransmits. Conversion and transfer of data only for data other than data that has already been determined to have been transferred to the second device before the occurrence of an error, based on information stored in the transfer data information storage means, and Resuming storage of information relating to the transferred data.
  • the present invention is connected between a first device having a first interface and a second device having a second interface, and receives data from the first device.
  • the interface conversion device that converts the data into a method corresponding to the second interface and transfers it to the second device
  • the first device causes the error to occur in the data transmission from the first device to the second device.
  • data is retransmitted to the second device, only data other than data that has already been transferred to the second device before the occurrence of an error among the data retransmitted from the first device. The data was transferred to the second device.
  • the present invention includes a USB port and a USB port driver for controlling the USB port, and performs device control corresponding to an interface standard different from the USB standard.
  • the software monitors the attachment / detachment of the USB device at the USB port.
  • the software recognizes the attachment / detachment of the USB device at the virtual port corresponding to the interface standard different from the USB standard, and the USB An information processing apparatus including a virtual miniport driver having a pass-through function for transferring a command issued to a device to the USB port driver.
  • the USB device can be controlled by software corresponding to an interface standard different from the USB standard without incurring an increase in cost.
  • the present invention is an information processing system including the information processing apparatus of the present invention and a USB device attached to and detached from a USB port of the information processing apparatus.
  • the present invention includes a USB port and a USB port driver for controlling the USB port, and executes software corresponding to an interface standard different from the USB standard.
  • the information processing method in the information processing apparatus wherein when the USB device is attached / detached at the USB port, the USB device is attached / detached at a virtual port corresponding to an interface standard different from the USB standard; And a step of transferring the command to the USB port driver when a command is issued to the USB device.
  • the USB device can be controlled by software corresponding to an interface standard different from the USB standard without incurring an increase in cost.
  • the present invention includes a USB port and a USB port driver for controlling the USB port, and executes software corresponding to an interface standard different from the USB standard.
  • a program used in the information processing apparatus wherein the device is attached / detached at a virtual port corresponding to an interface standard different from the USB standard when the device is attached / detached at the USB port; And a procedure for causing the control computer of the information processing apparatus to execute a procedure for passing through a command issued to the USB port driver.
  • the present invention is a computer-readable recording medium on which the program of the present invention is recorded.
  • the USB device is controlled by software corresponding to an interface standard different from the USB standard without causing an increase in cost by causing the computer to execute the program. Is possible.
  • the present invention is a conversion device provided on a communication path between a first device compatible with the USB standard and a second device compatible with the SAS standard.
  • a first communication control unit that controls communication with the first device in accordance with the USB standard, and a second communication that controls communication with the second device in compliance with the SAS standard.
  • sense data from the control unit and the second device input via the second communication control unit is input, the sense data is stored, and status information indicating a command failure is stored in the first information
  • the stored sense is stored.
  • Data is passed through the first communication control unit And a processing device that outputs to the first device.
  • communication between the first device compatible with the USB standard and the second device compatible with the SAS standard can be normally performed without incurring an increase in cost.
  • the present invention is connected to the conversion device of the present invention connected to the first device corresponding to the USB standard and the second communication control unit of the conversion device. And an information processing system provided with a second device compatible with the SAS standard.
  • the present invention is a conversion device of the present invention, a first device connected to the first communication control unit of the conversion device and corresponding to the USB standard, An information processing system including a second device connected to a second communication control unit of the conversion device and corresponding to the SAS standard.
  • the conversion in the conversion device provided on the communication path between the first device compliant with the USB standard and the second device compliant with the SAS standard A method of temporarily storing sense data from the second device without outputting to the first device, and outputting status information indicating command failure to the first device. And a method of outputting the temporarily stored sense data to the first device when a sense data request command for the status information is input from the first device. It is.
  • communication between the first device compatible with the USB standard and the second device compatible with the SAS standard can be normally performed without incurring an increase in cost.
  • the present invention provides a conversion device provided on a communication path between a first device compatible with the USB standard and a second device compatible with the SAS standard.
  • a program used for temporarily storing sense data from the second device without outputting it to the first device, and status information indicating command failure in the first device. And a procedure for outputting the temporarily stored sense data to the first device when a sense data request command for the status information is input from the first device.
  • communication between the first device compatible with the USB standard and the second device compatible with the SAS standard can be normally performed without causing an increase in cost.
  • the present invention is a computer-readable recording medium on which the program of the present invention is recorded.
  • communication between the first device compatible with the USB standard and the second device compatible with the SAS standard can be normally performed without causing an increase in cost.
  • interface conversion enables communication between a first device having a first interface and a second device having a second interface having a communication method different from that of the first interface.
  • a data storage unit transmits data (for example, a block is transmitted from a first apparatus (for example, a tape device) to a second apparatus (for example, a host computer).
  • a plurality of divided data frames can be stored. That is, it is possible to continue transmitting data (all data frames obtained by dividing one block) to the data storage unit without being affected by the communication status on the second interface (USB) side.
  • the second data transmitting / receiving unit since the second data transmitting / receiving unit only transmits the data stored in the data storage unit, the data corresponding to the command is not affected by the communication status on the first interface (SAS) side. All (data packets) can be continuously transmitted to the second device.
  • SAS first interface
  • Data (data packet) transfer waiting (timeout) on the (USB) side can be eliminated, and the availability of the interface converter can be improved.
  • the second data transmitting / receiving unit transmits the plurality of data (data frames) stored in the data storage unit to the second interface in the stored order without depending on the transmission interval of the plurality of data. Therefore, even if data (data packet) transfer waiting occurs, the data is not transmitted before and after, and the data can be transmitted reliably, and the reliability of the interface conversion device Can be improved.
  • error detection means for detecting data (data packet) transfer waiting, means for instructing the first interface (SAS) to stop data, and instructions for data retransmission. Since it is not necessary to provide such means separately, the processing speed can be improved and the manufacturing cost can be reduced.
  • the process for storing the data and the stored data are output. Since the process of (transmission) can be omitted, the processing speed can be improved.
  • appropriate data re-transmission can be achieved only by a simple process of discarding (discarding) a part of re-transmitted data.
  • discarding a part of re-transmitted data.
  • it does not require complicated procedures such as creating a unique protocol for the first or second interface and adding a change to support the unique protocol to the first or second device. Therefore, it is possible to perform appropriate data transfer only by making the minimum necessary changes only to the interface conversion apparatus, and it is possible to achieve cost reduction and to minimize the influence on other devices.
  • the data size of the data that has been transferred is stored as information related to the transferred data, and the determination as to whether the retransmitted data has already been transferred to the second device is completed. If it is performed based on the data size of the completed data, it is only necessary to hold the minimum necessary information in order to determine the data to be retransmitted to the second device, and the size of the data Accurate judgment can be easily made only by comparing relationships.
  • FIG. 10 is a schematic diagram for explaining data transfer according to the interface conversion device of modification 3 in the same manner.
  • FIG. 10 is a schematic diagram for explaining data transfer according to the interface conversion device of modification example 4;
  • FIG. 10 is a schematic diagram for explaining data transfer according to the interface conversion device of modification example 5; It is a block diagram for demonstrating the structure of the information processing system which concerns on the 3rd Embodiment of this invention.
  • FIG. 3 is a block diagram (No. 1) for describing a virtual SCSI miniport driver.
  • FIG. 6 is a block diagram (No. 2) for describing a virtual SCSI miniport driver.
  • It is a block diagram for demonstrating the relationship between tape RW software and a driver.
  • It is a figure for demonstrating the format of a read (READ) command.
  • FIG. 10 is a diagram for explaining a flow of commands issued from the tape RW software 10500. It is a figure for demonstrating the structure of SRB.
  • FIG. 1 is a block diagram showing an interface conversion apparatus 10 according to an embodiment of the present invention.
  • the interface conversion apparatus 10 is disposed between the USB 2 that is an interface of the host computer 1 and the SAS 4 that is an interface of the tape device (LTO apparatus) 3, and connects the USB 2 and the SAS 4.
  • the interface conversion device 10 can be configured as, for example, a conversion board interposed between the USB 2 and the SAS 4.
  • the interface conversion apparatus 10 includes data conversion means 11 for converting data from one of two interfaces (USB and SAS in this embodiment) having different systems (protocols and formats) into a system suitable for the other. Yes.
  • the interface converter 10 further includes a data transfer request receiving unit 12 that receives a data transfer request, a data transfer request transmitting unit 13 that transmits a data transfer request, a data receiving unit 14 that receives transfer data, and transfer data.
  • a data transfer means 15 for sending, a data transfer end notice receiving means 16 for receiving a notice indicating the end of data transfer, and a data transfer end notice sending means 17 for sending a notice showing the end of data transfer are provided.
  • a CBW Common Block Wrapper
  • a CBW Common Block Wrapper
  • the data transfer request receiving unit 12 receives data from the tape device 3 into the host computer 1 and is sent to the SAS by the data conversion unit 11. It is converted into a command frame having a suitable data format, and transmitted to the SAS 4 by the data transfer request transmission unit 13.
  • the data frame transmitted as transfer data from the SAS 4 is received by the data receiving means 14 and the data converting means 11 is in a data format suitable for USB. It is converted into a packet and transmitted to the USB 2 by the data transfer means 15.
  • a response frame which is a data transfer end notification from the SAS 4, is received by the data transfer end notification receiving unit 16, converted into CSW (Command Status Wrapper) by the data conversion unit 11, and a data transfer end notification
  • the transmission unit 17 transmits the data to the USB 2.
  • the CBW as a data reception request issued from the host computer 1 is transmitted to the SAS 4 via the USB 2.
  • the data conversion unit 11 converts the data into an appropriate data format, and the data is sequentially transmitted to the SAS 4.
  • the CSW for notifying the end of writing is transmitted to the USB 2 by the data transfer end notification transmitting means 17.
  • the interface conversion apparatus 10 further includes a transfer data information storage unit 18, an error occurrence determination unit 19, a transferred data discrimination / discard unit 20, and a data transfer restart unit 21.
  • the transfer data information storage means 18 is means for storing information relating to data that has been transferred to the USB 2 when data transfer from the tape device 3 to the host computer 1 is performed. Specifically, the transfer data information storage means 18 stores the data size of the data that has been received by the USB 2 up to that point, out of all data to be transferred in response to the data transfer request. .
  • the error occurrence determination means 19 is a means for determining whether or not an error that requires re-transfer of data has occurred in the data transfer processing by the interface conversion apparatus 10. For example, the error occurrence determination unit 19 determines that an error has occurred when reception of transfer data by the USB 2 is stagnant and a predetermined time (for example, 1 ms) has elapsed. . Specifically, an error occurs when an ACK signal, which is a reception confirmation notification from the USB 2, is confirmed for each data packet transmission to the USB 2, and the ACK signal is not confirmed for a predetermined time or longer after the data packet is transmitted. Will be made.
  • the interface conversion apparatus 10 is provided with the error occurrence determination means 19, but the present invention is not limited to such a form.
  • a data transfer error occurs in the tape device 3.
  • the interface conversion apparatus 10 may perform processing based on the determination of the occurrence of an error notified from the tape device 3.
  • the transferred data discriminating / discarding means 20 determines the retransfer data received from the SAS 4 based on the information stored in the transfer data information storage means 18 before the error occurs when the transfer data is retransferred. Whether or not the data has already been received by the USB 2 in the data transfer of, and if the data has been transferred, the data is discarded (discarded) to the USB 2 This is a means for preventing duplicate transfers. Specifically, the transferred data discriminating and discarding unit 20 calculates the accumulated size of the data retransmitted sequentially from the SAS 4, and this accumulated size is stored in the transfer data information storage unit 18 and has been transferred. Until the data size is reached, the retransmitted data is discarded.
  • the data transfer restarting means 21 is a means for restarting data transfer to the USB 2 for data other than data that has already been received by the USB 2 in the previous data transfer when data re-transmission from the SAS 4 is performed. Specifically, the data transfer resuming unit 21 determines whether the data size of the retransmitted data from the SAS 4 exceeds the data size of the transferred data stored in the transfer data information storage unit 18, Conversion, data transfer by the data transfer means 15, and storage of the transferred data size by the transfer data information storage means 18 are resumed. In this case, the value of the transferred data size in the transfer data information storage means 18 is a value obtained by sequentially accumulating the transferred data size at the time of error occurrence and the size of the data transferred after the data transfer to the USB 2 is resumed. It becomes.
  • a data conversion unit 11 a data transfer request receiving unit 12, a data transfer request transmitting unit 13, Data receiving means 14, data transfer means 15, data transfer end notice receiving means 16, data transfer end notice sending means 17, error occurrence judging means 19, transferred data discrimination and discarding means 20, and data transfer resuming means 21
  • a data conversion unit 11 a data conversion unit 11
  • a data transfer request receiving unit 12 a data transfer request transmitting unit 13
  • Data receiving means 14 data transfer means 15, data transfer end notice receiving means 16, data transfer end notice sending means 17, error occurrence judging means 19, transferred data discrimination and discarding means 20, and data transfer resuming means 21
  • each means such as the transfer data information storage means 18 may be constituted by a memory provided in the conversion board.
  • FIG. 2 is a diagram for explaining data transfer by the interface conversion apparatus 10 of the present embodiment.
  • the CBW which is a data transfer request from the USB 2
  • the SAS 4 is converted into a command frame by the interface conversion device 10 and transmitted to the SAS 4.
  • the data from the SAS 4 is transmitted as a data frame, converted into a data packet by the interface converter 10, and transmitted to the USB 2.
  • the data size that has been transferred is stored as shown in (c).
  • a response frame which is a data transfer completion notification from the SAS 4
  • an interface conversion as shown in (i).
  • the apparatus 10 it is converted into CSW and transmitted to the USB 2, and the transfer process ends.
  • the time-out is detected by the data conversion unit 11, the data transfer request transmission unit 13, the data reception unit 14 and the like in the interface conversion apparatus 10, and in response to the data retransfer request from the data storage device such as a tape device.
  • the data storage device that accepts the re-transfer and re-transfers the data.
  • step S1 of the flowchart the data transfer request receiving unit 12 in the interface converter 10 receives a CBW that is a data transfer request from the USB 2.
  • step S2 the data converter 11 converts the CBW into a command frame having a data format suitable for SAS.
  • step S3 the data transfer request transmission unit 13 transmits a command frame that is a data transfer request to the SAS 4.
  • step S4 the data receiving means 14 of the interface converter 10 receives data from the SAS 4. Specifically, data from the SAS 4 is sequentially transmitted as at least one data frame divided into a predetermined frame size, and is sequentially received by the data receiving unit 14. In step S5, the data transmitted from the SAS 4 as a data frame is converted by the data conversion unit 11 into at least one data packet divided into a predetermined packet size. In step S 6, the data packet created by the data conversion unit 11 is sequentially transferred toward the USB 2 by the data transfer unit 15.
  • step S7 the error occurrence determination unit 19 of the interface conversion apparatus 10 determines whether an error has occurred in data transfer to the USB2. For example, when a data packet is transferred from the data transfer unit 15 of the interface conversion device 10 to the USB 2 but the completion of data reception in the USB 2 is not confirmed for a predetermined time or more, the error occurrence determination unit An error is determined. Specifically, after each data packet is transmitted, an ACK signal (acknowledgment signal) notifying that the data packet has been correctly received by USB 2 is not transmitted from USB 2 for a predetermined time (eg, 1 ms). When the above has elapsed, it is determined that an error has occurred in data transfer to the USB 2.
  • a predetermined time eg, 1 ms
  • the error occurrence determination unit 19 When an error occurs, the error occurrence determination unit 19 performs control so that the data reception unit 14 does not receive data from the SAS 4. For this reason, the tape device 3 stops processing in a state where data cannot be transmitted, and a timeout occurs.
  • the error occurrence determination means 19 detects the time-out that has occurred. Note that the determination of the occurrence of an error by the error occurrence determination means 19 is not limited to such an error when the data transfer is stagnant, and some problem occurs in the data transfer to the USB 2 and correct data transfer is not performed. If it is confirmed that an error has occurred, it is determined that an error has occurred.
  • step S8 data transfer to the transfer data information storage unit 18 is performed on the transfer data information storage means 18 to the USB 2 up to that point.
  • the data size (data amount) of completed data (transferred data) is stored. Specifically, for each transmission of each data packet, an ACK signal indicating that the data packet has been correctly received by USB 2 is confirmed, and the number of bytes of the data packet whose data transfer has been confirmed successful by the ACK signal is accumulated. As a result, the data amount of the transfer completed data at that time is calculated and stored in the transfer data information storage unit 18.
  • the information regarding the transferred data stored in the transfer data information storage unit 18 is the data size of the transferred data, but the present invention is not limited to such a form. Any information may be used as long as it is information indicating which data has been transferred to the USB 2 among all data to be transferred. 3 is not shown in FIG. 3 instead of adopting a method of accumulating and adding the number of bytes of the data packet whose data transfer has been confirmed to be successful by the ACK signal in calculating the data amount of the transferred data. The following methods can also be employed.
  • a temporary buffer such as a buffer is provided at a predetermined location on the side of the data conversion unit 11, transfer data information storage unit 18, data transfer unit 15, data reception unit 14, or data transfer end notification reception unit 16 of the interface conversion apparatus 10. For example, when the data storage means 14 has completed the transfer from the data receiving means 14 to the data conversion means 11, the transferred data amount is counted and used as the skipping size. Is possible.
  • step S9 If the information related to the transferred data is stored in step S8, it is confirmed in step S9 whether the data transfer end notification receiving means 16 has received the data transfer end notification (response frame) from the SAS 4. If there is no data transfer end notification from the SAS 4, the process returns to step S 4 and the steps after receiving the transfer data from the SAS 4 are repeated. On the other hand, if there is a data transfer end notification from the SAS 4, the process proceeds to step S 10, and the response frame that is the data transfer end notification from the SAS 4 is converted into CSW by the data conversion unit 11. Subsequently, in step S11, the data transfer end notification transmitting unit 17 transmits CSW, which is a data transfer end notification, to the USB 2, and the processing ends.
  • CSW which is a data transfer end notification
  • step S7 if it is determined in step S7 that a data transfer error has occurred by the error occurrence determination means 19, the process proceeds to step S12, where a data retransfer request is permitted.
  • step S13 the data receiving unit 14 returns data retransmission permission in response to the data retransmission permission request transmitted by the tape device 3 in accordance with the data retransmission permission.
  • step S14 the transferred data discriminating and discarding means 20 determines whether or not the retransmitted data is data that has already been transferred to the USB 2, and if it is transferred data. Advances to step S15 and discards (rejects) the retransmission data.
  • the transferred data discriminating and discarding unit 20 calculates the cumulative number of bytes by adding the number of bytes of retransmission data sequentially transmitted from the SAS 4 after the start of data retransmission, and this retransmission. If the cumulative number of bytes of data is less than or equal to the data size (number of bytes) of the transfer completed data stored in the transfer data information storage means 18, the data retransmitted up to that point is the transfer completed data And retransmitted data is discarded. On the other hand, if the cumulative number of bytes of retransmitted data is larger than the data size of the data that has been transferred, it is determined that the data has not yet been transferred to the USB 2.
  • step S14 it is determined that the data has been transferred. If the data is discarded in step S15, the process returns to step S13, and the processing by the transferred data discriminating and discarding unit 20 is continued. On the other hand, if it is determined in step S14 that the retransmitted data has reached data that is not transfer completed data, the process returns to step S5 and normal data transfer processing is resumed.
  • the process in the transferred data discrimination and discarding unit 20 may be a process that can appropriately prohibit transfer completed data from being retransferred to the USB 2 and is transfer completed data for this purpose.
  • any method can be adopted as long as duplication of transferred data can be prohibited.
  • the interface conversion device 10 and the interface conversion method of this embodiment when data is retransferred due to the occurrence of a data transfer error, it should have been initially transmitted from the SAS 4. While all the data is retransmitted, the same data as the data that has already been transferred to the USB 2 is discarded, and only the data that has not been transferred is transferred to the USB 2. Therefore, the USB 2 appropriately re-receives only the data scheduled to be received in the re-transfer (data that has not been transferred yet among all the data that should have been initially transmitted). Therefore, even in the data retransfer at the time of the error occurrence, there is no data inconsistency between the data to be transmitted from the tape device 3 and the data actually transmitted to the host computer 1, and appropriate Data retransfer can be performed.
  • the determination as to whether or not the data retransmitted from the SAS 4 is data that has already been transferred to the USB 2 is made based on the data size of the data that has been transferred to the USB 2. Therefore, it is only necessary to hold the minimum necessary information, and accurate judgment can be easily made only by comparing the size relationship of the data sizes.
  • the interface conversion apparatus 10 performs interface conversion between USB and SAS.
  • the scope of application of the present invention is not limited to interface conversion between USB and SAS. Can also be applied to interface conversion between various types of interfaces other than USB and SAS.
  • the interface conversion apparatus 10 includes a central processing control device 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, and an input.
  • An output interface 109 is connected via the bus 110.
  • An input device 104, a display device 105, a communication control device 106, a storage device 107, and a removable disk 108 are connected to the input / output interface 109.
  • the central processing control device 101 reads out and executes a boot program for starting the interface conversion device 10 and the like from the ROM 102 based on an input signal from the input device 104, and further reads an operating system stored in the storage device 107. Further, the central processing control device 101 controls various devices based on input signals from the input device 104, the communication control device 106, etc., reads out programs and data stored in the RAM 103, the storage device 107, etc., and loads them into the RAM 103. In addition, the processing device realizes the above-described series of processing such as data calculation or processing based on a program command read from the RAM 103.
  • the input device 104 includes an input device such as a keyboard and a mouse through which an operator (user, operator, etc.) inputs various operations.
  • the input device 104 generates an input signal based on the operation performed by the operator, and inputs and outputs
  • the data is transmitted to the central processing control apparatus 101 via the interface 109 and the bus 110.
  • the display device 105 is a CRT (Cathode Ray Tube) display, a liquid crystal display, or the like, and receives an output signal to be displayed on the display device 105 from the central processing control device 101 via the bus 110 and the input / output interface 109. It is a device that displays the processing result of the control device 101 and the like.
  • the communication control device 106 is a device such as a LAN card or a modem, and is a device that connects the interface conversion device 10 or the like to a communication network such as the Internet or a LAN. Data transmitted / received to / from the communication network via the communication control device 106 is transmitted / received to / from the central processing control device 101 via the input / output interface 109 and the bus 110 as input signals or output signals.
  • the storage device 107 is a semiconductor storage device, a magnetic disk device, or the like, and stores programs and data executed by the central processing control device 101.
  • the removable disk 108 is an optical disk or a flexible disk, and signals read / written by the disk drive are transmitted / received to / from the central processing control apparatus 101 via the input / output interface 109 and the bus 110.
  • the storage device 107 according to the first embodiment of the present invention corresponds to the transfer data information storage unit 18.
  • the transfer data information storage means 18 of the interface conversion device 10 corresponds to the storage device 107, and together with data temporarily stored during data transfer from the SAS 4 to the USB 2, Information such as a data size stored every time transfer of the divided data is completed is stored. Also, data conversion means 11, data transfer request receiving means 12, data transfer request transmitting means 13, data receiving means 14, data transfer means 15, data transfer end notice receiving means 16, data transfer end notice sending means 17, error occurrence determination The means 19, the transferred data discriminating and discarding means 20, the data transfer resuming means 21, and the like constitute a central processing control device 101 as a part of a central processing unit (CPU) that controls the entire interface conversion device 10.
  • CPU central processing unit
  • a program related to data retransmission processing at the time of a data transfer error is read and executed by the central processing control device 101 of the interface conversion device 10, and is implemented in the transferred data discrimination and discarding means 20, the data transfer restarting means 21, and the like. Is done.
  • the interface conversion device 30 includes a data conversion unit 33 that converts data that conforms to the communication method of the first interface 4 into a data format that conforms to the communication method of the second interface 2, and A first data transmission / reception unit 31 for transmitting data received from one interface 4 to the data conversion unit 33, a data storage unit 34 for storing data converted by the data conversion unit 33, and a data storage unit 34 A second data transmission / reception unit 32 for transmitting data to the second interface 2 is provided.
  • the first device 3 is a tape device 3 which is one of the storage devices
  • the first interface 4 is a SAS 4 which is a Serial Attached SCSI
  • the second device 1 is a personal on which a predetermined OS (Operating System) is installed.
  • OS Operating System
  • the command transmitted by the second interface 2 is a CBW described later
  • the command received by the first interface 4 is a command frame described later.
  • the response transmitted by the first interface 4 is a response frame described later
  • the response received by the second interface 2 is, for example, a CSW described later.
  • a device, an interface, etc. are not limited to these.
  • the first device 3 is provided with a first interface 4 as a communication interface.
  • the data processed by the second device (host computer) 1 is divided into a plurality of data in the form of blocks on the magnetic tape that is a storage medium of the first device (tape device) 3 and recorded.
  • data divided in block units is referred to as a data block.
  • the file handled in the second device 1 is divided into a plurality of data blocks according to its size.
  • the second interface 2 is transferred based on a series of commands from the time when the CBW is transmitted until the CSW is received or the time when the first interface 4 receives the command frame to the time when the response frame is transmitted.
  • Data is one block.
  • the block is divided and transferred in units of frames in a path through which data of the first interface 4 is transmitted (transferred).
  • SAS Serial SCSI Protocol
  • the above-mentioned frame defines a plurality of frame types.
  • the frame type includes a data frame in which data is set in a predetermined field, a command frame in which a command is set in a predetermined field, a response frame in which a response is set in a predetermined field, and the like.
  • a data frame, a command frame (also referred to as a data transfer request), and a response frame (also referred to as a data transfer end notification) are transmitted and received between the first device 3 and the interface conversion device 30.
  • the first interface receives a command frame in response to the read command of the second device 1.
  • the first interface 4 transmits the data frame.
  • the first interface transmits a response frame as a response that is a result (response) of the transmission of the data frame.
  • the data frame, command frame, and response frame are data in a data format that conforms to the communication method of the first interface 4.
  • the second device 1 is provided with a second interface 2 as a communication interface.
  • Bulk only transfer is adopted as a communication protocol (data transfer protocol) between the second device 1 and the interface conversion device 30, in other words, the second interface (USB) 2.
  • the second interface USB
  • the command is transmitted in the CBW format by the second interface 2 (this command is simply sent as a CBW or a data transfer request). Called).
  • the CBW has a plurality of information and the like, for example, information for linking with the CSW corresponding to the CBW, information related to the planned data length of the data transport, information for determining whether bulk-in transfer or bulk-out transfer, etc. .
  • the first interface 4 divides one block of the plurality of block data stored in the first device 3 into data frames, and then transmits them.
  • a response including information relating to the status of the command is transmitted in the CSW format (this response is simply referred to as CSW or data transfer end notification).
  • the CBW, CSW, and data packet are data in a data format that conforms to the communication method of the second interface 2.
  • the first data transmission / reception unit 31 is connected to the first interface 4, the data conversion unit 33, and the data storage unit 34.
  • the first data transmitting / receiving unit 31 includes a data transfer request transmitting unit 13, a data receiving unit 14, and a data transfer end notification receiving unit 16.
  • the first data transmitting / receiving unit 31 receives data (data frame, response frame) transmitted from the first interface 4 and transmits it to the data converting unit 33. Also, the data (command frame) received from the data converter 33 is transmitted to the first interface 4.
  • the data transfer request transmission unit 13 receives the command frame converted by the data conversion unit 33 and transmits it to the first interface 4.
  • the data receiving unit 14 receives the data frame transmitted (transferred) from the first interface 4 and transmits it to the data converter 33.
  • the data transfer end notification receiving unit 16 receives the response frame transmitted (transferred) from the first interface 4 and transmits it to the data conversion unit 33.
  • the data conversion unit 33 is connected to the first data transmission / reception unit 31, the second data transmission / reception unit 32, and the data storage unit 34, and functions as the data conversion unit 11 of the first embodiment. Including. That is, the data conforming to the communication method of the first interface 4 is converted into a data format conforming to the communication method of the second interface 2 (hereinafter also referred to as first conversion processing). Further, the data conforming to the communication method of the second interface 2 is converted into a data format conforming to the communication method of the first interface 4 (hereinafter also referred to as second conversion processing).
  • the data converter 33 receives the data frame transmitted from the first data transmitter / receiver 31 and converts it into a data packet as the first conversion process. Further, the response frame transmitted from the first data transmitting / receiving unit 31 is received and converted into CSW. As the second conversion process, the CBW transmitted from the second data transmitting / receiving unit 32 is received and converted into a command frame. The data conversion unit 33 transmits the converted data to the data storage unit 34.
  • Data storage unit 34 As shown in FIG. 6, the data storage unit 34 is connected to the first data transmission / reception unit 31, the second data transmission / reception unit 32, and the data conversion unit 33.
  • the data storage unit 34 receives and stores the data or response converted by the data conversion unit 33.
  • the data converter 33 stores the data packet in which the data frame is converted and the CSW in which the response frame is converted.
  • the data storage unit 34 has a capacity capable of storing one block of data blocks. That is, a data block transferred by one command can be stored (stored). Since the size of the data block is defined as 1 to 16777215 bytes, it is sufficient to secure a capacity of 16777215 bytes or more as a storage area of the data storage unit 34.
  • the data storage unit 34 performs data overwriting processing. That is, based on one command (CBW) transmitted by the second interface 2, a data frame for one block (referred to as the first block for convenience) of the plurality of data blocks is transmitted by the first interface 4 ( And the second interface 2 receives the CSW, and after the processing for one command is completed, one block (adjacent to the first block) based on the next one command (CBW) For convenience, the data storage unit 34 sequentially overwrites and stores the data packets related to the first block over the data packets related to the second block. . The data storage unit 34 transmits the stored data to the second data transmission / reception unit 32.
  • the second data transmission / reception unit 32 is connected to the second interface 2, the data conversion unit 33, and the data storage unit 34. Further, a data transfer request receiving unit 12, a data transfer unit 15, and a data transfer end notification transmitting unit 17 are provided.
  • the second data transmitting / receiving unit 32 receives the data (CBW) transmitted from the second interface 2 and transmits the data (CBW) to the data conversion unit 33 and the data (data packet, CSW) transmitted from the data storage unit 34. Is transmitted to the second interface 2.
  • the data transfer request receiving unit 12 receives the CBW transmitted (transferred) from the second interface 2 and transmits it to the data conversion unit 33.
  • the data transfer means 15 receives the data packet converted by the data conversion unit 33 and stored in the data storage unit 34 and transmits it to the second interface 2.
  • the data transfer end notification transmission means 17 receives and transmits the CSW converted by the data conversion unit 33 and stored in the data storage unit 34 to the second interface 2.
  • the timing at which the data transfer end notification transmission means 17 transmits the CSW to the second interface 2 is after the second interface 2 has received all the data packets to be transmitted in response to the command.
  • the CSW is transmitted to the second interface 2 during data packet transmission due to the difference in transfer rate that the transfer rate of the first interface (SAS) 4 is faster than the transfer rate of the second interface (USB) 2. It is possible to prevent the problem of being done.
  • the second data transmission / reception unit 32 receives a plurality of data packets stored in the data storage unit 34 and sequentially transmits them to the second interface 2 according to the FIFO.
  • the second data transmitting / receiving unit 32 transmits the data packet without depending on the size of the transmission interval of the data packet. In other words, even if the data transmission interval is increased, the second data transmitting / receiving unit 32 waits for transmission of the data packet and resumes transmission at a predetermined timing.
  • the data transfer rate of the first interface (SAS) 4 is higher than the transfer rate of the second interface (USB) 2.
  • the processing (reception) of the second interface 2 is not in time, and the transmission interval is longer than a predetermined time (for example, 1 ms) (hereinafter simply referred to as the difference in data transfer speed). 2), the second data transmitter / receiver 32 waits for data transmission and as soon as the processing of the second interface 2 is completed (at a predetermined timing). The data packets are sequentially transmitted from the unsent data packets. As a result, even if data packet transfer waiting due to a difference in data transfer speed occurs, the data packet is not transmitted before and after, and the data can be transmitted reliably. 30 reliability can be improved.
  • the first device 3 is the tape device 3
  • the first interface 4 is the SAS 4
  • the second device 1 is the host computer 1
  • the second interface 2 is the USB 2
  • the first and second data transmission / reception are PCI buses 31 and 32 which are PCI (Peripheral Component Interconnect) buses
  • the data conversion unit 33 is a CPU 33 which is a CPU (Central Processing Unit) having a processing function related to data conversion
  • the data storage unit 34 is a RAM.
  • the description will be made as the RAM 34 which is (Random Access Memory).
  • copy processing As an opportunity for data transfer from the tape device 3 to the host computer 1, for example, an operator copies data recorded on the magnetic tape to the hard disk (hereinafter simply referred to as copy processing) to the host computer 1. ). It should be noted that the description of processing not related to the operation and control of the interface conversion device 30 is omitted.
  • the host computer 1 transmits a read command, which is a data read command, to the tape device 3.
  • a read command which is a data read command
  • the USB 2 transmits (transfers) the CBW to the interface conversion device 30
  • the PCI bus 32 transmits the received CBW to the CPU 33
  • the CPU 33 transmits the received CBW to the command frame.
  • the PCI bus 31 transmits the converted command frame to the SAS 4 at a predetermined timing.
  • the tape device 3 transmits data (block data) based on the command frame to the host computer 1.
  • the SAS 4 transmits (transfers) the data frame obtained by dividing the block data to the PCI bus 31, and the PCI bus 31 transmits the received data frame to the CPU 33.
  • the CPU 33 converts the received data frame into a data packet and transmits it to the RAM 34.
  • the RAM 34 stores the received data packet in a storage area. With this flow, all data frames for one block can be converted into data packets based on the read command and stored in the RAM 34.
  • the SAS 4 transmits (transfers) a response frame to the PCI bus 31 as shown in FIG.
  • the response frame is transmitted to the CPU 33, the CPU 33 converts the received response frame into CSW and transmits it to the RAM 34, and the RAM 34 stores the received CSW.
  • the PCI bus 32 becomes appropriate as will be described later.
  • the CSW can be transmitted to the USB 2 at a proper timing.
  • the above (b) to (d) can be said to be processing on the SAS 4 side.
  • the processing can be almost completed between the tape device 3 and the interface conversion device 30, it is possible to keep transmitting all the blocks divided into the data frames without being affected by the USB 2 communication. It becomes possible. Therefore, the data transfer waiting (timeout) due to the difference in data transfer speed between the USB 2 and the SAS 4 can be eliminated, and the error occurrence rate can be reduced.
  • the PCI bus 32 receives the data packet stored in the RAM 34 and transmits it to the USB 2.
  • a data packet cannot be received by the USB 2 and a predetermined time (for example, 1 ms) or more may elapse. At that time, the PCI bus 32 waits for transmission of a data packet.
  • a predetermined time for example, 1 ms
  • the PCI bus 32 receives the last data packet and transmits it to the USB 2 to transmit all data for one block. As shown in (i) in the figure, the PCI bus 32 transmits the last data packet of (h) to the USB 2 and then transmits the CSW stored in the RAM 34 to the USB 2.
  • the above (e) to (i) can be said to be processing on the USB 2 side. Note that (a) straddles the processing on the SAS 4 side and the USB 2 side.
  • steps S23 to S28 processing steps on the SAS (first interface) 4 side
  • steps S29 to S33 processing steps on the USB (second interface) 2 side
  • steps S22 Is executed as parallel processing.
  • the operator instructs the host computer (second device) 1 to perform copy processing, as described above. It should be noted that the description of processing not related to the operation and control of the interface conversion device 30 is omitted.
  • the host computer 1 transmits a read command according to an instruction from the operator.
  • the PCI bus (second data transmission / reception unit) 32 receives the CBW which is the data transfer request transmitted from the USB 2 (step S20).
  • the CPU (data conversion unit) 33 converts the CBW received from the PCI bus 32 into a command frame that is also a data transfer request (second conversion process) (step S21).
  • the PCI bus (first data transmitting / receiving unit) 31 transmits the command frame subjected to the second conversion process to the SAS 4 (step S22).
  • the PCI bus 31 receives a data frame (one block of block data) divided and transmitted by the SAS 4 (step S23). Then, the CPU 33 converts the data frame into a data packet (first conversion process) (step S24).
  • a RAM (data storage unit) 34 sequentially stores the data packets subjected to the first conversion process in a storage area.
  • Step S25 when the CPU 33 receives a response frame, which is a data transfer end notification transmitted from the SAS 4, via the PCI bus 31 (YES in step S26), the CPU 33 converts the response frame to CSW, which is also a data transfer end notification (first). Conversion process) (step S27).
  • step S28 the RAM 34 stores the first converted CSW in the storage area.
  • step S26 if the CPU 33 has not received a response frame that is a data transfer end notification transmitted from the SAS 4 (NO in step S26), the process returns to step S23.
  • step S29 As a processing method on the USB 2 side following the process of step S22, first, when the RAM 34 stores a data packet (YES in step S29), the PCI bus 32 receives the data packet stored in the RAM 34. Then, it transmits to USB2 (step S30). On the other hand, if the RAM 34 does not store the data packet in step S29 (NO in step S29), the condition determination is repeatedly performed.
  • step S31 If all data packets (for one block) are transmitted to the USB 4 via the PCI bus 32 (YES in step S31), and if CSW is stored in the RAM 34 (YES in step S32), the PCI bus 32 is stored. CSW is transmitted to USB 2 (step S33). On the other hand, if all data packets (for one block) are not transmitted to the USB 4 via the PCI bus 32 in step S31 (NO in step S31), the process returns to step S30. In step S32, if CSW is not stored in the RAM 34 (NO in step S32), the condition determination is repeatedly performed.
  • the interface conversion device 30A includes a data transmission / reception device 40 as a component that transmits and receives data.
  • the data transmission / reception device 40 includes a command transmission / reception unit 41 that transmits / receives commands such as CBW and command frames, a data transmission / reception unit 42 that transmits / receives data, and a response transmission / reception unit 43 that transmits / receives responses such as CSW and response commands.
  • the command transmission / reception unit 41 includes functions similar to the data transfer request reception unit 12 and the data transfer request transmission unit 13, and the data transmission / reception unit 42 includes functions similar to the data reception unit 14 and the data transfer unit 15.
  • the response transmitting / receiving unit 43 includes the same functions as the data transfer end notification receiving unit 16 and the data transfer end notification transmitting unit 17.
  • the command transmission / reception unit 41 receives the CBW transmitted by the second interface 2 based on the read command of the second device 1 and transmits it to the data conversion unit. Further, the command frame converted by the data conversion unit 33 is received and transmitted to the first interface 4.
  • the data transmitter / receiver 42 receives a data frame transmitted from the first interface based on the command frame and transmits it to the data converter 33.
  • the data packet stored in the data storage unit 34 is received and transmitted to the second interface 2.
  • the response transmission / reception unit 43 receives a response frame transmitted after the first interface transmits all data frames, and transmits the response frame to the data conversion unit 33.
  • the CSW stored in the data storage unit 34 is received and transmitted to the first interface 2.
  • the interface conversion apparatus 30 ⁇ / b> B includes a data deletion unit 39 connected to the data storage unit 34.
  • the data deletion unit 39 becomes unnecessary stored in the storage area of the data storage unit 34 based on the fact that the CSW is transmitted to the USB 2 instead of the overwriting process of the data storage unit 34 of the second embodiment.
  • Delete the data That is, based on one command (CBW) transmitted by the second interface 2, a data frame for one block (for convenience, the third block) of the data block is transmitted (transferred) by the first interface 4. Then, after the second interface 2 receives the CSW and the processing for one command is completed, the data deletion unit 39 deletes the data related to the third block.
  • CBW command
  • a CPU (data conversion unit) 33 is provided on the USB 2 side, and a RAM (data storage unit) 34 is provided on the SAS 4 side.
  • the SAS 4 transmits (transfers) the data frame obtained by dividing the data block to the PCI bus 31, and the PCI bus 31 transmits the received data frame to the RAM 34.
  • the RAM 34 stores the received data frame in a storage area. In this manner, all data frames for one block can be stored based on the read command.
  • the SAS 4 transmits (transfers) a response frame to the PCI bus 31 as shown in (d ′) in the figure, and the PCI bus 31 receives the received response.
  • the frame is transmitted to the RAM 34, and the RAM 34 stores the received response frame in the storage area.
  • the CPU 33 sequentially receives the stored data frames and converts them into data packets in the order in which the data frames are stored in the RAM 34, and the PCI bus 32 receives the converted data packets. Are sequentially transmitted to the USB 2 in the order converted by the CPU 33.
  • the USB 2 may not be able to receive the data packet, and a predetermined time (for example, 1 ms) may elapse. At that time, the PCI bus 32 temporarily waits for transmission of the data packet.
  • a predetermined time for example, 1 ms
  • the CPU 33 sequentially starts the conversion to the data packet from the middle of the data, in other words, from the unconverted data packet.
  • the bus 32 receives the converted data packet and transmits it to the USB 2.
  • the CPU 33 converts the last data frame, and the PCI bus 32 receives the converted last data packet and transmits it to the USB 2 to transmit all the data for one block. Data is sent. As shown in (i ′) in the figure, after transmitting the last data packet of (h ′) to USB2, the CPU 33 converts the response frame stored in the RAM 34 into CSW, and the PCI bus 32 converts The received CSW is received and transmitted to the USB 2.
  • the CPU 33 sequentially converts the data frames stored in the data storage unit 34 into data packets according to the FIFO.
  • the PCI bus 32 sequentially transmits data packets to the USB 2 in the data conversion order of the CPU 33.
  • the PCI bus 32 transmits data packets regardless of the transmission interval of the data packets. As a result, even if a data transfer wait occurs due to a difference in data transfer speed, the PCI bus 32 waits for transmission of a data packet, and as soon as the USB2 processing is completed, the PCI bus 32 is connected to the CPU 33.
  • the data packets are sequentially transmitted to the USB 2 in the conversion order. Note that (a) in the figure is the same as (a) in FIG.
  • the USB 2 transmits (transfers) the CBW to the PCI bus 32
  • the PCI bus 32 transmits the received CBW to the RAM 34
  • the CPU 33 stores and converts the CBW into a command frame.
  • the PCI bus 31 transmits the converted command frame to the SAS 4. Note that (b) to (i) in the figure are the same as (b) to (i) in FIG.
  • Modification 5 of the second embodiment As shown in FIG. 13, the above modification 3 and modification 4 can be combined. That is, the CPU (data conversion unit) 33 is provided on the USB 2 side, the RAM (data storage unit) 34 is provided on the SAS 4 side, and the storage target of the data storage unit (RAM) 34 is set as a command (data transfer request) CBW. Shall be included.
  • the USB 2 transmits (transfers) the CBW to the PCI bus 32
  • the PCI bus 32 transmits the received CBW to the CPU 33
  • the CPU 33 converts the CBW into a command frame
  • the RAM 34 Stores the converted command frame
  • the PCI bus 31 transmits the stored command frame to the SAS 4.
  • (b ′) to (i ′) are the same as (b ′) to (i ′) in FIG.
  • FIG. 14 shows a schematic configuration of an information processing system 1010 according to the third embodiment.
  • the information processing system 1010 includes an information processing device 10100, a tape device 10205, and the like.
  • the tape device 10205 includes a magnetic tape as a recording medium, an RW device for reading / writing data from / to the magnetic tape, a control device that controls the RW device in response to an instruction from the information processing device 10100, and the like. It is configured.
  • the magnetic tape is in the form of a cartridge and can be replaced.
  • Data is recorded in a plurality of blocks with different block sizes on the magnetic tape.
  • the tape device 10205 corresponds to the USB standard.
  • the information processing apparatus 10100 includes a CPU 10110, a RAM 10120, a ROM 10130, a display device 10140, an input device 10150, an HDD device 10160, an optical disk device 10170, a USB port Pu, and the like.
  • Display device 10140 includes a liquid crystal display as a display, and displays various information instructed by CPU 10110.
  • the input device 10150 includes a keyboard as an input medium, and notifies the CPU 10110 of various information input by the operator.
  • the HDD device 10160 includes a hard disk that is a recording medium, an RW device for reading and writing data from and to the hard disk, a control device that controls the RW device in accordance with instructions from the CPU 10110, and the like.
  • the hard disk stores a plurality of programs including the OS and various data used by the plurality of programs.
  • the optical disk device 10170 includes an RW device for reading and writing data from and on an optical disk that is a recording medium, a control device that controls the RW device in accordance with instructions from the CPU 10110, and the like.
  • the CPU 10110 can execute programs stored in the ROM 10130 and the RAM 10120.
  • the ROM 10130 stores a program that is executed by the CPU 10110 when the power is turned on, that is, a so-called boot program. When this boot program is executed, the OS recorded on the hard disk is transferred to the RAM 10120.
  • CPU10110 starts OS transferred to RAM10120, when execution of a boot program is completed.
  • the tape device 10205 is connected to the USB port Pu.
  • a personal computer is used as the information processing apparatus 10100.
  • OS Operating System
  • Windows registered trademark of Microsoft Corporation is used.
  • the OS includes a storage class driver 10301, a storage port driver 10303, a USB mass storage class driver 10305, a SCSI miniport driver 10307, a SAS miniport driver 10309, and a USB port driver 10311.
  • the storage class driver 10301 corresponding to the SCSI device is “storage class driver 10301a”
  • the storage class driver 10301 corresponding to the SAS device is “storage class driver 10301b”.
  • the storage class driver 10301 corresponding to the USB device is also referred to as “storage class driver 10301c”.
  • the storage class driver 10301 is a driver in which a function common to each storage is mounted, and provides a function corresponding to the type of storage.
  • a function common to each storage is mounted, and provides a function corresponding to the type of storage.
  • the storage is a tape
  • it is also called a tape driver, and has a specific function for controlling the tape device such as tape rewinding and tape ejection.
  • the storage is a disk
  • the storage port driver 10303 is a driver in which a function common to the SCSI protocol is mounted, and provides an interface to each port driver.
  • the USB mass storage class driver 10305 is a driver for controlling a USB device as a storage device, and enables the storage class driver 10301 to operate on the USB mass storage class driver 10305. If there is no USB mass storage class driver 10305, a dedicated driver corresponding to each USB connection device is required.
  • the SCSI miniport driver 10307 controls the SCSI port.
  • the SAS miniport driver 10309 controls the SAS port.
  • the USB port driver 10311 controls the USB port.
  • the information processing apparatus 10100 includes a virtual SCSI miniport driver 10401 that operates on the OS.
  • the virtual SCSI miniport driver 10401 creates a virtual SCSI port Ps on the OS.
  • the storage class driver 10301 corresponding to the device virtually connected to the virtual SCSI port Ps is also referred to as “storage class driver 10301d”.
  • the virtual SCSI miniport driver 10401 is recorded on the hard disk and transferred to the RAM 10120 together with the OS. Then, the virtual SCSI miniport driver 10401 is activated following the OS.
  • the virtual SCSI miniport driver 10401 is located between the storage port driver 10303 and the storage class driver 10301c, as shown in FIG.
  • the virtual SCSI miniport driver 10401 monitors the attachment / detachment of the USB device at the USB port Pu, and when the attachment / detachment is performed, notifies the storage port driver 10303 of the attachment / detachment information of the USB device at the virtual SCSI port Ps.
  • the operations of the virtual SCSI miniport driver 10401 and the storage port driver 10303 at this time will be briefly described.
  • the virtual SCSI miniport driver 10401 When the virtual SCSI miniport driver 10401 is activated, it creates a worker thread that monitors the attachment / detachment of the USB device at the USB port Pu.
  • This worker thread monitors a change in the attachment / detachment state of the device at the USB port Pu based on information from the storage class driver 10301c.
  • the virtual SCSI miniport driver 10401 notifies the storage port driver 10303 that the attach / detach state of the device has changed.
  • the storage port driver instructs the virtual SCSI miniport driver 10401 to check the device attachment / detachment state.
  • the virtual SCSI miniport driver 10401 checks the device attachment / detachment status on the USB port Pu based on the information from the storage class driver 10301c, and notifies the storage port driver 10303 of the result.
  • the storage port driver 10303 can recognize the attachment / detachment state of the device in the virtual SCSI port Ps (actually, the USB port Pu).
  • the storage port driver 10303 registers the device in the registry as a SCSI device.
  • the USB mass storage class driver 10305 registers the device in the registry as a USB device. That is, the device is registered in the registry as a SCSI device and a USB device.
  • the virtual SCSI miniport driver 10401 changes the format of all commands that pass through the virtual SCSI miniport driver 10401 to the USB port driver 10311 via the storage class driver 10301c and the USB mass storage class driver 10305. It has a pass-through function to transfer without any problems.
  • an ID is required for each device.
  • the worker thread monitors a change in connection state to check 0 to 15 IDs and assigns a free ID to the virtual SCSI port.
  • tape RW software
  • the operator creates a tape RW software (hereinafter referred to as “tape RW”), which is application software created for a tape device compliant with the SCSI standard, and for reading / writing data from / to the tape device via the input device 10150.
  • Software 10500 ").
  • the tape RW software 10500 is recorded on the hard disk, and is transferred to the RAM 10120 by the OS and activated when an activation request is received from the operator.
  • the tape RW software supports the record format of the data stored on the magnetic tape as fixed length and variable length.
  • the operator can select a fixed length or a variable length according to the record format of the magnetic tape.
  • the record format of data stored on the magnetic tape is a variable length format will be described.
  • FIG. 19 shows the relationship between the tape RW software 10500 and each driver.
  • the tape RW software 10500 When the tape RW software 10500 is activated, it searches the registry and sets a device registered as a SCSI device as a device to be controlled.
  • the tape device 10205 is a device to be controlled. That is, the tape RW software 10500 recognizes that the tape device 10205 is connected to the virtual SCSI port Ps.
  • tape RW software 10500 may inquire the storage port driver 10303 about a device to be controlled via the storage class driver 10301d.
  • the tape RW software 10500 displays an initial menu screen on the display device 10140.
  • the operator designates the size of the block to be copied via the input device 10150 and instructs the tape RW software 10500 to copy to the hard disk (hereinafter simply referred to as “copy processing” for convenience). Accordingly, the tape RW software 10500 issues a read (READ) command to the tape device 10205.
  • READ read
  • the operator designates a larger block size.
  • the format of the read command issued from the tape RW software 10500 is shown in FIG.
  • the block size specified by the operator is set in “Transfer Length” in bytes.
  • the command is sent to the storage class driver 10301a, the storage class driver 10301b, and the storage class driver 10301d.
  • Each storage class driver that has received the command adds parameter information necessary for execution of the command on the SCSI device to the command, and converts it to a so-called SRB (SCSI REQUEST BLOCK) format (see FIG. 22), thereby creating a storage port driver. 10303.
  • SRB SCSI REQUEST BLOCK
  • the SRB format will be briefly described.
  • the item name “Function” is set with information regarding the requested operation. For example, if the requested command is a SCSI command, “SRB_FUNCTION_EXECUTE_SCSI (0x00)” is set.
  • the item name “ScsiStatus” is set with information related to the result of the SCSI command. For example, if it ends normally, “SCSISTAT_GOOD (0x00)” is set, and if it is so-called “CHECK CONDITION”, “SCSISTAT_CHECK_CONDITION (0x02)” Is set.
  • Item name “Cdb” is “Command Descriptor Block”, and information related to commands issued to the device is set.
  • Storage port driver 10303 sends the SRB to each port driver.
  • the SRB received by the virtual SCSI miniport driver 10401 is transferred to the USB mass storage class driver 10305 via the storage class driver 10301c.
  • the USB mass storage class driver 10305 adds parameter information necessary for execution of the command in the USB device to the command included in the received SRB, and converts it to the USB port driver 10311 in a so-called URB (USB REQUEST BLOCK) format. Send it out.
  • URB USB REQUEST BLOCK
  • the operation of the virtual SCSI miniport driver 10401 when a command issued by the tape RW software 10500 is received will be described using the flowchart of FIG.
  • the flowchart in FIG. 23 corresponds to a series of processing algorithms executed by the virtual SCSI miniport driver 10401 at this time. This processing algorithm is executed by the CPU 10110.
  • step S10401 it is determined whether or not the received command is a read command.
  • the determination here is affirmed, and the process proceeds to step S10403.
  • step S10403 "0" is set to the SILI change flag in which the information indicating whether or not the setting content of SILI (suppress correct length indicator) (see Fig. 20) included in the read command has been changed is set and initialized. To do.
  • step S10405 it is determined whether or not the setting content of SILI included in the read command is “1”, that is, “valid”. If the setting content of SILI is “valid”, the determination here is affirmed, and the process proceeds to step S10407.
  • step S10407 the setting content of SILI is changed to “0”, that is, “invalid”.
  • the SILI change flag is set to “1” which means that the SILI setting content has been changed.
  • the SRB including the command is transferred to the storage class driver 10301c, and the process when the command issued by the tape RW software 10500 is received is terminated.
  • step S10405 if the setting content of SILI is not “valid”, the determination in step S10405 is denied, and the process proceeds to step S10411.
  • step S10401 if the received command is not a read command, the determination in step S10401 is denied, and the process proceeds to step S10411.
  • the SRB sent from the virtual SCSI miniport driver 10401 is transferred to the USB mass storage class driver 10305 via the storage class driver 10301c, converted into URB by the USB mass storage class driver 10305, and then the USB port driver 10311, USB port Pu. To the tape device 10205.
  • the tape device 10205 Upon receiving the URB, the tape device 10205 executes a command (here, a read command) included in the URB.
  • a command here, a read command
  • the tape device 10205 since the setting content of SILI is set to “invalid”, the tape device 10205 indicates that the specified block size and the block size actually recorded on the magnetic tape do not coincide with “Status Code”. Status information (see FIG. 24) in which “0x02”, which means “CHECK CONDITION”, is output to the information processing apparatus 10100. On the other hand, when the specified block size matches the block size actually recorded on the magnetic tape, the tape device 10205 sets “0x00” meaning “GOOD” to “Status Code”. The status information is output to the information processing apparatus 10100.
  • the tape device 10205 outputs data information including block data and a transfer size to the information processing device 10100.
  • the USB port driver 10311 Upon receiving the status information, the USB port driver 10311 checks “Status Code”, and if it is “0x02”, that is, “CHECK CONDITION”, sends a request command (REQUEST SENSE) for the sense information (see FIG. 25) to the tape device 10205. To send.
  • USB port driver 10311 transfers the data information to the USB mass storage class driver 10305.
  • This data information is sent to the tape RW software 10500 via the storage class driver 10301c, virtual SCSI miniport driver 10401, storage port driver 10303, and storage class driver 10301d.
  • the tape device 10205 Upon receiving the sense information request command (REQUEST SENSE), the tape device 10205 processes the sense information (see FIG. 26) including data relating to the difference between the designated block size and the actually recorded block size. Output to the device 10100.
  • SILI setting is “invalid” and the specified block size does not match the actual recorded block size
  • “1” is set in “Valid” and “ILI (Illegal Length Indicator)” is set to “1”.
  • “1”, “0” in “SENSE KEY” the difference between the block size specified in “Information” and the actual recorded block size, “0” in “Additional Sense Code”, “Additional Sense Code Qualifiers” “0” is set in each.
  • This sense information is sent to the virtual SCSI miniport driver 10401 via the USB port driver 10311, USB mass storage class driver 10305, and storage class driver 10301c.
  • the operation of the virtual SCSI miniport driver 10401 when receiving sense information will be described with reference to the flowchart of FIG.
  • the flowchart in FIG. 27 corresponds to a series of processing algorithms executed at this time. This processing algorithm is executed by the CPU 10110.
  • step S10501 it is determined whether or not the SILI change flag is “1”. If the SILI change flag is “1”, the determination here is affirmed and the process proceeds to step S10503.
  • step S10503 data relating to the difference between the designated block size and the actually recorded block size is extracted from the sense information.
  • the actually recorded block size is calculated from the data relating to the difference between the designated block size and the actually recorded block size. For example, if the difference between the designated block size and the actually recorded block size is 600 bytes, and the designated block size is 1000 bytes, 400 bytes is set as the actually recorded block size. .
  • the calculated actually recorded block size is set to the transfer size in the data information.
  • 400 bytes are set as the transfer size. Specifically, it is set to “DataTransferLength” in the SRB structure described above.
  • step S10509 the data information is sent to the storage port driver 10303. Then, the process when the sense information is received is terminated.
  • step S10501 if the SILI change flag is not 1, the determination in step S10501 is denied, and the process proceeds to step S10509.
  • the data information sent to the storage port driver 10303 is sent to the tape RW software 10500 via the storage class driver 10301d.
  • the tape RW software 10500 copies the block data read from the tape device 10205 to the hard disk. Thus, the copy process ends.
  • the tape device 10205 sets the specified block size even if the specified block size does not match the actually recorded block size. Data information is transmitted as the transfer size.
  • the tape RW software 10500 is actually used when the designated block size does not match the actually recorded block size. May cause the block size recorded in the error to occur and cause abnormal operation.
  • the actually recorded block size is the transfer size.
  • the tape RW software 10500 can operate normally.
  • FIG. 28 and FIG. 29 illustrate the main exchange between the tape RW software 10500 and the tape device 10205 described above in an easy-to-understand manner.
  • FIG. 28 shows a case where the designated block size and the actually recorded block size do not match
  • FIG. 29 shows that the designated block size and the actually recorded block size match. It is a case.
  • the CPU 10110 implements the information processing method of the present invention. Note that at least a part of the processing according to the program by the CPU 10110 may be configured by hardware, or all may be configured by hardware.
  • control computer of the present invention is configured by the CPU 10110 of the information processing apparatus 10100, and the recording medium of the present invention is configured by the hard disk of the HDD apparatus 10160.
  • the information processing apparatus 10100 includes the CPU 10110, the RAM 10120, the ROM 10130, the display apparatus 10140, the input apparatus 10150, the HDD apparatus 10160, the optical disk apparatus 10170, and the USB port Pu. .
  • the hard disk stores an OS, a virtual SCSI miniport driver 10401, and the like.
  • the CPU 10110 executes the boot program stored in the ROM 10130, transfers the OS and the virtual SCSI miniport driver 10401 to the RAM 10120, and activates the OS and the virtual SCSI miniport driver 10401.
  • the virtual SCSI miniport driver 10401 monitors the attachment / detachment of the device to / from the USB port Pu, and when there is attachment / detachment, makes the tape RW software 10500 recognize that the device has been attached / detached to / from the virtual SCSI port.
  • the virtual SCSI miniport driver 10401 transfers the command issued to the tape device 10205 to the USB port driver 10311 via the storage class driver 10301c and the USB mass storage class driver 10305 without changing the format. Has a pass-through function.
  • the virtual SCSI miniport driver 10401 changes to “invalid” and sends it.
  • the virtual SCSI miniport driver 10401 calculates the actually read block size and sets the calculation result to the transfer size in the data information.
  • This data information is sent to the tape RW software 10500 via the storage port driver 10303 and the storage class driver 10301d.
  • the USB device can be controlled with software corresponding to an interface standard different from the USB standard without causing an increase in cost.
  • the information processing system 1010 includes the information processing apparatus 10100, as a result, it is possible to construct a system according to the purpose without causing an increase in cost.
  • Patent Document 3 regards the USB connection interface as a serial port interface, and includes a virtual serial port driver that can process a signal input from the USB interface based on a serial port protocol.
  • a virtual serial port driver that can process a signal input from the USB interface based on a serial port protocol.
  • magnetic tape device there is no description regarding the magnetic tape device.
  • Patent Document 5 describes creation / deletion of a virtual communication port. However, there is no specific description for interfaces that are not supported by application software.
  • Patent Document 6 describes processing when SILI is set to 1 or is not set to 1. However, there is no specific description corresponding to the storage format of the magnetic tape.
  • tape RW software 10500 corresponding to the SCSI standard is used as the software corresponding to the interface standard different from the USB standard, but the present invention is not limited to this.
  • tape RW software 10503 corresponding to the SAS standard may be used as software corresponding to an interface standard different from the USB standard.
  • a virtual SAS miniport driver 10403 is used instead of the virtual SCSI miniport driver 10401.
  • the storage class driver 10301 corresponding to the device virtually connected to the virtual SAS port is also referred to as “storage class driver 10301e”.
  • the virtual SAS miniport driver 10403 monitors the attachment / detachment of the device to / from the USB port Pu, and if there is attachment / detachment, makes the tape RW software 10503 recognize that the device has been attached / detached to / from the virtual SAS port.
  • the virtual SAS miniport driver 10403 transfers the command issued to the tape device 10205 to the USB port driver 10311 via the storage class driver 10301c and the USB mass storage class driver 10305 without changing the format. Has a pass-through function.
  • the virtual SAS miniport driver 10403 changes it to “invalid” and sends it.
  • the virtual SAS miniport driver 10403 calculates the actually recorded block size and sets the calculation result to the transfer size in the data information.
  • the data information is sent to the tape RW software 10503 via the storage port driver 10303 and the storage class driver 10301e.
  • the case where the worker thread created by the virtual SCSI miniport driver 10401 monitors the attachment / detachment of the USB device to the USB port Pu is not limited to this, but the virtual SCSI miniport driver 10401 is not limited to this.
  • the port driver 10401 itself may monitor the attachment / detachment of the USB device at the USB port Pu.
  • the operator can instruct the tape RW software 10500 to copy the data recorded on the hard disk and the optical disk to the magnetic tape set in the tape device 10205.
  • the display of the display device 10140 is a liquid crystal display
  • the present invention is not limited to this.
  • a liquid crystal display instead of a liquid crystal display, a CRT display, a plasma display, an organic EL display, or the like may be used.
  • the virtual SCSI miniport driver 10401 is recorded on the hard disk of the HDD device 10160 .
  • the present invention is not limited to this.
  • a virtual SCSI miniport driver 10401 may be recorded on the optical disc.
  • the optical disc is set in the optical disc apparatus 10170 and transferred to the RAM 10120 together with the OS.
  • FIG. 33 shows a schematic configuration of an information processing system 2010 according to the fourth embodiment.
  • the information processing system 2010 includes an information processing device 20100, a conversion device 20300, a tape device 20500, and the like.
  • the information processing apparatus 20100 includes a CPU 20110, RAM 20120, ROM 20130, display apparatus 20144, input apparatus 20150, HDD apparatus 20160, optical disk apparatus 20170, USB interface (USB I / F) 20180, and USB. It has a port Pu and the like.
  • the display device 20130 includes a liquid crystal display as a display, and displays various information instructed by the CPU 20110.
  • the input device 20130 includes a keyboard as an input medium, and notifies the CPU 201110 of various information input from the operator.
  • the HDD device 20160 includes a hard disk that is a recording medium, an RW device that reads and writes data from and to the hard disk, and a control device that controls the RW device in accordance with instructions from the CPU 20110.
  • the hard disk stores a plurality of programs including the OS and various data used by the plurality of programs.
  • the optical disk device 20170 is composed of an RW device for reading and writing data from and on an optical disk that is a recording medium, a control device that controls the RW device in accordance with instructions from the CPU 20110, and the like.
  • the CPU 20110 can execute programs stored in the ROM 20130 and the RAM 20120.
  • the ROM 20130 stores a program executed by the CPU 20110 when the power is turned on, a so-called boot program. When this boot program is executed, the OS recorded on the hard disk is transferred to the RAM 20120.
  • the CPU 20110 starts the OS transferred to the RAM 20120.
  • the USB port Pu is a communication port compliant with the USB (Universal Serial Bus) standard.
  • the USB interface 20180 controls input / output of information via the USB port Pu.
  • a personal computer is used as the information processing apparatus 20100.
  • OS Operating System
  • Windows registered trademark manufactured by Microsoft Corporation is used.
  • the tape device 20500 includes a magnetic tape as a recording medium, an RW device for reading and writing data from and on the magnetic tape, and a control device that controls the RW device in accordance with an instruction from the information processing device 20100. It is configured.
  • the magnetic tape is in the form of a cartridge and can be replaced.
  • the tape device 20500 supports variable-length blocks, and data is recorded in a plurality of blocks of different sizes on the magnetic tape.
  • the tape device 20500 corresponds to the SAS (Serial Attached SCSI) standard.
  • the transport layer Transport layer in the communication of information between the tape device 20500 and the conversion device 20300 conforms to the SSP (Serial SCSI Protocol) transport layer (for example, “Serial Attached SCSI (SAS)).
  • SAS Serial Attached SCSI
  • FIG. 35 shows a frame format (SSP frame format) in SSP.
  • SSP frame format SSP frame format
  • the frame when “01h” is set in the “FRAME TYPE” field, the frame is a “data frame”, and data is set in the “INFORMATION UNIT” field (see FIG. 36).
  • the frame When “06h” is set in the “FRAME TYPE” field, the frame is a “command frame”, and a command is set in the “INFORMATION UNIT” field (see FIG. 36).
  • the frame is a “response frame”, and a response is set in the “INFORMATION UNIT” field (see FIG. 36).
  • FIG. 37 shows data (DATA information unit) set in the “INFORMATION UNIT” field of the data frame.
  • FIG. 38 shows a command (COMMAND information unit) set in the “INFORMATION UNIT” field of the command frame.
  • FIG. 39 shows a response (RESPONSE information unit) set in the “INFORMATION UNIT” field of the response frame.
  • “00b” when “00b” is set in the “DATAPRESS” field, it means that there is no data (see FIG. 40). If “01b” is set in the “DATAPRESS” field, it means that there is response data (see FIG. 40). Furthermore, if “10b” is set in the “DATAPRESS” field, it means that there is sense data (see FIG. 40).
  • the conversion apparatus 20300 includes a first communication control unit 20310, a processing unit 20320, a second communication control unit 20330, and the like as illustrated in FIG.
  • the first communication control unit 20310 includes a USB port 20311, a USB interface 20312, and a USB transmission / reception unit 20313.
  • the second communication control unit 20330 includes a SAS port 20331, a SAS interface 20332, and a SAS transmission / reception unit 20333.
  • the USB port 20311 is a communication port compliant with the USB standard, and is connected to the USB port Pu of the information processing apparatus 20100 via a USB cable.
  • the USB interface 20312 controls the USB port 20311.
  • the USB transmission / reception unit 20313 controls bidirectional communication with the information processing apparatus 20100 via the USB port 20311 and the USB interface 20312.
  • the USB transmission / reception unit 20313 notifies the processing unit 20320 when there is reception from the information processing apparatus 20100.
  • the USB transmission / reception unit 20313 outputs the instructed information to the information processing apparatus 20100.
  • the SAS port 20331 is a communication port compliant with the SAS standard, and is connected to the tape device 20500 via a SAS cable.
  • the SAS interface 20332 controls the SAS port 20331.
  • the SAS transmission / reception unit 20333 controls bidirectional communication with the tape device 20500 via the SAS port 20331 and the SAS interface 20332.
  • the SAS transmission / reception unit 20333 notifies the processing unit 20320 when receiving from the tape device 20500. Further, the SAS transmission / reception unit 20333 outputs the instructed information to the tape device 20500 when a transmission request is received from the processing unit 20320.
  • the processing unit 20320 includes a CPU 20321, a ROM 20322, and a RAM 20323.
  • the CPU 20321 executes a program stored in the ROM 20322.
  • the ROM 20322 stores a plurality of programs described by codes readable by the CPU 20321, a plurality of data used for executing each program, and the like.
  • the RAM 20323 is a working memory.
  • the RAM 20323 is provided with a sense data storage area in which sense data (see FIGS. 46 and 47) is temporarily stored.
  • the size of the sense data storage area is 96 bytes.
  • the second communication control unit 20330 can detect the data length of the sense data, and the size of the sense data storage area can be 96 bytes or less.
  • USB Mass Storage Class Bulk-Only Transport for example, “Universal Serial Bus Mass Storage Bulk-Only Transport USB,” Implementers Forum, September 31, 1999.
  • tape RW software An operator creates a tape RW software (hereinafter referred to as “tape RW software”) that is created for a tape device compliant with the USB standard via the input device 20130 and is application software for reading / writing data from / to the tape device. 20600 "). Note that the tape RW software 20600 is recorded on the hard disk, and is transferred to the RAM 20120 by the OS and activated when an activation request is received from the operator.
  • the tape RW software 20600 When the tape RW software 20600 is activated, it displays an initial menu screen on the display device 20140.
  • the operator instructs the tape RW software 20600 to copy the data recorded on the magnetic tape to the hard disk (hereinafter simply referred to as “copy processing” for convenience).
  • copy processing instructs the tape RW software 20600 to copy the data recorded on the magnetic tape to the hard disk (hereinafter simply referred to as “copy processing” for convenience).
  • the read command (see FIG. 42) for the tape device 20500 is output from the information processing device 20100 to the conversion device 20300.
  • the read command is output from the information processing apparatus 20100 in the CBW (Command Block Wrapper) format shown in FIG.
  • CBW Common Block Wrapper
  • DCBWSignature in FIG. 43 is a field for recognizing that the data packet is a CBW.
  • DCBWTTag is a command block tag, and exists to link the CBW and the corresponding CSW (Command Status Wrapper), and is specified by the information processing apparatus 20100.
  • “dCBWDataTransferLength” in FIG. 43 is the planned data length of the data transport, and when this is 0, there is no data transport.
  • “bmCBWFlags” when bit 7 is 0, data transport is performed by bulk-out transfer, and when bit 7 is 1, data transport is performed by bulk-in transfer. Bits 6 to 0 are fixed to 0. Here, since the data is received from the tape device 20500, the bit 7 is 1.
  • “bCBWLUN” in FIG. 43 is the logical unit number (Logical Unit Number) of the device to which the command block is sent.
  • “BCBWCBLlength” represents the number of valid bytes of the next “CBWCCB” field.
  • CBWCB in FIG. 43 is a field in which a command block executed by the tape device 20500 is stored.
  • a command to be executed by the information processing apparatus 20100 is set in this field.
  • the command format is set to use “SCSI Primary Commands”.
  • the USB transmission / reception unit 20313 notifies the CPU 20321 of the processing unit 20320 that the information has been received from the information processing device 20100.
  • the operation of the CPU 20321 at this time will be described with reference to the flowchart of FIG.
  • the CBW from the information processing apparatus 20100 is converted into a command frame.
  • the SAS transmission / reception unit 20333 is instructed to transmit the command frame.
  • the command frame is output to the tape device 20500 via the SAS interface 20332 and the SAS port 20331.
  • the tape device 20500 When the tape device 20500 receives the command frame from the conversion device 20300, the command of the command frame is a read command here, and therefore, the data reading operation from the magnetic tape is performed. When the data is normally read, the tape device 20500 outputs a data frame including the data to the conversion device 20300.
  • the tape device 20500 when the tape device 20500 outputs the data frame, the tape device 20500 continuously outputs a response frame not including sense data to the conversion device 20300. At this time, in the “STATUS” field of the response frame, status information (see FIG. 45) in which “Status Code” is “00h” meaning “GOOD” is set.
  • the tape device 20500 creates sense data (see FIG. 46 and FIG. 47) indicating the content of the abnormality without outputting a data frame when data reading from the magnetic tape is not performed normally. Then, the response frame including the sense data is output to the conversion apparatus 20300. At this time, status information in which “Status Code” is “02h” meaning “CHECK CONDITION” is set in the “STATUS” field of the response frame. When the tape device 20500 outputs the response frame, the tape device 20500 erases (clears) the sense data created here.
  • a notification indicating that the frame has been received from the tape device 20500 is sent from the SAS transmission / reception unit 20333 to the CPU 20321 of the processing unit 20320.
  • the operation of the CPU 20321 at this time will be described using the flowcharts of FIGS.
  • the flowcharts of FIGS. 47 and 48 correspond to a series of processing algorithms executed by the CPU 20321 when the communication sequence is “waiting for data from the tape device”.
  • the “FRAME TYPE” field is referred to, and it is determined whether the received frame is a data frame or a response frame. If the value set in the “FRAME TYPE” field is “01h”, it is determined that the received frame is a data frame, and the process proceeds to step S20503.
  • step S20503 the received data frame is converted into data corresponding to the USB standard.
  • the USB transmission / reception unit 20313 is instructed to transmit the data. Accordingly, the data is output to the information processing apparatus 20100 via the USB interface 20312 and the USB port 20311.
  • the data of the length planned by the above “dCBWDataTransferLength” is output as the data transport. Then, the processing when the communication sequence is “waiting for data from the tape device” is ended.
  • step S20501 if the value set in the “FRAME TYPE” field is “07h” in step S20501, it is determined that the received frame is a response frame, and the process proceeds to step S20601 in FIG.
  • step S20601 the “DATAPRESS” field of the received response frame is referred to, and it is determined whether or not there is sense data in the response frame. If the value set in the “DATAPRESS” field is “10b”, the determination here is affirmed and the process proceeds to step S20603.
  • step S20603 the sense data included in the response frame is stored in the sense data storage area of the RAM 20323.
  • next step S20605 1 indicating that there is an abnormality in the tape device 20500 is set in the abnormality occurrence flag. That is, the abnormality occurrence flag is set.
  • the USB transmission / reception unit 20313 is instructed to transmit the dummy data. Accordingly, the dummy data is output to the information processing apparatus 20100 via the USB interface 20312 and the USB port 20311.
  • CSW Communication Status Wrapper
  • the “dCSWSignature” field in FIG. 49 is a field for recognizing that the data packet is a CSW.
  • the “dCSWTag” field is a command block tag, exists to link the CSW to the CBW, and has the same value as the “dCBWTag” field of the CBW.
  • the difference between the value of the “CBBDataTransferLength” field of the CBW and the data amount actually processed by the tape device 20500 is set.
  • a value indicating success or failure of the command is set. For example, “00h” meaning “Command Passed” is set when the command ends normally, and “01h” meaning “Command Failed” is set when the command fails.
  • “01h” is set in the “bCSWStatus” field.
  • the USB transmission / reception unit 20313 is instructed to transmit the CSW.
  • the CSW is output to the information processing apparatus 20100 via the USB interface 20312 and the USB port 20311.
  • step S20601 determines whether the value set in the “DATAPRESS” field is “10b” in step S20601. If the value set in the “DATAPRESS” field is not “10b” in step S20601, the determination in step S20601 is denied, and the process proceeds to step S20621.
  • step S20621 a CSW is created in which “00h” indicating normal termination is set in the “bCSWStatus” field.
  • the USB transmission / reception unit 20313 is instructed to transmit the CSW.
  • the CSW is output to the information processing apparatus 20100 via the USB interface 20312 and the USB port 20311.
  • the abnormality occurrence flag is set to 0, and the abnormality occurrence flag is reset. Then, the processing when the communication sequence is “waiting for data from the tape device” is ended.
  • the CPU 20110 stores the data in the RAM 20120.
  • the CPU 20110 When the information processing apparatus 20100 receives a CSW in which “00h” indicating normal termination is set in the “bCSWStatus” field, the CPU 20110 writes the data stored in the RAM 20120 to the hard disk in the HDD apparatus 20160. To the control device. As a result, the data recorded on the magnetic tape is copied to the hard disk of the information processing apparatus 20100, and the copy process by the tape RW software 20600 is completed.
  • a request sense (REQUEST SENSE) command that is a command for requesting sense data (see FIG. 50). Are output to the converter 20300.
  • the USB transmission / reception unit 20313 notifies the CPU 20321 of the processing unit 20320 that the information has been received from the information processing device 20100.
  • the operation of the CPU 20321 at this time will be described with reference to the flowchart of FIG.
  • the flowchart of FIG. 51 corresponds to a series of processing algorithms executed by the CPU 20321 when the communication sequence is “waiting for request sense from information processing apparatus”.
  • step S20701 it is determined whether or not the value of the abnormality occurrence flag is 1. If the value of the abnormality occurrence flag is 1, the determination here is affirmed and the process proceeds to step S20703.
  • step S20703 the abnormality occurrence flag is set to 0 in order to clear the abnormality occurrence flag.
  • step S20705 it is determined whether or not the received CBW command is a request sense command. If the received CBW command is a request sense command, the determination here is affirmed and the process proceeds to step S20707.
  • step S20707 the USB transmission / reception unit 20313 is instructed to transmit the sense data stored in the sense data storage area of the RAM 20323. Accordingly, the sense data is output to the information processing apparatus 20100 via the USB interface 20312 and the USB port 20311.
  • next step S20709 after confirming transmission of the sense data, the sense data stored in the sense data storage area is deleted.
  • the USB transmission / reception unit 20313 is instructed to transmit the CSW.
  • the CSW is output to the information processing apparatus 20100 via the USB interface 20312 and the USB port 20311.
  • the tape RW software 20600 causes the display device 20140 to display the content of the abnormality in the tape device 20500, stops the copy process, and instructs the operator. wait.
  • step S20705 determines whether the received CBW command is a request sense command in step S20705. If the received CBW command is not a request sense command in step S20705, the determination in step S20705 is denied and the process proceeds to step S20731.
  • step S20731 the CBW is converted into a command frame.
  • the transmission / reception unit 20333 is instructed to transmit the command frame.
  • the command frame is output to the tape device 20500 via the SAS interface 20332 and the SAS port 20331.
  • step S20701 if the value of the abnormality occurrence flag is not 1, the determination in step S20701 is negative and the process proceeds to step S20731.
  • 52 and 53 illustrate the main exchange among the information processing apparatus 20100, the conversion apparatus 20300, and the tape apparatus 20500 described above in an easy-to-understand manner.
  • 52 shows a case where there is an abnormality in the tape device 20500
  • FIG. 53 shows a case where there is no abnormality in the tape device 20500.
  • the conversion method of the present invention is implemented in the processing performed by the CPU 20321 of the conversion apparatus 20300.
  • the processing according to the program by the CPU 20321 may be configured by hardware, or all may be configured by hardware.
  • control computer in the present invention is configured by the CPU 20321 of the conversion device 20300
  • recording medium of the present invention is configured by the ROM 20322 of the conversion device 20300.
  • the first communication control is provided on the communication path between the information processing apparatus 20100 corresponding to the USB standard and the tape apparatus 20500 corresponding to the SAS standard.
  • the first communication control unit 20310 includes a USB port 20311, a USB interface 20312, and a USB transmission / reception unit 20313.
  • the second communication control unit 20330 includes a SAS port 20331, a SAS interface 20332, and a SAS transmission / reception unit 20333.
  • the processing unit 20320 includes a CPU 20321, a ROM 20322, a RAM 20323, and the like.
  • the CPU 20321 converts the CBW from the information processing apparatus 20100 into a command frame and outputs the command frame to the tape apparatus 20500. Further, the CPU 20321 converts the data frame from the tape device 20500 into data corresponding to the USB standard and outputs the data frame to the information processing device 20100.
  • the CPU 20321 when the CPU 20321 receives a response frame including sense data from the tape device 20500, the CPU 20321 temporarily stores the sense data in the sense data storage area of the RAM 20323 without transferring the sense data to the information processing device 20100.
  • the meaning CSW is output to the information processing apparatus 20100.
  • the CPU 20321 sets 1 indicating that there is an abnormality in the tape device 20500 in the abnormality occurrence flag.
  • the CPU 20321 when the CPU 20321 receives a request sense command CBW from the information processing apparatus 20100 when the value of the abnormality occurrence flag is 1, the CPU 20321 outputs the sense data stored in the sense data storage area of the RAM 20323 to the information processing apparatus 20100. To do.
  • the information processing apparatus 20100 can correctly know the content of the abnormality.
  • the conversion device 20300 on the communication path between the information processing device 20100 corresponding to the USB standard and the tape device 20500 corresponding to the SAS standard, the information processing corresponding to the USB standard is not caused without increasing the cost. Communication between the device 20100 and the tape device 20500 corresponding to the SAS standard can be normally performed.
  • the information processing system 2010 includes the conversion device 20300, it is possible to construct a system according to the purpose without incurring a cost increase as a result.
  • the operator can instruct the tape RW software 20600 to copy the data recorded on the hard disk and the optical disk to the magnetic tape set in the tape device 20500. Even in this case, if there is an abnormality such as the magnetic tape not being attached to the tape device 20500, the information processing apparatus 20100 can correctly know the content of the abnormality.
  • Patent Document 1 describes that data transferred from a USB storage device is converted to another interface (for example, IDE, SCSI) different from USB.
  • another interface for example, IDE, SCSI
  • Patent Document 2 describes a status register for writing status information to a device and a means for issuing a USB request for acquiring the contents of the status register to a second device (PC).
  • PC second device
  • a technique for solving the problems associated with the conversion between USB and SAS is not described.
  • Patent Document 7 describes a sense data holding method of a device. However, a technique for solving the problems associated with the conversion between USB and SAS is not described.
  • USB Mass Storage Class Bulk-Only Transport is used as the data transfer protocol between the information processing apparatus 20100 and the conversion apparatus 20300 .
  • the present invention is not limited to this.
  • USB Mass Storage Class Control / Bulk / Interrupt (CBI) Transport may be used.
  • another storage device corresponding to the SAS standard may be used instead of the tape device 20500.
  • the tape RW software 20600 software corresponding to the storage device is used.
  • the display of the display device 20144 is a liquid crystal display.
  • the present invention is not limited to this.
  • a liquid crystal display instead of a liquid crystal display, a CRT display, a plasma display, an organic EL display, or the like may be used.
  • the configuration of the first communication control unit 20310 is not limited to the above embodiment.
  • the configuration of the processing unit 20320 is not limited to the above embodiment.
  • the configuration of the second communication control unit 20330 is not limited to the above embodiment.
  • the information processing apparatus is suitable for controlling a USB device with software corresponding to an interface standard different from the USB standard.
  • the information processing system of the present invention is suitable for constructing a system according to the purpose.
  • the information processing method of the present invention is suitable for controlling a USB device with software that supports an interface standard different from the USB standard.
  • the program and recording medium of the present invention are suitable for controlling a USB device with software corresponding to an interface standard different from the USB standard.
  • the conversion device of the present invention is suitable for normally performing communication between a device compatible with the USB standard and a device compatible with the SAS standard.
  • the information processing system of the present invention is suitable for constructing a system according to the purpose.
  • the conversion method of the present invention is suitable for normally performing communication between a device conforming to the USB standard and a device conforming to the SAS standard.
  • the program and the storage medium of the present invention are suitable for normally performing communication between a device compatible with the USB standard and a device compatible with the SAS standard.

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 Transfer Systems (AREA)

Abstract

 異なる方式のインタフェースを有するハードウェアを接続するためのインタフェース変換装置及びインタフェース変換方法において、一方のハードウェアから他方のハードウェアへのデータ転送にエラーが発生しないように、また、エラーが発生した場合に、適切なデータ再転送を可能とする。 第1のインタフェース4の通信方式に適合したデータを、第2のインタフェース2の通信方式に適合したデータ形式に変換するデータ変換部33と、第1のインタフェース4から受信したデータをデータ変換部33へ送信する第1のデータ送受信部31と、データ変換部33による変換後のデータを記憶するデータ記憶部34とデータ記憶部34が記憶した複数のデータを記憶した順に、複数のデータの送信間隔には依存せず第2のインタフェース2へ送信する第2のデータ送受信部32とを備える。

Description

インタフェース変換装置及びインタフェース変換方法、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体
 本発明は、異なる方式のインタフェースを有するハードウェアを接続するためのインタフェース変換装置及びインタフェース変換方法に関し、特に、一方のハードウェアから他方のハードウェアへのデータ転送にエラーが発生した場合に、適切なデータ再転送を可能とするインタフェース変換装置及びインタフェース変換方法に関する。
 また、本発明は、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体に係り、更に詳しくは、USBポートを有する情報処理装置、該情報処理装置を含む情報処理システム、USBポートを有する情報処理装置における情報処理方法、USBポートを有する情報処理装置に用いられるプログラム、及び該プログラムが記録された記録媒体に関する。
 また、本発明は、変換装置、情報処理システム、変換方法、プログラム及び記録媒体に係り、更に詳しくは、互いにインタフェース規格が異なる2つの装置間の通信路上に設けられる変換装置、該変換装置を備える情報処理システム、互いにインタフェース規格が異なる2つの装置間の通信路上に設けられる変換装置における変換方法、互いにインタフェース規格が異なる2つの装置間の通信路上に設けられた装置に用いられるプログラム、及び該プログラムが記録された記録媒体に関する。
(1)従来から、ハードウェアを他のハードウェアと接続するためのインタフェースとしては、ハードウェアの性質に応じて、様々な処理方式のものが用いられている。例えば、パソコンにおいては、近年、USB(ユニバーサル・シリアル・バス、Universal Serial Bus)が標準装備されるようになり、プリンタや外付けハードディスク等の様々な周辺機器との接続が、USBを介してなされるようになってきている。一方、LTO(リニア・テープ・オープン、Linear Tape-Open)装置等のハイエンド機器では、データ転送の信頼性確保のため、例えばSAS(サス、Serial Attached SCSI)等のUSBとは異なるインタフェースが用いられている。
 ところで、異なる通信方式のインタフェースを接続する場合には、両インタフェース間にインタフェース変換装置を介在させて、このインタフェース変換装置においてデータ形式を変換する必要がある。
 図4は、このような従来のインタフェース変換装置において、どのようにデータ転送がなされるかを示す図である。図示されるように、ホストコンピュータ1は、インタフェースとしてUSB2を備えている一方、テープデバイス(LTO装置)3は、インタフェースとしてSAS4を備えている。インタフェース変換装置5は、USB2とSAS4の間に接続されている。
 このような構成において、テープデバイス3からホストコンピュータ1に向けてデータ転送を行う場合、図4の(a)に示すように、USB2からデータ転送要求であるCBW(Command Block Wrapper)が送信される。インタフェース変換装置5は、CBWをSASに適した形式であるコマンドフレームに変換して、SAS4に向けて送信する。
 データ転送要求であるコマンドフレームを受けたSAS4は、送信すべきデータをテープデバイス3から読み込み、図4の(b)に示すように、読み込んだデータを所定のフレームサイズで区切られたデータフレームとして、インタフェース変換装置5に向けて順次送信していく。データフレームの送信を受けたインタフェース変換装置5は、受け取ったデータフレームを、所定のパケットサイズに区切られたデータパケットに変換して、USB2に向けて順次転送していく。
 テープデバイス3から転送されるべき全データの転送が終了すると、図4の(f)に示すように、SAS4からデータ転送終了の通知であるレスポンスフレームの送信がなされる。インタフェース変換装置5は、このレスポンスフレームをCSW(Command Status Wrapper)に変換してUSB2へ送信し、転送処理が終了する(特許文献1~3参照)。
(2)パーソナルコンピュータなどの情報処理装置は、外部機器を付加することによって、機能を拡張することが可能であり、様々なシステムの中核となる装置として用いられている。
 そこで、情報処理装置と外部機器とを接続するためのインタフェースとして種々のものが考案された。
 例えば、SCSI(Small Computer System Interface)が、ANSI(米国規格協会)によって1986年に規格化された。
 また、USB(Universal Serial Bus)規格が、1996年に発表された。
 これらの規格は、その後、転送性能の向上等を目的として拡張が行われた。例えば、SCSIについては、シリアル化されたSAS(Serial Attached SCSI)が2003年に標準化された。
 特許文献3には、USB接続インタフェース、及び仮想シリアルポートドライバを備える信号変換装置が開示されている。
 また、特許文献5には、仮想通信ポート作成削除手段を有する情報処理装置が開示されている。
 また、特許文献6には、読み出しエラーが起こった場合に、迅速かつ適切にデータ読み出しを続けることを目的とする読出装置が開示されている。
(3)パーソナルコンピュータなどの情報処理装置は、外部機器を付加することによって、機能を拡張することが可能であり、様々なシステムの中核となる装置として用いられている。
 そこで、情報処理装置と外部機器とを接続するためのインタフェースとして種々のものが提案された。
 例えば、SCSI(Small Computer System Interface)が、ANSI(米国規格協会)によって1986年に規格化された。
 また、USB(Universal Serial Bus)規格が、1996年に発表された。
 これらの規格は、その後、転送性能の向上等を目的として拡張が行われた。例えば、SCSIについては、シリアル化されたSAS(Serial Attached SCSI)が2003年に標準化された。
 例えば、特許文献1には、USBストレージ機器が開示されている。
 特許文献2には、USB-ATAPIインタフェースシステムとこれに用いるATAPI-USB変換機器が開示されている。
 また、特許文献7には、センスデータの保持に必要なメモリ容量を低減することを目的としたセンスデータ保持方法が開示されている。
特許第4381036号公報 特開2001‐337911号公報 特開2011‐14124号公報 特開2004-185388号公報 国際公開第2007/102434号 特開平5-289955号公報
 上記(1)において、異なる方式のインタフェース間でデータ転送を行うためには、様々な技術手法をあらたに講じる必要がある。そして、本発明者らは、各インタフェースのデータ転送速度が異なる場合に、データ転送エラーが生じ得ることに思い至った。例えば、USBとSAS間でデータ転送を行う場合、図4の(c)に示すように、USB2によるデータパケットの受け取りが完了しないまま、所定時間(例えば1ms)以上が経過してしまうことがある。この場合、図4の(d)に示すように、インタフェース変換装置5又はテープデバイス3においてタイムアウト(データ転送失敗)との判断がなされ、図4の(e)に示すように、SAS4からUSB2に向けてのデータ再送信がなされることになる。
 このようなエラー発生時のデータ再送信においては、インタフェースによる再送信データの処理方法の違いから、送信されるべきデータと実際に送信されるデータとの間でデータの不整合が生じてしまい得る。例えば、SASにおいてデータの再送信がなされる場合、当初送信されるべきであった全データを最初から再送信するのに対して、再送信データを受信するUSBにおいては、エラー発生前に既に送信完了が確認されているデータについては再送信が予定されておらず、エラー発生時までに送信完了済みのデータから後のデータについてのみ、再送信が予定されている。このため、図4の(e)に示すように、インタフェース変換装置5がエラー発生時の再送信データをそのまま転送してしまうと、SAS4が、送信されるべきであった全データを最初から送信してくるのに対して、USB2では、この最初からの再送信データを、既に送信完了済みのデータよりも後のデータ(すなわち、全データの途中からの再送信データ)として受け取ることになり、この結果、SAS4からの転送データとUSB2で実際に受け取ったデータの間で不一致が生じてしまう。
 そして、本発明者らはさらに鋭意探索を行った結果、この各インタフェースのデータ転送速度の差に起因したデータ転送エラーの際に生じる不都合が発生しないように、また、不都合が発生した場合においても、以下の手法を用いることにより、適切なデータ転送を維持することが可能であることを見出した。すなわち、異なる方式のインタフェースを有するハードウェアを接続するためのインタフェース変換装置及びインタフェース変換方法において、一方のハードウェアから他方のハードウェアへのデータ転送にエラーが発生した場合に、適切なデータ再転送を可能とするインタフェース変換装置及びインタフェース変換方法を提供することを目的とする。
 上記(2)においては、パーソナルコンピュータでは、オペレーティングシステム(以下では、「OS」ともいう)として、マイクロソフト社のWindows(登録商標)が広く用いられている。
 この場合、一例として図31に示されるように、アプリケーションソフトウェアとSCSIポートとの間には、ストレージクラスドライバ、ストレージポートドライバ、及びSCSIミニポートドライバが介在している。また、アプリケーションソフトウェアとSASポートとの間には、ストレージクラスドライバ、ストレージポートドライバ、及びSASミニポートドライバが介在している。そして、アプリケーションソフトウェアとUSBポートとの間には、ストレージクラスドライバ、USBマスストレージクラスドライバ、及びUSBポートドライバが介在している。なお、アプリケーションソフトウェアとは、ソフトウェアそのものではなく、例えばソフトウェアがインストールされ、そのソフトウェアを実行する処理部である場合もある。
 アプリケーションソフトウェアがSCSIデバイスを制御するアプリケーションソフトウェアである場合、該アプリケーションソフトウェアは、例えば、ストレージクラスドライバを介してストレージポートドライバに問い合わせ、SCSIポートに接続されているデバイスを制御対象とする。
 また、アプリケーションソフトウェアがUSBデバイスを制御するアプリケーションソフトウェアである場合、該アプリケーションソフトウェアは、例えば、ストレージクラスドライバを介してUSBマスストレージクラスドライバに問い合わせ、USBポートに接続されているデバイスを制御対象とする。
 つまり、上記SCSIデバイスを制御するアプリケーションソフトウェアは、USBポートに接続されたUSBデバイスを認識することができない(図32参照)。
 ところで、近年、パーソナルコンピュータなどの情報処理装置は、USBポートを標準装備するようになってきた。これに伴い、これまでSCSI規格に対応していた外部機器も、USB規格に対応するようになってきた。
 しかしながら、SCSIデバイスを制御するアプリケーションソフトウェアは、前述したようにUSBデバイスを認識することができないため、該アプリケーションソフトウェアを修正する必要がある。この場合、該アプリケーションソフトウェアが古いと、修正できないという不都合があった。また、修正可能であっても、高額な修正費用が発生するとともに、修正に長い時間を要するという不都合があった。
 なお、SCSIデバイスを制御するアプリケーションソフトウェアを修正しないで、USBデバイスを認識する方法として、SCSIデバイスとして認識される特殊なUSBデバイスを用いることが考えられる。しかし、この場合は、USBマスストレージクラスドライバ及びUSBポートドライバの修正も必要となり、他社製品の場合には、修正不可であったり、アプリケーションソフトウェアの修正よりも更にコストが高くなるという不都合があった。
 本発明は、かかる事情の下になされたもので、その第1の目的は、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御することができる情報処理装置を提供することにある。
 また、本発明の第2の目的は、コストアップを招くことなく、目的に応じたシステム構築ができる情報処理システムを提供することにある。
 また、本発明の第3の目的は、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御することができる情報処理方法を提供することにある。
 また、本発明の第4の目的は、情報処理装置に対して、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御することを可能にするプログラム及びそのプログラムが記録された記録媒体を提供することにある。
 上記(3)においては、発明者らは、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信路上に設けられる変換装置を開発している。
 そして、発明者らは、第1の装置からのUSB規格に対応した形式の情報を、SAS規格に対応した形式に変換して第2の装置に出力するとともに、第2の装置からのSAS規格に対応した形式の情報を、USB規格に対応した形式の情報に変換して第1の装置に出力する変換装置を試作した。
 この試作した変換装置(以下では、便宜上、「試作変換装置」ともいう)を介して、第1の装置としての情報処理装置と第2の装置としてのテープ装置とを接続したとき、該テープ装置に磁気テープが装着されていない等の異常があっても、その異常に関する情報が情報処理装置に通知されないという不都合があった。
 発明者らは、種々検討を行い、上記不都合の原因を見出した。この原因について図54を用いて説明する。
 例えば、情報処理装置からリードコマンドが発行されると、試作変換装置は、該リードコマンドを所定のコマンドフレームに変換してテープ装置に出力する。
 このとき、テープ装置に磁気テープが装着されていないと、テープ装置は異常の内容に関する情報が含まれるセンスデータを作成し、該センスデータが含まれる所定のレスポンスフレームを試作変換装置に出力する。なお、テープ装置では、該レスポンスフレームの出力後、センスデータはクリアされる。
 試作変換装置は、テープ装置から上記レスポンスフレームを受け取ると、ダミーデータ及びコマンドの失敗を意味するステータス情報を情報処理装置に出力する。
 情報処理装置は、上記ステータス情報を受け取ると、センス情報を要求するリクエストセンスコマンドを発行する。
 試作変換装置は、該リクエストセンスコマンドを所定のコマンドフレームに変換してテープ装置に出力する。
 テープ装置は、センス情報が含まれる所定のデータフレームを試作変換装置に出力する。但し、このとき、テープ装置では、すでにセンスデータはクリアされているため、該センス情報にはセンスデータはセットされていない。
 試作変換装置は、テープ装置からデータフレームを受け取ると、所定の形式に変換して情報処理装置に出力する。
 情報処理装置は、センス情報を受け取っても、センスデータがないため、テープ装置での異常内容を知ることができない。
 本発明は、上述した発明者等の得た新規知見に基づいてなされたものであり、その第1の目的は、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行うことができる変換装置を提供することにある。
 また、本発明の第2の目的は、コストアップを招くことなく、目的に応じたシステムを構築することができる情報処理システムを提供することにある。
 また、本発明の第3の目的は、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行うことができる変換方法を提供することにある。
 また、本発明の第4の目的は、変換装置に対して、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行わせることができるプログラム及びそのプログラムが記録された記録媒体を提供することにある。
 本発明によると、上記(1)に係る課題は、次の各項のようにして解決される。
(1)-(1)第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換装置であって、前記第1のインタフェースの通信方式に適合したデータを、前記第2のインタフェースの通信方式に適合したデータ形式に変換するデータ変換部と、前記第1のインタフェースから受信したデータを前記データ変換部へ送信する第1のデータ送受信部と、前記データ変換部による変換後の前記データを記憶するデータ記憶部と、前記データ記憶部から受信した前記データを前記第2のインタフェースへ送信する第2のデータ送受信部とを備え、前記第2のデータ送受信部は、前記データ記憶部が記憶した複数の前記データを記憶した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信する。
(1)-(2)第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換装置であって、データを記憶するデータ記憶部と、前記第1のインタフェースから受信した前記データを前記データ記憶部へ送信する第1のデータ送受信部と、前記データ記憶部から受信した前記第1のインタフェースの通信方式に適合した前記データを、前記第2のインタフェースの通信方式に適合したデータ形式に変換するデータ変換部と、前記データ変換部から受信した前記データを前記第2のインタフェースへ送信する第2のデータ送受信部とを備え、前記第2のデータ送受信部は、前記データ変換部が変換した複数の前記データを変換した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信する。
(1)-(3)上記(1)または(2)において、前記第2のデータ送受信部は、前記第2のインタフェースから受信したデータを前記データ変換部へ送信し、前記データ変換部は、前記第2のインタフェースの通信方式に適合した前記データを、前記第1のインタフェースの通信方式に適合したデータ形式に変換し、前記第1のデータ送受信部は、前記データ変換部から受信した前記データを前記第1のインタフェースへ送信する。
(1)-(4)第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換方法であって、データ変換部は、前記第1のインタフェースの通信方式に適合したデータを、前記第2のインタフェースの通信方式に適合したデータ形式に変換する変換ステップと、第1のデータ送受信部は、前記第1のインタフェースから受信したデータを前記データ変換部へ送信する送受信ステップと、データ記憶部は、前記データ変換部による変換後の前記データを記憶する記憶ステップと第2のデータ送受信部は、前記データ記憶部から受信した前記データを前記第2のインタフェースへ送信する送受信ステップとを含み、前記第2のデータ送受信部による送受信ステップは、前記データ記憶部が記憶した複数の前記データを記憶した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信する。
(1)-(5)第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換方法であって、データ記憶部は、データを記憶する記憶ステップと、第1のデータ送受信部は、前記第1のインタフェースから受信した前記データを前記データ記憶部へ送信する送受信ステップと、データ変換部は、前記データ記憶部から受信した前記第1のインタフェースの通信方式に適合した前記データを、前記第2のインタフェースの通信方式に適合したデータ形式に変換する変換ステップと、第2のデータ送受信部は、前記データ変換部から受信した前記データを前記第2のインタフェースへ送信する送受信ステップとを含み、前記第2のデータ送受信部による送受信ステップは、前記データ変換部が変換した複数の前記データを変換した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信する。
(1)-(6)本発明は、第1のインタフェースを有する第1の装置と第2のインタフェースを有する第2の装置との間でインタフェース変換を行うインタフェース変換装置において、第1の装置からのデータを第1のインタフェースを介して受け取るデータ受信手段と、データ受信手段により受け取ったデータを第2のインタフェースに適合した方式に変換するデータ変換手段と、データ変換手段により変換されたデータを第2のインタフェースを介して第2の装置に転送するデータ転送手段と、データ転送手段により第2の装置に転送されたデータに関する情報を記憶する転送データ情報記憶手段と、第1の装置から第2の装置へのデータ転送におけるエラー発生の判断がなされたときに、第1の装置から再送信されてきたデータのうち、転送データ情報記憶手段に記憶された情報に基づいて、エラー発生前に既に第2の装置に転送されていると判別されたデータ以外のデータについてのみ、データ変換手段とデータ転送手段とデータ記憶手段による処理を再開するデータ転送再開手段とを備えた。
(1)-(7)上記(6)において、第1のインタフェースは、エラー発生時のデータ再送信において、当初送信されるべきであった全データの再送信を行うものである一方、第2のインタフェースは、エラー発生時のデータ再送信において、当初送信されるべきであった全データのうち、エラー発生前に既に転送されたデータ以外の転送を受けつけるものであってもよい。
(1)-(8)上記(6)または(7)において、転送データ情報記憶手段に記憶された転送されたデータに関する情報は、第2の装置に転送済みのデータ量の指標となる情報であってもよい。
(1)-(9)上記(8)において、転送済みのデータ量の指標となる情報が、第2の装置に転送済みデータ量であってもよい。
(1)-(10)上記(8)において、第1の装置から転送されるデータが、データフレームの形式で転送されるデータであり、転送済みのデータ量の指標となる情報が、第2の装置に転送済みのデータフレームの数であってもよい。
(1)-(11)上記(6)~(10)のいずれかにおいて、エラー発生の判断は、第2の装置におけるデータの受け取りが所定時間以上にわたって停滞した場合になされてもよい。
(1)-(12)上記(6)または(7)において、また、転送データ情報記憶手段に記憶された転送されたデータに関する情報は、データ受信手段からデータ変換手段に転送済みのデータ量の指標となる情報であってもよい。
(1)-(13)上記(12)において、また、第1の装置から転送されるデータが、データフレームの形式で転送されるデータであり、転送済みのデータ量の指標となる情報が、データ受信手段からデータ変換手段に転送済みのデータフレームの数であってもよい。
(1)-(14)また、本発明は、第1のインタフェースを有する第1の装置と第2のインタフェースを有する第2の装置との間でインタフェース変換を行うインタフェース変換方法において、第1の装置からのデータを第1のインタフェースを介して受け取るステップと、第1の装置から受け取ったデータを第2のインタフェースに適合した方式に変換するステップと、第2のインタフェースに適合した方式に変換されたデータを第2のインタフェースを介して第2の装置に転送するステップと、第2の装置に転送されたデータに関する情報を記憶するステップと、第1の装置から第2の装置へのデータ転送におけるエラー発生を判断するステップと、データ転送におけるエラー発生の判断がなされたときに、第1の装置から再送信されてきたデータのうち、転送データ情報記憶手段に記憶された情報に基づいて、エラー発生前に既に第2の装置に転送されていると判別されたデータ以外のデータについてのみ、データの変換と転送及び転送されたデータに関する情報の記憶を再開するステップとを備えた。
(1)-(15)また、本発明は、第1のインタフェースを有する第1の装置と第2のインタフェースを有する第2の装置との間に接続され、第1の装置からのデータを第2のインタフェースに対応する方式に変換して第2の装置に転送するインタフェース変換装置において、第1の装置から第2の装置へのデータ送信に発生したエラーに起因して、第1の装置から第2の装置へのデータ再送信が行われた場合に、第1の装置から再送信されたデータのうち、エラー発生前に既に第2の装置に転送されているデータ以外のデータのみを第2の装置に転送するようにした。
 また、本発明によると、上記(2)に係る課題は、次の各項のようにして解決される。
(2)-(1)本発明は、第1の観点からすると、USBポートと、前記USBポートを制御するUSBポートドライバを有し、USB規格とは異なるインタフェース規格に対応し、デバイス制御を行うソフトウェアと、前記USBポートにおけるUSBデバイスの着脱を監視し、該着脱がなされると、前記USB規格とは異なるインタフェース規格に対応する仮想ポートにおける前記USBデバイスの着脱を前記ソフトウェアに認識させ、前記USBデバイスに対して発行されたコマンドを、前記USBポートドライバに転送するパススルー機能を有する仮想ミニポートドライバと、を備える情報処理装置である。
 これによれば、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御することができる。
(2)-(2)本発明は、第2の観点からすると、本発明の情報処理装置と、前記情報処理装置のUSBポートに着脱されたUSBデバイスと、を備える情報処理システムである。
 これによれば、コストアップを招くことなく、目的に応じたシステム構築ができる。
(2)-(3)本発明は、第3の観点からすると、USBポートと、該USBポートを制御するUSBポートドライバとを備え、USB規格とは異なるインタフェース規格に対応するソフトウェアを実行するための情報処理装置における情報処理方法であって、前記USBポートにおいてUSBデバイスの着脱がなされると、前記USB規格とは異なるインタフェース規格に対応する仮想ポートにおいて前記USBデバイスの着脱がなされたとする工程と、前記USBデバイスに対してコマンドが発行されると、該コマンドを前記USBポートドライバに転送する工程とを含む情報処理方法である。
 これによれば、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御することができる。
(2)-(4)本発明は、第4の観点からすると、USBポートと、該USBポートを制御するUSBポートドライバとを備え、USB規格とは異なるインタフェース規格に対応するソフトウェアを実行するための情報処理装置に用いられるプログラムであって、前記USBポートにおいてデバイスの着脱がなされると、USB規格とは異なるインタフェース規格に対応する仮想ポートにおいて前記デバイスの着脱がなされたとする手順と、前記デバイスに対して発行されたコマンドを前記USBポートドライバにパススルーする手順と、を前記情報処理装置の制御用コンピュータに実行させるプログラムである。
 これによれば、情報処理装置に対して、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御させることが可能となる。
(2)-(5)本発明は、第5の観点からすると、本発明のプログラムが記録されたコンピュータ読み取り可能な記録媒体である。
 これによれば、本発明のプログラムが記録されているために、コンピュータに実行させることにより、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御させることが可能となる。
 また、本発明によると、上記(3)に係る課題は、次の各項のようにして解決される。
(3)-(1)本発明は、第1の観点からすると、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信路上に設けられる変換装置であって、前記USB規格に準拠し、前記第1の装置との通信を制御する第1の通信制御部と、前記SAS規格に準拠し、前記第2の装置との通信を制御する第2の通信制御部と、前記第2の通信制御部を介して入力された前記第2の装置からのセンスデータが入力されると該センスデータを記憶し、コマンド失敗を意味するステータス情報を前記第1の通信制御部を介して前記第1の装置に出力し、前記第1の通信制御部を介して前記第1の装置から前記ステータス情報に対するセンスデータ要求コマンドが入力されると、前記記憶されたセンスデータを前記第1の通信制御部を介して前記第1の装置に出力する処理装置と、を備える変換装置である。
 これによれば、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行うことができる。
(3)-(2)本発明は、第2の観点からすると、USB規格に対応した第1の装置と接続される本発明の変換装置と、前記変換装置の第2の通信制御部に接続され、SAS規格に対応した第2の装置と、を備える情報処理システムである。
 これによれば、コストアップを招くことなく、目的に応じたシステムを構築することができる。
(3)-(3)本発明は、第3の観点からすると、本発明の変換装置と、前記変換装置の第1の通信制御部に接続され、USB規格に対応した第1の装置と、前記変換装置の第2の通信制御部に接続され、SAS規格に対応した第2の装置と、を備える情報処理システムである。
 これによれば、コストアップを招くことなく、目的に応じたシステムを構築することができる。
(3)-(4)本発明は、第4の観点からすると、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信路上に設けられる変換装置における変換方法であって、前記第2の装置からのセンスデータを、前記第1の装置に出力することなく一時的に保存する工程と、コマンド失敗を意味するステータス情報を前記第1の装置に出力する工程と、前記第1の装置から前記ステータス情報に対するセンスデータ要求コマンドが入力されたときに、前記一時的に保存されているセンスデータを前記第1の装置に出力する工程と、を含む変換方法である。
 これによれば、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行うことができる。
(3)-(5)本発明は、第5の観点からすると、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信路上に設けられた変換装置に用いられるプログラムであって、前記第2の装置からのセンスデータを、前記第1の装置に出力することなく一時的に保存する手順と、コマンド失敗を意味するステータス情報を前記第1の装置に出力する手順と、前記第1の装置から前記ステータス情報に対するセンスデータ要求コマンドが入力されたときに、前記一時的に保存されているセンスデータを前記第1の装置に出力する手順と、を前記変換装置の制御用コンピュータに実行させるプログラムである。
 これによれば、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行わせることができる。
(3)-(6)本発明は、第6の観点からすると、本発明のプログラムが記録されたコンピュータ読み取り可能な記録媒体である。
 これによれば、コストアップを招くことなく、USB規格に対応した第1の装置とSAS規格に対応した第2の装置との間の通信を正常に行わせることができる。
 本発明によれば、第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換装置又はインタフェース変換装置を用いたインタフェース変換方法において、データ記憶部が、第1の装置(例えば、テープデバイス)から第2の装置(例えば、ホストコンピュータ)、へ送信されるデータ(例えば、ブロックが分割された複数のデータフレーム)を、記憶することができる。即ち、第2のインタフェース(USB)側の通信の状況に影響を受けることなく、データ(1ブロックを分割したデータフレームの全て)をデータ記憶部へ送信し続けることが可能となる。
 一方、第2のデータ送受信部は、データ記憶部に記憶されたデータを送信するだけであるため、第1のインタフェース(SAS)側の通信の状況に影響を受けることなく、コマンドに応じたデータ(データパケット)を全て第2の装置へ送信し続けることが可能となる。
 これにより、データ記憶部を設けることなく、直接的にデータを転送する場合に、第1のインタフェース(SAS)の転送速度が第2のインタフェース(USB)よりも速いために発生する第2のインタフェース(USB)側でのデータ(データパケット)の転送待ち(タイムアウト)を解消することができ、インタフェース変換装置の可用性の向上を図ることができる。
 さらには、第2のデータ送受信部は、データ記憶部が記憶した複数のデータ(データフレーム)を、記憶した順で、複数のデータの送信間隔には依存せず第2のインタフェースへ送信することができるため、たとえ、データ(データパケット)の転送待ちが発生したとしても、データが前後して送信されるようなことはなく、確実にデータを送信することができ、インタフェース変換装置の信頼性の向上を図ることができる。
 また、データ(データパケット)の転送待ちを検知するためのエラー検知手段や、第1のインタフェース(SAS)側に対してデータの停止を指示するための手段や、データの再送信を指示するための手段等を別途設ける必要がないため、処理スピードの向上、及び製造コストの低減を図ることができる。
 また、第1のインタフェース(SAS)及び第2のインタフェース(USB)から送信されるコマンド(レスポンスフレーム、CBW)をデータ記憶部に記憶させないことにより、当該データを記憶する処理及び記憶したデータを出力(送信)する処理を省略することができるため、処理速度の向上を図ることができる。
 また、データ転送エラーの発生に起因してデータの再転送が行われる場合、第1のインタフェースから再送信されてきたデータのうち、エラー発生前に第2の装置に転送完了済みのデータ以外のデータのみを、第2の装置に転送するようにしたので、例えば、データ再転送時に、第1の装置が当初送信されるべきであった全データの転送を行うものであるのに対して、第2の装置が既へ送信完了済みのデータ以外のデータを受け付けるものであったとしても、第1の装置から第2の装置に転送されるべきデータと実際に第2の装置に転送されたデータとの間で不一致が生じることがなく、適切なデータ再転送を行うことができる。
 また、本発明によれば、適切なデータ再転送は、再送信されてきたデータの一部を読み捨てる(破棄する)単純な処理だけで達成できるので、例えば、データ再転送を適切に行うために、第1又は第2のインタフェースの独自プロトコルを作成し、この独自プロトコルに対応するための変更を第1又は第2の装置に加える等の複雑な処置を必要としない。したがって、インタフェース変換装置だけに必要最小限の変更を加えるだけで、適切なデータ転送が可能となり、コスト削減を達成できるともに、他の機器への影響も最小限とすることができる。
 また、転送されたデータに関する情報として、転送完了済みデータのデータサイズを記憶しておき、再送信されてきたデータが既に第2の装置に転送完了したデータであるか否かの判断を転送完了済みデータのデータサイズに基づいて行うようにすれば、第2の装置に再転送すべきデータを判断するために、必要最小限の情報を保持しておくだけで済み、また、データサイズの大小関係の比較だけで、正確な判断を簡単に行うことができる。
本発明の第1の実施形態におけるインタフェース変換装置を示すブロック構成図である。 本発明の第1の実施形態におけるデータ転送を説明するための概略図である。 本発明の第1の実施形態のインタフェース変換装置を用いたインタフェース変換方法の手順を示すフローチャートである。 従来のインタフェース変換装置におけるデータ転送を説明するための概略図である。 本発明の第1の実施形態に係るインタフェース変換装置の構成図である。 本発明の第2の実施形態におけるインタフェース変換装置を示すブロック構成図である。 本発明の第2の実施形態におけるデータ転送を説明するための概略図である。 本発明の第2の実施形態のインタフェース変換装置を用いたインタフェース変換方法の手順を示すフローチャートである。 本発明の第2の実施形態の変形例1のインタフェース変換装置を示すブロック構成図である。 同じく変形例2のインタフェース変換装置を示すブロック構成図である。 同じく変形例3のインタフェース変換装置に係るデータ転送を説明するための概略図である。 同じく変形例4のインタフェース変換装置に係るデータ転送を説明するための概略図である。 同じく変形例5のインタフェース変換装置に係るデータ転送を説明するための概略図である。 本発明の第3の実施形態に係る情報処理システムの構成を説明するためのブロック図である。 図14における情報処理装置の構成を説明するためのブロック図である。 OSに含まれる各種ドライバを説明するためのブロック図である。 仮想SCSIミニポートドライバを説明するためのブロック図(その1)である。 仮想SCSIミニポートドライバを説明するためのブロック図(その2)である。 テープRWソフトウェアとドライバとの関係を説明するためのブロック図である。 リード(READ)コマンドのフォーマットを説明するための図である。 テープRWソフトウェア10500から発行されたコマンドの流れを説明するための図である。 SRBの構造を説明するための図である。 テープRWソフトウェアで発行されたコマンドを受け取ったときの、仮想SCSIミニポートドライバの動作を説明するためのフローチャートである。 ステータス情報のフォーマットを説明するための図である。 センス情報の要求(REQUEST SENSE)コマンドのフォーマットを説明するための図である。 センス情報のフォーマットを説明するための図である。 センス情報を受け取ったときの、仮想SCSIミニポートドライバの動作を説明するためのフローチャートである。 指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合の、テープRWソフトウェアとテープ装置との間の主なやりとりを説明するための図である。 指定されたブロックサイズと実際に記録されているブロックサイズとが一致している場合の、テープRWソフトウェアとテープ装置との間の主なやりとりを説明するための図である。 仮想SASミニポートドライバを説明するためのブロック図である。 各種デバイスとOSとの従来の関係を説明するためのブロック図である。 従来の不都合を説明するためのブロック図である。 本発明の第4の実施形態に係る情報処理システムの構成を説明するための図である。 図33における情報処理装置を説明するための図である。 SSPフレームフォーマットを説明するための図である。 図35における「FRAME TYPE」フィールドを説明するための図である。 図35における「INFORMATION UNIT」フィールドにセットされるデータ(DATA information unit)を説明するための図である。 図35における「INFORMATION UNIT」フィールドにセットされるコマンド(COMMAND information unit)を説明するための図である。 図35における「INFORMATION UNIT」フィールドにセットされるレスポンス(RESPONSE information unit)を説明するための図である。 図39における「DATAPRES」フィールドを説明するための図である。 図33における変換装置を説明するための図である。 リード(READ)コマンドを説明するための図である。 CBW(Command Block Wrapper)を説明するための図である。 変換装置におけるCPUの動作を説明するためのフローチャート(その1)である。 ステータス情報を説明するための図である。 センスデータのフォーマット(Sense Data Format)を説明するための図である。 変換装置におけるCPUの動作を説明するためのフローチャート(その2)である。 変換装置におけるCPUの動作を説明するためのフローチャート(その3)である。 CSW(Command Status Wrapper)を説明するための図である。 リクエストセンス(REQUEST SENSE)コマンドを説明するための図である。 変換装置におけるCPUの動作を説明するためのフローチャート(その4)である。 テープ装置に異常がある場合の、情報処理装置と変換装置とテープ装置との間の主なやりとりを説明するための図である。 テープ装置に異常がない場合の、情報処理装置と変換装置とテープ装置との間の主なやりとりを説明するための図である。 試作した変換装置の不都合を説明するための図である。
第1の実施形態
 以下、第1の実施形態について、図面に基づいて説明する。
なお、以下に説明する本実施形態は例示であって、特許請求の範囲に記載された本発明の範囲を不当に制限するものではない。
 図1には、本発明の実施形態におけるインタフェース変換装置10を、ブロック構成図で示す。図示されるように、インタフェース変換装置10は、ホストコンピュータ1のインタフェースであるUSB2と、テープデバイス(LTO装置)3のインタフェースであるSAS4との間に配置され、USB2とSAS4とを接続している。インタフェース変換装置10は、例えば、USB2とSAS4との間に介装される変換基板として構成され得る。
 インタフェース変換装置10は、方式(プロトコル及びフォーマット)の異なる2つのインタフェース(本実施形態ではUSB及びSAS)の一方からのデータを、他方に適した方式に変換するためのデータ変換手段11を備えている。インタフェース変換装置10は、更に、データ転送要求を受信するデータ転送要求受信手段12と、データ転送要求を送信するデータ転送要求送信手段13と、転送データを受信するデータ受信手段14と、転送データを送信するデータ転送手段15と、データ転送終了を示す通知を受信するデータ転送終了通知受信手段16と、データ転送終了を示す通知を送信するデータ転送終了通知送信手段17とを備えている。
 詳しく説明すると、テープデバイス3のデータをホストコンピュータ1に読み込む場合、USB2からのデータ転送要求であるCBW(Command Block Wrapper)が、データ転送要求受信手段12により受信され、データ変換手段11によってSASに適したデータ形式であるコマンドフレームに変換され、データ転送要求送信手段13によりSAS4に向けて送信される。このデータ転送要求に基づいてデータ転送が開始されると、SAS4から転送データとして送信されてきたデータフレームが、データ受信手段14により受信され、データ変換手段11によってUSBに適したデータ形式であるデータパケットに変換されて、データ転送手段15によりUSB2に向けて送信される。更に、データ転送終了時には、SAS4からのデータ転送終了通知であるレスポンスフレームがデータ転送終了通知受信手段16により受信され、データ変換手段11によりCSW(Command Status Wrapper)に変換されて、データ転送終了通知送信手段17によってUSB2に向けて送信されるようになっている。
 なお、ホストコンピュータ1のデータをテープデバイス3に書き込む場合には、ホストコンピュータ1より発せられたデータ受信要求としてのCBWがUSB2を介してSAS4に向けて送信される。そして、ホストコンピュータ1からデータ転送が開始されると、データ変換手段11によって適切なデータ形式に変換されて、SAS4に向けてデータが順次送信される。データ転送終了時には、書き込みの終了を通知するCSWが、データ転送終了通知送信手段17によってUSB2に向けて送信されるようになっている。
 インタフェース変換装置10は、更に、転送データ情報記憶手段18と、エラー発生判断手段19と、転送済みデータ判別及び破棄手段20と、データ転送再開手段21とを備えている。
 転送データ情報記憶手段18は、テープデバイス3からホストコンピュータ1に向けてデータ転送がなされたときに、USB2に転送完了済みとなったデータに関する情報を記憶する手段である。具体的に、転送データ情報記憶手段18は、データ転送要求に応じて転送されるべき全データのうち、その時点までに、USB2において受信が完了したデータのデータサイズを記憶するようになっている。
 エラー発生判断手段19は、インタフェース変換装置10によるデータ転送処理において、データの再転送が必要となるようなエラーが発生したか否かを判断する手段である。例えば、エラー発生判断手段19は、転送データのUSB2による受信が停滞して、所定時間(例えば1ms)以上の時間が経過してしまったときに、エラー発生との判断を行うようになっている。具体的には、USB2に対する各データパケットの送信毎に、USB2からの受信確認通知であるACK信号が確認され、ACK信号がデータパケットの送信後に所定時間以上にわたって確認なされなかったときに、エラー発生の判定がなされることになる。
 なお、本実施形態では、インタフェース変換装置10内に、エラー発生判断手段19を備えるようにしたが、本発明はこのような形態に限られるものではなく、例えば、テープデバイス3においてデータ転送エラー発生の判断を行うようにして、インタフェース変換装置10は、テープデバイス3から通知されたエラー発生の判断に基づいて処理を行うようにしてもよい。
 転送済みデータ判別及び破棄手段20は、転送データの再転送が行われた場合に、SAS4から受信した再転送データについて、転送データ情報記憶手段18に記憶されている情報に基づいて、エラー発生前のデータ転送において既にUSB2での受信が完了しているデータであるか否かについての判別を行い、転送完了済みデータである場合に、そのデータを破棄(読み捨て)することにより、USB2に対して重複した転送がなされないようにする手段である。具体的に、転送済みデータ判別及び破棄手段20は、SAS4から順次再送信されてきたデータの累積サイズを算出し、この累積サイズが、転送データ情報記憶手段18において記憶されている転送完了済みのデータサイズに至るまで、再送信されてきたデータを読み捨てていく。この場合、SAS4から再送信されてくるデータは、エラー発生前のデータ転送と同じ順序で送信されてくるので、転送完了済みのデータサイズに至るまで読み捨てを行えば、既にUSB2に転送が完了しているデータのみが、適切に破棄されることになる。
 データ転送再開手段21は、SAS4からのデータ再送信が行われた場合、以前のデータ転送において既にUSB2で受信完了しているデータ以外のデータについて、USB2に対するデータ転送を再開する手段である。具体的に、データ転送再開手段21は、SAS4からの再送信データのデータサイズが、転送データ情報記憶手段18により記憶された転送済みデータのデータサイズを超えたところから、データ変換手段11によるデータ変換、データ転送手段15によるデータ転送、及び転送データ情報記憶手段18による転送済みデータサイズの記憶を再開させるようになっている。この場合、転送データ情報記憶手段18における転送済みデータサイズの値は、エラー発生時点における転送済みデータサイズに、USB2へのデータ転送再開後に転送されたデータのサイズを、順次累積していった値となる。
 なお、インタフェース変換装置10を具体的な変換基板とする場合の具体的な構成としては、上記各手段のうち、例えば、データ変換手段11、データ転送要求受信手段12、データ転送要求送信手段13、データ受信手段14、データ転送手段15、データ転送終了通知受信手段16、データ転送終了通知送信手段17、エラー発生判断手段19、転送済みデータ判別及び破棄手段20、及びデータ転送再開手段21の各手段を変換基板内に設けられたCPUにより構成し、転送データ情報記憶手段18等の各手段を変換基板内に設けられたメモリにより構成すればよい。
 図2は、本実施形態のインタフェース変換装置10によるデータ転送を説明するための図である。データ転送の開始にあたっては、(a)に示すように、USB2からのデータ転送要求であるCBWが、インタフェース変換装置10においてコマンドフレームに変換されて、SAS4へ送信される。このデータ転送要求を受けて、(b)に示すように、SAS4からのデータがデータフレームとして送信され、インタフェース変換装置10においてデータパケットへと変換されて、USB2へ送信される。このようにUSB2へのデータ転送が行われると、(c)に示すように、転送完了済みのデータサイズが記憶される。テープデバイス3からホストコンピュータ1へ送られるべき全データの送信が、特にエラーが発生することなく終了したら、(i)に示すように、SAS4からのデータ転送終了通知であるレスポンスフレームが、インタフェース変換装置10においてCSWに変換されてUSB2へ送信され、転送処理が終了する。
 このようなデータ転送において、(d)に示すように、USB2におけるデータパケットの受信が停滞した状態で所定時間(例えば1ms)以上が経過した場合、(e)に示すように、インタフェース変換装置10においてタイムアウト(エラー発生)の判定がなされ、(f)に示すように、SAS4からのデータフレームの再転送が開始される。この場合、SAS4からのデータ送信は、データ転送要求にしたがって転送されるべき全データの最初からなされるが、このように再送信されてきたデータは、(g)に示すように、再送信データの累積サイズが転送完了済みデータサイズに至るまで読み捨てられる。すなわち、再転送データのうち、既にUSB2への転送完了済みのデータは、データ変換及び転送が行われることなく、破棄される。このような転送完了済みデータの読み捨てが終了し、SAS4からの再送信データが、まだUSB2に転送が成功していないデータとなったら、(h)に示すように、USB2へのデータ転送が再開され、SAS4から再送信されてきたデータフレームがデータパケットに変換されて、USB2へと送信される。なお、(e)インタフェース変換装置10においてタイムアウトの判定を行う代わりに、次の方法でもエラーの検出は可能である。すなわち、(e’)テープデバイス等のデータストレージ用デバイスがタイムアウトを発生し、インタフェース変換装置10に対してデータの再転送を要求する。一方、そのタイムアウトを、インタフェース変換装置10内のデータ変換手段11やデータ転送要求送信手段13,データ受信手段14等が検出し、テープデバイス等のデータストレージデバイスからの上記データ再転送要求に対して、再転送を許可し、それを受けたデータストレージデバイスがデータを再転送する。
 次に、図3のフローチャートに基づいて、本実施形態のインタフェース変換装置10を用いたインタフェース変換方法について詳細に説明する。
 フローチャートのステップS1では、インタフェース変換装置10におけるデータ転送要求受信手段12が、USB2からのデータ転送要求であるCBWを受信する。ステップS2においては、データ変換手段11において、CBWがSASに適したデータ形式であるコマンドフレームに変換される。ステップS3においては、データ転送要求送信手段13が、データ転送要求であるコマンドフレームを、SAS4に向けて送信する。
 続いて、ステップS4において、インタフェース変換装置10のデータ受信手段14により、SAS4からのデータの受信がなされる。具体的には、SAS4からのデータは、所定のフレームサイズに区切られた少なくとも1つのデータフレームとして順次送信され、データ受信手段14により順次受信される。ステップS5においては、データフレームとしてSAS4から送信されてきたデータが、データ変換手段11によって、所定のパケットサイズに区切られた少なくとも1つのデータパケットに変換される。ステップS6においては、データ変換手段11により作成されたデータパケットが、データ転送手段15によりUSB2に向けて順次転送される。
 ステップS7においては、インタフェース変換装置10のエラー発生判断手段19において、USB2へのデータ転送にエラーが発生したか否かの判断がなされる。例えば、インタフェース変換装置10のデータ転送手段15からUSB2に向けてデータパケットの転送が行われたのに対し、USB2におけるデータ受信の完了が所定時間以上にわたって確認されなかった場合、エラー発生判断手段によるエラー発生の判断がなされる。具体的には、各データパケットの送信後、そのデータパケットがUSB2において正しく受信されたことを通知するACK信号(肯定応答信号)がUSB2から送信されて来ないままで、所定時間(例えば1ms)以上が経過した場合、USB2へのデータ転送にエラーが発生したとの判断がなされる。エラーが発生した際に、エラー発生判断手段19は、データ受信手段14がSAS4からのデータを受信しないように制御する。そのため、テープデバイス3はデータを送信出来ない状態で処理が停滞しタイムアウトが発生する。発生したタイムアウトをエラー発生判断手段19が検出する。
なお、エラー発生判断手段19によるエラー発生の判断は、このようなデータ転送が停滞した場合のエラーに限られるものではなく、USB2に対するデータ転送に何らかの問題が生じて、正しいデータ転送が行われなかったことが確認された場合には、エラー発生との判断がなされることになる。
 ステップS7において、データ転送エラー発生との判断がなされなかった場合には、ステップS8に進み、転送データ情報記憶手段18に、転送済みデータに関する情報として、その時点までにUSB2に対してデータ転送が完了したデータ(転送済みデータ)のデータサイズ(データ量)が記憶される。具体的には、各データパケットの送信毎に、そのデータパケットがUSB2において正しく受信されたことを示すACK信号が確認され、ACK信号によりデータ転送の成功が確認されたデータパケットのバイト数を累積して加算していくことにより、その時点での転送完了済みデータのデータ量が算出され、転送データ情報記憶手段18に記憶されることになる。
 なお、USB2へのデータ転送は、データパケット毎に行われるので、上記ステップS6、ステップS7及びステップS8における処理は、実際には、一つ一つのデータパケットの転送毎に繰り返されることになる。そこで、上記のようなデータ量の代わりに、転送完了済みのフレーム数をカウントしてそれを転送データ情報記憶手段18に格納したり、あるいは、送信済みのパケットの数をカウントする手法を用いてもよい。
 また、本実施形態では、転送データ情報記憶手段18に記憶される転送済みデータに関する情報は、転送完了済みデータのデータサイズとしたが、本発明は、このような形態に限られるものではなく、転送されるべき全データのうち、どのデータがUSB2に転送完了しているものであるかを示す情報であれば、どのような情報であっても構わない。また、転送完了済みデータのデータ量の算出に、ACK信号によりデータ転送の成功が確認されたデータパケットのバイト数を累積して加算していく方法を採用する代わりに、図3には示されない以下の方法も採用可能である。すなわち、インタフェース変換装置10のデータ変換手段11,転送データ情報記憶手段18,データ転送手段15,データ受信手段14,またはデータ転送終了通知受信手段16等の側の所定の場所に、バッファ等の一時的なストレージの手段を有している場合に、例えばデータ受信手段14からデータ変換手段11への転送が完了した段階で、その転送済みデータ量をカウントし、それを読み飛ばしサイズとすることも可能である。
 ステップS8で転送済みデータに関する情報の記憶がなされたら、ステップS9において、データ転送終了通知受信手段16が、SAS4からのデータ転送終了通知(レスポンスフレーム)を受信したか否かが確認される。SAS4からのデータ転送終了通知がない場合には、ステップS4に戻って、SAS4からの転送データ受信以下のステップが繰り返される。一方、SAS4からのデータ転送終了通知があった場合には、ステップS10に進み、SAS4からのデータ転送終了通知であるレスポンスフレームが、データ変換手段11によりCSWにデータ変換される。続いて、ステップS11において、データ転送終了通知送信手段17が、データ転送終了通知であるCSWを、USB2に向けて送信することにより、処理が終了する。
 一方、ステップS7において、エラー発生判断手段19によるデータ転送エラー発生の判断がなされた場合には、ステップS12に進み、データ再転送要求を許可する。
 ステップS13においては、データ受信手段14が、データ再送信許可に従い、インタフェース変換装置10はテープデバイス3が送信したデータ再送信許可要求に対しデータの再送信許可を返す。続いて、ステップS14において、転送済みデータ判別及び破棄手段20が、再送信されてきたデータが既にUSB2に転送が完了したデータであるか否かの判断を行い、転送完了済みデータである場合には、ステップS15に進み、その再送信データを破棄(読み捨て)する。
 具体的に、転送済みデータ判別及び破棄手段20は、データ再送信開始後にSAS4から順次送信されてきた再送信データのバイト数を加算していくことにより、累積バイト数を算出し、この再送信データの累積バイト数が、転送データ情報記憶手段18に記憶されている転送完了済みデータのデータサイズ(バイト数)以下である場合は、その時点までに再送信されてきたデータは転送完了済みデータと同一であると判断し、再送信されてきたデータを破棄する。一方、再送信データの累積バイト数が、転送完了済みデータのデータサイズよりも大きくなったら、まだUSB2に転送されていないデータと判断する。
 ステップS14において、転送完了済みデータであるとの判断がなされ、ステップS15において、そのデータの破棄がなされたら、ステップS13に戻って、転送済みデータ判別及び破棄手段20による処理が継続される。一方、ステップS14において、再送信データが転送完了済みデータではないデータに至ったとの判断がなされたら、ステップS5に戻り、通常のデータ転送処理が再開される。
 なお、転送済みデータ判別及び破棄手段20における処理は、転送完了済みデータがUSB2に対して再転送されてしまうことを適切に禁止し得る処理であればよく、このための転送完了済みデータであるか否かの判定方法も、また転送完了済みであると判断された再送信データの処理方法も、転送完了済みデータの重複転送を禁止し得る限り、任意の方法を採用し得る。
 以上のように、本実施形態のインタフェース変換装置10及びインタフェース変換方法によれば、データ転送エラーの発生に起因してデータの再転送が行われる場合、SAS4から、当初送信されるべきであった全データの再送信がなされるのに対して、既にUSB2に対して転送完了済みのデータと同一のデータは破棄され、転送完了していないデータについてのみ、USB2に対する転送が行われる。したがって、USB2は、再転送において受信を予定しているデータ(当初送信されるべきであった全データのうち、まだ転送完了していないデータ)のみを、適切に再受信することになる。よって、エラー発生時のデータ再転送においても、テープデバイス3から送信されるべきデータと、実際にホストコンピュータ1へ送信されるデータとの間に、データの不整合が生じることはなく、適切なデータ再転送を行うことができる。
 また、このような適切なデータ再転送は、再送信されてきたデータの一部を読み捨てる単純な処理だけで達成されるので、例えば、データ再転送を適切に行うために、USB又はSASの独自プロトコルを作成し、この独自プロトコル対応のための変更をホストコンピュータ1又はテープデバイス3に加える等の複雑な処置を必要としない。したがって、インタフェース変換装置だけに必要最小限の変更を加えるだけで、USBとSAS間の適切なデータ再転送が可能となり、コストを削減できるとともに、他の機器への影響も最小限とすることができる。
 また、SAS4から再送信されてきたデータが、USB2に既に転送完了したデータであるか否かの判断は、USB2への転送完了済みデータのデータサイズに基づいてなされるので、この判断のために、必要最小限の情報を保持しておくだけで済み、また、データサイズの大小関係の比較だけで、正確な判断を容易に行うことができる。
 なお、上記実施形態では、インタフェース変換装置10を、USBとSAS間でインタフェース変換を行うものとしたが、本発明の適用範囲は、USBとSAS間のインタフェース変換に限られるものではなく、本発明は、USB及びSAS以外の様々な方式のインタフェース間のインタフェース変換に対しても適用され得るものである。
 次に、図5に示すように、本発明の第1の実施の形態に係るインタフェース変換装置10は、中央処理制御装置101、ROM(Read Only Memory)102、RAM(Random Access Memory)103及び入出力インタフェース109が、バス110を介して接続されている。入出力インタフェース109には、入力装置104、表示装置105、通信制御装置106、記憶装置107及びリムーバブルディスク108が接続されている。
 中央処理制御装置101は、入力装置104からの入力信号に基づいてROM102からインタフェース変換装置10等を起動するためのブートプログラムを読み出して実行し、さらに記憶装置107に記憶されたオペレーティングシステムを読み出す。さらに中央処理制御装置101は、入力装置104や通信制御装置106等の入力信号に基づいて、各種装置の制御を行い、RAM103や記憶装置107等に記憶されたプログラム及びデータを読み出してRAM103にロードするとともに、RAM103から読み出されたプログラムのコマンドに基づいて、データの計算または加工など、前述した一連の処理を実現する処理装置である。
 入力装置104は、操作者(ユーザおよびオペレータ等)が各種の操作を入力するキーボード、マウスなどの入力デバイスにより構成されており、操作者が実施する操作に基づいて入力信号を作成し、入出力インタフェース109及びバス110を介して中央処理制御装置101へ送信される。表示装置105は、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイ等であり、中央処理制御装置101からバス110及び入出力インタフェース109を介して表示装置105において表示させる出力信号を受信し、例えば中央処理制御装置101の処理結果等を表示する装置である。通信制御装置106は、LANカードやモデム等の装置であり、インタフェース変換装置10等をインターネットやLAN等の通信ネットワークに接続する装置である。通信制御装置106を介して通信ネットワークと送受信したデータは入力信号または出力信号として、入出力インタフェース109及びバス110を介して中央処理制御装置101へ送受信される。
 記憶装置107は、半導体記憶装置や磁気ディスク装置等であって、中央処理制御装置101で実行されるプログラムやデータが記憶されている。リムーバブルディスク108は、光ディスクやフレキシブルディスクのことであり、ディスクドライブによって読み書きされた信号は、入出力インタフェース109及びバス110を介して中央処理制御装置101へ送受信される。本発明の第1の実施の形態に係る記憶装置107は、転送データ情報記憶手段18に該当する。
 本発明の第1の実施の形態に係るインタフェース変換装置10の転送データ情報記憶手段18は、記憶装置107が該当し、SAS4からUSB2へのデータ転送の際に一時的に蓄積されるデータと共に、分割されたデータの転送完了時毎に記憶されるデータサイズ等の情報が格納される。また、データ変換手段11、データ転送要求受信手段12、データ転送要求送信手段13、データ受信手段14、データ転送手段15、データ転送終了通知受信手段16、データ転送終了通知送信手段17、エラー発生判断手段19、転送済みデータ判別及び破棄手段20およびデータ転送再開手段21等はインタフェース変換装置10の全体を制御する中央演算処理装置(CPU)の一部として中央処理制御装置101を構成する。さらに、データ転送エラー時のデータ再送信処理に関するプログラムがインタフェース変換装置10の中央処理制御装置101に読み込まれ実行されることによって、転送済みデータ判別及び破棄手段20およびデータ転送再開手段21等に実装される。
(第2の実施形態)
 次に、本発明の第2の実施形態について説明する。
 図6に示すように、インタフェース変換装置30は、第1のインタフェース4の通信方式に適合したデータを、第2のインタフェース2の通信方式に適合したデータ形式に変換するデータ変換部33と、第1のインタフェース4から受信したデータをデータ変換部33へ送信する第1のデータ送受信部31と、データ変換部33による変換後のデータを記憶するデータ記憶部34と、データ記憶部34から受信したデータを第2のインタフェース2へ送信する第2のデータ送受信部32とを設ける。
 以下、第1の装置3をストレージデバイスの一つであるテープデバイス3、第1のインタフェース4をSerial Attached SCSIであるSAS4、第2の装置1を所定のOS(Operating System)が搭載されたパーソナルコンピュータであるホストコンピュータ1、第2のインタフェース2をUniversal Serial BusであるUSB2と想定して説明する。
 従って、例えば、第2の装置1のリードコマンドに基づいて、第2のインタフェース2が送信するコマンドは、後述するCBWであり、第1のインタフェース4が受信するコマンドは、後述するコマンドフレームである。また、第1のインタフェース4が送信するレスポンスは、後述するレスポンスフレームであり、第2のインタフェース2が受信するレスポンスは、例えば、後述するCSWである。
 なお、装置やインタフェース等はこれらのものに限定されることはない。
 第1の装置3は通信インタフェースとして第1のインタフェース4を設ける。
 ここで、第2の装置(ホストコンピュータ)1が処理するデータは、第1の装置(テープデバイス)3の記憶媒体である磁気テープにブロックという形式のデータに複数に分割され記録される。なお、ブロック単位で分割されたデータをデータブロックという。また、第2の装置1において扱われるファイルはそのサイズによって複数のデータブロックに分割される。
 また、第2のインタフェース2がCBWを送信してからCSWを受信するまで、あるいは第1のインタフェース4がコマンドフレームを受信してからレスポンスフレームを送信するまでの一連のコマンドに基づいて転送されるデータは1ブロックである。また、当該ブロックは第1のインタフェース4のデータが送信(転送)される経路内において、フレーム単位に分割され転送される。
 第1の装置3及びインタフェース変換装置30間、換言すると第1のインタフェース(SAS)4における通信のトランスポート層はSSP(Serial SCSI Protocol)トランスポート層に準拠している。
 SSPにおいては、上述のフレームは、複数のフレームのタイプ(型)が規定されている。例えば、フレームのタイプは、所定のフィールドにデータがセットされたデータフレーム、所定のフィールドにコマンドがセットされたコマンドフレーム、所定のフィールドにレスポンスがセットされたレスポンスフレーム等がある。
 即ち、第1の装置3とインタフェース変換装置30との間においては、データフレーム、コマンドフレーム(データ転送要求ともいう)、レスポンスフレーム(データ転送終了通知ともいう)が送受信される。
 具体的には、第2の装置1のリードコマンドに対応して、第1のインタフェースがコマンドフレームを受信する。また、コマンドフレームに基づいて、第1の装置3がデータを送信する際、第1のインタフェース4がデータフレームを送信する。また、データフレームの送信が終了した結果(応答)であるレスポンスとして、第1のインタフェースがレスポンスフレームを送信する。
 なお、データフレーム、コマンドフレーム及びレスポンスフレームは、第1のインタフェース4の通信方式に適合したデータ形式のデータである。
 図6に示すように、第2の装置1は通信インタフェースとして第2のインタフェース2を設ける。
 ここで、第2のインタフェース(USB)2のデータが転送される経路内において、上述のブロックは、パケット単位に分割され転送される。なお、パケット単位で分割されたデータをデータパケットいう。
 第2の装置1及びインタフェース変換装置30間、換言すると第2のインタフェース(USB)2における通信プロトコル(データ転送プロトコル)として、バルクオンリー転送を採用する。
 例えば、図6の構成において、第2の装置1がリードコマンドを送信する際、当該コマンドは、第2のインタフェース2によってCBWのフォーマットで送信される(このコマンドを、単にCBW、またはデータ転送要求という)。
 CBWは複数の情報等を有しており、例えば、CBWと対応するCSWと結びつけるための情報、データトランスポートの予定データ長に係る情報、バルクイン転送かバルクアウト転送かを決定付ける情報等がある。
 そして、第2の装置1のリードコマンドに対応して、第1のインタフェース4が、第1の装置3に記憶された複数のブロックデータの1ブロック分をデータフレームに分割して送信した後、コマンドに対するステータスに係る情報(コマンドを正常に達成できたか、エラーとなったか等の情報)を含むレスポンスがCSWのフォーマットで送信される(このレスポンスを、単にCSWまたはデータ転送終了通知という)。
 なお、CBW、CSW、及びデータパケットは、第2のインタフェース2の通信方式に適合したデータ形式のデータである。
(第1のデータ送受信部31)
 第1のデータ送受信部31は、第1のインタフェース4、データ変換部33、データ記憶部34に接続される。
 また、第1のデータ送受信部31は、データ転送要求送信手段13と、データ受信手段14と、データ転送終了通知受信手段16とを設ける。
 第1のデータ送受信部31は、第1のインタフェース4から送信されたデータ(データフレーム、レスポンスフレーム)を受信するとともにデータ変換部33へ送信する。また、データ変換部33から受信したデータ(コマンドフレーム)を第1のインタフェース4へ送信する。
 具体的には、データ転送要求送信手段13は、データ変換部33により変換されたコマンドフレームを受信するとともに第1のインタフェース4へ送信する。
 データ受信手段14は、第1のインタフェース4から送信(転送)されたデータフレームを受信するとともにデータ変換部33へ送信する。
 データ転送終了通知受信手段16は、第1のインタフェース4から送信(転送)されたレスポンスフレームを受信するとともにデータ変換部33へ送信する。
(データ変換部33)
 図6に示すように、データ変換部33は、第1のデータ送受信部31、第2のデータ送受信部32及びデータ記憶部34に接続され、第1の実施形態のデータ変換手段11の機能を含む。
 即ち、第1のインタフェース4の通信方式に適合したデータを第2のインタフェース2の通信方式に適合したデータ形式に変換する(以下、第1変換処理ともいう)。
 また、第2のインタフェース2の通信方式に適合したデータを第1のインタフェース4の通信方式に適合したデータ形式に変換する(以下、第2変換処理ともいう)。
 具体的には、データ変換部33は、第1変換処理として、第1のデータ送受信部31から送信されたデータフレームを受信してデータパケットに変換する。また、第1のデータ送受信部31から送信されたレスポンスフレームを受信してCSWに変換する。
 また、第2変換処理として、第2のデータ送受信部32から送信されたCBWを受信してコマンドフレームに変換する。
 データ変換部33は、変換後のデータをデータ記憶部34へ送信する。
(データ記憶部34)
 図6に示すように、データ記憶部34は、第1のデータ送受信部31、第2のデータ送受信部32及びデータ変換部33に接続される。
 データ記憶部34は、データ変換部33により変換されたデータまたはレスポンスを受信して記憶する。
 具体的には、データ変換部33により、データフレームが変換されたデータパケット、レスポンスフレームが変換されたCSWを記憶する。
 データ記憶部34は、データブロックの1ブロックを格納可能な容量を有する。即ち、1つのコマンドで転送されるデータブロックを格納(記憶)することができる。データブロックのサイズは1~16777215byteに規定されているため、データ記憶部34の記憶域として16777215byte以上の容量を確保すればよい。
 また、データ記憶部34は、データの上書き処理を行う。
 即ち、第2のインタフェース2が送信した1つのコマンド(CBW)に基づいて、第1のインタフェース4により複数のデータブロックのうち1ブロック(便宜的に第1ブロックという)分のデータフレームが送信(転送)されて、第2のインタフェース2がCSWの受信したことによって、1つのコマンドに対する処理が終了した後、次の1つのコマンド(CBW)に基づいて、第1のブロックに隣接する1ブロック(便宜的に第2ブロックという)が送信(転送)された場合、データ記憶部34は、既に記憶されている第1ブロックに係るデータパケットを第2ブロックに係るデータパケットに順次上書きして記憶する。
 データ記憶部34は、記憶済みのデータを第2のデータ送受信部32へ送信する。
(第2のデータ送受信部32)
 図6に示すように、第2のデータ送受信部32は、第2のインタフェース2、データ変換部33、データ記憶部34に接続される。
 また、データ転送要求受信手段12と、データ転送手段15と、データ転送終了通知送信手段17とを設ける。
 第2のデータ送受信部32は、第2のインタフェース2から送信されたデータ(CBW)を受信するとともに、データ変換部33へ送信し、データ記憶部34から送信されたデータ(データパケット、CSW)を受信するとともに、第2のインタフェース2へ送信する。
 具体的には、データ転送要求受信手段12は、第2のインタフェース2から送信(転送)されたCBWを受信するとともにデータ変換部33へ送信する。
 データ転送手段15は、データ変換部33により変換され、データ記憶部34に記憶されているデータパケットを受信するとともに第2のインタフェース2へ送信する。
 データ転送終了通知送信手段17は、データ変換部33により変換され、データ記憶部34に記憶されているCSWを、受信するとともに第2のインタフェース2へ送信する。
 また、データ転送終了通知送信手段17がCSWを第2のインタフェース2へ送信するタイミングは、第2のインタフェース2が、コマンドに応じて送信されるべきデータパケットの全てを受信した後である。
 これにより、第1のインタフェース(SAS)4の転送速度が第2のインタフェース(USB)2の転送速度よりも早いという転送速度の差によって、データパケット送信中にCSWが第2のインタフェース2へ送信されてしまうという不具合を防止することができる。
 第2のデータ送受信部32は、データ記憶部34に記憶されている複数のデータパケットを受信して、FIFOに従って、順次第2のインタフェース2へ送信する。また、第2のデータ送受信部32は、データパケットの送信間隔の大小に依存せずにデータパケットを送信する。換言すると、データの送信間隔が大きくなったとしても、第2のデータ送受信部32は、データパケットの送信を待機させて、所定のタイミングで送信を再開する。
 これにより、第2のデータ送受信部32がデータパケットを第2のインタフェース2へ送信する際、第1のインタフェース(SAS)4のデータの転送速度が第2のインタフェース(USB)2の転送速度よりも早いという転送速度の差に起因して、第2のインタフェース2の処理(受信)が間に合わず、送信間隔が所定時間(例えば、1ms)以上の開き(以下、単に、データの転送速度の差によるデータの転送待ちという)が生じてしまった場合であっても、第2のデータ送受信部32はデータの送信を待機し、第2のインタフェース2の処理が完了し次第(所定のタイミングで)、未送信のデータパケットから順次送信する。
 これにより、たとえデータの転送速度の差によるデータパケットの転送待ちが発生したとしても、データパケットが前後して送信されるようなことはなく、確実にデータを送信することができ、インタフェース変換装置30の信頼性の向上を図ることができる。
(インタフェース変換装置30によるデータ転送について)
 図7を参照して、インタフェース変換装置30によるデータ転送について説明する。なお、本説明において、第1の装置3をテープデバイス3、第1のインタフェース4をSAS4、第2の装置1をホストコンピュータ1、第2のインタフェース2をUSB2、第1及び第2のデータ送受信部31、32をPCI(Peripheral Component Interconnect)バスであるPCIバス31、32、データ変換部33を、データ変換に係る処理機能を有するCPU(Central Processing Unit)であるCPU33、データ記憶部34をRAM(Random Access Memory)であるRAM34として説明する。
 また、テープデバイス3からホストコンピュータ1へのデータ転送の契機として、例えば、操作者が、ホストコンピュータ1に対して、磁気テープに記録されているデータをハードディスクへのコピー(以下、単にコピー処理という)をするように指示することを想定する。なお、インタフェース変換装置30の作動や制御等に関係のない処理等については説明を省略する。
 操作者の指示により、ホストコンピュータ1はテープデバイス3に対してデータの読み込み命令であるリードコマンドを送信する。その際、図7中(a)に示すように、USB2はCBWをインタフェース変換装置30へ送信(転送)し、PCIバス32は受信したCBWをCPU33へ送信し、CPU33は受信したCBWをコマンドフレームに変換し、PCIバス31は変換されたコマンドフレームを所定のタイミングでSAS4へ送信する。
 次いで、テープデバイス3はコマンドフレームに基づくデータ(ブロックデータ)をホストコンピュータ1へ送信する。その際、図中(b)及び(c)に示すように、SAS4はブロックデータを分割したデータフレームをPCIバス31に送信(転送)し、PCIバス31は受信したデータフレームをCPU33へ送信し、CPU33は受信したデータフレームをデータパケットに変換してRAM34へ送信し、RAM34は受信したデータパケットを記憶域に記憶する。このような流れで、リードコマンドに基づいて1ブロック分の全てのデータフレームをデータパケットに変換し、RAM34に記憶することができる。
 SAS4は、ブロックデータの1ブロック分の全てのデータフレームをPCIバス31に送信すると、図中(d)に示すように、レスポンスフレームをPCIバス31へ送信(転送)し、PCIバス31は受信したレスポンスフレームをCPU33へ送信し、CPU33は受信したレスポンスフレームをCSWに変換してRAM34へ送信し、RAM34は受信したCSWを記憶する。
 このように、全てのデータパケットをUSB2が受信してから送信されるべきであるCSWをRAM34に記憶させるという、時間的な緩衝機能を持たせることによって、後述するように、PCIバス32は適切なタイミングでCSWをUSB2へ送信することができる。
 以上の(b)~(d)までがSAS4側の処理ということができる。
このように、テープデバイス3及びインタフェース変換装置30間で処理を略完結させることができるため、USB2の通信の影響を受けないようにして、データフレームに分割したブロックの全てを送信し続けることが可能となる。従って、USB2及びSAS4間におけるデータの転送速度の差によるデータの転送待ち(タイムアウト)を解消することができ、エラーの発生率を低減させることができる。
 次いで、図中(e)に示すように、PCIバス32は、RAM34に記憶されたデータパケットを受信して、USB2へ送信する。
 ここで、図中(f)に示すように、何らかの原因で、USB2によるデータパケットの受信ができずに所定時間(例えば1ms)以上が経過してしまうことがある。
 その際、PCIバス32は、データパケットの送信を待機する。
 そして、USB2の受信に係る処理が完了し次第、図中(g)に示すように、データを途中から、換言すると未送信のデータパケットをUSB2へ送信を開始する。
 図中(h)に示すように、PCIバス32は、最後のデータパケットを受信してUSB2へ送信することによって、1ブロック分の全てのデータが送信される。
 図中(i)に示すように、PCIバス32は、上記(h)の最後のデータパケットをUSB2へ送信した後、RAM34に記憶されたCSWをUSB2へ送信する。
 以上の(e)~(i)までがUSB2側の処理ということができる。
 なお、(a)はSAS4側及びUSB2側の処理を跨いでいる。
(インタフェース変換装置30を用いたインタフェース変換方法の手順に係るフロー)
 図8を参照して、インタフェース変換装置30を用いたインタフェース変換方法の手順について説明する。
 図8に示すように、ステップS23~ステップS28(SAS(第1のインタフェース)4側の処理ステップ)及びステップS29~ステップS33(USB(第2のインタフェース)2側の処理ステップ)は、ステップS22の後に並列処理として実行される。
 なお、データ転送の契機として、上述と同様、例えば、操作者が、ホストコンピュータ(第2の装置)1に対してコピー処理を指示することを想定する。なお、インタフェース変換装置30の作動や制御等に関係のない処理等については説明を省略する。
 操作者の指示により、ホストコンピュータ1はリードコマンドを送信する。その際、PCIバス(第2のデータ送受信部)32は、USB2から送信されたデータ転送要求であるCBWを受信する(ステップS20)。
 CPU(データ変換部)33は、PCIバス32から受信したCBWを同じくデータ転送要求であるコマンドフレームに変換(第2変換処理)する(ステップS21)。
 PCIバス(第1のデータ送受信部)31は、第2変換処理されたコマンドフレームをSAS4へ送信する(ステップS22)。
 続いて、SAS側の一連の処理方法として、PCIバス31は、SAS4により分割されて送信されたデータフレーム(ブロックデータの1ブロック分)を受信する(ステップS23)。そして、CPU33は、データフレームをデータパケットに変換(第1変換処理)する(ステップS24)。
 RAM(データ記憶部)34は、第1変換処理されたデータパケットを記憶域に順次記憶する。(ステップS25)。
 ここで、CPU33は、SAS4から送信されたデータ転送終了通知であるレスポンスフレームを、PCIバス31を介して受信した場合(ステップS26でYES)、同じくデータ転送終了通知であるCSWに変換(第1変換処理)する(ステップS27)。
 次いで、RAM34は、第1変換処理されたCSWを記憶域に記憶する。(ステップS28)。
 一方、ステップS26において、CPU33が、SAS4から送信されたデータ転送終了通知であるレスポンスフレームを受信していない場合(ステップS26でNO)、ステップS23の処理に戻る。
 次に、ステップS22の処理に続くUSB2側の処理方法として、まず、RAM34がデータパケットを記憶している場合(ステップS29でYES)、PCIバス32は、RAM34に記憶されているデータパケットを受信してUSB2へ送信する(ステップS30)。
 一方、ステップS29において、RAM34がデータパケットを記憶していない場合(ステップS29でNO)、当該条件判断が繰り返し行われる。
 PCIバス32によりUSB4に全てのデータパケット(1ブロック分)が送信され(ステップS31でYES)、さらに、RAM34にCSWが記憶されている場合(ステップS32でYES)、PCIバス32は、記憶されているCSWをUSB2へ送信する(ステップS33)。
 一方、ステップS31において、PCIバス32によりUSB4に全てのデータパケット(1ブロック分)が送信されていない場合(ステップS31でNO)、ステップS30の処理に戻る。また、ステップS32において、RAM34にCSWが記憶されていない場合(ステップS32でNO)、当該条件判断が繰り返し行われる。
 以上、本発明の第1及び第2の実施形態について説明したが、本発明の要旨を逸脱しない範囲内で、本実施形態のインタフェース変換装置10、30に対して、次のような変形や変更を施すことが可能である。なお、上述の本発明の2つの実施形態、及び後述する変形例におけるそれぞれの構成要件、構成部の配置、データの流れ等を適宜組み合わせることが可能である。
(第2の実施形態の変形例1)
 図9に示すように、インタフェース変換装置30Aは、データの送受信を行う構成部としてデータ送受信装置40を備える。
 データ送受信装置40は、CBW及びコマンドフレームなどのコマンドを送受信するコマンド送受信部41と、データを送受信するデータ送受信部42と、CSW及びレスポンスコマンドなどのレスポンスを送受信するレスポンス送受信部43とを設ける。
 即ち、コマンド送受信部41は、データ転送要求受信手段12及びデータ転送要求送信手段13と同様の機能を含み、データ送受信部42は、データ受信手段14及びデータ転送手段15と同様の機能を含み、レスポンス送受信部43は、データ転送終了通知受信手段16及びデータ転送終了通知送信手段17と同様の機能を含む。
 例えば、コマンド送受信部41は、第2の装置1のリードコマンドに基づいて第2のインタフェース2が送信するCBWを受信するとともに、データ変換部へ送信する。また、データ変換部33により変換さたコマンドフレームを受信するとともに、第1のインタフェース4へ送信する。
 データ送受信部42は、コマンドフレームに基づいて第1のインタフェースにより送信されるデータフレームを受信するとともに、データ変換部33へ送信する。また、データ変換部33により変換された後、データ記憶部34に記憶されたデータパケットを受信するとともに、第2のインタフェース2へ送信する。
 レスポンス送受信部43は、第1のインタフェースが全てのデータフレームを送信した後に送信するレスポンスフレームを受信するとともに、データ変換部33へ送信する。また、データ変換部33により変換された後、データ記憶部34に記憶されたCSWを受信するとともに、第1のインタフェース2へ送信する。
(第2の実施形態の変形例2)
 図10に示すように、インタフェース変換装置30Bは、データ記憶部34に接続されるデータ削除部39を備える。データ削除部39は、第2の実施形態のデータ記憶部34の上書き処理の代わりに、USB2にCSWが送信されたことに基づいて、データ記憶部34の記憶域に記憶されている不要となったデータを削除する。
 即ち、第2のインタフェース2が送信した1つのコマンド(CBW)に基づいて、第1のインタフェース4によりデータブロックの1ブロック(便宜的に第3ブロックという)分のデータフレームが送信(転送)されて、第2のインタフェース2がCSWの受信したことによって、1つのコマンドに対する処理が終了した後、データ削除部39は、第3ブロックに係るデータを削除する。
(第2の実施形態の変形例3)
 図11に示すように、CPU(データ変換部)33をUSB2側に設け、RAM(データ記憶部)34をSAS4側に設ける。
 図中(b’)及び(c’)に示すように、SAS4はデータブロックを分割したデータフレームをPCIバス31に送信(転送)し、PCIバス31は受信したデータフレームをRAM34へ送信し、RAM34は受信したデータフレームを記憶域に記憶する。
 このような流れで、リードコマンドに基づいて1ブロック分の全てのデータフレームを記憶することができる。
 SAS4は、1ブロック分の全てのデータフレームをPCIバス31に送信すると、図中(d’)に示すように、レスポンスフレームをPCIバス31へ送信(転送)し、PCIバス31は受信したレスポンスフレームをRAM34へ送信し、RAM34は受信したレスポンスフレームを記憶域に記憶する。
 図中(e’)に示すように、CPU33は記憶されているデータフレームを順次受信して、データフレームがRAM34に記憶された順にデータパケットに変換し、PCIバス32は、変換されたデータパケットを受信して、CPU33に変換された順にUSB2へ順次送信する。
 ここで、図中(f)に示すように、USB2がデータパケットの受信ができずに所定時間(例えば1ms)以上が経過してしまうことがある。
 その際、PCIバス32は、データパケットの送信を一時的に待機する。
 そして、USB2の受信に係る処理が完了し次第、図中(g’)に示すように、データを途中から、換言すると未送信のデータパケットをUSB2へ送信を開始する。
 そして、USB2の受信に係る処理が完了し次第、図中(g’)に示すように、CPU33はデータパケットへの変換をデータの途中から、換言すると未変換のデータパケットから順次開始し、PCIバス32は変換されたデータパケットを受信して、USB2へ送信する。
 図中(h’)に示すように、CPU33は最後のデータフレームを変換し、PCIバス32は変換された最後のデータパケットを受信して、USB2へ送信することによって、1ブロック分の全てのデータが送信される。
 図中(i’)に示すように、上記(h’)の最後のデータパケットをUSB2へ送信した後、CPU33は、RAM34に記憶されたレスポンスフレームをCSWに変換し、PCIバス32は、変換されたCSWを受信して、USB2へ送信する。
 ここで、CPU33は、データ記憶部34に記憶されたデータフレームを、FIFOに従って順次データパケットに変換する。PCIバス32は、CPU33のデータの変換順にデータパケットを順次USB2へ送信する。また、PCIバス32は、データパケットの送信間隔の大小に依存せずにデータパケットを送信する。
 これにより、データの転送速度の差によるデータの転送待ちが生じてしまった場合であっても、PCIバス32はデータパケットの送信を待機し、USB2の処理が完了し次第、PCIバス32はCPU33の変換順にデータパケットをUSB2に順次送信する。
 なお、図中(a)は、図7における(a)と同一の処理のため説明を省略する。
(第2の実施形態の変形例4)
 図12に示すように、データ記憶部(RAM)34の記憶対象を、コマンド(データ転送要求)であるCBW含むものとする。
 図中(a’)に示すように、USB2はCBWをPCIバス32へ送信(転送)し、PCIバス32は受信したCBWをRAM34へ送信し、CPU33は記憶されてCBWをコマンドフレームに変換し、PCIバス31は変換されたコマンドフレームをSAS4へ送信する。
 なお、図中(b)~(i)は、図7における(b)~(i)と同一の処理のため説明を省略する。
(第2の実施形態の変形例5)
 図13に示すように、上記の変形例3及び変形例4を組み合わせることができる。即ち、CPU(データ変換部)33をUSB2側に設け、RAM(データ記憶部)34をSAS4側に設けるとともに、データ記憶部(RAM)34の記憶対象を、コマンド(データ転送要求)であるCBWを含むものとする。
 図中(a’’)に示すように、USB2はCBWをPCIバス32へ送信(転送)し、PCIバス32は受信したCBWをCPU33へ送信し、CPU33はCBWをコマンドフレームに変換し、RAM34は、変換されたコマンドフレームを記憶し、PCIバス31は記憶されているコマンドフレームをSAS4へ送信する。
 なお、図中(b’)~(i’)は、図11における(b’)~(i’)と同一の処理のため説明を省略する。
第3の実施形態
 以下、本発明の第3の実施形態を図14~図29に基づいて説明する。図14には、第3の実施形態に係る情報処理システム1010の概略構成が示されている。
 この情報処理システム1010は、情報処理装置10100と、テープ装置10205などを備えている。
 テープ装置10205は、記録媒体である磁気テープと、該磁気テープに対してデータの読み書きを行うためのRW装置と、情報処理装置10100からの指示に応じて該RW装置を制御する制御装置などから構成されている。なお、磁気テープはカートリッジ化されており、取り替えることが可能である。
 磁気テープには、ブロックサイズの異なる複数のブロックにそれぞれデータが記録されている。
 ここでは、テープ装置10205は、USB規格に対応している。
 情報処理装置10100は、一例として図15に示されるように、CPU10110、RAM10120、ROM10130、表示装置10140、入力装置10150、HDD装置10160、光ディスク装置10170、及びUSBポートPuなどを有している。
 表示装置10140は、表示器として液晶ディスプレイを含み、CPU10110から指示された各種情報を表示する。
 入力装置10150は、入力媒体としてキーボードを含み、操作者から入力された各種情報をCPU10110に通知する。
 HDD装置10160は、記録媒体であるハードディスクと、該ハードディスクに対してデータの読み書きを行うためのRW装置と、CPU10110の指示に応じて前記RW装置を制御する制御装置などから構成されている。そして、ハードディスクには、OSを含む複数のプログラム、該複数のプログラムで用いられる各種データなどが記録されている。
 光ディスク装置10170は、記録媒体である光ディスクに対してデータの読み書きを行うためのRW装置と、CPU10110の指示に応じて該RW装置を制御する制御装置などから構成されている。
 CPU10110は、ROM10130及びRAM10120に格納されているプログラムを実行することができる。
 ROM10130には、電源投入時にCPU10110によって実行されるプログラム、いわゆるブートプログラムが格納されている。このブートプログラムが実行されると、ハードディスクに記録されているOSがRAM10120に転送される。
 CPU10110は、ブートプログラムの実行が完了すると、RAM10120に転送されたOSを起動する。
 USBポートPuには、テープ装置10205が接続される。
 ここでは、情報処理装置10100として、パーソナルコンピュータが用いられている。そして、OS(オペレーティングシステム)として、マイクロソフト社のWindows(登録商標)が用いられている。
 OSは、一例として図16に示されるように、ストレージクラスドライバ10301、ストレージポートドライバ10303、USBマスストレージクラスドライバ10305、SCSIミニポートドライバ10307、SASミニポートドライバ10309、USBポートドライバ10311を含んでいる。なお、ストレージクラスドライバ10301を特定する必要がある場合は、便宜上、SCSIデバイスに対応するストレージクラスドライバ10301を「ストレージクラスドライバ10301a」、SASデバイスに対応するストレージクラスドライバ10301を「ストレージクラスドライバ10301b」、USBデバイスに対応するストレージクラスドライバ10301を「ストレージクラスドライバ10301c」ともいう。
 ストレージクラスドライバ10301は、各ストレージに共通する機能が実装されたドライバであり、ストレージの種類に応じた機能を提供する。例えば、ストレージがテープの場合は、テープドライバとも呼ばれ、テープ巻戻しやテープ排出などのテープ装置を制御する特有の機能を有している。また、ストレージがディスクの場合は、ディスクドライバとも呼ばれ、ディスク容量を取得する特有の機能を有している。
 ストレージポートドライバ10303は、SCSIプロトコルに共通する機能が実装されたドライバであり、各ポートドライバにインタフェースを提供する。
 USBマスストレージクラスドライバ10305は、USB接続機器をストレージ装置として制御するためのドライバであり、該USBマスストレージクラスドライバ10305上でストレージクラスドライバ10301が動作するのを可能にする。なお、USBマスストレージクラスドライバ10305がない場合は、各USB接続機器に対応した専用のドライバが必要となる。
 SCSIミニポートドライバ10307は、SCSIポートを制御する。SASミニポートドライバ10309は、SASポートを制御する。USBポートドライバ10311は、USBポートを制御する。
 本実施形態では一例として図17に示されるように、情報処理装置10100は、OS上で動作する仮想SCSIミニポートドライバ10401を有している。この仮想SCSIミニポートドライバ10401は、OS上に仮想のSCSIポートPsを作成する。なお、ストレージクラスドライバ10301を特定する必要がある場合は、便宜上、仮想のSCSIポートPsに仮想的に接続されたデバイスに対応するストレージクラスドライバ10301を「ストレージクラスドライバ10301d」ともいう。
 なお、仮想SCSIミニポートドライバ10401は、ハードディスクに記録されており、OSとともにRAM10120に転送される。そして、仮想SCSIミニポートドライバ10401は、OSに続いて起動される。
 ここでは、この仮想SCSIミニポートドライバ10401は、図18に示されるように、ストレージポートドライバ10303とストレージクラスドライバ10301cとの間に位置している。
 そして、仮想SCSIミニポートドライバ10401は、USBポートPuにおけるUSBデバイスの着脱を監視し、該着脱がなされると、仮想のSCSIポートPsにおける該USBデバイスの着脱情報をストレージポートドライバ10303に通知する。
 このときの仮想SCSIミニポートドライバ10401及びストレージポートドライバ10303の動作について簡単に説明する。
(1)仮想SCSIミニポートドライバ10401は、起動すると、USBポートPuにおけるUSBデバイスの着脱を監視するワーカースレッドを作成する。
(2)このワーカースレッドが、ストレージクラスドライバ10301cからの情報に基づいて、USBポートPuにおけるデバイスの着脱状態の変化を監視する。
(3)ワーカースレッドが上記着脱状態の変化を検知すると、仮想SCSIミニポートドライバ10401は、デバイスの着脱状態に変更があったことをストレージポートドライバ10303に通知する。
(4)すると、ストレージポートドライバは、仮想SCSIミニポートドライバ10401に対して、デバイスの着脱状態のチェックを指示する。
(5)仮想SCSIミニポートドライバ10401は、ストレージクラスドライバ10301cからの情報に基づいて、USBポートPuにおけるデバイスの着脱状態をチェックし、その結果をストレージポートドライバ10303に通知する。
 これにより、ストレージポートドライバ10303は、仮想のSCSIポートPs(実際は、USBポートPu)におけるデバイスの着脱状態を認識することができる。
 そして、ストレージポートドライバ10303は、仮想のSCSIポートPsにデバイス(ここでは、USBデバイス)が接続されると、該デバイスを、SCSIデバイスとしてレジストリに登録する。このとき、USBマスストレージクラスドライバ10305は、該デバイスを、USBデバイスとしてレジストリに登録する。すなわち、該デバイスは、SCSIデバイス及びUSBデバイスとしてレジストリに登録される。
 また、仮想SCSIミニポートドライバ10401は、仮想SCSIミニポートドライバ10401を経由する全てのコマンドを、ストレージクラスドライバ10301c及びUSBマスストレージクラスドライバ10305を介してUSBポートドライバ10311に、そのフォーマットを変更することなく転送するパススルー機能を有している。
 SCSIインタフェースでは、それぞれのデバイスに対してIDが必要となる。前記ワーカースレッドが接続状態の変化を監視することにより、0~15のIDをチェックし、仮想SCSIポートに空いているIDを割り当てる。
 次に、テープ装置10205にセットされている磁気テープに記録されているデータをハードディスクにコピーする場合について説明する。ここでは、すでにUSBポートPuにテープ装置10205が接続されているものとする。
 操作者は、入力装置10150を介して、SCSI規格に対応したテープ装置用に作成され、該テープ装置に対してデータの読み書きを行うためのアプリケーションソフトウェアであるテープRWソフトウェア(以下では、「テープRWソフトウェア10500」という)を起動させる。なお、該テープRWソフトウェア10500は、ハードディスクに記録されており、操作者の起動要求があると、OSによってRAM10120に転送され、起動される。
 テープRWソフトウェアは、磁気テープに記憶されているデータのレコード形式が固定長、及び可変長に対応している。操作者は、磁気テープのレコード形式に応じて、固定長、又は可変長を選択することができる。なお、ここでは、磁気テープに記憶されているデータのレコード形式が、可変長形式の場合について説明する。
 図19には、テープRWソフトウェア10500と各ドライバとの関係が示されている。
 テープRWソフトウェア10500は、起動されると、レジストリを検索し、SCSIデバイスとして登録されているデバイスを、制御対象のデバイスとする。ここでは、テープ装置10205が制御対象のデバイスとされる。すなわち、テープRWソフトウェア10500は、仮想SCSIポートPsにテープ装置10205が接続されていることを認識する。
 なお、テープRWソフトウェア10500は、制御対象のデバイスを、ストレージクラスドライバ10301dを介してストレージポートドライバ10303に問い合わせても良い。
 そして、テープRWソフトウェア10500は、初期メニュー画面を表示装置10140に表示させる。
 操作者は、入力装置10150を介して、コピーするブロックのサイズを指定してハードディスクへのコピー(以下では、便宜上、単に「コピー処理」ともいう)をテープRWソフトウェア10500に指示する。これにより、テープRWソフトウェア10500から、テープ装置10205に対するリード(READ)コマンドが発行される。なお、ここでは、磁気テープに記録されている実際のブロックサイズが不明であるため、操作者は、大きめのブロックサイズを指定する。
 テープRWソフトウェア10500から発行されるリードコマンドのフォーマットが図20に示されている。操作者が指定したブロックサイズは、「Transfer Length」にバイト単位でセットされる。
 ここで、テープRWソフトウェア10500から発行されたコマンドの流れについて図21を用いて説明する。
 テープRWソフトウェア10500からコマンドが発行されると、該コマンドは、ストレージクラスドライバ10301a、ストレージクラスドライバ10301b及びストレージクラスドライバ10301dに送られる。該コマンドを受け取った各ストレージクラスドライバは、SCSIデバイスでの該コマンドの実行に必要なパラメータ情報を該コマンドに付加し、いわゆるSRB(SCSI REQUEST BLOCK)形式(図22参照)にして、ストレージポートドライバ10303に送出する。
 ここで、SRB形式について簡単に説明する。図22において、項目名「Function」は、要求するオペレーションに関する情報がセットされ、例えば、要求するコマンドがSCSIコマンドであれば、「SRB_FUNCTION_EXECUTE_SCSI(0x00)」がセットされる。
 項目名「SrbStatus」は、要求完了時のステータスに関する情報がセットされ、例えば、デバイスへのコマンドの発行が成功であれば、「SRB_STATUS_SUCSSES(0x01)」がセットされる。なお、装置がいわゆる「CHECK CONDITION」を返したときも、成功として扱われる。
 項目名「ScsiStatus」は、SCSIコマンドの結果に関する情報がセットされ、例えば、正常終了であれば、「SCSISTAT_GOOD(0x00)」がセットされ、いわゆる「CHECK CONDITION」であれば、「SCSISTAT_CHECK_CONDITION(0x02)」がセットされる。
 項目名「DataTransferLength」は、データ入出力バッファのサイズに関する情報がセットされ、実際に転送されたデータサイズがバッファサイズ未満であれば、実際に転送されたデータサイズで上書きされる。
 項目名「Cdb」は、「Command Descripter Block」であり、デバイスに発行するコマンド関する情報がセットされる。
 ストレージポートドライバ10303は、該SRBを各ポートドライバに送出する。そして、仮想SCSIミニポートドライバ10401が受け取ったSRBは、ストレージクラスドライバ10301cを介してUSBマスストレージクラスドライバ10305に転送される。
 USBマスストレージクラスドライバ10305は、受け取ったSRBに含まれるコマンドに、USBデバイスでの該コマンドの実行に必要なパラメータ情報を付加し、いわゆるURB(USB REQUEST BLOCK)形式にして、USBポートドライバ10311に送出する。
 テープRWソフトウェア10500で発行されたコマンドを受け取ったときの、仮想SCSIミニポートドライバ10401の動作について、図23のフローチャートを用いて説明する。図23のフローチャートは、このときに仮想SCSIミニポートドライバ10401で実行される一連の処理アルゴリズムに対応している。この処理アルゴリズムは、CPU10110で実行される。
 最初のステップS10401では、受け取ったコマンドがリードコマンドであるか否かを判断する。ここでは、該コマンドはリードコマンドであるため、ここでの判断は肯定され、ステップS10403に移行する。
 このステップS10403では、リードコマンドに含まれるSILI(Suppress Incorrect Length Indicator)(図20参照)の設定内容を変更したか否かの情報がセットされるSILI変更フラグに「0」をセットし、初期化する。
 次のステップS10405では、リードコマンドに含まれるSILIの設定内容が「1」すなわち「有効」であるか否かを判断する。SILIの設定内容が「有効」であれば、ここでの判断は肯定され、ステップS10407に移行する。
 このステップS10407では、SILIの設定内容を「0」すなわち「無効」に変更する。
 次のステップS10409では、SILI変更フラグに、SILIの設定内容が変更されたことを意味する「1」をセットする。
 次のステップS10411では、該コマンドが含まれるSRBを、ストレージクラスドライバ10301cに転送し、テープRWソフトウェア10500で発行されたコマンドを受け取ったときの処理を終了する。
 なお、上記ステップS10405において、SILIの設定内容が「有効」でなければ、ステップS10405での判断は否定され、上記ステップS10411に移行する。
 また、上記ステップS10401において、受け取ったコマンドがリードコマンドでなければ、ステップS10401での判断は否定され、上記ステップS10411に移行する。
 仮想SCSIミニポートドライバ10401から送出されたSRBは、ストレージクラスドライバ10301cを介してUSBマスストレージクラスドライバ10305に転送され、USBマスストレージクラスドライバ10305でURBに変換され、USBポートドライバ10311、USBポートPuを介してテープ装置10205に送られる。
 テープ装置10205は、該URBを受け取ると、該URBに含まれるコマンド(ここでは、リードコマンド)を実行する。
 ここでは、SILIの設定内容が「無効」とされているため、テープ装置10205は、指定されたブロックサイズと磁気テープに実際に記録されているブロックサイズとが不一致の場合には、「Status Code」に「CHECK CONDITION」を意味する「0x02」をセットしたステータス情報(図24参照)を情報処理装置10100に出力する。一方、テープ装置10205は、指定されたブロックサイズと磁気テープに実際に記録されているブロックサイズとが一致している場合には、「Status Code」に「GOOD」を意味する「0x00」をセットしたステータス情報を情報処理装置10100に出力する。
 また、テープ装置10205は、ブロックデータ及び転送サイズが含まれるデータ情報を情報処理装置10100に出力する。
 USBポートドライバ10311は、ステータス情報を受け取ると、「Status Code」をチェックし、「0x02」すなわち「CHECK CONDITION」であれば、センス情報の要求コマンド(REQUEST SENSE)(図25参照)をテープ装置10205に送出する。
 一方、「Status Code」が「0x00」すなわち「GOOD」であれば、USBポートドライバ10311は、データ情報をUSBマスストレージクラスドライバ10305に転送する。このデータ情報は、ストレージクラスドライバ10301c、仮想SCSIミニポートドライバ10401、ストレージポートドライバ10303、及びストレージクラスドライバ10301dを介して、テープRWソフトウェア10500に送られる。
 テープ装置10205は、センス情報の要求コマンド(REQUEST SENSE)を受け取ると、指定されたブロックサイズと実際に記録されているブロックサイズとの差に関するデータが含まれるセンス情報(図26参照)を情報処理装置10100に出力する。
 なお、SILIの設定内容が「無効」で、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合、「Valid」に「1」、「ILI(Illegal Length Indicator)」に「1」、「SENSE KEY」に「0」、「Information」に指定されたブロックサイズと実際に記録されているブロックサイズとの差、「Additional Sense Code」に「0」、「Additional Sense Code Qualifiers」に「0」が、それぞれセットされる。
 ここで、「Valid」にセットされた「1」は、「Information」が有効であることを意味している。また、「ILI(Illegal Length Indicator)」にセットされた「1」は、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であることを意味している。
 このセンス情報は、USBポートドライバ10311、USBマスストレージクラスドライバ10305、及びストレージクラスドライバ10301cを介して、仮想SCSIミニポートドライバ10401に送られる。
 センス情報を受け取ったときの仮想SCSIミニポートドライバ10401の動作について、図27のフローチャートを用いて説明する。図27のフローチャートは、このときに実行される一連の処理アルゴリズムに対応している。この処理アルゴリズムは、CPU10110で実行される。
 最初のステップS10501では、SILI変更フラグが「1」であるか否かを判断する。SILI変更フラグが「1」であれば、ここでの判断は肯定され、ステップS10503に移行する。
 このステップS10503では、センス情報から、指定されたブロックサイズと実際に記録されているブロックサイズとの差に関するデータを抽出する。
 次のステップS10505では、上記指定されたブロックサイズと実際に記録されているブロックサイズとの差に関するデータから、実際に記録されているブロックサイズを算出する。例えば、指定されたブロックサイズと実際に記録されているブロックサイズとの差が600バイトであり、指定されたブロックサイズが1000バイトであれば、400バイトを実際に記録されているブロックサイズとする。
 次のステップS10507では、上記算出された実際に記録されているブロックサイズを、データ情報における転送サイズにセットする。上記の例では、400バイトが転送サイズにセットされる。具体的には、前述したSRBの構造における「DataTransferLength」にセットされる。
 次のステップS10509では、データ情報をストレージポートドライバ10303に送出する。そして、センス情報を受け取ったときの処理を終了する。
 なお、上記ステップS10501において、SILI変更フラグが1でなければ、ステップS10501での判断は否定され、上記ステップS10509に移行する。
 ストレージポートドライバ10303に送出されたデータ情報は、ストレージクラスドライバ10301dを介して、テープRWソフトウェア10500に送られる。
 そして、テープRWソフトウェア10500は、テープ装置10205から読み出されたブロックデータをハードディスクにコピーする。これにより、コピー処理は終了する。
 ところで、仮にSILIの設定内容が「有効」とされていると、テープ装置10205は、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であっても、指定されたブロックサイズを転送サイズとして、データ情報を送出する。
 なお、従来のSCSI規格に対応したテープ装置では、SILIの設定内容が「有効」とされている場合に、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であっても、実際に記録されているブロックサイズを転送サイズとして、データ情報を送出していた。
 そこで、本実施形態において、仮にSILIの設定内容が「有効」とされていると、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合に、テープRWソフトウェア10500は、実際に記録されているブロックサイズを誤ることとなり、異常動作をするおそれがある。
 しかしながら、本実施形態では、前述した如く、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致であっても、実際に記録されているブロックサイズが転送サイズとされているため、テープRWソフトウェア10500は、正常に動作することができる。
 図28及び図29は、前述したテープRWソフトウェア10500とテープ装置10205との間の主なやりとりをわかりやすく図示したものである。なお、図28は、指定されたブロックサイズと実際に記録されているブロックサイズとが不一致の場合であり、図29は、指定されたブロックサイズと実際に記録されているブロックサイズとが一致している場合である。
 以上の説明から明らかなように、CPU10110によって、本発明の情報処理方法が実施されている。なお、CPU10110によるプログラムに従う処理の少なくとも一部をハードウェアによって構成することとしても良いし、あるいは全てをハードウェアによって構成することとしても良い。
 また、情報処理装置10100のCPU10110によって、本発明の制御用コンピュータが構成され、HDD装置10160のハードディスクによって、本発明の記録媒体が構成されている。
 以上説明したように、本実施形態に係る情報処理装置10100によると、CPU10110、RAM10120、ROM10130、表示装置10140、入力装置10150、HDD装置10160、光ディスク装置10170、及びUSBポートPuなどを有している。
 ハードディスクには、OS及び仮想SCSIミニポートドライバ10401などが記録されている。
 CPU10110は、電源が投入されると、ROM10130に格納されているブートプログラムを実行した後、OS及び仮想SCSIミニポートドライバ10401をRAM10120に転送し、OS及び仮想SCSIミニポートドライバ10401を起動する。
 仮想SCSIミニポートドライバ10401は、USBポートPuに対するデバイスの着脱を監視し、着脱があると、仮想SCSIポートに対してデバイスの着脱があったことをテープRWソフトウェア10500に認識させる。
 また、仮想SCSIミニポートドライバ10401は、テープ装置10205に対して発行されたコマンドを、そのフォーマットを変えることなく、ストレージクラスドライバ10301c及びUSBマスストレージクラスドライバ10305を介してUSBポートドライバ10311に転送するパススルー機能を有している。
 また、仮想SCSIミニポートドライバ10401は、テープRWソフトウェア10500でリードコマンドが発行され、該リードコマンドに含まれるSILIの設定内容が「有効」であれば、「無効」に変更して送出する。
 この場合、仮想SCSIミニポートドライバ10401は、テープ装置10205からのセンス情報を受け取ると、実際に読み出されたブロックサイズを算出し、その算出結果をデータ情報における転送サイズにセットする。このデータ情報は、ストレージポートドライバ10303及びストレージクラスドライバ10301dを介して、テープRWソフトウェア10500に送られる。
 このように、仮想SCSIミニポートドライバ10401を用いることにより、SCSI規格に対応したテープ装置用に作成されたアプリケーションソフトウェアを、そのままUSB規格に対応したテープ装置の制御に使用することができる。
 そこで、コストアップを招くことなく、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御することができる。
 そして、情報処理システム1010は、情報処理装置10100を備えているため、結果として、コストアップを招くことなく、目的に応じたシステムを構築することができる。
 ところで、特許文献3は、USB接続インタフェースをシリアルポートインタフェースと見なし、USBインタフェースから入力される信号をシリアルポートプロトコルに基づいて処理可能な仮想シリアルポートドライバを備えている。しかしながら、磁気テープ装置に関する記載はない。
 特許文献5には、仮想通信ポートの作成・削除について記載されている。しかしながら、アプリケーションソフトウェアが対応していないインタフェースに対する具体的記載はない。
 特許文献6には、SILIが1に設定、又は1に設定されていない場合の処理が記載されている。しかしながら、磁気テープの記憶形式に対応する具体的記載はない。
 なお、上記実施形態では、USB規格とは異なるインタフェース規格に対応するソフトウェアとして、SCSI規格に対応するテープRWソフトウェア10500が用いられる場合について説明したが、これに限定されるものではない。例えば、図30に示されるように、USB規格とは異なるインタフェース規格に対応するソフトウェアとして、SAS規格に対応するテープRWソフトウェア10503が用いられても良い。この場合は、前記仮想SCSIミニポートドライバ10401に代えて、仮想SASミニポートドライバ10403が用いられる。なお、便宜上、仮想のSASポートに仮想的に接続されたデバイスに対応するストレージクラスドライバ10301を「ストレージクラスドライバ10301e」ともいう。
 この仮想SASミニポートドライバ10403は、USBポートPuに対するデバイスの着脱を監視し、着脱があると、仮想SASポートに対してデバイスの着脱があったことをテープRWソフトウェア10503に認識させる。
 また、仮想SASミニポートドライバ10403は、テープ装置10205に対して発行されたコマンドを、そのフォーマットを変えることなく、ストレージクラスドライバ10301c及びUSBマスストレージクラスドライバ10305を介してUSBポートドライバ10311に転送するパススルー機能を有している。
 また、仮想SASミニポートドライバ10403は、テープRWソフトウェア10503でリードコマンドが発行され、該リードコマンドに含まれるSILIの設定内容が「有効」であれば、「無効」に変更して送出する。
 この場合、仮想SASミニポートドライバ10403は、テープ装置10205からのセンス情報を受け取ると、実際に記録されているブロックサイズを算出し、その算出結果をデータ情報における転送サイズにセットする。該データ情報は、ストレージポートドライバ10303及びストレージクラスドライバ10301eを介して、テープRWソフトウェア10503に送られる。
 また、上記実施形態では、仮想SCSIミニポートドライバ10401によって作成されたワーカースレッドが、USBポートPuにおけるUSBデバイスの着脱を監視する場合について説明したが、これに限定されるものではなく、仮想SCSIミニポートドライバ10401自身が、USBポートPuにおけるUSBデバイスの着脱を監視しても良い。
 また、上記実施形態において、磁気テープに記録されているデータを光ディスクにコピーする場合であっても、上記実施形態と同様な効果を得ることができる。
 また、上記実施形態において、操作者は、テープRWソフトウェア10500に指示して、前記ハードディスク及び光ディスクに記録されているデータをテープ装置10205にセットされている磁気テープにコピーすることができる。
 また、上記実施形態では、表示装置10140の表示器が液晶ディスプレイの場合について説明したが、これに限定されるものではない。例えば、液晶ディスプレイに代えて、CRTディスプレイ、プラズマディスプレイ、有機ELディスプレイなどを用いても良い。
 また、上記実施形態では、仮想SCSIミニポートドライバ10401が、HDD装置10160のハードディスクに記録されている場合について説明したが、これに限定されるものではない。例えば、仮想SCSIミニポートドライバ10401が、光ディスクに記録されていても良い。この場合は、該光ディスクは、光ディスク装置10170にセットされ、OSとともにRAM10120に転送される。
 また、上記実施形態では、情報処理装置10100として、パーソナルコンピュータが用いられる場合について説明したが、これに限定されるものではない。
 また、上記実施形態では、OS(オペレーティングシステム)として、マイクロソフト社のWindows(登録商標)が用いられる場合について説明したが、これに限定されるものではない。
第4の実施形態
 以下、本発明の第4の実施形態を図33~図53に基づいて説明する。図33には、第4の実施形態に係る情報処理システム2010の概略構成が示されている。
 この情報処理システム2010は、情報処理装置20100と、変換装置20300と、テープ装置20500などを備えている。
 情報処理装置20100は、一例として図34に示されるように、CPU20110、RAM20120、ROM20130、表示装置20140、入力装置20150、HDD装置20160、光ディスク装置20170、USBインタフェース(USB I/F)20180、及びUSBポートPuなどを有している。
 表示装置20140は、表示器として液晶ディスプレイを含み、CPU20110から指示された各種情報を表示する。
 入力装置20150は、入力媒体としてキーボードを含み、操作者から入力された各種情報をCPU20110に通知する。
 HDD装置20160は、記録媒体であるハードディスクと、該ハードディスクに対してデータの読み書きを行うためのRW装置と、CPU20110の指示に応じて前記RW装置を制御する制御装置などから構成されている。そして、ハードディスクには、OSを含む複数のプログラム、該複数のプログラムで用いられる各種データなどが記録されている。
 光ディスク装置20170は、記録媒体である光ディスクに対してデータの読み書きを行うためのRW装置と、CPU20110の指示に応じて該RW装置を制御する制御装置などから構成されている。
 CPU20110は、ROM20130及びRAM20120に格納されているプログラムを実行することができる。
 ROM20130には、電源投入時にCPU20110によって実行されるプログラム、いわゆるブートプログラムが格納されている。このブートプログラムが実行されると、ハードディスクに記録されているOSがRAM20120に転送される。
 CPU20110は、ブートプログラムの実行が完了すると、RAM20120に転送されたOSを起動する。
 USBポートPuは、USB(Universal Serial Bus)規格に準拠した通信ポートである。
 USBインタフェース20180は、USBポートPuを介した情報の入出力を制御する。
 ここでは、情報処理装置20100として、パーソナルコンピュータが用いられている。そして、OS(オペレーティングシステム)として、マイクロソフト社製のWindows(登録商標)が用いられている。
 テープ装置20500は、記録媒体である磁気テープと、該磁気テープに対してデータの読み書きを行うためのRW装置と、情報処理装置20100からの指示に応じて該RW装置を制御する制御装置などから構成されている。なお、磁気テープはカートリッジ化されており、取り替えることが可能である。
 テープ装置20500は、可変長のブロックに対応しており、磁気テープには、サイズの異なる複数のブロックにそれぞれデータが記録されている。
 テープ装置20500は、SAS(Serial Attached SCSI)規格に対応している。そして、テープ装置20500と変換装置20300との間の情報の通信におけるトランスポート層(Transport layer)は、SSP(Serial SCSI Protocol)トランスポート層に準拠している(例えば、「Serial Attached SCSI (SAS) Interface Manual」参照)。
 図35には、SSPにおけるフレームのフォーマット(SSP frame format)が示されている。図35において、「FRAME TYPE」フィールドに「01h」がセットされていると、該フレームは「データフレーム」であり、「INFORMATION UNIT」フィールドにデータがセットされている(図36参照)。また、「FRAME TYPE」フィールドに「06h」がセットされていると、該フレームは「コマンドフレーム」であり、「INFORMATION UNIT」フィールドにコマンドがセットされている(図36参照)。さらに、「FRAME TYPE」フィールドに「07h」がセットされていると、該フレームは「レスポンスフレーム」であり、「INFORMATION UNIT」フィールドにレスポンスがセットされている(図36参照)。
 図37には、上記データフレームの「INFORMATION UNIT」フィールドにセットされるデータ(DATA information unit)が示されている。
 図38には、上記コマンドフレームの「INFORMATION UNIT」フィールドにセットされるコマンド(COMMAND information unit)が示されている。
 図39には、上記レスポンスフレームの「INFORMATION UNIT」フィールドにセットされるレスポンス(RESPONSE information unit)が示されている。図39において、「DATAPRES」フィールドに「00b」がセットされていると、データがないことを意味している(図40参照)。また、「DATAPRES」フィールドに「01b」がセットされていると、レスポンスデータがあることを意味している(図40参照)。さらに、「DATAPRES」フィールドに「10b」がセットされていると、センスデータがあることを意味している(図40参照)。
 変換装置20300は、一例として図41に示されるように、第1の通信制御部20310、処理部20320、及び第2の通信制御部20330などを有している。
 そして、第1の通信制御部20310は、USBポート20311、USBインタフェース20312、USB送受信部20313を有している。
 また、第2の通信制御部20330は、SASポート20331、SASインタフェース20332、SAS送受信部20333を有している。
 USBポート20311は、USB規格に準拠した通信ポートであり、USBケーブルを介して情報処理装置20100のUSBポートPuに接続されている。
 USBインタフェース20312は、USBポート20311を制御する。
 USB送受信部20313は、USBポート20311及びUSBインタフェース20312を介した情報処理装置20100との双方向の通信を制御する。USB送受信部20313は、情報処理装置20100からの受信があると、処理部20320に通知する。また、USB送受信部20313は、処理部20320から送信要求があると、指示された情報を、情報処理装置20100に出力する。
 SASポート20331は、SAS規格に準拠した通信ポートであり、SASケーブルを介してテープ装置20500が接続されている。
 SASインタフェース20332は、SASポート20331を制御する。
 SAS送受信部20333は、SASポート20331及びSASインタフェース20332を介したテープ装置20500との双方向の通信を制御する。SAS送受信部20333は、テープ装置20500からの受信があると、処理部20320に通知する。また、SAS送受信部20333は、処理部20320から送信要求があると、指示された情報をテープ装置20500に出力する。
 処理部20320は、CPU20321、ROM20322、及びRAM20323を有している。
 CPU20321は、ROM20322に格納されているプログラムを実行する。
 ROM20322には、CPU20321にて解読可能なコードで記述された複数のプログラム、及び各プログラムの実行に用いられる複数のデータ等が格納されている。
 RAM20323は、作業用のメモリである。このRAM20323には、センスデータ(図46及び図47参照)が一時的に格納されるセンスデータ格納領域が設けられている。ここでは、該センスデータ格納領域の大きさは96バイトである。なお、第2の通信制御部20330にてセンスデータのデータ長を検知し、該センスデータ格納領域の大きさを96バイト以下で使用することもできる。
 次に、テープ装置20500にセットされている磁気テープに記録されているデータを、情報処理装置20100のハードディスクにコピーする場合について説明する。なお、ここでは、情報処理装置20100と変換装置20300との間のデータ転送プロトコルとして、USB Mass Strage Class Bulk-Only Transport(例えば、”Universal Serial Bus Mass Storage Class Bulk-Only Transport Revision1.0”、USB Implementers Forum、September 31、1999.参照)を使用する。
 操作者は、入力装置20150を介して、USB規格に対応したテープ装置用に作成され、テープ装置に対してデータの読み書きを行うためのアプリケーションソフトウェアであるテープRWソフトウェア(以下では、「テープRWソフトウェア20600」という)を起動させる。なお、該テープRWソフトウェア20600は、前記ハードディスクに記録されており、操作者の起動要求があると、OSによってRAM20120に転送され、起動される。
 テープRWソフトウェア20600は、起動すると、初期メニュー画面を表示装置20140に表示させる。
 操作者は、磁気テープに記録されているデータのハードディスクへのコピー(以下では、便宜上、単に「コピー処理」ともいう)をテープRWソフトウェア20600に指示する。これにより、テープ装置20500に対するリードコマンド(図42参照)が、情報処理装置20100から変換装置20300に出力される。なお、該リードコマンドは、図43に示されるCBW(Command Block Wrapper)のフォーマットで、情報処理装置20100から出力される。
 ここで、該CBWのフォーマットについて簡単に説明する。図43における「dCBWSignature」は、データパケットがCBWであると認知するためのフィールドである。「dCBWTag」は、コマンドブロックタグであり、CBWと対応するCSW(Command Status Wrapper)とを結びつけるために存在し、情報処理装置20100が指定する。
 また、図43における「dCBWDataTransferLength」は、データトランスポートの予定データ長であり、ここが0の場合、データトランスポートは存在しない。「bmCBWFlags」は、ビット7が0の場合、データトランスポートはバルクアウト転送で行われ、ビット7が1の場合、データトランスポートはバルクイン転送で行われる。ビット6~0は0固定である。ここでは、テープ装置20500からデータを受け取るので、上記ビット7は1である。
 また、図43における「bCBWLUN」は、コマンドブロックが送られている装置の論理ユニット番号(Logical Unit Number)である。「bCBWCBLength」は、次の「CBWCB」フィールドの有効バイト数を表す。
 さらに、図43における「CBWCB」は、テープ装置20500によって実行されるコマンドブロックが格納されるフィールドである。このフィールドに情報処理装置20100が実行したいコマンドがセットされる。ここでは、コマンドフォーマットとして、「SCSI Primary Commands」が用いられるように設定されている。
 変換装置20300では、該CBWを受信すると、情報処理装置20100から受信があった旨の通知が、USB送受信部20313から処理部20320のCPU20321になされる。
 このときの、CPU20321の動作について、図44のフローチャートを用いて説明する。図44のフローチャートは、通信シーケンスが「アイドル状態」(シーケンスフラグ=0)にあるときの、CPU20321によって実行される一連の処理アルゴリズムに対応している。
 最初のステップS20401では、情報処理装置20100からのCBWを、コマンドフレームに変換する。
 次のステップS20403では、上記コマンドフレームの送信をSAS送受信部20333に指示する。これにより、該コマンドフレームは、SASインタフェース20332及びSASポート20331を介して、テープ装置20500に出力される。
 次のステップS20405では、通信シーケンスを「アイドル状態」から「テープ装置からのデータ待ち状態」(シーケンスフラグ=1)に変更する。そして、通信シーケンスが「アイドル状態」にあるときの処理を終了する。
 テープ装置20500は、変換装置20300からコマンドフレームを受信すると、ここでは、該コマンドフレームのコマンドがリードコマンドであるため、磁気テープからのデータの読み出し操作を行う。そして、テープ装置20500は、データが正常に読み出されると、該データが含まれるデータフレームを変換装置20300に出力する。
 また、テープ装置20500は、上記データフレームを出力すると、続けて、センスデータを含まないレスポンスフレームを変換装置20300に出力する。このとき、該レスポンスフレームの「STATUS」フィールドには、「Status Code」が「GOOD」を意味する「00h」であるステータス情報(図45参照)がセットされている。
 一方、テープ装置20500は、磁気テープからのデータの読み出しが正常に行われなかった場合には、データフレームを出力せずに、異常の内容を示すセンスデータ(図46及び図47参照)を作成し、該センスデータが含まれるレスポンスフレームを変換装置20300に出力する。このとき、該レスポンスフレームの「STATUS」フィールドには、「Status Code」が「CHECK CONDITION」を意味する「02h」であるステータス情報がセットされている。なお、テープ装置20500は、該レスポンスフレームを出力すると、ここで作成されたセンスデータを消去(クリア)する。
 そこで、テープ装置20500に異常がない場合には、レスポンスフレームにセンスデータはなく、テープ装置20500に異常がある場合には、レスポンスフレームにセンスデータが存在することとなる。
 変換装置20300では、テープ装置20500からのフレームを受信すると、テープ装置20500から受信があった旨の通知が、SAS送受信部20333から処理部20320のCPU20321になされる。
 このときの、CPU20321の動作について、図47及び図48のフローチャートを用いて説明する。図47及び図48のフローチャートは、通信シーケンスが「テープ装置からのデータ待ち状態」にあるときに、CPU20321によって実行される一連の処理アルゴリズムに対応している。
 最初のステップS20501では、前記「FRAME TYPE」フィールドを参照し、受信したフレームがデータフレームであるかレスポンスフレームであるかを判断する。「FRAME TYPE」フィールドにセットされている値が「01h」であれば、受信したフレームがデータフレームであると判断し、ステップS20503に移行する。
 このステップS20503では、受信したデータフレームを、USB規格に対応したデータに変換する。
 次のステップS20505では、上記データの送信をUSB送受信部20313に指示する。これにより、該データは、USBインタフェース20312及びUSBポート20311を介して、情報処理装置20100に出力される。ここでは、上記「dCBWDataTransferLength」で予定された長さのデータが、データトランスポートとして出力される。そして、通信シーケンスが「テープ装置からのデータ待ち状態」にあるときの処理を終了する。
 一方、上記ステップS20501において、「FRAME TYPE」フィールドにセットされている値が「07h」であれば、受信したフレームがレスポンスフレームであると判断し、図48のステップS20601に移行する。
 このステップS20601では、受信したレスポンスフレームの前記「DATAPRES」フィールドを参照し、該レスポンスフレームにセンスデータが有るか否かを判断する。「DATAPRES」フィールドにセットされている値が「10b」であれば、ここでの判断は肯定され、ステップS20603に移行する。
 このステップS20603では、レスポンスフレームに含まれるセンスデータをRAM20323のセンスデータ格納領域に保存する。
 次のステップS20605では、異常発生フラグに、テープ装置20500に異常があったことを示す1をセットする。すなわち、異常発生フラグをセット状態とする。
 次のステップS20607では、ダミーデータを作成する。
 次のステップS20609では、該ダミーデータの送信をUSB送受信部20313に指示する。これにより、該ダミーデータは、USBインタフェース20312及びUSBポート20311を介して、情報処理装置20100に出力される。
 次のステップS20611では、ステータス情報として、図49に示されるCSW(Command Status Wrapper)を作成する。
 ここで、CSWについて簡単に説明する。図49における「dCSWSignature」フィールドは、データパケットがCSWであると認知するためのフィールドである。「dCSWTag」フィールドは、コマンドブロックタグであり、CBWにCSWを結びつけるために存在し、上記CBWの「dCBWTag」フィールドと同じ値が入る。
 また、図49における「CSWDataResidue」フィールドは、上記CBWの「dCBWDataTransferLength」フィールドの値と実際にテープ装置20500が処理したデータ量の相違がセットされる。「bCSWStatus」フィールドは、コマンドの成功あるいは失敗を意味する値がセットされる。例えば、コマンドが正常に終了した場合は「Command Passed」を意味する「00h」がセットされ、コマンドが失敗した場合は「Command Failed」を意味する「01h」がセットされる。ここでは、「bCSWStatus」フィールドに「01h」がセットされる。
 次のステップS20613では、該CSWの送信をUSB送受信部20313に指示する。これにより、該CSWは、USBインタフェース20312及びUSBポート20311を介して、情報処理装置20100に出力される。
 次のステップS20615では、通信シーケンスを、「テープ装置からのデータ待ち状態」から「情報処理装置からのリクエストセンス待ち状態」(シーケンスフラグ=2)に変更する。そして、通信シーケンスが「テープ装置からのデータ待ち状態」にあるときの処理を終了する。
 一方、上記ステップS20601において、「DATAPRES」フィールドにセットされている値が「10b」でなければ、ステップS20601での判断は否定され、ステップS20621に移行する。
 このステップS20621では、前記「bCSWStatus」フィールドに正常終了を意味する「00h」がセットされたCSWを作成する。
 次のステップS20623では、該CSWの送信をUSB送受信部20313に指示する。これにより、該CSWは、USBインタフェース20312及びUSBポート20311を介して、情報処理装置20100に出力される。
 次のステップS20625では、通信シーケンスを、「テープ装置からのデータ待ち状態」から「アイドル状態」(シーケンスフラグ=0)に変更する。
 次のステップS20627では、異常発生フラグに0をセットし、異常発生フラグをリセット状態にする。そして、通信シーケンスが「テープ装置からのデータ待ち状態」にあるときの処理を終了する。
 情報処理装置20100では、変換装置20300からデータ(ダミーデータを含む)を受信すると、CPU20110は、該データをRAM20120に格納する。
 そして、情報処理装置20100では、「bCSWStatus」フィールドに正常終了を意味する「00h」がセットされたCSWを受信すると、CPU20110は、RAM20120に格納されている該データのハードディスクへの書き込みをHDD装置20160の制御装置に指示する。これにより、磁気テープに記録されているデータは、情報処理装置20100のハードディスクにコピーされ、テープRWソフトウェア20600でのコピー処理が終了する。
 一方、情報処理装置20100は、「bCSWStatus」フィールドにコマンド失敗を意味する「01h」がセットされたCSWを受信すると、センスデータを要求するコマンドであるリクエストセンス(REQUEST SENSE)コマンド(図50参照)のCBWを変換装置20300に出力する。
 変換装置20300では、該CBWを受信すると、情報処理装置20100から受信があった旨の通知が、USB送受信部20313から処理部20320のCPU20321になされる。
 このときの、CPU20321の動作について、図51のフローチャートを用いて説明する。図51のフローチャートは、通信シーケンスが「情報処理装置からのリクエストセンス待ち状態」にあるときのCPU20321によって実行される一連の処理アルゴリズムに対応している。
 最初のステップS20701では、異常発生フラグの値が1であるか否かを判断する。異常発生フラグの値が1であれば、ここでの判断は肯定され、ステップS20703に移行する。
 このステップS20703では、異常発生フラグをクリア状態にするため、異常発生フラグに0をセットする。
 次のステップS20705では、受信したCBWのコマンドがリクエストセンスコマンドであるか否かを判断する。受信したCBWのコマンドがリクエストセンスコマンドであれば、ここでの判断は肯定され、ステップS20707に移行する。
 このステップS20707では、RAM20323のセンスデータ格納領域に保存されているセンスデータの送信をUSB送受信部20313に指示する。これにより、該センスデータは、USBインタフェース20312及びUSBポート20311を介して、情報処理装置20100に出力される。
 次のステップS20709では、センスデータの送信を確認した後、センスデータ格納領域に保存されているセンスデータを削除する。
 次のステップS20711では、「bCSWStatus」フィールドに正常終了を意味する「00h」がセットされたCSWを作成する。
 次のステップS20713では、該CSWの送信をUSB送受信部20313に指示する。これにより、該CSWは、USBインタフェース20312及びUSBポート20311を介して、情報処理装置20100に出力される。
 次のステップS20715では、通信シーケンスを「情報処理装置からのリクエストセンス待ち状態」から「アイドル状態」(シーケンスフラグ=0)に変更する。そして、通信シーケンスが「情報処理装置からのリクエストセンス待ち状態」にあるときの処理を終了する。
 情報処理装置20100では、上記センスデータ及び上記CSWを受信すると、テープRWソフトウェア20600は、テープ装置20500での異常の内容を表示装置20140に表示させるとともに、コピー処理を中止し、操作者の指示を待つ。
 一方、上記ステップS20705において、受信したCBWのコマンドがリクエストセンスコマンドでなければ、ステップS20705での判断は否定され、ステップS20731に移行する。
 このステップS20731では、該CBWをコマンドフレームに変換する。
 次のステップS20733では、該コマンドフレームの送信をSAS送受信部20333に指示する。これにより、該コマンドフレームは、SASインタフェース20332及びSASポート20331を介して、テープ装置20500に出力される。
 次のステップS20735では、コマンドに応じて通信シーケンスを変更する。例えば、該コマンドがリードコマンドであれば、通信シーケンスを「テープ装置からのデータ待ち状態」(シーケンスフラグ=1)に変更する。また、該コマンドがライトコマンドであれば、通信シーケンスを「情報処理装置からのデータ待ち状態」(シーケンスフラグ=3)に変更する。そして、通信シーケンスが「情報処理装置からのリクエストセンス待ち状態」にあるときの処理を終了する。
 また、上記ステップS20701において、異常発生フラグの値が1でなければ、ステップS20701での判断は否定され、上記ステップS20731に移行する。
 図52及び図53は、前述した情報処理装置20100と変換装置20300とテープ装置20500との間の主なやりとりをわかりやすく図示したものである。なお、図52は、テープ装置20500に異常がある場合であり、図53は、テープ装置20500に異常がない場合である。
 以上の説明から明らかなように、変換装置20300のCPU20321によって行われる処理において、本発明の変換方法が実施されている。なお、CPU20321によるプログラムに従う処理の少なくとも一部をハードウェアによって構成することとしても良いし、あるいは全てをハードウェアによって構成することとしても良い。
 また、変換装置20300のCPU20321によって、本発明における制御用コンピュータが構成され、変換装置20300のROM20322によって、本発明の記録媒体が構成されている。
 以上説明したように、本実施形態に係る変換装置20300によると、USB規格に対応した情報処理装置20100とSAS規格に対応したテープ装置20500との間の通信路上に設けられ、第1の通信制御部、処理部20320、及び第2の通信制御部20330などを有している。
 そして、第1の通信制御部20310は、USBポート20311、USBインタフェース20312、USB送受信部20313を有している。また、第2の通信制御部20330は、SASポート20331、SASインタフェース20332、SAS送受信部20333を有している。そして、処理部20320は、CPU20321、ROM20322、及びRAM20323などを有している。
 CPU20321は、情報処理装置20100からのCBWをコマンドフレームに変換し、テープ装置20500に出力する。また、CPU20321は、テープ装置20500からのデータフレームをUSB規格に対応したデータに変換し、情報処理装置20100に出力する。
 また、CPU20321は、テープ装置20500からセンスデータを含むレスポンスフレームを受信すると、該センスデータを情報処理装置20100に転送せずに、RAM20323のセンスデータ格納領域に一時的に保存するとともに、コマンド失敗を意味するCSWを情報処理装置20100に出力する。このとき、CPU20321は、異常発生フラグに、テープ装置20500に異常があったことを示す1をセットする。
 さらに、CPU20321は、異常発生フラグの値が1のときに、情報処理装置20100からリクエストセンスコマンドのCBWを受信すると、RAM20323のセンスデータ格納領域に保存されているセンスデータを情報処理装置20100に出力する。
 この場合、テープ装置20500に磁気テープが装着されていない等の異常があれば、情報処理装置20100は該異常の内容を正しく知ることができる。
 そこで、USB規格に対応した情報処理装置20100とSAS規格に対応したテープ装置20500との間の通信路上に変換装置20300を配置することにより、コストアップを招くことなく、USB規格に対応した情報処理装置20100とSAS規格に対応したテープ装置20500との間の通信を正常に行うことが可能となる。
 そして、情報処理システム2010は、変換装置20300を備えているため、結果として、コストアップを招くことなく、目的に応じたシステムを構築することができる。
 また、上記実施形態において、磁気テープに記録されているデータを光ディスクにコピーする場合であっても、上記実施形態と同様な効果を得ることができる。
 また、上記実施形態において、操作者は、テープRWソフトウェア20600に指示して、前記ハードディスク及び光ディスクに記録されているデータをテープ装置20500にセットされている磁気テープにコピーすることができる。この場合であっても、テープ装置20500に磁気テープが装着されていない等の異常があれば、情報処理装置20100は該異常の内容を正しく知ることができる。
 ところで、特許文献1には、USBストレージ機器から転送されるデータを、USBとは異なる他のインタフェース(例えば、IDE、SCSI)に変換することが記載されている。しかしながら、USBとSASとの変換に伴う課題を解決する技術は記載されていない。
 また、特許文献2は、デバイスにステータス情報を書き込むステータスレジスタ、第2の機器(PC)にステータスレジスタの内容を取得するためのUSBリクエストを発行する手段が記載されている。しかしながら、USBとSASとの変換に伴う課題を解決する技術は記載されていない。
 また、特許文献7には、デバイスのセンスデータ保持方法について記載されている。しかしながら、USBとSASとの変換に伴う課題を解決する技術は記載されていない。
 なお、上記実施形態では、情報処理装置20100と変換装置20300との間のデータ転送プロトコルとして、USB Mass Strage Class Bulk-Only Transportが使用される場合について説明したが、これに限定されるものではなく、USB Mass Strage Class Control/Bulk/Interrupt(CBI) Transportが使用されても良い。
 また、上記実施形態において、前記テープ装置20500に代えて、SAS規格に対応した他のストレージデバイスが用いられても良い。この場合は、前記テープRWソフトウェア20600に代えて、該ストレージデバイスに対応したソフトウェアが用いられる。
 また、上記実施形態では、表示装置20140の表示器が液晶ディスプレイの場合について説明したが、これに限定されるものではない。例えば、液晶ディスプレイに代えて、CRTディスプレイ、プラズマディスプレイ、有機ELディスプレイなどを用いても良い。
 また、上記実施形態では、情報処理装置20100として、パーソナルコンピュータが用いられる場合について説明したが、これに限定されるものではない。
 また、上記実施形態では、OS(オペレーティングシステム)として、マイクロソフト社製のWindows(登録商標)が用いられる場合について説明したが、これに限定されるものではない。
 また、第1の通信制御部20310の構成は、上記実施形態に限定されるものではない。
 また、処理部20320の構成は、上記実施形態に限定されるものではない。
 また、第2の通信制御部20330の構成は、上記実施形態に限定されるものではない。
産業上利用可能性
 上記第3の実施形態においては、本発明の情報処理装置は、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御するのに適している。また、本発明の情報処理システムは、目的に応じたシステムを構築するのに適している。また、本発明の情報処理方法は、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御するのに適している。また、本発明のプログラム及び記録媒体は、USB規格とは異なるインタフェース規格に対応するソフトウェアで、USBデバイスを制御させるのに適している。
 上記第4の実施形態においては、本発明の変換装置は、USB規格に対応した装置とSAS規格に対応した装置との間の通信を正常に行うのに適している。また、本発明の情報処理システムは、目的に応じたシステムを構築するのに適している。また、本発明の変換方法は、USB規格に対応した装置とSAS規格に対応した装置との間の通信を正常に行うのに適している。また、本発明のプログラム及び記憶媒体は、USB規格に対応した装置とSAS規格に対応した装置との間の通信を正常に行わせるのに適している。
 1 ホストコンピュータ
 2 USB
 3 テープデバイス
 4 SAS
10 インタフェース変換装置
11 データ変換手段
12 データ転送要求受信手段
13 データ転送要求送信手段
14 データ受信手段
15 データ転送手段
16 データ転送終了通知受信手段
17 データ転送終了通知送信手段
18 転送データ情報記憶手段
19 エラー発生判断手段
20 転送済みデータ判別及び破棄手段
21 データ転送再開手段
30 インタフェース変換装置
31 第1のデータ送受信部
32 第2のデータ送受信部
33 データ変換部
34 データ記憶部
39 データ削除部
40 データ送受信装置
41 コマンド送受信部
42 データ送受信部
43 レスポンス送受信部
101 中央処理制御装置
102 RAM
103 ROM
104 入力装置
105 表示装置
106 通信制御装置
107 記憶装置
108 リムーバブルディスク
109 入出力インタフェース
1010 情報処理システム
10100 情報処理装置
10110 CPU(制御用コンピュータ)
10120 RAM
10130 ROM
10140 表示装置
10150 入力装置
10160 HDD装置
10170 光ディスク装置
10205 テープ装置(デバイス)
10301 ストレージクラスドライバ
10303 ストレージポートドライバ
10305 USBマスストレージクラスドライバ
10307 SCSIミニポートドライバ
10309 SASミニポートドライバ
10311 USBポートドライバ
10401 仮想SCSIミニポートドライバ(仮想ミニポートドライバ)
10403 仮想SASミニポートドライバ(仮想ミニポートドライバ)
10500 テープRWソフトウェア(ソフトウェア)
10503 テープRWソフトウェア(ソフトウェア)
2010 情報処理システム
20100 情報処理装置(第1の装置)
20110 CPU
20120 RAM
20130 ROM
20140 表示装置
20150 入力装置
20160 HDD装置
20170 光ディスク装置
20180 USB I/F
20300 変換装置
20310 第1の通信制御部
20311 USBポート
20312 USBインタフェース
20313 USB送受信部
20320 処理部(処理装置)
20321 CPU
20322 ROM(記録媒体)
20323 RAM
20330 第2の通信制御部
20331 SASポート
20332 SASインタフェース
20333 SAS送受信部
20500 テープ装置(第2の装置)
20600 テープRWソフトウェア
Ps 仮想SCSIポート(仮想ポート)
Pu USBポート

Claims (42)

  1.  第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換装置であって、
     前記第1のインタフェースの通信方式に適合したデータを、前記第2のインタフェースの通信方式に適合したデータ形式に変換するデータ変換部と、
     前記第1のインタフェースから受信したデータを前記データ変換部へ送信する第1のデータ送受信部と、
     前記データ変換部による変換後の前記データを記憶するデータ記憶部と、
     前記データ記憶部から受信した前記データを前記第2のインタフェースへ送信する第2のデータ送受信部とを備え、
     前記第2のデータ送受信部は、前記データ記憶部が記憶した複数の前記データを記憶した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信することを特徴とするインタフェース変換装置。
  2.  第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換装置であって、
     データを記憶するデータ記憶部と、
     前記第1のインタフェースから受信した前記データを前記データ記憶部へ送信する第1のデータ送受信部と、
     前記データ記憶部から受信した前記第1のインタフェースの通信方式に適合した前記データを、前記第2のインタフェースの通信方式に適合したデータ形式に変換するデータ変換部と、
     前記データ変換部から受信した前記データを前記第2のインタフェースへ送信する第2のデータ送受信部とを備え、
     前記第2のデータ送受信部は、前記データ変換部が変換した複数の前記データを変換した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信することを特徴とするインタフェース変換装置。
  3.  前記第2のデータ送受信部は、前記第2のインタフェースから受信したデータを前記データ変換部へ送信し、
     前記データ変換部は、前記第2のインタフェースの通信方式に適合した前記データを、前記第1のインタフェースの通信方式に適合したデータ形式に変換し、
     前記第1のデータ送受信部は、前記データ変換部から受信した前記データを前記第1のインタフェースへ送信することを特徴とする請求項1または2に記載のインタフェース変換装置。
  4.  第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換方法であって、
     データ変換部は、前記第1のインタフェースの通信方式に適合したデータを、前記第2のインタフェースの通信方式に適合したデータ形式に変換する変換ステップと、
     第1のデータ送受信部は、前記第1のインタフェースから受信したデータを前記データ変換部へ送信する送受信ステップと、
     データ記憶部は、前記データ変換部による変換後の前記データを記憶する記憶ステップと
     第2のデータ送受信部は、前記データ記憶部から受信した前記データを前記第2のインタフェースへ送信する送受信ステップとを含み、
     前記第2のデータ送受信部による送受信ステップは、前記データ記憶部が記憶した複数の前記データを記憶した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信することを特徴とするインタフェース変換方法。
  5.  第1のインタフェースを有する第1の装置と、前記第1のインタフェースとは通信方式が異なる第2のインタフェースを有する第2の装置との間で通信を可能にするインタフェース変換方法であって、
     データ記憶部は、データを記憶する記憶ステップと、
     第1のデータ送受信部は、前記第1のインタフェースから受信した前記データを前記データ記憶部へ送信する送受信ステップと、
     データ変換部は、前記データ記憶部から受信した前記第1のインタフェースの通信方式に適合した前記データを、前記第2のインタフェースの通信方式に適合したデータ形式に変換する変換ステップと、
     第2のデータ送受信部は、前記データ変換部から受信した前記データを前記第2のインタフェースへ送信する送受信ステップとを含み、
     前記第2のデータ送受信部による送受信ステップは、前記データ変換部が変換した複数の前記データを変換した順に、前記複数のデータの送信間隔には依存せず前記第2のインタフェースへ送信することを特徴とするインタフェース変換方法。
  6.  第1のインタフェースを有する第1の装置と第2のインタフェースを有する第2の装置との間でインタフェース変換を行うインタフェース変換装置において、
     前記第1の装置からのデータを前記第1のインタフェースを介して受け取るデータ受信手段と、
     前記データ受信手段により受け取ったデータを前記第2のインタフェースに適合した方式に変換するデータ変換手段と、
     前記データ変換手段により変換されたデータを前記第2のインタフェースを介して前記第2の装置に転送するデータ転送手段と、
     前記データ転送手段により前記第2の装置に転送されたデータに関する情報を記憶する転送データ情報記憶手段と、
     前記第1の装置から前記第2の装置へのデータ転送におけるエラー発生の判断がなされたときに、前記第1の装置から再送信されてきたデータのうち、前記転送データ情報記憶手段に記憶された情報に基づいて、前記エラー発生前に既に前記第2の装置に転送されていると判別されたデータ以外のデータについてのみ、前記データ変換手段と前記データ転送手段と前記データ記憶手段による処理を再開するデータ転送再開手段と
    を備えることを特徴とするインタフェース変換装置。
  7.  前記第1のインタフェースは、エラー発生時のデータ再送信において、当初送信されるべきであった全データの再送信を行うものである一方、前記第2のインタフェースは、エラー発生時のデータ再送信において、当初送信されるべきであった全データのうち、エラー発生前に既に転送されたデータ以外の転送を受けつけるものであることを特徴とする請求項6に記載のインタフェース変換装置。
  8.  前記転送データ情報記憶手段に記憶された転送されたデータに関する情報は、前記第2の装置に転送済みのデータ量の指標となる情報であることを特徴とする請求項6または7に記載のインタフェース変換装置。
  9.  前記転送済みのデータ量の指標となる情報が、前記第2の装置に転送済みデータ量であることを特徴とする請求項8に記載のインタフェース変換装置。
  10.  前記第1の装置から転送されるデータが、データフレームの形式で転送されるデータであり、
     前記転送済みのデータ量の指標となる情報が、前記第2の装置に転送済みのデータフレームの数であることを特徴とする請求項8に記載のインタフェース変換装置。
  11.  前記エラー発生の判断は、前記第2の装置におけるデータの受け取りが所定時間以上にわたって停滞した場合になされることを特徴とする請求項6~10のいずれか1項に記載のインタフェース変換装置。
  12.  前記転送データ情報記憶手段に記憶された転送されたデータに関する情報は、前記データ受信手段から前記データ変換手段に転送済みのデータ量の指標となる情報であることを特徴とする請求項6または7に記載のインタフェース変換装置。
  13.  前記第1の装置から転送されるデータが、データフレームの形式で転送されるデータであり、
     前記転送済みのデータ量の指標となる情報が、前記データ受信手段から前記データ変換手段に転送済みのデータフレームの数であることを特徴とする請求項12に記載のインタフェース変換装置。
  14.  第1のインタフェースを有する第1の装置と第2のインタフェースを有する第2の装置との間でインタフェース変換を行うインタフェース変換方法において、
     前記第1の装置からのデータを前記第1のインタフェースを介して受け取るステップと、
     前記第1の装置から受け取ったデータを前記第2のインタフェースに適合した方式に変換するステップと、
     前記第2のインタフェースに適合した方式に変換されたデータを前記第2のインタフェースを介して前記第2の装置に転送するステップと、
     前記第2の装置に転送されたデータに関する情報を記憶するステップと、
     前記第1の装置から前記第2の装置へのデータ転送におけるエラー発生を判断するステップと、
     前記データ転送におけるエラー発生の判断がなされたときに、前記第1の装置から再送信されてきたデータのうち、前記転送データ情報記憶手段に記憶された情報に基づいて、前記エラー発生前に既に前記第2の装置に転送されていると判別されたデータ以外のデータについてのみ、データの変換と転送及び転送されたデータに関する情報の記憶を再開するステップと
    を備えたことを特徴とするインタフェース変換方法。
  15.  第1のインタフェースを有する第1の装置と第2のインタフェースを有する第2の装置との間に接続され、前記第1の装置からのデータを前記第2のインタフェースに対応する方式に変換して前記第2の装置に転送するインタフェース変換装置において、
     前記第1の装置から前記第2の装置へのデータ送信に発生したエラーに起因して、前記第1の装置から前記第2の装置へのデータ再送信が行われた場合に、前記第1の装置から再送信されたデータのうち、前記エラー発生前に既に前記第2の装置に転送されているデータ以外のデータのみを前記第2の装置に転送することを特徴とするインタフェース変換装置。
  16.  USBポートと、
     前記USBポートを制御するUSBポートドライバを有し、USB規格とは異なるインタフェース規格に対応し、デバイス制御を行うソフトウェアと、
     前記USBポートにおけるUSBデバイスの着脱を監視し、該着脱がなされると、前記USB規格とは異なるインタフェース規格に対応する仮想ポートにおける前記USBデバイスの着脱を前記ソフトウェアに認識させ、前記USBデバイスに対して発行されたコマンドを、前記USBポートドライバに転送するパススルー機能を有する仮想ミニポートドライバと、を備える情報処理装置。
  17.  前記USB規格とは異なるインタフェース規格は、SCSI規格であり、
     前記仮想ポートは、仮想SCSIポートであることを特徴とする請求項16に記載の情報処理装置。
  18.  前記USB規格とは異なるインタフェース規格は、SAS規格であり、
     前記仮想ポートは、仮想SASポートであることを特徴とする請求項16に記載の情報処理装置。
  19.  前記USBデバイスは、磁気テープ装置であり、
     前記ソフトウェアは、前記磁気テープ装置から読み込んだデータが可変長のレコード形式に対応しており、
     前記仮想ミニポートドライバは、前記磁気テープ装置に対してリードコマンドが発行されると、該リードコマンドに含まれるSILI(Suppress Incorrect Length Indicator)を無効に設定し、
     前記リードコマンドで要求されたブロックサイズと、前記磁気テープ装置から読み込んだ実際のブロックサイズとが一致していない場合に、前記実際のブロックサイズを前記磁気テープ装置からの転送サイズとすることを特徴とする請求項16~18のいずれか一項に記載の情報処理装置。
  20.  請求項16~19のいずれか一項に記載の情報処理装置と、
     前記情報処理装置のUSBポートに接続されたUSBデバイスと、を備える情報処理システム。
  21.  USBポートと、該USBポートを制御するUSBポートドライバとを備え、USB規格とは異なるインタフェース規格に対応するソフトウェアを実行するための情報処理装置における情報処理方法であって、
     前記USBポートにおいてUSBデバイスの着脱がなされると、前記USB規格とは異なるインタフェース規格に対応する仮想ポートにおいて前記USBデバイスの着脱がなされたとする工程と、
     前記USBデバイスに対してコマンドが発行されると、該コマンドを前記USBポートドライバに転送する工程とを含む情報処理方法。
  22.  前記USB規格とは異なるインタフェース規格は、SCSI規格であることを特徴とする請求項21に記載の情報処理方法。
  23.  前記USB規格とは異なるインタフェース規格は、SAS規格であることを特徴とする請求項21に記載の情報処理方法。
  24.  前記デバイスは、磁気テープ装置であり、
     前記ソフトウェアは、前記磁気テープ装置から読み込んだデータが可変長のレコード形式に対応しており、
     前記磁気テープ装置に対してリードコマンドが発行されると、該リードコマンドに含まれるSILI(Suppress Incorrect Length Indicator)を無効に設定する工程と、
     前記リードコマンドで要求されたブロックサイズと前記磁気テープ装置から読み込んだ実際のブロックサイズとが一致していない場合に、前記実際のブロックサイズを前記磁気テープ装置からの転送サイズとする工程と、を更に含むことを特徴とする請求項21~23のいずれか一項に記載の情報処理方法。
  25.  USBポートと、該USBポートを制御するUSBポートドライバとを備え、USB規格とは異なるインタフェース規格に対応するソフトウェアを実行するための情報処理装置に用いられるプログラムであって、
     前記USBポートにおいてデバイスの着脱がなされると、USB規格とは異なるインタフェース規格に対応する仮想ポートにおいて前記デバイスの着脱がなされたとする手順と、
     前記デバイスに対して発行されたコマンドを前記USBポートドライバにパススルーする手順と、を前記情報処理装置の制御用コンピュータに実行させるプログラム。
  26.  前記USBデバイスは、磁気テープ装置であり、
     前記USBデバイスに対してリードコマンドが発行されると、該リードコマンドに含まれるSILI(Suppress Incorrect Length Indicator)を無効に設定し、前記リードコマンドで要求されたブロックサイズと前記磁気テープ装置から読み込んだ実際のブロックサイズとが一致していない場合に、前記実際のブロックサイズを前記磁気テープ装置からの転送サイズとする手順を、前記制御用コンピュータに更に実行させることを特徴とする請求項25に記載のプログラム。
  27.  請求項25又は26に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
  28.  USB(Universal Serial Bus)規格に対応した第1の装置とSAS(Serial Attached SCSI)規格に対応した第2の装置との間の通信路上に設けられる変換装置であって、
     前記USB規格に準拠し、前記第1の装置との通信を制御する第1の通信制御部と、
     前記SAS規格に準拠し、前記第2の装置との通信を制御する第2の通信制御部と、
     前記第2の通信制御部を介して入力された前記第2の装置からのセンスデータが入力されると該センスデータを記憶し、コマンド失敗を意味するステータス情報を前記第1の通信制御部を介して前記第1の装置に出力し、前記第1の通信制御部を介して前記第1の装置から前記ステータス情報に対するセンスデータ要求コマンドが入力されると、前記記憶されたセンスデータを前記第1の通信制御部を介して前記第1の装置に出力する処理装置と、を備える変換装置。
  29.  前記処理装置は、前記コマンド失敗を意味するステータス情報を前記第1の通信制御部を介して前記第1の装置に出力すると、異常発生フラグをセット状態とし、
     前記センスデータ要求コマンドは、前記異常発生フラグがセット状態のときに入力されたセンスデータ要求コマンドであることを特徴とする請求項28に記載の変換装置。
  30.  前記処理装置は、前記コマンド失敗を意味するステータス情報を前記第1の通信制御部を介して前記第1の装置に出力した後に、前記第1の通信制御部を介して前記第1の装置からコマンドを受け取ると、前記異常発生フラグをリセット状態にすることを特徴とする請求項29に記載の変換装置。
  31.  前記処理装置は、前記記憶されたセンスデータを前記第1の通信制御部を介して前記第1の装置に出力すると、前記記憶されたセンスデータを消去することを特徴とする請求項28~30のいずれか一項に記載の変換装置。
  32.  前記USB(Universal Serial Bus)規格に対応した第1の装置と接続される請求項28~31のいずれか一項に記載の変換装置と、
     前記変換装置の第2の通信制御部に接続され、SAS(Serial Attached SCSI)規格に対応した第2の装置と、を備える情報処理システム。
  33.  請求項28~31のいずれか一項に記載の変換装置と、
     前記変換装置の第1の通信制御部に接続され、USB(Universal Serial Bus)規格に対応した第1の装置と、
     前記変換装置の第2の通信制御部に接続され、SAS(Serial Attached SCSI)規格に対応した第2の装置と、を備える情報処理システム。
  34.  USB(Universal Serial Bus)規格に対応した第1の装置とSAS(Serial Attached SCSI)規格に対応した第2の装置との間の通信路上に設けられる変換装置における変換方法であって、
     前記第2の装置からのセンスデータを、前記第1の装置に出力することなく一時的に保存する工程と、
     コマンド失敗を意味するステータス情報を前記第1の装置に出力する工程と、
     前記第1の装置から前記ステータス情報に対するセンスデータ要求コマンドが入力されたときに、前記一時的に保存されているセンスデータを前記第1の装置に出力する工程と、を含む変換方法。
  35.  前記ステータス情報を前記第1の装置に出力する工程に続いて、
     異常発生フラグをセット状態とする工程を更に含み、
     前記センスデータを前記第1の装置に出力する工程では、前記異常発生フラグがセット状態のときに入力されたセンスデータ要求コマンドを、前記ステータス情報に対するセンスデータ要求コマンドとすることを特徴とする請求項34に記載の変換方法。
  36.  前記ステータス情報を前記第1の装置に出力した後に、前記第1の装置からコマンドが入力されると、前記異常発生フラグをリセット状態とする工程を更に含むことを特徴とする請求項35に記載の変換方法。
  37.  前記ステータス情報を前記第1の装置に出力する工程に続いて、
     前記一時的に保存されているセンスデータを消去する工程を更に含むことを特徴とする請求項34~36のいずれか一項に記載の変換方法。
  38.  USB(Universal Serial Bus)規格に対応した第1の装置とSAS(Serial Attached SCSI)規格に対応した第2の装置との間の通信路上に設けられた変換装置に用いられるプログラムであって、
     前記第2の装置からのセンスデータを、前記第1の装置に出力することなく一時的に保存する手順と、
     コマンド失敗を意味するステータス情報を前記第1の装置に出力する手順と、
     前記第1の装置から前記ステータス情報に対するセンスデータ要求コマンドが入力されたときに、前記一時的に保存されているセンスデータを前記第1の装置に出力する手順と、を前記変換装置の制御用コンピュータに実行させるプログラム。
  39.  前記ステータス情報を前記第1の装置に出力する手順に続いて、
     異常発生フラグをセット状態とする手順を前記制御用コンピュータに更に実行させ
     前記センスデータを前記第1の装置に出力する手順では、前記異常発生フラグがセット状態のときに入力されたセンスデータ要求コマンドを、前記ステータス情報に対するセンスデータ要求コマンドとすることを特徴とすることを特徴とする請求項38に記載のプログラム。
  40.  前記ステータス情報を前記第1の装置に出力した後に、前記第1の装置からコマンドを受け取ると、前記異常発生フラグをリセット状態とする手順を前記制御用コンピュータに更に実行させることを特徴とする請求項39に記載のプログラム。
  41.  前記ステータス情報を前記第1の装置に出力する手順に続いて、
     前記一時的に保存されているセンスデータを消去する手順を前記制御用コンピュータに更に実行させることを特徴とする請求項38~40のいずれか一項に記載のプログラム。
  42.  請求項38~41のいずれか一項に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
PCT/JP2013/052113 2012-01-31 2013-01-30 インタフェース変換装置及びインタフェース変換方法、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体 WO2013115282A1 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2012-017618 2012-01-31
JP2012017613A JP5491548B2 (ja) 2012-01-31 2012-01-31 情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体
JP2012-017613 2012-01-31
JP2012017618A JP5491549B2 (ja) 2012-01-31 2012-01-31 変換装置、情報処理システム、変換方法、プログラム及び記録媒体
JP2012106931 2012-05-08
JP2012-106931 2012-05-08
JP2013-013875 2013-01-29
JP2013013875A JP2013254479A (ja) 2012-05-08 2013-01-29 インタフェース変換装置及びインタフェース変換方法

Publications (1)

Publication Number Publication Date
WO2013115282A1 true WO2013115282A1 (ja) 2013-08-08

Family

ID=48905314

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/052113 WO2013115282A1 (ja) 2012-01-31 2013-01-30 インタフェース変換装置及びインタフェース変換方法、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体

Country Status (1)

Country Link
WO (1) WO2013115282A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920395A (zh) * 2018-06-14 2018-11-30 华东师范大学 一种可编程控制的通用总线接口转换系统
CN111866579A (zh) * 2020-07-27 2020-10-30 无锡和博永新科技有限公司 一种v4l2的数据转换方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091567A (ja) * 1996-09-11 1998-04-10 Fujitsu Ltd 入出力インタフェース延長装置
JP2003087701A (ja) * 2001-09-07 2003-03-20 Kenwood Corp 表示装置、及び表示方法
JP2007264711A (ja) * 2006-03-27 2007-10-11 Hitachi Electronics Service Co Ltd アダプタ付情報処理装置
JP2007265328A (ja) * 2006-03-30 2007-10-11 Fujitsu Ltd 通信制御装置、通信制御プログラム、通信ドライバ登録方法
JP2008176362A (ja) * 2007-01-16 2008-07-31 Ricoh Co Ltd データ変換装置とデータ変換方法と電子装置
JP2011257840A (ja) * 2010-06-07 2011-12-22 Toshiba Corp データ再生装置およびデータ再生方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091567A (ja) * 1996-09-11 1998-04-10 Fujitsu Ltd 入出力インタフェース延長装置
JP2003087701A (ja) * 2001-09-07 2003-03-20 Kenwood Corp 表示装置、及び表示方法
JP2007264711A (ja) * 2006-03-27 2007-10-11 Hitachi Electronics Service Co Ltd アダプタ付情報処理装置
JP2007265328A (ja) * 2006-03-30 2007-10-11 Fujitsu Ltd 通信制御装置、通信制御プログラム、通信ドライバ登録方法
JP2008176362A (ja) * 2007-01-16 2008-07-31 Ricoh Co Ltd データ変換装置とデータ変換方法と電子装置
JP2011257840A (ja) * 2010-06-07 2011-12-22 Toshiba Corp データ再生装置およびデータ再生方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920395A (zh) * 2018-06-14 2018-11-30 华东师范大学 一种可编程控制的通用总线接口转换系统
CN111866579A (zh) * 2020-07-27 2020-10-30 无锡和博永新科技有限公司 一种v4l2的数据转换方法

Similar Documents

Publication Publication Date Title
US5526484A (en) Method and system for pipelining the processing of channel command words
US9117033B2 (en) Method, device, and system for packet transmission on PCIE bus
US20070260756A1 (en) Method for Processing Command via SATA Interface
US9021147B1 (en) Command queuing in disk drives
US11500707B2 (en) Controller, memory controller, storage device, and method of operating the controller
US7676701B2 (en) Computer readable medium storing an error recovery program, error recovery method, error recovery apparatus, and computer system
US7496691B2 (en) Standard ATA queuing automation in serial ATA interface for creating a frame information structure (FIS) corresponding to command from transport layer
US6842793B2 (en) Method and apparatus for verifying data in a storage system
US9473273B2 (en) Memory system capable of increasing data transfer efficiency
US20070038783A1 (en) Communication device, host apparatus, and communication method
WO2013115282A1 (ja) インタフェース変換装置及びインタフェース変換方法、情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体
JP5715231B2 (ja) インタフェース変換装置及びインタフェース変換方法
US7360119B1 (en) Method and apparatus for handling SAS/SATA communication deadlock
JP5823755B2 (ja) 記憶装置、およびプログラム
JP4652315B2 (ja) ディスク装置、データ転送システム及びそれに用いるデータ転送方法
US8412998B1 (en) Restart operation with logical blocks in queued commands
US20030053130A1 (en) Recording apparatus, interface control apparatus, and interface control method
KR102368600B1 (ko) 이종망 데이터 전송이 가능한 i2c 통신 고속화 시스템
JP2002251260A (ja) データ送受信システム
US11435934B2 (en) Recording system
JP5491548B2 (ja) 情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体
JP2002358177A (ja) 画像形成装置、該装置のシリアル通信方法および該方法をコンピュータに実行させるプログラム並びに該プログラムを記録した記録媒体
JP4499909B2 (ja) 多重化記憶制御装置
US9063660B1 (en) Storage device and data transmission control method thereof
JP2022071543A (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: 13744066

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

Country of ref document: EP

Kind code of ref document: A1