JP2012133513A - Storage device, control method and control program for storage device - Google Patents

Storage device, control method and control program for storage device Download PDF

Info

Publication number
JP2012133513A
JP2012133513A JP2010284135A JP2010284135A JP2012133513A JP 2012133513 A JP2012133513 A JP 2012133513A JP 2010284135 A JP2010284135 A JP 2010284135A JP 2010284135 A JP2010284135 A JP 2010284135A JP 2012133513 A JP2012133513 A JP 2012133513A
Authority
JP
Japan
Prior art keywords
request data
host
storage
data
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010284135A
Other languages
Japanese (ja)
Inventor
Nobuhiro Kadoi
信裕 門井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010284135A priority Critical patent/JP2012133513A/en
Publication of JP2012133513A publication Critical patent/JP2012133513A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To prevent delay in transmission of data responding to data transmitted from a host device.SOLUTION: In response to request data transmitted from a host device, a storage device executes processing requested by the request data. The storage device comprises: a storage; a processor for executing first processing including storage control and second processing for, in response to the request data transmitted from the host device, transmitting response data responding to the request data to the host device; and a substitute processing unit for executing the second processing of predetermined request data so as to substitute for the processor.

Description

本発明は、ストレージ装置、ストレージ装置の制御方法及び制御プログラムに関する。   The present invention relates to a storage apparatus, a storage apparatus control method, and a control program.

ドライブ装置は、それ自体が単独で使用されることはなく、ホストと接続されて使用される。ドライブ装置としては、例えば、光ディスク記録再生装置及びハードディスク装置等がある。ホストとしては、例えば、PC(Personal Computer)、レコーダー及びプレーヤー等がある。   The drive device is not used by itself, but is used connected to the host. Examples of the drive device include an optical disk recording / reproducing device and a hard disk device. Examples of the host include a PC (Personal Computer), a recorder, and a player.

ディスクから読み込んだデータのドライブ装置からホストへの送信、又は、ディスクに書き込むデータのドライブ装置におけるホストからの受信は、I/Fを介して行われる。このような、I/Fの規格の一つとして、SATA(Serial Advanced Technology Attachment)がある。この規格では、3つの層によってデータを転送する制御が行われる。図5に、SATA規格において規定される3つの層を示す。3つの層として、トランスポート層(Transport Layer)、リンク層(Link Layer)及び物理層(PHY Layer)が規定されている。   Transmission of data read from the disk from the drive device to the host or reception of data to be written on the disk from the host in the drive device is performed via the I / F. One of such I / F standards is SATA (Serial Advanced Technology Attachment). In this standard, data transfer is controlled by three layers. FIG. 5 shows three layers defined in the SATA standard. As the three layers, a transport layer, a link layer, and a physical layer are defined.

トランスポート層は、FIS(Frame Information Structure)の生成、及び、順序(プロトコル)の制御を行う。
リンク層は、伝送路のアービトレーション、フロー制御、並びに、FIS及び制御コードのビット列への変換(8/10b変換)を行う。
物理層は、ビット列をシリアル変換して転送する。つまり、実際の通信は、物理層において行われる。
The transport layer performs generation of FIS (Frame Information Structure) and order (protocol) control.
The link layer performs transmission path arbitration, flow control, and conversion of FIS and control codes into bit strings (8 / 10b conversion).
The physical layer serially converts and transfers the bit string. That is, actual communication is performed in the physical layer.

このようなドライブ装置の動作について説明する。
ドライブ装置は、トランスポート層で管理されるFISの種類によって、その動作が制御される。FISが送信中か、又は、受信中か等の管理は、リンク層において、プリミティブ(Primitive)と呼ばれる制御コードによって行われる。
The operation of such a drive device will be described.
The operation of the drive device is controlled by the type of FIS managed in the transport layer. Whether the FIS is being transmitted or received is managed by a control code called a primitive in the link layer.

具体的に、ドライブ装置とホストとの間におけるFISの送受信例について説明する。ここでは、ホストからドライブ装置にFISを送信する場合について説明する。   Specifically, an example of FIS transmission / reception between the drive device and the host will be described. Here, a case where the FIS is transmitted from the host to the drive device will be described.

FISの転送が行われる前は、ホストとドライブ装置との間で、SYNC Primitiveが送受信されている。SYNC Primitiveは、バスがアイドル状態であることを示すプリミティブである。ホストは、FISを送信する場合、FISの送信要求となるX_RDY Primitiveをドライブ装置に送信する。ドライブ装置は、ホストからX_RDY Primitiveを受信した場合、FISの受信許可を通知するR_RDY Primitiveをホストに送信する。これによって、ドライブ装置が受信許可状態となるため、ホストは、FISのドライブ装置への送信を開始する。   Before the FIS transfer is performed, SYNC Primitive is transmitted and received between the host and the drive device. SYNC Primitive is a primitive that indicates that the bus is idle. When transmitting the FIS, the host transmits X_RDY Primitive, which is a FIS transmission request, to the drive device. When the X_RDY Primitive is received from the host, the drive device transmits R_RDY Primitive that notifies FIS reception permission to the host. As a result, the drive apparatus is in a reception-permitted state, and the host starts transmission of the FIS to the drive apparatus.

ドライブ装置は、ホストからFISを正常に受信した場合、R_IP Primitiveをホストに送信する。これによって、FISの送信が終了するため、ホストは、FISの送信終了を通知するWTRM Primitiveをドライブ装置に送信する。ドライブ装置は、ホストからWTRM Primitiveを受信した場合、受信完了を通知するR_OK Primitiveをホストに送信する。この後は、再び、ホストとドライブ装置とで、SYNC Primitiveの送受信を開始する。そして、ホスト及びドライブ装置は、次のFISの送受信を待つことになる。   When the drive apparatus normally receives the FIS from the host, the drive apparatus transmits R_IP Primitive to the host. As a result, the FIS transmission ends, and therefore the host transmits a WTRM Primitive that notifies the FIS transmission end to the drive device. When the drive apparatus receives WTRM Primitive from the host, the drive apparatus transmits R_OK Primitive to notify the reception completion to the host. Thereafter, transmission and reception of SYNC Primitive is again started between the host and the drive device. Then, the host and the drive device wait for transmission / reception of the next FIS.

以上に、ホストからドライブ装置にFISが送信される場合について説明したが、FISの送信方向が変わった場合には、それに合わせて、上記の各プリミティブが逆方向に送信されることになる。   As described above, the case where the FIS is transmitted from the host to the drive device has been described. However, when the transmission direction of the FIS changes, each of the primitives described above is transmitted in the reverse direction.

通常、ドライブ装置は、ホストからのリセット及びATA/ATAPIコマンド発行等の要求に応じて、要求されたデータやTask File Registerの内容を示す情報(以下、「Task File Register情報」とする)をホストに送信する。このようなホストからの要求は、SATA規格で定められた仕様に基づいて行われる。この仕様では、ホストは、ドライブ装置からの応答を待って、ドライブ装置に対する新たな要求を発行するものとして規定されている。   Normally, the drive device receives requested data and information indicating the contents of the Task File Register (hereinafter referred to as “Task File Register information”) in response to a request from the host, such as reset and ATA / ATAPI command issuance. Send to. Such a request from the host is made based on a specification defined in the SATA standard. In this specification, the host is defined as waiting for a response from the drive device and issuing a new request to the drive device.

しかしながら、ホストには、SATA規格に違反した場合、または、Port Multiplierを使用した場合には、ドライブ装置からの応答を待たずに、次の要求を発行してくるものがある。つまり、ホストには、十分な時間を待たずに、次の要求を発行してくるものがある。ドライブ装置は、このようなホストに対して、ホストが次の要求を発行してくるまでの時間内に応答ができないと、想定していないタイミングでホストからの次の要求を受けることになる。その結果、ホスト及びドライブ装置で扱うデータに齟齬が生じてしまい、ホスト又はドライブ装置が正常に動作できなくなってしまうという問題がある。   However, some hosts issue the next request without waiting for a response from the drive device when they violate the SATA standard or use Port Multiplier. That is, some hosts issue the next request without waiting for sufficient time. If the drive device cannot respond to such a host within the time until the host issues the next request, the drive device receives the next request from the host at an unexpected timing. As a result, there is a problem in that the data handled by the host and the drive device is flawed and the host or the drive device cannot operate normally.

