JP2010282422A - Data storage device and data transfer control method - Google Patents

Data storage device and data transfer control method Download PDF

Info

Publication number
JP2010282422A
JP2010282422A JP2009135257A JP2009135257A JP2010282422A JP 2010282422 A JP2010282422 A JP 2010282422A JP 2009135257 A JP2009135257 A JP 2009135257A JP 2009135257 A JP2009135257 A JP 2009135257A JP 2010282422 A JP2010282422 A JP 2010282422A
Authority
JP
Japan
Prior art keywords
data transfer
data
command
storage device
host system
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
JP2009135257A
Other languages
Japanese (ja)
Inventor
Shinji Hatayama
真治 畑山
Tomonori Masuo
智則 増尾
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009135257A priority Critical patent/JP2010282422A/en
Publication of JP2010282422A publication Critical patent/JP2010282422A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data storage device allowing effective improvement of performance by controlling order of data transfer requests. <P>SOLUTION: In this data storage device 10 performing data transfer control accompanying command processing of NCQ (native command queuing) specifications, the order of the data transfer requests are rearranged based on a priority condition of the command processing notified from a host system 20. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、データ記憶装置に関し、特に、インターフェースのデータ転送制御技術に関する。   The present invention relates to a data storage device, and more particularly to a data transfer control technique for an interface.

近年、ハードディスクドライブ(単にディスクドライブと表記する)やソリッドステートドライブ(SSD:solid state drive)などのデータ記憶装置(以下、総称してドライブと表記する場合がある)では、ホストシステム(ホストコントローラ)とのインターフェースとして、シリアルATA(SATA:Serial AT Attachment)規格のインターフェース(以下、SATAインターフェースと表記する場合がある)が採用されている。ここで、ホストシステムは、例えば、パーソナルコンピュータやデジタルテレビ受信機などである。   2. Description of the Related Art In recent years, in a data storage device (hereinafter sometimes collectively referred to as a drive) such as a hard disk drive (simply referred to as a disk drive) or a solid state drive (SSD), a host system (host controller) As an interface, a serial ATA (SATA: Serial AT Attachment) standard interface (hereinafter sometimes referred to as a SATA interface) is employed. Here, the host system is, for example, a personal computer or a digital television receiver.

例えばディスクドライブは、SATAインターフェースを介して、ホストシステムから転送されるライトコマンドやリードコマンド等のコマンドを実行することで、ディスク上にデータを書き込み、又はディスク上からデータを読み出す。   For example, the disk drive writes data on the disk or reads data from the disk by executing a command such as a write command or a read command transferred from the host system via the SATA interface.

シリアルATA規格には、NCQ(native command queuing)と呼ばれるコマンドキューイング(command queuing)仕様が規定されている。このNCQは、ドライブ側で、コマンドバッファに格納(キュー)された複数のコマンドの実行順序を任意に決定できる機能を実現する仕様である。   The serial ATA standard defines a command queuing specification called NCQ (native command queuing). The NCQ is a specification that realizes a function that can arbitrarily determine the execution order of a plurality of commands stored (queued) in a command buffer on the drive side.

さらに、シリアルATA規格では、NCQ仕様のコマンドの実行に伴うデータ転送制御を行なう仕様として、ドライブ側は、ホストシステムに対するデータ転送要求を行なう場合に、FIS(Frame Information Structure)として定義されているセットアップ・フレームを発行する。このデータ転送要求を、DMA setup FIS要求と表記する。フレームは、シリアルATAインターフェースでのデータ通信を行なうための単位(データ構造)である。   Further, in the serial ATA standard, as a specification for performing data transfer control accompanying the execution of NCQ specification commands, the drive side sets up a FIS (Frame Information Structure) defined when making a data transfer request to the host system.・ Issues a frame. This data transfer request is referred to as a DMA setup FIS request. The frame is a unit (data structure) for performing data communication with the serial ATA interface.

ここで、ドライブとホストシステム間のデータ転送には、ライトコマンドの実行に伴うライトデータの転送のようなホストシステム側からのデータ転送、及びリードコマンドの実行に伴うリードデータの転送のようなホストシステム側へのデータ転送がある。   Here, for data transfer between the drive and the host system, data transfer from the host system side such as transfer of write data accompanying execution of a write command, and host such as transfer of read data accompanying execution of a read command are performed. There is data transfer to the system side.

このようなデータ転送制御方式において、ホストシステムに対するコマンド終了通知のタイミングを制御することで、ドライブ側のパフォーマンスを向上させるための技術が提案されている(例えば、特許文献1を参照)。   In such a data transfer control method, a technique for improving the performance on the drive side by controlling the timing of command completion notification to the host system has been proposed (see, for example, Patent Document 1).

特開2005−215729号公報JP 2005-215729 A

データ転送制御技術は、コマンド処理の効率向上に関係し、ドライブ側のパフォーマンスを向上させるための重要な技術である。前述の先行技術の方法だけでは、ドライブ側のパフォーマンスを効果的に向上させるには不十分である。   Data transfer control technology is related to improving the efficiency of command processing, and is an important technology for improving drive-side performance. The above prior art methods alone are insufficient to effectively improve the drive side performance.

そこで、本発明の目的は、データ転送要求の順序を制御することにより、パフォーマンスを効果的に向上できるデータ記憶装置を提供することにある。   Therefore, an object of the present invention is to provide a data storage device that can effectively improve performance by controlling the order of data transfer requests.

