JP2016018273A - 読出し転送制御方法及び補助記憶デバイスコントローラ - Google Patents

読出し転送制御方法及び補助記憶デバイスコントローラ Download PDF

Info

Publication number
JP2016018273A
JP2016018273A JP2014139023A JP2014139023A JP2016018273A JP 2016018273 A JP2016018273 A JP 2016018273A JP 2014139023 A JP2014139023 A JP 2014139023A JP 2014139023 A JP2014139023 A JP 2014139023A JP 2016018273 A JP2016018273 A JP 2016018273A
Authority
JP
Japan
Prior art keywords
read
data
auxiliary storage
storage device
controller
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.)
Granted
Application number
JP2014139023A
Other languages
English (en)
Other versions
JP5849268B1 (ja
Inventor
裕揮 菅野
Hiroki Sugano
裕揮 菅野
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.)
Axell Corp
Original Assignee
Axell 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 Axell Corp filed Critical Axell Corp
Priority to JP2014139023A priority Critical patent/JP5849268B1/ja
Application granted granted Critical
Publication of JP5849268B1 publication Critical patent/JP5849268B1/ja
Publication of JP2016018273A publication Critical patent/JP2016018273A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】 補助記憶デバイスに格納されたデータの特性に応じて効率的に予測先読み処理を行う。
【解決手段】 補助記憶デバイスたるNAND型フラッシュメモリ22からの初回の読出しの際に(ステップS101における否定判定)、読み出す一塊データのデータサイズを把握して、Nエントリテーブル214の一エントリに登録しておく(S103)。2回目以降の読出しの際には(ステップS101における肯定判定)、そのサイズに応じた予測先読み処理を行う(S102)。また、読出し頻度の高い一塊データほど、Nエントリテーブル214にエントリは維持され(S103)、よって、サイズに応じた効率的な予測先読み処理が実現できる。
【選択図】 図3

Description

