JP2009080926A - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
JP2009080926A
JP2009080926A JP2008287680A JP2008287680A JP2009080926A JP 2009080926 A JP2009080926 A JP 2009080926A JP 2008287680 A JP2008287680 A JP 2008287680A JP 2008287680 A JP2008287680 A JP 2008287680A JP 2009080926 A JP2009080926 A JP 2009080926A
Authority
JP
Japan
Prior art keywords
prefetch
prefetch data
data
management table
buffer memory
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
JP2008287680A
Other languages
Japanese (ja)
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 JP2008287680A priority Critical patent/JP2009080926A/en
Publication of JP2009080926A publication Critical patent/JP2009080926A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a storage device which can flexibly determine data to be prefetched. <P>SOLUTION: The storage device has a nonvolatile memory (2), a buffer memory (4) having higher access speed than that of the nonvolatile memory and a control circuit (5). When a prefetch command is input from the outside, the control circuit generates a prefetch data management table where a logic address of prefetch data designated by the prefetch command is made to correspond to the address of the buffer memory storing the prefetch data, reads data designated by the command from the nonvolatile memory and stores the read data into the buffer memory as the prefetch data, when a read command is input from the outside and the logic address designated by the read command coincides with the logic address made to corresponded to the buffer memory address by the prefetch data management table, the control circuit outputs the corresponding prefetch data from the buffer memory. <P>COPYRIGHT: (C)2009,JPO&INPIT

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 Patent Document 1 has a disk cache, and caches predicted data in the disk cache in advance, thereby minimizing time-consuming access to the magnetic disk. Is done. The hard disk controller performs control for prefetching a part of data stored in the magnetic disk and holding it in the disk cache.

特開2001−125829号公報(段落24〜段落27)JP 2001-1225829 A (paragraphs 24 to 27)

磁気ディスクやフラッシュメモリなどの記憶媒体に対するデータ読み出し性能は、ホストインタフェースの高速化に追随できていないため、ホスト装置からの読み出し要求時に記憶媒体からの読み出し処理を減らすことが必要になる。このためには上記のような記憶媒体からデータを先読みして予めバッファメモリに格納することが有効と考えられる。しかしながら、先読みすべきデータは記憶装置のコントローラが決定していて、ユーザが先読み機能を使用できない。要するに、所定のアルゴリズムにしたがってコントローラが先読みデータを決定していたのでは、使用頻度が高いと予想されるデータを予めバッファメモリに先読みすることが容易ではなく、先読みによるアクセス時間の短縮効果を最大限に発揮させることが難しい。   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 flash memory card 1 shown in FIG. 1 includes a nonvolatile memory such as an electrically erasable and writable memory flash memory 2 and a buffer memory 4 composed of DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory). And a card controller (control circuit) 5 for performing memory control and external interface control on the mounting board. The flash memory card 1 is controlled as a file memory device by the host computer 6. That is, when performing file access, the host computer 6 refers to the FAT (File Allocation Table) formed in the flash memory card 1 to obtain the logical address of the sector constituting the file and uses this logical address. The access command is issued to the flash memory card 1. The flash memory card 1 controls access to the flash memory 2 and the buffer memory 4 in response to the access command.

前記カードコントローラ5は、ホストコンピュータ6から与えられる読み出しコマンド、書き込みコマンド、又は先読みコマンド等による指示に従って、バッファメモリ4及びフラッシュメモリ2のアクセス制御を行う。前記読み出しコマンドは、例えば読み出しセクタの開始論理アドレスとセクタ数を指定してデータを読み出す指示である。書き込みコマンドは、例えば書き込みセクタの開始論理アドレスとセクタ数を指定してデータを書き込む指示である。先読みコマンドは、先読みすべきデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、先読みすべきデータをフラッシュメモリ2から読み出してバッファメモリ4に先読みデータとして格納する指示である。各コマンドに対する処理の詳細は後述する。   The card controller 5 controls access to the buffer memory 4 and the flash memory 2 in accordance with an instruction by a read command, a write command, a pre-read command or the like given from the host computer 6. The read command is an instruction to read data by designating the start logical address and the number of sectors of the read sector, for example. The write command is an instruction to write data by designating the start logical address and the number of sectors, for example. The prefetch command generates a prefetch data management table in which the logical address of the data to be prefetched is associated with the buffer memory address for storing the prefetch data, reads the data to be prefetched from the flash memory 2 and prefetches it into the buffer memory 4 This is an instruction to store as data. Details of processing for each command will be described later.

バッファメモリ4の記憶領域はホストコンピュータ6から供給される書込みデータの一次保存領域(書き込みデータ保存領域)10、フラッシュメモリ2から読み出されてホストコンピュータ6に出力するデータを一時的に保存する領域(読み出しデータ保存領域)11、ワーク領域12、前記先読みコマンドに応答してフラッシュメモリ2から読み出されたデータを先読みデータとして保存する領域(先読みデータ保存領域)13とされる。図2にはバッファメモリ4のアドレスマップの詳細が例示される。先読みデータは、常時バッファメモリ上に読み出された状態になりバッファメモリの記憶領域を占有するため、書き込みや読み出しの通常使用のためのバッファ領域10,11と区別して管理可能にされている。   The storage area of the buffer memory 4 is a primary storage area (write data storage area) 10 for write data supplied from the host computer 6 and an area for temporarily storing data read from the flash memory 2 and output to the host computer 6. A read data storage area 11, a work area 12, and an area (prefetch data storage area) 13 for storing data read from the flash memory 2 in response to the prefetch command as prefetch data. FIG. 2 illustrates details of the address map of the buffer memory 4. Since the pre-read data is always read on the buffer memory and occupies the storage area of the buffer memory, it can be managed separately from the buffer areas 10 and 11 for normal use of writing and reading.