そのような問題が発生するケースについて、図6を参照して具体的に説明する。図6Aは、正常時のデータ送受信の流れを示す図であり、図6Bは、問題発生時のデータ送受信の流れを示す図である。なお、特に詳述しないが、図6の説明におけるFISは、上述した送信手順によって送信される。   A case where such a problem occurs will be specifically described with reference to FIG. FIG. 6A is a diagram illustrating a flow of data transmission / reception at a normal time, and FIG. 6B is a diagram illustrating a flow of data transmission / reception when a problem occurs. Although not described in detail, the FIS in the description of FIG. 6 is transmitted by the transmission procedure described above.

まず、図6Aの正常時のデータ送受信について説明する。
ホストからCOMRESETが送信された場合、ドライブ装置は、Task File Register情報を含むRegister FISを送信する。ホストからのCOMRESETは、上述したホストからのリセットに相当する。次に、ホストは、ドライブ装置にATA/ATAPIコマンドを発行する場合、ATA/ATAPIコマンドを示すFISをドライブ装置に送信する。ドライブ装置は、ホストからのFISを受信した場合、そのFISが示すATA/ATAPIコマンドに応答するFISをホストに送信する。
First, normal data transmission / reception in FIG. 6A will be described.
When the COMRESET is transmitted from the host, the drive apparatus transmits a Register FIS including Task File Register information. COMRESET from the host corresponds to the above-described reset from the host. Next, when the host issues an ATA / ATAPI command to the drive device, the host transmits an FIS indicating the ATA / ATAPI command to the drive device. When the drive apparatus receives the FIS from the host, the drive apparatus transmits an FIS responding to the ATA / ATAPI command indicated by the FIS to the host.

続いて、図6Bの問題発生時のデータ送受信について説明する。
ホストからCOMRESETが送信された場合、ドライブ装置は、Task File Register情報を含むFISを送信しようとする。しかし、上述したように、ホストには、ドライブ装置からの応答を待たずに、次の要求を発行してくるものがある。このようなホストの場合、ドライブ装置からのFISの送信が遅れてしまうと、ドライブ装置からFISを送信する前に、ホストから次のFISが送信されてしまうことがある。その後に、ドライブ装置からFISを送信すると、ホストが次に送信したFISが示すATA/ATAPIコマンドに応答するFISでなく、ホストからのリセットに応答するFISが送信されてしまうことになる。その結果、ホスト又はドライブ装置が正常に動作できなくなってしまう。
Next, data transmission / reception when the problem of FIG. 6B occurs will be described.
When the COMRESET is transmitted from the host, the drive device tries to transmit the FIS including the Task File Register information. However, as described above, some hosts issue the next request without waiting for a response from the drive device. In the case of such a host, if the transmission of the FIS from the drive device is delayed, the next FIS may be transmitted from the host before the FIS is transmitted from the drive device. After that, when the FIS is transmitted from the drive device, the FIS responding to the reset from the host is transmitted instead of the FIS responding to the ATA / ATAPI command indicated by the FIS transmitted next by the host. As a result, the host or drive device cannot operate normally.

ここで、ドライブ装置からのFISの送信が遅れる要因として、ドライブ装置において、FISの送受信を制御するソフトウェアの動作遅延がある。一般的に、ドライブ装置は、CPU(Central Processing Unit)を有する。CPUは、ホストに対するFISの送受信を制御するソフトウェアと、ディスクを制御するソフトウェア等の複数のソフトウェアを実行する。そのため、ホストに対するFISの送受信を制御するソフトウェア以外のソフトウェアにCPUが占有され続けることによって、FISの送信が遅延してしまうことがあるという問題がある。   Here, as a factor that delays transmission of FIS from the drive device, there is an operation delay of software that controls transmission and reception of FIS in the drive device. Generally, a drive device has a CPU (Central Processing Unit). The CPU executes a plurality of software such as software for controlling transmission / reception of FIS to / from the host and software for controlling the disk. Therefore, there is a problem in that the FIS transmission may be delayed when the CPU continues to be occupied by software other than the software that controls the transmission / reception of the FIS to / from the host.

つまり、ハードディスクや光ディスク等のストレージを備えたストレージ装置において、ホスト装置から送信されたデータに応答するデータの送信が遅延してしまうという場合があるという問題がある。   That is, there is a problem that in a storage apparatus having a storage such as a hard disk or an optical disk, transmission of data in response to data transmitted from the host apparatus may be delayed.

本発明の第1の態様にかかるストレージ装置は、ホスト装置から送信された要求データに応じて、当該要求データによって要求された処理を実行するストレージ装置であって、ストレージと、前記ストレージの制御を含む第1の処理と、前記ホスト装置から送信された要求データに応じて、当該要求データに応答する応答データを前記ホスト装置に送信する第2の処理と、を実行するプロセッサと、前記ホスト装置から送信される要求データのうち、所定の要求データについて、前記プロセッサを代替して前記第2の処理を実行する代替処理部と、を備えたものである。   A storage device according to a first aspect of the present invention is a storage device that executes processing requested by request data in accordance with request data transmitted from a host device, and controls the storage and the storage. A processor that executes a first process including: a second process for transmitting response data to the host apparatus in response to the request data transmitted from the host apparatus; and the host apparatus Among the request data transmitted from the above, a predetermined processing data is provided with an alternative processing unit that executes the second processing instead of the processor.

本発明の第2の態様にかかるストレージ装置の制御方法は、ホスト装置から送信された要求データに応じて、当該要求データによって要求された処理を実行するストレージ装置の制御方法であって、プロセッサが、ストレージの制御を含む第1の処理と、前記ホスト装置から送信された要求データに応じて当該要求データに応答する応答データを前記ホスト装置に送信する第2の処理と、を実行し、前記処理の実行では、前記ホスト装置からの所定の要求データの送信を検出し、前記所定の要求データを検出した場合に、当該所定の要求データについて代替処理部が前記プロセッサを代替して前記第2の処理を実行するものである。   A storage apparatus control method according to a second aspect of the present invention is a storage apparatus control method for executing processing requested by request data in response to request data transmitted from a host apparatus. Performing a first process including storage control and a second process of transmitting response data to the host device in response to the request data transmitted from the host device, and In the execution of the process, when transmission of predetermined request data from the host device is detected, and the predetermined request data is detected, an alternative processing unit substitutes the processor for the predetermined request data. The process is executed.

本発明の第3の態様にかかる制御プログラムは、ホスト装置から送信された要求データに応じて、当該要求データによって要求された処理を実行するストレージ装置に、ストレージの制御を含む第1の処理と、前記ホスト装置から送信された要求データに応じて当該要求データに応答する応答データを前記ホスト装置に送信する第2の処理と、を実行する第1のプロセッサと共に備えられた第2のプロセッサに実行させる制御プログラムであって、前記ホスト装置からの所定の要求データの送信を検出する処理と、前記所定の要求データを検出した場合に、当該所定の要求データについて前記第1のプロセッサを代替して前記第2の処理を実行する処理と、を前記第2のプロセッサに実行させるものである。   The control program according to the third aspect of the present invention includes a first process including storage control in a storage apparatus that executes a process requested by the request data in accordance with the request data transmitted from the host apparatus. A second processor provided together with a first processor for executing a second process of transmitting response data responding to the request data to the host device in response to the request data transmitted from the host device; A control program to be executed, the process for detecting transmission of predetermined request data from the host device, and replacing the first processor for the predetermined request data when the predetermined request data is detected And causing the second processor to execute a process for executing the second process.

上述した本発明の各態様によれば、所定の要求データについて、プロセッサで実行される処理に影響されることなく、その要求データに応答する応答データをホスト装置に送信する処理を実行することができる。   According to each aspect of the present invention described above, it is possible to execute processing for transmitting response data to respond to request data to the host device without being affected by processing executed by the processor for predetermined request data. it can.

上述した本発明の各態様によれば、ホスト装置から送信されたデータに応答するデータの送信の遅延を防止することができるストレージ装置、ストレージ装置の制御方法及び制御プログラムを提供することができる。   According to each aspect of the present invention described above, it is possible to provide a storage apparatus, a storage apparatus control method, and a control program that can prevent a delay in data transmission in response to data transmitted from a host apparatus.

本発明の実施の形態にかかるストレージシステムの構成図である。1 is a configuration diagram of a storage system according to an embodiment of the present invention. FIG. 本発明の実施の形態にかかるドライブ装置の起動シーケンスにおける処理を示すフローチャートである。It is a flowchart which shows the process in the starting sequence of the drive device concerning embodiment of this invention. 本発明の実施の形態にかかるOOBシーケンス判定回路の処理を示すフローチャートである。It is a flowchart which shows the process of the OOB sequence determination circuit concerning embodiment of this invention. 本発明の実施の形態にかかる起動シーケンサ管理回路の処理を示すフローチャートである。It is a flowchart which shows the process of the starting sequencer management circuit concerning embodiment of this invention. 本発明の実施の形態にかかるSATA規格において規定されている各層を説明するための図である。It is a figure for demonstrating each layer prescribed | regulated in the SATA specification concerning embodiment of this invention. 本発明の実施の形態にかかる課題を説明するための図である。It is a figure for demonstrating the subject concerning embodiment of this invention.

図1を参照して、本発明の実施の形態にかかるストレージシステム1の構成について説明する。図1は、本発明の実施の形態にかかるストレージシステム1の構成図である。   The configuration of the storage system 1 according to the embodiment of the present invention will be described with reference to FIG. FIG. 1 is a configuration diagram of a storage system 1 according to an embodiment of the present invention.

ストレージシステム1は、ドライブ装置2及びホスト3を有する。ドライブ装置2は、LSI(Large Scale Integration)10、メモリ11、ドライバ12及びメカユニット13を有する。LSI10は、CPU20及びDSP(Digital Signal Processor)21を有する。DSP21は、OOBシーケンス判定回路30、プリミティブ・FIS送信/受信制御回路31及び起動シーケンサ管理回路32を有する。ドライブ装置2及びホスト3は、SATA規格のインタフェースによって相互に接続される。   The storage system 1 has a drive device 2 and a host 3. The drive device 2 includes an LSI (Large Scale Integration) 10, a memory 11, a driver 12, and a mechanical unit 13. The LSI 10 includes a CPU 20 and a DSP (Digital Signal Processor) 21. The DSP 21 includes an OOB sequence determination circuit 30, a primitive / FIS transmission / reception control circuit 31, and an activation sequencer management circuit 32. The drive device 2 and the host 3 are connected to each other by an SATA standard interface.

ドライブ装置2は、ストレージを有するストレージ装置である。ストレージは、例えば、光ディスク、ハードディスク、又は、メモリ等である。つまり、ドライブ装置2は、例えば、光ディスクドライブ、HDD(Hard Disk Drive)、又は、SSD(Solid State Drive)等である。なお、本実施の形態では、ドライブ装置2が光ディスクドライブである場合について例示する。   The drive device 2 is a storage device having a storage. The storage is, for example, an optical disc, a hard disk, or a memory. That is, the drive device 2 is, for example, an optical disk drive, an HDD (Hard Disk Drive), or an SSD (Solid State Drive). In the present embodiment, the case where the drive device 2 is an optical disk drive is illustrated.

ドライブ装置2は、ホスト3から送信された要求データに応じて、要求データによって要求された処理を実行する。要求データは、例えば、OOB信号、Align及びFIS等である。OOB信号は、例えば、COMRESET、COMMINT及びCOMWAKE等である。任意の処理を要求するFISは、例えば、ATA/ATAPIコマンドを示すFISである。ドライブ装置2は、例えば、ホスト3からの要求に応じて、ドライブ装置2のリセットや、ストレージに対する読み書き等のSATA規格で規定された処理を実行する。   The drive device 2 executes the process requested by the request data in accordance with the request data transmitted from the host 3. The request data is, for example, an OOB signal, Align, FIS, or the like. The OOB signal is, for example, COMRESET, COMMIT, COMWAKE or the like. The FIS requesting arbitrary processing is, for example, an FIS indicating an ATA / ATAPI command. For example, in response to a request from the host 3, the drive device 2 executes processing stipulated by the SATA standard such as resetting the drive device 2 and reading / writing from / to the storage.

ホスト3は、任意の処理を要求する要求データをドライブ装置2に送信し、ドライブ装置2の実施結果を取得する装置である。
LSI10は、SATA規格における制御で使用されるTask File Register(図示せず)や、ディスクから取得した信号に対する処理の機能、メモリ制御用の機能を有する。
メモリ11は、CPU20が実行するプログラムや、CPU20が演算するデータ、ディスクから取得したデータが格納される。
The host 3 is a device that transmits request data for requesting arbitrary processing to the drive device 2 and acquires an execution result of the drive device 2.
The LSI 10 has a task file register (not shown) used for control in the SATA standard, a processing function for a signal acquired from a disk, and a memory control function.
The memory 11 stores a program executed by the CPU 20, data calculated by the CPU 20, and data acquired from the disk.

ドライバ12は、CPU20から出力された制御情報に基づいて、メカユニット13を制御する。ドライバ12は、メカユニット13の制御内容を示す制御情報をメカユニット13に出力することによって、メカユニット13を制御する。ドライバ12は、例えば、光ディスク(図示せず)に対するレンズの位置を制御する。
メカユニット13は、CPU20及びドライバ12から出力された制御情報に基づいて、光ディスクに対するデータの読み書きを行う。
The driver 12 controls the mechanical unit 13 based on the control information output from the CPU 20. The driver 12 controls the mechanical unit 13 by outputting control information indicating the control contents of the mechanical unit 13 to the mechanical unit 13. The driver 12 controls the position of the lens with respect to the optical disc (not shown), for example.
The mechanical unit 13 reads / writes data from / to the optical disc based on the control information output from the CPU 20 and the driver 12.

CPU20は、ホスト3に対してデータを送受信する処理や、光ディスクを制御する処理を実行する。CPU20は、ホスト3に対してデータを送受信する処理をCPU20に実行させるプログラムと、光ディスクを制御する処理をCPU20に実行させるプログラムと、を実行することによって、これらの処理を実行する。例えば、CPU20は、ホスト3からATA/ATAPIコマンドを示すFISを受信した場合に、そのFISが示すATA/ATAPIコマンドに応答するFISを生成してホスト3に送信する。具体的には、CPU20は、生成したFISと共に、生成したFISの送信を要求する制御情報をプリミティブ・FIS送信/受信制御回路31に出力することによって、プリミティブ・FIS送信/受信制御回路31からホスト3にFISを送信する。   The CPU 20 executes processing for transmitting / receiving data to / from the host 3 and processing for controlling the optical disc. The CPU 20 executes these processes by executing a program for causing the CPU 20 to execute a process for transmitting / receiving data to / from the host 3 and a program for causing the CPU 20 to execute a process for controlling the optical disk. For example, when receiving an FIS indicating an ATA / ATAPI command from the host 3, the CPU 20 generates an FIS responding to the ATA / ATAPI command indicated by the FIS and transmits the FIS to the host 3. Specifically, the CPU 20 outputs control information for requesting transmission of the generated FIS to the primitive / FIS transmission / reception control circuit 31 together with the generated FIS, so that the host / host control unit 31 sends the control information to the host. FIS is sent to 3.

また、CPU20は、メカユニット13を制御する。CPU20は、メカユニット13の制御内容を示す制御情報をメカユニット13に出力する。CPU20は、例えば、メカユニット13が光ディスクに対して照射する光の強度、レンズの傾きを調整する。   Further, the CPU 20 controls the mechanical unit 13. The CPU 20 outputs control information indicating the control contents of the mechanical unit 13 to the mechanical unit 13. The CPU 20 adjusts, for example, the intensity of light that the mechanical unit 13 irradiates the optical disc and the tilt of the lens.

DSP21は、ドライブ装置2の起動シーケンスにおける処理や、データの送受信処理を実行する。DSP21は、代替処理部に対応する。
OOB(Out Of Band)シーケンス判定回路30は、OOBシーケンスの進行度合いを監視する。OOBシーケンス判定回路30は、OOBシーケンスの進行度合いに応じて、OOB信号及びAlignを生成してホスト3に送信する。OOBシーケンス判定回路30は、生成したOOB信号又はAlignと共に、生成したOOB信号又はAlignの送信を要求するOOB信号・プリミティブ情報をプリミティブ・FIS送信/受信制御回路31に出力することによって、プリミティブ・FIS送信/受信制御回路31からホスト3にOOB信号又はAlign送信する。
The DSP 21 executes processing in the startup sequence of the drive device 2 and data transmission / reception processing. The DSP 21 corresponds to an alternative processing unit.
The OOB (Out Of Band) sequence determination circuit 30 monitors the progress of the OOB sequence. The OOB sequence determination circuit 30 generates an OOB signal and Align according to the progress of the OOB sequence, and transmits the OOB signal and Align to the host 3. The OOB sequence determination circuit 30 outputs the generated OOB signal or Align, together with the generated OOB signal or Align, to the primitive / FIS transmission / reception control circuit 31 by outputting the OOB signal / primitive information requesting transmission of the generated OOB signal or Align. The OOB signal or Align is transmitted from the transmission / reception control circuit 31 to the host 3.