本発明は、読出し転送制御方法及び補助記憶デバイスコントローラに関し、特に、ホスト機器からの次の読出し要求に係る読み出すべきデータを予測して予め補助記憶デバイスから読み出しておく先読み処理を行うような読出し転送制御方法及び補助記憶デバイスコントローラに関する。
パーソナルコンピュータ等の汎用機器やゲーム機等の専用機器は、大容量データを取り扱う場合も多いが、その際には、かかるデータを、通常、補助(外部)記憶装置に格納しておき、必要なときに必要なデータを読み出して処理を行うということが一般的である。また、そのとき両者間のインターフェースの統一等の観点から、間にコントローラを介することが一般的であるが、そのときの論理ブロック図を図7(a)に示す。ここで、ホスト機器100は、上述のパーソナルコンピュータ等の汎用機器やゲーム機等の専用機器であり、補助記憶デバイス300は、ハードディスクや、最近ではNAND型フラッシュメモリに代表されるSSD(Solid State Device)である。なお、物理的には、コントローラ200と補助記憶デバイス300が一体で構成されていることが一般的である。また、コントローラ200と補助記憶デバイス300とが、ホスト機器100の機能を構成する装置内に内蔵される場合も多い。ホスト機器100とコントローラ200との間のインターフェースとしては、具体的に、ST−506、SCSI(Small Computer System Interface)、IDE(Integrated Drive Electronics)、ATA(Advanced Technology Attachment)、SATA(Serial ATA)、eSATA(External SATA)等がある。
ここで、ホスト機器100が、補助記憶デバイス300に対してデータの転送を要求してから、当該データを受け取るまでには、補助記憶デバイス300の読出し処理に起因したレイテンシが発生してしまう。図7(b)は、このレイテンシを説明するための図である。ホスト機器100が、補助記憶デバイス300側に、リクエスト[Read A0](アドレスA0からのデータを読み出して送れという要求)を発すると、それを受け取ったコントローラ200は、そのリクエストに基づき補助記憶デバイス300に対して読出しの指示を行う。コントローラ200は、補助記憶デバイス300から、リクエスト[Read A0]に対応するデータD0を受け取ると、それをホスト機器100に転送する。ホスト機器100がデータD0を受け取ってから、次に発するリクエスト[Read A]についても同様である。このようなレイテンシは、例えばNAND型フラッシュメモリであれば、数十から数百μsである。
つまり、ホスト機器100は、補助記憶デバイス300に対して読出し要求を行ってから、要求に係るデータを受け取るまでに必ず所定時間が掛かってしまうのであるが、このレイテンシの影響は、ホスト機器100における処理速度と、補助記憶デバイス300の読み出し速度のアンバランスが大きくなるほど、ホスト機器100の処理能力(パフォーマンス)の低下として現れてくる。例えば、動画処理システム、すなわち、補助記憶デバイス300に格納された動画データを読み出してきて、ホスト機器100が表示等の画像処理を行うシステムにあっては、画像処理、例えばデコード、が中断してしまい、動画が頻繁に停止したり、解像度が落ちてしまうような状況となる。
上述のような課題を鑑み、コントローラ200が、ホスト機器100からのある読出し要求に基づくデータの転送を行った後、ホスト機器100から次に読出し要求を受け取る前に、次に読出し要求されるであろうデータを予測して、予め補助記憶デバイス300から読み出して確保しておく、という技術が開発された。かかる技術によれば、その予測が当たっていれば、ホスト機器100から次の読出し要求を受け取ってその後通常通り補助記憶デバイス300に読出しの指示をするのではなく、当該次の読出し要求を受け取った時点で、予め読み出して確保しておいたデータをホスト機器100に転送できることとなるので、その分、要求されたデータを早くホスト機器100に返せることになり、ホスト機器100の処理能力に対する影響をその分抑えることができる。この時間的関係を図8に示す。太線が予測当たった場合であり、破線が予測を行わない場合である。
特許文献1はかかる予測の技術を開示している。すなわち、特許文献1内のHDC(51)が、コントローラ200に対応しており、ディスクキャッシュ(54)に先読みしたデータが格納される(段落[0026]〜[0027])。また、特許文献1においては、2段構えの構成となっており、インテリジェントな予測は、HDCカード(21)内のHDC(31)が行っており、HDCカード(21)内にもディスクキャッシュ(34)が設けられている(段落[0029]〜[0032])。
また、特許文献2は、かかる予測技術に特定の特徴を与えたものである。すなわち、当該文献においては、ホスト機器100に対応するホストコンピュータ(6)からも先読みを指示できるようにして柔軟に予測先読みを行う、というものである。具体的には、ホストコンピュータ(6)が、アドレス又はファイル名を含む先読みコマンドを発する(段落[0030]、[0043]〜[0046]、図4及び図5)。
特開2001−125829号公報 特開2010−191983号公報
ところで、予測先読み技術において、ホスト機器100にとっては、補助記憶デバイス300から連続して読み出す一塊りのデータの大きさに応じて、効率的に予測先読み処理が行われることが好ましい場合がある。特に、扱うデータが画像データである場合、補助記憶デバイス300には、種々の大きさの複数の画像データが、各々塊りとして格納されている。また、ホスト機器100にとっては、補助記憶デバイス300から読み出される頻度に応じて、効率的に予測先読み処理が行われることが好ましい場合がある。特に動画処理においては、頻繁に表示される画像(例えば、毎フレーム必ず表示されるデータ)とごくまれにしか表示されない画像とがあり、それらを考慮した効率的な予測先読み処理が望まれる。しかしながら、上述の従来の予測先読み技術においては、かかる特定の処理要求を叶える技術は存在しない。
本発明は上述のような事情から為されたものであり、本発明の目的は、補助記憶デバイスに格納されたデータの特性に応じて効率的に予測先読み処理を行うことができる読出し転送制御方法及び補助記憶デバイスコントローラを提供することにある。
上記目的を達成するため、本発明の読出し転送制御方法は、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納された複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの空いた時間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理するコントローラにおける読出し転送制御方法であって、前記コントローラは、前記補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことを要旨とする。
このとき、特に、前記コントローラは、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、2回目以降の読出しの際に、そのサイズに応じて予測先読みを打ち切ることが特徴である。
具体的には、例えば、前記コントローラは、前記読出し要求に含まれる読出し要求アドレス及び読出し要求サイズに基づき、その読出し要求アドレスにその読出し要求サイズに加えて得られた値を、次回の読出し要求に係る読出し要求アドレスと予測し、その予測アドレスが、前記補助記憶デバイスから読み出す前記一塊データの先頭アドレスに前記サイズを加えて得られた値を越えたときに、前記予測先読みを打ち切る。
また、好適には、前記コントローラは、複数のエントリからなるテーブルを有しており、前記サイズの情報は、読出しに係る一塊データを特定する情報と共に、一のエントリに格納しておく。
そのとき、各エントリには前記一塊データについて読出し回数の情報が含まれており、前記コントローラは、前記複数のエントリの空きがなくなった場合には、前記読出し回数の少ない一塊データに係るエントリを無効とし、新たに読み出される一塊データに割り当てることが好適である。
また、典型的には、前記一塊データは画像データであり、前記補助記憶デバイスはNAND型フラッシュメモリである。また、典型的には、前記コントローラと前記ホスト機器との間のインターフェースは、SATAである。
また、上記目的を達成するため、本発明の補助記憶デバイスコントローラは、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納された複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの空いた時間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理する補助記憶デバイスコントローラであって、前記補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことを要旨とする。
本発明の読出し転送制御方法及び補助記憶デバイスコントローラによれば、補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことにより、かかるデータの特性に応じて効率的に予測先読み処理を行うことができる。
本発明の読出し転送制御方法の一実施形態が適用される処理システムの構成を示すブロック図である。 Nエントリテーブル214及び読出し処理用パラメータ格納部213の詳細を説明するための図である。 制御部212が実行する予測先読み処理を含む読出し転送処理の概要手順を示すフローチャートである。 制御部212が実行する予測先読み処理を含む読出し転送処理手順の詳細を示すフローチャート(イ)である。 制御部212が実行する予測先読み処理を含む読出し転送処理手順の詳細のうちの、図3の処理から引き続く部分を示すフローチャート(ロ)である。 本発明の一実施形態における読出し転送処理による処理の具体例を説明するための図である。 従来の技術を説明するための図である。 従来の技術を説明するための図である。
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
図1は、本発明の読出し転送制御方法の一実施形態が適用される処理システムの構成を示すブロック図である。同図に示すように、同処理システムは、パーソナルコンピュータ等の汎用機器やゲーム機等の専用機器の本体たるホスト機器1と、そのホスト機器1と所定のインターフェースで接続される補助記憶装置2とで構成されている。所定のインターフェースとしては、ST−506、SCSI、IDE、ATA、SATA、eSATA等があるが、最近では、SATA及びeSATAが主流になってきている。
補助記憶装置2は、少なくとも、補助記憶デバイスの一例である複数のNAND型フラッシュメモリ22と、そのNAND型フラッシュメモリ22に対するデータの読出し/書込みの制御を行うコントローラ21と、NAND型フラッシュメモリ22から先読みしたデータを確保しておくための読出しバッファメモリ23と、を備えている。なお、補助記憶デバイスとして、NAND型フラッシュメモリ22には限定されてないが、ホスト機器1の処理速度と補助記憶デバイスの読出し速度との関係で、ホスト機器1からの読出し要求があった場合に、ホスト機器1の処理能力を低下させてしまうほどのレイテンシが生じてしまうことが前提である。ここで、NAND型フラッシュメモリ22の容量は、全体として、例えば64Gビットである。また、読出しバッファメモリ23の容量は、8kバイト〜32kバイトが好適である。なお、NAND型フラッシュメモリ22には、論理的に一塊の領域に格納されたデータ(以下、「一塊データ」と称す)であって、一度に、又は連続的に複数回で読み出されるべきデータが複数個格納されている。ここでは、これらの複数の一塊データは、それぞれサイズは異なるものであり、また、読出し頻度も異なるものである。かかる一塊データとしては、画像データがある。
コントローラ21は、少なくとも、ホストインターフェース211、制御部212、読出し処理用パラメータ格納部213、及びNエントリテーブル214を有している。ホストインターフェース211は、前述の所定のインターフェースの規格手順に基づいて、ホスト機器1とのやりとりを行うためのインターフェースである。
Nエントリテーブル214は、NAND型フラッシュメモリ22に格納された複数の一塊データのうち、ホスト機器1からの読出し要求により「読み出されたことのある一塊データ(以下、「読出しデータ」と称す)」に係る情報を記憶するN個のエントリで構成されたテーブルである。1エントリは、図2(a)に示すように、読出しデータの開始アドレス214a、読出しデータのサイズ214b、読出しデータの読出し回数214c、及び当エントリの有効/無効フラグ124dで構成されている。ここで、読出しデータの開始アドレス214aは、対応する読出しデータのNAND型フラッシュメモリ22上での先頭記憶アドレスに対応するものである。読出しデータのサイズ214bは、最終的に、対応する読出しデータのサイズに対応するものである。読出しデータの読出し回数214cは、文字通り、対応する読出しデータが読み出されるごとにカウントアップされる情報である。当エントリの有効/無効フラグ214dは、そのエントリがその段階で有効か無効かを示す情報である。なお、このNエントリテーブル214は、ハードウェアとしては、Nの個数に応じてSRAMで構成されたり、レジスタで構成されたりする。
読出し処理用パラメータ格納部213は、コントローラ21がホスト機器1からの読出し要求に応じて行う処理の過程で、必要な情報を一時確保しておくためのパラメータバッファである。読出し要求アドレス格納部213a及び読出し要求サイズ格納部213bは、ホスト機器1からの読出し要求コマンドに含まれる要求ごとの読出し要求アドレス及び読出し要求サイズをそれぞれ一時的に格納するための領域である。また、予測アドレス格納部213cは、ホスト機器1からのある読出し要求に応じたデータ転送の後に、コントローラ21が予測した、次のホスト機器1からの読出し要求に係る読出し要求アドレスが格納される領域である。また、前回アドレス格納部213dは、NAND型フラッシュメモリ22に格納された一塊データの初回読出し時における、読出し要求ごとの前回の要求に係る読出し要求アドレスが格納される領域である。また、エントリインデックス格納部213eは、初回読出し中の読出しデータに対応したエントリの番号が格納される領域である。
制御部212は、ホストインターフェース211を介してホスト機器1から受け取った読出し要求に基づいて、読出し処理用パラメータ格納部213及びNエントリテーブル214に対して書換え操作を行いつつ、後述の予測先読み処理を含む読出し転送処理を実行する。なお、コントローラ21には、上述の構成以外に、各種の構成、例えばNAND型フラッシュメモリ22との間のインターフェース回路等、を備えているが省略している。
次に、本発明の読出し転送制御方法の一実施形態におけるコントローラ21の制御部212が実行する予測先読み処理を含む読出し転送処理について説明する。
まず、本発明における予測先読み処理のポリシーは、以下の如くである。
(イ)各一塊データのサイズに応じた予測先読み処理を行う。具体的には、初回の読出しの際にデータサイズを把握し、2回目以降の読出しの際には、そのサイズに応じた先読みを行う。
(ロ)各一塊データの読出し頻度に応じて、予測先読み処理を行う。具体的には、読出し頻度の高い一塊データほど、(イ)のポリシーに基づく処理を優先的に行う。
図3は、上述のポリシーに基づいて制御部212が実行する予測先読み処理を含む読出し転送処理の概要手順を示すフローチャートである。すなわち、ホスト機器1から、任意の一塊データに対するデータ読出しの要求があった場合、制御部212は、そのデータ読出しが、Nエントリテーブル214のいずれかのエントリに登録されている2回目以降のデータ読出しか否かを判定する(ステップS101)。なお、一度読み出された一塊データであっても、読出し頻度の低いデータについては後述のようにエントリから削除されてしまうので、一度読み出されたからといって必ずエントリとして登録が残っているとは限らない。
当該データ読出しが、Nエントリテーブル214のいずれかのエントリに登録されている2回目以降のデータ読出しの場合(ステップS101において肯定判定)、当該データ読出しに係る複数の読出し要求のうち、1つ目の要求については、NAND型フラッシュメモリ22からデータを読み出してホスト機器1に転送し、以降、予測して読出しバッファメモリ23に先読みしておく。そして、2つ目以降の要求については、予測が当たっていれば、読出しバッファメモリ23に格納しておいたデータを転送する(ステップS102)。但し、当該一塊データのサイズに応じて先読みは終了する。一方、当該データ読出しが、Nエントリテーブル214のいずれかのエントリに登録されている2回目以降のデータ読出しではない場合(ステップS101において否定判定)、いずれかのエントリ(空きがあればそれを利用し、なければ、読出し頻度の低い一塊データに係るエントリを削除)に登録し、当該複数の要求に基づき、順に、NAND型フラッシュメモリ22からデータを読み出してホスト機器1に転送しつつ、当該一塊データのサイズを算定して、エントリに登録しておく。かかる処理により、複数の一塊データのそれぞれのサイズと読出し頻度が有意に異なる場合、効率的な予測先読み処理が可能となる。
図4及び図5は、制御部212が実行する予測先読み処理を含む読出し転送処理手順の詳細を示すフローチャートである。以下、図1及び図2を参照しつつ、図4及び図5に示された処理手順を順に説明する。なお、概して、図5に示された処理が、一塊のデータの初回読出し時における処理であり、図4に示された処理が、2回目以降の読出し時における処理である。
そこで、まず、コントローラ21の制御部212は、常時ホスト機器1からの読出し要求を監視しており(ステップS1)、読出し要求を受けると、当該読出し要求に含まれる読出し要求アドレス及び読出し要求サイズを、それぞれ、読出し要求アドレス格納部213a及び読出し要求サイズ格納部213bに一旦確保しておく(ステップS2)。次に、読出し要求アドレス格納部213aに格納した当該読出し要求アドレスと一致する、読出しデータの開始アドレス214aを有し、かつ有効なエントリ(有効/無効フラグ214dによる)があるか否かを判定する(ステップS3)。
ステップS3における判定が肯定判定の場合、当該読出し要求は、当該エントリ(アドレスが一致したエントリ)に係る一塊データの2回目以降のデータ読出しの1つ目の読出し要求である、ということである。従って、その場合、当該読出し要求アドレス及び読出し要求サイズ(読出し要求アドレス格納部213a及び読出し要求サイズ格納部213bに確保したアドレス及びサイズ)に基づいて、NAND型フラッシュメモリ22からデータを読み出してホスト機器1に転送する(ステップS4)。加えて、当該エントリ内の読出しデータの読出し回数214cをインクリメント(+1)して(ステップS5)、読出し回数を増やす。そして、ステップS6に進む。一方、ステップS3における判定が否定判定の場合、当該読出し要求アドレスが、予測アドレス格納部213cに格納された予測アドレスと一致するか否かを判定する(ステップS9)。
ステップS9における判定が否定判定の場合、ある一塊データの1回目のデータ読出しであると判断できるので、ステップS11に移行する。このステップS11以降の処理については、後述する。一方、ステップS9における判定が肯定判定の場合、当該読出し要求は、当該エントリに係る一塊データの2回目以降のデータ読出しの2つ目以降の読出し要求である、ということである。従って、その場合、予測して読み出しておいたデータが読出しバッファメモリ23に格納されているはずなので、そのデータをホスト機器1に転送する(ステップS10)。そして、ステップS6に進む。
ステップS6においては、当該読出し要求アドレスに対して当該読出し要求サイズを加算して、次回の予測アドレスとして予測アドレス格納部213cに格納しておく。
次に、ステップS6で得られた予測アドレスが、当該エントリ内の、読出しデータの開始アドレス214aに読出しデータのサイズ214bを足したものよりも小さいか否かを判定する(ステップS7)。この判定において、小さければ(肯定判定)、当該一塊データの末端に達していないということなので、予測先読みは引き続き有効と判断され、従って、当該予測アドレスに基づいて、NAND型フラッシュメモリ22からデータを読み出して読出しバッファメモリ23に確保しておく(ステップS8)。一方、小さくなければ(否定判定)、当該一塊データの末端を越えているということなので、その時点で予測先読みは有効ではなくなっているので、そのまま次の読出し要求を待つ。
一方、ステップS9において、ある一塊データの1回目のデータ読出しであると判断されてステップS11に移行した場合、当該読出し要求アドレスが、前回アドレス格納部213dに格納された前回アドレスに、当該読出し要求サイズを足したものに一致しているか否かを判定する(ステップS11)。
ステップS11における判定が否定判定の場合、当該読出し要求は、任意の一塊データの初回のデータ読出しの1つ目の読出し要求である、ということである。従って、その場合、そのデータ読出しに新たにNエントリテーブル214に一エントリとして登録するのであるが、まず、Nエントリテーブル214に空きエントリがあるか否かを判定する(ステップS16)。これは、有効/無効フラグ214dが無効となっているエントリがあるかを検索すればよい。空きエントリがなければ(ステップS16において否定判定)、読出しデータの読出し回数214cが最も小さいエントリを検索する(ステップS17)。そして、ステップS18において、空きがあった場合はそのエントリに、また、空きがなかった場合は、ステップS17で検索したエントリに、当該読出し要求に係る情報を格納する。すなわち、当該読出し要求に係る読出し要求アドレス及び読出し要求サイズを、それぞれ、読出しデータの開始アドレス214a及び読出しデータのサイズ214bとして格納する。また読出しデータの読出し回数214cに“1”を格納する。また、有効/無効フラグ214dを有効とする。そして、ステップS13に進む。
一方、ステップS11における判定が肯定判定の場合、当該読出し要求は、任意の一塊データの初回のデータ読出しの2つ目以降の読出し要求である、ということである。従って、その場合、エントリインデックス格納部213eに格納されたエントリ番号のエントリ内の読出しデータのサイズ214bに当該読出し要求サイズを加算する(ステップS12)。この処理が、当該一塊データのサイズの算定を進める部分である。そして、ステップS13に進む。
ステップS13においては、当該読出し要求アドレス及び読出し要求サイズに基づいて、NAND型フラッシュメモリ22からデータを読み出してホスト機器1に転送する。そして、次に、当該読出し要求アドレスを、前回アドレス格納部213dに格納し(ステップS14)、次に、当該エントリの番号をエントリインデックス格納部213eに格納し(ステップS15)、次の読出し要求を待つ。
次に、上述の読出し転送処理による処理の具体例について説明する。図6(a)に示すようにNAND型フラッシュメモリ22に格納された一塊データたる画像データAを読み出す場合を例に説明する。この画像データAは、NAND型フラッシュメモリ22におけるアドレス10000から1200バイトで記憶されている(物理的には通常セクタ管理される)。なお、これらのアドレス及びサイズの値は説明の便宜のための数値である。そこで、例えば、ホスト機器1から400バイトごとの読出し要求が来るものとする。図6(b)は、初回読出しの際の、各読出し要求に応じた、エントリ及び前回アドレスの遷移を示す図である。また、図6(c)は、2回目以降の読出しの際の、各読出し要求に応じた、読出し回数の変化、並びに予測アドレスバッファメモリの内容の遷移を示す図である。
以上のように、本発明の一実施形態によれば、NAND型フラッシュメモリ22から連続して読み出す一塊データの大きさに応じて、また、NAND型フラッシュメモリ22から読み出される頻度に応じて、効率的に予測先読み処理を行うことができる。
本発明の読出し転送制御方法は、例えば、補助記憶デバイスに格納された画像データを読み出す際に採用できる。
1 ホスト機器
2 補助記憶装置
21 コントローラ
211 ホストインターフェース
212 制御部
213 読出し処理用パラメータ格納部
214 Nエントリテーブル
22 NAND型フラッシュメモリ
23 読出しバッファメモリ
100 ホスト機器
200 コントローラ
300 補助記憶デバイス
上記目的を達成するため、本発明の読出し転送制御方法は、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納されたサイズの異なる複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理するコントローラにおける読出し転送制御方法であって、前記コントローラは、前記補助記憶デバイスから読み出す前記一塊データの大きさに応じて、予測先読み処理を行うに際し、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、2回目以降の読出しの際に、そのサイズに応じて前記予測先読み処理を打ち切ることを要旨とする。
また、上記目的を達成するため、本発明の補助記憶デバイスコントローラは、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納されたサイズの異なる複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理する補助記憶デバイスコントローラであって、前記補助記憶デバイスから読み出す前記一塊データの大きさに応じて、予測先読み処理を行うに際し、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、2回目以降の読出しの際に、そのサイズに応じて前記予測先読み処理を打ち切ることを要旨とする。

