JP2010140380A - コマンドの実行順序を変更する制御装置および記憶装置 - Google Patents
コマンドの実行順序を変更する制御装置および記憶装置 Download PDFInfo
- Publication number
- JP2010140380A JP2010140380A JP2008317887A JP2008317887A JP2010140380A JP 2010140380 A JP2010140380 A JP 2010140380A JP 2008317887 A JP2008317887 A JP 2008317887A JP 2008317887 A JP2008317887 A JP 2008317887A JP 2010140380 A JP2010140380 A JP 2010140380A
- Authority
- JP
- Japan
- Prior art keywords
- commands
- command
- unit
- execution order
- execution
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】 記憶媒体への連続したアクセスを効果的に実現するとともに、待機時間が長いコマンドを優先的に実行する制御装置または記憶装置を提供する。
【解決手段】 保持部101は、実行順位が予め割り当てられた複数のコマンドと、コマンドが保持されてからの経過時間を示す待機時間を複数のコマンド毎に保持する。選択部102は、複数のコマンドの内待機時間が長いものからN個のコマンドを選択する。分類部103は、保持部101に保持されている複数のコマンドをN+1個の複数のグループに分類する。変更部104はN個のコマンドの待機時間に基づいて複数のグループに優先順位を割り当てる。変更部104はまた、優先順位の高いグループに属するコマンドから実行されるように複数のコマンドの実行順位を変更する。
【選択図】 図3
【解決手段】 保持部101は、実行順位が予め割り当てられた複数のコマンドと、コマンドが保持されてからの経過時間を示す待機時間を複数のコマンド毎に保持する。選択部102は、複数のコマンドの内待機時間が長いものからN個のコマンドを選択する。分類部103は、保持部101に保持されている複数のコマンドをN+1個の複数のグループに分類する。変更部104はN個のコマンドの待機時間に基づいて複数のグループに優先順位を割り当てる。変更部104はまた、優先順位の高いグループに属するコマンドから実行されるように複数のコマンドの実行順位を変更する。
【選択図】 図3
Description
本発明は電子機器で実行されるコマンドの実行順序を変更する技術に関し、特に、磁気ディスクなどの記憶媒体にアクセスするコマンドの実行順序を変更するリオーダリング技術に関する。
上位装置(ホストコンピュータ)と接続されたディスク装置において、上位装置により発行された複数のコマンドを装置内部に保持し、ディスク装置自身が実行順序を判定する処理、いわゆるリオーダリング処理が知られている。リオーダリング処理として、Serial ATAインターフェイスで実行されるNCQ(Native Command Queuing)コマンドが知られている。また、シーク時間などの待機時間に基づいて、短い時間で処理を実行するための実行順序を算出する技術もある(特許文献1)。このリオーダリング処理では、ディスク上のコマンドのアクセス先に基づいて、ディスク装置内部に保持されるコマンドの実行順序が決定される。決定された実行順序によれば、記録ディスクへの連続したアクセスが効果的に実行される。
また、リオーダリング処理として、ディスク装置が保持したままのコマンド、言い換えれば、実行までの待機時間が長いコマンドを優先的に実行するための技術が知られている。こういった技術は、音声データの再生処理に有用である。音飛びの発生防止に寄与する。具体的には、コマンドの実行回数に基づいて、所定の実行回数が経過する毎に保持されているコマンドの優先順位を上げる、という技術がある(特許文献2)。また、コマンドによる処理が所定の時間以上待たされた場合、このコマンドによる処理を優先的に行う技術がある(特許文献3)。
特開2003−308176号公報
特開平5−134810号公報
特開2001−249770号公報
近年、ハードウェア技術などの向上によりNCQの装置内で保持されるコマンドの数(コマンドキューイング数)が増加しており、今後さらに増加する可能性もある。このため、音飛び発生の原因となる、待機時間の長いコマンドが同時に複数個保持されている状態も予想される。こういった場合、記憶媒体への連続したアクセスを効果的に行うだけでは、音飛びが発生する虞がある。その一方で、待機時間の長いコマンドのみを優先的に実行するだけでは、記憶媒体への連続したアクセスを効果的に行えない可能性がある。このため、記憶媒体への連続したアクセスを効果的に実現するとともに、実行までの待機時間が長いコマンドを優先的に実行することができる技術が望まれている。
本発明は、上述した問題点を解決するためになされたものであり、記憶媒体への連続したアクセスを効果的に実現するとともに、実行までの待機時間が長いコマンドを優先的に実行することができる技術を提供することを目的としている。
上述した問題を解決するため、本発明に係る制御装置は、実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部とを備える。
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更してもよい。
本発明に係る他の制御装置は、実行順位が予め割り当てられた複数のコマンドを保持するメモリと、前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部とを備える。
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更してもよい。
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を前記関係値として算出してもよい。前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を前記関係値として算出してもよい。
本発明に係る記憶装置は、実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と、前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部とを備える。
本発明に係る他の記憶装置は、実行順位が予め割り当てられた複数のコマンドを保持するメモリと、前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と、前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部とを備える。
本発明によれば、記憶媒体への連続したアクセスを効果的に実現するとともに、実行までの待機時間が長いコマンドを優先的に実行することができる。
(第1の実施の形態)
以下、本発明の第1の実施の形態について図面を参照して説明する。
以下、本発明の第1の実施の形態について図面を参照して説明する。
まず、第1の実施の形態に係る記憶装置としてハードディスク装置(HDD)の構成について説明する。図1は、上位装置(ホストコンピュータ)2に接続されたHDD1の構成を示すブロック図を示す。
図1に示されるように、上位装置2とHDD1はホストインターフェイス(IF)3を介して接続されている。上位装置2は記憶装置としてHDD1を備えるパーソナルコンピュータであり、データの読み書きにおいて、HDD1に対してコマンドを発行する。
HDD1は、ホストIF(インターフェイス)制御部11、バッファ制御部12、バッファメモリ13、フォーマット制御部14、リードチャネル15、ヘッドIC(Integrated Circuit)16、MPU(Microprocessor Unit)17、メモリ18、不揮発性メモリ19、サーボ制御部20、VCM(Voice Coil Motor)21、SPM(Spindle Motor)22、リードライトヘッド23、ディスク媒体24、バス25、および、ホストIF(インターフェイス)3を有する。
ホストIF3は、HDD1と上位装置2との間でデータやコマンドを送受するための通信に寄与する。ホストIF制御部11はホストIF3を介して送られる上位装置2へのデータやコマンドを制御する。また、ホストIF制御部11は上位装置2から送られてホストIF3で受け取られたデータやコマンドを制御する。バッファ制御部12は、バッファメモリ13に記憶されるデータの書き込みや読み出しを制御する。バッファメモリ13は、ディスク媒体24に書き込まれるデータや、ディスク媒体24から読み出されたデータを一時的に記憶する。フォーマット制御部14はディスク媒体24に書き込まれるデータの書き込みフォーマットを生成する。リードチャネル15は、ディスク媒体24に書き込まれるデータを信号に変換したり、ディスク媒体24から読み出された信号をデータに変換したりする。
ヘッドIC16は、リードライトヘッド23によりディスク媒体24に書き込まれる信号やディスク媒体24から読み出された信号を増幅する。MPU17はHDD1全体の動作を制御する。MPU17は、後述するコマンドメモリ17aを含む。メモリ18は揮発性のメモリである。不揮発性メモリ19は、HDDを制御するためのプログラムを記憶する。サーボ制御部20は、VCM21およびSPM22の動作を制御する。VCM21はリードライトヘッド23を駆動する。SPM22は、ディスク媒体24を回転駆動する。リードライトヘッド23はディスク媒体24にデータとしての信号を書き込んだり、ディスク媒体24に記録されているデータを信号として読み出したりする。ディスク媒体24はデータを記録するための記憶媒体である。バス25は、ホストIF制御部11、バッファ制御部12、フォーマット制御部14、リードチャネル15、ヘッドIC16、MPU17、メモリ18、不揮発性メモリ19、および、サーボ制御部20との間のデータやコマンドなどの情報の送受に寄与する。
次に、送受信されるデータや、受信されたコマンドの伝送経路を簡単に説明する。先ず、ディスク媒体24からデータが読み出される場合のデータの伝送経路を簡単に説明する。リードライトヘッド23により、データとしての信号がディスク媒体24から読み出される。読み出された信号は、ヘッドIC16を経由してリードチャネル15に送られる。リードチャネル15に送られた信号はデータに変換される。変換されたデータは、フォーマット制御部14、バッファ制御部12を経由してバッファメモリ13に送られ、ここで一時的に記憶される。バッファメモリ13に記憶されたデータは、ホストIF制御部11の制御の元、ホストIF3を経由して上位装置へ送出される。
次に、ディスク媒体24にデータが書き込まれる場合のデータの伝送経路を簡単に説明する。上位装置2から送出されたデータは、ホストIF3、ホストIF制御部11、バッファ制御部12を経由してバッファメモリ13に一時的に記憶される。バッファメモリ13に記憶されたデータは、書き込みに適当なタイミングで、フォーマット制御部14、リードチャネル15、ヘッドIC17を経由してリードライトヘッド23に送られる。リードチャネル15では、データは書き込みのための信号に変換される。リードライトヘッド23は、変換された信号をディスク媒体24に書き込む。
次に、上位装置2から送られるコマンドの経路について簡単に説明する。上位装置2からは、データの書き込みや読み出しを指示するコマンドがHDD1に送られる。コマンドはホストIF3で受信され、ホストIF制御部11により、MPU17に送られる。MPU17は受け取ったコマンドをコマンドメモリ17aに記憶する。MPU17は、コマンド毎に、データの受け取りから経過した時間をカウントする。複数のコマンドがコマンドメモリ17aに保持されている場合、MPU17はコマンド毎に割り当てられた実行順位に従ってコマンドを実行する。
次に、MPU17のコマンドメモリ17aについて説明する。図2は、コマンドメモリ17aに記憶されて保持されるコマンド、および、コマンドに関連するデータの一例を示す。前述したように、コマンドメモリ17aは複数のコマンドを保持することができる。この第1の実施の形態では、実行中のコマンド(current)以外に10個のコマンド(Command_1〜Command_10)を一度に記憶し、保持することができる。図2に示されるように、実行中以外のコマンドには予定順序を示す実行順位が割り当てられている。この実行順位の割り当ては、MPU17により随時実行されるNCQ(Native Command Queuing)によって実現される。コマンドメモリ17aでは、コマンドの実行によりアクセスされる論理アドレスブロック(LAB)がコマンド毎に保持されている。さらに、コマンドの実行により書き込み、または、読み出しされるデータのサイズ(SIZE)も保持されている。例えば、実行中のコマンドの次に実行されるのはCommand_8である。受信されてから現在までの経過時間、すなわち、待機時間が一番長いのはCommand_1である。
次に、この第1の実施の形態における、実行順位を変更するための機能について説明する。
図3は、第1の実施の形態における実行順位変更処理とコマンド実行処理とを実現するための機能ブロックを示す。実行順位変更処理は、保持部101、選択部102、分類部103、および、変更部104で遂行される。コマンド実行処理はコマンド実行部105で遂行される。保持部101は、実行順位が予め割り当てられた複数のコマンドを保持する。保持部101はまた、コマンドが保持されてからの経過時間を示す待機時間を複数のコマンド毎に保持する。選択部102は、複数のコマンドの内、待機時間が長いものから順にN個のコマンドを選択する。ここで、Nは1以上の整数である。分類部103は、選択部102により選択されたN個のコマンドがそれぞれ別のグループに属するように、保持部101に保持されている複数のコマンドをN+1個の複数のグループに分類する。
変更部104は、選択部102により選択されたN個のコマンドの待機時間に基づいて、保持部101に保持されている複数のグループに優先順位を割り当てる。具体的には、変更部104は、待機時間の長いコマンドを含んだグループに高い優先順位を割り当てる。待機時間の長いコマンドが複数ある場合、最も長い待機時間のコマンドが属するグループから順に優先順位を割り当てる。変更部104はまた、優先順位の高いグループに属するコマンドから実行されるように保持部101に保持されている複数のコマンドの実行順位を変更する。変更部104は、1つのグループに複数のコマンドが属する場合、予め割り当てられた実行順位が反映されるように、そのグループ内のコマンドの実行順位を変更する。コマンド実行部105は、変更部104により変更された実行順位に従って、保持部101に保持されている複数のコマンドを順次実行する。
保持部101は前述のコマンドメモリ17aで実現してもよい。選択部102、分類部103、変更部104、および、コマンド実行部105は、MPU17が所定のプログラムを実行することで実現してもよい。
次に、この第1の実施の形態における、実行順位を変更するための動作を図1に示される構成と関連付けて説明する。図4は、実行順位を変更するための動作を示すフローチャートである。ここでは、NCQがMPU17により実行され、コマンドメモリ17aに保持される複数のコマンドに実行順位が割り当てられていると仮定する。また、コマンドメモリ17aには、図2に示されるような複数のコマンドとそれらコマンドに関連するデータが保持されていると仮定する。
MPU17は、コマンドメモリ17aに保持されている複数のコマンドの実行順位を変更することが必要であるか否かを判定する(ステップS11)。実行順位の変更が必要でないと判定された場合(ステップS11,NO)、処理は終了する。変更の要否は、例えば、待機時間が所定時間以上のコマンドの有無に基づいて判定してもよい。
実行順位の変更が必要であると判定された場合(ステップS11,YES)、MPU17は各コマンドの待機時間に基づいて、保持部101の保持する複数のコマンドの内、待機時間が長いものからN個のコマンドを選択する(ステップS12)。ここで、Nは1以上の整数である。なお、Nは予め定められた個数でもよい。Nは、コマンドメモリ17aに保持されているコマンドの数に基づいて決定されてもよい。この第1の実施の形態では、MPU17は、コマンドメモリ17aに保持されているコマンドの内、待機時間が長いコマンドからN個のコマンドを選択する。例えば、N=1である場合、MPU17はCommand_1を選択する(図5参照)。
次に、MPU17は、選択されたN個のコマンドに基づいて、コマンドメモリ17aに保持される複数のコマンドをN+1個の複数のグループに分類する(ステップS13)。この第1の実施の形態では、MPU17は、選択されたN個のコマンドが、該当するグループ内で最も高い実行順位となるように、コマンドメモリ17aに保持される複数のコマンドを複数のグループに分類する。例えば、N=1である場合、MPU17は、Command_1に後続して実行順位が割り当てられているCommand_10およびCommand_9をCommand_1と同じグループ(図5に示されるグループ2)に割り当てる。Command_1、Command_9、および、Command_10を除いた他のコマンドを一つのグループ(図5に示されれるグループ1)に割り当てる。この結果、グループ1には、Command_8、Command_7、Command_6、Command_5、Command_2、Command_4、および、Command_3が属する。グループ2には、Command_1、Command_10、および、Command_9が属する。
次に、MPU17は、ステップS12で選択されたN個のコマンドの待機時間に基づき、ステップS13で分類された複数のグループに優先順位を割り当てる(ステップS14)。N=1の場合、MPU17は、ステップS12で選択されたCommand_1が属するグループ2にグループ1よりも高い優先順位を割り当てる。ここでは、グループ1には選択されたコマンドが含まれていないため、グループ2にグループ1よりも高い優先順位が割り当てられる。
MPU17はまた、グループ1および2に割り当てられた優先順位と、NCQによってコマンドに割り当てられた実行順位とに基づき、コマンドメモリ17aに保持されている複数のコマンドの実行順位を変更する(ステップS15)。N=1の場合、グループ2に属する複数のコマンドが早く実行されるように実行順位が割り当てられる。ただし、グループ内に複数のコマンドが含まれているため、これらのコマンドに対しては、NCQによってコマンドに割り当てられた実行順位を反映するように新しい実行順位が割り当てられる。図6は実行順位が変更された後の、コマンドメモリ17aに保持されるコマンドを示す図である。具体的には、Command_1に実行順位「1」が、Command_10に実行順位「2」が、Command_9に実行順位「3」が割り当てられる。グループ2に属するコマンドに対する新しい実行順位の割り当てが完了すると、MPU17は、グループ1に属するコマンドに対して新しい実行順位の割り当てを行う。ここでも、グループ内に複数のコマンドが含まれているため、これらのコマンドに対しては、NCQによってコマンドに割り当てられた実行順位を反映するように新しい実行順位が割り当てられる。具体的には、Command_8に実行順位「4」が、Command_7に実行順位「5」が、Command_6に実行順位「6」が、Command_5に実行順位「7」が、Command_2に実行順位「8」が、Command_4に実行順位「9」が、Command_3に実行順位「10」が割り当てられる。
以上の動作によって実行順位を変更処理が完了する。この後、MPU17は、ステップS15で変更された実行順位に従って、コマンドメモリ17aに保持されている複数のコマンドを順次実行する。
先の説明では、N=1の場合の動作を具体的に説明した。ここで、N=2の場合の動作を具体的に説明する。
N=2である場合、MPU17は、Command_1とCommand_2とを選択する(ステップS12、図7参照)。ステップS13では、MPU17は、Command_1に後続して実行順位が割り当てられているCommand_10およびCommand_9をCommand_1と同じグループ(図7に示されるグループ3)に割り当てる。MPU17は、Command_2に後続して実行順位が割り当てられているCommand_4およびCommand_3をCommand_2と同じグループ(図7に示されるグループ2)に割り当てる。Command_1、Command_2、Command_3、Command_4、Command_9、および、Command_10を除いた他のコマンドを一つのグループ(図7に示されれるグループ1)に割り当てる。この結果、グループ1には、Command_8、Command_7、Command_6、および、Command_5が属する。グループ2には、Command_2、Command_4、および、Command_3が属する。グループ3には、Command_1、Command_10、および、Command_9が属する。
ステップS14では、MPU17は、グループ3、グループ2、グループ1の順に優先順位を割り当てる。MPU17は、Command_1が属するグループ3に、Command_2が属するグループ2よりも高い優先順位を割り当てる。理由は、Command_1の待機時間がCommand_2のそれよりも長いためである。
ステップS15では、先ず、グループ3に属するコマンドが早く実行されるように実行順位が割り当てられる。グループ内に複数のコマンドが含まれているため、これらのコマンドに対しては、NCQによってコマンドに割り当てられた実行順位を反映するように新しい実行順位が割り当てられる。図8は実行順位が変更された後の、コマンドメモリ17aに保持されるコマンドを示す図である。具体的には、Command_1に実行順位「1」が、Command_10に実行順位「2」が、Command_9に実行順位「3」が割り当てられる。グループ3に属するコマンドに対する新しい実行順位の割り当てが完了すると、MPU17は、グループ2に属するコマンドに対して新しい実行順位の割り当てを行う。具体的には、Command_2に実行順位「4」が、Command_4に実行順位「5」が、Command_3に実行順位「6」が割り当てられる。グループ2に属するコマンドに対して新しい実行順位の割り当てが完了すると、MPU17は、グループ1に属するコマンドに対して新しい実行順位の割り当てを行う。具体的には、Command_8に実行順位「7」が、Command_7に実行順位「8」が、Command_6に実行順位「9」が、Command_5に実行順位「10」が割り当てられる。
以上説明した第1の実施の形態によれば、NCQで決定された効果的な連続アクセスを維持しながら、待機時間が長いコマンドを優先的に実行することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して説明する。第2の実施の形態に係る記憶装置は、ハードディスク装置(HDD)として実現することができる。このHDDの構成は、前述の第1の実施の形態で説明されたものと同様の構成を有することができる。したがって、HDDを構成する個々の要素の説明は省略する。個々の要素の引用にあたっては図1と同様の参照符号を付す。
次に、本発明の第2の実施の形態について図面を参照して説明する。第2の実施の形態に係る記憶装置は、ハードディスク装置(HDD)として実現することができる。このHDDの構成は、前述の第1の実施の形態で説明されたものと同様の構成を有することができる。したがって、HDDを構成する個々の要素の説明は省略する。個々の要素の引用にあたっては図1と同様の参照符号を付す。
この第2の実施の形態における、実行順位を変更するための機能について説明する。図9は、第2の実施の形態における実行順位変更処理とコマンド実行処理とを実現するための機能ブロックを示す。実行順位変更処理は、保持部201、関係値算出部202、分類部203、抽出部204、および、変更部205で遂行される。コマンド実行処理はコマンド実行部206で遂行される。
保持部201は、実行順位が予め割り当てられた複数のコマンドを保持する。関係値算出部202は、保持部201に保持されるコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する。分類部203は、各コマンドの関係値に基づいて、保持部201で保持される複数のコマンドを複数のグループに分類する。抽出部204は、分類されたグループ毎に、保持部201に保持されてからの待機時間が最も長いコマンドを抽出する。変更部205は、抽出されたコマンドの待機時間に基づいて、分類部203により分類された複数のグループに優先順位を割り当てる。変更部205はまた、優先順位の高いグループに属するコマンドから実行されるように、保持部201に保持されている複数のコマンドの実行順序を変更する。具体的には、変更部205は、抽出されたコマンドの待機時間を比較して、待機時間の長いコマンドを含んだグループに高い優先順位を割り当てる。言い換えると、変更部205は、複数のグループに、抽出されたコマンドの待機時間の長い順に優先順位が割り当てる。変更部205はまた、優先順位の高いグループに属するコマンドから実行されるように保持部201に保持されている複数のコマンドの実行順位を変更する。変更部205は、1つのグループに複数のコマンドが属する場合、予め割り当てられた実行順位が反映されるように、そのグループ内のコマンドの実行順位を変更する。コマンド実行部206は、変更部205により変更された実行順位に従って、保持部201に保持されている複数のコマンドを順次実行する。
関係値算出部202は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を関係値として算出してもよい。
関係値算出部202は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を関係値として算出してもよい。
保持部201はコマンドメモリ17aで実現してもよい。関係値算出部202、分類部203、抽出部204、変更部205、および、コマンド実行部206は、MPU17が所定のプログラムを実行することで実現してもよい。
次に、この第2の実施の形態における、実行順位を変更するための動作を図1に示される構成と関連付けて説明する。図10は、実行順位を変更するための動作を示すフローチャートである。ここでは、NCQがMPU17により実行され、コマンドメモリ17aに保持される複数のコマンドに実行順位が割り当てられていると仮定する。また、コマンドメモリ17aには、図2に示されるような複数のコマンドとそれらコマンドに関連するデータが保持されていると仮定する。
MPU17は、コマンドメモリ17aに保持されている複数のコマンドの実行順位を変更することが必要であるか否かを判定する(ステップS21)。実行順位の変更が必要でないと判定された場合(ステップS21,NO)、処理は終了する。
実行順位の変更が必要であると判定された場合(ステップS21,YES)、MPU17は各コマンドの待機時間に基づいて、コマンドメモリ17aに保持されるコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する(ステップS22)。MPU17は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を関係値として算出してもよい。例えば、NCQの実行にあたって、Command_Mの処理終了からこのコマンドに後続した実行順位が割り当てられているCommand_Nの処理対象セクタ位置へのヘッド位置づけまでに要する時間が求められている場合、この時間を関係値として使用することもできる。
MPU17はまた、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を関係値として算出してもよい。
MPU17は、各コマンドの関係値に基づいて、コマンドメモリ17aで保持される複数のコマンドを複数のグループに分類する(ステップS23)。例えば、LBAを参照するとCommand_4とCommand_3との関係値として、0x016f0780が算出される。Command_6とCommand_5との関係値として、0x016f0780が算出される。こういった関係値に基づいて図11に示されるように2つのグループに分類しても、図13に示されるように3つのグループに分類してもよい。なお、グループ数は予め定められた個数でもよく、コマンドメモリ17aに保持されているコマンドの数に基づいて決定されてもよい。
MPU17は、分類されたグループ毎に、コマンドメモリ17aに保持されてからの待機時間が最も長いコマンドを抽出する(ステップS24)。コマンドメモリ17aに保持される複数のコマンドが2つのグループに分類される場合、MPU17は、Command_1とCommand_2とを選択する(図11参照)。コマンドメモリ17aに保持される複数のコマンドが3つのグループに分類される場合、MPU17は、Command_1、Command_2、および、Command_6を選択する(図13参照)。
MPU17は、抽出されたコマンドの待機時間に基づいて、ステップS23で分類された複数のグループに優先順位を割り当てる(ステップS25)。コマンドメモリ17aに保持される複数のコマンドが2つのグループに分類される場合、MPU17は、グループ2にグループ1より高い優先順位を割り当てる。理由はCommand_1の待機時間がCommand_2のそれよりも長いためである。コマンドメモリ17aに保持される複数のコマンドが3つのグループに分類される場合、MPU17は、図13に示されるグループ1〜3に対して、グループ3、グループ2、グループ1の順に優先順位を割り当てる。MPU17は、Command_1が属するグループ3に、Command_2が属するグループ2よりも高い優先順位を割り当てる。理由はCommand_1の待機時間がCommand_2のそれよりも長いためである。Command_2が属するグループ2に、Command_6が属するグループ1よりも高い優先順位を割り当てる。理由はCommand_2の待機時間がCommand_6のそれよりも長いためである。
MPU17はまた、この優先順位と予め割り当てられた実行順位とに基づいて、コマンドメモリ17aに保持されている複数のコマンドの実行順位を変更する(ステップS26)。コマンドメモリ17aに保持される複数のコマンドが2つのグループに分類される場合、グループ2に属する複数のコマンドが早く実行されるように実行順位が割り当てられる。ただし、グループ内に複数のコマンドが含まれているため、これらのコマンドに対しては、NCQによってコマンドに割り当てられた実行順位に従って新しい実行順位が割り当てられる。具体的には、Command_3に実行順位「1」が、Command_1に実行順位「2」が、Command_10に実行順位「3」が、Command_9に実行順位「4」が割り当てられる。グループ2に属するコマンドに対する新しい実行順位の割り当てが完了すると、MPU17は、グループ1に属するコマンドに対して新しい実行順位の割り当てを行う。具体的には、Command_8に実行順位「5」が、Command_7に実行順位「6」が、Command_6に実行順位「7」が、Command_5に実行順位「8」が、Command_2に実行順位「9」が、Command_4に実行順位「10」が割り当てられる。この結果、図12に示されるような新しい実行順位がコマンドメモリ17aに保持されるコマンドに割り当てられる。
コマンドメモリ17aに保持される複数のコマンドが3つのグループに分類される場合、グループ3に属するコマンドが早く実行されるように実行順位が割り当てられる。グループ内に複数のコマンドが含まれているため、これらのコマンドに対しては、NCQによってコマンドに割り当てられた実行順位に従って新しい実行順位が割り当てられる。具体的には、Command_3に実行順位「1」が、Command_1に実行順位「2」が、Command_10に実行順位「3」が、Command_9に実行順位「4」が割り当てられる。グループ3に属するコマンドに対する新しい実行順位の割り当てが完了すると、MPU17は、グループ2に属するコマンドに対して新しい実行順位の割り当てを行う。具体的には、Command_5に実行順位「5」が、Command_2に実行順位「6」が、Command_4に実行順位「7」が割り当てられる。グループ2に属するコマンドに対して新しい実行順位の割り当てが完了すると、MPU17は、グループ1に属するコマンドに対して新しい実行順位の割り当てを行う。具体的には、Command_8に実行順位「8」が、Command_7に実行順位「9」が、Command_6に実行順位「10」が割り当てられる。この結果、図14に示されるような新しい実行順位がコマンドメモリ17aに保持されるコマンドに割り当てられる。
以上の動作によって実行順位を変更処理が完了する。この後、MPU17は、ステップS26で変更された実行順位に従って、コマンドメモリ17aに保持されている複数のコマンドを順次実行する。
以上説明した第2の実施の形態によれば、NCQで決定された効果的な連続アクセスを維持しながら、待機時間が長いコマンドを優先的に実行することができる。
次に、第1および第2の実施の形態に係る変形例を説明する。この変形例では、各グループ内で実行順位を変更することを特徴とする。
図3に示される機能ブロック図を参照して第1の実施の形態に係る変形例を説明する。選択部102は、分類対象のグループからM個のコマンドを選択する。ここで、Mは1以上の整数である。分類部103は、選択部102により選択されたM個のコマンドに基づいて、分類対象のグループに属する複数のコマンドをM+1個の複数のサブグループに分類する。変更部104は、選択部102により選択されたM個のコマンドの待機時間に基づき、分類部103により分類された複数のサブグループに優先順位を割り当てる。選択部102により選択されたM個のコマンドの待機時間に基づいて、サブグループに優先順位を割り当てる。変更部104はまた、分類対象のグループ内では、優先順位の高いサブグループに属するコマンドから実行されるように保持部101に保持されている複数のコマンドの実行順位を変更する。
こういった処理は、MPU17が、図15に示されるフローチャートの処理を、図4に示されるステップS15の後に実行することで実現される。MPU17は、複数のグループの内の1つに対して、例えば、図4のステップS12、S13、S14およびS15の処理を実行する(ステップS31)。この後、MPU17は、グループ内の優先順位の変更がなされていないグループがあるか判定する(ステップS32)。変更がなされていないグループが存在する場合(ステップS32,YES)、このグループに対して図4のステップS12、S13、S14およびS15の処理を実行する(ステップS31)。MPU17は、全てのグループに対して実行順位の変更処理が完了すると処理を終了する(ステップS32,NO)。
この第1の実施の形態の変形例によれば、分類されたグループ内で実行順位を変更することができる。HDD1では、NCQで決定された効果的な連続アクセスが維持され、且つ、待機時間が長いコマンドが優先的に実行される。
図9に示される機能ブロック図を参照して第2の実施の形態に係る変形例を説明する。分類部203は、関係値に基づいて分類対象のグループを複数のサブグループに分類する。抽出部204は、サブグループ毎に、待機時間が最も長いコマンドを抽出する。変更部205は、抽出されたコマンドの待機時間に基づいて、分類部203によりさらに分類された複数のサブグループに優先順位を割り当てる。変更部205はまた、対象のグループ内では、優先順位の高いサブグループに属するコマンドから実行されるように、保持部201に保持されている複数のコマンドの実行順序を変更する。
こういった処理は、MPU17が、図15に示されるフローチャートの処理を図10に示されるステップS26の後に実行することで実現される。MPU17は、複数のグループの内の1つに対して、例えば、図10のステップS22、S23、S24、S25およびS16の処理を実行する(ステップS31)。この後、MPU17は、グループ内の優先順位の変更がなされていないグループがあるか判定する(ステップS32)。変更がなされていないグループが存在する場合(ステップS32,YES)、このグループに対して図10のステップS22、S23、S24、S25およびS16の処理を実行する(ステップS31)。MPU17は、全てのグループに対して実行順位の変更処理が完了すると処理を終了する(ステップS32,NO)。
この第2の実施の形態の変形例によれば、分類されたグループ内で実行順位を変更することができる。HDD1では、NCQで決定された効果的な連続アクセスが維持され、且つ、待機時間が長いコマンドが優先的に実行される。
本発明は、その要旨または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
以上、本実施の形態によれば、以下の付記で示す技術的思想が開示されている。
(付記1) 実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、
前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、
前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、
前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と
を備える制御装置。
(付記2) 付記1に記載の制御装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする制御装置。
(付記3) 付記1に記載の制御装置において、
前記選択部は前記メモリに保持されるコマンドの数に基づいて選択するコマンドの個数Nを決定することを特徴とする制御装置。
(付記4) 付記1に記載の制御装置において、
前記分類部は、選択されたN個のコマンドが、各々属するグループ内で最も高い実行順位となるように、前記複数のコマンドを複数のグループに分類することを特徴とする制御装置。
(付記5) 付記1乃至4に記載の制御装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って実行順位が予め定められていることを特徴とする制御装置。
(付記6) 実行順位が予め割り当てられた複数のコマンドを保持するメモリと、
前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、
前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、
前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、
前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と
を備える制御装置。
(付記7) 付記6に記載の制御装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする制御装置。
(付記8) 付記6に記載の制御装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を前記関係値として算出することを特徴とする制御装置。
(付記9) 付記6に記載の制御装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を前記関係値として算出することを特徴とする制御装置。
(付記10) 付記6に記載の制御装置において、
前記分類部は、前記関係値に基づいて分類対象のグループを複数のサブグループに分類し、
前記抽出部は、サブグループ毎に待機時間が最も長いコマンドを抽出し、
前記変更部は、前記抽出部により抽出された待機時間に基づいて前記複数のサブグループに優先順位を割り当て、優先順位の高いサブグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更することを特徴とする制御装置。
(付記11) 付記6に記載の制御装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って前記実行順位が予め割り当てられていることを特徴とする制御装置。
(付記12) 実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、
前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、
前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、
前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と、
前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部と
を備える記憶装置。
(付記13) 付記12に記載の記憶装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする記憶装置。
(付記14) 付記12に記載の記憶装置において、
前記選択部は前記メモリに保持されるコマンドの数に基づいて選択するコマンドの個数Nを決定することを特徴とする記憶装置。
(付記15) 付記12に記載の記憶装置において、
前記分類部は、選択されたN個のコマンドが、各々属するグループ内で最も高い実行順位となるように、前記複数のコマンドを複数のグループに分類することを特徴とする記憶装置。
(付記16) 付記12乃至15に記載の記憶装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って実行順位が予め定められていることを特徴とする記憶装置。
(付記17) 実行順位が予め割り当てられた複数のコマンドを保持するメモリと、
前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、
前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、
前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、
前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と、
前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部と
を備える記憶装置。
(付記18) 付記17に記載の記憶装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする記憶装置。
(付記19) 付記17に記載の記憶装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を前記関係値として算出することを特徴とする記憶装置。
(付記20) 付記17に記載の記憶装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を前記関係値として算出することを特徴とする記憶装置。
(付記21) 付記17に記載の記憶装置において、
前記分類部は、前記関係値に基づいて分類対象のグループを複数のサブグループに分類し、
前記抽出部は、サブグループ毎に待機時間が最も長いコマンドを抽出し、
前記変更部は、前記抽出部により抽出された待機時間に基づいて前記複数のサブグループに優先順位を割り当て、優先順位の高いサブグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更することを特徴とする記憶装置。
(付記22) 付記17に記載の記憶装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って前記実行順位が予め割り当てられていることを特徴とする記憶装置。
(付記1) 実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、
前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、
前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、
前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と
を備える制御装置。
(付記2) 付記1に記載の制御装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする制御装置。
(付記3) 付記1に記載の制御装置において、
前記選択部は前記メモリに保持されるコマンドの数に基づいて選択するコマンドの個数Nを決定することを特徴とする制御装置。
(付記4) 付記1に記載の制御装置において、
前記分類部は、選択されたN個のコマンドが、各々属するグループ内で最も高い実行順位となるように、前記複数のコマンドを複数のグループに分類することを特徴とする制御装置。
(付記5) 付記1乃至4に記載の制御装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って実行順位が予め定められていることを特徴とする制御装置。
(付記6) 実行順位が予め割り当てられた複数のコマンドを保持するメモリと、
前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、
前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、
前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、
前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と
を備える制御装置。
(付記7) 付記6に記載の制御装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする制御装置。
(付記8) 付記6に記載の制御装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を前記関係値として算出することを特徴とする制御装置。
(付記9) 付記6に記載の制御装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を前記関係値として算出することを特徴とする制御装置。
(付記10) 付記6に記載の制御装置において、
前記分類部は、前記関係値に基づいて分類対象のグループを複数のサブグループに分類し、
前記抽出部は、サブグループ毎に待機時間が最も長いコマンドを抽出し、
前記変更部は、前記抽出部により抽出された待機時間に基づいて前記複数のサブグループに優先順位を割り当て、優先順位の高いサブグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更することを特徴とする制御装置。
(付記11) 付記6に記載の制御装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って前記実行順位が予め割り当てられていることを特徴とする制御装置。
(付記12) 実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、
前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、
前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、
前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と、
前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部と
を備える記憶装置。
(付記13) 付記12に記載の記憶装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする記憶装置。
(付記14) 付記12に記載の記憶装置において、
前記選択部は前記メモリに保持されるコマンドの数に基づいて選択するコマンドの個数Nを決定することを特徴とする記憶装置。
(付記15) 付記12に記載の記憶装置において、
前記分類部は、選択されたN個のコマンドが、各々属するグループ内で最も高い実行順位となるように、前記複数のコマンドを複数のグループに分類することを特徴とする記憶装置。
(付記16) 付記12乃至15に記載の記憶装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って実行順位が予め定められていることを特徴とする記憶装置。
(付記17) 実行順位が予め割り当てられた複数のコマンドを保持するメモリと、
前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、
前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、
前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、
前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と、
前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部と
を備える記憶装置。
(付記18) 付記17に記載の記憶装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする記憶装置。
(付記19) 付記17に記載の記憶装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を前記関係値として算出することを特徴とする記憶装置。
(付記20) 付記17に記載の記憶装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を前記関係値として算出することを特徴とする記憶装置。
(付記21) 付記17に記載の記憶装置において、
前記分類部は、前記関係値に基づいて分類対象のグループを複数のサブグループに分類し、
前記抽出部は、サブグループ毎に待機時間が最も長いコマンドを抽出し、
前記変更部は、前記抽出部により抽出された待機時間に基づいて前記複数のサブグループに優先順位を割り当て、優先順位の高いサブグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更することを特徴とする記憶装置。
(付記22) 付記17に記載の記憶装置において、
前記メモリに保持される複数のコマンドには、ネイティブ・コマンド・キューイングに従って前記実行順位が予め割り当てられていることを特徴とする記憶装置。
1 ハードディスク装置、2 上位装置、3 ホストIF、11 ホストIF制御部、12 バッファ制御部、13 バッファメモリ、14 フォーマット制御部、15 リードチャネル、16 ヘッドIC、17 MPU、17a コマンドメモリ、18 メモリ、19 不揮発性メモリ、20 サーボ制御部、21 VCM、22 SPM、23 リードライトヘッド、24 ディスク媒体、25 バス。
Claims (8)
- 実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、
前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、
前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、
前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と
を備える制御装置。 - 請求項1に記載の制御装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする制御装置。 - 実行順位が予め割り当てられた複数のコマンドを保持するメモリと、
前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、
前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、
前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、
前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と
を備える制御装置。 - 請求項3に記載の制御装置において、
前記変更部は、1つのグループに複数のコマンドが属する場合には、前記予め割り当てられた実行順位に従って前記複数のコマンドの実行順位を変更することを特徴とする制御装置。 - 請求項3または請求項4に記載の制御装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドの終了から実行順位が後のコマンドが実行されるまでの移行時間を前記関係値として算出することを特徴とする制御装置。 - 請求項3または請求項4に記載の制御装置において、
前記関係値算出部は、実行順位が隣接するコマンドの内、実行順位が先のコマンドによりアクセスされる論理アドレスと、実行順位が後のコマンドによりアクセスされる論理アドレスとの差を前記関係値として算出することを特徴とする制御装置。 - 実行順位が予め割り当てられた複数のコマンドを保持し、コマンドが保持されてからの経過時間を示す待機時間を前記複数のコマンド毎に保持するメモリと、
前記複数のコマンドの内、前記待機時間が長いものからN個(Nは1以上の整数)のコマンドを選択する選択部と、
前記選択部により選択されたN個のコマンドがそれぞれ別のグループに属するように、前記複数のコマンドをN+1個の複数のグループに分類する分類部と、
前記選択部により選択された前記N個のコマンドの待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順位を変更する変更部と、
前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部と
を備える記憶装置。 - 実行順位が予め割り当てられた複数のコマンドを保持するメモリと、
前記複数のコマンド毎に、実行順位が隣り合ったコマンド間の関係を示す関係値を算出する関係値算出部と、
前記複数のコマンド毎の関係値に基づいて前記複数のコマンドを複数のグループに分類する分類部と、
前記複数のグループ毎に、前記メモリに保持されてからの経過時間を示す待機時間が最も長いコマンドを抽出する抽出部と、
前記抽出部により抽出された待機時間に基づいて前記複数のグループに優先順位を割り当て、優先順位の高いグループに属するコマンドから実行されるように前記複数のコマンドの実行順序を変更する変更部と、
前記変更部によって変更された実行順位に従って前記複数のコマンドを順次実行するコマンド実行部と
を備える記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008317887A JP2010140380A (ja) | 2008-12-15 | 2008-12-15 | コマンドの実行順序を変更する制御装置および記憶装置 |
US12/638,873 US20100153664A1 (en) | 2008-12-15 | 2009-12-15 | Controller and storage device for changing sequential order of executing commands |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008317887A JP2010140380A (ja) | 2008-12-15 | 2008-12-15 | コマンドの実行順序を変更する制御装置および記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010140380A true JP2010140380A (ja) | 2010-06-24 |
Family
ID=42241960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008317887A Pending JP2010140380A (ja) | 2008-12-15 | 2008-12-15 | コマンドの実行順序を変更する制御装置および記憶装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100153664A1 (ja) |
JP (1) | JP2010140380A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9497564B2 (en) | 2013-02-05 | 2016-11-15 | Qualcomm Incorporated | Apparatus and method for optimal scheduling of envelope updates to SIM card |
JP6141208B2 (ja) * | 2014-01-08 | 2017-06-07 | 東芝テック株式会社 | 情報処理装置及びプログラム |
CN107701518B (zh) | 2017-10-19 | 2024-03-29 | 珠海格力电器股份有限公司 | 贯流风轮安装结构、风道组件及具有贯流风轮的装置 |
JP2022138388A (ja) * | 2021-03-10 | 2022-09-26 | 株式会社東芝 | 磁気ディスク装置及びリオーダリング処理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006139548A (ja) * | 2004-11-12 | 2006-06-01 | Hitachi Global Storage Technologies Netherlands Bv | メディア・ドライブ及びそのコマンド実行方法 |
JP2006172032A (ja) * | 2004-12-15 | 2006-06-29 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置及びそのバッファ制御方法 |
-
2008
- 2008-12-15 JP JP2008317887A patent/JP2010140380A/ja active Pending
-
2009
- 2009-12-15 US US12/638,873 patent/US20100153664A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20100153664A1 (en) | 2010-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7320050B2 (en) | Data transmission control method and storage device | |
JP5681511B2 (ja) | 情報記録装置及び情報記録方法 | |
US20100079904A1 (en) | Storage control method, storage control unit and storage apparatus | |
JP2006139548A (ja) | メディア・ドライブ及びそのコマンド実行方法 | |
JP4992835B2 (ja) | ディスク記憶装置およびプログラム | |
JP2014053062A (ja) | 記録再生装置および記録再生方法 | |
JP4991605B2 (ja) | データ記憶装置およびその制御方法 | |
US20100325384A1 (en) | Data storage medium accessing method, data storage device and recording medium to perform the data storage medium accessing method | |
JP2010140380A (ja) | コマンドの実行順序を変更する制御装置および記憶装置 | |
US20200174941A1 (en) | Magnetic disk device and recording method of the same | |
US20140059377A1 (en) | Dynamic y-buffer size adjustment for retained sector reprocessing | |
US8117491B2 (en) | Disk-drive device and method for error recovery thereof | |
US20200082844A1 (en) | Disk-drive with efficient command-reordering | |
JP2010044814A (ja) | 記憶装置の制御方法及び記憶装置 | |
JP2007193886A (ja) | ディスク装置、データ書込み制御方法およびコマンド制御方法 | |
US20140122793A1 (en) | Magnetic disk device and data writing method | |
JP5030387B2 (ja) | データ記憶装置 | |
US9990949B1 (en) | Multi-channel data recording | |
US8055840B2 (en) | Storage device including a controller for rearranging writing commands | |
JP2010152988A (ja) | ディスク記憶装置及びエリア管理方法 | |
US20160299686A1 (en) | Disk device and controlling method of disk device | |
JP5713926B2 (ja) | 磁気ディスク装置及び同磁気ディスク装置におけるデータバッファリング方法 | |
JP2006172032A (ja) | データ記憶装置及びそのバッファ制御方法 | |
JP2010211880A (ja) | ディスクドライブ装置、その制御方法、プログラム、及び、記録媒体 | |
US20150026427A1 (en) | Data reassign method and storage device |