JP2007164342A - メモリ制御装置及びメモリ制御方法 - Google Patents
メモリ制御装置及びメモリ制御方法 Download PDFInfo
- Publication number
- JP2007164342A JP2007164342A JP2005357664A JP2005357664A JP2007164342A JP 2007164342 A JP2007164342 A JP 2007164342A JP 2005357664 A JP2005357664 A JP 2005357664A JP 2005357664 A JP2005357664 A JP 2005357664A JP 2007164342 A JP2007164342 A JP 2007164342A
- Authority
- JP
- Japan
- Prior art keywords
- read
- blocks
- reading
- address
- storage
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】記憶媒体からのリードデータの読み出しが、一連のリード要求における順序不整合部分で行われるような場合であっても、リードデータの読み出しを効率よく動作させることが可能なメモリ制御装置及びメモリ制御方法を提供する。
【解決手段】情報機器(PC10)から入力された前回入力分のリード要求に係る読出終了アドレスと、今回入力分のリード要求に含まれた読出開始アドレスと、の間に位置する間隙読出範囲のブロック数が、過去に入力された複数のリード要求において、所定の回数連続して同値となったブロック数と同値となった場合、今回入力分のリード要求に係るリードデータの読み出しに先行して、間隙読出範囲に対応する記憶媒体MのLBAに記憶されたリードデータから読み出しを開始させる。
【選択図】図3
【解決手段】情報機器(PC10)から入力された前回入力分のリード要求に係る読出終了アドレスと、今回入力分のリード要求に含まれた読出開始アドレスと、の間に位置する間隙読出範囲のブロック数が、過去に入力された複数のリード要求において、所定の回数連続して同値となったブロック数と同値となった場合、今回入力分のリード要求に係るリードデータの読み出しに先行して、間隙読出範囲に対応する記憶媒体MのLBAに記憶されたリードデータから読み出しを開始させる。
【選択図】図3
Description
本発明は、情報機器と記憶媒体との間で転送されるデータをキャッシュメモリに一時記憶するメモリ制御装置及びメモリ制御方法に関し、特に、情報機器からのリード要求に応じて記憶媒体から読み出したリードデータをキャッシュメモリに一時記憶するメモリ制御装置及びメモリ制御方法に関する。
従来、パーソナルコンピュータ等の情報機器(以下、PCという)に接続される情報記憶再生装置(例えば、光磁気(MO)ディスク装置等)は、文書データや画像データ等の種々のデータ(以下、ファイルという)を記憶媒体(例えば、光磁気(MO)ディスク等)に記憶するのに使用されている。このような情報記憶再生装置では、PCから指示されるファイルのリード動作の実行動作を高速化するために情報記憶再生装置内にキャッシュメモリを設け、PCから入力されるリード要求に応じて記憶媒体から読み出したデータ(以下、リードデータという)をキャッシュメモリに一時記憶した後、このリードデータをPCに転送する構成が一般的に用いられている。ここで、入力されるリード要求には、少なくとも記憶媒体内の読み出し開始位置を指示する読出開始アドレスと、当該読出開始アドレスから読み出しを行うブロック数とが含まれており、PCは、読出開始アドレスに対応する記憶媒体のLBA(論理ブロックアドレス:Logical Block Address)からブロック数分のリードデータを読み出すようになっている。なお、LBAは記憶媒体内における記憶番地(セクタ)を指示するための情報である。
上記キャッシュメモリを用いたメモリ制御技術として、例えば、コンピュータ(PC)のアクセス方法の種類によってバッファメモリ(キャッシュメモリ)の構成を変更することにより、データのリード/ライトを最適に行う技術が提案されている(例えば、特許文献1参照)。
以下、上記キャッシュメモリを用いたメモリ制御方法を説明する。
以下、上記キャッシュメモリを用いたメモリ制御方法を説明する。
図5は、記憶媒体に記憶されたファイルA、B及びCの状態を示した図である。ここで、ファイルAは、記憶媒体内のLBA(論理ブロックアドレス:Logical Block Address)1000〜1150に記憶されており、LBA1000〜1127のうち32ブロック置きに分割された4つのデータセグメントと、LBA1128〜1150の23ブロックからなるデータセグメントと、の計5つのデータセグメントに分割されたデータ(以下、リードデータという)[0]〜[4]から構成されている。ファイルBは、記憶媒体のLBA2000〜2150に記憶されており、LBA2000〜2127のうち32ブロック置きに分割された4つのデータセグメントと、LBA2128〜2150の23ブロックからなるデータセグメントと、の計5つのデータセグメントに分割されたリードデータ[5]〜[9]から構成されている。また、ファイルCは、記憶媒体のLBA3000〜3150に記憶されており、LBA3000〜3127のうち32ブロック置きに分割された4つのデータセグメントと、LBA3128〜3150の23ブロックからなるデータセグメントと、の計5つのデータセグメントに分割されたリードデータ[10]〜[14]から構成されている。
図5で示した記憶状態において、PCからファイルA、B及びCの読み出しを指示するリード要求が出力されると、各リード要求は、図6(a)に示すようにファイル単位で各ファイルを構成する先頭のライトデータから順次出力されることになる。ここで、情報記憶再生装置では最初のリード要求(FileA:[0])が入力されると、図6(b)に示すように、このリード要求(FileA:[0])に係るリードデータ(RD)[0]が記憶媒体から読み出されキャッシュメモリに一時記憶されてPCに転送されるとともに、当該リードデータ[0]に関連するリードデータがキャッシュメモリの空き容量に応じた数だけ先行して読み出されて(先読み)、キャッシュメモリ一時記憶される。なお、図6(b)では、リードデータ[1]〜[10]が記憶媒体から先読みされた状態を示している。この結果、PCからリード要求(FileA:[1]〜[4]、FileB:[5]〜[9]、FileC:[10])が入力された場合には、キャッシュメモリに記憶されたリードデータ[1]〜[10]がPCに転送されることになる。
続く、リード要求(FileC:[11])が入力された場合には、上記した動作と同様、図6(c)に示すように、このリード要求(FileC:[11])に係るリードデータ[11]が記憶媒体から読み出されキャッシュメモリに一時記憶されてPCに転送されるとともに、当該リードデータ[11]に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされ、キャッシュメモリ一時記憶される。なお、図6(c)では、リードデータ[12]〜[14]が記憶媒体から先読みされた状態を示している。この結果、PCからリード要求(FileC:[12]〜[14])が入力された場合には、キャッシュメモリに記憶されたリードデータ[12]〜[14]がPCに転送されることになる。このようなリードデータの先読み処理により、リード動作の実行時間の高速化が図られている。
特開2000−99392号公報
しかしながら、PCに導入された基本ソフト(OS:Operating System)等の仕様によっては、ファイルのリード要求が、当該ファイルを構成する先頭のライトデータから順次出力されない場合がある(以下、不整合要求方式という)。この不整合要求方式の場合、上述した従来技術では、リードデータの先読み処理を有効に活用することができず、ファイルのリード動作の実行時間が増大するという問題がある。
以下、PCから入力される特定ファイルのリード要求が、不整合要求方式で出力された場合のリード動作について説明する。
図5で示した記憶状態において、PCが備えるOSの仕様によっては、図7(a)に例示したように、ファイルA、B及びCの読み出しのを指示する一連のリード要求のうち、連続する2つのリード要求の出力順序が部分的に反転した順序不整合の状態で出力される場合がある(図中、波線により囲まれたリード要求を参照)。
図5で示した記憶状態において、PCが備えるOSの仕様によっては、図7(a)に例示したように、ファイルA、B及びCの読み出しのを指示する一連のリード要求のうち、連続する2つのリード要求の出力順序が部分的に反転した順序不整合の状態で出力される場合がある(図中、波線により囲まれたリード要求を参照)。
この場合、情報記憶再生装置では最初のリード要求(FileA:[0])が入力されると、図7(b)に示したように、上記したリード動作と同様このリード要求に係るリードデータ[0]が記憶媒体から読み出されキャッシュメモリに一時記憶されてPCに転送されるとともに、当該リードデータ[0]に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先行して読み出され(先読み)、キャッシュメモリ一時記憶される。なお、図7(b)では、リードデータ[1]〜[10]が記憶媒体から先読みされた状態を示している。この結果、PCからリード要求(FileA:[1]〜[4]、FileB:[5]〜[9]、FileC:[10])が入力された場合には、キャッシュメモリに記憶されたリードデータ[1]〜[10]がPCに転送されることになる。
続いて、一連のリード要求のうち不整合部分にあたるリード要求(FileC:[12])が入力されると、図7(c)に示すように、このリード要求(FileC:[12])に係るリードデータ[12]が記憶媒体から読み出されキャッシュメモリに一時記憶されてPCに転送されるとともに、当該リードデータ[12]に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされ、キャッシュメモリ一時記憶される。なお、図7(c)では、リードデータ[13]、[14]が記憶媒体から先読みされた状態を示している。
ここで、次のリード要求(FileC:[11])が入力されると、このリード要求(FileC:[11])に対応するリードデータ[11]の読み出しはまだ行われていないため、キャッシュメモリに一時記憶されておらず、そのため、図7(d)に示すように、このリード要求(FileC:[11])に係るリードデータ[11]が記憶媒体から読み出されキャッシュメモリに一時記憶されてPCに転送されるとともに、当該リードデータ[11]に連続するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされ、キャッシュメモリ一時記憶される。なお、図7(c)では、リードデータ[12]〜[14]が記憶媒体から先読みされた状態を示している。
このように、記憶媒体からのリードデータの読み出しが、一連のリード要求における順序不整合部分で行われるような場合、同一のリードデータを二重に読み出することになるため、ファイルのリード動作の実行時間が増大するという問題がある。
また、特許文献1の技術では、PCのアクセス方法の種類に応じてバッファメモリの構成を変更するとあるが、具体的な変更方法は何ら記載されておらず、上記した課題を解決することはできない。
また、特許文献1の技術では、PCのアクセス方法の種類に応じてバッファメモリの構成を変更するとあるが、具体的な変更方法は何ら記載されておらず、上記した課題を解決することはできない。
本発明の課題は、記憶媒体からのリードデータの読み出しが、一連のリード要求における順序不整合部分で行われるような場合であっても、リードデータの読み出しを効率よく動作させることが可能なメモリ制御装置及びメモリ制御方法を提供することである。
上記課題を解決するため、請求項1に記載の発明は、
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置において、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出手段と、
前記算出された読出終了アドレスを記憶するアドレス値記憶手段と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御手段と、
前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出手段と、
前記間隙ブロック数算出手段により算出されたブロック数と前記ブロック数記憶手段に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御手段と、
を備えたことを特徴としている。
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置において、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出手段と、
前記算出された読出終了アドレスを記憶するアドレス値記憶手段と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御手段と、
前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出手段と、
前記間隙ブロック数算出手段により算出されたブロック数と前記ブロック数記憶手段に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御手段と、
を備えたことを特徴としている。
更に、請求項2に記載の発明は、請求項1に記載の発明において、
前記間隙ブロック数算出手段は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴としている。
前記間隙ブロック数算出手段は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴としている。
また、上記課題を解決するために、請求項3に記載の発明は、
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置のメモリ制御方法であって、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出工程と、
前記算出された読出終了アドレスを記憶するアドレス値記憶工程と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御工程と、
前記アドレス値記憶工程で記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出工程と、
前記間隙ブロック数算出工程で算出されたブロック数と前記ブロック数記憶制御工程で記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御工程と、
を含むことを特徴としている。
情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置のメモリ制御方法であって、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出工程と、
前記算出された読出終了アドレスを記憶するアドレス値記憶工程と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御工程と、
前記アドレス値記憶工程で記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出工程と、
前記間隙ブロック数算出工程で算出されたブロック数と前記ブロック数記憶制御工程で記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御工程と、
を含むことを特徴としている。
更に、請求項4に記載の発明は、請求項3に記載の発明において、
前記間隙ブロック数算出工程は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴としている。
前記間隙ブロック数算出工程は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴としている。
請求項1、3に記載の発明によれば、リード要求されたリードデータの順序に不整合が存在する場合であっても、当該不整合部分に対応する間隙読出範囲のリードデータを記憶媒体から読み出し、キャッシュメモリに一時記憶させることが可能であるため、リードデータの読み出しを効率よく動作させることができる。これにより、同一のリードデータが記憶媒体から二重に読み出されることを抑制することが可能であるため、リード動作にかかる実行時間を短縮することができる。
請求項2、4に記載の発明によれば、アドレス値記憶手段に記憶された前回分のリード要求に係る読出終了アドレスと、今回分のリード要求に含まれた読出開始アドレスと、の差を算出するため、間隙読出範囲に含まれるブロック数を算出することができる。
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。ただし、発明の範囲は図示例に限定されないものとする。
図1は、PC10と、本発明に係るメモリ制御装置を備えた情報記憶再生装置10との関係を模式的に示した図である。
図1に示すとおり、PC10と情報記憶再生装置20とは、ケーブルCを介して接続されており、相互に種々の情報(データ)の授受が可能に構成されている。
図1に示すとおり、PC10と情報記憶再生装置20とは、ケーブルCを介して接続されており、相互に種々の情報(データ)の授受が可能に構成されている。
PC10は、サーバ機器やパーソナルコンピュータ等の情報機器であって、後述する記憶部12に記憶された文書データや画像データ等の種々のデータ(以下、ファイルという)の記憶媒体Mへの記憶を指示するライト要求を情報記憶再生装置20に出力することで、記憶媒体Mにファイルの複製を記憶させる。また、PC10は、記憶媒体Mに記憶されたファイルの読み出しを指示するリード要求を情報記憶再生装置10に出力することで、記憶媒体Mからファイルの読み出しを行う。
情報記憶再生装置20は、例えば、MOドライブ、CD−R(RW)ドライブ、DVD±R(RW)ドライブ、DVD−RAMドライブ、ハードディスクドライブ等であって、PC10から入力されるリード要求に応じて記憶媒体Mに記憶されたファイル(リードデータ)を読み出し、PC10に転送する。また、PC10から入力されるライト要求に応じて記憶媒体M(例えば、MOディスク)にファイルを記憶する。なお、記憶媒体Mは、図示したように情報記憶再生装置20に着脱可能な態様としてもよいし、情報記憶再生装置20内に固定的に備えた態様としてもよい。
図2は、PC10及び情報記憶再生装置20の内部構成を示した図である。
PC10は、図2に示すとおり、制御部11、記憶部12、I/F(インターフェース)13等を備えて構成される。
PC10は、図2に示すとおり、制御部11、記憶部12、I/F(インターフェース)13等を備えて構成される。
制御部11は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等により構成され、ROM又は記憶部12に記憶された基本ソフト(OS)や各種プログラムを読み出して実行することにより、PC10全体を統括的に制御する。
制御部11は、記憶媒体Mに記憶されたファイル(リードデータ)の読み出しを指示するリード要求をI/F13を介して情報記憶再生装置20に出力する。ここで、出力されるリード要求には、少なくとも記憶媒体内の読み出し開始位置を指示する読出開始アドレス(LBA)と、当該読出開始アドレスから読み出しを行うブロック数とが含まれているものとする。なお、本実施の形態におけるPC10の基本ソフトは、制御部11との協働により、特定のファイルに係る一連のリード要求の出力において、このファイルを構成する先頭のライトデータから順次出力されるリード要求のうち、連続する2つのリード要求の出力順序が部分的に反転した不整合の状態で出力される不整合要求方式で実行されるものとする。
また、制御部11は、情報記憶再生装置20により読み出されたファイルを記憶部12に記憶させる。
また、制御部11は、情報記憶再生装置20により読み出されたファイルを記憶部12に記憶させる。
制御部11は、記憶部12に記憶されたファイルの複製を記憶媒体Mに記憶させるライト要求をI/F13を介して情報記憶再生装置20に出力する。ここで、記憶対象となるファイルは、制御部11の制御の下、所定サイズ毎のデータに分割され、夫々ライトデータとして、当該ライトデータの記憶開始位置を指示する記憶開始アドレス(LBA)とともにライト要求として情報記憶再生装置20に出力される。
記憶部12は、磁気的、光学的記憶媒体、半導体等の不揮発性メモリ等から構成されており、PC10に対応するOS、各種プログラム、これらのプログラムで処理されたデータ等を予め記憶する。これらの各処理プログラムは、読み取り可能なプログラムコードの形態で格納され、制御部11は、当該プログラムコードに従った動作を逐次実行する。
記憶部12は、制御部11からの指示に応じ情報記憶再生装置20から転送されるファイルを記憶する。また、記憶部12は、制御部11からの指示に応じて当該記憶部12に記憶されたファイルを読み出し、制御部11に出力する。
I/F13は、USB(Universal Serial Bus)、IEEE1394(Institute of Electrical and Electronic Engineers 1394)、SCSI(Small Computer System Interface)、ATAPI(AT Attachment Packet Interface)等の規格に準拠したインターフェースであって、情報記憶再生装置20との間でデータ転送を行うための制御を行う。
情報記憶再生装置20は、図2に示すとおり、制御部21、キャッシュメモリ22、I/F23、記憶再生部24等を備えて構成される。
制御部21は、CPU、ROM、RAM(何れも不図示)等により構成され、ROMに格納されている各種設定値やシステムプログラムを読み出して実行することにより、情報記憶再生装置20全体を統括的に制御する。
制御部21は、PC10からI/F23を介して入力されるリード要求を受信すると、このリード要求に含まれた読出開始アドレス及びブロック数とに基づいて、この読出開始アドレスに対応する記憶媒体MのLBAからブロック数分のリードデータを読み出すとともに、このリードデータに関連するリードデータを記憶媒体Mから読み出し(先読み)、キャッシュメモリ22に一時記憶させる。そして、この一時記憶されたリードデータをリード要求に応じてPC10に転送する。なお、制御部21は、リードデータの先読みを、キャッシュメモリ22の空き容量に応じた数だけ行うものとする。
また、図2に示すとおり、制御部21は、読出終了アドレス算出部211、アドレス値記憶部212、ブロック数記憶制御部213、ブロック数記憶部214、間隙ブロック数算出部215、読出制御部216を有している。
読出終了アドレス算出部211は、リード要求に含まれた読出開始アドレスと、ブロック数とに基づいて読出終了アドレス(LBA)の値を算出し、この算出された読出終了アドレスをアドレス値記憶部212に記憶させる。ここで、読出開始アドレスは、記憶媒体Mに記憶された各リードデータのLBAのうち、先頭のアドレスを意味しており、読出終了アドレスは記憶媒体Mに記憶された各リードデータのLBAのうち、末尾のアドレスを意味している。また、ブロック数とは、各リードデータの記憶範囲を示す数値であって、1ブロックがLBAの1アドレス分に対応している。即ち、読出終了アドレス算出部211は、読出開始アドレスにブロック数を加算することで、当該読出開始アドレスに対応する読出終了アドレスを導出するようになっている。
アドレス値記憶部212は、レジスタや半導体等の揮発性メモリ等から構成される記憶媒体であって、制御部21(読出終了アドレス算出部211)の制御の下、読出終了アドレス算出部211で算出された読出終了アドレスを記憶する。なお、アドレス値記憶部212として、不図示のRAMやキャッシュメモリ22の一部の記憶領域を用いることとしてもよい。
ブロック数記憶制御部213は、PC10から入力される一連のリード要求に含まれるブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶部214に記憶させる。ここで、ブロック数が所定回数連続して同値となったか否かの判定は、例えば、入力されたブロック数をアドレス値記憶部212等に所定回数分記憶し、当該記憶された複数のブロック数に基づいて判定するものとする。なお、同値判断の指標とする連続回数は、特に問わず、任意に設定可能であるものとする。
ブロック数記憶部214は、レジスタや半導体等の揮発性メモリ等から構成される記憶媒体であって、制御部21(ブロック数記憶制御部213)の制御の下、所定の回数連続して同値となったブロック数を記憶する。なお、アドレス値記憶部212とブロック数記憶部214とを同一の記憶媒体としてもよく、また、ブロック数記憶部214として、不図示のRAM又はキャッシュメモリ22の一部の記憶領域を用いることとしてもよい。
間隙ブロック数算出部215は、アドレス値記憶部212に記憶された前回入力分のリード要求に係る読出終了アドレスと、今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定するとともに、両アドレス値の差を算出し、当該差分値に基づいて間隙読出範囲に含まれたブロック数を導出する。
読出制御部216は、間隙ブロック数算出部215により算出された間隙ブロック数と、ブロック数記憶部214に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、今回入力されたリード要求に先行して、間隙読出範囲に対応するLBAに記憶されたリードデータから読み出しを開始させる。
なお、上記した読出終了アドレス算出部211、ブロック数記憶制御部213、間隙ブロック数算出部215、読出制御部216は、制御部11とROMに記憶されたシステムプログラムとの協働によるソフトウェア処理により実現される態様としてもよいし、ハードウェア処理により実現される態様としてもよく、ソフトウェア処理とハードウェア処理との組合せにより実現される態様としてもよい。
キャッシュメモリ22は、SRAM(Static RAM)やDRAM(Dynamic RAM)等の揮発性メモリ等から構成され、制御部21の制御の下、PC10から入力されるライトデータを記憶領域に順次一時記憶する。また、キャッシュメモリ22は、制御部21の制御の下、記憶媒体Mから読み出されたリードデータを記憶領域に順次一時記憶する。つまり、記憶媒体Mに入出力されるデータ(ライトデータ、リードデータ)は、全てキャッシュメモリ22を経由するようになっている。なお、キャッシュメモリ22の記憶容量は特に問わないものとするが、より大容量を有するキャッシュメモリ22を用いる際には、キャッシュメモリ22の記憶領域を構成する各メモリセグメントのサイズ(以下、セグメントサイズという)を変更することが好ましい。
I/F23は、I/F13と同様USB、IEEE1394、SCSI、ATAPI等の規格に準拠したインターフェースであって、PC10との間でデータ転送を行うための制御を行う。なお、I/F13とI/F23とは共に共通する規格に準拠したインターフェースであるものとする。
記憶再生部24は、記憶媒体Mの記憶再生方式に応じた種々の機能部(例えば、レーザダイオード、磁気ヘッド等)を有しており、制御部21の制御の下、制御部21からの指示に応じて記憶媒体Mからファイル(リードデータ)の読み出し(再生)を行う。また、記憶再生部24は、制御部21の制御の下、キャッシュメモリ22に一時記憶されたライトデータを記憶媒体Mに記憶する。
次に、図3及び図4を参照して、情報記憶再生装置20の動作について説明する。
図3は、記憶媒体Mに記憶されたリードデータの読み出しに係る読出処理の手順を示したフローチャートである。なお、本処理はリード要求の入力毎に実行されるものとし、ステップS11〜ステップS21の各処理は、情報記憶再生装置20の制御部21(読出終了アドレス算出部211、ブロック数記憶制御部213、間隙ブロック数算出部215、読出制御部216)により実行されるものとする。
図3は、記憶媒体Mに記憶されたリードデータの読み出しに係る読出処理の手順を示したフローチャートである。なお、本処理はリード要求の入力毎に実行されるものとし、ステップS11〜ステップS21の各処理は、情報記憶再生装置20の制御部21(読出終了アドレス算出部211、ブロック数記憶制御部213、間隙ブロック数算出部215、読出制御部216)により実行されるものとする。
まず、読出処理の初期動作として、PC20からのリード要求の入力が待機される(ステップS11;No)。ここで、リード要求の入力が検知されると(ステップS11;Yes)、この入力されたリード要求に含まれる読出開始アドレスとブロック数とに基づいて読出終了アドレスが算出され(ステップS12)、この読出終了アドレスの値がアドレス値記憶部212に記憶される(ステップS13)。
次いで、今回入力分のリード要求に含まれるブロック数及び過去に入力された複数のリード要求に含まれた複数のブロック数とに基づいて、ブロック数が所定の回数連続して同値となっているか否かが判定され、所定の回数連続して同じブロック数であったと判定された場合には(ステップS14;Yes)、このブロック数がブロック数記憶部214に記憶され(ステップS15)、ステップS16に移行する。一方、ステップS14において、所定の回数連続して同じブロック数となっていないと判定された場合には(ステップS14;No)、ステップS16に直ちに移行する。
ステップS16では、ステップS11で入力されたリード要求に対応するリードデータがキャッシュメモリ22に一時記憶されているか否かが判定される。ここで、リード要求に対応するリードデータがキャッシュメモリ22に一時記憶されていると判定された場合には(ステップS16;Yes)、直ちにステップS21へと移行する。
一方、ステップS16において、リード要求に対応するリードデータがキャッシュメモリ22に一時記憶されていないと判定された場合には(ステップS16;No)、アドレス値記憶部212に記憶された前回入力分のリード要求に係る読出最終アドレスと、今回入力分のリード要求に含まれた読出開始アドレスとに基づいて両アドレス間に位置する間隙読出範囲の特定と、当該間隙読出範囲に含まれたブロック数が算出された後(ステップS17)、この算出されたブロック数とステップS15でブロック数記憶部214に記憶されたブロック数とが比較される(ステップS18)。
ここで、両ブロック数が同値と判定された場合には(ステップS18;Yes)、ステップS17で特定された間隙読出範囲に対応する記憶媒体MのLBAに記憶されたリードデータが読み出され、キャッシュメモリ22に一時記憶された後(ステップS19)、ステップS20へと移行する。一方、ステップS18において、両ブロック数が異なると判定された場合には(ステップS18;No)、ステップS20に直ちに移行する。
ステップS20では、ステップS11で入力されたリード要求に対応するリードデータが当該リード要求に基づいて記憶媒体Mから読み出されるとともに、このリードデータに関連するリードデータが先読みされ、キャッシュメモリ22に一時記憶される(ステップS20)。
続くステップS21では、リード要求に対応するリードデータが、キャッシュメモリ22から読み出された後PC10に転送されて(ステップS21)、本処理は終了する。
以下、図4を参照して、上述した読出処理の動作の概要を説明する。
なお、情報記憶再生装置20に内蔵された記憶媒体Mは、前述した図5と同様の状態でファイルA、B及びCを記憶しているものとする。また、情報記憶再生装置20の初期条件として、ブロック数記憶部214は、ブロック数が記憶されていない状態であるとする。
なお、情報記憶再生装置20に内蔵された記憶媒体Mは、前述した図5と同様の状態でファイルA、B及びCを記憶しているものとする。また、情報記憶再生装置20の初期条件として、ブロック数記憶部214は、ブロック数が記憶されていない状態であるとする。
PC10から記憶媒体Mに記憶されたファイルA、B及びCの読み出しを指示するリード要求の出力がなされ、このファイルA、B及びCに係る一連のリード要求が図4(a)の順序で情報記憶再生装置20に入力されると、情報記憶再生装置20では、図4(b)に示すように、入力された最初のリード要求(FileA:[0])に含まれた読出開始アドレス(LBA:1000)及びブロック数(32ブロック)に基づいて、このLBA:1000から32ブロック分のリードデータ[0]が読み出され、キャッシュメモリ22に一時記憶された後、PC10へと転送される。また、このリード要求(FileA:[0])の読出開始アドレス(LBA:1000)及びブロック数(32ブロック)に基づいて読出終了アドレス(LBA:1031)が算出され、この読出終了アドレス(LBA:1031)に関連するリードデータがキャッシュメモリの空き容量に応じた数だけ先読みされて、キャッシュメモリ22に一時記憶される。なお、図6(b)では、リードデータ[1]〜[10]が記憶媒体から先読みされた状態を示している。
引き続き、情報記憶再生装置20では、PC10から入力されるリード要求([1]〜[10])の入力毎に図3に示した読出処理(ステップS16;Yes→ステップS21)が実行され、キャッシュメモリ22に一時記憶されたリードデータ[1]〜[10]が、入力されるリード要求(FileA:[1]〜[10])に応じてPC10に転送される。ここで、ステップS14の判定処理において、例えば、連続する所定の回数が3回と設定されていた場合には、図4(a)に示したリード要求(FileA:[0]、[2]、[1]、[3])又はリード要求(FileB:[5]、[7]、[6]、[8])に含まれたブロック数(32ブロック)が、ブロック数記憶制御部213によりブロック数記憶部214に記憶されることになる。
次に、PC10からリード要求(FileC:[12])が入力されると、情報記憶再生装置20では、読出処理のステップS11〜ステップS16;Noが実行された後、続くステップS17において、アドレス値記憶部212に記憶された前回入力分のリード要求(FileC:[10])に係るLBAの最終アドレス(LBA:3031)と、今回入力分のリード要求(FileC:[12])に含まれた読出開始アドレス(LBA:3064)と、に基づいて両アドレス間に位置する間隙読出範囲(LBA:3032〜3063)が特定され、当該間隙読出範囲に含まれたブロック数(32ブロック)が算出される。そして、この間隙読出範囲の32ブロックと、ブロック数記憶部212に記憶された32ブロックとがステップS18において比較されることになる。
この場合、両ブロック数は同値となるため、図7(c)に示したように、今回分のリード要求(FileC:[12])の読み出しに先行して、記憶媒体Mの間隙読出範囲(LBA:3032〜3063)に対応する記憶媒体MのLBAに記憶されたリードデータ、即ち、リードデータ[11]の読み出しが開始され、読み出されたリードデータ[11]がキャッシュメモリ22に一時記憶される。そして、今回入力分のリード要求(FileC:[12])に係るリードデータ[12]が記憶媒体Mから読み出され、キャッシュメモリ22に一時記憶された後PC10に転送されるとともに、リードデータ[12]に関連するリードデータ[13]〜[14]が先読みされてキャッシュメモリ22に一時記憶される。この結果、PC10からリード要求(FileC:[11])が入力された場合であっても、キャッシュメモリ22に一時記憶されたリードデータ[11]をPCに転送することができるため、同一のリードデータを記憶媒体Mから二重に読み出す必要がなくなる。
以上のように、本実施の形態によれば、リード要求されるリードデータの順序に不整合が存在する場合であっても、当該不整合部分に対応する間隙読出範囲のリードデータを記憶媒体Mから読み出し、キャッシュメモリに一時記憶させることが可能であるため、リードデータの読み出しを効率よく動作させることができる。これにより、同一のリードデータが記憶媒体Mから二重に読み出されることを抑制することが可能であるため、リード動作にかかる実行時間を短縮することができる。
上記実施の形態の細部構成および詳細動作に関しては、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
例えば、上記実施の形態では、PC10と情報記憶再生装置20とを別体とした態様を示したが、これに限らず、PC10が情報記憶再生装置20を内蔵した態様としてもよい。
10 PC
11 制御部
12 記憶部
13 I/F
20 情報記憶再生装置
21 制御部
211 読出終了アドレス算出部
212 アドレス値記憶部
213 ブロック数記憶制御部
214 ブロック数記憶部
215 間隙ブロック数算出部
216 読出制御部
22 キャッシュメモリ
23 I/F
24 記憶再生部
C ケーブル
M 記憶媒体
11 制御部
12 記憶部
13 I/F
20 情報記憶再生装置
21 制御部
211 読出終了アドレス算出部
212 アドレス値記憶部
213 ブロック数記憶制御部
214 ブロック数記憶部
215 間隙ブロック数算出部
216 読出制御部
22 キャッシュメモリ
23 I/F
24 記憶再生部
C ケーブル
M 記憶媒体
Claims (4)
- 情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置において、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出手段と、
前記算出された読出終了アドレスを記憶するアドレス値記憶手段と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御手段と、
前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出手段と、
前記間隙ブロック数算出手段により算出されたブロック数と前記ブロック数記憶手段に記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御手段と、
を備えたことを特徴とするメモリ制御装置。 - 前記間隙ブロック数算出手段は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴とする請求項1に記載のメモリ制御装置。
- 情報機器から入力されるリード要求に含まれた読出開始アドレスとブロック数とに基づいて当該読出開始アドレスに対応する記憶媒体の記憶番地から前記ブロック数分のリードデータを読み出すとともに、当該リードデータに関連するリードデータを前記記憶媒体から読み出す読出手段と、前記読み出されたリードデータを一時記憶するキャッシュメモリと、前記一時記憶されたリードデータを前記リード要求に応じて情報機器に転送する転送手段と、を備えたメモリ制御装置のメモリ制御方法であって、
前記入力された読出開始アドレスとブロック数とに基づいて読出終了アドレスを算出する読出終了アドレス算出工程と、
前記算出された読出終了アドレスを記憶するアドレス値記憶工程と、
前記入力されたブロック数が所定の回数連続して同値となった場合、当該ブロック数をブロック数記憶手段に記憶させるブロック数記憶制御工程と、
前記アドレス値記憶工程で記憶された前回入力分のリード要求に係る読出終了アドレスと今回入力分のリード要求に含まれた読出開始アドレスとに基づいて、両アドレス間に位置する間隙読出範囲を特定し、当該間隙読出範囲に含まれたブロック数を算出する間隙ブロック数算出工程と、
前記間隙ブロック数算出工程で算出されたブロック数と前記ブロック数記憶制御工程で記憶されたブロック数とを比較し、両ブロック数が同値となった場合に、前記今回入力分のリード要求に係るリードデータの読み出しに先行して、前記間隙読出範囲に対応する記憶番地からリードデータの読み出しを開始させる読出制御工程と、
を含むことを特徴とするメモリ制御方法。 - 前記間隙ブロック数算出工程は、前記アドレス値記憶手段に記憶された前回入力分のリード要求に係る読出終了アドレスと、前記今回入力分のリード要求に含まれた読出開始アドレスと、の差を算出することを特徴とする請求項3に記載のメモリ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005357664A JP4715493B2 (ja) | 2005-12-12 | 2005-12-12 | メモリ制御装置及びメモリ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005357664A JP4715493B2 (ja) | 2005-12-12 | 2005-12-12 | メモリ制御装置及びメモリ制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007164342A true JP2007164342A (ja) | 2007-06-28 |
JP4715493B2 JP4715493B2 (ja) | 2011-07-06 |
Family
ID=38247180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005357664A Expired - Fee Related JP4715493B2 (ja) | 2005-12-12 | 2005-12-12 | メモリ制御装置及びメモリ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4715493B2 (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099392A (ja) * | 1998-09-21 | 2000-04-07 | Konica Corp | メモリ制御システム |
-
2005
- 2005-12-12 JP JP2005357664A patent/JP4715493B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000099392A (ja) * | 1998-09-21 | 2000-04-07 | Konica Corp | メモリ制御システム |
Also Published As
Publication number | Publication date |
---|---|
JP4715493B2 (ja) | 2011-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010186524A (ja) | 情報記憶装置及びデータの記録再生方法 | |
JP6391061B2 (ja) | テープ上へのファイル書き込み方法 | |
JP4802791B2 (ja) | データ記憶装置及びデータアクセス方法 | |
JP2006343923A (ja) | ディスク記録装置 | |
US20050259542A1 (en) | Reproduction device and method, recording medium, and program | |
JP3637346B1 (ja) | 情報記録装置と情報記録方法とプログラム | |
JP4715493B2 (ja) | メモリ制御装置及びメモリ制御方法 | |
JP5301666B2 (ja) | データ記録装置、およびオーディオシステム | |
JP2006323462A (ja) | ファイルコピー装置およびファイルコピー方法 | |
JP2007140628A (ja) | 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2008152732A (ja) | 再生装置及びファイル情報表示方法 | |
JP2005129168A (ja) | 情報記録装置と情報記録方法とプログラム | |
JP3706120B2 (ja) | 情報記録再生装置と情報記録再生方法とプログラム | |
JP2004206861A (ja) | 空き領域の検索方法および検索装置、記録済み領域の配置の検証方法および検証装置 | |
JP4579998B2 (ja) | リストア管理プログラム、リストア管理方法およびリストア管理装置 | |
JPH0528651A (ja) | 情報記録再生装置 | |
JP4208029B2 (ja) | データ管理方法 | |
JP2004199767A (ja) | データ処理装置およびデータ処理方法、並びにプログラム | |
JP2000105979A (ja) | 光ディスクの情報記録方法 | |
JP2005275674A (ja) | コンピュータシステム、そのバックアップ/リストア方法、ホストコンピュータ、プログラム | |
JP4216826B2 (ja) | データをコピーする装置並びに方法 | |
JP2007133657A (ja) | メモリ制御装置及びメモリ制御方法 | |
JP4152839B2 (ja) | 情報記録再生装置と情報記録再生方法とプログラム | |
JP2006260710A (ja) | データ記録方法及びデータ記録制御回路及びデータ記録装置 | |
TW200529194A (en) | Storage performance improvement using data replication on a disk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081128 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110301 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110314 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140408 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |