Embodiments described herein relate generally to a memory system and a data writing method.
In order to receive and transmit data between a storage device and a host computer, the storage device includes an input/output unit that transmits and receives a command or data with the host computer, and a write/read control unit that reads or writes data based upon the command. The reading or writing of the data to the storage device is generally performed based on a protocol called SAS (Serial Attached SCSI (Small Computer System Interface)).
The SAS can be used for the case where plural input/output units are provided as an interface with the host computer. For example, each of the plural input/output units can be used as a narrow port having different SAS address, or the plural input/output units can be used as a wide port having the same SAS address.
Which one of the narrow port and the wide port is used by a user cannot preliminarily be found. Therefore, the storage device is configured to be used as both the narrow port and the wide port. Firmware can rewrite whether the storage device is used as the narrow port configuration or as the wide port configuration.
Under the SAS protocol, there is a difference in the process of receiving a write command from the host computer between the case of the narrow port configuration and the case of the wide port configuration. Therefore, the storage device is conventionally provided with a complicated circuit structure in order to be used as both configurations.
In general, according to one embodiment, a memory system that is connected to a host computer with plural transmission paths, and writes data in a non-volatile memory by a write command from the host computer is provided. The memory system includes plural processing units provided for each of the transmission paths, and a data distribution unit. Each processing unit includes an input/output unit that transmits and receives data with the host computer, and a write control unit that has execution management information for queuing write commands, the execution management information including identification information indicating a process involved with the write command, and that controls a writing of data to the non-volatile memory based upon the execution management information. The data distribution unit distributes the data frame received from any one of the input/output units to any one of the writing control units based upon the identification information in the data frame. The data distribution unit distributes the data frame to the write control unit that has the execution management information including identification information equal to the identification information in the received data frame, in the case of a first configuration in which the same address is set to the input/output units in the plural processing units. The data distribution unit does not distribute the data frame, but transfers the data frame to the write control unit in the processing unit including the input/output unit from which data frame is received, in the case of a second configuration in which a different address is set to the input/output unit in each of the processing units.
Exemplary embodiments of the memory system and the data writing method will be explained below in detail with reference to the accompanying drawings. The present invention is not limited to the following embodiments. After an outline of a SAS interface protocol is described, the embodiments will be described.
The frame type indicates a type of a frame, specifically, indicates the COMMAND frame, XFER_RDY frame, DATA frame, or RESPONSE frame in
The IPTT is a tag applied from the COMMAND frame upon an issuance of the command, and it is identification information for identifying that the frame is a process frame involved with the COMMAND frame issued from the host computer. Specifically, when the COMMAND frame is issued as illustrated in
The TPTT is a tag applied when the storage device transmits the XFER_RDY frame independently of the IPTT. The TPTT is information for identifying the DATA frame corresponding to the XFER_RDY frame that is a response frame to the COMMAND frame. When the region with the data size required by the COMMAND frame cannot be allocated at a time in SQ12 in
The data portion 220 stores different contents for each frame type. In the case of the DATA frame, the data to be written on the storage device is stored.
The SAS module 20 is an interface for connecting the storage device 10 to the host computer, serving as an Initiator, in a SAS system. In this embodiment, the SAS module 20 includes two interface units 21A and 21B, an Application Layer 28, and a data distribution unit 29.
The interface units 21A and 21B respectively include Phys 22A and 22B, Port Layers 25A and 25B, Transport Layers 26A and 26B, and execution control tables 27A and 27B. The present embodiment illustrates the SAS module including two interface units 21A and 21B. However, the SAS module may include three or more interface units.
The Phys 22A and 22B correspond to an input/output unit to the host computer, and include Phy Layers 23A and 23B, and Link Layers 24A and 24B respectively. The Phy Layers 23A and 23B convert an electric signal inputted from the host computer into a frame or a signal with a primitive unit for controlling communication, and input the converted frame or signal into the Link Layers 24A and 24B. The Phy Layers 23A and 23B convert the frame or the primitive signal inputted from the Link Layers 24A and 24B into an electric signal, and output the converted signal to the host computer.
The Link Layers 24A and 24B extract the frame inputted from the Phy Layers 23A and 23B or extract the frame from the signal that is inputted from the Phy Layers 23A and 23B and that includes both the frame and the primitive signal, and output the extracted frame to the Transport Layers 26A and 26B, as well as output a connection control signal, which controls the reading of the frame, to the Port Layers 25A and 25B. When receiving the connection control signal from the Port Layers 25A and 25B, the Link Layers 24A and 24B read the signal at the unit of frame from the Transport Layers 26A and 26B, add the primitive signal to the frame, and output the resultant to the Phy Layers 23A and 23B.
The Port Layers 25A and 25B perform connection control for transmitting and receiving the frame in cooperation with the Link Layers 24A and 24B and the Transport Layers 26A and 26B. Specifically, the Port Layers 25A and 25B transfer the connection control signal inputted from the Link Layers 24A and 24B to the Transport Layers 26A and 263. The Port Layers 25A and 25B also transfer the connection control signal inputted from the Transport Layers 26A and 26B to the Link Layers 24A and 24B.
The Transport Layers 26A and 26B discriminate the type of the frame inputted from the Link Layers 24A and 24B, decide the destination where the frame is to be stored according to the type, and store the frame into the decided destination, according to the connection control signal. For example, the Transport Layers 26A and 26B store the COMMAND frame into a command table, not illustrated, in the Application Layer 28, and store the DATA frame into the buffer 40.
The Transport Layers 26A and 26B also generate a frame to be transmitted by a protocol of the running command, and output the generated frame to the Link Layers 24A and 24B. For example, during the execution of the write command, after receiving the COMMAND frame, the Transport Layers 26A and 26B generate the XFER_RDY frame, and output the generated frame to the Link Layers 24A and 24B. After the reception of the DATA frame, the Transport Layers 26A and 26B generate the RESPONSE frame, and output the generated frame to the Link Layers 24A and 24B. During the execution of the read command, the Transport Layers 26A and 26B output the frame to be transmitted to the Link Layers 24A and 24B, and output the connection control signal for controlling the reading of this frame to the Port Layers 25A and 25B.
The execution management tables 27A and 27B store execution management information needed to queue the command from the host computer, and each of them is provided for each of the Transport Layers 26A and 26B.
The number of the mounted execution management tables 27A and 27B are equal to the number of the commands that are to be simultaneously executed. For example, when two write commands are simultaneously executed in each of the Transport Layers 26A and 26B, two execution management tables 27A are provided to the Transport Layers 26A, and two execution management tables 27B are provided to the Transport Layers 26B.
The port Layers 25A and 25B, the Transport Layers 26A and 26B, and the execution management tables 27A and 27B correspond to a read/write processing unit. The read/write processing unit writes or reads data based upon the command inputted from the Phys 22A and 22B.
The Application Layer 28 has a register and a command table, which are involved with the setting of the whole storage device 10. The command table stores the command received from the host computer, and the command is read by Firmware (FW).
The portion composed of the Phy Layers 23A and 23B, the Link Layers 24A and 24B, the Port Layers 25A and 25B, the Transport Layers 26A and 26B, and the execution management tables 27A and 27B are particularly referred to as a Port 30. The configuration of the Port 30 is different between a narrow port configuration and a wide port configuration described later.
The Phy Layers 23A and 23B, the Link Layers 24A and 24B, the Port Layers 25A and 25B, the Transport Layers 26A and 26B, and the Application Layer 28 may be realized by using a dedicated chip according to each layer, or may be realized by using a chip having functions of several layers or all layers.
The data distribution unit 29 is provided between the Link Layers 24A and 24B and the Transport Layers 26A and 26B to connect two interface units 21A and 21B. When the two Phys 22A and 22B are used as the wide port configuration, the data distribution unit 29 distributes the data inputted from the Phys 22A and 22B to either one of two Transport Layers 26A and 26B. The detail of the data distribution unit 29 will be described later.
The buffer 40 is located between the Transport Layers 26A and 26B and the storage medium 50, and has a function of absorbing a difference between a communication speed with the host computer and a reading/writing speed of the storage medium 50.
The storage medium 50 stores the data received from the host computer in a non-volatile manner. Flash memory such as NAND flash memory or a magnetic disk (hard disk) can be used as the storage medium 50.
The narrow port and the wide port will be described. The SAS has the configuration called narrow port and the configuration called wide port according to the relationship of the Phys 22A and 22B located in the Port 30.
In the narrow port configuration, one Phy is included in one Port 30. Plural narrow ports can be mounted to one storage device 10. The configuration in which two narrow ports are provided in one storage device 10 is called dual port configuration. In the dual port configuration, each Port 30 (Phy) is regarded as independent, and a different SAS address is added to each Port 30. Therefore, the command received by each Port 30 has to be executed by the Port 30 that receives the command. The COMMAND frames having the same IPTT may simultaneously be transmitted to each of two Ports 30 (Phys). Specifically, in the dual port configuration, the host computer can treat each Port 30 as the independent interface of the storage device 10.
On the other hand, in the wide port configuration, plural Phys 22A and 22B are included in one Port 30 as illustrated in
As described above, in the dual port configuration, each Port 30 (Phys 22A and 22B) is independent, and the DATA frame is always received from the Phy 22A or 22B that transmits the XFER_RDY frame. Therefore, the Transport Layers 26A and 26B and the execution management tables 27A and 27B are only provided for each Port 30 (each of the Phys 22A and 22B). On the other hand, in the wide port configuration, the DATA frame is not always received from the Phys 22A and 22B that transmit the XFER_RDY frame. Therefore, it has to be configured such that the DATA frame received by either one of the Phys 22A and 22B can be retrieved by the execution management tables 27A and 27B.
Whether the storage device 10 is used as the dual port (narrow port) configuration or as the wide port configuration can optionally be selected by the rewriting by the firmware. In order to allow the storage device 10 to be used as both the dual port (narrow port) configuration and the wide port configuration, the storage device 10 has basically the narrow port configuration, and includes the data distribution unit 29 provided between the Phys and the Transport Layers 26A and 26B to be connected to two Phys 22A and 22B.
The data distribution unit 29 recognizes the current port configuration of the storage device 10, and executes the data distribution process based upon the result. When the storage device 10 is used as the dual port configuration (as the narrow port configuration), the data distribution unit 29 does not operate, so that the storage device 10 functions as the narrow port. Specifically, the DATA frame received from the Link Layer 24A is transmitted to the Transport Layer 26A, and the DATA frame received from the Link Layer 24B is transmitted to the Transport Layer 26B.
When the storage device 10 is used as the wide port configuration, the data distribution unit 29 executes the distribution of the DATA frame in order that the DATA frame received by the Link Layer 24A can be transmitted to the Transport Layer 26B or the DATA frame received by the Link Layer 24B can be transmitted to the Transport Layer 26A. Identification information of the received DATA frame and identification information in the execution management tables 27A and 27B are compared, and the DATA frame is distributed to the Transport Layer 26A or 26B corresponding to the execution management table 27A or 27B having the identification information equal to the identification information of the DATA frame.
The signal from the input path 292a is inputted to the frame selection circuit 291A for the Transport Layer 26A, and the frame selection circuit 291B for the Transport Layer 26B. The signal from the input path 292b is inputted to the frame selection circuit 291A for the Transport Layer 26A, and the frame selection circuit 291B for the Transport Layer 26B. The signal from the input path 292c is inputted to the frame selection circuit 291A for the Transport Layer 26A. The signal from the input path 292d is inputted to the frame selection circuit 291B for the Transport Layer 26B. The signal selected by the frame selection circuit 291A for the Transport Layer 26A is outputted to the Transport Layer 26A. The signal selected by the frame selection circuit 291B for the Transport Layer 26B is outputted to the Transport Layer 26B.
The frame selection circuit 291A in the data distribution unit 29 compares the identification information in the DATA frame and the identification information in the execution management table 27A, and when they are equal to each other, the frame selection circuit 291A outputs the DATA frame to the output path 293a. When they are not equal to each other, the frame selection circuit 291A does not output the DATA frame to the output path 293a. The frame selection circuit 291B compares the identification information in the DATA frame and the identification information in the execution management table 27B, and when they are equal to each other, the frame selection circuit 291B outputs the DATA frame to the output path 293b. When they are not equal to each other, the frame selection circuit 291B does not output the DATA frame to the output path 293b. In the first embodiment, the IPTT is used as the identification information.
The operation of the storage device 10 in the first embodiment will next be described. In this embodiment, the case where the storage device 10 receives the write command will be described.
The firmware monitors the command counter, and determines whether there is a command that is not processed (step S13). When there is no command that is not processed (No in step S13), the firmware is in stand-by state until the command that is not processed is generated. On the other hand, when there is the command that is not processed (Yes in step S13), the firmware reads the command from the command table (step S14), and registers the execution management information written on the command, such as the IPTT, LBA, or the transfer number, and the TPTT that is uniquely decided to the execution management table 27A (27B) (step S15). In this case, the identification information such as the IPTT or TPTT is registered in the execution management table in the interface unit including the Phy receiving the command. For example, the command received by the Phy 22A is registered in the execution management table 27A, and the command received by the Phy 22B is registered in the execution management table 27B. When there are plural commands that are not processed, each of these commands is registered to the execution management table 27A (27B). The number of the commands that can be simultaneously executed depends upon the number of the execution management tables 27A (27B) mounted on the storage device 10.
The Transport Layer 26A (26B) allocates the region that can store the data with the size designated by the write command in the buffer 40 (step S16). When the region with the designated size cannot be allocated, the setting of the execution management table for one write command is divided into plural settings.
After the firmware registers the execution management information to the execution management table 27A (27B), the XFER_RDY frame is transmitted to the host computer (step S17). Specifically, the Transport Layer 26A (26B) transmits the XFER_RDY frame to the Link Layer 24A (24B) based upon the information in the execution management table 27A (27B). The XFER_RDY frame includes the IPTT stored in the write command received in step S11. This frame also includes the TPTT. Thereafter, the Link Layer 24A (24B) adds the primitive to the received XFER_RDY frame, and transmits the resultant to the Phy Layer 23A (23B). The Phy Layer 23A (23B) converts the XFER_RDY frame into an electric signal, and transmits the converted signal to the host computer.
When receiving the XFER_RDY frame, the host computer transmits the DATA frame, which includes the data to be written instructed by the COMMAND frame, to the storage device 10.
Then, the storage device 10 receives the DATA frame (step S18). Specifically, after the Phy Layer 23A (23B) in the storage device 10 receives the DATA frame in the form of the electric signal, it converts the DATA frame into a signal in a frame/primitive unit. The Link Layer 24A (24B) extracts the DATA frame from the signal including both the frame and the primitive, and outputs the extracted frame to the Transport Layer 26A (26B), as well as outputs the connection control signal, which controls the reading of the DATA frame, to the Port Layer 25A (25B). The Port Layer 25A (25B) transfers the connection control signal to the Transport Layer 26A (26B). The data distribution unit 29 is present between the Link Layer 24A (24B) and the Transport Layer 26A (26B). However, in the narrow port configuration, it is set such that the data distribution unit 29 does not operate. Therefore, the DATA frame is only transferred to the Transport Layer 26A (26B) from the Link Layer 24A (24B) in the same interface unit 21A (21B).
When receiving the DATA frame, the Transport Layer 26A (26B) refers to the execution management table 27A (27B) in order to determine with which command the write data is involved by using the IPTT included in the DATA frame. After the write data is specified, the write data can be stored on the address indicated by the LBA in the storage medium 50 stored in the execution management table 27A (27B) via the buffer 40 in accordance with the connection control signal (step S19).
Then, the storage device 10 transmits to the host computer the RESPONSE frame indicating whether the write data is normally written or not (step S20). Specifically, after the writing of the write data is finished, the Transport Layer 26A (26B) generates the RESPONSE frame indicating whether the write data is normally written or not, and outputs the RESPONSE frame to the Link Layer 24A (24B). The RESPONSE frame is transmitted to the host computer via the Phy Layer 23A (23B). Thus, the write command execution process is ended.
The write command execution process described above is the same in the other port. As described above, the process same as the conventional process is executed in the narrow port configuration.
The configuration of the storage device used as the wide port configuration is as illustrated in
The method of registering the identification information such as the IPTT and TPTT to the execution management table in step S35 can be the same as the process in step S15 described in the narrow port configuration. In the dual port (narrow port) configuration, the execution management information has to be registered to the execution management table 27A or 27B mounted on the Transport Layer 26A or 26B connected to the Phys 22A or 22B receiving the COMMAND frame (because the XFER_RDY frame has to be transmitted from the Phy 22A or 22B receiving the COMMAND frame). However, the wide port configuration does not have such restriction. Accordingly, in the process of registering the execution management information to the execution management table in step S35, the execution management information may be registered to either one of the execution management tables 27A and 27B mounted on the Transport Layers 26A and 26B, so long as the execution management tables 27A and 27B are not used. For example, when the write command is received from the Phy 22A but there is no space in the execution management table 27A in the wide port configuration, the execution management information including the IPTT corresponding to the write command and the TPTT may be registered to the execution management table 27B, if the execution management table 27B has a free space; and vice versa.
Then, the IPTT of the command registered to the execution management table 27A or 27B is inputted to the data distribution unit 29 (step S38). This is because the IPTT is used for the distribution of the received data.
Thereafter, when receiving the XFER_RDY frame, the host computer transmits the DATA frame, which includes the data to be written instructed by the COMMAND frame, to the storage device 10. When the Phy Layer 23A or 23B in the storage device 10 receives the DATA frame in the form of the electric signal (step S39), it converts the DATA frame into a signal in a frame/primitive unit. The Link Layer 24A or 24B extracts the DATA frame from the signal including both the frame and the primitive, and output the extracted frame to the data distribution unit 29, as well as output the connection control signal, which controls the writing of the DATA frame, to the Port Layer 25A or 25B. The Port Layer 25A or 25B transfers the connection control signal to the Transport Layer 26A or 26B.
The data distribution unit 29 analyzes the IPTT of the DATA frame received from the host computer, and determines to which one of the execution management table 27A mounted on the Transport Layer 26A and the execution management table 27B mounted on the Transport Layer 26B the information involved with the DATA frame is registered. As a result of the determination, the data distribution unit 29 transmits the DATA frame to the Transport Layer 26A or 26B having the determined execution management table 27A or 27B (step S40).
The process of the data distribution unit 29 will be described in detail with reference to
The DATA frame from the input path 292a (hereinafter referred to as DATA_phy0) and the DATA frame from the input path 292b (hereinafter referred to as DATA_phy1) are inputted to the frame selection circuit 291A. In this embodiment, the IPTT of the DATA_phy0 is defined as “IPTT_phy0”, and the IPTT of the DATA_phy1 is defined as “IPTT_phy1”.
The IPTT of each execution management information stored in the execution management table 27A is also inputted to the frame selection circuit 291A. The execution management table 27A is supposed to store the execution management information whose IPTT is “IPTT—0—0” and “IPTT—0—1” in the present embodiment.
The frame selection circuit 291A compares the IPTT of the inputted DATA frame and the IPTT inputted from the execution management table 27A.
Specifically, the frame selection circuit 291A compares the IPTT_phy0 inputted from the input path 292a and the IPTT—0—0 and IPTT—0—1 inputted from the execution management table 27A, and compares the IPTT_phy1 inputted from the input path 292b and the IPTT—0—0 and IPTT—0—1 inputted from the execution management table 27A.
In the case of IPTT_phy0=IPTT—0—0 or IPTT_phy0=IPTT—0—1 as the result of the comparison, the frame selection circuit 291A outputs the DATA_phy0 from the input path 292a to the output path 293a (Transport Layer 26A). In the case of IPTT_phy1=IPTT—0—0 or IPTT_phy1=IPTT—0—1 as the result of the comparison, the frame selection circuit 291A outputs the DATA_phy1 from the input path 292b to the output path 293a (Transport Layer 26A). On the other hand, in other cases, the DATA frame is not transmitted to the output paths 293a (Transport Layer 26A) and 293b (Transport Layer 26B).
The DATA_phy0, having the IPTT of the “IPTT_phy0”, from the input path 292a and the DATA_phy1, having the IPTT of the “IPTT_phy1”, from the input path 292b are inputted to the frame selection circuit 291B.
The IPTT of each execution management information stored in the execution management table 27B is also inputted to the frame selection circuit 291B. The execution management table 27B is supposed to store the execution management information whose IPTT is “IPTT—1—0” and “IPTT—1—1” in the present embodiment.
The frame selection circuit 291B compares the IPTT of the inputted DATA frame and the IPTT inputted from the execution management table 27B.
Specifically, the frame selection circuit 291B compares the IPTT_phy0 inputted from the input path 292a and the IPTT—1—0 and IPTT—1—1 inputted from the execution management table 27B, and compares the IPTT_phy1 inputted from the input path 292b and the IPTT—1—0 and IPTT—1—1 inputted from the execution management table 27B.
In the case of IPTT_phy0=IPTT—1—0 or IPTT_phy0=IPTT—1—1 as the result of the comparison, the frame selection circuit 291B outputs the DATA_phy0 from the input path 292a to the output path 293b (Transport Layer 26B). In the case of IPTT_phy1=IPTT—1—0 or IPTT_phy1=IPTT—1—1 as the result of the comparison, the frame selection circuit 291B outputs the DATA_phy1 from the input path 292b to the output path 293b (Transport Layer 26B). On the other hand, in other cases, the DATA frame is not transmitted to the output paths 293a (Transport Layer 26A) and 293b (Transport Layer 26B).
In this way, the DATA frame inputted from either one of the Phys 22A and 22B is transferred to the Transport Layer 26A or 26B including the execution management table 27A or 27B having the execution management information equal to the IPTT of the inputted DATA frame.
Returning again to the flowchart in
In the description above, the IPTT is used as the identification information. However, the TPTT can be used.
The SAS module 20 has address management information managing the SAS address allocated to each of Phys 22A and 22B. The storage device can recognize that it is used as the narrow port configuration or the wide port configuration for each Phy by this address management information.
As described above, according to the first embodiment, the storage device 10, which is basically configured as the narrow port configuration including the plural Phys 22A and 22B, and the Port Layers 25A and 25B, the Transport Layers 26A and 26B, and the execution management tables 27A and 27B for each of the Phys 22A and 22B, includes the data distribution unit 29 provided between the plural Phys 22A and 22B and the Transport Layers 26A and 26B over the plural Phys 22A and 22B. The data distribution unit 29 does not operate in the narrow port configuration, but in the wide port configuration, the data distribution unit 29 distributes the DATA frame inputted from each of the Phys 22A and 22B to the Transport Layer 26A or 26B having the execution management table 27A or 27B to which the corresponding identification information is stored. With this structure, the storage device 10 can be used as the narrow port configuration as well as the wide port configuration.
When the narrow port configuration (dual port configuration) and the wide port configuration can both be covered, the dedicated design is needed for each of the execution management tables 27A and 27B and for each of the Transport Layers 26A and 26B. Therefore, the man-hour involved with the design and review might increase. Since the circuit for the narrow port and the circuit for the wide port have to be provided, the circuit scale increases. Therefore, cost increases, and power consumption during the execution also increases. On the other hand, the storage device according to the first embodiment is basically configured as the narrow port configuration, and only includes the data distribution unit 29 without having plural circuits. Therefore, the first embodiment brings an effect of being capable of realizing the narrow port configuration and the wide port configuration with low cost, compared to the ordinary configuration.
In the first embodiment, the data distribution is performed by using the IPTT or TPTT as the identification information. In the second embodiment, the data distribution is performed by using a specific bit in the TPTT.
The configuration of the storage device 10 according to the second embodiment is almost the same as that in
The number of bits fixedly used can be determined according to the number of the Phys in the wide port (i.e., the number of the execution management tables 27A and 27B). For example, in the wide port configuration having four Phys, two bits are used. In this case, in order to indicate that the command is stored in the first execution management table, the bit [1:0] in the TPTT may be set as “00”; in order to indicate that the command is stored in the second execution management table, the bit [1:0] in the TPTT may be set as “01”; in order to indicate that the command is stored in the third execution management table, the bit [1:0] in the TPTT may be set as “10”; and in order to indicate that the command is stored in the fourth execution management table, the bit [1:0] in the TPTT may be set as “11”.
The data distribution unit 29 has plural frame selection circuits as in the first embodiment. The second embodiment is different from the first embodiment in that each frame selection circuit in the second embodiment compares the specific bit in the TPTT of the received DATA frame and a value set to this frame selection circuit (the value set for identifying the execution management table 27A or 27B mounted to the Transport Layer 26A or 26B to which the frame is to be outputted).
The DATA_phy0 from the input path 292a and the DATA_phy1 from the input path 292b are inputted to the frame selection circuit 291A. In this embodiment, the TPTT of the DATA_phy0 is defined as “TPTT_phy0”, and the TPTT of the DATA_phy1 is defined as “TPTT_phy1”.
The frame selection circuit 291A checks the specific bit in the TPTT_phy0 inputted from the input path 292a and the specific bit in the TPTT_phy1 inputted from the input path 292b.
Specifically, the frame selection circuit 291A compares the specific bit (e.g., the bit [0]) in the TPTT of the inputted DATA frame and the “0” for identifying the Transport Layer 26A that is the destination to which the DATA frame is to be outputted.
In the case of TPTT_phy0[0]=0, the DATA_phy0 is outputted to the Transport Layer 26A via the output path 293a. In the case of TPTT_phy1[0]=0, the DATA_phy1 is outputted to the Transport Layer 26A via the output path 293a. On the other hand, in other cases, the DATA frame is not transmitted to the Transport Layer 26A.
The DATA_phy0, having the TPTT of the “TPTT_phy0”, from the input path 292a and the DATA_phy1, having the TPTT of the “TPTT_phy1”, from the input path 292b are inputted to the frame selection circuit 291B.
The frame selection circuit 291B checks the specific bit in the TPTT_phy0 inputted from the input path 292a and the specific bit in the TPTT_phy1 inputted from the input path 292b.
Specifically, the frame selection circuit 291B compares the specific bit (e.g., the bit [0]) in the TPTT of the inputted DATA frame and the “1” for identifying the Transport Layer 26B that is the destination to which the DATA frame is to be outputted.
In the case of TPTT_phy0[0]=1, the DATA_phy0 is outputted to the Transport Layer 26B via the output path 293b. In the case of TPTT_phy1[0]=1, the DATA_phy1 is outputted to the Transport Layer 26B via the output path 293b. On the other hand, in other cases, the DATA frame is not transmitted to the Transport Layer 26B.
The other process is the same as that in the first embodiment, so that the description will not be repeated.
In the second embodiment, the identification information indicating to which one of the Transport Layers 26A and 26B the target execution management table 27A or 27B is mounted is fixedly set to the TPTT, and the distribution destination is determined only by checking the predetermined position of the TPTT of the DATA frame. Therefore, it is unnecessary to input the IPTT or the TPTT to the data distribution unit 29 from the execution management table 27A or 27B, which process is performed in the first embodiment. In addition, only the specific bit in the TPTT in the received DATA frame is compared. Accordingly, the second embodiment brings an effect of being capable of reducing the circuit scale, compared to the first embodiment.
In the description above, the storage device 10 includes two Phys 22A and 22B. However, the embodiments are not limited thereto. The above-mentioned embodiment is similarly applicable to a storage device 10 having three or more Phys.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.
This application is based upon and claims the benefit of priority from U.S. Provisional Application No. 61/870,475, filed on Aug. 27, 2013; the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61870475 | Aug 2013 | US |