(57)【要約】【課題】チップ面積の削減を図ることが可能なマイクロコンピュータを提供すること。【解決手段】マイクロコンピュータは、ＣＰＵ１と複数のフラッシュメモリ２とを含む。複数のフラッシュメモリ２のそれぞれは、特殊領域または通常領域として割り当てられた領域２−１と、通常領域として割り当てられた領域２−２とを含む。ＣＰＵ１は、複数のフラッシュメモリ２のそれぞれに対して領域制御選択信号を出力して、領域２−１を特殊領域または通常領域のいずれかに設定する。したがって、特殊領域を持ったフラッシュメモリを１つだけにすることができ、チップ面積の削減を図ることが可能になる。【選択図】図３
2009140055.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと複数のフラッシュメモリとを含んだマイクロコンピュータであって、
前記複数のフラッシュメモリのそれぞれは、特殊領域または通常領域として割り当てられた第１の領域と、通常領域として割り当てられた第２の領域とを含み、
前記プロセッサは、前記複数のフラッシュメモリのそれぞれに対して制御信号を出力し、前記第１の領域を特殊領域または通常領域のいずれかに設定する、マイクロコンピュータ。
【請求項２】
前記フラッシュメモリのそれぞれは、前記第１の領域に対応するメモリセルと、
前記第１の領域が特殊領域に設定され、かつ特殊領域に対するアクセスが発生した場合、または前記第１の領域が通常領域に設定され、かつ通常領域に対するアクセスが発生した場合に、アドレスをデコードするデコーダと、
前記デコーダのデコード結果に応じて、前記メモリセルのワード線を活性化するワードドライバとを含む、請求項１記載のマイクロコンピュータ。
【請求項３】
前記マイクロコンピュータは、複数のプロセッサを含み、
前記複数のフラッシュメモリは、前記第２の領域が前記複数のプロセッサに対応する複数のバンクに分割されており、
前記プロセッサは、前記複数のフラッシュメモリのそれぞれに対して制御信号を出力し、前記第１の領域を特殊領域または複数のバンクのいずれかに設定する、請求項１または２記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを搭載したマイクロコンピュータに関し、特に、ブートエリアなどの特殊領域が設けられたフラッシュメモリを搭載したマイクロコンピュータに関する。
【背景技術】
【０００２】
近年、フラッシュメモリの大容量化が進んでおり、フラッシュメモリを搭載したマイクロコンピュータ（以下、マイコンとも呼ぶ。）の開発も盛んに行なわれている。一般に、マイコン製品は、それぞれのアプリケーションシステムに適した容量のフラッシュメモリを持つように設計されることが多い。
【０００３】
さまざまなアプリケーションシステムに対応するためには、さまざまなフラッシュメモリ容量に対応する必要がある。そのため、フラッシュモジュールを開発する際、ある最小単位のモジュールユニットを開発し、それを複数搭載することによって容量バリエーションに対応し、開発期間の短縮を図っている。
【０００４】
フラッシュモジュールは、ユーザがデータの書込み／消去を行なうユーザエリア（以下、通常領域とも呼ぶ。）と、マイコン起動時などのプログラムが格納されるブートエリアなどの特殊領域とから構成される。上述のさまざまなフラッシュメモリ容量に対応するとは、ユーザエリアの増量バリエーションに対応することを意味している。
【０００５】
一方、フラッシュメモリを搭載したマイクロコンピュータに関する技術として、下記の特許文献１に開示された発明がある。この特許文献１に開示されたシングルチップマイコンは、フラッシュメモリの各メモリブロックにブロック消去フラグを備える。ブロック消去フラグは、それに対応するメモリブロックが消去状態であるか書き込み状態であるかを保持するフラグであり、シングルチップマイコンのブート領域を含まないメモリブロックがすべて消去状態であるときにのみブート領域を含むブロックの消去を許可するブートブロック消去制御回路を備える。
【特許文献１】特開２００２−１８９７０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ブートエリアなどの特殊領域は容量固定であることが多い。上述のように、開発期間の短縮を図るためにある最小単位のモジュールユニットを開発しているが、この最小単位のモジュールユニットには特殊領域を含めて設計開発される。
【０００７】
したがって、複数搭載されるモジュールユニットのそれぞれに特殊領域が設けられた形でフラッシュモジュールが設計されることになる。これは、特殊領域を持ったモジュールユニットと、特殊領域を持たないモジュールユニットとの両方を設計することは、２つのマクロを設計し、２種類のモジュールユニットに対応したテストパターンを作成する必要があるため設計負荷が増大する、モジュール管理が２種類となるため煩雑になる、などの理由による。
【０００８】
そのため、大容量化にともなって多数のモジュールユニットを搭載する場合には２枚目以降のモジュールユニットの特殊領域が無駄となってしまい、チップ面積におけるデメリットが大きくなるといった問題点があった。
【０００９】
また、上述の特許文献１に開示された発明を用いたとしても、このような問題点を解決することはできない。
【００１０】
本発明は、上記問題点を解決するためになされたものであり、その目的は、複数のフラッシュメモリのうち特殊領域を持ったフラッシュメモリを１つだけにすることができ、チップ面積の削減を図ることが可能なマイクロコンピュータを提供することである。
【課題を解決するための手段】
【００１１】
本発明の一実施例によれば、ＣＰＵと複数のフラッシュメモリとを含んだマイクロコンピュータが提供される。複数のフラッシュメモリのそれぞれは、特殊領域または通常領域として割り当てられた第１の領域と、通常領域として割り当てられた第２の領域とを含む。ＣＰＵは、複数のフラッシュメモリのそれぞれに対して領域制御選択信号を出力して、第１の領域を特殊領域または通常領域のいずれかに設定する。
【発明の効果】
【００１２】
この実施例によれば、ＣＰＵが、複数のフラッシュメモリのそれぞれに対して領域制御選択信号を出力して、第１の領域を特殊領域または通常領域のいずれかに設定するので、特殊領域を持ったフラッシュメモリを１つだけにすることができ、チップ面積の削減を図ることが可能になるという効果がある。
【発明を実施するための最良の形態】
【００１３】
図１は、特殊領域が設けられたモジュールユニットを３枚搭載する場合のフラッシュモジュールの構成を示す図である。モジュールユニット１０１のそれぞれは、たとえば１ＭＢの容量を有し、ブートエリアなどの特殊領域１０１−１と、ユーザエリア（通常領域）１０１−２とを含む。この構成においては、モジュールユニット１０１の２枚分の特殊領域が無駄となる。
【００１４】
図２は、図１に示すモジュールユニット１０１の内部構成を示す図である。なお、図２においては、フラッシュメモリ内の領域選択を行なう部分のみを抽出して示しており、それ以外の部分は一般的なフラッシュメモリの構成と同様である。
【００１５】
モジュールユニット１０１は、フラッシュメモリの全体的な制御を行なう制御部１１０と、アドレスデコーダ１１１および１１２と、ワード（ＣＧ（Control Gate））ドライバ１１３および１１４とを含む。
【００１６】
制御部１１０は、特殊領域選択信号が活性化されたときに特殊領域１０１−１を選択するようにアドレスデコーダ１１１および１１２を制御し、通常領域選択信号が活性化されたときに通常領域１０１−２を選択するようにアドレスデコーダ１１１および１１２を制御する。
【００１７】
アドレスデコーダ１１１は、制御部１１０から特殊領域１０１−１の選択指示を受けると、アドレスバスのアドレスをデコードし、デコード結果をワードドライバ１１３に出力する。
【００１８】
ワードドライバ１１３は、アドレスデコーダ１１１からのデコード結果を受け、選択されたワード線を活性化して特殊領域１０１−１のメモリセルに出力する。これによって、特殊領域１０１−１の所定領域に対するアクセスが行なわれる。
【００１９】
アドレスデコーダ１１２は、制御部１１０から通常領域１０１−２の選択指示を受けると、アドレスバスのアドレスをデコードし、デコード結果をワードドライバ１１４に出力する。
【００２０】
ワードドライバ１１４は、アドレスデコーダ１１２からのデコード結果を受け、選択されたワード線を活性化して通常領域１０１−２のメモリセルに出力する。これによって、通常領域１０１−２の所定領域に対するアクセスが行なわれる。
【００２１】
（第１の実施の形態）
図３は、本発明の第１の実施の形態におけるマイコンの構成例を示すブロック図である。このマイコンは、ＣＰＵ（Central Processing Unit）１と、３枚のモジュールユニット２とを含む。
【００２２】
ＣＰＵ１は、モジュールユニット２のそれぞれに対して領域制御選択信号を出力することにより、モジュールユニット２の領域を切り替える。すなわち、ＣＰＵ１は、左のモジュールユニット２に対して領域制御選択信号“１”を出力することにより、１ＭＢの容量のうち領域２−１をブートエリアなどの特殊領域として使用し、領域２−２をユーザエリア（通常領域）として使用する。
【００２３】
また、ＣＰＵ１は、真中のモジュールユニット２および右のモジュールユニット２に対して領域制御選択信号“０”を出力することにより、１ＭＢのすべてをユーザエリア（通常領域）として使用する。
【００２４】
図４は、本発明の第１の実施の形態におけるモジュールユニット２の内部構成を示す図である。なお、図４においては、フラッシュメモリ内の領域選択を行なう部分のみを抽出して示しており、それ以外の部分は一般的なフラッシュメモリの構成と同様である。
【００２５】
モジュールユニット２は、アドレスデコーダ２１および２２と、ワード（ＣＧ）ドライバ２３および２４と、ＡＮＤ回路２５および２６と、ＯＲ回路２７とを含む。
【００２６】
ＡＮＤ回路２５は、通常領域選択０信号が“１”であり、領域制御選択信号が“０”のときに“１”を出力する。このとき、ＡＮＤ回路２６は“０”を出力する。これにより、ＯＲ回路２７は、領域２−１を通常領域として選択するようにアドレスデコーダ２１に“１”を出力する。なお、通常領域選択０信号は、領域２−１を通常領域としてアクセスするときに“１”となる信号であり、アドレスの上位ビットのデコードなどによって生成される。
【００２７】
また、ＡＮＤ回路２６は、特殊領域選択信号が“１”であり、領域制御選択信号が“１”のときに“１”を出力する。このとき、ＡＮＤ回路２５は“０”を出力する。これにより、ＯＲ回路２７は、領域２−１を特殊領域として選択するようにアドレスデコーダ２１に“１”を出力する。
【００２８】
アドレスデコーダ２１は、ＯＲ回路２７から領域２−１の選択指示を受けると、アドレスバスのアドレスをデコードし、デコード結果をワードドライバ２３に出力する。
【００２９】
ワードドライバ２３は、アドレスデコーダ２１からのデコード結果を受け、選択されたワード線を活性化して領域２−１のメモリセルに出力する。これによって、領域２−１の所定領域に対するアクセスが行なわれる。
【００３０】
アドレスデコーダ２２は、通常領域選択１信号が“１”になると、アドレスバスのアドレスをデコードし、デコード結果をワードドライバ２４に出力する。なお、通常領域選択１信号は、通常領域２−２をアクセスするときに“１”となる信号であり、アドレスの上位ビットのデコードなどによって生成される。
【００３１】
ワードドライバ２４は、アドレスデコーダ２２からのデコード結果を受け、選択されたワード線を活性化して通常領域２−２のメモリセルに出力する。これによって、通常領域２−２の所定領域に対するアクセスが行なわれる。
【００３２】
以上説明したように、本実施の形態におけるマイコンによれば、領域制御選択信号により特殊領域を持ったモジュールユニットと、特殊領域を持たない通常領域だけのモジュールユニットとのいずれかに切り替えるようにしたので、特殊領域を持ったモジュールユニットを１つだけすることができ、チップ面積の削減を図ることが可能となった。
【００３３】
（第２の実施の形態）
本発明の第２の実施の形態においては、マイコンが複数のＣＰＵを含む構成を有しており、各モジュールユニットを複数のバンクに分けて各ＣＰＵに割り当てるものである。
【００３４】
図５は、本発明の第２の実施の形態におけるマイコンが３枚のモジュールユニットを含む構成とした場合の図である。なお、図３と同様に、各モジュールユニットにはＣＰＵからの領域制御選択信号が入力される。
【００３５】
ＣＰＵは、１枚目のモジュールユニット２に対して領域制御選択信号“１”を出力することにより、１ＭＢの容量のうち一部をブートエリアなどの特殊領域として使用し、残りの領域をユーザエリア（通常領域）として使用する。図５に示すように、ユーザエリアは、ＣＰＵ０からアクセスが可能なバンク０と、ＣＰＵ１からアクセスが可能なバンク１との２つの領域に分けられる。
【００３６】
また、ＣＰＵは、２枚目のモジュールユニット２に対して領域制御選択信号“０”を出力することにより、１ＭＢのすべてをユーザエリア（通常領域）として使用する。このとき、特殊領域に対応する領域がＣＰＵ０からアクセス可能なバンク０として割り当てられる。
【００３７】
また、ＣＰＵは、３枚目のモジュールユニット２に対して領域制御選択信号“０”を出力することにより、１ＭＢのすべてをユーザエリア（通常領域）として使用する。このとき、特殊領域に対応する領域がＣＰＵ１からアクセス可能なバンク１として割り当てられる。
【００３８】
なお、モジュールユニット２の内部構成は、図４に示すモジュールユニットの内部構成と比較して、通常領域のメモリセルが２つのバンクに分けられており、外部からのバンク選択信号によっていずれのバンクのメモリセルを活性化するかのみが異なっている。したがって、詳細な説明は行なわない。
【００３９】
図６は、本発明の第２の実施の形態におけるマイコンの構成例を示す図である。このマイコンは、ＣＰＵ０（１−０）およびＣＰＵ１（１−１）と、Ｎ枚のフラッシュメモリ（モジュールユニット）２と、アービタ３と、ＥＣＣ（Error Checking and Correcting）回路４−０および４−１と、ブリッジ６−０および６−１とを含む。
【００４０】
Ｎ枚のフラッシュメモリ２は、２つのバンク（バンク０、バンク１）に分割されており、バンク０はＣＰＵ０（１−０）からアクセス可能であり、バンク１はＣＰＵ１（１−１）からアクセス可能である。
【００４１】
ＣＰＵ０（１−０）はバス５−０に接続され、ＥＣＣ回路４−０およびアービタ３を介してフラッシュメモリ２のバンク０から命令をフェッチしたり、データを読み出したり、データを書き込んだりする。また、ＣＰＵ０（１−０）はバス５−０を介してブリッジ６−０に接続され、ＣＰＵ０バス７−０を介して図示しないの他のデバイスにアクセスすることが可能である。
【００４２】
ＣＰＵ１（１−１）はバス５−１に接続され、ＥＣＣ回路４−１およびアービタ３を介してフラッシュメモリ２のバンク１から命令をフェッチしたり、データを読み出したり、データを書き込んだりする。また、ＣＰＵ１（１−１）はバス５−１を介してブリッジ６−１に接続され、ＣＰＵ１バス７−１を介して図示しないの他のデバイスにアクセスすることが可能である。
【００４３】
アービタ３は、ＣＰＵ０（１−０）およびＣＰＵ１（１−１）からのアクセスを調停する。たとえば、ＣＰＵ０（１−０）およびＣＰＵ１（１−１）が１枚目のフラッシュメモリ２に同時にアクセスした場合、いずれかのアクセスを待たせる。
【００４４】
ＥＣＣ回路４−０は、ＣＰＵ０（１−０）がフラッシュメモリ２のバンク０から命令のフェッチ、またはデータの読み出しを行なうときに、エラーを検出して訂正処理を行なう。なお、ＣＰＵ０（１−０）がフラッシュメモリ２のバンク０にデータを書き込むときに、ＥＣＣ回路４−０によって訂正符号が計算され、フラッシュメモリ２のバンク０に書き込まれる。
【００４５】
同様に、ＥＣＣ回路４−１は、ＣＰＵ１（１−１）がフラッシュメモリ２のバンク１から命令のフェッチ、またはデータの読み出しを行なうときに、エラーを検出して訂正処理を行なう。なお、ＣＰＵ１（１−１）がフラッシュメモリ２のバンク１にデータを書き込むときに、ＥＣＣ回路４−１によって訂正符号が計算され、フラッシュメモリ２のバンク１に書き込まれる。
【００４６】
以上の説明は、ＣＰＵを２個搭載し、フラッシュメモリを２つのバンクに分割する場合についてであってが、ＣＰＵを３個以上搭載し、フラッシュメモリを３つ以上のバンクに分割するようにしてもよい。
【００４７】
以上説明したように、本実施の形態におけるマイコンによれば、複数のＣＰＵを搭載し、フラッシュメモリを複数のバンクに分割して各ＣＰＵに割り当てるようにしたので、第１の実施の形態において説明した効果に加えて、フラッシュメモリを有効に利用することができるマルチプロセッサシステムを提供することが可能となった。
【００４８】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００４９】
【図１】特殊領域が設けられたモジュールユニットを３枚搭載する場合のフラッシュモジュールの構成を示す図である。
【図２】図１に示すモジュールユニット１０１の内部構成を示す図である。
【図３】本発明の第１の実施の形態におけるマイコンの構成例を示すブロック図である。
【図４】本発明の第１の実施に形態におけるモジュールユニット２の内部構成を示す図である。
【図５】本発明の第２の実施の形態におけるマイコンが３枚のモジュールユニットを含む構成とした場合の図である。
【図６】本発明の第２の実施の形態におけるマイコンの構成例を示す図である。
【符号の説明】
【００５０】
１  ＣＰＵ、２，１０１  モジュールユニット（フラッシュメモリ）、３  アービタ、４−０，４−１  ＥＣＣ回路、５−０，５−１  バス、６−０，６−１  ブリッジ、７−０  ＣＰＵ０バス、７−１  ＣＰＵ１バス、２１，２２，１１１，１１２  アドレスデコーダ、２３，２４，１１３，１１４  ワード（ＣＧ）ドライバ、２５，２６  ＡＮＤ回路、２７  ＯＲ回路、１１０  制御部。
【図１】
2009140055.tif 000003
【図２】
2009140055.tif 000004
【図３】
2009140055.tif 000005
【図４】
2009140055.tif 000006
【図５】
2009140055.tif 000007
【図６】
2009140055.tif 000008