(57)【特許請求の範囲】
【請求項１】
ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納されたサイズの異なる複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理するコントローラにおける読出し転送制御方法であって、
前記コントローラは、前記補助記憶デバイスから読み出す前記一塊データの大きさに応じて、予測先読み処理を行うに際し、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、２回目以降の読出しの際に、そのサイズに応じて前記予測先読み処理を打ち切ることを特徴とする読出し転送制御方法。
【請求項２】
前記コントローラは、前記読出し要求に含まれる読出し要求アドレス及び読出し要求サイズに基づき、その読出し要求アドレスにその読出し要求サイズに加えて得られた値を、次回の読出し要求に係る読出し要求アドレスと予測し、その予測アドレスが、前記補助記憶デバイスから読み出す前記一塊データの先頭アドレスに前記サイズを加えて得られた値を越えたときに、前記予測先読みを打ち切ることを特徴とする請求項１に記載の読出し転送制御方法。
【請求項３】
前記コントローラは、複数のエントリからなるテーブルを有しており、前記サイズの情報は、読出しに係る一塊データを特定する情報と共に、一のエントリに格納しておくことを特徴とする請求項１に記載の読出し転送制御方法。
【請求項４】
各エントリには前記一塊データについて読出し回数の情報が含まれており、前記コントローラは、前記複数のエントリの空きがなくなった場合には、前記読出し回数の少ない一塊データに係るエントリを無効とし、新たに読み出される一塊データに割り当てることを特徴とする請求項３に記載の読出し転送制御方法。
【請求項５】
前記一塊データは、画像データであることを特徴とする請求項１に記載の読出し転送制御方法。
【請求項６】
前記補助記憶デバイスは、ＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１に記載の読出し転送制御方法。
【請求項７】
前記コントローラと前記ホスト機器との間のインターフェースは、ＳＡＴＡであることを特徴とする請求項１に記載の読出し転送制御方法。
【請求項８】
ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納されたサイズの異なる複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理する補助記憶デバイスコントローラであって、
前記補助記憶デバイスから読み出す前記一塊データの大きさに応じて、予測先読み処理を行うに際し、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、２回目以降の読出しの際に、そのサイズに応じて前記予測先読み処理を打ち切ることを特徴とする補助記憶デバイスコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読出し転送制御方法及び補助記憶デバイスコントローラに関し、特に、ホスト機器からの次の読出し要求に係る読み出すべきデータを予測して予め補助記憶デバイスから読み出しておく先読み処理を行うような読出し転送制御方法及び補助記憶デバイスコントローラに関する。
【背景技術】
【０００２】
パーソナルコンピュータ等の汎用機器やゲーム機等の専用機器は、大容量データを取り扱う場合も多いが、その際には、かかるデータを、通常、補助（外部）記憶装置に格納しておき、必要なときに必要なデータを読み出して処理を行うということが一般的である。また、そのとき両者間のインターフェースの統一等の観点から、間にコントローラを介することが一般的であるが、そのときの論理ブロック図を図７（ａ）に示す。ここで、ホスト機器１００は、上述のパーソナルコンピュータ等の汎用機器やゲーム機等の専用機器であり、補助記憶デバイス３００は、ハードディスクや、最近ではＮＡＮＤ型フラッシュメモリに代表されるＳＳＤ（Solid State Device）である。なお、物理的には、コントローラ２００と補助記憶デバイス３００が一体で構成されていることが一般的である。また、コントローラ２００と補助記憶デバイス３００とが、ホスト機器１００の機能を構成する装置内に内蔵される場合も多い。ホスト機器１００とコントローラ２００との間のインターフェースとしては、具体的に、ＳＴ−５０６、ＳＣＳＩ（Small Computer System Interface）、ＩＤＥ（Integrated Drive Electronics）、ＡＴＡ（Advanced Technology Attachment）、ＳＡＴＡ（Serial ＡＴＡ）、ｅＳＡＴＡ（External ＳＡＴＡ）等がある。
【０００３】
ここで、ホスト機器１００が、補助記憶デバイス３００に対してデータの転送を要求してから、当該データを受け取るまでには、補助記憶デバイス３００の読出し処理に起因したレイテンシが発生してしまう。図７（ｂ）は、このレイテンシを説明するための図である。ホスト機器１００が、補助記憶デバイス３００側に、リクエスト［Read A0］（アドレスA0からのデータを読み出して送れという要求）を発すると、それを受け取ったコントローラ２００は、そのリクエストに基づき補助記憶デバイス３００に対して読出しの指示を行う。コントローラ２００は、補助記憶デバイス３００から、リクエスト［Read A0］に対応するデータD0を受け取ると、それをホスト機器１００に転送する。ホスト機器１００がデータD0を受け取ってから、次に発するリクエスト［Read A１］についても同様である。このようなレイテンシは、例えばＮＡＮＤ型フラッシュメモリであれば、数十から数百μｓである。
【０００４】
つまり、ホスト機器１００は、補助記憶デバイス３００に対して読出し要求を行ってから、要求に係るデータを受け取るまでに必ず所定時間が掛かってしまうのであるが、このレイテンシの影響は、ホスト機器１００における処理速度と、補助記憶デバイス３００の読み出し速度のアンバランスが大きくなるほど、ホスト機器１００の処理能力（パフォーマンス）の低下として現れてくる。例えば、動画処理システム、すなわち、補助記憶デバイス３００に格納された動画データを読み出してきて、ホスト機器１００が表示等の画像処理を行うシステムにあっては、画像処理、例えばデコード、が中断してしまい、動画が頻繁に停止したり、解像度が落ちてしまうような状況となる。
【０００５】
上述のような課題を鑑み、コントローラ２００が、ホスト機器１００からのある読出し要求に基づくデータの転送を行った後、ホスト機器１００から次に読出し要求を受け取る前に、次に読出し要求されるであろうデータを予測して、予め補助記憶デバイス３００から読み出して確保しておく、という技術が開発された。かかる技術によれば、その予測が当たっていれば、ホスト機器１００から次の読出し要求を受け取ってその後通常通り補助記憶デバイス３００に読出しの指示をするのではなく、当該次の読出し要求を受け取った時点で、予め読み出して確保しておいたデータをホスト機器１００に転送できることとなるので、その分、要求されたデータを早くホスト機器１００に返せることになり、ホスト機器１００の処理能力に対する影響をその分抑えることができる。この時間的関係を図８に示す。太線が予測当たった場合であり、破線が予測を行わない場合である。
【０００６】
特許文献１はかかる予測の技術を開示している。すなわち、特許文献１内のＨＤＣ（５１）が、コントローラ２００に対応しており、ディスクキャッシュ（５４）に先読みしたデータが格納される（段落［００２６］〜［００２７］）。また、特許文献１においては、２段構えの構成となっており、インテリジェントな予測は、ＨＤＣカード（２１）内のＨＤＣ（３１）が行っており、ＨＤＣカード（２１）内にもディスクキャッシュ（３４）が設けられている（段落［００２９］〜［００３２］）。
【０００７】
また、特許文献２は、かかる予測技術に特定の特徴を与えたものである。すなわち、当該文献においては、ホスト機器１００に対応するホストコンピュータ（６）からも先読みを指示できるようにして柔軟に予測先読みを行う、というものである。具体的には、ホストコンピュータ（６）が、アドレス又はファイル名を含む先読みコマンドを発する（段落［００３０］、［００４３］〜［００４６］、図４及び図５）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００１−１２５８２９号公報
【特許文献２】特開２０１０−１９１９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、予測先読み技術において、ホスト機器１００にとっては、補助記憶デバイス３００から連続して読み出す一塊りのデータの大きさに応じて、効率的に予測先読み処理が行われることが好ましい場合がある。特に、扱うデータが画像データである場合、補助記憶デバイス３００には、種々の大きさの複数の画像データが、各々塊りとして格納されている。また、ホスト機器１００にとっては、補助記憶デバイス３００から読み出される頻度に応じて、効率的に予測先読み処理が行われることが好ましい場合がある。特に動画処理においては、頻繁に表示される画像（例えば、毎フレーム必ず表示されるデータ）とごくまれにしか表示されない画像とがあり、それらを考慮した効率的な予測先読み処理が望まれる。しかしながら、上述の従来の予測先読み技術においては、かかる特定の処理要求を叶える技術は存在しない。
【００１０】
本発明は上述のような事情から為されたものであり、本発明の目的は、補助記憶デバイスに格納されたデータの特性に応じて効率的に予測先読み処理を行うことができる読出し転送制御方法及び補助記憶デバイスコントローラを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明の読出し転送制御方法は、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納されたサイズの異なる複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理するコントローラにおける読出し転送制御方法であって、前記コントローラは、前記補助記憶デバイスから読み出す前記一塊データの大きさに応じて、予測先読み処理を行うに際し、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、２回目以降の読出しの際に、そのサイズに応じて前記予測先読み処理を打ち切ることを要旨とする。
【００１３】
具体的には、例えば、前記コントローラは、前記読出し要求に含まれる読出し要求アドレス及び読出し要求サイズに基づき、その読出し要求アドレスにその読出し要求サイズに加えて得られた値を、次回の読出し要求に係る読出し要求アドレスと予測し、その予測アドレスが、前記補助記憶デバイスから読み出す前記一塊データの先頭アドレスに前記サイズを加えて得られた値を越えたときに、前記予測先読みを打ち切る。
【００１４】
また、上記目的を達成するため、本発明の補助記憶デバイスコントローラは、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納されたサイズの異なる複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理する補助記憶デバイスコントローラであって、前記補助記憶デバイスから読み出す前記一塊データの大きさに応じて、予測先読み処理を行うに際し、前記一塊データの初回の読出しの際に、そのサイズを算定しておき、２回目以降の読出しの際に、そのサイズに応じて前記予測先読み処理を打ち切ることを要旨とする。
【００１５】
そのとき、各エントリには前記一塊データについて読出し回数の情報が含まれており、前記コントローラは、前記複数のエントリの空きがなくなった場合には、前記読出し回数の少ない一塊データに係るエントリを無効とし、新たに読み出される一塊データに割り当てることが好適である。
【００１６】
また、典型的には、前記一塊データは画像データであり、前記補助記憶デバイスはＮＡＮＤ型フラッシュメモリである。また、典型的には、前記コントローラと前記ホスト機器との間のインターフェースは、ＳＡＴＡである。
【００１７】
また、上記目的を達成するため、本発明の補助記憶デバイスコントローラは、ホスト機器からの読出し要求に応じて、補助記憶デバイスに格納された複数の一塊データから所望の一塊データを連続的に複数回に分けて読み出して前記ホスト機器に転送する際に、前記ホスト機器から次の読出し要求を受け取るまでの空いた時間に次の読出し要求に係るデータを予測して前記補助記憶デバイスから先読みしておくように処理する補助記憶デバイスコントローラであって、前記補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことを要旨とする。
【発明の効果】
【００１８】
本発明の読出し転送制御方法及び補助記憶デバイスコントローラによれば、補助記憶デバイスから読み出す前記一塊データの大きさと、その読出し頻度に応じて、予測先読み処理を行うことにより、かかるデータの特性に応じて効率的に予測先読み処理を行うことができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の読出し転送制御方法の一実施形態が適用される処理システムの構成を示すブロック図である。
【図２】Ｎエントリテーブル２１４及び読出し処理用パラメータ格納部２１３の詳細を説明するための図である。
【図３】制御部２１２が実行する予測先読み処理を含む読出し転送処理の概要手順を示すフローチャートである。
【図４】制御部２１２が実行する予測先読み処理を含む読出し転送処理手順の詳細を示すフローチャート（イ）である。
【図５】制御部２１２が実行する予測先読み処理を含む読出し転送処理手順の詳細のうちの、図３の処理から引き続く部分を示すフローチャート（ロ）である。
【図６】本発明の一実施形態における読出し転送処理による処理の具体例を説明するための図である。
【図７】従来の技術を説明するための図である。
【図８】従来の技術を説明するための図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。  
図１は、本発明の読出し転送制御方法の一実施形態が適用される処理システムの構成を示すブロック図である。同図に示すように、同処理システムは、パーソナルコンピュータ等の汎用機器やゲーム機等の専用機器の本体たるホスト機器１と、そのホスト機器１と所定のインターフェースで接続される補助記憶装置２とで構成されている。所定のインターフェースとしては、ＳＴ−５０６、ＳＣＳＩ、ＩＤＥ、ＡＴＡ、ＳＡＴＡ、ｅＳＡＴＡ等があるが、最近では、ＳＡＴＡ及びｅＳＡＴＡが主流になってきている。
【００２１】
補助記憶装置２は、少なくとも、補助記憶デバイスの一例である複数のＮＡＮＤ型フラッシュメモリ２２と、そのＮＡＮＤ型フラッシュメモリ２２に対するデータの読出し／書込みの制御を行うコントローラ２１と、ＮＡＮＤ型フラッシュメモリ２２から先読みしたデータを確保しておくための読出しバッファメモリ２３と、を備えている。なお、補助記憶デバイスとして、ＮＡＮＤ型フラッシュメモリ２２には限定されてないが、ホスト機器１の処理速度と補助記憶デバイスの読出し速度との関係で、ホスト機器１からの読出し要求があった場合に、ホスト機器１の処理能力を低下させてしまうほどのレイテンシが生じてしまうことが前提である。ここで、ＮＡＮＤ型フラッシュメモリ２２の容量は、全体として、例えば６４Ｇビットである。また、読出しバッファメモリ２３の容量は、８ｋバイト〜３２ｋバイトが好適である。なお、ＮＡＮＤ型フラッシュメモリ２２には、論理的に一塊の領域に格納されたデータ（以下、「一塊データ」と称す）であって、一度に、又は連続的に複数回で読み出されるべきデータが複数個格納されている。ここでは、これらの複数の一塊データは、それぞれサイズは異なるものであり、また、読出し頻度も異なるものである。かかる一塊データとしては、画像データがある。
【００２２】
コントローラ２１は、少なくとも、ホストインターフェース２１１、制御部２１２、読出し処理用パラメータ格納部２１３、及びＮエントリテーブル２１４を有している。ホストインターフェース２１１は、前述の所定のインターフェースの規格手順に基づいて、ホスト機器１とのやりとりを行うためのインターフェースである。
【００２３】
Ｎエントリテーブル２１４は、ＮＡＮＤ型フラッシュメモリ２２に格納された複数の一塊データのうち、ホスト機器１からの読出し要求により「読み出されたことのある一塊データ（以下、「読出しデータ」と称す）」に係る情報を記憶するＮ個のエントリで構成されたテーブルである。１エントリは、図２（ａ）に示すように、読出しデータの開始アドレス２１４ａ、読出しデータのサイズ２１４ｂ、読出しデータの読出し回数２１４ｃ、及び当エントリの有効／無効フラグ１２４ｄで構成されている。ここで、読出しデータの開始アドレス２１４ａは、対応する読出しデータのＮＡＮＤ型フラッシュメモリ２２上での先頭記憶アドレスに対応するものである。読出しデータのサイズ２１４ｂは、最終的に、対応する読出しデータのサイズに対応するものである。読出しデータの読出し回数２１４ｃは、文字通り、対応する読出しデータが読み出されるごとにカウントアップされる情報である。当エントリの有効／無効フラグ２１４ｄは、そのエントリがその段階で有効か無効かを示す情報である。なお、このＮエントリテーブル２１４は、ハードウェアとしては、Ｎの個数に応じてＳＲＡＭで構成されたり、レジスタで構成されたりする。
【００２４】
読出し処理用パラメータ格納部２１３は、コントローラ２１がホスト機器１からの読出し要求に応じて行う処理の過程で、必要な情報を一時確保しておくためのパラメータバッファである。読出し要求アドレス格納部２１３ａ及び読出し要求サイズ格納部２１３ｂは、ホスト機器１からの読出し要求コマンドに含まれる要求ごとの読出し要求アドレス及び読出し要求サイズをそれぞれ一時的に格納するための領域である。また、予測アドレス格納部２１３ｃは、ホスト機器１からのある読出し要求に応じたデータ転送の後に、コントローラ２１が予測した、次のホスト機器１からの読出し要求に係る読出し要求アドレスが格納される領域である。また、前回アドレス格納部２１３ｄは、ＮＡＮＤ型フラッシュメモリ２２に格納された一塊データの初回読出し時における、読出し要求ごとの前回の要求に係る読出し要求アドレスが格納される領域である。また、エントリインデックス格納部２１３ｅは、初回読出し中の読出しデータに対応したエントリの番号が格納される領域である。
【００２５】
制御部２１２は、ホストインターフェース２１１を介してホスト機器１から受け取った読出し要求に基づいて、読出し処理用パラメータ格納部２１３及びＮエントリテーブル２１４に対して書換え操作を行いつつ、後述の予測先読み処理を含む読出し転送処理を実行する。なお、コントローラ２１には、上述の構成以外に、各種の構成、例えばＮＡＮＤ型フラッシュメモリ２２との間のインターフェース回路等、を備えているが省略している。
【００２６】
次に、本発明の読出し転送制御方法の一実施形態におけるコントローラ２１の制御部２１２が実行する予測先読み処理を含む読出し転送処理について説明する。  
まず、本発明における予測先読み処理のポリシーは、以下の如くである。
（イ）各一塊データのサイズに応じた予測先読み処理を行う。具体的には、初回の読出しの際にデータサイズを把握し、２回目以降の読出しの際には、そのサイズに応じた先読みを行う。  
（ロ）各一塊データの読出し頻度に応じて、予測先読み処理を行う。具体的には、読出し頻度の高い一塊データほど、（イ）のポリシーに基づく処理を優先的に行う。
【００２７】
図３は、上述のポリシーに基づいて制御部２１２が実行する予測先読み処理を含む読出し転送処理の概要手順を示すフローチャートである。すなわち、ホスト機器１から、任意の一塊データに対するデータ読出しの要求があった場合、制御部２１２は、そのデータ読出しが、Ｎエントリテーブル２１４のいずれかのエントリに登録されている２回目以降のデータ読出しか否かを判定する（ステップＳ１０１）。なお、一度読み出された一塊データであっても、読出し頻度の低いデータについては後述のようにエントリから削除されてしまうので、一度読み出されたからといって必ずエントリとして登録が残っているとは限らない。
【００２８】
当該データ読出しが、Ｎエントリテーブル２１４のいずれかのエントリに登録されている２回目以降のデータ読出しの場合（ステップＳ１０１において肯定判定）、当該データ読出しに係る複数の読出し要求のうち、１つ目の要求については、ＮＡＮＤ型フラッシュメモリ２２からデータを読み出してホスト機器１に転送し、以降、予測して読出しバッファメモリ２３に先読みしておく。そして、２つ目以降の要求については、予測が当たっていれば、読出しバッファメモリ２３に格納しておいたデータを転送する（ステップＳ１０２）。但し、当該一塊データのサイズに応じて先読みは終了する。一方、当該データ読出しが、Ｎエントリテーブル２１４のいずれかのエントリに登録されている２回目以降のデータ読出しではない場合（ステップＳ１０１において否定判定）、いずれかのエントリ（空きがあればそれを利用し、なければ、読出し頻度の低い一塊データに係るエントリを削除）に登録し、当該複数の要求に基づき、順に、ＮＡＮＤ型フラッシュメモリ２２からデータを読み出してホスト機器１に転送しつつ、当該一塊データのサイズを算定して、エントリに登録しておく。かかる処理により、複数の一塊データのそれぞれのサイズと読出し頻度が有意に異なる場合、効率的な予測先読み処理が可能となる。
【００２９】
図４及び図５は、制御部２１２が実行する予測先読み処理を含む読出し転送処理手順の詳細を示すフローチャートである。以下、図１及び図２を参照しつつ、図４及び図５に示された処理手順を順に説明する。なお、概して、図５に示された処理が、一塊のデータの初回読出し時における処理であり、図４に示された処理が、２回目以降の読出し時における処理である。
【００３０】
そこで、まず、コントローラ２１の制御部２１２は、常時ホスト機器１からの読出し要求を監視しており（ステップＳ１）、読出し要求を受けると、当該読出し要求に含まれる読出し要求アドレス及び読出し要求サイズを、それぞれ、読出し要求アドレス格納部２１３ａ及び読出し要求サイズ格納部２１３ｂに一旦確保しておく（ステップＳ２）。次に、読出し要求アドレス格納部２１３ａに格納した当該読出し要求アドレスと一致する、読出しデータの開始アドレス２１４ａを有し、かつ有効なエントリ（有効／無効フラグ２１４ｄによる）があるか否かを判定する（ステップＳ３）。
【００３１】
ステップＳ３における判定が肯定判定の場合、当該読出し要求は、当該エントリ（アドレスが一致したエントリ）に係る一塊データの２回目以降のデータ読出しの１つ目の読出し要求である、ということである。従って、その場合、当該読出し要求アドレス及び読出し要求サイズ（読出し要求アドレス格納部２１３ａ及び読出し要求サイズ格納部２１３ｂに確保したアドレス及びサイズ）に基づいて、ＮＡＮＤ型フラッシュメモリ２２からデータを読み出してホスト機器１に転送する（ステップＳ４）。加えて、当該エントリ内の読出しデータの読出し回数２１４ｃをインクリメント（＋１）して（ステップＳ５）、読出し回数を増やす。そして、ステップＳ６に進む。一方、ステップＳ３における判定が否定判定の場合、当該読出し要求アドレスが、予測アドレス格納部２１３ｃに格納された予測アドレスと一致するか否かを判定する（ステップＳ９）。
【００３２】
ステップＳ９における判定が否定判定の場合、ある一塊データの１回目のデータ読出しであると判断できるので、ステップＳ１１に移行する。このステップＳ１１以降の処理については、後述する。一方、ステップＳ９における判定が肯定判定の場合、当該読出し要求は、当該エントリに係る一塊データの２回目以降のデータ読出しの２つ目以降の読出し要求である、ということである。従って、その場合、予測して読み出しておいたデータが読出しバッファメモリ２３に格納されているはずなので、そのデータをホスト機器１に転送する（ステップＳ１０）。そして、ステップＳ６に進む。
【００３３】
ステップＳ６においては、当該読出し要求アドレスに対して当該読出し要求サイズを加算して、次回の予測アドレスとして予測アドレス格納部２１３ｃに格納しておく。
【００３４】
次に、ステップＳ６で得られた予測アドレスが、当該エントリ内の、読出しデータの開始アドレス２１４ａに読出しデータのサイズ２１４ｂを足したものよりも小さいか否かを判定する（ステップＳ７）。この判定において、小さければ（肯定判定）、当該一塊データの末端に達していないということなので、予測先読みは引き続き有効と判断され、従って、当該予測アドレスに基づいて、ＮＡＮＤ型フラッシュメモリ２２からデータを読み出して読出しバッファメモリ２３に確保しておく（ステップＳ８）。一方、小さくなければ（否定判定）、当該一塊データの末端を越えているということなので、その時点で予測先読みは有効ではなくなっているので、そのまま次の読出し要求を待つ。
【００３５】
一方、ステップＳ９において、ある一塊データの１回目のデータ読出しであると判断されてステップＳ１１に移行した場合、当該読出し要求アドレスが、前回アドレス格納部２１３ｄに格納された前回アドレスに、当該読出し要求サイズを足したものに一致しているか否かを判定する（ステップＳ１１）。
【００３６】
ステップＳ１１における判定が否定判定の場合、当該読出し要求は、任意の一塊データの初回のデータ読出しの１つ目の読出し要求である、ということである。従って、その場合、そのデータ読出しに新たにＮエントリテーブル２１４に一エントリとして登録するのであるが、まず、Ｎエントリテーブル２１４に空きエントリがあるか否かを判定する（ステップＳ１６）。これは、有効／無効フラグ２１４ｄが無効となっているエントリがあるかを検索すればよい。空きエントリがなければ（ステップＳ１６において否定判定）、読出しデータの読出し回数２１４ｃが最も小さいエントリを検索する（ステップＳ１７）。そして、ステップＳ１８において、空きがあった場合はそのエントリに、また、空きがなかった場合は、ステップＳ１７で検索したエントリに、当該読出し要求に係る情報を格納する。すなわち、当該読出し要求に係る読出し要求アドレス及び読出し要求サイズを、それぞれ、読出しデータの開始アドレス２１４ａ及び読出しデータのサイズ２１４ｂとして格納する。また読出しデータの読出し回数２１４ｃに“１”を格納する。また、有効／無効フラグ２１４ｄを有効とする。そして、ステップＳ１３に進む。
【００３７】
一方、ステップＳ１１における判定が肯定判定の場合、当該読出し要求は、任意の一塊データの初回のデータ読出しの２つ目以降の読出し要求である、ということである。従って、その場合、エントリインデックス格納部２１３ｅに格納されたエントリ番号のエントリ内の読出しデータのサイズ２１４ｂに当該読出し要求サイズを加算する（ステップＳ１２）。この処理が、当該一塊データのサイズの算定を進める部分である。そして、ステップＳ１３に進む。
【００３８】
ステップＳ１３においては、当該読出し要求アドレス及び読出し要求サイズに基づいて、ＮＡＮＤ型フラッシュメモリ２２からデータを読み出してホスト機器１に転送する。そして、次に、当該読出し要求アドレスを、前回アドレス格納部２１３ｄに格納し（ステップＳ１４）、次に、当該エントリの番号をエントリインデックス格納部２１３ｅに格納し（ステップＳ１５）、次の読出し要求を待つ。
【００３９】
次に、上述の読出し転送処理による処理の具体例について説明する。図６（ａ）に示すようにＮＡＮＤ型フラッシュメモリ２２に格納された一塊データたる画像データＡを読み出す場合を例に説明する。この画像データＡは、ＮＡＮＤ型フラッシュメモリ２２におけるアドレス１００００から１２００バイトで記憶されている（物理的には通常セクタ管理される）。なお、これらのアドレス及びサイズの値は説明の便宜のための数値である。そこで、例えば、ホスト機器１から４００バイトごとの読出し要求が来るものとする。図６（ｂ）は、初回読出しの際の、各読出し要求に応じた、エントリ及び前回アドレスの遷移を示す図である。また、図６（ｃ）は、２回目以降の読出しの際の、各読出し要求に応じた、読出し回数の変化、並びに予測アドレスバッファメモリの内容の遷移を示す図である。
【００４０】
以上のように、本発明の一実施形態によれば、ＮＡＮＤ型フラッシュメモリ２２から連続して読み出す一塊データの大きさに応じて、また、ＮＡＮＤ型フラッシュメモリ２２から読み出される頻度に応じて、効率的に予測先読み処理を行うことができる。
【産業上の利用可能性】
【００４１】
本発明の読出し転送制御方法は、例えば、補助記憶デバイスに格納された画像データを読み出す際に採用できる。
【符号の説明】
【００４２】
１  ホスト機器
２  補助記憶装置
２１  コントローラ
２１１  ホストインターフェース
２１２  制御部
２１３  読出し処理用パラメータ格納部
２１４  Ｎエントリテーブル
２２  ＮＡＮＤ型フラッシュメモリ
２３  読出しバッファメモリ
１００  ホスト機器
２００  コントローラ
３００  補助記憶デバイス
【要約】
【課題】  補助記憶デバイスに格納されたデータの特性に応じて効率的に予測先読み処理を行う。
【解決手段】  補助記憶デバイスたるＮＡＮＤ型フラッシュメモリ２２からの初回の読出しの際に（ステップＳ１０１における否定判定）、読み出す一塊データのデータサイズを把握して、Ｎエントリテーブル２１４の一エントリに登録しておく（Ｓ１０３）。２回目以降の読出しの際には（ステップＳ１０１における肯定判定）、そのサイズに応じた予測先読み処理を行う（Ｓ１０２）。また、読出し頻度の高い一塊データほど、Ｎエントリテーブル２１４にエントリは維持され（Ｓ１０３）、よって、サイズに応じた効率的な予測先読み処理が実現できる。
【選択図】  図３【図１】
0005849268.tif 000002
【図２】
0005849268.tif 000003
【図３】
0005849268.tif 000004
【図４】
0005849268.tif 000005
【図５】
0005849268.tif 000006
【図６】
0005849268.tif 000007
【図７】
0005849268.tif 000008
【図８】
0005849268.tif 000009