前記フラッシュメモリ2の記憶領域はデータ部14、内部情報格納部15、及び先読みデータ管理テーブル格納部16とされ、夫々には管理部が付加されている。内部情報格納部15にはメモリカード1のID、RD(ルートディレクトリ)及びFAT(ファイルアロケーションテーブル)などが格納され、ホストコンピュータ6のOS(オペレーティングシステム)によって参照可能にされる。先読みデータ管理テーブル格納部16には前記先読みコマンドに応答して生成される前記先読みデータ管理テーブルが格納される。   The storage areas of the flash memory 2 are a data unit 14, an internal information storage unit 15, and a prefetch data management table storage unit 16, each having a management unit added thereto. The internal information storage unit 15 stores the ID, RD (root directory), FAT (file allocation table), and the like of the memory card 1 and can be referred to by the OS (operating system) of the host computer 6. The prefetch data management table storage unit 16 stores the prefetch data management table generated in response to the prefetch command.

前記フラッシュメモリ2は、特に図示はしないが、電気的に消去及び書き込み可能な不揮発性メモリセルトランジスタが多数マトリクス配置されたメモリアレイARYを有する。メモリセルトランジスタ(フラッシュメモリセルとも記す)は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成されたスタックドゲート構造を有する。コントロールゲートは対応するワード線に、ドレインは対応するビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧(コントロールゲート印加電圧)に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。   The flash memory 2 has a memory array ARY in which a large number of electrically erasable and writable nonvolatile memory cell transistors are arranged in a matrix, although not shown. A memory cell transistor (also referred to as a flash memory cell) is formed through a tunnel oxide film in a channel region between a source and a drain formed in a semiconductor substrate or well, and between the source and drain, although not particularly shown. A stacked gate structure including a floating gate and a control gate superimposed on the floating gate with an interlayer insulating film interposed therebetween. The control gate is connected to the corresponding word line, the drain is connected to the corresponding bit line, and the source is connected to the source line. The threshold voltage of the memory cell transistor increases when electrons are injected into the floating gate, and the threshold voltage decreases when electrons are extracted from the floating gate. The memory cell transistor stores information corresponding to the level of the threshold voltage with respect to the word line voltage (control gate applied voltage) for reading data. Although not particularly limited, in this specification, a state in which the threshold voltage of the memory cell transistor is low is referred to as an erased state, and a state in which the threshold voltage is high is referred to as a written state.

図1において前記カードコントローラ5は、ホストインタフェース回路20、演算制御手段としてのマイクロプロセッサ(MPU)21、フラッシュコントローラ22、及びバッファコントローラ23から成る。前記フラッシュコントローラ22は図示を省略するECC回路を備える。   In FIG. 1, the card controller 5 includes a host interface circuit 20, a microprocessor (MPU) 21 as operation control means, a flash controller 22, and a buffer controller 23. The flash controller 22 includes an ECC circuit (not shown).

前記MPU21は、CPU(Central Processing Unit)25、プログラムメモリ(PGM)26及びワークRAM(WRAM)27などを有し、カードコントローラ5を全体的に制御する。プログラムメモリ26はCPU25の動作プログラムなどを保有する。   The MPU 21 includes a CPU (Central Processing Unit) 25, a program memory (PGM) 26, a work RAM (WRAM) 27, and the like, and controls the card controller 5 as a whole. The program memory 26 holds an operation program for the CPU 25 and the like.

前記ホストインタフェース回路20は、ATA(ATAttachment)、IDE(Integrated Device Electronics)、SCSI(Small Computer System Interface)、MMC(MultiMediaCard:登録商標)、PCMCIA(Personal Computer Memory Card International Association)等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ6とインタフェースを行う。   The host interface circuit 20 is in accordance with a predetermined protocol such as ATA (ATAttachment), IDE (Integrated Device Electronics), SCSI (Small Computer System Interface), MMC (MultiMediaCard: registered trademark), PCMCIA (Personal Computer Memory Card International Association). Interface with a host computer 6 such as a personal computer or workstation.

前記バッファコントローラ23はMPU21から与えられるアクセス指示に従って、バッファメモリ4をアクセス制御する。   The buffer controller 23 controls access to the buffer memory 4 in accordance with an access instruction given from the MPU 21.

フラッシュコントローラ22はMPU21から与えられるアクセス指示に従って、フラッシュメモリ2に対する、読み出し動作、消去動作及び書き込み動作を制御する。図示を省略するECC回路は、MPU21から与えられる指示に従って、フラッシュメモリ2に書き込むデータに対してエラー訂正符号(エラー訂正コード)を生成して、書き込みデータに付加する。また、フラッシュメモリ2から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラー発生に対してエラー訂正を行う。   The flash controller 22 controls a read operation, an erase operation, and a write operation with respect to the flash memory 2 in accordance with an access instruction given from the MPU 21. An ECC circuit (not shown) generates an error correction code (error correction code) for data to be written to the flash memory 2 in accordance with an instruction given from the MPU 21, and adds the error correction code to the write data. Further, error detection / correction processing is performed on the read data read from the flash memory 2 by using an error correction code added to the read data, and error correction is performed for errors occurring within the error correction capability range. .

図3にはフラッシュメモリ2記憶領域の構成と先読みデータ管理テーブルの詳細が例示される。フラッシュッメモリ2の記憶領域(メモリアレイ)は、例えば、図では番号0〜番号4n+3のメモリセクタと、M0〜Mnの管理部によって構成されたn個のブロックを記憶領域として有する。各メモリセクタ及び各管理部は物理アドレスを持ち、各メモリセクタには論理アドレスが割当てられる。論理アドレスは例えばファイルのセクタ番号(ファイルセクタ番号)である。以下の説明ではメモリセクタのアドレスを単に物理アドレス又は物理セクタアドレスと称する。論理アドレスは外部から指示されるアドレス、物理アドレスは論理アドレスによって内部をアクセスするためのアドレスとして把握することができる。前記メモリセクタはHDD(ハード・ディスク・ドライブ)などのストレージにおける書き換え単位とされるストレージセクタの容量512B(バイト)に対応されている。前記管理領域にはブロックの有効フラグや代替フラグ等が格納される。ECCコードは各メモリセクタ毎に配置されている。1ブロックを構成する不揮発性メモリセルは1本のワード線又は1種類のワード線選択信号で選択され、消去処理及び書き込み処理の単位とされ、例えば消去処理や書き込み処理で必要な高電圧がワード線単位で印加される。   FIG. 3 illustrates the configuration of the flash memory 2 storage area and details of the prefetch data management table. The storage area (memory array) of the flash memory 2 includes, for example, memory blocks numbered 0 to number 4n + 3 in the figure and n blocks constituted by M0 to Mn management units as storage areas. Each memory sector and each management unit has a physical address, and a logical address is assigned to each memory sector. The logical address is, for example, a file sector number (file sector number). In the following description, the address of the memory sector is simply referred to as a physical address or a physical sector address. The logical address can be grasped as an address instructed from the outside, and the physical address can be grasped as an address for accessing the inside by the logical address. The memory sector corresponds to a storage sector capacity 512B (bytes) as a rewrite unit in a storage such as an HDD (hard disk drive). The management area stores a block validity flag, a substitution flag, and the like. The ECC code is arranged for each memory sector. Non-volatile memory cells constituting one block are selected by one word line or one type of word line selection signal, and are used as a unit for erasing processing and writing processing. For example, a high voltage necessary for erasing processing and writing processing is a word. Applied in line units.

メモリセクタ4n〜4n+3は前記先読みデータ管理テーブル格納部16とされる。先読みデータ管理テーブル格納部16の各メモリセクタには夫々複数個の先読みデータ管理テーブルTi(T0,T1,T2…)とECCコードが格納される。先読みデータ管理テーブルは先読みコマンドに応答する処理が行なわれる事によって追加可能にされているから、複数存在することが許容される。   The memory sectors 4n to 4n + 3 are used as the prefetch data management table storage unit 16. A plurality of prefetch data management tables Ti (T0, T1, T2,...) And ECC codes are stored in each memory sector of the prefetch data management table storage unit 16. Since the prefetch data management table can be added by performing a process in response to the prefetch command, a plurality of prefetch data management tables are allowed.

先読みデータ管理テーブル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 logical address area 30, a head memory address area 31, a sector number area 32, a valid flag area 33, an access count area 34, and a file name area 35. The leading logical address area 30 stores the leading logical address (logical sector address) of the prefetched data. The start memory address area 31 stores the start memory address of an area holding prefetched data on the buffer memory. The sector number area 32 stores the number of sectors of the pre-read data. The valid flag area 33 stores a flag indicating whether or not the prefetch data management table is valid. The access count area 34 is an area for storing the number of accesses by the host computer 6 for the pre-read data managed by the write management table. The file name area 35 is an area for holding a file name to which prefetched data belongs.

前記先読みデータ管理テーブルはフラッシュメモリ2上、又はバッファメモリ4上のどちらで管理してもよい。フラッシュメモリ2上で管理する場合には、先読みデータ管理テーブルの生成消滅の度に先読みデータ管理テーブル格納部16に対する消去及び書き込み処理を行なうことになるので、動作が遅くなる。バッファメモリ4上で管理する場合には管理テーブルの生成消滅の動作は高速になる。但し、電源遮断時は先読みデータ管理テーブルをフラッシュメモリ2に待避することを要する。また、パワーオンに応答して、フラッシュメモリ2から先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータをフラッシュメモリからバッファメモリ4に転送することが望ましい。   The prefetch data management table may be managed either on the flash memory 2 or on the buffer memory 4. In the case of management on the flash memory 2, the erasure and write processing for the prefetch data management table storage unit 16 is performed every time the prefetch data management table is generated and extinguished. In the case of management on the buffer memory 4, the operation of creating and extinguishing the management table becomes faster. However, it is necessary to save the prefetch data management table in the flash memory 2 when the power is shut off. In response to power-on, it is desirable to read the prefetch data management table from the flash memory 2 and transfer prefetch data whose location is defined by the read prefetch data management table from the flash memory to the buffer memory 4.

