(57)【要約】【課題】ＥＣＣ機能追加に伴うチップ面積増加を最小限に抑える。【解決手段】外部からの指定に応じて変更可能な有効ビット幅における最大のビット幅単位でアクセスされるメモリマットが複数配置されたメモリマット部（１０）と、上記複数のメモリマットによって共有される間接周辺回路（２０）とを含むとき、ハミングコードに基づくエラー訂正のためのＥＣＣ機能ブロック回路（２１）と、外部から指定された有効ビット幅に応じたデータサイズアライメント処理を行うデータサイズアライメント回路（２３）とを含んで上記間接周辺回路を構成する。データサイズアライメント回路を直接周辺回路に設け、外部からの指定に応じて変更可能な有効ビット幅における最大のビット幅単位でメモリマットをアクセス可能とすることで、検査マットのビット構成の低減化を達成する。【選択図】        図１
2005044386.tif 000002
【特許請求の範囲】
【請求項１】
データ入出力に関する有効ビット幅を外部からの指定に応じて変更可能な半導体記憶装置であって、
外部からの指定に応じて変更可能な有効ビット幅における最大のビット幅単位でアクセスされるメモリマットが複数配置されたメモリマット部と、
上記複数のメモリマットによって共有される間接周辺回路と、を含み、
上記間接周辺回路は、ハミングコードに基づくエラー訂正のためのＥＣＣ機能ブロック回路と、
上記ＥＣＣ機能ブロック回路と外部入出力端子との間に介在され、外部から指定された有効ビット幅に応じたデータサイズアライメント処理を行うデータサイズアライメント回路と、を含んで成ることを特徴とする半導体記憶装置。
【請求項２】
データ入出力に関する有効ビット幅を外部からの指定に応じて、バイトアクセス対応のビット幅、上記バイトアクセスよりも広いワードアクセス対応のビット幅、上記ワードアクセスよりも広いロングワード対応のビット幅の３段階に変更可能な半導体記憶装置であって、
上記ロングワード対応のビット幅単位でアクセスされるメモリマットが複数配置されたメモリマット部と、
上記複数のメモリマットによって共有される間接周辺回路と、を含み、
上記間接周辺回路は、ハミングコードに基づくエラー訂正のためのＥＣＣ機能ブロック回路と、
上記ＥＣＣ機能ブロック回路と外部入出力端子との間に介在され、外部から指定された有効ビット幅に応じたデータサイズアライメント処理を行うデータサイズアライメント回路と、を含んで成ることを特徴とする半導体記憶装置。
【請求項３】
上記データサイズアライメント回路は、外部からワードアクセス又はバイトアクセスが指定された場合に、アクセスされない残りのビットについては上記メモリマットの記憶データを割り当てる請求項２記載の半導体記憶装置。
【請求項４】
書き込みサイクルの前半で上記メモリマットからのデータ読み出し動作が行われ、上記書き込みサイクルの後半で上記メモリマットへのデータ書き込み動作が行われるとき、上記データサイズアライメント回路は、外部からワードアクセスあるいバイトアクセスが指定された場合に、アクセスされない残りのビットについては書き込みサイクルの前半で上記メモリマットから読み出されたデータを割り当てる請求項２記載の半導体記憶装置。
【請求項５】
請求項１乃至４の何れか１項記載の半導体記憶装置と、上記半導体記憶装置をアクセス可能な中央処理装置と、を含んで一つの半導体基板に形成されたマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体記憶装置例えばＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）におけるエラー訂正技術に関し、例えばＳＲＡＭを含むマイクロコンピュータに適用して有効な技術に関する。
【０００２】
【従来の技術】
半導体記憶装置においては、α線によるソフトエラー対策が重要とされる。α線によるソフトエラーとは、宇宙線に含まれるα線（Ｈｅ原子核）やＬＳＩパッケージのレジン等に含まれる放射性原子から放出されたα線がメモリセルに入射することにより、データを破壊する現象である。
【０００３】
半導体記憶装置の一例であるＳＲＡＭにおいては、メモリセルの記憶素子としてフリップフロップ回路を用いているので、ＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）等に比べるとα線によるソフトエラーに対して強い構造となっている。しかしながら、ＳＲＡＭの大容量化、高速化のためにメモリセル面積が縮小され、システムの低消費電力化のために動作電圧が低減されるにつれて、α線によるソフトエラー耐性が低下しつつあり、ＳＲＡＭにおいてもα線によるソフトエラー耐性を向上させるための対策が必要となる場合がある。特に、自動車に搭載される制御用マイクロコンピュータにおいてα線によるソフトエラーは、排除しなければならない項目とされる。
【０００４】
信頼性の高い産業用計算機は故障が発生しないように工夫されるとともに、仮に故障が発生したとしてもその故障が軽度の場合は処理を続行すると共に重度故障に至る前に予防保全を行う機能を持つ必要がある。このような要求に応えるため、例えばメモリシングルビットエラーでは従来ではＥＣＣ訂正機構により読み出したデータの訂正を行うと共に訂正したデータをメモリに書き込み、再度同じメモリアドレスでシングルビットエラーが発生した場合は素子故障と判断する診断手段を備えていることが知られている（例えば特許文献１参照）。さらに、ＥＣＣ訂正したデータを書き込むための付加機構等の特別な機構を持たない汎用の計算機において、メモリの素子故障を診断することを可能とする技術が知られている。
【０００５】
【特許文献１】
特開２０００−２０７２９１号公報（第２段落、図６）
【０００６】
【発明が解決しようとする課題】
ＥＣＣ機能をＳＲＡＭに適用するには、メモリエラーを訂正するためのデータ（ハミングコード）を格納する検査用メモリマット、ハミングコード生成とメモリエラーを検出、訂正するＥＣＣ機能ブロックが必要になる。これらを従来のＳＲＡＭに適用することについて本願発明者が検討したところ、ＳＲＡＭモジュールの面積が大幅に増大することが見いだされた。例えば１６ｋバイト（４ｋバイト×４マット）の容量を有するＳＲＡＭの場合、その１マットの構成は、１ｋワード×３２ビットとされる。さらにこのＳＲＡＭは、３２ビットの入出力をバイト（８ビット）、ワード（１６ビット）、ロングワード（３２ビット）とデータサイズを可変にするデータサイズアライメント機能を有する。そのため、このＳＲＡＭにＥＣＣ機能を適用するには、データサイズの最小単位であるバイト（８ビット）単位でＥＣＣ用の検査マットが必要となる。入出力８ビットに対して必要なＥＣＣ用検査ビットは、単一ビットエラー訂正で４ビットとなり、１マットに対しては１６ビット必要とされる。さらにモジュール全体では１６ビット×４マット分で６４ビット必要とされる。このため、ＳＲＡＭモジュールの面積は、ＥＣＣ機能を有さない場合の１．５倍に増大する。
【０００７】
本発明の目的は、ＥＣＣ機能追加に伴うチップ面積の増加を最小限に抑えるための技術を提供することにある。
【０００８】
また、本発明の別の目的は、高速性を劣化させずにエラー検出及び訂正を可能とするための技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、外部からの指定に応じて変更可能な有効ビット幅における最大のビット幅単位でアクセスされるメモリマットが複数配置されたメモリマット部と、上記複数のメモリマットによって共有される間接周辺回路とを含んで半導体記憶装置を構成する。このとき、上記間接周辺回路は、ハミングコードに基づくエラー訂正のためのＥＣＣ機能ブロック回路と、上記ＥＣＣ機能ブロック回路と外部入出力端子との間に介在され、外部から指定された有効ビット幅に応じたデータサイズアライメント処理を行うデータサイズアライメント回路とを含んで構成する。
【００１２】
上記の手段によれば、データサイズアライメント回路を間接周辺回路に設けることにより、外部からの指定に応じて変更可能な有効ビット幅における最大のビット幅単位でメモリマットをアクセスすることができ、その場合において、検査マットの１マット当たりのビット構成は、バイトアクセス対応のビット幅単位でメモリマットをアクセスす場合に比べて低減することができ、このことが、メモリマット部の面積の低減を達成する。
【００１３】
また、データ入出力に関する有効ビット幅を外部からの指定に応じて、バイトアクセス対応のビット幅、上記バイトアクセスよりも広いワードアクセス対応のビット幅、上記ワードアクセスよりも広いロングワード対応のビット幅の３段階に変更可能な半導体記憶装置において、上記ロングワード対応のビット幅単位でアクセスされるメモリマットが複数配置されたメモリマット部と、上記複数のメモリマットによって共有される間接周辺回路とを設ける。このとき、上記間接周辺回路は、ハミングコードに基づくエラー訂正のためのＥＣＣ機能ブロック回路と、上記ＥＣＣ機能ブロック回路と外部入出力端子との間に介在され、外部から指定された有効ビット幅に応じたデータサイズアライメント処理を行うデータサイズアライメント回路とを含んで構成することができる。
【００１４】
上記の手段によれば、ロングワード対応のビット幅単位でメモリマットをアクセスすることができ、その場合において、検査マットの１マット当たりのビット構成は、バイトアクセス対応のビット幅単位でメモリマットをアクセスす場合に比べて低減することができ、このことが、メモリマット部の面積の低減を達成する。
【００１５】
上記データサイズアライメント回路は、外部からワードアクセス又はバイトアクセスが指定された場合に、アクセスされない残りのビットについては上記メモリマットの記憶データを割り当てるように構成できる。
【００１６】
書き込みサイクルの前半で上記メモリマットからのデータ読み出し動作が行われ、上記書き込みサイクルの後半で上記メモリマットへのデータ書き込み動作が行われるとき、上記データサイズアライメント回路は、外部からワードアクセスあるいバイトアクセスが指定された場合に、アクセスされない残りのビットについては書き込みサイクルの前半で上記メモリマットから読み出されたデータを割り当てるように構成できる。このとき、書き込みサイクルの前半で上記メモリマットからのデータ読み出し動作が行われ、上記書き込みサイクルの後半で上記メモリマットへのデータ書き込み動作が行われることにより、メモリマットや検査マットからのデータ読み出しと、メモリマットや検査マットへのデータ書き込みを別々のサイクルで行う場合に比べて処理に要する時間を短縮することができる。
【００１７】
【発明の実施の形態】
図２には本発明に係る半導体記憶装置が搭載されるマイクロコンピュータが示される。
【００１８】
図２に示されるように、マイクロコンピュータ２２１は、特に制限されないが、外部バスを介して各種信号のやり取りを可能とする外部インタフェース（Ｉ／Ｆ）２２８、演算処理のためのＣＰＵ（中央処理装置）２２４、数学関数の浮動小数点計算を実行するための浮動小数点ユニット（ＦＰＵ）２２３、ＣＰＵ２２４で実行されるマイクロプログラムが格納されたＲＯＭ２２６、ＣＰＵ２２４での演算処理のための作業領域などとして使用されるＳＲＡＭ２２７を含み、公知の半導体集積回路製造技術によって、単結晶シリコン基板などの一つの半導体基板に形成される。上記外部インタフェース２２８、ＣＰＵ２２４、浮動小数点ユニット２２３、ＲＯＭ２２６、ＳＲＡＭ２２７は、互いに信号のやり取りが可能となるように内部バス２２２によって結合されている。内部バス２２２は、アドレス信号を伝達するためのアドレスバス、データを伝達するためのデータバス、及びコントロール信号を伝達するためのコントロールバスを含む。ここで、上記ＳＲＡＭ２２７が本発明において中央処理装置によってアクセス可能な半導体記憶装置の一例とされる。
【００１９】
図１には上記マイクロコンピュータに含まれるＳＲＡＭ２２７の構成例が示される。
【００２０】
図１に示されるように、このＳＲＡＭ２２７は、特に制限されないが、１６ｋバイト（４ｋバイト×４マット）の記憶容量を有し、メモリマット部１０と間接周辺回路２０とを含んで成る。
【００２１】
メモリマット部１０は、特に制限されないが、４個のＲＡＭ部１１，１２，１３，１４を含む。４個のＲＡＭ部１１，１２，１３，１４は互いに同一構成とされる。ＲＡＭ部１１は、列選択回路１１２、行選択回路１１１、メモリマット１１３、検査マット１１４、入出力回路１１５，１１６を含んで成る。
【００２２】
メモリマット１１３は、３２ビット（ｂｉｔ）単位でデータの読み書きが可能とされ、複数のワード線とそれに交差するように配置された複数のビット線と、上記ワード線とビット線との交差箇所に配置されたスタティック型メモリセルとを含む。上記行選択回路１１３は、入力されたロウアドレス信号に基づいて上記複数のワード線から対応するワード線を選択レベルに駆動する。列選択回路１１２は、入力されたカラムアドレス信号に基づいて上記複数のビット線のうちから対応するビット線を選択的にコモン線に結合させる。これにより、入出力回路１１５を介してメモリセルからのデータ読み出しや当該メモリセルへのデータ書き込みが可能とされる。検査マット１１４は、６ビット単位でＥＣＣ検査のためのハミングコードの読み書きが可能とされ、複数のワード線とそれに交差するように配置された複数のビット線と、上記ワード線とビット線との交差箇所に配置されたスタティック型メモリセルとを含む。メモリマット１１３及び検査マット１１４によって、行選択回路１１１や列選択回路１１２が共有される。ここで、行選択回路１１１、列選択回路１１２、入出力回路１１５，１１６は、メモリマット１１３や検査マットに対する直接周辺回路と称される。
【００２３】
間接周辺回路２０は、特に制限されないが、ＥＣＣ機能ブロック回路２１、データラッチ回路２２、データサイズアライメント回路２３、入出力制御回路２４、及びＩ／Ｏバス２５を含む。ＥＣＣ機能ブロック回路２１は、ハミングコードによるＥＣＣ訂正機能を有し、特に制限されないが、メモリマット１１３へのデータ書き込み時に３２ビット構成の入力データから検査マット１１４用の６ビット構成のハミングコードを生成するライトＥＣＣコントロール機能と、メモリマット１１３からのデータ読み出し時にメモリマット１１３からの３２ビット構成の出力データに基づいて６ビット構成のハミングコードを生成し、それと、検査マット１１４に格納されているハミングコードとの比較を行い、その比較結果に基づいてメモリマット１１３からの３２ビット構成の出力データのエラー訂正を行うリードＥＣＣコントロール機能とを含む。データラッチ回路２２には、データサイズアライメント回路２３から出力されたデータや、メモリマット１１３から読み出され、上記リードＥＣＣコントロール機能によって必要に応じてエラー訂正されたデータが一時的に保持される。データサイズアライメント回路２３は、上記メモリマットへ書き込まれるデータや上記メモリマットから読み出されたデータのサイズアライメント処理を行う。このデータサイズアライメントの内容はＣＰＵ２２４のアーキテクチャによって決定される。入出力制御回路２４は、内部バス２２２との間で各種データの入出力を制御する。
【００２４】
図３には、上記ＳＲＡＭ２２７のレイアウト構成が示される。
【００２５】
メモリマット部１０は２分割され、その間に間接周辺回路２０がレイアウトされる。
【００２６】
次に、ＥＣＣ機能ブロック回路２１で生成されるハミングコードについて説明する。
【００２７】
誤り訂正符号を形成する方法として、パリティ検査を利用したハミングの方法がある。ここで、ｋビットの情報符号のそれぞれにｍビットの検査符号（冗長ビット）を付加し、全体の符号長がｎビットとなる符号列を考える。ｎビットの符号列の中に１ビット以下の誤りがあると仮定すると、検査符号で表される情報数は、誤りが発生する場合の数以上であり、次式が成立する。
２ｍ≧ｎ＋１…（１）
【００２８】
ここで、ｎ＝ｍ＋ｋを代入して整理すると、情報ビット数ｋと検査ビット数ｍ（＝ｎ−ｋ）との間には、次式の関係が成立する。
２ｍ−ｍ≧ｋ＋１…（２）
【００２９】
全体の符号長がｎビットで、そのうちの情報ビットがｋビットである符号のこは（ｎ，ｋ）符号と称される。式（２）が成立する場合のｎとｋとの組み合わせ（ハミングコード）例が図４に示される。例えば情報ビットが８ビットの符号系列であれば（ｋ＝８）、４ビットの検査ビット（ｍ＝４）が必要とされる。同様に、情報ビットが３２ビットの符号列であれば、６ビットの検査ビット（ｍ＝６）が必要とされる。既述のように図１に示されるメモリマット１１３は、３２ビット単位でデータの読み書きが可能とされる。この場合、情報ビット数（ｋ）が２６ビットを越え、且つ、５７ビット以下であるため、検査ビット数（ｍ）としては６ビットあれば十分とされる。このことから、図１に示される構成では、検査マット１１４及びそれに対応する入出力回路１１６は６ビット単位でのアクセスが可能とされる。
【００３０】
図５には、ＳＲＡＭ２２７における主要な外部端子と、その外部端子についての簡単な機能の一覧が示される。
【００３１】
ＳＲＡＭ２２７は、特に制限されないが、システムクロック信号を取り込むためのＣＫ端子、バスサイクルの区切りを示すバスレディ信号を取り込むためのＢＵＳＲＤＹ端子、ハードウェア／ソフトウェアスタンバイ制御信号を取り込むためのＳＴＢＹ端子、リード／ライト制御信号を取り込むためのＭＲＷＮ端子、データサイズアライメント信号を取り込むためのＤＳＩＺＥ［１：０］端子、ロウアドレス信号やカラムアドレス信号を取り込むためのＩＡＢ［１１：０］端子、データ入出力のためのＩＤＢ［３１：０］端子、マット選択信号を取り込むためのＭＳＲＡＭ［３：０］Ｎ端子、ＥＣＣマット選択信号を取り込むためのＭＳＥＣＣ［３：０］Ｎ端子、ＥＣＣテストモード信号を取り込むためのＥＣＣＮ端子を含み、上記各端子はバス２２２に結合される。ＢＵＳＲＤＹ端子の“Ｈ”（ハイ）レベルは、バスサイクルの切れ間を示し、ＢＵＳＲＤＹ端子の“Ｌ”（ロー）レベルはバスサイクル中であることを示す。ＳＴＢＹ端子が“Ｈ”レベルとされることで、スタンバイ状態が指示され、ＳＴＢＹ端子が“Ｌ”レベルとされることで本ＳＲＡＭ２２７は動作状態とされる。ＭＲＷＮ端子が“Ｈ”レベルとされることでリードサイクルが指定され、ＭＲＷＮ端子が“Ｌ”レベルとされることでライトサイクルが指定される。ＤＳＩＺＥ［１：０］端子が“Ｌ”“Ｌ”とされることでロングワードアクセスが指定され、ＤＳＩＺＥ［１：０］端子が“Ｌ”“Ｈ”とされることでワードアクセスが指定され、ＤＳＩＺＥ［１：０］端子が“Ｈ”“Ｈ”とされることでバイトアクセスが指定される。ＩＡＢ［１１：０］端子のうち、ＩＡＢ［１：０］はデータアクセスサイズシフトの有無を示し、ＩＡＢ［３：２］はカラムアドレスを示し、ＩＡＢ［１１：４］はロウアドレスを示す。ＥＣＣＮ端子が“Ｈ”とされることでＥＣＣディスエーブルが指定され、ＥＣＣＮ端子が“Ｌ”とされることでＥＣＣイネーブルが指定される。
【００３２】
図６には、上記データサイズアライメント回路２３で行われるデータサイズアライメント処理の具体例が示される。尚、図６において、「＊」はドントケアを示し、論理値“１”はハイ（Ｈ）レベルを示し、論理値“０”はロー（Ｌ）レベルを示す。
【００３３】
ＤＳＩＺＥ［１：０］端子が論理値“０”“０”とされることでロングワードアクセス（３２ビットアクセス）が指定された場合、リード時においては、データラッチ回路２２からの３２ビット構成のデータは、そのままのビット構成で入出力制御回路２４を介してＩＤＢ［３１：０］端子を介してバス２２２に出力される。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた３２ビット構成のデータは、そのままのビット構成でデータラッチ回路２２に伝達される。
【００３４】
ＤＳＩＺＥ［１：０］端子が論理値“０”“１”とされることでワードアクセス（１６ビットアクセス）が指定され、且つ、ＩＡＢ［１：０］端子が論理値“０”“＊”によりデータシフトが指示された場合、リード時においては、データラッチ回路２２から出力された上位１６ビットが有効とされるデータは、データサイズアライメント回路２３において上位１６ビットがシフトされることで下位１６ビットが有効とされるデータに変更されてからＩＤＢ［３１：０］端子を介してバス２２２に出力される。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた下位１６ビットが有効とされるデータは、データサイズアライメント回路２３において下位１６ビットがシフトされることで上位１６ビットが有効とされるデータに変更されてからデータラッチ回路２２に伝達される。
【００３５】
ＤＳＩＺＥ［１：０］端子が論理値“０”“１”とされることでワードアクセスが指定され、且つ、ＩＡＢ［１：０］端子が論理値“１”“＊”によりデータシフトが指示されない場合、リード時においては、データラッチ回路２２から出力された上位１６ビットが有効とされるデータは、そのままの状態でＩＤＢ［３１：０］端子を介してバス２２２に出力される。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた下位１６ビットが有効とされるデータは、ビットシフトは行われないでデータラッチ回路２２に伝達される。
【００３６】
ＤＳＩＺＥ［１：０］端子が論理値“１”“１”とされることでバイトアクセスが指示され、且つ、ＩＡＢ［１：０］端子が論理値“０”“０”によりデータシフトが指示された場合、リード時においては、ＲＡＭ部１１〜１４から出力された上位１６ビット（２バイト分）が有効とされるデータは、データサイズアライメント回路２３においてビットシフトされることで下位１６バイト（２バイト分）が有効とされるデータに変更されてからＩＤＢ［３１：０］端子を介してバス２２２に出力される。ＣＰＵ２２４ではバス２２２における下位２バイト分のデータのうちの何れかを有効なデータとして取り扱う。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた８ビット目から１５ビット目が有効とされるバイトデータは、データサイズアライメント回路２３においてビットシフトされることで上位８ビットが有効とされるデータに変更されてからＲＡＭ部１１〜１４に伝達される。
【００３７】
ＤＳＩＺＥ［１：０］端子が論理値“１”“１”とされることでバイトアクセスが指示され、且つ、ＩＡＢ［１：０］端子が論理値“０”“１”によりデータシフトが指示された場合、リード時においては、ＲＡＭ部１１〜１４から出力された上位１６ビット（２バイト分）が有効とされるデータは、データサイズアライメント回路２３においてビットシフトされることで下位１６バイト（２バイト分）が有効とされるデータに変更されてからＩＤＢ［３１：０］端子を介してバス２２２に出力される。ＣＰＵ２２４ではバス２２２における下位２バイト分のデータのうちの何れかを有効なデータとして取り扱う。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた下位８ビットが有効とされるバイトデータは、データサイズアライメント回路２３においてビットシフトされることで１６ビット目から２３ビット目が有効とされるデータに変更されてからＲＡＭ部１１〜１４に伝達される。
【００３８】
ＤＳＩＺＥ［１：０］端子が論理値“１”“１”とされることでバイトアクセスが指示され、且つ、ＩＡＢ［１：０］端子が論理値“１”“０”によりデータシフトが指示されない場合、リード時においては、データラッチ回路２２から出力された下位１６ビット（２バイト分）が有効とされるデータは、データサイズアライメント回路２３においてそのままの形式でＩＤＢ［３１：０］端子を介してバス２２２に出力される。ＣＰＵ２２４ではバス２２２における下位２バイト分のデータのうちの何れかを有効なデータとして取り扱う。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた８ビット目から１５ビット目が有効とされるバイトデータは、データサイズアライメント回路２３においてビットシフトされることなくＲＡＭ部１１〜１４に伝達される。
【００３９】
ＤＳＩＺＥ［１：０］端子が論理値“１”“１”とされることでバイトアクセスが指示され、且つ、ＩＡＢ［１：０］端子が論理値“１”“１”によりデータシフトが指示されない場合、リード時においては、データラッチ回路２２から出力された下位１６ビット（２バイト分）が有効とされるデータは、データサイズアライメント回路２３においてそのままの形式でＩＤＢ［３１：０］端子を介してバス２２２に出力される。ＣＰＵ２２４ではバス２２２における下位２バイト分のデータのうちの何れかを有効なデータとして取り扱う。また、ライト時においては、ＩＤＢ［３１：０］端子を介してバス２２２から取り込まれた下位８ビットが有効とされるバイトデータは、データサイズアライメント回路２３においてビットシフトされることなくＲＡＭ部１１〜１４に伝達される。
【００４０】
上記のライト動作において、データラッチ回路２２における３２ビット構成のデータのうち、有効なデータが存在しないビットについては、データサイズアライメント回路２３では、ライトサイクルの前半においてメモリマット１１２から読み出された３２ビット構成のデータのうち、有効なデータが存在しないビットについては、適宜ビット分のデータが上記データラッチ回路２２の記憶データにおける下位１６ビットに割り当てられることにより、見かけ上、全ビット（３２ビット）有効なデータが合成され、それが、ＥＣＣ機能ブロック回路２１に伝達される。
【００４１】
次に、上記のように構成されたＳＲＡＭ２２７の動作について説明する。
【００４２】
図７には、上記ＳＲＡＭ２２７におけるライト動作時のＥＣＣ動作の流れが示される。また、図９には、上記ＳＲＡＭ２２７のライト動作時における主要部の動作タイミングが示される。尚、図９において、（）内は内部信号を示し、ハッチングはドントケアを示している。ＳＴＢＹ端子は“Ｈ”レベルに固定される。
【００４３】
ライト動作時においては、データサイズアライメントがバイト、ワード、ロングワードにかかわらずに、ライトサイクルの前半でメモリマット１１３からのリード動作が行われる（ステップＳ１１）。そしてＥＣＣ機能ブロック回路２１においては、上記リード動作によって得られたデータに基づいてハミングコードが生成され、このハミングコードと、検査マット１１４から読み出されたハミングコードとの比較が行われ、上記メモリマット１１３からリードされたデータにエラーが含まれるか否かの判別が行われる（ステップＳ１２）。この判別において、「エラーが含まれない」と判断された場合には、そのリードデータがデータラッチ回路２２にラッチされる（ステップＳ１３）。また、上記ステップＳ１２のエラー判別において、「１ビットエラーが含まれる」と判断された場合には、ＥＣＣにおける公知のエラー訂正技術によって上記１ビットエラーが訂正された後に（ステップＳ１７）、そのデータがデータラッチ回路２２にラッチされる（ステップＳ１３）。
【００４４】
一方、書き込みのためのデータがバス２２２から入出力制御回路２４を介してデータサイズアライメント回路２３へ伝達され（ステップＳ１４）、図６に示されるように、ＣＰＵ２２４からの指示に従って所望のビットへデータがシフトされる（ステップＳ１５）。そして、外部からワードアクセス又はバイトアクセスが指定された場合において、アクセスされない残りのビット（有効とされないビット）には、上記データラッチ回路２２に格納されているデータにおける対応ビットのデータが合成されることにより（ステップＳ１６）、見かけ上、３２ビットの書き込みデータとして、ＥＣＣ機能ブロック回路２１に伝達され、ここで、入力データ３２ビットについてのハミングコードが生成される（ステップＳ１７）。そして、上記３２ビットの書き込みデータはメモリマット１１３における指定アドレスへ書き込まれ、対応するハミングコードは検査マット１１４に書き込まれる（ステップＳ１８）。このステップＳ１８の書き込みは、ライトサイクルにおける後半サイクルで行われる。つまり、ライトサイクルにおいては、前半サイクルでメモリマット１１３や検査マット１１４からのデータ読み出しが行われ、後半サイクルでメモリマット１１３や検査マット１１４への書き込みが行われる。例えば図９に示されるタイミングにおいて、ＣＫ端子を介して外部から入力されたクロック信号に同期する内部２相クロック信号φ１，φ２がＳＲＡＭ２２７の内部で生成されるものとすると、クロック信号φ１に同期してメモリマット１１３や検査マット１１４からのデータ読み出しが行われ、クロック信号φ２に同期してメモリマット１１３や検査マット１１４への書き込みが行われることにより、メモリマット１１３や検査マット１１４からのデータ読み出しと、メモリマット１１３や検査マット１１４からのデータ読み出しを別々のサイクルで行う場合に比べて処理に要する時間を短縮することができる。
【００４５】
尚、ＣＰＵ２２４によってロングワードアクセスが指定されている場合には、バス２２２を介して取り込まれた３２ビット構成のライトデータからハミングコードを生成すれば良いので、ライトサイクルの前半サイクルでメモリマット１１３から読み出されたデータを用いた合成処理（ステップＳ１６）は行われない。
【００４６】
図８には、上記ＳＲＡＭ２２７におけるリード動作時のＥＣＣ動作の流れが示される。また、図１０には、上記ＳＲＡＭ２２７のリード動作時における主要部の動作タイミングが示される。尚、図１０において、（）内は内部信号を示し、ハッチングはドントケアを示している。ＳＴＢＹ端子は“Ｈ”レベルに固定される。
【００４７】
リード動作においては、図１０に示されるクロック信号φ１に同期して、選択されたメモリマット１１３及び検査マット１１４から、それぞれ３２ビット構成のデータ及びそれに対応するハミングコードが読み出される（Ｓ２１）。そして、ＥＣＣ機能ブロック回路２１において、上記メモリマット１１３から読み出された３２ビット構成のデータに基づいてハミングコードが生成され、生成されたハミングコードと、上記検査マット１１４から読み出されたハミングコードとの比較が行われることで、エラーを生じているか否かの判別が行われる（ステップＳ２２）。この判別において、「エラーを生じていない」と判断された場合には、そのデータがデータラッチ回路２２にラッチされる（ステップＳ２３）。また、上記ステップＳ２２の判別において、「１ビットエラーを生じている」と判断された場合には、エラーの訂正が行われた後に（ステップＳ２６）、そのデータがデータラッチ回路２２にラッチされる（ステップＳ２３）。そして、ラッチされたデータは、データサイズアライメント回路２３に伝達され、ＣＰＵ２２４からの指定に応じて、図６に示されるようにデータサイズアライメント処理が行われ（Ｓ２４）、その後、入出力制御回路２４を介してバス２２２へ出力される（ステップＳ２５）。
【００４８】
図１１には、図１に示されるＳＲＡＭ２２７の比較対象とされるＳＲＡＭ２３７が示される。ＳＲＡＭ２３７は、１６ｋバイト（４ｋバイト×４マット）の記憶容量を有し、その１マットの構成は１ｋワード×３２ビットとされる。さらにこのＳＲＡＭ２３７では、３２ビットの入出力をバイト（８ビット）、ワード（１６ビット）、ロングワード（３２ビット）にデータサイズを変更するためのデータサイズアライメント回路３４１〜３４４が直接周辺回路の一部として設けられている。一つのＲＡＭ部１１において、８ビット単位でデータのリードライトを可能とするメモリマット（×８）３０１〜３０４が設けられ、それに対応して入出力回路３２１〜３２４が設けられる。さらに、上記メモリマット３０１〜３１４に対応して、ハミングコード用の検査マット３１１〜３１４及びそれに対応する入出力回路３３１〜３３４が設けられる。データサイズの最小単位が８ビットとされるため、図４に示されるように、情報ビット数（ｋ）が１１の場合に相当し、その場合の検査ビット数（ｍ）は４ビット必要とされるため、上記検査マット３１１〜３１４及びそれに対応する入出力回路３３１〜３３４は、４ビット単位（×４ビット）でハミングコードの入出力を可能とする。従って、検査マットは、１マット当たり１６ビット必要であり、モジュール全体では１６ビット×４マット分で６４ビット必要となる。このため、ＳＲＡＭ２３７の面積は、ＥＣＣ機能を有さない場合に比べて１．５倍に増大する。
【００４９】
これに対して、図１に示される構成を有するＳＲＡＭ２２７は、データサイズアライメント回路が間接周辺回路２０に設けられ、メモリマット１１３へのアクセスを常に３２ビット単位で行うようにしている。それによって、メモリマット１１３に対応する検査マットは、１マット当たり６ビット構成で済む（図４参照）。このように１マット当たりの検査マットのサイズを低減することができるため、メモリマット部１０の面積の低減を図ることができる。
【００５０】
上記の例によれば、以下の作用効果を得ることができる。
【００５１】
（１）データサイズアライメント回路が間接周辺回路２０に設けられ、メモリマット１１３へのアクセスを常に３２ビット単位で行うようにしていることから、メモリマット１１３に対応する検査マットは、１マット当たり６ビット構成で済む。このように１マット当たりの検査マットのサイズを低減することができるため、メモリマット部１０の面積の低減を図ることができ、このことは、例えばＳＲＡＭ２２７がマイクロコンピュータ２２１などの半導体集積回路にオンチップされる場合に有利とされる。
【００５２】
（２）データサイズアライメント回路２３は、外部からワードアクセス又はバイトアクセスが指定された場合に、アクセスされない残りのビットについてはメモリマット１１３の記憶データを割り当てることにより、メモリマット１１３の３２ビット単位でのアクセスや、検査マット１１４の６ビット単位でのアクセスに対応させることができる。
【００５３】
（３）ライトサイクルにおいては、前半サイクルでメモリマット１１３や検査マット１１４からのデータ読み出しが行われ、後半サイクルでメモリマット１１３や検査マット１１４への書き込みが行われる。具体的には、図９に示されるタイミングにおいて、ＣＫ端子を介して外部から入力されたクロック信号に同期する内部２相クロック信号φ１，φ２がＳＲＡＭ２２７の内部で生成されるものとすると、クロック信号φ１に同期してメモリマット１１３や検査マット１１４からのデータ読み出しが行われ、クロック信号φ２に同期してメモリマット１１３や検査マット１１４への書き込みが行われる。それにより、メモリマット１１３や検査マット１１４からのデータ読み出しと、メモリマット１１３や検査マット１１４へのデータ書き込みを別々のサイクルで行う場合に比べて処理に要する時間を短縮することができる。換言すれば、書き込みサイクルの前半でメモリマットからのデータ読み出しを行い、書き込みサイクルの後半でメモリマットへのデータ書き込みを行うことにより、ＥＣＣ機能を有するにもかかわらず、高速性を劣化させずにエラー検出及び訂正を行うことができる。
【００５４】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００５５】
例えば、ＥＣＣ機能ブロック回路２１において、データの１ビットエラーを訂正した後に（ステップＳ１７，Ｓ２６）、そのデータを再びメモリマット１１３へ書き込み、それを読み出してＥＣＣ機能ブロック回路２１において再びエラーチェック（ステップＳ１２，Ｓ２２）及びエラー訂正（ステップＳ１７，Ｓ２６）を行うようにすれば、２ビットエラーの訂正が可能とされる。従って、エラー訂正したデータをメモりマット１１３に再書き込みすることによってデータの信頼性の向上を図ることができる。
【００５６】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＳＲＡＭに適用した場合について説明したが、本発明はそれに限定されるものではなく、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）にも適用することができる。また、半導体メモリ単体で製品化される場合にも本発明を適用することができる。
【００５７】
本発明は、少なくともメモリマットを備えることを条件に適用することができる。
【００５８】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００５９】
すなわち、データサイズアライメント回路を直接周辺回路に設け、外部からの指定に応じて変更可能な有効ビット幅における最大のビット幅単位でメモリマットをアクセス可能とすることで、検査マットのビット構成の低減化を図ることができ、それによって、ＥＣＣ機能追加に伴うチップ面積の増加を最小限に抑えることができる。また、書き込みサイクルの前半でメモリマットからのデータ読み出しを行い、書き込みサイクルの後半でメモリマットへのデータ書き込みを行うことにより、高速性を劣化させずにＥＣＣ機能を搭載できる。
【図面の簡単な説明】
【図１】本発明にかかる半導体記憶装置の一例であるＳＲＡＭの全体的な構成例ブロック図である。
【図２】上記ＳＲＡＭが搭載されるマイクロコンピュータの全体的な構成例ブロック図である。
【図３】上記ＳＲＡＭにおける主要回路ブロックのレイアウト説明図である。
【図４】ＥＣＣ機能におけるハミングコードの説明図である。
【図５】図１に示されるＳＲＡＭにおける主要な外部端子と、その外部端子についての機能についての説明図である。
【図６】図１に示されるデータサイズアライメント回路で行われるデータサイズアライメント処理の説明図である。
【図７】上記ＳＲＡＭのライト動作時におけるＥＣＣ動作のフローチャートである。
【図８】上記ＳＲＡＭのリード動作時におけるＥＣＣ動作のフローチャートである。
【図９】上記ＳＲＡＭにおけるライト動作のタイミング図である。
【図１０】上記ＳＲＡＭにおけるリード動作のタイミング図である。
【図１１】上記ＳＲＡＭの比較対象とされるＳＲＡＭの構成例ブロック図である。
【符号の説明】
１０  メモリマット部
１１，１２，１３，１４  ＲＡＭ部
２０  間接周辺回路
２１  ＥＣＣ機能ブロック
２２  データラッチ回路
２３  データサイズアライメント回路
２４  入出力制御回路
１１１  行選択回路
１１２  列選択回路
１１３  メモリマット
１１４  検査マット
１１５，１１６  入出力回路
２２１  マイクロコンピュータ
２２２  バス
２２３  ＦＰＵ
２２４  ＣＰＵ
２２６  ＲＯＭ
２２７  ＳＲＡＭ
２２８  外部インタフェース
【図１】
2005044386.tif 000003
【図２】
2005044386.tif 000004
【図３】
2005044386.tif 000005
【図４】
2005044386.tif 000006
【図５】
2005044386.tif 000007
【図６】
2005044386.tif 000008
【図７】
2005044386.tif 000009
【図８】
2005044386.tif 000010
【図９】
2005044386.tif 000011
【図１０】
2005044386.tif 000012
【図１１】
2005044386.tif 000013