JP4273038B2 - Memory controller, flash memory system, and flash memory data transfer method - Google Patents
Memory controller, flash memory system, and flash memory data transfer method Download PDFInfo
- Publication number
- JP4273038B2 JP4273038B2 JP2004150628A JP2004150628A JP4273038B2 JP 4273038 B2 JP4273038 B2 JP 4273038B2 JP 2004150628 A JP2004150628 A JP 2004150628A JP 2004150628 A JP2004150628 A JP 2004150628A JP 4273038 B2 JP4273038 B2 JP 4273038B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data transfer
- flash memory
- signal
- processing request
- 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 - Lifetime
Links
- 230000015654 memory Effects 0.000 title claims description 201
- 238000012546 transfer Methods 0.000 title claims description 99
- 238000000034 method Methods 0.000 title claims description 19
- 238000012545 processing Methods 0.000 claims description 102
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000013500 data storage Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 description 80
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 41
- 101000928956 Homo sapiens Activated CDC42 kinase 1 Proteins 0.000 description 41
- 101100524346 Xenopus laevis req-a gene Proteins 0.000 description 37
- 230000004044 response Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 230000002950 deficient Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Description
本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法に関する。 The present invention relates to a memory controller, a flash memory system, and a flash memory data transfer method.
半導体メモリは、メモリカードやシリコンディスクといったメモリシステムに用いられる。また、近年、この半導体メモリには、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種であり、電力が供給されていないときでも、データを保持することが要求される。 A semiconductor memory is used in a memory system such as a memory card or a silicon disk. In recent years, flash memories have been widely used as the semiconductor memory. A flash memory is a kind of nonvolatile memory, and is required to retain data even when power is not supplied.
特に、NAND型フラッシュメモリは、上記メモリシステムに多く用いられる。NAND型フラッシュメモリでは、複数のメモリセルを含んでおり、論理値”1”を示すデータが格納されているとき、各メモリセルは消去状態である。また、論理値”0”を示すデータが格納されているとき、各メモリセルは書き込み状態である。 In particular, NAND flash memories are often used in the memory system. The NAND flash memory includes a plurality of memory cells, and each memory cell is in an erased state when data indicating a logical value “1” is stored. Further, when data indicating a logical value “0” is stored, each memory cell is in a write state.
NAND型フラッシュメモリに含まれている複数のメモリセルは、それぞれ、他のメモリセルとは独立して、消去状態から書き込み状態へと変化させることができる。 Each of the plurality of memory cells included in the NAND flash memory can be changed from the erased state to the written state independently of the other memory cells.
これとは対照的に、各メモリセルは、他のメモリセルと独立して書き込み状態から消去状態へと変化させることができない。
このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般に、「ブロック消去」と称されている。
In contrast, each memory cell cannot change from a written state to an erased state independently of the other memory cells.
At this time, all of a predetermined number of memory cells called blocks are simultaneously erased. This collective erasure operation is generally called “block erase”.
NAND型フラッシュメモリに対する書き込み処理若しくは読み出し処理は、ページと称される予め定められた数のメモリ単位で行われる。消去処理の単位であるブロックは複数のページで構成される。 The writing process or the reading process for the NAND flash memory is performed in a predetermined number of memory units called pages. A block which is a unit of erasure processing is composed of a plurality of pages.
また、フラッシュメモリに書き込まれるデータは、一旦、フラッシュメモリ内のレジスタに保持された後、レジスタからメモリセルアレイを構成する各メモリセルに複写される。この複写を行っている間、フラッシュメモリは、ビジー状態となり、他の処理を受け付けない。このため、このビジー状態が解除されるまで、フラッシュメモリにアクセスすることができない。 Data written to the flash memory is once held in a register in the flash memory, and then copied from the register to each memory cell constituting the memory cell array. During this copying, the flash memory is busy and does not accept other processing. For this reason, the flash memory cannot be accessed until the busy state is released.
レジスタからメモリセルへの複写又はメモリセルからレジスタへの複写を実行するには、メモリセルに高電圧を印加して電子を注入しなければならない。このため、複写の実行によるビジー状態の期間は長くなり、書き込み処理の処理効率が低下する。 In order to perform copying from a register to a memory cell or from a memory cell to a register, a high voltage must be applied to the memory cell to inject electrons. For this reason, the busy state period due to the execution of copying becomes longer, and the processing efficiency of the writing process decreases.
このような問題を解決するため、複数チップのフラッシュメモリを備え、ビジー状態が解除されていることが検出されたフラッシュメモリから順に処理を行うようにしたものがある(例えば、特許文献1参照)。
しかし、従来のメモリでは、ビジー状態が解除されたフラッシュメモリに対して順次、書き込み処理や読み出し処理が開始されるので、処理時間は短縮されるものの、フラッシュメモリで処理が実行されるときに発生するビジー期間にばらつきが生じる。このばらつきにより、各フラッシュメモリにおける処理の進行状況に偏りが生じる。この状態を放置して書き込み処理を行った場合、進行の早いフラッシュメモリに対して優先的に書き込み処理が行われ、各フラッシュメモリに書き込まれるデータの順序に乱れが生じる。 However, in the conventional memory, write processing and read processing are sequentially started with respect to the flash memory whose busy state has been released, so the processing time is shortened, but occurs when processing is executed in the flash memory. Variation occurs in the busy period. Due to this variation, the progress of processing in each flash memory is biased. If the writing process is performed while this state is left as it is, the writing process is preferentially performed on the flash memory that progresses quickly, and the order of data written to each flash memory is disturbed.
本発明は、このような従来の問題点に鑑みてなされたもので、フラッシュメモリにおける処理順序に偏りが生じるのを回避することが可能なメモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法を提供することを目的とする。 The present invention has been made in view of such conventional problems, and provides a memory controller, a flash memory system, and a flash memory data transfer method capable of avoiding a bias in processing order in the flash memory. The purpose is to provide.
この目的を達成するため、本発明の第1の観点に係るメモリコントローラは、
データを記憶する複数のフラッシュメモリとの間でデータ転送を行うメモリコントローラにおいて、
前記複数のフラッシュメモリとの間でデータ転送を行うためのデータを記憶するデータ記憶部と、
前記データ記憶部と前記各フラッシュメモリとの間に、前記各フラッシュメモリに対応して備えられ、データ転送を要求する処理要求信号を送信し、データ転送を許可する許可信号を受信して、対応するフラッシュメモリと前記データ記憶部との間でデータ転送を行う複数のデータ転送部と、
前記複数のデータ転送部から送信された複数の処理要求信号を受信して、前記各データ転送部によるデータ転送が順番に行われるように送信タイミングを設定した許可信号を、前記各データ転送部に送信する転送制御部と、を備えたことを特徴とする。
In order to achieve this object, a memory controller according to the first aspect of the present invention provides:
In a memory controller that transfers data to and from multiple flash memories that store data,
A data storage unit for storing data for performing data transfer with the plurality of flash memories;
Between the data storage unit and each flash memory, provided corresponding to each flash memory, transmitting a processing request signal requesting data transfer, receiving a permission signal permitting data transfer, and corresponding A plurality of data transfer units that perform data transfer between the flash memory and the data storage unit;
A plurality of processing request signals transmitted from the plurality of data transfer units are received, and a permission signal in which a transmission timing is set so that data transfer by each data transfer unit is performed in order is sent to each data transfer unit. And a transfer control unit for transmission.
前記各フラッシュメモリは、ページ単位でデータの入出力が行われるものであって、
前記データ記憶部は、前記転送対象のデータを保持するものとして、前記各フラッシュメモリの各ページに対応する量のデータ保持が可能な複数のデータ保持部が備えられたものであり、
前記各データ保持部は、データが供給されたものから順に、データが排出されるように構成されたものであってもよい。
Each flash memory performs data input / output in units of pages,
The data storage unit is provided with a plurality of data holding units capable of holding an amount of data corresponding to each page of each flash memory as holding the data to be transferred,
Each of the data holding units may be configured such that data is discharged in order from the data supplied.
前記転送制御部は、前記データ記憶部と前記各フラッシュメモリとの間で行われるデータ転送の順序を判別し、前記順序が後と判別したデータ転送部からの処理要求信号を、前記順序が先と判別したデータ転送部からの処理要求信号よりも先に受信したときは、前記順序が先と判別したデータ転送部に許可信号を送信して前記対応するフラッシュメモリとの間でデータ転送が行われてから、前記順序が後と判別したデータ転送部に許可信号を送信するように、前記各データ転送部への許可信号の送信タイミングを設定するようにしてもよい。 The transfer control unit determines the order of data transfer performed between the data storage unit and each of the flash memories, and the processing request signal from the data transfer unit that is determined to be later is the processing request signal from the first Is received prior to the processing request signal from the data transfer unit determined to be transmitted, the permission signal is transmitted to the data transfer unit determined to be the first in order and data transfer is performed between the corresponding flash memory. After that, the transmission timing of the permission signal to each data transfer unit may be set so that the permission signal is transmitted to the data transfer unit determined to be later in the order.
前記転送制御部は、前記フラッシュメモリとの間でデータ転送を行ったデータ転送部が次にデータ転送を行うべき順序を最後尾としてもよい。 The transfer control unit may set the order in which the data transfer unit that has performed data transfer with the flash memory is to perform data transfer next is the last.
本発明の第2の観点に係るフラッシュメモリシステムは、
データを記憶する複数のフラッシュメモリと、
請求項1乃至4のいずれか1項に記載のメモリコントローラと、を備えたことを特徴とする。
A flash memory system according to a second aspect of the present invention includes:
A plurality of flash memories for storing data;
And a memory controller according to any one of
本発明の第3の観点に係るフラッシュメモリのデータ転送方法は、
データを記憶する複数のフラッシュメモリとの間でデータ転送を行うために、前記各フラッシュメモリに対応して備えられた複数のデータ転送部から、データ転送を要求する処理要求信号を受信するステップと、
前記各フラッシュメモリとのデータ転送が順番に行われるように、前記データ転送を許可するための許可信号を送信する送信タイミングを設定するステップと、
前記送信タイミングに従って、各データ転送部に前記許可信号を送信するステップと、を備えたことを特徴とする。
A data transfer method for a flash memory according to a third aspect of the present invention is:
Receiving a processing request signal for requesting data transfer from a plurality of data transfer units provided corresponding to each of the flash memories in order to perform data transfer with a plurality of flash memories storing data; ,
Setting a transmission timing for transmitting a permission signal for permitting the data transfer so that data transfer with each of the flash memories is performed in order;
Transmitting the permission signal to each data transfer unit according to the transmission timing.
本発明によれば、フラッシュメモリにおける処理順序に偏りが生じるのを回避することができる。 According to the present invention, it is possible to avoid a deviation in processing order in the flash memory.
以下、本発明の実施の形態に係るメモリ装置を図面を参照して説明する。
本実施形態に係るフラッシュメモリシステムの構成を図1に示す。
本実施形態に係るフラッシュメモリシステム1は、通常、ホストシステム2に着脱可能に装着されて使用され、ホストシステム2に対して一種の外部記憶装置として用いられるものである。
Hereinafter, a memory device according to an embodiment of the present invention will be described with reference to the drawings.
The configuration of the flash memory system according to the present embodiment is shown in FIG.
The
ホストシステム2は、コンピュータ、デジタルスチルカメラのように、文字、音声、あるいは画像情報等の種々の情報を処理するものである。ホストシステム2は、フラッシュメモリシステム1に論理アドレスを与えてフラッシュメモリ10にアクセスする。
The
フラッシュメモリシステム1は、フラッシュメモリ10と、コントローラ20と、を備える。フラッシュメモリ10は、ハードディスクの代わりになるストレージデバイスへの用途として開発されたものであり、NAND型フラッシュメモリからなる複数のチップを備える。
The
このNAND型フラッシュメモリは、不揮発性メモリであり、一般的には、レジスタとメモリセルアレイとによって構成され、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。 The NAND flash memory is a nonvolatile memory, and generally includes a register and a memory cell array. Data is copied between the register and the memory cell to write or read data.
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。 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 on 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”.
一般的なNAND型フラッシュメモリのメモリセルアレイは、例えば、図2(a)に示すように、1ブロックが32ページ(P0〜P31)で構成されている。各ページは、512バイトのユーザ領域と16バイトの冗長領域とで構成される。 In a memory cell array of a general NAND flash memory, for example, as shown in FIG. 2A, one block is composed of 32 pages (P0 to P31). Each page includes a 512-byte user area and a 16-byte redundant area.
但し、NAND型フラッシュメモリの構成は仕様によって異なる。記憶容量が大きい場合、NAND型フラッシュメモリは、例えば、図2(b)に示すように、1ブロックが64ページ(P0〜P63)、各ページが2048バイトのユーザ領域と64バイトの冗長領域とで構成される。 However, the configuration of the NAND flash memory differs depending on the specifications. When the storage capacity is large, for example, as shown in FIG. 2B, the NAND flash memory has 64 pages (P0 to P63) for one block, a user area of 2048 bytes for each page, and a redundant area of 64 bytes. Consists of.
ユーザ領域は、主に、ホストシステム2から供給されるデータを記憶するための領域であり、冗長領域は、エラーコレクションコード、対応論理ブロックアドレス、ブロックステータス(フラグ)等の付加データを記録するための領域である。
The user area is mainly an area for storing data supplied from the
エラーコレクションコードは、ユーザ領域に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。 The error collection code is data for detecting and correcting an error included in the data stored in the user area.
対応論理ブロックアドレスは、データが格納されているブロックに対応するアドレスを示すデータである。 The corresponding logical block address is data indicating an address corresponding to a block in which data is stored.
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域には、不良ブロックであることを示すフラグが書き込まれる。 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 flag indicating a defective block is written in the redundant area.
このように構成されたNAND型フラッシュメモリでは、ランダムアクセスを行うことができず、データの書き込みと読み出しとは、レジスタを介してページ単位で行われ、消去はブロック単位で行われる。また、NAND型フラッシュメモリでは、データの上書をすることができないので、データは、データが消去されている領域に書き込まれる。 In the NAND flash memory configured as described above, random access cannot be performed, data writing and reading are performed in units of pages via a register, and erasing is performed in units of blocks. In addition, since data cannot be overwritten in the NAND flash memory, the data is written in an area where the data has been erased.
NAND型フラッシュメモリは、このような特徴を有するため、データの書き換えを行う場合、通常、データが消去されているブロックに新たなデータが書き込まれ、書き換え前の古いデータが書き込まれているブロックのデータがブロック単位で消去される。このようなデータの書き換えを行った場合、書き換え後のデータは、書き換え前とは異なるブロックに書き込まれる。 Since the NAND flash memory has such a feature, when data is rewritten, normally, new data is written in a block from which data has been erased, and old data before rewriting is written in the block. Data is erased in blocks. When such data rewriting is performed, the rewritten data is written in a different block from that before rewriting.
このため、ホストシステム2がフラッシュメモリシステム1に与える論理アドレスと、フラッシュメモリ10内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書き換える毎に動的に変化する。
For this reason, the correspondence between the logical address that the
従って、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する必要があり、通常、この対応関係は、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各ページの冗長領域に記憶されている対応論理ブロックアドレスに基づいて作成される。 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 redundant area of each page.
尚、ブロックにデータが格納されていない場合、フラッシュメモリ10の冗長領域には、このブロックに対応する対応論理ブロックアドレスは格納されない。このため、この対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済みブロックであるか否かを判断することができる。
When no data is stored in the block, the corresponding logical block address corresponding to this block is not stored in the redundant area of the
ブロックステータスは、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域には、不良ブロックであることを示すフラグが書き込まれる。 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 flag indicating a defective block is written in the redundant area.
図1に戻り、コントローラ20は、ホストインターフェース21と、マイクロプロセッサ22と、ワークエリア23と、バッファ24と、ECCブロック25と、フラッシュメモリインターフェース26と、を備える。
Returning to FIG. 1, the
ホストインターフェース21は、ホストシステム2との間でデータ、アドレス情報、ステータス情報及び外部コマンド情報等の授受を行うための機能ブロックであり、動作設定レジスタ、タスクファイルレジスタ、エラーレジスタ等を備える(いずれも図示せず)。
The
このうち、タスクファイルレジスタは、ホストシステム2より供給されるホストアドレス及び外部コマンドを一時的に格納するためのレジスタである。エラーレジスタは、エラーが発生した場合にデータがセットされるレジスタである。
Among these, the task file register is a register for temporarily storing a host address and an external command supplied from the
ホストシステム2に装着されたフラッシュメモリシステム1は、外部バス31を介してホストシステム2に接続される。ホストインターフェース21は、ホストシステム2からデータ等が供給されると、フラッシュメモリシステム1の入口として、供給されたデータ等をコントローラ20の内部に取り込む。
The
また、フラッシュメモリシステム1がホストシステム2にデータ等を供給する場合、ホストインターフェース21は、データ等をホストシステム2に供給するフラッシュメモリシステム1の出口として機能する。
When the
マイクロプロセッサ22は、コントローラ20を構成する各機能ブロック全体の動作を制御するための機能ブロックである。
The
ワークエリア23は、フラッシュメモリ10の制御に必要なデータを一時的に格納する作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。ワークエリア23は、必要なデータとして、論理ブロックアドレスと物理ブロックアドレスとの対応関係を管理する前述のアドレス変換テーブルも格納する。
The
ECCブロック25は、フラッシュメモリ10に書き込むデータに付加されるエラーコレクションデータを生成するとともに、読み出したデータに付加されたエラーコレクションコードに基づいて、読み出したデータの誤り検出を行い、検出した誤りを訂正すための機能ブロックである。
The
バッファ24は、フラッシュメモリ10から読み出されたデータをホストシステム2の受け取り準備ができるまで保持し、また、フラッシュメモリ10に書き込むデータを、フラッシュメモリ10への書き込み準備ができるまで一時的に保持するための機能ブロックである。
The
バッファ24は、転送対象のデータを保持するものとして、複数のデータ保持部を備える。各データ保持部は、フラッシュメモリ10の各チップの1ページ当たりのデータを保持するだけの領域が割り当てられる。
The
例えば、フラッシュメモリ10の各チップの1ページが512バイトのデータによって構成されたものである場合、マイクロプロセッサ22は、各データ保持部に、この512バイトのデータを保持することが可能な領域を割り当てる。
For example, when one page of each chip of the
また、1ページが2048バイトのデータによって構成されたものである場合、マイクロプロセッサ22は、各データ保持部に、2048バイトのデータを保持することが可能な領域を割り当てる。データ量が1ページ分を越える場合、マイクロプロセッサ22は、バッファ24に、各ページに対応する複数のデータ保持部を設定する。
When one page is composed of 2048 bytes of data, the
各データ保持部は、ページ単位でデータが供給され、データが供給されたデータ保持部から順に、データを排出するように構成されている。マイクロプロセッサ22は、このようなデータ保持部に関する制御を行う。
Each data holding unit is configured so that data is supplied in units of pages, and data is discharged in order from the data holding unit to which the data is supplied. The
フラッシュメモリインターフェース26は、内部バス32を介して、フラッシュメモリ10との間でデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行うために備えられた機能ブロックである。フラッシュメモリインターフェース26は、内部コマンドを実行する際に必要な情報を設定するための複数のレジスタを備える(図示せず)。
The
ここで、内部コマンドとは、コントローラ20がフラッシュメモリ10に処理の実行を指示するためのコマンドであり、フラッシュメモリ10は、コントローラ20からの内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム2がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
Here, the internal command is a command for the
フラッシュメモリインターフェース26は、図3に示すように、インターフェース26−0,26−1と、監視制御部27と、を備える。インターフェース26−0,26−1は、フラッシュメモリ10との間で独立してデータ等の転送を行う複数系統のインターフェースとして備えられたものである。
As shown in FIG. 3, the
インターフェース26−0は、フラッシュメモリ10のチップ10−0に対応して備えられ、NAND型フラッシュメモリに対応するチップ10−0との間でデータ転送を行うCH(チャンネル)0のインターフェースである。
The interface 26-0 is an interface of CH (channel) 0 that is provided corresponding to the chip 10-0 of the
インターフェース26−0は、チップ10−0との間でデータ転送を行う場合、図4に示すように、監視制御部27に、データ転送を要求する処理要求信号REQ0を送信する。そして、インターフェース26−0は、処理要求信号REQ0に応答して監視制御部27から送信された許可信号ACK0’を受信して、チップ10−0に対して書き込み処理又は読み出し処理を行うためのデータを転送する。
When performing data transfer with the chip 10-0, the interface 26-0 transmits a processing request signal REQ0 for requesting data transfer to the
インターフェース26−1は、フラッシュメモリ10のチップ10−1に対応して備えられ、NAND型フラッシュメモリに対応するチップ10−1との間でデータ転送を行うCH1のインターフェースである。
The interface 26-1 is a CH1 interface that is provided corresponding to the chip 10-1 of the
インターフェース26−1は、チップ10−1との間でデータ転送を行う場合、図4に示すように、監視制御部27に、データ転送を要求する処理要求信号REQ1を送信する。そして、インターフェース26−1は、処理要求信号REQ1に応答して監視制御部27から送信された許可信号ACK1’を受信して、チップ10−1に対して書き込み処理又は読み出し処理を行うためのデータを転送する。
When performing data transfer with the chip 10-1, the interface 26-1 transmits a processing request signal REQ1 for requesting data transfer to the
監視制御部27は、インターフェース26−0,26−1から送信された2つの処理要求信号REQ0,REQ1を受信して、インターフェース26−0,26−1によるデータ転送が順番に行われるように送信タイミングを設定した許可信号ACK0’,ACK1’を、それぞれ、インターフェース26−0,26−1に送信するものである。
The
監視制御部27は、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ0,REQ1を受信すると、インターフェース26−0,26−1のうち、いずれが先に、それぞれ、チップ10−0,10−1との間でデータ転送を行うべきか、その順序を判別する。
When the
監視制御部27は、例えば、インターフェース26−0によるデータ転送の方が先であると判別した場合に、インターフェース26−1から処理要求信号REQ1を受信したときは、インターフェース26−0から処理要求信号REQ0を受信するまで待機する。監視制御部27は、処理要求信号REQ0を受信すると、処理要求信号REQ0に対応した処理要求信号REQ0’をバッファ24に送信する。
For example, when the
バッファ24は、処理要求信号REQ0’に応答して許可信号ACK0を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK0を受信してインターフェース26−0に許可信号ACK0’を送信する。監視制御部27は、インターフェース26−0に許可信号ACK0’を送信すると、インターフェース26−0が次にデータ転送を行う順序をインターフェース26−1よりも後として記憶する。
The
そして、監視制御部27は、次にデータ転送を行う順序がインターフェース26−1になった後、つまり、インターフェース26−0に許可信号ACK0’を送信した後、処理要求信号REQ1に対応した処理要求信号REQ1’をバッファ24に送信する。
バッファ24は、処理要求信号REQ1’に応答して許可信号ACK1を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK1を受信してインターフェース26−1に許可信号ACK1’を送信する。監視制御部27は、インターフェース26−1に許可信号ACK1’を送信すると、インターフェース26−1が次にデータ転送を行う順序をインターフェース26−0よりも後として記憶する。
Then, the
The
また、監視制御部27は、例えば、インターフェース26−1によるデータ転送の方が先であると判別した場合に、インターフェース26−0から処理要求信号REQ0を受信したときは、インターフェース26−1から処理要求信号REQ1を受信するまで、待機する。監視制御部27は、処理要求信号REQ1を受信すると、処理要求信号REQ1に対応した処理要求信号REQ1’をバッファ24に送信する。
For example, when the
バッファ24は、処理要求信号REQ1’に応答して許可信号ACK1を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK1を受信してインターフェース26−1に許可信号ACK1’を送信する。監視制御部27は、インターフェース26−1に許可信号ACK1’を送信すると、インターフェース26−1が次にデータ転送を行う順序をインターフェース26−0よりも後として記憶する。
The
そして、監視制御部27は、次にデータ転送を行う順序がインターフェース26−0になった後、つまり、インターフェース26−1に許可信号ACK1’を送信した後、処理要求信号REQ0に対応した処理要求信号REQ0’をバッファ24に送信する。
バッファ24は、処理要求信号REQ0’に応答して許可信号ACK0を監視制御部27に送信する。監視制御部27は、バッファ24から許可信号ACK0を受信してインターフェース26−0に許可信号ACK0’を送信する。監視制御部27は、インターフェース26−0に許可信号ACK0’を送信すると、インターフェース26−0が次にデータ転送を行う順序をインターフェース26−1よりも後として記憶する。
Then, the
The
このようにして、監視制御部27は、インターフェース26−0,26−1間でデータ転送が交互に行われるように、許可信号ACK0’,ACK1’の送信タイミングを設定する。
In this way, the
次に本実施形態に係るフラッシュメモリシステム1の動作を説明する。
フラッシュメモリシステム1がホストシステム2に装着されると、フラッシュメモリシステム1は、外部バス31を介してホストシステム2に接続される。
Next, the operation of the
When the
ホストシステム2は、データをフラッシュメモリ10に書き込む場合、外部バス31を介してフラッシュメモリシステム1にアドレスを供給し、書き込むデータをフラッシュメモリシステム1に供給する。
フラッシュメモリシステム1は、供給されたデータを、ホストインターフェース21を介してコントローラ20の内部に取り込む。
When writing data to the
The
マイクロプロセッサ22は、例えば、図5に示すように、バッファ24に3つのデータ保持部24A,24B,24Cを設定する。フラッシュメモリ10の1ページ当たりのバイト数が512バイトとすると、マイクロプロセッサ22は、3つのデータ保持部24A,24B,24Cに、それぞれ、512バイトの領域を割り当てる。
For example, as shown in FIG. 5, the
マイクロプロセッサ22は、ホストシステム2から供給されたデータを、割り当てた512バイトの領域に対応するように区分する。区分したデータが、図5に示すように、Page1〜Page5までのデータになったものとすると、まず、マイクロプロセッサ22は、図6に示すように、Page1,Page2,Page3のデータを、それぞれ、バッファ24のデータ保持部24A,24B,24Cに保持する。データ保持部24A,24B,24Cは、フラッシュメモリ10に書き込むデータを、フラッシュメモリ10への書き込み準備ができるまで一時的に保持する。
The
そして、フラッシュメモリインターフェース26とバッファ24とは、処理要求信号REQ0’,REQ1’、許可信号ACK0,ACK1を送受信する。この場合、データの送受信が行われるタイミングには、図7(a)〜(c)に示すように、3つのパターンが可能である。尚、パターン1〜3の関係は、インターフェース26−0,26−1を入れ替えると、逆の関係になる。
The
まず、パターン1は、図7(a)に示すように、先にデータ転送を行うべきインターフェース26−0が、インターフェース26−1よりも先に処理要求信号REQ0を監視制御部27に送信する場合である。
First, in the
パターン1の場合、監視制御部27は、図7(a)に示すように、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ0,REQ1を、この順番で受信する。監視制御部27は、処理要求信号REQ0に対応する処理要求信号REQ0’をバッファ24に出力する。バッファ24は許可信号ACK0を監視制御部27に出力する。監視制御部27は、許可信号ACK0を受信して、許可信号ACK0に対応する許可信号ACK0’をインターフェース26−0に出力する。
In the case of
監視制御部27は、処理要求信号REQ1に対応する処理要求信号REQ1’をバッファ24に出力する。バッファ24が処理要求信号REQ1’に応答して許可信号ACK1を監視制御部27に出力すると、監視制御部27は、許可信号ACK1に対応する許可信号ACK1’をインターフェース26−1に送信する。
The
パターン2は、図7(b)に示すように、後でデータ転送を行うべきインターフェース26−1が、インターフェース26−0よりも先に処理要求信号REQ1を監視制御部27に送信する場合である。
As shown in FIG. 7B, the
パターン2の場合、監視制御部27は、図7(b)に示すように、インターフェース26−1からの処理要求信号REQ1を先に受信しても、インターフェース26−0からの処理要求信号REQ0を受信するまで待機する。監視制御部27は、インターフェース26−0からの処理要求信号REQ0を受信すると、処理要求信号REQ0’をバッファ24に送信する。
In the case of
バッファ24が処理要求信号REQ0’に応答して、監視制御部27に許可信号ACK0を送信すると、監視制御部27は、この許可信号ACK0を受信して、許可信号ACK0に対応する許可信号ACK0’をインターフェース26−0に出力する。
When the
監視制御部27は、次に、処理要求信号REQ1’をバッファ24に送信する。バッファ24は、処理要求信号REQ1’に応答して、監視制御部27に許可信号ACK1を出力すると、監視制御部27は、許可信号ACK1に対応する許可信号ACK1’をインターフェース26−1に送信する。
Next, the
このパターン2におけるフラッシュメモリ10へのデータの書き込みタイミングを図8に示す。
インターフェース26−0,26−1に接続されたフラッシュメモリ10は、図8(a)、(c)に示すように、時刻t10、t11(t10<t11)において、ビジー信号として、それぞれ、信号S12,信号S10をL(低)レベルからHレベル(高レベル)に立ち上げるものとする。尚、ビジー信号のLレベルは、処理中であることを示し、Hレベルは、待機中であることを示す。
FIG. 8 shows the timing of writing data to the
As shown in FIGS. 8A and 8C, the
信号S12(BUSY_CH1)がHレベルに立ち上がると、インターフェース26−1は、内部バス32を介してフラッシュメモリ10(チップ10−1)に、コマンド信号C、アドレス信号Aを、順次、出力する。
When the signal S12 (BUSY_CH1) rises to the H level, the interface 26-1 sequentially outputs the command signal C and the address signal A to the flash memory 10 (chip 10-1) via the
続いて、インターフェース26−1は、図8(d)の信号S13で示すように、処理要求信号REQ1をLレベルからHレベルに立ち上げる。しかし、監視制御部27は、信号S13(REQ1)がHレベルに立ち上がっても、このまま、処理要求信号REQ0が立ち上がるまで待機する。
Subsequently, the interface 26-1 raises the processing request signal REQ1 from the L level to the H level, as indicated by a signal S13 in FIG. However, even if the signal S13 (REQ1) rises to the H level, the
一方、信号S10が立ち上がると、インターフェース26−0は、コマンド信号C、アドレス信号Aを、順次、フラッシュメモリ10(チップ10−0)に出力する。コマンド信号Cは、フラッシュメモリ10(チップ10−0)内のレジスタに書き込むデータを転送するコマンドである。続いて、インターフェース26−0は、図8(b)の信号S11で示すように、処理要求信号REQ0をLレベルからHレベルに立ち上げる。 On the other hand, when the signal S10 rises, the interface 26-0 sequentially outputs the command signal C and the address signal A to the flash memory 10 (chip 10-0). The command signal C is a command for transferring data to be written to a register in the flash memory 10 (chip 10-0). Subsequently, the interface 26-0 raises the processing request signal REQ0 from the L level to the H level as indicated by a signal S11 in FIG. 8B.
監視制御部27は、信号S11(REQ0)がHレベルに立ち上がると、図8(e)の信号S14で示すように、処理要求信号REQ0’をLレベルからHレベルに立ち上げる。
When the signal S11 (REQ0) rises to the H level, the
処理要求信号REQ0’がHレベルに立ち上がると、バッファ24は、図8(f)の信号S15で示すように、許可信号ACK0をLレベルからHレベルに立ち上げる。
When the processing request signal REQ0 'rises to the H level, the
信号S15(ACK0)がHレベルに立ち上がると、監視制御部27は、図8(g)の信号S16で示すように、許可信号ACK0’をLレベルからHレベルに立ち上げる。
When the signal S15 (ACK0) rises to the H level, the
信号S16(ACK0’)がHレベルに立ち上がると、インターフェース26−0は、バッファ24が保持しているデータDをフラッシュメモリ10に転送する。
When the signal S16 (ACK0 ') rises to the H level, the interface 26-0 transfers the data D held in the
また、監視制御部27は、信号S16(ACK0’)をHレベルに立ち上げると、図8(h)の信号S17で示すように、処理要求信号REQ1’をLレベルからHレベルに立ち上げる。
Further, when the signal S16 (ACK0 ') rises to the H level, the
信号S17(REQ1’)がHレベルに立ち上がると、バッファ24は、応答して、図8(i)の信号S18で示すように、許可信号ACK1をLレベルからHレベルに立ち上げる。
When the signal S17 (REQ1 ') rises to the H level, the
信号S18(ACK1)がHレベルに立ち上がると、監視制御部27は、図8(j)の信号S19で示すように、許可信号ACK1’をLレベルからHレベルに立ち上げる。
When the signal S18 (ACK1) rises to the H level, the
信号S16(ACK1’)がHレベルに立ち上がると、インターフェース26−1は、バッファ24が保持しているデータDをフラッシュメモリ10に転送する。
When the signal S16 (ACK1 ') rises to the H level, the interface 26-1 transfers the data D held in the
フラッシュメモリ10のチップ10−0へのデータDの転送が終了すると、インターフェース26−0は、内部バス32を介してフラッシュメモリ10(チップ10−0)に、コマンド信号C’を送信する。
When the transfer of the data D to the chip 10-0 of the
また、フラッシュメモリ10のチップ10−1へのデータDの転送が終了すると、インターフェース26−1は、内部バス32を介してフラッシュメモリ10(チップ10−1)に、コマンド信号C’を送信する。コマンド信号C’は、フラッシュメモリ10内のレジスタに保持されたデータをフラッシュメモリ10内のメモリセルアレイに複写するコマンドである。
When the transfer of the data D to the chip 10-1 of the
このようなタイミングで、パターン2におけるデータの書き込み処理が行われる。
At such timing, data writing processing in
パターン3は、図7(c)に示すように、データ転送を行ったインターフェース26−0が、インターフェース26−1よりも先に、再度、処理要求信号REQ0を監視制御部27に送信する場合である。
As shown in FIG. 7C, the pattern 3 is a case where the interface 26-0 that has performed data transfer transmits the processing request signal REQ0 to the
パターン3の場合、監視制御部27は、図7(c)に示すように、処理要求信号REQ0を受信すると、処理要求信号REQ0’をバッファ24に送信する。バッファ24は、処理要求信号REQ0’に応答して監視制御部27に許可信号ACK0を送信する。
In the case of pattern 3, when receiving the processing request signal REQ 0, the
監視制御部27は、許可信号ACK0を受信すると、許可信号ACK0’をインターフェース26−0に送信する。この場合、監視制御部27は、次にデータ転送を行うべきものがインターフェース26−1であることを判別する。監視制御部27は、再度、インターフェース26−0から、処理要求信号REQ0を受信しても、処理要求信号REQ1を受信するまで待機する。
When the
監視制御部27は、インターフェース26−1からの処理要求信号REQ1を受信すると、バッファ24に処理要求信号REQ1’を送信する。
Upon receiving the processing request signal REQ1 from the interface 26-1, the
バッファ24は、処理要求信号REQ1’に応答して、監視制御部27に許可信号ACK1を送信すると、監視制御部27は、許可信号ACK1を受信して、許可信号ACK1に対応する許可信号ACK1’をインターフェース26−1に出力する。
When the
次に、監視制御部27は、バッファ24に処理要求信号REQ0’を送信する。バッファ24は、処理要求信号REQ0’に応答して監視制御部27に許可信号ACK0を送信すると、監視制御部27は、この許可信号ACK0を受信して、許可信号ACK0に対応する許可信号ACK0’をインターフェース26−0に送信する。
Next, the
このようにして、監視制御部27は、許可信号ACK0’,ACK1’を交互にインターフェース26−0,26−1に送信するようにタイミングを制御する。
In this way, the
例えば、図5に示すように、先にデータ転送を行うべきインターフェース26−0が、インターフェース26−1よりも先に処理要求信号REQ0を監視制御部27に送信した場合、このパターンは、パターン1に該当する。
For example, as shown in FIG. 5, when the interface 26-0 that should transfer data first transmits the processing request signal REQ0 to the
この場合、監視制御部27は、図7(a)に示すパターン1に従って、インターフェース26−0に許可信号ACK0’を送信し、インターフェース26−0は、許可信号ACK0’を受信して、チップ10−0へのPage1のデータの転送を開始する。監視制御部27は、許可信号ACK0’を送信した後に、許可信号ACK1’をインターフェース26−1に送信する。インターフェース26−1は、許可信号ACK1’を受信して、チップ10−1へのPage2のデータの転送を開始する。
In this case, the
次に、図9に示すように、後にデータ転送を行うべきインターフェース26−1が、インターフェース26−0よりも先に、処理要求信号REQ1を監視制御部27に送信した場合、このパターンは、パターン2に該当する。
Next, as shown in FIG. 9, when the interface 26-1 to which data transfer is to be performed later transmits the processing
この場合、監視制御部27は、図7(b)に示すパターン2に従って、インターフェース26−0に許可信号ACK0’を送信してから、インターフェース26−1に、許可信号ACK1’を送信する。インターフェース26−0は、チップ10−0にPage1のデータの転送を開始し、この転送が開始された後に、インターフェース26−1は、チップ10−1にPage2のデータの転送を開始する。
In this case, the
次に、図10に示すように、転送したPage1のデータがチップ10−0内のレジスタからメモリセルアレイに複写され、Page1のデータを転送したインターフェース26−0が、インターフェース26−1よりも先に、再度、処理要求信号REQ0を監視制御部27に送信した場合、このパターンは、パターン3に該当する。
Next, as shown in FIG. 10, the transferred Page1 data is copied from the register in the chip 10-0 to the memory cell array, and the interface 26-0 to which the Page1 data is transferred is ahead of the interface 26-1. When the processing request signal REQ0 is transmitted again to the
この場合、監視制御部27は、図7(c)に示すパターン3に従って、インターフェース26−1に許可信号ACK1’を送信してから、インターフェース26−0に、許可信号ACK0’を送信する。インターフェース26−1は、チップ10−1にPage2のデータの転送を開始し、この転送が開始された後に、インターフェース26−0は、チップ10−0にPage3のデータの転送を開始する。
In this case, the
このようにして、監視制御部27が許可信号ACK0’,ACK1’を交互にインターフェース26−0,26−1に送信すると、データ保持部24A〜24Cに取り込まれたデータは、結果として、以下のように取り込まれた順に、フラッシュメモリ10のチップ10−0,10−1に交互に割り当てられる。
In this manner, when the
ステップ1:データ保持部24Aのデータ→チップ10−0
ステップ2:データ保持部24Bのデータ→チップ10−1
ステップ3:データ保持部24Cのデータ→チップ10−0
ステップ4:データ保持部24Aのデータ→チップ10−1
ステップ5:データ保持部24Bのデータ→チップ10−0
・・・
Step 1: Data in
Step 2: Data in the
Step 3: Data in the
Step 4: Data in the
Step 5: Data in the
...
次に、フラッシュメモリ10からのデータの読み出し処理について説明する。
フラッシュメモリ10からのデータの読み出し処理についても、監視制御部27は、データの書き込み処理と同じように、図7(a)〜(c)に示すパターン1〜3に従って、処理要求信号と許可信号との送信タイミングを調整する。
Next, a process for reading data from the
As for the data reading process from the
パターン2におけるフラッシュメモリ10からのデータの読み出しタイミングを図11に示す。
インターフェース26−0,26−1は、それぞれ、コマンド信号C、アドレス信号Aを、順次、フラッシュメモリ10に出力する。コマンド信号Cは、フラッシュメモリ10から、データを読み出すコマンドである。
The timing for reading data from the
The interfaces 26-0 and 26-1 sequentially output the command signal C and the address signal A to the
フラッシュメモリ10は、図11(a)、(c)に示すように、時刻t20において、ビジー信号として、それぞれ、信号S22(BUSY_CH1),信号S20(BUSY_CH0)をHレベルからLレベルに立ち下げる。尚、データの読み出し時においても、ビジー信号のLレベルは、処理中であることを示し、Hレベルは、待機中であることを示す。
As shown in FIGS. 11A and 11C, the
図11(c)に示すように、フラッシュメモリ10は、信号S22(BUSY_CH1)をHレベルに立ち上げ、インターフェース26−1は、図11(d)の信号S23で示すように、処理要求信号REQ1をLレベルからHレベルに立ち上げる。しかし、監視制御部27は、信号S23(REQ1)がHレベルに立ち上がっても、このまま、処理要求信号REQ0が立ち上がるまで待機する。
As shown in FIG. 11C, the
時間が経過して、図11(a)に示すように、フラッシュメモリ10が信号S20(BUSY_CH0)をHレベルに立ち上げると、図11(b)の信号S21で示すように、インターフェース26−0は、処理要求信号REQ0をHレベルに立ち上げる。
When time elapses, as shown in FIG. 11A, when the
信号S21(REQ0)が立ち上がると、監視制御部27は、図11(e)の信号S24で示すように、処理要求信号REQ0’をLレベルからHレベルに立ち上げる。
When the signal S21 (REQ0) rises, the
信号S24(REQ0’)がHレベルに立ち上がると、図11(f)の信号S25で示すように、バッファ24は、許可信号ACK0をLレベルからHレベルに立ち上げる。
When the signal S24 (REQ0 ') rises to the H level, the
信号S25(ACK0)がHレベルに立ち上がると、図11(g)の信号S26で示すように、監視制御部27は、許可信号ACK0’をLレベルからHレベルに立ち上げる。
When the signal S25 (ACK0) rises to the H level, the
信号S26(ACK0’)がHレベルに立ち上がると、インターフェース26−0は、時刻t21において、フラッシュメモリ10のチップ10−0のデータDをバッファ24に転送する。
When the signal S26 (ACK0 ') rises to H level, the interface 26-0 transfers the data D of the chip 10-0 of the
一方、監視制御部27は、信号S26(ACK0’)をHレベルに立ち上げると、図11(h)の信号S27で示すように、処理要求信号REQ1’をLレベルからHレベルに立ち上げる。
On the other hand, when the signal S26 (ACK0 ') rises to the H level, the
信号S27(REQ1’)がHレベルに立ち上がると、バッファ24は、図11(i)の信号S28で示すように、許可信号ACK1をLレベルからHレベルに立ち上げる。
When the signal S27 (REQ1 ') rises to the H level, the
信号S28(ACK1)がHレベルに立ち上がると、監視制御部27は、図11(j)の信号S29で示すように、許可信号ACK1’をLレベルからHレベルに立ち上げる。
When the signal S28 (ACK1) rises to the H level, the
信号S29(ACK1’)がHレベルに立ち上がると、インターフェース26−1は、時刻t22(t21<t22)において、フラッシュメモリ10のチップ10−1のデータDをバッファ24に転送する。このようなタイミングで、パターン2におけるデータの読み出し処理が行われる。
When the signal S29 (ACK1 ') rises to the H level, the interface 26-1 transfers the data D of the chip 10-1 of the
このようにして、監視制御部27は、許可信号ACK0’,ACK1’を交互にインターフェース26−0,26−1に送信する。そして、監視制御部27は、最初にフラッシュメモリ10のチップ10−0のデータをバッファ24のデータ保持部24Aに割り当てるとすると、結果として、チップ10−0,10ー1のデータは、以下のようにデータ保持部24A〜24Cに割り当てられる。
In this manner, the
ステップ1:チップ10−0のデータ→データ保持部24A
ステップ2:チップ10−1のデータ→データ保持部24B
ステップ3:チップ10−0のデータ→データ保持部24C
ステップ4:チップ10−1のデータ→データ保持部24A
ステップ5:チップ10−0のデータ→データ保持部24B
・・・
Step 1: Data of chip 10-0 →
Step 2: Data of chip 10-1 →
Step 3: Data of chip 10-0 →
Step 4: Data of chip 10-1 →
Step 5: Data of chip 10-0 →
...
以上説明したように、本実施形態によれば、監視制御部27が、インターフェース26−0,26−1からの処理要求信号REQ0,REQ1を受け付けると、処理要求信号REQ0’,REQ1’が交互にバッファ24に送信されるようにタイミングを調整するようにした。従って、フラッシュメモリにおける処理順序に偏りが生じるのを回避することができる。
As described above, according to the present embodiment, when the
尚、本発明を実施するにあたっては、種々の形態が考えられ、上記実施の形態に限られるものではない。
例えば、上記実施の形態では、フラッシュメモリ10に対するインターフェース26−0,26−1を、独立した2系統のバスで構成した場合について説明した。しかし、系統数は、特に限定されるものではなく、3系統以上のバスで構成されてもよい。
In carrying out the present invention, various forms are conceivable and the present invention is not limited to the above embodiment.
For example, in the above embodiment, the case where the interfaces 26-0 and 26-1 to the
3系統以上のインターフェースを備えた場合、監視制御部27は、バッファ24と各チップとの間で行われるデータ転送の順序を判別し、各インターフェースに、順番に許可信号を送信する。そして、監視制御部27は、フラッシュメモリ10との間でデータ転送を行ったインターフェースが次にデータ転送を行うべき順序を最後尾とする。
When three or more interfaces are provided, the
また、監視制御部27は、フラグを用いて、許可信号ACK0’,ACK1’の送信タイミングを制御するようにしてもよい。例えば、フラッシュメモリインターフェース26内を上記実施形態のように2系統とした場合、インターフェース26−0,26−1のうちのフラグ値に対応するものに、先に許可信号を送信する。
Further, the
即ち、フラグ値が0の場合に、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ0,REQ1が順次、送信されれば、監視制御部27は、それぞれ、インターフェース26−0,26−1に、許可信号ACK0’,ACK1’を、順に送信する。
That is, when the flag value is 0, if the processing request signals REQ0 and REQ1 are sequentially transmitted from the interfaces 26-0 and 26-1, respectively, the
また、フラグ値0の場合に、インターフェース26−0,26−1から、それぞれ、処理要求信号REQ1,REQ0が順次、送信されても、監視制御部27は、それぞれ、インターフェース26−0,26−1に、許可信号ACK0’,ACK1’の順に送信する。このようにしても、データ転送を交互に行わせるように制御することができる。
Further, when the flag value is 0, even if the processing request signals REQ1 and REQ0 are sequentially transmitted from the interfaces 26-0 and 26-1, respectively, the
1 フラッシュメモリシステム
2 ホストシステム
10 フラッシュメモリ
10−0,10−1 チップ
20 コントローラ
24 バッファ
26 フラッシュメモリインターフェース
26−0,26−1 インターフェース
27 監視制御部
DESCRIPTION OF
Claims (6)
前記複数のフラッシュメモリとの間でデータ転送を行うためのデータを記憶するデータ記憶部と、
前記データ記憶部と前記各フラッシュメモリとの間に、前記各フラッシュメモリに対応して備えられ、データ転送を要求する処理要求信号を送信し、データ転送を許可する許可信号を受信して、対応するフラッシュメモリと前記データ記憶部との間でデータ転送を行う複数のデータ転送部と、
前記複数のデータ転送部から送信された複数の処理要求信号を受信して、前記各データ転送部によるデータ転送が順番に行われるように送信タイミングを設定した許可信号を、前記各データ転送部に送信する転送制御部と、を備えた、
ことを特徴とするメモリコントローラ。 In a memory controller that transfers data to and from multiple flash memories that store data,
A data storage unit for storing data for performing data transfer with the plurality of flash memories;
Between the data storage unit and each flash memory, provided corresponding to each flash memory, transmitting a processing request signal requesting data transfer, receiving a permission signal permitting data transfer, and corresponding A plurality of data transfer units that perform data transfer between the flash memory and the data storage unit;
A plurality of processing request signals transmitted from the plurality of data transfer units are received, and a permission signal in which a transmission timing is set so that data transfer by each data transfer unit is performed in order is sent to each data transfer unit. A transfer control unit for transmitting,
A memory controller characterized by that.
前記データ記憶部は、前記転送対象のデータを保持するものとして、前記各フラッシュメモリの各ページに対応する量のデータ保持が可能な複数のデータ保持部が備えられたものであり、
前記各データ保持部は、データが供給されたものから順に、データが排出されるように構成されたものである、
ことを特徴とする請求項1に記載のメモリコントローラ。 Each flash memory performs data input / output in units of pages,
The data storage unit is provided with a plurality of data holding units capable of holding an amount of data corresponding to each page of each flash memory as holding the data to be transferred,
Each of the data holding units is configured such that data is discharged in order from the one supplied with data.
The memory controller according to claim 1.
ことを特徴とする請求項1又は2に記載のメモリコントローラ。 The transfer control unit determines the order of data transfer performed between the data storage unit and each of the flash memories, and the processing request signal from the data transfer unit that is determined to be later is the processing request signal from the first Is received prior to the processing request signal from the data transfer unit determined to be transmitted, the permission signal is transmitted to the data transfer unit determined to be the first in order and data transfer is performed between the corresponding flash memory. The transmission timing of the permission signal to each of the data transfer units is set so that the permission signal is transmitted to the data transfer unit that has been determined to be later.
The memory controller according to claim 1, wherein the memory controller is a memory controller.
ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。 The transfer control unit has a data transfer unit that has performed data transfer with the flash memory as the last order in which data transfer should be performed,
The memory controller according to claim 1, wherein the memory controller is a memory controller.
請求項1乃至4のいずれか1項に記載のメモリコントローラと、を備えた、
ことを特徴とするフラッシュメモリシステム。 A plurality of flash memories for storing data;
A memory controller according to any one of claims 1 to 4.
A flash memory system characterized by that.
前記各フラッシュメモリとのデータ転送が順番に行われるように、前記データ転送を許可するための許可信号を送信する送信タイミングを設定するステップと、
前記送信タイミングに従って、各データ転送部に前記許可信号を送信するステップと、を備えた、
ことを特徴とするフラッシュメモリのデータ転送方法。
Receiving a processing request signal for requesting data transfer from a plurality of data transfer units provided corresponding to each of the flash memories in order to perform data transfer with a plurality of flash memories storing data; ,
Setting a transmission timing for transmitting a permission signal for permitting the data transfer so that data transfer with each of the flash memories is performed in order;
Transmitting the permission signal to each data transfer unit according to the transmission timing, and
A data transfer method for a flash memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150628A JP4273038B2 (en) | 2004-05-20 | 2004-05-20 | Memory controller, flash memory system, and flash memory data transfer method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004150628A JP4273038B2 (en) | 2004-05-20 | 2004-05-20 | Memory controller, flash memory system, and flash memory data transfer method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005332249A JP2005332249A (en) | 2005-12-02 |
JP4273038B2 true JP4273038B2 (en) | 2009-06-03 |
Family
ID=35486862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004150628A Expired - Lifetime JP4273038B2 (en) | 2004-05-20 | 2004-05-20 | Memory controller, flash memory system, and flash memory data transfer method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4273038B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100765786B1 (en) * | 2006-06-12 | 2007-10-12 | 삼성전자주식회사 | Flash memory system, host system for programming and program method thereof |
KR20080017982A (en) * | 2006-08-23 | 2008-02-27 | 삼성전자주식회사 | Flash memory system and program method thereof |
-
2004
- 2004-05-20 JP JP2004150628A patent/JP4273038B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2005332249A (en) | 2005-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7937523B2 (en) | Memory system with nonvolatile semiconductor memory | |
US8230161B2 (en) | Data backup method for a flash memory and controller and storage system using the same | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
JP4373943B2 (en) | Memory controller, flash memory system, and flash memory control method | |
KR20190032815A (en) | Memory system and operating method thereof | |
JP2008152464A (en) | Storage device | |
KR20060050585A (en) | Semiconductor memory device and access method and memory control system for same | |
KR20100094241A (en) | Nonvolatile memory device not including reserved blocks | |
JP2008041098A (en) | Memory card and method for storing data thereof | |
KR20190087072A (en) | Data storage device, operating method thereof and nonvolatile memory device | |
KR20160098839A (en) | Method for managing flow of message transmission and storage device adopting the same | |
JP4254932B2 (en) | Memory controller and flash memory system | |
JP4177360B2 (en) | Memory controller, flash memory system, and flash memory control method | |
CN111488118B (en) | Method for managing flash memory module, related flash memory controller and electronic device | |
JP2006338083A (en) | Memory controller | |
JP4273038B2 (en) | Memory controller, flash memory system, and flash memory data transfer method | |
US20050204115A1 (en) | Semiconductor memory device, memory controller and data recording method | |
JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD | |
JP4910426B2 (en) | Non-volatile memory device writing method | |
JP4177301B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4273106B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4697146B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP2005292925A (en) | Memory controller, flash memory system, and control method for flash memory | |
JP2006178909A (en) | Memory controller, flash memory system and method for controlling flash memory | |
JP4194518B2 (en) | Memory controller, flash memory system, and flash memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090213 |
|
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: 20090224 |
|
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: 20090302 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4273038 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120306 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130306 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140306 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |