JP4177360B2 - Memory controller, flash memory system, and flash memory control method - Google Patents
Memory controller, flash memory system, and flash memory control method Download PDFInfo
- Publication number
- JP4177360B2 JP4177360B2 JP2005215659A JP2005215659A JP4177360B2 JP 4177360 B2 JP4177360 B2 JP 4177360B2 JP 2005215659 A JP2005215659 A JP 2005215659A JP 2005215659 A JP2005215659 A JP 2005215659A JP 4177360 B2 JP4177360 B2 JP 4177360B2
- Authority
- JP
- Japan
- Prior art keywords
- command set
- flash memory
- read
- stored
- command
- 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
Description
本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。 The present invention relates to a memory controller, a flash memory system including the memory controller, and a flash memory control method .
近年、不揮発性の記録媒体であるフラッシュメモリの開発が盛んに行われ、デジタルカメラ等の情報機器の記憶媒体として普及している。 In recent years, a flash memory, which is a non-volatile recording medium, has been actively developed and is widely used as a storage medium for information devices such as digital cameras.
このような機器によるフラッシュメモリへのアクセスを制御するために、メモリコントローラが用いられる。一般に、メモリコントローラは、読み出し、書き込み等の各種処理の手順を定義する一連のコマンドの配列であるコマンドセット(又はコマンドシーケンス)を、自己の有するROM(Read Only Memory)等に予め格納している。そして、各種処理を実行する際には、コマンドセットを解釈して実行することで、所望の処理を実現する(例えば特許文献1参照)。
しかしながら、フラッシュメモリは、品種によって構成や機能(例えば、キャッシュの有無、ページやブロックのサイズ、サポートするコマンドの種類等)に差異がある。 However, flash memories have different configurations and functions (for example, the presence or absence of a cache, the size of a page or block, the type of supported command, etc.) depending on the type.
これに対応して、フラッシュメモリの品種毎に、別々にメモリコントローラを開発するのでは、フラッシュメモリの多様化にメモリコントローラの開発が追いつかないという状況が生じる。 Corresponding to this, if a memory controller is developed separately for each type of flash memory, a situation occurs in which the development of the memory controller cannot catch up with the diversification of the flash memory.
本発明は上記の実情に鑑みてなされたもので、コマンドセットの仕様が異なる多品種のフラッシュメモリを制御できるメモリコントローラ、及び当該メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供することを目的とする。 The present invention has been made in view of the above circumstances, and provides a memory controller that can control various types of flash memories having different command set specifications, a flash memory system including the memory controller, and a flash memory control method . For the purpose.
本発明の第1の観点に係るメモリコントローラは、
フラッシュメモリを制御するための処理の手順を定義する一連の命令であるコマンドセットを取得するコマンドセット取得手段と、
コマンドセットを保持するコマンドセット保持手段と、
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、前記フラッシュメモリに実行させるべき処理に対応するコマンドセットを前記コマンドセット保持手段から取得し、該コマンドセットに含まれる命令を実行する制御手段とを備え、
前記フラッシュメモリ内の特定のページには、少なくとも読出処理の手順を定義した読出処理のコマンドセットを含むコマンドセットが格納され、前記特定のページ以外のページには、前記読出処理のコマンドセット以外のコマンドセットが格納されており、
前記コマンドセット取得手段は、起動時に、前記フラッシュメモリの前記特定のページに格納されているコマンドセットを読み出し、
前記制御手段は、前記コマンドセット取得手段が読み出したコマンドセットに含まれる前記読出処理のコマンドセットを用いて、前記フラッシュメモリの前記特定のページ以外のページに格納されているコマンドセットを読み出して、前記コマンドセット保持手段に格納する、
ことを特徴とする。
A memory controller according to a first aspect of the present invention includes:
Command set acquisition means for acquiring a command set, which is a series of instructions that define a processing procedure for controlling the flash memory;
And command set holding means for holding a set of commands,
In response to an instruction from a host system that uses the flash memory as a storage medium, a command set corresponding to a process to be executed by the flash memory is acquired from the command set holding unit, and an instruction included in the command set is acquired. Control means to execute,
A specific page in the flash memory stores a command set including at least a read processing command set that defines a read processing procedure, and a page other than the specific page includes a command set other than the read processing command set. Command set is stored,
The command set acquisition means reads a command set stored in the specific page of the flash memory at startup,
The control unit reads a command set stored in a page other than the specific page of the flash memory using the command set of the read process included in the command set read by the command set acquisition unit, Storing in the command set holding means;
It is characterized by that.
本発明の第2の観点に係るメモリコントローラは、
フラッシュメモリを制御するための処理の手順を定義する一連の命令であるコマンドセットを取得するコマンドセット取得手段と、
コマンドセットを保持するコマンドセット保持手段と、
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、前記フラッシュメモリに実行させるべき処理に対応するコマンドセットを前記コマンドセット保持手段から取得し、該コマンドセットに含まれる命令を実行する制御手段とを備え、
前記コマンドセット取得手段は、起動時に、外部の記憶装置から、当該外部の記憶装置に予め格納されている読出処理の手順を定義した読出処理のコマンドセットを取得し、
前記フラッシュメモリには、前記読出処理のコマンドセット以外のコマンドセットが格納され、
前記制御手段は、前記コマンドセット取得手段が取得した前記読出処理のコマンドセットを用いて、前記フラッシュメモリに格納されているコマンドセットを読み出して、前記コマンドセット保持手段に格納する。
A memory controller according to a second aspect of the present invention is:
Command set acquisition means for acquiring a command set, which is a series of instructions that define a processing procedure for controlling the flash memory;
Command set holding means for holding the command set;
In response to an instruction from a host system that uses the flash memory as a storage medium, a command set corresponding to a process to be executed by the flash memory is acquired from the command set holding unit, and an instruction included in the command set is acquired. Control means to execute,
The command set obtaining means, at start-up, an external storage device, acquires the command set of the read process that defines the procedure for read processing that is previously stored in the external storage device,
The flash memory, command set other than the command set of the reading process is stored,
Wherein said control means uses the command set of the read processing of the command set acquisition unit has acquired, and read out the command set stored in the flash memory is stored in the command set hold means.
本発明の第3の観点に係るフラッシュメモリシステムは、上記の特徴のうち、少なくともいずれか一つを有するメモリコントローラと、フラッシュメモリとを備えることを特徴とする。 A flash memory system according to a third aspect of the present invention includes a memory controller having at least one of the above characteristics and a flash memory.
本発明の第4の観点に係るフラッシュメモリの制御方法は、フラッシュメモリを制御するための処理の手順を定義する一連の命令であるコマンドセットを取得するコマンドセット取得ステップと、コマンドセットを記憶装置に保持するコマンドセット保持ステップと、前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応じて、前記記憶装置に保持されているコマンドセットを用いて前記フラッシュメモリを制御する制御ステップと、
を備え、
前記フラッシュメモリ内の特定のページには、少なくとも読出処理の手順を定義した読出処理のコマンドセットを含むコマンドセットが格納され、前記特定のページ以外のページには、前記読出処理のコマンドセット以外のコマンドセットが格納されており、
前記コマンドセット取得ステップは、起動時に、前記フラッシュメモリの前記特定のページに格納されているコマンドセットを読み出すステップを含み、
前記制御ステップは、前記コマンドセット取得ステップにより読み出されたコマンドセットに含まれる前記読出処理のコマンドセットを用いて、前記特定のページ以外のページに格納されているコマンドセットを読み出して、前記記憶装置に格納するステップを含む、
ことを特徴とする。
本発明の第5の観点に係るフラッシュメモリの制御方法は、
フラッシュメモリを制御するための処理の手順を定義する一連の命令であるコマンドセットを取得するコマンドセット取得ステップと、
コマンドセットを記憶装置に保持するコマンドセット保持ステップと、
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応じて、前記記憶装置に保持されているコマンドセットを用いて前記フラッシュメモリを制御する制御ステップとを備え、
前記コマンドセット取得ステップは、起動時に、外部の記憶装置から、当該外部の記憶装置に予め格納されている読出処理の手順を定義した読出処理のコマンドセットを取得するステップを含み、
前記フラッシュメモリには、前記読出処理のコマンドセット以外のコマンドセットが格納され、
前記制御ステップは、前記コマンドセット取得ステップにより取得された前記読出処理のコマンドセットを用いて、前記フラッシュメモリに格納されているコマンドセットを読み出して、前記記憶装置に格納するステップを含む、
ことを特徴とする。
Control method for a flash memory according to the fourth aspect of the present invention, a command set acquiring a command set is a series of instructions that define the steps of a process for controlling the flash memory, it stores a set of commands a command set holding step that holds the apparatus, the control step in response to a command from the host system utilizing the flash memory as a storage medium, for controlling the flash memory by using the command set held in the storage device When,
With
A specific page in the flash memory stores a command set including at least a read processing command set that defines a read processing procedure, and a page other than the specific page includes a command set other than the read processing command set. Command set is stored,
The command set acquisition step includes a step of reading a command set stored in the specific page of the flash memory at startup,
The control step reads a command set stored in a page other than the specific page using the command set of the read process included in the command set read by the command set acquisition step, and stores the memory Including storing in the device;
It is characterized by that.
A flash memory control method according to a fifth aspect of the present invention includes:
A command set acquisition step for acquiring a command set, which is a series of instructions that define a processing procedure for controlling the flash memory;
A command set holding step for holding the command set in a storage device;
A control step of controlling the flash memory using a command set held in the storage device in response to a command from a host system that uses the flash memory as a storage medium;
The command set acquisition step includes a step of acquiring a command set of read processing defining a procedure of read processing stored in advance in the external storage device from an external storage device at startup,
The flash memory stores a command set other than the command set for the reading process,
The control step includes a step of reading a command set stored in the flash memory using the command set of the reading process acquired by the command set acquisition step, and storing the command set in the storage device.
It is characterized by that.
本発明によれば、メモリコントローラは、制御対象となるフラッシュメモリに適したコマンドセットを、ROMやフラッシュメモリ自身から取得し、その取得したコマンドセットによってフラッシュメモリを制御するため、コマンドセットの仕様が異なる多品種のフラッシュメモリを制御できる。 According to the present invention, the memory controller acquires a command set suitable for the flash memory to be controlled from the ROM or the flash memory itself, and controls the flash memory with the acquired command set. Different types of flash memory can be controlled.
以下、図面に基づき、本発明の実施の形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。
FIG. 1 is a block diagram schematically showing a flash memory system 1 according to the present invention. As shown in FIG. 1, the flash memory system 1 includes a
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。 The flash memory system 1 is connected to the host system 4 via the external bus 13. The host system 4 includes a CPU (Central Processing Unit) for controlling the entire operation of the host system 4, a companion chip for transferring information to and from the flash memory system 1, and the like. The host system 4 may be various information processing apparatuses such as a personal computer and a digital still camera that process various types of information such as characters, sounds, and image information.
フラッシュメモリ2は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ2は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
The
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。 The memory cell array includes a plurality of memory cell groups and word lines. Each memory cell group includes a plurality of memory cells connected in series. The word line is for selecting a specific memory cell in the memory cell group. Data is copied between the selected memory cell and the register via the word line, that is, data is copied from the register to the selected memory cell, or data is copied from the selected memory cell to the register. .
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、上側のゲート、下側のゲートは、それぞれ、コントロールゲート、フローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。 A memory cell constituting the memory cell array is constituted by a MOS transistor having two gates. Here, the upper gate and the lower gate are referred to as a control gate and a floating gate, respectively. By injecting charges (electrons) into the floating gate or discharging charges (electrons) from the floating gate, data can be obtained. Is written or data is erased.
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子が注入される。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子が排出される。 Since the floating gate is surrounded by an insulator, the injected electrons are held for a long period of time. When electrons are injected into the floating gate, electrons are injected by applying a high voltage at which the control gate is at the high potential side. Further, when electrons are discharged from the floating gate, electrons are discharged by applying a high voltage at which the control gate is on the low potential side.
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。 Here, a state where electrons are injected into the floating gate is a write state, which corresponds to a logical value “0”. The state in which electrons are discharged from the floating gate is an erased state, which corresponds to a logical value “1”.
このようなフラッシュメモリ2のアドレス空間を図2に示す。フラッシュメモリ2のアドレス空間は、“ページ”と“ブロック”に基づいて分割されている。
Such an address space of the
ページは、フラッシュメモリ2にて行われるデータ読出動作及びデータ書込動作における処理単位である。ブロックは、フラッシュメモリ2にて行われるデータ消去動作における処理単位である。
A page is a processing unit in a data read operation and a data write operation performed in the
1つのページは、512バイトのユーザ領域25と、16バイトの冗長領域26とを含んでいる。ユーザ領域25は、ホストシステム4から供給されるユーザデータを格納する。
One page includes a 512-
冗長領域26は、エラーコレクションコード、対応論理ブロックアドレス、ブロックステータス(フラグ)等の付加データを記録するための領域である。
The
エラーコレクションコードは、ユーザ領域25に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
The error collection code is data for detecting and correcting an error included in the data stored in the
対応論理ブロックアドレスは、1つのブロックに含まれている少なくとも1つのユーザ領域25に有効なデータが格納されているとき、そのブロックが対応付けられている論理ブロックのアドレスを示す。
The corresponding logical block address indicates the address of the logical block with which the block is associated when valid data is stored in at least one
論理ブロックアドレスは、ホストシステム4から与えられるホストアドレスに基づいて決定されるブロックのアドレスである。一方、フラッシュメモリ2内における実際のブロックのアドレスは、物理ブロックアドレスと称される。
The logical block address is a block address determined based on the host address given from the host system 4. On the other hand, an actual block address in the
1つのブロックに含まれている全てのユーザ領域25に有効なデータが格納されていないときには、そのブロックに含まれている冗長領域26に、対応論理ブロックアドレスは格納されていない。
When valid data is not stored in all
従って、冗長領域26に対応論理ブロックアドレスが格納されているか否かを判定することにより、その冗長領域26が含まれているブロックにてデータが消去されたか否かを判定することができる。冗長領域26に対応論理ブロックアドレスが格納されていないとき、そのブロックは、データが消去された状態となっている。
Therefore, by determining whether or not the corresponding logical block address is stored in the
1つのブロックは、32個のページを含んでいる。フラッシュメモリ2では、データの上書きができない。このため、1つのページに格納されたデータのみを書き換えるときであっても、そのページが含まれたブロック内の全ページに格納されたデータが、書き換えられなければならない。
One block includes 32 pages. In the
1つのブロック内の全ページから読み出されたデータの少なくとも一部が変更された後、そのデータは、消去されているブロックの1つに、ブロック単位で書き込まれなければならない。 After at least a portion of the data read from all pages in a block has been changed, the data must be written on a block basis to one of the erased blocks.
上記のようにデータを書き換えるにあたっては、書き換えられたデータは、以前に格納されていたブロックとは異なるブロックに書き込まれる。このため、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、フラッシュメモリ2にてデータが書き換えられる毎に、動的に変化する。
In rewriting data as described above, the rewritten data is written in a block different from the previously stored block. For this reason, the correspondence relationship between the logical block address and the physical block address dynamically changes every time data is rewritten in the
従って、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各ページの冗長領域26に記憶されている対応論理ブロックアドレスに基づいて作成される。なお、このような動的なアドレス管理手法は、フラッシュメモリを用いたメモリシステムでは一般的に行われている手法である。
Therefore, it is necessary to manage the correspondence between the logical block address and the physical block address, and this correspondence is usually managed by the address conversion table. This address conversion table is created based on the corresponding logical block address stored in the
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域26には、不良ブロックであることを示すブロックステータスが書き込まれる。
The block status is a flag indicating whether the block is good or bad. A block in which data cannot be normally written is determined as a defective block, and a block status indicating a defective block is written in the
このようなフラッシュメモリ2は、コントローラ3から、データ、アドレス情報、ステータス情報、内部コマンド等を受信して、データの読出処理、書込処理、ブロック消去処理、転送処理等の各処理を行う。
The
ここで、内部コマンドとは、コントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、コントローラ3からの内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
Here, the internal command is a command for the
コマンドセットは、フラッシュメモリ2に対する処理を実行するための、一連の内部コマンドの実行手順を定義するものである。コマンドセットにより定義される処理には、例えば、読出処理、書込処理、消去処理等がある。このコマンドセットに従って、コントローラ3は、フラッシュメモリ2に対して内部コマンド、アドレス情報、データ等を供給する。
The command set defines a sequence of execution of a series of internal commands for executing processing for the
本実施の形態に係るフラッシュメモリ2は、後述するオートリード処理によって読み出される特定のページに、読出処理の手順を定義するコマンドセット、フラッシュメモリ2のメーカや各種仕様を示すデバイス情報、他の処理(読出処理以外の処理)を定義するコマンドセットが格納されたアドレス等を予め格納する。このコマンドセットは、例えば、フラッシュメモリ2の製造検査時に予め当該ページに書き込まれるものとする。
The
コントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
As shown in FIG. 1, the
マイクロプロセッサ6は、ROM12やワークエリア8に記録されたプログラムに従って、コントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをワークエリア8から読み出してフラッシュメモリインターフェースブロック10に供給し、フラッシュメモリインターフェースブロック10に処理を実行させる。また、マイクロプロセッサ6は、ROM12に予め格納されたプログラムに従い、オートリード機能を実現する。なお、オートリード機能とは、コマンド及びアドレスを与えることなくフラッシュメモリの特定のページに格納されているデータを読み出す機能である。
The
ホストインターフェースブロック7は、ホストシステム4との間の、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。すなわち、フラッシュメモリシステム1とホストシステム4は、外部バス13を介して相互に接続される。かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
The
より詳細には、ホストインターフェースブロック7は、ホストシステム4より供給されるホストアドレス及び外部コマンドを一時的に格納するコマンドレジスタ、書き込み又は読み出しを行うデータのサイズを格納するセクタ数レジスタ、書き込み又は読み出しを行うデータの論理アドレスを格納するLBA(Logical Block Addressing)レジスタ、等を有する。そして、これらのレジスタを介してホストシステム4との情報の授受を行う。
More specifically, the
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
The
バッファ9は、フラッシュメモリ2から読み出したデータ及びフラッシュメモリ2に書き込むデータを一時的に保持する。
The
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。より詳細には、フラッシュメモリインターフェースブロック10は、アドレスレジスタ、コマンドレジスタ、命令処理ブロック等から構成される。
The flash
アドレスレジスタは、アクセス先の物理ブロックアドレスを格納するためのレジスタである。物理ブロックアドレスは、フラッシュメモリインターフェースブロック10が実行する一連の制御処理でアクセスするフラッシュメモリ2内のブロックを指定するためのアドレス情報である。
The address register is a register for storing the physical block address of the access destination. The physical block address is address information for designating a block in the
コマンドレジスタは、コマンドセットを構成する一連の内部コマンドを格納するためのレジスタである。このコマンドセットには、コントローラ3内での処理を指示するコマンドや、フラッシュメモリ2への内部コマンド、アドレス情報等の供給を指示するコマンドが含まれている。
The command register is a register for storing a series of internal commands constituting the command set. This command set includes a command for instructing processing in the
命令処理ブロックは、コマンドレジスタに格納されている一連の内部コマンドに従って、フラッシュメモリ2を制御するための内部コマンド、アドレス情報等を出力する。
The instruction processing block outputs an internal command for controlling the
フラッシュメモリインターフェースブロック10は、命令処理ブロックによって出力される内部コマンド、アドレス情報等をフラッシュメモリ2に供給することにより、フラッシュメモリ2に読み出し、書き込み等を実行させる。
The flash
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加されるエラーコレクションコードを生成するとともに、読み出しデータに付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する。
The
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。具体的には、ROM12は、例えば、オートリード機能、アドレス変換テーブルの作成等の処理手順を定義するプログラムを格納する。
The
次に、このように構成されるフラッシュメモリシステム1の起動時に実行されるコマンドセット取得処理の手順について、図3に示すフローチャートを参照して説明する。 Next, the procedure of command set acquisition processing executed when the flash memory system 1 configured as described above is started will be described with reference to the flowchart shown in FIG.
コマンドセット取得処理は、フラッシュメモリシステム1の起動時に、マイクロプロセッサ6により実行される。
The command set acquisition process is executed by the
コマンドセット取得処理が開始されると、マイクロプロセッサ6は、オートリード機能を用いて、フラッシュメモリ2の特定のページから、読出処理の手順を定義するコマンドセットと、他の処理(読出処理以外の処理)を定義するコマンドセットが格納されたアドレスとを取得する(ステップS100)。
When the command set acquisition process is started, the
次に、マイクロプロセッサ6は、取得した読出処理のコマンドセットをワークエリア8に格納する(ステップS110)。
Next, the
そして、マイクロプロセッサ6は、取得した読出処理のコマンドセットとアドレスとを用いて、フラッシュメモリ2から他の処理(読出処理以外の処理)の手順を定義するコマンドセットを取得する(ステップS120)。
Then, the
マイクロプロセッサ6は、取得した他の処理の手順を定義するコマンドセットをワークエリア8に格納し(ステップS130)、コマンドセット取得処理を終了する。
The
コントローラ3は、上記のコマンドセット取得処理を実行することにより、制御対象となるフラッシュメモリ2に適したコマンドセットを得ることができる。そして、コントローラ3の有するマイクロプロセッサ6は、以後、ホストシステム4からの要求に応じて、処理に必要なコマンドセットをワークエリア8から読み出し、コマンドセットに含まれる一連のコマンドを順次実行することにより、読出処理、書込処理等の所望の処理を実行させる。
The
以上で説明したように、本実施の形態のフラッシュメモリシステム1におけるコントローラ3は、起動時に、フラッシュメモリ2に予め書き込まれた当該フラッシュメモリ2に適したコマンドセットを取得する。そして取得したコマンドセットを用いて以後の処理を実行する。このため、コントローラ3は、汎用性が高く、様々な品種のフラッシュメモリ2を制御することが可能である。
As described above, the
また、本実施の形態のフラッシュメモリシステム1におけるフラッシュメモリ2は、オートリード機能によって読み出される特定のページに、読出処理のコマンドセットと、他の処理のコマンドセットが格納されているアドレスとを格納し、他のコマンドセットはオートリード機能では読み出せないページに格納する。そして、コントローラ3はオートリード機能で取得した読出処理のコマンドセットを利用して、他の処理のコマンドセットを取得する。
このような手法により、オートリード機能によって読み出せるページに全ての処理のコマンドセットを格納できない場合(コマンドセットの種類が多い場合等)であっても、全ての処理のコマンドセットを取得して、以後の処理を実行することができる。
Further, the
Even if the command set for all processes cannot be stored in a page that can be read by the auto-read function, the command set for all processes is acquired. Subsequent processing can be executed.
上記実施の形態では、フラッシュメモリ2のオートリード機能によって読み出せるページに格納されているコマンドセットは、読出処理のもののみであったが、当該ページの容量が許す限り、他の処理のコマンドセットも格納してもよい。可能であれば、全てのコマンドセットを当該ページに格納してもよい。
In the above embodiment, the command set stored in the page that can be read by the auto-read function of the
また、上記実施の形態では、起動時に、オートリード機能によって、フラッシュメモリ2の特定のページから読出処理のコマンドセットを読み出すようにした。しかし、フラッシュメモリシステム1は、図4に示すように、フラッシュメモリ2及びコントローラ3の他に、外部ROM30を備え、コントローラ3の内部に外部ROMインターフェースブロック15を備えるように構成し、コントローラ3は、起動時に、外部ROM30に予め格納された読出処理のコマンドセットを読み込んで、そのコマンドセットを用いてフラッシュメモリ2が格納している他の処理のコマンドセットを取得するようにしてもよい。
In the above embodiment, the command set for the reading process is read from a specific page of the
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
15 外部ROMインターフェースブロック
25 ユーザ領域
26 冗長領域
30 外部ROM
1
13
Claims (5)
コマンドセットを保持するコマンドセット保持手段と、
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、前記フラッシュメモリに実行させるべき処理に対応するコマンドセットを前記コマンドセット保持手段から取得し、該コマンドセットに含まれる命令を実行する制御手段とを備え、
前記フラッシュメモリ内の特定のページには、少なくとも読出処理の手順を定義した読出処理のコマンドセットを含むコマンドセットが格納され、前記特定のページ以外のページには、前記読出処理のコマンドセット以外のコマンドセットが格納されており、
前記コマンドセット取得手段は、起動時に、前記フラッシュメモリの前記特定のページに格納されているコマンドセットを読み出し、
前記制御手段は、前記コマンドセット取得手段が読み出したコマンドセットに含まれる前記読出処理のコマンドセットを用いて、前記フラッシュメモリの前記特定のページ以外のページに格納されているコマンドセットを読み出して、前記コマンドセット保持手段に格納する、
ことを特徴とするメモリコントローラ。 Command set acquisition means for acquiring a command set, which is a series of instructions that define a processing procedure for controlling the flash memory;
And command set holding means for holding a set of commands,
In response to an instruction from a host system that uses the flash memory as a storage medium, a command set corresponding to a process to be executed by the flash memory is acquired from the command set holding unit, and an instruction included in the command set is acquired. and control means for executing,
A specific page in the flash memory stores a command set including at least a read processing command set that defines a read processing procedure, and a page other than the specific page includes a command set other than the read processing command set. Command set is stored,
The command set acquisition means reads a command set stored in the specific page of the flash memory at startup,
The control unit reads a command set stored in a page other than the specific page of the flash memory using the command set of the read process included in the command set read by the command set acquisition unit, Storing in the command set holding means;
A memory controller characterized by that.
コマンドセットを保持するコマンドセット保持手段と、
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、前記フラッシュメモリに実行させるべき処理に対応するコマンドセットを前記コマンドセット保持手段から取得し、該コマンドセットに含まれる命令を実行する制御手段とを備え、
前記コマンドセット取得手段は、起動時に、外部の記憶装置から、当該外部の記憶装置に予め格納されている読出処理の手順を定義した読出処理のコマンドセットを取得し、
前記フラッシュメモリには、前記読出処理のコマンドセット以外のコマンドセットが格納され、
前記制御手段は、前記コマンドセット取得手段が取得した前記読出処理のコマンドセットを用いて、前記フラッシュメモリに格納されているコマンドセットを読み出して、前記コマンドセット保持手段に格納する、
ことを特徴とするメモリコントローラ。 Command set acquisition means for acquiring a command set, which is a series of instructions that define a processing procedure for controlling the flash memory;
Command set holding means for holding the command set;
In response to an instruction from a host system that uses the flash memory as a storage medium, a command set corresponding to a process to be executed by the flash memory is acquired from the command set holding unit, and an instruction included in the command set is acquired. Control means to execute,
The command set acquisition unit, when starting, an external storage device, acquires the command set of the read process that defines the procedure for read processing that is previously stored in the external storage device,
The flash memory, command set other than the command set of the reading process is stored,
Wherein said control means uses the command set of the read processing of the command set acquisition unit has acquired, and read out the command set stored in the flash memory is stored in the command set hold means,
Memory controller you, characterized in that.
コマンドセットを記憶装置に保持するコマンドセット保持ステップと、
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応じて、前記記憶装置に保持されているコマンドセットを用いて前記フラッシュメモリを制御する制御ステップとを備え、
前記フラッシュメモリ内の特定のページには、少なくとも読出処理の手順を定義した読出処理のコマンドセットを含むコマンドセットが格納され、前記特定のページ以外のページには、前記読出処理のコマンドセット以外のコマンドセットが格納されており、
前記コマンドセット取得ステップは、起動時に、前記フラッシュメモリの前記特定のページに格納されているコマンドセットを読み出すステップを含み、
前記制御ステップは、前記コマンドセット取得ステップにより読み出されたコマンドセットに含まれる前記読出処理のコマンドセットを用いて、前記特定のページ以外のページに格納されているコマンドセットを読み出して、前記記憶装置に格納するステップを含む、
ことを特徴とするフラッシュメモリの制御方法。 A command set acquisition step for acquiring a command set, which is a series of instructions for defining a processing procedure for controlling the flash memory;
A command set holding step that holds the storage device the command set,
A control step of controlling the flash memory using a command set held in the storage device in response to a command from a host system that uses the flash memory as a storage medium ;
A specific page in the flash memory stores a command set including at least a read processing command set that defines a read processing procedure, and a page other than the specific page includes a command set other than the read processing command set. Command set is stored,
The command set acquisition step includes a step of reading a command set stored in the specific page of the flash memory at startup,
The control step reads a command set stored in a page other than the specific page using the command set of the read process included in the command set read by the command set acquisition step, and stores the memory Including storing in the device;
A method for controlling a flash memory.
コマンドセットを記憶装置に保持するコマンドセット保持ステップと、 A command set holding step for holding the command set in a storage device;
前記フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応じて、前記記憶装置に保持されているコマンドセットを用いて前記フラッシュメモリを制御する制御ステップとを備え、 A control step of controlling the flash memory using a command set held in the storage device in response to a command from a host system that uses the flash memory as a storage medium,
前記コマンドセット取得ステップは、起動時に、外部の記憶装置から、当該外部の記憶装置に予め格納されている読出処理の手順を定義した読出処理のコマンドセットを取得するステップを含み、 The command set acquisition step includes a step of acquiring a command set of read processing defining a procedure of read processing stored in advance in the external storage device from an external storage device at startup,
前記フラッシュメモリには、前記読出処理のコマンドセット以外のコマンドセットが格納され、 The flash memory stores a command set other than the command set for the reading process,
前記制御ステップは、前記コマンドセット取得ステップにより取得された前記読出処理のコマンドセットを用いて、前記フラッシュメモリに格納されているコマンドセットを読み出して、前記記憶装置に格納するステップを含む、 The control step includes a step of reading a command set stored in the flash memory using the command set of the reading process acquired by the command set acquisition step, and storing the command set in the storage device.
ことを特徴とするフラッシュメモリの制御方法。 A method for controlling a flash memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005215659A JP4177360B2 (en) | 2005-07-26 | 2005-07-26 | Memory controller, flash memory system, and flash memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005215659A JP4177360B2 (en) | 2005-07-26 | 2005-07-26 | Memory controller, flash memory system, and flash memory control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007034581A JP2007034581A (en) | 2007-02-08 |
JP4177360B2 true JP4177360B2 (en) | 2008-11-05 |
Family
ID=37793785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005215659A Expired - Fee Related JP4177360B2 (en) | 2005-07-26 | 2005-07-26 | Memory controller, flash memory system, and flash memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4177360B2 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5229855B2 (en) * | 2007-03-29 | 2013-07-03 | 株式会社メガチップス | Memory system and computer system |
US8694750B2 (en) | 2008-12-19 | 2014-04-08 | Nvidia Corporation | Method and system for data structure management |
US9208108B2 (en) | 2008-12-19 | 2015-12-08 | Nvidia Corporation | Method and system for improved flash controller commands selection |
US8732350B2 (en) | 2008-12-19 | 2014-05-20 | Nvidia Corporation | Method and system for improving direct memory access offload |
US8683293B2 (en) | 2009-12-16 | 2014-03-25 | Nvidia Corporation | Method and system for fast two bit error correction |
US9594675B2 (en) | 2009-12-31 | 2017-03-14 | Nvidia Corporation | Virtualization of chip enables |
US9465728B2 (en) | 2010-11-03 | 2016-10-11 | Nvidia Corporation | Memory controller adaptable to multiple memory devices |
-
2005
- 2005-07-26 JP JP2005215659A patent/JP4177360B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007034581A (en) | 2007-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5021220B2 (en) | Nonvolatile memory device and multipage copyback method thereof | |
US7773420B2 (en) | Memory card system including NAND flash memory and SRAM/NOR flash memory, and data storage method thereof | |
JP4245585B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4373943B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4177360B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4544167B2 (en) | Memory controller and flash memory system | |
JP4843222B2 (en) | Semiconductor memory device control method, memory card, and host device | |
JP4661369B2 (en) | Memory controller | |
JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD | |
JP4177301B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP2007094639A (en) | Memory controller and flash memory system | |
JP4235624B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP2005316793A (en) | Flash memory system and control method of flash memory | |
JP4818453B1 (en) | Electronic device and data reading method | |
JP4194518B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4213140B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP2005292925A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP4697146B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2006178909A (en) | Memory controller, flash memory system and method for controlling flash memory | |
JP4304167B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP2005293177A (en) | Memory controller and flash memory system | |
JP3934659B1 (en) | Memory controller and flash memory system | |
JP4245594B2 (en) | Memory controller and flash memory system | |
JP2008077468A (en) | Memory controller, flash memory system with memory controller, and control method of flash memory | |
JP4273038B2 (en) | Memory controller, flash memory system, and flash memory data transfer method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080701 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080708 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080728 |
|
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: 20080812 |
|
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: 20080821 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110829 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |