(57)【要約】【課題】データの処理時間を短縮する。【解決手段】半導体集積回路装置（１０）は、二重化領域（１６１）と非二重化領域（１６２）とを含むメモリセルアレイ（１６）を含み、上記二重化領域は、二重化対象領域（１６１Ａ）と、二重化データ領域（１６１Ｂ）とを含む。アクセス対象が上記二重化対象領域であるか上記非二重化領域であるかの判定を可能とするアドレスデコーダ（１１）を設ける。上記二重化対象領域に対応する上記二重化データ領域の物理アドレスを形成するアドレス変換回路（１２）を設ける。上記アドレスデコーダのデコード結果に基づいて、上記メモリセルアレイに結合されたデータバスにおけるデータ伝達路の切り替えを可能とするデータバス制御回路（１３）を設ける。二重化機能のオン・オフ切り替えをハードウェアで判別し、ソフトウェアでの機能切り替えを不要とすることでデータ処理時間の短縮化を図る。【選択図】図１
2008262648.tif 000002
【特許請求の範囲】
【請求項１】
データが二重化される二重化領域と、二重化されない非二重化領域とを含むメモリセルアレイを有し、
上記二重化領域は、二重化対象として外部から与えられたデータが書き込まれる二重化対象領域と、
上記二重化対象領域に隣接配置され、上記二重化対象として外部から与えられたデータを二重化するためのデータが書き込まれる二重化データ領域と、を含み、
上記メモリセルアレイへのランダムアクセスを可能とする半導体集積回路装置であって、
入力された論理アドレスをデコードすることで、アクセス対象が上記二重化対象領域であるか上記非二重化領域であるかの判定を可能とするアドレスデコーダと、
アクセス対象が上記二重化対象領域である場合に、上記アドレスデコーダのデコード結果に基づくアドレス変換処理により、上記二重化対象領域に対応する上記二重化データ領域の物理アドレスを形成するアドレス変換回路と、
上記アドレスデコーダのデコード結果に基づいて、上記メモリセルアレイに結合されたデータバスにおけるデータ伝達路の切り替えを可能とするデータバス制御回路と、を含むことを特徴とする半導体集積回路装置。
【請求項２】
上記アドレスデコーダに入力された論理アドレスに、二重化制御を行うか否かを指示する二重化指示ビットが含まれるとき、上記アドレスデコーダは、上記二重化指示ビットの論理を判定する機能を有し、上記アドレス変換回路及び上記データバス制御回路は、上記アドレスデコーダでの上記二重化指示ビットの論理判定結果に応じて動作制御される請求項１記載の半導体集積回路装置。
【請求項３】
上記半導体集積回路装置は、プログラム実行により制御信号を出力可能な中央処理装置を含み、
上記アドレスデコーダは、上記中央処理装置から伝達された制御信号により、上記二重化指示ビットの論理にかかわらず、二重化制御を行う状態と、二重化制御を行わない状態との切り替えを可能とするセレクタを含む請求項２記載の半導体集積回路装置。
【請求項４】
上記半導体集積回路装置は、プログラム実行により制御信号を出力可能な中央処理装置と、上記中央処理装置によって書き換え可能な判定用レジスタと、を含み、
上記判定用レジスタは、アドレスのビットのうち、どのビットを判定に用いるかを指定する比較ビット指定レジスタと、二重化機能をオン状態にするか、オフ状態にするかをアドレスで判定する際に、比較するアドレスを格納するためのアドレス比較用レジスタと、を含み、
上記アドレスデコーダは、上記アドレス比較用レジスタのデータの中で、上記比較ビット指定レジスタで指定されたビット番号のデータと、入力された論理アドレスとの比較を行う比較回路を含む請求項１記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置、さらにはそれに含まれるメモリセルアレイにおけるデータ二重化技術に関し、例えばＣＰＵシステムに適用して有効な技術に関する。
【背景技術】
【０００２】
メモリのエラーを検出する技術として、データ二重化技術が用いられてきた。二重化技術とは、異なる領域に同じデータを格納し、データ読み出しの際に両者の比較によってエラーの発生を検出する技術である。この技術はメモリモジュールのテストや故障検出だけでなく、ＣＰＵ（中央処理装置）システムの誤動作や外部アタックの検出にも適用することができる。
【０００３】
ＣＰＵシステムに二重化を適用した従来技術としては、２モジュールのメモリにデータを格納する技術（例えば特許文献１参照）、１モジュールのメモリに２回のアクセスで異なるアドレスにデータを格納する技術（例えば特許文献２参照）などがある。
【０００４】
ＣＰＵシステムにおけるメモリの二重化では、メモリの容量の増加量を抑えるために、メモリの全データではなく、一部の領域のデータのみを二重化の対象とする場合がある。この仕様では、エラー検出したい情報を優先的にその領域へ格納する。
【０００５】
【特許文献１】特開平０９−３２５９２０号公報
【特許文献２】特開２００１−２９０７１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本願発明者は、メモリモジュールの統合による回路面積と消費電流の削減のために、１モジュールのメモリに1アクセスでデータの二重化を行う方式を検討し、以下の課題を見出した。
【０００７】
１モジュールのメモリにおいて、1アクセスでデータの二重化を行う場合、ＣＰＵが制御可能なデータのビット幅の２倍のビット幅のインタフェースが必要とされる。データの二重化を行う場合、アドレスによって一本のワード線が選択され、同一ワード線上のメモリセルへの二重化アクセスが行われる。ここで、１モジュール内に二重化を行わない領域が含まれる場合には、メモリのモジュール形状が変則的となり、レイアウト形状として不適当となる。また、メモリへの書き込み及び読み出しを行う際、アクセスする領域が二重化対象領域か非対象領域かで二重化制御のオン・オフ切り替えのためのステップが必要になり、それによってデータの処理時間が増大する。
【０００８】
本発明の目的は、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合のデータ処理時間を短縮するための技術を提供することにある。
【０００９】
本発明の別の目的は、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合のレイアウト形状の適正化を図るための技術を提供ことにある。
【００１０】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１２】
すなわち、半導体集積回路装置は、二重化領域と非二重化領域とを含むメモリセルアレイを含み、上記二重化領域は、二重化対象領域と、二重化データ領域とを含む。アクセス対象が上記二重化対象領域であるか上記非二重化領域であるかの判定を可能とするアドレスデコーダと、アクセス対象が上記二重化対象領域である場合に、上記アドレスデコーダのデコード結果に基づくアドレス変換処理により、上記二重化対象領域に対応する上記二重化データ領域の物理アドレスを形成するアドレス変換回路と、上記アドレスデコーダのデコード結果に基づいて、上記メモリセルアレイに結合されたデータバスにおけるデータ伝達路の切り替えを可能とするデータバス制御回路とを設ける。二重化機能のオン・オフ切り替えをハードウェアで判別することにより、ソフトウェアでの機能切り替えを不要として、データの処理時間を短縮化を図る。
【発明の効果】
【００１３】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１４】
すなわち、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合のデータ処理時間を短縮することができる。
【発明を実施するための最良の形態】
【００１５】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る半導体集積回路装置（１０，５００）は、データが二重化される二重化領域（１６１）と、二重化されない非二重化領域（１６２）とを含むメモリセルアレイ（１６）を含み、上記二重化領域は、二重化対象として外部から与えられたデータが書き込まれる二重化対象領域（１６１Ａ）と、上記二重化対象領域に隣接配置され、上記二重化対象として外部から与えられたデータを二重化するためのデータが書き込まれる二重化データ領域（１６１Ｂ）とを含む。そして、入力された論理アドレスをデコードすることで、アクセス対象が上記二重化対象領域であるか上記非二重化領域であるかの判定を可能とするアドレスデコーダ（１１，５０２）と、アクセス対象が上記二重化対象領域である場合に、上記アドレスデコーダのデコード結果に基づくアドレス変換処理により、上記二重化対象領域に対応する上記二重化データ領域の物理アドレスを形成するアドレス変換回路（１２，５０４）と、上記アドレスデコーダのデコード結果に基づいて、上記メモリセルアレイに結合されたデータバスにおけるデータ伝達路の切り替えを可能とするデータバス制御回路（１３，５０５）とを設ける。
【００１７】
上記の構成によれば、アドレスデコーダ（１１，５０２）は、入力された論理アドレスをデコードすることで、アクセス対象が上記二重化対象領域であるか上記非二重化領域であるかの判定を可能とする。つまり、二重化機能のオン・オフ切り替えをハードウェアで判別するようにしているため、ソフトウェアでの機能切り替えが不要となる。このため、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合でもアドレス毎に二重化機能切り替えを行う必要がなくなり、データの処理時間を短縮することができる。これにより、二重化領域と非二重化領域が混載した１モジュールのメモリをＣＰＵシステムに適用可能となる。
【００１８】
〔２〕上記アドレスデコーダ（５０２）に入力された論理アドレスに、二重化制御を行うか否かを指示する二重化指示ビットが含まれるとき、上記アドレスデコーダは、上記二重化指示ビットの論理を判定する機能を有し、上記アドレス変換回路及び上記データバス制御回路は、上記アドレスデコーダでの上記二重化指示ビットの論理判定結果に応じて動作制御される。
【００１９】
〔３〕上記半導体集積回路装置に、プログラム実行により制御信号を出力可能な中央処理装置（５０１）を設けることができる。その場合において、上記アドレスデコーダ（５０２）は、上記中央処理装置から伝達された制御信号により、上記二重化指示ビットの論理にかかわらず、二重化制御を行う状態と、二重化制御を行わない状態との切り替えを可能とするセレクタ（１２２）を含んで構成することができる。
【００２０】
〔４〕上記半導体集積回路装置に、プログラム実行により制御信号を出力可能な中央処理装置（５０１）と、上記中央処理装置によって書き換え可能な判定用レジスタ（１７２）とを設けることができる。上記判定用レジスタは、アドレスのビットのうち、どのビットを判定に用いるかを指定する比較ビット指定レジスタ（１７２Ａ）と、二重化機能をオン状態にするか、オフ状態にするかをアドレスで判定する際に、比較するアドレスを格納するためのアドレス比較用レジスタ（１７２Ｂ）とを含む。このとき上記アドレスデコーダは、上記アドレス比較用レジスタのデータの中で、上記比較ビット指定レジスタで指定されたビット番号のデータと、入力された論理アドレスとの比較を行う比較回路（５０８）を含む。
【００２１】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２２】
図１には、本発明にかかる半導体集積回路装置の一例とされる半導体メモリが示される。図１に示される半導体メモリ１０は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２３】
上記半導体メモリ１０は、１モジュールによって形成され、アドレスデコーダ１１、アドレス変換回路１２、データバス制御回路１３、Ｘデコーダ１４、Ｙデコーダ１７、及びメモリセルアレイ１６を含む。
【００２４】
メモリセルアレイ１６は、複数のメモリセルがアレイ状に配列されて成り、二重化領域１６１と非二重化領域１６２とに分けられる。上記二重化領域１６１は、二重化対象領域１６１Ａと、二重化データ領域１６１Ｂとに分けられる。図示されないＣＰＵ（中央処理装置）システムから与えられるアドレス信号がアドレスデコーダでデコードされる。このデコード出力に基づいて、アドレス変換回路１２でのアドレス変換処理、データバス制御回路１３でのデータバス制御が行われる。Ｘデコーダ１４によりローアドレスが形成され、このローアドレスにより、メモリセルアレイ１６のワード線選択が行われる。Ｙデコーダ１７によりカラムアドレスが形成され、このカラムアドレスにより、メモリセルアレイ１６のデータ線の選択が行われる。
【００２５】
図２には、半導体メモリ１０へのアクセス時のフローチャートが示される。
【００２６】
二重化対象領域１６１Ａと非二重化領域１６２とは論理アドレスで分離され、アドレスデコードの判定結果がアドレス変換回路１２とデータバス制御回路１３とに出力されることで、二重化制御のオン・オフ切り替えは、以下のようにハードウェア側で自動制御可能とされる。
【００２７】
先ず、アドレスの上位ビットが参照され（Ｓ１１）、二重化対象のアドレスであるか否かが判別される（Ｓ１２）。二重化対象のアドレスである場合には、アドレスの変換とデータバスの並び替えが行われる（Ｓ１３）。そして二重化対象領域１６１Ａへのアクセスが行われた場合、アドレスの変換が行われる（Ｓ１３）。
【００２８】
上記アドレス変換は次のように行われる。
【００２９】
論理アドレスでは各領域は連続したアドレス空間となるが、二重化対象領域１６１Ａ及び二重化データ領域１６１Ｂの物理アドレスは、隣り合う領域が二重化対象領域１６１Ａと二重化データ領域１６１Ｂの組となるため、アドレス領域は交互に二重化対象領域と二重化データ領域が並ぶ。偶数アドレスに対してアクセスを行えば、「１」が加算された奇数アドレスのデータと合わせた２領域のデータへのアクセスが行われる。通常、メモリのアドレスはシステムから与えられたアドレスの下位ビットがそのまま使用される。しかし本例では、図３に示されるように、奇数アドレスが二重化データ領域として使用されるため、物理アドレスが偶数となるようにアドレス変換回路１２によってアドレス変換される。
【００３０】
二重化を行わない場合には、アドレス変換回路１２でのアドレスの変換は行わず、入力されたアドレスがそのまま使用される。従って、非二重化領域１６２は、入力されたアドレスが偶数か奇数かによって、同一ワード線上の複数のメモリセルが使い分けられることができる。このため、１本のワード線に結合されるメモリセルの数は、二重化領域１６１と非二重化領域１６２とで互いに等しくすることができる。
【００３１】
図４にはデータバス制御回路１３の構成例が示される。
【００３２】
データバス制御回路１３は、図４に示されるように、データ書込み時に使用される選択回路４１と、データ読み出し時に使用される比較回路４２を含む。選択回路４１は、二重化オン・オフ切り替え信号によって、ＣＰＵからのデータを選択的にメモリセルアレイ１６に伝達する第１モードと、グランドラインのレベル（ローレベル）を選択的にメモリセルアレイに伝達する第２モードとを含む。ＣＰＵからのデータはメモリセルアレイ１６の二重化対象領域１６１Ａに書き込まれ、また、上記比較回路４２を介してメモリセルアレイ１６の二重化データ領域１６１Ｂに書き込まれる。これによりデータが二重化される。
【００３３】
データの読み出し時には、メモリセルアレイ１６の二重化対象領域１６１Ａからの読み出しデータと、メモリセルアレイ１６の二重化データ領域１６１Ｂからの読み出しデータとが比較回路４２で比較されることにより、エラー検出が行われる。このデータ比較において、両データが異なる場合には比較回路４２によりエラー検出信号がアサートされる。これにより、ＣＰＵでは、エラー検出信号がアサートされた場合のデータを処理対象から外すことにより、データ処理の適正化を図ることができる。
【００３４】
ここで、上記半導体メモリ１０の比較対象とされる構成について説明する。
【００３５】
図２３に示されるように、１モジュールによって構成されるメモリにおいて１アクセスで二重化を行う場合、二重化対象領域と二重化データ領域とが形成されるため、ＣＰＵによって制御可能なデータのビット幅の２倍のビット幅を有するインタフェースが必要となる。そしてデータの二重化を行う場合、アドレスによってメモリセルアレイ１６における１本のワード線が選択され、同一ワード線上のメモリセルに対して、二重化アクセスが行われる。このため、図２４に示されるように、データの二重化を行う領域とは別に二重化を行わない領域（非二重化領域）が形成される場合には、メモリセルアレイ１６の形状が変則的になってしまうため、レイアウトし難くなる。
【００３６】
また、メモリへの書き込み及び読み出しを行う際、アクセスする領域が二重化対象領域か非対象領域かで二重化制御のオン・オフ切り替えを行う必要がある。このため、データのアクセスの前に二重化機能のオン（有効）／オフ（無効）をソフトウェアで切り替えるステップが必要になり、データの処理時間が増大するおそれがある。
【００３７】
これに対して、図１に示される構成によれば、二重化対象領域１６１Ａと非二重化領域１６２とが論理アドレスで分離され、アドレスデコードの判定結果がアドレス変換回路１２とデータバス制御回路１３とに出力されることで、二重化制御のオン・オフ切り替えがハードウェア側で自動制御可能とされるため、ソフトウェアでの機能切り替えが不要となる。このため、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合でもアドレス毎に二重化機能切り替えを行う必要がなくなり、データの処理時間を短縮することができる。
【００３８】
また、二重化を行わない場合には、図１に示されるアドレス変換回路１２でのアドレスの変換は行わず、入力されたアドレスがそのまま使用される。従って、非二重化領域１６２は、入力されたアドレスが偶数か奇数かによって、同一ワード線上の複数のメモリセルが使い分けられることができる。このため、１本のワード線に結合されるメモリセルの数は、二重化領域１６１と非二重化領域１６２とで互いに等しくすることができるので、図１に示されるメモリセルアレイ１６の形状は、１モジュール内に二重化を行わない領域（１６２）が含まれるにもかかわらず、矩形状とすることができ、図２４に示されるような変則的形状にならないで済む。
【００３９】
上記の例によれば、以下の作用効果を得ることができる。
【００４０】
（１）二重化機能のオン・オフ切り替えをハードウェアで自動判別するため、ソフトウェアでの機能切り替えが不要となる。このため、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合でもアドレス毎に二重化機能切り替えを行う必要がなくなり、データの処理時間を短縮することができる。この結果、二重化領域と非二重化領域が混載した１モジュールのメモリをＣＰＵシステムに適用可能となる。
【００４１】
（２）また、メモリセルやＸデコーダ１４、Ｙデコーダ１７を変更することなく、二重化領域１６１、非ニ重化領域１６２を混載することができるため、二重化機能を有しないメモリモジュールをシステムに流用し、二重化機能を追加することが容易となる。
【００４２】
（３）二重化を行わない場合には、アドレス変換回路１２でのアドレスの変換は行わず、入力されたアドレスがそのまま使用される。従って、非二重化領域１６２は、入力されたアドレスが偶数か奇数かによって、同一ワード線上の複数のメモリセルが使い分けられることができるので、１本のワード線に結合されるメモリセルの数は、二重化領域１６１と非二重化領域１６２とで互いに等しくすることができる。これによりメモリセルアレイ１６の形状は、１モジュール内に二重化を行わない領域（１６２）が含まれるにもかかわらず、矩形状とすることができるので、チップレイアウトの容易化を図ることができる。
【００４３】
図５には、本発明にかかる半導体集積回路装置の別の例であるＣＰＵシステムが示される。
【００４４】
図５に示されるＣＰＵシステム５００は、ＣＰＵ５０１、アドレスデコーダ５０２、比較回路５０３、アドレス変換器５０４、データバス制御回路５０５、及びメモリ５０６を含み、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００４５】
ＣＰＵ５０１は、設定されたプログラムを実行することで、メモリアクセスのためのアドレス信号や各種制御信号を出力する。この演算処理で必要とされるデータなどは、必要に応じてメモリ５０６から読み出すことができる。また、ＣＰＵ５０１での演算処理の結果は、必要に応じてメモリ５０６に書き込むことができる。アドレスデコーダ５０２は、上記ＣＰＵ５０１から与えられた物理アドレス信号をデコードする機能を有する。このアドレスデコード結果は、アドレス変換回路５０４、データバス制御回路５０５、及び比較回路５０３に伝達される。アドレス変換回路５０４は、図１に示されるアドレス変換回路１２と同様に、アドレスデコーダ５０２でのアドレスデコード結果をメモリ５０６の物理アドレスに変換する機能を有する。データバス制御回路５０５は、図１に示されるデータバス制御回路１３と同様に、データ転送経路の切り替え制御機能を有する。
【００４６】
メモリ５０６は、図１に示されるメモリセルアレイ１６に相当し、このメモリセルアレイ１６と同様に、１モジュールによって構成される。メモり５０６は、図１に示されるメモリセルアレイ１６と同様に、二重化領域１６１と、非二重化領域１６２とを含み、二重化領域１６１は、二重化対象領域１６１Ａと、二重化データ領域１６１Ｂに分けられる。尚、図５においては、図１に示されるＸデコーダ１４及びＹデコーダ１７は省略されている。
【００４７】
比較回路５０３は、メモリ５０６の二重化対象領域（図１の１６１Ａに相当）からの読み出しデータと、メモリ５０６の二重化データ領域（図１の１６１Ｂ）からの読み出しデータとの比較を行う機能を有する。この比較結果はＣＰＵ５０１に伝達される。
【００４８】
図６には、メモリのアドレスマップの例が示される。
【００４９】
ＣＰＵ５０１によって管理されるアドレス０〜１ＦＦまでが二重化対象領域１６１Ａに割り当てられ、ＣＰＵ５０１によって管理されるアドレス２００〜３ＦＦまでが二重化データ領域１６１Ｂに割り当てられる。また、図７に示されるように、アドレス内の所定ビットを見ることで領域判別を行うことができる。本例では、ビット番号９のビット（以下「ビット９」と表記）の論理値によって、領域の判別が可能とされる。すなわち、「ビット９」が論理値“０”の場合に二重化領域１６１と判定され、「ビット９」が論理値“１”の場合に非二重化領域１６２と判定される。このビット９が本発明における二重化指示ビットに対応する。
【００５０】
ここでアドレスデコーダ５０２は、上記ビット９の状態を判定し、その判定結果を二重化オン・オフ判定信号として出力する。
【００５１】
図８には、論理アドレスと物理アドレスとの関係が示される。
【００５２】
ＣＰＵ５０１から与えられた論理アドレスは、図８に示されるように、メモリ５０６内の物理アドレスに変換される。このアドレス変換はアドレス変換回路５０４によって行われる。
【００５３】
論理アドレスがＨ’０００〜Ｈ’１ＦＦまでは、二重化制御が行われるため、データが二重化され、二重化されたデータを格納するためにアドレスの変換が行われる。しかし、論理アドレスがＨ’２００〜Ｈ’３ＦＦまでは、二重化制御が行われないため、データが二重化されず、アドレスの変換も行われない。
【００５４】
論理アドレスは連続したアドレス空間となるが、物理アドレスは隣り合うアドレスが二重化対象領域と二重化データ領域の組となる。通常、メモリのアドレスはシステムから与えられたアドレスの下位ビットがそのまま使用される。しかし、本例では、奇数アドレスが二重化データ領域として使用されるため、アドレス変換回路１２でのアドレス変換が必要となる。本例では、論理アドレスと物理アドレスの変換規則を４の倍数毎に決めることで、アドレス変換回路１２の簡略化を図った。
【００５５】
図９には、図８に対応するアドレス変換例が示される。
【００５６】
図９のアドレス変換処理の流れは以下の通りである。
【００５７】
論理アドレスが４の倍数の時、アドレス変換されない（９０１）。論理アドレスが４の倍数＋１の時、論理アドレス＋Ｈ’１に変換される（９０２）。論理アドレスが４の倍数＋２の時、論理アドレス＋Ｈ’４００に変換される（９０３）。論理アドレスが４の倍数＋３の時、論理アドレス＋Ｈ’４０１に変換される（９０４）。
【００５８】
奇数アドレスが二重化データ領域１６１Ｂとなるため、本来奇数アドレスが指定された場合、＋１のインクリメントにより偶数アドレスに変換される。これによるアドレスの重複を避けるため、４の倍数＋２，＋３，の論理アドレスには、Ｈ’４００以降の物理アドレスが割り当てられる。
【００５９】
図１０には、アドレスデコーダ５０２とアドレス変換回路５０４の構成例が示される。
【００６０】
アドレスデコーダ５０２は、ビット９の論理を変転するインバータ１０６によって構成される。アドレス変換回路５０４は、２入力アンドゲート１０１，１０３、及びセレクタ１０２，１０４，１０５を含む。
【００６１】
図７に示されるアドレスの例では、二重化領域か否かの条件はアドレスの９ビット目となる。アドレスデコーダ５０２に、このビット９を与え、デコード結果をアドレス変換回路５０４に出力する。アドレス変換回路５０４では、上記判定結果が二重化機能のオン・オフ切り替え信号とされ、アドレスビットの状態と切り替え信号が使用されることで、図９に示される変換規則に沿うアドレス変換が行われる。すなわち、アンドゲート１０１の出力が、論理値“１”の場合、セレクタ１０２により、論理値“１”が選択的に出力され、アンドゲート１０１の出力が、論理値“０”の場合、ビット１０が選択的に出力される。アンドゲート１０３の出力が論理値“１”の場合、セレクタ１０４により、ビット０が選択的に出力され、アンドゲート１０３の出力が論理値“０”の場合、ビット１が選択的に出力される。また、アドレスでコーダ５０２の出力が論理値“１”の場合、セレクタ１０５により、論理値“０”が選択的に出力され、アドレスでコーダ５０２の出力が論理値“０”の場合、セレクタ１０５により、ビット０が選択的に出力される。
【００６２】
上記例によれば、以下の作用効果を得ることができる。
【００６３】
（１）二重化機能のオン・オフ切り替えをハードウェアで自動判別するため、ソフトウェアでの機能切り替えが不要となる。この結果、二重化対象領域と二重化非対象領域が１モジュール内に混載する場合でもアドレス毎に二重化機能切り替えを行う必要がなくなり、データの処理時間を短縮することができる。
【００６４】
（２）上記二重化制御が行われることにより、ＣＰＵシステム５００において１モジュール内での二重化機能を実装することが可能となる。
【００６５】
図１１には、上記ＣＰＵシステム５００の別の構成例が示される。
【００６６】
図１１に示されるＣＰＵシステム５００が図５に示されるのと大きく相違するのは、ＣＰＵ５０１からアドレスデコーダ５０２に対して制御信号が伝達され、この制御信号によって、アドレスデコーダ５０２の出力状態が制御されるようになっている点である。
【００６７】
図１２には、図１１におけるアドレスデコーダ５０２の構成例が示される。
【００６８】
上記アドレスデコーダ５０２は、図１２に示されるように、ＣＰＵ５０１から伝達されたアドレス信号をデコードするデコード部１２１と、上記ＣＰＵ５０１からの制御信号によって選択動作が制御されるセレクタ１２２とを含む。かかる構成において、セレクタ１２２は、上記ＣＰＵ５０１からの制御信号によって、論理値“１”を出力する第１出力状態と、論理値“０”を出力する第２出力状態と、デコード部１２１でのデコード結果をそのまま出力する第３出力状態との切り替えを可能とする。論理値“１”を出力する第１出力状態ではデータの二重化が行われ、論理値“０”を出力する第２出力状態ではデータの二重化が行われない。
【００６９】
図１３には、図１１におけるアドレス変換回路５０４の構成例が示される。
【００７０】
上記アドレス変換回路５０４は、図１１に示されるように、２入力アンドゲート１５１，１５６、インバータ１５２，１５４、セレクタ１５３，１５５，１５７，１５８を含む。アンドゲート１５１の出力信号が論理値“１”の場合、セレクタ１５３によりビット１０の反転値が選択的にメモリ５０６に伝達される。アンドゲート１５１の出力信号が論理値“０”の場合、ビット１０が選択的にメモリ５０６に伝達される。また、アンドゲート１５１の出力信号が論理値“１”の場合、セレクタ１５５によりビット９の反転値が選択的にメモリ５０６に伝達され、アンドゲート１５１の出力信号が論理値“０”の場合、セレクタ１５５によりビット９が選択的にメモリ５０６に伝達される。そして、アンドゲート１５６の出力信号の論理値が論理値“１”の場合、セレクタ１５７によりビット０が選択的にメモリ５０６に伝達される。アンドゲート１５６の出力信号の論理値が論理値“０”の場合、セレクタ１５７によりビット１が選択的にメモリ５０６に伝達される。さらにアドレスデコーダ５０２の出力信号が論理値“１”の場合、セレクタ１５８により論理値“０”が選択的にメモリ５０６に伝達される。アドレスデコーダ５０２の出力信号が論理値“０”の場合、セレクタ１５８によりビット０が選択的にメモリ５０６に伝達される。
【００７１】
図１４には、データの二重化が行われる場合の論理アドレスから物理アドレスへの変換例が示される。
【００７２】
上記ＣＰＵ５０１からの制御信号によってセレクタ１２２から論理値“１”が出力される場合、二重化機能はオン状態とされ、アドレス変換回路５０４によるアドレス変換と、データバス制御回路５０５による二重化制御が行われる。尚、このとき、非二重化領域１６２がアクセスされた場合でも、二重化領域１６１へのアクセス時と同様に、アドレス変換回路５０４によるアドレス変換と、データバス制御回路５０５による二重化制御が行われる。
【００７３】
図１５には、データの二重化が行われない場合の論理アドレスから物理アドレスへの変換例が示される。
【００７４】
上記ＣＰＵ５０１からの制御信号によってセレクタ１２２から論理値“０”が出力される場合、二重化機能はオフ状態とされ、アドレス変換回路５０４によるアドレス変換や、データバス制御回路５０５による二重化制御は行われない。このとき、メモリ５０６は、アドレスマップの二重化の領域指定にかかわらず、全て非二重化領域とみなすことができ、二重化機能を持たないメモリとして使用することができる。
【００７５】
上記例によれば、以下の作用効果を得ることができる。
【００７６】
（１）二重化機能のオン・オフ切り替えをハードウェアで自動判別するため、ソフトウェアでの機能切り替えが不要となるなど、図５に示される場合と同様の作用効果を得ることができる。
【００７７】
（２）ＣＰＵ５０１からの制御により二重化機能を常にオン状態とすることができる。メモリ５０６のテストを行う際、メモリ５０６の全領域に対して二重化することにより、テスト時のアクセス回数が削減できるため、テスト時間の短縮によりコスト削減に貢献できる。
【００７８】
（３）メモリのテストにはワード線を順番に選択してエラーの有無を確認するテスト項目があり、アドレスの変換を行わず普通のメモリとしてアクセスを行う必要がある場合がある。この時、二重化機能をオフ状態に設定すると、二重化機能を持たないメモリと同じ制御が行えるため、アドレスの変換を行わずにメモリの全ての領域をテストすることができる。
【００７９】
（４）以下の手順で一方のデータを書き換え、意図的にエラーを発生させることができる。
【００８０】
すなわち、二重化機能が有効な状態でデータを書き込み、二重化機能をオフ状態とし、二重化した一方のデータのみを書き換える二重化機能を有効にし、データの読み込みを行うことができる。
【００８１】
図１６には、上記ＣＰＵシステム５００の別の構成例が示される。
【００８２】
図１６に示されるＣＰＵシステム５００が図５に示されるのと大きく相違するのは、ＣＰＵ５０１と、アドレスデコーダ５０２との間に判定用レジスタ１７２が設けられ、アドレスデコーダ５０２における二重化のオン・オフ判定が、上記判定用レジスタ１７２の設定情報に基づいて行われる点である。上記判定用レジスタ１７２は、図１７に示されるように、比較ビット指定レジスタ１７２Ａと、アドレス比較用レジスタ１７２Ｂとを含む。この比較ビット指定レジスタ１７２Ａと、アドレス比較用レジスタ１７２Ｂとは、上記ＣＰＵ５０１によって書き換え可能とされる。比較ビット指定レジスタ１７２Ａは、アドレスのビットのうち、どのビットを判定に用いるかを指定するレジスタである。例えばビット１０及びビット９をアドレスの比較に使用する場合、比較ビット指定レジスタ１７２Ａのデータは、図１７に示されるように、ビット１０及びビット９が論理値“１”に設定される。アドレス比較用レジスタ１７２Ｂは、二重化機能をオン状態にするか、オフ状態にするかをアドレスで判定する際に、比較するアドレスを格納するためのレジスタである。比較回路での判定の際、アドレス比較用レジスタのデータの中で、比較ビット指定レジスタで指定されたビット番号のデータのみが判定に使用される。
【００８３】
本例においてアドレスデコーダ５０２は、図１８に示されるようなアドレス比較回路５０８を内蔵し、このアドレス比較回路５０８により、上記アドレス比較用レジスタ１７２Ｂの情報と、メモリアクセスの際にＣＰＵ５０１から伝達された論理アドレスとの比較が行われるようになっている。この比較結果に基づいてオン・オフ判定信号が形成される。上記ＣＰＵ５０１から伝達された論理アドレスと比較する条件となる値がアドレス比較用１７２Ｂに格納されることにより、ＣＰＵ５０１が動作中に、二重化対象領域と二重化非対象領域の領域を動的に変えることができる。これにより、アドレスマップを動的に制御し、二重化を行う領域と、それを行わない領域とを任意に設定することができる。
【００８４】
上記の構成において、アドレス比較用レジスタの値を変化させた時のアドレス領域と、アドレス変換の例を以下に示す。
【００８５】
図１９に示される例では、比較ビット指定レジスタ１７２Ａにより、ビット１０，９が論理値“１”とされており、アドレス比較用レジスタ１７２Ｂのビット１０が論理値“０”とされ、アドレス比較用レジスタ１７２Ｂのビット９が論理値“１”とされる。このため、アドレスデコーダ５０２でのアドレス比較においては、ビット１０が論理値“０”でビット９が論理値“１”となる論理アドレスによって特定される領域、すなわち、図２０に示されるようにアドレスＨ’２００〜Ｈ’３ＦＦまでが二重化対象領域となる。一方、アドレスＨ’０００〜Ｈ’１ＦＦまでは非二重化領域とされる。二重化対象領域に対するアクセスの場合、アドレス変換回路５０４により論理アドレスから物理アドレスへの変換が行われるが、非二重化領域に対するアクセスの場合、論理アドレスへの変換が行われることなく、そのまま物理アドレスとしてメモリ５０６に入力される。
【００８６】
図２１に示される例では、比較ビット指定レジスタ１７２Ａにより、ビット１０，９，８が論理値“１”とされており、アドレス比較用レジスタ１７２Ｂのビット１０が論理値“０”とされ、アドレス比較用レジスタ１７２Ｂのビット９，８が論理値“１”とされる。このため、アドレスデコーダ５０２でのアドレス比較においては、ビット１０が論理値“０”でビット９，８が論理値“１”となる論理アドレスによって特定される領域、すなわち、図２２に示されるようにアドレスＨ’３００〜Ｈ’３ＦＦまでが二重化対象領域となる。一方、アドレスＨ’０００〜Ｈ’２ＦＦまでは非二重化領域とされる。二重化対象領域に対するアクセスの場合、アドレス変換回路５０４により論理アドレスから物理アドレスへの変換が行われるが、非二重化領域に対するアクセスの場合、論理アドレスへの変換が行われることなく、そのまま物理アドレスとしてメモリ５０６に入力される。
【００８７】
上記例によれば、以下の作用効果を得ることができる。
【００８８】
（１）二重化機能のオン・オフ切り替えをハードウェアで自動判別するため、ソフトウェアでの機能切り替えが不要となるなど、図５に示される場合と同様の作用効果を得ることができる。
【００８９】
（２）アドレスデコーダでの二重化機能のオン・オフの判定基準を動的に制御できるため、メモリ５０６内の二重化対象領域と二重化非対象領域の容量の比率を、ＣＰＵ５０１の動作中に変更することが可能となる。これにより、二重化したいデータの容量に合わせて二重化対象領域の容量を調整し、二重化非対象領域の容量を最大限に確保することができる。また、必要となる二重化対象領域の容量がソフトウェアによって異なる場合、プログラムの実行時に容量を設定することでソフトウェア毎に容量を変えることができる。
【００９０】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００９１】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＣＰＵシステムに適用した場合について説明したが、本発明はそれに限定されるものではなく、メモリを内蔵するマイクロコンピュータにも適用することができる。
【図面の簡単な説明】
【００９２】
【図１】本発明にかかる半導体集積回路装置の一例である半導体メモリの構成例ブロック図である。
【図２】上記半導体メモリにおける主要動作のフローチャートである。
【図３】上記半導体メモリにおける主要動作の説明図である。
【図４】上記半導体メモリにおける主要部の構成例ブロック図である。
【図５】本発明にかかる半導体集積回路装置の一例であるＣＰＵシステムの構成例ブロック図である。
【図６】上記ＣＰＵシステムに含まれるメモリのアドレスマップの説明図である。
【図７】上記ＣＰＵシステムに含まれるメモリの領域判定の説明図である。
【図８】上記ＣＰＵシステムに含まれるメモリの論理アドレスと物理アドレスとの関係説明図である。
【図９】上記ＣＰＵシステムに含まれるメモリの論理アドレスから物理アドレスへの変換例の説明図である。
【図１０】上記ＣＰＵシステムに含まれるアドレスデコーダの構成例回路図である。
【図１１】本発明にかかる半導体集積回路装置の一例であるＣＰＵシステムの別の構成例ブロック図である。
【図１２】図１１に示されるＣＰＵシステムにおけるアドレスデコーダの構成例ブロック図である。
【図１３】図１１に示されるＣＰＵシステムにおけるアドレス変換回路の構成例回路図である。
【図１４】図１１に示されるＣＰＵシステムにおける論理アドレスから物理アドレスへの変換処理の説明図である。
【図１５】図１１に示されるＣＰＵシステムにおける論理アドレスから物理アドレスへの変換処理の説明図である。
【図１６】本発明にかかる半導体集積回路装置の一例であるＣＰＵシステムの別の構成例ブロック図である。
【図１７】図１６に示されるＣＰＵシステムに含まれる判定用レジスタの構成例説明図である。
【図１８】図１６に示されるＣＰＵシステムに含まれるアドレスデコーダでのアドレス比較の説明図である。
【図１９】上記判定用レジスタの設定例説明図である。
【図２０】図１９に示されるレジスタ設定例に対応するアドレス領域の状態説明図である。
【図２１】上記判定用レジスタの別の設定例説明図である。
【図２２】図２１に示されるレジスタ設定例に対応するアドレス領域の状態説明図である。
【図２３】上記半導体メモリの比較対象とされるメモリの構成例ブロック図である。
【図２４】上記半導体メモリの比較対象とされるメモリのレイアウト説明図である。
【符号の説明】
【００９３】
１０  半導体メモリ
１１  アドレスデコーダ
１２  アドレス変換回路
１３  データバス制御回路
１４  Ｘデコーダ
１６  メモリセルアレイ
１７  Ｙデコーダ
１６１  二重化領域
１６２  非二重化領域
５００  ＣＰＵシステム
５０１  ＣＰＵ
５０２  アドレスデコーダ
５０３  比較回路
５０４  アドレス変換回路
５０５  データバス制御回路
５０６  メモリ
５０８  アドレス比較回路
【図１】
2008262648.tif 000003
【図２】
2008262648.tif 000004
【図３】
2008262648.tif 000005
【図４】
2008262648.tif 000006
【図５】
2008262648.tif 000007
【図６】
2008262648.tif 000008
【図７】
2008262648.tif 000009
【図８】
2008262648.tif 000010
【図９】
2008262648.tif 000011
【図１０】
2008262648.tif 000012
【図１１】
2008262648.tif 000013
【図１２】
2008262648.tif 000014
【図１３】
2008262648.tif 000015
【図１４】
2008262648.tif 000016
【図１５】
2008262648.tif 000017
【図１６】
2008262648.tif 000018
【図１７】
2008262648.tif 000019
【図１８】
2008262648.tif 000020
【図１９】
2008262648.tif 000021
【図２０】
2008262648.tif 000022
【図２１】
2008262648.tif 000023
【図２２】
2008262648.tif 000024
【図２３】
2008262648.tif 000025
【図２４】
2008262648.tif 000026