(57)【特許請求の範囲】
【請求項１】
１列毎にビット割付けが行われたメモリセルアレイと、上記メモリセルアレイにおける複数のビット分の読み出しデータとそれに対応するパリティビットデータとの論理演算により、上記メモリセルアレイからの読み出しデータのパリティチェックを可能とするパリティチェック部と、
上記メモリセルアレイから読み出された複数ビット構成の第１データ群と、その第１データ群の比較対照とされる第２データ群とをビット単位で比較するための比較部と、を含む半導体記憶装置において、
上記パリティチェック部は、上記メモリセルアレイから、ビット割付け方向に１ビットおき又は複数ビットおきにデータを取り込んでパリティチェックのための論理演算を行うパリティ演算回路を含んで成り、
上記比較部は、上記第１データ群及び上記第２データ群のビット構成に対応して配置され、それぞれ上記第１データ群と、上記第２データ群とをビット単位で比較するための複数のビット比較回路と、
上記複数のビット比較回路からの比較結果のうちの任意の１ビットの論理状態に基づいて活性化され、且つ、活性化された状態で、上記複数のビット比較回路のうちの上記任意の１ビットを除く全てのビットの論理和を得るためのオア回路と、を含んで成ることを特徴とする半導体記憶装置。
【請求項２】
仮想アドレスの情報を検索情報とするキャッシュメモリと、仮想アドレスを物理アドレスに変換するための変換対を格納するアドレス変換バッファと、上記キャッシュメモリとアドレス変換バッファとを制御するコントロールユニットとを含んで１チップ化されたマイクロコンピュータにおいて、
上記キャッシュメモリとして、請求項１記載の半導体記憶装置を適用して成ることを特徴とするマイクロコンピュータ。
【請求項３】
請求項２記載のマイクロコンピュータと、バスを介して上記マイクロコンピュータによってアクセスされるメインメモリと、を含んで成ることを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体記憶装置のパリティチェック技術、さらにはパリティチェックにおいて複数ビット同時エラーを検出可能とするための技術に関し、例えばシングルチップマイクロコンピュータにキャッシュメモリとして内蔵される半導体記憶装置に適用して有効な技術に関する。
【０００２】
【従来の技術】
マイクロコンピュータなどのデータ処理装置の処理性能を向上させるために、キャッシュメモリを内蔵する手法が従来から適用されている。また、ユーザが実メモリを意識せずに、オペレーティングシステムがメモリ管理を行う分野では、データ処理装置が、アドレス変換機構をサポートする必要がある。アドレス変換機構とは、仮想記憶を実現するために仮想アドレスを物理アドレスに変換する機構である。
【０００３】
さらに、アドレス変換機構を高速に実行するために、仮想アドレスと物理アドレスの変換対を保持するアドレス変換バッファ（Translation lookaside buffer、以下単にＴＬＢとも記す）を、マイクロコンピュータに内蔵する技術も従来から採用されている。
マイクロコンピュータに内蔵されるようなキャッシュメモリでは、仮想アドレスによってアクセスされ、当該キャッシュメモリのタグ部から読み出されたタグ情報を、物理アドレスの上位ビットと比較することで、キャッシュミス・ヒットの判定を行うようにしているため、シノニム(synonym)の問題がある。つまり、本来的に実メモリであるメインメモリのブロックのコピーを保持しているにもかかわらず、それを仮想アドレスでアクセスしようとすることによってシノニムの問題を生ずる。そこで、キャッシュメモリ中に同一物理アドレスのデータが複数存在する事態を防止するため、キャッシュメモリのタグ部と基本的に同一内容の情報を記憶するシノニムチェック部が設けられる。同一物理アドレスのデータが存在するか否かの判別はこのシノニムチェック部において行われ、その判別結果に基づいて、キャッシュメモリのライト時の動作が制御される。つまり、キャッシュミス時のライト動作において、同一物理アドレスのデータが既に存在する場合には、キャッシュメモリ中に同一物理アドレスのデータが複数存在する事態を防止するため、既にデータ部に格納されているデータのうち、当該物理アドレスについてのデータが無効とされ、代わりにメインメモリから読み出された新たなデータによってキャッシュメモリが更新される。
【０００４】
上記シノニムチェック部には、物理アドレスに基づいてメモリセルアレイから読み出された多ビットデータを比較データと比較するための比較回路が設けられている。比較データは物理アドレスの上位複数ビットとされる。メモリセルアレイから読み出された多ビットデータと比較データとの比較はビット単位に同時に行われ、そしてその多ビット比較結果のオア論理が後段のオア回路でとられることにより、全ビット一致か否かが検出される。メモリセルアレイから読み出された多ビットデータと比較データとの比較において、全てのビットが一致するれば、それは、キャッシュメモリ中に同一物理アドレスのデータが複数存在することを意味するから、既にデータ部に格納されているデータのうち、当該物理アドレスについてのデータが無効とされ、代わりにメインメモリから読み出された新たなデータが取込まれる。
【０００５】
尚、キャッシュメモリについて記載された文献の例としては、１９９５年１１月５日に朝倉書店から発行された「計算機アーキテクチャと構成方式（第２７３頁から第３０８頁）がある。
【０００６】
【発明が解決しようとする課題】
ところで、メモリセルアレイは行方向及び列方向に複数のメモリセルが配列されおり、メモリセルアレイのワード構成は、行方向のへメモリセル配列数と、列方向へのメモリセル配列数との乗算形式で示される。例えば３２ワードが１×３２で構成されるものとすると、それは行方向へのメモリセル配列数が１個で、列方向へのメモリセル配列数が３２個で構成されることを意味する。
【０００７】
シノニムなどに適用されるような半導体記憶装置においては、α（アルファ）線やノイズに対するデータの信頼性を高めるため、パリティチェックが行われる。多ビット同時読み出しが可能とされる半導体記憶装置において、パリティチェックは、同時読み出しにかかる全ビット分のデータを一つのパリティ演算回路に取り込み、それらの排他的論理和演算により、α線やノイズ等によってエラーを生じているか否かを判別するようにしている。
【０００８】
しかしながら、メモリセルアレイにおいて互いに隣接する２ビット間で同時にデータエラーが生じた場合（これを「隣接２ビット同時エラー」という）、既存のパリティチェック方法では、それをエラーと判断することができないため、読み出しデータは正しいものとして扱われてしまう。例えば、メモリセルアレイにおけるビット０と、それに隣接するビット１のデータがそれぞれ論理値‘１’、論理値‘０’であり、それがα線やノイズの影響により、隣接２ビット同時エラーを生じて、それぞれ論理値‘０’、論理値‘１’のように、隣接２ビットが同時に論理反転してしまったにもかかわらず、それは既存のパリティチェック結果に何ら影響を及ぼすものではないため、そのようなエラーを検出することができない。
【０００９】
上記のような隣接２ビット同時エラーを検出可能とするため、例えば３２ワード構成を２×１６とすることが考えられる。ワード構成を２×１６とした場合、カラム系の選択により、隣接２ビット間の一方が選択されることになり、隣接２ビットが同時に読み出されることはないから、少なくとも上記のような２ビット同時エラーは検出することができる。
【００１０】
しかしながら、３２ワード構成を２×１６とすると、メモリセルアレイのチップレイアウトが不所望に横長の形状になってしまい、例えばワード線が不所望に長くなって、そこでの遅延時間が無視できなくなるため、ワード線駆動から実際にデータが出力されるまでの時間が長くなってしまう。従って、３２ワード構成を２×１６として、隣接２ビット同時エラーの検出を可能ならしめるのは、半導体記憶装置のアクセス速度を犠牲にすることになるため、得策ではない。
【００１１】
本発明の目的は、半導体記憶装置のアクセス速度を犠牲にすることなく、隣接ビット間の同時エラーを検出するための技術を提供することにある。
【００１２】
本発明の別の目的は、アクセス速度を犠牲にすることなく、隣接ビット間の同時エラーを検出することができる半導体記憶装置を提供することにある。
【００１３】
本発明の別の目的は、そのような半導体記憶装置を内蔵するマイクロコンピュータを提供することにある。
【００１４】
さらに本発明の別の目的は、そのようなマイクロコンピュータを備えたデータ処理装置を提供することにある。
【００１５】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１６】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１７】
すなわち、１列毎にビット割付けが行われたメモリセルアレイ（４２）で互いに隣接しない複数ビット分のデータ群毎に、パリティチェックのための論理演算を行うものである。互いに隣接しない複数ビット分のデータ群毎に、パリティチェックのための論理演算を行うことで、隣接ビット同時エラーの検出を可能とする。このとき、１列毎にビット割付けが行われているため、メモリセルアレイが横長にレイアウトされるのを回避することができ、ワード線が不所望に長くなるのを阻止することができるので、半導体記憶装置のアクセス速度の高速化を達成する。
【００１８】
また、メモリセルアレイから、ビット割付け方向に１ビットおき又は複数ビットおきにデータを取り込んでパリティチェックのための論理演算を行うパリティ演算回路を含んで半導体記憶装置を構成することにより、アクセス速度を犠牲にすることなく、隣接ビット間の同時エラーを検出可能な半導体記憶装置を構成することができる。
【００１９】
１列毎にビット割付けが行われたメモリセルアレイと、上記メモリセルアレイにおける複数のビット分の読み出しデータとそれに対応するパリティビットデータとの論理演算により、上記メモリセルアレイからの読み出しデータのパリティチェックを可能とするパリティチェック部（４６）に加えて、上記メモリセルアレイから読み出された複数ビット構成の第１データ群と、その第１データ群の比較対照とされる第２データ群とをビット単位で比較するための比較部（４４）が設けられるとき、上記パリティチェック部は、上記メモリセルアレイから、ビット割付け方向に１ビットおき又は複数ビットおきにデータを取り込んでパリティチェックのための論理演算を行うパリティ演算回路（４６１，４６２）を含んで構成し、上記比較部は、上記第１データ群及び上記第２データ群のビット構成に対応して配置され、それぞれ上記第１データ群と、上記第２データ群とをビット単位で比較するための複数のビット比較回路６６−１〜６６−ｎと、上記複数のビット比較回路からの比較結果のうちの任意の１ビットの論理状態に基づいて活性化され、且つ、活性化された状態で、上記複数のビット比較回路のうちの上記任意の１ビットを除く全てのビットの論理和を得るためのオア回路（４５）とを含んで構成することができる。かかる構成においては、上記複数のビット比較回路からの比較結果のうちの任意の１ビットの論理状態を利用して、オア回路の活性及び非活性の切り換えが可能とされるから、プリチャージ動作のタイミング制御のためのクロック信号が不要であり、上記クロック信号のタイミングマージンも不要となる。しかも、スタティック回路で多ビット比較回路を形成する場合に比べて回路段数を削減することができる。このことが、多ビット比較回路の動作の高速化、さらにはそのような多ビット比較回路をキャッシュメモリのシノニムチェック部に適用した場合のキャッシュメモリの動作の高速化を達成する。そして、上記のようにアクセス速度を犠牲にすることなく隣接ビット間の同時エラーを検出することができるから、キャッシュメモリに適用した場合の動作の高速化とともに、キャッシュデータの信頼性の向上を達成する。従って、上記構成の半導体記憶装置を、１チップ化されたマイクロコンピュータ（３１）に、キャッシュメモリ（１０）としてオンチップ化した場合には、キャッシュメモリの動作の高速化により、マイクロコンピュータさらにはそれを含むデータ処理装置における演算処理時間の短縮化、及びキャッシュデータの信頼性の向上により演算処理結果の信頼性の向上を達成する。
【００２０】
【発明の実施の形態】
図２には本発明にかかるデータ処理装置の一例であるコンピュータシステムが示される。
【００２１】
このコンピュータシステムは、システムバスＢＵＳを介して、マイクロコンピュータ３１、ＳＤＲＡＭ（シンクロナス・ダイナミック・ランダム・アクセス・メモリ）３２、ＳＲＡＭ３３（スタティック・ランダム・アクセス・メモリ）、ＲＯＭ（リード・オンリ・メモリ）３４、周辺装置制御部３５、表示制御部３６などが、互いに信号のやり取り可能に結合され、予め定められたプログラムに従って所定のデータ処理を行う。上記マイクロコンピュータ３１は、本システムの論理的中核とされ、主として、アドレス指定、情報の読み出しと書き込み、データの演算、命令のシーケンス、割り込の受付け、記憶装置と入出力装置との情報交換の起動等の機能を有し、演算制御部や、バス制御部、メモリアクセス制御部などから構成される。上記ＳＤＲＡＭ３２や、ＳＲＡＭ３３、及びＲＯＭ３４は内部記憶装置として位置付けられている。ＳＤＲＡＭ３２は、マイクロコンピュータ３１での計算や制御における作業領域として利用される。ＳＲＡＭ３３はマイクロコンピュータ３１で実行されるプログラムなどがロードされるメインメモリとして機能する。ＲＯＭ３４には読出し専用のプログラムが格納される。周辺装置制御部３５によって、ハードディスクなどの外部憶装置３８の動作制御や、キーボード３９などからの情報入力制御が行われる。また、上記表示制御部３６によってＣＲＴディスプレイ４０への情報表示制御が行われる。この表示制御部３６には描画処理のための半導体チップや画像メモリなどが含まれる。
【００２２】
図３には上記マイクロコンピュータ３１の構成例が示される。このマイクロコンピュータ３１は、特に制限されないがキャッシュメモリ１０、アドレス変換バッファ（以下単に「ＴＬＢ」ともいう）１１、コントロールユニット１２、及び周辺モジュール１３を内蔵し、それらが内部バス１４，１５などに結合されて、一つのの半導体基板に形成されて成る。
【００２３】
コントロールユニット１２は、中央処理装置、バスコントローラ、上記キャッシュメモリ１０及びＴＬＢ１１の制御回路、外部インタフェース回路などの機能を総称する回路ブロックであり、同図には内外との入出力制御機能を代表する回路ブロックとして内部コントローラ１２１と外部バスコントローラ１２２が示される。上記内部バス１４にはキャッシュメモリ１０、ＴＬＢ１１、内部コントローラ１２１が接続され、内部バス１５にはＴＬＢ１１、周辺モジュール１３、外部バスコントローラ１２２が接続される。周辺モジュール１３は、それぞれ図示しないタイマ、シリアルコミュニケーションインタフェース、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（リードオンリメモリ）、及びＤＭＡＣ（ダイレクトメモリアクセスコントローラ）などの適宜の周辺回路が含まれる。同図において１６はキャッシュメモリ１０に対する制御信号線群、１７はＴＬＢ１１に対する制御信号線群、１８はＴＬＢ１１と周辺回路モジュール１３との間の制御信号線群、１９は周辺モジュール１３に対する制御信号線群、２０はキャッシュメモリ１０とＴＬＢ１１との間の制御信号線群である。本構成例のマイクロコンピュータ３１は、特に制限されないが、システムバスＢＵＳを介してＳＲＡＭ３３に接続される。この構成例において、仮想記憶を実現するためのアドレス変換機構は、ＴＬＢ１１及びそれを制御するためのコントロールユニット１２内の回路から構成される。
【００２４】
図４には、上記キャッシュメモリ１０の構成例が示される。
【００２５】
図４に示されるように、キャッシュメモリ１０は、タグ部７２、データ部７３、比較部７４、シノニムチェック部７５を含む。
【００２６】
仮想アドレスがタグ部７２及びデータ部７３に入力され、当該仮想アドレスに対応する物理アドレスが比較部７４、シノニムチェック部７５に入力される。仮想アドレスに基づいてタグ部７２からタグ情報が読み出され、それが比較部７４に伝達される。比較部７４では、タグ部７２から出力されたタグ情報と、上記物理アドレスとが比較される。この比較において、タグ部７２から出力されたタグ情報と、上記物理アドレスとが一致していればキャッシュヒット、不一致であればキャッシュミスとされる。キャッシュヒットの場合には、当該仮想アドレスに対応するデータがデータ部７３から読み出されるが、キャッシュミスの場合、データ部７３からのデータ読み出しは行われない。その場合、ＳＲＡＭ３３から新たなデータ取り込みが行われ、そのデータによってキャッシュメモリの内容が更新される。
【００２７】
また、キャッシュメモリ中に同一物理アドレスのデータが複数存在する事態を防止するため、物理アドレスが入力された場合に、当該物理アドレスに基づいてシノニムチェック部７５内のメモリセルアレイから読み出された情報と、当該物理アドレスから作り出された比較データとがビット単位で比較されるようになっている。比較データは物理アドレスの上位複数ビットとされ、下位復数ビットはシノニムチャック回路７５内のメモリアクセスに使用される。キャッシュミス時のライト動作において、同一物理アドレスのデータが既に存在する場合には、キャッシュメモリ中に同一物理アドレスのデータが複数存在する事態を防止するため、既にデータ部に格納されているデータのうち、当該物理アドレスについてのデータが無効とされ、代わりに新たなデータが取込まれる。
【００２８】
図５には上記シノニムチェック部７５の構成例が示される。
【００２９】
図５に示されるようにシノニムチェック部７５は、複数のスタティック型メモリセルが配列されて成るメモリセルアレイ４２、アドレスＡｄｒをデコードするためのデコーダ４１、上記メモリセルアレイ４２から読み出された信号を増幅するためのセンスアンプ４３、このセンスアンプ４３の出力信号と比較データＣＤ０〜ＣＤｎとをビット単位に比較するための比較部４４、この比較部４４からの複数ビットの比較結果の論理和を求めるオア回路４５、メモリセルアレイ４２から読み出されたデータがα線やノイズなどによって論理反転しているか否かをパリティチェックにより判定するためのパリティチェック部４６とを含んで成る。パリティチェック部４６でメモリセルアレイ４２からの読み出しデータが正常と判断された場合、オア回路４５の出力ＯＵＴが、シノニムチェック結果として有効とされるが、パリティチェック部４６でデータエラーが検出された場合には、オア回路４５の出力ＯＵＴは無効とされる。上記デコーダ４１に入力されるアドレスは、物理アドレスの下位複数ビットとされ、上記比較部４４に入力される比較データＣＤ０〜ＣＤｎは、物理アドレスの上位複数ビットとされる。
【００３０】
尚、実際には、図５に示される構成回路が複数セット設けられる。例えば、仮想アドレスが３ビットの場合、２の３乗個、つまり８個の仮想空間が存在し、４ウェイ・セットアソシアティブ形式の場合には３２個（＝８×４）の仮想空間が存在するため、シノニムチェックのためには、この仮想空間に対応して、図５に示される回路構成が３２個設けられ、仮想アドレスが物理アドレスに変換される毎に、それぞれにおいて上記のシノニムチェック動作が行われる。
【００３１】
図１には、上記メモリセルアレイ４２とパリティチェック部４６との関係が示される。
【００３２】
上記メモリセルアレイ４２は、特に制限されないが、メモリセルアレイは行方向及び列方向に複数のメモリセルが配列されて成る。例えばこのメモリセルアレイ４２は、３２ワードが１×３２で構成されており、行方向へのメモリセル配列数は１個で、列方向へのメモリセル配列数は３２個である。パリティチェック部４６は、特に制限されないが、第１パリティ演算回路４６１と第２パリティ演算回路４６２とを含んで成る。ビットＢＩＴ０〜ＢＩＴ１７のうち、ビット０〜ＢＩＴ１５までがデータに割り当てられ、ビットＢＩＴ１６，ＢＩＴ１７がパリティビットとされる。
【００３３】
偶数番目のビットであるビット０，２，４〜１６のデータは、センスアンプ４３を介して第１パリティ演算回路４６１に伝達され、奇数番目のビットであるビット１，３，５〜１７のデータは、センスアンプ４３を介して第２パリティチェック部４６２に伝達される。つまり、メモリセルアレイで互いに隣接しない複数ビット分のデータ群毎に、第１パリティ演算回路４６１、第２パリティ演算回路４６２において、それぞれ上記パリティチェックのための論理演算が行われる。換言すれば、第１パリティ演算回路４６１、第２パリティ演算回路４６２において、それぞれ１ビットおきのデータ群についての論理演算が行われるようになっている。それにより、偶数番目のビットについて、エラーが発生した場合には、それは第１パリティ演算回路４６１において検出され、奇数番目のビットについて、エラーが発生した場合には、それは第２パリティ演算回路４６２において検出される。そのように第１パリティ演算回路４６１、第２パリティ演算回路４６２において、それぞれ１ビットおきのデータ群についての論理演算が行われるようになっていることから、隣接ビット間で同時にエラーを生じた場合でも、それを的確に検出することができる。例えば、メモリセルアレイにおけるビット０と、それに隣接するビット１のデータがそれぞれ論理値‘１’、論理値‘０’であり、それがα線やノイズの影響により、隣接２ビット同時エラーを生じて、それぞれ論理値‘０’、論理値‘１’のように、隣接２ビットが同時に論理反転してしまった場合には、ビット０のデータが第１パリティ演算回路４６１に伝達され、ビット１のデータが第１パリティ演算回路４６１に伝達されることから、それぞれ第１パリティ演算回路４６１、第２パリティ演算回路４６２において上記エラー検出が行われる。
【００３４】
また、隣接３ビット同時エラーを生じた場合にも、それを検出することができる。例えば、ビット０，１，２において同時エラーを生じた場合には、第１パリティ演算回路４６１ではエラー検出が行えないが、第２パリティ演算回路４６２においてエラー検出が行われる。故に、メモリセルアレイ４２からの読み出しデータのパリティチェック結果として、第１パリティ演算回路４６１の出力信号Ｐ１と、第２パリティ演算回路４６２の出力信号Ｐ２とを使用することにより、隣接３ビット同時エラーを検出し、それをパリティ演算結果として、メモリセル４２からの読み出しデータの処理に反映させることができる。
【００３５】
図６には上記第１パリティ演算回路４６１の構成例が代表的に示される。
【００３６】
図６に示されるように、第１パリティ演算回路４６１は、それぞれ排他的論理和を得るための排他的論理和回路（「ＥＯＲ」と略記する）１１１〜１１８によって構成される。ビットＢＩＴ０，ビットＢＩＴ２の排他的論理和がＥＯＲ１１１によって得られ、ビットＢＩＴ４，ビットＢＩＴ６の排他的論理和がＥＯＲ１１２によって得られ、ビットＢＩＴ８，ビットＢＩＴ１０の排他的論理和がＥＯＲ１１３によって得られ、ビットＢＩＴ１２，ビットＢＩＴ１４の排他的論理和がＥＯＲ１４によって得られる。そして、ＥＯＲ１１１の出力信号とＥＯＲ１１２の出力信号との排他的論理和がＥＯＲ１１５によって得られ、ＥＯＲ１１３の出力信号とＥＯＲ１１４の出力信号との排他的論理和がＥＯＲ１１６によって得られ、ＥＯＲ１１５の出力信号とＥＯＲ１１６の出力信号との排他的論理和がＥＯＲ１１７によって得られ、さらに、ＥＯＲ１１７の出力信号と、パリティビットであるビットＢＩＴ１６との排他的論理和がＥＯＲ１１８によって得られることにより、第１パリティ演算回路４６１の出力信号Ｐ１が得られる。
【００３７】
尚、図６に示されるのは第１パリティ演算回路４６１の構成例であるが、第２パリティ演算回路４６２もそれと同一構成とされる。
【００３８】
図７には、図５における比較部４４の構成例、及びそれとオア回路４５との関係が示される。
【００３９】
図７に示されるように、比較部４４は、メモリセルアレイ４２から同時に読み出されるビット数に対応する複数個のビット比較回路６１−１〜６１−ｎから成る。複数個のビット比較回路６１−１〜６１−ｎには、それぞれ対応する比較データＣＤ０〜ＣＤｎが入力され、メモリセルアレイ４２から同時に読み出され、上記センスアンプ４３で増幅された信号と、比較データＣＤ０〜ＣＤｎとのビット単位での論理比較が行われるようになっている。ビット比較回路６１−１〜６１−ｎの数はメモリセルアレイ４２からの多ビット出力に対応する。そのうちの任意のビット比較回路例えばｎ番目のビット比較回路６１−ｎの比較結果のみが、インバータ６３により反転されてから、オア回路４５の活性化信号φ１とてオア回路４５に入力されるようになっている。また、ｎ番目のビット比較回路６１−ｎを除くビット比較回路、すなわち、１番目からｎ−１番目のビット比較回路６１−１〜６１−ｎ−１の比較結果は、それらの論理和を求めるために、オア回路４５に入力される。
【００４０】
図８には、複数のビット比較回路６１−１〜６１−ｎのうち、ビット比較回路６１−１の構成例が代表的に示される。
【００４１】
図８に示されるように、ビット比較回路６１−１は、ｎチャンネル型ＭＯＳトランジスタＱ３１とｐチャンネル型ＭＯＳトランジスタＱ３２とが並列接続され、ｎチャンネル型ＭＯＳトランジスタＱ３３とｐチャンネル型ＭＯＳトランジスタＱ３４とが並列接続され、それに、ｎ番目の比較データＣＤｎによって上記ＭＯＳトランジスタＱ３１〜Ｑ３４を動作制御するためのインバータ５０，５１が結合されて成る。ｎ番目の比較データＣＤｎはインバータ５０によって反転されてから、ｎチャンネル型ＭＯＳトランジスタＱ３１のゲート電極、及びｐチャンネル型ＭＯＳトランジスタＱ３４のゲート電極に伝達される。また、インバータ５０の出力信号は、後段のインバータ５１で反転されてから、ｐチャンネル型ＭＯＳトランジスタＱ３２のゲート電極、及びｎチャンネル型ＭＯＳトランジスタＱ３３のゲート電極に伝達される。センスアンプ４３からの出力信号が相補レベルのデータ線Ｄ，Ｄ＊（＊は信号反転又はローアクティブを意味する）を介して伝達されるとき、データ線ＤはＭＯＳトランジスタＱ３１，Ｑ３２に結合され、データ線Ｄ＊はＭＯＳトランジスタＱ３３，Ｑ３４に結合される。センスアンプ４３からの出力信号とｎ番目の比較データとが一致する場合には、このビット比較回路６１−１の出力信号はローレベルとされ、それとは逆に、センスアンプ４３からの出力信号とｎ番目の比較データとが不一致の場合には、ビット比較回路６１−１の出力信号はハイレベルとされる。
【００４２】
ｎ番目の比較データＣＤｎがローレベルの場合には、ｎチャンネル型ＭＯＳトランジスタＱ３１及びｐチャンネル型ＭＯＳトランジスタＱ３２がオンされる。このとき、ｎチャンネル型ＭＯＳトランジスタＱ３３及びｐチャンネル型ＭＯＳトランジスタＱ３４はオフ状態とされる。その場合において、データ線Ｄの論理がＭＯＳトランジスタＱ３１，Ｑ３２を介してオア回路４５へ伝達される。データ線Ｄがハイレベルの場合には、それはｎ番目の比較データＣＤｎのローレベルとは不一致であり、オア回路４５へはハイレベル出力がなされる。それに対して、データ線Ｄがローレベルの場合には、それはｎ番目の比較データＣＤｎのローレベルと一致し、オア回路４５へはローレベル出力がなされる。
【００４３】
また、ｎ番目の比較データＣＤｎがハイレベルの場合には、ｎチャンネル型ＭＯＳトランジスタＱ３３及びｐチャンネル型ＭＯＳトランジスタＱ34がオンされる。このとき、ｎチャンネル型ＭＯＳトランジスタＱ３１及びｐチャンネル型ＭＯＳトランジスタＱ３２はオフ状態とされる。その場合において、データ線Ｄ＊の論理がＭＯＳトランジスタＱ３３，Ｑ３４を介してオア回路４５へ伝達される。データ線Ｄ＊がハイレベルの場合、データ線Ｄはローレベルであることを意味するから、データ不一致を意味する。データ線Ｄ＊がハイレベルの場合には、それはデータ線Ｄがローレベルであることを意味するから、データ不一致により、オア回路４５へはハイレベル出力がなされる。
【００４４】
尚、他のビット比較回路６１−２〜６１−ｎについても上記と同様に構成される。
【００４５】
図９には、図５に示される上記オア回路４５の構成例が示される。
【００４６】
ｐチャンネル型ＭＯＳトランジスタＱ２１，Ｑ２２が並列接続され、ｐチャンネル型ＭＯＳトランジスタＱ２３，Ｑ２４が並列接続される。ｐチャンネル型ＭＯＳトランジスタＱ２１，Ｑ２２，Ｑ２３，Ｑ２４のドレイン電極は高電位側電源Ｖｄｄに結合される。ｐチャンネル型ＭＯＳトランジスタＱ２１，Ｑ２２のソース電極は、ノードＮＡを介してｎチャンネル型ＭＯＳトランジスタＱ２７〜Ｑ２９のドレイン電極、ｎチャンネル型ＭＯＳトランジスタＱ２５のベース電極、及びｐチャンネル型ＭＯＳトランジスタＱ２３のゲート電極に接続される。この接続箇所をノードＮＡと称する。ｐチャンネル型ＭＯＳトランジスタＱ２３，Ｑ２４のソース電極は、ノードＮＢを介してｐチャンネル型ＭＯＳトランジスタＱ２２のゲート電極、及びｎチャンネル型ＭＯＳトランジスタＱ２５のドレイン電極に結合される。ｎチャンネル型ＭＯＳトランジスタＱ２５，Ｑ２７，Ｑ２８，Ｑ２９のソース電極は、ｎチャンネル型ＭＯＳトランジスタＱ２６を介して低電位側電源Ｖｓｓに結合される。ｎチャンネル型ＭＯＳトランジスタＱ２７，Ｑ２８，Ｑ２９のゲート電極は、それぞれ端子Ｔ１，Ｔ２，Ｔ３を介してビット比較回路６１−１，６１−２，６１−３の出力端子に結合される。また、ｎチャンネル型ＭＯＳトランジスタQ２６のゲート電極は、端子Ｔｎを介してビット比較回路６１−ｎの出力端子に結合される。
【００４７】
端子Ｔｎを介して取り込まれた活性化信号φ１がハイレベルのとき、ｎチャンネル型ＭＯＳトランジスタＱ２６がオンされて、ｎチャンネル型ＭＯＳトランジスタＱ２５，Ｑ２７〜Ｑ２９のソース電極が低電位側電源Ｖｓｓに導通されることにより、このオア回路４５が活性化される。活性化信号φ１がローレベルの場合には、ｎチャンネル型ＭＯＳトランジスタＱ２６がオフ状態とされて、ｎチャンネル型ＭＯＳトランジスタＱ２５，Ｑ２７〜Ｑ２９のソース電極が低電位側電源Ｖｓｓに導通されないから、このオア回路４５は非活性状態とされる。
【００４８】
ここで、センスアンプ４３の出力信号と、それに対応する比較データＣＤ０〜ＣＤｎとが完全に一致する場合を考える。この場合、ビット比較回路６１−１〜６１−ｎの出力信号は全てローレベルとされる。ビット比較回路６１−ｎの出力信号がローレベルとされる場合には、それがインバータ６３で論理反転されて得られた活性化信号φ１がハイレベルとされるから、ｎチャンネル型ＭＯＳトランジスタＱ２６がオンされ、ｎチャンネル型ＭＯＳトランジスタＱ２５，Ｑ２７〜Ｑ２９のソース電極がｎチャンネル型ＭＯＳトランジスタＱ２６を介して低電位側電源Ｖｓｓに導通されることにより、このオア回路４５が活性状態とされる。このとき、ビット比較回路６１−１〜６１−３の出力信号が全てローレベルとされているので、ｎチャンネル型ＭＯＳトランジスタＱ２７，Ｑ２８，Ｑ２９がオフ状態とされ、ノードＮＡはハイレベルとされるから、ｎチャンネル型ＭＯＳトランジスタＱ２５がオンされ、それにより、ノードＮＢがローレベルとされる。ノードＮＢがローレベルの場合、このオア回路４５の出力信号ＯＵＴもローレベルとなる。オア回路４５の出力信号ＯＵＴのローレベル出力は、センスアンプ４３の出力信号と、それに対応する比較データＣＤ０〜ＣＤｎとが完全に一致することを示している。
【００４９】
それに対して、ビット比較回路６１−１〜６１−ｎのうち、ビット比較回路６１―ｎのみがハイレベルとされる場合には、活性化信号φ１がローレベルとされ、ｎチャンネル型ＭＯＳトランジスタＱ２６がオフされるから、このオア回路４５は非活性状態とされる。活性化信号φ１がローレベルとされる場合、ｐチャンネル型ＭＯＳトランジスタＱ２４がオンされることで、ノードＮＢがハイレベルとされることから、出力信号ＯＵＴもハイレベルとされる。また、ビット比較回路６１―ｎを除くビット比較回路６１−１〜６１−ｎ−１のうちの少なくとも一つがハイレベル出力とされる場合には、ノードＮＡがローレベルとされるから、ｎチャンネル型ＭＯＳトランジスタＱ２５がオフされ、ノードＮＡがハイレベルとされるから、このオア回路４５の出力信号ＯＵＴもハイレベルとされる。オア回路４５の出力信号ＯＵＴのハイレベルは、センスアンプ４３の出力信号と、それに対応する比較データＣＤ０〜ＣＤｎとが完全には一致しないことを示している。
【００５０】
そのようにして、センスアンプ４３の出力信号と、それに対応する比較データＣＤ０〜ＣＤｎとが完全に一致する場合と、そうでない場合との判別結果（出力信号ＯＵＴ）が得られる。
【００５１】
上記した例によれば以下の作用効果が得られる。
【００５２】
（１）互いに隣接しない複数ビット分のデータ群毎に、パリティチェックのための論理演算を行うことで、隣接ビット同時エラーの検出が可能とされる。このとき、１列毎にビット割付けが行われているため、例えば３２ワードを２Ｋ×１６で構成する場合のように、メモリセルアレイが横長にレイアウトされるのを回避することができ、ワード線が不所望に長くなるのを阻止することができるので、メモリセルアレイ４２のアクセス速度の高速化を図ることができる。
【００５３】
（２）複数のビット比較回路６１−１〜６１−ｎのうちの任意の１ビットを除く全てのビットの論理和を得るためのオア回路４５が上記任意の１ビットによって活性、非活性が切り換えられるから、タイミング制御のためのクロック信号を特別に形成する必要が無く、上記クロック信号のタイミングマージンも不要となる。しかも、スタティック回路で多ビット比較回路を形成する場合に比べて回路段数を削減することができる。それにより、比較動作の高速化を図ることができる。また、上記上記任意の１ビットによってオア回路４５が非活性状態とされている場合には、当該オア回路４５での電流消費がほとんどないから、回路の消費電流の低減を図ることができる。
【００５４】
（３）上記複数のビット比較回路に対応して配置され、且つ、互いに並列接続されたｎチャンネル型ＭＯＳトランジスタＱ２７〜Ｑ２９と、上記ｎチャンネル型ＭＯＳトランジスタのドレイン電極に結合されたベース電極を有するｎチャンネル型ＭＯＳトランジスタＱ２５と、それらのソース電極に共通接続された電流源ＭＯＳトランジスタＱ２６とを設け、上記電流源ＭＯＳトランジスタのゲート電極に、上記複数のビット比較回路からの比較結果のうちの任意の１ビットを伝達可能に構成することで、上記オア回路を容易に形成することができる。
【００５５】
（４）他ビット同時比較の高速化により高速動作可能なキャッシュメモリ１０と、仮想アドレスを物理アドレスに変換するための変換対を格納するアドレス変換バッファ１１と、上記キャッシュメモリとアドレス変換バッファとを制御するコントロールユニット１２とを含んでマイクロコンピュータ３１を構成することにより、命令フェッチなどの時間短縮が可能となり、マイクロコンピュータの演算処理の高速化を図ることができる。
【００５６】
（５）そのように演算処理の高速化が図られたマイクロコンピュータ３１と、バスＢＵＳ９を介して上記マイクロコンピュータ３１によってアクセスされるＳＲＡＭ３３とを含んでデータ処理装置を構成することにより、当該データ処理の高速化を図ることができる。
【００５７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００５８】
例えば、上記の例ではビット割付け方向に１ビットおきのデータを第１パリティ演算回路４６１、第２パリティ演算回路４６２に取り込んで、パリティチェックのための論理演算を行うようにしたが、ビット割付け方向に２ビット以上おきのデータを取り込んでパリティチェックのための論理演算を行うようにしてもよい。
【００５９】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータ内蔵キャッシュメモリに適用した場合について説明したが、マイクロコンピュータ内部又は外部に配置される各種半導体記憶装置に広く適用することができる。
【００６０】
本発明は、少なくともパリティチェックを行うことを条件に適用することができる。
【００６１】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００６２】
すなわち、１列毎にビット割付けが行われたメモリセルアレイで互いに隣接しない複数ビット分のデータ群毎に、パリティチェックのための論理演算を行うことで、隣接ビット同時エラーの検出が可能とされる。このとき、１列毎にビット割付けが行われているため、メモリセルアレイが横長にレイアウトされるのを回避することができ、ワード線が不所望に長くなるのを阻止することができるので、半導体記憶装置のアクセス速度の高速化を図ることができる。
【００６３】
また、メモリセルアレイから、ビット割付け方向に１ビットおき又は複数ビットおきにデータを取り込んでパリティチェックのための論理演算を行うパリティ演算回路を含んで半導体記憶装置を構成することにより、アクセス速度を犠牲にすることなく、隣接ビット間の同時エラーを検出可能な半導体記憶装置を構成することができる。
【００６４】
それぞれ上記第１データ群と、上記第２データ群とをビット単位で比較するための複数のビット比較回路と、複数のビット比較回路からの比較結果のうちの任意の１ビットの論理状態に基づいて活性化され、且つ、活性化された状態で、上記複数のビット比較回路のうちの上記任意の１ビットを除く全てのビットの論理和を得るためのオア回路とを含んで上記比較部が構成されることにより、上記複数のビット比較回路からの比較結果のうちの任意の１ビットの論理状態を利用して、オア回路の活性及び非活性の切り換えが可能とされるから、プリチャージ動作のタイミング制御のためのクロック信号が不要であり、上記クロック信号のタイミングマージンも不要となる。しかも、スタティック回路で多ビット比較回路を形成する場合に比べて回路段数を削減することができる。それにより、多ビット比較回路の動作の高速化、さらにはそのような多ビット比較回路をキャッシュメモリのシノニムチェック部に適用した場合のキャッシュメモリの動作の高速化を図ることができる。そして、上記のようにアクセス速度を犠牲にすることなく隣接ビット間の同時エラーを検出することができるから、キャッシュメモリの動作の高速化、及びキャッシュデータの信頼性の向上を図ることができる。上記構成の半導体記憶装置をキャッシュメモリとしてマイクロコンピュータにオンチップ化した場合には、キャッシュメモリの動作の高速化により、マイクロコンピュータさらにはそれを含むデータ処理装置における演算処理時間の短縮化、及びキャッシュデータの信頼性の向上により演算処理結果の信頼性の向上を図ることができる。
【図面の簡単な説明】
【図１】本発明にかかる半導体記憶装置に含まれるパリティチェック部の構成例ブロック図である。
【図２】上記半導体記憶装置を内蔵して成るマイクロコンピュータが適用されたコンピュータシステムの構成例ブロック図である。
【図３】上記マイクロコンピュータの構成例ブロック図ある。
【図４】上記マイクロコンピュータに含まれるキャッシュメモリの構成例ブロック図である。
【図５】上記キャッシュメモリに含まれるシノニムチェック回路の構成例ブロック図である。
【図６】パリティチェック部に含まれるパリティ演算回路の構成例回路図である。
【図７】上記シノニムチェック回路における主要部の構成例ブロック図である。
【図８】図７に含まれるビット比較回路の構成例回路図である。
【図９】図７に含まれるオア回路の構成例回路図である。
【符号の説明】
１０  キャッシュメモリ
１１  アドレス変換バッファ
１２  コントロール回路
１３  周辺モジュール
３１  マイクロコンピュータ
３２  ＳＤＲＡＭ
３３  ＳＲＡＭ
３４  ＲＯＭ
３５  周辺装置制御部
３６  表示制御部
３８  外部記憶装置
４０  キーボード
４１  デコーダ
４２  メモリセルアレイ
４３  センスアンプ
４４  比較部
４５  オア回路
４６  パリティチェック部
６１−１〜６１−ｎ  ビット比較回路
６３  インバータ
７２  タグ部
７３  データ部
７４  比較部
７５  シノニムチェック部
１１１〜１１８  ＥＯＲ
４６１  第１パリティ演算回路
４６２  第２パリティ演算回路
【図１】
0003672695.tif 000002
【図２】
0003672695.tif 000003
【図３】
0003672695.tif 000004
【図４】
0003672695.tif 000005
【図５】
0003672695.tif 000006
【図６】
0003672695.tif 000007
【図７】
0003672695.tif 000008
【図８】
0003672695.tif 000009
【図９】
0003672695.tif 000010