プリミティブ・FIS送信/受信制御回路31は、ホスト3に対して、OOB信号、プリミティブ及びFIS等のデータの送受信を行う。プリミティブ・FIS送信/受信制御回路31は、CPU20から出力された制御情報に基づいて、FISをホスト3に送信する。プリミティブ・FIS送信/受信制御回路31は、OOBシーケンス判定回路30から出力されたOOB信号・プリミティブ情報に基づいて、OOB信号又はAlignをホスト3に送信する。プリミティブ・FIS送信/受信制御回路31は、起動シーケンサ管理回路32から出力されたFIS情報に基づいて、FISをホスト3に送信する。   The primitive / FIS transmission / reception control circuit 31 transmits / receives data such as an OOB signal, primitive, and FIS to the host 3. The primitive / FIS transmission / reception control circuit 31 transmits the FIS to the host 3 based on the control information output from the CPU 20. The primitive / FIS transmission / reception control circuit 31 transmits an OOB signal or Align to the host 3 based on the OOB signal / primitive information output from the OOB sequence determination circuit 30. The primitive / FIS transmission / reception control circuit 31 transmits the FIS to the host 3 based on the FIS information output from the activation sequencer management circuit 32.

起動シーケンサ管理回路32は、ドライブ装置2の起動シーケンスの進行度合いを監視する。起動シーケンサ管理回路32は、OOBシーケンスの進行度合いに応じて、ドライブ装置2の動作モードの移行、FISの生成、及び、生成したFISのホスト3への送信を実行する。起動シーケンサ管理回路32は、生成したFISと共に、生成したFISの送信を要求するFIS情報をプリミティブ・FIS送信/受信制御回路31に出力することによって、プリミティブ・FIS送信/受信制御回路31からホスト3にFISを送信する。   The activation sequencer management circuit 32 monitors the progress of the activation sequence of the drive device 2. The activation sequencer management circuit 32 executes transition of the operation mode of the drive device 2, generation of FIS, and transmission of the generated FIS to the host 3 according to the progress degree of the OOB sequence. The activation sequencer management circuit 32 outputs the generated FIS and FIS information requesting transmission of the generated FIS to the primitive / FIS transmission / reception control circuit 31, so that the host 3 Send FIS to

続いて、図2〜図4を参照して、本発明の実施の形態にかかるストレージシステム1の処理について説明する。図2は、本発明の実施の形態にかかるドライブ装置2の起動シーケンスにおける処理を示すフローチャートである。図3は、本発明の実施の形態にかかるOOB(Out Of Band)シーケンス判定回路30の処理を示すフローチャートである。図4は、本発明の実施の形態にかかる起動シーケンサ管理回路32の処理を示すフローチャートである。   Subsequently, processing of the storage system 1 according to the embodiment of the present invention will be described with reference to FIGS. FIG. 2 is a flowchart showing processing in the startup sequence of the drive device 2 according to the embodiment of the present invention. FIG. 3 is a flowchart showing a process of the OOB (Out Of Band) sequence determination circuit 30 according to the embodiment of the present invention. FIG. 4 is a flowchart showing processing of the activation sequencer management circuit 32 according to the embodiment of the present invention.

まず、ドライブ装置2及びホスト3は、相互に接続されて起動された場合、SATAの通信を確立するために、OOBシーケンスを開始する(S1)。OOBシーケンス判定回路30は、OOBシーケンス管理番号がどのような値となっているかを判定する(S101)。ここでは、OOBシーケンス管理番号の初期値が"0"である場合について説明する。OOBシーケンス管理番号は、例えば、OOBシーケンス判定回路30が有する記憶装置に格納される。記憶装置は、例えば、メモリ又はレジスタ等である。OOBシーケンス管理番号は、例えば、ドライブ装置2の起動時に、OOBシーケンス判定回路30によって初期値に初期化される。   First, when the drive device 2 and the host 3 are connected to each other and activated, an OOB sequence is started in order to establish SATA communication (S1). The OOB sequence determination circuit 30 determines what value the OOB sequence management number has (S101). Here, a case where the initial value of the OOB sequence management number is “0” will be described. The OOB sequence management number is stored in, for example, a storage device included in the OOB sequence determination circuit 30. The storage device is, for example, a memory or a register. The OOB sequence management number is initialized to an initial value by the OOB sequence determination circuit 30 when the drive device 2 is activated, for example.

OOBシーケンス管理番号が"0"である場合、OOBシーケンス判定回路30は、OOBシーケンスが開始されたか否かを判定する。具体的には、ホスト3からCOMRESETが送信されたか否かを判定する(S102)。   When the OOB sequence management number is “0”, the OOB sequence determination circuit 30 determines whether or not the OOB sequence is started. Specifically, it is determined whether or not a COMRESET is transmitted from the host 3 (S102).

ホスト3からCOMRESETが送信されていない場合(S102:NO)、OOBシーケンス判定回路30は、ホストからCOMRESETが送信されたか否かの判定を継続して実行する(S102)。   When the COMRESET has not been transmitted from the host 3 (S102: NO), the OOB sequence determination circuit 30 continues to determine whether the COMRESET has been transmitted from the host (S102).

ホスト3からCOMRESETが送信された場合(S102:YES)、OOBシーケンス判定回路30は、COMINITをホスト3に送信する(S103)。具体的には、OOBシーケンス判定回路30は、COMINITの送信を要求するOOB信号・プリミティブ情報をプリミティブ・FIS送信/受信制御回路31に出力する。プリミティブ・FIS送信/受信制御回路31は、OOBシーケンス判定回路30からのOOB信号・プリミティブ情報に応じて、COMINITをホスト3に送信する。OOBシーケンス判定回路30は、OOBシーケンス管理番号を"1"に更新する(S104)。OOBシーケンス判定回路30は、更新後のOOBシーケンス管理番号を起動シーケンサ管理回路32に出力する。   When COMRESET is transmitted from the host 3 (S102: YES), the OOB sequence determination circuit 30 transmits COMINIT to the host 3 (S103). Specifically, the OOB sequence determination circuit 30 outputs an OOB signal / primitive information requesting transmission of COMINIT to the primitive / FIS transmission / reception control circuit 31. The primitive / FIS transmission / reception control circuit 31 transmits COMINIT to the host 3 in accordance with the OOB signal / primitive information from the OOB sequence determination circuit 30. The OOB sequence determination circuit 30 updates the OOB sequence management number to “1” (S104). The OOB sequence determination circuit 30 outputs the updated OOB sequence management number to the activation sequencer management circuit 32.

一方、起動シーケンサ管理回路32は、起動シーケンス管理番号がどのような値となっているかを判定する(S201)。ここで、起動シーケンス管理番号の初期値が"0"である場合について説明する。起動シーケンス管理番号は、例えば、起動シーケンス管理番号が有する記憶装置に格納される。起動シーケンス管理番号は、例えば、ドライブ装置2の起動時や、ホストとの通信が確立した後、ホストとの通信が遮断された場合に、起動シーケンサ管理回路32によって初期値に初期化される。   On the other hand, the activation sequencer management circuit 32 determines what value the activation sequence management number is (S201). Here, a case where the initial value of the activation sequence management number is “0” will be described. The activation sequence management number is stored in, for example, a storage device included in the activation sequence management number. The activation sequence management number is initialized to an initial value by the activation sequencer management circuit 32, for example, when the drive device 2 is activated or when communication with the host is interrupted after communication with the host is established.

起動シーケンス管理番号が"0"である場合、起動シーケンサ管理回路32は、OOBシーケンスが開始されたか否かを判定する(S202)。具体的には、OOBシーケンス管理番号が"1"となったか否かを判定する。   When the activation sequence management number is “0”, the activation sequencer management circuit 32 determines whether or not the OOB sequence is started (S202). Specifically, it is determined whether or not the OOB sequence management number is “1”.

OOBシーケンス管理番号が"1"となっていない場合(S202:NO)、起動シーケンサ管理回路32は、OOBシーケンスが開始されたか否かの判定を継続して実行する(S202)。
OOBシーケンス管理番号が"1"となった場合(S202:YES)、起動シーケンサ管理回路32は、起動シーケンス管理番号を"1"に更新する(S203)。ここで、起動シーケンサ管理回路32は、OOBシーケンス判定回路30から"1"に更新されたOOBシーケンス管理番号が出力された場合、OOBシーケンス管理番号が"1"となったと判定する。
When the OOB sequence management number is not “1” (S202: NO), the activation sequencer management circuit 32 continues to determine whether or not the OOB sequence has been started (S202).
When the OOB sequence management number becomes “1” (S202: YES), the activation sequencer management circuit 32 updates the activation sequence management number to “1” (S203). Here, when the OOB sequence management number updated to “1” is output from the OOB sequence determination circuit 30, the activation sequencer management circuit 32 determines that the OOB sequence management number is “1”.

ステップS104の実行後、OOBシーケンス判定回路30は、再び、OOBシーケンス管理番号を判定する(S101)。OOBシーケンス管理番号が"1"である場合、OOBシーケンス判定回路30は、ホスト3からCOMWAKEが送信されたか否かを判定する(S105)。   After execution of step S104, the OOB sequence determination circuit 30 determines the OOB sequence management number again (S101). When the OOB sequence management number is “1”, the OOB sequence determination circuit 30 determines whether COMWAKE is transmitted from the host 3 (S105).

ホスト3からCOMWAKEが送信されていない場合(S105:NO)、OOBシーケンス判定回路30は、ホスト3からCOMWAKEが送信されたか否かの判定を継続して実行する(S105)。   When COMWAKE has not been transmitted from the host 3 (S105: NO), the OOB sequence determination circuit 30 continues to determine whether COMWAKE has been transmitted from the host 3 (S105).

ホスト3からCOMWAKEが送信された場合(S105:YES)、OOBシーケンス判定回路30は、COMWAKEをホスト3に送信する(S106)。具体的には、OOBシーケンス判定回路30は、COMWAKEの送信を要求するOOB信号・プリミティブ情報をプリミティブ・FIS送信/受信制御回路31に出力する。プリミティブ・FIS送信/受信制御回路31は、OOBシーケンス判定回路30からのOOB信号・プリミティブ情報に応じて、COMWAKEをホスト3に送信する。   When COMWAKE is transmitted from the host 3 (S105: YES), the OOB sequence determination circuit 30 transmits COMWAKE to the host 3 (S106). Specifically, the OOB sequence determination circuit 30 outputs an OOB signal / primitive information requesting transmission of COMWAKE to the primitive / FIS transmission / reception control circuit 31. The primitive / FIS transmission / reception control circuit 31 transmits COMWAKE to the host 3 in accordance with the OOB signal / primitive information from the OOB sequence determination circuit 30.

また、OOBシーケンス判定回路30は、Alignをホスト3に送信する(S107)。具体的には、OOBシーケンス判定回路30は、Alignの送信を要求するOOB信号・プリミティブ情報をプリミティブ・FIS送信/受信制御回路31に出力する。プリミティブ・FIS送信/受信制御回路31は、OOBシーケンス判定回路30からのOOB信号・プリミティブ情報に応じて、Alignをホスト3に送信する。OOBシーケンス判定回路30は、OOBシーケンス管理番号を"2"に更新する(S108)。OOBシーケンス判定回路30は、更新後のOOBシーケンス管理番号を起動シーケンサ管理回路32に出力する。   Further, the OOB sequence determination circuit 30 transmits Align to the host 3 (S107). Specifically, the OOB sequence determination circuit 30 outputs an OOB signal / primitive information requesting transmission of Align to the primitive / FIS transmission / reception control circuit 31. The primitive / FIS transmission / reception control circuit 31 transmits Align to the host 3 in accordance with the OOB signal / primitive information from the OOB sequence determination circuit 30. The OOB sequence determination circuit 30 updates the OOB sequence management number to “2” (S108). The OOB sequence determination circuit 30 outputs the updated OOB sequence management number to the activation sequencer management circuit 32.

OOBシーケンス判定回路30は、再び、OOBシーケンス管理番号を判定する(S101)。OOBシーケンス管理番号が"2"である場合、OOBシーケンス判定回路30は、ホスト3からAlignが送信されたか否かを判定する(S109)。   The OOB sequence determination circuit 30 again determines the OOB sequence management number (S101). When the OOB sequence management number is “2”, the OOB sequence determination circuit 30 determines whether or not Align is transmitted from the host 3 (S109).

ホスト3からAlignが送信されていない場合(S109:NO)、OOBシーケンス判定回路30は、ホスト3からAlignが送信されたか否かの判定を継続して実行する(S109)。   When the Align is not transmitted from the host 3 (S109: NO), the OOB sequence determination circuit 30 continues to determine whether the Align is transmitted from the host 3 (S109).

ホスト3からAlignが送信された場合(S109:YES)、OOBシーケンスが完了したことになる。その場合、OOBシーケンス判定回路30は、SYNC Primitiveのホスト3への送信を開始する(S2、S110)。具体的には、OOBシーケンス判定回路30は、SYNC Primitiveの送信の開始を要求するOOB信号・プリミティブ情報をプリミティブ・FIS送信/受信制御回路31に出力する。プリミティブ・FIS送信/受信制御回路31は、OOBシーケンス判定回路30からのOOB信号・プリミティブ情報に応じて、SYNC Primitiveのホスト3への送信を開始する。OOBシーケンス判定回路30は、OOBシーケンス管理番号を"3"に更新する(S111)。OOBシーケンス判定回路30は、更新後のOOBシーケンス管理番号を起動シーケンサ管理回路32に出力する。   When the Align is transmitted from the host 3 (S109: YES), the OOB sequence is completed. In that case, the OOB sequence determination circuit 30 starts transmission of the SYNC Primitive to the host 3 (S2, S110). Specifically, the OOB sequence determination circuit 30 outputs an OOB signal and primitive information requesting the start of transmission of SYNC Primitive to the primitive and FIS transmission / reception control circuit 31. The primitive / FIS transmission / reception control circuit 31 starts transmission of the SYNC Primitive to the host 3 according to the OOB signal / primitive information from the OOB sequence determination circuit 30. The OOB sequence determination circuit 30 updates the OOB sequence management number to “3” (S111). The OOB sequence determination circuit 30 outputs the updated OOB sequence management number to the activation sequencer management circuit 32.

一方、起動シーケンサ管理回路32は、ステップS203の実行後、再び、起動シーケンス管理番号を判定する(S201)。起動シーケンス管理番号が"1"である場合、起動シーケンサ管理回路32は、OOBシーケンスが終了したか否かを判定する(S204)。具体的には、起動シーケンサ管理回路32は、OOBシーケンス管理番号が"3"となったか否かを判定する。   On the other hand, the activation sequencer management circuit 32 determines the activation sequence management number again after executing step S203 (S201). When the activation sequence management number is “1”, the activation sequencer management circuit 32 determines whether or not the OOB sequence is completed (S204). Specifically, the activation sequencer management circuit 32 determines whether or not the OOB sequence management number is “3”.

OOBシーケンス管理番号が"3"となっていない場合、起動シーケンサ管理回路32は、OOBシーケンスが終了したか否かの判定を継続して実行する(S204)。
OOBシーケンス管理番号が"3"となった場合、起動シーケンサ管理回路32は、ドライブ装置2の動作モードを、X_RDY Primitiveを無視するモードに設定する(S3、S205)。具体的には、OOBシーケンス完了後にドライブ装置2からの必要な応答が終了するまで、ホスト3からの要求を全て拒否するために、ホスト3からX_RDY Primitiveが送信されてきても、ドライブ装置2からR_RDY Primitiveを送信しないモードに移行する。ここで、起動シーケンサ管理回路32は、OOBシーケンス判定回路30から"3"に更新されたOOBシーケンス管理番号が出力された場合、OOBシーケンス管理番号が"3"となったと判定する。
If the OOB sequence management number is not “3”, the activation sequencer management circuit 32 continues to determine whether or not the OOB sequence has ended (S204).
When the OOB sequence management number becomes “3”, the activation sequencer management circuit 32 sets the operation mode of the drive device 2 to a mode in which X_RDY Primitive is ignored (S3, S205). Specifically, even if the X_RDY Primitive is transmitted from the host 3 in order to reject all requests from the host 3 until the necessary response from the drive apparatus 2 is completed after the OOB sequence is completed, the drive apparatus 2 Transition to a mode in which R_RDY Primitive is not transmitted. Here, when the OOB sequence management number updated to “3” is output from the OOB sequence determination circuit 30, the activation sequencer management circuit 32 determines that the OOB sequence management number is “3”.

ここで、起動シーケンサ管理回路32は、Task File Register情報を含むFIS(以下、「Register FIS」とも言う)をホスト3に送信する(S4、S206)。具体的には、起動シーケンサ管理回路32は、Register FISの送信を要求するFIS情報をプリミティブ・FIS送信/受信制御回路31に出力する。プリミティブ・FIS送信/受信制御回路31は、OOBシーケンス判定回路30からのFIS情報に応じて、Register FISをホスト3に送信する。起動シーケンサ管理回路32は、起動シーケンス管理番号を"2"に更新する(S207)。   Here, the activation sequencer management circuit 32 transmits an FIS including Task File Register information (hereinafter also referred to as “Register FIS”) to the host 3 (S4, S206). Specifically, the activation sequencer management circuit 32 outputs FIS information requesting transmission of the Register FIS to the primitive / FIS transmission / reception control circuit 31. The primitive / FIS transmission / reception control circuit 31 transmits a Register FIS to the host 3 in accordance with the FIS information from the OOB sequence determination circuit 30. The activation sequencer management circuit 32 updates the activation sequence management number to “2” (S207).

起動シーケンサ管理回路32は、再び、起動シーケンス管理番号を判定する(S201)。起動シーケンス管理番号が"2"である場合、起動シーケンサ管理回路32は、Register FISの送信が正常に完了したか否かを判定する(S5、S208)。具体的には、起動シーケンサ管理回路32は、Register FISの受信が完了したときにホスト3から送信されるR_OK Primitiveをプリミティブ・FIS送信/受信制御回路31が受信したか否かを判定する。   The activation sequencer management circuit 32 again determines the activation sequence management number (S201). When the activation sequence management number is “2”, the activation sequencer management circuit 32 determines whether or not the transmission of the Register FIS has been completed normally (S5, S208). Specifically, the activation sequencer management circuit 32 determines whether or not the primitive / FIS transmission / reception control circuit 31 has received R_OK Primitive transmitted from the host 3 when reception of the Register FIS is completed.

R_OK Primitiveを受信していない場合(S208:NO)、起動シーケンサ管理回路32は、Register FISの送信が正常に完了したか否かの判定を継続して実行する(S208)。   If R_OK Primitive has not been received (S208: NO), the activation sequencer management circuit 32 continues to determine whether or not the transmission of the Register FIS has been completed normally (S208).

R_OK Primitiveを受信した場合(S208:YES)、起動シーケンサ管理回路32は、ドライブ装置2の動作モードを、X_RDY Primitiveの応答を許可するモードに設定する(S6、S209)。具体的には、ホスト3からの要求を許可にするために、ホスト3からX_RDY Primitiveが送信された場合に、ドライブ装置2からR_RDY Primitiveを送信するモードに移行する。   When R_OK Primitive is received (S208: YES), the activation sequencer management circuit 32 sets the operation mode of the drive device 2 to a mode that permits a response of X_RDY Primitive (S6, S209). Specifically, in order to permit a request from the host 3, when the X_RDY Primitive is transmitted from the host 3, the mode shifts to a mode in which the R_RDY Primitive is transmitted from the drive device 2.

起動シーケンサ管理回路32は、OOBシーケンス管理番号及び起動シーケンス管理番号を共に"0"に更新する(S210、S211)。OOBシーケンス管理番号の初期化は、例えば、起動シーケンサ管理回路32がOOBシーケンス管理番号の初期化を要求する初期化要求情報をOOBシーケンス判定回路30に出力し、OOBシーケンス判定回路30がその初期化要求情報に応じて実行する。   The activation sequencer management circuit 32 updates both the OOB sequence management number and the activation sequence management number to “0” (S210, S211). For example, the activation sequencer management circuit 32 outputs initialization request information requesting initialization of the OOB sequence management number to the OOB sequence determination circuit 30, and the OOB sequence determination circuit 30 initializes the OOB sequence management number. Execute according to request information.

このようにすることで、次のSATAの通信確立に備える。再度、ステップS1から処理が実行して通信を確立するケースとしては、例えば、ドライブ装置2及びホスト3が再接続された場合や、ホスト3がドライブ装置2の不正な動作を検出してCOMRESETによってドライブ装置2をリセットする場合等がある。ホスト3は、例えば、ドライブ装置2から所定の時間の間、応答がない場合にドライブ装置2をリセットする。   In this way, the next SATA communication establishment is prepared. The case where the process is executed again from step S1 and communication is established is, for example, when the drive device 2 and the host 3 are reconnected, or when the host 3 detects an illegal operation of the drive device 2 and performs COMRESET. For example, the drive device 2 may be reset. For example, when there is no response from the drive device 2 for a predetermined time, the host 3 resets the drive device 2.

そして、起動シーケンサ管理回路32は、SATA通信確立処理及びTask File Register情報の送信が終了したことを通知する終了通知情報をCPU20に出力する。CPU20は、起動シーケンサ管理回路32から出力された終了通知情報に応じて、ホスト3に対してデータを送受信する処理の実行を開始する。また、CPU20は、終了通知情報の通知後に、再度、ドライブ装置2の起動シーケンスを実行する場合、DSP21に対して、上述した起動シーケンスにおける処理の実行を指示する指示情報を送信する。DSP21は、CPU20から出力された指示情報に応じて、上述した起動シーケンスを実行する。   Then, activation sequencer management circuit 32 outputs to CPU 20 end notification information notifying that the SATA communication establishment process and the transmission of Task File Register information have ended. The CPU 20 starts executing processing for transmitting / receiving data to / from the host 3 in accordance with the end notification information output from the startup sequencer management circuit 32. Further, when the activation sequence of the drive device 2 is executed again after the notification of the end notification information, the CPU 20 transmits instruction information for instructing execution of the processing in the above-described activation sequence to the DSP 21. The DSP 21 executes the above-described activation sequence according to the instruction information output from the CPU 20.

このように、本実施の形態では、OOBシーケンスの終了が物理層からリンク層に通知されたときに、リンク層内でTask File Register情報をホスト3に送信する制御をおこなっている。したがって、ドライブ装置2内のソフトウェアの仕様に関わらず、安定してホスト3に対して初期認識応答を実行することができる。   As described above, in the present embodiment, when the end of the OOB sequence is notified from the physical layer to the link layer, control is performed to transmit Task File Register information to the host 3 in the link layer. Therefore, the initial recognition response can be stably executed with respect to the host 3 regardless of the specifications of the software in the drive device 2.

以上に説明したように、本実施の形態では、ホスト3から送信された要求データに応じて、要求データに応答する応答データをホスト3に送信する処理を、所定の要求データについて、プロセッサ20を代替して実行するDSP21を有するようにしている。これによれば、所定の要求データについて、プロセッサ20で実行される処理に影響されることなく、その要求データに応答する応答データをホスト3に送信する処理を実行することができる。そのため、ホスト3がドライブ装置2からの応答を十分な時間待たない要求データを、所定の要求データとして設定することで、ホスト3から送信された要求データに応答する応答データの送信の遅延を防止することができる。   As described above, in the present embodiment, the process of transmitting the response data in response to the request data to the host 3 in accordance with the request data transmitted from the host 3 is performed for the predetermined request data. It has a DSP 21 that executes instead. According to this, it is possible to execute the process of transmitting response data to the host 3 in response to the request data without being affected by the process executed by the processor 20 for the predetermined request data. Therefore, the request data that the host 3 does not wait for a response from the drive device 2 for a sufficient time is set as predetermined request data, thereby preventing a delay in transmission of response data in response to the request data transmitted from the host 3. can do.

