(57)【要約】【課題】ミスアラインデータに対して高速に読み出すことのできるメモリ装置、メモリシステムを提供する。【解決手段】複数のワード線と複数のビット線を設け、複数のワード線とビット線によりアドレスを特定してアクセスできるように構成されたメモリ装置であって、一本のワード線に対応して連続するアドレスの複数のメモリセルが配置され、それぞれに対応する複数のビット線から並列に連続するアドレスの複数のメモリセルにアクセスできるように構成され、複数のワード線のうち、第一のワード線と第一のワード線と連なるアドレスを指定する第二のワード線との間で重複するアドレス範囲を設け、第一のワード線に接続される第一のメモリセルと第二のワード線に接続される第二のメモリセルが同一アドレスに対応して重複して設けられている。【選択図】図２
2011210295.tif 000002
【特許請求の範囲】
【請求項１】
複数のワード線と複数のビット線を設け、前記複数のワード線とビット線によりアドレスを特定してアクセスできるように構成されたメモリ装置であって、
一本の前記ワード線に対応して連続するアドレスの複数のメモリセルが配置され、それぞれに対応する複数の前記ビット線から並列に前記連続するアドレスの複数のメモリセルにアクセスできるように構成され、
前記複数のワード線のうち、第一のワード線と前記第一のワード線と連なるアドレスを指定する第二のワード線との間で重複するアドレス範囲を設け、前記第一のワード線に接続される第一のメモリセルと前記第二のワード線に接続される第二のメモリセルが同一アドレスに対応して重複して設けられていることを特徴とするメモリ装置。
【請求項２】
前記メモリセルが不揮発性半導体メモリセルであることを特徴とする請求項１記載のメモリ装置。
【請求項３】
請求項１又は２記載のメモリ装置と、
前記メモリ装置へのアクセス制御を行うメモリ制御装置と、
を含むメモリシステムであって、
前記メモリ制御装置は、前記メモリ装置に対する読み出し動作時に、前記重複するアドレスについて、前記第一、第二のメモリセルのうち、一方から読み出したデータを選択して出力することを特徴とするメモリシステム。
【請求項４】
前記メモリ制御装置は、
外部から指定された読み出しアドレスと読み出しデータ長が、前記第一及び第二のメモリセルで重複するアドレスを含む場合において、
前記第一のワード線によって選択され前記第二のワード線によっては選択されないアドレスをさらに含む場合は、前記第一のメモリセルから読み出したデータを出力し、
前記第二のワード線によって選択され前記第一のワード線によっては選択されないアドレスをさらに含む場合は、前記第二のメモリセルから読み出したデータを出力することを特徴とする請求項３記載のメモリシステム。
【請求項５】
前記メモリ制御装置は、前記メモリ装置からのバースト読み出し時にバースト読み出しアドレス範囲の途中に含まれる前記第一、第二のメモリセルのうち、一方のメモリセルからの読み出しを行わないことを特徴とする請求項３又は４記載のメモリシステム。
【請求項６】
請求項１又は２記載のメモリ装置と、
ＣＰＵと、
前記ＣＰＵの制御により前記メモリ装置へのアクセスを行うメモリ制御装置と、を内蔵し、
前記メモリ制御装置は、前記重複するアドレスについて、前記第一、第二のメモリセルのうち、一方から読み出したデータを選択して前記ＣＰＵへ出力することを特徴とするマイクロコントローラ。
【請求項７】
前記複数のワード線のうち、一のワード線の選択により並列に前記メモリ装置から読み出し可能な連続するアドレスの数をｎとしたときに、
前記ＣＰＵと前記メモリ制御装置はｍ（１＜ｍ＜ｎ）アドレスのデータを並列に転送可能なビット幅を有するデータバスにより接続され、
連なるアドレスを指定するワード線との間でそれぞれｍ−１アドレスのメモリセルが重複して設けられていることを特徴とする請求項６記載のマイクロコントローラ。
【請求項８】
第一のワード線アドレスの選択によってアクセスできる複数のメモリセルに含まれる第一のメモリセルと、第二のワード線アドレスの選択によってアクセスできる複数のメモリセルに含まれる第二のメモリセルと、が同一アドレスに重複して配置された構造を有するメモリ装置へのアクセスを制御するメモリ制御装置であって、
前記メモリ制御装置は、前記メモリ装置に対する読み出しアドレスが前記第一及び第二のメモリセルのアドレスを含む場合に、前記第一及び第二のメモリセルのうち、一方から読み出したデータを選択して出力することを特徴とするメモリ制御装置。
【請求項９】
外部から指定された読み出しアドレスと読み出しデータ長が、前記第一及び第二のメモリセルで重複するアドレスを含む場合において、
前記第一のワード線アドレスによって選択され前記第二のワード線アドレスによっては選択されないアドレスをさらに含む場合は、前記第一のメモリセルから読み出したデータを出力し、
前記第二のワード線アドレスによって選択され前記第一のワード線アドレスによっては選択されないアドレスをさらに含む場合は、前記第二のメモリセルから読み出したデータを出力することを特徴とする請求項８記載のメモリ制御装置。
【請求項１０】
前記メモリ装置からのバースト読み出し時にバースト読み出しアドレス範囲の途中に含まれる前記第一、第二のメモリセルのうち、一方のメモリセルからの読み出しを行わないことを特徴とする請求項８又は９記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置、並びに、メモリ装置を備えたメモリシステム及びマイクロコントローラ、さらには、メモリ装置を制御するメモリ制御装置に関する。特に、マイクロコントローラに内蔵するフラッシュメモリ等の不揮発性メモリ装置に関する。
【背景技術】
【０００２】
マイクロコントローラ等のコンピュータシステムの高速動作のためには、メモリに対するアクセスも高速化する必要がある。システム的にメモリへのアクセスを高速化する技術としては、メモリインタリーブの技術が知られている。メモリインタリーブの技術では、メモリの連続するアドレスを複数のメモリに分割し、連続するアドレスを並列にアクセスすることにより、見かけ上のアクセス時間を短縮する技術である。メモリインタリーブにおいて、ＣＰＵが１回のアクセスで必要とするメモリデータのアドレスが並列にアクセスできるアドレスの範囲内に常に含まれていれば、単純にメモリを分割すればよいが、異なるアドレスにまたがる場合は、分割したメモリ毎にインクリメント又はデクリメントしたアドレスを与える等の複雑な制御が必要となる。
【０００３】
特許文献１乃至４には、このようなミスアラインデータ（データの先頭アドレスが１回のアクセスでアクセス可能なアドレスからずれているデータ）を一度のバスサイクルで取り出す先行技術が記載されている。この特許文献１乃至４に記載されている先行技術はいずれも、メモリをそれぞれ上位ビットと下位ビットを記憶する複数のメモリに分割し、分割したメモリ毎にインクリメント（またはデクリメント）したアドレスを与えるアドレス変換手段を設け、与えられたアドレスに対して、上位ビットのメモリと下位ビットのメモリで異なったアドレスへアクセスできるようにしてミスアラインデータを一度にアクセスできるようにしている。
【０００４】
一方、特許文献５の第１図には、上記特許文献１乃至４のようにメモリを分割したり、アドレス変換手段を設けたりせずにミスアラインデータを一度にアクセスできるようにする記憶装置が記載されている。特許文献５では、特許文献１乃至４よりも簡単な構造で同等の機能を実現している。特に、メモリを分割する必要がないので、読み出し用の回路や書き込み用の回路を分割したメモリ毎に設ける必要がないので、１チップ化に適している。
【０００５】
特許文献５では、ワード（ｉ）の１ビットのメモリセルがワード線（ｉ）とワード線（ｉ＋１）の２本のワード線と２本のビット線に接続される。２本のビット線は、それぞれワード線（ｉ）が選択されたときのデータリードライト用のビット線とワード線（ｉ＋１）が選択されたときのデータリードライト用のビット線である。また、ワード線（ｉ）はワード（ｉ−１）のメモリセルと、ワード線（ｉ＋１）はワード（ｉ＋１）のメモリセルと共有されている。上記構成により、１本のワード線を選択することにより、連続する２ワードのメモリセルが選択され、ビット線を選択することにより、上位ビットと下位ビットで異なるアドレスを選択することができ、ミスアラインしたデータに対して一度にアクセスすることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平３−４４７４８号公報
【特許文献２】特開平４−３５９３３４号公報
【特許文献３】特開平５−７３４０６号公報
【特許文献４】特開平５−１２７９８５号公報
【特許文献５】特開昭６３−３０８７８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は本発明により与えられる。メモリ装置、メモリシステムにおいては、アクセスの高速化だけではなく、低消費電力化が求められている。特に、一つの集積化回路の中にコンピュータシステムを実現するマイクロコントローラ、特にフラッシュメモリを内蔵するマイクロコントローラにおいて、ＣＰＵの処理性能の向上、低消費電力化は益々重要な設計要件となってきている。
【０００８】
特許文献５のメモリ回路の構成によると、１回のメモリアクセスに対して２ワードのデータが読み出される構成になっているため、１回のメモリアクセスに対して１ワードのデータを読み出す一般的な構成のメモリの動作電流の２倍必要になる。
【課題を解決するための手段】
【０００９】
本発明の１つの側面によるメモリ装置は、複数のワード線と複数のビット線を設け、前記複数のワード線とビット線によりアドレスを特定してアクセスできるように構成されたメモリ装置であって、一本の前記ワード線に対応して連続するアドレスの複数のメモリセルが配置され、それぞれに対応する複数の前記ビット線から並列に前記連続するアドレスの複数のメモリセルにアクセスできるように構成され、前記複数のワード線のうち、第一のワード線と前記第一のワード線と連なるアドレスを指定する第二のワード線との間で重複するアドレス範囲を設け、前記第一のワード線に接続される第一のメモリセルと前記第二のワード線に接続される第二のメモリセルが同一アドレスに対応して重複して設けられている。
【００１０】
また、本発明の他の側面によるメモリシステムは、前記メモリ装置と、前記メモリ装置へのアクセス制御を行うメモリ制御装置と、を含むメモリシステムであって、前記メモリ制御装置は、前記メモリ装置に対する読み出し動作時に、前記重複するアドレスについて、前記第一、第二のメモリセルのうち、一方から読み出したデータを選択して出力する。
【００１１】
本発明のさらに他の側面によるマイクロコントローラは、前記メモリ装置と、ＣＰＵと、前記ＣＰＵの制御により前記メモリ装置へのアクセスを行うメモリ制御装置と、を内蔵し、前記メモリ制御装置は、前記重複するアドレスについて、前記第一、第二のメモリセルのうち、一方から読み出したデータを選択して前記ＣＰＵへ出力する。
【００１２】
本発明の別な側面によるメモリ制御装置は、第一のワード線アドレスの選択によってアクセスできる複数のメモリセルに含まれる第一のメモリセルと、第二のワード線アドレスの選択によってアクセスできる複数のメモリセルに含まれる第二のメモリセルと、が同一アドレスに重複して配置された構造を有するメモリ装置へのアクセスを制御するメモリ制御装置であって、前記メモリ制御装置は、前記メモリ装置に対する読み出しアドレスが前記第一及び第二のメモリセルのアドレスを含む場合に、前記第一及び第二のメモリセルのうち、一方から読み出したデータを選択して出力する。
【発明の効果】
【００１３】
本発明によれば、低消費電力で高性能のメモリ装置、メモリシステム、マイクロコントローラを提供できる。また、本発明のメモリ制御装置によれば、上記メモリ装置に対して容易にアクセスすることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例によるメモリ装置を用いたマイクロコントローラのブロック図である。
【図２】一実施例による（ａ）メモリシステムのブロック図と（ｂ）メモリセルアレイの一部の構成を示すブロック図である。
【図３】一実施例において（ａ）ミスアラインがない場合の読み出しタイミング図と、（ｂ）ミスアラインが発生した場合の読み出しタイミング図である。
【図４】比較例によるマイクロコントローラのブロック図である。
【図５】比較例によるメモリシステムのブロック図である。
【図６】比較例において（ａ）ミスアラインがない場合の読み出しタイミング図と、（ｂ）ミスアラインが発生した場合の読み出しタイミング図である。
【図７】別な実施例によるマイクロコントローラのブロック図である。
【図８】別な実施例におけるメモリシステムのブロック図である。
【発明を実施するための形態】
【００１５】
最初に本発明の実施形態の概要について、説明する。なお、概要の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【００１６】
本発明の一実施形態のメモリ装置１は、例えば、図２、図８に示すように、複数のワード線１３と複数のビット線１４を設け、複数のワード線１３とビット線１４によりアドレスを特定してアクセスできるように構成されたメモリ装置１であって、一本のワード線（例えば図２（ａ）のワード線Ｎ）に対応して連続するアドレスの複数のメモリセル（アドレス４Ｎ〜４Ｎ＋４のメモリセル）が配置され、それぞれに対応する複数のビット線から並列に連続するアドレスの複数のメモリセル（アドレス４Ｎ〜４Ｎ＋４のメモリセル）にアクセスできるように構成され、複数のワード線のうち、第一のワード線（ワード線Ｎ）と第一のワード線と連なるアドレスを指定する第二のワード線（ワード線Ｎ＋１）との間で重複するアドレス範囲（アドレス４Ｎ＋４が重複）を設け、第一のワード線（Ｎ）に接続される第一のメモリセル（Ｂｙｔｅ４のアドレス４Ｎ＋４のメモリセル）と第二のワード線（Ｎ＋１）に接続される第二のメモリセル（Ｂｙｔｅ０のアドレス４Ｎ＋４のメモリセル）が同一アドレスに対応して重複して設けられている。上記構成によれば、従来複数のワード線アドレスにまたがるミスアラインしたデータに対しても１回でアクセスできる。例えば、アドレス４Ｎ＋３と４Ｎ＋４とに格納されたミスアラインしたデータに対しては、比較例の図５では、２回のメモリ読み出しが必要だったのに対して、上記実施形態によれば、１回のメモリ読み出しでアクセスできる。
【００１７】
また、好ましくは、上記メモリセルは不揮発性半導体メモリセルである。上記構成によれば、同じデータを２つのメモリセルに書き込む必要があるが、読み出しアクセス回数が少なくできるので、書き込み回数より読み出し回数が多くなることが多い不揮発性半導体メモリに適している。
【００１８】
さらに、一実施形態のメモリシステム５は、例えば図２、図８に示すように、上記メモリ装置１と、メモリ装置１へのアクセス制御を行うメモリ制御装置２と、を含むメモリシステム５であって、メモリ制御装置２は、メモリ装置１に対する読み出し動作時に、重複するアドレスについて、第一、第二のメモリセルのうち、一方から読み出したデータを選択して出力する。すなわち、上記メモリシステムによれば、重複したメモリセルのうち、どちらからデータを読み出せばよいか考慮することなく、高速にデータを読み出すことができる。具体的には、メモリ制御装置２が、外部から指定された読み出しアドレスと読み出しデータ長が、第一及び第二のメモリセルで重複するアドレス（例えば４Ｎ＋４）を含む場合において、第一のワード線Ｎによって選択され第二のワード線Ｎ＋１によっては選択されないアドレス（例えば、４Ｎ＋３）をさらに含む場合は、前記第一のメモリセルから読み出したデータを出力し、第二のワード線Ｎ＋１によって選択され第一のワード線Ｎによっては選択されないアドレス（例えば、４Ｎ＋５）をさらに含む場合は、第二のメモリセルから読み出したデータを出力する。上記によってミスアラインした２連続アドレスのデータであっても１回のアクセスでデータを読み出すことができる。
【００１９】
さらに、メモリ装置１からのバースト読み出し時にバースト読み出しアドレス範囲の途中に含まれる第一、第二のメモリセルのうち、一方のメモリセルからの読み出しを行わない。例えば、図８において、アドレス４Ｎ＋２〜４Ｎ＋５の４アドレス連続するデータをバースト読み出しする場合、ワード線Ｎの４Ｎ＋４のアドレスについては、データの読み出しを行わないことにより、消費電流を低減できる。
【００２０】
また、一実施形態のマイクロコントローラは、図１、図７に示すように、上記メモリ装置１と、ＣＰＵ３と、ＣＰＵ３の制御により前記メモリ装置へのアクセスを行うメモリ制御装置２と、を内蔵し、メモリ制御装置２は、重複するアドレスについて、第一、第二のメモリセルのうち、一方から読み出したデータを選択して前記ＣＰＵへ出力する。
【００２１】
また、上記マイクロコントローラにおいて、複数のワード線のうち、一のワード線の選択により並列にメモリ装置１から読み出し可能な連続するアドレスの数をｎとしたときに、ＣＰＵ３とメモリ制御装置２はｍ（１＜ｍ＜ｎ）アドレスのデータを並列に転送可能なビット幅を有するデータバスＤａｔａ［１５−０］により接続され、連なるアドレスを指定するワード線との間でそれぞれｍ−１アドレスのメモリセルが重複して設けられている。例えば、図２と図８では、ｎ＝５、ｍ＝２であるので、１アドレスのメモリセルがワード線ＮとＮ＋１で重複している。ｍ−１アドレスが重複するようにすれば、データの先頭アドレスがどのアドレスから始まっても、データバスの１回の転送で転送できるデータを１回のアクセスで読み出すことができる。
【００２２】
さらに、一実施形態のメモリ制御装置２は、第一のワード線アドレス（ワード線Ｎの選択アドレス）の選択によってアクセスできる複数のメモリセルに含まれる第一のメモリセル（４Ｎ＋４）と、第二のワード線アドレス（ワード線Ｎ＋１の選択アドレス）の選択によってアクセスできる複数のメモリセルに含まれる第二のメモリセル（４Ｎ＋４）と、が同一アドレスに重複して配置された構造を有するメモリ装置１へのアクセスを制御するメモリ制御装置２であって、メモリ制御装置２は、メモリ装置１に対する読み出しアドレスが第一及び第二のメモリセルのアドレスを含む場合に、第一及び第二のメモリセルのうち、一方から読み出したデータを選択して出力する。以上、実施形態の概要について説明したが、以下、実施例について、図面を参照してさらに詳しく説明する。
【実施例１】
【００２３】
［実施例１の構成］
図１は、実施例１によるマイクロコントローラのブロック図である。図１のマイクロコントローラは、ＣＰＵ３と、ＣＰＵが実行するプログラムやデータが格納されたメモリ装置１と、メモリ装置１から読み出したデータやプログラムを整列してＣＰＵへ出力するメモリ制御装置（アライナ）２を備えている。また、メモリ装置１とメモリ制御装置２はメモリシステム５を構成し、ＣＰＵ３からは、メモリ装置１とメモリ制御装置２を意識せずに、全体で１つのメモリシステム５としてアクセスすることができる。
【００２４】
ＣＰＵ３とメモリ制御装置２は１６ビットのデータバスＤａｔａ［１５−０］によって接続されている。メモリ装置１から読み出されたデータは、メモリ制御装置２によってＣＰＵ３が要求するバイト数のデータに整列され、メモリ制御装置２がデータバスＤａｔａ［１５−０］にデータを出力する。また、ＣＰＵ３は１６ビットのアドレスバスＡｄｒ［１５−０］に接続される。アドレスバスＡｄｒ［１５−０］はアドレスラッチ４にも接続されており、アドレスラッチ４はＣＰＵ３が出力するアドレスをラッチし、メモリ装置１にラッチしたアドレスを供給する。また、アドレスラッチ４にラッチしたアドレスの下位２ビットＡｄｒ［１−０］はメモリ制御装置２にも供給されている。
【００２５】
さらに、リード信号ＲＤとバイト数信号ＢＮがＣＰＵ３からメモリ制御装置２に接続し、ウェイト信号ＷＴがメモリ制御装置２からＣＰＵ３に接続されている。リード信号ＲＤはＣＰＵ３からメモリ装置１のデータの読み出しを行うときにアクティブ（ハイレベル）になる信号である。また、バイト数信号ＢＮは、ＣＰＵ３からメモリ１に対して読み出しを行うデータのデータ長（バイト数）を指定する信号である。なお、ＣＰＵ３が扱うデータには、１バイトのデータと２バイトのデータがあり、バイト数信号ＢＮの論理レベルによって１バイト又は、２バイトのデータをメモリ制御装置２に対して要求する。さらに、ウェイト信号ＷＴは、ＣＰＵ３が要求するデータを次のバスサイクルまでに用意できない場合に、メモリ制御装置２からＣＰＵ３にウェイトをかける信号である。ハイレベルを出力する（アクティブにする）とウェイト状態になる。
【００２６】
メモリ装置１に格納されたデータをＣＰＵ３が読み出すときは、ＣＰＵ３がメモリ装置１のアドレスを指定するとともに、要求するデータ長（１バイト又は２バイト）に合わせてビット数信号ＢＮを指定し、読み出しを行うメモリ装置１の先頭アドレスをアドレスバスＡｄｒ［１５−０］に出力し、リード信号ＲＤをハイレベルにしてメモリ制御装置２に対してメモリ装置１からのデータの読み出しと転送を要求する。メモリ制御装置２は、メモリ装置１から読み出したデータをバイト数信号ＢＮで指定されたデータ長のデータに整列してＣＰＵ３へ出力する。所定のサイクルまでに、ＣＰＵが要求したアドレスのデータについて、メモリ装置１からのデータの読み出しが完了していない場合は、ウェイト信号をハイレベルにして、メモリ装置１から読み出したデータの用意ができるまで、ＣＰＵ３の命令実行を停止させる。
【００２７】
図２（ａ）は、メモリシステム５について、メモリ装置１の内部構成まで示したブロック図である。また、図２（ｂ）は、メモリ装置１内部のメモリセルアレイ１２の一部の構成を示すブロック図である。
【００２８】
図２（ａ）において、メモリ装置１は、アドレスラッチ４がラッチした１６ビットのアドレスＡｄｒ［１５−０］のうち、上位アドレスビットＡｄｒ［１５−２］をデコードするアドレスデコーダ１１とメモリセルアレイ１２とセンスアンプ、データセレクタ１６を備えている。アドレスデコーダ１１からはワード線０〜Ｎ＋１がメモリセルアレイ１２に出力されている。
【００２９】
図２（ｂ）に示すように、メモリセルアレイ１２の内部は、複数のワード線１３（図２（ａ）のワード線０〜Ｎ＋１と同じもの）と直交する方向に複数のビット線１４が設けられている。各ビット線は、センスアンプ、データセレクタ１６に接続されている。また、ワード線１３とビット線１４との交点に対応してそれぞれ対応してメモリセル１５が設けられている。
【００３０】
図２（ａ）に戻って説明を続けると、各ワード線には、Ｂｙｔｅ０〜Ｂｙｔｅ４の連続する５バイトアドレスのメモリセルが接続されている。また、各ワード線に接続された５バイトのメモリセルのうち、先頭アドレス（Ｂｙｔｅ０）のメモリセルは、一つ前のアドレスのワード線に接続されたメモリセルの最終アドレス（Ｂｙｔｅ４）のメモリセルとアドレスが重複して設けられている。また、各ワード線に接続された５バイトのメモリセルのうち、最終アドレス（Ｂｙｔｅ４）のメモリセルは、一つ後のアドレスのワード線に接続された先頭アドレス（Ｂｙｔｅ０）のメモリセルとアドレスが重複して設けられている。
【００３１】
具体的に説明すると、ワード線Ｎには、アドレスが連続するＡｄｒ４Ｎ、Ａｄｒ４Ｎ＋１、Ａｄｒ４Ｎ＋２、Ａｄｒ４Ｎ＋３、Ａｄｒ４Ｎ＋４の５バイトのメモリセルが接続されている。同様に、ワード線Ｎに続くアドレスを指定するワード線Ｎ＋１には、Ａｄｒ４Ｎ＋４、Ａｄｒ４Ｎ＋５、Ａｄｒ４Ｎ＋６、Ａｄｒ４Ｎ＋７、Ａｄｒ４Ｎ＋８のアドレスが連続する５バイトのメモリセルが接続されている。すなわち、ワード線Ｎに接続されるＢｙｔｅ４のメモリセルとワード線Ｎ＋１に接続されるＢｙｔｅ０のメモリセルのアドレスは、共にアドレスＡｄｒ４＋４であり、同一アドレスに複数のメモリセルが重複して配置されている。
【００３２】
同様に、ワード線０に接続される５番目（Ｂｙｔｅ４）の最後のアドレスＡｄｒ４のメモリセルは、ワード線０に続くアドレスを指定するワード線１に接続される先頭アドレスＡｄｒ４（Ｂｙｔｅ０）のメモリセルとアドレスが重複し、ワード線１に接続される５番目の最後のアドレスＡｄｒ８（Ｂｙｔｅ４）のメモリセルは、ワード線１に続くアドレスを指定するワード線２に接続される先頭アドレスＡｄｒ８（Ｂｙｔｅ０）のメモリセルとアドレスが重複している。なお、図２（ａ）では、図示を省略しているが、ＡｄｒＣ、ＡＤｒ４Ｎ＋８のメモリセルもアドレスが重複して配置されている。すなわち、図２（ａ）では、４アドレス毎に一つの前の小さいアドレスを指定するワード線の５番目の最後のアドレス（Ｂｙｔｅ４）のメモリセルと続くアドレスを指定するワード線の１番目の最初のアドレス（Ｂｙｔｅ０）のメモリセルとが重複して設けられている。
【００３３】
このメモリシステム５では、アドレスＡｄｒ［１５−０］を指定して、リード信号ＲＤを活性化するとアドレスデコーダ１１は、上位アドレスビットＡｄｒ［１５−２］の値によって一つのワード線を選択され、メモリセルアレイ１２からセンスアンプ、データセレクタ１６を介して選択されたワード線に接続されているメモリセルから５バイト（５×８＝４０ビット）の連続するアドレスのデータがメモリ制御装置２に読み出されることになる。メモリ制御装置２は、メモリ装置１から読み出された５バイトのデータから、ＣＰＵ３が１クロック前に指定したアドレスの下位ビットＡｄｒ［１−０］とバイト数信号ＢＮの論理レベルによって、選択された１バイト又は２バイトのデータをデータバスＤａｔａ［１５−０］へ出力する。
【００３４】
［実施例１の動作］
次に、図１のマイクロコントローラにおいて、このメモリシステム５に対してデータの読み出しを行うときの動作について説明する。図２において、メモリ装置１の各メモリセルには、あらかじめデータが書き込まれているとする。特にアドレスが重複したアドレスのメモリセルには、同じデータが書き込まれているものとする。図３（ａ）は、アドレスにミスアラインがない場合の読み出しタイミング図である。図３（ａ）でＣＬＫはＣＰＵの動作クロックであるシステムクロックである。
【００３５】
システムクロックのクロックサイクル１では、ＣＰＵ３からメモリ装置１にアドレス００００Ｈ（末尾のＨは１６進数であることを示す。本明細書において以下、同じ）が入力され、メモリ装置１の読み出し動作が始まる。
【００３６】
クロックサイクル２では、メモリ装置１からアドレス００００Ｈを先頭アドレスとする連続するアドレスの５バイトのデータがメモリ制御装置２へ読み出される。ＣＰＵ３がクロックサイクル１で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は０Ｈ）により、メモリ制御装置２は、読み出された５バイトのデータのうち、先頭の２バイト（アドレス００００Ｈ、０００１Ｈ）のデータをデータバスＤａｔａ［１５−０］を介してＣＰＵ３に送る。
【００３７】
クロックサイクル３では、ＣＰＵ３から次のアドレスであるアドレス０００４Ｈが入力され、次のメモリ装置１の読み出し動作が始まる。ＣＰＵ３はメモリ制御装置２から送られてきたアドレス００００Ｈと０００１Ｈの２バイトのデータを処理する。また、ＣＰＵ３がクロックサイクル２で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は２Ｈ）により、メモリ制御装置２は、アドレス０００２Ｈと０００３Ｈの２バイトのデータをＣＰＵ３に送る。
【００３８】
クロックサイクル４では、ＣＰＵ３は、メモリ制御装置２から送られてきたアドレス０００２Ｈと０００３Ｈの２バイトのデータを処理する。また、メモリ装置１からアドレス０００４Ｈを先頭アドレスとする連続するアドレスの５バイトのデータがメモリ制御装置２へ読み出される。ＣＰＵ３がクロックサイクル３で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は０Ｈ）により、メモリ制御装置２は、アドレス０００４Ｈと０００５Ｈの２バイトのデータをＣＰＵ３に送る。
【００３９】
この様にＣＰＵ３が２バイト単位のデータをメモリ装置１に対して要求する場合でも、アドレスが偶数から始まる２バイトのデータである場合には、アドレスミスアラインが発生していないので、メモリ装置１に格納されている１ワード５バイトのデータのうち、最後の１バイト（Ｂｙｔｅ４）のデータは使用されない。
【００４０】
次に、図３（ｂ）は、アドレスにミスアラインが発生した場合の読み出しタイミング図である。本実施例ではＣＰＵ３が出力するアドレスがクロックサイクル１から１クロック毎に０００５Ｈ、０００７Ｈ、０００９Ｈ、０００ＢＨと変化し、バイト数信号ＢＮはこの４クロックサイクルの間は２バイトを指定するものとする。クロックサイクル１では、ＣＰＵ３からメモリ装置１にアドレス０００５Ｈが入力され、メモリ装置１の読み出し動作が始まる。
【００４１】
クロックサイクル２では、メモリ装置１からアドレス０００４Ｈを先頭アドレスとする連続するアドレスの５バイト（アドレス０００４Ｈ〜０００８Ｈ）のデータがメモリ制御装置２へ読み出される。ＣＰＵ３がクロックサイクル１で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は１Ｈ）により、メモリ制御装置２は、読み出された５バイトのデータのうち、アドレス０００５Ｈと０００６Ｈの２バイトのデータをデータバスＤａｔａ［１５−０］を介してＣＰＵ３に送る。
【００４２】
クロックサイクル３では、次のアドレスであるアドレス０００９ＨがＣＰＵ３から入力され、メモリ装置１の次の読み出し動作が始まる。ＣＰＵ３はメモリ制御装置２から送られてきたアドレス０００５Ｈと０００６Ｈの２バイトのデータを処理する。また、ＣＰＵ３がクロックサイクル２で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は３Ｈ）により、メモリ制御装置２は、アドレス０００７Ｈと０００８Ｈの２バイトのデータをＣＰＵ３に送る。
【００４３】
クロックサイクル４では、ＣＰＵ３は、メモリ制御装置２から送られてきたアドレス０００７Ｈと０００８Ｈの２バイトのデータを処理する。また、メモリ装置１からアドレス８を先頭アドレスとする連続するアドレスの５バイトのデータ（アドレス０００８Ｈ〜０００ＣＨ）がメモリ制御装置２へ読み出される。ＣＰＵ３がクロックサイクル３で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は１Ｈ）により、メモリ制御装置２は、アドレス０００９Ｈと０００ＡＨの２バイトのデータをＣＰＵ３に送る。
【００４４】
クロックサイクル３の動作が示す様に、ＣＰＵ３が２バイト単位のデータをメモリ装置１に対して要求する場合において、アドレスが奇数から始まる２バイトのデータである場合には、アドレスミスアラインが発生しているので、メモリ装置１に格納されている１ワード５バイトのデータのうち、アドレスが重複している最後の１バイトのデータと次のアドレスのワード線の先頭バイトのデータは、最後の１バイトのデータが使用され、先頭バイトのデータはＣＰＵ３へのデータ転送には、用いられない。
【００４５】
メモリ制御装置２は、ＣＰＵ３からアドレスが連続する２バイトデータの読み出しの要求があったときに、その２バイトのアドレスにメモリセルが重複して設けられているアドレスが含まれる場合には、重複していない方のアドレスのメモリセルが存在する方のワード線を選択し、そのワード線の選択によって、２バイトデータの読み出しを行う。たとえば、図２（ａ）において、アドレス０００７Ｈと０００８Ｈの２バイトのデータを読み出すときは、アドレス０００８Ｈのメモリセルは、ワード線１のＢｙｔｅ４とワード線２のＢｙｔｅ０に重複して存在する。しかし、アドレス０００７Ｈのメモリセルは、ワード線１にのみ存在する。したがって、アドレスが小さいほうのワード線１を選択し、アドレス０００７Ｈと０００８Ｈの２バイトのデータをワード線１から一括して読み出しを行う。一方、アドレス０００８Ｈと０００９Ｈの２バイトのデータを読み出すときは、アドレス０００８Ｈのメモリセルは、ワード線１のＢｙｔｅ４とワード線２のＢｙｔｅ０に重複して存在するが、アドレス０００９Ｈのメモリセルは、ワード線２にのみ存在する。したがって、ワード線２を選択し、アドレス０００８Ｈと０００９Ｈの２バイトのデータを一括して読み出しを行う。なお、メモリ制御装置２が重複したメモリセルのうち、どちらのメモリセルから読み出されたデータをＣＰＵへ転送するかは、ＣＰＵが指定するアドレスの下位２ビットＡｄｒ［１−０］とバイト数信号ＢＮによって選択することができる。
【００４６】
すなわち、実施例１のメモリ装置１によれば、ＣＰＵ３が２バイトのデータの読み出しをメモリ装置１に対して要求する場合において、アドレスがミスアラインしていても、１本のワード線を選択したときに選択されるアドレスの先頭アドレス（Ｂｙｔｅ０）と最終アドレス（Ｂｙｔｅ４）が他のワード線を選択したときに選択されるアドレスと重複しているので、連続する２バイトのデータが必ず１本のワード線の選択により読み出すことができ、ワード線の選択を変えてメモリ装置１からの読み出しを２回行う必要がない。したがって、ＣＰＵ３はメモリ装置１から高速にデータの読み出しを行うことができる。
【００４７】
マイクロコントローラにおいて、データバスを使用して１回のデータ転送で転送できる連続したアドレスのデータを、必ず１回のメモリ読み出しでできるようにするためには、一つのワード線の選択によって並列にメモリ装置から読み出し可能な連続するアドレスの数をｎとしたときに、ＣＰＵとメモリ制御装置がｍアドレスのデータを並列して転送可能なビット幅を有するデータバスで接続されているとすると、上記ｎアドレスのうち、ｍ−１アドレスのメモリセルを前後のアドレスを指定するワード線に接続されるメモリセルとアドレスを重複して持たせると、アドレスがミスアラインした場合でも、データバスを使った１回のデータ転送で送れる連続したアドレスのデータを１本のワード線を選択することにより読み出すことができる。なお、１回のデータ転送で転送できるデータを１回のメモリ装置へのアクセスで読み出すためには、ｍ＜ｎである必要がある。また、ｍは複数である。上記実施例では、ｎ＝５でｍ＝２であるので、ワード線間で重複して設けるアドレスはｍ−１＝１である。すなわち、１アドレス（バイト）だけワード線間でメモリセルが重複して設けられている。
【００４８】
［比較例］
図４は、実施例１に対する比較例によるマイクロコントローラのブロック図である。図４の構成は、図１の実施例１のマイクロコントローラの構成と比較すると、メモリ装置１がメモリ装置１０１に、メモリ制御装置２がメモリ制御装置１０２に、メモリシステム５がメモリシステム１０５に置き換わっていることを除いて図１のマイクロコントローラと構成は同一である。図４のメモリ装置１０１は、図１のメモリ装置１のようにワード線間でアドレスを重複して設けていない点が異なっている。したがって、メモリ制御装置１０２も実施例１のメモリ制御装置２のように重複したアドレスについて、どちらのデータを転送するか等を判断する機能はない。
【００４９】
図５は、メモリシステム１０５について、メモリ装置１０１の内部構成まで示したブロック図である。メモリ装置１０１は実施例１のメモリ装置１のように連続するアドレスを指定するビット線との間でメモリセルのアドレスを重複して持たせることはしていない。実施例１のメモリ装置１では、１本のワード線には、５バイトの連続するアドレス（Ｂｙｔｅ０〜４）のメモリセルが接続されているのに対して、比較例のメモリ装置１０１では、１本のワード線には、４バイトの連続するアドレス（Ｂｙｔｅ０〜３）のメモリセルが接続されている点が異なっている。
【００５０】
次に比較例の動作について説明する。図６（ａ）は、比較例においてミスアラインがない場合の読み出しタイミング図であり、図６（ｂ）は、比較例においてミスアラインが発生した場合の読み出しタイミング図である。図６（ａ）の場合、基本的な動作タイミングは、実施例１の図３（ａ）とほとんど同じである。ただし、図３（ａ）では、メモリ装置１から連続する５バイトのデータ（Ｂｙｔｅ０〜４）が読み出されていたのに対して、図６（ａ）では、メモリ装置１０１から連続する４バイトのデータ（Ｂｙｔｅ０〜３）が読み出されていることが違うだけである。
【００５１】
一方、アドレスミスアラインが発生した場合の動作は、実施例１とは異なってくる。図６（ｂ）において、クロックサイクル２までの動作は、実施例１の図３（ｂ）と同一なので、クロックサイクル３以降の動作について説明する。図６（ｂ）において、クロックサイクル３では、次のアドレスであるアドレス０００９ＨがＣＰＵ３から入力され、メモリ装置１０１の次の読み出し動作が始まる。ＣＰＵ３はメモリ制御装置１０２から送られてきたアドレス０００５Ｈと０００６Ｈの２バイトのデータを処理する。また、ＣＰＵ３がクロックサイクル１で指定したバイト数信号ＢＮ（この場合は２バイト）とアドレスの下位ビットＡｄｒ［１−０］（この場合は３Ｈ）により、メモリ制御装置１０２はアドレス０００７Ｈとアドレス０００８ＨのデータをＣＰＵ３に送るが、アドレス０００８Ｈのデータがまだメモリ装置１０１から読み出されていないため、アドレス０００７Ｈと０００８Ｈの２バイトのデータをＣＰＵ３に送ることができない。したがって、次のクロックサイクル４でウェイト信号ＷＴをアクティブにして、メモリ装置１からの読み出しを待つ。
【００５２】
クロックサイクル４では、メモリ装置１０１からアドレス０００８Ｈ〜０００ＢＨの４バイトのデータが読み出される。ＣＰＵ３は、ウェイト信号ＷＴがアクティブなので、バイト数信号ＢＮを通じてメモリ制御装置１０２に対して２バイトのデータを要求したまま、処理を停止する。クロックサイクル５では、メモリ制御装置１０２は、アドレス０００７Ｈと０００８Ｈの２バイトのデータをＣＰＵ３に送り、ウェイト信号ＷＴをインアクティブにする。
【００５３】
クロックサイクル６では、メモリ制御装置１０２は、アドレス０００９Ｈと０００ＡＨの２バイトのデータをＣＰＵ３に送る。ＣＰＵ３からアドレス０００ＤＨが入力されるとメモリ装置１０１はアドレス０００ＣＨ〜０００ＦＨに相当するメモリセルが接続されるワード線３が選択され、選択されたメモリセルからの読み出しが開始される。クロックサイクル７では、メモリ装置１０１からのアドレス０００ＣＨのデータの読み出しが完了していないため、アドレス０００ＢＨ、０００ＣＨの２バイトデータをＣＰＵ３に送ることができない。したがって、クロックサイクル７では、メモリ制御装置１０２はウェイト信号ＷＴをアクティブにしてメモリ装置１０１からの読み出しを待つ。ＣＰＵ３は処理を停止する。クロックサイクル８では、メモリ装置１０１からアドレス０００ＣＨ〜０００ＦＨの４バイトのデータが読み出されるため、メモリ制御装置１０２はウェイト信号ＷＴをインアクティブにして、アドレス０００ＢＨと０００ＣＨのデータをＣＰＵへ送る。
【００５４】
すなわち、比較例では、ＣＰＵ３が読み出しを要求する２バイト以上の長さのデータが１本のワード線の選択によって選択できるアドレスの境界にかかる場合、すなわち、ＣＰＵ３が要求する２バイト以上のデータが２本のワード線にまたがる場合には、メモリの読み出しが２回必要になるため、２回目のメモリ読み出しまでＣＰＵの処理が停止する。このため、処理能力が低下することになる。図６（ｂ）では、奇数アドレスからの２バイト読み出しを連続して行う場合に、ＣＰＵ３は２クロックサイクルの動作と１クロックサイクルの動作停止を繰り返すことを示している。
【００５５】
また、実施例１では、ワード線に接続されるメモリセルの数が、比較例の５／４倍であり、ビット線の数も比較例の５／４倍であるため、メモリ装置１の消費電力は、比較例の５／４倍程度に増加することが考えられる。一方、実施例１では、ミスアラインが連続した場合であっても、メモリ装置１への見かけ上のアクセス速度の低下がないのに対し比較例の図６（ｂ）ではミスアラインが連続した場合にはメモリ装置１からの見かけ上のアクセス速度が実施例１のアクセス速度の３分の２となる。したがってミスアラインが連続した場合の比較例のＣＰＵの処理性能は実施例１の３分の２に低下する。この条件で、ＣＰＵ３の性能対電力比率を実施例１と比較例で比較する。性能対電力比率は単位電力あたりのＣＰＵ性能であり、ＭＩＰＳ／Ｗの単位で示される。この数値は大きいほどよい。比較例の消費電力を１とすると、実施例１の消費電力は５／４である。比較例のＣＰＵ性能を１とすると、実施例１のＣＰＵ性能は３／２であるから、ＣＰＵ３の性能対電力比率は比較例を１とすると実施例１は１．２となるので、その効果は大きい。
【実施例２】
【００５６】
図７は、実施例２のマイクロコントローラのブロック図である。図７のマイクロコントローラの基本的な構成は、図１に示す実施例１のマイクロコントローラと同一である。ただし、メモリ制御装置２０２は、バースト読み出しに対応する機能が実施例１に対して付加されている。このため、ＣＰＵ３からメモリ制御装置２０２へバースト信号ＢＳＴが供給されている点が実施例１とは異なる。図８は、実施例２のメモリシステム２０５について、メモリ装置１の内部構成まで示したブロック図である。メモリ制御装置２０２にバースト信号ＢＳＴが供給されている点が実施例１の図２（ａ）と異なっている。
【００５７】
［バースト読み出し動作］
実施例２において、ＣＰＵ３が、リード信号ＲＤとバースト信号ＢＳＴをアクティブにして、ライト信号ＷＲをインアクティブにすることにより、バースト読み出しを行うことができる。メモリ制御装置２０２は、バースト読み出しに設定されると、そのバースト読み出しのアドレス範囲の途中にある重複したアドレスのメモリセルについて、どちらか一方のメモリセルからの読み出しを行わない。たとえば、図８において、アドレス０からアドレス４Ｎ＋７までのアドレスについてバースト読み出しを行う場合は、アドレス４、８、Ｃ、・・・４Ｎ＋４については、各ワード線の最後のアドレス（Ｂｙｔｅ４）からの読み出しを行わない。
【００５８】
この様に、読み出したデータのデータバスへの出力だけでなく、読み出し動作自体を重複したメモリセルの一方に対して行わないことで、バースト読み出し時の消費電力を低減することができる。
【００５９】
なお、上記各実施例では、メモリ装置１へのデータの書込み方法については、説明していないが、書き込み時には、アドレスが重複しているメモリセルについて、別なアドレスを割り当てるようなアドレス変換回路を設ければ、特に問題は生じない。たとえば、メモリデータが固定データで、製造時に一度書き込みを行えば、その後での書き換えを想定していない場合、フラッシュＲＯＭライタやＬＳＩテスタなどで静的に書き込みを行う場合にアドレスを変換して書き込めば、それでもよい。また、メモリ装置１がＲＯＭ等の読み出し専用メモリであれば、書込みは不要である。
【００６０】
上記説明した構成によって、フラッシュメモリ内蔵のマイクロコントローラにおいて、アドレスがミスアラインしている場合においても、アラインしている場合と同様のアクセス回数でデータを読み出すことができるので、ミスアラインしたデータの読み出しが高速処理の妨げになることがない。
【００６１】
以上、実施例について説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００６２】
１、１０１：メモリ装置
２、１０２、２０２：メモリ制御装置（アライナ）
３：ＣＰＵ
４：アドレスラッチ
５、１０５、２０５：メモリシステム
１１、１１１：アドレスデコーダ
１２、１１２：メモリセルアレイ
１３：ワード線
１４：ビット線
１５：メモリセル
１６、１１６：センスアンプ、データセレクタ
Ａｄｒ［１５−０］、Ａｄｒ［１−０］：アドレスバス
Ｄａｔａ［１５−０］、Ｄａｔａ［１５−８］、Ｄａｔａ［７−０］：データバス
ＢＮ：バイト数信号
ＷＴ：ウェイト信号
ＲＤ：リード信号
ＢＳＴ：バースト信号
ＣＬＫ：システムクロック
ＣＬＫ２：システムクロックの２分周信号
【図１】
2011210295.tif 000003
【図２】
2011210295.tif 000004
【図３】
2011210295.tif 000005
【図４】
2011210295.tif 000006
【図５】
2011210295.tif 000007
【図６】
2011210295.tif 000008
【図７】
2011210295.tif 000009
【図８】
2011210295.tif 000010