本発明の観点に従ったデータ記憶装置は、ホストシステムとの間でコマンド及びデータの転送を行なうためのインターフェース手段と、前記インターフェース手段を介してコマンド処理に伴うデータ転送要求を実行するときに、前記コマンド処理の優先条件に基づいて前記データ転送要求の順序を並び替える制御手段とを備えた構成である。   A data storage device according to an aspect of the present invention includes an interface unit for transferring commands and data to and from a host system, and when executing a data transfer request accompanying command processing via the interface unit, And a control unit that rearranges the order of the data transfer requests based on the priority condition of the command processing.

本発明によれば、データ転送要求の順序を制御することにより、データ記憶装置のパフォーマンスを効果的に向上することが可能となる。   According to the present invention, it is possible to effectively improve the performance of the data storage device by controlling the order of data transfer requests.

本発明の実施形態に関するディスクドライブの要部を示すブロック図。The block diagram which shows the principal part of the disk drive regarding embodiment of this invention. 本実施形態に関するデータ転送制御の概略を説明するためのフローチャート。The flowchart for demonstrating the outline of the data transfer control regarding this embodiment. 本実施形態に関するコマンドキューの一例を説明するための図。The figure for demonstrating an example of the command queue regarding this embodiment. 本実施形態に関するデータ転送要求テーブルの一例を説明するための図。The figure for demonstrating an example of the data transfer request | requirement table regarding this embodiment. 本実施形態に関するデータ転送要求テーブルの一例を説明するための図。The figure for demonstrating an example of the data transfer request | requirement table regarding this embodiment. 本実施形態に関するデータ転送要求テーブルの一例を説明するための図。The figure for demonstrating an example of the data transfer request | requirement table regarding this embodiment. 本実施形態に関するデータ転送要求テーブルの一例を説明するための図。The figure for demonstrating an example of the data transfer request | requirement table regarding this embodiment. 本実施形態に関するデータ転送制御の手順を説明するためのタイミングチャート。6 is a timing chart for explaining a procedure of data transfer control according to the embodiment. 本実施形態に関するデータ転送制御方法の手順を説明するためのフローチャート。The flowchart for demonstrating the procedure of the data transfer control method regarding this embodiment. 他の実施形態に関するデータ転送制御方法を適用する具体例を説明するための図。The figure for demonstrating the specific example to which the data transfer control method regarding other embodiment is applied. 他の実施形態に関するデータ転送制御方法を適用する具体例を説明するための図。The figure for demonstrating the specific example to which the data transfer control method regarding other embodiment is applied. 他の実施形態に関するデータ転送制御方法を適用する具体例を説明するための図。The figure for demonstrating the specific example to which the data transfer control method regarding other embodiment is applied. 他の実施形態に関するデータ転送制御方法を適用する具体例を説明するための図。The figure for demonstrating the specific example to which the data transfer control method regarding other embodiment is applied. 他の実施形態に関するデータ転送制御方法を適用する具体例を説明するための図。The figure for demonstrating the specific example to which the data transfer control method regarding other embodiment is applied. 本実施形態のデータ記憶装置に適用するSSDの要部を示すブロック図。The block diagram which shows the principal part of SSD applied to the data storage device of this embodiment.

以下図面を参照して、本発明の実施形態を説明する。   Embodiments of the present invention will be described below with reference to the drawings.

[ディスクドライブの構成]
図1は、本実施形態に関するデータ記憶装置として、ディスクドライブ10の要部を示すブロック図である。
[Disk Drive Configuration]
FIG. 1 is a block diagram showing a main part of a disk drive 10 as a data storage device according to this embodiment.

ディスクドライブ10は、図1に示すように、ハードディスクコントローラ(HDC、以下単にディスクコントローラと表記する)11と、メモリ12と、マイクロプロセッサ(CPU)13と、ヘッド・ディスクアセンブリ(HDA)14とを有する。   As shown in FIG. 1, the disk drive 10 includes a hard disk controller (HDC, hereinafter simply referred to as a disk controller) 11, a memory 12, a microprocessor (CPU) 13, and a head disk assembly (HDA) 14. Have.

HDA14はデータ記録媒体であるディスク140を含み、当該ディスク140上にデータを磁気的に記録し、かつディスク140上からデータを再生する。HDA14は、ディスク140及びヘッドを駆動するための機構や、ヘッドアンプ及びリード/ライトチャネルなどの回路群を含む。ディスク140上のデータ面は、多数のトラック(シリンダ)が構成されて、各トラックが複数のセクタ(リード/ライト動作のアクセス単位)と呼ばれるデータ記録領域に分割されている。各セクタは、論理ブロックアドレス(LBA)が割り当てられている。ホストシステム20からLBA(n)により、ライトアクセス又はリードアクセスの対象セクタが指定される。   The HDA 14 includes a disk 140 that is a data recording medium, magnetically records data on the disk 140, and reproduces data from the disk 140. The HDA 14 includes a mechanism for driving the disk 140 and the head, and a circuit group such as a head amplifier and a read / write channel. The data surface on the disk 140 is composed of a large number of tracks (cylinders), and each track is divided into a plurality of data recording areas called sectors (access units for read / write operations). Each sector is assigned a logical block address (LBA). A target sector for write access or read access is specified by the host system 20 by LBA (n).

ディスクコントローラ11は、シリアルATA(SATA)インターフェース規格のSATAバス100を介してホストシステム20と接続し、NCQ(native command queuing)仕様のコマンド及びデータ(リードデータまたはライトデータ)の転送制御を実行するためのホストインターフェースモジュールを有する。また、ディスクコントローラ11は、HDA14のリード/ライトチャネル間でリードデータ又はライトデータの転送を制御するディスクインターフェースモジュールを有する。   The disk controller 11 is connected to the host system 20 via the SATA bus 100 of the serial ATA (SATA) interface standard, and executes NCQ (native command queuing) specification command and data (read data or write data) transfer control. A host interface module. The disk controller 11 also has a disk interface module that controls transfer of read data or write data between the read / write channels of the HDA 14.

