JP5036078B2 - Storage device - Google Patents
Storage device Download PDFInfo
- Publication number
- JP5036078B2 JP5036078B2 JP2010091305A JP2010091305A JP5036078B2 JP 5036078 B2 JP5036078 B2 JP 5036078B2 JP 2010091305 A JP2010091305 A JP 2010091305A JP 2010091305 A JP2010091305 A JP 2010091305A JP 5036078 B2 JP5036078 B2 JP 5036078B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- prefetch
- management table
- area
- prefetch data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、ハードディスク装置又はフラッシュメモリカードなどの記憶装置に係り、特に記憶媒体である不揮発性メモリの記憶情報をバッファメモリに先読みする技術に適用して有効な発明に関する。 The present invention relates to a storage device such as a hard disk device or a flash memory card, and more particularly to an invention that is effective when applied to a technique for prefetching storage information of a nonvolatile memory as a storage medium into a buffer memory.
コントローラ、バッファメモリ、及び記憶媒体などから構成される記憶装置では、ホスト装置からリード要求が来ると、その後利用が予想されるデータをホスト装置からリード要求が来る前にコントローラが記憶媒体から読み出してバッファメモリ上に格納する先読み技術がある。例えば特許文献1に記載のハードディスクドライブ(HDD)装置はディスクキャッシュを有し、予測されるデータを予めディスクキャッシュにキャッシュしておき、時間のかかる磁気ディスクへのアクセスを最小限に抑えるように構成される。ハードディスクコントローラは磁気ディスクに格納されているデータの一部を先読みしてディスクキャッシュに保持するための制御を行う。
In a storage device composed of a controller, a buffer memory, a storage medium, and the like, when a read request is received from the host device, the controller reads data expected to be used thereafter from the storage medium before the read request is received from the host device. There is a look-ahead technique for storing data in the buffer memory. For example, a hard disk drive (HDD) device described in
磁気ディスクやフラッシュメモリなどの記憶媒体に対するデータ読み出し性能は、ホストインタフェースの高速化に追随できていないため、ホスト装置からの読み出し要求時に記憶媒体からの読み出し処理を減らすことが必要になる。このためには上記のような記憶媒体からデータを先読みして予めバッファメモリに格納することが有効と考えられる。しかしながら、先読みすべきデータは記憶装置のコントローラが決定していて、ユーザが先読み機能を使用できない。要するに、所定のアルゴリズムにしたがってコントローラが先読みデータを決定していたのでは、使用頻度が高いと予想されるデータを予めバッファメモリに先読みすることが容易ではなく、先読みによるアクセス時間の短縮効果を最大限に発揮させることが難しい。 Since the data read performance for a storage medium such as a magnetic disk or a flash memory has not been able to follow the speeding up of the host interface, it is necessary to reduce the read processing from the storage medium at the time of a read request from the host device. For this purpose, it is considered effective to pre-read data from the storage medium as described above and store it in the buffer memory in advance. However, the data to be prefetched is determined by the controller of the storage device, and the user cannot use the prefetch function. In short, if the controller determines prefetched data according to a predetermined algorithm, it is not easy to prefetch data that is expected to be used frequently into the buffer memory in advance, and the effect of shortening access time by prefetching is maximized. It is difficult to let it show to the limit.
本発明の目的は、先読みすべきデータを柔軟に決定することができる記憶装置を提供することにある。 An object of the present invention is to provide a storage device that can flexibly determine data to be prefetched.
本発明の別の目的は、先読みによるアクセス時間の短縮効果を最大限に発揮させることが容易な記憶装置を提供することにある。 Another object of the present invention is to provide a storage device that can easily maximize the effect of shortening access time by prefetching.
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。 The above and other objects and novel features of the present invention will be apparent from the description of this specification and the accompanying drawings.
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。 The following is a brief description of an outline of typical inventions disclosed in the present application.
〔1〕本発明に係る記憶装置は不揮発性メモリ(2)、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ(4)及び制御回路(5)を有し、前記制御回路は、外部から入力される先読みコマンドが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブル(Ti)を生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、外部から入力される読み出しコマンドで指定される論理アドレスが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するときバッファメモリから対応する先読みデータを出力する。 [1] A storage device according to the present invention includes a nonvolatile memory (2), a buffer memory (4) having a higher access speed than the nonvolatile memory, and a control circuit (5), and the control circuit is externally input. A pre-read data management table (Ti) that associates the logical address of the pre-read data specified by the pre-read command and the buffer memory address for storing the pre-read data, and reads the data specified by the command from the nonvolatile memory When the logical address specified by the read command input from the outside matches the logical address associated in the prefetch data management table, the corresponding prefetch data is output from the buffer memory.
上記手段によれば、先読みコマンドにより記憶装置の外部から先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。記憶装置の読み出し性能は、記憶媒体である不揮発性メモリ自身の読み出し性能がボトルネックとなっているため、外部からの読み出し要求時に記憶媒体からの読み出し処理に代えてバッファメモリから先読みデータを出力する処理が増えることにより、システム性能を向上させることができる。先読みコマンドによる先読みデータの指定はバッファメモリの容量が許す範囲で複数の先読みコマンドによる複数指定可能である。 According to the above means, the prefetch data can be designated from the outside of the storage device by the prefetch command. Therefore, the data to be prefetched can be determined flexibly so that the effect of shortening the access time by prefetching can be maximized. The read performance of the storage device is the bottleneck of the read performance of the non-volatile memory itself, which is the storage medium. Therefore, prefetch data is output from the buffer memory in place of the read processing from the storage medium when an external read request is made. System performance can be improved by increasing processing. A plurality of prefetching commands can be designated by a plurality of prefetching commands within the range allowed by the capacity of the buffer memory.
本発明の具体的な形態として、前記先読みコマンドは論理アドレスによって先読みデータを指定する。マスタブートレコード若しくはFAT(ファイル・アロケーション・テーブル)などに代表されるように使用者にとってその論理アドレスの把握が容易な場合もあるので、それに対しては先読みデータを直接的に指定できるので便利である。 As a specific form of the present invention, the prefetch command designates prefetch data by a logical address. As represented by the master boot record or FAT (file allocation table), the user can easily grasp the logical address, so it is convenient because the pre-read data can be specified directly. is there.
前記先読みコマンドはファイル名によって先読みデータを指定するようにしてもよい。一般に、記憶装置の使用者はOS(オペレーティングシステム)で管理される記憶装置上の論理アドレスを把握できない場合が有り、記憶装置の使用者はファイル名でデータを把握するのが簡便であり、データ先読みに対する良好な操作性を実現する。 The prefetch command may designate prefetch data by a file name. In general, a storage device user may not be able to grasp a logical address on a storage device managed by an OS (operating system), and it is easy for a storage device user to grasp data by a file name. Realizes good operability for prefetching.
前記制御回路による先読みデータの転送は、先読みコマンドの実行時に行ってよい。また、先に先読みデータ管理テーブルを生成し、その後所定のタイミングで先読みデータをバッファメモリに転送してよい。そうすれば、前記制御回路は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリに転送することができる。先読みデータの転送処理によってリードアクセスなど処理が待たされると言うような事態の発生を未然に防止することができる。 The transfer of the prefetch data by the control circuit may be performed when the prefetch command is executed. Alternatively, the prefetch data management table may be generated first, and then the prefetch data may be transferred to the buffer memory at a predetermined timing. Then, the control circuit can transfer the prefetch data to the buffer memory in the command waiting state after the execution of the prefetch command. It is possible to prevent the occurrence of a situation in which processing such as read access is awaited by prefetch data transfer processing.
本発明の具体的な形態として、前記先読みデータ管理テーブルは、先読みデータの先頭論理アドレス(30)、先読みデータを格納する領域の先頭メモリアドレス(31)、及び先読みデータのデータ数を保持する領域(32)等によって構成すればよい。 As a specific form of the present invention, the prefetch data management table includes a top logical address (30) of prefetch data, a top memory address (31) of a prefetch data storage area, and an area for storing the number of prefetch data. (32) etc.
前記先読みデータ管理テーブルは、対応する先読みデータの有効性を示すフラグ(33)を保持してよい。 The prefetch data management table may hold a flag (33) indicating the validity of the corresponding prefetch data.
前記先読みデータ管理テーブルは、先読みデータを含むファイル名を保持する領域(35)を有してよい。例えばFATファイルシステムにおいてファイルの断片化を生じたとき、一つのファイルデータは分割された複数の先読みデータ管理テーブルによって管理されることになり、このとき、ファイル名で指定されたアクセスに応答する処理に便利である。即ち、ファイル名で対応する先読みデータ管理テーブルを検索でき、バッファメモリ上の所要の先読みデータのアクセスが更に速くなる。 The prefetch data management table may have an area (35) for holding a file name including prefetch data. For example, when file fragmentation occurs in the FAT file system, one file data is managed by a plurality of divided prefetch data management tables, and at this time, processing for responding to the access specified by the file name Convenient to. That is, the corresponding prefetch data management table can be searched by the file name, and access to required prefetch data on the buffer memory is further accelerated.
前記先読みデータ管理テーブルは、先読みデータのアクセス回数を保持する領域(34)を有してよい。前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないとき、前記先読みデータ管理テーブルが保有するアクセス回数に基いてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割当てることができる。頻繁にアクセスされる先読みデータの有効利用を保証することができる。 The prefetch data management table may have an area (34) for holding the number of times of prefetch data access. The control circuit searches for a buffer memory address with a low access frequency based on the number of accesses held in the prefetch data management table when there is no unused area for storing the prefetch data in the buffer memory. An area can be allocated to a storage area for new prefetch data. It is possible to guarantee effective use of prefetched data that is frequently accessed.
前記制御回路は、先読みデータ管理テーブルを所定のタイミングで不揮発性メモリの先読みデータ管理テーブル保存領域に退避してよい。先読みデータ管理テーブルをバッファメモリ上又は制御回路内部のメモリ上で運用しているとき、機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ上の先読みデータが失われても、後からそれを再現可能になる。例えば、前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送する。 The control circuit may save the prefetch data management table in a prefetch data management table storage area of the nonvolatile memory at a predetermined timing. When the prefetch data management table is operated in the buffer memory or in the memory inside the control circuit, the prefetch data on the buffer memory can be saved by shutting off the power supply by saving the prefetch data management table of the functioning prefetch data. If lost, it can be reproduced later. For example, the control circuit reads the prefetch data management table from the nonvolatile memory in response to power-on, and transfers the prefetch data whose location is defined by the read prefetch data management table from the nonvolatile memory to the buffer memory.
〔2〕本発明の別の観点による記憶装置は、不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、前記制御回路は、外部から入力される読出しコマンドに応答して、先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付ける書換え可能な先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力する。 [2] A storage device according to another aspect of the present invention includes a nonvolatile memory, a buffer memory having a higher access speed than the nonvolatile memory, and a control circuit, and the control circuit receives a read command input from the outside. In response, the rewritable prefetch data management table that associates the logical address of the prefetch data with the buffer memory address that stores the prefetch data is referenced to determine whether the buffer memory holds the data specified by the command. If the data is held, the data read from the buffer memory is output to the outside. If not, the data read from the nonvolatile memory is output to the outside.
上記手段によれば、書き換え可能な先読みデータ管理テーブルを用いることにより、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。読み出しコマンドに応答して不揮発性メモリから読み出す処理に代えてバッファメモリから先読みデータを出力する処理が増えるので、システム性能を向上させることができる。 According to the above means, by using the rewritable prefetch data management table, it is possible to flexibly determine data to be prefetched so that the effect of shortening the access time by prefetching can be maximized. Since the number of processes for outputting pre-read data from the buffer memory instead of the process for reading from the nonvolatile memory in response to the read command increases, the system performance can be improved.
本発明の具体的な形態として、前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送してよい。電源遮断前に機能していた先読みデータを後からバッファメモリ上に容易に再現することができる。 As a specific form of the present invention, the control circuit reads the prefetch data management table from the non-volatile memory in response to power-on, and reads the prefetch data whose location is defined by the read prefetch data management table. To the buffer memory. The prefetched data that was functioning before the power was shut off can be easily reproduced on the buffer memory later.
〔3〕本発明の更に別の観点による記憶装置は、不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、前記制御回路は、外部から入力される先読みコマンドに応答してそれが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、バッファメモリに格納されている先読みデータを外部に読み出し可能にする。先読みコマンドにより記憶装置の外部から先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。 [3] A storage device according to still another aspect of the present invention includes a nonvolatile memory, a buffer memory having a higher access speed than the nonvolatile memory, and a control circuit, and the control circuit includes a prefetch command input from the outside. In response to the logical address of the pre-read data specified by it and the buffer memory address for storing the pre-read data, a pre-read data management table is generated, and the data specified by the command is read from the nonvolatile memory and buffered. The data is stored in the memory as prefetched data, and the prefetched data stored in the buffer memory can be read out to the outside. Prefetch data can be designated from outside the storage device by a prefetch command. Therefore, the data to be prefetched can be determined flexibly so that the effect of shortening the access time by prefetching can be maximized.
本発明の具体的な形態として、前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないときの処理として、既に先読みデータを保有する領域への上書き許可、又は既に先読みデータを保有する領域への上書き禁止を選択可能にされてよい。前者を選択することにより先読みデータの動的な入れ換えに便利である。後者を選択することにより、頻繁にアクセスされる先読みデータの有効利用を保証することが容易である。後者が選択されているとき、未使用領域がないときは先読みコマンド発行元にエラー応答を返して、使用者に注意を喚起すればよい。前記上書き許可は、既に先読みデータを保有する領域への全面許可、又はアクセス頻度が少ない領域に対する部分許可としてよい。部分許可は、先読みデータの動的な入れ換え性と、頻繁にアクセスされる先読みデータの有効利用性とを両立するのに好都合である。 As a specific form of the present invention, the control circuit, as a process when there is no unused area for storing the pre-read data in the buffer memory, permits overwriting to the area that already holds the pre-read data, or already holds the pre-read data. The overwriting prohibition to the area to be performed may be selectable. Selecting the former is convenient for dynamic replacement of prefetched data. By selecting the latter, it is easy to guarantee effective use of frequently read-ahead data. When the latter is selected, if there is no unused area, an error response may be returned to the prefetch command issuer to alert the user. The overwriting permission may be a full permission to an area that already holds prefetched data or a partial permission to an area with low access frequency. The partial permission is convenient to achieve both the dynamic interchangeability of the prefetched data and the effective utilization of the prefetched data that is frequently accessed.
読み出しコマンドに対する応答処理として、前記制御回路は、外部から入力される読出しコマンドに応答して、前記先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力する。 As a response process to a read command, the control circuit refers to the prefetch data management table in response to a read command input from the outside, and determines whether or not the buffer memory holds the data specified by the command If the data is held, the data read from the buffer memory is output to the outside. If not, the data read from the nonvolatile memory is output to the outside.
書込みコマンドに対する応答処理として前記制御回路は、外部から入力される書き込みコマンドに応答して、前記先読みデータ管理テーブルを参照し、当該コマンドによる書き込みアドレスのデータをバッファメモリが保有するか否かを判定し、保有する場合には不揮発性メモリのデータと共にバッファメモリのデータを書き込みデータによって更新し、保有しない場合には不揮発性メモリのデータを書き込みデータによって更新する。 In response to a write command, the control circuit refers to the prefetch data management table in response to a write command input from the outside, and determines whether or not the buffer memory holds data at a write address according to the command. If the data is held, the data in the buffer memory is updated with the write data together with the data in the nonvolatile memory. If not, the data in the nonvolatile memory is updated with the write data.
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。 The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.
すなわち、先読みコマンドにより記憶装置の外部から先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。外部からの読み出し要求時に記憶媒体からの読み出し処理に代えてバッファメモリから先読みデータを出力する処理が増えることにより、記憶装置を用いるシステムのデータ処理性能を向上させることができる。 That is, prefetch data can be designated from the outside of the storage device by a prefetch command. Therefore, the data to be prefetched can be determined flexibly so that the effect of shortening the access time by prefetching can be maximized. Data processing performance of a system using a storage device can be improved by increasing processing for outputting prefetched data from the buffer memory instead of processing for reading from the storage medium when an external read request is made.
《フラッシュメモリカード》
図1には本発明に係る記憶装置の一例であるフラッシュメモリカードが示される。同図に示されるフラッシュメモリカード1は、不揮発性メモリ例えば電気的に消去及び書き込み可能なメモリフラッシュメモリ2と、DRAM(Dynamic Random Access memory)又はSRAM(Static Random Access Memory)等から成るバッファメモリ4と、メモリ制御及び外部インタフェース制御を行うカードコントローラ(制御回路)5とを実装基板に備える。フラッシュメモリカード1はホストコンピュータ6によりファイルメモリ装置として制御される。即ち、ホストコンピュータ6は、ファイルアクセスを行なうとき、フラッシュメモリカード1に形成されているFAT(ファイルアロケーションテーブル)を参照して、ファイルを構成するセクタの論理アドレスを取得し、この論理アドレスを用いてアクセスコマンドをフラッシュメモリカード1に発行する。フラッシュメモリカード1はアクセスコマンドに応答してフラッシュメモリ2及びバッファメモリ4をアクセス制御する。
<Flash memory card>
FIG. 1 shows a flash memory card which is an example of a storage device according to the present invention. The
前記カードコントローラ5は、ホストコンピュータ6から与えられる読み出しコマンド、書き込みコマンド、又は先読みコマンド等による指示に従って、バッファメモリ4及びフラッシュメモリ2のアクセス制御を行う。前記読み出しコマンドは、例えば読み出しセクタの開始論理アドレスとセクタ数を指定してデータを読み出す指示である。書き込みコマンドは、例えば書き込みセクタの開始論理アドレスとセクタ数を指定してデータを書き込む指示である。先読みコマンドは、先読みすべきデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、先読みすべきデータをフラッシュメモリ2から読み出してバッファメモリ4に先読みデータとして格納する指示である。各コマンドに対する処理の詳細は後述する。
The
バッファメモリ4の記憶領域はホストコンピュータ6から供給される書込みデータの一次保存領域(書き込みデータ保存領域)10、フラッシュメモリ2から読み出されてホストコンピュータ6に出力するデータを一時的に保存する領域(読み出しデータ保存領域)11、ワーク領域12、前記先読みコマンドに応答してフラッシュメモリ2から読み出されたデータを先読みデータとして保存する領域(先読みデータ保存領域)13とされる。図2にはバッファメモリ4のアドレスマップの詳細が例示される。先読みデータは、常時バッファメモリ上に読み出された状態になりバッファメモリの記憶領域を占有するため、書き込みや読み出しの通常使用のためのバッファ領域10,11と区別して管理可能にされている。
The storage area of the
前記フラッシュメモリ2の記憶領域はデータ部14、内部情報格納部15、及び先読みデータ管理テーブル格納部16とされ、夫々には管理部が付加されている。内部情報格納部15にはメモリカード1のID、RD(ルートディレクトリ)及びFAT(ファイルアロケーションテーブル)などが格納され、ホストコンピュータ6のOS(オペレーティングシステム)によって参照可能にされる。先読みデータ管理テーブル格納部16には前記先読みコマンドに応答して生成される前記先読みデータ管理テーブルが格納される。
The storage areas of the
前記フラッシュメモリ2は、特に図示はしないが、電気的に消去及び書き込み可能な不揮発性メモリセルトランジスタが多数マトリクス配置されたメモリアレイARYを有する。メモリセルトランジスタ(フラッシュメモリセルとも記す)は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成されたスタックドゲート構造を有する。コントロールゲートは対応するワード線に、ドレインは対応するビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧(コントロールゲート印加電圧)に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。
The
図1において前記カードコントローラ5は、ホストインタフェース回路20、演算制御手段としてのマイクロプロセッサ(MPU)21、フラッシュコントローラ22、及びバッファコントローラ23から成る。前記フラッシュコントローラ22は図示を省略するECC回路を備える。
In FIG. 1, the
前記MPU21は、CPU(Central Processing Unit)25、プログラムメモリ(PGM)26及びワークRAM(WRAM)27などを有し、カードコントローラ5を全体的に制御する。プログラムメモリ26はCPU25の動作プログラムなどを保有する。
The
前記ホストインタフェース回路20は、ATA(ATAttachment)、IDE(Integrated Device Electronics)、SCSI(Small Computer System Interface)、MMC(MultiMediaCard:登録商標)、PCMCIA(Personal Computer Memory Card International Association)等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ6とインタフェースを行う。
The
前記バッファコントローラ23はMPU21から与えられるアクセス指示に従って、バッファメモリ4をアクセス制御する。
The
フラッシュコントローラ22はMPU21から与えられるアクセス指示に従って、フラッシュメモリ2に対する、読み出し動作、消去動作及び書き込み動作を制御する。図示を省略するECC回路は、MPU21から与えられる指示に従って、フラッシュメモリ2に書き込むデータに対してエラー訂正符号(エラー訂正コード)を生成して、書き込みデータに付加する。また、フラッシュメモリ2から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラー発生に対してエラー訂正を行う。
The
図3にはフラッシュメモリ2記憶領域の構成と先読みデータ管理テーブルの詳細が例示される。フラッシュッメモリ2の記憶領域(メモリアレイ)は、例えば、図では番号0〜番号4n+3のメモリセクタと、M0〜Mnの管理部によって構成されたn個のブロックを記憶領域として有する。各メモリセクタ及び各管理部は物理アドレスを持ち、各メモリセクタには論理アドレスが割当てられる。論理アドレスは例えばファイルのセクタ番号(ファイルセクタ番号)である。以下の説明ではメモリセクタのアドレスを単に物理アドレス又は物理セクタアドレスと称する。論理アドレスは外部から指示されるアドレス、物理アドレスは論理アドレスによって内部をアクセスするためのアドレスとして把握することができる。前記メモリセクタはHDD(ハード・ディスク・ドライブ)などのストレージにおける書き換え単位とされるストレージセクタの容量512B(バイト)に対応されている。前記管理領域にはブロックの有効フラグや代替フラグ等が格納される。ECCコードは各メモリセクタ毎に配置されている。1ブロックを構成する不揮発性メモリセルは1本のワード線又は1種類のワード線選択信号で選択され、消去処理及び書き込み処理の単位とされ、例えば消去処理や書き込み処理で必要な高電圧がワード線単位で印加される。
FIG. 3 illustrates the configuration of the
メモリセクタ4n〜4n+3は前記先読みデータ管理テーブル格納部16とされる。先読みデータ管理テーブル格納部16の各メモリセクタには夫々複数個の先読みデータ管理テーブルTi(T0,T1,T2…)とECCコードが格納される。先読みデータ管理テーブルは先読みコマンドに応答する処理が行なわれる事によって追加可能にされているから、複数存在することが許容される。
The
先読みデータ管理テーブルTiは、例えば先頭論理アドレス領域30、先頭メモリアドレス領域31、セクタ数領域32、有効フラグ領域33、アクセス回数領域34、及びファイル名領域35を有する。先頭論理アドレス領域30は先読みデータの先頭論理アドレス(論理セクタアドレス)を格納する。先頭メモリアドレス領域31はバッファメモリ上で先読みデータを保持する領域の先頭メモリアドレスを格納する。セクタ数領域32は先読みデータのセクタ数を格納する。有効フラグ領域33は当該先読みデータ管理テーブルが有効であるか否かを示すフラグを格納する。アクセス回数領域34は当該書き込み管理テーブルで管理される先読みデータに対するホストコンピュータ6によるアクセス回数を格納する領域である。ファイル名領域35は先読みデータが属するファイル名を保持する領域である。
The prefetch data management table Ti includes, for example, a head
前記先読みデータ管理テーブルはフラッシュメモリ2上、又はバッファメモリ4上のどちらで管理してもよい。フラッシュメモリ2上で管理する場合には、先読みデータ管理テーブルの生成消滅の度に先読みデータ管理テーブル格納部16に対する消去及び書き込み処理を行なうことになるので、動作が遅くなる。バッファメモリ4上で管理する場合には管理テーブルの生成消滅の動作は高速になる。但し、電源遮断時は先読みデータ管理テーブルをフラッシュメモリ2に待避することを要する。また、パワーオンに応答して、フラッシュメモリ2から先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータをフラッシュメモリからバッファメモリ4に転送することが望ましい。
The prefetch data management table may be managed either on the
《先読みコマンド応答処理》
図4には先読みコマンドの主な仕様が示される。先読みデータの指定方法はアドレスによる指定、又はファイル名指定の何れも可能とされる。アドレス指定は、メモリカード1の使用者(ユーザ)が先読みデータの領域を論理アドレスで指定することである。ファイル指定はユーザが先読みデータを有するファイル名で指定することである。ファイル名にはその所在の絶対パスも含めればファイル名の重複にも容易に対処でき、ファイルの検索も容易になる。
<< Read-ahead command response processing >>
FIG. 4 shows the main specifications of the prefetch command. The pre-read data can be specified by an address or a file name. The address designation means that the user (user) of the
一般に、記憶装置の使用者はOSで管理されるフラッシュメモリカード1上の論理アドレスを把握できない場合が有る。フラッシュメモリカード1の使用者はファイル名でデータを把握するのが簡便であり、これを考慮する事によってデータ先読みに対する良好な操作性を保証できる。また、OS上でフラッシュメモリ上の論理アドレスを管理できない場合もある。このような場合でも先読みデータの指定が可能となる。
In general, the user of the storage device may not be able to grasp the logical address on the
また、先読みデータをフラッシュメモリ2からバッファメモリ4に格納する動作タイミングは先読みコマンド発行時、或は先に先読みデータ管理テーブルを生成した後のコマンド待ち状態においてバックグラウンドで行なう。コマンド待ち状態で行なうことにより、フラッシュメモリ2からバッファメモリ4に先読みデータを転送する処理によりリードアクセスなど処理が待たされるというような事態の発生を未然に防止することができる。
The operation timing for storing the pre-read data from the
図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)、当該次コマンドを受付けて実行する。
FIG. 5 illustrates a control procedure for the prefetch command response process. When a prefetch command issued from the
前記ステップS5の判別処理を無効とし、ステップS6以降の処理を自動的に継続する処理手順を採用可能であることは言うまでもない。その場合の処理の切り換え(ステップS5処理を行なうか否かの切り換え)はカードコントローラ5自身が設定切換え機能を持っていてもよいし、先読みコマンドに機能切換え用の制御情報を持たせてもよい。
Needless to say, it is possible to adopt a processing procedure in which the determination processing in step S5 is invalidated and the processing in step S6 and subsequent steps is automatically continued. In this case, the switching of processing (switching whether or not to perform step S5) may be performed by the
ホストコンピュータ6からアクセスコマンドが供給されたときは、先読みデータ管理テーブルの前記有効フラグ33がチェックされ、セットされた有効フラグ33を持つ先読みデータ管理テーブルだけが、利用すべき先読みデータの所在を取得するための検索対象とされる。
When an access command is supplied from the
図6には前記ホスト指定アドレス取得処理(S2)の具体例が示される。同図に示される処理はホストコンピュータ6から供給される先読みコマンドによって先読みデータをファイル名で指定する場合の応答処理である。先ず、先読みコマンドから、先読みデータを保有するファイル名を取得する(S21)。次に、フラッシュメモリ2のマスタブートレコード領域(MBR)のパーテンションIDをリードし、使用ファイルシステムを認識する(S22)。使用ファイルシステムにしたがってファイルシステムの認識が可能かを判別し(S23)、可能であれば、フラッシュメモリ2上のFATなどを利用してファイルシステムを解析し、ファイルが保存された論理アドレスを取得する。ファイルが断片化されている場合にも同様にファイルが保存された論理アドレスを取得する。そして、ファイルシステム上に該当データの存在することを確認した後(S25のyes)、フラッシュメモリのメモリアドレスを算出する。論理アドレスとフラッシュメモリ2の物理アドレスとの対応が可変のシステムでは相互の関係を規定するアドレス変換テーブルを参照して算出することになる。アドレス変換テーブルはフラッシュメモリ2が所定領域に保有している。
FIG. 6 shows a specific example of the host designation address acquisition process (S2). The process shown in the figure is a response process when the prefetch data is designated by a file name by a prefetch command supplied from the
ユーザは、ファイルシステム上では論理アドレスを管理できない。このため、ファイル名での指定を可能にすることで、ユーザの先読みデータ管理が可能になる。 A user cannot manage logical addresses on the file system. For this reason, by making it possible to specify the file name, it becomes possible to manage the prefetched data of the user.
ファイルが断片化しているときは、先読みデータ管理テーブルは図3の構成を有しているので、論理アドレスが連続する断片化部分毎に先読みデータ管理テーブルを作成することが必要になる。一つのデータファイルに対して先読みデータ管理テーブルが複数個存在しても、各先読みデータ管理テーブルはそのファイル名領域35に夫々ファイル名を持っているのでアクセスコマンドに応答するときの検索処理の支障にはならない。
When the file is fragmented, the prefetch data management table has the configuration shown in FIG. 3, so that it is necessary to create a prefetch data management table for each fragmented portion where logical addresses are continuous. Even if there are a plurality of prefetch data management tables for one data file, each prefetch data management table has a file name in its
フラッシュメモリ2上に同一ファイル名が複数存在することが想定されるため、先読みデータ管理テーブルに保存するファイル名は、絶対パスも含めて保存することが望ましい。若しくは同一ファイル名であってもファイルシステム上の論理アドレスは異なっていることから、先読みデータ管理テーブルに保存するファイル名は、論理アドレスを含めて保存するものであってもよい。
Since it is assumed that there are a plurality of the same file names on the
図7にはバッファメモリ4に先読みデータを格納する未使用領域がないときの処理形態(先読みデータ更新形態)が例示される。
FIG. 7 illustrates a processing form (prefetch data update form) when there is no unused area for storing the prefetch data in the
バッファメモリ4に先読みデータを格納する未使用領域がないときの処理形態として、既に先読みデータを保有する領域への上書き許可、又は既に先読みデータを保有する領域への上書き禁止がある。
As a processing mode when there is no unused area for storing the prefetched data in the
上書き禁止を採用することにより、頻繁にアクセスされる先読みデータの有効利用を保証することが容易である。上書き禁止が採用されているとき、未使用領域がないときは先読みコマンド発行元にエラー応答を返して、使用者に注意を喚起すればよい。上書き許可を採用することにより先読みデータの動的な入れ換えに便利である。 By adopting overwriting prohibition, it is easy to guarantee effective use of frequently read-ahead data. When overwriting prohibition is adopted, if there is no unused area, an error response may be returned to the prefetch command issuer to alert the user. Adopting overwrite permission is convenient for dynamic replacement of prefetched data.
前記上書き許可の形態として、既に先読みデータを保有する領域への全面許可、又はアクセス頻度が少ない領域に対する部分許可がある。上書き全面許可の場合、カードコントローラ5は前記先読みデータ保存領域13に対しFIFO(ファーストイン・ファーストアウト)により順次古いものから先に上書きを許可する制御を行なえばよい。
As a form of overwriting permission, there are full permission to an area that already holds prefetched data, or partial permission to an area with low access frequency. In the case of permitting overwriting all over, the
アクセス頻度に応じた部分許可を採用する場合、アクセス頻度が少ない領域か否かは先読みデータ管理テーブルが保有するアクセス回数領域34の値に基いて判定すればよい。例えばその判定基準としてアクセス回数1を採用する場合にはアクセス回数1を保有する先読みデータ管理テーブルを検索し、検索されら先読みデータ管理テーブルで使用されているバッファメモリアドレスを利用すればよい。また、任意の複数個の先読みデータ管理テーブルを検索して得られる最小アクセス回数を保有する先読みデータ管理テーブルで管理されているバッファメモリアドレスを利用してもよい。
When partial permission according to the access frequency is adopted, whether or not the access frequency is low may be determined based on the value of the
上記部分許可は、先読みデータの動的な入れ換え性と、頻繁にアクセスされる先読みデータの有効利用性とを両立するのに好都合である。 The partial permission is advantageous for achieving both dynamic exchangeability of prefetched data and effective utilization of prefetched data that is frequently accessed.
上記先読みデータ更新形態は、カードコントローラ5に制御データ若しくはモード信号によって設定してよい。或は、先読みコマンドでその都度指定するようにしてもよい。
The prefetch data update form may be set in the
《読み出しコマンド応答処理》
図8には読み出しコマンド応答処理の制御手順が例示される。カードコントローラ5は、ホストコンピュータ6から発行された読み出しコマンドを受付けると(S30)、読み出しコマンドで指定された論理アドレスに対応する先読みデータ管理テーブルが存在しているかを判別する(S31)。指定論理アドレスの全てについて先読みデータ管理テーブルがない場合には、読み出し対象論理アドレスに応ずるフラッシュメモリの物理セクタアドレスを算出し(S32)、その物理セクタアドレスからデータを読み出してバッファメモリの読み出しデータ保存領域に転送し(S33)、その読み出しデータ保存領域に転送されたデータをホストコンピュータ6に向けて出力する(S34)。
<Read command response processing>
FIG. 8 illustrates a control procedure for the read command response process. When the
ステップS31の処理において、指定論理アドレスについて先読みデータ管理テーブルがあると判定されたときは、全てのデータが先読みされているか否かが判定される(S35)。要するに、読み出しコマンドで指定される論理アドレスの全てが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するか否かが判定される。その判定結果が、一部先読みデータ無しの場合は、先読みデータのない論理アドレスに応ずるフラッシュメモリの物理セクタアドレスを算出し(S36)、その物理セクタアドレスからデータを読み出してバッファメモリ4の読み出しデータ保存領域に転送する(S33)。一部先読みデータのある論理アドレスに対しては対応する先読みデータ管理テーブルのアクセス回数を+1インクリメントする(S37)。そして、ステップS33で読み出しデータ保存領域に転送されたデータ及び先読みデータ保存領域13にある残りの先読みデータをホストコンピュータ6に向けて出力する(S34)。全ての論理アドレスに対して先読みデータがある場合には、当該論理アドレスに対応する先読みデータ管理テーブルのアクセス回数を+1インクリメントし(S37)先読みデータ保存領域13にある対応する先読みデータをホストコンピュータ6に向けて出力する(S34)。
When it is determined in the process of step S31 that there is a prefetch data management table for the specified logical address, it is determined whether or not all data has been prefetched (S35). In short, it is determined whether or not all of the logical addresses specified by the read command match the logical addresses associated in the prefetch data management table. If the result of the determination is that there is no partial prefetched data, the physical sector address of the flash memory corresponding to the logical address without the prefetched data is calculated (S36), the data is read from the physical sector address and the read data of the
図8の処理では、先読み済みデータが揃っていない場合、不足データをフラッシュメモリ2からバッファメモリ4に転送後にホストコンピュータ6にデータ転送を行う。不足データをフラッシュメモリ2からバッファメモリ4に読み出す前に、先読み済みデータをホストコンピュータ6に転送してもよい。
In the process of FIG. 8, when pre-read data is not prepared, data transfer to the
《書き込みコマンド応答処理》
図9には書き込みコマンド応答処理の制御手順が例示される。カードコントローラ5は、ホストコンピュータ6から発行された書き込みコマンドを受付けると(S40)、ホストコンピュータ6から供給される書込みデータを書き込みデータ保存領域10に一時的に格納する(S41)。カードコントローラ5は書き込みコマンドで指定された論理アドレスに対応するフラッシュメモリ2上の物理セクタアドレスを演算し(S42)、フラッシュメモリ2にフラッシュ書き込みコマンドを与えて、フラッシュメモリ2への書き込み処理を指示する(S34)。フラッシュメモリ2の書き込み動作に並行して、カードコントローラ5は書込みデータに関する先読みデータ管理テーブルの有無を判別する(S44)。書込みデータに係る有効な先読みデータがあれば、バッファメモリ4上でその先読みデータを書込みデータによって更新し(S47)、対応する先読みデータ管理テーブルの内容を更新する(S48)。例えば、アクセス回数を+1インクリメントする。ステップS48の処理が終った後、或はステップS44の判別で対応する先読みデータがない場合、ステップS43で開始したフラッシュメモリの書き込む処理が終るのを待って、書き込みコマンドによるビジーフラグを解除して(S46)、処理を終了する。
<Write command response processing>
FIG. 9 illustrates a control procedure of the write command response process. When the
先読み済みデータの更新時には、記憶媒体上のデータと同時にバッファ上の先読みデータ保存領域のデータも更新する必要がある。このため、ライト要求時のアドレスは常に監視する必要があるが、記憶媒体への保存時間に比べて、バッファメモリ4の更新処理は非常に早いため、大きな性能低下を発生しない。
When updating the preread data, it is necessary to update the data in the preread data storage area on the buffer simultaneously with the data on the storage medium. For this reason, it is necessary to always monitor the address at the time of a write request. However, since the update process of the
《先読みデータ管理テーブルの退避》
先読みデータ管理テーブルをバッファメモリ4のワーク領域12などの揮発性のメモリ上で運用しているとき、カードコントローラ5は、先読みデータ管理テーブルを所定のタイミングでフラッシュメモリ2の先読みデータ管理テーブル保存領域に退避する。所定のタイミングとは、例えば電源遮断時、或は所定期間をおいた後のコマンド待ち状態時である。機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ4上の先読みデータが失われても、後からそれを再現可能になる。前記カードコントローラ5は、パワーオンに応答してフラッシュメモリ2から先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータをフラッシュメモリ2からバッファメモリ4に転送すればよい。
<< Saving the prefetch data management table >>
When the prefetch data management table is operated on a volatile memory such as the
以上説明したフラッシュメモリーカード1によれば以下の作用効果を得ることができる。
According to the
〔1〕先読みコマンドによりホストコンピュータ6からフラッシュメモリカード1に対して先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。フラッシュメモリーカード1の読み出し性能は、記憶媒体であるフラッシュメモリ2自身の読み出し性能がボトルネックとなっているため、ホストコンピュータ6からの読み出し要求時にフラッシュメモリ2からの読み出し処理に代えてバッファメモリ4から先読みデータを出力する処理が増えることにより、システム性能を向上させることができる。
[1] Prefetch data can be designated from the
〔2〕前記先読みコマンドは先読みデータの指定を論理アドレス又はファイル名の何れによっても行なうことができる。例えば先読みコマンドにおいて論理アドレスの指定フィールドとファイル名の指定フィールドが異なっている。マスタブートレコード若しくはFAT(ファイル・アロケーション・テーブル)などに代表されるように使用者にとってその論理アドレスの把握が容易な場合もあるので、論理アドレスによる指定は、先読みデータを直接的に指定できるので便利である。 [2] The prefetch command can designate prefetch data by either a logical address or a file name. For example, in the prefetch command, the logical address designation field and the file name designation field are different. As shown by the master boot record or FAT (file allocation table), it may be easy for the user to grasp the logical address, so the pre-read data can be specified directly by specifying the logical address. Convenient.
フラッシュメモリーカード1の使用者はOSで管理されるフラッシュメモリ2上の論理アドレスを把握できない場合が有り、フラッシュメモリカード1の使用者はファイル名でデータを把握するのが簡便であり、データ先読みに対する良好な操作性を実現することができる。
The user of the
〔3〕カードコントローラ5による先読みデータの転送形態として、先読みコマンドの実行時の他に、先に先読みデータ管理テーブルを生成し、その後所定のタイミングで先読みデータをバッファメモリ4に転送する形態を採用することができる。これにより、カードコントローラ5は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリ4に転送することができる。先読み処理によってリードアクセスなど処理が待たされてデータ処理効率が低下することを未然に防止することができる。
[3] As a transfer form of the prefetch data by the
〔4〕先読みデータ管理テーブルは、先読みデータの先頭論理アドレス、先読みデータを格納する領域の先頭メモリアドレス、及び先読みデータのデータ数を保持する領域と共に、先読みデータを含むファイル名を保持する領域を有する。これにより、ファイルシステムにおいてファイルの断片化を生じたとき、一つのファイルデータは分割された複数の先読みデータ管理テーブルによって管理されることになるので、リードアクセス等に応答する処理においてファイル名で対応する先読みデータ管理テーブルを検索でき、バッファメモリ上の所要の先読みデータのアクセスが更に速くなる。 [4] The prefetch data management table includes an area for holding the file name including the prefetch data, as well as an area for holding the top logical address of the prefetch data, the top memory address of the area for storing the prefetch data, and the number of prefetch data. Have. As a result, when file fragmentation occurs in the file system, one file data is managed by a plurality of divided pre-read data management tables. The pre-read data management table to be searched can be retrieved, and access to required pre-read data on the buffer memory is further accelerated.
〔5〕前記先読みデータ管理テーブルは、ホストコンピュータ6による先読みデータのアクセス回数を保持する領域34を有することにより、カードコントローラ5は、バッファメモリ4に先読みデータを格納する未使用領域がないとき、先読みデータ管理テーブルが保有するアクセス回数に基いてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割当てることができる。頻繁にアクセスされる先読みデータの有効利用を保証することができる。
[5] The prefetch data management table has an
〔6〕カードコントローラ5は先読みデータ管理テーブルを所定のタイミングでフラッシュメモリ2の先読みデータ管理テーブル保存領域に退避することにより、先読みデータ管理テーブルをバッファメモリ4上又はワークRAM26で運用しているとき、機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ上の先読みデータが失われても、後からそれを再現可能になる。
[6] When the
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。 Although the invention made by the present inventor has been specifically described based on the embodiments, it is needless to say that the present invention is not limited thereto and can be variously modified without departing from the gist thereof.
例えば、上記ではファイルシステムとしてFATファイルシステムにとしたが、NTFS等その他のファイルシステムであってもよい。不揮発性メモリをフラッシュメモリとしたが、高誘電体メモリ等、その他の半導体メモリであってもよい。更に不揮発性メモリは半導体メモリに限定されず、ハードディスクなどの記録ディスクであってもよい。本発明はフラッシュメモリーカード等のメモリカードに限定されず、ハードディスク装置にも適用することができる。このとき、記憶装置はリムーバブルであることに限定されず、装着システムに固定配置される利用形態のものであってもよい。 For example, although the FAT file system is used as the file system in the above description, other file systems such as NTFS may be used. Although the nonvolatile memory is a flash memory, it may be another semiconductor memory such as a high dielectric memory. Further, the nonvolatile memory is not limited to a semiconductor memory, and may be a recording disk such as a hard disk. The present invention is not limited to a memory card such as a flash memory card, and can also be applied to a hard disk device. At this time, the storage device is not limited to being removable, and may be of a usage form that is fixedly arranged in the mounting system.
前記フラッシュメモリはスタックドゲート構造に限定されず、選択MOSトランジスタ部とメモリMOSトランジスタ部との間に拡散層を設けずに直列形態に形成したスプリットゲート構造であってもよい。また、シリコン窒化膜のようなトラップ領域に電荷を局在的に蓄積するメモリセル構造を採用してもよい。半導体不揮発性メモリは1個のメモリセルが保持する記憶情報を1ビットとする構成に限定されず2ビット以上とする記憶形式であってもよい。 The flash memory is not limited to the stacked gate structure, and may have a split gate structure formed in series without providing a diffusion layer between the selection MOS transistor portion and the memory MOS transistor portion. Further, a memory cell structure that locally accumulates charges in a trap region such as a silicon nitride film may be employed. The semiconductor nonvolatile memory is not limited to the configuration in which the storage information held in one memory cell is 1 bit, and may be a storage format in which 2 or more bits are stored.
また、本発明をメモリカードに適用する場合、カードコントローラのような制御回路はIDEなどのホストインタフェース回路を備えなくてもよく、その機能をホストコンピュータに負担させるように規格化されたメモリカードにも適用可能である。 In addition, when the present invention is applied to a memory card, a control circuit such as a card controller may not include a host interface circuit such as IDE, and the memory card is standardized so that the function is borne by the host computer. Is also applicable.
また、先読みコマンドが指定する先読みデータの論理アドレスは、ファイルシステムの構成如何により、実質的に不揮発性メモリの物理アドレスに一致している場合もある。 Further, the logical address of the pre-read data specified by the pre-read command may substantially match the physical address of the nonvolatile memory depending on the configuration of the file system.
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 ファイル名領域
DESCRIPTION OF
26 Work RAM
27 Program memory Ti Pre-read data management table 30 First
Claims (4)
前記制御回路は、前記記憶装置の外部から先読みコマンドが入力されると、先読みデータ管理テーブルを生成し、作成された前記先読みデータ管理テーブルで規定される先読みデータが読み出し可能か否かを判別し、前記先読みデータ管理テーブルで規定される先読みデータが読み出し可能であるとき、外部からのアクセスコマンドが発行されている場合には当該アクセスコマンドに従って処理を行ない、外部からのアクセスコマンドが発行されていない場合には前記先読みデータ管理テーブルで規定される先読みデータを前記不揮発性メモリから前記バッファメモリへ転送し、
前記先読みデータ管理テーブルは、先読みデータの論理アドレスを格納する領域、前記バッファメモリ上で先読みデータを保持する領域のメモリアドレスを格納する領域及び先読みデータが属するファイル名を保持する領域を有し、
前記先読みコマンドは、先読みデータの領域を所望の論理アドレス又はファイル名のいずれによっても指定することが可能であり、
前記制御回路は、記先読みコマンドがファイル名によって先読みデータの領域を指定しているときは、前記不揮発性メモリ上における先読みデータのファイルシステムを解析して論理アドレスを取得すると共に対応するメモリアドレスを取得する、ことを特徴とする記憶装置。 A storage device having a nonvolatile memory, a buffer memory having a higher access speed than the nonvolatile memory, and a control circuit,
When a prefetch command is input from the outside of the storage device, the control circuit generates a prefetch data management table, and determines whether or not the prefetch data defined by the created prefetch data management table is readable. When the pre-read data specified in the pre-read data management table is readable, if an external access command is issued, processing is performed according to the access command, and no external access command is issued. In this case, the prefetch data defined in the prefetch data management table is transferred from the nonvolatile memory to the buffer memory,
The preread data management table has an area for holding the name of the file area for storing the logical address of the preread data, area and pre-read data storing memory address space to hold the pre-read data on the buffer memory belongs ,
The prefetch command, it is possible to specify by any region of the read-ahead data of a desired logical address or file name,
When the prefetch command designates a prefetch data area by a file name, the control circuit analyzes a prefetch data file system on the nonvolatile memory to obtain a logical address and sets a corresponding memory address. A storage device characterized by acquiring .
前記制御回路は、前記バッファメモリに前記先読みデータ管理テーブルで規定される先読みデータを格納する未使用領域がないとき、前記先読みデータ管理テーブルが保有するアクセス回数に基づいてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割り当てることを特徴とする請求項1記載の記憶装置。 The prefetch data management table has an area for holding the number of accesses of prefetch data,
The control circuit has a buffer memory address with a low access frequency based on the number of accesses held in the prefetch data management table when there is no unused area for storing the prefetch data specified in the prefetch data management table in the buffer memory. 2. The storage device according to claim 1, wherein an area of the buffer memory address thus searched is allocated to a storage area for new prefetched data.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010091305A JP5036078B2 (en) | 2010-04-12 | 2010-04-12 | Storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010091305A JP5036078B2 (en) | 2010-04-12 | 2010-04-12 | Storage device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008287680A Division JP2009080926A (en) | 2008-11-10 | 2008-11-10 | Storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010191983A JP2010191983A (en) | 2010-09-02 |
JP5036078B2 true JP5036078B2 (en) | 2012-09-26 |
Family
ID=42817888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010091305A Expired - Fee Related JP5036078B2 (en) | 2010-04-12 | 2010-04-12 | Storage device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5036078B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014102879A1 (en) | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Data storage apparatus and control method thereof |
JP2017027479A (en) | 2015-07-24 | 2017-02-02 | 富士通株式会社 | Data reading method and information processing system |
JP2017228172A (en) | 2016-06-23 | 2017-12-28 | 富士通株式会社 | Information processing system |
KR102518095B1 (en) | 2018-09-12 | 2023-04-04 | 삼성전자주식회사 | Storage device and system |
CN111290975A (en) * | 2018-12-07 | 2020-06-16 | 北京忆恒创源科技有限公司 | Method for processing read command and pre-read command by using unified cache and storage device thereof |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04199217A (en) * | 1990-11-26 | 1992-07-20 | Hitachi Ltd | Input/output control method |
JPH0895852A (en) * | 1994-09-29 | 1996-04-12 | Sharp Corp | Buffer circuit |
JP3117003B2 (en) * | 1997-07-03 | 2000-12-11 | 日本電気株式会社 | Wide-area distributed file system |
JPH11110138A (en) * | 1997-10-08 | 1999-04-23 | Hitachi Ltd | Storage controller |
JP3043732B1 (en) * | 1998-12-18 | 2000-05-22 | 甲府日本電気株式会社 | Data replacement system |
JP2001051896A (en) * | 1999-08-04 | 2001-02-23 | Hitachi Ltd | Storage device |
JP2001209577A (en) * | 1999-11-16 | 2001-08-03 | Matsushita Electric Ind Co Ltd | Information recording and reproducing device |
JP2003009120A (en) * | 2001-06-21 | 2003-01-10 | Matsushita Electric Ind Co Ltd | Contents reproducing equipment, method therefor, and protocol and program used therein |
-
2010
- 2010-04-12 JP JP2010091305A patent/JP5036078B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010191983A (en) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101081716B1 (en) | Memory device | |
US9928167B2 (en) | Information processing system and nonvolatile storage unit | |
JP4967680B2 (en) | Storage device, computer system, and storage device management method | |
JP4988215B2 (en) | Adaptive flash memory controller employing multiple mapping techniques and flash memory system including the same | |
US8738882B2 (en) | Pre-organization of data | |
US9367444B2 (en) | Non-volatile memory device, control method for information processing device, and information processing device | |
JP4058322B2 (en) | Memory card | |
US9026734B2 (en) | Memory system and data deleting method | |
US20130042057A1 (en) | Hybrid Non-Volatile Memory System | |
US20130275650A1 (en) | Semiconductor storage device | |
KR102663304B1 (en) | Read handling in zoned namespace devices | |
JP3421581B2 (en) | Storage device using nonvolatile semiconductor memory | |
JP2008146254A (en) | Storage device, computer system and data processing method for storage device | |
JP5036078B2 (en) | Storage device | |
JP2009037317A (en) | Memory controller, non-volatile storage device using the same, and non-volatile memory system | |
KR100914646B1 (en) | Management Scheme for Flash Memory with the Multi-Plane Architecture | |
US20180357280A1 (en) | Trie search engine | |
US11182286B2 (en) | Data storage device and control method for non-volatile memory | |
JP2008197981A (en) | Semiconductor storage device | |
US8850160B2 (en) | Adaptive write behavior for a system having non-volatile memory | |
JP2009080926A (en) | Storage device | |
JP2008112455A (en) | Memory card | |
KR20080112069A (en) | System and method for writing data using a pram in a device based on input-output of block unit | |
KR20210089055A (en) | Flash memory storage with improved erase performance and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100527 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100608 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100610 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120514 |
|
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: 20120628 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120702 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5036078 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |