(57)【要約】【課題】ＡＮＤ／ＮＡＮＤ型フラッシュメモリにおけるデータのランダムアクセスを可能とし、データの転送効率を大幅に向上する。【解決手段】フラッシュメモリ１０へデータを書き込む際、フラッシュメモリコントローラ１は、メインバス側からのデータの読み出し要求の際、その読み出し要求にかかるデータが第１バッファ７に格納されているか否かに応じて、第１バッファ７にデータが格納されている場合は、その格納されているデータをメインバス側に出力し、該第１バッファ７にデータが格納されていない場合は、フラッシュメモリ１０に対してデータ読み出しを行い、メインバス側に出力する。【選択図】      図１
2004199309.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリに接続可能であり、前記不揮発性メモリに対してデータの読み出し、またはデータの書き込みの制御を行う不揮発性メモリコントローラを有し、
前記不揮発性メモリに対するデータの読み出し、またはデータの書き込みの際、データの一次格納を行うバッファ領域を有し、
前記不揮発性メモリコントローラは、外部からのデータ読み出し要求を受け付けた際、前記読み出し要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合には、前記バッファ領域に格納されているデータを外部へ出力し、前記バッファ領域にデータが格納されていない場合には、前記不揮発性メモリに対してデータの読み出しを行い、外部へ出力することを特徴とするマイクロコントローラ。
【請求項２】
請求項１記載のマイクロコントローラにおいて、前記不揮発性メモリコントローラは、外部からのデータ書き込み要求を受け付けた際、前記書き込み要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合には、前記バッファ領域に格納されているデータを前記不揮発性メモリに出力し、前記バッファ領域にデータが格納されていない場合には、外部から入力されたデータを前記不揮発性メモリに出力することを特徴とするマイクロコントローラ。
【請求項３】
請求項１または２記載のマイクロコントローラにおいて、前記不揮発性メモリコントローラは、外部からのデータ書き換え要求を受け付けた際、前記書き換え要求にかかる上書きデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域に上書きデータが格納されている場合には、前記バッファ領域に格納されている上書きデータを前記不揮発性メモリに出力し、前記バッファ領域に上書きデータが格納されていない場合には、外部から入力された上書きデータを前記不揮発性メモリに出力することを特徴とするマイクロコントローラ。
【請求項４】
請求項１〜３のいずれか１項に記載のマイクロコントローラにおいて、前記バッファ領域は、２つのバッファからなり、前記２つのバッファは、前記不揮発性メモリにおける１セクタのカラムアドレスに対応したデータを蓄積する容量をそれぞれ有し、一方の前記バッファが１セクタのカラムアドレスに対応したデータを蓄積し、他方の前記バッファが１セクタのカラムアドレスに対応した他のデータを出力することを特徴とするマイクロコントローラ。
【請求項５】
請求項１〜４のいずれか１項に記載のマイクロコントローラにおいて、前記不揮発性メモリコントローラは、ＤＭＡＣに対してＤＭＡ要求信号を出力し、前記データをＤＭＡ転送することを特徴とするマイクロコントローラ。
【請求項６】
不揮発性メモリに接続可能であり、前記不揮発性メモリに対してデータの読み出し、またはデータの書き込みの制御を行う不揮発性メモリコントローラと、中央処理装置とを有し、
前記不揮発性メモリに対するデータの読み出しの際、データの一次格納を行うバッファ領域を有し、
前記不揮発性メモリコントローラは、前記中央処理装置からのデータの読み出し要求の際、前記読み出し要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合は、前記バッファ領域に格納されているデータを前記中央処理装置に出力し、前記バッファ領域にデータが格納されていない場合は、前記不揮発性メモリに対してデータ読み出しを行い、前記中央処理装置に出力することを特徴とするマイクロプロセッサ。
【請求項７】
請求項６記載のマイクロプロセッサにおいて、前記不揮発性メモリコントローラは、外部からのデータ書き込み要求を受け付けた際、前記書き込み要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合には、前記バッファ領域に格納されているデータを前記不揮発性メモリに出力し、前記バッファ領域にデータが格納されていない場合には、外部から入力されたデータを前記不揮発性メモリに出力することを特徴とするマイクロプロセッサ。
【請求項８】
請求項６または７記載のマイクロプロセッサにおいて、前記不揮発性メモリコントローラは、外部からのデータ書き換え要求を受け付けた際、前記書き換え要求にかかる上書きデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域に上書きデータが格納されている場合には、前記バッファ領域に格納されている上書きデータを前記不揮発性メモリに出力し、前記バッファ領域に上書きデータが格納されていない場合には、外部から入力された上書きデータを前記不揮発性メモリに出力することを特徴とするマイクロプロセッサ。
【請求項９】
請求項６〜８のいずれか１項に記載のマイクロプロセッサにおいて、前記バッファ領域は、２つのバッファからなり、前記２つのバッファは、前記不揮発性メモリにおける１セクタのカラムアドレスに対応したデータを蓄積する容量をそれぞれ有し、一方の前記バッファが１セクタのカラムアドレスに対応したデータを蓄積し、他方の前記バッファが１セクタのカラムアドレスに対応した他のデータを出力することを特徴とするマイクロプロセッサ。
【請求項１０】
請求項６〜９のいずれか１項に記載のマイクロプロセッサにおいて、前記不揮発性メモリコントローラは、ＤＭＡＣに対してＤＭＡ要求信号を出力し、前記データをＤＭＡ転送することを特徴とするマイクロプロセッサ。
【請求項１１】
請求項６〜９のいずれか１項に記載のマイクロプロセッサにおいて、前記不揮発性メモリコントローラに、外部メモリインタフェースを設け、前記外部メモリインタフェースを介して揮発性メモリが外部接続されることを特徴とするマイクロプロセッサ。
【請求項１２】
１のパッケージに封入され、外部からは所定の不揮発性メモリとして認識可能であり、不揮発性メモリとコントローラとを有し、
前記コントローラに接続され、前記不揮発性メモリに対するデータの読み出しの際、データの一次格納を行うバッファ領域を有し、
前記コントローラは、外部からのデータ読み出し要求の際、前記読み出し要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合は、前記バッファ領域に格納されているデータを外部へ出力し、前記バッファ領域にデータが格納されていない場合には、前記不揮発性メモリに対してデータ読み出しを行い、前記バッファ領域へ格納するとともに外部へ出力することを特徴とする不揮発性半導体メモリ装置。
【請求項１３】
請求項１２記載の不揮発性半導体メモリ装置において、前記コントローラに、外部メモリインタフェースを設け、前記外部メモリインタフェースを介して揮発性メモリが外部接続されることを特徴とする不揮発性半導体メモリ装置。
【請求項１４】
１のパッケージに封入され、揮発性メモリと、不揮発性メモリとを有し、
前記揮発性メモリは、コントローラと、前記コントローラに接続され、前記不揮発性メモリに対するデータの読み出しの際、データの一次格納を行うバッファ領域とを有し、
前記コントローラは、外部からのデータ読み出し要求の際、前記読み出し要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合は、前記バッファ領域に格納されているデータを前記揮発性メモリへ出力し、前記バッファ領域にデータが格納されていない場合には、前記不揮発性メモリに対してデータ読み出しを行い、前記バッファ領域へ格納するとともに前記揮発性メモリへ出力することを特徴とする不揮発性半導体メモリ装置。
【請求項１５】
請求項１２〜１４のいずれか１項に記載の不揮発性半導体メモリ装置において、前記コントローラは、外部からのデータ書き込み要求を受け付けた際、前記書き込み要求にかかるデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域にデータが格納されている場合には、前記バッファ領域に格納されているデータを前記不揮発性メモリに出力し、前記バッファ領域にデータが格納されていない場合には、外部から入力されたデータを前記不揮発性メモリに出力することを特徴とする不揮発性半導体メモリ装置。
【請求項１６】
請求項１２〜１５のいずれか１項に記載の不揮発性半導体メモリ装置において、前記コントローラは、外部からのデータ書き換え要求を受け付けた際、前記書き換え要求にかかる上書きデータが前記バッファ領域に格納されているか否かに応じて、前記バッファ領域に上書きデータが格納されている場合には、前記バッファ領域に格納されている上書きデータを前記不揮発性メモリに出力し、前記バッファ領域に上書きデータが格納されていない場合には、外部から入力された上書きデータを前記不揮発性メモリに出力することを特徴とする不揮発性半導体メモリ装置。
【請求項１７】
請求項１２〜１６のいずれか１項に記載の不揮発性半導体メモリ装置において、前記バッファ領域は、２つのバッファからなり、前記２つのバッファは、前記不揮発性メモリにおける１セクタのカラムアドレスに対応したデータを蓄積する容量をそれぞれ有し、一方の前記バッファが１セクタのカラムアドレスに対応したデータを蓄積し、他方の前記バッファが１セクタのカラムアドレスに対応した他のデータを出力することを特徴とする不揮発性半導体メモリ装置。
【請求項１８】
請求項１２〜１７のいずれか１項に記載の不揮発性半導体メモリ装置において、前記コントローラは、ＤＭＡＣに対してＤＭＡ要求信号を出力し、前記データをＤＭＡ転送することを特徴とする不揮発性半導体メモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリにおけるランダムアクセス技術に関し、特に、ＡＮＤ／ＮＡＮＤ型フラッシュメモリの高速アクセスに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
現在、携帯電話やモバイル機器などにおいては、コード、プログラム、およびデータなどのストレージ用のデータを記憶させる不揮発性メモリとして、たとえば、ＮＯＲ型フラッシュメモリが広く用いられている。
【０００３】
今後、携帯電話やモバイル機器などの多機能、ならびに高性能化に伴い、ビット単価の安価なＡＮＤ／ＮＡＮＤ型フラッシュメモリが使用される可能性が高くなっている。
【０００４】
このＡＮＤ／ＮＡＮＤ型フラッシュメモリは、シリアルアクセスであるために、データの読み出し／書き込みなどは、セクタ単位で行われる。
【０００５】
なお、この種のフラッシュメモリにおいては、複数のＮＡＮＤ型フラッシュメモリのそれぞれにバッファメモリを備えることにより、データの書き込み／読み出し速度を高速化するものがある（たとえば、特許文献１）。
【０００６】
【特許文献１】
特開平０８−０７７０６６号公報
【０００７】
【発明が解決しようとする課題】
ところが、上記のようなフラッシュメモリにおけるアクセス技術では、次のような問題点があることが本発明者により見い出された。
【０００８】
すなわち、ＡＮＤ／ＮＡＮＤ型フラッシュメモリでは、データの読み出し／書き込みなどがセクタ単位（たとえば、約２Ｋバイト程度）で行われるので、たとえば、アクセスするデータ量が少なく、かつ該データなどが２つのセクタにまたがってしまう場合、アクセス速度が落ちてしまい、データ転送効率が大幅に低下してしまうという問題がある。
【０００９】
本発明の目的は、ＡＮＤ／ＮＡＮＤ型フラッシュメモリであっても、ランダムアクセスを可能とし、データの転送効率を大幅に向上することのできるマイクロコントローラ、マイクロプロセッサおよび不揮発性半導体メモリ装置を提供することにある。
【００１０】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【００１１】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
１．本発明のマイクロコントローラは、不揮発性メモリに接続可能であり、該不揮発性メモリに対してデータの読み出し、またはデータの書き込みの制御を行う不揮発性メモリコントローラを有し、該不揮発性メモリに対するデータの読み出し、またはデータの書き込みの際、データの一次格納を行うバッファ領域を有し、不揮発性メモリコントローラは、外部からのデータ読み出し要求を受け付けた際、読み出し要求にかかるデータがバッファ領域に格納されているか否かに応じて、バッファ領域にデータが格納されている場合には、バッファ領域に格納されているデータを外部へ出力し、バッファ領域にデータが格納されていない場合には、不揮発性メモリに対してデータの読み出しを行い、外部へ出力するものである。
【００１２】
また、本願のその他の発明の概要を簡単に示す。
２．本発明のマイクロプロセッサは、不揮発性メモリに接続可能であり、該不揮発性メモリに対してデータの読み出し、またはデータの書き込みの制御を行う不揮発性メモリコントローラと、中央処理装置とを有し、不揮発性メモリに対するデータの読み出しの際、データの一次格納を行うバッファ領域を有し、不揮発性メモリコントローラは、中央処理装置からのデータの読み出し要求の際、読み出し要求にかかるデータがバッファ領域に格納されているか否かに応じて、バッファ領域にデータが格納されている場合は、バッファ領域に格納されているデータを中央処理装置に出力し、バッファ領域にデータが格納されていない場合は、不揮発性メモリに対してデータ読み出しを行い、該中央処理装置に出力するものである。
３．１のパッケージに封入され、外部からは所定の揮発性メモリとして認識可能であり、不揮発性メモリとコントローラとを有し、該コントローラに接続され、不揮発性メモリに対するデータの読み出しの際、データの一次格納を行うバッファ領域を有し、コントローラは、外部からのデータ読み出し要求の際、読み出し要求にかかるデータがバッファ領域に格納されているか否かに応じて、バッファ領域にデータが格納されている場合は、バッファ領域に格納されているデータを外部へ出力し、バッファ領域にデータが格納されていない場合には、不揮発性メモリに対してデータ読み出しを行い、バッファ領域へ格納するとともに外部へ出力するものである。
４．１のパッケージに封入され、コントローラと、揮発性メモリと、不揮発性メモリとを有し、該揮発性メモリは、該コントローラに接続され、不揮発性メモリに対するデータの読み出しの際、データの一次格納を行うバッファ領域とを有し、該コントローラは、外部からのデータ読み出し要求の際、読み出し要求にかかるデータがバッファ領域に格納されているか否かに応じて、バッファ領域にデータが格納されている場合は、バッファ領域に格納されているデータを揮発性メモリへ出力し、バッファ領域にデータが格納されていない場合には、不揮発性メモリに対してデータ読み出しを行い、バッファ領域へ格納するとともに揮発性メモリへ出力するものである。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００１４】
図１は、本発明の一実施の形態によるフラッシュメモリコントローラのブロック図、図２は、図１は、本発明の一実施の形態によるフラッシュメモリコントローラの書き込み動作時におけるフローチャート、図３は、図１は、本発明の一実施の形態によるフラッシュメモリコントローラの読み出し動作時におけるフローチャート、図４は、図１は、本発明の一実施の形態によるフラッシュメモリコントローラのリードモディファイライト動作時におけるフローチャート、図５は、図４に続くリードモディファイライト動作時におけるフローチャート、図６は、図１のフラッシュメモリコントローラ１を搭載した半導体集積回路装置の一例を示すブロック図、図７は、図６の半導体集積回路装置における書き込み動作時における各信号のタイミングチャート、図８は、図１に示したフラッシュメモリコントローラとフラッシュメモリとを搭載した一例を示すフラッシュメモリカードのブロック図、図９は、図１のフラッシュメモリコントローラを用いて構成された半導体装置の説明図、図１０は、図９の半導体装置における接続構成を示す説明図である。
【００１５】
本実施の形態において、フラッシュメモリコントローラ（マイクロプロセッサ、不揮発性メモリコントローラ、コントローラ）１は、フラッシュメモリカードに用いられるフラッシュメモリの制御を司る。フラッシュメモリコントローラ１は、図１に示すように、メインバスインタフェース２、第１アドレス／データ制御部３、第２アドレス／データ制御部４、第１バッファセレクタ５、第２バッファセレクタ６、第１バッファ（バッファ領域）７、第２バッファ（バッファ領域）８、および転送制御部９から構成されている、
メインバスインタフェース２には、アドレスバスとデータバスとからなるメインバスが接続されている。このメインバスインタフェース２は、第１アドレス／データ制御部３にも接続されている。メインバスインタフェース２は、メインバスを介して接続されるＣＰＵの転送プロトコルに対応した制御を行う。
【００１６】
第１アドレス／データ制御部３には、第２アドレス／データ制御部４、ならびに第１バッファセレクタ５がそれぞれ接続されている。第２アドレス／データ制御部４には、第２バッファセレクタ６、および転送制御部９がそれぞれ接続されており、第１バッファセレクタ５には、第１バッファ７、ならびに第２バッファ８がそれぞれ接続されている。また、第２バッファセレクタ６にも、第１バッファ７、および第２バッファ８がそれぞれ接続されている。
【００１７】
転送制御部９には、Ｉ／Ｏバスを介してフラッシュメモリ（不揮発性メモリ）１０が接続されている。フラッシュメモリ１０には、たとえば、ＳＲＡＭなどのバッファ１０ａが設けられており、メモリアレイ１０ｂから読み出されたデータが一時的に格納される。
【００１８】
このフラッシュメモリ１０は、ＮＡＮＤ／ＡＮＤ方式からなり、メモリアレイ１０ｂに設けられたメモリセルへの書き込み動作としては、メモリセルのゲート電極に正の高電圧を印加し、ソース電極−ドレイン電極間のチャネル領域に電流が流れることにより発生するホットエレクトロンをフローティングゲートに注入するホットエレクトロン方式や、チャネル領域にはほとんど電流を流さずチャネル−ゲート間に高電圧を印加し、ＦＮトンネル現象によりフローティングゲートに電子（電荷）を注入するＦＮトンネル書き込み方式がある。
【００１９】
フラッシュメモリでは、フローティングゲートに注入した電荷の量によりメモリセルのしきい値電圧が変化し、しきい値電圧分布を２個、またはそれ以上形成することによって、２値データや多値データの保持が可能となる。または、フローティングゲートに代えて窒化膜を有し、チャネルに流れる電流方向を変化させるなどにより該窒化膜に局所的に蓄積された電荷の有無により複数のビットのデータを保持するようなものであってもよい。
【００２０】
第１アドレス／データ制御部３には、第１セレクタ３ａ、および第１レジスタ３ｂが設けられており、第２アドレス／データ制御部４には、第２セレクタ４ａ、および第２レジスタ４ｂが設けられている。
【００２１】
第１、および第２セレクタ３ａ，４ａは接続先を切り替え、第１、ならびに第２レジスタ３ｂ，４ｂは、セクタアドレスを格納する。
【００２２】
第１アドレス／データ制御部３は、書き込み動作時において、第１レジスタ３ｂに格納されたセクタアドレスとアクセスしようとしているセクタアドレスとの比較を行い、第１バッファ７、第２バッファ８、あるいはフラッシュメモリ１０のバッファ１０ａのいずれにアクセスするかの判定を行い、第１セレクタ３ａの接続先を切り替えてアクセスする任意のバッファを決定する。
【００２３】
第２アドレス／データ制御部４は、読み出し動作時において、第２レジスタ４ｂに格納されたセクタアドレスとアクセスしようとしているセクタアドレスとの比較を行い、第１バッファ７、第２バッファ８、あるいはフラッシュメモリ１０のバッファ１０ａのいずれにアクセスするかの判定を行い、第２セレクタ４ａの接続先を切り替えてアクセスする任意のバッファを決定する。
【００２４】
第１、および第２アドレス／データ制御部３，４は、データの読み出し／書き込みアドレスが、第１バッファ７、第２バッファ８、またはフラッシュメモリ１０のデータかを判定する。
【００２５】
また、第１アドレス／データ制御部３は、メインバスを介してＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送要求信号の発生、およびＤＭＡ実行信号の受信処理を行う。
【００２６】
第１バッファセレクタ５には、第３セレクタ５ａ、および第１カウンタ５ｂが設けられており、第２バッファセレクタ６には、第４セレクタ６ａ、および第２カウンタ６ｂが設けられている。
【００２７】
第１バッファセレクタ５は、データ転送量を第１カウンタ５ｂによってカウントし、あるカウント数になると第３セレクタ５ａを切り替えて、第１、または第２バッファ７，８のいずれかに接続先を切り替える。
【００２８】
第２バッファセレクタ６は、データ転送量を第２カウンタ６ｂによってカウントし、あるカウント数になると第４セレクタ６ａを切り替えて、第１、または第２バッファ７，８のいずれかに接続先を切り替える。
【００２９】
第１、ならびに第２バッファ７，８は、たとえば、フラッシュメモリ１０における１セクタのカラムアドレスに対応したデータ容量を蓄積する容量をそれぞれ有する。
【００３０】
転送制御部９は、フラッシュメモリコントローラ１とフラッシュメモリ１０との間におけるデータ転送の制御を行う。
【００３１】
次に、本実施の形態におけるフラッシュメモリコントローラ１の作用について説明する。
【００３２】
フラッシュメモリ１０への書き込み動作としては、以下の２つの場合がある。
【００３３】
１つ目は、書き込みデータの容量が１セクタ内で収まるような小規模なデータの場合である。このデータ転送では、メインバス側からの書き込みデータをフラッシュメモリコントローラ１の第１、および第２のバッファ７，８を使用せずに直接フラッシュメモリ１０のバッファ１０ａに転送する。
【００３４】
２つ目は、書き込みデータの容量が１セクタ内に収まらない大規模なデータの場合である。このデータ転送では、メインバス側からの書き込みデータをフラッシュメモリコントローラ１の第１、および第２のバッファ７，８を使用してフラッシュメモリ１０に転送する。
【００３５】
このような、フラッシュメモリコントローラ１によるフラッシュメモリ１０への書き込み動作を図２のフローチャートを用いて説明する。
【００３６】
まず、第１アドレス／データ制御部３が、メインバス側から転送されたデータの転送開始信号を受信すると（ステップＳ１０１）、該第１アドレス／データ制御部３は、転送制御部９に制御信号を送信し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを切断する（ステップＳ１０２）。
【００３７】
そして、第１アドレス／データ制御部３は、メインバス側にＤＭＡ要求信号を送信する（ステップＳ１０３）。第１アドレス／データ制御部３がメインバス側からＤＭＡ実行信号を受信した後（ステップＳ１０４）、該第１アドレス／データ制御部３は、書き込みデータと書き込み先のセクタアドレスデータとを受信する（ステップＳ１０５）。
【００３８】
第１アドレス／データ制御部３は、第１レジスタ３ｂに格納されているセクタアドレスデータと受信したセクタアドレスデータとを比較し（ステップＳ１０６）、それらのアドレスデータが一致しているか否かを判断する（ステップＳ１０７）。ここで、第１レジスタに格納されているセクタアドレスデータは、前回の書き込み動作時に受信したセクタアドレスデータである。
【００３９】
ステップＳ１０７の処理において、セクタアドレスデータが一致した際には、第１セレクタ３ａを切り替えてフラッシュメモリ１０のバッファ１０ａを選択する（ステップＳ１０８）。
【００４０】
第１アドレス／データ制御部３は、転送制御部９に制御信号を出力し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを接続する（ステップＳ１０９）。
【００４１】
そして、第１アドレス／データ制御部３は、書き込みデータを転送制御部９を介してフラッシュメモリ１０のバッファ１０ａにＤＭＡ転送する（ステップＳ１１０）。
【００４２】
その後、第１アドレス／データ制御部３は、書き込みデータの転送が終了したか否かの判断を行い（ステップＳ１１１）、転送終了の際には書き込み動作は終了となり、転送が終了していない場合には、ステップＳ１０５〜Ｓ１１０の処理を繰り返し実行する。
【００４３】
また、ステップＳ１０７の処理において、セクタアドレスデータが不一致の場合には、第１セレクタ３ａを切り替えて第１バッファ７を選択する（ステップＳ１１２）。
【００４４】
その後、第１アドレス／データ制御部３は、転送制御部９に制御信号を送信し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを接続し（ステップＳ１１３）、第１バッファ７から第２バッファに接続先が切り替えられたか否かを判断する（ステップＳ１１４）。
【００４５】
切り替えられていない場合には、メインバス側からのＤＭＡ転送により、選択されている第１バッファ７に書き込みデータを転送する（ステップＳ１１５）。
【００４６】
また、ステップＳ１１４の処理において、第１バッファ７から第２バッファ８に接続先が切り替えられた場合には、第２バッファセレクタ６が第４セレクタ６ａを切り替えて、第２アドレス／データ制御部４が第１バッファ７に蓄積されている書き込みデータをフラッシュメモリ１０へ書き込む（ステップＳ１１６）。
その間、選択された第２バッファ８にはＤＭＡ転送された書き込みデータが蓄積される。
【００４７】
同様に、第２バッファ８から第１バッファ７に接続先が切り替えられた場合には、第２バッファセレクタ６が第４セレクタ６ａを切り替えて、第２バッファ８に蓄積された書き込みデータをフラッシュメモリ１０へ書き込み、第１バッファ７にＤＭＡ転送された書き込みデータを蓄積する。
【００４８】
ステップＳ１１５，Ｓ１１６のいずれかの処理が終了すると、第１カウンタ５ｂは、第１バッファ７に転送された書き込みデータの容量をカウントする（ステップＳ１１７）。
【００４９】
そして、書き込みデータの転送が終了すると（ステップＳ１１８）、第２バッファセレクタ６の制御により接続先が切り替えられ、第１バッファ７または第２バッファ８に蓄積された書き込みデータがフラッシュメモリ１０に書き込まれる（ステップＳ１１９）。
【００５０】
また、書き込みデータの転送が終了していない場合（ステップＳ１１８）、第１バッファセレクタ５は、第１カウンタ５ｂのカウントがＭＡＸか否かを判断する（ステップＳ１２０）。
【００５１】
第１カウンタ５ｂのカウントがＭＡＸでない場合には、そのカウンタ値を記憶し（ステップＳ１２１）、ステップＳ１１４〜Ｓ１１７の処理をカウンタがＭＡＸ（第１バッファ７のデータ蓄積がＭＡＸになるまで）になるまで実行する。
【００５２】
また、ステップＳ１２０の処理において、第１カウンタ５ｂのカウントがＭＡＸの場合には、第１バッファセレクタ５が第３セレクタ５ａを制御し、書き込みデータの蓄積先を第１バッファ７から第２バッファ８に切り替え（ステップＳ１２２）、ステップＳ１１４〜Ｓ１１７の処理を再び実行する。
【００５３】
そして、ステップＳ１１６の処理が終了すると、第１アドレス／データ制御部３は、書き込みデータの転送が終了したか否かを判断し（ステップＳ１２３）、転送終了の場合にはステップＳ１１９の処理を行い、書き込み動作が終了する。
【００５４】
また、書き込みデータの転送が終了していない場合には、第１バッファセレクタ５が第１カウンタ５ｂのカウント値がＭＡＸか否かを判断する（ステップＳ１２４）。
【００５５】
第１カウンタ５ｂのカウント値がＭＡＸでない場合には、そのカウンタ値を記憶し（ステップＳ１２５）、カウンタがＭＡＸとなり第１バッファ７のデータ蓄積がＭＡＸになるまでステップＳ１１４〜Ｓ１１７の処理を実行する。
【００５６】
第１カウンタ５ｂのカウント値がＭＡＸの場合には、第１バッファセレクタ５が第３セレクタ５ａを制御し、書き込みデータの蓄積先を第２バッファ８から第１バッファ７に切り替え（ステップＳ１２６）、ステップＳ１１４〜Ｓ１１７の処理を再び実行する。
【００５７】
次に、フラッシュメモリ１０から、メインバス側へのデータ読み出し動作を、図３のフローチャートを用いて説明する。
【００５８】
第１アドレス／データ制御部３が、メインバス側から転送されたデータの転送開始信号を受信すると（ステップＳ２０１）、該第１アドレス／データ制御部３は、転送制御部９に制御信号を送信し、フラッシュメモリコントローラ１とフラッシュメモリ１０と接続を切断する（ステップＳ２０２）。
【００５９】
そして、第１アドレス／データ制御部３は、メインバス側にＤＭＡ要求信号を送信する（ステップＳ２０３）。その後、第１アドレス／データ制御部３がメインバス側からＤＭＡ実行信号を受信すると（ステップＳ２０４）、第２アドレス／データ制御部４は、読み出し先のセクタアドレスデータを受信する（ステップＳ２０５）。
【００６０】
第２アドレス／データ制御部４は、第２レジスタ４ｂに格納されているセクタアドレスデータと受信したセクタアドレスデータとを比較し（ステップＳ２０６）、それらのアドレスデータが一致しているか否かを判断する（ステップＳ２０７）。ここで、第２レジスタ４ｂに格納されているセクタアドレスデータは、前回の読み出し動作時に受信したセクタアドレスデータである。
【００６１】
そして、２つのセクタアドレスデータが一致した際には、第２セレクタ４ａを切り替えてフラッシュメモリ１０のバッファ１０ａを選択する（ステップＳ２０８）。
【００６２】
第１アドレス／データ制御部３は、転送制御部９に制御信号を出力し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを接続する（ステップＳ２０９）。
【００６３】
その後、第２アドレス／データ制御部４は、フラッシュメモリ１０のバッファ１０ａからメインバス側に読み出しデータをＤＭＡ転送する（ステップＳ２１０）。
【００６４】
第２アドレス／データ制御部４は、読み出しデータの転送が終了したか否かの判断を行い（ステップＳ２１１）、転送終了の際には読み出し動作が終了となり、転送が終了していない場合には、読み出しデータの転送が終了するまでステップＳ２０５〜Ｓ２１０の処理を繰り返し実行する。
【００６５】
ステップＳ２０７の処理において、２つのセクタアドレスデータが不一致の場合には、アドレス／データ制御部４が第２セレクタ４ａを切り替えて第１バッファ７を選択する（ステップＳ２１２）。
【００６６】
その後、第１アドレス／データ制御部３は、転送制御部９に制御信号を送信し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを接続する（ステップＳ２１３）。
【００６７】
そして、第２バッファセレクタ６によって、第１バッファ７から第２バッファに接続先が切り替えられたか否かを判断し（ステップＳ２１４）、切り替えられていない場合には、第２アドレス／データ制御部４が、フラッシュメモリ１０から読み出したデータを第１バッファ７に転送する（ステップＳ２１５）。
【００６８】
さらに、ステップＳ２１４の処理において、第１バッファ７から第２バッファ８に接続先が切り替えられている場合には、第１バッファセレクタ５が第３セレクタ５ａを切り替えて、第１バッファ７に蓄積されている読み出しデータをメインバス側にＤＭＡ転送する（ステップＳ２１６）。その間、第２バッファ８にはフラッシュメモリ１０の読み出しデータが蓄積される。
【００６９】
ここでも、第２バッファ８から第１バッファ７に接続先が切り替えられた場合には、第１バッファセレクタ５が第３セレクタ５ａを切り替えて、第２バッファ８に蓄積されている読み出しデータをメインバス側にＤＭＡ転送され、第１バッファ７にはフラッシュメモリ１０の読み出しデータが蓄積される。
【００７０】
ステップＳ２１５，２１６のいずれかの処理が終了すると、第２カウンタ６ｂが、第１バッファ７に転送された読み出しデータの容量をカウントする（ステップＳ２１７）。
【００７１】
そして、第２アドレス／データ制御部４はデータの読み出しが終了したか否かを判断し（ステップＳ２１８）、データの読み出しが終了した際には、第１バッファセレクタ５の制御により接続先が切り替えられ、第１バッファ７、または第２バッファ８に読み出しデータがメインバス側にＤＭＡ転送される（ステップＳ２１９）。
【００７２】
また、ステップＳ２１８の処理で、データの読み出しが終了していない場合には、第２バッファセレクタ６が、第２カウンタ６ｂのカウントがＭＡＸか否かを判断する（ステップＳ２２０）。
【００７３】
ステップＳ２２０の処理でカウントがＭＡＸでない場合、第２カウンタ６ｂのカウンタ値を記憶し（ステップＳ２２１）、カウンタがＭＡＸ（第１バッファ７のデータ蓄積がＭＡＸ）になるまでステップＳ２１４〜Ｓ２１７の処理を実行する。
【００７４】
ステップＳ２２０の処理において、カウントがＭＡＸの場合には、第２バッファセレクタ６の制御によって、第４セレクタ６ａを切り替え、読み出しデータの蓄積先を第１バッファ７から第２バッファ８に切り替え（ステップＳ２２２）、ステップＳ２１４〜Ｓ２１７までの処理を再び実行する。
【００７５】
ステップＳ２１６の処理が終了すると、第２アドレス／データ制御部４は、データの読み出しが終了したか否かを判断し（ステップＳ２２３）、読み出し終了の際にはステップＳ２１９の処理を行い、読み出し動作が終了する。
【００７６】
一方、データの読み出しが終了していない場合には、第２バッファセレクタ６が第２カウンタ６ｂのカウント値がＭＡＸか否かを判断する（ステップＳ２２４）。
【００７７】
カウント値がＭＡＸでない場合、第２カウンタ６ｂのカウンタ値を記憶し（ステップＳ２２５）、カウンタがＭＡＸ（第２バッファ８のデータ蓄積がＭＡＸ）となるまでステップＳ２１４〜Ｓ２１７の処理を実行する。
【００７８】
カウント値がＭＡＸの場合には、第２バッファセレクタ６が第４セレクタ６ａを制御し、読み出しデータの蓄積先を第２バッファ８から第１バッファ７に切り替えた後（ステップＳ２２５）、ステップＳ２１４〜Ｓ２１７までの処理を再び実行する。
【００７９】
次に、データの書き換え（リードモディファイライト：Ｒｅａｄ  Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）動作時におけるフラッシュメモリコントローラ１の動作について、図４、図５のフローチャートを用いて説明する。
【００８０】
まず、第１アドレス／データ制御部３が、メインバス側から転送されたデータの転送開始信号を受信すると（ステップＳ３０１）、該第１アドレス／データ制御部３は、転送制御部９に制御信号を送信し、フラッシュメモリコントローラ１とフラッシュメモリ１０と接続を切断する（ステップＳ３０２）。
【００８１】
第１アドレス／データ制御部３は、メインバス側にＤＭＡ要求信号を送信する（ステップＳ３０３）。そして、第１アドレス／データ制御部３がメインバス側からＤＭＡ実行信号を受信した後（ステップＳ３０４）、第２アドレス／データ制御部４がデータ変更先のセクタアドレスを受信する（ステップＳ３０５）。
【００８２】
第２アドレス／データ制御部４は、第２レジスタ４ｂに格納されているセクタアドレスデータと受信したセクタアドレスデータとを比較し（ステップＳ３０６）、それらのアドレスデータが一致しているか否かを判断する（ステップＳ３０７）。ここで、第２レジスタ４ｂに格納されているセクタアドレスデータは、前回のリードモディファイライト（データの書き換え）動作時に受信したセクタアドレスデータである。
【００８３】
そして、２つのセクタアドレスデータが一致した際には、第２セレクタ４ａを切り替えてフラッシュメモリ１０のバッファ１０ａを選択した後（ステップＳ３０８）、第１アドレス／データ制御部３が、転送制御部９に制御信号を出力し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを接続する（ステップＳ３０９）。
【００８４】
その後、メインバス側より転送された上書きデータをフラッシュメモリ１０のバッファ１０ａにおけるデータ変更アドレス先へＤＭＡ転送する（ステップＳ３１０）。
【００８５】
上書きデータの転送が終了したか否かの判断を第２アドレス／データ制御部４が行い（ステップＳ３１１）、転送終了の際には、フラッシュメモリコントローラ１によりフラッシュメモリ１０に上書きデータが書き込まれる（ステップＳ３１２）。
【００８６】
また、Ｓ３１１の処理で、転送が終了していない場合には、ステップＳ１３０５〜Ｓ３１０の処理を繰り返し実行する。
【００８７】
ステップＳ３０７の処理において、２つのセクタアドレスデータが不一致の場合には、第２アドレス／データ制御部４が第２セレクタ４ａを切り替えて第１バッファ７を選択する（ステップＳ３１３）。
【００８８】
第１アドレス／データ制御部３は、転送制御部９に制御信号を送信し、フラッシュメモリコントローラ１とフラッシュメモリ１０とを接続する（ステップＳ３１４）。
【００８９】
そして、第２バッファセレクタ６が、第１バッファ７から第２バッファに接続先を切り替えたか否かを判断し（ステップＳ３１５）、切り替えられていない場合には、第２アドレス／データ制御部４が、フラッシュメモリ１０から読み出したデータを第１バッファ７に転送する（ステップＳ３１６）。
【００９０】
また、ステップＳ３１５の処理で、切り替えられた場合には、第１バッファセレクタ５の制御により、切り替え前の第１バッファ７に蓄積されたデータについて、メインバス側より上書きデータをＤＭＡ転送（Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）する（ステップＳ３１７）。その間、第２バッファセレクタ６の制御により、切り替えられた第２バッファ８へデータを読み出す。
【００９１】
そして、ステップＳ３１６またはステップＳ３１７の処理が終了すると、第２カウンタ６ｂが、第１バッファ７に転送された読み出しデータの容量をカウントする（ステップＳ３１８）。
【００９２】
第２アドレス／データ制御部４は、データの読み出しが終了したか否かを判断し（ステップＳ３１９）、データの読み出しが終了した際には、第１バッファセレクタ５の制御により第３セレクタ５ａが切り替えられ、メインバス側より上書きデータがＤＭＡ転送（Ｍｏｄｉｆｙ  Ｗｒｉｔｅ）される（ステップＳ３２０）。
【００９３】
第２バッファ８にデータがある場合には、該第２バッファ８のデータをフラシュメモリ１０に書き込み（ステップＳ３２１）、その後、第１バッファ７のデータをフラッシュメモリ１０に書き込む（ステップＳ３２２）。
【００９４】
また、ステップＳ３１９の処理で、データの読み出しが終了していない場合には、第２バッファセレクタ６が、第２カウンタ６ｂのカウントがＭＡＸか否かを判断する（ステップＳ３２３）。
【００９５】
カウントがＭＡＸでない場合、第２カウンタ６ｂのカウンタ値を記憶した後（ステップＳ３２４）、ステップＳ３１５〜Ｓ３１８の処理をカウンタがＭＡＸ、すなわち、第１バッファ７のデータ蓄積がＭＡＸとなるまで繰り返し実行する。
【００９６】
そして、カウントがＭＡＸになると、第２バッファセレクタ６の制御によって第４セレクタ６ａを切り替え、第２バッファ８にデータがある場合は、そのデータをフラッシュメモリ１０に書き込む（ステップＳ３２５）。
【００９７】
第２バッファセレクタ６の制御は、データの読み出し先を第１バッファ７から第２バッファ８に切り替え（ステップＳ３２６）、ステップＳ３１５〜Ｓ３１８の処理を実行する。
【００９８】
その後、第２アドレス／データ制御部４が、データの読み出しが終了したか否かを判断し（ステップＳ３２７）、読み出し終了の際には第２バッファ８のデータについて、メインバス側から上書きデータがＤＭＡ転送される（ステップＳ３２８）。
【００９９】
そして、第１バッファ７のデータがフラッシュメモリ１０に書き込まれた後（ステップＳ３２９）、第２バッファ７のデータがフラッシュメモリ１０に書き込まれる（ステップＳ３２２）。
【０１００】
また、ステップＳ３２７の処理において、データの読み出しが終了していない場合には、第２バッファセレクタ６が、第２カウンタ６ｂのカウントがＭＡＸか否かを判断する（ステップＳ３３０）。
【０１０１】
カウントがＭＡＸでない場合、第２カウンタ６ｂのカウンタ値を記憶した後（ステップＳ３３１）、ステップＳ３１５〜Ｓ３１８の処理をカウンタがＭＡＸ、すなわち、第２バッファ８のデータ蓄積がＭＡＸとなるまで繰り返し実行する。
【０１０２】
カウントがＭＡＸになると、第２バッファセレクタ６により、第１バッファ７にデータがある場合には、そのデータをフラッシュメモリ１０に書き込む（ステップＳ３３２）。
【０１０３】
その後、第２バッファセレクタ６が、データの読み出し先を第２バッファ８から第１バッファ７に切り替え（ステップＳ３３３）、再び第１バッファ７のデータ蓄積がＭＡＸとなるまでステップＳ３１５〜Ｓ３１８の処理を実行する。
【０１０４】
図６は、フラッシュメモリコントローラ１をＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｃｉｒｃｕｉｔ）などの半導体集積回路装置（マイクロコントローラ）１１に搭載した一例を示すブロック図である。
【０１０５】
半導体集積回路装置１１は、図示するように、フラッシュメモリコントローラ１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２、ＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）１３、キャッシュ１４、ＤＭＡＣ（ＤＭＡ  Ｃｏｎｔｒｏｌｌｅｒ）１５、およびＳＲＡＭ／ＳＤＲＡＭインタフェース１６などから構成されている。
【０１０６】
ＣＰＵ１２は、外部からの所定の信号などによって、たとえば外部接続されたフラッシュメモリ１０などに格納されたプログラムやデータなどを読み出し、所定の処理を行う。
【０１０７】
ＭＭＵ１３は、ＣＰＵ１２からフラッシュメモリ１０にアクセスする際、該ＣＰＵ１２で生成された論理アドレスを物理アドレスに変換する。キャッシュ１４は、ＣＰＵ１２とフラッシュメモリ１０とのデータやり取りに用いられるメモリであり、ＣＰＵ１２からアクセス時間を短縮する。
【０１０８】
ＤＭＡＣ１５は、フラッシュメモリ１０と外部接続されたＳＲＡＭやＳＤＲＡＭなどのメモリとをＣＰＵ１２を介さずにデータ転送を制御する。ＲＡＭ／ＤＲＡＭインタフェース１６は、外部接続されたＳＲＡＭやＳＤＲＡＭなどのメモリのインタフェースである。
【０１０９】
また、これらフラッシュメモリコントローラ１、ＣＰＵ１２、ＭＭＵ１３、キャッシュ１４、ＤＭＡＣ１５、ならびにＲＡＭ／ＤＲＡＭインタフェース１６は、アドレスバスとデータバスとからなるメインバスＭＢにより、相互に接続されている。
【０１１０】
さらに、フラッシュメモリコントローラ１と外部接続されたフラッシュメモリ１０とは、Ｉ／Ｏバスからなる周辺バスＰＢを介して接続されている。
【０１１１】
前述したように、ＣＰＵ１２からフラッシュメモリ１０へのアクセスは、フラッシュメモリコントローラ１の第１アドレス／データ制御部３により、第１、または第２バッファかフラッシュメモリ１０のバッファ１０ａ（図１）かを判定して制御しているので、ＭＭＵ１３のアドレス空間は、フラッシュメモリ１０をアクセスするように、アドレス空間を割り付けるようにすればよい。
【０１１２】
このように、フラッシュメモリコントローラ１を半導体集積回路装置１１にオンチップ化することによって、フラッシュメモリ１０をダイレクトに該半導体集積回路装置１１に接続することが可能となり、ＰＤＡや携帯電話などのモバイル機器などの用途にＡＮＤ／ＮＡＮＤ型フラッシュメモリを用いることができる。
【０１１３】
図７は、図６の半導体集積回路装置１１に搭載されたフラッシュメモリコントローラ１におけるＤＭＡ転送書き込み動作時の一例を示すタイミングチャートである。
【０１１４】
図７においては、上方から下方にかけて、半導体集積回路装置１１に供給されるクロック信号ＣＬＫ、書き込み先のアドレスデータ、書き込みデータ、ＣＰＵ１２から出力される転送開始信号、フラッシュメモリコントローラ１からＣＰＵ１２に出力されるＤＭＡ要求信号、ＤＭＡＣ１５から出力されるＤＭＡ実行信号、第１セレクタ３ａによる第１バッファ７選択信号、第１バッファ７への転送開始信号、第１バッファ７におけるアドレスデータ、第１バッファ７に蓄積されるデータ、
第４セレクタ６ａによる第１バッファ７選択信号、第２セレクタ４ａによる第１バッファ７選択信号、第２バッファ８への転送開始信号、第２バッファ８のアドレスデータ、第２バッファ８に蓄積されるデータ、第４セレクタ６ａによる第２バッファ８選択信号、およびフラッシュメモリ１０の入出力（Ｉ／Ｏ）ポートにおける信号タイミングをそれぞれ示している。
【０１１５】
まず、ＣＰＵ１２から、転送開始信号がフラッシュメモリコントローラ１に出力されると、該、転送開始信号を受けてフラッシュメモリコントローラ１がＤＭＡ要求信号をＣＰＵ１２に出力する。
【０１１６】
そして、ＤＭＡＣ１５からフラッシュメモリコントローラ１にＤＭＡ実行信号が出力される。これにより、第３セレクタ５ａから第１バッファ７を選択する選択信号が出力され、第１バッファ７への転送開始信号が出力される。
【０１１７】
その後、書き込み先のアドレスデータ、ならびに書き込みデータがフラッシュメモリコントローラ１に出力され、第１バッファ７にそれらのデータが蓄積される。
【０１１８】
これらデータの転送が終了すると、ＤＭＡ実行信号がネゲートとなり、第１セレクタ３ａによる第１バッファ７選択信号、ならびに第１バッファ７への転送開始信号がそれぞれネゲートとなる。
【０１１９】
その後、第４セレクタ６ａによる第１バッファ７選択信号がネゲートとなって、フラッシュメモリ１０の入出力ポートにデータが出力され、データの書き込みが行われる。
【０１２０】
図８は、フラッシュメモリコントローラ１とフラッシュメモリ１０とをフラッシュメモリカード１７に搭載した際の一例を示すブロック図である。
【０１２１】
フラッシュメモリカード１７は、ＡＳＩＣ１８、リセットＩＣ１９、水晶発振器２０、ＰＣカードスロット２１、ならびにフラッシュメモリ１０などから構成されている。
【０１２２】
ＡＳＩＣ１８は、フラッシュメモリコントローラ１、パワーオンリセット２２、クロックコントロール２３、プロセッサ２４、およびホストインタフェース２５から構成されている。
【０１２３】
パワーオンリセット２２は、リセットＩＣ１９から出力されたリセット信号に基づいてフラッシュメモリカード１７を初期化する。クロックコントロール２３は、水晶発振器２０が生成したクロック信号から、内部動作用のクロック信号を生成し、供給する。
【０１２４】
プロセッサ２４は、外部接続されたホストなどからの所定の信号などによって、フラッシュメモリ１０などに格納されたプログラムやデータなどを読み出し、所定の処理を行う。ホストインタフェース２５は、フラッシュメモリカード１７とホストとのインタフェースである。
【０１２５】
また、リセットＩＣ１９は、電源投入時などにおいて所定のリセット信号をＡＳＩＣ１８に出力する。水晶発振器２０は、ある周波数のクロック信号を生成し、ＡＳＩＣ１８に供給する。
【０１２６】
ＰＣカードスロット２１は、ホスト機器に備えられたスロットに対応したコネクタであり、メモリカード１とホストとのデータのやり取りが行われる。
【０１２７】
このように、メモリコントローラ１とフラッシュメモリ１０とを搭載したフラッシュメモリカード１７では、フラッシュメモリ１０、フラッシュメモリコントローラ１、およびホストインタフェース２５を接続した構成となるので、通常のフラッシュメモリカードとの互換性を有することができる。
【０１２８】
図９は、フラッシュメモリコントローラ１を用いて構成した半導体装置（不揮発性メモリ装置）２６の説明図である。
【０１２９】
この半導体装置２６は、３つ半導体チップ２７〜２９によって構成されたマルチチップパッケージからなる。半導体チップ２７はフラッシュメモリ１０であり、半導体チップ２８はフラッシュメモリコントローラ１である。また、半導体チップ２９はＳＲＡＭ／ＳＤＲＡＭインタフェースロジックである。
【０１３０】
これら半導体チップ２７〜２９の周辺部近傍には、複数のチップ電極が等間隔でそれぞれ形成されている。
【０１３１】
半導体装置２６には、プリント配線基板３０が設けられている。このプリント配線基板３０の一方の面（チップ実装面）には、ボンディング電極、および配線パターンが形成されている。ボンディング電極は、プリント配線基板３０の周辺部近傍に所定の間隔で形成されている。
【０１３２】
また、プリント配線基板３０の他方の面には、アレイ状に等間隔で配置されたバンプ用電極が形成されている。バンプ用電極の中央部には、スルーホールが形成されており、ボンディング電極とバンプ用電極とは、配線パターン、ならびにスルーホールを介してそれぞれ電気的に接続されている。
【０１３３】
プリント配線基板３０のバンプ用電極には、球形のはんだからなるはんだバンプ３１がそれぞれ形成されており、これらはんだバンプ３１が半導体装置２６の外部引き出し線となる。
【０１３４】
プリント配線基板３０の一方の面には、半導体チップ２７が接着材などを介して接着されている。半導体チップ２７の上面には、半導体チップ２８，２９が接着材などを介してそれぞれ接着されている。
【０１３５】
また、半導体装置２６の接続構成は、図１０に示すように、フラッシュメモリ１０が接続されたフラッシュメモリコントローラ１が、ＳＲＡＭ／ＳＤＲＡＭインタフェースロジック３３に接続され、該ＳＲＡＭ／ＳＤＲＡＭインタフェースロジックが外部接続される構成となっている。
【０１３６】
よって、図９に示すように、半導体チップ２７，２８は、ボンディングワイヤＷ１を介してチップ電極間が接続されており、半導体チップ２８，２９は、ボンディングワイヤＷ２を介してチップ電極間が接続されている。
【０１３７】
また、半導体チップ２９は、ボンディングワイヤＷ３を介して該半導体チップ２９のチップ電極とプリント配線基板３０の一方の面に形成されたボンディング電極とがそれぞれ接続されている。
【０１３８】
そして、これら半導体チップ２７〜２９、ならびにボンディングワイヤＷ１〜Ｗ３は、樹脂封止されてパッケージ３２が形成されている。
【０１３９】
このように、半導体装置２６は、ＳＲＡＭ／ＳＤＲＡＭインタフェースを有していることより、外部接続端子をＳＲＡＭ／ＳＤＲＡＭインタフェースのＩ／Ｏ端子専用とすることで、他のプロセッサとの接続を容易にすることができる。
【０１４０】
また、マルチチップパッケージとすることで、半導体装置２６を小型化することができ、メインボードなどに実装する際の実装面積を低減することができる。
【０１４１】
ここで、図９では、半導体装置２６が、３つ半導体チップ２７〜２９によって構成されたマルチチップパッケージからなる構成としたが、たとえば、図１１に示すように、半導体チップ２７ａと半導体チップ３４とからなるマルチチップパッケージの半導体装置（不揮発性メモリ装置）２６ａとしてもよい。
【０１４２】
この場合、半導体チップ２７ａはフラッシュメモリ１０からなり、半導体チップ３４は、ＳＲＡＭまたはＳＤＲＡＭなどの揮発性メモリ、フラッシュメモリコントローラ、ならびにＳＲＡＭ／ＳＤＲＡＭインタフェースロジックからなる。
【０１４３】
そして、半導体チップ２７ａと半導体チップ３４とがボンディングワイヤＷ４を介してそれぞれ接続され、ＳＲＡＭ／ＳＤＲＡＭインタフェースロジックを有する半導体チップ３４は、ボンディングワイヤＷ５を介してプリント配線基板３０に形成されたボンディング電極とそれぞれ接続されている。
【０１４４】
半導体チップ３４に形成されたフラッシュメモリコントローラにおいては、第１、および第２バッファ７，８として機能するバッファ領域が、揮発性メモリの一部の任意の領域を用いて構成されている点が異なる以外は、図１に示すフラッシュメモリコントローラ１と同じ回路である。
【０１４５】
よって、半導体装置２６ａでは、フラッシュメモリと揮発性メモリとを１つのパッケージにより構成することができるので、より他のプロセッサとの接続を容易にすることができるとともに、メインボードなどの実装面積を低減することができる。
【０１４６】
それにより、本実施の形態においては、ＡＮＤ／ＮＡＮＤ型のフラッシュメモリ１０における１セクタのデータのランダムアクセスを可能とすることができる。
【０１４７】
また、バスブリッジを介さずにデータをＤＭＡ転送することにより、データの転送効率を大幅に向上することができる。
【０１４８】
以上、本発明者によってなされた発明を発明の実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１４９】
【発明の効果】
本願によって開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【０１５０】
（１）ＡＮＤ／ＮＡＮＤ型のフラッシュメモリであっても、１セクタ分のデータのランダムアクセスが可能となり、データの転送効率を大幅に向上することができる。
【０１５１】
（２）また、ＮＯＲ型フラッシュメモリコントローラからビット単価の安いＡＮＤ／ＮＡＮＤ型フラッシュメモリに置き換えが可能となるので、携帯電話やモバイル機器などの電子機器を低コスト化することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態によるフラッシュメモリコントローラのブロック図である。
【図２】図１のフラッシュメモリコントローラの書き込み動作時におけるフローチャートである。
【図３】図１のフラッシュメモリコントローラの読み出し動作時におけるフローチャートである。
【図４】図１のフラッシュメモリコントローラのリードモディファイライト動作時におけるフローチャートである。
【図５】図４に続くリードモディファイライト動作時におけるフローチャートである。
【図６】図１のフラッシュメモリコントローラを搭載した半導体集積回路装置の一例を示すブロック図である。
【図７】図６の半導体集積回路装置における書き込み動作時における各信号のタイミングチャートである。
【図８】図１に示したフラッシュメモリコントローラとフラッシュメモリとを搭載した一例を示すフラッシュメモリカードのブロック図である。
【図９】図１のフラッシュメモリコントローラを用いて構成された半導体装置の説明図である。
【図１０】図９の半導体装置における接続構成を示す説明図である。
【図１１】本発明の他の実施の形態によるフラッシュメモリコントローラを用いて構成された半導体装置の説明図である。
【符号の説明】
１  フラッシュメモリコントローラ（マイクロプロセッサ、不揮発性メモリコントローラ、コントローラ）
２  メインバスインタフェース
３  第１アドレス／データ制御部
３ａ  第１セレクタ
３ｂ  第１レジスタ
４  第２アドレス／データ制御部
４ａ  第２セレクタ
４ｂ  第２レジスタ
５  第１バッファセレクタ
５ａ  第３セレクタ
５ｂ  第１カウンタ
６  第２バッファセレクタ
６ａ  第４セレクタ
６ｂ  第２カウンタ
７  第１バッファ（バッファ領域）
８  第２バッファ（バッファ領域）
９  転送制御部
１０  フラッシュメモリ（不揮発性メモリ）
１０ａ  バッファ
１０ｂ  メモリアレイ
１１  半導体集積回路装置（マイクロコントローラ）
１２  ＣＰＵ
１３  ＭＭＵ
１４  キャッシュ
１５  ＤＭＡＣ
１６  ＳＲＡＭ／ＳＤＲＡＭインタフェース
１７  フラッシュメモリカード
１８  ＡＳＩＣ
１９  リセットＩＣ
２０  水晶発振器
２１  ＰＣカードスロット
２２  パワーオンリセット
２３  クロックコントロール
２４  プロセッサ
２５  ホストインタフェース
２６  半導体装置（不揮発性メモリ装置）
２６ａ  半導体装置（不揮発性メモリ装置）
２７，２７ａ  半導体チップ
２８，２９  半導体チップ
３０  プリント配線基板
３１  はんだバンプ
３２  パッケージ
３３  ＳＲＡＭ／ＳＤＲＡＭインタフェースロジック
３４  半導体チップ
Ｗ１〜Ｗ５  ボンディングワイヤ
ＭＢ  メインバス
ＰＢ  周辺バス
【図１】
2004199309.tif 000003
【図２】
2004199309.tif 000004
【図３】
2004199309.tif 000005
【図４】
2004199309.tif 000006
【図５】
2004199309.tif 000007
【図６】
2004199309.tif 000008
【図７】
2004199309.tif 000009
【図８】
2004199309.tif 000010
【図９】
2004199309.tif 000011
【図１０】
2004199309.tif 000012
【図１１】
2004199309.tif 000013