メモリ12は、NCQ仕様のコマンドバッファ120及びデータバッファ121を含む。コマンドバッファ120は、ホストシステム20から連続的に転送される複数のコマンドをキュー(queuing)する待ち行列バッファである。データバッファ121は、ホストシステム20から転送されるライトデータを格納するライトバッファ領域及びホストシステム20へ転送するためのリードデータを格納するリードバッファ領域を含む。   The memory 12 includes an NCQ specification command buffer 120 and a data buffer 121. The command buffer 120 is a queue buffer for queuing a plurality of commands continuously transferred from the host system 20. The data buffer 121 includes a write buffer area for storing write data transferred from the host system 20 and a read buffer area for storing read data for transfer to the host system 20.

CPU13は、ドライブ10のメイン制御装置であり、HDA14の制御及びコマンド処理を実行する。HDA14の制御には、ディスク140に対するリード動作及びライト動作の制御、及びヘッドのサーボ制御が含まれる。さらに、CPU13は、後述するように、ホストシステム20との間でコマンドの実行に伴うデータ転送要求(DMA setup FIS要求)の処理を実行する。   The CPU 13 is a main control device of the drive 10 and executes control of the HDA 14 and command processing. The control of the HDA 14 includes control of read and write operations on the disk 140 and head servo control. Furthermore, as will be described later, the CPU 13 executes processing of a data transfer request (DMA setup FIS request) accompanying execution of a command with the host system 20.

[データ転送制御]
以下、図2を参照して、本実施形態のディスクドライブ10でのデータ転送制御の概略を説明する。
[Data transfer control]
The outline of data transfer control in the disk drive 10 of this embodiment will be described below with reference to FIG.

ディスクコントローラ11は、SATAバス100を介してホストシステム20から転送されたコマンド(リード/ライトコマンド)を連続的に受信する(ブロック200)。ディスクコントローラ11は、受信したコマンドをコマンドバッファ120に順次格納(キュー)する(ブロック201)。   The disk controller 11 continuously receives commands (read / write commands) transferred from the host system 20 via the SATA bus 100 (block 200). The disk controller 11 sequentially stores (queues) the received commands in the command buffer 120 (block 201).

ここで、CPU13は、NCQ仕様によるコマンド処理を実行する。即ち、CPU13は、コマンドバッファ120にキューされた複数のコマンドの実行順序を設定して、任意のタイミングで実行する。具体的には、CPU13は、コマンドバッファ120にキューされた複数のコマンドをメモリ12に確保されているリオーダリング(reordering)テーブルに登録し、高速に処理できる順序でコマンドを開始する。   Here, the CPU 13 executes command processing according to the NCQ specification. That is, the CPU 13 sets the execution order of a plurality of commands queued in the command buffer 120 and executes them at an arbitrary timing. Specifically, the CPU 13 registers a plurality of commands queued in the command buffer 120 in a reordering table secured in the memory 12, and starts the commands in an order that can be processed at high speed.

CPU13は、コマンドの実行に伴うデータ転送要求(DMA setup FIS要求)を、SATAバス100を介してホストシステム20に対して実行する(ブロック202)。このとき、データ転送要求(DMA setup FIS要求)は、メモリ12に確保されているデータ転送要求テーブル(待ち行列バッファ)に登録されている。   The CPU 13 executes a data transfer request (DMA setup FIS request) accompanying the execution of the command to the host system 20 via the SATA bus 100 (block 202). At this time, the data transfer request (DMA setup FIS request) is registered in the data transfer request table (queue buffer) secured in the memory 12.

ホストシステム20は、データ転送要求に応じて、ライトコマンドの場合にはライトデータをHDC11に転送し、またリードコマンドの場合にはHDC11から転送されたリードデータを受信する(ブロック203)。このような一連の動作が、コマンドバッファ120に格納された複数のコマンドの実行が全て完了するまで繰り返される(ブロック204)。   In response to the data transfer request, the host system 20 transfers the write data to the HDC 11 in the case of a write command, and receives the read data transferred from the HDC 11 in the case of a read command (block 203). Such a series of operations is repeated until execution of a plurality of commands stored in the command buffer 120 is completed (block 204).

さらに、図3から図7、図8のタイミングチャート、及び図9のフローチャートを参照して、本実施形態のデータ転送制御を具体的に説明する。   Further, the data transfer control of the present embodiment will be specifically described with reference to the timing charts of FIGS. 3 to 7 and 8 and the flowchart of FIG.

図8に示すように、ホストシステム20は、ドライブ10に対して、データ転送要求(DMA setup FIS要求)順序の優先条件を通知する(800)。ここでは、ホストシステム20は、優先条件として、例えばリードコマンド処理に伴うリードデータ転送の優先を通知する。ディスクコントローラ11は、ホストシステム20に対して了承応答を通知する(801)。次に、ホストシステム20は、NCQ仕様のリード/ライトコマンド群を一度に発行する(802)。   As shown in FIG. 8, the host system 20 notifies the drive 10 of the priority condition of the order of data transfer requests (DMA setup FIS request) (800). Here, the host system 20 notifies the priority of the read data transfer accompanying the read command processing, for example, as the priority condition. The disk controller 11 notifies the host system 20 of an acknowledgment response (801). Next, the host system 20 issues a read / write command group of NCQ specifications at a time (802).

ここで、図9のフローチャートを参照して、ディスクドライブ10の処理を説明する。   Here, the processing of the disk drive 10 will be described with reference to the flowchart of FIG.

ディスクコントローラ11は、図3に示すように、ホストシステム20から転送されたコマンド群をコマンドバッファ120にキューする。NCQ仕様では、32個までのコマンドの同時制御が可能であり、ホストシステム20から発行される各コマンドには0〜31までのタグ番号(Tag No.)が付加されている。   As shown in FIG. 3, the disk controller 11 queues the command group transferred from the host system 20 in the command buffer 120. In the NCQ specification, up to 32 commands can be controlled simultaneously, and a tag number (Tag No.) from 0 to 31 is added to each command issued from the host system 20.

図3に示すテーブルにおいて、「LBA」はアクセス対象のセクタを指定する論理ブロックアドレスである。「Block」は、転送するデータのブロック数である。「Command」はコマンドの種別を示す。ここでは、リードコマンド(Read)とライトコマンド(Write)の2種類とする。   In the table shown in FIG. 3, “LBA” is a logical block address that designates a sector to be accessed. “Block” is the number of blocks of data to be transferred. “Command” indicates the type of command. Here, there are two types, a read command (Read) and a write command (Write).

CPU13は、図9に示すように、コマンドバッファ120にキューされたコマンドを順次実行する(ブロック900のYES)。このとき、CPU13は、ライトコマンドの場合には、データバッファ121のライトバッファ領域が空き状態であれば、ライトデータの転送要求(DMA setup FIS要求)をデータ転送要求テーブルにキューし、コマンドをリオーダリングテーブルに登録する(ブロック901のYES,902のYES,903,904)。   As shown in FIG. 9, the CPU 13 sequentially executes the commands queued in the command buffer 120 (YES in block 900). At this time, in the case of a write command, if the write buffer area of the data buffer 121 is empty, the CPU 13 queues a write data transfer request (DMA setup FIS request) in the data transfer request table and resets the command. It registers in the ordering table (YES in block 901, YES in 902, 903, 904).

本実施形態では、リードデータの転送要求(DMA setup FIS要求)のデータ転送要求テーブルへのキューは、ディスク140に対するリード動作により転送すべきリードデータがデータバッファ121のリードバッファ領域に準備された時点で行うことを想定している。この場合、CPU13は、リードコマンドの場合には、コマンドのリオーダリングテーブルへの登録のみを行う(ブロック901のNO,904)。   In the present embodiment, the queue of the read data transfer request (DMA setup FIS request) in the data transfer request table is stored when read data to be transferred by the read operation to the disk 140 is prepared in the read buffer area of the data buffer 121. It is assumed that In this case, in the case of a read command, the CPU 13 only registers the command in the reordering table (NO in block 901, 904).

本実施形態では、データ転送要求テーブルのキューに2以上の要求がセットされている場合に、CPU13は、以下のように、データ転送要求テーブルの要求順序の並び替え処理を実行する(ブロック905のYES,906)。   In the present embodiment, when two or more requests are set in the queue of the data transfer request table, the CPU 13 executes the request order rearrangement process of the data transfer request table as follows (block 905). YES, 906).

本実施形態では、前述したように、ホストシステム20は、優先条件としてリードデータ転送の優先を通知することを想定している。この場合、転送すべきリードデータがデータバッファ121のリードバッファ領域に準備されていない場合、CPU13は、図4に示すように、データ転送要求テーブルには、ライトコマンド(図3の300,302)に伴うデータ転送要求のみを登録する。   In the present embodiment, as described above, it is assumed that the host system 20 notifies the priority of read data transfer as a priority condition. In this case, when the read data to be transferred is not prepared in the read buffer area of the data buffer 121, the CPU 13 stores a write command (300, 302 in FIG. 3) in the data transfer request table as shown in FIG. Register only the data transfer request associated with.

図8に示すように、ディスクコントローラ11は、図4に示すデータ転送要求テーブルの要求順位1位のライトコマンド(300)の実行に伴うライトデータの転送要求(DMA setup FIS要求)をホストシステム20に対して実行する(803)。ホストシステム20は、当該データ転送要求に応じてライトコマンド(300)の処理に必要なライトデータをディスクドライブ10に転送する(804)。このとき、ホストシステム20からディスクコントローラ11までのライトデータの転送が完了するまでに、例えば20msの経過時間を要したとする。   As shown in FIG. 8, the disk controller 11 sends a write data transfer request (DMA setup FIS request) accompanying the execution of the write command (300) of the first request in the data transfer request table shown in FIG. (803). In response to the data transfer request, the host system 20 transfers write data necessary for processing the write command (300) to the disk drive 10 (804). At this time, it is assumed that an elapsed time of, for example, 20 ms is required until transfer of write data from the host system 20 to the disk controller 11 is completed.

この要求順位1位のライトデータの転送中に、図3に示すリードコマンド(301,303)の処理に伴うリードデータがデータバッファ121のリードバッファ領域に準備完了したとする。CPU13は、図5に示すように、データ転送要求テーブルには、リードコマンド(301,303)のデータ転送要求を登録する。ライトデータの転送終了後、データ転送要求テーブルは、図6に示すような状態となる。   Assume that the read data associated with the read command (301, 303) shown in FIG. 3 is ready in the read buffer area of the data buffer 121 during the transfer of the write data having the highest request order. As shown in FIG. 5, the CPU 13 registers the data transfer request of the read command (301, 303) in the data transfer request table. After completion of the write data transfer, the data transfer request table is in a state as shown in FIG.