Claims (9)

  1. ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納された複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの空いた時間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理するコントローラにおける読出し転送制御方法であって、
    前記コントローラは、前記補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことを特徴とする読出し転送制御方法。
  2. 前記コントローラは、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、2回目以降の読出しの際に、そのサイズに応じて予測先読みを打ち切ることを特徴とする請求項1に記載の読出し転送制御方法。
  3. 前記コントローラは、前記読出し要求に含まれる読出し要求アドレス及び読出し要求サイズに基づき、その読出し要求アドレスにその読出し要求サイズに加えて得られた値を、次回の読出し要求に係る読出し要求アドレスと予測し、その予測アドレスが、前記補助記憶デバイスから読み出す前記一塊データの先頭アドレスに前記サイズを加えて得られた値を越えたときに、前記予測先読みを打ち切ることを特徴とする請求項2に記載の読出し転送制御方法。
  4. 前記コントローラは、複数のエントリからなるテーブルを有しており、前記サイズの情報は、読出しに係る一塊データを特定する情報と共に、一のエントリに格納しておくことを特徴とする請求項2に記載の読出し転送制御方法。
  5. 各エントリには前記一塊データについて読出し回数の情報が含まれており、前記コントローラは、前記複数のエントリの空きがなくなった場合には、前記読出し回数の少ない一塊データに係るエントリを無効とし、新たに読み出される一塊データに割り当てることを特徴とする請求項4に記載の読出し転送制御方法。
  6. 前記一塊データは、画像データであることを特徴とする請求項1に記載の読出し転送制御方法。
  7. 前記補助記憶デバイスは、NAND型フラッシュメモリであることを特徴とする請求項1に記載の読出し転送制御方法。
  8. 前記コントローラと前記ホスト機器との間のインターフェースは、SATAであることを特徴とする請求項1に記載の読出し転送制御方法。
  9. ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納された複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの空いた時間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理する補助記憶デバイスコントローラであって、
    前記補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことを特徴とする補助記憶デバイスコントローラ。
