JP2007280140A - 半導体記憶装置および信号処理システム - Google Patents
半導体記憶装置および信号処理システム Download PDFInfo
- Publication number
- JP2007280140A JP2007280140A JP2006106815A JP2006106815A JP2007280140A JP 2007280140 A JP2007280140 A JP 2007280140A JP 2006106815 A JP2006106815 A JP 2006106815A JP 2006106815 A JP2006106815 A JP 2006106815A JP 2007280140 A JP2007280140 A JP 2007280140A
- Authority
- JP
- Japan
- Prior art keywords
- buffer
- semiconductor memory
- data
- read
- address
- 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のフラッシュコントローラ21は、ホスト装置としてのCPU3とはアドレス、コマンドバス、データバスでつながり、バッファの容量以上のメモリ空間に割り当てられ、アクセスされた空間がバッファにロードされている空間であるかどうかを自動的に判断し、異なる場合にそれに相当する記録メディア中、すなわちNAND型フラッシュメモリ22のデータをバッファであるSRAM214にロードし、CPU3からランダムリードアクセスできるように制御する。
【選択図】図2
【解決手段】フラッシュメモリモジュール2のフラッシュコントローラ21は、ホスト装置としてのCPU3とはアドレス、コマンドバス、データバスでつながり、バッファの容量以上のメモリ空間に割り当てられ、アクセスされた空間がバッファにロードされている空間であるかどうかを自動的に判断し、異なる場合にそれに相当する記録メディア中、すなわちNAND型フラッシュメモリ22のデータをバッファであるSRAM214にロードし、CPU3からランダムリードアクセスできるように制御する。
【選択図】図2
Description
本発明は、たとえばNAND型フラッシュメモリのようにデータをシーケンシャルに高速に読み出し、もしくは書き込みを行う半導体記憶装置およびその半導体記憶装置を備えた信号処理システムに関するものである。
NAND型フラッシュメモリにおいては、複数個のメモリトランジスタを直列に接続してメモリストリングを構成し、2個のメモリストリングで1個のビットコンタクトおよびソース線を共有することにより、高集積化が実現されている。
一般的なNAND型フラッシュメモリにおいて、消去動作は、たとえば選択されたメモリストリングが接続された全ワード線に0V、非選択のメモリストリングが接続された全ワード線をフローティングとして、メモリアレイの基板に高電圧(20V)を印加する。
その結果、選択メモリストリングのメモリトランジスタのみフローティングゲートから基板に電子が引き抜かれる。その結果、メモリトランジスタのしきい値電圧は負方向にシフトして、たとえば−3Vになる。
その結果、選択メモリストリングのメモリトランジスタのみフローティングゲートから基板に電子が引き抜かれる。その結果、メモリトランジスタのしきい値電圧は負方向にシフトして、たとえば−3Vになる。
また、データの書き込み動作は、選択するワード線に接続されたメモリトランジスタ一括に、数百〜数千バイトのいわゆるページ単位で行われる。
具体的には、たとえば選択するワード線に高電圧(たとえば18V)を、書き込むべき(0データ)メモリトランジスタが接続されたビット線に0V、書き込みを禁止すべき(1データ)メモリトランジスタが接続されたビット線にハイレベル(たとえば3.3V)を印加する。
その結果、書き込むべき選択メモリトランジスタのみ、フローティングゲート中に電子が注入されて、選択メモリトランジスタのしきい値電圧は正方向にシフトして、たとえば2V程度になる。
具体的には、たとえば選択するワード線に高電圧(たとえば18V)を、書き込むべき(0データ)メモリトランジスタが接続されたビット線に0V、書き込みを禁止すべき(1データ)メモリトランジスタが接続されたビット線にハイレベル(たとえば3.3V)を印加する。
その結果、書き込むべき選択メモリトランジスタのみ、フローティングゲート中に電子が注入されて、選択メモリトランジスタのしきい値電圧は正方向にシフトして、たとえば2V程度になる。
このようなNAND型フラッシュメモリにおいては、データの書き込みおよび消去ともFN(Fowler Nordheim) トンネル電流により行うため、動作電流をチップ内昇圧回路から供給することが比較的容易であり、単一電源で動作させやすいという利点がある。
さらに、ページ単位で、つまり選択するワード線に接続されたメモリトランジスタ一括にデータの書き込みが行われるため、NOR型フラッシュメモリに比較して書き込み速度の点で優位である。
さらに、ページ単位で、つまり選択するワード線に接続されたメモリトランジスタ一括にデータの書き込みが行われるため、NOR型フラッシュメモリに比較して書き込み速度の点で優位である。
また、NAND型フラッシュメモリにおけるデータの読み出しは、ランダムアクセスされたページ単位で、メモリセルに格納されたデータをセンスアンプを通して確定させてデータレジスタに格納し、その後、ページデータを1あるいは2バイト単位ずつ、シリアルに外部転送することにより行われる。
具体的には、たとえば選択されたワード線に0Vを、非選択の全ワード線に4V程度の電圧を印加する。
NAND型フラッシュメモリの場合、複数のメモリセルが直列に接続されていることから、NOR型フラッシュメモリに比較して、メモリセルの読み出し電流が少ないため、メモリセルに格納されたデータをセンスアンプを通して確定させる、いわゆるランダムアクセス時間が長い。
具体的には、たとえば選択されたワード線に0Vを、非選択の全ワード線に4V程度の電圧を印加する。
NAND型フラッシュメモリの場合、複数のメモリセルが直列に接続されていることから、NOR型フラッシュメモリに比較して、メモリセルの読み出し電流が少ないため、メモリセルに格納されたデータをセンスアンプを通して確定させる、いわゆるランダムアクセス時間が長い。
上述したように、NAND型フラッシュメモリにおける通常の読み出しおよび書き込み時のアクセス方法は、その開始アドレスとコマンドを入力するとデータバスからデータが次々と出力あるいは、入力されるいわゆるシーケンシャルなアクセス方法である。
したがって、これらのデータをいわゆるホスト装置としてのCPUが利用する場合には、それらのデータを一旦CPU自身のメインメモリへ展開してからそれを加工するという2段階の処理が必要となる。
つまり、NAND型フラッシュメモリのアクセス方法は、通常のRAMのように、CPUバスとアドレスバス、データバスで接続してアクセスしたいアドレスを出力するとそのデータが出力されるというシンプルなアクセス方法ではない。
したがって、これらのデータをいわゆるホスト装置としてのCPUが利用する場合には、それらのデータを一旦CPU自身のメインメモリへ展開してからそれを加工するという2段階の処理が必要となる。
つまり、NAND型フラッシュメモリのアクセス方法は、通常のRAMのように、CPUバスとアドレスバス、データバスで接続してアクセスしたいアドレスを出力するとそのデータが出力されるというシンプルなアクセス方法ではない。
そのため、NAND型フラッシュメモリを使用するには、一般的にそれ専用のインタフェース(I/F)をCPU(あるいはシステム)に追加するか、CPU(システム)がサポートしている既存のインタフェース(I/F)とつなげるような変換LSIにより形成されるフラッシュコントローラを使用する。
通常使われる既存のインタフェースとしては、NAND型フラッシュメモリがシーケンシャルアクセスのためHDD用のインタフェースを流用するのが一般的である。
あるいは、メモリカードなどのような独自のインタフェース(I/F)、あるいはUSBなどを使用する場合もある。
いずれにせよこれらはすべてシーケンシャルにアクセスすることについては同じであり、高速なランダムアクセスできないという不利益がある。
あるいは、メモリカードなどのような独自のインタフェース(I/F)、あるいはUSBなどを使用する場合もある。
いずれにせよこれらはすべてシーケンシャルにアクセスすることについては同じであり、高速なランダムアクセスできないという不利益がある。
他の技術としては、CPUの通常のバスに接続できるようなインタフェース(I/F)をもつコントローラもある。
このコントローラは、NAND型フラッシュメモリと外部バスとの間にバッファ(Buffer)を持ち、これを介してデータの授受(やりとり)を行う。このバッファは外部からランダムにアクセスできる。
しかし、このバッファのサイズはNAND型フラッシュメモリの容量に比べてはるかに小さいため、NAND型フラッシュメモリから必要なデータをバッファへ読み出させてからバッファへアクセスするという処理をCPUから指示することが必要であり、通常のRAMへアクセスする処理と同じ処理ですむわけではない。
このコントローラは、NAND型フラッシュメモリと外部バスとの間にバッファ(Buffer)を持ち、これを介してデータの授受(やりとり)を行う。このバッファは外部からランダムにアクセスできる。
しかし、このバッファのサイズはNAND型フラッシュメモリの容量に比べてはるかに小さいため、NAND型フラッシュメモリから必要なデータをバッファへ読み出させてからバッファへアクセスするという処理をCPUから指示することが必要であり、通常のRAMへアクセスする処理と同じ処理ですむわけではない。
つまり、既存技術では、NAND型フラッシュメモリに対する煩雑な操作をホスト装置側が行わない限り読み出しおよび書き込みを行うことができないという不利益がある。
本発明は、ホスト装置側の煩雑な操作を要することなく、容易に、しかも的確にアクセスすることが可能な半導体記憶装置および信号処理システムを提供することにある。
上記目的を達成するため、本発明の第1の観点の半導体記憶装置は、ランダムアクセスが困難な記録メディアと、ランダムアクセス可能なバッファと、上記バッファの容量以上のメモリ空間を割り当てられ、アクセスされた空間が上記バッファにロードされている空間である否かを自動的に判断し、異なる場合に当該空間に相当する記録メディア中のデータを上記バッファにロードするコントローラと、を有する。
好適には、上記コントローラは、上記バッファにロードされている空間に対して書き込みがされたことを記録保持する機能を有し、書き込みがされたときのみ上記記録メディアへ書き戻す。
好適には、上記コントローラは、上記バッファにアクセス要求を出した装置側に、要求されたデータのロードが完了するまで、レディ信号を非アクティブとしてウェイトをかけ、ロードが完了すると、レディ信号をアクティブとしてアクセスを許可する。
好適には、上記記録メディアは、複数のバンクを有し、上記コントローラは、入力アドレスと上記バッファにデータがロードされているカレントバンクナンバーとを比較し、一致しない場合には上記レディ信号を非アクティブとし、一致すると上記レディ信号をアクティブとする。
好適には、上記コントローラは、(上記記録メディアから上記バッファへのロード中にウェイトさせるためのレディ信号の代わりに、)識別するためのアドレスを上記バッファ内に割り付け、当該アドレスを読むことにより、読むたびに異なる値が読めれば非レディ、同じ値が読めればレディであることが識別することができるように制御する。
本発明の第2の観点の信号処理システムは、半導体記憶装置と、上記半導体記憶装置のアクセスのコントロールおよび上記半導体記憶装置に格納されたデータに従って所定の信号処理を行うホスト装置と、を有し、上記半導体記憶装置は、ランダムアクセスが困難な記録メディアと、ランダムアクセス可能なバッファと、上記バッファの容量以上のメモリ空間を割り当てられ、上記ホスト装置からアクセスされた空間が上記バッファにロードされている空間である否かを自動的に判断し、異なる場合に当該空間に相当する記録メディア中のデータを上記バッファにロードするコントローラと、を含む。
本発明の第3の観点の信号処理システムは、第1の半導体記憶装置と、上記第1の半導体記憶装置の格納データが読み出される第2の半導体記憶装置と、上記第1および第2の半導体記憶装置のアクセスのコントロールおよび上記第2の半導体記憶装置に格納されたデータに従って所定の信号処理を行うホスト装置と、を有し、上記第1の半導体記憶装置は、ランダムアクセスが困難な記録メディアと、ランダムアクセス可能なバッファと、上記バッファの容量以上のメモリ空間を割り当てられ、上記ホスト装置からアクセスされた空間が上記バッファにロードされている空間である否かを自動的に判断し、異なる場合に当該空間に相当する記録メディア中のデータを上記バッファにロードするコントローラと、を含む。
本発明によれば、ホスト装置側の煩雑な操作を要することなく、容易に、しかも的確にアクセスすることが可能となる。
以下、本発明の実施形態を、図面に関連付けて説明する。
図1は、本発明に係る半導体記憶装置を採用した信号処理システムの全体構成を示すブロック図である。
本実施形態においては、半導体記憶装置として、複数のメモリセルを直列に接続したメモリストリングが選択用スイッチを介してビット線およびソース線に接続されるNAND型フラッシュメモリとそのコントローラを含むNAND型フラッシュメモリモジュールを採用している。
本実施形態においては、半導体記憶装置として、複数のメモリセルを直列に接続したメモリストリングが選択用スイッチを介してビット線およびソース線に接続されるNAND型フラッシュメモリとそのコントローラを含むNAND型フラッシュメモリモジュールを採用している。
本信号処理システム1は、図1に示すように、第1の半導体記憶装置としてのNAND型フラッシュメモリモジュール(NDFLM)2、ホスト装置としてのCPU3、第2の半導体記憶装置としてのたとえばDRAM4、並びに、CPU3とフラッシュメモリモジュール2およびDRAM4とを接続するバス5とを有している。
バス5は、アドレス、コマンドバス、データバスを含む。
バス5は、アドレス、コマンドバス、データバスを含む。
本信号処理システム1においては、たとえばNAND型フラッシュメモリの特性を活かして、NAND型フラッシュメモリは、システムのOSプログラムやアプリケーションプログラムの格納、または画像や音声データのストレージとして適用する。
そして、信号処理システム1においては、電源オン時、強制的なリセット時、あるいはシステムリセット時等に、NAND型フラッシュメモリに記憶されているデータを高速、たとえば100MB/s程度の高速で読み出して、CPU3、バス5を通してDRAM4に高速に転送する。
以後、CPU3は、DRAM4をアクセスすることによりシステムを高速に起動させることができ、さらに、画像処理、音声処理、あるいはこれらに伴う表示処理や音声出力処理等の、アプリケーションに応じた各種信号処理を行うことができる。
そして、信号処理システム1においては、電源オン時、強制的なリセット時、あるいはシステムリセット時等に、NAND型フラッシュメモリに記憶されているデータを高速、たとえば100MB/s程度の高速で読み出して、CPU3、バス5を通してDRAM4に高速に転送する。
以後、CPU3は、DRAM4をアクセスすることによりシステムを高速に起動させることができ、さらに、画像処理、音声処理、あるいはこれらに伴う表示処理や音声出力処理等の、アプリケーションに応じた各種信号処理を行うことができる。
図2は、本実施形態に係るNAND型フラッシュメモリモジュール2の構成例を示すブロック図である。
フラッシュメモリモジュール2は、図2に示すように、フラッシュコントローラ21と、フラッシュコントローラ21にチャネルCh.0、Ch.1を介して接続された記録メディアとしてのNAND型フラッシュメモリ22−0,22−1とを有する。
図2の例は、512Mビットの2つのチップNAND型フラッシュメモリ22−0,22−1を接続した場合で128MB(メガバイト)の総容量となっている。
図2の例は、512Mビットの2つのチップNAND型フラッシュメモリ22−0,22−1を接続した場合で128MB(メガバイト)の総容量となっている。
信号処理システム1においては、ホスト側であるCPU3とNAND型フラッシュメモリ22(−0,−1)は、フラッシュコントローラ21を介して接続されている。
CPU3からのフラッシュメモリ22に対する読み出し(以降、リード)、書き込み(以降、ライト)、消去(イレーズ)のアクセス要求は、一旦、フラッシュコントローラ21が受け付ける。
フラッシュコントローラ21は、アドレス変換処理(CPU3の指定する論理アドレスをフラッシュメモリ上の物理アドレスに変換するマッピング処理、論理・物理アドレス変換処理)、フラッシュメモリ22からのリードデータに対するエラー検出・訂正処理、およびフラッシュメモリ2へのライトデータに対するエラー検出・訂正符号の付加等を行う。
本実施形態のフラッシュコントローラ21は、これらの機能に加えて以下に説明する特徴的な機能を有する。
CPU3からのフラッシュメモリ22に対する読み出し(以降、リード)、書き込み(以降、ライト)、消去(イレーズ)のアクセス要求は、一旦、フラッシュコントローラ21が受け付ける。
フラッシュコントローラ21は、アドレス変換処理(CPU3の指定する論理アドレスをフラッシュメモリ上の物理アドレスに変換するマッピング処理、論理・物理アドレス変換処理)、フラッシュメモリ22からのリードデータに対するエラー検出・訂正処理、およびフラッシュメモリ2へのライトデータに対するエラー検出・訂正符号の付加等を行う。
本実施形態のフラッシュコントローラ21は、これらの機能に加えて以下に説明する特徴的な機能を有する。
以下に、本実施形態に係るフラッシュコントローラ21のより具体的な構成および機能を中心に説明する。
本実施形態のフラッシュコントローラ21は、図2に示すように、ホストバスインタフェース(HI/F)211、メモリインタフェース(MI/F)212、コントローラ213、およびランダムアクセス可能なバッファである、容量が4KB(キロバイト)のSRAM214を有する。
本実施形態のフラッシュメモリモジュール2は、ランダムアクセスが困難な記録メディア、すなわち、NAND型フラッシュメモリ22とランダムアクセス可能なバッファとしてのSRAM(バッファ)214を有する記録メディアシステムを形成している。
フラッシュメモリモジュール2のフラッシュコントローラ21は、ホスト装置としてのCPU3とはアドレス、コマンドバス、データバスでつながり、バッファの容量以上のメモリ空間に割り当てられ、アクセスされた空間がバッファにロードされている空間であるかどうかを自動的に判断し、異なる場合にそれに相当する記録メディア中、すなわちNAND型フラッシュメモリ22のデータをバッファであるSRAM214にロードし、CPU3からランダムリードアクセスできるように制御する。この制御機能は、オートバンクチェンジ(Automatic Bank change)機能という。
また、本実施形態のフラッシュメモリモジュール2は、バッファであるSRAM214にロードされている空間に対して書き込みがされたことを記録保持する機能を有し、書き込みがされたときのみ記録メディアであるNAND型フラッシュメモリ22に書き戻す機能を有する。
フラッシュメモリモジュール2のフラッシュコントローラ21は、ホスト装置としてのCPU3とはアドレス、コマンドバス、データバスでつながり、バッファの容量以上のメモリ空間に割り当てられ、アクセスされた空間がバッファにロードされている空間であるかどうかを自動的に判断し、異なる場合にそれに相当する記録メディア中、すなわちNAND型フラッシュメモリ22のデータをバッファであるSRAM214にロードし、CPU3からランダムリードアクセスできるように制御する。この制御機能は、オートバンクチェンジ(Automatic Bank change)機能という。
また、本実施形態のフラッシュメモリモジュール2は、バッファであるSRAM214にロードされている空間に対して書き込みがされたことを記録保持する機能を有し、書き込みがされたときのみ記録メディアであるNAND型フラッシュメモリ22に書き戻す機能を有する。
図3は、本実施形態に係るNAND型フラッシュメモリのセルアレイ構造例を示す図である。
NAND型フラッシュメモリ22のセルアレイ221は、図3に示すように、直列に接続された複数、たとえば16個のメモリトランジスタM0〜M15およびその両端に直列に接続された2個の選択トランジスタST0,ST1により構成されたメモリセルユニットMCUT00,MCUT01,MCUT04223がマトリクス状に配置されている。
なお、図3では、図面の簡単化のために、1行4224列の4224個のメモリセルユニットMCUT00〜MCUT04223が配列された1行のブロックBLK0のみについて示しているが、実際には、ブロックBLK0と同様の構成を有する複数(m個)のブロックBLK1〜BLKmがさらに配列される。
また、図3の例では、ビット線本数は、通常512バイトに予備の16バイトを加えた528バイト、つまり4224本としている。
なお、図3では、図面の簡単化のために、1行4224列の4224個のメモリセルユニットMCUT00〜MCUT04223が配列された1行のブロックBLK0のみについて示しているが、実際には、ブロックBLK0と同様の構成を有する複数(m個)のブロックBLK1〜BLKmがさらに配列される。
また、図3の例では、ビット線本数は、通常512バイトに予備の16バイトを加えた528バイト、つまり4224本としている。
ローデコーダ222は、ブロックアドレスデコーダ223により導通状態が制御される転送ゲート群2221、ワード線デコーダから供給されるワード線および選択ゲート線用駆動電圧供給線VCG0〜VCG15,VSSL,VGSLを有している。
なお、図3では、図面の簡単化のために、ブロックBLK0に対応するブロックアドレスデコーダ部分並びに転送ゲート群を示しているが、実際には、複数配列される図示しないブロックに対応してブロックアドレスデコーダ部分並びに転送ゲート群が設けられる。
転送ゲート群2221は、転送ゲートTW0〜TW15,TD0およびTS0により構成されている。
転送ゲート群2221は、ブロックアドレスデコーダ223でデコードされたブロックアドレスに応答して生成され、対応するブロックの選択ゲート線およびワード線を駆動するための信号BSELによって導通状態に保持させる。
具体的には、ブロックBLK0がアドレス指定されていた場合、各転送ゲートTW0〜TW15は、それぞれブロックアドレスデコーダ223の出力信号BSEL0に応じてワード線WL0〜WL15と駆動電圧供給線VCG0〜VCG15とを作動的に接続し、転送ゲートTD0,TS0は同じくブロックアドレスデコーダ223の出力信号BSEL0に応じて選択ゲート線SSL,GSLと駆動電圧供給線VDSG,VSSGとを作動的に接続する。
なお、図3では、図面の簡単化のために、ブロックBLK0に対応するブロックアドレスデコーダ部分並びに転送ゲート群を示しているが、実際には、複数配列される図示しないブロックに対応してブロックアドレスデコーダ部分並びに転送ゲート群が設けられる。
転送ゲート群2221は、転送ゲートTW0〜TW15,TD0およびTS0により構成されている。
転送ゲート群2221は、ブロックアドレスデコーダ223でデコードされたブロックアドレスに応答して生成され、対応するブロックの選択ゲート線およびワード線を駆動するための信号BSELによって導通状態に保持させる。
具体的には、ブロックBLK0がアドレス指定されていた場合、各転送ゲートTW0〜TW15は、それぞれブロックアドレスデコーダ223の出力信号BSEL0に応じてワード線WL0〜WL15と駆動電圧供給線VCG0〜VCG15とを作動的に接続し、転送ゲートTD0,TS0は同じくブロックアドレスデコーダ223の出力信号BSEL0に応じて選択ゲート線SSL,GSLと駆動電圧供給線VDSG,VSSGとを作動的に接続する。
ブロックアドレスデコーダ223は、ブロックアドレスをデコードし、デコードしたブロックアドレスに応答して、ローデコーダ222の対応するブロックの選択ゲート線およびワード線を駆動するための転送ゲート群2221を信号BSELによって導通状態に保持させる。
ホストバスインタフェース211は、たとえばデータバスとして16ビットバス幅(D[15:0]を有し、アドレスバスとして18ビットバス幅(A[17:0])を有する。
また、ホスト装置であるCPU3からホストバスインタフェース211に転送される信号としては、リセット信号RST#、バーストイネーブル信号BE#、チップイネーブル信号CE[0:1]#、リードイネーブル信号OE#、ライトイネーブル信号WE、バーストクロックBSTCLK等が含まれる。
ホストバスインタフェース211からCPU3に転送される信号としては、レディ信号RDY、バッファレディ信号BRDY、インタラプト信号INT#等が含まれる。
これらの信号で、#符号が付されている信号はローレベルでアクティブの信号である。
また、ホスト装置であるCPU3からホストバスインタフェース211に転送される信号としては、リセット信号RST#、バーストイネーブル信号BE#、チップイネーブル信号CE[0:1]#、リードイネーブル信号OE#、ライトイネーブル信号WE、バーストクロックBSTCLK等が含まれる。
ホストバスインタフェース211からCPU3に転送される信号としては、レディ信号RDY、バッファレディ信号BRDY、インタラプト信号INT#等が含まれる。
これらの信号で、#符号が付されている信号はローレベルでアクティブの信号である。
本実施形態のホストバスインタフェース211は、非同期モードと同期モードの2つのアクセス方法をサポートしている。
この非同期モードと同期モードの切り替えは、バーストイネーブル信号BE#により制御され、このモード変更は後で説明するコンフィギュレーションレジスタ(Configuration Register)におけるフラグを変更することにより可能である。バーストイネーブル信号BE#がローレベルであれば同期モードを意味する。
ホストバスインタフェース211がCPU3に転送するレディ信号RDYは、バッファとしてのSRAM214に、要求されたデータの準備が間に合わない場合にネゲート(negate)して、ホスト装置であるCPU3に待ってもらう役割をする。
この非同期モードと同期モードの切り替えは、バーストイネーブル信号BE#により制御され、このモード変更は後で説明するコンフィギュレーションレジスタ(Configuration Register)におけるフラグを変更することにより可能である。バーストイネーブル信号BE#がローレベルであれば同期モードを意味する。
ホストバスインタフェース211がCPU3に転送するレディ信号RDYは、バッファとしてのSRAM214に、要求されたデータの準備が間に合わない場合にネゲート(negate)して、ホスト装置であるCPU3に待ってもらう役割をする。
ホストバスインタフェース211は、図4に示すようなメモリ空間100を割り当てる。
メモリ空間100は、NAND型フラッシュメモリ22の先頭256KBがそのまま見えるランダムアクセス空間(ランダムアクセス領域という場合もある)110と、NAND型フラッシュメモリ22を制御するためのコマンドやそのパラメータを書き込むレジスタやステータス(Status)を読むレジスタ、データを読み書きするレジスタなどを含むレジスタ空間120の二つに分かれる。
それらのランダムアクセス空間110とレジスタ空間120が通常のメモリ空間に割り
当てられ、基本的にはアドレス、データ、リード、ライト(R/W)信号、レディ信号RDYでアクセスが可能である。
メモリ空間100は、NAND型フラッシュメモリ22の先頭256KBがそのまま見えるランダムアクセス空間(ランダムアクセス領域という場合もある)110と、NAND型フラッシュメモリ22を制御するためのコマンドやそのパラメータを書き込むレジスタやステータス(Status)を読むレジスタ、データを読み書きするレジスタなどを含むレジスタ空間120の二つに分かれる。
それらのランダムアクセス空間110とレジスタ空間120が通常のメモリ空間に割り
当てられ、基本的にはアドレス、データ、リード、ライト(R/W)信号、レディ信号RDYでアクセスが可能である。
レジスタ空間120に割り当てられる各種レジスタには、NANDデータレジスタ(NAND Data reg)121、コンフィギュレーションレジスタ(Config reg)122、バンクレジスタ(Bank reg)123、セクタカウントレジスタ(Sector count reg)124、アドレスハイレジスタ(Address High reg)125、アドレスローレジスタ(Address Low reg)126、コマンドレジスタ(Command reg)127、ステータスレジスタ(Status reg)128、インタラプトレジスタ(INT reg)129、インタラプトイネーブルレジスタ(INTEN reg)130、リセットレジスタ(Reset reg)131、等を含む。
NANDデータレジスタ121は、ホスト装置としてのCPU3からフラッシュメモリモジュール2内のバッファ(SRAM)214へ、またはバッファ(SRAM)214
からCPU3にデータを転送するために使用される。
からCPU3にデータを転送するために使用される。
コンフィギュレーションレジスタ122は、動作設定を変更するレジスタであり、同期モードと非同期モードの切り替えを行うために使用可能である。たとえばレジスタ122の所定ビットが0(ディフォルト値)にセットされると、非同期モードを示し、1にセットされると同期モードを示す。
バンクレジスタ123は、バンクチェンジコマンドを実行するとき、読み出すバンクの値(たとえば0〜63)がセットされる。本レジスタ123を読み出すと、ランダムアクセス領域110で読み出せるバンクの値を示すことになる。
セクタカウントレジスタ124は、コマンドの実行するセクタ数を書き込むレジスタである。実行するセクタ数をセットするコマンドでは、CPU3(ホスト)−メモリデバイス間の残りの転送セクタ数が読み出される。
アドレスハイレジスタ125は、コマンドを開始するセクタアドレスのLBA[27:16]を書き込むレジスタである。コマンドの正常終了時に本レジスタ125からアクセスした最終セクタアドレスのLBA[27:16]を読み出すことができる。開始するアドレスをセットするコマンドでは、CPU3(ホスト)−メモリデバイス間でこれから転送するアドレスが読み出される。
アドレスローレジスタ126は、コマンドを開始するセクタアドレスのLBA[15:00]を書き込むレジスタである。コマンドの終了時に本レジスタ125からアクセスした最終セクタアドレスのLBA[15:00]を読み出すことができる。開始するアドレスをセットするコマンドでは、CPU3(ホスト)−メモリデバイス間でこれから転送するアドレスが読み出される。
コマンドレジスタ127は、メモリデバイスに対してコマンドを発行するためのレジスタであり、コマンドが書き込まれると速やかにコマンド処理を開始する。本レジスタ127からCPU3が書き込んだ値が読み出し可能である。
ステータスレジスタ128は、メモリデバイスの状態を返す読み出し専用のレジスタである。ステータスレジスタ128は、先行するコマンドのエラー情報を提供するエラービット群、BSYビット、CORRビット、BFRDYビット、BRDYビットを含む。
BSYビットは、たとえば1がセットされるとメモリデバイスがコマンド受付不可状態であることを示し、0がセットされるとメモリデバイスがコマンド受付可能状態であることを示す。
CORRビットは、直前のコマンド実行中にコレクタブルエラーが発生し、データを訂正した場合に1がセットされる。
BFRDYビットは、たとえば1がセットされるとバンクレジスタ123で示されたバンク値のデータが読み出せることを示し、0がセットされると、ランダムアクセス空間(領域)110のデータが読み出せないことを示す。このBFRDYビットは、パワーオンリセット、ハードウェアリセット、ソフトウェアリセット、または、コマンドレジスタ127へのコマンドの書き込みで0になる。
BRDYビットは、たとえば1がセットされるとパワーオンリセット、ハードウェアリセット時にランダムアクセス領域のバンク0のデータが正常に読み出せたことを示し、0がセットされるとワーオンリセット、ハードウェアリセット時にランダムアクセス領域のデータが正常に読み出せなかったことを示す。BRDYビットは、パワーオンリセット、ハードウェアリセットで0になる。
BSYビットは、たとえば1がセットされるとメモリデバイスがコマンド受付不可状態であることを示し、0がセットされるとメモリデバイスがコマンド受付可能状態であることを示す。
CORRビットは、直前のコマンド実行中にコレクタブルエラーが発生し、データを訂正した場合に1がセットされる。
BFRDYビットは、たとえば1がセットされるとバンクレジスタ123で示されたバンク値のデータが読み出せることを示し、0がセットされると、ランダムアクセス空間(領域)110のデータが読み出せないことを示す。このBFRDYビットは、パワーオンリセット、ハードウェアリセット、ソフトウェアリセット、または、コマンドレジスタ127へのコマンドの書き込みで0になる。
BRDYビットは、たとえば1がセットされるとパワーオンリセット、ハードウェアリセット時にランダムアクセス領域のバンク0のデータが正常に読み出せたことを示し、0がセットされるとワーオンリセット、ハードウェアリセット時にランダムアクセス領域のデータが正常に読み出せなかったことを示す。BRDYビットは、パワーオンリセット、ハードウェアリセットで0になる。
インタラプトレジスタ129は、割り込み状態を示し、ERRORINTビット、CMDCPINTビット、WRRDYINTビット、RDRDYINTビットを含む。
ERRORINTビットは、コマンド発行中にエラーが発生したときに1になる。また、オートバンクチェンジでエラーが発生した場合も1になる。
CMDCPINTビットは、コマンドが正常終了したときにセットされる。
WRRDYINTビットは、CPU3がデータレジスタ121にデータが書き込み可能なとき、1セクタごとに1になる。
RDRDYINTビットは、CPU3がデータレジスタ121からデータを読み出し可能なとき、1セクタごとに1になる。
ERRORINTビットは、コマンド発行中にエラーが発生したときに1になる。また、オートバンクチェンジでエラーが発生した場合も1になる。
CMDCPINTビットは、コマンドが正常終了したときにセットされる。
WRRDYINTビットは、CPU3がデータレジスタ121にデータが書き込み可能なとき、1セクタごとに1になる。
RDRDYINTビットは、CPU3がデータレジスタ121からデータを読み出し可能なとき、1セクタごとに1になる。
インタラプトイネーブルレジスタ130は、割り込みビットの有効、無効をセットするレジスタである。
リセットレジスタ131は、CPU3がリセット(ハードウェアリセット、ソフトウェアリセット)を要求するときにセットするレジスタである。
本実施形態においては、各種レジスタを経由してNANDメモリ空間(128MB)の全部をアクセスする本来の基本的機能に加えて、先頭の256KBのアドレス空間を本発明の方法でアクセスできる機能を併せ持つ。
次に、以上の基本的機能に加えて、本実施形態の特徴的な機能である、フラッシュメモリモジュール2のコントローラ213におけるバンクチェンジ(Bank change)機能を、図5に関連付けて説明する。
なお、ここでは、説明のため、NAND型フラッシュメモリの先頭アドレスから4KB単位にくぎりそれをバンクという単位で呼ぶ。この4KBはバッファとしてのSRAM214のサイズと同じである。したがって、バンクナンバー(バンク値)は0〜63である。
なお、ここでは、説明のため、NAND型フラッシュメモリの先頭アドレスから4KB単位にくぎりそれをバンクという単位で呼ぶ。この4KBはバッファとしてのSRAM214のサイズと同じである。したがって、バンクナンバー(バンク値)は0〜63である。
本実施形態のオートバンクチェンジ機能においては、バンクレジスタ123がSRAM214にデータを格納するバンクナンバー(バンク値)を保持する。異なる(他の)アドレスが要求されると、コントローラ213がレディ信号RDYをネゲートし、NAND型フラッシュメモリ22からSRAM214にデータをロードし、そしてレディ信号RDYをアサート(assert)する。このバンクチェンジに要する時間は、100μs程度である。
このように、オートバンクチェンジ機能においては、コントローラ213は、アドレスラインに従って自動的にバンクを変更(チェンジ)する。そして、このバンクチェンジ期間中は、コントローラ213は、レディ信号RDYをネゲートする。
このように、オートバンクチェンジ機能においては、コントローラ213は、アドレスラインに従って自動的にバンクを変更(チェンジ)する。そして、このバンクチェンジ期間中は、コントローラ213は、レディ信号RDYをネゲートする。
さらに、コントローラ213は、コマンドバンクチェンジ機能を有し、ホスト装置であるCPU3により発行されたバンクチェンジコマンドをトリガとしてバンクチェンジを行う。そして、コントローラ213は、NAND型フラッシュメモリ22からSRAM214へのデータロードを開始する。
CPU3は、ステータスレジスタ128を読むことによって、バンクチェンジンが終了したかを知ることができる。あるいは、CPU3はインタラプト信号INT#によってもバンクチェンジが終了したかを知ることができる。
このコマンドバンクチェンジ機能により、ホスト装置であるCPU3がバンク切り替えの間他の仕事をすることも可能である。
CPU3は、ステータスレジスタ128を読むことによって、バンクチェンジンが終了したかを知ることができる。あるいは、CPU3はインタラプト信号INT#によってもバンクチェンジが終了したかを知ることができる。
このコマンドバンクチェンジ機能により、ホスト装置であるCPU3がバンク切り替えの間他の仕事をすることも可能である。
以下に、バッファとしてのSRAMを用いたランダムアクセス処理についての基本的な動作を説明する。
NANDフラッシュメモリモジュール2において、電源投入(オン)後、初期化を含む起動処理を実行した後、ランダムアクセス領域の先頭4KBデータをNADN型フラッシュメモリ22から読み出し、4KBのバッファであるSRAM214にロード(コピー)する。ロードが完了すると、その旨をバッファレディ信号BRDYをハイレベルに設定してホスト装置であるCPU3に伝達する。
CPU3は、フラッシュメモリモジュール2とはアドレスバス、データバス、リードイネーブル信号OE#、ライトイネーブル信号WE#、レディ信号RDYにより接続する。
CPU3が0から256KBまでの間のランダムアクセス領域をリードしようとする場合、それが先頭4KBであれば、すでにバッファであるSRAM214にロードされているのでそのままリードできる。
もしそれ以外の場所であると、フラッシュメモリモジュール2はレディ信号RDYをネゲートし、NAND型フラッシュメモリ22の記憶領域から必要とする4KB分のデータを読み出しSRAM214にロード(コピー)する。それが完了すると、フラッシュメモリモジュール2はレディS信号RDYをアサートし、これにより、CPU3はデータを読むことができる。
CPU3は、フラッシュメモリモジュール2とはアドレスバス、データバス、リードイネーブル信号OE#、ライトイネーブル信号WE#、レディ信号RDYにより接続する。
CPU3が0から256KBまでの間のランダムアクセス領域をリードしようとする場合、それが先頭4KBであれば、すでにバッファであるSRAM214にロードされているのでそのままリードできる。
もしそれ以外の場所であると、フラッシュメモリモジュール2はレディ信号RDYをネゲートし、NAND型フラッシュメモリ22の記憶領域から必要とする4KB分のデータを読み出しSRAM214にロード(コピー)する。それが完了すると、フラッシュメモリモジュール2はレディS信号RDYをアサートし、これにより、CPU3はデータを読むことができる。
SRAM214にコピーされているバンクとホスト装置であるCPU3がアクセスしようとするバンクが同じかどうかは、SRAMのバンクナンバーを保持しているバンクレジスタ123とアドレスバスの上位ビットを比較することにより可能である。これが異なれば必要とするバンクのデータをNAND型フラッシュメモリ22からSRAM214にコピーする作業を行う。
このようなメカニズムにより、CPU3は、コマンドベースでやりとりしていた面倒な処理を一切行うことなくNAND型フラッシュメモリ22にアクセスすることができる。
また、シーケンシャルアクセスが基本のため、ハードディスクや光ディスクのメディアのようにファイルシステムを介してアクセスする必要があったものが、本実施形態によれば、ホスト装置であるCPU3と接続すればその必要もない。
また、シーケンシャルアクセスが基本のため、ハードディスクや光ディスクのメディアのようにファイルシステムを介してアクセスする必要があったものが、本実施形態によれば、ホスト装置であるCPU3と接続すればその必要もない。
本実施形態においては、ランダムアクセス領域を256KBに限っていたが、アドレスピンを追加すれば同じ方法でいくらでもランダムアクセス空間を拡張できる。
また、バンク切り替えの際にそのバンクをNAND型フラッシュメモリ22にライトバックする処理を追加すればライト動作にも対応できる。
この場合、SRAM214への書き込みがされたかどうかをフラグ(Flag)に記録しておき、バンク切り替えの際にそのフラグによってライトバックするかどうかを制御すれば無駄なライト処理をしなくてすむ。
また、SRAMを複数設ければ、たとえばホスト装置が離れた2バンクにわたる部分を頻繁にアクセスする場合においてもバンク切り替えが発生しないようにできる。
また、バンク切り替えの際にそのバンクをNAND型フラッシュメモリ22にライトバックする処理を追加すればライト動作にも対応できる。
この場合、SRAM214への書き込みがされたかどうかをフラグ(Flag)に記録しておき、バンク切り替えの際にそのフラグによってライトバックするかどうかを制御すれば無駄なライト処理をしなくてすむ。
また、SRAMを複数設ければ、たとえばホスト装置が離れた2バンクにわたる部分を頻繁にアクセスする場合においてもバンク切り替えが発生しないようにできる。
また、本実施形態においては、自動でバンク切り替えができるモードに加え、通常のバンクの切り替えを命ずるコマンドも装備しており、ホストが事前に、アクセスしたいバンクに切り替えてからその切り替え作業が終了したことをステータスレジスタのフラグか、あるいはハード的なレディ信号RDY、あるいは終了をインタラプト (割り込み)によりするなどしてからそのアドレスにアクセスすることもできる。このようにすればホストがバンク切り替えの間他の仕事をすることも可能である。
以上、本実施形態に係るフラッシュメモリモジュールの構成および機能に付いて説明した。以下に、本実施形態に係るフラッシュメモリモジュールにおけるオートバンクチェンジ回路の具体的な構成例について説明する。
図6は、本実施形態に係るフラッシュメモリモジュールにおけるリードのみに対応したオートバンクチェンジ回路の具体的な構成例を示す図である。
なお、図6においては、図1および図2と同一構成部分は同一符号をもって表している。
なお、図6においては、図1および図2と同一構成部分は同一符号をもって表している。
図6のオートバンクチェンジ回路300は、フラッシュコントローラ213、バッファであるSRAM214、NAND型フラッシュメモリ22に加えて、バンクレジスタ123は、バンクナンバーレジスタ123−1とカレントバンクナンバーレジスタ123-2を含み、さらに、2入力負論理ANDゲート301、スルーラッチ302、比較器303、インバータ304、制御端子付インバータ305、CPU(制御部)306、バス307を有している。
図6において、ホスト装置であるCPU3(図6は図示せず)がデータをリードしようとすると、CPU3が発行した18ビットのアドレスADR[0:17]のうちの6ビットのアドレスADR[11:17]がチップイネーブル信号CE#、リード信号RD#に同期してスルーラッチ302を通し、比較器303に入力される。
比較器303においては、カレントバンクナンバーレジスタ123−2の保持データと入力アドレスADR[11:17]とが比較される。カレントバンクナンバーレジスタ123−2には現在4KBのバッファであるSRAM214にデータロードされているバンクナンバーがセットされている。入力アドレス値がこの値と同じであれば、比較器303の出力はローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなる。これにより、ホスト装置であるCPU3は4KBバッファであるSRAM214からデータを読み出す。
比較器303の比較処理の結果、入力アドレス値がカレントバンクナンバーレジスタ123−2のバンクナンバーと同じでない場合は、比較器303の出力がハイレベルとなり、インバータ305を介してレディ信号RDYがローレベルLとなる。その結果、ホスト装置であるCPU3は、リード処理が待ち状態(Wait)となる。
比較器303においては、カレントバンクナンバーレジスタ123−2の保持データと入力アドレスADR[11:17]とが比較される。カレントバンクナンバーレジスタ123−2には現在4KBのバッファであるSRAM214にデータロードされているバンクナンバーがセットされている。入力アドレス値がこの値と同じであれば、比較器303の出力はローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなる。これにより、ホスト装置であるCPU3は4KBバッファであるSRAM214からデータを読み出す。
比較器303の比較処理の結果、入力アドレス値がカレントバンクナンバーレジスタ123−2のバンクナンバーと同じでない場合は、比較器303の出力がハイレベルとなり、インバータ305を介してレディ信号RDYがローレベルLとなる。その結果、ホスト装置であるCPU3は、リード処理が待ち状態(Wait)となる。
これと並行して、インバータ304の出力がローレベルLとなって、CPU306にインタラプト(割り込み)がかかりCPU306はそれによって処理を開始する。
まず、ホスト装置であるCPU3が要求しているバンクナンバーをバンクナンバーレジスタ123−1から読み出し、これに基づきフラッシュコントローラ213を制御してNAND型フラッシュメモリ22から4KBのデータをバッファであるSRAM214に読み出す。
この処理が完了すると、CPU306はカレントバンクナンバーレジスタ123−2にそのバンクナンバーをセットする。これにより、比較器303の出力がローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなる。これにより、ホスト装置であるCPU3はリード作業を再開し、4KBのバッファであるSRAM214から要求したアドレスのデータを読み出し、リード処理を完了する。
まず、ホスト装置であるCPU3が要求しているバンクナンバーをバンクナンバーレジスタ123−1から読み出し、これに基づきフラッシュコントローラ213を制御してNAND型フラッシュメモリ22から4KBのデータをバッファであるSRAM214に読み出す。
この処理が完了すると、CPU306はカレントバンクナンバーレジスタ123−2にそのバンクナンバーをセットする。これにより、比較器303の出力がローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなる。これにより、ホスト装置であるCPU3はリード作業を再開し、4KBのバッファであるSRAM214から要求したアドレスのデータを読み出し、リード処理を完了する。
図7は、本実施形態に係るフラッシュメモリモジュールにおけるリードおよびライトに対応したオートバンクチェンジ回路の具体的な構成例を示す図である。
なお、図7においては、図6と同一構成部分は同一符号をもって表している。
図7のオートバンクチェンジ回路300Aは、図6の回路の構成要件に加えて、2入力負論理ANDゲート308、2入力NORゲート309、およびフリップフロップ(DFF1−1)310を有している。
なお、図7においては、図6と同一構成部分は同一符号をもって表している。
図7のオートバンクチェンジ回路300Aは、図6の回路の構成要件に加えて、2入力負論理ANDゲート308、2入力NORゲート309、およびフリップフロップ(DFF1−1)310を有している。
リード処理について、基本的に図6の場合と同様である。
ライト時には、ライト信号WD#、チップイネーブル信号CE#がローレベルとなり、要求されたアドレスADR[11:17]がスルーラッチ302を通して比較器303に入力される。
比較器303においては、入力アドレス値がカレントバンクナンバーレジスタ123−2のバンクナンバーと同じ場合は、比較器303の出力がローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなる。その結果、ホスト装置であるCPU3は4KBのバッファであるSRAM214に対して書き込みがされアクセスが終了する。
その際に、負論理ANDゲート308の出力信号S308がローレベルLからハイレベルHとなり、このエッジでフリップフロップ(DFF1-1)310がセットされる。このフリップフロップ(DFF1-1)310はCPU306からリセットされるまではこの状態を保持する。
次に、カレントバンクと異なるアドレスにリードあるいはライトしようとすると、比較器303の出力がハイレベルHとなり、インバータ305を介してレディ信号RDYがローレベルLとなりホスト装置であるCPU3に対してウェイト(Wait)をかける。
ライト時には、ライト信号WD#、チップイネーブル信号CE#がローレベルとなり、要求されたアドレスADR[11:17]がスルーラッチ302を通して比較器303に入力される。
比較器303においては、入力アドレス値がカレントバンクナンバーレジスタ123−2のバンクナンバーと同じ場合は、比較器303の出力がローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなる。その結果、ホスト装置であるCPU3は4KBのバッファであるSRAM214に対して書き込みがされアクセスが終了する。
その際に、負論理ANDゲート308の出力信号S308がローレベルLからハイレベルHとなり、このエッジでフリップフロップ(DFF1-1)310がセットされる。このフリップフロップ(DFF1-1)310はCPU306からリセットされるまではこの状態を保持する。
次に、カレントバンクと異なるアドレスにリードあるいはライトしようとすると、比較器303の出力がハイレベルHとなり、インバータ305を介してレディ信号RDYがローレベルLとなりホスト装置であるCPU3に対してウェイト(Wait)をかける。
これと並行して、インバータ304の出力がローレベルLとなって、CPU306にインタラプト(割り込み)がかかりCPU306はそれによって処理を開始する。
CPU306は、フリップフロップ(DFF1-1)310の値(WRあり)を読み、これがハイレベルHの場合は現在の4KB中に書き込みがされた履歴であるのでまず、4KBの内容をフラッシュメモリ22のしかるべきところへ書き戻す制御をフラッシュコントローラ213に行う。
その処理が終了後、今度はホスト装置であるCPU3から要求されているバンクのデータをフラッシュメモリ22から読み出し4KBのバッファであるSRAM214にロードする制御を行う。
これが完了すると、CPU306はカレントバンクナンバーレジスタ123−2に新たなバンクナンバーをセットし、これと並行して、フリップフロップ(DFF1-1)310をWRクリア信号によりクリアする。
これにより、比較器303の出力はローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなり、ホスト装置であるCPU3は動作を再開し、リードあるいはライトを行い、処理を完了する。
CPU306は、フリップフロップ(DFF1-1)310の値(WRあり)を読み、これがハイレベルHの場合は現在の4KB中に書き込みがされた履歴であるのでまず、4KBの内容をフラッシュメモリ22のしかるべきところへ書き戻す制御をフラッシュコントローラ213に行う。
その処理が終了後、今度はホスト装置であるCPU3から要求されているバンクのデータをフラッシュメモリ22から読み出し4KBのバッファであるSRAM214にロードする制御を行う。
これが完了すると、CPU306はカレントバンクナンバーレジスタ123−2に新たなバンクナンバーをセットし、これと並行して、フリップフロップ(DFF1-1)310をWRクリア信号によりクリアする。
これにより、比較器303の出力はローレベルLとなり、インバータ305を介してレディ信号RDYがハイレベルHとなり、ホスト装置であるCPU3は動作を再開し、リードあるいはライトを行い、処理を完了する。
参考のため、以上のレディ信号を用いたリードおよびライト動作に対応したタイミングチャートを図8〜図11に示す。
図8は非同期リード時のタイミングチャートであり、図9は非同期ライト時のタイミングチャートであり、図10は同期バーストリードのタイミングチャートであり、図11は同期バーストライトのタイミングチャートである。
図8は非同期リード時のタイミングチャートであり、図9は非同期ライト時のタイミングチャートであり、図10は同期バーストリードのタイミングチャートであり、図11は同期バーストライトのタイミングチャートである。
以上の説明では、レディ信号RDYを用いたシステム制御について説明したが、ホスト装置側にレディ信号RDYの受け口がないシステムも考えられる。
そのようなシステムでの対応可能な構成について以下に説明する。
そのようなシステムでの対応可能な構成について以下に説明する。
図12は、レディ信号RDYを使用しない場合のバンクチェンジの説明図である。
図12に示すように、各バンク0〜63の先頭番地をレディRDYの識別のためのチェックアドレスCHKAとして使用する。
ホスト装置であるCPU3は、バンクを超えるアクセスをする際にまずはそのバンクの0番地をリードする。
図12に示すように、各バンク0〜63の先頭番地をレディRDYの識別のためのチェックアドレスCHKAとして使用する。
ホスト装置であるCPU3は、バンクを超えるアクセスをする際にまずはそのバンクの0番地をリードする。
図13は、レディ信号を使用しない場合のバンクチェンジ回路の構成例を示す図である。
図13においては、図6および図7の構成に追加される部分のみを記述してある。図13中の比較器303、4KBバッファとしてのSRAM214は図6および図7中のそれそのもののことである。
図13のオートバンクチェンジ回路300Bは、図7の回路の構成要件に加えて、2入力NANDゲート311〜314、アドレスデコーダ315、インバータ316,317、およびフリップフロップ(DFF4−1)318を有している。
図13においては、図6および図7の構成に追加される部分のみを記述してある。図13中の比較器303、4KBバッファとしてのSRAM214は図6および図7中のそれそのもののことである。
図13のオートバンクチェンジ回路300Bは、図7の回路の構成要件に加えて、2入力NANDゲート311〜314、アドレスデコーダ315、インバータ316,317、およびフリップフロップ(DFF4−1)318を有している。
ホスト装置であるCPU3は,バンクを超えるアクセスをするときは、まず、そのバンク内の先頭番地をアクセスする。
もし、カレントバンクナンバーとおなじバンクであれば、比較器303の出力はローレベルLとなり4KBのバッファであるSRAM214へのCE端子にはホスト装置であるCPU3からのチップイネーブル信号CE#が2入力NANDゲート311〜314を通してそのまま入り通常の動作をする。
異なるバンクをアクセスするときには、まず、そのバンクの先頭番地をアクセスする。すると比較器303の出力がハイレベルHとなり、NANDゲート313の出力であるリードアドレス0(Read address 0)信号RA0がローレベルLとなる。それによってインバータ317の出力DATA0にはフリップフロップ318の値が出力される。
ホスト装置であるCPU3にはRDY信号ピンが接続されないのでウェイト(Wait)されることなくリード処理が完了する。完了する際にフリップフロップ318のクロック入力が立ち上がりフリップフロップ318の値を反転させる。ホスト装置であるCPU3はもう一度同じアドレスを読みに行くと、同様にフリップフロップ318が読めるが、値が反転しているため前回と異なる値が読める。このリードが完了する際に、同様にフリップフロップ318の値が反転する。
もし、カレントバンクナンバーとおなじバンクであれば、比較器303の出力はローレベルLとなり4KBのバッファであるSRAM214へのCE端子にはホスト装置であるCPU3からのチップイネーブル信号CE#が2入力NANDゲート311〜314を通してそのまま入り通常の動作をする。
異なるバンクをアクセスするときには、まず、そのバンクの先頭番地をアクセスする。すると比較器303の出力がハイレベルHとなり、NANDゲート313の出力であるリードアドレス0(Read address 0)信号RA0がローレベルLとなる。それによってインバータ317の出力DATA0にはフリップフロップ318の値が出力される。
ホスト装置であるCPU3にはRDY信号ピンが接続されないのでウェイト(Wait)されることなくリード処理が完了する。完了する際にフリップフロップ318のクロック入力が立ち上がりフリップフロップ318の値を反転させる。ホスト装置であるCPU3はもう一度同じアドレスを読みに行くと、同様にフリップフロップ318が読めるが、値が反転しているため前回と異なる値が読める。このリードが完了する際に、同様にフリップフロップ318の値が反転する。
このように、読むたびに値が反転するため、ホスト装置であるCPU3側は連続して読んだ値が一致しない。この間に、CPU306(図6、図7)は図6、図7に関連付けて説明したようにフラッシュコントローラ213を制御してホスト装置であるCPU3が要求したバンクのデータをフラッシュメモリ22から読み出し4KBのバッファであるSRAM214に用意する。
これが完了すると比較器303の出力がローレベルLとなりリードアドレス信号RA0がハイレベルHとなり4KBバッファであるSRAM214のCE端子にホスト装置であるCPU3のチップイネーブル信号CE#がNANDゲート311〜314を通してアクティブのローレベルで入力され、4KBのSRAM214にアクセスできるようになる。
ホスト装置であるCPU3は連続して読み出し値が一致することを確認してバンクが切り替わったことを知る。
これが完了すると比較器303の出力がローレベルLとなりリードアドレス信号RA0がハイレベルHとなり4KBバッファであるSRAM214のCE端子にホスト装置であるCPU3のチップイネーブル信号CE#がNANDゲート311〜314を通してアクティブのローレベルで入力され、4KBのSRAM214にアクセスできるようになる。
ホスト装置であるCPU3は連続して読み出し値が一致することを確認してバンクが切り替わったことを知る。
図14は、図13で説明したケースにおいて、ホスト装置側のソフト制御のフローチャートである。
また、図15は図14のフロー中のバンクチェンジ確認方法部分のフローチャートである。
また、図15は図14のフロー中のバンクチェンジ確認方法部分のフローチャートである。
図14の処理は、ステップST1において、ホスト装置であるCPU3はバンクの境界を超えるか否かの判定を行う。
バンクの境界を超える場合にはアドレスを発行し、フラッシュメモリモジュール2に対してバンクチェンジ要求を行う(ST2)。そして、バンクチェンジ確認を行う(ST3)。
バンクチェンジ確認後あるいはステップST1においてバンクの境界を超えないと判定した場合、アドレスを発行し、目的のデータを読み出す(ST4,ST5)。
バンクの境界を超える場合にはアドレスを発行し、フラッシュメモリモジュール2に対してバンクチェンジ要求を行う(ST2)。そして、バンクチェンジ確認を行う(ST3)。
バンクチェンジ確認後あるいはステップST1においてバンクの境界を超えないと判定した場合、アドレスを発行し、目的のデータを読み出す(ST4,ST5)。
ステップST3のバンク確認処理は、図15に示すように、チェックアドレスCHKAを読み込み(ST31)、ウェイトをかけ(ST32)、再度チェックアドレスCHKAを読み込み(ST33)、前回と一致しているか否かを判定(ST34)。
ステップST34において、一致していると判定した場合はバックチェンジ確認処理を出力する。
一方、一致していないと判定した場合にはステップST32の処理に戻り、一致判定が得られるまでステップST32〜ST34の処理を繰り返す。
ステップST34において、一致していると判定した場合はバックチェンジ確認処理を出力する。
一方、一致していないと判定した場合にはステップST32の処理に戻り、一致判定が得られるまでステップST32〜ST34の処理を繰り返す。
この方法により、ホスト装置であるCPU3とのインタフェース(I/F)211にレディ信号RDYのための端子がなくても、ソフト制御だけでバンクチェンジが可能であり、またその制御のために追加のメモリ空間も必要なく、しかも与えられたメモリ空間を占有することもない。この方法であれば既存のCPUのインタフェース(I/F)で使用することができる。
以上説明したように、本実施形態によれば、フラッシュメモリモジュール2のフラッシュコントローラ21は、ホスト装置としてのCPU3とはアドレス、コマンドバス、データバスでつながり、バッファの容量以上のメモリ空間に割り当てられ、アクセスされた空間がバッファにロードされている空間であるかどうかを自動的に判断し、異なる場合にそれに相当する記録メディア中、すなわちNAND型フラッシュメモリ22のデータをバッファであるSRAM214にロードし、CPU3からランダムリードアクセスできるように制御することから、NAND型フラッシュメモリがランダムアクセス空間としてみえ、コマンド制御方法など煩雑な手続きぬきにNAND型フラッシュメモリにアクセスすることができる。
また、本実施形態のフラッシュメモリモジュール2は、バッファであるSRAM214にロードされている空間に対して書き込みがされたことを記録保持する機能を有し、書き込みがされたときのみ記録メディアであるNAND型フラッシュメモリ22に書き戻す機能を有することから、以下の効果を得ることができる。
ランダムアクセスができるインタフェース(I/F)をもったNAND型フラッシュッメモリあるいはシステムも存在するが、ランダムアクセスする前にしかるべき手順でコマンドを発行して、必要なデータをNAND型フラッシュメモリからランダムアクセスできるRAMへ読み出すという作業を事前にする必要があり煩雑であるが、これに対して、本実施形態では煩雑な手順が不要となり、容易にアクセスが可能である。
ランダムアクセスができるインタフェース(I/F)をもったNAND型フラッシュッメモリあるいはシステムも存在するが、ランダムアクセスする前にしかるべき手順でコマンドを発行して、必要なデータをNAND型フラッシュメモリからランダムアクセスできるRAMへ読み出すという作業を事前にする必要があり煩雑であるが、これに対して、本実施形態では煩雑な手順が不要となり、容易にアクセスが可能である。
また、メモリ(メディア)からからバッファ(本実施形態ではSRAM)へのロード中にホスト装置に対してウェイト(Wait)をさせるためのレディ信号RDYの代わりに、識別するためのアドレスをバッファ内に割り付け、そのアドレスを読むことにより、読むたびに異なる値が読めれば非レディ(Not ready)、同じ値が読めればレディRDYであることが識別することができるようにしたので、以下の効果を得ることができる。
NAND型フラッシュメモリの容量にくらべてそれ以下のサイズの実RAMを用意するだけでNAND型フラッシュメモリの容量分をメモリ空間にわりあてて、ホストから自由にランダムアクセスが可能となる。ミス(Miss)ヒットしない場合の処理もすべて制御装置がおこない、ホスト装置側になんら特別な仕組みを必要としない。
そして、この方法により、ホスト装置とのインタフェース(I/F)にレディ信号用端子がなくても、ソフト制御だけでバンクチェンジが可能であり、またその制御のために専用のレジスタを割り付けるなどの追加のメモリ空間も必要なく、しかも与えられたメモリ空間を占有することもない。この方法であれば既存のCPUのインタフェース(I/F)で使用することができるという利点がある。
NAND型フラッシュメモリの容量にくらべてそれ以下のサイズの実RAMを用意するだけでNAND型フラッシュメモリの容量分をメモリ空間にわりあてて、ホストから自由にランダムアクセスが可能となる。ミス(Miss)ヒットしない場合の処理もすべて制御装置がおこない、ホスト装置側になんら特別な仕組みを必要としない。
そして、この方法により、ホスト装置とのインタフェース(I/F)にレディ信号用端子がなくても、ソフト制御だけでバンクチェンジが可能であり、またその制御のために専用のレジスタを割り付けるなどの追加のメモリ空間も必要なく、しかも与えられたメモリ空間を占有することもない。この方法であれば既存のCPUのインタフェース(I/F)で使用することができるという利点がある。
1・・・信号処理システム、2・・・NAND型フラッシュメモリモジュール(NDFLM)、3・・・ホスト装置としてのCPU、4・・・DRAM、5・・・バス、21・・・フラッシュメモリモジュール、21・・・フラッシュコントローラ、22(−1,−2)NAND型フラッシュメモリ、211・・・ホストバスインタフェース(HI/F)、212・・・メモリインタフェース(MI/F)、213・・・コントローラ、214・・・バッファ(SRAM)、100・・・メモリ空間、110・・・ランダムアクセス空間、120・・・レジスタ空間。
Claims (13)
- ランダムアクセスが困難な記録メディアと、
ランダムアクセス可能なバッファと、
上記バッファの容量以上のメモリ空間を割り当てられ、アクセスされた空間が上記バッファにロードされている空間である否かを自動的に判断し、異なる場合に当該空間に相当する記録メディア中のデータを上記バッファにロードするコントローラと、
を有する半導体記憶装置。 - 上記コントローラは、上記バッファにロードされている空間に対して書き込みがされたことを記録保持する機能を有し、書き込みがされたときのみ上記記録メディアへ書き戻す
請求項1記載の半導体記憶装置。 - 上記コントローラは、上記バッファにアクセス要求を出した装置側に、要求されたデータのロードが完了するまで、レディ信号を非アクティブとしてウェイトをかけ、ロードが完了すると、レディ信号をアクティブとしてアクセスを許可する
請求項1記載の半導体記憶装置。 - 上記記録メディアは、複数のバンクを有し、
上記コントローラは、入力アドレスと上記バッファにデータがロードされているカレントバンクナンバーとを比較し、一致しない場合には上記レディ信号を非アクティブとし、一致すると上記レディ信号をアクティブとする
請求項3記載の半導体記憶装置。 - 上記コントローラは、上記記録メディアから上記バッファへのロード中にウェイトさせるためのレディ信号の代わりに、識別するためのアドレスを上記バッファ内に割り付け、当該アドレスを読むことにより、読むたびに異なる値が読めれば非レディ、同じ値が読めればレディであることが識別することができるように制御する
請求項1記載の半導体記憶装置。 - 上記コントローラは、上記記録メディアから上記バッファへのロード中にウェイトさせるためのレディ信号の代わりに、識別するためのアドレスを上記バッファ内に割り付け、当該アドレスを読むことにより、読むたびに異なる値が読めれば非レディ、同じ値が読めればレディであることが識別することができるように制御する
請求項2記載の半導体記憶装置。 - 上記記録メディアは、NAND型フラッシュメモリである
請求項1記載の半導体記憶装置。 - 半導体記憶装置と、
上記半導体記憶装置のアクセスのコントロールおよび上記半導体記憶装置に格納されたデータに従って所定の信号処理を行うホスト装置と、を有し、
上記半導体記憶装置は、
ランダムアクセスが困難な記録メディアと、
ランダムアクセス可能なバッファと、
上記バッファの容量以上のメモリ空間を割り当てられ、上記ホスト装置からアクセスされた空間が上記バッファにロードされている空間である否かを自動的に判断し、異なる場合に当該空間に相当する記録メディア中のデータを上記バッファにロードするコントローラと、を含む
信号処理システム。 - 上記コントローラは、上記バッファにロードされている空間に対して書き込みがされたことを記録保持する機能を有し、書き込みがされたときのみ上記記録メディアへ書き戻す
請求項8記載の信号処理システム。 - 上記コントローラは、上記バッファにアクセス要求を出したホスト装置側に、要求されたデータのロードが完了するまで、レディ信号を非アクティブとしてウェイトをかけ、ロードが完了すると、レディ信号をアクティブとして上記ホスト装置にアクセスを許可する
請求項8記載の信号処理システム。 - 上記記録メディアは、複数のバンクを有し、
上記コントローラは、入力アドレスと上記バッファにデータがロードされているカレントバンクナンバーとを比較し、一致しない場合には上記レディ信号を非アクティブとし、一致すると上記レディ信号をアクティブとする
請求項10記載の信号処理システム。 - 上記コントローラは、上記記録メディアから上記バッファへのロード中にウェイトさせるためのレディ信号の代わりに、識別するためのアドレスを上記バッファ内に割り付け、当該アドレスを読むことにより、読むたびに異なる値が読めれば非レディ、同じ値が読めればレディであることが上記ホスト装置側で識別することができるように制御する
請求項8記載の信号処理システム。 - 第1の半導体記憶装置と、
上記第1の半導体記憶装置の格納データが読み出される第2の半導体記憶装置と、
上記第1および第2の半導体記憶装置のアクセスのコントロールおよび上記第2の半導体記憶装置に格納されたデータに従って所定の信号処理を行うホスト装置と、を有し、
上記第1の半導体記憶装置は、
ランダムアクセスが困難な記録メディアと、
ランダムアクセス可能なバッファと、
上記バッファの容量以上のメモリ空間を割り当てられ、上記ホスト装置からアクセスされた空間が上記バッファにロードされている空間である否かを自動的に判断し、異なる場合に当該空間に相当する記録メディア中のデータを上記バッファにロードするコントローラと、を含む
信号処理システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006106815A JP2007280140A (ja) | 2006-04-07 | 2006-04-07 | 半導体記憶装置および信号処理システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2006106815A JP2007280140A (ja) | 2006-04-07 | 2006-04-07 | 半導体記憶装置および信号処理システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2007280140A true JP2007280140A (ja) | 2007-10-25 |
Family
ID=38681512
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006106815A Pending JP2007280140A (ja) | 2006-04-07 | 2006-04-07 | 半導体記憶装置および信号処理システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2007280140A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009123191A (ja) * | 2007-11-15 | 2009-06-04 | Genesys Logic Inc | Norインターフェイスフラッシュメモリ装置及びそのアクセス方法 |
| US11841767B2 (en) | 2021-11-24 | 2023-12-12 | Samsung Electronics Co., Ltd. | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001147855A (ja) * | 1999-11-19 | 2001-05-29 | Nec Corp | 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体 |
| JP2003036201A (ja) * | 2001-07-24 | 2003-02-07 | Sony Corp | メモリアクセス管理装置 |
| JP2004527040A (ja) * | 2001-03-26 | 2004-09-02 | エム−システムズ フラッシュ ディスク パイオニアーズ リミテッド | 非揮発性メモリをバッファーリングするために揮発性メモリを用いること |
-
2006
- 2006-04-07 JP JP2006106815A patent/JP2007280140A/ja active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001147855A (ja) * | 1999-11-19 | 2001-05-29 | Nec Corp | 不揮発性メモリへのデータ書き込み方法および情報処理装置ならびに記録媒体 |
| JP2004527040A (ja) * | 2001-03-26 | 2004-09-02 | エム−システムズ フラッシュ ディスク パイオニアーズ リミテッド | 非揮発性メモリをバッファーリングするために揮発性メモリを用いること |
| JP2003036201A (ja) * | 2001-07-24 | 2003-02-07 | Sony Corp | メモリアクセス管理装置 |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009123191A (ja) * | 2007-11-15 | 2009-06-04 | Genesys Logic Inc | Norインターフェイスフラッシュメモリ装置及びそのアクセス方法 |
| US11841767B2 (en) | 2021-11-24 | 2023-12-12 | Samsung Electronics Co., Ltd. | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof |
| US12158810B2 (en) | 2021-11-24 | 2024-12-03 | Samsung Electronics Co., Ltd. | Controller controlling non-volatile memory device, storage device including the same, and operating method thereof |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9122611B2 (en) | Method for giving read commands and reading data, and controller and storage system using the same | |
| US10628319B2 (en) | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same | |
| US7937523B2 (en) | Memory system with nonvolatile semiconductor memory | |
| US8681552B2 (en) | System and method for accessing and storing interleaved data | |
| US20180275921A1 (en) | Storage device | |
| US8738842B2 (en) | Solid state disk controller and data processing method thereof | |
| JP2003109384A (ja) | データ書込装置、データ書込制御方法及びプログラム | |
| CN111722795A (zh) | 存储系统以及用于控制存储系统的方法 | |
| CN113900969B (zh) | 存储器装置及其操作方法 | |
| US9378130B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
| JP4373943B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| JP2009003569A (ja) | 半導体記憶装置 | |
| JP7621918B2 (ja) | メモリシステム及びメモリ制御方法 | |
| US11487655B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations | |
| JP2007280140A (ja) | 半導体記憶装置および信号処理システム | |
| US11538518B2 (en) | Memory device to suspend ROM operation and a method of operating the memory device | |
| JP2009003995A (ja) | 半導体記憶装置 | |
| JP4273038B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリのデータ転送方法 | |
| JP2006178909A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| JP4177301B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
| US20250232818A1 (en) | Storage device based on flash memory and reading operation method thereof | |
| US11810642B2 (en) | Memory device including defective column addresses stored in ascending order | |
| US12517663B2 (en) | Storage device performing read operation and method of operating the same | |
| US20240028204A1 (en) | Memory controller and method of operating the same | |
| KR102937638B1 (ko) | 메모리 장치 및 그 동작 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090225 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111101 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120417 |