CPU13は、ホストシステム20からのリードデータ転送の優先に基づいて、図6に示すデータ転送要求テーブルの要求順位を、図7に示すように並べ替え処理を実行する(ブロック906を参照)。次に、ディスクコントローラ11は、図7に示すデータ転送要求テーブルの要求順位の1位に従って、リードコマンド(301)の実行に伴うリードデータの転送要求(DMA setup FIS要求)をホストシステム20に対して実行する(805)。ディスクコントローラ11は、当該データ転送要求に応じてリードコマンド(301)の処理に伴うリードデータをホストシステム20に転送する(806)。   Based on the priority of the read data transfer from the host system 20, the CPU 13 executes a rearrangement process for the order of requests in the data transfer request table shown in FIG. 6 (see block 906). Next, the disk controller 11 sends a read data transfer request (DMA setup FIS request) accompanying the execution of the read command (301) to the host system 20 in accordance with the first rank in the request order of the data transfer request table shown in FIG. (805). In response to the data transfer request, the disk controller 11 transfers the read data accompanying the processing of the read command (301) to the host system 20 (806).

さらに、図7に示すデータ転送要求テーブルの要求順位の2位に従って、ディスクコントローラ11は、リードコマンド(303)の実行に伴うリードデータの転送要求(DMA setup FIS要求)をホストシステム20に対して実行する(807)。ディスクコントローラ11は、当該データ転送要求に応じてリードコマンド(303)の処理に伴うリードデータをホストシステム20に転送する(808)。   Further, in accordance with the second rank of the request order of the data transfer request table shown in FIG. 7, the disk controller 11 sends a read data transfer request (DMA setup FIS request) to the host system 20 when the read command (303) is executed. Execute (807). In response to the data transfer request, the disk controller 11 transfers the read data accompanying the processing of the read command (303) to the host system 20 (808).

ホストシステム20からの優先条件であるリードデータ転送が完了すると、データ転送要求テーブルの要求順位の3位に従って、ディスクコントローラ11は、ライトコマンド(302)の実行に伴うライトデータの転送要求(DMA setup FIS要求)をホストシステム20に対して実行する(809)。ホストシステム20は、当該データ転送要求に応じてライトコマンド(302)の処理に必要なライトデータをディスクドライブ10に転送する(810)。   When the read data transfer, which is a priority condition from the host system 20, is completed, the disk controller 11 performs a write data transfer request (DMA setup) associated with the execution of the write command (302) in accordance with the third request rank in the data transfer request table. FIS request) is executed to the host system 20 (809). In response to the data transfer request, the host system 20 transfers write data required for processing the write command (302) to the disk drive 10 (810).

以上のようにして、ホストシステム20から通知される優先条件として、リードコマンド処理に伴うリードデータ転送を優先する条件に基づいて、ディスクドライブ10は、リードコマンド処理に伴うリードデータ転送を優先するように、データ転送要求テーブルのデータ転送要求の順序を並べ替える処理を実行する。但し、リードデータ転送の準備が完了していない場合には、ライトコマンドの処理に伴うライトデータ転送要求を先行して実行し、準備完了後にデータ転送要求の順序を並べ替える処理を実行する。   As described above, the disk drive 10 gives priority to the read data transfer accompanying the read command process based on the condition giving priority to the read data transfer accompanying the read command process as the priority condition notified from the host system 20. In addition, processing for rearranging the order of the data transfer requests in the data transfer request table is executed. However, if the preparation for the read data transfer is not completed, a write data transfer request accompanying the write command processing is executed in advance, and a process for rearranging the order of the data transfer requests is executed after the preparation is completed.

このようなデータ転送制御方法により、ホストシステム20からの要求に応じてデータ転送要求の順序を制御することで、ディスクドライブ10のコマンド処理の効率を向上し、結果としてドライブ10側のパフォーマンスを向上させることが可能となる。   By controlling the order of data transfer requests in accordance with requests from the host system 20 by such a data transfer control method, the command processing efficiency of the disk drive 10 is improved, and as a result, the performance on the drive 10 side is improved. It becomes possible to make it.

[他の実施形態]
図10から図14は、他の実施形態に関するデータ転送制御方法を説明するための図である。
[Other Embodiments]
10 to 14 are diagrams for explaining a data transfer control method according to another embodiment.

図10は、ホストシステム20から転送されたコマンド群の一例で、リオーダリング(reordering)テーブルに登録した状態を示す図である。図11は、当該コマンド群の処理に伴うデータ転送要求(DMA setup FIS要求)を登録したデータ転送用要求テーブルを示す図である。即ち、CPU13は、図10に示すテーブルのタグ番号0のリードコマンドの処理を開始すると共に、データバッファ121のライトバッファ領域が十分空いているという条件で、例えばタグ番号1、2、4〜6のライトコマンドに伴うDMA setup FIS要求をキューに登録する。   FIG. 10 is a diagram showing an example of a command group transferred from the host system 20 and registered in the reordering table. FIG. 11 is a diagram showing a data transfer request table in which data transfer requests (DMA setup FIS requests) accompanying processing of the command group are registered. That is, the CPU 13 starts processing of the read command with the tag number 0 in the table shown in FIG. 10 and, for example, tag numbers 1, 2, 4 to 6 on the condition that the write buffer area of the data buffer 121 is sufficiently free. Register the DMA setup FIS request with the write command in the queue.

図12(A)〜(E)はそれぞれ、ホストシステム20からの要求または予め設定されるコマンド処理の優先条件に基づいて、データ転送要求テーブルの要求順序の並べ替え処理を実行した結果を示す図である。   FIGS. 12A to 12E are diagrams each showing a result of executing a request order rearrangement process in the data transfer request table based on a request from the host system 20 or a preset command process priority condition. It is.

まず、前述と同様にリードデータ転送を優先する条件では、CPU13は、図12(A)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。ここでは、リードデータ転送の準備ができていないため、データ転送用要求テーブルにはライトコマンドに伴うライトデータ転送要求のみしか登録されていない。なお、ホストシステム20は、リードコマンドをライトコマンドよりも優先して処理すると、次のコマンド処理を早く決定できるためパフォーマンスが向上する。   First, as described above, under the condition that priority is given to read data transfer, the CPU 13 executes the rearrangement process of the data transfer request table as shown in FIG. Here, since the read data transfer is not ready, only the write data transfer request accompanying the write command is registered in the data transfer request table. Note that if the host system 20 processes the read command in preference to the write command, the next command processing can be determined earlier, and the performance is improved.

次に、転送ブロック数の小さいコマンドを優先する条件では、CPU13は、図12(B)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。この場合、ディスクドライブ10では、単位時間当たりに処理できるコマンド数が増大する。このため、ホストシステム20は、多数のコマンドを新規に発行できることになる。   Next, under the condition that priority is given to a command having a small number of transfer blocks, the CPU 13 executes a data transfer request table rearrangement process as shown in FIG. In this case, in the disk drive 10, the number of commands that can be processed per unit time increases. Therefore, the host system 20 can issue a number of new commands.

逆に、転送ブロック数の大きいコマンドを優先する条件では、CPU13は、図12(C)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。ライトコマンド処理では、ホストシステム20からのライトデータ転送が完了すると、ディスクドライブ10はライトバッファ領域のライトデータをディスク1401上に書き込む。このとき、転送ブロック数の大きい分だけ、ライトバッファ領域を空けることができる。   On the other hand, under the condition that priority is given to a command having a large number of transfer blocks, the CPU 13 executes a data transfer request table rearrangement process as shown in FIG. In the write command process, when the write data transfer from the host system 20 is completed, the disk drive 10 writes the write data in the write buffer area onto the disk 1401. At this time, the write buffer area can be emptied by the larger number of transfer blocks.

さらに、シーケンシャルのコマンドを優先する条件では、CPU13は、図12(D)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。この場合、ホストシステム20上のあるプロセスが要求したシーケンシャルのディスクアクセス要求が、ディスクドライブ10へのコマンド発行以前に分断されていたような場合、ホストシステム20は次のコマンド処理を早く決定できる。   Further, under the condition that priority is given to the sequential command, the CPU 13 executes the rearrangement process of the data transfer request table as shown in FIG. In this case, when a sequential disk access request requested by a certain process on the host system 20 is divided before issuing a command to the disk drive 10, the host system 20 can quickly determine the next command processing.

さらに、ホストシステム20からのコマンド発行からの時間経過が長いコマンドを優先する条件では、CPU13は、図12(E)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。但し、ここでは、データ転送用要求テーブルの状態は、図12(A)に示す状態と同じになる。この場合、ホストシステム20側でのタイムアウトを防止し、全体のパフォーマンスの低下を回避することが可能となる。   Further, under the condition that priority is given to a command having a long time elapsed since the command issuance from the host system 20, the CPU 13 executes a rearrangement process of the data transfer request table as shown in FIG. However, here, the state of the data transfer request table is the same as the state shown in FIG. In this case, a timeout on the host system 20 side can be prevented, and a decrease in overall performance can be avoided.

図13は、データ転送要求が処理された後に、例えば2つのリードコマンド(タグ番号3,7)が登録されたデータ転送要求テーブルを示す図である。このような状態において、図14(A)〜(E)を参照して、データ転送要求テーブルの要求順序の並べ替え処理の具体例を説明する。   FIG. 13 is a diagram showing a data transfer request table in which, for example, two read commands (tag numbers 3 and 7) are registered after the data transfer request is processed. In such a state, a specific example of the processing for rearranging the request order of the data transfer request table will be described with reference to FIGS.

リードデータ転送を優先する条件では、CPU13は、図14(A)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。即ち、データ転送用要求テーブルは、2つのリードコマンド(タグ番号3,7)のデータ転送用要求順序が1位と2位になるように並べ替え処理される。前述と同様に、転送ブロック数の小さいコマンドを優先する条件では、CPU13は、図14(B)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。逆に、転送ブロック数の大きいコマンドを優先する条件では、CPU13は、図14(C)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。さらに、シーケンシャルのコマンドを優先する条件では、CPU13は、図14(D)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。さらに、ホストシステム20からのコマンド発行からの時間経過が長いコマンドを優先する条件では、CPU13は、図14(E)に示すように、データ転送用要求テーブルの並べ替え処理を実行する。なお、このようなデータ転送用要求テーブルの並べ替え処理においても、前述と同様の効果を得ることができる。   Under the condition that priority is given to the read data transfer, the CPU 13 executes the rearrangement process of the data transfer request table as shown in FIG. That is, the data transfer request table is rearranged so that the data transfer request order of the two read commands (tag numbers 3 and 7) is first and second. Similarly to the above, under the condition that priority is given to a command with a small number of transfer blocks, the CPU 13 executes a data transfer request table rearrangement process as shown in FIG. On the other hand, under the condition that priority is given to a command having a large number of transfer blocks, the CPU 13 executes a data transfer request table rearrangement process as shown in FIG. Further, under the condition that priority is given to the sequential command, the CPU 13 executes the rearrangement process of the data transfer request table as shown in FIG. Furthermore, under the condition that priority is given to a command having a long time elapsed since the command issuance from the host system 20, the CPU 13 executes a rearrangement process of the data transfer request table as shown in FIG. It should be noted that the same effect as described above can also be obtained in such rearrangement processing of the data transfer request table.

[SSDの構成]
本実施形態では、データ記憶装置としてディスクドライブ10を適用する場合について説明したが、これに限ることなく、図15に示すようなソリッドステートドライブ(SSD:solid state drive)30にも適用できる。
[Configuration of SSD]
In this embodiment, the case where the disk drive 10 is applied as a data storage device has been described. However, the present invention is not limited to this, and the present invention can also be applied to a solid state drive (SSD) 30 as shown in FIG.

