JP2009099112A - Memory system - Google Patents
Memory system Download PDFInfo
- Publication number
- JP2009099112A JP2009099112A JP2008074918A JP2008074918A JP2009099112A JP 2009099112 A JP2009099112 A JP 2009099112A JP 2008074918 A JP2008074918 A JP 2008074918A JP 2008074918 A JP2008074918 A JP 2008074918A JP 2009099112 A JP2009099112 A JP 2009099112A
- Authority
- JP
- Japan
- Prior art keywords
- controller
- data
- memory
- nand flash
- card
- 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
Links
Images
Abstract
【課題】不揮発性メモリの仕様等が変更された場合に、第2のコントローラの機能を変更するたけでメモリシステムを再構築することができるメモリシステムを提供する。
【解決手段】本発明の実施の形態に係るメモリシステムは、ホスト機器に接続される第1のコントローラと、前記第1のコントローラに接続されるとともに、不揮発性メモリに接続される第2のコントローラと、前記第2のコントローラに接続される前記不揮発性メモリと、を具備し、前記第2のコントローラは、前記第1のコントローラと前記不揮発性メモリとの間でデータの授受を行う。
【選択図】図1To provide a memory system capable of reconfiguring a memory system only by changing a function of a second controller when a specification or the like of a nonvolatile memory is changed.
A memory system according to an embodiment of the present invention includes a first controller connected to a host device, and a second controller connected to the first controller and connected to a nonvolatile memory. And the non-volatile memory connected to the second controller, and the second controller exchanges data between the first controller and the non-volatile memory.
[Selection] Figure 1
Description
本発明は、メモリシステムに関し、特に不揮発性メモリを備えたメモリシステムに関する。 The present invention relates to a memory system, and more particularly to a memory system including a nonvolatile memory.
NAND型フラッシュメモリ等の不揮発性メモリでは、チップレイアウトを形成する線幅の微細化に伴い、書き込み時、読み出し時のページサイズや消去ブロックサイズ、各種コマンドシーケンス、信頼性を保持するために必要なエラー訂正符号等に変更が発生する。このため、メモリカード等の不揮発性メモリとコントローラとを備えたメモリシステムでは、不揮発性メモリの世代変更に伴ってコントローラ機能の変更が必須になる。 In a nonvolatile memory such as a NAND flash memory, as the line width forming the chip layout becomes finer, it is necessary to maintain the page size and erase block size during writing and reading, various command sequences, and reliability. A change occurs in the error correction code. For this reason, in a memory system including a nonvolatile memory such as a memory card and a controller, it is essential to change the controller function as the generation of the nonvolatile memory changes.
例えば、特許文献1に記載されたメモリカードでは、コントローラがメモリデバイスの複数のデバイスコードを保存し、メモリデバイスから読み出したデバイスコードと保存したデバイスコードを比較して、対応可能なメモリデバイスの種類を判別して、デバイスコードが確定されていないメモリデバイスに対応可能としている。
本発明は、不揮発性メモリの仕様等が変更された場合に、第2のコントローラの機能を変更するたけでメモリシステムを再構築することができるメモリシステムを提供する。 The present invention provides a memory system capable of reconfiguring a memory system only by changing the function of a second controller when the specification or the like of a nonvolatile memory is changed.
本発明の実施の形態に係るメモリシステムは、ホスト機器に接続される第1のコントローラと、前記第1のコントローラに接続されるとともに、不揮発性メモリに接続される第2のコントローラと、前記第2のコントローラに接続される前記不揮発性メモリと、を具備し、前記第2のコントローラは、前記第1のコントローラと前記不揮発性メモリとの間でデータの授受を行うことを特徴とする。 A memory system according to an embodiment of the present invention includes a first controller connected to a host device, a second controller connected to the first controller and connected to a nonvolatile memory, and the first controller. The non-volatile memory connected to the second controller, and the second controller exchanges data between the first controller and the non-volatile memory.
本発明の実施の形態に係るメモリシステムは、ホスト機器に接続される第1のコントローラと、前記第1のコントローラに接続されるとともに、複数の不揮発性メモリに接続される第2のコントローラと、前記第2のコントローラに接続される前記複数の不揮発性メモリと、を具備し、前記第2のコントローラは、前記第1のコントローラと前記複数の不揮発性メモリとの間でデータの授受を行うことを特徴とすることを特徴とする。 A memory system according to an embodiment of the present invention includes a first controller connected to a host device, a second controller connected to the first controller and connected to a plurality of nonvolatile memories, A plurality of nonvolatile memories connected to the second controller, wherein the second controller exchanges data between the first controller and the plurality of nonvolatile memories. It is characterized by.
本発明よれば、不揮発性メモリの仕様等が変更された場合に、第2のコントローラの機能を変更するたけでメモリシステムを再構築するメモリシステムを提供することができる。 According to the present invention, it is possible to provide a memory system that reconstructs a memory system only by changing the function of the second controller when the specification or the like of the nonvolatile memory is changed.
以下、本発明の実施の形態を、図面を参照しつつ、説明する。実施の形態に係るメモリシステムはここではNAND型フラッシュメモリを例に取って説明する。なお、実施の形態において、同一構成要素には同一符号を付け、実施の形態の間において重複する説明は省略する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. Here, the memory system according to the embodiment will be described by taking a NAND flash memory as an example. Note that, in the embodiments, the same components are denoted by the same reference numerals, and redundant description among the embodiments is omitted.
(第1の実施の形態)
図1は、本発明のメモリシステムを適用した第1の実施の形態に係るメモリカードの概略構成を示す図である。図1に示すようにメモリカード1は、コントローラA2、コントローラB3及びNANDフラッシュメモリ4を有する。コントローラA2は、ホストバス11によりホスト装置20に接続され、NANDバス12によりコントローラB3に接続されている。コントローラB3は、NANDバス12によりコントローラA2に接続され、NANDバス13によりNANDフラッシュメモリ4に接続されている。NANDフラッシュメモリ4は、NANDバス13によりコントローラB3に接続されている。なお、NANDフラッシュメモリ4は、一つのメモリセルに1ビットのデータを記憶する2値メモリであっても良いし、一つのメモリセルに1ビットより多いデータ(例えば、2ビット)を記憶する多値メモリであっても良い。ここでは、不揮発性メモリの例としてNAND型フラッシュメモリを挙げて説明するが、不揮発性メモリはNAND型フラッシュメモリに限らず、例えば、NOR型フラッシュメモリ等でもよい。
(First embodiment)
FIG. 1 is a diagram showing a schematic configuration of a memory card according to a first embodiment to which a memory system of the present invention is applied. As shown in FIG. 1, the
以下の説明において使用する用語「論理ブロックアドレス」、「物理ブロックアドレス」は、それぞれ、NANDフラッシュメモリ4内のブロック自体に割り当てられる論理アドレス、物理アドレスを意味するものである。また、「論理アドレス」、「物理アドレス」は、主に、ブロック自体の論理アドレス、物理アドレスを意味するものであるが、ブロック単位よりも細かい分解能の単位に相当するアドレスである場合もあり得る。
The terms “logical block address” and “physical block address” used in the following description mean a logical address and a physical address assigned to the block itself in the
ホスト装置20は、接続されるメモリカード1に対してアクセスを行うためのハードウェア及びソフトウェアを備えている。ホスト装置20は、メモリカード1内部の物理状態(何処の物理ブロックアドレスに、何番目の何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか)を管理し、メモリカード1内のNANDフラッシュメモリ4を直接制御するものとして構築されている。
The
また、ホスト装置20は、消去時の消去ブロックサイズが16kByteに定められているNANDフラッシュメモリ(NANDフラッシュメモリ4を限定するものではない)を使用することを前提として、16kByte単位で論理・物理アドレスの割り当てを行う。すなわち、ホスト装置20は、多くの場合、論理アドレス16kByte分に関してシーケンシャルにライトアクセス又はリードアクセスを行う(該当するコマンドを発行する)。
In addition, the
メモリカード1は、ホスト装置20に接続されたときに電源供給を受けて動作し、ホスト装置20からのアクセスに応じた処理を行う。コントローラA2は、図2に示すように、ホストインターフェース(以下、ホストI/Fという)21、バッファRAM22、NANDインターフェース(以下、NAND_I/Fという)23、CPU(Central Processing Unit)24、及びROM(Read Only Memory)25を有する。
The
ホストI/F21は、ホストバス11に接続され、ホスト装置20とバッファRAM22及びCPU24との間のインターフェース処理を行う。NAND_I/F23は、NANDバス12に接続され、コントローラB3とバッファRAM22及びCPU24との間のインターフェース処理を行う。
The host I /
バッファRAM22は、ホスト装置20から入力されるデータをNANDフラッシュメモリ4に書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶し、NANDフラッシュメモリ4から読み出されるデータをホスト装置20に出力する際に、一定量のデータを一時的に記憶する。また、バッファRAM22は、CPU24の作業領域として使用され、制御プログラム等を記憶する。
The
CPU24は、メモリカード1全体の動作を制御するものである。CPU24は、例えば、メモリカード1が電源供給を受けた際に、ROM25内に格納されているファームウェア(後述する制御プログラム)をバッファRAM22にロードして所定の処理を実行することにより、ホスト装置20から書込コマンド、読出コマンド、消去コマンドを受けてNANDフラッシュメモリ4内の該当領域に対するアクセス処理をコントローラB3との間で実行し、バッファRAM22を通じたデータ転送処理を制御する。
The
ROM25は、CPU24により使用される制御プログラム等を格納するメモリである。なお、コントローラA2は、NANDバス13によりコントローラB3と接続されており、CPU24は、コントローラB3をNANDフラッシュメモリ4であるものとして各種の処理を実行する。すなわち、CPU24は、ホスト装置20から書込コマンド、読出コマンド、消去コマンドを受け付けた際に、コントローラB3に対して書込コマンド、読出コマンド、消去コマンドを転送する処理を実行する。
The
コントローラB3は、図3に示すように、NAND_I/F31、バッファRAM32、ECC(Error Correcting Code)回路33、NAND_I/F34、CPU35、及びROM36を有する。
As illustrated in FIG. 3, the controller B3 includes a NAND_I /
NAND_I/F31は、NANDバス12に接続され、コントローラA2とバッファRAM32及びCPU35との間のインターフェース処理を行う。NAND_I/F34は、NANDバス13に接続され、NANDフラッシュメモリ4とECC回路33及びCPU35との間のインターフェース処理を行う。
The NAND_I / F 31 is connected to the
バッファRAM32は、コントローラA2から入力されるデータをNANDフラッシュメモリ4に書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶し、NANDフラッシュメモリ4から読み出されるデータをコントローラA2に出力する際に、一定量のデータを一時的に記憶する。また、バッファRAM32は、CPU34の作業領域として使用され、制御プログラムや各種のテーブル等を記憶する。
When the data input from the controller A2 is written to the
ECC回路33は、NANDフラッシュメモリ4に書き込む書込データに付加されたECCデータに基づく当該書込データの誤り訂正処理、NANDフラッシュメモリ4から読み出される読出データに対してECCデータを付加する処理等を行う。
The
CPU35は、NANDフラッシュメモリ4に対するアクセス処理を制御するものである。CPU35は、例えば、メモリカード1が電源供給を受けた際に、ROM36内に格納されているファームウェアをバッファRAM32にロードして所定の処理を実行する。CPU35は、所定の処理において、後述する各種のテーブルをバッファRAM32上で作成し、コントローラA2から書込コマンド、読出コマンド、消去コマンドを受け付けてNANDフラッシュメモリ4内の該当領域に対するアクセス処理を実行し、バッファRAM32を通じたデータ転送処理を実行する。
The
ROM36は、CPU35により使用される制御プログラム等を格納するメモリである。なお、コントローラB3は、NANDバス12によりコントローラA2と接続されており、CPU35は、コントローラA2に対してNANDフラッシュメモリ4であるものとして処理を実行する。すなわち、CPU35は、コントローラA2から書込コマンド、読出コマンド、消去コマンドを受け付けた際に、NANDフラッシュメモリ4内の該当領域に対するアクセス処理を実行する。
The
図4は、ホスト装置20が想定しているフラッシュメモリと、実際に使用するフラッシュメモリ、すなわち、メモリカード1内のNANDフラッシュメモリ4との、データ配置の違いを示している。ホスト装置20が想定しているフラッシュメモリでは、各ページが528Byte(512Byte分のデータ記憶部+16Byte分の冗長部)を有しており、32ページ分が1つの消去単位、すなわち、16kByte+0.5kByte(ここでは、kは1024)となる。以下では、このようなフラッシュメモリを搭載したカードを、「小ブロックカード」と称す場合がある。
FIG. 4 shows the difference in data arrangement between the flash memory assumed by the
一方、実際に使用するNANDフラッシュメモリ4では、各ページは2112Byte(512Byte分のデータ記憶部×4+24Byte分の管理データ記憶部)を有しており、128ページ分が1つの消去単位、すなわち、256kByte+8kByteとなる。以下では、このようなNANDフラッシュメモリ4を搭載したカードを、「大ブロックカード」と称す場合がある。なお、以下の説明では、便宜上、小ブロックカードの消去単位を16kByteと呼び、大ブロックカードの消去単位を256kByteと呼ぶ。
On the other hand, in the
また、ホスト装置20が想定しているフラッシュメモリと、実際に使用するNANDフラッシュメモリ4とは、それぞれ、フラッシュメモリへのデータ入出力を行うためのページバッファを備えている。ホスト装置20が想定しているフラッシュメモリに備えられるページバッファの記憶容量は、528Byte(512Byte+16Byte)である。一方、実際に使用するNANDフラッシュメモリ4に備えられるページバッファの記憶容量は、2112Byte(2048Byte+64Byte)である。データ書込等の際には、自身の記憶容量に相当する1ページ分の単位で実行する。
Each of the flash memory assumed by the
図4の例では、実際に使用するNANDフラッシュメモリ4の消去サイズが、ホスト装置20が想定しているフラッシュメモリの消去サイズの16倍である場合を示したが、本発明はこれに限定されるものではなく、略整数倍であれば別の倍率となるように構成することも可能である。
In the example of FIG. 4, the erase size of the
大ブロックカードを実用上有効な製品とするためには、図4に示したNANDフラッシュメモリ4の記憶容量は1Gビット以上であることが望ましい。NANDフラッシュメモリ4の記憶容量が、例えば、1Gビットである場合、256kByteブロック(消去単位)の数は、512個となる。
In order to make the large block card a practically effective product, it is desirable that the storage capacity of the
また、図4においては消去単位が256kByteである場合を例示しているが、消去単位が例えば128kByteブロックとなるように構築することも実用上有効である。この場合、128kByteブロックの数は、1024個となる。 FIG. 4 illustrates the case where the erasure unit is 256 kBytes, but it is also practically effective to construct the erasure unit to be, for example, a 128 kByte block. In this case, the number of 128 kByte blocks is 1024.
図5は、ホスト装置20側のシステム及びメモリカード1(大ブロックカード)の各コミュニケーション階層を示す図である。
FIG. 5 is a diagram showing each communication hierarchy of the system on the
ホスト装置20側のシステムは、アプリケーションソフト41、ファイルシステム42、ドライバソフト43、及び小ブロックカード物理アクセス層44を有する。一方、メモリカード1(大ブロックカード)は、小ブロックカード物理アクセス層51、小ブロックカード物理・小ブロックカード論理変換層52、小ブロックカード物理・大ブロックカード論理変換層53、及び大ブロックカード物理アクセス層54を有する。
The system on the
例えば、ホスト装置20側のアプリケーションソフト41がファイルの書込をファイルシステム42に要求すると、ファイルシステム42は、小ブロックカードの論理ブロックアドレスに基づきシーケンシャルなセクタ書込をドライバソフト43に指示する。これを受けて、ドライバソフト43は、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック毎のシーケンシャルな書込を実現する処理を実行する。この場合、ドライバソフト43は、論理・物理ブロック変換を行い、小ブロックカード物理アクセス層44を通じて、小ブロックカードの物理ブロックアドレスによるランダムな書込コマンドを大ブロックカードに対して発行し、データ転送を行う。
For example, when the
なお、ライトアクセスにおいては、小ブロックカードの場合も大ブロックカードの場合も、プロトコル上、(1)コマンド、(2)ページアドレス(ロウアドレス)、(3)カラムアドレス、(4)データ、(5)プログラム確認コマンド、といった順序で情報の授受が行われることが前提となっている。 In write access, for both small block cards and large block cards, (1) command, (2) page address (row address), (3) column address, (4) data, ( 5) It is assumed that information is exchanged in the order of program confirmation commands.
大ブロックカード側の小ブロックカード物理アクセス層51は、ホスト装置20から小ブロックカードの物理ブロックアドレスによる書込コマンドを受けると、物理ブロックアドレスやデータのほか、これに付随する付随データに含まれている論理ブロックアドレスを取得する。
When receiving a write command based on the physical block address of the small block card from the
小ブロックカード物理・小ブロックカード論理変換層52は、データ読出などの際に小ブロックカードの論理ブロックアドレス(16kByte分に対応)から小ブロックカードの論理ブロックアドレス(16kByte分に対応)への変換処理を行うための第1のテーブルを有している。小ブロックカード物理・小ブロックカード論理変換層52は、小ブロックカード物理アクセス層51が書込コマンドを受けて小ブロックカードの論理ブロックアドレスを取得したときには、これを第1のテーブルに反映させる。小ブロックカード物理・小ブロックカード論理変換層52は、物理ブロックアドレスに関しても、第1のテーブルに反映させる。
The small block card physical / small block card
小ブロックカード物理・大ブロックカード論理変換層53は、データ読出などの際小ブロックカードの論理ブロックアドレス(シーケンシャルな16kByteブロック×16個分に対応)から大ブロックカードの物理ブロックアドレス(256kByte物理ブロック分に対応)への変換処理を行うための第2のテーブルを有している。小ブロックカード物理・大ブロックカード論理変換層53は、小ブロックカード物理アクセス層51が読出コマンドを受けて小ブロックカードの論理アドレスを取得したときには、これを第2のテーブルに反映させる。
The small block card physical / large block card logical conversion layer 53 performs the physical block address (256 kByte physical block) of the large block card from the logical block address of the small block card (corresponding to 16 sequential 16 kByte blocks) at the time of data reading or the like. A second table for performing a conversion process to the corresponding (minute). The small block card physical / large block card logical conversion layer 53 reflects this in the second table when the small block card
大ブロックカード物理アクセス層54は、小ブロックカード物理アクセス層51が書込コマンドを受けて取得した小ブロックカードの論理ブロックアドレスに基づき、NANDフラッシュメモリ4内のデータ配置を決定し、256kByte物理ブロック内において2kByte(1ページ)単位でシーケンシャルに16kByte分のデータを書き込む。また、大ブロックカード物理アクセス層54は、取得した小ブロックカードの論理ブロックアドレスや物理ブロックアドレスをNANDフラッシュメモリ4内部の管理データ領域内の所定の領域に格納する。
The large block card
このようにホスト装置20は、小ブロックカードの物理ブロックアドレスに基づくコマンドを発行するため、大ブロックカード側では、小ブロックカードの物理ブロックアドレスに対応するデータがどの256kByte物理ブロックの中に存在するのかが分かるように管理する。具体的には、16kByte毎に小ブロックカードの論理・物理ブロックアドレスの対応関係を管理すると共に、小ブロックカードの連続した256kByteブロック分の論理ブロックアドレスに対応するデータが大ブロックカード内のどの256kByte物理ブロックに格納されているかが分かるように管理する。
Since the
また、ホスト装置20は、消去単位が16kByteブロックであることを前提として、256kByte物理ブロックを消去単位としている大ブロックカードにアクセスしてくる。これに対し、大ブロックカードは、ホスト装置20が使用している制御アルゴリズムや物理フォーマットに合わせて柔軟に応答する。例えば、「新たな16kByteの論理ブロックアドレスにより書込操作が発生した場合は、それ以前に同一の論理ブロックアドレスにより書込操作が発生したときの小ブロックカードの16kByte物理ブロックアドレスに対応するブロック(以下、「旧アサイン論理ブロック」と称す)のデータ消去が行われる」というホスト装置20側のアルゴリズムに鑑み、消去対象の旧アサイン論理ブロックが消去状態であることをエミュレートする。しかし、実際には、大ブロックカード側では消去対象の16kByteブロック分の消去を行わない。こりにより、NANDフラッシュメモリ4への物理的な操作に関するオーバーヘッドを大幅に削減することができる。
Further, the
図6は、ホスト装置20側から送られてくるコマンドのフォーマットを示す図である。ホスト装置20側から送られてくるコマンドのパケットは、図6(a)に示すように、コマンド種別情報(ここでは「書込」)、アドレス(物理ブロックアドレス)、データ(コンテンツ等の実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
FIG. 6 is a diagram showing a format of a command sent from the
このようなフォーマットのパケットにおいては、図6(b)に示すように、付随データ16Byte中の所定の位置に小ブロックカードの「論理ブロックアドレス」(アクセス対象となる16Byteブロックに対応する論理アドレス)が配置されている。大ブロックカードは、コマンド種別情報、物理ブロックアドレス、データを取得するほか、特に上記「論理ブロックアドレス」を取得する。 In a packet of such a format, as shown in FIG. 6B, the “logical block address” (logical address corresponding to the 16-byte block to be accessed) of the small block card at a predetermined position in the accompanying data 16-byte. Is arranged. The large block card acquires command type information, physical block address, and data, and particularly acquires the “logical block address”.
図7は、ホスト装置20側が想定しているブロック書込操作と、メモリカード1(大ブロックカード)側が実際に行う書込処理とを、対比して示す図である。ホスト装置20側(図中の左側)では、小ブロックカードの論理アドレスに基づく16kByte物理ブロック単位のシーケンシャルな書込操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書込操作を行う。また、これに伴い、旧アサイン論理ブロックが16kByteブロック単位で消去されることを前提としている。
FIG. 7 is a diagram showing a comparison between a block writing operation assumed on the
一方、大ブロックカード(図中の右側)では、ホスト装置20側から書込コマンドを受けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータをNANDフラッシュメモリ4内にシーケンシャルに書き込む。この場合、上記前提に合わせ、ホスト装置20側に対しては大ブロックカード側小ブロックカード内の旧アサイン論理ブロックは消去の状態にあるものとして対応する。例えば、旧アサイン論理ブロックに対する読出アクセスがあった場合には、そのブロックは消去状態にある旨をホスト装置20に応答する。また、小ブロックについても、消去の状態にあるものとして対応する。
On the other hand, in the large block card (right side in the figure), when a write command is received from the
前述のように、ホスト装置20は、小ブロックの物理アドレスによる16kByte単位のランダムな書込操作を行う。このようなランダムな書込操作では、一般に、大ブロック(256kByte)の一部のみを書き換えるための処理が多発する。NANDフラッシュメモリでは、ブロック単位でしか消去を行えないため、フロックの一部のみを書き換える場合は、書き換える新データを消去済みの新ブロックに書き込み、新データに書き換えられる旧データを含む旧ブロックから、書き換えられないデータのコピー動作(以下、「巻き添えデータコピー」と称す)を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが増大することになる。
As described above, the
そこで、本実施形態では、ホスト装置20側から得られる論理アドレスの順序にし従って、大ブロックカード側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書込の発生を低減し、オーバーヘッドの増大を抑制する。
Therefore, in the present embodiment, according to the order of the logical addresses obtained from the
図8は、大ブロックカード内のNANDフラッシュメモリ4のブロックフォーマット(消去単位である256kByte物理ブロック分)を示す図である。大ブロックカードでは、消去単位である256kByte物理ブロックの中に、ホスト装置20側が管理する単位である16kByteに相当するデータを書き込むためのブロック(以下、ホスト管理ブロックと称す)が16個分含まれている。データ書込の際には、小ブロックカードの論理ブロックアドレスの順に個々のデータが配置される。
FIG. 8 is a diagram showing a block format of the
各ホスト管理ブロックは、8個のページで構成される。各ページは、512Byteデータ領域を4個分含むとともに、各データ領域に対応する10ByteECC領域を含んでいる。また、ページ中の最後の512Byteデータ領域(4番目の512Byteデータ領域)の後には、24Byte管理データ領域も設けられる。このため、ページ中の最後の10ByteECC領域は、4番目の512Byteデータ領域と24Byte管理データ領域の両方に対応する構成となっている。 Each host management block is composed of 8 pages. Each page includes four 512-byte data areas and a 10-byte ECC area corresponding to each data area. In addition, a 24-byte management data area is provided after the last 512-byte data area (fourth 512-byte data area) in the page. For this reason, the last 10-byte ECC area in the page has a configuration corresponding to both the fourth 512-byte data area and the 24-byte management data area.
消去単位である256kByte物理ブロックに含まれる128個の24Byte管理データ領域のうち、最後の24Byte管理データ領域60には、ホスト装置20側から送られてくるコマンドから取得された物理ブロックアドレスに相当するアドレス情報(以下、「ホスト管理物理アドレス」と称す)及び論理ブロックアドレスに相当するアドレス情報(以下、「ホスト管理論理ブロックアドレス」と称す)がまとめて格納される。
Of the 128 24-byte management data areas included in the 256 kByte physical block, which is an erasure unit, the last 24-byte
具体的には、16kByteデータが1つの16kByteホスト管理ブロックに書き込まれる毎に、対応するホスト管理物理アドレス(例えば、10bit分)が管理データ領域60内の所定の領域に格納される。これにより、16個の16kByteホスト管理ブロックに対応する16個のホスト管理物理アドレスが管理データ領域60内の所定の領域に格納される。一方、ホスト管理論理アドレスに関しては、16個の16kByteホスト管理ブロックに対応する連続した16個の論理ブロックアドレスのうち、その代表として、先頭の論理ブロックアドレス(例えば、10bit分)がホスト管理論理アドレスとして管理データ領域60内の所定の領域に格納される。
Specifically, each time 16 kByte data is written to one 16 kByte host management block, the corresponding host management physical address (for example, 10 bits) is stored in a predetermined area in the
上記構成において、各256Byteブロック内の最終領域(512Byte+24Byte+10Byteの領域)に配置されている情報を読み出して、その中の24Byte管理データを参照することにより、当該256kByteブロックに対応する16ブロック分の「ホスト管理物理アドレス」及び「ホスト管理論理ブロックアドレス」をまとめて取得することができる。 In the above configuration, by reading the information arranged in the last area (512 bytes + 24 bytes + 10 bytes area) in each 256 byte block and referring to the 24 bytes management data therein, the “host” corresponding to the 256 kbyte block “Management physical address” and “host management logical block address” can be acquired together.
各256Byteブロック内に格納された「ホスト管理物理アドレス」及び「ホスト管理論理ブロックアドレス」は、図5で説明した小ブロックカード物理・小ブロックカード論理変換層52が有する第1のテーブルと、小ブロックカード論理・大ブロックカード物理変換層53が有する第2のテーブルとを作成する際に使用される。
The “host management physical address” and “host management logical block address” stored in each 256-byte block are the same as the first table of the small block card physical / small block card
図9は、コントローラB3のバッファRAM32内に作成される各種のテーブルを示す図である。「小ブロックカード論理・物理ブロックアドレス」テーブル32a及び「小ブロックカード論理ブロックアドレス・大ブロックカード物理ブロックアドレス」テーブル32bは、それぞれ前述した第1のテーブル及び第2のテーブルに相当するものであり、データ管理領域60(図8参照)に格納されている「ホスト管理物理アドレス」及び「ホスト管理論理アドレス」を利用してバッファRAM32内に作成される。
FIG. 9 is a diagram showing various tables created in the
「小ブロックカード論理・物理ブロックアドレス」テーブル32aは、データ読出などの際に小ブロックカードの物理ブロックアドレス(16kByteブロック分に対応)から小ブロックカードの論理ブロックアドレス(16kByteブロック分に対応)への変換処理を行うために使用される。 The “small block card logical / physical block address” table 32a is changed from the physical block address of the small block card (corresponding to 16 kByte blocks) to the logical block address of the small block card (corresponding to 16 kByte blocks) at the time of data reading or the like. Used to perform the conversion process.
「小ブロックカード論理ブロックアドレス・大ブロックカード物理ブロックアドレス」テーブル32bは、データ読出などの際に小ブロックカードの論理ブロックアドレス(シーケンシャルな16kByteブロック×16個分に対応)から大ブロックカードの論理ブロックアドレス(256kByte物理ブロック分に対応)への変換処理を行うために使用される。 The “small block card logical block address / large block card physical block address” table 32b is used to read the logic of the large block card from the logical block address of the small block card (corresponding to 16 sequential 16 kbyte blocks) when data is read. It is used to perform conversion processing to block addresses (corresponding to 256 kByte physical blocks).
次に、図10のフローチャートを参照して、各種テーブルの作成処理の流れを説明する。例えば、メモリカード1(大ブロックカード)がホスト装置20側から電源供給を受けると(ステップA1)、コントローラB3内のCPU35は動作を開始し、ROM36に格納されている制御プログラム(小ブロックカードにおける物理・論理ブロックアドレスと当該NANDフラッシュメモリ4における物理ブロックアドレスとの対応付けを管理するためのプログラム)等をバッファRAM32上にロードして処理する(ステップA2)。なお、この時、コントローラA2内のCPU24も動作を開始し、ROM25に格納されている制御プログラム(メモリカード1全体の動作を制御するためのプログラム)等をバッファRAM22上にロードして処理する。
Next, a flow of various table creation processing will be described with reference to the flowchart of FIG. For example, when the memory card 1 (large block card) is supplied with power from the
次に、CPU35は、NANDフラッシュメモリ4のデータ管理領域60内に格納されている「ホスト管理物理アドレス」及び「ホスト管理論理ブロックアドレス」を利用することによって、バッファRAM32上に「小ブロックカード論理・物理ブロックアドレス」テーブル32aと「小ブロックカード論理ブロックアドレス・大ブロックカード物理ブロックアドレス」テーブル32bとを作成する(ステップA3)。そして、CPU35は、ホスト装置20からのコマンド待ち状態になり(ステップA4)、制御プログラムに従ってライトアクセス、リードアクセス、消去アクセスに対する各処理が行えるようになる。
Next, the
次に、図11のフローチャートを参照して、ライトアクセスに対する処理の流れを説明する。CPU35は、ホスト装置20側からコントローラA2を経由して、例えば、16kByteブロックに対する書込コマンドを受けると(ステップB1)、小ブロックカードの物理ブロックアドレスやデータのほか、これに付随する付随データに含まれている論理ブロックアドレスを取得する(ステップB2)。
Next, the flow of processing for write access will be described with reference to the flowchart of FIG. When the
CPU35は、取得した小ブロックカードの論理ブロックアドレスの順に、16kByteデータを256kByte物理ブロック内に書き込むと共に、当該小ブロックカードの論理ブロックアドレス及び物理ブロックアドレスに相当する「ホスト管理論理アドレス」及び「ホスト管理物理アドレス」を管理データ領域60内の所定の領域に格納する(ステップB3)。また、CPU35は、取得した上記小ブロックカードの論理ブロックアドレス及び物理ブロックアドレスをバッファRAM32上の「小ブロックカード論理・物理ブロックアドレス」テーブル32aと「小ブロックカード論理ブロックアドレス・大ブロックカード物理ブロックアドレス」テーブル32bに反映させる(ステップB4)。最後に、CPU35は、ホスト装置20に書込処理の完了を通知する(ステップB5)。
The
次に、図12のフローチャート及び図13〜図16の概念図を参照して、前述の図11に示したステップB3におけるデータ書込処理の詳細について説明する。 Next, details of the data writing process in step B3 shown in FIG. 11 will be described with reference to the flowchart of FIG. 12 and conceptual diagrams of FIGS.
CPU35は、データ書込に際し、対象となっている論理ブロックアドレス(16kByteブロック分に対応)が、先行する論理ブロックアドレス(16kByteブロック分に対応)に連続するものであるか否かを判定する(図12のステップC1)。すなわち、図13に示すように、16kByte物理ブロックアドレスX1へのデータ書込まで済んでいる状態において、次に書き込むべき物理ブロックが上記物理ブロックX1に続く16kByte物理ブロックアX2に該当するか否かを判定する。
When writing data, the
連続するものであれば、CPU35は、大ブロックカードの256kByte物理ブロック内に、先に書き込んだ16kByteデータに引き続き、書込対象の16kByteデータを書き込む(図12のステップC2)。すなわち、図14に示すように、前述の16kByte物理ブロックアX2へのデータ書込を行う。
If it is continuous, the
一方、連続するものでなければ、大ブロックカードの256kByte物理ブロック内の後半データに関して巻き添えデータコピー操作を実施する(図12のステップC3)。すなわち、図15に示すように、対象となっている256kByte物理ブロックには、上記物理ブロックX1までの書込(更新)によって不要となった旧データを有する旧アサイン16kByte論理ブロック群の物理領域Y1と、更新がないために有効に残っている有効データを有する物理領域Y2とが存在する。そこで、この物理ブロックY2のデータを、対象となっている256kByteブロック内の上記物理ブロックX1の後に続く物理領域Y3にコピーする。また、コピー後、CPU35は、不要となった旧256kByteブロック内のデータを消去する。
On the other hand, if it is not continuous, an accompanying data copy operation is performed on the latter half data in the 256 kByte physical block of the large block card (step C3 in FIG. 12). That is, as shown in FIG. 15, the target 256 kByte physical block includes the physical area Y1 of the old assignment 16 kByte logical block group having the old data that is no longer needed by writing (updating) up to the physical block X1. And a physical area Y2 having valid data that remains valid because there is no update. Therefore, the data of this physical block Y2 is copied to the physical area Y3 following the physical block X1 in the 256 kByte block of interest. Further, after copying, the
次いで、大ブロックカードの新たな256kByte物理ブロック(データ消去済み)への書込を実施し、待機する(図12のステップC4)。なお、書込対象となる領域が256kByte区切りの先頭であるか否かによって、処理が異なる。すなわち、書込対象となる領域が256kByte区切りの先頭の場合、図16(a)に示すように、当該先頭の位置にある物理ブロックZ1に16kByteデータを書き込む。一方、書込対象となる領域が256kByte区切りの先頭でない場合、前半データに関して巻き添えデータコピー操作を実施する。すなわち、図16(b)に示すように、先頭から上記書込対象の直前までの物理領域Z2に、旧アサイン16kByte物理ブロック群のデータをコピーし、その後、書込対象となる物理領域X3に16kByteデータを書き込む。 Next, writing to a new 256 kByte physical block (data erased) of the large block card is performed and waiting is performed (step C4 in FIG. 12). Note that the processing differs depending on whether or not the area to be written is at the head of a 256 kByte segment. That is, when the area to be written is at the head of 256 kBytes, as shown in FIG. 16A, 16 kByte data is written into the physical block Z1 at the head position. On the other hand, if the area to be written is not at the head of 256 kByte delimiters, a wrapping data copy operation is performed on the first half data. That is, as shown in FIG. 16B, the data of the old assignment 16 kByte physical block group is copied to the physical area Z2 from the beginning to immediately before the write target, and then the physical area X3 to be written is copied. Write 16 kByte data.
次に、図17に示すフローチャートを参照して、リードアクセスに対する処理の流れを説明する。CPU35は、ホスト装置20から、例えば16kByteブロックに対する読出コマンドを受けると(ステップD1)、そのコマンドに付加されている小ブロックカードの物理ブロックアドレスを取得する(ステップd2)。
Next, the flow of processing for read access will be described with reference to the flowchart shown in FIG. When the
次に、CPU35は、「小ブロックカード論理・物理ブロックアドレス」テーブル32aを参照することにより、取得した小ブロックカードの物理ブロックアドレスから小ブロックの論理ブロックアドレスを取得する(ステップD3)。次いで、CPU35は、「小ブロックカード論理ブロックアドレス・大ブロックカード物理ブロックアドレス」テーブル32bを参照することにより、取得した小ブロックの論理ブロックアドレスから大ブロックカードの物理ブロックアドレスを取得する(ステップD4)。
Next, the
次に、図18に示すフローチャートを参照して、消去アクセスに対する処理の流れを説明する。CPU35は、ホスト装置20から、例えば16kByte物理ブロックに対する消去コマンドを受けると(ステップE1)、必要に応じて、該当するブロックが消去状態にあることを示す情報をバッファRAM32上の所定の領域に記録する(所定のテーブルを更新する)(ステップE2)。
Next, the flow of processing for erase access will be described with reference to the flowchart shown in FIG. When the
なお、このステップE2の処理は省略してもよい。ステップE2の処理を行っておくと、電源オフもしくは電源オンのときにホスト装置20側から消去状態の確認要求があった場合に、当該消去状態を正しく応答することができる。
Note that the process of step E2 may be omitted. If the processing of step E2 is performed, when there is a request for confirmation of the erase state from the
最後に、CPU35は、実際には指定されたブロックに対する消去処理を行わずに、消去を行った旨をホスト装置20へ通知する(ステップE3)。
Finally, the
図19は、本実施の形態のメモリカード1に対してホスト装置20が書き込みを行う際の当該メモリカード1のI/OピンとR/Bピンに入出力される信号の例を示すタイミングチャートである。
FIG. 19 is a timing chart showing an example of signals input to and output from the I / O pin and the R / B pin of the
ホスト装置20は、メモリカード1は16kByteの消去ブロックサイズを有する不揮発性メモリであると仮定してメモリカード1を制御している。例えば、メモリカード1に対する書込の際には、ホスト装置20は、シリアルデータインプットコマンド80H(Hは16進を示す)をI/Oピン1〜8へ入力する。次に、ホスト装置20は、カラムアドレスC/A及びページアドレスP/Aを、I/Oピン1〜8へ入力する。なお、ここでカラムアドレスC/A及びページアドレスP/Aは、ホスト装置20がメモリカード1に対して想定している仮想物理アドレス空間におけるカラムアドレス及びページアドレスである。
The
更に、ホスト装置20は、書込データを、I/Oピン1〜8の個々に対し、528回入力する。具体的には、ホスト装置20は、ライトイネーブルピンへの入力信号を528回クロッキングしながら、それぞれのI/Oピンに対して528ビット(すべてのI/Oピン合計で528バイト)のデータを順次シフトインする。データをシフトインが完了すると、ホスト装置20は、プログラムコマンド10HをI/Oピン1〜8へ入力する。これに応答してメモリカード1は、そのR/Bピンにロウレベルの信号を出力し、メモリカード1がビジー状態であることを示す。その後、所定時間後にR/Bピンにハイレベルの信号を出力することでレディ状態になったことを示す。
Further, the
しかしながら、図19におけるR/Bピンの状態は、あくまでもホスト装置20に対してメモリカード1がどのような状態かを示すものである。つまり、図19において、プログラムコマンド10Hの入力に応答して、R/Bピンがビジー状態(つまりロウレベルを出力)を示したとしても、メモリカード1内部でNANDフラッシュメモリ4に対する書込動作(つまり、ページバッファからメモリセルアレイへのデータ転送)が実際に行われているとは限らない。また、R/Bピンがレディ状態に復帰したとしても、メモリカード1内部でNANDフラッシュメモリ4に対する書込動作が実際に完了しているとは限らない。
However, the state of the R / B pin in FIG. 19 only indicates the state of the
図20は、本実施の形態のメモリカード1内のNANDフラッシュメモリ4に対して、当該メモリカード1内のコントローラB3が書き込みを行う際のNANDフラッシュメモリ4のI/OピンとR/Bピンに入出力される信号の例を示すタイミングチャートである。
FIG. 20 shows the
コントローラB3は、NANDフラッシュメモリ4は256kByteの消去ブロックサイズを有する不揮発性メモリであると認識している。同様に、コントローラA2もNANDフラッシュメモリ4は256kByteの消去ブロックサイズを有する不揮発性メモリであると認識している。例えば、NANDフラッシュメモリ4に対する書込の際には、コントローラB3は、シリアルデータインプットコマンド80H(Hは16進を示す)をI/Oピン1〜8へ入力する。次に、コントローラB3は、カラムアドレスC/A及びページアドレスP/Aを、I/Oピン1〜8へ入力する。なお、ここでカラムアドレスC/A及びページアドレスP/Aは、コントローラB3がNANDフラッシュメモリ4に対して想定している実物理アドレス空間におけるカラムアドレス及びページアドレスとは必ずしも一致していない。
The controller B3 recognizes that the
更に、コントローラB3は、書込データを、I/Oピン1〜8の個々に対し、2112回入力する。具体的には、コントローラB3は、ライトイネーブルピンへの入力信号を2112回クロッキングしながら、それぞれのI/Oピンに対して2112ビット(すべてのI/Oピン合計で2112バイト)のデータを順次シフトインする。データをシフトインが完了すると、コントローラB3は、プログラムコマンド10HをI/Oピン1〜8へ入力する。これに応答してメモリカード1は、そのR/Bピンにロウレベルの信号を出力し、メモリカード1がビジー状態であることを示す。その後、所定時間後にR/Bピンにハイレベルの信号を出力することでレディ状態になったことを示す。
Further, the controller B3 inputs write data 2112 times for each of the I / O pins 1 to 8. Specifically, the controller B3 clocks the input signal to the write enable pin 2112 times and outputs 2112 bits of data for each I / O pin (2112 bytes in total for all I / O pins). Shift in sequentially. When the data shift-in is completed, the controller B3 inputs a
図20におけるR/Bピンの状態は、コントローラB3に対してNANDフラッシュメモリ4が実際にどのような状態かを示すものである。
The state of the R / B pin in FIG. 20 indicates what state the
なお、上記図19及び図20においては、カラムアドレスC/A及びページアドレスP/Aの入力それぞれを1つのサイクルで示しているが、メモリカード1の容量またはNANDフラッシュメモリ4の容量に応じて、適宜2サイクル以上になる場合もある。
In FIG. 19 and FIG. 20, the column address C / A and the page address P / A are each input in one cycle, but depending on the capacity of the
図21は、本実施の形態のメモリカード1の使用方法を模式的に示す図である。
FIG. 21 is a diagram schematically showing a method of using the
例えば、ホスト装置20に予め搭載されているコントローラが、16kByteの消去ブロック単位を有する小ブロックカード100の使用を前提としているものとする。この場合、メモリカード内に適切なコントローラを内蔵することなく256kByteの消去ブロック単位を有するメモリを使用して大ブロックカードを実現すると、消去単位が異なることから正常なアクセスができない虞がある。これに対し、本実施の形態に基づき256kByteの消去ブロック単位を有するメモリ用のコントローラB3を含む大ブロックカード1を実現すれば、小ブロックカード対応のホスト装置20に対しても大ブロックカード1を挿入して使用することが可能となる。
For example, it is assumed that the controller mounted in advance in the
このように本実施の形態によれば、小ブロックカードをアクセス対象とするホスト装置20側から送られてくる書込コマンドに付随されている情報から連続する論理ブロックアドレスを取得して、大ブロックカードの物理ブロック内において小ブロックカードの論理ブロックアドレスの順にデータを配置することによりデータ配置の最適化を実現し、書込時のオーバーヘッドの削減を実現している。また、小ブロックカードの物理・論理ブロックアドレス及び大ブロックカードの物理ブロックアドレスの対応関係を管理することにより、小ブロックカードと大ブロックカードの整合性を効率的に維持することができる。また、ホスト装置20からの消去コマンドに対しても、それを実際に大ブロックカードの消去ブロックサイズの一部に反映させる(部分的に消去状態とする)のではなく、あたかもメモリカード内の該当消去ブロックが消去されたように振る舞うことにより、大ブロックカード内部の操作負荷を軽減することが可能となる。
As described above, according to the present embodiment, a continuous logical block address is acquired from information attached to a write command sent from the
また、本実施の形態のメモリカード1では、メモリカード1全体の動作を制御するコントローラA2と、NANDフラッシュメモリ4に対するアクセス処理を制御するコントローラB3とを有する構成とした。コントローラB3は、NANDバス12によりコントローラA2と接続して、コントローラB3がコントローラA2に対してNANDフラッシュメモリとして認識されるように構成した。このため、例えば、NANDフラッシュメモリ4の世代が変更されて、NANDバス13を介して行われる制御コマンド等のプロトコルが変更されたり、信頼性を維持するためのECC回路33を変更する必要が発生した場合等は、コントローラB3のNAND_I/F34及びECC回路33を変更することにより、コントローラA2やホストバス11に接続されるホスト装置20に変更を加えずにメモリカード1を再構築することが可能になる。
In addition, the
なお、上記図1に示したメモリカード1を構築する際には、2つのコントローラA2,B3とNANDフラッシュメモリ4を別々のパッケージとして構成しても良い。例えば、図22に示すように、メモリカード1は、コントローラA2を含むコントローラチップ201と、コントローラB3及びNANDフラッシュメモリ4を含むメモリチップ202として構成しても良い。このように構成することにより、NANDフラッシュメモリ4の世代が変わっても、メモリチップ202を交換するだけで、メモリカード1全体に影響を与えずにメモリカード1を再構築することが可能になる。
When constructing the
(第2の実施の形態)
本第2の実施の形態では、NANDバス12とNANDバス13を直接接続する経路を形成する構成としたコントローラBを有するメモリカードを提供する。図23は、本発明のメモリシステムを適用した第2の実施の形態に係るメモリカードの概略構成を示す図である。なお、図23において、上記第1の実施の形態において図22に示したメモリカード1と同一の構成部分には同一の符号を付しており、その同一構成の構成説明は省略する。
(Second Embodiment)
In the second embodiment, a memory card having a controller B configured to form a path for directly connecting the
図23に示すように、メモリカード200は、コントローラA2を含むコントローラチップ201と、コントローラB2021及びNANDフラッシュメモリ4を含むメモリチップ202とを有する。コントローラA2は、ホストバス11によりホスト装置20に接続され、NANDバス12によりコントローラB2021に接続されている。コントローラB2021は、NANDバス12によりコントローラA2に接続され、NANDバス13によりNANDフラッシュメモリ4に接続されている。NANDフラッシュメモリ4は、NANDバス13によりコントローラB3に接続されている。なお、NANDフラッシュメモリ4は、一つのメモリセルに1ビットのデータを記憶する2値メモリであっても良いし、一つのメモリセルに1ビットより多いデータ(例えば、2ビット)を記憶する多値メモリであっても良い。ここでは、不揮発性メモリの例としてNAND型フラッシュメモリを挙げて説明するが、不揮発性メモリはNAND型フラッシュメモリに限らず、例えば、NOR型フラッシュメモリ等でもよい。
As shown in FIG. 23, the
本第2の実施の形態では、ホスト装置20は、メモリカード200の出荷テスト時において、テスタとしてメモリカード200と電気的に接続されるものとする。コントローラB2021は、NAND_I/F31が受け取ったアドレスを変換し、この変換したアドレスを用いてNANDフラッシュメモリ4にアクセスする第1モードと、NAND_I/F31が受け取ったアドレスを用いてNANDフラッシュメモリ4に直接アクセスする第2モードとで動作し、第1モードと第2モードとの動作モードの切り替えをコマンドに応じて制御する。
In the second embodiment, it is assumed that the
以下において、第1モードから第2モードへの切り替え動作を移行動作と呼び、第2モードから第1モードへの切り替え動作を復帰動作と呼ぶ。なお、「第1モード」とは、ホスト装置20がNANDフラッシュメモリ4に直接アクセスしない動作モードであり、メモリカード200を実際に使用する時と同様の動作モードを意味する。
Hereinafter, the switching operation from the first mode to the second mode is referred to as a transition operation, and the switching operation from the second mode to the first mode is referred to as a return operation. The “first mode” is an operation mode in which the
出荷テスト時において、ホスト装置20は、コントローラB2021とNANDフラッシュメモリ4を個別にテストする。以下の説明では、コントローラB2021のみを対象にして実行するテストを「コントローラ単体テスト」、NANDフラッシュメモリ4のみを対象にして実行するテストを「NAND単体テスト」とそれぞれ呼ぶ。コントローラ単体テスト時においては、動作モードが第1モードに設定され、NAND単体テスト時においては、動作モードが第2モードに設定される。
During the shipping test, the
NANDフラッシュメモリ4は、例えば、1Gビット以上の記憶容量を有し、消去単位である消去ブロックサイズが256kByteに設定され、データの書き込み及び読み出しは16kByte単位で行われるものとする。なお、NANDフラッシュメモリ4は、例えば、0.09μmプロセス技術を用いて製造され、デザインルールは0.1μm未満であるものとする。
For example, the
コントローラB2021は、図24に示すように、NAND_I/F31、バッファRAM32、ECC回路33、NAND_I/F34、CPU35、ROM36、及びアクセス経路設定部2022を有する。
As shown in FIG. 24, the
CPU35は、NANDフラッシュメモリ4に対するアクセス処理を制御するものである。CPU35は、第1モードにおいて、ROM36内に格納されているファームウェアをバッファRAM32にロードして所定の処理を実行する。CPU35は、第1モード時に実行する処理により、各種のテーブルをバッファRAM32内に作成し、ホスト装置20から書込コマンド、読出コマンド、及び消去コマンドを受け付けてNANDフラッシュメモリ4に対するアクセスを実行し、バッファRAM32を通じたデータ転送処理を制御する。
The
アクセス経路設定部2022は、第2モードにおいて、ホスト装置20がNANDフラッシュメモリ4に直接アクセスするアクセス経路を設定する。図24に示すように、アクセス経路設定部2022は、NAND_I/F31及びバッファRAM32の間に接続された第1のスイッチSW1と、ECC回路33及びNAND_I/F34の間に接続された第2のスイッチSW2を有する。第1及び第2のスイッチSW1,SW2は、CPU35から入力される切り替え制御信号に応じて、NAND_I/F31、バッファRAM32、ECC回路33及びNAND_I/F34の接続関係を切り替える。この切り替えにより、第2モードでは、書込データ及び読出データ等がバッファRAM32及びECC回路33を迂回し、且つホスト装置20が発行するコマンド等をNANDフラッシュメモリ4に直接伝達できる。
The access path setting unit 2022 sets an access path for the
以上のように、コントローラB2021は、移行動作と復帰動作をコマンドに応じて制御する構成としているため、メモリカード200の外部接続ピン数を増加させることなく第2モードを実現することができる。
As described above, since the
メモリカード200の外部接続ピンの配置例を図25に示す。図25は、メモリカード200をピン形成面から見た平面図である。メモリカード200は、第1〜第18ピンP1〜P18の合計18個の外部接続ピンを有している。第1〜第18ピンP1〜P18の各ピンと各ピンに割り当てられる信号例を図26に示す。なお、図26の属性“タイプ”において、記号“S”は電源電圧を示し、記号“I”はメモリカード200への入力であることを示し、記号“O”はメモリカード200からの出力であることを示し、記号“I/O”はメモリカード200に対する入出力であることを示す。また、ピン名(記号名)の先頭に付した記号“−”は、ロウ・トゥルー信号であること、すなわち、“Low”レベルの時に活性化する信号であることを示す。
An arrangement example of the external connection pins of the
図26において、第1及び第9ピンP1,P9は接地電圧GNDに、第18ピンP18は電源電圧Vccにそれぞれ割り当てられている。 In FIG. 26, the first and ninth pins P1, P9 are assigned to the ground voltage GND, and the eighteenth pin P18 is assigned to the power supply voltage Vcc.
第2ピンP2は、メモリカード200の内部動作状態をホスト装置20に知らせるためのレディ/ビジー(R/−B)信号に割り当てられている。メモリカード200内において、データの書き込み、読み出し、及び消去時等の動作実行中は第2ピンP2からビジー信号が出力され、動作が完了すると第2ピンP2からレディ信号が出力される。
The second pin P2 is assigned to a ready / busy (R / -B) signal for notifying the
第3ピンP3は、メモリカード200からデータを出力させるリード・イネーブル(−RE)信号に、第4ピンP4は、メモリカード200を動作可能状態にするカード・イネーブル(−CE)信号にそれぞれ割り当てられている。
The third pin P3 is assigned to a read enable (-RE) signal for outputting data from the
第5ピンP5は、コマンドの取り込みを制御するためのコマンド・ラッチ・イネーブル(CLE)信号に、第6ピンP6は、アドレスの取り込みを制御するためのアドレス・ラッチ・イネーブル(ALE)信号にそれぞれ割り当てられている。 The fifth pin P5 is a command latch enable (CLE) signal for controlling command fetching, and the sixth pin P6 is an address latch enable (ALE) signal for controlling address fetching. Assigned.
第7ピンP7は、データをメモリカード200に書き込むためのライト・イネーブル(−WE)信号に、第8ピンP8は、書き込み及び消去を強制的に禁止させるためのライト・プロテクト(−WP)信号にそれぞれ割り当てられている。
The seventh pin P7 is a write enable (-WE) signal for writing data to the
第10〜第17ピンP10〜P17は、コマンド、アドレス、及びデータの各ビットD0〜D7にそれぞれ割り当てられている。なお、図26に示した外部接続ピンの配置例は、図24に示したホストバス11に接続されたコントローラA2内のホストI/F21(図2参照)が有するピン(図示せず)と1対1で対応するものである。
The tenth to seventeenth pins P10 to P17 are assigned to the bits D0 to D7 of the command, address, and data, respectively. The example of the arrangement of the external connection pins shown in FIG. 26 is the same as the pin (not shown) of the host I / F 21 (see FIG. 2) in the controller A2 connected to the
一方、NANDフラッシュメモリ4及びNAND_I/F34は、図26に示したホストI/F21が有するピンと同様のピン構成を有している。具体的には、NANDフラッシュメモリ4及びNAND_I/F34は、コマンド、アドレス、及びデータが入出力される入出力(I/O)ピン1〜8と、レディ・ビジー信号を出力するR/−Bピンと、リード・イネーブル信号が入力される−REピンと、チップ・イネーブル信号が入力される−CEピンと、コマンド・ラッチ・イネーブル信号が入力されるCLEピンと、アドレス・ラッチ・イネーブル信号が入力されるALEピンと、ライト・イネーブル信号が入力される−WEピンと、ライト・プロテクト信号が入力される−WPピンと、を備える。
On the other hand, the
以上のように、メモリカード200は、NANDフラッシュメモリ4のピン構成に対応したピン構成を有しており、ホスト装置20がNANDフラッシュメモリ4に対するコマンドシーケンスによりメモリカード200にアクセスを行うことが可能である。ここで、「コマンドシーケンス」とは、1つのコマンドとアドレス等との組み合わせ、複数のコマンドの組み合わせ、あるいは、コマンド、アドレス、データを何れかもしくは全てを1つ又は複数組み合わせたものを意味する。
As described above, the
上述したように、コントローラB2021は、移行動作と復帰動作をコマンドに応じて制御する。しかし、コントローラB2021は、ホスト装置20から入力される移行動作及び復帰動作に係るコマンドを書き込みコマンドや読み出しコマンドと認識して誤動作する虞がある。また、ホスト装置20から復帰動作を指示するコマンド(例えば、“FFh”コマンド(h;16進を示す))と同一のアドレス又はデータが入力された場合、コントローラB2021は、意図しない復帰動作を実行する虞がある。
As described above, the
そこで、本第2の実施の形態では、コントローラB2021がホスト装置20から入力されるコマンドシーケンスにより移行動作及び復帰動作を制御することにより、コントローラB2021の誤動作を回避することを可能にする。具体的には、NAND単体テストを実行する場合、ホスト装置20は、メモリカード200の電源投入後、移行動作を指示するコマンドシーケンスを発行する。コントローラB2021は、当該コマンドシーケンス受け付けることより動作モードを第2モードに設定し、ホスト装置20から復帰動作を指示するコマンドシーケンスが発行されるまで第2モードを維持する。
このようにコマンドシーケンスを用いることにより、コントローラB2021が第2モード中に意図しない復帰動作を実行することを回避できる。
Therefore, in the second embodiment, the
By using the command sequence in this way, it is possible to avoid the
更に、ホスト装置20は、第1モードにおいて、消去ブロックサイズが16kByteに設定されているNANDフラッシュメモリ4を使用することを前提として、16kByte単位で論理アドレス及び物理アドレスの割り当てを行う。ホスト装置20は、第1モードにおいて、論理アドレス16kByte分に関してシーケンシャルに書き込みアクセス又は読み出しアクセスを行うため、該当するコマンドを発行する。なお、以下の説明において使用する用語「論理ブロックアドレス」及び「物理ブロックアドレス」は、それぞれ、NANDフラッシュメモリ4内のブロック自体に割り当てられる論理アドレス、物理アドレスを意味するものである。また、「論理アドレス」、「物理アドレス」は、主に、ブロック自体の論理アドレス、物理アドレスを意味するものであるが、ブロック単位よりも細かい分解能の単位に相当するアドレスである場合もあり得る。
Further, in the first mode, the
また、ホスト装置20は、メモリカード200内部の物理状態、例えば、何処の物理ブロックアドレスに、何番番目の論理セクタアドレスデータが含まれているか、あるいは何処のブロックが消去状態であるか等を管理し、メモリカード200内のNANDフラッシュメモリ4を直接制御するものとして構築されている。
The
消去ブロックサイズが16kByteに設定されているNANDフラッシュメモリ4を使用することを想定してホスト装置20が動作する場合、NANDフラッシュメモリ4の実際の消去ブロックサイズは256kByteであるため、メモリカード200は正常に応答できずに誤動作することになる。
When the
このメモリカード200の誤動作を回避するため、コントローラB2021は、第1モードにおいて、ホスト装置20がNANDフラッシュメモリ4の消去ブロックサイズよりも小さい消去ブロックサイズを想定して発行するコマンドシーケンスを処理し、NANDフラッシュメモリ4に対する書き込み、読み出し、及び消去の各動作を制御する。
In order to avoid this malfunction of the
図27を用いて、ホスト装置20が想定しているNANDフラッシュメモリと、実際に使用するNANDフラッシュメモリ4とのデータ配置の差異を説明する。
The difference in data arrangement between the NAND flash memory assumed by the
ホスト装置20が想定しているNANDフラッシュメモリでは、各ページが512Byte分のデータ記憶部と、16Byte分の冗長部とからなる528Byteの記憶容量を有しており、32ページ分が1つの消去単位(16kByte+0.5kByte)となる。以下では、説明の便宜上、このようなページ構成のNANDフラッシュメモリを搭載したメモリカードを「小ブロックカード」と称する場合がある。
In the NAND flash memory assumed by the
一方、実際に使用するNANDフラッシュメモリ4では、各ページは、例えば、512Byte分のデータ記憶部が4つと、10Byte分の冗長部が4つと、24Byte分の管理データ記憶部とからなる2112Byteの記憶容量を有しており、128ページ分が1つの消去単位(256kByte+8kByte)となる。以下では、説明の便宜上、このようなページ構成のNANDフラッシュメモリ4を搭載したメモリカード200を「大ブロックカード」と称する場合がある。
On the other hand, in the
また、図27に示すように、ホスト装置20が想定しているNANDフラッシュメモリ及び実際に使用するNANDフラッシュメモリ4は、NANDフラッシュメモリへのデータ入出力を行うためのページバッファ401,402をそれぞれ備えている。ホスト装置20が想定しているNANDフラッシュメモリに備えられるページバッファ401の記憶容量は、528Byte(512Byte+16Byte)である。一方、実際に使用するNANDフラッシュメモリ4に備えられるページバッファ402の記憶容量は、2112Byte(2048Byte+64Byte)である。データ書き込み等の際には、NANDフラッシュメモリに対するデータ入出力は、各ページバッファ401,402の記憶容量に相当する1ページ単位で実行される。
As shown in FIG. 27, the NAND flash memory assumed by the
上述したように、ホスト装置20が想定しているNANDフラッシュメモリと実際に使用するNANDフラッシュメモリ4は、ページ構成が異なるため、コントローラB2021は、ホスト装置20がNANDフラッシュメモリ4にアクセス可能とするための各種処理を実行する。
As described above, since the
ホスト装置20及びメモリカード200内のコントローラB2021の各機能構成例を図28に示す。ホスト装置20は、ホスト装置20側のROM(図示せず)等に格納されたプログラムをCPU(図示せず)等にて実行することにより、図28に示すアプリケーション処理部71、ファイルシステム部72、ドライバ部73、及び物理アクセス部74の各機能を実現する。
FIG. 28 shows functional configuration examples of the
一方、コントローラB2021は、例えば、ROM36に格納された制御プログラムをCPU35にて実行することにより、図28に示す第1物理アクセス部81、物理/論理変換部82、論理/物理変換部83、及び第2物理アクセス部84の各機能を実現する。
On the other hand, the
ホスト装置20側のアプリケーション処理部71がファイルの書き込みをファイルシステム部72に要求すると、ファイルシステム部72は、小ブロックカードの論理ブロックアドレスに基づきシーケンシャルなセクタ書き込みをドライバ部73に指示する。これを受けて、ドライバ部73は、小ブロックカードの論理ブロックアドレスに基づく16kByte毎のシーケンシャルな書き込みを実現するため、論理/物理ブロック変換を行い、物理アクセス部74を通じて、小ブロックカードの物理ブロックアドレスによるランダムな書き込みコマンドを大ブロックカードに対して発行し、データ転送を行う。
When the
書き込みアクセスにおいては、小ブロックカードの場合も大ブロックカードの場合も、プロトコル上、(1)コマンド、(2)ページアドレス(ロウアドレス)、(3)カラムアドレス、(4)データ、(5)プログラム確認コマンド、といった順序で情報の授受が行われる。 In the write access, in the case of a small block card and a large block card, according to the protocol, (1) command, (2) page address (row address), (3) column address, (4) data, (5) Information is exchanged in the order of program confirmation commands.
コントローラB2021側の第1物理アクセス部81は、ホスト装置20から小ブロックカードの物理ブロックアドレスによる書き込みコマンドを受け付けると、物理ブロックアドレスやデータのほか、これに付随する付随データに含まれている論理ブロックアドレスを取得する。
When the first
物理/論理変換部82は、データ読み出しの際に小ブロックカードの物理ブロックアドレス(16kByte分に対応)から小ブロックカードの論理ブロックアドレス(16kByte分に対応)への変換処理を行うための第1テーブルを作成する。第1テーブルは、バッファRAM32の第1テーブル格納領域321に格納される。物理/論理変換部82は、第1物理アクセス部81が書き込みコマンドを受け付けて小ブロックカードの論理ブロックアドレスを取得したときに、その論理ブロックアドレスを第1テーブルに反映させる。また、物理/論理変換部82は、物理ブロックアドレスに関しても第1テーブルに反映させる。
The physical /
論理/物理変換部83は、データ読み出しの際に小ブロックカードの論理ブロックアドレス(シーケンシャルな16kByte×16個分に対応)から大ブロックカードの物理ブロックアドレス(256kByte物理ブロック分に対応)への変換処理を行うための第2テーブルを作成する。第2テーブルは、バッファRAM32の第2テーブル格納領域322に格納される。論理/物理変換部83は、第1物理アクセス部81が書き込みコマンドを受け付けて小ブロックカードの論理ブロックアドレスを取得したときに、その論理ブロックアドレスを第2テーブルに反映させる。
The logical /
第2物理アクセス部84は、第1物理アクセス部81が書き込みコマンドを受け付けて取得した小ブロックカードの論理ブロックアドレスに基づき、NANDフラッシュメモリ4内部のデータ配置を決定し、256kByte物理ブロック内において2kByte(1ページ)単位でシーケンシャルに16kByte分のデータを書き込む。また、第2物理アクセス部84は、取得した小ブロックカードの論理ブロックアドレスや物理ブロックアドレスをNANDフラッシュメモリ4内部における管理データ領域内の所定の領域に格納する。
The second
このように、ホスト装置20は小ブロックカードの物理ブロックアドレスに基づくコマンドを発行するため、メモリカード200側では、小ブロックカードの物理ブロックアドレスに対応するデータが何処の256kByte物理ブロックの内に存在するかが分かるように管理する。具体的には、コントローラB2021は、16kByteブロック毎に小ブロックカードの論理/物理ブロックアドレスの対応関係を管理するともに、小ブロックカードの連続した256kByte分の論理ブロックアドレスに対応するデータがメモリカード200のNANDフラッシュメモリ4内の何処の256kByte物理ブロックに格納されているかが分かるように管理する。
As described above, since the
次に、図29を参照してホスト装置20からメモリカード200に送られるコマンドのフォーマット例を説明する。ホスト装置20から送られるコマンドのパケットは、図29(a)に示すように、コマンド種別情報(例えば、書込コマンド)と、アドレス(物理ブロックアドレス)と、データ(コンテンツ等の実データ及び付随データ(512Byte+16Byte))といった各種情報を含んでいる。
Next, a format example of a command sent from the
このようなフォーマットのパケットでは、図29(b)に示すように、付随データ16Byte中の所定の位置に小ブロックカードの論理ブロックアドレス(アクセス対象となる16kByteブロックに対応する論理アドレス)が配置されている。メモリカード200は、ホスト装置20から送られるコマンドからコマンド種別情報、物理ブロックアドレス、及びデータを取得するほか、特に論理ブロックアドレスを取得する。なお、論理ブロックアドレスは、読み出しコマンドの場合には付加されない。
In the packet of such a format, as shown in FIG. 29B, the logical block address of the small block card (logical address corresponding to the 16 kByte block to be accessed) is arranged at a predetermined position in the accompanying data 16 bytes. ing. The
次に、図30を参照して、第1モードにおいて、ホスト装置20が想定しているブロック書き込み操作と、メモリカード200が実際に行う書き込み処理とを対比して説明する。
Next, with reference to FIG. 30, the block write operation assumed by the
ホスト装置20側では、図30(a)に示すように、小ブロックカードの論理アドレスに基づく16kByteブロック単位のシーケンシャルな書き込み操作の発生時に、小ブロックカードの物理ブロックアドレスによる16kByteブロック単位のランダムな書き込み操作が行われる。
On the
一方、メモリカード200側では、図30(b)に示すように、ホスト装置20から書き込みコマンドを受け付けた場合、小ブロックカードの論理ブロックアドレスに基づく16kByteブロック単位のデータがNANDフラッシュメモリ4内にシーケンシャルに書き込まれる。
On the other hand, on the
上述のように、ホスト装置20は、小ブロックカードの物理アドレスによる16kByteブロック単位のランダムな書き込み操作を行う。このようなランダムな書き込み操作では、一般に、大ブロック(256kByte)の一部のみを書き換える処理が多発する。NANDフラッシュメモリ4では、ブロック単位でしか消去を行えないため、ブロックの一部のみを書き換える場合は、書き換える新データを消去済みの新ブロックに書き込み、新データにより書き換えられる旧ブロックから、書き換えられない残りのデータを新ブロックにコピーする必要がある。
As described above, the
上記のように、ブロックの一部のみを書き換える処理は、書き換えられないデータのコピー動作(巻き添えデータコピー)を伴うため、ブロックの一部のみを書き換える処理が多発すると、オーバーヘッドが増大することになる。そこで、本第2の実施の形態では、ホスト装置20側から得られる論理アドレスの順序に従って、メモリカード200側で物理アドレスを再度割り当てることにより、ブロックの一部のみの書き換えの発生を低減し、オーバーヘッドの増大を抑制可能にしている。
As described above, since the process of rewriting only a part of the block involves a copy operation of data that cannot be rewritten (wrapped data copy), if the process of rewriting only a part of the block occurs frequently, the overhead increases. . Therefore, in the second embodiment, by reassigning physical addresses on the
次に、図31を参照して、NANDフラッシュメモリ4のブロックフォーマット(消去単位である256kByte物理ブロック分)について説明する。 Next, with reference to FIG. 31, the block format of the NAND flash memory 4 (for 256 kByte physical blocks as an erase unit) will be described.
NANDフラッシュメモリ4では、消去単位である256kByte物理ブロックの中に、ホスト装置20が管理する単位である16kByteに相当するデータを書き込むためのブロック(以下、「ホスト管理ブロック」という)が16個分含まれている。データ書き込みの際には、小ブロックカードの論理ブロックアドレスの順序に従って個々のデータが配置される。
In the
各ホスト管理ブロックは、8個のページで構成される。各ページは、512Byteデータ領域を4個分含むと共に、各データ領域に対応する10Byteの誤り訂正符号(ECC)領域を含んでいる。また、ページ中の最後の512Byteデータ領域(4番目の512Byteデータ領域)の後には、24Byte管理データ領域が設けられる。このため、ページ中の最後の10ByteECC領域は、4番目の512Byteデータ領域と24Byte管理データ領域の両方に対応する構成となっている。 Each host management block is composed of 8 pages. Each page includes four 512-byte data areas and a 10-byte error correction code (ECC) area corresponding to each data area. Also, a 24-byte management data area is provided after the last 512-byte data area (fourth 512-byte data area) in the page. For this reason, the last 10-byte ECC area in the page has a configuration corresponding to both the fourth 512-byte data area and the 24-byte management data area.
消去単位である256kByteの物理ブロックに含まれる128個の24Byte管理データ領域のうち、例えば、最後の24Byte管理データ領域には、ホスト装置20から送られてくるコマンドから取得された物理ブロックアドレスに相当するアドレス情報、及び論理ブロックアドレスに相当するアドレス情報がまとめて格納される。これらのアドレス情報は、上述した第1及び第2テーブルを作成する際に使用される。
Of the 128 24-byte management data areas included in the 256 kByte physical block that is an erasure unit, for example, the last 24-byte management data area corresponds to the physical block address acquired from the command sent from the
次に、図32を参照して、第1モードにおいて、メモリカード200に対してホスト装置20が書き込みを行う際に、メモリカード200の入出力(I/O)ピン(第10〜第17ピンP10〜P17)とレディ/ビジー(R/−B)ピン(第2ピンP2)に入出力される信号例を説明する。
Next, referring to FIG. 32, when the
ホスト装置20は、メモリカード200が16kByteの消去ブロックサイズを有する不揮発性メモリであると仮定してメモリカード200を制御している。このため、メモリカード200に対する書き込みの際に、ホスト装置20は、シリアルデータインプットコマンド“80H”をI/Oピン(第10〜第17ピンP10〜P17)へ入力する。次に、ホスト装置20は、カラムアドレス“C/A”及びページアドレス“P/A”をI/Oピン(第10〜第17ピンP10〜P17)へ入力する。なお、ここで、カラムアドレス“C/A”及びページアドレス“P/A”は、ホスト装置20がメモリカード200に対して想定している仮想物理アドレス空間におけるカラムアドレス及びページアドレスである。
The
更に、ホスト装置20は、書き込みデータを、I/Oピン(第10〜第17ピンP10〜P17)の各々に対して528回入力する。具体的には、ホスト装置20は、ライト・イネーブルピン(第7ピンP7)への入力信号を528回クロッキングしながら、それぞれのI/Oピン(第10〜第17ピンP10〜P17)に対し528ビット(全てのI/Oピン合計で528Byte)のデータを順次シフトインする。データのシフトインが完了すると、ホスト装置20は、プログラムコマンド“10H”をI/Oピン(第10〜第17ピンP10〜P17)へ入力する。これに応答してメモリカード200は、そのレディ/ビジー(R/−B)ピンに“L”信号を出力し、メモリカード200がビジー状態であることをホスト装置20に伝達する。その後、所定期間後にレディ/ビジー(R/−B)ピンに“H”信号を出力することで、メモリカード200がレディ状態になったことをホスト装置20に伝達する。
Further, the
しかしながら、図32におけるレディ/ビジー(R/−B)ピンの状態は、あくまでもホスト装置20に対してメモリカード200がどのような状態かを示すものである。つまり、図32において、プログラムコマンド“10H”の入力に応答して、メモリカード200のレディ/ビジー(R/−B)ピンがビジー状態(つまり、“L”信号を出力)を示したとしても、メモリカード200の内部ではNANDフラッシュメモリ4に対する書き込み動作(ページバッファ401からメモリセルアレイのデータ転送)が実際に行われているとは限らない。また、レディ/ビジー(R/−B)ピンがレディ状態に復帰したとしても、メモリカード200の内部ではNANDフラッシュメモリ4に対する書き込み動作が実際に終了しているとは限らない。
However, the ready / busy (R / -B) pin state in FIG. 32 only indicates the state of the
一方、第1モードにおいて、メモリカード200の内部ではNANDフラッシュメモリ4に対して、メモリカード200内のコントローラB2021が書き込みを行う際に、NANDフラッシュメモリ4のI/Oピン1〜8とR/−Bピンに入出力される信号例を図33に示す。
On the other hand, in the first mode, when the
コントローラB2021は、NANDフラッシュメモリ4が256kByteの消去ブロックサイズを有する不揮発性メモリであると認識している。コントローラB2021は、例えば、NANDフラッシュメモリ4に対する書き込みの際には、シリアルデータインプットコマンド“80H”をI/Oピン1〜8へ入力する。次に、コントローラB2021は、カラムアドレス“C/A”及びページアドレス“P/A”をI/Oピン1〜8へ入力する。なお、ここで、カラムアドレス“C/A”及びページアドレス“P/A”は、NANDフラッシュメモリ4の実物理アドレス空間におけるカラムアドレス及びページアドレスである。したがって、図32におけるカラムアドレス及びページアドレスと、図33におけるカラムアドレス及びページアドレスは、必ずしも一致していない。
The
更に、コントローラB2021は、書き込みデータを、I/Oピン1〜8の各々に対して2112回入力する。具体的には、コントローラB2021は、ライトイネーブルピンへの入力信号を2112回クロッキングしながら、それぞれのI/Oピン1〜8に対して2112ビット(全てのI/Oピン合計で2112Byte)のデータを順次シフトインする。データのシフトインが完了すると、コントローラB2021は、プログラムコマンド“10H”をI/Oピン1〜8へ入力する。これに応答してメモリカード200は、そのR/−Bピンに“L”信号を出力し、メモリカード200がビジー状態であることをホスト装置20に伝達する。その後、所定期間後にR/−Bピンに“H”信号を出力することで、メモリカード200がレディ状態になったことをホスト装置20に伝達する。図33におけるR/−Bピンの状態は、コントローラB2021に対してNANDフラッシュメモリ4が実際にどのような状態かを示すものである。
Further, the
なお、図32及び図33においては、カラムアドレス“C/A”及びページアドレス“P/A”の入力を、それぞれ1つのサイクルで示しているが、メモリカード200の容量又はNANDフラッシュメモリ4の容量に応じて、適宜2サイクル以上になる場合もある。
32 and 33, the input of the column address “C / A” and the page address “P / A” is shown in one cycle, but the capacity of the
また、図32及び図33においては、第1モードにおける書き込み動作を説明したが、第2モードにおいてはホスト装置20がメモリカード200のNANDフラッシュメモリ4に対して図33に示す書き込み動作を直接実行することになる。
32 and 33, the write operation in the first mode has been described. In the second mode, the
以下、図34に示すフローチャートを参照して、第2の実施の形態に係るメモリカードテスト方法について説明する。 Hereinafter, the memory card test method according to the second embodiment will be described with reference to the flowchart shown in FIG.
まず、ステップF1において、コントローラB2021ではNAND単体テストを実行するか否かが判定される。NAND単体テストを実行する場合(ステップF1:YES)、ステップF2に進む。NAND単体テストを実行しない場合(ステップF1:NO)、ステップF5に進む。
First, in step F1, the
ステップF2において、ホスト装置20は、メモリカード200に対して移行動作を指示するコマンドシーケンス、例えば、“XX−YY−ZZ”等を出力する。コントローラB2021内のCPU35は、移行動作を指示するコマンドシーケンスに応じて動作モードを第2モードに設定する。具体的には、CPU35が、アクセス経路設定部2022の第1及び第2スイッチSW1,SW2に切り替え制御信号を供給することによりアクセス経路が設定される。動作モードが第2モードに設定されると、ステップF3に進む。
In step F2, the
ステップF3において、ホスト装置20は、NAND単体テストを実行する。ホスト装置20は、例えば、書き込みデータと読み出しデータの整合性を確認することで、NANDフラッシュメモリ4に不具合箇所が含まれているかを判定する。この結果、NANDフラッシュメモリ4において、誤ったデータが保持されるビット(フェイルビット)、及び書き込みも読み出しもできないビット(バッドブロック)等の有無が判定される。NAND単体テストが完了すると、ステップF4に進む。
In step F3, the
ステップF4において、ホスト装置20は、メモリカード200に対して復帰動作を指示するコマンドシーケンスを出力する。復帰動作を指示するコマンドシーケンスがメモリカード200に伝達されると、ステップF5に進む。
In step F4, the
ステップF5において、CPU35は、動作モードを第1モードに設定する。
In step F5, the
ステップF6において、コントローラB2021ではコントローラ単体テストを実行するか否かが判定される。コントローラB2021は、コントローラ単体テストを実行する場合(ステップF6:YES)、ステップF7に進む。コントローラ単体テストを実行しない場合(ステップF6:NO)、ステップF5に戻る。
In step F6, the
ステップF7において、ホスト装置20は、コントローラ単体テストを実行する。一例として、ホスト装置20がコントローラB2021に任意のコマンド等を入力し、コントローラB2021が正常に応答するか等のテストが実行される。コントローラ単体テストが完了すると、ステップF8に進む。
In step F7, the
ステップF8において、コントローラB2021ではNAND単体テストを実行するか否かが判定される。NAND単体テストを実行する場合(ステップF8:YES)、ステップF2に戻る。NAND単体テストを実行しない場合(ステップF8:NO)、テスト動作を終了する。 In step F8, the controller B2021 determines whether or not to execute the NAND unit test. When the NAND unit test is executed (step F8: YES), the process returns to step F2. When the NAND unit test is not executed (step F8: NO), the test operation is terminated.
以上のように、第2の実施の形態のメモリカード200では、ホスト装置20から送られてくるコマンドにより移行動作及び復帰動作が制御されるため、メモリカード200のピン数を増加させることなく第2モードを実現できる。更に、特定のコマンドシーケンスによって第2モードを制御することで、メモリカード200が書き込み時や読み出し時であると誤認識して誤動作することを回避できる。また、ホスト装置20が、第2モードにおいて第1モードよりも大きい消去ブロックサイズを取り扱うため、NANDフラッシュメモリ4の単体テストに要する時間を短縮できる。
As described above, in the
また、第2の実施の形態のメモリカード200では、コントローラA2を含むコントローラチップ201と、コントローラB2021及びNANDフラッシュメモリ4を含むメモリチップ202として構成した。このように構成することにより、メモリチップ202を交換するだけで、コントローラB2021に変更を加えずに異なるブロックサイズや信頼性を持ったNANDフラッシュメモリに置き換えることが可能になる。
The
なお、上記第2の実施の形態では、メモリカード200がホスト装置20から送られてくるコマンドによりアクセス経路設定部2022がアクセス経路を設定する場合を示した。この構成に限定するものではなく、例えば、図35に示すメモリカード200のように、アクセス経路設定部2022が電源投入を検知して、アクセス経路を自動的に設定する構成としても良い。
In the second embodiment, the case where the access path setting unit 2022 sets an access path by a command sent from the
上述の図24に示したコントローラB2021では、CPU35等の起動中に不具合が発生した場合、第2モードに移行できず、ホスト装置20は解析(テスト)を進めることができない。このため、電源投入時は自動的に第2モードに設定することでNAND単体テストを実行可能になる。
In the
アクセス経路設定部2022は、図25及び図26に示す第1及び第9ピンP1,P9に接地電圧GNDが印加され、第18ピンP18に電源電圧Vccが印加されると、例えば、電源電圧Vccの立ち上がりをトリガとしてアクセス経路を設定する。 When the ground voltage GND is applied to the first and ninth pins P1 and P9 shown in FIGS. 25 and 26 and the power supply voltage Vcc is applied to the 18th pin P18, the access path setting unit 2022, for example, the power supply voltage Vcc The access path is set using the rising edge of
メモリカード200の電源投入時に自動的に設定された第2モードから第1モードに復帰する際には、復帰動作を指示するコマンドシーケンスに限らず、復帰動作を指示するコマンド、例えば、“FFH”コマンドを使用すれば良い。すなわち、図35に示すコントローラB2021は、コマンド及びコマンドシーケンスのいずれによっても復帰動作を実行可能である。但し、図24に示すコントローラB2021と同様に、移行動作を指示するコマンドシーケンスによって第2モードが設定された場合、復帰動作を指示するコマンドシーケンスでなければ第1モードに復帰できないものとする。
When returning to the first mode from the second mode that is automatically set when the
以下、図36に示すフローチャートを参照して、図35に示したコントローラB2021によるメモリカードテスト方法を説明する。但し、図34に示したメモリカードテスト方法と重複する処理については同一のステップ符号を付して、その説明を省略する。
Hereinafter, a memory card test method by the
まず、ステップG1において、メモリカード200がホスト装置20の図示しないカードスロットに挿入され、ホスト装置20からメモリカード200に電源が供給される。メモリカード200に電源が供給されると、コントローラB2021内のアクセス経路設定部2022によりアクセス経路が自動的に設定されて、動作モードが第2モードに自動的に設定される。
First, in step G1, the
ステップF1において、コントローラB2021では、NAND単体テストを実行するか否かが判定される。NAND単体テストを実行する場合(ステップF1:YES)、ステップF2に進む。NAND単体テストを実行しない場合(ステップF1:NO)、ステップF5に進む。
In step F1, the
ステップG2においては、復帰動作を指示するコマンドがホスト装置20からメモリカード200へ入力される。復帰動作を指示するコマンドがホスト装置20からメモリカード200へ入力されると、ステップF5に進む。
In
ステップF2〜ステップF8の各処理は、図34と同様に実行される。 Each process of step F2 to step F8 is executed in the same manner as in FIG.
以上のように、図35に示したコントローラB2021の構成によれば、電源投入直後は自動的に第2モードに設定することにより、コントローラB2021に異常があった場合でもNAND単体テストが実行可能になる。
As described above, according to the configuration of the
(第3の実施の形態)
本第3の実施の形態では、上記第1の実施の形態に示したメモリカード1をパッケージ化する際の構成を例示する。図37は、本第3の実施の形態に係るメモリカード300をパッケージ化した際の構成を示す断面図である。なお、図37において、上記第1の実施の形態において図1に示したメモリカード1と同一の構成部分には同一の符号を付している。
(Third embodiment)
The third embodiment exemplifies a configuration when the
図37において、70は基板である。この基板70上には、層間膜71を介して上記NANDフラッシュメモリ4が形成されている。NANDフラッシュメモリ4上には、上記コントローラA2及び上記コントローラB3がそれぞれ層間膜71を介して形成されている。基板70、NANDフラッシュメモリ4、及びコントローラB3において、図中左端部の各上面にはボンディングワイヤ72を接続するためのパッド73〜75が形成されている。また、コントローラB3の図中右端部の上面と、コントローラA2の図中左端部の上面には、ボンディングワイヤ72を接続するためのパッド76,77がそれぞれ形成されている。また、基板70の図中左端部の下面側には、上記図25に示した第1〜第18ピンP1〜P18に対応する外部接続ピン78が形成されている。
In FIG. 37,
図38は、本第3の実施の形態に係るメモリカード300をパッケージ化した際の他の構成を示す断面図である。なお、図38において、上記第1の実施の形態において図1に示したメモリカード1と同一の構成部分と、図37に示した構成と同一の構成部分には同一の符号を付しており、その説明を省略する。
FIG. 38 is a cross-sectional view showing another configuration when the
図38において、NANDフラッシュメモリ4上には、コントローラB3が層間膜71を介して形成されている。コントローラB3上には、コントローラA2が層間膜71を介して形成されている。基板70、NANDフラッシュメモリ4、コントローラB3、及びコントローラA2において、図中左端部の各上面にはボンディングワイヤ72を接続するためのパッド73〜75,77がそれぞれ形成されている。
In FIG. 38, a
上記図37及び図38に示した各パッケージの断面図は、NANDフラッシュメモリ4上にコントローラB3及びコントローラA2を積層して形成した場合を例示したものである。図37及び図38に示した各メモリカード300は、NANDフラッシュメモリ4上にコントローラB3及びコントローラA2を積層し、ボンディングワイヤ72を接続した後、外部接続ピン78を除く全体が樹脂等により封止される。
The cross-sectional views of the packages shown in FIGS. 37 and 38 exemplify the case where the controller B3 and the controller A2 are stacked on the
上述のように、積層構造とすることにより、実質的にNANDフラッシュメモリ4を実装可能な基板70の大きさでメモリカード300を形成することができ、メモリカード300としてのパッケージの大きさを縮小することが可能になる。
As described above, the stacked structure allows the
図39は、本第3の実施の形態に係るメモリカードをパッケージ化した際の他の構成を示す断面図である。なお、図39において、上記第1の実施の形態において図1に示したメモリカード1と同一の構成部分と、図37に示した構成と同一の構成部分には同一の符号を付しており、その説明を省略する。
FIG. 39 is a cross-sectional view showing another configuration when the memory card according to the third embodiment is packaged. 39, the same reference numerals are given to the same components as those of the
図39において、メモリカード400の基板70上には、NANDフラッシュメモリ4、コントローラB3、及びコントローラA2がそれぞれ層間膜71を介して形成されている。コントローラB3の図中左端部の上面にはボンディングワイヤ72を接続するためのパッド75が形成されている。また、コントローラB3の図中右端部の上面と、コントローラA2の図中左端部の上面には、ボンディングワイヤ72を接続するためのパッド76,77がそれぞれ形成されている。また、コントローラA2の図中右端部の上面と、NANDフラッシュメモリ4の図中左端部の上面には、ボンディングワイヤ72を接続するためのパッド81,82がそれぞれ形成されている。
In FIG. 39, on the
図39に示したメモリカード400は、基板70上にNANDフラッシュメモリ4、コントローラB3、及びコントローラA2を形成し、ボンディングワイヤ72を接続した後、外部接続ピン78を除く全体が樹脂等により封止される。
In the
上記図39に示したパッケージの断面図は、NANDフラッシュメモリ4、コントローラB3、及びコントローラA2を基板70上に配置した場合を例示したものである。このような構造とすることにより、NANDフラッシュメモリ4の世代を変更する際に、NANDフラッシュメモリ4やコントローラB3の交換が容易になる。
The sectional view of the package shown in FIG. 39 exemplifies the case where the
なお、上記図37〜図39に示した各パッケージの構成は、メモリカード1,200に対応するものとして示したが、メモリカード以外に、例えば、マルチチップパッケージ(MCM)、システム・イン・パッケージ(SiP)等としても適用可能である。
The configurations of the packages shown in FIGS. 37 to 39 are shown as corresponding to the
(第4の実施の形態)
本第4の実施の形態では、上記第3の実施の形態において例示したパッケージをUSB(Universal Serial Bus )メモリとして適用する場合の構成を例示する。図40は、本第3の実施の形態に係るUSBメモリの構成を示す断面図である。なお、図40において、上記第3の実施の形態において図37に示したメモリカードのパッケージ構成と同一の構成部分には同一の符号を付して、その説明を省略する。
(Fourth embodiment)
The fourth embodiment exemplifies a configuration when the package exemplified in the third embodiment is applied as a USB (Universal Serial Bus) memory. FIG. 40 is a cross-sectional view showing the configuration of the USB memory according to the third embodiment. In FIG. 40, the same components as those in the package configuration of the memory card shown in FIG. 37 in the third embodiment are denoted by the same reference numerals, and the description thereof is omitted.
図40に示すUSBメモリ500において、501は回路基板である。この回路基板501の上面側には、電子部品502及びUSBコントローラ等の制御チップ503が実装されると共に、USBコネクタの入出力端子となる導体層504が形成されている。また、回路基板501の下面側には、上記図37に示したパッケージ化したメモリカード300が実装されている。また、505はUSBメモリ500の外装ケースである。
In the
図40に示したUSBメモリ500では、メモリカード300をそのまま回路基板501に実装するようにしたため、USBメモリの製造を容易にすることができるとともに、メモリカード300の利用範囲を拡大することができる。また、USBメモリ500内のNANDフラッシュメモリ4の世代を変更する場合に、その世代に合わせて製造されたメモリカード300を利用して実装することが可能になり、USBメモリとしての仕様変更も容易になる。
In the
なお、本第4の実施の形態では、USBメモリ内に図37に示したメモリカード300を適用した場合を例示したが、これに限定するものではなく、上記図38に示したメモリカード300や図39に示したメモリカード400等を適用しても良い。
In the fourth embodiment, the case where the
(第5の実施の形態)
本第5の実施の形態では、コントローラBに構成が異なる2つのNANDフラッシュメモリを接続し、ホスト装置20から入力される書込データの書換回数に基づいて、2つのNANDフラッシュメモリに対する書込データの記憶先を変更する場合を説明する。図41は、本第5の実施の形態に係るメモリカードの概略構成を示す図である。なお、図41において、上記第1の実施の形態において図1に示したメモリカード1と同一の構成部分には同一の符号を付している。
(Fifth embodiment)
In the fifth embodiment, two NAND flash memories having different configurations are connected to the controller B, and the write data to the two NAND flash memories is based on the number of rewrites of the write data input from the
図41に示すようにメモリカード600は、コントローラA601、コントローラB602及びNANDフラッシュメモリM1,M2を有する。コントローラA601は、ホストバス11によりホスト装置20に接続され、NANDバス611によりコントローラB602に接続されている。コントローラB602は、NANDバス611によりコントローラA601に接続され、NANDバス612によりNANDフラッシュメモリM1に接続され、NANDバス613によりNANDフラッシュメモリM2に接続されている。NANDフラッシュメモリM1は、NANDバス612によりコントローラB602に接続されている。NANDフラッシュメモリM2は、NANDバス613によりコントローラB602に接続されている。
As shown in FIG. 41, the
なお、NANDフラッシュメモリM1,M2は、一つのメモリセルに1ビットのデータを記憶する2値メモリであっても良いし、一つのメモリセルに1ビットより多いデータ(例えば、2ビット)を記憶する多値メモリであっても良い。ここでは、不揮発性メモリの例としてNAND型フラッシュメモリを挙げて説明するが、不揮発性メモリはNAND型フラッシュメモリに限らず、例えば、NOR型フラッシュメモリ等でもよい。また、2つのNANDフラッシュメモリM1,M2を接続する例を示したが、更に複数のNANDフラッシュメモリを接続するようにしてもよい。 The NAND flash memories M1 and M2 may be binary memories that store 1-bit data in one memory cell, or store more data (for example, 2 bits) than 1 bit in one memory cell. It may be a multi-valued memory. Here, a NAND flash memory will be described as an example of the nonvolatile memory. However, the nonvolatile memory is not limited to the NAND flash memory, and may be a NOR flash memory, for example. In addition, although an example in which two NAND flash memories M1 and M2 are connected has been shown, a plurality of NAND flash memories may be further connected.
NANDフラッシュメモリM1,M2としては、例えば、記憶容量が異なるもの(大容量と小容量)、記憶するデータのビット数がことなるもの(2値と多値)、デザインルールが異なるもの、データのブロックサイズが異なるもの(大ブロックと小ブロック)等の異なる構成のものを用いるものとする。本第5の実施の形態では、NANDフラッシュメモリM1として大容量のものを用い、NANDフラッシュメモリM2として小容量のものを用いるものとする。一般的に、NANDフラッシュメは、大容量化とチップ面積の縮小を実現するため設計ルールを縮小している。しかし、設計ルールを縮小するに従って、保証されるデータ書換回数が低減する傾向にあり、NANDフラッシュメの信頼性を低下させることが懸念されている。このため、設計ルールが異なる2種類のNANDフラッシュメモリを使用して、書換要求される回数が異なるデータに応じて記憶先のNANDフラッシュメモリを適宜変更することにより、信頼性の低下を回避することが可能になる。 For example, the NAND flash memories M1 and M2 have different storage capacities (large capacity and small capacity), different numbers of bits of data to be stored (binary and multivalued), different design rules, Those having different configurations such as those having different block sizes (large block and small block) are used. In the fifth embodiment, a large capacity memory is used as the NAND flash memory M1, and a small capacity memory is used as the NAND flash memory M2. In general, NAND flash memory has a reduced design rule in order to realize a larger capacity and a smaller chip area. However, as the design rule is reduced, the guaranteed number of data rewrites tends to decrease, and there is a concern that the reliability of the NAND flash memory is lowered. For this reason, using two types of NAND flash memories with different design rules and appropriately changing the NAND flash memory at the storage destination according to the data with different number of rewrite requests can avoid a decrease in reliability. Is possible.
以下の説明において使用する用語「論理ブロックアドレス」、「物理ブロックアドレス」は、それぞれ、NANDフラッシュメモリM1,M2内のブロック自体に割り当てられる論理アドレス、物理アドレスを意味するものである。また、「論理アドレス」、「物理アドレス」は、主に、ブロック自体の論理アドレス、物理アドレスを意味するものであるが、ブロック単位よりも細かい分解能の単位に相当するアドレスである場合もあり得る。 The terms “logical block address” and “physical block address” used in the following description mean a logical address and a physical address assigned to the blocks in the NAND flash memories M1 and M2, respectively. Further, “logical address” and “physical address” mainly mean the logical address and physical address of the block itself, but may be an address corresponding to a unit of resolution smaller than the block unit. .
ホスト装置20は、接続されるメモリカード600に対してアクセスを行うためのハードウェア及びソフトウェアを備えている。ホスト装置20は、メモリカード600内部の物理状態(何処の物理ブロックアドレスに、何番目の何番目の論理セクタアドレスデータが含まれているか、或いは、何処のブロックが消去状態であるか)を管理し、メモリカード600内のNANDフラッシュメモリM1,M2を直接制御するものとして構築されている。
The
また、ホスト装置20は、消去時の消去ブロックサイズが16kByteに定められているNANDフラッシュメモリ(NANDフラッシュメモリM1,M2を限定するものではない)を使用することを前提として、16kByte単位で論理・物理アドレスの割り当てを行う。すなわち、ホスト装置20は、多くの場合、論理アドレス16kByte分に関してシーケンシャルにライトアクセス又はリードアクセスを行う(該当するコマンドを発行する)。
Further, the
メモリカード600は、ホスト装置20に接続されたときに電源供給を受けて動作し、ホスト装置20からのアクセスに応じた処理を行う。コントローラA601は、図42に示すように、ホストインターフェース(以下、ホストI/Fという)621、バッファRAM622、NANDインターフェース(以下、NAND_I/Fという)623、CPU(Central Processing Unit)624、及びROM(Read Only Memory)625を有する。
The
ホストI/F621は、ホストバス11に接続され、ホスト装置20とバッファRAM622及びCPU624との間のインターフェース処理を行う。NAND_I/F623は、NANDバス611に接続され、コントローラB602とバッファRAM622及びCPU624との間のインターフェース処理を行う。
The host I /
バッファRAM622は、ホスト装置20から入力されるデータをNANDフラッシュメモリM1,M2に書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶し、NANDフラッシュメモリM1,M2から読み出されるデータをホスト装置20に出力する際に、一定量のデータを一時的に記憶する。また、バッファRAM622は、CPU624の作業領域として使用され、制御プログラム等を記憶する。
The
CPU624は、メモリカード600全体の動作を制御するものである。CPU624は、例えば、メモリカード600が電源供給を受けた際に、ROM625内に格納されているファームウェア(後述する制御プログラム)をバッファRAM622にロードして所定の処理を実行することにより、ホスト装置20から書込コマンド、読出コマンド、消去コマンドを受けてNANDフラッシュメモリM1,M2内の該当領域に対するアクセス処理をコントローラB602との間で実行し、バッファRAM622を通じたデータ転送処理を制御する。
The
ROM625は、CPU624により使用される制御プログラム等を格納するメモリである。なお、コントローラA601は、NANDバス611によりコントローラB602と接続されており、CPU624は、コントローラB602をNANDフラッシュメモリM1,M2であるものとして各種の処理を実行する。すなわち、CPU624は、ホスト装置20から書込コマンド、読出コマンド、消去コマンドを受け付けた際に、コントローラB602に対して書込コマンド、読出コマンド、消去コマンドを転送する処理を実行する。
The
コントローラB602は、図43に示すように、NAND_I/F631、バッファRAM632、ECC(Error Correcting Code)回路633、NAND_I/F634,635、CPU636、ROM637、及びカウンタ638を有する。
As shown in FIG. 43, the
NAND_I/F31は、NANDバス12に接続され、コントローラA2とバッファRAM32及びCPU35との間のインターフェース処理を行う。NAND_I/F34は、NANDバス13に接続され、NANDフラッシュメモリ4とECC回路33及びCPU35との間のインターフェース処理を行う。
The NAND_I /
バッファRAM632は、コントローラA601から入力されるデータをNANDフラッシュメモリM1,M2に書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶し、NANDフラッシュメモリM1,M2から読み出されるデータをコントローラA601に出力する際に、一定量のデータを一時的に記憶する。また、バッファRAM632は、CPU636の作業領域として使用され、制御プログラムや各種のテーブル等を記憶する。
The
ECC回路633は、NANDフラッシュメモリM1,M2に書き込む書込データに付加されたECCデータに基づく当該書込データの誤り訂正処理、NANDフラッシュメモリM1,M2から読み出される読出データに対してECCデータを付加する処理等を行う。
The
CPU636は、NANDフラッシュメモリM1,M2に対するアクセス処理を制御するものである。CPU636は、例えば、メモリカード600が電源供給を受けた際に、ROM637内に格納されているファームウェアをバッファRAM632にロードして所定の処理を実行する。CPU636は、所定の処理において、後述する各種のテーブルをバッファRAM632上で作成し、コントローラA601から書込コマンド、読出コマンド、消去コマンドを受け付けてNANDフラッシュメモリM1,M2内の該当領域に対するアクセス処理を実行し、バッファRAM632を通じたデータ転送処理を実行する。
The
ROM637は、CPU636により使用される制御プログラムと書込制御プログラム等を格納するメモリである。なお、コントローラB602は、NANDバス611によりコントローラA601と接続されており、CPU636は、コントローラA601に対してNANDフラッシュメモリM1,M2であるものとして処理を実行する。すなわち、CPU636は、コントローラA601から書込コマンド、読出コマンド、消去コマンドを受け付けた際に、NANDフラッシュメモリM1,M2内の該当領域に対するアクセス処理を実行する。また、CPU636は、コントローラA601から書込コマンドと書込データを受け付けた際に、書込制御プログラムに応じた書込処理(図45に示すフローチャート参照)を実行する。
The
カウンタ638は、上記書込処理において書込データの書込論理ブロックアドレスLBA毎に書換回数nをカウントするものである。カウンタ638は、CPU636の制御下で書込データの書込論理ブロックアドレスLBA毎に書換回数nをカウントアップし、カウントアップした書換回数nをCPU636に出力する。
The
図44は、コントローラB602の上記書込処理に関わる構成を示す図である。なお、図44において図43に示したコントローラB602内の構成と同一の構成部分には同一符号を付している。図44に示すようにコントローラB602は、バッファRAM632内に書換回数nに基づいてNANDフラッシュメモリM1,M2に対して記憶先を変更する書込データの論理ブロックアドレスLBAと物理ブロックアドレスPBAを記憶する領域として第1データLBA・PBA記憶部M1Pと第2データLBA・PBA記憶部M2Pを設けている。第1データLBA・PBA記憶部M1Pは、書換回数nが少ないデータ(以下、第1データという)の書換回数nと論理ブロックアドレスLBAと物理ブロックアドレスPBAとを、書込論理ブロックアドレスブロック(以下、書込LBAブロックという)毎に記憶する領域である。第2データLBA・PBA記憶部M2Pは、書換回数nが多いデータ(以下、第2データという)の書換回数nと論理ブロックアドレスLBAと物理ブロックアドレスPBAとを、書込LBAブロック毎に記憶する領域である。
FIG. 44 is a diagram showing a configuration related to the writing process of the controller B602. In FIG. 44, the same components as those in the
図44に示すように、NANDフラッシュメモリM1は第1データ記憶部とし、NANDフラッシュメモリM2は第2データ記憶部とする。したがって、NANDフラッシュメモリM1に記憶した第1データの論理ブロックアドレスLBAと物理ブロックアドレスPBAを第1データLBA・PBA記憶部M1Pに記憶し、NANDフラッシュメモリM2に記憶した第2データの論理ブロックアドレスLBAと物理ブロックアドレスPBAを第2データLBA・PBA記憶部M2Pに記憶する。 As shown in FIG. 44, the NAND flash memory M1 is a first data storage unit, and the NAND flash memory M2 is a second data storage unit. Accordingly, the logical block address LBA and physical block address PBA of the first data stored in the NAND flash memory M1 are stored in the first data LBA / PBA storage unit M1P, and the logical block address of the second data stored in the NAND flash memory M2 The LBA and physical block address PBA are stored in the second data LBA / PBA storage unit M2P.
次に、図45に示すフローチャートを参照して、コントローラB602において実行される書込処理について説明する。
Next, the writing process executed in the
CPU636は、ホスト装置20側からコントローラA601を経由して書き込み要求コマンドと書込データを受けると(ステップG1)、この書き込み要求コマンドに付加された付加データに含まれている論理ブロックアドレスLBAを取得する。次いで、CPU636は、取得した論理ブロックアドレスLBAが第1データLBA・PBA記憶部M1Pに登録されているか否かを確認する(ステップG2)。CPU636は、第1データLBA・PBA記憶部M1Pに登録されていることを確認すると(ステップG2:YES)、当該書込論理ブロックアドレス(以下、書込LBAという)の書換回数nをカウンタ638によりカウントアップする(ステップG3)。
When the
次いで、CPU636は、第1データLBA・PBA記憶部M1P内に当該書込LBAが登録されている書込LBAブロック内の書換回数nの最大値nmaxと最小値nminの差分nd1を算出する(ステップG4)。次いで、CPU636は、差分nd1が基準値N1(第1データの書換回数を判定する値)より大きいか否かを判定する(nd1>N1)(ステップG5)。差分nd1が基準値N1より大きい場合(ステップG5:YES)、CPU636は、当該書込LBAの登録先を第1データLBA・PBA記憶部M1Pから第2データLBA・PBA記憶部M2Pに変更する(ステップG6)。
Next, the
次いで、CPU636は、当該書込データを第2データとして記憶先をNANDフラッシュメモリM1からNANDフラッシュメモリM2に変更する(ステップG7)。この時、CPU636は、第2データを記憶したNANDフラッシュメモリM2内の書込物理アドレス(以下、書込PBAという)を書込LBAと対応付けて第2データLBA・PBA記憶部M2Pに登録する(ステップG7)。なお、この第2データをNANDフラッシュメモリM2に記憶する前に、ECC回路633では書込データに付加されたECCデータに基づく当該書込データの誤り訂正処理が行われる。次いで、CPU636は、第1データLBA・PBA記憶部M1P内で登録先を変更した書込LBAの書換回数nをリセットする(“0”にする)(ステップG8)。
Next, the
また、差分nd1が基準値N1以下の場合(ステップG5:NO)、CPU636は、当該書込データ、すなわち、第1データをNANDフラッシュメモリM1に記憶する(ステップG9)。この時、CPU636は、当該第1データを記憶したNANDフラッシュメモリM1内の書込PBAを第1データLBA・PBA記憶部M1Pに登録する。なお、第1データをNANDフラッシュメモリM1に記憶する前に、ECC回路633では書込データに付加されたECCデータに基づく当該書込データの誤り訂正処理が行われる。
When the difference nd1 is equal to or less than the reference value N1 (step G5: NO), the
また、ステップG2において、当該書込LBAが第1データLBA・PBA記憶部M1Pに登録されていない場合(ステップG2:NO)、当該書込LBAは第2データLBA・PBA記憶部M2Pに登録されている。この時、CPU636は、当該書込LBAの書換回数nをカウンタ638によりカウントアップする(ステップG10)。
In step G2, if the write LBA is not registered in the first data LBA / PBA storage unit M1P (step G2: NO), the write LBA is registered in the second data LBA / PBA storage unit M2P. ing. At this time, the
次いで、CPU636は、第2データLBA・PBA記憶部M2P内に当該書込LBAが登録されている書込LBAブロック内の書換回数nの最大値nmaxと最小値nminの差分nd2を算出する(ステップG11)。次いで、CPU636は、差分nd2が基準値N2(第2データの書換回数を判定する値)より小さいか否かを判定する(nd2<N1)(ステップG12)。差分n2が基準値N2より小さい場合(ステップG11:YES)、CPU636は、当該書込LBAの登録先を第2データLBA・PBA記憶部M2Pから第1データLBA・PBA記憶部M1Pに変更する(ステップG14)。
Next, the
次いで、CPU636は、当該書込データを第1データとして記憶先をNANDフラッシュメモリM2からNANDフラッシュメモリM1に変更する(ステップG15)。この時、CPU636は、第1データを記憶したNANDフラッシュメモリM1内の書込PBAを書込LBAと対応付けて第1データLBA・PBA記憶部M1Pに登録する(ステップG15)。なお、この第1データをNANDフラッシュメモリM1に記憶する前に、ECC回路633では書込データに付加されたECCデータに基づく当該書込データの誤り訂正処理が行われる。次いで、CPU636は、第2データLBA・PBA記憶部M1P内で登録先を変更した書込LBAの書換回数nをリセットする(“0”にする)(ステップG16)。
Next, the
また、差分nd2が基準値N2以上の場合(ステップG12:NO)、CPU636は、当該書込データ、すなわち、第2データをNANDフラッシュメモリM2に記憶する(ステップG13)。この時、CPU636は、当該第2データを記憶したNANDフラッシュメモリM2内の書込PBAを第2データLBA・PBA記憶部M2Pに登録する。なお、第2データをNANDフラッシュメモリM2に記憶する前に、ECC回路633では書込データに付加されたECCデータに基づく当該書込データの誤り訂正処理が行われる。
If the difference nd2 is greater than or equal to the reference value N2 (step G12: NO), the
以上のように、本第5の実施の形態に係るメモリカード600では、異なる記憶容量を有する2つのNANDフラッシュメモリM1,M2をコントローラB602に接続し、コントローラB602により書込データの書換回数nに基づいてNANDフラッシュメモリM1,M2に対する書込データの記憶先を変更するようにした。この場合、書換回数nが少ない第1データを大容量のNANDフラッシュメモリM1に記憶し、書換回数nが多い第2データを小容量のNANDフラッシュメモリM2に記憶するようにした。また、第1データに関する書換回数nの差分nd1が基準値N1より大きくなった場合は、第2データとして記憶先をNANDフラッシュメモリM1からNANDフラッシュメモリM2に変更するようにした。さらに、第2データに関する書換回数nの差分nd2が基準値N2より小さくなった場合は、第1データとして記憶先をNANDフラッシュメモリM2からNANDフラッシュメモリM1に変更するようにした。
As described above, in the
したがって、メモリカード内に記憶容量が異なる2つのNANDフラッシュメモリを搭載した場合、ホスト装置から受け付ける書込データの書換回数に応じて記憶先を動的に変更することが可能になる。例えば、ホスト装置から受け付ける書込データとして、アプリケーションプログラムや画像データ等の書換回数が少ない大容量データ(第1データ)と、ファイルシステム等の書換回数が多い小容量データ(第2データ)を大容量のNANDフラッシュメモリM1と小容量のNANDフラッシュメモリM2に振り分けて記憶することが可能になる。その結果、構成が異なる2つのNANDフラッシュメモリM1,M2を有効に利用することが可能なメモリカードを提供することが可能になる。 Therefore, when two NAND flash memories having different storage capacities are mounted in the memory card, the storage destination can be dynamically changed according to the number of rewrites of the write data received from the host device. For example, as write data received from the host device, large-capacity data (first data) with a small number of rewrites such as an application program or image data and small-capacity data (second data) with a large number of rewrites such as a file system are large. It becomes possible to distribute and store in the NAND flash memory M1 having a capacity and the NAND flash memory M2 having a small capacity. As a result, it is possible to provide a memory card that can effectively use two NAND flash memories M1 and M2 having different configurations.
さらに、ブロック単位でデータの書き込みを行うNANDフラッシュメモリM1,M2において、第2データの書き込みに伴うデータ引越動作等を一方のNANDフラッシュメモリM2に止めることができる。その結果、第2データの書き換え動作に伴うオーバーヘッドの影響を限定的なものとすることが可能になり、メモリカードの性能及び信頼性を向上させることができる。 Furthermore, in the NAND flash memories M1 and M2 that write data in units of blocks, the data moving operation associated with the writing of the second data can be stopped in one NAND flash memory M2. As a result, it is possible to limit the influence of overhead associated with the rewriting operation of the second data, and the performance and reliability of the memory card can be improved.
なお、本第5の実施の形態に係るメモリカード600では、記憶容量が異なるNANDフラッシュメモリM1,M2をコントローラB602に接続する場合を示したが、この構成に限定するものではない。例えば、図46に示すようなメモリカード700の構成としてもよい。なお、図46に示すメモリカード700では、図41に示したメモリカード600と同一の構成部分には同一符号を付している。
In the
図46に示すメモリカード700では、コントローラA601をコントローラチップ701とし、コントローラB602とNANDフラッシュメモリM1を混載したメモリチップ702とし、NANDフラッシュメモリM2を別チップとして構成している。
In the
このように構成することにより、NANDフラッシュメモリM2の世代(設計ルール)が変更された際に、NANDフラッシュメモリM2のみを交換し、コントローラB602の制御プログラムを変更するだけで対応可能になり、メモリカード全体の設計に影響を与えずにメモリシステムを更新することが可能になる。 With this configuration, when the generation (design rule) of the NAND flash memory M2 is changed, only the NAND flash memory M2 is replaced, and only the control program of the controller B602 is changed. It becomes possible to update the memory system without affecting the design of the entire card.
なお、図45に示したフローチャートにおいて設定した基準値N1,N2は、NANDフラッシュメモリM1,M2の仕様や、メモリカード600が接続されるホストから入力されるデータの種類等に応じて適宜変更してもよい。要は、基準値N1,N2は、第1データと第2データの記憶先がNANDフラッシュメモリM1,M2間で変更される回数を低減するように設定すれば良い。
The reference values N1 and N2 set in the flowchart shown in FIG. 45 are appropriately changed according to the specifications of the NAND flash memories M1 and M2, the type of data input from the host to which the
(第6の実施の形態)
本第6の実施の形態では、コントローラBに構成が異なる2つのNANDフラッシュメモリを接続し、ホスト装置20から入力される書込データと付加データ(パリティデータ等)を分離し、2つのNANDフラッシュメモリに対して書込データと付加データの記憶先を振り分ける場合を説明する。図47は、本第6の実施の形態に係るメモリカード800の概略構成を示す図である。なお、図47において、上記第5の実施の形態において図41に示したメモリカード600と同一の構成部分には同一の符号を付している。
(Sixth embodiment)
In the sixth embodiment, two NAND flash memories having different configurations are connected to the controller B, and write data and additional data (parity data, etc.) input from the
図47に示すメモリカード800において、図41に示したメモリカード600と異なる構成部分は、コントローラB802としたことであり、他の構成と構成間の接続関係は同一である。
The
なお、NANDフラッシュメモリM1,M2は、一つのメモリセルに1ビットのデータを記憶する2値メモリであっても良いし、一つのメモリセルに1ビットより多いデータ(例えば、2ビット)を記憶する多値メモリであっても良い。ここでは、不揮発性メモリの例としてNAND型フラッシュメモリを挙げて説明するが、不揮発性メモリはNAND型フラッシュメモリに限らず、例えば、NOR型フラッシュメモリ等でもよい。また、2つのNANDフラッシュメモリM1,M2を接続する例を示したが、更に複数のNANDフラッシュメモリを接続するようにしてもよい。 The NAND flash memories M1 and M2 may be binary memories that store 1-bit data in one memory cell, or store more data (for example, 2 bits) than 1 bit in one memory cell. It may be a multi-valued memory. Here, a NAND flash memory will be described as an example of the nonvolatile memory. However, the nonvolatile memory is not limited to the NAND flash memory, and may be a NOR flash memory, for example. In addition, although an example in which two NAND flash memories M1 and M2 are connected has been shown, a plurality of NAND flash memories may be further connected.
NANDフラッシュメモリM1,M2としては、例えば、記憶容量が異なるもの(大容量と小容量)、記憶するデータのビット数がことなるもの(2値と多値)、デザインルールが異なるもの、データのブロックサイズが異なるもの(大ブロックと小ブロック)等の異なる構成のものを用いるものとする。本第5の実施の形態では、NANDフラッシュメモリM1として大容量のものを用い、NANDフラッシュメモリM2として小容量のものを用いるものとする。 For example, the NAND flash memories M1 and M2 have different storage capacities (large capacity and small capacity), different numbers of bits of data to be stored (binary and multivalued), different design rules, Those having different configurations such as those having different block sizes (large block and small block) are used. In the fifth embodiment, a large capacity memory is used as the NAND flash memory M1, and a small capacity memory is used as the NAND flash memory M2.
以下の説明において使用する用語「論理ブロックアドレス」、「物理ブロックアドレス」は、それぞれ、NANDフラッシュメモリM1,M2内のブロック自体に割り当てられる論理アドレス、物理アドレスを意味するものである。また、「論理アドレス」、「物理アドレス」は、主に、ブロック自体の論理アドレス、物理アドレスを意味するものであるが、ブロック単位よりも細かい分解能の単位に相当するアドレスである場合もあり得る。 The terms “logical block address” and “physical block address” used in the following description mean a logical address and a physical address assigned to the blocks in the NAND flash memories M1 and M2, respectively. Further, “logical address” and “physical address” mainly mean the logical address and physical address of the block itself, but may be an address corresponding to a unit of resolution smaller than the block unit. .
コントローラB802は、図48に示すように、NAND_I/F631、バッファRAM803、ECC(Error Correcting Code)回路633、データ振分部804、NAND_I/F634,635、CPU805、ROM806、及びアクセス経路設定部807を有する。なお、図48において、上記第5の実施の形態において図42に示したコントローラB602と同一の構成部分には同一の符号を付している。同一符号を付した構成部分の説明は省略する。
As shown in FIG. 48, the
バッファRAM803は、コントローラA601から入力されるデータをNANDフラッシュメモリM1,M2に書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶し、NANDフラッシュメモリM1,M2から読み出されるデータをコントローラA601に出力する際に、一定量のデータを一時的に記憶する。また、バッファRAM803は、CPU805の作業領域として使用され、制御プログラムや各種のテーブル等を記憶する。さらに、バッファRAM803は、NANDフラッシュメモリM1,M2に振り分けて記憶する実データとECCデータの記憶先を管理するための実データLBA・PBA記憶部M1PとECCデータLBA・PBA記憶部M2Pを有する。
The
CPU805は、NANDフラッシュメモリM1,M2に対するアクセス処理を制御するものである。CPU805は、例えば、メモリカード800が電源供給を受けた際に、ROM806内に格納されているファームウェアをバッファRAM803にロードして所定の処理を実行する。CPU805は、所定の処理において、後述する各種のテーブルをバッファRAM803上で作成し、コントローラA601から書込コマンド、読出コマンド、消去コマンドを受け付けてNANDフラッシュメモリM1,M2内の該当領域に対するアクセス処理を実行し、バッファRAM803を通じたデータ転送処理を実行する。
The
ROM806は、CPU805により使用される制御プログラムと書込制御プログラム等を格納するメモリである。なお、コントローラB802は、NANDバス611によりコントローラA601と接続されており、CPU636は、コントローラA601に対してNANDフラッシュメモリM1,M2であるものとして処理を実行する。すなわち、CPU805は、コントローラA601から書込コマンド、読出コマンド、消去コマンドを受け付けた際に、NANDフラッシュメモリM1,M2内の該当領域に対するアクセス処理を実行する。
The
また、CPU805は、コントローラA601から書込コマンドと書込データを受け付けた際に、書込制御プログラムに応じた書込処理(図50に示すフローチャート参照)を実行する。さらに、CPU805は、コントローラA601から読出コマンドを受け付けた際に、読出制御プログラムに応じた読出処理(図51に示すフローチャート参照)を実行する。また、CPU805は、コントローラA601から消去コマンドを受け付けた際に、消去制御プログラムに応じた消去処理(図52に示すフローチャート参照)を実行する。
Further, when the
データ振分部804は、CPU805により書込処理が実行される際に、実データとECCデータの記憶先をNANDフラッシュメモリM1,M2に振り分けて記憶する動作を実行する。また、データ振分部804は、CPU805により読出処理が実行される際に、NANDフラッシュメモリM1,M2から該当する実データとECCデータを読み出す動作を実行する。
When the
アクセス経路設定部807は、ホスト装置20がNANDフラッシュメモリM1,M2に直接アクセスするアクセス経路を設定する。図48に示すように、アクセス経路設定部807は、NAND_I/F631及びバッファRAM803の間に接続された第1のスイッチSW1と、データ振分部804及びNAND_I/F634,635の間に接続された第2のスイッチSW2及び第3のスイッチSW3を有する。第1〜第3のスイッチSW1〜SW3は、CPU805から入力される切り替え制御信号に応じて、NAND_I/F631、バッファRAM803、データ振分部804及びNAND_I/F634,635の接続関係を切り替える。この切り替えにより、書込データ及び読出データ等がバッファRAM803、ECC回路33、データ振分部804を迂回し、且つホスト装置20が発行するコマンド等をNANDフラッシュメモリM1,M2に直接伝達できる。
The access path setting unit 807 sets an access path for the
図49は、コントローラB802の上記書込処理に関わる構成を示す図である。なお、図49において図48に示したコントローラB802内の構成と同一の構成部分には同一符号を付している。図49に示すようにコントローラB802は、バッファRAM803内にNANDフラッシュメモリM1,M2に対して記憶先が振り分けられる実データとECCデータの各論理ブロックアドレスLBAと物理ブロックアドレスPBAを記憶する領域として実データLBA・PBA記憶部M1PとECCデータLBA・PBA記憶部M2Pを設けている。実データLBA・PBA記憶部M1Pは、ホスト装置20から書込要求された書込データから分離されたデータ本体(本第6の実施の形態では実データという)の記憶先の論理ブロックアドレスLBAと物理ブロックアドレスPBAを記憶する領域である。ECCデータLBA・PBA記憶部M2Pは、実データに付加されるECCデータ(付加データ)の記憶先の論理ブロックアドレスLBAと物理ブロックアドレスPBAを記憶する領域である。
FIG. 49 is a diagram showing a configuration relating to the writing process of the
図49に示すように、NANDフラッシュメモリM1は実データ記憶部とし、NANDフラッシュメモリM2はECCデータ記憶部とする。したがって、NANDフラッシュメモリM1に記憶した実データの論理ブロックアドレスLBAと物理ブロックアドレスPBAを実データLBA・PBA記憶部M1Pに記憶し、NANDフラッシュメモリM2に記憶したECCデータの論理ブロックアドレスLBAと物理ブロックアドレスPBAをECCデータLBA・PBA記憶部M2Pに記憶する。また、実データLBA・PBA記憶部M1Pは、実データの消去状態を示す消去情報を対応付けて記憶する。ECCデータLBA・PBA記憶部M2Pは、ECCデータの消去状態を示す消去情報を対応付けて記憶する。 As shown in FIG. 49, the NAND flash memory M1 is an actual data storage unit, and the NAND flash memory M2 is an ECC data storage unit. Accordingly, the logical block address LBA and physical block address PBA of the actual data stored in the NAND flash memory M1 are stored in the actual data LBA / PBA storage unit M1P, and the logical block address LBA and the physical block of the ECC data stored in the NAND flash memory M2 are stored. The block address PBA is stored in the ECC data LBA / PBA storage unit M2P. The actual data LBA / PBA storage unit M1P stores erasure information indicating the erasure state of the actual data in association with each other. The ECC data LBA / PBA storage unit M2P stores erasure information indicating the erasure state of the ECC data in association with each other.
次に、図50に示すフローチャートを参照して、コントローラB802において実行される書込処理について説明する。
Next, the writing process executed in the
CPU805は、ホスト装置20側からコントローラA601を経由して書き込み要求コマンドと書込データを受け付けると(ステップH1)、この書き込み要求コマンドに付加された付加データに含まれている書込論理ブロックアドレスLBAと書込データに付加されたECCデータを取り出す(ステップH2)。この処理により実データとECCデータが分離される。
When the
次いで、CPU805は、書込論理ブロックアドレスLBA順に分離した実データとECCデータをNANDフラッシュメモリM1,M2に振り分けて記憶する(ステップH3)。この処理に際して、データ振分部804は、CPU805から分離されて入力される実データとECCデータを、CPU805から入力される書込論理ブロックアドレスLBA順にNANDフラッシュメモリM1,M2に振り分けて記憶する。なお、この実データをNANDフラッシュメモリM1に記憶する前に、ECC回路633では実データに付加されたECCデータに基づく当該実データの誤り訂正処理が行われる。
Next, the
次いで、CPU805は、実データを記憶したNANDフラッシュメモリM1内の論理ブロックアドレスLBAと物理ブロックアドレスPBAを実データLBA・PBA記憶部M1Pに記憶し、ECCデータを記憶したNANDフラッシュメモリM2内の論理ブロックアドレスLBAと物理ブロックアドレスPBAをECCデータLBA・PBA記憶部M2Pに記憶する(ステップH4)。
Next, the
次いで、CPU805は、ホスト装置20へ書込処理の完了を通知する(ステップH5)。この書込処理の完了通知は、コントローラB802からコントローラA601を通じてホスト装置20に通知される。
Next, the
次に、図51に示すフローチャートを参照して、コントローラB802において実行される読出処理について説明する。
Next, the reading process executed in the
CPU805は、ホスト装置20側からコントローラA601を経由して読み出し要求コマンドを受けると(ステップI1)、この読み出し要求コマンドに含まれる物理ブロックアドレスPBAを参照する(ステップI2)。次いで、CPU805は、読み出し要求コマンドから参照した物理ブロックアドレスPBAに基づいて、実データLBA・PBA記憶部M1Pを参照して読み出し対象実データの論理ブロックアドレスLBAと物理ブロックアドレスPBAを取得する(ステップI3)。
When the
次いで、CPU805は、読み出し要求コマンドから参照した物理ブロックアドレスPBAに基づいて、ECCデータLBA・PBA記憶部M2Pを読み出し対象ECCデータの論理ブロックアドレスLBAと物理ブロックアドレスPBAを取得する(ステップI4)。
Next, the
次いで、CPU805は、ステップI3で取得した実データの論理ブロックアドレスLBAと物理ブロックアドレスPBAに対応するNANDフラッシュメモリM1内の領域から実データを読み出し、ステップI4で取得したECCデータの論理ブロックアドレスLBAと物理ブロックアドレスPBAに対応するNANDフラッシュメモリM2内の領域からECCデータを読み出し、ホスト装置20に返送する(ステップI5)。この処理に際して、データ振分部804は、CPU805から入力される実データとECCデータの各論理ブロックアドレスLBAと各物理ブロックアドレスPBAによりNANDフラッシュメモリM1,M2内の各領域から実データとECCデータを読み出してECC回路633に出力する。ECC回路633は、入力された実データにECCデータを付加してCPU805に出力する。そして、コントローラB802からコントローラA601を通じてホスト装置20に読み出し対象データが返送される。
Next, the
次に、図52に示すフローチャートを参照して、コントローラB802において実行される消去処理について説明する。
Next, the erasing process executed in the
CPU805は、ホスト装置20側からコントローラA601を経由して消去要求コマンドを受け付けると(ステップJ1)、この消去要求コマンドに含まれる物理ブロックアドレスPBAを参照する(ステップJ2)。
When the
次いで、ステップJ3において、CPU805は、消去要求コマンドから参照した物理ブロックアドレスPBAに基づいて、実データLBA・PBA記憶部M1P内の対応する実データの論理ブロックアドレスLBAと物理ブロックアドレスPBAの記憶領域に消去状態であることを示す消去情報を記憶する。さらに、ステップJ3において、CPU805は、消去要求コマンドから参照した物理ブロックアドレスPBAに基づいて、ECCデータLBA・PBA記憶部M2P内の対応するECCデータ論理ブロックアドレスLBAと物理ブロックアドレスPBAの記憶領域に消去状態であることを示す消去情報を記憶する。
Next, in step J3, the
次いで、CPU805は、消去要求された物理ブロックアドレスPBAに対応するNANDフラッシュメモリM1,M2内の実データ及びECCデータの消去は行わず、消去を行った旨をホスト装置20に通知する(ステップJ4)。この消去通知は、コントローラB802からコントローラA601を通じてホスト装置20に通知される。
Next, the
以上のように、本第6の実施の形態に係るメモリカード800では、異なる記憶容量を有する2つのNANDフラッシュメモリM1,M2をコントローラB802に接続し、コントローラB802とデータ振分部804によりホスト装置20から書き込み要求された書込データを実データとECCデータに分離し、NANDフラッシュメモリM1,M2に対して振り分けて記憶するようにした。
As described above, in the
したがって、メモリカード内に記憶容量が異なる2つのNANDフラッシュメモリM1,M2を搭載した場合、ホスト装置から受け付ける書込データを実データとECCデータに分離してNANDフラッシュメモリM1,M2に振り分けて記憶先することが可能になる。その結果、構成が異なる2つのNANDフラッシュメモリM1,M2を有効に利用することが可能なメモリカードを提供することが可能になる。 Therefore, when two NAND flash memories M1 and M2 having different storage capacities are mounted in the memory card, the write data received from the host device is separated into actual data and ECC data, and distributed to the NAND flash memories M1 and M2. It is possible to go ahead. As a result, it is possible to provide a memory card that can effectively use two NAND flash memories M1 and M2 having different configurations.
また、本第6の実施の形態に係るメモリカード800では、コントローラB802内にアクセス経路設定部807を有する構成とした。このため、上記第2の実施の形態に示したように、メモリカード800の出荷テスト時において、ホスト装置20をテスタとしてメモリカード800と電気的に接続することが可能になる。この場合、コントローラB802は、ホスト装置20から受け取ったアドレスを変換し、この変換したアドレスを用いてNANDフラッシュメモリM1,M2にアクセスする第1モードと、ホスト装置20から受け取ったアドレスを用いてNANDフラッシュメモリM1,M2に直接アクセスする第2モードとで動作することが可能になる。また、コントローラB802は、ホスト装置20から受け取る動作モードの切り替えコマンドに応じて第1モードと第2モードを切り替える切替制御を実行する。
Further, the
そして、上記第2の実施の形態に示したように、出荷テスト時において、ホスト装置20は、メモリカード800内のコントローラB802とNANDフラッシュメモリM1,M2を個別にテストすることが可能になる。さらに、コントローラB802は、第1モードから第2モードに移行する移行動作と、第2モードから第1モードに復帰する復帰動作を、ホスト装置20から受け取るコマンドに応じて制御する構成であるため、メモリカード800の外部接続ピン数を増加させることなく第2モードを実現することができる。
As shown in the second embodiment, the
また、NAND単体テストを実行する場合、ホスト装置20は、メモリカード800の電源投入後、移行動作を指示するコマンドシーケンスを発行する。コントローラB802は、当該コマンドシーケンス受け付けることより動作モードを第2モードに設定し、ホスト装置20から復帰動作を指示するコマンドシーケンスが発行されるまで第2モードを維持する。このようにコマンドシーケンスを用いることにより、コントローラB802が第2モード中に意図しない復帰動作を実行することを回避できる。
When executing the NAND unit test, the
なお、図48では、メモリカード800がホスト装置20から送られてくるコマンドによりアクセス経路設定部807がアクセス経路を設定する場合を示した。この構成に限定するものではなく、例えば、図35に示したメモリカード200のように、アクセス経路設定部2022が電源投入を検知してアクセス経路を自動的に設定する構成を、メモリカード800に適用するようにしても良い。この場合、電源投入直後は自動的に第2モードに設定することにより、コントローラB802に異常があった場合でもNAND単体テストが実行可能になる。
48 shows a case where the access path setting unit 807 sets an access path by a command sent from the
なお、本第6の実施の形態に係るメモリカード800では、記憶容量が異なるNANDフラッシュメモリM1,M2をコントローラB802に接続する場合を示したが、この構成に限定するものではない。例えば、図53に示すようなメモリカード900の構成としてもよい。なお、図53に示すメモリカード900では、図48に示したメモリカード800と同一の構成部分には同一符号を付している。
In the
図53に示すメモリカード900では、コントローラA601をコントローラチップ901とし、コントローラA601にNANDバス613を介して外部にNANDフラッシュメモリM1を接続し、コントローラB802とNANDフラッシュメモリM2を混載したメモリチップ902として構成している。
In the
このように構成することにより、NANDフラッシュメモリM1の世代(設計ルール)が変更された際に、NANDフラッシュメモリM1のみを交換し、コントローラA601の制御プログラムを変更するだけで対応可能になり、メモリカード全体の設計に影響を与えずにメモリシステムを更新することが可能になる。また、NANDフラッシュメモリM2の世代(設計ルール)が変更された際に、メモリチップ902のみを交換し、コントローラB802の制御プログラムを変更するだけで対応可能になり、メモリカード全体の設計に影響を与えずにメモリシステムを更新することが可能になる。
With this configuration, when the generation (design rule) of the NAND flash memory M1 is changed, only the NAND flash memory M1 is replaced and only the control program of the controller A601 is changed. It becomes possible to update the memory system without affecting the design of the entire card. In addition, when the generation (design rule) of the NAND flash memory M2 is changed, it is possible to cope only by exchanging only the
(第7の実施の形態)
本第7の実施の形態では、上記第5の実施の形態に示したメモリカード600をパッケージ化する際の構成を例示する。図54は、本第7の実施の形態に係るメモリカード600をパッケージ化した際の構成を示す断面図である。なお、図54において、上記第5の実施の形態において図41に示したメモリカード600と同一の構成部分には同一の符号を付している。
(Seventh embodiment)
In the seventh embodiment, a configuration when the
図54において、650は基板である。この基板650上には、層間膜651を介して上記NANDフラッシュメモリM1,M2が積層されている。NANDフラッシュメモリM2上には、上記コントローラA601及び上記コントローラB602がそれぞれ層間膜651を介して形成されている。基板650、NANDフラッシュメモリM1,M2、及びコントローラB602において、図中左端部の各上面にはボンディングワイヤ658を接続するためのパッド652〜655が形成されている。また、コントローラB602の図中右端部の上面と、コントローラA601の図中左端部の上面には、ボンディングワイヤ658を接続するためのパッド656,657がそれぞれ形成されている。また、基板650の図中左端部の下面側には、上記図25に示した第1〜第18ピンP1〜P18に対応する外部接続ピン659が形成されている。
In FIG. 54,
図55は、本第7の実施の形態に係るメモリカード600をパッケージ化した際の他の構成を示す断面図である。なお、図55において、上記第5の実施の形態において図41に示したメモリカード600と同一の構成部分と、図54に示した構成と同一の構成部分には同一の符号を付しており、その説明を省略する。
FIG. 55 is a cross-sectional view showing another configuration when the
図55において、NANDフラッシュメモリM2上には、コントローラB602が層間膜651を介して形成されている。コントローラB602上には、コントローラA601が層間膜651を介して形成されている。基板650、NANDフラッシュメモリM1,M2、コントローラB601、及びコントローラA601において、図中左端部の各上面にはボンディングワイヤ658を接続するためのパッド652〜656がそれぞれ形成されている。
In FIG. 55, a
上記図54及び図55に示した各パッケージの断面図は、NANDフラッシュメモリM2上にコントローラB602及びコントローラA603を積層して形成した場合を例示したものである。図54及び図55に示した各メモリカード600は、NANDフラッシュメモリM2上にコントローラB602及びコントローラA601を積層し、ボンディングワイヤ658を接続した後、外部接続ピン659を除く全体が樹脂等により封止される。
The cross-sectional views of the packages shown in FIGS. 54 and 55 exemplify the case where the
上述のように、積層構造とすることにより、実質的にNANDフラッシュメモリM1,M2を実装可能な基板650の大きさでメモリカード600を形成することができ、メモリカード600としてのパッケージの大きさを縮小することが可能になる。
As described above, the stacked structure allows the
図56は、本第7の実施の形態に係るメモリカードをパッケージ化した際の他の構成を示す断面図である。なお、図56において、上記第5の実施の形態において図41に示したメモリカード600と同一の構成部分と、図54に示した構成と同一の構成部分には同一の符号を付しており、その説明を省略する。
FIG. 56 is a cross-sectional view showing another configuration when the memory card according to the seventh embodiment is packaged. In FIG. 56, the same components as those of the
図56において、メモリカード600の基板650上には、NANDフラッシュメモリM1、コントローラB602、及びコントローラA601がそれぞれ層間膜651を介して形成されている。NANDフラッシュメモリM1上には、NANDフラッシュメモリM2が層間膜651を介して形成されている。コントローラA601の図中左端部の上面にはボンディングワイヤ658を接続するためのパッド655が形成されている。また、コントローラA601の図中右端部の上面と、コントローラB602の図中左端部の上面には、ボンディングワイヤ658を接続するためのパッド656,657がそれぞれ形成されている。また、コントローラB601の図中右端部の上面と、NANDフラッシュメモリM1の図中左端部の上面には、ボンディングワイヤ658を接続するためのパッド661,662がそれぞれ形成されている。さらに、NANDフラッシュメモリM2の図中左端部の上面には、ボンディングワイヤ658を接続するためのパッド663が形成されている。
In FIG. 56, on the
図56に示したメモリカード600は、基板650上にNANDフラッシュメモリM1,M2、コントローラB602、及びコントローラA601を形成し、ボンディングワイヤ658を接続した後、外部接続ピン659を除く全体が樹脂等により封止される。
The
上記図56に示したパッケージの断面図は、NANDフラッシュメモリM1,M2、コントローラB602、及びコントローラA601を基板650上に配置した場合を例示したものである。このような構造とすることにより、NANDフラッシュメモリM1,M2の世代を変更する際に、NANDフラッシュメモリM1やコントローラB602の交換が容易になる。
The cross-sectional view of the package shown in FIG. 56 exemplifies a case where the NAND flash memories M1 and M2, the controller B602, and the controller A601 are arranged on the
なお、上記図54〜図56に示した各パッケージの構成は、メモリカード600に対応するものとして示したが、メモリカード以外に、例えば、マルチチップパッケージ(MCM)、システム・イン・パッケージ(SiP)等としても適用可能である。
The configurations of the packages shown in FIGS. 54 to 56 are shown as corresponding to the
(第8の実施の形態)
本第8の実施の形態では、上記第7の実施の形態において例示したパッケージをUSB(Universal Serial Bus )メモリとして適用する場合の構成を例示する。図57は、本第8の実施の形態に係るUSBメモリの構成を示す断面図である。なお、図57において、上記第7の実施の形態において図54に示したメモリカードのパッケージ構成と同一の構成部分には同一の符号を付して、その説明を省略する。
(Eighth embodiment)
The eighth embodiment exemplifies a configuration when the package exemplified in the seventh embodiment is applied as a USB (Universal Serial Bus) memory. FIG. 57 is a cross-sectional view showing the configuration of the USB memory according to the eighth embodiment. 57, the same reference numerals are given to the same components as those of the memory card package shown in FIG. 54 in the seventh embodiment, and the description thereof is omitted.
図57に示すUSBメモリ1000において、1001は回路基板である。この回路基板1001の上面側には、電子部品1002及びUSBコントローラ等の制御チップ1003が実装されると共に、USBコネクタの入出力端子となる導体層1004が形成されている。また、回路基板1001の下面側には、上記図54に示したパッケージ化したメモリカード600が実装されている。また、1005はUSBメモリ1000の外装ケースである。
In the
図57に示したUSBメモリ1000では、メモリカード600をそのまま回路基板1001に実装するようにしたため、USBメモリの製造を容易にすることができるとともに、メモリカード600の利用範囲を拡大することができる。また、USBメモリ1000内のNANDフラッシュメモリM1,M2の世代を変更する場合に、その世代に合わせて製造されたメモリカード600を利用して実装することが可能になり、USBメモリとしての仕様変更も容易になる。
In the
なお、本第8の実施の形態では、USBメモリ内に図54に示したメモリカード600を適用した場合を例示したが、これに限定するものではなく、上記図55に示したメモリカード600や図56に示したメモリカード600等を適用しても良い。
In the eighth embodiment, the case where the
また、上記第5〜第8の実施の形態では、本発明のメモリシステムをメモリカードとUSBメモリに適用した場合を示したが、これらに限定するものではない。例えば、複数のNANDフラッシュメモリを搭載して、アプリケーションプログラム等により利用することを可能にしたデジタルカメラ、デジタルビデオカメラ、パーソナルコンピュータ等の各種電子機器にも適用可能である。 In the fifth to eighth embodiments, the memory system of the present invention is applied to a memory card and a USB memory. However, the present invention is not limited to these. For example, the present invention can be applied to various electronic devices such as a digital camera, a digital video camera, and a personal computer that are equipped with a plurality of NAND flash memories and can be used by an application program or the like.
1,200,600,700,800,900…メモリカード、2,601…コントローラA、3,602,802…コントローラB、4,M1,M2…NANDフラッシュメモリ、11…ホストバス、12,13,611〜613…NANDバス、20…ホスト装置、31,34,634,635…NAND_I/F、35,624,636,805…CPU、2022,807…アクセス経路設定部、M1P…第1データLBA・PBA記憶部,実データLBA・PBA記憶部、M2P…第2データLBA・PBA記憶部,ECCデータLBA・PBA記憶部。
1,200,600,700,800,900 ... memory card, 2,601 ... controller A, 3,602,802 ... controller B, 4, M1, M2 ... NAND flash memory, 11 ... host bus, 12,13, 611 to 613: NAND bus, 20: host device, 31, 34, 634, 635 ... NAND_I / F, 35, 624, 636, 805 ... CPU, 2022, 807 ... access path setting unit, M1P: first data LBA PBA storage unit, actual data LBA / PBA storage unit, M2P... Second data LBA / PBA storage unit, ECC data LBA / PBA storage unit.
Claims (8)
前記第1のコントローラに接続されるとともに、不揮発性メモリに接続される第2のコントローラと、
前記第2のコントローラに接続される前記不揮発性メモリと、を具備し、
前記第2のコントローラは、前記第1のコントローラと前記不揮発性メモリとの間でデータの授受を行うことを特徴とするメモリシステム。 A first controller connected to the host device;
A second controller connected to the first controller and connected to a non-volatile memory;
The nonvolatile memory connected to the second controller,
The memory system, wherein the second controller exchanges data between the first controller and the nonvolatile memory.
前記第2のコントローラ及び前記不揮発性メモリは、同一の半導体パッケージに封入されたことを特徴とする請求項1乃至3の何れかに記載のメモリシステム。 The second controller has a path for directly connecting the first memory interface and the second memory interface;
4. The memory system according to claim 1, wherein the second controller and the non-volatile memory are sealed in the same semiconductor package.
前記回路基板に前記第2のコントローラ及び前記不揮発性メモリを封入した半導体パッケージを実装したことを特徴とする請求項4記載のメモリシステム。 A circuit board having a USB terminal serving as an input / output terminal of a USB connector at one end is provided.
5. The memory system according to claim 4, wherein a semiconductor package enclosing the second controller and the nonvolatile memory is mounted on the circuit board.
前記第1のコントローラに接続されるとともに、複数の不揮発性メモリに接続される第2のコントローラと、
前記第2のコントローラに接続される前記複数の不揮発性メモリと、を具備し、
前記第2のコントローラは、前記第1のコントローラと前記複数の不揮発性メモリとの間でデータの授受を行うことを特徴とするメモリシステム。 A first controller connected to the host device;
A second controller connected to the first controller and connected to a plurality of nonvolatile memories;
A plurality of nonvolatile memories connected to the second controller;
The memory system, wherein the second controller exchanges data between the first controller and the plurality of nonvolatile memories.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008074918A JP2009099112A (en) | 2007-09-27 | 2008-03-24 | Memory system |
| US12/239,179 US8131912B2 (en) | 2007-09-27 | 2008-09-26 | Memory system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007250962 | 2007-09-27 | ||
| JP2008074918A JP2009099112A (en) | 2007-09-27 | 2008-03-24 | Memory system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2009099112A true JP2009099112A (en) | 2009-05-07 |
Family
ID=40702022
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2008074918A Pending JP2009099112A (en) | 2007-09-27 | 2008-03-24 | Memory system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2009099112A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012068862A (en) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | Semiconductor memory controller |
| US8755246B2 (en) | 2011-03-24 | 2014-06-17 | Kabushiki Kaisha Toshiba | Semiconductor memory device and method of setting operation environment therein |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04268284A (en) * | 1991-02-22 | 1992-09-24 | Fuji Photo Film Co Ltd | Memory card |
| JP2007066101A (en) * | 2005-08-31 | 2007-03-15 | Matsushita Electric Ind Co Ltd | MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, AND NONVOLATILE STORAGE SYSTEM |
-
2008
- 2008-03-24 JP JP2008074918A patent/JP2009099112A/en active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH04268284A (en) * | 1991-02-22 | 1992-09-24 | Fuji Photo Film Co Ltd | Memory card |
| JP2007066101A (en) * | 2005-08-31 | 2007-03-15 | Matsushita Electric Ind Co Ltd | MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, AND NONVOLATILE STORAGE SYSTEM |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012068862A (en) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | Semiconductor memory controller |
| US8555027B2 (en) | 2010-09-22 | 2013-10-08 | Kabushiki Kaisha Toshiba | Semiconductor memory controlling device |
| US9213604B2 (en) | 2010-09-22 | 2015-12-15 | Kabushiki Kaisha Toshiba | Semiconductor memory controlling device which writes data and error correction codes into different semiconductor storage drives |
| US8755246B2 (en) | 2011-03-24 | 2014-06-17 | Kabushiki Kaisha Toshiba | Semiconductor memory device and method of setting operation environment therein |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8131912B2 (en) | Memory system | |
| JP3892851B2 (en) | Memory card and semiconductor device | |
| US10204040B2 (en) | High speed flash controllers | |
| JP2007272635A (en) | Memory system and controller | |
| JP4406339B2 (en) | Controller, memory card and control method thereof | |
| EP2519879B1 (en) | Method and controller for performing a copy-back operation | |
| TWI454906B (en) | Data read method, and flash memory controller and storage system using the same | |
| JP5677336B2 (en) | Memory device | |
| JP4828816B2 (en) | Memory card, semiconductor device, and memory card control method | |
| JP4253272B2 (en) | Memory card, semiconductor device, and control method of semiconductor memory | |
| JP4460967B2 (en) | MEMORY CARD, NONVOLATILE SEMICONDUCTOR MEMORY, AND SEMICONDUCTOR MEMORY CONTROL METHOD | |
| CN103377129A (en) | Data writing method, memory controller and memory storage device | |
| JP4751037B2 (en) | Memory card | |
| JPWO2005083573A1 (en) | Semiconductor memory device | |
| JP2006004367A (en) | Memory card and semiconductor device | |
| JP4843222B2 (en) | Semiconductor memory device control method, memory card, and host device | |
| JP2009099112A (en) | Memory system | |
| JP2007233838A (en) | Memory system control method | |
| CN105573661B (en) | Data writing method, memory storage device and memory control circuit unit | |
| JP4498341B2 (en) | Memory system | |
| CN118643783A (en) | EEPROM emulation method | |
| CN119148924A (en) | Semiconductor device and method of operating the same |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100222 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120522 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20121009 |