《先読みコマンド応答処理》
図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 a user (user) of the memory card 1 designates a prefetch data area by a logical address. The file designation is that the user designates a file name having prefetched data. If the absolute path of the location is included in the file name, duplication of the file name can be easily dealt with, and the file search becomes easy.

一般に、記憶装置の使用者はOSで管理されるフラッシュメモリカード1上の論理アドレスを把握できない場合が有る。フラッシュメモリカード1の使用者はファイル名でデータを把握するのが簡便であり、これを考慮する事によってデータ先読みに対する良好な操作性を保証できる。また、OS上でフラッシュメモリ上の論理アドレスを管理できない場合もある。このような場合でも先読みデータの指定が可能となる。   In general, the user of the storage device may not be able to grasp the logical address on the flash memory card 1 managed by the OS. It is easy for the user of the flash memory card 1 to grasp the data by the file name, and by considering this, it is possible to guarantee good operability for the data prefetching. In some cases, the logical address on the flash memory cannot be managed on the OS. Even in such a case, the prefetch data can be specified.

また、先読みデータをフラッシュメモリ2からバッファメモリ4に格納する動作タイミングは先読みコマンド発行時、或は先に先読みデータ管理テーブルを生成した後のコマンド待ち状態においてバックグラウンドで行なう。コマンド待ち状態で行なうことにより、フラッシュメモリ2からバッファメモリ4に先読みデータを転送する処理によりリードアクセスなど処理が待たされるというような事態の発生を未然に防止することができる。   The operation timing for storing the pre-read data from the flash memory 2 to the buffer memory 4 is performed in the background when the pre-read command is issued or in the command waiting state after the pre-read data management table is generated first. By performing the process while waiting for a command, it is possible to prevent the occurrence of a situation in which a process such as a read access is awaited by a process of transferring prefetched data from the flash memory 2 to the buffer memory 4.

図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 host computer 6 is received (S1), the physical address of the prefetch data designated by the logical address or file name is acquired by the command (S2). A prefetch data management table is created based on the logical address of the prefetch data designated by the prefetch command and the corresponding physical address (S3). The creation location is, for example, the work area 12 of the buffer memory 4. It is determined whether or not the prefetched data specified by the created prefetched data management table is actually readable (S4). This is to detect the case where the file does not exist or the logical address is not associated with the block of the flash memory. If the file is not readable, an error code is returned to the host computer 6. If it can be read, it is determined whether the next command can be received. If it cannot be received, in other words, if no other access command is issued from the host computer 6, the prefetched data is read from the flash memory 2 and the buffer memory 4 is read. (S6), and a valid flag is set in the valid flag area 33 of the corresponding prefetch data management table (S7). When the number of sectors of the pre-read data is 2 or more, the process returns to steps S6 and S7 for the subsequent sector data and the same processing is repeated (S8). The pre-read data read address of the flash memory 2 and the pre-read data write address of the buffer memory necessary for pre-reading the subsequent sector data may be obtained sequentially by the address calculation of the microprocessor 11. When the prefetching of all the sector data defined in the prefetch data management table created in step S3 is completed, the busy state by the current prefetch command reception is canceled (S9), and the process is terminated. In step S5, if the next command can be received, the busy state by receiving the prefetch command is canceled (S9), and the next command is received and executed.

前記ステップ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 card controller 5 itself, or the pre-read command may have control information for function switching. .

ホストコンピュータ6からアクセスコマンドが供給されたときは、先読みデータ管理テーブルの前記有効フラグ33がチェックされ、セットされた有効フラグ33を持つ先読みデータ管理テーブルだけが、利用すべき先読みデータの所在を取得するための検索対象とされる。   When an access command is supplied from the host computer 6, the valid flag 33 of the prefetch data management table is checked, and only the prefetch data management table having the valid flag 33 set acquires the location of the prefetch data to be used. To be searched.

図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 host computer 6. First, the name of the file that holds the prefetch data is acquired from the prefetch command (S21). Next, the partition ID of the master boot record area (MBR) of the flash memory 2 is read to recognize the file system used (S22). It is determined whether the file system can be recognized according to the used file system (S23). If possible, the file system is analyzed using FAT on the flash memory 2 to obtain the logical address where the file is stored. To do. Similarly, when the file is fragmented, the logical address where the file is stored is acquired. Then, after confirming that the corresponding data exists on the file system (Yes in S25), the memory address of the flash memory is calculated. In a system in which the correspondence between the logical address and the physical address of the flash memory 2 is variable, the calculation is performed with reference to an address conversion table that defines the mutual relationship. The address translation table is stored in a predetermined area in the flash memory 2.

ユーザは、ファイルシステム上では論理アドレスを管理できない。このため、ファイル名での指定を可能にすることで、ユーザの先読みデータ管理が可能になる。   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 file name area 35. Therefore, there is a problem in search processing when responding to an access command. It will not be.

フラッシュメモリ2上に同一ファイル名が複数存在することが想定されるため、先読みデータ管理テーブルに保存するファイル名は、絶対パスも含めて保存することが望ましい。若しくは同一ファイル名であってもファイルシステム上の論理アドレスは異なっていることから、先読みデータ管理テーブルに保存するファイル名は、論理アドレスを含めて保存するものであってもよい。   Since it is assumed that there are a plurality of the same file names on the flash memory 2, it is desirable to save the file names to be saved in the prefetch data management table including the absolute path. Alternatively, since the logical addresses on the file system are different even for the same file name, the file name stored in the prefetch data management table may be stored including the logical address.

図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 buffer memory 4.

バッファメモリ4に先読みデータを格納する未使用領域がないときの処理形態として、既に先読みデータを保有する領域への上書き許可、又は既に先読みデータを保有する領域への上書き禁止がある。   As a processing mode when there is no unused area for storing the prefetched data in the buffer memory 4, there is an overwriting permission to an area that already holds the prefetched data or an overwriting prohibition to an area that already holds the prefetched data.

上書き禁止を採用することにより、頻繁にアクセスされる先読みデータの有効利用を保証することが容易である。上書き禁止が採用されているとき、未使用領域がないときは先読みコマンド発行元にエラー応答を返して、使用者に注意を喚起すればよい。上書き許可を採用することにより先読みデータの動的な入れ換えに便利である。   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 card controller 5 may perform control to permit overwriting to the pre-read data storage area 13 in order from the oldest one by FIFO (first-in first-out).

アクセス頻度に応じた部分許可を採用する場合、アクセス頻度が少ない領域か否かは先読みデータ管理テーブルが保有するアクセス回数領域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 access frequency area 34 held in the prefetched data management table. For example, when the access count 1 is adopted as the determination criterion, the prefetch data management table having the access count 1 is searched, and the buffer memory address used in the prefetch data management table after the search is used. Alternatively, a buffer memory address managed by a prefetch data management table having a minimum access count obtained by searching an arbitrary plurality of prefetch data management tables may be used.

上記部分許可は、先読みデータの動的な入れ換え性と、頻繁にアクセスされる先読みデータの有効利用性とを両立するのに好都合である。   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 card controller 5 by control data or a mode signal. Or you may make it designate each time with a prefetch command.

《読み出しコマンド応答処理》
図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 card controller 5 receives the read command issued from the host computer 6 (S30), the card controller 5 determines whether or not a pre-read data management table corresponding to the logical address specified by the read command exists (S31). If there is no pre-read data management table for all of the specified logical addresses, the physical sector address of the flash memory corresponding to the read target logical address is calculated (S32), and the data is read from the physical sector address to store the read data in the buffer memory. The data is transferred to the area (S33), and the data transferred to the read data storage area is output to the host computer 6 (S34).

ステップ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 buffer memory 4 is read. Transfer to the storage area (S33). For a logical address with partial prefetched data, the access count of the corresponding prefetched data management table is incremented by +1 (S37). In step S33, the data transferred to the read data storage area and the remaining prefetch data in the prefetch data storage area 13 are output to the host computer 6 (S34). If there is prefetch data for all logical addresses, the access count of the prefetch data management table corresponding to the logical address is incremented by +1 (S37), and the corresponding prefetch data in the prefetch data storage area 13 is stored in the host computer 6. (S34).

図8の処理では、先読み済みデータが揃っていない場合、不足データをフラッシュメモリ2からバッファメモリ4に転送後にホストコンピュータ6にデータ転送を行う。不足データをフラッシュメモリ2からバッファメモリ4に読み出す前に、先読み済みデータをホストコンピュータ6に転送してもよい。   In the process of FIG. 8, when pre-read data is not prepared, data transfer to the host computer 6 is performed after the insufficient data is transferred from the flash memory 2 to the buffer memory 4. The preread data may be transferred to the host computer 6 before the missing data is read from the flash memory 2 to the buffer memory 4.

《書き込みコマンド応答処理》
図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 card controller 5 receives the write command issued from the host computer 6 (S40), the card controller 5 temporarily stores the write data supplied from the host computer 6 in the write data storage area 10 (S41). The card controller 5 calculates the physical sector address on the flash memory 2 corresponding to the logical address specified by the write command (S42), gives the flash write command to the flash memory 2, and instructs the write process to the flash memory 2. (S34). In parallel with the write operation of the flash memory 2, the card controller 5 determines whether or not there is a pre-read data management table related to the write data (S44). If there is valid prefetch data related to the write data, the prefetch data is updated with the write data on the buffer memory 4 (S47), and the contents of the corresponding prefetch data management table are updated (S48). For example, the access count is incremented by +1. After the process of step S48 is completed, or if there is no corresponding prefetch data in the determination of step S44, the process waits for the flash memory writing process started in step S43 to end, and then releases the busy flag by the write command ( S46), the process ends.

先読み済みデータの更新時には、記憶媒体上のデータと同時にバッファ上の先読みデータ保存領域のデータも更新する必要がある。このため、ライト要求時のアドレスは常に監視する必要があるが、記憶媒体への保存時間に比べて、バッファメモリ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 buffer memory 4 is very fast compared to the storage time in the storage medium, no significant performance degradation occurs.

《先読みデータ管理テーブルの退避》
先読みデータ管理テーブルをバッファメモリ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 work area 12 of the buffer memory 4, the card controller 5 stores the prefetch data management table in the prefetch data management table storage area of the flash memory 2 at a predetermined timing. Evacuate to. The predetermined timing is, for example, when the power is shut off or when waiting for a command after a predetermined period. By storing the pre-read data management table of functioning pre-read data, even if the pre-read data on the buffer memory 4 is lost due to power interruption or the like, it can be reproduced later. The card controller 5 reads the prefetch data management table from the flash memory 2 in response to power-on, and transfers the prefetch data whose location is defined in the read prefetch data management table from the flash memory 2 to the buffer memory 4. Good.

以上説明したフラッシュメモリーカード1によれば以下の作用効果を得ることができる。   According to the flash memory card 1 described above, the following operational effects can be obtained.

〔1〕先読みコマンドによりホストコンピュータ6からフラッシュメモリカード1に対して先読みデータを指定することができる。したがって、先読みによるアクセス時間の短縮効果を最大限に発揮できるように先読みすべきデータを柔軟に決定することができる。フラッシュメモリーカード1の読み出し性能は、記憶媒体であるフラッシュメモリ2自身の読み出し性能がボトルネックとなっているため、ホストコンピュータ6からの読み出し要求時にフラッシュメモリ2からの読み出し処理に代えてバッファメモリ4から先読みデータを出力する処理が増えることにより、システム性能を向上させることができる。   [1] Prefetch data can be designated from the host computer 6 to the flash memory card 1 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. The read performance of the flash memory card 1 is the bottleneck of the read performance of the flash memory 2 itself, which is a storage medium. The system performance can be improved by increasing the number of processes for outputting the prefetched data.

〔2〕前記先読みコマンドは先読みデータの指定を論理アドレス又はファイル名の何れによっても行なうことができる。例えば先読みコマンドにおいて論理アドレスの指定フィールドとファイル名の指定フィールドが異なっている。マスタブートレコード若しくはFAT(ファイル・アロケーション・テーブル)などに代表されるように使用者にとってその論理アドレスの把握が容易な場合もあるので、論理アドレスによる指定は、先読みデータを直接的に指定できるので便利である。   [2] The pre-read command can specify pre-read 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), the user can easily understand the logical address. Therefore, the pre-read data can be specified directly by specifying the logical address. Convenient.

フラッシュメモリーカード1の使用者はOSで管理されるフラッシュメモリ2上の論理アドレスを把握できない場合が有り、フラッシュメモリカード1の使用者はファイル名でデータを把握するのが簡便であり、データ先読みに対する良好な操作性を実現することができる。   The user of the flash memory card 1 may not be able to grasp the logical address on the flash memory 2 managed by the OS, and the user of the flash memory card 1 can easily grasp the data by the file name. Good operability can be realized.

〔3〕カードコントローラ5による先読みデータの転送形態として、先読みコマンドの実行時の他に、先に先読みデータ管理テーブルを生成し、その後所定のタイミングで先読みデータをバッファメモリ4に転送する形態を採用することができる。これにより、カードコントローラ5は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリ4に転送することができる。先読み処理によってリードアクセスなど処理が待たされてデータ処理効率が低下することを未然に防止することができる。   [3] As a transfer form of the prefetch data by the card controller 5, a prefetch data management table is first generated in addition to when the prefetch command is executed, and then the prefetch data is transferred to the buffer memory 4 at a predetermined timing. can do. Thereby, the card controller 5 can transfer the prefetch data to the buffer memory 4 in the command waiting state after the execution of the prefetch command is completed. It is possible to prevent the data processing efficiency from being lowered by waiting for processing such as read access by the prefetch processing.

〔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 area 34 for holding the number of times the prefetch data is accessed by the host computer 6, so that the card controller 5 has no unused area for storing the prefetch data in the buffer memory 4. Based on the number of accesses held in the prefetch data management table, a buffer memory address with a low access frequency can be retrieved, and the area of the retrieved buffer memory address can be allocated to a new prefetch data storage area. It is possible to guarantee effective use of prefetched data that is frequently accessed.

〔6〕カードコントローラ5は先読みデータ管理テーブルを所定のタイミングでフラッシュメモリ2の先読みデータ管理テーブル保存領域に退避することにより、先読みデータ管理テーブルをバッファメモリ4上又はワークRAM26で運用しているとき、機能している先読みデータの先読みデータ管理テーブルを保存することにより、電源遮断などによってバッファメモリ上の先読みデータが失われても、後からそれを再現可能になる。   [6] When the card controller 5 operates the prefetch data management table on the buffer memory 4 or the work RAM 26 by saving the prefetch data management table to the prefetch data management table storage area of the flash memory 2 at a predetermined timing. By storing a prefetch data management table of functioning prefetch data, even if prefetch data on the buffer memory is lost due to power interruption or the like, it can be reproduced later.