また、本実施の形態では、ホスト3から所定の要求データの次に送信される要求データを受信するときに、所定の要求データに応答する応答データを送信していない場合は、次に送信される要求データの受信を抑止するようにしている。これによれば、先に送信された要求データに応答する応答データを送信する前に、ホスト3からの次の要求データの送信が完了することを防止することができる。そのため、ホスト3及びドライブ装置2で扱うデータに齟齬が生じないようにすることができる。   In the present embodiment, when request data transmitted next to predetermined request data is received from the host 3, if response data responding to the predetermined request data is not transmitted, it is transmitted next. The reception of request data is suppressed. According to this, it is possible to prevent the transmission of the next request data from the host 3 from being completed before transmitting the response data in response to the previously transmitted request data. Therefore, wrinkles can be prevented from occurring in data handled by the host 3 and the drive device 2.

また、本実施の形態では、ホスト3からの起動シーケンスにおける要求データの受信に応じて、起動シーケンスの進行度合いを示す管理情報を更新するようにしている。そして、ホスト3から管理情報が示す進行度合いに応じた要求データが送信されなかった場合は、管理情報を更新せずに、応答データも送信しないようにしている。これによれば、ホスト3が故障又は障害等によって正常な順序で要求データを送信しなかった場合であっても、ドライブ装置2における誤動作を防止することができる。また、このとき、応答データを送信しないようにすることで、タイムアウトを検出したホスト3から再リセットをさせて、起動シーケンスを実行し直すようにさせることによって復旧を試みることができるようになる。   In the present embodiment, management information indicating the progress degree of the startup sequence is updated in response to reception of request data in the startup sequence from the host 3. If request data corresponding to the degree of progress indicated by the management information is not transmitted from the host 3, the management information is not updated and response data is not transmitted. According to this, even if the host 3 does not transmit the request data in a normal order due to a failure or failure, it is possible to prevent malfunction in the drive device 2. At this time, by not transmitting response data, it is possible to attempt recovery by causing the host 3 that has detected a timeout to reset again and executing the startup sequence again.

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。   Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.

本実施の形態では、ホスト3からのOOBシーケンスの終了を示すAlignを検出した場合に、Alignに応答するFISについて、CPU20を代替してFISを送信する例について説明したが、応答データの送信を代替する所定の要求データは、Alignである場合に限られない。任意のATA/ATAPIコマンドを示すFISに応答するFISについて、CPU20を代替してFISを送信するようにしてもよい。例えば、ホスト3からATA/ATAPIコマンドを示すFISが連続して送信される場合に、ドライブ装置2が先のFISに応答するFISを送信する前に、ホスト3が十分な時間を待たずに次のFISを送信してきてしまうような場合に、ホスト及びドライブ装置で扱うデータに齟齬が生じないようにすることができる。   In the present embodiment, an explanation has been given of an example in which, when an Align indicating the end of an OOB sequence from the host 3 is detected, an FIS is transmitted instead of the CPU 20 for an FIS responding to the Align, The predetermined request data to be replaced is not limited to Align. For the FIS that responds to the FIS indicating any ATA / ATAPI command, the FIS may be transmitted instead of the CPU 20. For example, when FIS indicating the ATA / ATAPI command is continuously transmitted from the host 3, the host 3 does not wait for a sufficient time before transmitting the FIS in response to the previous FIS. When the FIS is transmitted, the data handled by the host and the drive device can be prevented from being wrinkled.

本実施の形態では、OOBシーケンス及び起動シーケンスの進行度合いを、OOBシーケンス管理番号及び起動シーケンス管理番号によって管理したが、進行度合いを示す情報であれば、これに限られない。例えば、番号以外の文字列及びビットパターン等の情報で管理するようにしてもよい。   In this embodiment, the progress of the OOB sequence and the startup sequence is managed by the OOB sequence management number and the startup sequence management number. However, the present invention is not limited to this as long as the information indicates the progress. For example, management may be performed using information such as character strings and bit patterns other than numbers.

本実施の形態では、CPU20を代替して、ホスト3から送信されたデータに応答するデータを送信する処理を回路によって実現した場合について例示したが、CPU20を代替する手段はこれに限られない。例えば、DSPやCPU等のプロセッサが、OOBシーケンス判定回路30及び起動シーケンサ管理回路32における処理を実行するプログラムを実行することによって実現してもよい。この場合、OOBシーケンス管理番号及び起動シーケンス管理番号をメモリ11に格納するようにしてもよい。   In the present embodiment, the case where the CPU 20 is replaced and the process of transmitting data in response to the data transmitted from the host 3 is realized by a circuit is exemplified, but means for replacing the CPU 20 is not limited thereto. For example, a processor such as a DSP or a CPU may be realized by executing a program that executes processing in the OOB sequence determination circuit 30 and the startup sequencer management circuit 32. In this case, the OOB sequence management number and the activation sequence management number may be stored in the memory 11.

また、このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、ストレージ装置に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってストレージ装置に供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをストレージ装置に供給できる。   The program can be stored using various types of non-transitory computer readable media and supplied to the storage device. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W, semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (Random Access Memory)) are included. In addition, the program may be supplied to the storage device by various types of temporary computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer readable medium can supply the program to the storage device via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

また、プロセッサが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現される場合だけでなく、このプログラムが、プロセッサ上で稼動しているOS(Operating System)もしくはアプリケーションソフトウェアと共同して、上述の実施の形態の機能を実現する場合も、本発明の実施の形態に含まれる。さらに、このプログラムの処理の全てもしくは一部がストレージ装置に挿入された機能拡張ボードやストレージ装置に接続された機能拡張ユニットによって行われて、上述の実施の形態の機能が実現される場合も、本発明の実施の形態に含まれる。   Further, the processor executes the program that realizes the function of the above-described embodiment, so that not only the function of the above-described embodiment is realized, but also the OS ( The case where the functions of the above-described embodiment are realized in cooperation with the Operating System) or application software is also included in the embodiment of the present invention. Furthermore, when all or part of the processing of this program is performed by a function expansion board inserted into the storage device or a function expansion unit connected to the storage device, the functions of the above-described embodiment are realized. It is included in the embodiment of the present invention.

1 ストレージシステム
2 ドライブ装置
3 ホスト
10 LSI
11 メモリ
12 ドライバ
13 メカユニット
20 CPU
21 DSP
30 OOBシーケンス判定回路
31 プリミティブ・FIS送信/受信制御回路
32 起動シーケンサ管理回路
1 Storage system 2 Drive device 3 Host 10 LSI
11 Memory 12 Driver 13 Mechanical unit 20 CPU
21 DSP
30 OOB sequence determination circuit 31 Primitive / FIS transmission / reception control circuit 32 Start sequencer management circuit

Claims (10)

