JP2004318940A - 記憶装置 - Google Patents

記憶装置 Download PDF

Info

Publication number
JP2004318940A
JP2004318940A JP2003108603A JP2003108603A JP2004318940A JP 2004318940 A JP2004318940 A JP 2004318940A JP 2003108603 A JP2003108603 A JP 2003108603A JP 2003108603 A JP2003108603 A JP 2003108603A JP 2004318940 A JP2004318940 A JP 2004318940A
Authority
JP
Japan
Prior art keywords
data
prefetch
buffer memory
read
management table
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
JP2003108603A
Other languages
English (en)
Inventor
Ikuo Hara
郁夫 原
Shigemasa Shioda
茂雅 塩田
Hiroyuki Goto
啓之 後藤
Hirofumi Shibuya
洋文 澁谷
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2003108603A priority Critical patent/JP2004318940A/ja
Priority to US10/811,961 priority patent/US7191308B2/en
Priority to TW093109984A priority patent/TWI358641B/zh
Priority to KR1020040025379A priority patent/KR101054153B1/ko
Priority to CNA2004100348213A priority patent/CN1538284A/zh
Publication of JP2004318940A publication Critical patent/JP2004318940A/ja
Priority to US11/711,084 priority patent/US7552311B2/en
Priority to KR1020100120922A priority patent/KR101081716B1/ko
Pending legal-status Critical Current

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C15/00Pavings specially adapted for footpaths, sidewalks or cycle tracks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C2201/00Paving elements
    • E01C2201/14Puzzle-like connections
    • EFIXED CONSTRUCTIONS
    • E01CONSTRUCTION OF ROADS, RAILWAYS, OR BRIDGES
    • E01CCONSTRUCTION OF, OR SURFACES FOR, ROADS, SPORTS GROUNDS, OR THE LIKE; MACHINES OR AUXILIARY TOOLS FOR CONSTRUCTION OR REPAIR
    • E01C5/00Pavings made of prefabricated single units
    • E01C5/22Pavings made of prefabricated single units made of units composed of a mixture of materials covered by two or more of groups E01C5/008, E01C5/02 - E01C5/20 except embedded reinforcing materials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • G06F2212/2146Solid state disk being detachable, e.g.. USB memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Civil Engineering (AREA)
  • Architecture (AREA)
  • Structural Engineering (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Static Random-Access Memory (AREA)

Abstract

【課題】先読みすべきデータを柔軟に決定することができる記憶装置を提供する。
【解決手段】不揮発性メモリ(2)、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ(4)及び制御回路(5)を有し、制御回路は、外部から入力される先読みコマンドが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、外部から入力される読み出しコマンドで指定される論理アドレスが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するときバッファメモリから対応する先読みデータを出力する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、ハードディスク装置又はフラッシュメモリカードなどの記憶装置に係り、特に記憶媒体である不揮発性メモリの記憶情報をバッファメモリに先読みする技術に適用して有効な発明に関する。
【0002】
【従来の技術】
コントローラ、バッファメモリ、及び記憶媒体などから構成される記憶装置では、ホスト装置からリード要求が来ると、その後利用が予想されるデータをホスト装置からリード要求が来る前にコントローラが記憶媒体から読み出してバッファメモリ上に格納する先読み技術がある。例えば特許文献1に記載のハードディスクドライブ(HDD)装置はディスクキャッシュを有し、予測されるデータを予めディスクキャッシュにキャッシュしておき、時間のかかる磁気ディスクへのアクセスを最小限に抑えるように構成される。ハードディスクコントローラは磁気ディスクに格納されているデータの一部を先読みしてディスクキャッシュに保持するための制御を行う。
【0003】
【特許文献1】
特開2001−125829号公報(段落24〜段落27)
【0004】
【発明が解決しようとする課題】
磁気ディスクやフラッシュメモリなどの記憶媒体に対するデータ読み出し性能は、ホストインタフェースの高速化に追随できていないため、ホスト装置からの読み出し要求時に記憶媒体からの読み出し処理を減らすことが必要になる。このためには上記のような記憶媒体からデータを先読みして予めバッファメモリに格納することが有効と考えられる。しかしながら、先読みすべきデータは記憶装置のコントローラが決定していて、ユーザが先読み機能を使用できない。要するに、所定のアルゴリズムにしたがってコントローラが先読みデータを決定していたのでは、使用頻度が高いと予想されるデータを予めバッファメモリに先読みすることが容易ではなく、先読みによるアクセス時間の短縮効果を最大限に発揮させることが難しい。
【0005】
本発明の目的は、先読みすべきデータを柔軟に決定することができる記憶装置を提供することにある。
【0006】
本発明の別の目的は、先読みによるアクセス時間の短縮効果を最大限に発揮させることが容易な記憶装置を提供することにある。
【0007】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0008】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0009】
〔1〕本発明に係る記憶装置は不揮発性メモリ(2)、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ(4)及び制御回路(5)を有し、前記制御回路は、外部から入力される先読みコマンドが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブル(Ti)を生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、外部から入力される読み出しコマンドで指定される論理アドレスが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するときバッファメモリから対応する先読みデータを出力する。
【0010】
上記手段によれば、先読みコマンドにより記憶装置の外部から先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。記憶装置の読み出し性能は、記憶媒体である不揮発性メモリ自身の読み出し性能がボトルネックとなっているため、外部からの読み出し要求時に記憶媒体からの読み出し処理に代えてバッファメモリから先読みデータを出力する処理が増えることにより、システム性能を向上させることができる。先読みコマンドによる先読みデータの指定はバッファメモリの容量が許す範囲で複数の先読みコマンドによる複数指定可能である。
【0011】
本発明の具体的な形態として、前記先読みコマンドは論理アドレスによって先読みデータを指定する。マスタブートレコード若しくはFAT(ファイル・アロケーション・テーブル)などに代表されるように使用者にとってその論理アドレスの把握が容易な場合もあるので、それに対しては先読みデータを直接的に指定できるので便利である。
【0012】
前記先読みコマンドはファイル名によって先読みデータを指定するようにしてもよい。一般に、記憶装置の使用者はOS(オペレーティングシステム)で管理される記憶装置上の論理アドレスを把握できない場合が有り、記憶装置の使用者はファイル名でデータを把握するのが簡便であり、データ先読みに対する良好な操作性を実現する。
【0013】
前記制御回路による先読みデータの転送は、先読みコマンドの実行時に行ってよい。また、先に先読みデータ管理テーブルを生成し、その後所定のタイミングで先読みデータをバッファメモリに転送してよい。そうすれば、前記制御回路は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリに転送することができる。先読みデータの転送処理によってリードアクセスなど処理が待たされると言うような事態の発生を未然に防止することができる。
【0014】
本発明の具体的な形態として、前記先読みデータ管理テーブルは、先読みデータの先頭論理アドレス(30)、先読みデータを格納する領域の先頭メモリアドレス(31)、及び先読みデータのデータ数を保持する領域(32)等によって構成すればよい。
【0015】
前記先読みデータ管理テーブルは、対応する先読みデータの有効性を示すフラグ(33)を保持してよい。
【0016】
前記先読みデータ管理テーブルは、先読みデータを含むファイル名を保持する領域(35)を有してよい。例えばFATファイルシステムにおいてファイルの断片化を生じたとき、一つのファイルデータは分割された複数の先読みデータ管理テーブルによって管理されることになり、このとき、ファイル名で指定されたアクセスに応答する処理に便利である。即ち、ファイル名で対応する先読みデータ管理テーブルを検索でき、バッファメモリ上の所要の先読みデータのアクセスが更に速くなる。
【0017】
前記先読みデータ管理テーブルは、先読みデータのアクセス回数を保持する領域(34)を有してよい。前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないとき、前記先読みデータ管理テーブルが保有するアクセス回数に基いてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割当てることができる。頻繁にアクセスされる先読みデータの有効利用を保証することができる。
【0018】
前記制御回路は、先読みデータ管理テーブルを所定のタイミングで不揮発性メモリの先読みデータ管理テーブル保存領域に退避してよい。先読みデータ管理テーブルをバッファメモリ上又は制御回路内部のメモリ上で運用しているとき、機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ上の先読みデータが失われても、後からそれを再現可能になる。例えば、前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送する。
【0019】
〔2〕本発明の別の観点による記憶装置は、不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、前記制御回路は、外部から入力される読出しコマンドに応答して、先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付ける書換え可能な先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力する。
【0020】
上記手段によれば、書き換え可能な先読みデータ管理テーブルを用いることにより、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。読み出しコマンドに応答して不揮発性メモリから読み出す処理に代えてバッファメモリから先読みデータを出力する処理が増えるので、システム性能を向上させることができる。
【0021】
本発明の具体的な形態として、前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送してよい。電源遮断前に機能していた先読みデータを後からバッファメモリ上に容易に再現することができる。
【0022】
〔3〕本発明の更に別の観点による記憶装置は、不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、前記制御回路は、外部から入力される先読みコマンドに応答してそれが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、バッファメモリに格納されている先読みデータを外部に読み出し可能にする。先読みコマンドにより記憶装置の外部から先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。
【0023】
本発明の具体的な形態として、前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないときの処理として、既に先読みデータを保有する領域への上書き許可、又は既に先読みデータを保有する領域への上書き禁止を選択可能にされてよい。前者を選択することにより先読みデータの動的な入れ換えに便利である。後者を選択することにより、頻繁にアクセスされる先読みデータの有効利用を保証することが容易である。後者が選択されているとき、未使用領域がないときは先読みコマンド発行元にエラー応答を返して、使用者に注意を喚起すればよい。前記上書き許可は、既に先読みデータを保有する領域への全面許可、又はアクセス頻度が少ない領域に対する部分許可としてよい。部分許可は、先読みデータの動的な入れ換え性と、頻繁にアクセスされる先読みデータの有効利用性とを両立するのに好都合である。
【0024】
読み出しコマンドに対する応答処理として、前記制御回路は、外部から入力される読出しコマンドに応答して、前記先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力する。
【0025】
書込みコマンドに対する応答処理として前記制御回路は、外部から入力される書き込みコマンドに応答して、前記先読みデータ管理テーブルを参照し、当該コマンドによる書き込みアドレスのデータをバッファメモリが保有するか否かを判定し、保有する場合には不揮発性メモリのデータと共にバッファメモリのデータを書き込みデータによって更新し、保有しない場合には不揮発性メモリのデータを書き込みデータによって更新する。
【0026】
【発明の実施の形態】
《フラッシュメモリカード》
図1には本発明に係る記憶装置の一例であるフラッシュメモリカードが示される。同図に示されるフラッシュメモリカード1は、不揮発性メモリ例えば電気的に消去及び書き込み可能なメモリフラッシュメモリ2と、DRAM(Dynamic Random Access memory)又はSRAM(Static Random Access Memory)等から成るバッファメモリ4と、メモリ制御及び外部インタフェース制御を行うカードコントローラ(制御回路)5とを実装基板に備える。フラッシュメモリカード1はホストコンピュータ6によりファイルメモリ装置として制御される。即ち、ホストコンピュータ6は、ファイルアクセスを行なうとき、フラッシュメモリカード1に形成されているFAT(ファイルアロケーションテーブル)を参照して、ファイルを構成するセクタの論理アドレスを取得し、この論理アドレスを用いてアクセスコマンドをフラッシュメモリカード1に発行する。フラッシュメモリカード1はアクセスコマンドに応答してフラッシュメモリ2及びバッファメモリ4をアクセス制御する。
【0027】
前記カードコントローラ5は、ホストコンピュータ6から与えられる読み出しコマンド、書き込みコマンド、又は先読みコマンド等による指示に従って、バッファメモリ4及びフラッシュメモリ2のアクセス制御を行う。前記読み出しコマンドは、例えば読み出しセクタの開始論理アドレスとセクタ数を指定してデータを読み出す指示である。書き込みコマンドは、例えば書き込みセクタの開始論理アドレスとセクタ数を指定してデータを書き込む指示である。先読みコマンドは、先読みすべきデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、先読みすべきデータをフラッシュメモリ2から読み出してバッファメモリ4に先読みデータとして格納する指示である。各コマンドに対する処理の詳細は後述する。
【0028】
バッファメモリ4の記憶領域はホストコンピュータ6から供給される書込みデータの一次保存領域(書き込みデータ保存領域)10、フラッシュメモリ2から読み出されてホストコンピュータ6に出力するデータを一時的に保存する領域(読み出しデータ保存領域)11、ワーク領域12、前記先読みコマンドに応答してフラッシュメモリ2から読み出されたデータを先読みデータとして保存する領域(先読みデータ保存領域)13とされる。図2にはバッファメモリ4のアドレスマップの詳細が例示される。先読みデータは、常時バッファメモリ上に読み出された状態になりバッファメモリの記憶領域を占有するため、書き込みや読み出しの通常使用のためのバッファ領域10,11と区別して管理可能にされている。
【0029】
前記フラッシュメモリ2の記憶領域はデータ部14、内部情報格納部15、及び先読みデータ管理テーブル格納部16とされ、夫々には管理部が付加されている。内部情報格納部15にはメモリカード1のID、RD(ルートディレクトリ)及びFAT(ファイルアロケーションテーブル)などが格納され、ホストコンピュータ6のOS(オペレーティングシステム)によって参照可能にされる。先読みデータ管理テーブル格納部16には前記先読みコマンドに応答して生成される前記先読みデータ管理テーブルが格納される。
【0030】
前記フラッシュメモリ2は、特に図示はしないが、電気的に消去及び書き込み可能な不揮発性メモリセルトランジスタが多数マトリクス配置されたメモリアレイARYを有する。メモリセルトランジスタ(フラッシュメモリセルとも記す)は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成されたスタックドゲート構造を有する。コントロールゲートは対応するワード線に、ドレインは対応するビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧(コントロールゲート印加電圧)に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。
【0031】
図1において前記カードコントローラ5は、ホストインタフェース回路20、演算制御手段としてのマイクロプロセッサ(MPU)21、フラッシュコントローラ22、及びバッファコントローラ23から成る。前記フラッシュコントローラ22は図示を省略するECC回路を備える。
【0032】
前記MPU21は、CPU(Central Processing Unit)25、プログラムメモリ(PGM)26及びワークRAM(WRAM)27などを有し、カードコントローラ5を全体的に制御する。プログラムメモリ26はCPU25の動作プログラムなどを保有する。
【0033】
前記ホストインタフェース回路20は、ATA(ATAttachment)、IDE(Integrated Device Electronics)、SCSI(Small Computer System Interface)、MMC(MultiMediaCard:登録商標)、PCMCIA(Personal Computer Memory Card International Association)等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ6とインタフェースを行う。
【0034】
前記バッファコントローラ23はMPU21から与えられるアクセス指示に従って、バッファメモリ4をアクセス制御する。
【0035】
フラッシュコントローラ22はMPU21から与えられるアクセス指示に従って、フラッシュメモリ2に対する、読み出し動作、消去動作及び書き込み動作を制御する。図示を省略するECC回路は、MPU21から与えられる指示に従って、フラッシュメモリ2に書き込むデータに対してエラー訂正符号(エラー訂正コード)を生成して、書き込みデータに付加する。また、フラッシュメモリ2から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラー発生に対してエラー訂正を行う。
【0036】
図3にはフラッシュメモリ2記憶領域の構成と先読みデータ管理テーブルの詳細が例示される。フラッシュッメモリ2の記憶領域(メモリアレイ)は、例えば、図では番号0〜番号4n+3のメモリセクタと、M0〜Mnの管理部によって構成されたn個のブロックを記憶領域として有する。各メモリセクタ及び各管理部は物理アドレスを持ち、各メモリセクタには論理アドレスが割当てられる。論理アドレスは例えばファイルのセクタ番号(ファイルセクタ番号)である。以下の説明ではメモリセクタのアドレスを単に物理アドレス又は物理セクタアドレスと称する。論理アドレスは外部から指示されるアドレス、物理アドレスは論理アドレスによって内部をアクセスするためのアドレスとして把握することができる。前記メモリセクタはHDD(ハード・ディスク・ドライブ)などのストレージにおける書き換え単位とされるストレージセクタの容量512B(バイト)に対応されている。前記管理領域にはブロックの有効フラグや代替フラグ等が格納される。ECCコードは各メモリセクタ毎に配置されている。1ブロックを構成する不揮発性メモリセルは1本のワード線又は1種類のワード線選択信号で選択され、消去処理及び書き込み処理の単位とされ、例えば消去処理や書き込み処理で必要な高電圧がワード線単位で印加される。
【0037】
メモリセクタ4n〜4n+3は前記先読みデータ管理テーブル格納部16とされる。先読みデータ管理テーブル格納部16の各メモリセクタには夫々複数個の先読みデータ管理テーブルTi(T0,T1,T2…)とECCコードが格納される。先読みデータ管理テーブルは先読みコマンドに応答する処理が行なわれる事によって追加可能にされているから、複数存在することが許容される。
【0038】
先読みデータ管理テーブルTiは、例えば先頭論理アドレス領域30、先頭メモリアドレス領域31、セクタ数領域32、有効フラグ領域33、アクセス回数領域34、及びファイル名領域35を有する。先頭論理アドレス領域30は先読みデータの先頭論理アドレス(論理セクタアドレス)を格納する。先頭メモリアドレス領域31はバッファメモリ上で先読みデータを保持する領域の先頭メモリアドレスを格納する。セクタ数領域32は先読みデータのセクタ数を格納する。有効フラグ領域33は当該先読みデータ管理テーブルが有効であるか否かを示すフラグを格納する。アクセス回数領域34は当該書き込み管理テーブルで管理される先読みデータに対するホストコンピュータ6によるアクセス回数を格納する領域である。ファイル名領域35は先読みデータが属するファイル名を保持する領域である。
【0039】
前記先読みデータ管理テーブルはフラッシュメモリ2上、又はバッファメモリ4上のどちらで管理してもよい。フラッシュメモリ2上で管理する場合には、先読みデータ管理テーブルの生成消滅の度に先読みデータ管理テーブル格納部16に対する消去及び書き込み処理を行なうことになるので、動作が遅くなる。バッファメモリ4上で管理する場合には管理テーブルの生成消滅の動作は高速になる。但し、電源遮断時は先読みデータ管理テーブルをフラッシュメモリ2に待避することを要する。また、パワーオンに応答して、フラッシュメモリ2から先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータをフラッシュメモリからバッファメモリ4に転送することが望ましい。
【0040】
《先読みコマンド応答処理》
図4には先読みコマンドの主な仕様が示される。先読みデータの指定方法はアドレスによる指定、又はファイル名指定の何れも可能とされる。アドレス指定は、メモリカード1の使用者(ユーザ)が先読みデータの領域を論理アドレスで指定することである。ファイル指定はユーザが先読みデータを有するファイル名で指定することである。ファイル名にはその所在の絶対パスも含めればファイル名の重複にも容易に対処でき、ファイルの検索も容易になる。
【0041】
一般に、記憶装置の使用者はOSで管理されるフラッシュメモリカード1上の論理アドレスを把握できない場合が有る。フラッシュメモリカード1の使用者はファイル名でデータを把握するのが簡便であり、これを考慮する事によってデータ先読みに対する良好な操作性を保証できる。また、OS上でフラッシュメモリ上の論理アドレスを管理できない場合もある。このような場合でも先読みデータの指定が可能となる。
【0042】
また、先読みデータをフラッシュメモリ2からバッファメモリ4に格納する動作タイミングは先読みコマンド発行時、或は先に先読みデータ管理テーブルを生成した後のコマンド待ち状態においてバックグラウンドで行なう。コマンド待ち状態で行なうことにより、フラッシュメモリ2からバッファメモリ4に先読みデータを転送する処理によりリードアクセスなど処理が待たされるというような事態の発生を未然に防止することができる。
【0043】
図5には先読みコマンド応答処理の制御手順が例示される。ホストコンピュータ6から発行された先読みコマンドを受付けると(S1)、そのコマンドで論理アドレス又はファイル名で指定された先読みデータの物理アドレスを取得する(S2)。先読みコマンドで指定された先読みデータの論アドレス及びそれに対応する物理アドレス等に基いて先読みデータ管理テーブルを作成する(S3)。作成場所は例えばバッファメモリ4のワーク領域12である。作成された先読みデータ管理テーブルで規定される先読みデータが実際に読み出し可能か否かを判別する(S4)。ファイルが存在しなかったり、或はフラッシュメモリのブロックに対する論理アドレスの対応付けが行なわれていない場合を検出するためであり、読み出し可能でなければホストコンピュータ6にエラーコードを返す。読み出し可能であれば、次コマンド受付可能かを判定し、受付け不可能であれば、要するにホストコンピュータ6から他のアクセスコマンドが発行されていなければ、フラッシュメモリ2から先読みデータを読み出してバッファメモリ4に書き込み(S6)、対応する先読みデータ管理テーブルの有効フラグ領域33に有効フラグをセットする(S7)。先読みデータのセクタ数が2以上に場合には、後続セクタデータに対してもステップS6,S7に戻って同様の処理を繰返す(S8)。後続セクタデータの先読みに必要なフラッシュメモリ2の先読みデータ読み出しアドレスやバッファメモリの先読みデータ書き込みアドレスはマイクロプロセッサ11のアドレス演算によって順次取得すればよい。ステップS3で作成した先読みデータ管理テーブルで規定される全てのセクタデータの先読みを完了すると、今回の先読みコマンド受付によるビジー状態を解除して(S9)、処理を終了する。前記ステップS5において、次コマンド受付可能であれば先読みコマンド受付によるビジー状態を解除して(S9)、当該次コマンドを受付けて実行する。
【0044】
前記ステップS5の判別処理を無効とし、ステップS6以降の処理を自動的に継続する処理手順を採用可能であることは言うまでもない。その場合の処理の切り換え(ステップS5処理を行なうか否かの切り換え)はカードコントローラ5自身が設定切換え機能を持っていてもよいし、先読みコマンドに機能切換え用の制御情報を持たせてもよい。
【0045】
ホストコンピュータ6からアクセスコマンドが供給されたときは、先読みデータ管理テーブルの前記有効フラグ33がチェックされ、セットされた有効フラグ33を持つ先読みデータ管理テーブルだけが、利用すべき先読みデータの所在を取得するための検索対象とされる。
【0046】
図6には前記ホスト指定アドレス取得処理(S2)の具体例が示される。同図に示される処理はホストコンピュータ6から供給される先読みコマンドによって先読みデータをファイル名で指定する場合の応答処理である。先ず、先読みコマンドから、先読みデータを保有するファイル名を取得する(S21)。次に、フラッシュメモリ2のマスタブートレコード領域(MBR)のパーテンションIDをリードし、使用ファイルシステムを認識する(S22)。使用ファイルシステムにしたがってファイルシステムの認識が可能かを判別し(S23)、可能であれば、フラッシュメモリ2上のFATなどを利用してファイルシステムを解析し、ファイルが保存された論理アドレスを取得する。ファイルが断片化されている場合にも同様にファイルが保存された論理アドレスを取得する。そして、ファイルシステム上に該当データの存在することを確認した後(S25のyes)、フラッシュメモリのメモリアドレスを算出する。論理アドレスとフラッシュメモリ2の物理アドレスとの対応が可変のシステムでは相互の関係を規定するアドレス変換テーブルを参照して算出することになる。アドレス変換テーブルはフラッシュメモリ2が所定領域に保有している。
【0047】
ユーザは、ファイルシステム上では論理アドレスを管理できない。このため、ファイル名での指定を可能にすることで、ユーザの先読みデータ管理が可能になる。
【0048】
ファイルが断片化しているときは、先読みデータ管理テーブルは図3の構成を有しているので、論理アドレスが連続する断片化部分毎に先読みデータ管理テーブルを作成することが必要になる。一つのデータファイルに対して先読みデータ管理テーブルが複数個存在しても、各先読みデータ管理テーブルはそのファイル名領域35に夫々ファイル名を持っているのでアクセスコマンドに応答するときの検索処理の支障にはならない。
【0049】
フラッシュメモリ2上に同一ファイル名が複数存在することが想定されるため、先読みデータ管理テーブルに保存するファイル名は、絶対パスも含めて保存することが望ましい。若しくは同一ファイル名であってもファイルシステム上の論理アドレスは異なっていることから、先読みデータ管理テーブルに保存するファイル名は、論理アドレスを含めて保存するものであってもよい。
【0050】
図7にはバッファメモリ4に先読みデータを格納する未使用領域がないときの処理形態(先読みデータ更新形態)が例示される。
【0051】
バッファメモリ4に先読みデータを格納する未使用領域がないときの処理形態として、既に先読みデータを保有する領域への上書き許可、又は既に先読みデータを保有する領域への上書き禁止がある。
【0052】
上書き禁止を採用することにより、頻繁にアクセスされる先読みデータの有効利用を保証することが容易である。上書き禁止が採用されているとき、未使用領域がないときは先読みコマンド発行元にエラー応答を返して、使用者に注意を喚起すればよい。上書き許可を採用することにより先読みデータの動的な入れ換えに便利である。
【0053】
前記上書き許可の形態として、既に先読みデータを保有する領域への全面許可、又はアクセス頻度が少ない領域に対する部分許可がある。上書き全面許可の場合、カードコントローラ5は前記先読みデータ保存領域13に対しFIFO(ファーストイン・ファーストアウト)により順次古いものから先に上書きを許可する制御を行なえばよい。
【0054】
アクセス頻度に応じた部分許可を採用する場合、アクセス頻度が少ない領域か否かは先読みデータ管理テーブルが保有するアクセス回数領域34の値に基いて判定すればよい。例えばその判定基準としてアクセス回数1を採用する場合にはアクセス回数1を保有する先読みデータ管理テーブルを検索し、検索されら先読みデータ管理テーブルで使用されているバッファメモリアドレスを利用すればよい。また、任意の複数個の先読みデータ管理テーブルを検索して得られる最小アクセス回数を保有する先読みデータ管理テーブルで管理されているバッファメモリアドレスを利用してもよい。
【0055】
上記部分許可は、先読みデータの動的な入れ換え性と、頻繁にアクセスされる先読みデータの有効利用性とを両立するのに好都合である。
【0056】
上記先読みデータ更新形態は、カードコントローラ5に制御データ若しくはモード信号によって設定してよい。或は、先読みコマンドでその都度指定するようにしてもよい。
【0057】
《読み出しコマンド応答処理》
図8には読み出しコマンド応答処理の制御手順が例示される。カードコントローラ5は、ホストコンピュータ6から発行された読み出しコマンドを受付けると(S30)、読み出しコマンドで指定された論理アドレスに対応する先読みデータ管理テーブルが存在しているかを判別する(S31)。指定論理アドレスの全てについて先読みデータ管理テーブルがない場合には、読み出し対象論理アドレスに応ずるフラッシュメモリの物理セクタアドレスを算出し(S32)、その物理セクタアドレスからデータを読み出してバッファメモリの読み出しデータ保存領域に転送し(S33)、その読み出しデータ保存領域に転送されたデータをホストコンピュータ6に向けて出力する(S34)。
【0058】
ステップS31の処理において、指定論理アドレスについて先読みデータ管理テーブルがあると判定されたときは、全てのデータが先読みされているか否かが判定される(S35)。要するに、読み出しコマンドで指定される論理アドレスの全てが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するか否かが判定される。その判定結果が、一部先読みデータ無しの場合は、先読みデータのない論理アドレスに応ずるフラッシュメモリの物理セクタアドレスを算出し(S36)、その物理セクタアドレスからデータを読み出してバッファメモリ4の読み出しデータ保存領域に転送する(S33)。一部先読みデータのある論理アドレスに対しては対応する先読みデータ管理テーブルのアクセス回数を+1インクリメントする(S37)。そして、ステップS33で読み出しデータ保存領域に転送されたデータ及び先読みデータ保存領域13にある残りの先読みデータをホストコンピュータ6に向けて出力する(S34)。全ての論理アドレスに対して先読みデータがある場合には、当該論理アドレスに対応する先読みデータ管理テーブルのアクセス回数を+1インクリメントし(S37)先読みデータ保存領域13にある対応する先読みデータをホストコンピュータ6に向けて出力する(S34)。
【0059】
図8の処理では、先読み済みデータが揃っていない場合、不足データをフラッシュメモリ2からバッファメモリ4に転送後にホストコンピュータ6にデータ転送を行う。不足データをフラッシュメモリ2からバッファメモリ4に読み出す前に、先読み済みデータをホストコンピュータ6に転送してもよい。
【0060】
《書き込みコマンド応答処理》
図9には書き込みコマンド応答処理の制御手順が例示される。カードコントローラ5は、ホストコンピュータ6から発行された書き込みコマンドを受付けると(S40)、ホストコンピュータ6から供給される書込みデータを書き込みデータ保存領域10に一時的に格納する(S41)。カードコントローラ5は書き込みコマンドで指定された論理アドレスに対応するフラッシュメモリ2上の物理セクタアドレスを演算し(S42)、フラッシュメモリ2にフラッシュ書き込みコマンドを与えて、フラッシュメモリ2への書き込み処理を指示する(S34)。フラッシュメモリ2の書き込み動作に並行して、カードコントローラ5は書込みデータに関する先読みデータ管理テーブルの有無を判別する(S44)。書込みデータに係る有効な先読みデータがあれば、バッファメモリ4上でその先読みデータを書込みデータによって更新し(S47)、対応する先読みデータ管理テーブルの内容を更新する(S48)。例えば、アクセス回数を+1インクリメントする。ステップS48の処理が終った後、或はステップS44の判別で対応する先読みデータがない場合、ステップS43で開始したフラッシュメモリの書き込む処理が終るのを待って、書き込みコマンドによるビジーフラグを解除して(S46)、処理を終了する。
【0061】
先読み済みデータの更新時には、記憶媒体上のデータと同時にバッファ上の先読みデータ保存領域のデータも更新する必要がある。このため、ライト要求時のアドレスは常に監視する必要があるが、記憶媒体への保存時間に比べて、バッファメモリ4の更新処理は非常に早いため、大きな性能低下を発生しない。
【0062】
《先読みデータ管理テーブルの退避》
先読みデータ管理テーブルをバッファメモリ4のワーク領域12などの揮発性のメモリ上で運用しているとき、カードコントローラ5は、先読みデータ管理テーブルを所定のタイミングでフラッシュメモリ2の先読みデータ管理テーブル保存領域に退避する。所定のタイミングとは、例えば電源遮断時、或は所定期間をおいた後のコマンド待ち状態時である。機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ4上の先読みデータが失われても、後からそれを再現可能になる。前記カードコントローラ5は、パワーオンに応答してフラッシュメモリ2から先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータをフラッシュメモリ2からバッファメモリ4に転送すればよい。
【0063】
以上説明したフラッシュメモリーカード1によれば以下の作用効果を得ることができる。
【0064】
〔1〕先読みコマンドによりホストコンピュータ6からフラッシュメモリカード1に対して先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。フラッシュメモリーカード1の読み出し性能は、記憶媒体であるフラッシュメモリ2自身の読み出し性能がボトルネックとなっているため、ホストコンピュータ6からの読み出し要求時にフラッシュメモリ2からの読み出し処理に代えてバッファメモリ4から先読みデータを出力する処理が増えることにより、システム性能を向上させることができる。
【0065】
〔2〕前記先読みコマンドは先読みデータの指定を論理アドレス又はファイル名の何れによっても行なうことができる。例えば先読みコマンドにおいて論理アドレスの指定フィールドとファイル名の指定フィールドが異なっている。マスタブートレコード若しくはFAT(ファイル・アロケーション・テーブル)などに代表されるように使用者にとってその論理アドレスの把握が容易な場合もあるので、論理アドレスによる指定は、先読みデータを直接的に指定できるので便利である。
【0066】
フラッシュメモリーカード1の使用者はOSで管理されるフラッシュメモリ2上の論理アドレスを把握できない場合が有り、フラッシュメモリカード1の使用者はファイル名でデータを把握するのが簡便であり、データ先読みに対する良好な操作性を実現することができる。
【0067】
〔3〕カードコントローラ5による先読みデータの転送形態として、先読みコマンドの実行時の他に、先に先読みデータ管理テーブルを生成し、その後所定のタイミングで先読みデータをバッファメモリ4に転送する形態を採用することができる。これにより、カードコントローラ5は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリ4に転送することができる。先読み処理によってリードアクセスなど処理が待たされてデータ処理効率が低下することを未然に防止することができる。
【0068】
〔4〕先読みデータ管理テーブルは、先読みデータの先頭論理アドレス、先読みデータを格納する領域の先頭メモリアドレス、及び先読みデータのデータ数を保持する領域と共に、先読みデータを含むファイル名を保持する領域を有する。これにより、ファイルシステムにおいてファイルの断片化を生じたとき、一つのファイルデータは分割された複数の先読みデータ管理テーブルによって管理されることになるので、リードアクセス等に応答する処理においてファイル名で対応する先読みデータ管理テーブルを検索でき、バッファメモリ上の所要の先読みデータのアクセスが更に速くなる。
【0069】
〔5〕前記先読みデータ管理テーブルは、ホストコンピュータ6による先読みデータのアクセス回数を保持する領域34を有することにより、カードコントローラ5は、バッファメモリ4に先読みデータを格納する未使用領域がないとき、先読みデータ管理テーブルが保有するアクセス回数に基いてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割当てることができる。頻繁にアクセスされる先読みデータの有効利用を保証することができる。
【0070】
〔6〕カードコントローラ5は先読みデータ管理テーブルを所定のタイミングでフラッシュメモリ2の先読みデータ管理テーブル保存領域に退避することにより、先読みデータ管理テーブルをバッファメモリ4上又はワークRAM26で運用しているとき、機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ上の先読みデータが失われても、後からそれを再現可能になる。
【0071】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0072】
例えば、上記ではファイルシステムとしてFATファイルシステムにとしたが、NTFS等その他のファイルシステムであってもよい。不揮発性メモリをフラッシュメモリとしたが、高誘電体メモリ等、その他の半導体メモリであってもよい。更に不揮発性メモリは半導体メモリに限定されず、ハードディスクなどの記録ディスクであってもよい。本発明はフラッシュメモリーカード等のメモリカードに限定されず、ハードディスク装置にも適用することができる。このとき、記憶装置はリムーバブルであることに限定されず、装着システムに固定配置される利用形態のものであってもよい。
【0073】
前記フラッシュメモリはスタックドゲート構造に限定されず、選択MOSトランジスタ部とメモリMOSトランジスタ部との間に拡散層を設けずに直列形態に形成したスプリットゲート構造であってもよい。また、シリコン窒化膜のようなトラップ領域に電荷を局在的に蓄積するメモリセル構造を採用してもよい。半導体不揮発性メモリは1個のメモリセルが保持する記憶情報を1ビットとする構成に限定されず2ビット以上とする記憶形式であってもよい。
【0074】
また、本発明をメモリカードに適用する場合、カードコントローラのような制御回路はIDEなどのホストインタフェース回路を備えなくてもよく、その機能をホストコンピュータに負担させるように規格化されたメモリカードにも適用可能である。
【0075】
また、先読みコマンドが指定する先読みデータの論理アドレスは、ファイルシステムの構成如何により、実質的に不揮発性メモリの物理アドレスに一致している場合もある。
【0076】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0077】
すなわち、先読みコマンドにより記憶装置の外部から先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。外部からの読み出し要求時に記憶媒体からの読み出し処理に代えてバッファメモリから先読みデータを出力する処理が増えることにより、記憶装置を用いるシステムのデータ処理性能を向上させることができる。
【図面の簡単な説明】
【図1】本発明に係る記憶装置の一例であるフラッシュメモリカードのブロック図である。
【図2】バッファメモリのアドレスマップの詳細を示す説明図である。
【図3】フラッシュメモリの記憶領域の構成と先読みデータ管理テーブルの詳細を例示する説明図である。
【図4】先読みコマンドの主な仕様を示す説明図である。
【図5】先読みコマンド応答処理の制御手順を例示するフローチャートである。
【図6】ホスト指定アドレス取得処理(S2)の具体例を示すフローチャートである。
【図7】バッファメモリに先読みデータを格納する未使用領域がないときの処理形態(先読みデータ更新形態)を例示する説明図である。
【図8】読み出しコマンド応答処理の制御手順を例示するフローチャートである。
【図9】書き込みコマンド応答処理の制御手順を例示するフローチャートである。
【符号の説明】
1 メモリカード
2 フラッシュメモリ
4 バッファメモリ
5 カードコントローラ
6 ホストコンピュータ
10 書込みデータ保存領域
11 読み出しデータ保存領域
12 ワーク領域
13 先読みデータ保存領域
14 データ部
15 内部情報格納部
16 先読みデータ管理テーブル格納部
20 ホストインタフェース回路
21 マイクロプロセッサ
22 フラッシュコントローラ
33 バッファコントローラ
25 CPU
26 ワークRAM
27 プログラムメモリ
Ti 先読みデータ管理テーブル
30 先頭論理アドレス領域
31 先頭メモリアドレス領域
32 セクタ数領域
33 有効フラグ領域
34 アクセス回数領域
35 ファイル名領域

Claims (20)

  1. 不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、
    前記制御回路は、外部から入力される先読みコマンドが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、外部から入力される読み出しコマンドで指定される論理アドレスが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するときバッファメモリから対応する先読みデータを出力することを特徴とする記憶装置。
  2. 前記先読みコマンドは論理アドレスによって先読みデータを指定することを特徴とする請求項1記載の記憶装置。
  3. 前記先読みコマンドはファイル名によって先読みデータを指定することを特徴とする請求項1記載の記憶装置。
  4. 前記制御回路は、先読みコマンドの実行時に先読みデータをバッファメモリに転送することを特徴とする請求項1記載の記憶装置。
  5. 前記制御回路は先読みデータ管理テーブルを生成した後に先読みデータをバッファメモリに転送することを特徴とする請求項1記載の記憶装置。
  6. 前記制御回路は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリに転送することを特徴とする請求項5記載の記憶装置。
  7. 前記先読みデータ管理テーブルは、先読みデータの先頭論理アドレス、先読みデータを格納する領域の先頭メモリアドレス、及び先読みデータのデータ数を保持する領域を有することを特徴とする請求項1記載の記憶装置。
  8. 前記先読みデータ管理テーブルは、対応する先読みデータの有効性を示すフラグを保持する領域を有することを特徴とする請求項6記載の記憶装置。
  9. 前記先読みデータ管理テーブルは、先読みデータを含むファイル名を保持する領域を有することを特徴とする請求項3記載の記憶装置。
  10. 前記先読みデータ管理テーブルは、先読みデータのアクセス回数を保持する領域を有することを特徴とする請求項1記載の記憶装置。
  11. 前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないとき、前記先読みデータ管理テーブルが保有するアクセス回数に基いてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割当てることを特徴とする請求項10記載の記憶装置。
  12. 前記制御回路は、先読みデータ管理テーブルを所定のタイミングで不揮発性メモリの先読みデータ管理テーブル保存領域に退避することを特徴とする請求項1記載の記憶装置。
  13. 前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送することを特徴とする請求項12記載の記憶装置。
  14. 不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、
    前記制御回路は、外部から入力される読出しコマンドに応答して、先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付ける書換え可能な先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力することを特徴とする記憶装置。
  15. 前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送することを特徴とする請求項14記載の記憶装置。
  16. 不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、
    前記制御回路は、外部から入力される先読みコマンドに応答してそれが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、バッファメモリに格納されている先読みデータを外部に読み出し可能にすることを特徴とする記憶装置。
  17. 前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないときの処理として、既に先読みデータを保有する領域への上書き許可、又は既に先読みデータを保有する領域への上書き禁止を選択可能にされることを特徴とする請求項16記載の記憶装置。
  18. 前記上書き許可は、既に先読みデータを保有する領域への全面許可、又はアクセス頻度が少ない領域をに対する部分許可とされることを特徴とする請求項17記載の記憶装置。
  19. 前記制御回路は、外部から入力される読出しコマンドに応答して、前記先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力することを特徴とする請求項16記載の記憶装置。
  20. 前記制御回路は、外部から入力される書き込みコマンドに応答して、前記先読みデータ管理テーブルを参照し、当該コマンドによる書き込みアドレスのデータをバッファメモリが保有するか否かを判定し、保有する場合には不揮発性メモリのデータと共にバッファメモリのデータを書き込みデータによって更新し、保有しない場合には不揮発性メモリのデータを書き込みデータによって更新することを特徴とする請求項16又は19記載の記憶装置。
JP2003108603A 2003-04-14 2003-04-14 記憶装置 Pending JP2004318940A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2003108603A JP2004318940A (ja) 2003-04-14 2003-04-14 記憶装置
US10/811,961 US7191308B2 (en) 2003-04-14 2004-03-30 Memory device with preread data management
TW093109984A TWI358641B (en) 2003-04-14 2004-04-09 Memory device
KR1020040025379A KR101054153B1 (ko) 2003-04-14 2004-04-13 기억 장치
CNA2004100348213A CN1538284A (zh) 2003-04-14 2004-04-14 存储设备
US11/711,084 US7552311B2 (en) 2003-04-14 2007-02-27 Memory device with preread data management
KR1020100120922A KR101081716B1 (ko) 2003-04-14 2010-11-30 기억 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003108603A JP2004318940A (ja) 2003-04-14 2003-04-14 記憶装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008287680A Division JP2009080926A (ja) 2008-11-10 2008-11-10 記憶装置

Publications (1)

Publication Number Publication Date
JP2004318940A true JP2004318940A (ja) 2004-11-11

Family

ID=33128069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003108603A Pending JP2004318940A (ja) 2003-04-14 2003-04-14 記憶装置

Country Status (5)

Country Link
US (2) US7191308B2 (ja)
JP (1) JP2004318940A (ja)
KR (2) KR101054153B1 (ja)
CN (1) CN1538284A (ja)
TW (1) TWI358641B (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555629B2 (en) 2005-05-24 2009-06-30 Samsung Electronics Co., Ltd. Memory card providing hardware acceleration for read operations
WO2012161059A1 (en) * 2011-05-20 2012-11-29 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method for driving the same
US8984219B2 (en) 2011-09-22 2015-03-17 Samsung Electronics Co., Ltd. Data storage device and method of writing data in the same
JP2017045388A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP2017049713A (ja) * 2015-08-31 2017-03-09 株式会社メガチップス メモリコントローラ
US11029878B2 (en) 2016-06-23 2021-06-08 Fujitsu Limited Information processing system
JP7375215B2 (ja) 2020-02-18 2023-11-07 マイクロン テクノロジー,インク. 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003085677A1 (fr) * 2002-04-05 2003-10-16 Renesas Technology Corp. Memoire non volatile
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
JP4622474B2 (ja) * 2004-11-17 2011-02-02 横河電機株式会社 フィールド機器及びこれを用いたシステム
JP4843222B2 (ja) * 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7873788B1 (en) 2005-11-15 2011-01-18 Oracle America, Inc. Re-fetching cache memory having coherent re-fetching
US7899990B2 (en) * 2005-11-15 2011-03-01 Oracle America, Inc. Power conservation via DRAM access
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7934054B1 (en) * 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7516274B2 (en) * 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7747837B2 (en) * 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US8990153B2 (en) * 2006-02-07 2015-03-24 Dot Hill Systems Corporation Pull data replication model
JP4802791B2 (ja) * 2006-03-20 2011-10-26 ソニー株式会社 データ記憶装置及びデータアクセス方法
US7426606B2 (en) * 2006-03-31 2008-09-16 Intel Corporation Method, apparatus and system for reverting FAT cluster number to file ID and offset of non-FAT flash file system
US8176230B2 (en) * 2006-04-07 2012-05-08 Kingston Technology Corporation Wireless flash memory card expansion system
FI20060427L (fi) * 2006-05-03 2007-11-04 Tellabs Oy Menetelmä ja laitteisto peräkkäistiedoston käsittelemiseksi
US20070276989A1 (en) * 2006-05-29 2007-11-29 Sandisk Il Ltd. Predictive data-loader
JP4984666B2 (ja) * 2006-06-12 2012-07-25 ソニー株式会社 不揮発性メモリ
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
KR100891333B1 (ko) * 2007-04-11 2009-03-31 삼성전자주식회사 파일 시스템에 무관하게 데이터를 기입/독출할 수 있는하드 디스크 드라이브 및 이를 이용한 데이터 기입/독출방법
KR100914265B1 (ko) * 2007-05-10 2009-08-27 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및그것의 읽기 방법
KR101570662B1 (ko) 2007-06-29 2015-11-23 샌디스크 테크놀로지스, 인코포레이티드 비휘발성 메모리 저장 장치와 통신하기 위한 방법과 시스템
US8429328B2 (en) * 2007-06-29 2013-04-23 Sandisk Technologies Inc. System for communicating with a non-volatile memory storage device
US8433842B2 (en) * 2007-06-29 2013-04-30 Sandisk Technologies Inc. Method for communicating with a non-volatile memory storage device
KR101300657B1 (ko) * 2007-07-06 2013-08-27 삼성전자주식회사 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
JP2009230414A (ja) * 2008-03-21 2009-10-08 Toshiba Corp 複数の不揮発性メモリデバイスを有する記憶装置
DE112008004033T5 (de) * 2008-10-09 2012-01-19 Numonyx B.V. Virtualisiertes Ecc Nand
JP2011060395A (ja) * 2009-09-14 2011-03-24 Hitachi-Lg Data Storage Inc 光ディスク装置
US8307164B2 (en) 2009-12-15 2012-11-06 International Business Machines Corporation Automatic determination of read-ahead amount
CN102566936B (zh) * 2010-12-28 2015-04-29 联想(北京)有限公司 一种磁盘数据读取方法、装置及磁盘驱动装置
JP5798459B2 (ja) * 2011-11-28 2015-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイル要求アクセスを制御する方法
TWI486767B (zh) * 2012-06-22 2015-06-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
KR102080542B1 (ko) * 2013-06-27 2020-02-25 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치 및 그 구동 방법
KR20160075174A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작방법
JP6421042B2 (ja) * 2015-01-16 2018-11-07 ルネサスエレクトロニクス株式会社 情報処理装置
US20170060460A1 (en) * 2015-08-31 2017-03-02 Megachips Corporation Memory controller
US10268385B2 (en) * 2016-05-03 2019-04-23 SK Hynix Inc. Grouped trim bitmap
KR200483205Y1 (ko) 2016-10-17 2017-04-26 김요한 드럼스틱
KR20180049338A (ko) * 2016-10-31 2018-05-11 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US10762000B2 (en) * 2017-04-10 2020-09-01 Samsung Electronics Co., Ltd. Techniques to reduce read-modify-write overhead in hybrid DRAM/NAND memory
CN107340978B (zh) * 2017-07-18 2020-05-26 苏州浪潮智能科技有限公司 一种存储预读方法、装置及存储系统
US10521617B2 (en) * 2017-08-14 2019-12-31 Western Digital Technologies, Inc. Non-volatile memory device with secure read
KR20190090268A (ko) * 2018-01-24 2019-08-01 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN116644004A (zh) * 2018-05-23 2023-08-25 北京忆芯科技有限公司 预读方法及其存储控制器
KR20200019513A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그 동작 방법
CN111290975A (zh) * 2018-12-07 2020-06-16 北京忆恒创源科技有限公司 使用统一缓存处理读命令与预读命令的方法及其存储设备
US20210303470A1 (en) * 2020-03-27 2021-09-30 Micron Technology, Inc. Sequential prefetching through a linking array
CN113037886B (zh) * 2021-03-05 2022-02-08 腾讯科技(深圳)有限公司 网络设备的管理方法、装置、介质以及电子设备
CN114327284B (zh) * 2021-12-30 2023-02-03 河北建筑工程学院 一种数据处理的方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0328944A (ja) 1989-06-26 1991-02-07 Hitachi Ltd ディスク制御装置および該ディスク制御装置におけるキャッシュ制御方法
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH0895852A (ja) 1994-09-29 1996-04-12 Sharp Corp バッファ回路
JP2900801B2 (ja) * 1994-10-27 1999-06-02 ティアック株式会社 光ディスク再生装置
JPH08249129A (ja) 1995-03-10 1996-09-27 Canon Inc 情報記録再生装置
US6553476B1 (en) * 1997-02-10 2003-04-22 Matsushita Electric Industrial Co., Ltd. Storage management based on predicted I/O execution times
JPH11224165A (ja) 1998-02-09 1999-08-17 Hitachi Ltd ディスク装置
JP3544476B2 (ja) * 1998-09-11 2004-07-21 富士通株式会社 メモリ管理テーブル作成方法
JP3495266B2 (ja) 1998-11-13 2004-02-09 Necエレクトロニクス株式会社 キャッシュロック装置及びキャッシュロック方法
JP3043732B1 (ja) 1998-12-18 2000-05-22 甲府日本電気株式会社 データ置換システム
JP2001051896A (ja) * 1999-08-04 2001-02-23 Hitachi Ltd 記憶装置
US6754779B1 (en) * 1999-08-23 2004-06-22 Advanced Micro Devices SDRAM read prefetch from multiple master devices
JP2001125829A (ja) 1999-10-28 2001-05-11 Internatl Business Mach Corp <Ibm> コントローラ装置、ディスクコントローラ、補助記憶装置、コンピュータ装置、および補助記憶装置の制御方法
JP4060506B2 (ja) * 1999-12-28 2008-03-12 株式会社東芝 ディスク制御装置
JP3535800B2 (ja) * 2000-03-31 2004-06-07 松下電器産業株式会社 ディスクメモリ装置、データ先読み方法、及び記録媒体
US20030041214A1 (en) * 2001-07-27 2003-02-27 Fujitsu Limited Cache control methods and apparatus for hard disk drives
JP4348883B2 (ja) 2001-08-21 2009-10-21 ソニー株式会社 データ再生装置及びデータキャッシュ方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7555629B2 (en) 2005-05-24 2009-06-30 Samsung Electronics Co., Ltd. Memory card providing hardware acceleration for read operations
WO2012161059A1 (en) * 2011-05-20 2012-11-29 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method for driving the same
US8824194B2 (en) 2011-05-20 2014-09-02 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method for driving the same
US8984219B2 (en) 2011-09-22 2015-03-17 Samsung Electronics Co., Ltd. Data storage device and method of writing data in the same
JP2017045388A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP2017049713A (ja) * 2015-08-31 2017-03-09 株式会社メガチップス メモリコントローラ
US11029878B2 (en) 2016-06-23 2021-06-08 Fujitsu Limited Information processing system
JP7375215B2 (ja) 2020-02-18 2023-11-07 マイクロン テクノロジー,インク. 順次的にプログラムするメモリサブシステムにおける順次読み出し最適化

Also Published As

Publication number Publication date
US20040205301A1 (en) 2004-10-14
KR101054153B1 (ko) 2011-08-03
CN1538284A (zh) 2004-10-20
US7552311B2 (en) 2009-06-23
US20070150662A1 (en) 2007-06-28
US7191308B2 (en) 2007-03-13
KR20040089581A (ko) 2004-10-21
TWI358641B (en) 2012-02-21
TW200502756A (en) 2005-01-16
KR20110007073A (ko) 2011-01-21
KR101081716B1 (ko) 2011-11-08

Similar Documents

Publication Publication Date Title
JP2004318940A (ja) 記憶装置
US6938144B2 (en) Address conversion unit for memory device
JP4967680B2 (ja) 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
JP4058322B2 (ja) メモリカード
US8135939B2 (en) Robust index storage for non-volatile memory
JP4988215B2 (ja) 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム
JP4611024B2 (ja) ブロック内のページをグループ化する方法及び装置
US9367451B2 (en) Storage device management device and method for managing storage device
US7174440B2 (en) Method and apparatus for performing block caching in a non-volatile memory system
US20150309927A1 (en) Hybrid Non-Volatile Memory System
US20130275650A1 (en) Semiconductor storage device
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP3421581B2 (ja) 不揮発性半導体メモリを用いた記憶装置
JP5036078B2 (ja) 記憶装置
KR100914646B1 (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
JPH06349286A (ja) フラッシュメモリ用書き込み制御方法および制御装置
JP2008197981A (ja) 半導体記憶装置
JP2009080926A (ja) 記憶装置
JP2008112455A (ja) メモリカード
GB2391350A (en) Non-volatile memory which can be directly overwritten
JPH10289144A (ja) メモリの制御方法
JP4042898B2 (ja) メモリコントローラ及びこれを備えるメモリシステム並びにフラッシュメモリの制御方法
TWI381383B (zh) 快閃記憶體的資料儲存方法
KR20080112069A (ko) 블록 단위 입출력 디바이스에서 피램을 이용한 데이터 기록시스템 및 방법
KR20240062319A (ko) 플래시 메모리를 기반으로 하는 메모리 시스템 및 그것의 메타 데이터 관리 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090407