WO2009147811A1 - インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路 - Google Patents
インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路 Download PDFInfo
- Publication number
- WO2009147811A1 WO2009147811A1 PCT/JP2009/002398 JP2009002398W WO2009147811A1 WO 2009147811 A1 WO2009147811 A1 WO 2009147811A1 JP 2009002398 W JP2009002398 W JP 2009002398W WO 2009147811 A1 WO2009147811 A1 WO 2009147811A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- input
- transmission path
- communication mode
- data
- packet
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/16—Half-duplex systems; Simplex/duplex switching; Transmission of break signals non-automatically inverting the direction of transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/14—Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/14—Two-way operation using the same type of signal, i.e. duplex
- H04L5/18—Automatic changing of the traffic direction
Definitions
- the present invention relates to an interface device, a host device including the interface device, a slave device including the interface device, a communication system including a plurality of communication devices including the interface device, and a communication method thereof.
- a “half duplex communication method” that requires transmission / reception direction control and transmission right arbitration control, such as USB 2.0 and IEEE 1394, and a transmission-only transmission line, such as PCI Express, are used.
- a “full-duplex communication method” in which transmission and reception can be simultaneously processed by providing at least one channel each with a dedicated transmission path.
- the full-duplex communication method is easier to control than the half-duplex communication method.
- the transmission path in the other direction is not used during the period in which communication in only one direction of transmission or reception is performed, so the other transmission path not used for communication is used. There is a problem in efficiency that bandwidth is wasted.
- This nonvolatile storage device includes a flash memory as a nonvolatile memory, a flash memory unit read / write control unit that controls the flash memory, and an interface for communicating with a host device such as a digital still camera or a PC (personal computer) It has a circuit. Through this interface circuit, the nonvolatile memory device functions as a slave device that can be controlled from the host device.
- the amount of communication data between these devices is rapidly increasing due to, for example, higher pixel count and higher image quality of digital still cameras.
- a high-speed continuous shooting function is required to increase the speed of data communication.
- Another example of the slave device is a network interface device for adding a network function to the host device. With the increase in the network speed, the speed of data communication between the host device and the slave device is increased. It is strongly requested as a prerequisite.
- a slave device typified by such a nonvolatile storage device or network interface device and the host device are connected by a plurality of transmission paths. For example, when the slave device is a non-volatile storage device, an instruction (command) or notification from the host device to the non-volatile storage device, data read from the non-volatile memory, or writing to the non-volatile memory on such a transmission path The data to be transmitted is transmitted as a digital signal.
- the one-channel transmission channel is used as a transmission channel (downlink) from the host device to the nonvolatile memory device (an example of the slave device), and the other transmission channel is connected from the nonvolatile memory device. Used as a transmission path (uplink) to the host device.
- the host device and the nonvolatile storage device can transmit commands or data simultaneously.
- both two-channel transmission paths are transmission paths from the host device to the nonvolatile storage device (downlink), or both are transmission paths from the nonvolatile storage device to the host device (uplink).
- downlink the nonvolatile storage device
- uplink the nonvolatile storage device to the host device
- the half-duplex communication method when one device transmits, the other device can only receive and cannot transmit. Therefore, when viewed in only one direction, either the downlink or the uplink, the half-duplex communication method has twice the communication bandwidth per direction as in the full-duplex method.
- the duplex communication method is effective when high-capacity data is transmitted at high speed in the same direction.
- the half-duplex communication method is extremely advantageous in terms of efficiency with respect to the period during which data transfer (data writing or data reading) is performed.
- FIG. 11A and FIG. 11B are diagrams showing a communication system in which a host device and a nonvolatile memory device are connected by a two-channel external transmission line and communication can be performed by switching between a full-duplex mode and a half-duplex mode.
- FIG. 11A and FIG. 11B are diagrams showing a communication system in which a host device and a nonvolatile memory device are connected by a two-channel external transmission line and communication can be performed by switching between a full-duplex mode and a half-duplex mode.
- FIG. 11A is a timing diagram when the host device reads data from the nonvolatile storage device in the half-duplex mode.
- FIG. 11B is a timing chart when data is written to the nonvolatile storage device.
- the external transmission path includes a first transmission path 1101 and a second transmission path 1102, and in the initial state, the first transmission path 1101 is set to the downlink,
- the transmission line 1102 is set to the uplink.
- a clock is supplied from the host device to the nonvolatile memory device via a clock transmission path (not shown).
- the reason for adopting such a configuration is that a slave device such as a non-volatile storage device is usually required to be small and inexpensive, so it does not have its own clock (does not generate its own clock) This is because it is preferable to drive with a clock supplied from the apparatus.
- the host device transmits a high-speed Read command to instruct the nonvolatile storage device to read data in the half-duplex mode (1111). It is assumed that the data read destination address and read size are multiplexed in the high-speed Read command.
- the host device After transmitting the high-speed Read command, the host device sets the host side input / output terminal of the first transmission line 1101 to the input state.
- the nonvolatile memory device that has received the high-speed Read command sets the nonvolatile memory device side input / output terminal of the first transmission path 1101 to the output state.
- the first transmission path 1101 is set to the uplink (1112).
- the non-volatile storage device transmits in parallel the data for the read size from the read destination address multiplexed in the high-speed Read command using the first transmission path 1101 and the second transmission path 1102 (1113).
- the nonvolatile storage device After the transmission / reception of data of a predetermined size is completed, the nonvolatile storage device sets the input / output terminal on the nonvolatile storage device side of the first transmission path 1101 to the input state, and the host device sets the host side input / output terminal of the first transmission path 1101 to the input state. Set to output state. As a result, the first transmission line 1101 returns to the downlink (1114).
- the host device transmits a high-speed write command to instruct the nonvolatile storage device to write data in the half-duplex mode (1115). It is assumed that the data write destination address and write size are multiplexed in the high-speed write command. After transmitting the high-speed Write command, the host device sets the host side input / output terminal of the second transmission path 1102 to the output state. On the other hand, the nonvolatile memory device that has received the high-speed Write command sets the nonvolatile memory device side input / output terminal of the second transmission path 1102 to the input state. As a result, the second transmission line 1102 is set to the downlink (1116). Thereafter, the host device transmits data for the write size to the write destination address multiplexed in the high-speed write command in parallel using the first transmission path 1101 and the second transmission path 1102 (1117).
- the host device After completion of transmission / reception of data of a predetermined size, the host device sets the host side input / output terminal of the second transmission path 1102 to the input state, and the nonvolatile storage device sets the nonvolatile storage device side input / output terminal of the second transmission path 1102 to the input state. Set to output state. As a result, the second transmission line 1102 returns to the uplink (1118).
- efficient communication can be realized by switching between the full-duplex mode and the half-duplex mode.
- the communication system described above has the following problems.
- the host device cannot instruct the nonvolatile storage device to “Wait”.
- the first transmission line 1101 and the second transmission line 1102 are switched from the first transmission line 1101 to the uplink again after the second transmission line 1102 is switched to the downlink (1116 to 1118). Since both the second transmission paths 1102 are downlinks, there is no means for transmitting information from the nonvolatile storage device to the host device. Therefore, even if an attempt is made to temporarily stop (“Busy”) the high-speed Write command during the data transfer (1117), the nonvolatile storage device until the data transfer is completed and the second transmission path 1102 is switched to the uplink again. Cannot send “Busy” to the host device.
- the present invention provides an interface device and a communication device that can promptly transmit instructions and interrupt notifications between the host device and the slave device even during data reading and writing in the half-duplex mode.
- An object is to provide a system, a nonvolatile memory device, a communication mode switching method, and an integrated circuit.
- a first invention is an interface device used in a communication system having a first transmission line and a second transmission line, which are at least two-channel transmission lines, and transmitting and receiving commands and data using the transmission lines.
- the input / output terminal for the first transmission line is connected to the first transmission line and can be set in at least two states: an input state in which a command or data is received and an output state in which the command or data is transmitted. .
- the input / output terminal for the second transmission line is connected to the second transmission line and can be set in at least two states: an input state in which a command or data is received and an output state in which the command or data is transmitted. is there.
- the communication mode switching condition detection unit changes the full-duplex communication mode that is a communication mode for performing communication by full-duplex in a communication system to the half-duplex communication mode that is a communication mode for performing communication by half-duplex in a communication system. Whether the first condition, which is a condition for switching, and the second condition, which is a condition for switching the half-duplex communication mode to the full-duplex communication mode, are set, and whether the set first condition or second condition is satisfied Determine whether or not.
- both the first transmission line input / output terminal and the second transmission path input / output terminal are in the input state.
- the communication mode is switched from the full-duplex communication mode to the half-duplex communication mode by setting the output state.
- the transmission path switching control unit when the communication mode switching condition detection unit determines that the second condition is satisfied, one of the first transmission path input / output terminal and the second transmission path input / output terminal. Is set to the output state and the other input / output terminal is set to the input state, thereby switching the communication mode from the half-duplex communication mode to the full-duplex communication mode.
- the direction of the transmission line can be switched to temporarily enter the full-duplex mode when a predetermined condition is satisfied. Therefore, it is possible to achieve both high-speed data transmission in the half-duplex mode and prompt execution of an interrupt request in the half-duplex mode.
- the “input state” and “output state” that are “two states”, for example, “high impedance” (insulation)
- a state other than the “input state” and the “output state” may be taken.
- the second invention is the first invention, wherein the communication mode switching condition detecting unit transmits or receives a predetermined amount of data from the time when the communication system is switched to communication in the half-duplex communication mode. When completed, it is determined that the second condition is satisfied.
- a communication mode switching condition detection part is a packet of N pieces (N is a natural number) from the time of a communication system being switched to communication in a half-duplex communication mode. When the transmission or reception of is completed, it is determined that the second condition is satisfied.
- N is a natural number
- the full-duplex communication mode is always used.
- prompt execution of an interrupt request during the half-duplex communication mode can be guaranteed.
- the communication mode switching timing can be easily determined by simply counting the number of transmitted and received packets.
- a fourth invention is any one of the first to third inventions, wherein the transmission path switching control unit includes the second condition in a data transmission / reception request or a data transmission / reception command and notifies the communication partner. As a result, the second condition can be notified to the communication partner simply and reliably.
- the data transmission / reception request or the data transmission / reception command may use a predefined packet.
- a fifth invention is any one of the first to fourth inventions, wherein the transmission path switching control unit is configured to notify and / or set the second condition at the time of initial setting of the interface device. Send the packet.
- the second condition condition for switching from half-duplex to full-duplex
- the interface device is initialized. There is no need to perform communication for setting the second condition.
- a sixth invention is the invention of any one of the first, second, third, and fifth, wherein the number N of transmitted or received packets for determining that the second condition is satisfied is determined by the communication system. This is determined from the buffer size. Thereby, high-speed data transfer can be appropriately performed in the communication system.
- the method for determining the number N of packets may be as follows.
- the buffer size of the interface device on the host device side is Buf1 [bytes]
- the buffer size of the interface device on the slave device side is When Buf2 [byte] and the packet size of a packet communicated between the host device and the slave device is A [byte]
- N Int (Buf2 / A)
- Buf1 ⁇ Buf2 Int (Buf1 / A)
- the number of packets N may be determined.
- Int (X) represents the maximum integer value that does not exceed X
- Int (X) is a function corresponding to an operation using a Gaussian symbol).
- the method for determining the packet number N may be a method for determining the packet number N based on the processing performance of the host device and the slave device. That is, in this method for determining the number N of packets, the number N of packets is determined based on a device having a small buffer size, so that the communication performance of the communication system can be maximized.
- the method for determining the packet number N may be a method for determining the packet number N based on the processing speed performance of the host device and the slave device.
- the processing speed and operation clock of the host device are P1 and C1, respectively
- the processing speed and operation clock of the slave device are P2 and C2, respectively
- the packet size of the communication packet is A, P1, P2, and C1 , C2 and A may be determined based on all or a part of A.
- the processing speed performance refers to the processor processing capacity installed in the host device or slave device, the read / write speed to the recording medium such as RAM or flash memory also installed in the host device or slave device, and external communication with the outside It is determined from all or part of the transmission speed of the communication path.
- the seventh invention is any one of the first to sixth inventions, wherein the communication mode switching condition detecting unit has elapsed a predetermined time since the communication system was switched to communication in the full-duplex communication mode. If it is, it is determined that the first condition is satisfied.
- the interface device when the communication system is switched to communication in the full-duplex communication mode, when the transmission or reception of a predetermined amount of data is completed, the interface device returns to the half-duplex communication mode. After the execution of is finished, the high-speed data communication in the half-duplex communication mode can be resumed promptly.
- An eighth invention is any one of the first to seventh inventions, wherein the transmission path switching control unit is configured to notify and / or set the first condition at the time of initial setting of the interface device. Send the packet.
- a ninth invention is any one of the first to seventh inventions, wherein the communication mode switching condition detecting unit outputs an interface switching request command after the communication system is switched to communication in the full-duplex communication mode. If received, it is determined that the first condition is satisfied.
- the communication mode switching condition detecting unit outputs an interface switching request command after the communication system is switched to communication in the full-duplex communication mode. If received, it is determined that the first condition is satisfied.
- the interface device when the communication system is switched to the communication in the full-duplex communication mode and then receives the interface switching request command, the interface device returns to the half-duplex communication mode. Thereafter, the high-speed data communication in the half-duplex communication mode can be resumed promptly. Further, in this interface apparatus, since the communication mode is switched by receiving the interface switching request command, it is not necessary to perform time measurement (by clock count or the like) on the transmission side and the reception side.
- the tenth invention is any one of the first to seventh inventions, wherein the communication mode switching condition detecting unit outputs an interface switching request command after the communication system is switched to communication in the full-duplex communication mode. If it is transmitted, it is determined that the first condition is satisfied.
- the communication mode switching condition detecting unit outputs an interface switching request command after the communication system is switched to communication in the full-duplex communication mode. If it is transmitted, it is determined that the first condition is satisfied.
- the communication system is switched to the communication in the full-duplex communication mode and then returns to the half-duplex communication mode when the interface switching request command is transmitted, the execution of the interrupt request or the like is finished. Thereafter, the high-speed data communication in the half-duplex communication mode can be resumed promptly.
- the communication mode since the communication mode is switched by receiving the interface switching request command, it is not necessary to perform time measurement (by clock count or the like) on the transmission side and the reception side. Furthermore, by controlling the timing for transmitting the interface switching request command, the communication period in the full-du
- An eleventh aspect of the invention is any one of the first to sixth aspects of the invention, wherein the transmission path switching control unit receives full-duplex communication when receiving a wait instruction interrupt notification after switching to full-duplex communication mode.
- the mode is switched to the half-duplex communication mode.
- a twelfth aspect of the present invention is any one of the first to sixth aspects of the present invention, wherein the transmission path switching control unit does not receive a wait instruction interrupt notification within a predetermined time after switching to the full-duplex communication mode.
- Switch to half-duplex communication mode whereby, in this interface device, the full-duplex mode can be reliably maintained from the time when the interrupt notification of the Wait instruction (for example, the Wait notification packet) is received until the predetermined time elapses, and In the meantime, the interface device only needs to stand by while maintaining the communication mode, so there is no need to perform extra communication (excess packet transmission / reception) (for example, at a predetermined cycle by polling). There is no need to check the condition of the device). It should be noted that it is preferable to immediately switch to the half-duplex communication mode when a wait instruction interrupt notification is not received within a predetermined time.
- a thirteenth aspect of the invention is a non-volatile storage device including a non-volatile memory, a non-volatile memory control unit that performs read / write control on the non-volatile memory, and the interface device according to any one of the first to twelfth aspects of the invention. .
- a nonvolatile memory device for example, an SD card
- a fourteenth aspect of the invention is a communication apparatus comprising: an external communication unit that performs communication with the outside; an external communication control unit that controls the external communication unit; and the interface device according to any one of the first to twelfth aspects of the invention. It is.
- a fifteenth aspect of the present invention is a communication system including a host device including the interface apparatus according to the thirteenth or fourteenth aspect and a slave apparatus including the interface apparatus according to any one of the first to eighth aspects.
- a sixteenth aspect of the invention is a communication mode switching method used in a communication system having a first transmission line and a second transmission line, which are at least two-channel transmission lines, and transmitting and receiving commands and data using the transmission lines.
- a full-duplex communication mode that is a communication mode that performs communication by full-duplex in a communication system is changed to a half-duplex communication mode that is a communication mode that performs communication by half-duplex in a communication system.
- a first condition that is a condition for switching and a second condition that is a condition for switching the half-duplex communication mode to the full-duplex communication mode is set, and whether the set first condition or second condition is satisfied Determine whether or not.
- the transmission path switching control step when it is determined by the communication mode switching condition detection step that the first condition is satisfied, the communication mode is switched from the full duplex communication mode to the half duplex communication mode, and the communication mode switching is performed.
- the communication mode is switched from the half-duplex communication mode to the full-duplex communication mode.
- the communication mode switching method even when data reading or data writing in the half duplex mode is being executed, the direction of the transmission line is switched to temporarily set to the full duplex mode when a predetermined condition is satisfied. Therefore, it is possible to achieve both high-speed data transmission in the half-duplex mode and prompt execution of an interrupt request in the half-duplex mode.
- the seventeenth aspect of the invention is an interface device used in a communication system having a first transmission line and a second transmission line, which are at least two-channel transmission lines, and transmitting and receiving commands and data using the transmission lines. It is an integrated circuit.
- the interface device is connected to the first transmission path, and is used for the first transmission path that can be set in at least two states, an input state in which a command or data is received and an output state in which the command or data is transmitted.
- For the second transmission line that can be set to at least two states of an input / output terminal and an input state that is connected to the second transmission line and that receives commands and data and an output state that transmits commands and data Input and output terminals.
- An integrated circuit includes a communication mode switching condition detection unit and a transmission path switching control unit.
- the communication mode switching condition detection unit changes the full-duplex communication mode that is a communication mode for performing communication by full-duplex in a communication system to the half-duplex communication mode that is a communication mode for performing communication by half-duplex in a communication system.
- the first condition which is a condition for switching
- the second condition which is a condition for switching the half-duplex communication mode to the full-duplex communication mode
- the transmission path switching control unit When the communication mode switching condition detection unit determines that the first condition is satisfied, the transmission path switching control unit inputs both the first transmission path input / output terminal and the second transmission path input / output terminal. Alternatively, the communication mode can be switched from full-duplex communication mode to half-duplex communication mode by setting the output state.
- the transmission path switching control unit when the communication mode switching condition detection unit determines that the second condition is satisfied, one of the first transmission path input / output terminal and the second transmission path input / output terminal. Is set to the output state and the other input / output terminal is set to the input state, thereby switching the communication mode from the half-duplex communication mode to the full-duplex communication mode.
- An eighteenth aspect of the invention is an interface device used in a communication system having a low-speed transmission line and a plurality of high-speed transmission lines, and transmitting and receiving commands and data using the low-speed transmission line or the plurality of high-speed transmission lines.
- the input / output terminal for the low-speed transmission line is connected to the low-speed transmission line, and can be set in at least two states: an input state for receiving commands and data, and an output state for transmitting commands and data. It is.
- a plurality of input / output terminals for a high-speed transmission path are connected to the high-speed transmission path and can be set in at least two states: an input state in which commands and data are received, and an output state in which commands and data are transmitted. Output terminal.
- the transmission line switching control unit can independently set the input / output states of the low-speed transmission line input / output terminals and the plurality of high-speed transmission line input / output terminals, and is based on the following three modes. Sets the input / output status of the transmission line input / output terminals and the multiple high-speed transmission line input / output terminals. (1) At least one high-speed transmission line input / output terminal is set to an output state among a plurality of high-speed transmission line input / output terminals, and for high-speed transmission lines other than the high-speed transmission line input / output terminal set to the output state. Full-duplex communication mode that sets the input / output terminals to the input state.
- Half-duplex output mode that sets all of the multiple high-speed transmission line input / output terminals to the output state.
- Half-duplex input mode that sets all of the multiple high-speed transmission line input / output terminals to the input state.
- the transmission line switching control unit sets the low-speed transmission line input / output terminal to the input state in the half-duplex output mode, and sets the low-speed transmission line input / output terminal to the output state in the half-duplex input mode.
- this interface device when half-duplex communication is performed using a plurality of high-speed transmission paths, the communication direction of the low-speed transmission path is set to be opposite to the communication direction of the half-duplex communication. Therefore, in this interface device, even when half-duplex communication is performed using a plurality of high-speed transmission paths, interrupt processing can be reliably performed. As a result, this interface device can achieve both appropriate interrupt processing and high-speed data transfer (high-speed data transmission in the half-duplex mode).
- a nineteenth aspect of the present invention is the eighteenth aspect of the present invention, wherein the low-speed transmission line input / output terminal is a transmission line input / output terminal for performing communication by a single-ended system, and a plurality of high-speed transmission line input / output terminals. At least one of the input / output terminals for the high-speed transmission path is an input / output terminal for a transmission path that performs communication by the differential transmission method.
- a twentieth invention is a nonvolatile memory device including a nonvolatile memory, a nonvolatile memory control unit that performs read / write control on the nonvolatile memory, and an interface device according to the eighteenth or nineteenth invention.
- a twenty-first invention is a communication device including an external communication unit that communicates with the outside, an external communication control unit that controls the external communication unit, and the interface device according to the eighteenth or nineteenth invention.
- the twenty-second invention is a communication system comprising a host device including the interface device according to the eighteenth or nineteenth invention and a slave device including the interface device according to the eighteenth or nineteenth invention.
- the direction of the transmission path is switched to temporarily By setting the duplex mode, it is possible to achieve both high-speed data transmission in the half-duplex mode and prompt execution of an interrupt request in the half-duplex mode.
- the block diagram explaining the structure of 1st Embodiment The block diagram explaining the detailed structure of the transmission-line switching control part in 1st Embodiment.
- the block diagram explaining the detailed structure of the transmission-line switching control part in 1st Embodiment The block diagram explaining the detailed structure of the transmission-line switching control part in 1st Embodiment.
- Timing chart showing, in time series, packets transmitted on a transmission line when high-speed data Read is executed in the first embodiment
- Timing chart showing, in time series, packets transmitted on a transmission line when high-speed data Read is executed in the first embodiment
- the block diagram explaining another composition of a 1st embodiment The block diagram explaining the structure of 2nd Embodiment
- the block diagram explaining the detailed structure of the transmission-line switching control part in 2nd Embodiment The block diagram explaining the detailed structure of the transmission-line switching control part in 2nd Embodiment.
- Timing chart showing, in time series, packets transmitted on a transmission line when executing high-speed data read in the second embodiment
- Timing chart showing, in time series, packets transmitted on a transmission line when executing high-speed data read in the second embodiment
- the block diagram explaining the structure of 3rd Embodiment The block diagram explaining the detailed structure of the transmission-line switching control part in 3rd Embodiment.
- Timing chart showing, in time series, packets transmitted on a transmission line when high-speed data Read is executed in the first embodiment
- Packet configuration diagram of the first embodiment The figure which showed the packet header of 1st Embodiment, and a part of Argent Timing chart showing, in time series, packets transmitted on a transmission line when high-speed data write is executed in the first embodiment.
- Timing chart showing, in time series, packets transmitted on a transmission line when high-speed data Read is executed in the first embodiment The figure which shows the I / O space of 1st Embodiment.
- the block diagram explaining the structure of 4th Embodiment The block diagram explaining the structure in the full duplex mode of the bus switching control part in 4th Embodiment.
- Timing chart showing packets transmitted on the bus at the time of high-speed read in the fourth embodiment in time series The block diagram explaining the structure in the half duplex Read mode of the bus switching control part in 4th Embodiment. Timing chart showing the packets transmitted on the bus at the time of high-speed write in the fourth embodiment in time series
- Timing chart showing the packets transmitted on the bus at the time of high-speed write in the fourth embodiment in time series The block diagram explaining the structure in the half duplex Write mode of the bus switching control part in 4th Embodiment.
- FIG. 1 is a block diagram showing a configuration of a communication system 1 according to the first embodiment of the present invention.
- the communication system 1 includes a host device 100 and a nonvolatile storage device 110 that is a kind of slave device.
- the host device 100 and the nonvolatile storage device 110 are connected by a first transmission path 121, a second transmission path 122, and a clock transmission path 123.
- the host device 100 includes at least a user interface unit 131, an application unit 132, a memory unit 133, and a host interface unit 140.
- the host interface unit 140 includes a clock transmission unit 141, a packet generation unit 142, a transmission path switching control unit 143, a packet analysis unit 144, and a clock counter 145.
- the nonvolatile storage device 110 includes at least a slave interface unit 160, a nonvolatile memory unit read / write control unit 170, and a nonvolatile memory unit 171.
- the slave interface unit 160 includes a clock regeneration unit 161, a transmission path switching control unit 162, a packet analysis unit 163, a packet generation unit 164, and a clock counter 165. Note that the packet generation units 142 and 164 and the packet analysis units 144 and 163 are provided with buffers of appropriate sizes.
- 2A to 2C are configuration diagrams of the host interface unit 140 and the slave interface unit 160.
- the configurations of the transmission path switching control unit 143 on the host device side and the transmission path switching control unit 162 on the slave device side are shown in detail. It is a figure. 2A to 2C, the transmission path switching control unit 143 on the host device side includes a switching condition detection unit 240 of the host interface unit 140, an input / output terminal 241 in the host interface unit 140 of the first transmission path 121, and And an input / output terminal 242 in the host interface unit 140 of the second transmission path 122.
- the transmission path switching control unit 162 on the slave device side includes a switching condition detection unit 260 of the slave interface unit 160, an input / output terminal 261 in the slave interface unit 160 of the first transmission path 121, and a slave interface of the second transmission path 122. Input / output terminal 262 in the unit 160.
- the switching condition detection unit 240 on the host device side monitors the states of the packet generation unit 142, the packet analysis unit 144, and the clock counter 145 to detect whether the switching condition is satisfied. Then, the switching condition detection unit 240 sets the input / output terminals 241 and 242 to the transmission state or the reception state, respectively, according to the satisfaction condition of the switching condition. Similarly, the switching condition detection unit 260 on the slave device side monitors the states of the packet analysis unit 163, the packet generation unit 164, and the clock counter 165 to detect whether the switching condition is satisfied. Then, the input / output terminals 261 and 262 are set to the transmission state or the reception state, respectively, according to the satisfaction condition of the switching condition. In FIG.
- the input / output terminal 241 in the host interface unit 140 of the first transmission path 121 is set to the transmission state (T)
- the input / output terminal 261 in the slave interface unit 160 is set to the reception state (R)
- the input / output terminal 242 in the host interface unit 140 of the 2-transmission path 122 is set to the reception state (R)
- the input / output terminal 262 in the slave interface unit 160 is set to the transmission state (T).
- the communication direction of the first transmission path 121 is a direction (downlink) from the host interface unit 140 to the slave interface unit 160.
- the communication direction of the second transmission path 122 is the direction (uplink) from the slave interface unit 160 to the host interface unit 140. Therefore, as shown in FIG. 2A, in the communication system 1, the directions of the first transmission path 121 and the second transmission path 122 are different, and data can be transmitted simultaneously from both the host interface unit 140 and the slave interface unit 160. . That is, FIG. 2A shows a case where the communication system 1 is set to the “full duplex mode”. On the other hand, in FIG.
- the input / output terminals 241 and 242 in the host interface unit 140 of the first transmission path 121 and the second transmission path 122 are both in the reception state (R)
- the input / output terminals 261 in the slave interface section 160 and Both 262 are set to the transmission state (T)
- the communication directions of the first transmission path 121 and the second transmission path 122 are the same (uplink).
- the communication directions of the first transmission path 121 and the second transmission path 122 are the same (downlink).
- FIGS. 2B and 2C illustrate a case where the communication system 1 is set to the “half-duplex mode”. In this case, the communication system 1 can transmit data with a bandwidth twice that of the full-duplex mode.
- FIGS. 3A and 3B and FIGS. 12A and 12B are timing charts (timing charts) showing, in time series, packets transmitted on the first transmission path 121 and the second transmission path 122 in the first embodiment.
- FIGS. 1A and 1B to FIGS. 3A and 3B, FIGS. 12A and 12B, and FIGS.
- the host interface unit 140 When the nonvolatile storage device 110 is attached to the host device 100, the host interface unit 140 becomes active. Further, a clock is supplied from the clock transmission unit 141 of the host interface unit 140 to the clock regeneration unit 161 of the slave interface unit 160 via the clock transmission path 123, and the slave interface unit 160 becomes active. At this time, the clock generated by the clock regeneration unit 161 is supplied to the entire nonvolatile memory device 110 or a part thereof.
- the packet generation unit 142 generates an initialization command packet.
- the initialization command will be described later.
- the packet generation unit 142 and the packet generation unit 164 generate various request packets, data packets, response packets, message packets, and the like as shown in FIG. 17, for example.
- the packet analysis unit 144 and the packet analysis unit 163 analyze various request packets, data packets, response packets, message packets, and the like as shown in FIG. 17, for example.
- the I / OR / W request packet 1701 has a packet structure shown in FIG.
- the I / O R / W request packet 1701 transmits a request for reading / writing an I / O space to which a control register, a status register (status register), and the like are mapped.
- FIG. 21 shows an example of the I / O space used in the communication system 1.
- I / O space shown in FIG. 21 one byte is assigned to each address from address 000 (h) (“(h)” is expressed in hexadecimal. The same applies hereinafter) to 1FF (h).
- the I / O space exists (implements) in both the host device 100 and the non-volatile storage device 110, and each has its own information (information held only in the host device 100 and only the non-volatile storage device).
- FIG. 17 shows an example of the packet structure of the Memory R / W request packet 1702, the data packet 1703, the response packet 1704, and the message packet 1705. These packets will be described below.
- the Memory R / W request packet 1702 transmits a request for reading / writing the memory space. Based on this request, data reading from the nonvolatile memory unit 171 of the nonvolatile memory device 110 or data writing to the nonvolatile memory unit 171 is executed.
- the data packet 1703 transmits data read from the nonvolatile memory unit 171 based on a read request from the nonvolatile memory unit 171 by the Memory R / W request packet.
- the data packet 1703 transmits write data to the nonvolatile memory unit 171 based on a write request to the nonvolatile memory unit 171 by the Memory R / W request packet.
- the response packet 1704 transmits a response to the request packet (I / O R / W request packet and Memory R / W request packet).
- the message packet 1705 is mainly used for event notification such as interruption, Busy, and Wait.
- headers 1711 to 1715 for transmitting information common to the packets are added to the heads of the packets, respectively.
- FIG. 18 shows a configuration example of Header information added to the head of each packet in the packets 1701 to 1705.
- the header information is composed of 2 bytes, and bit 7 “DIR” of byte 0 is a bit indicating the transmission direction of the packet.
- this bit “Dir” is “0”, it is non-volatile. This indicates that a packet is transmitted from the volatile storage device 110 to the host device 100, and a bit “Dire” of “1” indicates that a packet is transmitted from the host device 100 to the nonvolatile storage device 110.
- bits 6 to 4 “Packet Type” of byte 0 are bits indicating the type of packet, and “Packet Type” is 000 (b) (“(b)” is "Indicates binary notation. The same applies hereinafter.)” Indicates an I / O R / W request packet 1701, and "001 (b)” indicates a Memory R / W request packet 1702. 010 (b) indicates a response packet 1704, 011 (b) indicates a data packet 1703, and 111 (b) indicates a message packet 1705. Indicates that there is.
- a “Destination ID” composed of a total of 6 bits, that is, bit 3 to bit 0 of byte 0 and bit 7 to bit 6 of byte 1 has a plurality of nonvolatile storage devices 110 in one host device 100. Is stored, ID (packet destination information) indicating to which nonvolatile storage device the packet is transmitted is stored.
- bit 5 to bit 0 “Transaction ID” of byte 1 are IDs assigned for each processing, and the same ID is given to a response packet or a data packet corresponding to one request packet, and the request And the result (data corresponding to the response or request) is used to manage the correspondence.
- a Memory R / W request packet 1702 for transmitting a request to read data in the memory unit is transmitted from the host device 100 to the nonvolatile storage device 110 will be described.
- the “Transaction ID” of the Memory R / W request packet 1702 is 001000 (b)
- the “Transaction ID” of the response packet 1704 transmitted from the nonvolatile storage device 110 to the host device 100 after the transmission of the request packet is If the value is 001000 (b), it is determined that the response packet 1704 is a response packet corresponding to the Memory R / W request packet that requests to read the data of the memory unit transmitted immediately before.
- the response The packet 1704 is determined to be a response packet corresponding to a request packet different from the Memory R / W request packet that makes a request to read the memory data transmitted immediately before.
- “Argent” indicated by 1721 to 1725 is an area for storing information on the packet length, other control system information, and the like as necessary. It is.
- FIG. 18 shows an example of a part of the Arg 1722 (first 1 byte of Arg 1722) of the Memory R / W request packet 1702.
- Bit 7 “DPLX” of byte 2 (the first byte of Argment 1722) is a bit for setting a communication mode.
- DPLX the communication mode setting is the full duplex mode, that is, the first communication mode.
- DPLX the communication mode setting is the half-duplex mode, that is, the second communication mode.
- Bit 6 “R / W” of byte 2 (the first byte of Argment 1722) is a bit indicating whether the Memory R / W request packet 1702 is a Read request or a Write request. When bit 6 “R / W” is “0”, this indicates that the packet is a Read request (for packet). When bit 6 “R / W” is “1”, the packet is “Write”. Indicates a request (for packet).
- “Address” (part indicated by 1731 in FIG. 17) of the I / O R / W request packet 1701 designates which area of the I / O space is to be read or which area of the I / O space is to be written. This is an area for storing addresses to be executed.
- “Data” (portion 1741 in FIG. 17) of the I / O R / W request packet 1701 is an area for storing data to be written in the I / O space. For example, when writing the value “4 (d)” (“(d)” indicates a decimal notation, and so on) to “DIR C” in the I / O space shown in FIG. Sets “Address” (portion 1731 in FIG. 17) to 030 (h), “Data” (portion 1741 in FIG. 17) to “4 (d)”, and sends an I / O Write request packet. To transmit.
- “Address” (portion 1732 in FIG. 17) of the Memory R / W request packet 1702 stores an address for designating which area of the memory space is to be read or which area of the memory space is to be written. It is an area to do.
- “Data” (the portion 1742 in FIG. 17) of the data packet 1703 is an area for mainly storing data in response to the Read / Write request in the memory space, and “Data” (the portion 1743 in FIG. 17) of the response packet 1704. ) Is an area for mainly storing data in response to a read request in the I / O space.
- “CRC” portion indicated by 1751 to 1755 in FIG. 17 is added to the end of each packet as necessary, and data error detection of each transmitted packet is performed. Used for
- the initialization command is a single packet for convenience of explanation (for simplicity). Depicted. However, in actuality, various information (for example, information related to the version of the compatible standard, information related to the manufacturer, Initialization is performed in the communication system 1 by a series of packet communications for reading out the serial number of the device, information on the operable voltage, etc.) and making various settings in the nonvolatile storage device 110. It is common. (1.2.1: Parameter setting for transmission switching condition at initialization) At the time of such initialization, the interface unit of the communication system 1 writes (sets) parameters related to transmission path switching conditions to the I / O space as follows.
- the address 30 (h) “DIR C” in the I / O space in FIG. 21 is a Direction Control setting register, and is a condition for temporarily switching to the full-duplex mode during data transmission in the half-duplex mode ( This is a register for setting the number of transmission data packets in the half-duplex mode as a condition for the switching cycle.
- the host device 100 sets “4” to the address 30 (h) “DIR C” of the I / O space of the host device 100 itself, and then the packet generator 142 of the host device 100 performs the I / O An OR / W request packet is generated.
- the host device 100 stores a request to write (write) the address 30 (h) “DIR C” in the I / O space of the nonvolatile storage device 110 and a packet with the write value “4” in a nonvolatile manner. To the sexual storage device 110.
- the nonvolatile storage device 110 receives the packet from the host device 100 and sets (writes) “4” to the address 30 (h) “DIR C” of the I / O space. Thereby, the nonvolatile storage device 110 performs the half-duplex mode (second operation) every time transfer of four data packets is performed after the data packet transfer in the half-duplex mode is started in the communication system 1. The transmission path is temporarily switched from the communication mode to the full-duplex mode (first communication mode).
- the I / O space shown in FIG. 21 is a logical space, and a storage element such as a register or a memory corresponding to each address is actually mounted in each related circuit block (when realized by hardware). It is common to be done.
- the address 30 (h) “DIR C” register of the I / O space of the host device 100 is mounted in the switching condition detection unit 240, and the address 30 (I / O space of the nonvolatile storage device 110 ( h)
- the “DIR C” register is mounted in the switching condition detection unit 260.
- the communication system 1 is assumed to be in the full duplex mode, that is, in the state of FIG. 2A. Therefore, the initialization command packet is transmitted to the packet analysis unit 163 via the first transmission path 121 (301, 1201).
- the packet analysis unit 163 analyzes that the packet is an initialization command and performs necessary initialization.
- the user can instruct the user interface unit 131 of the host device 100 for the high-speed data Read and the high-speed data Write.
- “high-speed data read” is an operation of reading data from the nonvolatile memory unit 171 of the nonvolatile memory device 110 by setting the transmission paths 121 and 122 to the half-duplex mode, that is, the second communication mode. That is.
- “High-speed data write” means that the transmission paths 121 and 122 are set to the half-duplex mode, that is, the second communication mode, and data is transferred from the host device 100 to the nonvolatile memory unit 171 in the nonvolatile storage device 110. Is the operation of writing. (1.2.2: High-speed Read operation (half-duplex / full-duplex mode switching over time T))
- High-speed Read operation half-duplex / full-duplex mode switching over time T)
- an operation of high-speed read in the communication system 1 operation of the communication system 1 when the user instructs the user interface unit 131 to perform high-speed data read
- the user interface unit 131 transmits a high-speed data read instruction to the application unit 132.
- the application unit 132 confirms that there is a free area for storing the read data in the memory unit 133, and then causes the packet generation unit 142 to generate a high-speed Read command packet. It is assumed that the read destination address and the read size are multiplexed in the high-speed Read command.
- the high-speed Read command packet generated by the packet generation unit 142 will be specifically described.
- the high-speed Read command packet is generated by storing a read destination address in “Address” 1732 of the Memory R / W request packet 1702 in FIG. 17 and storing a read size in a part of “Argent” 1722. Also, bit 6 “R / W” of the first byte (byte 2 in FIG. 18) of “Argent” 1722 is set to “0” to indicate that a Read request is to be performed with a Memory R / W request packet. .
- bit 7 “DPLX” of the first byte (byte 2 in FIG. 18) of “Argent” 1722 is set to “1” (half-duplex mode) ( By setting “DPLX” to “1” (half duplex mode), the communication system 1 is instructed to perform communication in the half duplex mode (half duplex mode), that is, the second communication mode. be able to).
- the high-speed Read command packet generated by the packet generation unit 142 is transmitted to the packet analysis unit 163 via the first transmission path 121 (302).
- the packet analysis unit 163 analyzes that the packet is a high-speed Read command.
- the switching condition detection unit 240 of the transmission path switching control unit 143 detects that the packet generation unit 142 has transmitted the high-speed Read command packet, and sets the input / output terminal 241 of the first transmission path 121 to the reception state.
- the switching condition detection unit 260 of the transmission path switching control unit 162 detects that the packet analysis unit 163 has received the high-speed Read command packet, and sets the input / output terminal 261 of the first transmission path 121 to the transmission state.
- the first transmission path 121 is set to the uplink (303), and the communication system 1 enters the half-duplex mode shown in FIG. 2B.
- the slave interface unit 160 After that, the slave interface unit 160, through the non-volatile memory unit read / write control unit 170, from the area on the non-volatile memory unit 171 corresponding to the address multiplexed in the high-speed Read command packet, similarly to the read size multiplexed in the command. Data is sequentially acquired and supplied to the packet generator 164.
- the packet generation unit 164 generates a data packet from a header indicating the packet type and the like and a body generated by dividing the read data into an appropriate size.
- the packet generation unit 164 transmits the generated data packet to the host device 100 via the transmission line switching control unit 162 while distributing the generated data packet to the first transmission line 121 and the second transmission line 122.
- the first data packet DATA (1) is distributed to the first transmission path 121 and the second data packet DATA (2) is distributed to the second transmission path 122 and transmitted (304).
- the DATA (1) and DATA (2) transmitted to the host device 100 are accumulated in the packet analysis unit 144 via the transmission path switching control unit 143.
- the packet analysis unit 144 analyzes that these packets are data packets, and stores the body excluding the header, that is, the data body in the memory unit 133. Thereafter, the third data packet DATA (3) and the fourth data packet DATA (4) are similarly transmitted to the host device 100 (305).
- the packet generation unit 164 It detects that four data packets have been transmitted, and sets the input / output terminal 261 of the first transmission path 121 to the reception state.
- the packet analysis unit 144 sets 4 It detects that the data packets have been received, and sets the input / output terminal 241 of the first transmission path 121 to the transmission state.
- the first transmission path 121 is set to the downlink (306), and the communication system 1 enters the full-duplex mode shown in FIG. 2A.
- the condition for switching from the half-duplex mode to the full-duplex mode is when transmission / reception of N data packets (N is an arbitrary integer) is completed.
- a notification is sent from the host device 100 to the nonvolatile storage device 110.
- the host device 100 sets “N” to the address 30 (h) “DIR C” of the I / O space of the host device 100 itself, and then the packet generator 142 of the host device 100 performs the operation. , I / OR / W request packet is generated. Then, the host device 100 stores a request to write (write) the address 30 (h) “DIR C” in the I / O space of the nonvolatile storage device 110 and a packet with the write value “N” in a nonvolatile manner. To the sexual storage device 110.
- the nonvolatile storage device 110 receives the packet from the host device 100 and sets (writes) “N” to the address 30 (h) “DIR C” of the I / O space.
- the clock counter 165 starts counting the number of clocks based on the clock supplied from the clock regeneration unit 161.
- the clock counter 145 starts counting the number of clocks based on the clock supplied from the clock transmission unit 141.
- the switching condition detection unit 240 in the host interface unit 140 detects that a predetermined time T has elapsed from the time when the first transmission path 121 is switched to the downlink by monitoring the clock counter 145, and the first The input / output terminal 241 of the transmission line 121 is set to the reception state again. At this time, the switching condition detection unit 240 causes the clock counter 145 to clear the number of clocks to zero.
- the switching condition detection unit 260 in the slave interface unit 160 detects by monitoring the clock counter 165 that the predetermined time T has elapsed since the first transmission path 121 was switched to the downlink. The input / output terminal 261 of the first transmission path 121 is set to the transmission state again. At this time, the switching condition detection unit 260 causes the clock counter 165 to clear the number of clocks to zero.
- the 1st transmission line 121 is again set as an uplink (307), and the communication system 1 returns to the half-duplex mode shown to FIG. 2B.
- the condition for switching from the full-duplex mode to the half-duplex mode is that the predetermined time T has elapsed after the transition to the full-duplex mode, which is a parameter of the initialization command.
- the non-volatile storage device 110 To the non-volatile storage device 110.
- the first transmission path 121 is set to the downlink (308), and when a predetermined time T elapses, the half-duplex mode is set. The control of returning to (309) is repeated.
- the host device 100 transmits a command, a message, or the like on the first transmission path 121, so that the nonvolatile memory It is possible to make an interrupt request to the volatile storage device 110.
- FIG. 3B shows a sequence when the host device 100 sends a wait instruction (wait notification / release) to the nonvolatile storage device 110 as an interrupt request during communication in the half-duplex mode. Since the process from issuance of the initialization command packet to the first transmission path 121 being set to the uplink (301 to 303) is the same as that in FIG. 3A, detailed description thereof is omitted.
- the application unit 132 that monitors the free state of the memory unit 133 continues the data read operation from the slave device (nonvolatile storage device 110) by the high-speed Read command. Then, assume that it is determined that there is not enough free space on the memory unit 133 for storing data. In this case, the application unit 132 causes the packet generation unit 142 to generate a wait notification packet, and transmits the packet to the nonvolatile storage device 110 while the first transmission path 121 is set to the downlink (310).
- the wait notification packet transmitted to the nonvolatile storage device 110 is analyzed by the packet analysis unit 163 in the same manner as other commands. At this time, the high-speed Read command being executed is temporarily stopped and the full-duplex mode is maintained. In this case, unlike the case of FIG. 3A, the communication system 1 does not switch to the half-duplex mode even when the predetermined time T has elapsed. Then, switching condition detectors 240 and 260 cause clock counters 145 and 165 to clear the number of clocks to zero. Thereafter, when there is sufficient free space in the memory unit 133, the application unit 132 detects this, causes the packet generation unit 142 to generate a wait release packet, and transmits it to the nonvolatile storage device 110 (311). At this time, the switching condition detection unit 240 detects that the packet generation unit 142 has generated the wait cancellation packet, and sets the input / output terminal 241 of the first transmission path 121 to the reception state.
- the switching condition detection unit 260 detects that the packet analysis unit 163 has analyzed the wait cancellation packet, and sets the input / output terminal 261 of the first transmission path 121 to the transmission state. Thereby, the first transmission path 121 is set to the uplink, the communication system 1 enters the half duplex mode, and the execution of the high-speed Read command is resumed in the communication system 1. As described above, in the communication system 1, the full-duplex mode is surely ensured from the time when the wait notification packet is transmitted to the nonvolatile storage device 110 from the host device 100 until the time when the wait cancellation packet is transmitted.
- the communication system 1 can perform high-speed data transfer without causing unnecessary packet transmission / reception and realizing appropriate interrupt processing.
- a response packet to the wait notification packet may be transmitted from the nonvolatile storage device 110 to the host device 100.
- a response packet for the wait cancellation packet may be transmitted from the nonvolatile storage device 110 to the host device 100.
- the communication mode is switched after a response packet to the wait cancellation packet is transmitted from the nonvolatile storage device 110 to the host device 100.
- FIG. 12A is a timing diagram (timing chart) for explaining the operation of the high-speed write in the communication system 1 (operation when the half duplex / full duplex mode is switched over time T).
- the application unit 132 causes the packet generation unit 142 to generate a high-speed write command packet. It is assumed that the write destination address and the write size are multiplexed in the high-speed Write command. Here, the high-speed write command packet generated by the packet generation unit 142 will be specifically described.
- the high-speed write command packet is generated by storing the address of the reading destination in “Address” 1732 of the Memory R / W request packet 1702 in FIG. 17 and storing the reading size in a part of “Argent” 1722. Also, bit 6 “R / W” of the first byte (byte 2 in FIG. 18) of “Argent” 1722 is set to “1” to indicate that a Write request is to be performed with a Memory R / W request packet. .
- bit 7 “DPLX” of the first byte (byte 2 in FIG. 18) of “Argent” 1722 is set to “1” (half-duplex mode) ( By setting “DPLX” to “1” (half-duplex mode), the communication system 1 is instructed to perform communication in the half-duplex mode (half-duplex mode), that is, the second communication mode. be able to).
- the high-speed write command packet generated by the packet generation unit 142 is supplied to the packet analysis unit 163 via the first transmission path 121 (1202).
- the packet analysis unit 163 analyzes that the packet is a high-speed write command, and notifies the nonvolatile memory unit read / write control unit 170 of it.
- the nonvolatile memory unit read / write control unit 170 confirms that there is a free space for storing data in the nonvolatile memory unit 171.
- the non-volatile memory unit 171 causes the packet generation unit 142 to generate a response packet for the high-speed write command. This response packet is supplied to the packet analysis unit 144 via the second transmission path 122 (1203).
- the packet analysis unit 144 analyzes the packet transmitted from the nonvolatile storage device 110 and confirms that the packet is a response packet to the high-speed write command.
- the switching condition detection unit 260 of the transmission path switching control unit 162 detects that the packet analysis unit 163 has transmitted the response packet, and sets the input / output terminal 262 of the second transmission path 122 to the reception state.
- the switching condition detection unit 240 of the transmission path switching control unit 143 detects that the packet analysis unit 144 has received the response packet, and sets the input / output terminal 242 of the second transmission path 122 to the transmission state.
- the 2nd transmission line 122 is set to a downlink (1204), and the communication system 1 will be in the half duplex mode shown to FIG. 2C.
- the host interface unit 140 supplies data to be written to the nonvolatile memory unit 171 to the packet generation unit 142 via the memory unit 133, and the packet generation unit 142 generates a data packet.
- the packet distribution method to the first transmission path 121 and the second transmission path 122 at the time of high-speed write is the same as that at the time of high-speed read (1205, 1206).
- the data packet transmitted to the nonvolatile storage device 110 is stored in the packet analysis unit 163 via the transmission path switching control unit 162.
- the packet analysis unit 163 analyzes these packets as data packets, and stores the data body in the nonvolatile memory unit 171 via the nonvolatile memory unit read / write control unit 170.
- the packet generation unit 142 Since the switching condition detection unit 240 of the transmission path switching control unit 143 is set to “4” in the address 30 (h) “DIR C” of the I / O space at the time of initialization, the packet generation unit 142 has four packets. It detects that the data packet has been transmitted, and sets the input / output terminal 242 of the second transmission path 122 to the reception state.
- the switching condition detection unit 260 of the transmission path switching control unit 162 is set to “4” in the address 30 (h) “DIR C” of the I / O space at the time of initialization
- the packet analysis unit 163 sets 4 It is detected that data packets have been received, and the input / output terminal 262 of the second transmission path 122 is set to the transmission state.
- the second transmission path 122 is set to the uplink (1207), and the communication system 1 enters the full-duplex mode shown in FIG. 2A.
- the method for setting conditions for switching from the half-duplex mode to the full-duplex mode is the same as in the high-speed read mode.
- the switching condition detection unit 260 is connected to the input / output terminal of the second transmission path 122. 262 is set to the reception state again.
- the switching condition detection unit 240 sets the input / output terminal 242 of the second transmission path 122 to the transmission state again.
- the switching condition detectors 240 and 260 cause the clock counters 145 and 165 to clear the number of clocks to zero.
- the second transmission path 122 is reset to the downlink (1208), and the communication system 1 returns to the half-duplex mode shown in FIG. 2B.
- the second transmission path 122 is set to the uplink (1209), and when the predetermined time T has elapsed, the half-duplex mode is set. The control of returning to (1210) is repeated.
- the second transmission path 122 is set as an uplink (1207 to 1208, 1209 to 1210), the nonvolatile storage device 110 transmits a command, a message, or the like on the second transmission path 122.
- An interrupt notification can be transmitted to the host device 100.
- FIG. 12B shows a sequence in the case where the nonvolatile storage device 110 transmits a Busy notification / release to the host device 100 as an interrupt notification during communication in the half-duplex mode.
- the nonvolatile memory unit read / write control unit 170 causes the packet generation unit 164 to generate a Busy notification packet.
- the nonvolatile memory unit read / write control unit 170 controls the Busy notification packet to be transmitted to the host device 100 while the second transmission path 122 is set to the uplink (1211).
- the Busy notification packet transmitted to the host device 100 is analyzed by the packet analysis unit 144.
- the high-speed Write command being executed is temporarily stopped and the full-duplex mode state is maintained in the communication system 1.
- the communication system 1 does not switch to the half-duplex mode even when the predetermined time T elapses, and the switching condition detection units 240 and 260 are clock counters 145 and 165, respectively. In contrast, the number of clocks is cleared to zero.
- the non-volatile memory unit read / write control unit 170 causes the packet generation unit 164 to generate a Busy release packet and transmit it to the host device 100 (1212).
- the switching condition detection unit 260 detects that the packet generation unit 164 has generated the Busy cancellation packet, and sets the input / output terminal 262 of the second transmission path 122 to the reception state again.
- the switching condition detection unit 240 detects that the packet analysis unit 144 has analyzed the Busy cancellation packet, and sets the input / output terminal 242 of the second transmission path 122 to the transmission state again.
- the second transmission path 122 is set to the downlink, the communication system 1 enters the half-duplex mode, and execution of the high-speed write command is resumed.
- the full-duplex mode is surely performed from the time when the Busy notification packet is transmitted from the nonvolatile storage device 110 to the host device 100 until the time when the Busy release packet is transmitted. Is maintained, and there is no need to send or receive an extra packet for checking the status regarding Busy (for example, it is necessary to check the state of the host device 100 and / or the nonvolatile memory device 110 at predetermined intervals by polling). Absent). Further, the above processing can be realized by processing at the command level, that is, processing by the host interface unit 140 and the memory unit 133, and processing at the application unit 132 is unnecessary, so that processing can be performed at high speed. it can. Accordingly, the communication system 1 can perform high-speed data transfer without causing unnecessary packet transmission / reception and realizing appropriate interrupt processing.
- a response packet to the busy notification packet may be transmitted from the host device 100 to the nonvolatile storage device 110.
- a response packet to the Busy release packet may be transmitted from the host device 100 to the nonvolatile storage device 110.
- the communication system 1 when data is transmitted at high speed in the half-duplex mode using two channel transmission paths at the same time, when communication of a predetermined number of data packets is completed, Temporarily switches the communication direction of the transmission channel of one channel.
- a command, a message, or the like can be transmitted between the host device 100 and the nonvolatile storage device 110.
- the communication system 1 can quickly respond to an interrupt request such as Wait or Busy even during data reading or writing in the half-duplex mode.
- both high-speed data transmission in the half duplex mode and prompt execution of an interrupt request in the half duplex mode can be achieved. Further, in the communication system 1, since it is not necessary to add one channel of an external transmission path for transmitting an interrupt notification such as “Wait” or “Busy”, the circuit scale of the interface device increases, resulting in an increase in cost. Nor.
- the communication system 1 if the communication system 1 does not require such a high-speed data reading, the communication system 1 is left in the full-duplex mode and a normal Read command or a normal Write command that reads or writes data is sent. Just issue it.
- a wait notification packet is transmitted at an arbitrary timing on the first transmission path 121 set in the downlink immediately after initialization, and the wait is canceled.
- the Wait cancellation packet may be transmitted on the first transmission path 121 at an arbitrary timing.
- a busy notification and a busy release packet may be transmitted at an arbitrary timing on the second transmission path 122 set as uplink immediately after initialization.
- the communication system 1 is described as not transmitting data packets in the full-duplex mode. However, even in the full-duplex mode period, the first transmission path 121 and the second transmission path 122 are used. It is possible to send and receive data packets using. Further, in the communication system 1, the number N of transmission / reception data packets and the predetermined time T that trigger mode switching are appropriately determined based on conditions such as buffer size and processing performance in the host device 100 and the nonvolatile storage device 110. That's fine.
- ⁇ Method for determining the number of packets N >> For example, the method for determining the number N of packets may be as follows.
- the buffer size of the host device 1 is Buf1 [byte]
- the buffer size of the nonvolatile storage device 110 (slave device) is Buf2 [byte].
- the packet size of a packet communicated between the host device 100 and the nonvolatile storage device 110 (slave device) is A [bytes]
- N Int (Buf2 / A)
- Buf1 ⁇ Buf2 Int (Buf1 / A)
- the number of packets N may be determined.
- Int (X) represents the maximum integer value that does not exceed X
- Int (X) is a function corresponding to an operation using a Gaussian symbol).
- the method for determining the packet number N may be a method for determining the packet number N based on the processing performance of the host device 100 and the nonvolatile storage device 110 (slave device). That is, in this method of determining the number N of packets, the number N of packets is determined based on a device having a small buffer size, so that the communication performance of the communication system 1 can be maximized.
- the method for determining the packet number N may be a method for determining the packet number N based on the processing speed performance of the host device 100 and the nonvolatile storage device 110 (slave device).
- the processing speed and operation clock of the host device 100 are P1 and C1, respectively
- the processing speed and operation clock of the nonvolatile storage device 110 (slave device) are P2 and C2, respectively
- the packet size of the communication packet is A.
- the number N of packets may be determined based on all or part of P1, P2, C1, C2, and A.
- the processing speed performance refers to the processor processing capacity mounted on the host device 100 or the nonvolatile storage device 110 (slave device), and the RAM or flash mounted on the host device 100 or the nonvolatile storage device 110 (slave device). It is determined from all or part of the reading / writing speed to / from a recording medium such as a memory and the transmission speed of an external communication path for communication with the outside.
- the method of notifying the nonvolatile memory device 110 from the host device 100 in advance with the parameter of the initialization command as to the number N of transmission / reception data packets serving as a mode switching trigger has been described. That is, the host device 100 sets “N” to the address 30 (h) “DIR C” of the I / O space of itself (host device 100), and then the packet generator 142 of the host device 100 performs I / O.
- the “DIR Ctrl” field of bits 3 to 0 shown in FIG. 18 is defined in the first byte of “Argent” 1722 of the Memory R / W request packet 1702 in FIG. This can be realized by storing the number N of transmission / reception data packets that triggers mode switching in ".” Further, in the communication system 1, the value of the address 30 (h) “DIR C” of the I / O space of the host device 100 is set to the “DIR Ctrl” defined in “Argent” of the Memory R / W request packet 1702.
- the nonvolatile storage device 110 configured to transmit the Memory R / W request packet 1702 and receive the Memory R / W request packet 1702 receives the “Memory R / W request packet 1702” stored in the “Argent” of the Memory R / W request packet 1702.
- the value of “DIR Ctrl” may be written to the address 30 (h) “DIR C” of the I / O space of the nonvolatile memory device 110.
- the communication system 1 can perform the same operation as when the number N of transmission / reception data packets serving as a trigger for mode switching is previously notified from the host device 100 to the nonvolatile storage device 110 by the parameter of the initialization command.
- the communication system 1 ⁇ / b> A may be configured by using a network interface device 410 including a slave interface unit 160 and a network interface unit 470 as the slave device. Even in this case, the same effect as that of the communication system 1 can be obtained.
- the network interface device 410 is connected to the remote device 480 via the network communication path 481.
- the network interface unit 470 has a function of controlling the network communication path 481 and a function of controlling the network from the slave interface unit 160.
- a packet generation unit is connected from a memory unit (not shown) in the remote device 480 via the network communication path 481 and the network interface unit 470.
- Data is stored in 164, packetized, and transmitted to the host apparatus 100 in the half-duplex mode.
- a data packet is transmitted from the host device 100 in the half-duplex mode, and the data body extracted by the packet analysis unit 163 includes the network interface unit 470 and the network communication path 481. Is stored in the memory unit in the remote device 480.
- the network communication path 481 can be realized by either a wired network or a wireless network.
- FIG. 5 is a block diagram showing the configuration of the communication system 2 according to the second embodiment of the present invention.
- the communication system 2 includes a host device 500 and a nonvolatile storage device 510 as a slave device.
- the host device 500 and the non-volatile storage device 510 are connected by a first transmission path 121, a second transmission path 122, and a clock transmission path 123.
- the host device 500 includes at least a user interface unit 131, an application unit 132, a memory unit 133, and a host interface unit 540.
- the host interface unit 540 includes a clock transmission unit 141, a packet generation unit 142, a transmission path switching control unit 543, and a packet analysis unit 144.
- the host interface unit 540 is different from the host interface unit 140 according to the first embodiment in that it does not have a clock counter.
- the nonvolatile storage device 510 includes at least a slave interface unit 560, a nonvolatile memory unit read / write control unit 170, and a nonvolatile memory unit 171.
- the slave interface unit 560 includes a clock regeneration unit 161, a transmission path switching control unit 562, a packet analysis unit 163, a packet generation unit 164, and a clock counter 165.
- 6A to 6C are configuration diagrams of the host interface unit 540 and the slave interface unit 560.
- the configurations of the transmission path switching control unit 543 on the host device side and the transmission path switching control unit 562 on the slave device side are shown in detail. It is a figure.
- the transmission path switching control unit 543 on the host device side includes a switching condition detection unit 640 of the host interface unit 540, an input / output terminal 641 in the host interface unit 540 of the first transmission path 121, and And an input / output terminal 642 in the host interface unit 540 of the second transmission path 122.
- the transmission path switching control unit 562 on the slave device side includes a switching condition detection unit 660 of the slave interface unit 560, an input / output terminal 661 in the slave interface unit 560 of the first transmission path 121, and a slave interface of the second transmission path 122. An input / output terminal 662 in the unit 560.
- the switching condition detection unit 640 on the host device side monitors the states of the packet generation unit 142 and the packet analysis unit 144 to detect whether the switching condition is satisfied. Then, the switching condition detection unit 640 sets the input / output terminals 641 and 642 to the transmission state or the reception state, respectively, according to the satisfaction condition of the switching condition. Similarly, the switching condition detection unit 660 monitors the states of the packet analysis unit 163, the packet generation unit 164, and the clock counter 165, and detects whether the switching condition is satisfied. Then, the input / output terminals 661 and 662 are set to the transmission state or the reception state according to the satisfaction condition of the switching condition.
- FIGS. 7A and 7B and FIGS. 13A and 13B are timing charts (timing charts) showing, in time series, packets transmitted on the first transmission path 121 and the second transmission path 122 in the second embodiment.
- the communication system 2 After the initialization command packet is transmitted (701), the high-speed Read command packet is transmitted to the nonvolatile storage device 510 (702), and the first transmission path 121 is set to the uplink ( 703). As a result, the communication system 2 is in the half-duplex mode shown in FIG. 6B.
- the switching condition detection unit 660 of the transmission path switching control unit 562 detects that the packet generation unit 164 has transmitted four data packets, and sets the input / output terminal 661 of the first transmission path 121 to the reception state.
- the switching condition detection unit 640 of the transmission path switching control unit 543 detects that the packet analysis unit 144 has received four data packets, and sets the input / output terminal 641 of the first transmission path 121 to the transmission state. .
- the first transmission path 121 is set to the downlink (704), and the communication system 2 enters the full-duplex mode shown in FIG. 6A.
- the clock counter 165 starts counting the number of clocks based on the clock supplied from the clock regeneration unit 161.
- the switching condition detection unit 660 in the slave interface unit 560 detects that a predetermined time T has elapsed from the time when the first transmission path 121 is switched to the downlink by monitoring the clock counter 165. At this time, the switching condition detection unit 660 instructs the packet generation unit 164 to generate a switching notification packet.
- the generated switching notification packet is transmitted to the host device 500 via the second transmission path 122 set in the uplink (705).
- the switching condition detection unit 660 of the transmission path switching control unit 562 detects that the packet generation unit 164 has transmitted the switching notification packet, and sets the input / output terminal 661 of the first transmission path 121 to the transmission state.
- the switching condition detection unit 640 of the transmission path switching control unit 543 detects that the packet analysis unit 144 has received the switching notification packet, and sets the input / output terminal 641 of the first transmission path 121 to the reception state.
- the first transmission path 121 is set to the uplink (706).
- the communication system 2 can omit the clock counter of the host interface unit 540 and can perform high-speed data transmission in the half-duplex mode and It is possible to achieve both prompt execution of interrupt requests.
- the host device 500 interrupts the nonvolatile storage device 510 such as Wait.
- a request can be made (707).
- the operation of the communication system 2 when the user instructs the high-speed data Write will be described with reference to the timing charts of FIGS. 13A and 13B, focusing on the differences from the high-speed data Read.
- the communication system 2 enters the half duplex mode shown in FIG. 6C.
- the switching condition detection unit 640 of the transmission path switching control unit 543 detects that the packet generation unit 142 has transmitted four data packets, and sets the input / output terminal 642 of the second transmission path 122 to the reception state.
- the switching condition detection unit 660 of the transmission path switching control unit 562 detects that the packet analysis unit 163 has received four data packets, and sets the input / output terminal 662 of the second transmission path 122 to the transmission state. .
- the second transmission path 122 is set to the uplink (1305), and the communication system 2 enters the full-duplex mode shown in FIG. 6A.
- the clock counter 165 starts counting the number of clocks based on the clock supplied from the clock regeneration unit 161.
- the switching condition detection unit 660 in the slave interface unit 560 detects that a predetermined time T has elapsed from the time when the second transmission path 122 is switched to the uplink by monitoring the clock counter 165. At this time, the switching condition detection unit 660 instructs the packet generation unit 164 to generate a switching notification packet.
- the generated switching notification packet is transmitted to the host device 500 via the second transmission path 122 set in the uplink (1306).
- the switching condition detection unit 660 of the transmission path switching control unit 562 detects that the packet generation unit 164 has transmitted the switching notification packet, and sets the input / output terminal 662 of the second transmission path 122 to the reception state.
- the switching condition detection unit 640 of the transmission path switching control unit 543 detects that the packet analysis unit 144 has received the switching notification packet, and sets the input / output terminal 642 of the second transmission path 122 to the transmission state.
- the second transmission path 122 is set to the downlink (1307).
- the communication system 2 can omit the clock counter of the host interface unit 540 and can perform high-speed data transmission in the half-duplex mode and It is possible to achieve both prompt execution of interrupt requests.
- the nonvolatile storage device 510 makes an interrupt request such as Busy to the host device 500. Can be performed (1308).
- the host device is notified of the switching timing from the full-duplex mode to the half-duplex mode from the nonvolatile storage device 510 to the host device 500 by the switching notification packet. Even if there is no clock count at 500, the same effect as in the first embodiment can be obtained.
- the host device 500 may have a clock counter, and the nonvolatile storage device 510 may not have the clock counter by notifying the switching notification packet from the host device 500 to the nonvolatile storage device 510.
- FIG. 8 is a block diagram showing the configuration of the communication system 3 according to the third embodiment of the present invention.
- the communication system 3 includes a host device 800 and a nonvolatile storage device 810.
- the host device 800 and the nonvolatile storage device 810 are connected by a first transmission path 121, a second transmission path 122, and a clock transmission path 123.
- the host device 800 includes at least a user interface unit 131, an application unit 132, a memory unit 133, and a host interface unit 840.
- the host interface unit 840 includes a clock transmission unit 141, a packet generation unit 142, a transmission path switching control unit 843, and a packet analysis unit 144.
- the host interface unit 840 is different from the host interface unit 140 according to the first embodiment in that it does not have a clock counter.
- the nonvolatile storage device 810 includes at least a slave interface unit 860, a nonvolatile memory unit read / write control unit 170, and a nonvolatile memory unit 171.
- the slave interface unit 860 includes a clock regeneration unit 161, a transmission path switching control unit 862, a packet analysis unit 163, and a packet generation unit 164.
- the slave interface unit 860 is different from the slave interface units 160 and 560 according to the above embodiment in that it does not have a clock counter. That is, the communication system 3 is different from the communication systems 1, 1 ⁇ / b> A, and 2 according to the above-described embodiment in that neither the host device side nor the slave device side has a clock counter.
- 9A to 9C are configuration diagrams of the host interface unit 840 and the slave interface unit 860. In particular, the configuration of the transmission path switching control unit 843 on the host device side and the transmission path switching control unit 862 on the slave device side is shown in detail. It is a figure.
- the transmission path switching control unit 843 on the host device side includes a switching condition detection unit 940 of the host interface unit 840 and an input / output terminal 941 in the host interface unit 840 of the first transmission path 121. And an input / output terminal 942 in the host interface unit 840 of the second transmission path 122.
- the transmission path switching control unit 862 on the slave device side includes a switching condition detection unit 960 of the slave interface unit 860, an input / output terminal 961 in the slave interface unit 860 of the first transmission path 121, and a slave interface of the second transmission path 122. An input / output terminal 962 in the portion 860.
- the switching condition detection unit 940 on the host device side monitors the states of the packet generation unit 142 and the packet analysis unit 144 to detect whether the switching condition is satisfied. Then, the switching condition detection unit 940 sets the input / output terminals 941 and 942 to the transmission state or the reception state, respectively, according to the satisfaction condition of the switching condition.
- FIGS. 10A and 10B are timing diagrams illustrating, in time series, packets transmitted on the first transmission path 121 and the second transmission path 122 in the third embodiment.
- FIGS. 8 to 10A and 10B the operation of the communication system 3 according to the present embodiment will be described with reference to FIGS. 8 to 10A and 10B, and FIGS. 14A and 14B, focusing on differences from the above-described embodiment.
- an initialization command packet is transmitted (1001), the first transmission path 121 is set to the uplink (1003), and the communication system 3 is configured as shown in FIG. 9B. This is the half-duplex mode shown. Then, after four data packets are transmitted and received in the communication system 3, the first transmission path 121 is set to the downlink (1004), and the communication system 3 enters the full-duplex mode shown in FIG. 9A. The operation so far in the communication system 3 is the same as in the first and second embodiments.
- the switching condition detection unit 940 of the transmission path switching control unit 843 monitors the packet generation unit 142 from the time when the first transmission path 121 is set to the downlink or a predetermined time before that as the starting point, and the host device 800 To detect whether there is an instruction to be issued to the nonvolatile storage device 810.
- the switching condition detection unit 940 instructs the packet generation unit 142 to generate a switching notification packet.
- the generated switching notification packet is transmitted to the nonvolatile storage device 810 via the first transmission path 121 (1005).
- the switching condition detection unit 940 of the transmission path switching control unit 843 detects that the switching notification packet is transmitted from the packet generation unit 142
- the switching condition detection unit 940 sets the input / output terminal 941 of the first transmission path 121 to the reception state.
- the switching condition detection unit 960 of the transmission path switching control unit 862 detects that the switching notification packet is received by the packet analysis unit 163, the switching condition detection unit 960 sets the input / output terminal 961 of the first transmission path 121 to the transmission state.
- the first transmission path 121 is set to the uplink (1006), and the communication system 3 enters the half-duplex mode shown in FIG. 9B.
- the switching condition detecting unit 940 of the transmission path switching control unit 843 should issue a packet (for example, Wait)
- the packet generation unit 142 immediately transmits the packet to the nonvolatile storage device 810 (1007).
- the host device 800 can execute an interrupt request to the nonvolatile storage device 810.
- the initialization command packet is transmitted (1401), the response packet is returned (1403), and the second transmission path 122 is set to the downlink (1404).
- the half-duplex mode shown in is finished, the second transmission path 122 is set to the uplink (1405), and the communication system 3 enters the full-duplex mode shown in FIG. 9 (a).
- the switching condition detection unit 960 of the transmission path switching control unit 862 monitors the packet generation unit 164 from the time when the second transmission path 122 is set as the uplink or a predetermined time before that. Then, it is detected whether there is an instruction to be issued from the nonvolatile storage device 810 to the host device 800.
- the switching condition detection unit 960 instructs the packet generation unit 164 to generate a switching notification packet.
- the switching notification packet is transmitted to the host device 800 via the second transmission path 122 (1406).
- the switching condition detection unit 960 of the transmission path switching control unit 862 detects that the switching notification packet is transmitted from the packet generation unit 164
- the switching condition detection unit 960 sets the input / output terminal 962 of the second transmission path 122 to the reception state.
- the switching condition detection unit 940 of the transmission path switching control unit 843 detects that the switching notification packet is received by the packet analysis unit 144
- the switching condition detection unit 940 sets the input / output terminal 942 of the second transmission path 122 to the transmission state.
- the 2nd transmission line 122 is set to a downlink (1407), and the communication system 3 will be in the half duplex mode shown to FIG. 9C.
- the switching condition detecting unit 960 of the transmission path switching control unit 862 should issue a packet (for example, Busy When it is detected that there is a notification packet), the packet generator 164 immediately transmits the packet to the host device 800 (1408). Accordingly, the nonvolatile storage device 810 can execute an interrupt request to the host device 800.
- the switching timing from the full-duplex mode to the half-duplex mode is changed from the host device 800 to the nonvolatile storage device 810 at high-speed read and non-volatile at high-speed write.
- a switching notification packet is transmitted from the local storage device 810 to the host device 800. Therefore, the communication system 3 does not require clocking by the clock counter when switching from the full duplex mode to the half duplex mode.
- FIG. 22 is a block diagram showing a configuration of the communication system 4 according to the fourth embodiment.
- the communication system 4 includes a host device 100A and a nonvolatile storage device 110A that is a kind of slave device.
- the host device 100A and the non-volatile storage device 110A include a first transmission path (first high-speed bus) 121, a second transmission path (second high-speed bus) 122, a third transmission path (low-speed bus) 123, and clock transmission. They are connected by a route (clock bus) 124.
- the host device 100A includes at least a user interface unit 131, an application unit 132, a memory unit 133, and a host interface unit 140A.
- the host interface unit 140 includes a clock transmission unit 141A, a packet generation unit 142A, a transmission path (bus) switching control unit 143A, a packet analysis unit 144A, a signal generation unit 145A, and a signal analysis unit 146A.
- the nonvolatile storage device 110 includes a slave interface unit 160A, a nonvolatile memory read / write control unit 170, and a nonvolatile memory 171.
- the slave interface unit 160A includes a clock regeneration unit 161A, a transmission path (bus) switching control unit 162A, a packet analysis unit 163A, a packet generation unit 164A, a signal analysis unit 165A, and a signal generation unit 166A.
- the packet generation units 142A and 164A and the packet analysis units 144A and 163A are provided with buffers of appropriate sizes.
- a differential transmission method is used for a high-speed bus, and a single-end transmission method is used for a low-speed bus.
- a clock is supplied from the clock transmission unit 141A of the host interface unit 140A to the clock regeneration unit 161A of the slave interface unit 160A via the clock bus 124, and the slave interface unit 160A becomes active. At this time, the clock generated by the clock regeneration unit 161A is supplied to the entire nonvolatile memory device 110A.
- FIG. 23 is a configuration diagram of the host interface unit 140A and the slave interface unit 160A.
- FIG. 4 is a diagram illustrating the details immediately after the host interface unit 140A and the slave interface unit 160A are activated.
- the transmission path (bus) switching control unit 143A on the host device side includes a switching condition detection unit 240A, an input / output terminal 241A of the first high-speed bus 121, and an input / output terminal of the second high-speed bus 122. 242A and an input / output terminal 243A of the low-speed bus 123.
- the transmission path (bus) switching control unit 162A on the slave device side is switched on to the switching condition detecting unit 260A, the input / output terminal 261A of the first high-speed bus 121, and the second high-speed bus 122.
- An output terminal 262A and an input / output terminal 263A of the low-speed bus 123 are provided.
- the switching condition detection unit 240A on the host device side monitors packets transmitted and received by the packet generation unit 142A and the packet analysis unit 144A, and detects whether or not the switching condition is satisfied. Then, the switching condition detection unit 240A sets the input / output terminals 241A, 242A, and 243A to the transmission state or the reception state, respectively, according to the satisfaction condition of the switching conditions. Similarly, the switching condition detection unit 260 on the slave device side monitors packets transmitted and received by the packet analysis unit 163A and the packet generation unit 164A, and detects whether or not the switching condition is satisfied.
- the input / output terminals 261A, 262A, 263A are set to the transmission state or the reception state, respectively, according to the satisfaction condition of the switching condition.
- the input / output terminal 241A on the host interface unit 140A side of the first high-speed bus 121 is set to the transmission state (T)
- the input / output terminal 261A on the slave interface unit 160A side is set to the reception state (R).
- the input / output terminal 242A on the host interface unit 140A side of the second high-speed bus 122 is set to the reception state (R)
- the input / output terminal 262A on the slave interface unit 160A side is set to the transmission state (T). Has been.
- the communication direction of the first high-speed bus 121 is set to downlink
- the communication direction of the second high-speed bus 122 is set to uplink.
- the communication system 4 is in a full-duplex mode in which data can be transmitted simultaneously from both sides.
- the input / output terminal 243A on the host interface unit 140A side of the low-speed bus 123 is set to the reception state (R)
- the input / output terminal 263A on the slave interface unit 160A side is set to the reception state (R).
- the low-speed bus 123 is set to be incapable of communication.
- the host device 100A supplies the initialization command packet to the packet analysis unit 163A of the nonvolatile storage device 110A via the first high-speed bus 121.
- the packet analysis unit 163A analyzes that the packet is an initialization command, and performs necessary initialization.
- the communication system 4 enters a steady state (full duplex mode).
- FIG. 24 shows, in time series, packets or signals transmitted on the first high-speed bus 121, the second high-speed bus 122, and the low-speed bus 123 when a high-speed Read command is issued from the host device 100A in the communication system 4. It is the timing diagram shown.
- the user in a steady state, the user can instruct the high-speed data Read to the user interface unit 131 of the host device 100A.
- the user interface unit 131 transmits a high-speed data read instruction to the application unit 132.
- the application unit 132 After confirming that there is a storage area for data to be read in the memory unit 133, the application unit 132 causes the packet generation unit 142 to generate a high-speed Read command packet. It is assumed that the read destination address and the read size are multiplexed in the high-speed Read command.
- the high-speed Read command packet is supplied to the packet analysis unit 163A of the nonvolatile storage device 110A via the first high-speed bus 121 (301).
- the packet analysis unit 163 analyzes that the packet is a high-speed Read command.
- the switching condition detector 240A of the bus switching controller 143A of the host device 100A detects that the packet generator 142A has transmitted the high-speed Read command packet, and sets the input / output terminal 241 of the first high-speed bus 121 to the reception state. .
- the switching condition detection unit 260A of the bus switching control unit 162 of the nonvolatile storage device 110A detects that the packet analysis unit 163A has received the high-speed Read command packet, and transmits the input / output terminal 261A of the first high-speed bus 121. Set to state. Thereby, in the communication system 4, the first high-speed bus 121 is set to the uplink (302). Further, the switching condition detection unit 240A of the bus switching control unit 143A of the host device 100A sets the input / output terminal 243A of the low-speed bus 123 to the transmission state.
- the low-speed bus 123 is set to the downlink (303).
- the communication system 4 enters the half-duplex read mode, and the settings by the bus switching control units 143A and 162A at this time are as shown in FIG.
- the slave interface unit 160 ⁇ / b> A passes through the nonvolatile memory read / write control unit 170 on the nonvolatile memory 171 corresponding to the address multiplexed in the high-speed read command packet.
- data is sequentially acquired from the area by the read size multiplexed in the command, and the acquired data is supplied to the packet generation unit 164A.
- the packet generation unit 164A of the nonvolatile storage device 110A includes a header indicating the packet type and the like, and a body generated by dividing the data read by the nonvolatile memory read / write control unit 170 into an appropriate size. , Generate a data packet.
- the packet generation unit 164A distributes the generated data packet to the first high-speed bus 121 and the second high-speed bus 122, and the host device 100 via the transmission path (bus) switching control unit 162A of the nonvolatile storage device 110A.
- the first data packet DATA (1) is distributed to the first high-speed bus 121 and the second data packet DATA (2) is distributed to the second high-speed bus 122 and transmitted (304).
- the DATA (1) and DATA (2) transmitted to the host device 100A are stored in the packet analysis unit 144A via the transmission path (bus) switching control unit 143A of the host device 100A.
- the packet analysis unit 144 analyzes these packets as data packets, extracts the body excluding the header, that is, the data body, and stores the extracted data body in the memory unit 133.
- the third data packet DATA (3), the fourth data packet DATA (4), the fifth data packet DATA (5), and the sixth data packet DATA (6) are similarly nonvolatile.
- the data is transmitted from the storage device 110A to the host device 100 (305, 306).
- the host device 100 During transfer of the 2k-1st data packet DATA (2k-1) and the 2kth data packet DATA (2k) (307), when the user instructs the user interface unit 131 of the host device 100A to stop the high-speed read
- the user interface unit 131 transmits the instruction to the signal generation unit 145A of the host interface unit 140A via the application unit 132.
- the signal generation unit 145A generates a pulse having a predetermined length, and transmits the pulse to the slave interface unit 160A via the low-speed bus 123 set in the downlink (308).
- the pulse generated by the signal generation unit 145A is supplied to the signal analysis unit 165A of the slave interface unit 160A.
- the signal analysis unit 165A receives the pulse, it analyzes (determines) that “fast read stop” is instructed, and causes the nonvolatile memory read / write control unit 170 to stop acquiring data from the nonvolatile memory 171. Instruct.
- the signal analyzer 165A instructs the packet generator 164A to generate a command cancellation acceptance packet.
- the command cancellation acceptance packet generated by the packet generation unit 164A is transmitted to the host device 100A via the second high-speed bus 122 set in the uplink (309).
- the switching condition detection unit 260A of the transmission path (bus) switching control unit 162A detects that the packet generation unit 164A has transmitted the command cancellation acceptance packet, and sets the input / output terminal 261 of the first high-speed bus 121 to the reception state. .
- the switching condition detection unit 240A of the transmission path (bus) switching control unit 143A of the host device 100A detects that the packet analysis unit 144A has received the command cancellation acceptance packet, and the input / output terminal 241 of the first high-speed bus 121 is detected. Is set to the transmission state. As a result, the first high-speed bus 121 is set to the downlink (310). Furthermore, the switching condition detection unit 240A sets the input / output terminal 243 of the low-speed bus 123 to the reception state. As a result, the low speed bus 123 is set to disable communication (311).
- FIG. 26 shows, in time series, packets or signals transmitted on the first high-speed bus 121, the second high-speed bus 122, and the low-speed bus 123 when a high-speed write command is issued from the host device 100A in the communication system 4. It is the timing diagram shown.
- the user in a steady state, the user can instruct the user interface unit 131 of the host device 100A for high-speed data Write.
- the user interface unit 131 transmits a high-speed data write instruction to the application unit 132.
- the application unit 132 After confirming that the data to be written to the nonvolatile memory 171 is held in the memory unit 133, the application unit 132 causes the packet generation unit 142A of the host device 100A to generate a high-speed write command packet. It is assumed that the write destination address and the write size are multiplexed in the high-speed Write command.
- the high-speed write command packet is supplied to the packet analysis unit 163A of the nonvolatile storage device 110A via the first high-speed bus 121 (501).
- the packet analysis unit 163A analyzes that the packet is a high-speed write command.
- the packet generation unit 164A If the high-speed write is possible in the nonvolatile storage device 110A, the packet generation unit 164A generates a command acceptance response packet, and transmits the generated command acceptance response packet to the host device 100 (502).
- the switching condition detection unit 260A of the transmission path (bus) switching control unit 162A detects that the packet generation unit 164A has transmitted a command acceptance response packet, and the input / output terminal of the second high-speed bus 122 262A is set to the reception state.
- the switching condition detection unit 240A of the transmission path (bus) switching control unit 143A detects that the packet analysis unit 144A has received the command acceptance response packet, and the input / output terminal of the second high-speed bus 122 242A is set to the transmission state. As a result, the second high-speed bus 122 is set to the downlink (503).
- the switching condition detection unit 260A of the transmission path (bus) switching control unit 162A sets the input / output terminal 263A of the low-speed bus 123 to the transmission state.
- the low-speed bus 123 is set to the uplink (504).
- the communication system 4 enters the half-duplex write mode, and the settings by the transmission path (bus) switching control units 143A and 162A at this time are as shown in FIG.
- the host interface unit 140A supplies the data held in the memory unit 133 to the packet generation unit 142A.
- the packet generation unit 142A generates a data packet from a header indicating the packet type and the like, and a body generated by dividing data to be written into the nonvolatile storage device 110A into an appropriate size.
- the packet generation unit 142A transmits the generated data packet to the nonvolatile storage device 110A via the transmission path (bus) switching control unit 143A while distributing the generated data packet to the first high-speed bus 121 and the second high-speed bus 122.
- the first data packet DATA (1) is distributed to the first high-speed bus 121 and the second data packet DATA (2) is transmitted to the second high-speed bus 122 (505).
- the DATA (1) and DATA (2) transmitted from the host device 100A to the nonvolatile storage device 110A are stored in the packet analysis unit 163A via the transmission path (bus) switching control unit 162A of the nonvolatile storage device 110A. Is done.
- these packets are analyzed (determined) as data packets, and the body excluding the header, that is, the data body is supplied (output) to the nonvolatile memory read / write control unit 170.
- the nonvolatile memory read / write controller 170 reaches the write size multiplexed in the high-speed write command in the area on the nonvolatile memory 171 corresponding to the address multiplexed in the high-speed write command packet. Control to write data until.
- the packet analysis unit 163A of the nonvolatile storage device 110A includes a buffer of an appropriate size.
- the nonvolatile memory has a higher data transfer rate than the first high-speed bus 121 or the second high-speed bus 122. Since the writing speed to 171 is slower, if the non-volatile storage device 110A continues to receive packets without interruption, there is no remaining buffer in the packet analysis unit 163A of the non-volatile storage device 110A, and the received data overflows. There is a fear. In the case shown in FIG.
- non-volatile storage device 110A receives DATA (3) and DATA (4) and finds that the remaining buffer capacity is equal to or less than a predetermined value.
- the packet analysis unit 163A of the nonvolatile storage device 110A transmits an instruction to that effect to the signal generation unit 166A in the slave interface unit 160A in order to interrupt the data transfer from the host device 100A.
- the signal generation unit 166A generates a pulse having a predetermined length, and transmits the pulse to the host interface unit 140A of the host device 100A via the low-speed bus 123 set in the uplink (507).
- the pulse generated by the signal generation unit 166A is supplied to the signal analysis unit 146A of the host interface unit 140A.
- the signal analyzing unit 146A receives the pulse, it analyzes (determines) that “fast write interruption” is instructed, and instructs the packet generation unit 142A to interrupt data transmission.
- the nonvolatile storage device 110A when writing to the nonvolatile memory 171 of the data received from the host device 100A by the nonvolatile storage device 110A progresses, it becomes clear that the remaining amount of the buffer in the packet analysis unit 163A has become a predetermined value or more.
- the packet analysis unit 163A transmits an instruction to that effect to the signal generation unit 166A in the slave interface unit 160A in order to resume the data transfer from the host device 100A.
- the signal generation unit 166A of the nonvolatile storage device 110A generates a pulse having a predetermined length, and transmits the pulse to the host interface unit 140A via the low-speed bus 123 set in the uplink (508).
- the pulse generated by the signal generation unit 166A is supplied to the signal analysis unit 146A of the host interface unit 140A.
- the signal analysis unit 146A of the host device 100A receives the pulse, it analyzes (determines) that it is instructed to resume high-speed write, and resumes data transmission to the nonvolatile storage device 110A with respect to the packet generation unit 142A. Instruct them to do so.
- the fifth data packet DATA (5) and the sixth data packet DATA (6) are transmitted from the host device 100A to the nonvolatile storage device 110 (509).
- the transmission data size reaches the write size multiplexed with the high-speed Write command by transmitting the 2k-1st data packet DATA (2k-1) and the 2kth data packet DATA (2k).
- the switching condition detector 240A of the transmission path (bus) switching controller 143A of the host device 100A detects that the packet generator 142A has transmitted DATA (2k), and the input / output of the second high-speed bus 122 Terminal 242A is set to the reception state.
- the switching condition detection unit 260A of the transmission path (bus) switching control unit 162A of the nonvolatile storage device 110A detects that the packet analysis unit 163A has received DATA (2k), and inputs / outputs the second high-speed bus 122.
- Terminal 262A is set to the transmission state.
- the 2nd high-speed bus 122 is set to an uplink (511).
- the switching condition detection unit 260A of the nonvolatile storage device 110A sets the input / output terminal 263A of the low-speed bus 123 to the reception state.
- the low speed bus 123 is set to disable communication (512).
- the communication system 4 enters the full duplex mode (steady state), and the settings by the transmission path (bus) switching control units 143 and 162 are as shown in FIG.
- the low-speed bus is set as an uplink and a pulse signal is transmitted from the host device 100A. By transmitting, Read can be canceled.
- the low-speed bus is set to the downlink and a pulse is transmitted from the slave device (nonvolatile memory device) 110A.
- the slave device nonvolatile memory device 110A.
- the notification from the slave device (nonvolatile storage device) 110A to the host device 100A means “write interruption” during data transmission, and “data transmission restart” during write interruption.
- the notification is merely an interrupt, and the host device 100A causes the slave device (nonvolatile storage device) 110A to use a high-speed bus during the write interruption. It is good also as a structure which inquires.
- data read or data write in the full-duplex mode which is a steady state, is also possible. For example, if the communication system 4 is set to the state shown in FIG. 23, in the case of data read, the second high-speed bus 122 set for the uplink is used for data transmission.
- a Read stop instruction can be issued using the bus 121.
- the second high-speed bus 122 can be used to notify whether data can be written.
- a pulse having a predetermined length is transmitted to the low speed bus 123.
- the present invention is not limited to this.
- a bit pattern having a predetermined length is transmitted to the low speed bus 123. You may make it transmit.
- a plurality of types of instructions can be assigned to each bit pattern, and more complicated instructions can be given.
- the slave device is the nonvolatile storage device 110A having the nonvolatile memory has been described.
- the present invention is not limited to this, for example, as shown in FIG. The same effect can be obtained also in the network interface device 710A including the slave interface unit 160 and the network interface unit 770.
- the network interface device 710A is connected to the remote device 780 via a network communication path 781.
- the network interface unit 770 has a function of controlling the network communication path 781 and a function of controlling the network from the slave interface unit 160A.
- the packet generation unit of the network interface device 710A from the memory (not shown) in the remote device 780 via the network communication path 781 and the network interface unit 770.
- the data stored in 164A is packetized and transmitted from the network interface device 710A to the host device 100A in the half-duplex read mode.
- a data packet transmitted from the host device 100A to the network interface device 710A is transmitted to the packet analysis unit 163A in the half-duplex write mode, and only the body is extracted. Supplied to the network interface unit 770. Data supplied to the network interface unit 770 is written to a memory (not shown) in the remote device 780 via the network communication path 781. Normally, the data transfer speed of the first high-speed bus 121 or the second high-speed bus 122 is faster than the speed of the network communication path 781, so the data transfer interruption and resumption control described in this embodiment is required. Note that the network communication path 781 can be realized by either a wired network or a wireless network.
- FIG. 29 shows packets or signals transmitted on the first high-speed bus 121, the second high-speed bus 122, and the low-speed bus 123 when a high-speed write command is issued from the host device in the fifth embodiment of the present invention. It is a timing diagram shown in time series.
- the communication system of this embodiment is implement
- This embodiment is different from the fourth embodiment in the following points. That is, at the time of high-speed write in the present embodiment, the low-speed bus 123 is set to “HIGH” when the nonvolatile storage device 110A is not writable, and otherwise, the low-speed bus 123 is set to “LOW”. This is different from the fourth embodiment.
- the packet analysis unit 163A of the slave device performs the slave interface unit 160A.
- the signal generator 166A is instructed to set the low-speed bus 123 to “HIGH” (802).
- the signal analysis unit 146A of the host interface unit 140A of the host device detects that the low-speed bus 123 is “HIGH”, and instructs the packet generation unit 142A to interrupt data transmission.
- the low-speed bus 123 is set to “LOW” to the signal generation unit 166A in the slave interface unit 160A. (803). Thereby, transmission of DATA (5) and DATA (6) is started (804).
- the host interface unit 140A of the host device can write to the nonvolatile storage device 110A only by detecting whether the low-speed bus 123 is “HIGH” or “LOW”. It is possible to detect whether or not. For this reason, in the communication system according to the present embodiment, the circuit for the determination can be made smaller.
- the host device 100A can change the low-speed bus 123 from “LOW” to “HIGH” and instruct the nonvolatile storage device 110A to stop data transfer.
- the full-duplex mode sets the low-speed bus to the communication disabled state, but is not limited to this. For example, the full-duplex mode sets the low-speed bus to the downlink.
- An instruction may be transmitted from the host device to the slave device. Further, the host device and the slave device may negotiate via two high-speed buses, and the direction of the low-speed bus may be switched as appropriate.
- the host device and the slave device negotiate as an initialization process, so that the number of data packets N and each data packet The data capacity may be determined.
- the number N of data packets and the data capacity of each data packet may be determined so as to make the best use of the transmission / reception capability of the device having the smaller transmission / reception buffer capacity).
- the number N of data packets and the data capacity of each data packet are not necessarily fixed, and may be variable depending on, for example, the communication status of the communication system. Thereby, in a communication system, communication efficiency can be improved.
- each block may be individually made into one chip by a semiconductor device such as an LSI, or made into one chip so as to include a part or all of the blocks. May be.
- LSI may be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
- the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
- each process of the said embodiment may be implement
- the specific configuration of the present invention is not limited to the above-described embodiment, and various changes and modifications can be made without departing from the scope of the invention.
- the present invention provides a communication system in which a host device transmits data to and from a slave device using a multi-channel transmission line, and when the host device transmits and receives data from the slave device at high speed in a half-duplex mode,
- the present invention proposes an interface unit, a host device, a slave device, and a communication system that can quickly execute interrupt processing such as Wait and Busy by switching to the duplex mode.
- the present invention relates to a non-volatile storage device having at least an interface unit and a non-volatile memory, a network interface device having at least an interface unit and a wired or wireless network interface unit, a moving image recording / reproducing device to which these are mounted, and a still image recording This is useful in a playback device, an audio recording / playback device, a mobile phone, or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Bidirectional Digital Transmission (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
そこで、より少ないLSI端子数で高速なデータ通信を実現する目的でUSB2.0、IEEE1394、PCI Expressといった高速シリアル通信規格が広く採用されている。このような規格における通信方式としては、USB2.0やIEEE1394のように送受信の方向制御や送信権の調停制御が必要な「半二重通信方式」と、PCI Expressのように送信専用の伝送路と、受信専用の伝送路とを少なくとも1チャンネルずつ備えることにより送受信を同時に処理できる「全二重通信方式」が挙げられる。一般的に、全二重通信方式の方が、半二重通信方式に比べ、制御が容易である。その一方で、全二重通信方式では、送信あるいは受信のどちらか一方向のみの通信を行っている期間は、他方向の伝送路が使用されないので、通信に使用されていない他方の伝送路の帯域が無駄になる、という効率面での課題がある。
こうした装置間の通信データ量は、例えば、デジタルスチルカメラの高画素化と高画質化により、急速に増大している。また、一眼レフタイプのデジタルスチルカメラにおいては、高速連写機能の搭載により、データ通信の高速化が強く求められている。
こうした不揮発性記憶装置やネットワークインターフェース装置に代表されるスレーブ装置と、ホスト装置との間は、複数の伝送路により接続される。例えば、スレーブ装置が不揮発性記憶装置である場合、このような伝送路上には、ホスト装置から不揮発性記憶装置に対する命令(コマンド)や通知、不揮発性メモリから読み出されるデータ、もしくは不揮発性メモリに書き込まれるデータ等が、デジタル信号として伝送される。
伝送路を2チャンネル備える場合、1チャンネルの伝送路がホスト装置から不揮発性記憶装置(スレーブ装置の一例)への伝送路(ダウンリンク)として利用され、もう一方の伝送路が不揮発性記憶装置からホスト装置への伝送路(アップリンク)として利用される。全二重通信方式では、ホスト装置および不揮発性記憶装置が同時にコマンドもしくはデータを送信することができる。
特に、半導体メモリカードに代表される不揮発性記憶装置においては、高速なデータ書き込みと、高速なデータ読み出しが同時に行われることは希で、高速書き込み、もしくは、高速読み出しのどちらか一方の処理のみが継続する用途が圧倒的に多い。したがって、このような不揮発性記憶装置において、データ転送(データ書き込み又はデータ読み出し)を行う期間に関しては、半二重通信方式の方が効率の面で極めて有利になる。
従来の、全二重モードと半二重モードとを切り換え可能な通信システムについて、図11Aおよび図11Bを用いて、説明する。
図11Aおよび図11Bは、ホスト装置と不揮発性記憶装置とが2チャンネルの外部伝送路により接続され、全二重モードと半二重モードとを切り換えて通信を行うことができる通信システムにおける、第1伝送路および第2伝送路により送受信されるコマンドおよびデータのタイミング図(タイミングチャート)(外部伝送路上を伝送するコマンド(命令)およびデータを時系列に示したタイミング図)である。具体的には、図11Aは、ホスト装置が半二重モードにて不揮発性記憶装置よりデータを読み出すときのタイミング図である。図11Bは、不揮発性記憶装置へデータを書き込むときのタイミング図である。
このような構成とする理由は、通常、不揮発性記憶装置をはじめとするスレーブ装置は、小型かつ安価であることが求められるため、独自にクロックを持たず(独自にクロック生成せず)、ホスト装置から供給されるクロックで駆動する方が好ましいからである。
図11Aにおいて、ホスト装置は、不揮発性記憶装置に対し半二重モードでデータ読み出しを指示するために、高速Readコマンドを送信する(1111)。高速Readコマンドには、データ読み出し先のアドレス、読み出しサイズが多重されているものとする。
その後、不揮発性記憶装置は、高速Readコマンドに多重された読み出し先のアドレスから読み出しサイズ分のデータを、第1伝送路1101および第2伝送路1102を用いて並列に送信する(1113)。
所定サイズのデータの送受信完了後、不揮発性記憶装置は、第1伝送路1101の不揮発性記憶装置側入出力端子を入力状態にし、ホスト装置は、第1伝送路1101のホスト側入出力端子を出力状態にする。これにより、第1伝送路1101はダウンリンクに戻る(1114)。
高速Writeコマンド送信後、ホスト装置は、第2伝送路1102のホスト側入出力端子を出力状態に設定する。一方、高速Writeコマンドを受信した不揮発性記憶装置は、第2伝送路1102の不揮発性記憶装置側入出力端子を入力状態に設定する。これにより、第2伝送路1102はダウンリンクに設定される(1116)。
その後、ホスト装置は、高速Writeコマンドに多重された書き込み先のアドレスへ書き込みサイズ分のデータを、第1伝送路1101および第2伝送路1102を用いて並列に送信する(1117)。
以上により、従来の、全二重モードと半二重モードとを切り換え可能な通信システムでは、全二重モードと半二重モードとを切り替えることで効率の良い通信を実現することができる。
第1に、ホスト装置が高速Readコマンドを発行し、第1伝送路1101がアップリンクに切り換わった後から再度ダウンリンクに切り換わるまで(1112~1114)は、第1伝送路1101および第2伝送路1102共にアップリンクとなるため、ホスト装置から不揮発性記憶装置に情報を伝達する手段がない。例えば、高速Readコマンドによるデータ転送の途中(1113)で、ホスト装置の受信バッファの空き領域がなくなり高速Readコマンドを一時停止(「Wait」)させようとしても、データ転送が完了し、第1伝送路1101が再度ダウンリンクに切り換わるまで、ホスト装置から不揮発性記憶装置に「Wait」を指示できない。
第2に、ホスト装置が高速Writeコマンドを発行した場合も、第2伝送路1102がダウンリンクに切り換わった後から再度アップリンクに切り換わるまで(1116~1118)は、第1伝送路1101および第2伝送路1102共にダウンリンクとなるため、不揮発性記憶装置からホスト装置に情報を伝達する手段がない。よって、データ転送途中(1117)で、高速Writeコマンドを一時停止(「Busy」)させようとしても、データ転送が完了し、第2伝送路1102が再度アップリンクに切り換わるまで、不揮発性記憶装置からホスト装置に「Busy」を通知できない。
第1伝送路用入出力端子は、第1伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能である。第2伝送路用入出力端子は、第2伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも2つの状態に設定可能である。通信モード切換条件検出部は、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第1条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第2条件と、を設定し、設定した第1条件または第2条件を満たすか否かを判定する。伝送路切換制御部は、通信モード切換条件検出部により、第1条件が満たされたと判定された場合、第1伝送路用入出力端子および第2伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、通信モードを、全二重通信モードから半二重通信モードに切り換える。また、伝送路切換制御部は、通信モード切換条件検出部により、第2条件が満たされたと判定された場合、第1伝送路用入出力端子および第2伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、通信モードを、半二重通信モードから全二重通信モードに切り換える。
なお、第1伝送路用入出力端子と、第2伝送路用入出力端子と、「2つの状態」である「入力状態」と「出力状態」の他に、例えば、「ハイインピーダンス」(絶縁状態)のような、「入力状態」と「出力状態」以外の状態をとるものであってもよい。
第2の発明は、第1の発明であって、通信モード切換条件検出部は、通信システムが、半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、第2条件が満たされたと判断する。
第3の発明は、第1の発明であって、通信モード切換条件検出部は、通信システムが、半二重通信モードでの通信に切り換えられた時点から、N個(Nは自然数)のパケットの送信もしくは受信を完了した場合に、第2条件が満たされたと判断する。
このインターフェース装置では、通信システムが、半二重通信モードでの通信に切り換えられた時点から、N個(Nは自然数)のパケットの送信もしくは受信を完了した場合に、必ず、全二重通信モードに戻るので、半二重通信モード中の割り込み要求の速やかな実行を保証することができる。さらに、このインターフェース装置では、送受信パケット数をカウントするだけで、簡単に、通信モードの切換タイミングを決定することができる。
これにより、第2条件を、簡易かつ確実に、通信相手に通知することができる。なお、データ送受信要求またはデータ送受信命令は、予め定義されたパケットを利用するものであってもよい。
第5の発明は、第1から第4のいずれかの発明であって、伝送路切換制御部は、インターフェース装置の初期設定時に、第2条件を、通信相手に通知及び/又は設定させるためのパケットを送信する。
これにより、インターフェース装置の初期化時に第2条件(半二重から全二重に切り換えるための条件)を、通信相手に通知及び/又は設定させることができるため、通信システムが動作中に、別途第2条件を設定するための通信を行う必要がない。
第6の発明は、第1、第2、第3、および第5のいずれかの発明であって、第2条件が満たされたと判断するための送信もしくは受信したパケット数Nは、通信システムにかかるバッファサイズから決定する。
これにより、通信システムにおいて、適切に高速データ転送を行うことができる。
例えば、パケット数Nの決定方法は、以下のようにすればよい。
インターフェース装置を含むホスト装置と、インターフェース装置を含むスレーブ装置と、を備える通信システムを想定し、ホスト装置側のインターフェース装置のバッファサイズをBuf1[バイト]とし、スレーブ装置側のインターフェース装置のバッファサイズをBuf2[バイト]とし、ホスト装置とスレーブ装置間で通信されるパケットのパケットサイズをA[バイト]としたとき、
(1)Buf1>Buf2である場合、
N=Int(Buf2/A)
(2)Buf1≦Buf2である場合、
N=Int(Buf1/A)
により、パケット数Nを決定すればよい。なお、Int(X)は、Xを超えない最大の整数値を表すものとする(Int(X)は、ガウス記号による演算に相当する関数である)。
また、パケット数Nの決定方法は、ホスト装置およびスレーブ装置の処理速度性能に基づいてパケット数Nを決定する方法であってもよい。例えば、ホスト装置の処理速度、動作クロックがそれぞれP1、C1であり、スレーブ装置の処理速度、動作クロックがそれぞれP2、C2であり、通信パケットのパケットサイズがAである場合、P1、P2、C1、C2およびAの全部若しくは一部に基づいて、パケット数Nを決定するようにしてもよい。なお処理速度性能は、ホスト装置またはスレーブ装置に実装されているプロセッサ処理能力、同じくホスト装置またはスレーブ装置に実装されているRAMやフラッシュメモリ等記録媒体への読み書き速度、外部との通信を行う外部通信路の伝送速度の全部若しくは一部から決まる。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。
第8の発明は、第1から第7のいずれかの発明であって、伝送路切換制御部は、インターフェース装置の初期設定時に、第1条件を、通信相手に通知及び/又は設定させるためのパケットを送信する。
第9の発明は、第1から第7のいずれかの発明であって、通信モード切換条件検出部は、通信システムが全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、第1条件が満たされたと判断する。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。また、このインターフェース装置では、インターフェース切換要求命令を受信により通信モードが切り換えられるので、送信側および受信側において、(クロックカウント等による)時間計測を行う必要がない。
このインターフェース装置では、通信システムが、全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、半二重通信モードに戻るので、割り込み要求等の実行を終了した後、半二重通信モードによる高速データ通信の再開を速やかに行うことができる。また、このインターフェース装置では、インターフェース切換要求命令を受信により通信モードが切り換えられるので、送信側および受信側において、(クロックカウント等による)時間計測を行う必要がない。さらに、インターフェース切換要求命令を送信するタイミングを制御することで、全二重通信モードによる通信期間を所望の期間に設定することができる。このため、効率のよい通信を実現させることができる。
これにより、このインターフェース装置では、Wait指示の割り込み通知(例えば、Wait通知パケット)を受信した時点から、割込処理完了を指示する通知(例えば、Wait解除パケット)を受信する時点までの間、確実に全二重モードを維持することができ、かつ、その間、インターフェース装置は、通信モードを維持したまま、待機していればよいので、余計な通信(余計なパケットの送受信)を行う必要がない(例えば、ポーリングにより、所定の周期で、通信相手の装置の状態を確かめる必要がない)。
これにより、このインターフェース装置では、Wait指示の割り込み通知(例えば、Wait通知パケット)を受信した時点から、所定時間が経過するまでの間、確実に全二重モードを維持することができ、かつ、その間、インターフェース装置は、通信モードを維持したまま、待機していればよいので、余計な通信(余計なパケットの送受信)を行う必要がない(例えば、ポーリングにより、所定の周期で、通信相手の装置の状態を確かめる必要がない)。
なお、所定時間以内にWait指示の割り込み通知を受信しなかった場合、直ちに、半二重通信モードに切り換えることが好ましい。
これにより、第1から第12のいずれかの発明であるインターフェース装置の効果を実現することができる不揮発性記憶装置(例えば、SDカード)を実現することができる。
第14の発明は、外部との通信を行う外部通信部と、外部通信部に対する制御を行う外部通信制御部と、第1から第12のいずれかの発明であるインターフェース装置と、を備える通信装置である。
第15の発明は、第13または第14の発明であるインターフェース装置を含むホスト装置と、第1から第8のいずれかの発明であるインターフェース装置を含むスレーブ装置と、を備える通信システムである。
第16の発明は、少なくとも2チャンネルの伝送路である第1伝送路と第2伝送路とを有し、伝送路を用いて命令やデータの送受信を行う通信システムに用いられる通信モード切換方法であって、通信モード切換条件検出ステップと、伝送路切換制御ステップと、を備える。
この通信モード切換方法では、半二重モードでのデータ読み出しやデータ書き込みの実行中であっても、所定の条件を満たしたときに伝送路の方向を切り換えて一時的に全二重モードとすることができるので、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
通信モード切換条件検出部は、通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第1条件と、半二重通信モードを全二重通信モードに切り換えるための条件である第2条件と、を設定し、設定した第1条件または第2条件を満たすか否かを判定する。伝送路切換制御部は、通信モード切換条件検出部により、第1条件が満たされたと判定された場合、第1伝送路用入出力端子および第2伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、通信モードを、全二重通信モードから半二重通信モードに切り換え。また、伝送路切換制御部は、通信モード切換条件検出部により、第2条件が満たされたと判定された場合、第1伝送路用入出力端子および第2伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、通信モードを、半二重通信モードから全二重通信モードに切り換える。
第18の発明は、低速伝送路および複数の高速伝送路を有し、低速伝送路または複数の高速伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、低速伝送路用入出力端子と、複数の高速伝送路用入出力端子と、伝送路切換制御部と、を備える。
低速伝送路用入出力端子は、低速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能な入出力端子である。複数の高速伝送路用入出力端子は、高速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能な入出力端子である。
(1)複数の高速伝送路用入出力端子のうち少なくとも1つの高速伝送路用入出力端子を出力状態に設定し、当該出力状態に設定した高速伝送路用入出力端子以外の高速伝送路用入出力端子を入力状態に設定する全二重通信モード。
(2)複数の高速伝送路用入出力端子のすべてを出力状態に設定する半二重出力モード。
(3)複数の高速伝送路用入出力端子のすべてを入力状態に設定する半二重入力モード。
そして、伝送路切換制御部は、半二重出力モードでは、低速伝送路用入出力端子を入力状態に設定し、半二重入力モードでは、低速伝送路用入出力端子を出力状態に設定する。
第19の発明は、第18の発明であって、低速伝送路用入出力端子は、シングルエンド方式による通信を行う伝送路用の入出力端子であり、複数の高速伝送路用入出力端子のうちの少なくとも1つの高速伝送路用入出力端子は、差動伝送方式による通信を行う伝送路用の入出力端子である。
第20の発明は、不揮発性メモリと、不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、第18または第19の発明であるインターフェース装置と、を備える不揮発性記憶装置である。
第21の発明は、外部との通信を行う外部通信部と、外部通信部に対する制御を行う外部通信制御部と、第18または第19の発明であるインターフェース装置と、を備える通信装置である。
[第1実施形態]
<1.1:通信システムの構成>
図1は、本発明の第1実施形態に係る通信システム1の構成を示したブロック図である。
図1に示すように、通信システム1は、ホスト装置100とスレーブ装置の一種である不揮発性記憶装置110とを備える。そして、ホスト装置100と不揮発性記憶装置110とは、第1伝送路121、第2伝送路122、クロック伝送路123により接続されている。
ホストインターフェース部140は、クロック送信部141、パケット生成部142、伝送路切換制御部143、パケット解析部144、クロックカウンタ145を備える。
不揮発性記憶装置110は、少なくともスレーブインターフェース部160、不揮発性メモリ部読み書き制御部170および不揮発性メモリ部171を備える。
スレーブインターフェース部160は、クロック再生成部161、伝送路切換制御部162、パケット解析部163、パケット生成部164、クロックカウンタ165を備える。
なお、パケット生成部142および164、パケット解析部144および163は、適当な大きさのバッファを備えているものとする。
図2A~Cに示すように、ホスト装置側の伝送路切換制御部143は、ホストインターフェース部140の切換条件検出部240と、第1伝送路121のホストインターフェース部140内の入出力端子241と、第2伝送路122のホストインターフェース部140内の入出力端子242と、を備える。
スレーブ装置側の伝送路切換制御部162は、スレーブインターフェース部160の切換条件検出部260と、第1伝送路121のスレーブインターフェース部160内の入出力端子261と、第2伝送路122のスレーブインターフェース部160内の入出力端子262と、を備える。
同様に、スレーブ装置側の切換条件検出部260は、パケット解析部163、パケット生成部164、およびクロックカウンタ165の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子261、262を、それぞれ、送信状態または受信状態に設定する。
図2Aでは、第1伝送路121のホストインターフェース部140内の入出力端子241は送信状態(T)、スレーブインターフェース部160内の入出力端子261は受信状態(R)に設定されており、第2伝送路122のホストインターフェース部140内の入出力端子242は受信状態(R)、スレーブインターフェース部160内の入出力端子262は送信状態(T)に設定されている。
一方、図2Bでは、第1伝送路121および第2伝送路122のホストインターフェース部140内の入出力端子241および242は、共に受信状態(R)、スレーブインターフェース部160内の入出力端子261および262は、共に送信状態(T)に設定され、第1伝送路121および第2伝送路122の通信方向が同じ(アップリンク)になっている。また、図2Cでも、第1伝送路121および第2伝送路122の通信方向が同じ(ダウンリンク)になっている。
<1.2:通信システムの動作>
図3A、B、および図12A、Bは、第1実施形態における第1伝送路121および第2伝送路122上を伝送されるパケットを時系列に示したタイミング図(タイミングチャート)である。
以下、図1A、Bから図3A、B、図12A、B、および図15から図21を用いて、本実施形態に係る通信システム1の動作を説明する。
不揮発性記憶装置110がホスト装置100に装着されたとき、ホストインターフェース部140がアクティブになる。また、ホストインターフェース部140のクロック送信部141からクロック伝送路123を介してスレーブインターフェース部160のクロック再生成部161にクロックが供給され、スレーブインターフェース部160がアクティブになる。このとき、クロック再生成部161で生成されるクロックは、不揮発性記憶装置110全体、もしくは一部に供給される。
パケット生成部142及びパケット生成部164は、例えば、図17に示すような各種のリクエストパケット、データパケット、レスポンスパケット、メッセージパケット等を生成する。そして、パケット解析部144及びパケット解析部163は、例えば、図17に示すような各種のリクエストパケット、データパケット、レスポンスパケット、メッセージパケット等の解析を行う。
I/O R/W リクエストパケット1701は、図17に示すパケット構造を有している。I/O R/W リクエストパケット1701は、制御レジスタや、状態レジスタ(ステータスレジスタ)等がマッピングされたI/O空間をRead/Writeするための要求を伝達する。
図21に示すI/O空間は、アドレス000(h)(「(h)」は、16進数による表記であることを示す。以下同様。)から、1FF(h)までの各アドレスに1バイト(=8bit)のレジスタもしくはメモリ等の記憶素子が割り当てられていることを示している。よって、この例では、512バイト分のI/O空間が定義されている。
なお、I/O空間は、ホスト装置100、不揮発性記憶装置110のどちらにも存在し(実装され)、それぞれに固有の情報(ホスト装置100にのみ保持される情報と、不揮発性記憶装置のみに保持される情報)と、ホスト装置100と不揮発性記憶装置110の両者に共通の情報とが存在する。
図17に、Memory R/W リクエストパケット1702、データパケット1703、レスポンスパケット1704、およびメッセージパケット1705のパケット構造の一例を示す。これらのパケットについて、以下、説明する。
データパケット1703は、Memory R/W リクエストパケットによる不揮発性メモリ部171からの読み出し要求に基づいて、不揮発性メモリ部171から読み出されたデータを伝送する。また、データパケット1703は、Memory R/W リクエストパケットによる不揮発性メモリ部171への書き込み要求に基づいて、不揮発性メモリ部171への書き込みデータを伝送する。
レスポンスパケット1704は、リクエストパケット(I/O R/W リクエストパケット、及び、Memory R/W リクエストパケット)に対する応答を伝送する。
図17に示すように、パケット1701~1705において、各パケットの先頭には、各パケット共通の情報を伝達するための、Header1711~1715が、それぞれ、付加される。
図18に、パケット1701~1705において、各パケットの先頭に付加されるHeader情報の構成例を示す。
図18に示す例では、Header情報は、2バイトで構成し、バイト0のビット7“DIR”は、パケットの伝送方向を示すビットであり、このビット”Dir”が“0”の場合は不揮発性記憶装置110からホスト装置100にパケットが伝送されることを示し、ビット”Dire”が“1”の場合は、ホスト装置100から不揮発性記憶装置110にパケットが伝送されることを示す。
また、バイト0のビット3~ビット0、および、バイト1のビット7~ビット6の合計6ビットで構成される“Destination ID”には、一つのホスト装置100に、複数の不揮発性記憶装置110が接続された場合、どの不揮発性記憶装置にパケットを伝送するかを示すID(パケットの届け先情報)を格納する。
通信システム1において、例えば、ホスト装置100から不揮発性記憶装置110に対して、メモリ部のデータを読み出す要求を行うMemory R/W リクエストパケット1702が伝送される場合について説明する。
Memory R/W リクエストパケット1702の“Transaction ID”が001000(b)であった場合、前記リクエストパケット伝送後に、不揮発性記憶装置110からホスト装置100に伝送されるレスポンスパケット1704の“Transaction ID”が001000(b)の値であれば、当該レスポンスパケット1704は、直前に伝送されたメモリ部のデータを読み出す要求を行うMemory R/W リクエストパケットに対応したレスポンスパケットであると判定する。
また、図17に示すように、パケット1701~1705の各パケットにおいて、それぞれ、1721~1725で示す“Argument”は、必要に応じてパケット長に関する情報や、その他制御系の情報等を格納する領域である。
図18に、Memory R/W リクエストパケット1702のArgument1722の一部(Argument1722の先頭1バイト)の例を示す。
バイト2(Argument1722の先頭バイト)のビット6“R/W”は、Memory R/W リクエストパケット1702が、Readリクエスト、Writeリクエストのどちらであるかを示すビットである。ビット6“R/W”が“0”の場合、当該パケットが、Readリクエスト(用のパケット)であることを示し、ビット6“R/W”が“1”の場合、当該パケットが、Writeリクエスト(用のパケット)であることを示す。
I/O R/W リクエストパケット1701の“Address”(図17の1731で示す部分)は、I/O空間のどのエリアの読み出し、もしくは、I/O空間のどのエリアに書き込みを行うかを指定するアドレスを格納する領域である。
また、I/O R/W リクエストパケット1701の“Data”(図17の1741で示す部分)は、I/O空間に書き込むデータを格納する領域である。
例えば、図21に示すI/O空間の“DIR C”へ、値“4(d)”(「(d)」は、10進数による表記であることを示す。以下同様。)を書き込む場合には、“Address”(図17の1731の部分)に030(h)を、“Data”(図17の1741の部分)に“4(d)”を設定して、I/O Write リクエストパケットを伝送する。
データパケット1703の“Data”(図17の1742の部分)は、主に、メモリ空間のRead/Write要求に対するデータを格納する領域であり、レスポンスパケット1704の“Data”(図17の1743の部分)は、主に、I/O空間のRead要求に対するデータを格納する領域である。
図17に示すように、パケット1701~1705において、各パケットの最後尾には必要に応じて“CRC”(図17の1751~1755で示す部分)が付加され、伝送した各パケットのデータ誤り検出に用いられる。
(1.2.1:初期化時の伝送切換条件に関するパラメータの設定)
こうした初期化時に、通信システム1のインターフェース部では、伝送路切換条件に関するパラメータのI/O空間への書き込み(設定)を、以下のように行う。
例えば、ホスト装置100は、自身(ホスト装置100)のI/O空間のアドレス30(h)“DIR C”に“4”を設定した上で、ホスト装置100のパケット生成部142により、I/O R/W リクエストパケットを生成する。そして、ホスト装置100は、不揮発性記憶装置110のI/O空間のアドレス30(h)“DIR C”に書き込みを行う(Writeをする)要求とその書き込み値を“4”としたパケットを不揮発性記憶装置110に送信する。
なお、図21に示すI/O空間は論理空間であり、それぞれのアドレスに対応するレジスタもしくはメモリ等の記憶素子は、実際には、関連する各回路ブロック(ハードウェアで実現する場合)に実装されるのが一般的である。本実施形態では、ホスト装置100のI/O空間のアドレス30(h)“DIR C”レジスタは、切換条件検出部240内に実装され、不揮発性記憶装置110のI/O空間のアドレス30(h)“DIR C”レジスタは、切換条件検出部260内に実装されている。
パケット解析部163では、上記パケットが初期化コマンドであることが解析され、必要な初期化が実行される。
初期化完了後、ユーザーは、高速データReadおよび高速データWriteをホスト装置100のユーザーインターフェース部131に指示することができる。
ここで、「高速データRead」とは、伝送路121および122を半二重モード、すなわち、第2通信モードに設定して、不揮発性記憶装置110の不揮発性メモリ部171からデータを読み出す動作のことである。
(1.2.2:高速Readの動作(時間T経過による半二重/全二重モード切換))
以下では、まず、図3Aのタイミング図を参照しながら、通信システム1における高速Readの動作(ユーザーが高速データReadをユーザーインターフェース部131に指示したときの通信システム1の動作)について、説明する。
ユーザーが高速データReadをユーザーインターフェース部131に指示した場合、ユーザーインターフェース部131は、アプリケーション部132に高速データRead指示を伝達する。
ここで、パケット生成部142により生成される高速Readコマンドパケットについて、具体的に説明する。
高速Readコマンドパケットは、図17のMemory R/W リクエストパケット1702の“Address”1732に、読み出し先のアドレスを格納し、“Argument”1722の一部に読み出しサイズを格納することで生成される。
また、Memory R/W リクエストパケットでRead要求を行うことを示すために、“Argument”1722の先頭バイト(図18のバイト2)のビット6“R/W”は、“0”に設定される。
パケット生成部142により生成された高速Readコマンドパケットは、第1伝送路121経由で、パケット解析部163に伝達される(302)。
パケット解析部163では、上記パケットが高速Readコマンドであることが解析される。
伝送路切換制御部143の切換条件検出部240は、パケット生成部142が高速Readコマンドパケットを送信したことを検出し、第1伝送路121の入出力端子241を受信状態に設定する。また、伝送路切換制御部162の切換条件検出部260は、パケット解析部163が高速Readコマンドパケットを受信したことを検出し、第1伝送路121の入出力端子261を送信状態に設定する。これにより、第1伝送路121はアップリンクに設定され(303)、通信システム1は、図2Bに示す半二重モードとなる。
パケット生成部164では、パケットの種別等を示したヘッダと、読み出したデータを適当なサイズに分割して生成されるボディからデータパケットが生成される。
パケット生成部164は、生成したデータパケットを第1伝送路121および第2伝送路122に振り分けながら、伝送路切換制御部162を介してホスト装置100に送信する。
本実施形態では、1番目のデータパケットDATA(1)を第1伝送路121に、2番目のデータパケットDATA(2)を第2伝送路122に振り分けて送信する(304)。
パケット解析部144では、これらのパケットがデータパケットであると解析され、ヘッダを除いたボディ、すなわち、データ本体がメモリ部133に格納される。
以降、3番目のデータパケットDATA(3)および4番目のデータパケットDATA(4)についても、同様に、ホスト装置100に送信される(305)。
次に、伝送路切換制御部162の切換条件検出部260は、初期化時にI/O空間のアドレス30(h)“DIR C”に“4”が設定されているので、パケット生成部164が4個のデータパケットを送信したことを検出し、第1伝送路121の入出力端子261を受信状態に設定する。
このように、通信システム1では、半二重モードから全二重モードに切り換える条件は、N個(Nは任意の整数)のデータパケットの送受信完了時であるとして、初期化コマンドのパラメータで予めホスト装置100から不揮発性記憶装置110に対し通知しておく。
具体的には、ホスト装置100は、自身(ホスト装置100)のI/O空間のアドレス30(h)“DIR C”に“N”を設定した上で、ホスト装置100のパケット生成部142により、I/O R/W リクエストパケットを生成する。そして、ホスト装置100は、不揮発性記憶装置110のI/O空間のアドレス30(h)“DIR C”に書き込みを行う(Writeをする)要求とその書き込み値を“N”としたパケットを不揮発性記憶装置110に送信する。
図3AおよびBでは、初期化コマンドのパラメータをN=4としたときの、通信システム1におけるタイミング図の一例を示している。
また、図20(b)では、N=8としたときの、通信システム1におけるタイミング図の一例を示している。
通信システム1において、第1伝送路121がダウンリンクに設定されたとき、クロックカウンタ165は、クロック再生成部161から供給されるクロックを元にクロック数の計上を開始する。同様に、クロックカウンタ145は、クロック送信部141から供給されるクロックを元にクロック数の計上を開始する。
同様に、スレーブインターフェース部160内の切換条件検出部260は、第1伝送路121がダウンリンクに切り換わった時点から所定の時間Tが経過したことを、クロックカウンタ165を監視することで検出し、第1伝送路121の入出力端子261を再び送信状態に設定する。このとき、切換条件検出部260は、クロックカウンタ165に対してクロック数をゼロクリアさせる。
以後同様に、通信システム1では、4個のデータパケットの送受信を完了する度に、第1伝送路121は、ダウンリンクに設定され(308)、所定の時間Tが経過すると、半二重モードに戻る(309)という制御が繰り返される。
ここで、第1伝送路121がダウンリンクに設定されている間(306~307、308~309)に、ホスト装置100が第1伝送路121上にコマンドやメッセージ等を送信することで、不揮発性記憶装置110に対して割り込み要求を行うことが可能である。
次に、通信システム1において、Wait指示(Wait通知・解除)により半二重/全二重モードを切り換える場合の高速Read動作について、説明する。
図3Bは、半二重モードによる通信中に、割り込み要求として、ホスト装置100が不揮発性記憶装置110にWait指示(Wait通知・解除)を送る場合のシーケンスを示している。
初期化コマンドパケット発行から第1伝送路121がアップリンクに設定される(301~303)までは、図3Aの場合と同様であるので、詳細な説明は省略する。
例えば、半二重モード期間(304~305)において、メモリ部133の空き状態を監視しているアプリケーション部132が、高速Readコマンドによるスレーブ装置(不揮発性記憶装置110)からのデータ読み出し動作を継続すると、データを格納するためのメモリ部133上の空き領域が不足すると判断したとする。この場合、アプリケーション部132は、パケット生成部142にWait通知パケットを生成させ、第1伝送路121がダウンリンクに設定されている間に不揮発性記憶装置110に送信させる(310)。
その後、メモリ部133に十分な空き領域ができると、アプリケーション部132がそれを検知し、パケット生成部142にWait解除パケットを生成させ、不揮発性記憶装置110に送信させる(311)。
このとき、切換条件検出部240は、パケット生成部142がWait解除パケットを生成したことを検出し、第1伝送路121の入出力端子241を受信状態に設定する。
これにより、第1伝送路121がアップリンクに設定され、通信システム1は、半二重モードとなり、通信システム1において、高速Readコマンドの実行が再開される。
このように、通信システム1では、ホスト装置100から不揮発性記憶装置110に対して、Wait通知パケットが送信された時点から、Wait解除パケットが送信される時点までの間、確実に全二重モードが維持され、かつ、Waitに関するステータスを確かめるための余計なパケットを送受信させる必要がない(例えば、ポーリングにより、所定の周期で、ホスト装置100および/または不揮発性記憶装置110の状態を確かめる必要がない)。
なお、ホスト装置100から不揮発性記憶装置110に対して送信されるWait通知パケットに対して、当該Wait通知パケットに対するレスポンスパケットを、不揮発性記憶装置110からホスト装置100に送信するようにしてもよい。また、ホスト装置100から不揮発性記憶装置110に対して送信されるWait解除パケットに対して、当該Wait解除パケットに対するレスポンスパケットを不揮発性記憶装置110からホスト装置100に送信するようにしてもよい。この場合、Wait解除パケットに対するレスポンスパケットが不揮発性記憶装置110からホスト装置100に送信された後、通信モードを切り換えることが好ましい。
(1.2.4:高速Writeの動作(時間T経過による半二重/全二重モード切換))
次に、通信システム1における高速Writeの動作(時間T経過により半二重/全二重モードを切り替える場合の動作)について、説明する。
図12Aは、通信システム1における高速Writeの動作(時間T経過により半二重/全二重モードを切り替える場合の動作)を説明するためのタイミング図(タイミングチャート)である。
ユーザーが高速データWriteをユーザーインターフェース部131に指示した場合、ユーザーインターフェース部131は、アプリケーション部132に高速データWrite指示を伝達する。
ここで、パケット生成部142により生成される高速Writeコマンドパケットについて、具体的に説明する。
高速Writeコマンドパケットは、図17のMemory R/W リクエストパケット1702の“Address”1732に、読み出し先のアドレスを格納し、“Argument”1722の一部に読み出しサイズを格納することで生成される。
また、Memory R/W リクエストパケットでWrite要求を行うことを示すために、“Argument”1722の先頭バイト(図18のバイト2)のビット6“R/W”は、“1”に設定される。
パケット生成部142により生成された高速Writeコマンドパケットは、第1伝送路121経由でパケット解析部163に供給される(1202)。
パケット解析部163では、上記パケットが高速Writeコマンドであることが解析され、それが不揮発性メモリ部読み書き制御部170に通知される。
不揮発性メモリ部読み書き制御部170は、不揮発性メモリ部171にデータを格納するための空き領域が存在することを確認する。不揮発性メモリ部読み書き制御部170は、不揮発性メモリ部171に空き領域が存在することを確認した場合、パケット生成部142に高速Writeコマンドに対するレスポンスパケットを生成させる。このレスポンスパケットは、第2伝送路122経由でパケット解析部144に供給される(1203)。
伝送路切換制御部162の切換条件検出部260は、パケット解析部163が上記レスポンスパケットを送信したことを検出し、第2伝送路122の入出力端子262を受信状態に設定する。
伝送路切換制御部143の切換条件検出部240は、パケット解析部144が上記レスポンスパケットを受信したことを検出し、第2伝送路122の入出力端子242を送信状態に設定する。
これにより、第2伝送路122は、ダウンリンクに設定され(1204)、通信システム1は、図2Cに示す半二重モードとなる。
不揮発性記憶装置110に送信されたデータパケットは、伝送路切換制御部162を介してパケット解析部163に蓄積される。パケット解析部163により、これらのパケットは、データパケットであると解析されて、データ本体が不揮発性メモリ部読み書き制御部170を介して不揮発性メモリ部171に格納される。
伝送路切換制御部143の切換条件検出部240は、初期化時にI/O空間のアドレス30(h)“DIR C”に“4”が設定されているので、パケット生成部142が4個のデータパケットを送信したことを検出し、第2伝送路122の入出力端子242を受信状態に設定する。
これにより、第2伝送路122はアップリンクに設定され(1207)、通信システム1は、図2Aに示す全二重モードとなる。
通信システム1において、半二重モードから全二重モードに切り換える条件の設定方法は、高速Read時と同様である。
図12A、Bにおいても、初期化コマンドのパラメータをN=4としたときの、通信システム1におけるタイミング図の一例を示している。
以後、通信システム1では、高速Read時と同様に、第2伝送路122がアップリンクに設定されてから所定の時間T経過後、切換条件検出部260は、第2伝送路122の入出力端子262を再び受信状態に設定する。そして、切換条件検出部240は、第2伝送路122の入出力端子242を再び送信状態に設定する。このとき、切換条件検出部240および260は、それぞれ、クロックカウンタ145および165に対してクロック数をゼロクリアさせる。
これにより、第2伝送路122は、ダウンリンクに再設定され(1208)、通信システム1は、図2Bに示す半二重モードに戻る。
ここで、第2伝送路122がアップリンクに設定されている間(1207~1208、1209~1210)に、不揮発性記憶装置110が第2伝送路122上にコマンドやメッセージ等を送信することで、ホスト装置100に対して割り込み通知を伝送できる。
(1.2.5:高速Writeの動作(Busy通知・解除による半二重/全二重モード切換))
次に、通信システム1において、Busy通知・解除により半二重/全二重モードを切り換える場合の高速Write動作について、説明する。
半二重モードにおいて、不揮発性メモリ部読み書き制御部170による不揮発性メモリ部171への書き込みが終了するまでデータの受信を一時停止させたい場合や、図示しないデータ受信用メモリの空き容量が不足した場合、不揮発性メモリ部読み書き制御部170は、パケット生成部164にBusy通知パケットを生成させる。そして、不揮発性メモリ部読み書き制御部170は、第2伝送路122がアップリンクに設定されている間に、Busy通知パケットがホスト装置100に送信されるように制御する(1211)。
ホスト装置100に送信されたBusy通知パケットは、パケット解析部144で解析される。このとき、実行中の高速Writeコマンドは、一時停止され、通信システム1において、全二重モードの状態が保持される。この場合、図12Aの場合と異なり、通信システム1は、所定の時間Tが経過しても半二重モードへは切り換わらず、切換条件検出部240および260は、それぞれ、クロックカウンタ145および165に対して、クロック数をゼロクリアさせる。
このとき、切換条件検出部260は、パケット生成部164がBusy解除パケットを生成したことを検出し、第2伝送路122の入出力端子262を再び受信状態に設定する。
また、切換条件検出部240は、パケット解析部144がBusy解除パケットを解析したことを検出し、第2伝送路122の入出力端子242を再び送信状態に設定する。
これにより、第2伝送路122がダウンリンクに設定され、通信システム1は、半二重モードとなり、高速Writeコマンドの実行が再開される。
また、上記処理は、コマンドレベルでの処理、すなわち、ホストインターフェース部140およびメモリ部133による処理で実現させることができ、アプリケーション部132での処理が不要であるため、高速に処理を行うことができる。
したがって、通信システム1では、余計なパケットの送受信を発生させることがなく、また、適切な割込処理を実現させつつ、高速データ転送を行うことができる。
以上が、ユーザーが高速データWriteを指示したときの通信システム1の動作である。
したがって、本実施形態の通信システム1では、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。また、通信システム1では、「Wait」や「Busy」等の割り込み通知を伝送するための外部伝送路を1チャンネル追加する必要もないので、インターフェース装置の回路規模が増大し、コストアップを招くこともない。
通常Read時に、ホスト装置100がWait指示を出す場合は、初期化直後にダウンリンクに設定されている第1伝送路121上に任意のタイミングでWait通知パケットを送信し、さらに、Waitを解除するときも第1伝送路121上に任意のタイミングでWait解除パケットを送信すればよい。
通常Write時も同様に、初期化直後にアップリンクに設定されている第2伝送路122上に任意のタイミングでBusy通知およびBusy解除パケットを送信すればよい。
さらに、通信システム1において、モード切り換えのトリガとなる送受信データパケット数Nおよび所定の時間Tは、ホスト装置100および不揮発性記憶装置110におけるバッファサイズ、処理性能などの条件を元に、適宜取り決めればよい。
≪パケット数Nの決定方法≫
例えば、パケット数Nの決定方法は、以下のようにすればよい。
ホスト装置100と、不揮発性記憶装置110と、を備える通信システム1において、ホスト装置1のバッファサイズをBuf1[バイト]とし、不揮発性記憶装置110(スレーブ装置)のバッファサイズをBuf2[バイト]とし、ホスト装置100と不揮発性記憶装置110(スレーブ装置)間で通信されるパケットのパケットサイズをA[バイト]としたとき、
(1)Buf1>Buf2である場合、
N=Int(Buf2/A)
(2)Buf1≦Buf2である場合、
N=Int(Buf1/A)
により、パケット数Nを決定すればよい。なお、Int(X)は、Xを超えない最大の整数値を表すものとする(Int(X)は、ガウス記号による演算に相当する関数である)。
また、パケット数Nの決定方法は、ホスト装置100および不揮発性記憶装置110(スレーブ装置)の処理速度性能に基づいてパケット数Nを決定する方法であってもよい。例えば、ホスト装置100の処理速度、動作クロックがそれぞれP1、C1であり、不揮発性記憶装置110(スレーブ装置)の処理速度、動作クロックがそれぞれP2、C2であり、通信パケットのパケットサイズがAである場合、P1、P2、C1、C2、およびAの全部若しくは一部に基づいて、パケット数Nを決定するようにしてもよい。なお処理速度性能は、ホスト装置100または不揮発性記憶装置110(スレーブ装置)に実装されているプロセッサ処理能力、同じくホスト装置100または不揮発性記憶装置110(スレーブ装置)に実装されているRAMやフラッシュメモリ等記録媒体への読み書き速度、外部との通信を行う外部通信路の伝送速度の全部若しくは一部から決まる。
また、通信システム1において、ホスト装置100のI/O空間のアドレス30(h)“DIR C”の値を、Memory R/W リクエストパケット1702の“Argument”に定義された前記“DIR Ctrl”に設定して、Memory R/W リクエストパケット1702を伝送し、このMemory R/W リクエストパケット1702を受信した不揮発性記憶装置110が、Memory R/W リクエストパケット1702の“Argument”に格納された前記“DIR Ctrl”の値を、不揮発性記憶装置110のI/O空間のアドレス30(h)“DIR C”に書き込むようにしてもよい。
この方法によれば、N=4の場合の高速Writeは、図15の(a)(N=8の場合は図15(b))のシーケンスで実行することが可能になり、モード切り換えのトリガとなる送受信データパケット数Nを、初期化コマンドのパラメータで予め設定する図19(a)(N=8の場合は図19(b))では必要となる初期化コマンド1901の一部が不要になる。
同様に、N=4の場合の高速Readは、図16の(a)(N=8の場合は図16(b))のシーケンスで実行することが可能になり、モード切り換えのトリガとなる送受信データパケット数Nを、初期化コマンドのパラメータで予め設定する図20(a)(N=8の場合は図20(b))では必要となる初期化コマンド2001の一部が不要になる。
また、本実施形態では、スレーブ装置として不揮発性メモリを有する不揮発性記憶装置を用いる通信システム1について説明したが、これに限定されることはない。例えば、図4に示すように、スレーブ装置を、スレーブインターフェース部160と、ネットワークインターフェース部470と、を備えるネットワークインターフェース装置410とすることで通信システム1Aを構成するようにしてもよい。この場合においても、上記通信システム1と同様の効果を得ることが可能である。
通信システム1Aにおいて、ネットワークインターフェース装置410は、リモート装置480とネットワーク通信路481を介して接続されている。また、ネットワークインターフェース部470は、ネットワーク通信路481を制御する機能と、スレーブインターフェース部160からネットワークを制御する機能とを有する。
また、通信システム1Aにおいて、高速Write時は、半二重モードにて、ホスト装置100からデータパケットが送信され、パケット解析部163で取り出されたデータ本体は、ネットワークインターフェース部470、ネットワーク通信路481を介してリモート装置480内のメモリ部に格納される。
なお、ネットワーク通信路481は、有線ネットワーク、無線ネットワークいずれでも実現可能である。
[第2実施形態]
<2.1:通信システムの構成>
図5は、本発明の第2実施形態に係る通信システム2の構成を示したブロック図である。
図5に示すように、通信システム2は、ホスト装置500と、スレーブ装置としての不揮発性記憶装置510と、を備える。そして、ホスト装置500と不揮発性記憶装置510とは、第1伝送路121、第2伝送路122、クロック伝送路123により接続されている。
ホストインターフェース部540は、クロック送信部141、パケット生成部142、伝送路切換制御部543、パケット解析部144を含む。ホストインターフェース部540は、クロックカウンタを有していない点が、第1実施形態に係るホストインターフェース部140とは異なる。
不揮発性記憶装置510は、少なくともスレーブインターフェース部560、不揮発性メモリ部読み書き制御部170および不揮発性メモリ部171を備える。
スレーブインターフェース部560は、クロック再生成部161、伝送路切換制御部562、パケット解析部163、パケット生成部164、クロックカウンタ165を備える。
図6A~Cは、ホストインターフェース部540およびスレーブインターフェース部560の構成図であり、特に、ホスト装置側の伝送路切換制御部543およびスレーブ装置側の伝送路切換制御部562の構成を詳細に示した図である。
図6A~Cに示すように、ホスト装置側の伝送路切換制御部543は、ホストインターフェース部540の切換条件検出部640と、第1伝送路121のホストインターフェース部540内の入出力端子641と、第2伝送路122のホストインターフェース部540内の入出力端子642と、を備える。
スレーブ装置側の伝送路切換制御部562は、スレーブインターフェース部560の切換条件検出部660と、第1伝送路121のスレーブインターフェース部560内の入出力端子661と、第2伝送路122のスレーブインターフェース部560内の入出力端子662と、を備える。
同様に、切換条件検出部660は、パケット解析部163、パケット生成部164、クロックカウンタ165の状態を監視して切換条件の充足状況を検出する。そして、切換条件の充足状況に応じて入出力端子661、662を送信状態または受信状態に設定する。
<2.2:通信システムの動作>
図7A、Bおよび図13A、Bは、第2実施形態における第1伝送路121および第2伝送路122上を伝送されるパケットを時系列に示したタイミング図(タイミングチャート)である。
(2.2.1:高速Readの動作)
まず、図7A、Bのタイミング図を参照しながら、ユーザーが高速データReadをユーザーインターフェース部131に指示したときの動作を説明する。
第1実施形態と同様に、不揮発性記憶装置510がホスト装置500に装着されたとき、通信システム2は、図6Aに示す全二重モードとなる。通信システム2において、初期化コマンドパケットが送信(701)された後、高速Readコマンドパケットが不揮発性記憶装置510に送信される(702)と、第1伝送路121がアップリンクに設定される(703)。この結果、通信システム2は、図6Bに示す半二重モードとなる。
また、伝送路切換制御部543の切換条件検出部640は、パケット解析部144が4個のデータパケットを受信したことを検出し、第1伝送路121の入出力端子641を送信状態に設定する。
これにより、第1伝送路121はダウンリンクに設定され(704)、通信システム2は、図6Aに示す全二重モードとなる。
第1伝送路121がダウンリンクに設定されたとき、クロックカウンタ165は、クロック再生成部161から供給されるクロックを元にクロック数の計上を開始する。
生成された切換通知パケットは、アップリンクに設定されている第2伝送路122を介してホスト装置500に送信される(705)。
伝送路切換制御部562の切換条件検出部660は、パケット生成部164が切換通知パケットを送信したことを検出し、第1伝送路121の入出力端子661を送信状態に設定する。
また、伝送路切換制御部543の切換条件検出部640は、パケット解析部144が切換通知パケットを受信したことを検出し、第1伝送路121の入出力端子641を受信状態に設定する。
以上のように、切換通知パケットを用いることで、通信システム2では、ホストインターフェース部540のクロックカウンタを省略することができるとともに、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
また、図7Bに示すように、第1実施形態と同様に、通信システム2では、図6Aに示す全二重モードのとき、ホスト装置500は、不揮発性記憶装置510に対してWait等の割り込み要求を行う(707)ことができる。
(2.2.2:高速Writeの動作)
次に、図13A、Bのタイミング図を参照しながら、ユーザーが高速データWriteを指示したときの通信システム2の動作を、高速データReadとの相違点を中心に説明する。
伝送路切換制御部543の切換条件検出部640は、パケット生成部142が4個のデータパケットを送信したことを検出し、第2伝送路122の入出力端子642を受信状態に設定する。
また、伝送路切換制御部562の切換条件検出部660は、パケット解析部163が4個のデータパケットを受信したことを検出し、第2伝送路122の入出力端子662を送信状態に設定する。
通信システム2において、第2伝送路122がアップリンクに設定されたとき、クロックカウンタ165は、クロック再生成部161から供給されるクロックを元にクロック数の計上を開始する。
スレーブインターフェース部560内の切換条件検出部660は、第2伝送路122がアップリンクに切り換わった時点から所定の時間Tが経過したことを、クロックカウンタ165を監視することで検出する。このとき、切換条件検出部660は、パケット生成部164に対し切換通知パケットを生成するよう指示する。
生成された切換通知パケットは、アップリンクに設定されている第2伝送路122を介してホスト装置500に送信される(1306)。
また、伝送路切換制御部543の切換条件検出部640は、パケット解析部144が切換通知パケットを受信したことを検出し、第2伝送路122の入出力端子642を送信状態に設定する。
これにより、第2伝送路122は、ダウンリンクに設定される(1307)。
以上のように、切換通知パケットを用いることで、通信システム2では、ホストインターフェース部540のクロックカウンタを省略することができるとともに、半二重モードによる高速なデータ伝送と、半二重モード中の割り込み要求の速やかな実行を両立させることができる。
以上説明したように、本実施形態の通信システム2では、全二重モードから半二重モードの切り換えタイミングを、切換通知パケットにより不揮発性記憶装置510からホスト装置500に通知することで、ホスト装置500においてクロックカウントがなくても第1実施形態と同様の効果を得ることができる。
なお、ホスト装置500がクロックカウンタを持ち、切換通知パケットをホスト装置500から不揮発性記憶装置510へ通知することで、不揮発性記憶装置510がクロックカウンタを持たないようにしてもよい。
[第3実施形態]
<3.1:通信システムの構成>
図8は、本発明の第3実施形態に係る通信システム3の構成を示したブロック図である。
ホスト装置800は、少なくともユーザーインターフェース部131、アプリケーション部132、メモリ部133、およびホストインターフェース部840を備える。
ホストインターフェース部840は、クロック送信部141、パケット生成部142、伝送路切換制御部843、パケット解析部144を含む。ホストインターフェース部840は、クロックカウンタを有していない点が、第1実施形態に係るホストインターフェース部140とは異なる。
不揮発性記憶装置810は、少なくともスレーブインターフェース部860、不揮発性メモリ部読み書き制御部170および不揮発性メモリ部171を備える。
つまり、通信システム3は、ホスト装置側およびスレーブ装置側の双方に、クロックカウンタを有していない点が、前述の実施形態に係る通信システム1、1Aおよび2とは相違する。
なお、本実施形態において、前述の実施形態と同様の部分については、同一の符号を付し、詳細な説明を省略する。
図9A~Cは、ホストインターフェース部840およびスレーブインターフェース部860の構成図であり、特に、ホスト装置側の伝送路切換制御部843およびスレーブ装置側の伝送路切換制御部862の構成を詳細に示した図である。
スレーブ装置側の伝送路切換制御部862は、スレーブインターフェース部860の切換条件検出部960と、第1伝送路121のスレーブインターフェース部860内の入出力端子961と、第2伝送路122のスレーブインターフェース部860内の入出力端子962と、を備える。
ホスト装置側の切換条件検出部940は、パケット生成部142、およびパケット解析部144の状態を監視して切換条件が満たされているか否かを検出する。そして、切換条件検出部940は、切換条件の充足状況に応じて入出力端子941、942を、それぞれ、送信状態または受信状態に設定する。
<3.2:通信システムの動作>
図10A、Bは、第3実施形態における第1伝送路121および第2伝送路122上を伝送されるパケットを時系列に示したタイミング図である。
以下、図8~図10A、B、および図14A、Bを用いて、本実施形態に係る通信システム3の動作を、前述の実施形態との相違点を中心に説明する。
(3.2.1:高速Readの動作)
まず、図10A、Bのタイミング図を参照しながら、ユーザーが高速データReadをユーザーインターフェース部131に指示したときの動作を説明する。
第1伝送路121がダウンリンクに設定された時点、もしくはそれ以前の所定の時点を起点として、伝送路切換制御部843の切換条件検出部940は、パケット生成部142を監視し、ホスト装置800から不揮発性記憶装置810に対して発行すべき命令があるか否かを検出する。
伝送路切換制御部843の切換条件検出部940は、切換通知パケットがパケット生成部142より送信されたことを検出すると、第1伝送路121の入出力端子941を受信状態に設定する。
また、伝送路切換制御部862の切換条件検出部960は、切換通知パケットがパケット解析部163で受信されたことを検出すると、第1伝送路121の入出力端子961を送信状態に設定する。
これにより、第1伝送路121はアップリンクに設定され(1006)、通信システム3は、図9Bに示す半二重モードとなる。
これにより、ホスト装置800は、不揮発性記憶装置810に対して、割り込み要求を実行できる。
(3.2.2:高速Writeの動作)
次に、図14A、Bのタイミング図を参照しながら、ユーザーが高速データWriteを指示したときの通信システム3の動作を、高速データReadとの相違点を中心に説明する。
通信システム3における、以上の動作は、第1および第2実施形態と同様である。
通信システム3において、第2伝送路122がアップリンクに設定された時点、もしくはそれ以前の所定の時点を起点として、伝送路切換制御部862の切換条件検出部960は、パケット生成部164を監視し、不揮発性記憶装置810からホスト装置800に対して発行すべき命令があるか否かを検出する。
これにより、第2伝送路122は、ダウンリンクに設定され(1407)、通信システム3は、図9Cに示す半二重モードとなる。
これにより不揮発性記憶装置810は、ホスト装置800に対して、割り込み要求を実行できる。
以上説明したように、本実施形態に係る通信システム3では、全二重モードから半二重モードの切り換えタイミングを、高速Read時はホスト装置800から不揮発性記憶装置810へ、高速Write時は不揮発性記憶装置810からホスト装置800へ、切り換え通知パケットを送信する。したがって、通信システム3では、全二重モードから半二重モードへの切り換えの際にクロックカウンタによる計時が不要となる。
[第4実施形態]
次に、第4実施形態について、図22~図28を参照しながら説明する。
なお、上記実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
<4.1:通信システム構成>
図22は、第4実施形態に係る通信システム4の構成を示したブロック図である。
図22に示すように通信システム4は、ホスト装置100Aとスレーブ装置の一種である不揮発性記憶装置110Aとを備える。そして、ホスト装置100Aと不揮発性記憶装置110Aとは、第1伝送路(第1高速バス)121、第2伝送路(第2高速バス)122、第3伝送路(低速バス)123、クロック伝送路(クロックバス)124により接続されている。
ホストインターフェース部140は、クロック送信部141A、パケット生成部142A、伝送路(バス)切換制御部143A、パケット解析部144A、信号生成部145A、信号解析部146Aを備える。
不揮発性記憶装置110は、スレーブインターフェース部160A、不揮発性メモリ読み書き制御部170および不揮発性メモリ171を備える。
スレーブインターフェース部160Aは、クロック再生成部161A、伝送路(バス)切換制御部162A、パケット解析部163A、パケット生成部164A、信号解析部165A、信号生成部166Aを備える。
なお一般的に、高速バスには差動伝送方式が用いられ、低速バスにはシングルエンド伝送方式が用いられる。
<4.2:通信システムの動作>
以下、本実施形態における通信システム4の動作について、図面を用いて説明する。
(4.2.1:起動~初期化~定常状態)
不揮発性記憶装置110Aが、ホスト装置100Aに装着されたとき、ホストインターフェース部140Aがアクティブになる。また、ホストインターフェース部140Aのクロック送信部141Aからクロックバス124を介してスレーブインターフェース部160Aのクロック再生成部161Aにクロックが供給され、スレーブインターフェース部160Aがアクティブになる。このとき、クロック再生成部161Aで生成されるクロックは、不揮発性記憶装置110A全体に供給される。
図23に示すように、ホスト装置側の伝送路(バス)切換制御部143Aは、切換条件検出部240Aと、第1高速バス121の入出力端子241Aと、第2高速バス122の入出力端子242Aと、低速バス123の入出力端子243Aと、を備える。
また、図23に示すように、スレーブ装置側の伝送路(バス)切換制御部162Aは、切換条件検出部260Aと、第1高速バス121の入出力端子261Aと、第2高速バス122の入出力端子262Aと、低速バス123の入出力端子263Aと、を備える。
同様に、スレーブ装置側の切換条件検出部260は、パケット解析部163A、パケット生成部164Aが送受信したパケットを監視して切換条件が満たされているか否かを検出する。そして、切換条件の充足状況に応じて入出力端子261A、262A、263Aを、それぞれ、送信状態または受信状態に設定する。
図23では、第1高速バス121のホストインターフェース部140A側の入出力端子241Aは、送信状態(T)に設定されており、スレーブインターフェース部160A側の入出力端子261Aは、受信状態(R)に設定されている。また、第2高速バス122のホストインターフェース部140A側の入出力端子242Aは、受信状態(R)に設定されており、スレーブインターフェース部160A側の入出力端子262Aは、送信状態(T)に設定されている。
この状態で、ホスト装置100Aは、初期化コマンドパケットを第1高速バス121経由で不揮発性記憶装置110Aのパケット解析部163Aに供給する。パケット解析部163Aでは、上記パケットが初期化コマンドであることが解析され、必要な初期化が実施される。初期化完了後、通信システム4は、定常状態(全二重モード)になる。
図24は、通信システム4において、ホスト装置100Aより高速Readコマンドが発行されたときの第1高速バス121、第2高速バス122、および低速バス123上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
通信システム4において、定常状態で、ユーザーは、高速データReadをホスト装置100Aのユーザーインターフェース部131に指示することができる。このとき、ユーザーインターフェース部131は、アプリケーション部132に高速データRead指示を伝達する。アプリケーション部132は、メモリ部133に読み出すデータの格納領域が存在することを確認した後、パケット生成部142に高速Readコマンドパケットを生成させる。高速Readコマンドには、読み出し先のアドレス、読み出しサイズが多重されているものとする。
ホスト装置100Aのバス切換制御部143Aの切換条件検出部240Aは、パケット生成部142Aが高速Readコマンドパケットを送信したことを検出し、第1高速バス121の入出力端子241を受信状態に設定する。また、不揮発性記憶装置110Aのバス切換制御部162の切換条件検出部260Aは、パケット解析部163Aが高速Readコマンドパケットを受信したことを検出し、第1高速バス121の入出力端子261Aを送信状態に設定する。
これにより、通信システム4において、第1高速バス121はアップリンクに設定される(302)。さらに、ホスト装置100Aのバス切換制御部143Aの切換条件検出部240Aは、低速バス123の入出力端子243Aを送信状態に設定する。
この結果、通信システム4は、半二重Readモードとなり、このときのバス切換制御部143Aおよび162Aによる設定は、図25に示すようになる。
通信システム4では、半二重Readモードに切り換わった後、スレーブインターフェース部160Aは、不揮発性メモリ読み書き制御部170を介し、高速Readコマンドパケットに多重されたアドレスに対応する不揮発性メモリ171上の領域から、同じくコマンドに多重された読み出しサイズだけデータを順次取得し、取得したデータをパケット生成部164Aに供給する。そして、不揮発性記憶装置110Aのパケット生成部164Aは、パケットの種別等を示したヘッダと、不揮発性メモリ読み書き制御部170により読み出されたデータを適当なサイズに分割して生成されるボディと、からデータパケットを生成する。
ホスト装置100Aに送信された上記DATA(1)、DATA(2)は、ホスト装置100Aの伝送路(バス)切換制御部143Aを介して、パケット解析部144Aに蓄積される。パケット解析部144では、これらのパケットがデータパケットと解析され、ヘッダを除いたボディ、すなわちデータ本体が抽出され、抽出されたデータ本体がメモリ部133に格納される。
2k-1番目のデータパケットDATA(2k-1)と2k番目のデータパケットDATA(2k)の転送中(307)、ユーザーが高速Readを中止するようホスト装置100Aのユーザーインターフェース部131に指示したとき、ユーザーインターフェース部131は、アプリケーション部132を介してホストインターフェース部140Aの信号生成部145Aに上記指示を伝達する。
信号生成部145Aは、所定の長さのパルスを生成し、ダウンリンクに設定されている低速バス123経由で、スレーブインターフェース部160Aに上記パルスを送信する(308)。
信号解析部165Aは、上記パルスを受信したとき、「高速Read中止」を指示されていると解析(判断)し、不揮発性メモリ読み書き制御部170に不揮発性メモリ171からのデータ取得を中止するよう指示する。同時に、信号解析部165Aは、パケット生成部164Aに対してコマンド中止受諾パケットを生成するよう指示する。
パケット生成部164Aにより生成されたコマンド中止受諾パケットは、アップリンクに設定されている第2高速バス122を介してホスト装置100Aに送信される(309)。
伝送路(バス)切換制御部162Aの切換条件検出部260Aは、パケット生成部164Aがコマンド中止受諾パケットを送信したことを検出し、第1高速バス121の入出力端子261を受信状態に設定する。
さらに、切換条件検出部240Aは、低速バス123の入出力端子243を受信状態に設定する。これにより、低速バス123は通信不可に設定される(311)。
この結果、通信システム4は、全二重モード(定常状態)となり、伝送路(バス)切換制御部143Aおよび162Aによる設定は、図23に示すようになる。
(4.2.3:高速Writeの動作)
図26は、通信システム4において、ホスト装置100Aより高速Writeコマンドが発行されたときの第1高速バス121、第2高速バス122、および低速バス123上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
アプリケーション部132は、不揮発性メモリ171に書き込むべきデータがメモリ部133に保持されていることを確認した後、ホスト装置100Aのパケット生成部142Aに高速Writeコマンドパケットを生成させる。高速Writeコマンドには、書き込み先のアドレス、書き込みサイズが多重されているものとする。
高速Writeコマンドパケットは、第1高速バス121経由で、不揮発性記憶装置110Aのパケット解析部163Aに供給される(501)。パケット解析部163Aでは、上記パケットが高速Writeコマンドであることが解析される。
不揮発性記憶装置110Aでは、伝送路(バス)切換制御部162Aの切換条件検出部260Aは、パケット生成部164Aがコマンド受諾レスポンスパケットを送信したことを検出し、第2高速バス122の入出力端子262Aを受信状態に設定する。
また、ホスト装置100Aでは、伝送路(バス)切換制御部143Aの切換条件検出部240Aは、パケット解析部144Aがコマンド受諾レスポンスパケットを受信したことを検出し、第2高速バス122の入出力端子242Aを送信状態に設定する。これにより、第2高速バス122はダウンリンクに設定される(503)。
この結果、通信システム4は、半二重Writeモードとなり、このときの伝送路(バス)切換制御部143Aおよび162Aによる設定は、図27に示すようになる。
通信システム4において、半二重Writeモードに切り換わった後、ホストインターフェース部140Aは、メモリ部133に保持されているデータをパケット生成部142Aに供給する。
パケット生成部142Aは、パケットの種別等を示したヘッダと、不揮発性記憶装置110Aに書き込むデータを適当なサイズに分割して生成されるボディと、からデータパケットを生成する。
ホスト装置100Aから不揮発性記憶装置110Aに送信された上記DATA(1)、DATA(2)は、不揮発性記憶装置110Aの伝送路(バス)切換制御部162Aを介して、パケット解析部163Aに蓄積される。パケット解析部163Aでは、これらのパケットは、データパケットであると解析(判定)され、ヘッダを除いたボディ、すなわちデータ本体が、不揮発性メモリ読み書き制御部170に供給(出力)される。不揮発性メモリ読み書き制御部170は、不揮発性メモリ171に対して、高速Writeコマンドパケットに多重されたアドレスに対応する不揮発性メモリ171上の領域に、同じく高速Writeコマンドに多重された書き込みサイズに達するまでデータを書き込むよう制御する。
不揮発性記憶装置110Aのパケット解析部163Aに適当なサイズのバッファを備えていることは前述したが、通常、第1高速バス121もしくは第2高速バス122上でのデータ転送速度より、不揮発性メモリ171への書き込み速度の方が遅いため、不揮発性記憶装置110Aがパケットを間断なく受信し続けると、不揮発性記憶装置110Aのパケット解析部163A内のバッファ残量がなくなり、受信したデータがオーバーフローする恐れがある。
図26に示す場合において、不揮発性記憶装置110Aにおいて、DATA(3)およびDATA(4)を受信し、バッファ残量が所定値以下になると判明したと仮定する。この場合、不揮発性記憶装置110Aのパケット解析部163Aは、ホスト装置100Aからのデータ転送を中断すべく、スレーブインターフェース部160A内の信号生成部166Aにその旨の指示を伝達する。
信号生成部166Aにより生成された上記パルスは、ホストインターフェース部140Aの信号解析部146Aに供給される。
信号解析部146Aは、上記パルスを受信したとき、「高速Write中断」を指示されていると解析(判断)し、パケット生成部142Aに対して、データ送信を中断するよう指示する。
不揮発性記憶装置110Aにおいて、不揮発性記憶装置110Aがホスト装置100Aから受信したデータの不揮発性メモリ171への書き込みが進み、パケット解析部163A内のバッファ残量が所定値以上になったと判明したとき、パケット解析部163Aは、ホスト装置100Aからのデータ転送を再開すべく、スレーブインターフェース部160A内の信号生成部166Aにその旨の指示を伝達する。
信号生成部166Aにより生成された上記パルスは、ホストインターフェース部140Aの信号解析部146Aに供給される。
ホスト装置100Aの信号解析部146Aは、上記パルスを受信したとき、高速Write再開を指示されていると解析(判断)し、パケット生成部142Aに対して、不揮発性記憶装置110Aに対するデータ送信を再開するよう指示する。
その結果、5番目のデータパケットDATA(5)と6番目のデータパケットDATA(6)とが、ホスト装置100Aから不揮発性記憶装置110に送信される(509)。
また、不揮発性記憶装置110Aの伝送路(バス)切換制御部162Aの切換条件検出部260Aは、パケット解析部163AがDATA(2k)を受信したことを検出し、第2高速バス122の入出力端子262Aを送信状態に設定する。これにより、通信システム4において、第2高速バス122はアップリンクに設定される(511)。
この結果、通信システム4は、全二重モード(定常状態)となり、伝送路(バス)切換制御部143および162による設定は、図23に示すようになる。
以上説明したように、通信システム4では、2本の高速バスを同時に使用してデータを高速に読み出す半二重Readモードの場合、低速バスをアップリンクに設定し、ホスト装置100Aからパルス信号を送信することで、Readを中止させることができる。
また、通信システム4では、2本の高速バスを同時に使用してデータを高速に書き込む半二重Writeモードの場合、低速バスをダウンリンクに設定し、スレーブ装置(不揮発性記憶装置)110Aからパルス信号をホスト装置100Aに送信することで、ホスト装置100Aに対してデータ送信の可否を通知することができる。
また、通信システム4において、定常状態である全二重モードでのデータReadもしくはデータWriteも可能である。たとえば、通信システム4が、図23に示される状態に設定されているとすると、データReadの場合、アップリンクに設定されている第2高速バス122はデータ伝送に使用されるので、第1高速バス121を使用してRead中止指示を行うことができる。
ところで、本実施形態の通信システム4では、低速バス123に所定の長さのパルスを伝送するとしたが、これに限定されることはなく、例えば、低速バス123に所定の長さのビットパターンを伝送するようにしてもよい。この場合、各ビットパターンに複数種類の指示を割り当てることができ、より複雑な指示を行うことも可能である。
また、本実施形態の通信システム4では、スレーブ装置が、不揮発性メモリを有する不揮発性記憶装置110Aである場合について説明したが、これに限定されることはなく、例えば、図28に示すようなスレーブインターフェース部160、ネットワークインターフェース部770を備えるネットワークインターフェース装置710Aにおいても同様の効果を得ることが可能である。
図28において、ホスト装置100Aが高速Readコマンドを発行したとき、リモート装置780内のメモリ(図示せず)から、ネットワーク通信路781、ネットワークインターフェース部770を介して、ネットワークインターフェース装置710Aのパケット生成部164Aに格納されたデータは、パケット化された上で、半二重Readモードにて、ネットワークインターフェース装置710Aからホスト装置100Aに送信される。
通常、第1高速バス121もしくは第2高速バス122のデータ転送速度は、ネットワーク通信路781の速度より速いので、本実施形態にて説明したデータ転送中断、再開の制御が必要となる。
なお、ネットワーク通信路781は、有線ネットワーク、無線ネットワークいずれでも実現可能である。
図29は、本発明の第5実施形態において、ホスト装置より高速Writeコマンドが発行されたときの第1高速バス121、第2高速バス122、および低速バス123上を伝送されるパケットまたは信号を時系列に示したタイミング図である。
なお、本実施形態の通信システムは、第4実施形態の通信システム4と同様の構成により実現される。
本実施形態において、第4実施形態と異なる点は、以下の点である。すなわち、本実施形態における高速Write時には、不揮発性記憶装置110Aが書き込み不可の場合、低速バス123を「HIGH」に設定し、それ以外の場合、低速バス123を「LOW」に設定する、とする点が、第4実施形態と異なる。
ホスト装置のホストインターフェース部140Aの信号解析部146Aは、低速バス123が「HIGH」であることを検出し、パケット生成部142Aに対して、データ送信を中断するよう指示する。
また、スレーブ装置のパケット解析部163Aは、バッファ残量が所定値以上になり、データ受信が再開できると判明したとき、スレーブインターフェース部160A内の信号生成部166Aに、低速バス123を「LOW」に設定するよう指示する(803)。これにより、DATA(5)およびDATA(6)の伝送が開始される(804)。
同様に、高速Readの場合、ホスト装置100Aが低速バス123を「LOW」から「HIGH」にして、不揮発性記憶装置110Aにデータ転送中止を指示する構成が可能である。
なお、本実施形態において、全二重モードは低速バスを通信不可状態に設定していたが、これに限定されることはなく、たとえば、全二重モードにおいて低速バスをダウンリンクに設定してホスト装置からスレーブ装置に指示が伝送できるようにしても構わない。また、2本の高速バスを介してホスト装置とスレーブ装置がネゴシエーションを行って、適宜低速バスの方向を切り換える構成としてもよい。
なお、上記で説明した本発明のすべての実施形態において、スレーブ装置がホスト装置に装着され外部伝送路により接続されている場合について説明した。しかし、これに限定されることはなく、例えば、ホスト装置およびスレーブ装置に含まれる構成要素が1個の装置上で内部の伝送路により接続されているような構成においても、本発明と同様の効果を得ることができる。
また、本発明のすべての実施形態において、半二重モードから全二重モードへの切換を4個のデータパケットの送信完了時に実施するとして説明したが、これに限定されることはない。例えば、N個(Nは自然数)のデータパケットの送信完了時に、半二重モードから全二重モードへの切換を実行するようにしてもよい。
また、通信システムにおいて、データパケット数Nおよび、各データパケットのデータ容量は、必ずしも固定にする必要はなく、例えば、通信システムの通信状況により、可変にしてもよい。これにより、通信システムにおいて、通信効率を向上させることができる。
なお、上記実施形態で説明した通信システムのホスト装置およびスレーブ装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェアにより実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る通信システムをハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
100、100A ホスト装置
110、110A 不揮発性記憶装置(スレーブ装置)
121 第1伝送路
122 第2伝送路
123 クロック伝送路(第3伝送路)
131 ユーザーインターフェース部
132 アプリケーション部
133 メモリ
140、140A ホストインターフェース部
141、141A クロック送信部
142、142A パケット生成部
143、143A 伝送路切換制御部
144、144A パケット解析部
145 クロックカウンタ
160、160A スレーブインターフェース部
161、161A クロック再生成部
162、162A 伝送路切換制御部
163、163A パケット解析部
164、164A パケット生成部
165 クロックカウンタ
170 不揮発性メモリ部読み書き制御部
171 不揮発性メモリ
240 切換条件検出部
241、242 入出力端子
260 切換条件検出部
261、262 入出力端子
410 ネットワークインターフェース装置
470 ネットワークインターフェース部
480 リモート装置
481 ネットワーク通信路
500 ホスト装置
510 不揮発性記憶装置
540 ホストインターフェース部
543 伝送路切換制御部
560 スレーブインターフェース部
562 伝送路切換制御部
640 切換条件検出部
641、642 入出力端子
660 切換条件検出部
661、662 入出力端子
800 ホスト装置
810 不揮発性記憶装置
840 ホストインターフェース部
843 伝送路切換制御部
860 スレーブインターフェース部
862 伝送路切換制御部
940 切換条件検出部
941、942 入出力端子
960 切換条件検出部
961、962 入出力端子
Claims (22)
- 少なくとも2チャンネルの伝送路である第1伝送路と第2伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記第1伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能な第1伝送路用入出力端子と、
前記第2伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも2つの状態に設定可能な第2伝送路用入出力端子と、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第1条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第2条件と、を設定し、設定した前記第1条件または前記第2条件を満たすか否かを判定する通信モード切換条件検出部と、
前記通信モード切換条件検出部により、前記第1条件が満たされたと判定された場合、前記第1伝送路用入出力端子および前記第2伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出部により、前記第2条件が満たされたと判定された場合、前記第1伝送路用入出力端子および前記第2伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御部と、
を備えるインターフェース装置。 - 前記通信モード切換条件検出部は、前記通信システムが、前記半二重通信モードでの通信に切り換えられた時点から、所定量のデータの送信もしくは受信を完了した場合に、前記第2条件が満たされたと判断する、
請求項1に記載のインターフェース装置。 - 前記通信モード切換条件検出部は、前記通信システムが、前記半二重通信モードでの通信に切り換えられた時点から、N個(Nは自然数)のパケットの送信もしくは受信を完了した場合に、前記第2条件が満たされたと判断する、
請求項1に記載のインターフェース装置。 - 前記伝送路切換制御部は、前記第2条件を、データ送受信要求またはデータ送受信命令に含めて通信相手に通知する、
請求項1から3のいずれかに記載のインターフェース装置。 - 前記伝送路切換制御部は、前記インターフェース装置の初期設定時に、前記第2条件を、通信相手に通知及び/又は設定させるためのパケットを送信する、
請求項1から4のいずれかに記載のインターフェース装置。 - 前記第2条件が満たされたと判断するための送信もしくは受信したパケット数Nは、前記通信システムにかかるバッファサイズから決定する、
請求項1、2、3、および5のいずれかに記載のインターフェース装置。 - 前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた時点から、所定の時間Tが経過した場合に、前記第1条件が満たされたと判断する、
請求項1から6のいずれかに記載のインターフェース装置。 - 前記伝送路切換制御部は、前記インターフェース装置の初期設定時に、前記第1条件を、通信相手に通知及び/又は設定させるためのパケットを送信する、
請求項1から7のいずれかに記載のインターフェース装置。 - 前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を受信した場合に、前記第1条件が満たされたと判断する、
請求項1から7のいずれかに記載のインターフェース装置。 - 前記通信モード切換条件検出部は、前記通信システムが前記全二重通信モードでの通信に切り換えられた後、インターフェース切換要求命令を送信した場合に、前記第1条件が満たされたと判断する、
請求項1から7のいずれかに記載のインターフェース装置。 - 前記伝送路切換制御部は、
前記全二重通信モードに切り換え後、Wait指示の割り込み通知を受信した場合、前記全二重通信モードの状態で待機し、
前記Wait指示の割り込み通知に対応する割り込み処理の完了後に送信される割込処理完了を指示する通知を受信した場合、前記半二重通信モードへ切り換える、
請求項1から6のいずれかに記載のインターフェース装置。 - 前記伝送路切換制御部は、
前記全二重通信モードに切り換え後、所定時間以内にWait指示の割り込み通知を受信しなかった場合、前記半二重通信モードへ切り換える、
請求項1から6のいずれかに記載のインターフェース装置。 - 不揮発性メモリと、
前記不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、
請求項1から12のいずれかに記載のインターフェース装置と、
を備える不揮発性記憶装置。 - 外部との通信を行う外部通信部と、
前記外部通信部に対する制御を行う外部通信制御部と、
請求項1から12のいずれかに記載のインターフェース装置と、
を備える通信装置。 - 請求項1から12のいずれかに記載のインターフェース装置を含むホスト装置と、
請求項13または14に記載の装置を含むスレーブ装置と、
を備える通信システム。 - 少なくとも2チャンネルの伝送路である第1伝送路と第2伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられる通信モード切換方法であって、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第1条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第2条件と、を設定し、設定した前記第1条件または前記第2条件を満たすか否かを判定する通信モード切換条件検出ステップと、
前記通信モード切換条件検出ステップにより、前記第1条件が満たされたと判定された場合、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出ステップにより、前記第2条件が満たされたと判定された場合、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御ステップと、
を備える通信モード切換方法。 - 少なくとも2チャンネルの伝送路である第1伝送路と第2伝送路とを有し、前記伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記第1伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能な第1伝送路用入出力端子と、
前記第2伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、の少なくとも2つの状態に設定可能な第2伝送路用入出力端子と、
を備えるインターフェース装置に用いられる集積回路であって、
前記通信システムにおいて全二重による通信を行う通信モードである全二重通信モードを、前記通信システムにおいて半二重による通信を行う通信モードである半二重通信モードに、切り換えるための条件である第1条件と、前記半二重通信モードを前記全二重通信モードに切り換えるための条件である第2条件と、を設定し、設定した前記第1条件または前記第2条件を満たすか否かを判定する通信モード切換条件検出部と、
前記通信モード切換条件検出部により、前記第1条件が満たされたと判定された場合、前記第1伝送路用入出力端子および前記第2伝送路用入出力端子の両方を入力状態、または出力状態に設定することで、前記通信モードを、前記全二重通信モードから前記半二重通信モードに切り換え、
前記通信モード切換条件検出部により、前記第2条件が満たされたと判定された場合、前記第1伝送路用入出力端子および前記第2伝送路用入出力端子のうちの一方の入出力端子を出力状態に設定し、他方の入出力端子を入力状態に設定することで、前記通信モードを、前記半二重通信モードから前記全二重通信モードに切り換える伝送路切換制御部と、
を備える集積回路。 - 低速伝送路および複数の高速伝送路を有し、前記低速伝送路または複数の前記高速伝送路を用いて命令やデータの送受信を行う通信システムに用いられるインターフェース装置であって、
前記低速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能な低速伝送路用入出力端子と、
前記高速伝送路に接続され、命令やデータを受信する状態である入力状態と、命令やデータを送信する出力状態と、少なくとも2つの状態に設定可能な複数の高速伝送路用入出力端子と、
前記低速伝送路用入出力端子および前記複数の高速伝送路用入出力端子の入出力状態を、それぞれを独立に設定することができ、
前記複数の高速伝送路用入出力端子のうち少なくとも1つの前記高速伝送路用入出力端子を出力状態に設定し、当該出力状態に設定した前記高速伝送路用入出力端子以外の前記高速伝送路用入出力端子を入力状態に設定する全二重通信モードと、
前記複数の高速伝送路用入出力端子のすべてを出力状態に設定する半二重出力モードと、
前記複数の高速伝送路用入出力端子のすべてを入力状態に設定する半二重入力モードと、に基づいて、前記低速伝送路用入出力端子および前記複数の高速伝送路用入出力端子の入出力状態を設定する伝送路切換制御部と、
を備え、
前記伝送路切換制御部は、
前記半二重出力モードでは、前記低速伝送路用入出力端子を入力状態に設定し、
前記半二重入力モードでは、前記低速伝送路用入出力端子を出力状態に設定する、
インターフェース装置。 - 前記低速伝送路用入出力端子は、シングルエンド方式による通信を行う伝送路用の入出力端子であり、
前記複数の高速伝送路用入出力端子のうちの少なくとも1つの高速伝送路用入出力端子は、差動伝送方式による通信を行う伝送路用の入出力端子である、
請求項18に記載のインターフェース装置。 - 不揮発性メモリと、
前記不揮発性メモリに対する読み書き制御を行う不揮発性メモリ制御部と、
請求項18または19に記載のインターフェース装置と、
を備える不揮発性記憶装置。 - 外部との通信を行う外部通信部と、
前記外部通信部に対する制御を行う外部通信制御部と、
請求項18または19に記載のインターフェース装置と、
を備える通信装置。 - 請求項18または19に記載のインターフェース装置を含むホスト装置と、
請求項18または19に記載のインターフェース装置を含むスレーブ装置と、
を備える通信システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/995,558 US8520563B2 (en) | 2008-06-02 | 2009-05-29 | Interface device, communications system, non-volatile storage device, communication mode switching method and integrated circuit |
JP2010515756A JP5054818B2 (ja) | 2008-06-02 | 2009-05-29 | インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路 |
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008144456 | 2008-06-02 | ||
JP2008-144456 | 2008-06-02 | ||
JP2008158057 | 2008-06-17 | ||
JP2008-158056 | 2008-06-17 | ||
JP2008-158057 | 2008-06-17 | ||
JP2008158056 | 2008-06-17 | ||
JP2009-001573 | 2009-01-07 | ||
JP2009001573 | 2009-01-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2009147811A1 true WO2009147811A1 (ja) | 2009-12-10 |
Family
ID=41397894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/002398 WO2009147811A1 (ja) | 2008-06-02 | 2009-05-29 | インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8520563B2 (ja) |
JP (1) | JP5054818B2 (ja) |
WO (1) | WO2009147811A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016170662A1 (ja) * | 2015-04-23 | 2016-10-27 | 株式会社フィックスターズ | 高速データ伝送が可能な記憶装置、そのためのプログラムおよびアダプタ |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5045636B2 (ja) * | 2008-10-08 | 2012-10-10 | コニカミノルタビジネステクノロジーズ株式会社 | 管理システム及び管理方法並びに制御プログラム |
US8185678B1 (en) * | 2009-06-19 | 2012-05-22 | Xilinx, Inc. | Method and apparatus for controlling a data bus |
JP5259836B2 (ja) * | 2010-05-17 | 2013-08-07 | 株式会社東芝 | 通信システム |
US8402320B2 (en) * | 2010-05-25 | 2013-03-19 | Oracle International Corporation | Input/output device including a mechanism for error handling in multiple processor and multi-function systems |
US8693208B2 (en) * | 2010-08-06 | 2014-04-08 | Ocz Technology Group, Inc. | PCIe bus extension system, method and interfaces therefor |
JP5433593B2 (ja) * | 2011-01-21 | 2014-03-05 | 株式会社東芝 | メモリインターフェイスのタイミング調整回路および方法 |
US9467494B1 (en) * | 2011-12-30 | 2016-10-11 | Rupaka Mahalingaiah | Method and apparatus for enabling mobile cluster computing |
US8804583B2 (en) | 2012-07-13 | 2014-08-12 | At&T Intellectual Property I, L.P. | System and method for medium access control enabling both full-duplex and half-duplex communications |
US8842584B2 (en) | 2012-07-13 | 2014-09-23 | At&T Intellectual Property I, L.P. | System and method for full duplex cancellation |
US9094196B2 (en) | 2012-09-07 | 2015-07-28 | At&T Intellectual Property I, L.P. | System and method for full duplex MAC designs based on backoff in frequency domain |
US9935785B2 (en) | 2012-09-14 | 2018-04-03 | At&T Intellectual Property I, L.P. | System and method for full-duplex media access control using Request-to-Send signaling |
US10200184B2 (en) * | 2013-09-10 | 2019-02-05 | Sony Corporation | Communication apparatus, communication system and communication method |
JP2015215841A (ja) | 2014-05-13 | 2015-12-03 | 株式会社東芝 | メモリシステム |
US9811495B2 (en) * | 2014-08-27 | 2017-11-07 | Lattice Semiconductor Corporation | Arbitration signaling within a multimedia high definition link (MHL 3) device |
US11586565B2 (en) * | 2016-10-03 | 2023-02-21 | Samsung Electronics Co., Ltd. | Non-volatile storage system and data storage access protocol for non-volatile storage devices |
US10732848B2 (en) * | 2018-06-29 | 2020-08-04 | Western Digital Technologies, Inc. | System and method for predictive read of random data |
JP6731602B1 (ja) * | 2019-02-28 | 2020-07-29 | 株式会社安川電機 | スレーブ機器及び通信システム |
JP7391116B2 (ja) * | 2019-06-28 | 2023-12-04 | アナログ・ディヴァイシス・インターナショナル・アンリミテッド・カンパニー | 低複雑度イーサネットノード(len)1ポート |
US11102149B2 (en) * | 2019-12-20 | 2021-08-24 | Hewlett Packard Enterprise Development Lp | Modular, flexibly connected switch-port input-output cards |
US11416263B1 (en) | 2021-02-12 | 2022-08-16 | Western Digital Technologies, Inc. | Boosted boot procedure by background re-arrangement of read patterns |
CN115242860B (zh) * | 2022-07-25 | 2024-02-02 | 苏州欧普照明有限公司 | 一种并发数据上报方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001086104A (ja) * | 1999-09-14 | 2001-03-30 | Sharp Corp | 双方向伝送システム |
JP2001086185A (ja) * | 1999-09-14 | 2001-03-30 | Sharp Corp | 通信方法および装置 |
JP2002094600A (ja) * | 2000-09-13 | 2002-03-29 | Mitsubishi Electric Corp | 通信装置および通信方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5839138A (ja) | 1981-08-31 | 1983-03-07 | Fujitsu Ltd | デ−タ転送方式 |
US4771417A (en) | 1986-09-18 | 1988-09-13 | Racal Data Communications, Inc. | High speed modem |
JPH01183241A (ja) | 1988-01-18 | 1989-07-21 | Yokogawa Medical Syst Ltd | データ通信回路 |
WO2001020833A1 (fr) | 1999-09-14 | 2001-03-22 | Sharp Kabushiki Kaisha | Procede de communication de donnees, procede de communication bidirectionnelle de donnees, systeme de communication de donnees, systeme de communication bidirectionnelle de donnees, emetteur de donnees, et recepteur de donnees |
US7636327B1 (en) * | 2003-07-29 | 2009-12-22 | Sprint Spectrum L.P. | Method and system for selectively operating in a half-duplex mode or full-duplex mode in a packet-based real-time media conference |
US7415282B2 (en) * | 2004-07-31 | 2008-08-19 | Nextel Communications Inc. | Wireless communication system providing seamless switching between full-duplex and half-duplex modes |
US8149743B1 (en) * | 2006-07-12 | 2012-04-03 | Nextel Communications Inc. | System and method for seamlessly switching a full-duplex session to a half-duplex session |
US7912070B1 (en) * | 2006-07-12 | 2011-03-22 | Nextel Communications Inc. | System and method for seamlessly switching a half-duplex session to a full-duplex session |
US7742439B2 (en) * | 2006-10-13 | 2010-06-22 | Hewlett-Packard Development Company, L.P. | Automated correction of duplex mismatches |
-
2009
- 2009-05-29 JP JP2010515756A patent/JP5054818B2/ja active Active
- 2009-05-29 US US12/995,558 patent/US8520563B2/en active Active
- 2009-05-29 WO PCT/JP2009/002398 patent/WO2009147811A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001086104A (ja) * | 1999-09-14 | 2001-03-30 | Sharp Corp | 双方向伝送システム |
JP2001086185A (ja) * | 1999-09-14 | 2001-03-30 | Sharp Corp | 通信方法および装置 |
JP2002094600A (ja) * | 2000-09-13 | 2002-03-29 | Mitsubishi Electric Corp | 通信装置および通信方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016170662A1 (ja) * | 2015-04-23 | 2016-10-27 | 株式会社フィックスターズ | 高速データ伝送が可能な記憶装置、そのためのプログラムおよびアダプタ |
Also Published As
Publication number | Publication date |
---|---|
JP5054818B2 (ja) | 2012-10-24 |
US8520563B2 (en) | 2013-08-27 |
JPWO2009147811A1 (ja) | 2011-10-20 |
US20110182216A1 (en) | 2011-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5054818B2 (ja) | インターフェース装置、通信システム、不揮発性記憶装置、通信モード切換方法および集積回路 | |
US9430432B2 (en) | Optimized multi-root input output virtualization aware switch | |
EP2263155B1 (en) | Direct data transfer between slave devices | |
KR101077900B1 (ko) | 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치 | |
US7492710B2 (en) | Packet flow control | |
US8693379B2 (en) | Communication system, communication device, and communication method | |
US20080294831A1 (en) | Method for link bandwidth management | |
US20090003335A1 (en) | Device, System and Method of Fragmentation of PCI Express Packets | |
WO2009008948A1 (en) | End-to-end flow control in a network | |
CN114546913B (zh) | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 | |
JP2004334417A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
CN101455038A (zh) | 一种节点 | |
CN107852423B (zh) | 用于usb 2.0带宽保留的方法及*** | |
CN115298656A (zh) | 用于调度可共享pcie端点设备的***和方法 | |
EP2699030B1 (en) | Route switching device, network switching system and route switching method | |
CN115203084A (zh) | 高速***组件互连(pcie)接口装置及其操作方法 | |
EP2929444B1 (en) | Apparatus and circuit for processing data | |
KR101197294B1 (ko) | QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
JP2014222466A (ja) | 情報処理装置、情報処理システムおよび情報処理システムの通信方法 | |
WO2022102088A1 (ja) | ネットワークカードおよびバッファ制御方法 | |
JP5587530B2 (ja) | エンジン・プロセッサ連携システム及び連携方法 | |
US6728815B1 (en) | Method and structure for supporting data streaming by a SCSI target during the data in phase of the packetized SCSI protocol | |
CN109165099B (zh) | 一种电子设备、内存拷贝方法及装置 | |
US6745260B1 (en) | Method and system for data streaming during the data in phase of the packetized SCSI protocol |
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: 09758078 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010515756 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 12995558 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09758078 Country of ref document: EP Kind code of ref document: A1 |