ホスト装置から送信された要求データに応じて、当該要求データによって要求された処理を実行するストレージ装置であって、
ストレージと、
前記ストレージの制御を含む第1の処理と、前記ホスト装置から送信された要求データに応じて当該要求データに応答する応答データを前記ホスト装置に送信する第2の処理と、を実行するプロセッサと、
前記ホスト装置から送信される要求データのうち、所定の要求データについて、前記プロセッサを代替して前記第2の処理を実行する代替処理部と、
を備えたストレージ装置。
In accordance with request data transmitted from a host device, a storage device that executes processing requested by the request data,
Storage,
A processor that executes a first process including control of the storage and a second process of transmitting response data in response to the request data to the host apparatus in response to the request data transmitted from the host apparatus; ,
Of the request data transmitted from the host device, for predetermined request data, an alternative processing unit that executes the second processing instead of the processor;
A storage device with
前記ストレージ装置は、前記ホスト装置から前記所定の要求データの次に送信される次要求データを受信するときに、前記所定の要求データに応答する応答データを送信していない場合は、前記次要求データの受信を抑止する管理部をさらに備えた請求項1に記載のストレージ装置。   When the storage apparatus receives the next request data transmitted next to the predetermined request data from the host apparatus and does not transmit response data in response to the predetermined request data, the storage apparatus The storage apparatus according to claim 1, further comprising a management unit that suppresses reception of data. 前記ストレージ装置は、SATA(Serial Advanced Technology Attachment)規格に従って、前記ホスト装置との間でデータを送受信し、
前記要求データは、前記ホスト装置に対してFISの応答が必要となるデータであり、
前記応答データは、前記要求データに応答するFIS(Frame Information Structure)である
請求項1又は2に記載のストレージ装置。
The storage device sends and receives data to and from the host device according to the SATA (Serial Advanced Technology Attachment) standard,
The request data is data that requires a FIS response to the host device,
The storage apparatus according to claim 1, wherein the response data is an FIS (Frame Information Structure) responding to the request data.
前記ストレージ装置は、SATA規格に従って、前記ホスト装置との間でデータを送受信し、
前記所定の要求データは、前記SATA規格によって規定されるAlignであり、
前記応答データは、前記Alignに応答するFISである
請求項1に記載のストレージ装置。
The storage device sends and receives data to and from the host device according to the SATA standard,
The predetermined request data is an Align defined by the SATA standard,
The storage apparatus according to claim 1, wherein the response data is a FIS that responds to the Align.
前記ストレージ装置は、SATA規格に従って、前記ホスト装置との間でデータを送受信し、
前記所定の要求データは、前記SATA規格によって規定されるAlignであり、
前記応答データは、前記Alignに応答するFISであり、
前記次要求データは、ATA/ATAPIコマンドを示すFISである
請求項2に記載のストレージ装置。
The storage device sends and receives data to and from the host device according to the SATA standard,
The predetermined request data is an Align defined by the SATA standard,
The response data is a FIS responding to the Align,
The storage apparatus according to claim 2, wherein the next request data is an FIS indicating an ATA / ATAPI command.
前記ストレージ装置は、
前記ストレージ装置の起動シーケンスの進行度合いを示す管理情報を格納する記憶部をさらに備え、
前記管理部は、前記ホスト装置からの前記起動シーケンスにおける要求データの受信に応じて、前記記憶部に格納された管理情報を更新し、
前記代替処理部は、前記記憶部に格納された管理情報が前記Alignの受信完了を示す場合に、前記応答データを送信する
請求項4又は5に記載のストレージ装置。
The storage device
A storage unit for storing management information indicating a degree of progress of the startup sequence of the storage device;
The management unit updates management information stored in the storage unit in response to reception of request data in the activation sequence from the host device,
The storage apparatus according to claim 4 or 5, wherein the substitution processing unit transmits the response data when the management information stored in the storage unit indicates that the Alignn has been received.
前記ストレージ装置は、
前記ストレージ装置の起動シーケンスの進行度合いを示す管理情報を格納する記憶部をさらに備え、
前記管理部は、前記ホスト装置からの前記起動シーケンスにおける要求データの受信に応じて、前記記憶部に格納された管理情報を更新し、
前記データ送受信部は、前記記憶部に格納された管理情報が示す前記Alignの受信完了を示す場合に、前記次要求データの受信の抑止を開始し、当該管理情報が前記応答データの送信完了を示す場合に、前記次要求データの受信の抑止を解除する
請求項5に記載のストレージ装置。
The storage device
A storage unit for storing management information indicating a degree of progress of the startup sequence of the storage device;
The management unit updates management information stored in the storage unit in response to reception of request data in the activation sequence from the host device,
When the data transmission / reception unit indicates completion of reception of the Align indicated by the management information stored in the storage unit, the data transmission / reception unit starts suppression of reception of the next request data, and the management information indicates completion of transmission of the response data. The storage apparatus according to claim 5, wherein the storage apparatus cancels suppression of reception of the next request data.
前記ストレージは、ハードディスク、光ディスク、又は、メモリである請求項1乃至7のいずれか1項に記載のストレージ装置。   The storage device according to any one of claims 1 to 7, wherein the storage is a hard disk, an optical disk, or a memory. ホスト装置から送信された要求データに応じて、当該要求データによって要求された処理を実行するストレージ装置の制御方法であって、
プロセッサが、ストレージの制御を含む第1の処理と、前記ホスト装置から送信された要求データに応じて当該要求データに応答する応答データを前記ホスト装置に送信する第2の処理と、を実行し、
前記処理の実行では、
前記ホスト装置からの所定の要求データの送信を検出し、
前記所定の要求データを検出した場合に、当該所定の要求データについて代替処理部が前記プロセッサを代替して前記第2の処理を実行する
ストレージ装置の制御方法。
In accordance with request data transmitted from a host device, a storage device control method for executing processing requested by the request data,
A processor executes a first process including storage control and a second process of transmitting response data in response to the request data to the host apparatus in response to the request data transmitted from the host apparatus. ,
In the execution of the process,
Detecting transmission of predetermined request data from the host device;
A method for controlling a storage apparatus, wherein, when the predetermined request data is detected, an alternative processing unit executes the second processing for the predetermined request data by replacing the processor.
ホスト装置から送信された要求データに応じて、当該要求データによって要求された処理を実行するストレージ装置に、ストレージの制御を含む第1の処理と、前記ホスト装置から送信された要求データに応じて当該要求データに応答する応答データを前記ホスト装置に送信する第2の処理と、を実行する第1のプロセッサと共に備えられた第2のプロセッサに実行させる制御プログラムであって、
前記ホスト装置からの所定の要求データの送信を検出する処理と、
前記所定の要求データを検出した場合に、当該所定の要求データについて前記第1のプロセッサを代替して前記第2の処理を実行する処理と、
を前記第2のプロセッサに実行させる制御プログラム。
In response to the request data transmitted from the host device, the storage device that executes the processing requested by the request data is provided with a first process including storage control, and according to the request data transmitted from the host device. A control program to be executed by a second processor provided together with a first processor for executing response processing for responding to the request data and transmitting the response data to the host device;
Processing for detecting transmission of predetermined request data from the host device;
A process of executing the second process instead of the first processor for the predetermined request data when the predetermined request data is detected;
A control program for causing the second processor to execute
JP2010284135A 2010-12-21 2010-12-21 Storage device, control method and control program for storage device Pending JP2012133513A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010284135A JP2012133513A (en) 2010-12-21 2010-12-21 Storage device, control method and control program for storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010284135A JP2012133513A (en) 2010-12-21 2010-12-21 Storage device, control method and control program for storage device

Publications (1)

Publication Number Publication Date
JP2012133513A true JP2012133513A (en) 2012-07-12

Family

ID=46649054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010284135A Pending JP2012133513A (en) 2010-12-21 2010-12-21 Storage device, control method and control program for storage device

Country Status (1)

Country Link
JP (1) JP2012133513A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296233B2 (en) 2015-02-11 2019-05-21 Samsung Electronics Co., Ltd. Method of managing message transmission flow and storage device using the method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10296233B2 (en) 2015-02-11 2019-05-21 Samsung Electronics Co., Ltd. Method of managing message transmission flow and storage device using the method

Similar Documents

Publication Publication Date Title
JP4738413B2 (en) Method and system for migrating source data to target data
US8381029B2 (en) Processing method, storage system, information processing apparatus, and computer-readable storage medium storing program
US20110302369A1 (en) Storage apparatus and control method therefor
JP6136629B2 (en) Storage control device, storage system, and control program
US8924606B2 (en) Storage system and data transfer control method
US8782633B1 (en) Upgrading firmware of a power supply
US7610461B2 (en) Storage system with mainframe and open host performing remote copying by setting a copy group
JP6350090B2 (en) Storage control device, copy control program, and copy control method
JP2007035024A (en) Network-attached storage device having connection to local user device
JP5864529B2 (en) Virtual computer system, virtual computer system control method, and virtual computer system control program
JP5602169B2 (en) COMMUNICATION MANAGEMENT DEVICE, COMMUNICATION MANAGEMENT METHOD, AND PROGRAM
TW201112130A (en) Controllers and methods for controlling data transfer, and electronic systems
US8560789B2 (en) Disk apparatus, data replicating method onto disk apparatus and program recording medium
JP2012133513A (en) Storage device, control method and control program for storage device
US20150089122A1 (en) Apparatus, control apparatus, control method and storage medium
US9762671B2 (en) Wireless access device and wireless access system
JP2014032515A (en) Storage devices and storage system
JP2011192053A (en) Disk array device, disk array system and cache control method
JP5661313B2 (en) Storage device
JP2010218320A (en) Storage apparatus
JP2012068808A (en) Portable storage device
JP2007011659A (en) Interface device, disk drive, and interface control method
JP5359309B2 (en) Electronics
JP2019101487A (en) Storage device and storage system
JP6701846B2 (en) Management device, backup system, backup management method, program