以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。   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 a 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 is a block diagram of a flash memory card that is an example of a storage device according to the present invention. FIG. バッファメモリのアドレスマップの詳細を示す説明図である。It is explanatory drawing which shows the detail of the address map of a buffer memory. フラッシュメモリの記憶領域の構成と先読みデータ管理テーブルの詳細を例示する説明図である。It is explanatory drawing which illustrates the detail of the structure of the storage area of a flash memory, and the prefetch data management table. 先読みコマンドの主な仕様を示す説明図である。It is explanatory drawing which shows the main specifications of a prefetch command. 先読みコマンド応答処理の制御手順を例示するフローチャートである。It is a flowchart which illustrates the control procedure of prefetch command response processing. ホスト指定アドレス取得処理(S2)の具体例を示すフローチャートである。It is a flowchart which shows the specific example of a host designation | designated address acquisition process (S2). バッファメモリに先読みデータを格納する未使用領域がないときの処理形態(先読みデータ更新形態)を例示する説明図である。It is explanatory drawing which illustrates the processing form (prefetch data update form) when there is no unused area | region which stores prefetch data in a buffer memory. 読み出しコマンド応答処理の制御手順を例示するフローチャートである。It is a flowchart which illustrates the control procedure of a read command response process. 書き込みコマンド応答処理の制御手順を例示するフローチャートである。It is a flowchart which illustrates the control procedure of a write command response process.

符号の説明Explanation of symbols

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 SYMBOLS 1 Memory card 2 Flash memory 4 Buffer memory 5 Card controller 6 Host computer 10 Write data storage area 11 Read data storage area 12 Work area 13 Prefetch data storage area 14 Data section 15 Internal information storage section 16 Prefetch data management table storage section 20 Host Interface circuit 21 Microprocessor 22 Flash controller 33 Buffer controller 25 CPU
26 Work RAM
27 Program memory Ti Prefetched data management table 30 First logical address area 31 First memory address area 32 Sector number area 33 Valid flag area 34 Access count area 35 File name area

Claims (15)