SSD30は、データ記録媒体としてフラッシュメモリ32を使用するデータ記憶装置であり、ホストシステム20とSATAバス100を介して接続するコントローラ31を含む。コントローラ31は、図1に示すディスクドライブ10のディスクコントローラ11及びCPU13に相当する機能を有し、本実施形態に関するNCQ仕様のコマンド処理及びデータ転送要求順序の並べ替え処理などを実行する。   The SSD 30 is a data storage device that uses a flash memory 32 as a data recording medium, and includes a controller 31 connected to the host system 20 via the SATA bus 100. The controller 31 has functions corresponding to the disk controller 11 and the CPU 13 of the disk drive 10 shown in FIG. 1, and executes NCQ specification command processing, data transfer request order rearrangement processing, and the like related to this embodiment.

なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

10…ディスクドライブ、11…ハードディスクコントローラ(HDC)、
12…メモリ、13…マイクロプロセッサ(CPU)、
14…ヘッド・ディスクアセンブリ(HDA)、20…ホストシステム、
30…ソリッドステートドライブ(SSD)、31…コントローラ、
32…フラッシュメモリ、100…シリアルATAバス、
120…コマンドバッファ、121…データバッファ、140…ディスク。
10 ... disk drive, 11 ... hard disk controller (HDC),
12 ... Memory, 13 ... Microprocessor (CPU),
14 ... head disk assembly (HDA), 20 ... host system,
30 ... Solid state drive (SSD), 31 ... Controller,
32 ... Flash memory, 100 ... Serial ATA bus,
120: command buffer, 121: data buffer, 140: disk.

Claims (11)

ホストシステムとの間でコマンド及びデータの転送を行なうためのインターフェース手段と、
前記インターフェース手段を介してコマンドの処理に伴うデータ転送要求を実行するときに、前記コマンド処理の優先条件に基づいて前記データ転送要求の順序を並び替える制御手段と
を具備したことを特徴とするデータ記憶装置。
Interface means for transferring commands and data to and from the host system;
Control means for rearranging the order of the data transfer requests based on a priority condition of the command processing when a data transfer request associated with command processing is executed via the interface means; Storage device.
前記優先条件は、リードコマンドを優先して実行する条件であって、前記ホストシステムに対してリードデータを転送するためのデータ転送要求の順序を優先させるための条件であることを特徴とする請求項1に記載のデータ記憶装置。   The priority condition is a condition for preferentially executing a read command, and a condition for giving priority to the order of data transfer requests for transferring read data to the host system. Item 4. The data storage device according to Item 1. 前記優先条件は、相対的に転送データ量の小さいコマンドを優先して実行する条件であることを特徴とする請求項1に記載のデータ記憶装置。   2. The data storage device according to claim 1, wherein the priority condition is a condition for preferentially executing a command having a relatively small transfer data amount. 前記優先条件は、相対的に転送データ量の大きいコマンドを優先して実行する条件であることを特徴とする請求項1に記載のデータ記憶装置。   The data storage device according to claim 1, wherein the priority condition is a condition for preferentially executing a command having a relatively large transfer data amount. 前記優先条件は、シーケンシャル・アクセスのコマンドを優先して実行する条件であることを特徴とする請求項1に記載のデータ記憶装置。   The data storage device according to claim 1, wherein the priority condition is a condition for preferentially executing a sequential access command. 前記優先条件は、前記ホストシステムの発行からの時間経過が長いコマンドを優先して実行する条件であることを特徴とする請求項1に記載のデータ記憶装置。   2. The data storage device according to claim 1, wherein the priority condition is a condition for preferentially executing a command having a long time elapsed since the issuance of the host system. 前記制御手段は、
前記インターフェース手段を介して前記ホストシステムから通知された前記優先条件に基づいて、前記データ転送要求の順序を並び替えることを特徴とする請求項1から請求項6のいずれか1項に記載のデータ記憶装置。
The control means includes
The data according to any one of claims 1 to 6, wherein the order of the data transfer requests is rearranged based on the priority condition notified from the host system via the interface unit. Storage device.
前記制御手段は、
前記コマンドの実行準備の完了に応じてデータ転送要求をキューし、前記優先条件に基づいて前記データ転送要求の待ち行列順序を変更することを特徴とする請求項1から請求項7のいずれか1項に記載のデータ記憶装置。
The control means includes
8. The data transfer request is queued according to completion of execution preparation of the command, and the queue order of the data transfer request is changed based on the priority condition. A data storage device according to item.
前記インターフェース手段は、シリアルATAインターフェース規格に基づいたデータ転送制御を実行する構成であることを特徴とする請求項1から請求項8のいずれか1項に記載のデータ記憶装置。   9. The data storage device according to claim 1, wherein the interface means is configured to execute data transfer control based on a serial ATA interface standard. データ記憶装置に含まれて、ホストシステムとの間でコマンド及びデータの転送を行なうシリアルインターフェース手段と、
前記シリアルインターフェース手段を介してコマンド処理に伴うデータ転送要求を実行するときに、前記コマンド処理の優先条件に基づいて前記データ転送要求の順序を並び替える制御手段と
を具備したことを特徴とするデータ転送制御装置。
Serial interface means included in the data storage device for transferring commands and data to and from the host system;
Control means for rearranging the order of the data transfer requests based on a priority condition of the command processing when a data transfer request associated with command processing is executed via the serial interface means; Transfer control device.
データ記憶装置とホストシステムとを接続するシリアルインターフェースを介してコマンド及びデータの転送を制御するデータ転送制御方法であって、
前記シリアルインターフェースを介して、前記ホストシステムから転送されたコマンドを受信する処理と、
コマンド処理に伴うデータ転送要求を実行するときに、前記コマンド処理の優先条件に基づいて前記データ転送要求の順序を並び替える処理と
を有することを特徴とするデータ転送制御方法。
A data transfer control method for controlling command and data transfer through a serial interface connecting a data storage device and a host system,
A process of receiving a command transferred from the host system via the serial interface;
And a process for rearranging the order of the data transfer requests based on a priority condition of the command processing when executing a data transfer request associated with the command processing.
JP2009135257A 2009-06-04 2009-06-04 Data storage device and data transfer control method Pending JP2010282422A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009135257A JP2010282422A (en) 2009-06-04 2009-06-04 Data storage device and data transfer control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009135257A JP2010282422A (en) 2009-06-04 2009-06-04 Data storage device and data transfer control method

Publications (1)

Publication Number Publication Date
JP2010282422A true JP2010282422A (en) 2010-12-16

Family

ID=43539093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009135257A Pending JP2010282422A (en) 2009-06-04 2009-06-04 Data storage device and data transfer control method

Country Status (1)

Country Link
JP (1) JP2010282422A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014532237A (en) * 2011-10-06 2014-12-04 マーベル ワールド トレード リミテッド Method and apparatus for efficiently increasing command queue length for accessing storage
JP2014230174A (en) * 2013-05-23 2014-12-08 富士通株式会社 Integrated circuit, control apparatus, control method and control program
US8977833B2 (en) 2011-04-28 2015-03-10 Kabushiki Kaisha Toshiba Memory system
US8996782B2 (en) 2012-03-23 2015-03-31 Kabushiki Kaisha Toshiba Memory system and bank interleaving method
KR20160122631A (en) * 2015-04-14 2016-10-24 삼성전자주식회사 Memory systems having improved out-of-order execution of commands and methods for operating the same
US10761772B2 (en) 2014-12-19 2020-09-01 Toshiba Memory Corporation Memory system including a plurality of chips and a selectively-connecting bus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139548A (en) * 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv Media drive and command execution method thereof
JP2006285809A (en) * 2005-04-04 2006-10-19 Hitachi Ltd Storage device performing performance guarantee for streaming
JP2008003719A (en) * 2006-06-20 2008-01-10 Hitachi Ltd Storage system and memory control method achieving consistency between power saving and performance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139548A (en) * 2004-11-12 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv Media drive and command execution method thereof
JP2006285809A (en) * 2005-04-04 2006-10-19 Hitachi Ltd Storage device performing performance guarantee for streaming
JP2008003719A (en) * 2006-06-20 2008-01-10 Hitachi Ltd Storage system and memory control method achieving consistency between power saving and performance

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977833B2 (en) 2011-04-28 2015-03-10 Kabushiki Kaisha Toshiba Memory system
JP2014532237A (en) * 2011-10-06 2014-12-04 マーベル ワールド トレード リミテッド Method and apparatus for efficiently increasing command queue length for accessing storage
US8996782B2 (en) 2012-03-23 2015-03-31 Kabushiki Kaisha Toshiba Memory system and bank interleaving method
US9304691B2 (en) 2012-03-23 2016-04-05 Kabushiki Kaisha Toshiba Memory system and bank interleaving method
JP2014230174A (en) * 2013-05-23 2014-12-08 富士通株式会社 Integrated circuit, control apparatus, control method and control program
US10761772B2 (en) 2014-12-19 2020-09-01 Toshiba Memory Corporation Memory system including a plurality of chips and a selectively-connecting bus
KR20160122631A (en) * 2015-04-14 2016-10-24 삼성전자주식회사 Memory systems having improved out-of-order execution of commands and methods for operating the same
US9477408B1 (en) 2015-04-14 2016-10-25 Samsung Electronics Co., Ltd. Memory systems having improved out-of-order execution of commands and methods for operating the same
KR102491067B1 (en) 2015-04-14 2023-01-25 삼성전자주식회사 Memory systems having improved out-of-order execution of commands and methods for operating the same

Similar Documents

Publication Publication Date Title
US8370857B2 (en) Device controller
US7320050B2 (en) Data transmission control method and storage device
US7373460B2 (en) Media drive and command execution method thereof
US8151014B2 (en) RAID performance using command descriptor block pointer forwarding technique
RU2642349C1 (en) Method for storing data using data storage device and data storage device
US9043541B2 (en) Storage control device, storage device, and control method for controlling storage control device
US8341374B2 (en) Solid state drive and related method of scheduling operations
JP4788528B2 (en) Disk control device, disk control method, and disk control program
US20100079904A1 (en) Storage control method, storage control unit and storage apparatus
JP2010282422A (en) Data storage device and data transfer control method
US20150149741A1 (en) Storage System and Control Method Thereof
JP2009163647A (en) Disk array device
US8327041B2 (en) Storage device and data transfer method for the same
KR20120097862A (en) Data storage system and data mapping method thereof
KR20140032789A (en) Controller of nonvolatile memory device and command scheduling method thereof
US8769195B2 (en) Storage apparatus and storage apparatus control method
US6567886B1 (en) Disk drive apparatus and control method thereof
JP2007501473A (en) Method and apparatus for transferring data between main memory and storage device
JP5030387B2 (en) Data storage device
KR101135313B1 (en) Nand flash memory apparatus and method for scheduling requested operations
JP2007249728A (en) Disk array device
TW201342193A (en) High-performance AHCI
TWI714116B (en) Memory controller, memory controlling method, and computer system
JP2007011659A (en) Interface device, disk drive, and interface control method
JP2012038330A (en) Hard disk drive

Legal Events

Date Code Title Description
A02 Decision of refusal

Effective date: 20101214

Free format text: JAPANESE INTERMEDIATE CODE: A02