JP2012133513A - Storage device, control method and control program for storage device - Google Patents
Storage device, control method and control program for storage device Download PDFInfo
- 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
Links
Images
Abstract
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を参照して、本発明の実施の形態にかかるストレージシステム1の構成について説明する。図1は、本発明の実施の形態にかかるストレージシステム1の構成図である。
The configuration of the
ストレージシステム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
ドライブ装置2は、ストレージを有するストレージ装置である。ストレージは、例えば、光ディスク、ハードディスク、又は、メモリ等である。つまり、ドライブ装置2は、例えば、光ディスクドライブ、HDD(Hard Disk Drive)、又は、SSD(Solid State Drive)等である。なお、本実施の形態では、ドライブ装置2が光ディスクドライブである場合について例示する。
The
ドライブ装置2は、ホスト3から送信された要求データに応じて、要求データによって要求された処理を実行する。要求データは、例えば、OOB信号、Align及びFIS等である。OOB信号は、例えば、COMRESET、COMMINT及びCOMWAKE等である。任意の処理を要求するFISは、例えば、ATA/ATAPIコマンドを示すFISである。ドライブ装置2は、例えば、ホスト3からの要求に応じて、ドライブ装置2のリセットや、ストレージに対する読み書き等のSATA規格で規定された処理を実行する。
The
ホスト3は、任意の処理を要求する要求データをドライブ装置2に送信し、ドライブ装置2の実施結果を取得する装置である。
LSI10は、SATA規格における制御で使用されるTask File Register(図示せず)や、ディスクから取得した信号に対する処理の機能、メモリ制御用の機能を有する。
メモリ11は、CPU20が実行するプログラムや、CPU20が演算するデータ、ディスクから取得したデータが格納される。
The
The
The
ドライバ12は、CPU20から出力された制御情報に基づいて、メカユニット13を制御する。ドライバ12は、メカユニット13の制御内容を示す制御情報をメカユニット13に出力することによって、メカユニット13を制御する。ドライバ12は、例えば、光ディスク(図示せず)に対するレンズの位置を制御する。
メカユニット13は、CPU20及びドライバ12から出力された制御情報に基づいて、光ディスクに対するデータの読み書きを行う。
The
The
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
また、CPU20は、メカユニット13を制御する。CPU20は、メカユニット13の制御内容を示す制御情報をメカユニット13に出力する。CPU20は、例えば、メカユニット13が光ディスクに対して照射する光の強度、レンズの傾きを調整する。
Further, the
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
The OOB (Out Of Band)
プリミティブ・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 /
起動シーケンサ管理回路32は、ドライブ装置2の起動シーケンスの進行度合いを監視する。起動シーケンサ管理回路32は、OOBシーケンスの進行度合いに応じて、ドライブ装置2の動作モードの移行、FISの生成、及び、生成したFISのホスト3への送信を実行する。起動シーケンサ管理回路32は、生成したFISと共に、生成したFISの送信を要求するFIS情報をプリミティブ・FIS送信/受信制御回路31に出力することによって、プリミティブ・FIS送信/受信制御回路31からホスト3にFISを送信する。
The activation
続いて、図2〜図4を参照して、本発明の実施の形態にかかるストレージシステム1の処理について説明する。図2は、本発明の実施の形態にかかるドライブ装置2の起動シーケンスにおける処理を示すフローチャートである。図3は、本発明の実施の形態にかかるOOB(Out Of Band)シーケンス判定回路30の処理を示すフローチャートである。図4は、本発明の実施の形態にかかる起動シーケンサ管理回路32の処理を示すフローチャートである。
Subsequently, processing of the
まず、ドライブ装置2及びホスト3は、相互に接続されて起動された場合、SATAの通信を確立するために、OOBシーケンスを開始する(S1)。OOBシーケンス判定回路30は、OOBシーケンス管理番号がどのような値となっているかを判定する(S101)。ここでは、OOBシーケンス管理番号の初期値が"0"である場合について説明する。OOBシーケンス管理番号は、例えば、OOBシーケンス判定回路30が有する記憶装置に格納される。記憶装置は、例えば、メモリ又はレジスタ等である。OOBシーケンス管理番号は、例えば、ドライブ装置2の起動時に、OOBシーケンス判定回路30によって初期値に初期化される。
First, when the
OOBシーケンス管理番号が"0"である場合、OOBシーケンス判定回路30は、OOBシーケンスが開始されたか否かを判定する。具体的には、ホスト3からCOMRESETが送信されたか否かを判定する(S102)。
When the OOB sequence management number is “0”, the OOB
ホスト3からCOMRESETが送信されていない場合(S102:NO)、OOBシーケンス判定回路30は、ホストからCOMRESETが送信されたか否かの判定を継続して実行する(S102)。
When the COMRESET has not been transmitted from the host 3 (S102: NO), the OOB
ホスト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
一方、起動シーケンサ管理回路32は、起動シーケンス管理番号がどのような値となっているかを判定する(S201)。ここで、起動シーケンス管理番号の初期値が"0"である場合について説明する。起動シーケンス管理番号は、例えば、起動シーケンス管理番号が有する記憶装置に格納される。起動シーケンス管理番号は、例えば、ドライブ装置2の起動時や、ホストとの通信が確立した後、ホストとの通信が遮断された場合に、起動シーケンサ管理回路32によって初期値に初期化される。
On the other hand, the activation
起動シーケンス管理番号が"0"である場合、起動シーケンサ管理回路32は、OOBシーケンスが開始されたか否かを判定する(S202)。具体的には、OOBシーケンス管理番号が"1"となったか否かを判定する。
When the activation sequence management number is “0”, the activation
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
When the OOB sequence management number becomes “1” (S202: YES), the activation
ステップS104の実行後、OOBシーケンス判定回路30は、再び、OOBシーケンス管理番号を判定する(S101)。OOBシーケンス管理番号が"1"である場合、OOBシーケンス判定回路30は、ホスト3からCOMWAKEが送信されたか否かを判定する(S105)。
After execution of step S104, the OOB
ホスト3からCOMWAKEが送信されていない場合(S105:NO)、OOBシーケンス判定回路30は、ホスト3からCOMWAKEが送信されたか否かの判定を継続して実行する(S105)。
When COMWAKE has not been transmitted from the host 3 (S105: NO), the OOB
ホスト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
また、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
OOBシーケンス判定回路30は、再び、OOBシーケンス管理番号を判定する(S101)。OOBシーケンス管理番号が"2"である場合、OOBシーケンス判定回路30は、ホスト3からAlignが送信されたか否かを判定する(S109)。
The OOB
ホスト3からAlignが送信されていない場合(S109:NO)、OOBシーケンス判定回路30は、ホスト3からAlignが送信されたか否かの判定を継続して実行する(S109)。
When the Align is not transmitted from the host 3 (S109: NO), the OOB
ホスト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
一方、起動シーケンサ管理回路32は、ステップS203の実行後、再び、起動シーケンス管理番号を判定する(S201)。起動シーケンス管理番号が"1"である場合、起動シーケンサ管理回路32は、OOBシーケンスが終了したか否かを判定する(S204)。具体的には、起動シーケンサ管理回路32は、OOBシーケンス管理番号が"3"となったか否かを判定する。
On the other hand, the activation
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
When the OOB sequence management number becomes “3”, the activation
ここで、起動シーケンサ管理回路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
起動シーケンサ管理回路32は、再び、起動シーケンス管理番号を判定する(S201)。起動シーケンス管理番号が"2"である場合、起動シーケンサ管理回路32は、Register FISの送信が正常に完了したか否かを判定する(S5、S208)。具体的には、起動シーケンサ管理回路32は、Register FISの受信が完了したときにホスト3から送信されるR_OK Primitiveをプリミティブ・FIS送信/受信制御回路31が受信したか否かを判定する。
The activation
R_OK Primitiveを受信していない場合(S208:NO)、起動シーケンサ管理回路32は、Register FISの送信が正常に完了したか否かの判定を継続して実行する(S208)。
If R_OK Primitive has not been received (S208: NO), the activation
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
起動シーケンサ管理回路32は、OOBシーケンス管理番号及び起動シーケンス管理番号を共に"0"に更新する(S210、S211)。OOBシーケンス管理番号の初期化は、例えば、起動シーケンサ管理回路32がOOBシーケンス管理番号の初期化を要求する初期化要求情報をOOBシーケンス判定回路30に出力し、OOBシーケンス判定回路30がその初期化要求情報に応じて実行する。
The activation
このようにすることで、次の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
そして、起動シーケンサ管理回路32は、SATA通信確立処理及びTask File Register情報の送信が終了したことを通知する終了通知情報をCPU20に出力する。CPU20は、起動シーケンサ管理回路32から出力された終了通知情報に応じて、ホスト3に対してデータを送受信する処理の実行を開始する。また、CPU20は、終了通知情報の通知後に、再度、ドライブ装置2の起動シーケンスを実行する場合、DSP21に対して、上述した起動シーケンスにおける処理の実行を指示する指示情報を送信する。DSP21は、CPU20から出力された指示情報に応じて、上述した起動シーケンスを実行する。
Then, activation
このように、本実施の形態では、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
以上に説明したように、本実施の形態では、ホスト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
また、本実施の形態では、ホスト3から所定の要求データの次に送信される要求データを受信するときに、所定の要求データに応答する応答データを送信していない場合は、次に送信される要求データの受信を抑止するようにしている。これによれば、先に送信された要求データに応答する応答データを送信する前に、ホスト3からの次の要求データの送信が完了することを防止することができる。そのため、ホスト3及びドライブ装置2で扱うデータに齟齬が生じないようにすることができる。
In the present embodiment, when request data transmitted next to predetermined request data is received from the
また、本実施の形態では、ホスト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
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。 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
本実施の形態では、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
また、このプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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
11
21 DSP
30 OOB
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
前記要求データは、前記ホスト装置に対して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規格によって規定される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規格によって規定される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の処理と、前記ホスト装置から送信された要求データに応じて当該要求データに応答する応答データを前記ホスト装置に送信する第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の処理を実行する処理と、
を前記第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
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)
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 |
-
2010
- 2010-12-21 JP JP2010284135A patent/JP2012133513A/en active Pending
Cited By (1)
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 |