不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、
前記制御回路は、外部から先読みコマンドが入力されると、前記先読みコマンドが指定する先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付けた先読みデータ管理テーブルを生成し、当該コマンドが指定するデータを不揮発性メモリから読み出してバッファメモリに先読みデータとして格納し、
外部から読み出しコマンドが入力されると、前記読み出しコマンドで指定される論理アドレスが先読みデータ管理テーブルで対応付けられた論理アドレスに一致するときバッファメモリから対応する先読みデータを出力することを特徴とする記憶装置。
A nonvolatile memory, a buffer memory having a faster access speed than the nonvolatile memory, and a control circuit;
When a prefetch command is input from the outside, the control circuit generates a prefetch data management table in which a logical address of prefetch data designated by the prefetch command and a buffer memory address for storing the prefetch data are associated with each other. Reads data specified by the command from the non-volatile memory and stores it in the buffer memory as pre-read data,
When a read command is input from the outside, when the logical address specified by the read command matches the logical address associated with the prefetch data management table, the corresponding prefetch data is output from the buffer memory. Storage device.
前記先読みコマンドは論理アドレスによって先読みデータを指定することを特徴とする請求項1記載の記憶装置。   The storage device according to claim 1, wherein the prefetch command designates prefetch data by a logical address. 前記先読みコマンドはファイル名によって先読みデータを指定することを特徴とする請求項1記載の記憶装置。   2. The storage device according to claim 1, wherein the prefetch command designates prefetch data by a file name. 前記制御回路は、先読みコマンドの実行時に先読みデータをバッファメモリに転送することを特徴とする請求項1記載の記憶装置。   The storage device according to claim 1, wherein the control circuit transfers prefetch data to a buffer memory when a prefetch command is executed. 前記制御回路は先読みデータ管理テーブルを生成した後に先読みデータをバッファメモリに転送することを特徴とする請求項1記載の記憶装置。   The storage device according to claim 1, wherein the control circuit transfers the prefetch data to the buffer memory after generating the prefetch data management table. 前記制御回路は、先読みコマンドを実行終了した後のコマンド待ち状態において先読みデータをバッファメモリに転送することを特徴とする請求項5記載の記憶装置。   6. The storage device according to claim 5, wherein the control circuit transfers the prefetch data to the buffer memory in a command waiting state after the execution of the prefetch command is completed. 前記先読みデータ管理テーブルは、先読みデータの先頭論理アドレス、先読みデータを格納する領域の先頭メモリアドレス、及び先読みデータのデータ数を保持する領域を有することを特徴とする請求項1記載の記憶装置。   2. The storage device according to claim 1, wherein the prefetch data management table includes a head logical address of the prefetch data, a head memory address of an area for storing the prefetch data, and an area for holding the number of data of the prefetch data. 前記先読みデータ管理テーブルは、対応する先読みデータの有効性を示すフラグを保持する領域を有することを特徴とする請求項6記載の記憶装置。   7. The storage device according to claim 6, wherein the prefetch data management table has an area for holding a flag indicating validity of corresponding prefetch data. 前記先読みデータ管理テーブルは、先読みデータを含むファイル名を保持する領域を有することを特徴とする請求項3記載の記憶装置。   4. The storage device according to claim 3, wherein the prefetch data management table has an area for holding a file name including prefetch data. 前記先読みデータ管理テーブルは、先読みデータのアクセス回数を保持する領域を有することを特徴とする請求項1記載の記憶装置。   The storage device according to claim 1, wherein the prefetch data management table has an area for holding the number of accesses of prefetch data. 前記制御回路は、バッファメモリに先読みデータを格納する未使用領域がないとき、前記先読みデータ管理テーブルが保有するアクセス回数に基いてアクセス頻度の少ないバッファメモリアドレスを検索し、検索したバッファメモリアドレスの領域を新たな先読みデータの格納領域に割当てることを特徴とする請求項10記載の記憶装置。   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. 11. The storage device according to claim 10, wherein the area is allocated to a storage area for new prefetch data. 前記制御回路は、先読みデータ管理テーブルを所定のタイミングで不揮発性メモリの先読みデータ管理テーブル保存領域に退避することを特徴とする請求項1記載の記憶装置。   2. The storage device according to claim 1, wherein the control circuit saves the prefetch data management table in a prefetch data management table storage area of the nonvolatile memory at a predetermined timing. 前記制御回路は、パワーオンに応答して不揮発性メモリから先読みデータ管理テーブルを読み出し、読み出した先読みデータ管理テーブルでその所在が規定される先読みデータを不揮発性メモリからバッファメモリに転送することを特徴とする請求項12記載の記憶装置。   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. The storage device according to claim 12. 不揮発性メモリ、前記不揮発性メモリよりもアクセス速度の速いバッファメモリ及び制御回路を有し、
前記制御回路は、外部から入力される読出しコマンドに応答して、先読みデータの論理アドレスとその先読みデータを格納するバッファメモリアドレスとを対応付ける書換え可能な先読みデータ管理テーブルを参照し、当該コマンドが指定するデータをバッファメモリが保有するか否かを判定し、保有する場合にはバッファメモリから読み出したデータを外部に出力し、保有しない場合には不揮発性メモリから読み出したデータを外部に出力することを特徴とする記憶装置。
A non-volatile memory, a buffer memory having a higher access speed than the non-volatile memory, and a control circuit;
In response to a read command input from the outside, the control circuit refers to a rewritable prefetch data management table that associates a logical address of the prefetch data with a buffer memory address that stores the prefetch data, and the command specifies Determine whether or not the buffer memory holds the data to be read, and if so, output the data read from the buffer memory to the outside, otherwise output the data read from the non-volatile memory to the outside A storage device.
前記先読みデータ管理テーブルは、前記バッファメモリに設けられることを特徴とする請求項1記載の記憶装置。   The storage device according to claim 1, wherein the prefetch data management table is provided in the buffer memory.
JP2008287680A 2008-11-10 2008-11-10 Storage device Pending JP2009080926A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008287680A JP2009080926A (en) 2008-11-10 2008-11-10 Storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008287680A JP2009080926A (en) 2008-11-10 2008-11-10 Storage device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2003108603A Division JP2004318940A (en) 2003-04-14 2003-04-14 Storage device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010091305A Division JP5036078B2 (en) 2010-04-12 2010-04-12 Storage device

Publications (1)

Publication Number Publication Date
JP2009080926A true JP2009080926A (en) 2009-04-16

Family

ID=40655538

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008287680A Pending JP2009080926A (en) 2008-11-10 2008-11-10 Storage device

Country Status (1)

Country Link
JP (1) JP2009080926A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014197285A (en) * 2013-03-29 2014-10-16 東芝パソコンシステム株式会社 Semiconductor memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014197285A (en) * 2013-03-29 2014-10-16 東芝パソコンシステム株式会社 Semiconductor memory device

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
JP4058322B2 (en) Memory card
US8285940B2 (en) Method and apparatus for high speed cache flushing in a non-volatile memory
JP4988215B2 (en) Adaptive flash memory controller employing multiple mapping techniques and flash memory system including the same
US9367444B2 (en) Non-volatile memory device, control method for information processing device, and information processing device
US20130275650A1 (en) Semiconductor storage device
US20130042057A1 (en) Hybrid Non-Volatile Memory System
JP2008146253A (en) Storage device, computer system, and data processing method for storage device
JP3421581B2 (en) Storage device using nonvolatile semiconductor memory
JP2007115004A (en) Storage device, computer system and data write method
JP2008146254A (en) Storage device, computer system and data processing method for storage device
US20220083256A1 (en) Read Handling in Zoned Namespace Devices
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
JPH06349286A (en) Writing controller and control method for flash memory
JP2008197981A (en) Semiconductor storage device
US8850160B2 (en) Adaptive write behavior for a system having non-volatile memory
JP2009080926A (en) Storage device
JP3976764B2 (en) Semiconductor disk device
JP2008112455A (en) Memory card
JPH10289144A (en) Memory control method
KR20080112069A (en) System and method for writing data using a pram in a device based on input-output of block unit

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090630

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091013

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100412