JP2014139023A 2014-07-04 2014-07-04 読出し転送制御方法及び補助記憶デバイスコントローラ Active JP5849268B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014139023A JP5849268B1 (ja) 2014-07-04 2014-07-04 読出し転送制御方法及び補助記憶デバイスコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014139023A JP5849268B1 (ja) 2014-07-04 2014-07-04 読出し転送制御方法及び補助記憶デバイスコントローラ

Publications (2)

Publication Number Publication Date
JP5849268B1 JP5849268B1 (ja) 2016-01-27
JP2016018273A true JP2016018273A (ja) 2016-02-01

Family

ID=55176175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014139023A Active JP5849268B1 (ja) 2014-07-04 2014-07-04 読出し転送制御方法及び補助記憶デバイスコントローラ

Country Status (1)

Country Link
JP (1) JP5849268B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109889656A (zh) * 2018-12-29 2019-06-14 深圳豪客互联网有限公司 一种数据读取方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134488A (ja) * 1999-11-08 2001-05-18 Hitachi Ltd ディスク記憶装置用キャッシュ制御方法
JP2013077294A (ja) * 2011-09-16 2013-04-25 Ricoh Co Ltd 印刷装置および印刷装置の制御方法
JP2014038511A (ja) * 2012-08-17 2014-02-27 Fujitsu Ltd 情報処理装置、情報処理方法、及び情報処理プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001134488A (ja) * 1999-11-08 2001-05-18 Hitachi Ltd ディスク記憶装置用キャッシュ制御方法
JP2013077294A (ja) * 2011-09-16 2013-04-25 Ricoh Co Ltd 印刷装置および印刷装置の制御方法
JP2014038511A (ja) * 2012-08-17 2014-02-27 Fujitsu Ltd 情報処理装置、情報処理方法、及び情報処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109889656A (zh) * 2018-12-29 2019-06-14 深圳豪客互联网有限公司 一种数据读取方法、装置、设备及存储介质

Also Published As

Publication number Publication date
JP5849268B1 (ja) 2016-01-27

Similar Documents

Publication Publication Date Title
TWI438628B (zh) 資料儲存系統及資料儲存媒介
US8688897B2 (en) Cache memory management in a flash cache architecture
US20160342545A1 (en) Data memory device
US20130212319A1 (en) Memory system and method of controlling memory system
JP2018169810A (ja) メモリシステムおよび制御方法
KR102216116B1 (ko) 메모리 모듈 및 그것의 동작 방법
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
JP6106028B2 (ja) サーバ及びキャッシュ制御方法
US20160110107A1 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US11537328B2 (en) Method and apparatus for executing host commands
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
US20210103445A1 (en) Method and apparatus for preprocessing data transfer commands
US10817186B2 (en) Memory system
CN114968099A (zh) 一种访问nvm的方法及nvm控制器
US20150186401A1 (en) Using file element accesses to select file elements in a file system to defragment
US8788712B2 (en) Compression block input/output reduction
US9778858B1 (en) Apparatus and method for scatter gather list handling for an out of order system
CN114281719A (zh) 用于通过地址映射来扩展命令编排的系统及方法
JP5849268B1 (ja) 読出し転送制御方法及び補助記憶デバイスコントローラ
US8356141B2 (en) Identifying replacement memory pages from three page record lists
US9632950B2 (en) Storage control device controlling access to a storage device and access controlling method of a storage device
JP7170093B2 (ja) 記憶デバイスのための改良された先読み能力
CN110908595A (zh) 存储装置及信息处理系统
US11449428B2 (en) Enhanced read-ahead capability for storage devices
US11281575B2 (en) Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151020

R150 Certificate of patent or registration of utility model

Ref document number: 5849268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250