Patent ID: 8417898
Filing Date: 2013-04-09
Classification: G06F

Abstract:
1. A storage control apparatus comprising: at least one first communication control part for communicating with a host apparatus; at least one storage apparatus for storing data that is used by the host apparatus; at least one second communication control part for communicating with the storage apparatus; and at least one microprocessor part, which comprises at least one microprocessor for processing a command received from the host apparatus via the first communication control part and sending a result of this processing to the host apparatus via the first communication control part, wherein the first communication control part comprises: at least one host coupling part, which is coupled to the host apparatus; a protocol control part, which is coupled to the host coupling part, and is used for carrying out communications with the host apparatus in accordance with a predetermined communication protocol; and a communication conversion part, which is coupled to the protocol control part and the microprocessor part, and which communicates with the protocol control part based on a procedure corresponding to a type of the protocol control part, and communicates with the microprocessor part based on a common procedure regardless of the type of the protocol control part, wherein, multiple channel adapter packages serving as the first communication control part are provided, multiple microprocessor packages serving as the microprocessor part are provided, each of the microprocessor packages comprises: multiple microprocessors used for processing the command; and at least one local memory shared by the respective microprocessors, each of the channel adapter packages comprises: multiple communication ports serving as the host coupling part; multiple protocol control circuits serving as the protocol control part; at least one communication conversion circuit serving as the communication conversion part; and at least one memory, which is coupled to the communication conversion circuit, and is used by the communication conversion circuit, the respective channel adapter packages comprise channel adapter packages that use respectively different predetermined communication protocols, the memory inside each of the channel adapter packages is provided with; a real receive queue, which is used for storing the command received via the respective host coupling parts, and is prepared in accordance with the number of the host coupling parts; a real send queue, which is used for storing a response from the respective microprocessor packages, and is prepared for each of the host coupling parts; and a channel-side virtual send queue, which is used, for storing the response parameter prior to the response parameter being stored in any of the real send queues, and is prepared for each of the communication ports in accordance with the number of the microprocessors, the local memory inside each of the microprocessor packages comprises: a virtual receive queue, which is used for storing the command transferred from the real received queue, and is prepared for each of the microprocessors inside the microprocessor package in accordance with the number of the communication ports; a microprocessor-side virtual send queue, is used for storing, the response denoting a processing result of the command executed by any of the microprocessors, and is prepared for each of the microprocessors inside the microprocessor package in accordance with the number of the communication ports, wherein the command from the host apparatus is received by the protocol control circuit inside a predetermined channel adapter package from amnog the channel adapter packages in accordance with the predetermined communication protocol, the protocol control circuit stores the received command in the real receive queue, and also uses a method corresponding to the predetermined communication protocol to notify the communication conversion circuit of the fact that the command has been stored in the real receive queue, the communication conversion circuit, based on an address and an access-destination volume of the command, selects, from among the microprocessors inside the microprocessor packages, one microprocessor that is associated with the address and the access-destination volume, the communication conversion circuit transfers the command stored in the real receive queue to the virtual receive queue that is associated with the selected microprocessor, the selected microprocessor, upon learning that the command has been stored in the virtual receive queue, executes processing in accordance with this command, the selected microprocessor creates the response denoting the processing results of the command, and stores this response in the virtual send queue, the selected microprocessor transfers the response to the channel-side virtual send queue, upon learning that the response has been stored in the channel-side virtual send queue, the communication conversion circuit selects, from among the real send queues, one real send queue that is associated with the microprocessor that has created the response, the communication conversion circuit transfers the response, which has been stored in the channel-side virtual send queue, to the selected real send queue and stores same therein, and the protocol control circuit sends the response to the host apparatus via the host coupling part corresponding to the reel send queue in which the response has been stored.