(57)【要約】【課題】ＣＲＣ機能を有し、ライト動作とリード動作を高速に行うことができる半導体装置を提供する。【解決手段】メモリセルアレイ（メモリセルアレイ１１）と、巡回冗長論理符号を生成する誤り検出符号生成回路（誤り検出符号生成回路２０）と、メモリセルアレイから読み出されたデータに巡回冗長論理符号を付加してデータ入出力端子を介して半導体装置の外部へリードデータとして出力し、或いは半導体装置の外部からライトデータが入力されて、前記メモリセルアレイへ書き込むデータを誤り検出符号生成回路に出力するデータ入出力部（データ入出力部１９）と、メモリセルアレイとデータ入出力部との間に配置されるバス配線（リードライトバス）と、誤り検出符号生成回路とデータ入出力部との間に配置される巡回冗長論理符号配線（ＣＲＣ信号線）と、を備える。【選択図】図１
2013073664.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数のメモリセルを有するメモリセルアレイと、
前記メモリセルアレイから読み出されたデータ、或いは前記メモリセルアレイへ書き込むデータに基づいて巡回冗長論理符号を生成する誤り検出符号生成回路と、
前記メモリセルアレイから読み出されたデータに前記巡回冗長論理符号を付加してデータ入出力端子を介して半導体装置の外部へリードデータとして出力し、或いは半導体装置の外部からライトデータが入力されて、前記メモリセルアレイへ書き込むデータを前記誤り検出符号生成回路に出力するデータ入出力部と、
前記メモリセルアレイと前記データ入出力部との間に配置され、前記メモリセルアレイから読み出されたデータ、または前記メモリセルアレイへ書き込むデータを転送するバス配線と、
前記誤り検出符号生成回路と前記データ入出力部との間に配置され、前記巡回冗長論理符号を転送する巡回冗長論理符号配線と、
を備えることを特徴とする半導体装置。
【請求項２】
前記データ入出力部は、半導体装置の外部において前記ライトデータに基づいて生成された巡回冗長符号が入力され、当該巡回冗長符号を前記誤り検出符号生成回路へ出力し、
前記誤り検出符号生成回路が、前記メモリセルアレイへ書き込むデータに基づいて生成した前記巡回冗長論理符号と前記巡回冗長符号とを比較し、比較結果が一致しない場合、前記ライトデータの再送要求を示す再送要求信号を外部へ出力することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記メモリセルアレイから読み出されたデータのうち一部のデータの論理レベルを変更し、変更したデータのビット列における位置を示すアドレス論理データを生成するデータバスインバージョン回路を備え、
前記誤り検出符号生成回路は、前記メモリセルアレイから読み出されたデータ、及び前記アドレス論理データに基づいて前記巡回冗長論理符号を生成し、
前記データ入出力部は、前記リードデータとともに前記巡回冗長論理符号を半導体装置の外部へ出力することを特徴とする請求項１または請求項２いずれか一項に記載の半導体装置。
【請求項４】
前記データ入出力部は、半導体装置の外部において前記ライトデータのうち一部のデータの論理レベルが変更された当該ライトデータのビット列における位置を示すアドレスデータが入力され、当該アドレスデータを前記誤り検出符号生成回路へ出力し、
前記誤り検出符号生成回路が、前記メモリセルアレイへ書き込むデータ、及び前記アドレスデータに基づいて前記巡回冗長論理符号を生成することを特徴とする請求項３に記載の半導体装置。
【請求項５】
前記データ入出力部は、
前記バス配線から入力されるメモリセルアレイから読み出されたデータと、前記巡回冗長論理符号配線から入力される前記巡回冗長論理符号とを保持するＦＩＦＯバッファと、
前記ＦＩＦＯバッファが保持するデータを、外部クロックの立ち上がり及び立下りに応じて順次外部へ出力するシリアライザと、を有し、
前記シリアライザは、前記巡回冗長論理符号を前記ＦＩＦＯバッファが保持するメモリセルアレイのデータの後に付加して順次出力することを特徴とする請求項１から請求項４いずれか一項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、巡回冗長検査機能を備える半導体装置に関する。
【背景技術】
【０００２】
半導体装置、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  ｍｅｍｏｒｙ）とメモリコントローラとの間においてデータの授受を行う際のデータの転送速度が高速化しつつある。そのため、データの授受を行う際に用いるデータバスが外部からのノイズなどの影響を受けやすくなり、転送データにエラーが発生する恐れがある。そこで、半導体装置が内部で生成した巡回冗長検査（ＣＲＣ：Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号（誤り検出符号）を、転送データに付加してメモリコントローラに出力する。そして、メモリコントローラでは、送られてきた転送データと誤り検出符号に基づいて転送データにエラーがあるか否かの判定処理を行う。そして、転送データにエラーがある場合、例えば半導体装置から転送データを再送することで、データバスにおけるデータ転送の信頼性を向上している。
特許文献１には、このような巡回冗長検査機能を備える半導体装置（ＤＲＡＭ）が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−８７４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１記載の半導体装置では、各々がデータを記憶するメモリセルを複数備えたメモリセルアレイと、外部のデータバスにデータを出力するデータアウトバッファ（データ入出力部）との間に、リードライトバス（バス配線）を設けている。特許文献１記載の半導体装置では、リード動作において、メモリセルアレイからのデータと、誤り検出符号生成回路がこれらのデータに基づいて演算した誤り検出符号とを、リードライトバス上で時分割処理する。そのため、データ入出力部は、リードライトバスに入力端子が接続されるＦＩＦＯバッファを備え、メモリセルアレイから読み出されたデータと、誤り検出符号とをそれぞれ時系列に取り込み保持する。データ入出力部は、リード動作において、このＦＩＦＯバッファが保持するデータを、外部クロックに同期して連続して外部のデータバスに出力する。
【０００５】
半導体装置において、例えば半導体装置のモードレジスタにＣＲＣを有効にするフラグが立っているかどうかによって、ＣＲＣを使用するか否かの判断が行なわれる。そのため、特許文献１記載の半導体装置において、上記リード動作を行う場合、ＣＲＣを使用するか否かの判断によってリードライトバス上のデータの取扱を変更する必要が発生し、ＦＩＦＯバッファの制御が複雑になるという問題がある。またリードライトバスにＣＲＣの制御が入ること、リードライトバスが誤り検出符号生成回路の出力にも接続されてメモリセルアレイの負荷（リードライトバスの容量）が増えることにより、半導体装置にアドレス及びデータが入力されてから書込みが完了するまでの時間（ライト時間）、又は、半導体装置にアドレスが入力されてから半導体装置からデータが出力されるまでの時間（リード時間）が長くなってしまうという問題がある。
【課題を解決するための手段】
【０００６】
本発明は、データを記憶する複数のメモリセルを有するメモリセルアレイと、前記メモリセルアレイから読み出されたデータ、或いは前記メモリセルアレイへ書き込むデータに基づいて巡回冗長論理符号を生成する誤り検出符号生成回路と、前記メモリセルアレイから読み出されたデータに前記巡回冗長論理符号を付加してデータ入出力端子を介して半導体装置の外部へリードデータとして出力し、或いは半導体装置の外部からライトデータが入力されて、前記メモリセルアレイへ書き込むデータを前記誤り検出符号生成回路に出力するデータ入出力部と、前記メモリセルアレイと前記データ入出力部との間に配置され、前記メモリセルアレイから読み出されたデータ、または前記メモリセルアレイへ書き込むデータを転送するバス配線と、前記誤り検出符号生成回路と前記データ入出力部との間に配置され、前記巡回冗長論理符号を転送する巡回冗長論理符号配線と、を備えることを特徴とする半導体装置である。
【発明の効果】
【０００７】
本発明の半導体装置によれば、リードライトバス（バス配線）と、巡回冗長論理符号配線とを別々に設けたことにより、リードライトバスとデータ入出部との間の回路構成を、ＣＲＣ機能を有さない従来の半導体装置の回路構成から変更する必要性が無くなる。そのため、ＣＲＣ機能を有しても、リードライトバスにおける時分割処理が不要となり、また、メモリセルアレイの負荷（リードライトバスの容量）が従来の半導体装置に比べて増えないので、半導体装置のライト動作とリード動作を従来の半導体装置と同程度にまで高速に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】半導体装置１０の構成を示すブロック図である。
【図２】半導体装置１０を含むメモリシステム１０ｓの構成を示すブロック図である。
【図３】誤り検出符号生成回路２０の構成を示すブロック図である。
【図４】データ入出力部１９の構成を示すブロック図である。
【図５】シリアライザ３５の回路構成を示す回路図である。
【図６】シリアライザ３５の動作を説明するためのタイミングチャートである。
【図７】半導体装置１０のライト動作（４ＩＯ入力）のタイミングチャートである。
【図８】半導体装置１０のリード動作（４ＩＯ出力）のタイミングチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
図１は、本発明を半導体装置１０、例えばクロックに同期して動作するＳＤＲＡＭ（シンクロナス・ダイナミック・ランダム・アクセス・メモリ）に適用した場合の半導体装置１０の概略構成を示す。なお、図１に示されている各回路ブロックは、全て単結晶シリコンのような１個の半導体チップ上に形成される。各回路ブロックは、例えば、ＰＭＯＳトランジスタ及びＮＭＯＳトランジスタ等の複数のトランジスタで構成される。また、◎印で示されているのは、当該半導体チップに設けられる外部端子としてのパッドであり、図示されている外部端子の他に外部から供給される電源電圧が印加される電源電圧端子が設けられる。
半導体装置１０は、メモリセルアレイ１１、ロウデコーダ１３、カラムデコーダ１４、センスアンプ１５、制御回路１８、データ入出力部１９、誤り検出符号生成回路２０、データバスインバージョン回路２１、及び警告信号出力部２２を含んで構成される。
【００１０】
半導体装置１０は、リード動作時、誤り検出符号生成回路２０において、誤り検出符号（以下ＣＲＣ符号）を生成し、リードデータの出力と同時にＣＲＣ符号を出力する。ＣＲＣ符号の生成方法としては、一例として、標準化団体（ＪＥＤＥＣ等）で規格化された巡回冗長検査手法を用いる方法があるが、これに限定されるものではない。本実施例では、８ＩＯ構成でバースト長ＢＬ８動作の場合（８×８＝６４ビットのメモリセルデータを８個のデータ入出力端子ＤＱからバースト長さ８で出力する動作）を例に説明する。この場合、それぞれのデータ入出力端子ＤＱのバースト長ＢＬの９ビット目に演算結果のＣＲＣ符号を出力する。
ここで、半導体装置１０を含むメモリシステムについて、図２を用いて説明する。図２は、半導体装置１０を含むメモリシステム１０ｓの構成を示すブロック図である。
半導体装置１０と通信関係にあるホストＣＰＵ（メモリコントローラ１０ｍ）は、半導体装置１０から送信されるデータとこのＣＲＣ符号とを受信し、ホストＣＰＵ自身で半導体装置１０から送信されるデータに基づいて演算部２０ｍにおいてＣＲＣ演算を行う。このホストＣＰＵは、比較器２０ｃを備え、この比較器２０ｃにおいて、自身が演算したＣＲＣ符号と、メモリから送信されたＣＲＣ符号との等価性を確認し、半導体装置−ホストＣＰＵ間のデータ線路でデータが正常に送信されているか否か（誤送信されていないか否か）を検出する。
【００１１】
また、半導体装置１０は、ライト動作時、ＣＲＣ手法を用いて、誤り検出符号生成回路２０において、ＣＲＣ符号をデータ受信と同時に生成する。本実施例では８ＩＯ構成でＢＬ８動作の場合（８×８＝６４ビットのデータを８個のデータ入出力端子ＤＱからバースト長さ８で入力してメモリセルへ書き込む動作）を例に示す。この場合、それぞれのデータ入出力端子ＤＱのＢＬの９ビット目には、ＣＰＵからの演算結果のＣＲＣ符号が入力される。
半導体装置１０は、誤り検出符号生成回路２０において、通信関係にあるホストＣＰＵ（メモリコントローラ１０ｍ）から送信されるＣＲＣ符号と、メモリ自身が受信したライトデータから生成したＣＲＣ符号とについての等価性を確認し、半導体装置１０−ホストＣＰＵ間のデータ線路で、データが誤送信されたか否かを検出することができる。さらに、本実施形態の半導体装置１０は、ＡＬＥＲＴ＿Ｎとよばれる端子が規格化されており、誤送信が検出されたときは警告信号ＡＬＥＲＴ＿ＮをＬレベル（活性レベル）で出力する。
【００１２】
なお、図１においては図示していないが、４ＩＯ構成でＢＬ８動作の場合（４×８＝３２ビットのメモリセルデータを４個のデータ入出力端子ＤＱからバースト長さ８で出力する動作）は、それぞれのデータ入出力端子ＤＱのＢＬの９、１０ビット目として演算結果のＣＲＣ符号を出力する。これは、８ＩＯ構成でＢＬ８動作の場合と、４ＩＯ構成でＢＬ４動作の場合では、必要なＣＲＣ演算結果のビット数が同じであるため、ＩＯ数が少ない４ＩＯ構成では、９，１０ビット目の２倍のビットを用いて合計８ビットのＣＲＣ演算結果を出力しなければならないからである。
【００１３】
以下簡単に半導体装置１０の構成について順番に説明する。
メモリセルアレイ１１（ビット線とワード線とに対応付けられているメモリセルを有するメモリセルアレイ）は、複数のメモリセルが行及び列のマトリックス状に配置された複数のバンクから構成される。図１においてはバンクｎを代表として示している。バンクｎは、記憶領域であるメモリセルを有している。例えば、バンクｎは、ワード線ＷＬとビット線ＤＬの交点にメモリセルＭＣを有する。
【００１４】
制御回路１８は、内部にクロック生成回路を備え、このクロック生成回路は、外部から供給される一定周波数のクロック信号ＣＫ、その論理反転信号／ＣＫ、及びクロックＣＫ及び／ＣＫが有効であることを示すクロックイネーブル信号ＣＫＥに基づいて内部回路（制御回路１８におけるコマンドデコーダ、データ入出力部１９等）を動作させる内部クロック信号を生成する。
半導体装置１０に外部から供給される制御信号としては、クロック信号ＣＫ、その論理反転信号／ＣＫ、及びクロックイネーブル信号ＣＫＥの他に次の制御信号がある。半導体装置１０を選択状態にするチップセレクト信号／ＣＳ（以下、外部メモリ制御信号ＣＳとする）、行アドレスストローブ信号／ＲＡＳ（以下、外部メモリ制御信号ＲＡＳとする）、列アドレスストローブ信号／ＣＡＳ（以下、外部メモリ制御信号ＣＡＳとする）、データの書込み動作を指示するライトイネーブル信号／ＷＥ（以下、外部メモリ制御信号ＷＥとする）などである。なお、以上の信号のうち符号の前に“／”が付されているものは、ロウレベル（Ｌレベル）が有効レベルであることを意味している。
【００１５】
制御回路１８は、内部にコマンドデコーダを備え、このコマンドデコーダは、これらの外部メモリ制御信号であるＣＳ信号、ＲＡＳ信号、ＣＡＳ信号、及びＷＥ信号とアドレス信号の一部をデコードして、外部から供給されるコマンドを復号する。本実施例の半導体装置１０に供給されるコマンドとしては、半導体装置の内部回路の活性化を指示するＡＣＴコマンド、読出しを指示するＲＥＡＤコマンド、書込みを指示するＷＲＩＴＥコマンド、制御回路１８におけるモードレジスタへの動作モードの設定を指示するＭＲＳコマンド、ＡＣＴコマンドにより活性化された内部回路の非活性化を指示するＰＲＥコマンドなどがある。
コマンドデコーダは、外部メモリ制御信号であるＣＳ信号、ＲＡＳ信号、ＣＡＳ信号、及びＷＥ信号をコマンド信号として、内部クロック信号に同期して取り込み、復号する。また、コマンドデコーダは、復号したコマンドに対応して内部コマンド信号、例えば、アクティブコマンド（ＡＣＴコマンド）、ライトコマンド（ＷＲＩＴＥコマンド）、リードコマンド（ＲＥＡＤコマンド）、プリチャージコマンド（ＰＲＥコマンド）それぞれに対応して内部アクティブ信号、内部ライト信号、内部リード信号、内部プリチャージ信号などを生成する。
また、制御回路１８は、内部にモードレジスタを備え、このモードレジスタは、外部メモリ制御信号であるＣＳ信号、ＲＡＳ信号、ＣＡＳ信号、及びＷＥ信号の活性レベルの組み合わせ入力によりアドレス信号Ａ０〜Ａｎを保持し、テスト動作モードへのエントリなど各動作モードの初期設定を行う。バースト長（ＢＬ）もモードレジスタに設定される。
【００１６】
制御回路１８は、モードレジスタに設定された各動作モード、コマンドデコーダからの内部コマンド信号に対応して、半導体装置１０内の各回路（アドレスバッファ、ロウデコーダ１３、カラムデコーダ１４、センスアンプ１５、データ入出力部１９、誤り検出符号生成回路２０、データバスインバージョン回路２１）を制御する制御信号を発生する。例えば、制御回路１８は、ロウデコーダ１３、カラムデコーダ１４、センスアンプ１５、データ入出力部１９、誤り検出符号生成回路２０、データバスインバージョン回路２１を活性制御する活性非活性制御信号を、内部アクティブ信号、内部プリチャージ信号の論理レベルの変化に対応してタイミング制御し、出力する。また、制御回路１８は、データ入出力部１９を活性制御するライト制御信号を、内部ライト信号の論理レベルの変化に対応してタイミング制御して出力する。
【００１７】
また、制御回路１８は、内部にアドレスバッファを備え、このアドレスバッファは、ＡＣＴコマンドにより活性化された状態で、外部から入力されるメモリセルの位置を示すアドレスデータ（以下、アドレスと略す）を、マルチプレックス方式で内部に取り込む。マルチプレックス方式とは、ＡＣＴコマンドによりメモリセルの位置を示す行アドレス（ロウアドレス）を、ＲＥＡＤコマンドまたはＷＲＩＴＥコマンドによりメモリセルの位置を示す列アドレス（カラムアドレス）を、時系列に取り込む方式である。
ロウデコーダ１３は、ＡＣＴコマンドにより活性化された状態で、アドレスバッファにより取り込まれたロウアドレスをデコードし、メモリセルアレイ１１内の対応するワード線（例えば上記ワード線ＷＬ）を選択する。選択されたワード線に接続される複数のメモリセルは、それぞれのビット線（メモリセルＭＣであればビット線ＤＬ）と接続され、各メモリセルのデータはビット線に読み出される。
センスアンプ１５は、ＡＣＴコマンドにより活性化され、内部リード信号または内部ライト信号によりビット線に読み出された電圧を増幅し、半導体装置１０がメモリセルからのデータを読み出す動作（リード動作）にあるとき、増幅したデータを選択されるカラムスイッチ、及びリードライトバスを介して、リードデータＤＡＴＡ［６３：０］をデータ入出力部１９、及び誤り検出符号生成回路２０に対して出力する。また、センスアンプ１５は、半導体装置１０がメモリセルへの書き込み動作（ライト動作）にあるとき、誤り検出符号生成回路２０の判定結果に基づいてデータ入出力部１９が出力するライトデータＤＡＴＡ［６３：０］をカラムスイッチ及びリードライトバスを介してメモリセルへ書き込む。
【００１８】
カラムデコーダ１４は、ＡＣＴコマンドに続くＷＲＩＴＥコマンド（またはＲＥＡＤコマンド）により活性化された状態で、アドレスバッファにより取り込まれたカラムアドレスをデコードしてメモリセルアレイ１１内の対応するカラム（ビット線）を選択する。
【００１９】
誤り検出符号生成回路２０は、半導体装置１０のリード動作において、制御回路１８から入力される制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫにより活性化され、メモリセルアレイ１１からリードライトバスを介して読み出されたリードデータＤＡＴＡ［６３：０］、及びデータバスインバージョン回路２１からＤＭ／ＤＢＩバスを介して入力されるデータバスインバージョン信号ＤＢＩ［７：０］に基づいて、ＣＲＣ符号（８ビット）を生成して、ＣＲＣ信号線（巡回冗長論理符号配線）を介してデータ入出力部１９に対して出力する。
このように、ＣＲＣ信号線は、リードライトバスとは別個に設けられ、誤り検出符号生成回路２０とデータ入出力部１９との間でＣＲＣ符号（８ビット）のやり取りを行なう。
また、誤り検出符号生成回路２０は、半導体装置１０のライト動作において、制御回路１８から入力される制御信号Ｗｒｉｔｅ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫにより活性化され、データ入出力部１９からリードライトバスを介して入力されるライトデータＤＡＴＡ［６３：０］、データ入出力部１９からＤＭ／ＤＢＩバスを介して入力されるデータバスインバージョン信号ＤＢＩ［７：０］、及びデータ入出力部１９からＣＲＣ信号線を介して入力されるＣＲＣ符号ＣＲＣ［７：０］（巡回冗長符号）に基づいて、メモリセルに書き込むべきデータが正しいか否か（データ入出力部１９が受信したデータが正しいデータか否か）を判定し、判定結果を判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇとして警告信号出力部２２に対して出力する。警告信号出力部２２は、判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇが判定結果が否であることを示す場合に警告信号ＡＬＥＲＴ＿ＮをＬレベル（活性レベル）で出力する。
【００２０】
データ入出力部１９は、半導体装置１０のリード動作において、メモリセルアレイ１１からリードライトバスを介して読み出されたリードデータＤＡＴＡ［６３：０］、及び誤り検出符号生成回路２０が生成したＣＲＣ符号ＣＲＣ［７：０］を、データ入出力端子ＤＱ０〜ＤＱｎ（ｎ＝３または７）を介して外部に出力する。
また、データ入出力部１９は、ライト動作において外部からデータ入出力端子ＤＱ０〜ＤＱｎを介して入力されるメモリセルへ書き込むべきデータ、すなわちライトデータＤＡＴＡ［６３：０］を、リードライトバスを介してメモリセルアレイ１１と誤り検出符号生成回路２０とに供給し、外部のメモリコントローラ（不図示）がＣＲＣ演算した結果であるＣＲＣ符号ＣＲＣ［７：０］を、ＣＲＣ信号線を介して誤り検出符号生成回路２０へ供給する。
このように、ＣＲＣ符号ＣＲＣ［７：０］の入出力は、データ入出力端子ＤＱ０〜ＤＱｎを介して実行される。このため、データ入出力部１９は、データ（リードデータ、ライトデータ）をリードライトバスとデータ入出力端子ＤＱとの間でやりとりさせ、ＣＲＣ符号をＣＲＣ信号線（８ビットのデータ伝送線）とデータ入出力端子との間でやり取りするように制御する必要がある。このため、データ入出力端子ＤＱを介して入出力される一連のデータ及びＣＲＣ符号のデータのかたまりのうち、どのデータがＣＲＣ符号に対応するかを予め設定しておく必要がある。一例として、本実施例では、×８ＩＯ構成でデータのバースト長がＢＬ８の場合、データの入出力に続く９ビット目（ＢＬ９）がＣＲＣ符号に対応する。また、×４ＩＯ構成でデータのバースト長がＢＬ８の場合、データの出力に続く９ビット目と１０ビット目の２ビットがＣＲＣ符号に対応する。このため、データ入出力部１９は、ＦＩＦＯ（Ｆｕｒｓｔ  Ｉｎ  Ｆｕｒｓｔ  Ｏｕｔ）回路（不図示）を備え、リード時は、ＣＲＣ信号線からＣＲＣ符号ＣＲＣ［７：０］をリードデータの９，１０ビット目に出力するように制御し、また、ライト時にはライトデータの９，１０ビット目からＣＲＣ符号ＣＲＣ［７：０］をＣＲＣ信号線に供給する。
【００２１】
また、データ入出力部１９は、ＤＭ／ＤＢＩ端子を備える。このＤＭ／ＤＢＩ端子はメモリコントローラとデータマスク信号又はデータバスインバージョン信号をやり取りする端子である。データ入出力部１９は、ＤＭ／ＤＢＩバスを介してデータバスインバージョン回路２１と接続され、データバスインバージョン信号ＤＢＩ［７：０］のやり取りを行う。
このデータマスク信号は、ライト動作時にコントローラからライトデータと共にメモリに供給され、対応するライトデータをマスクする信号であり、リード動作時には使用されない信号である。
また、データバスインバージョン信号は、ライト動作時にコントローラからライトデータと共にメモリに供給され、また、リード動作時には、メモリからコントローラへリードデータと共に出力される信号である。データバスインバージョン信号は、送信側のデバイス（例えば、半導体装置１０）が出力時に対応するデータ（例えば、リードデータ）を反転したか否かを受信側（例えばコントローラ）に伝える信号である。受信側のデバイスは、データバスインバージョン信号に応じて、受信したデータをそのまま取り込むか反転して取り込むかを切り替える。データバスインバージョン信号は、例えばデータの多数決論理をとり、一部のデータを反転させて伝送路におけるリードデータ、またはライトデータのスウィング回数を減らし、シグナルインテグリティーの改善に寄与する機能を有する。ただし送信側は、上述の通りデータの反転をしたかどうかを送信先に教える必要があり、このデータバスインバージョン信号が用いられる。受信側はデータバスインバージョン信号を用いてデータを復元する。半導体装置１０のリード時におけるデータバスインバージョン信号（アドレス論理データ）は、データバスインバージョン回路２１で生成される。また、メモリコントローラが送信するライトデータに基づいて生成するデータバスインバージョン信号（アドレスデータ）は、ＤＭ／ＤＢＩ端子を介してデータ入出力部１９に入力される。
なお、データマスク信号の機能は、本願とは直接には関係しないため、半導体装置１０内部において、データバスインバージョン信号ＤＭ／ＤＢＩ［７：０］とは表さず、データバスインバージョン信号ＤＢＩ［７：０］と表している。
【００２２】
半導体装置１０内では、リード動作時に、データバスインバージョン回路２１がデータバスインバージョン信号ＤＢＩ［７：０］を生成する。データバスインバージョン回路２１は、リードライトバスからリードデータＤＡＴＡ［６３：０］を受け取り、所定の処理（上記多数決処理）を行い、データバスインバージョン信号ＤＢＩ［７：０］を生成し、ＤＭ／ＤＢＩバスを介して誤り検出符号生成回路２０に供給する。
なお、データマスク信号とデータバスインバージョン信号とは、本実施形態においては共通の端子で入出力を行うため、どちらか一方を排他的に使用するか、又は、どちらも使用しないこととなる。この設定は、制御回路１８内のモードセットレジスタに動作モードを設定しておくことで切替えが可能である。
【００２３】
本発明に関係するコマンドが、外部から供給される場合、半導体装置１０が行う動作について簡単に述べる。
まず、外部からのクロック信号ＣＫの立ち上り時（／ＣＫの立下り時）に、外部メモリ制御信号ＣＳ、ＲＡＳがＬレベルであり外部メモリ制御信号ＣＡＳ、ＷＥがＨレベルであるときに、コマンドデコーダ１６にＡＣＴコマンドが入力される。このとき、コマンドデコーダ１６の内部コマンド信号のうち、内部アクティブ信号がＬレベルからＨレベルへ変化する。この内部アクティブ信号のＨレベルへの変化に対応して、半導体装置１０の内部でアクティブ動作が行われる。すなわち、ロウデコーダ１３及び制御回路１８におけるアドレスバッファは、活性化を示す活性非活性制御信号が入力され、活性化される。また、ＡＣＴコマンド入力と同時に、外部入力のアドレス信号がアドレスバッファにラッチされる。そして、活性化されたロウデコーダ１３は、ラッチされたアドレス信号をデコードし、メモリセルアレイ１１のワード線を選択および駆動する。また、ＡＣＴコマンド入力により、センスアンプ１５、データ入出力部１９も、活性化を示す活性非活性制御信号が入力され、活性化される。制御回路１８は、内部で活性化を示す活性非活性制御信号をタイミング調整し、センスアンプ１５へ出力する。タイミング調整した信号が入力されるセンスアンプ１５は、ビット線の電圧を増幅する。
【００２４】
次に、書き込み動作においては、クロック信号ＣＫの立ち上り時に、外部メモリ制御信号ＣＳ、ＣＡＳ、ＷＥがＬレベルであり、外部メモリ制御信号ＲＡＳがＨレベルであるときに、制御回路１８におけるコマンドデコーダにＷＲＩＴＥコマンドが入力される。このとき、コマンドデコーダの内部コマンド信号の中で、内部ライト信号がＬレベルからＨレベルへ変化する。この内部ライト信号のＨレベルへの変化に対応して、半導体装置１０の内部でライト動作が行われる。すなわち、既にＡＣＴコマンドにより活性化されているアドレスバッファは、今度はＷＲＩＴＥコマンドとともに入力される外部入力のアドレス信号をラッチし、ＷＲＩＴＥコマンドにより活性化されるカラムデコーダ１４は、ラッチされたアドレス信号に基づいて、メモリセルアレイ１１のビット線を選択する。制御回路１８は、ライト制御信号をタイミング制御し、データ入出力部１９へ出力する。ライト制御信号が入力されるデータ入出力部１９は、選択されたメモリセルアレイ１１のビット線をリードライトバス及びカラムスイッチを介して、センスアンプ１５とともに駆動し、外部から入力されるライトデータを、メモリセルに書き込む。
【００２５】
また、読み出し動作においては、クロック信号ＣＫの立ち上り時に、外部メモリ制御信号ＣＳ、ＣＡＳがＬレベルであり、外部メモリ制御信号ＲＡＳ、ＷＥがＨレベルであるときに、制御回路１８におけるコマンドデコーダにＲＥＡＤコマンドが入力される。このとき、コマンドデコーダの内部コマンド信号の中で、内部リード信号がＬレベルからＨレベルへ変化する。この内部リード信号のＨレベルへの変化に対応して、半導体装置１０の内部でリード動作が行われる。すなわち、既にＡＣＴコマンドにより活性化されているアドレスバッファは、今度はＲＥＡＤコマンドとともに入力される外部入力のアドレス信号をラッチし、ＲＥＡＤコマンドにより活性化されるカラムデコーダ１４は、ラッチされたアドレス信号に基づいて、メモリセルアレイ１１のビット線を選択する。制御回路１８は、リード制御信号をタイミング制御し出力する。リード制御信号が入力されるデータ入出力部１９は、センスアンプ１５により増幅されたメモリセルアレイ１１のビット線の電圧が、カラムスイッチ及びリードライトバスを介してリードデータＤＡＴＡ［６３：０］として入力され、また、誤り検出符号生成回路２０が生成したＣＲＣ符号ＣＲＣ［７：０］がＣＲＣ信号線を介して入力され、これらの両データを外部へデータ入出力端子ＤＱを介して出力する。
【００２６】
読み出し動作または書き込み動作に続いてスタンバイ状態に移行する際、クロック信号ＣＫの立ち上り時に、外部メモリ制御信号ＣＳ、ＲＡＳ、ＷＥがＬレベルであり、外部メモリ制御信号ＣＡＳがＨレベルであるときに、制御回路１８におけるコマンドデコーダにＰＲＥコマンドが入力される。このとき、コマンドデコーダ１６の内部コマンド信号の中で、内部プリチャージ信号がＬレベルからＨレベルへ変化する。この内部プリチャージ信号のＨレベルへの変化に対応して、半導体装置１０の内部でプリチャージ動作が行われる。すなわち、ロウデコーダ１３は、非活性化を示す活性非活性制御信号が入力されて非活性化され、メモリセルアレイ１１のワード線が非選択状態となり、メモリセルアレイ１１のビット線が所定の電圧へプリチャージされ、半導体装置１０はスタンバイ状態（ＩＤＬＥ）となる。また、ＰＲＥコマンド入力により、カラムデコーダ１４、センスアンプ１５、データ入出力部１９にも、非活性化を示す活性非活性制御信号が入力され、非活性化される。
【００２７】
また半導体装置１０に動作モードを設定するには、クロック信号ＣＫの立ち上り時に、外部メモリ制御信号ＣＳ、ＲＡＳ、ＷＥ、ＣＡＳが全てＬレベルであるときに、制御回路１８におけるコマンドデコーダにＭＲＳコマンドが入力される。制御回路１８におけるモードレジスタは、ＭＲＳコマンドが入力され、入力されるアドレスの論理が所定の論理である場合、半導体装置１０が移行する動作モードを示すコード（ＭＲＳコード）を生成する。このＭＲＳコードは、モードレジスタにラッチされ、制御回路１８が半導体装置１０内の各回路の動作（例えば、バースト長さＢＬの設定、或いはデータ入出力部１９のメモリセルへの誤りデータ書込み動作を許可するか否か）を制御するために用いられる。
なお、ＭＲＳコマンドが供給され、上記テスト動作モードへ移行した半導体装置１０に、ＡＣＴコマンド、ＲＥＡＤコマンド等を供給する場合、半導体装置１０は供給されるコマンドが指示する上述した動作を行う。
また、このＭＲＳコードは、再びＭＲＳコマンドが供給されるまではモードレジスタに保持される。
【００２８】
続いて、図１に示す誤り検出符号生成回路２０の構成について説明する。
図３は、誤り検出符号生成回路２０の構成を示すブロック図である。
図３に示す様に、誤り検出符号生成回路２０はオア回路１０１、８ビットＣＲＣ符号生成回路１０２、フリップフロップ回路１０３、バッファ回路１０４、遅延回路１０５、８ビットＣＲＣ符号判定回路１１０（８ビットＣＲＣ符号比較回路１１１、ラッチ回路１１２、アンド回路１１３、及び遅延回路１１４）を含んで構成される。
オア回路１０１は、制御回路１８から入力される制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫと制御信号Ｗｒｉｔｅ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫとの論理和を演算し、演算結果である出力信号を、８ビットＣＲＣ符号生成回路１０２を構成するラッチ回路１０２ａに対して出力する。オア回路１０１は、制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫと制御信号Ｗｒｉｔｅ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫとのいずれか一方が活性レベル（Ｈレベル）になると、Ｈレベルの出力信号をラッチ回路１０２ａに対して出力する。
【００２９】
８ビットＣＲＣ符号生成回路１０２は、ラッチ回路１０２ａ、及び７２入力排他的論理和回路１０２ｂを含んで構成される。
ラッチ回路１０２ａは、リードライトバス、及びＤＭ／ＤＢＩバスを介してそれぞれ入力されるデータ（リードデータＤＡＴＡ［６３：０］またはライトデータＤＡＴＡ［６３：０］）、データバスインバージョン信号ＤＢＩ［７：０］を、オア回路１０１の出力信号がＨレベルになると保持するとともに、保持した信号をデータ信号Ｄ［７１：０］として７２入力排他的論理和回路１０２ｂに出力する。
ここで、データ信号Ｄ［７１：０］は、データ（リードデータＤＡＴＡ［６３：０］またはライトデータＤＡＴＡ［６３：０］）に対応する上位のデータ信号Ｄ［７１：８］と、データバスインバージョン信号ＤＢＩ［７：０］に対応するデータ信号Ｄ［７：０］から構成される。
７２入力排他的論理和回路１０２ｂは、ラッチ回路１０２ａから入力されるデータ信号Ｄ［７１：０］を用いて、ＸＯＲ演算（排他的論理和演算）し、ＣＲＣ演算結果として８ビットのＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］（巡回冗長論理符号）を生成する。７２入力排他的論理和回路１０２ｂは、例えば７個の多入力排他的論理和回路ＸＯＲ＿０〜多入力排他的論理和回路ＸＯＲ＿７（不図示）を含んで構成され、多入力排他的論理和回路各々は多入力の論理レベルのうちに偶数個のＬレベル（論理「０」）がある場合、出力端子からＬレベル（論理「０」）の出力信号（ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ）を出力する。また、多入力排他的論理和回路各々はは、多入力の論理レベルのうちに奇数個のＬレベルがある場合、Ｈレベル（論理「１」）の出力信号（ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ）を出力する。
【００３０】
遅延回路１０５は、ラッチ回路１０２ａのラッチ動作、及び７２入力排他的論理和回路１０２ｂの演算動作に必要となる時間分の遅延時間が設定され、制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫを遅延させた信号をフリップフロップ回路１０３、及びバッファ回路１０４に出力する。
フリップフロップ回路１０３は、７２入力排他的論理和回路１０２ｂの演算結果であるＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］を、遅延された制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫが活性レベル（Ｈレベル）になると保持するとともに、保持した信号をバッファ回路１０４に出力する。バッファ回路１０４は、フリップフロップ回路１０３が保持するＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］を、遅延された制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫが活性レベル（Ｈレベル）になると、ＣＲＣ符号ＣＲＣ［７：０］としてデータ入出力部１９に対して出力する。データ入出力部１９は、リード動作において、このＣＲＣ符号ＣＲＣ［７：０］をデータ入出力端子ＤＱから半導体装置１０のリード時のＣＲＣ結果（Ｒｅａｄ  ＣＲＣ  ｒｅｓｕｌｔ）として出力する。
【００３１】
８ビットＣＲＣ符号判定回路１１０は、８ビットＣＲＣ符号比較回路１１１、ラッチ回路１１２、アンド回路１１３、及び遅延回路１１４を含んで構成される。また、８ビットＣＲＣ符号比較回路１１１は、排他的論理和回路１１１ａとオア回路１１１ｂを含んで構成される。
排他的論理和回路１１１ａは、７２入力排他的論理和回路１０２ｂの演算結果であるＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］と、バッファ回路１０４の出力信号であるＣＲＣ符号ＣＲＣ［７：０］とのＸＯＲ演算（排他的論理和演算）し、演算結果をオア回路１１１ｂに出力する。この排他的論理和回路１１１ａは、例えば８個のＸＯＲ回路（排他的論理和回路）から構成され、各々のＸＯＲ回路において、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］の１ビットとＣＲＣ符号ＣＲＣ［７：０］の対応する１ビットとの（例えば、ｉ＝０〜７としてＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［ｉ］とＣＲＣ符号ＣＲＣ［ｉ］との）排他的論理和を演算し、合計８ビットの出力信号をオア回路１１１ｂに出力する。排他的論理和回路１１１ａは、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］の論理レベルとＣＲＣ符号ＣＲＣ［７：０］の論理レベルとが全て一致する場合、全てＬレベルの出力信号を出力する。一方、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］の論理レベルとＣＲＣ符号ＣＲＣ［７：０］の論理レベルとが一つでも一致しない場合、一致するビットについてはＬレベルを出力するが、一致しないビットに対してはＨレベルを出力する。
オア回路１１１ｂは、排他的論理和回路１１１ａからの８ビットの出力信号を論理和演算し、演算結果をラッチ回路１１２に対して出力する。従って、８ビットＣＲＣ符号比較回路１１１は、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］の論理レベルとＣＲＣ符号ＣＲＣ［７：０］の論理レベルとが全て一致する場合、Ｌレベルの出力信号をラッチ回路１１２に対して出力し、一つでも一致しない場合、Ｈレベルの出力信号をラッチ回路１１２に対して出力する。
【００３２】
遅延回路１１４は、８ビットＣＲＣ符号生成回路１０２の動作（ラッチ回路１０２ａのラッチ動作、及び７２入力排他的論理和回路１０２ｂの演算動作）、及び８ビットＣＲＣ符号比較回路１１１の比較動作に必要とされる時間分の遅延時間が設定され、制御信号ＣＲＣ  Ｃａｐｔｕｒｅ  ＣＬＫを遅延させた信号をラッチ回路１１２、及びアンド回路１１３に出力する。
ラッチ回路１１２は、８ビットＣＲＣ符号比較回路１１１の比較結果を、遅延された制御信号ＣＲＣ  Ｃａｐｔｕｒｅ  ＣＬＫが活性レベル（Ｈレベル）になると保持するとともに、保持した信号をアンド回路１１３に出力する。アンド回路１１３は、ラッチ回路１１２が保持する８ビットＣＲＣ符号比較回路１１１の比較結果と、遅延された制御信号ＣＲＣ  Ｃａｐｔｕｒｅ  ＣＬＫとの論理積を演算し、演算結果として判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇを制御回路１８に対して出力する。
すなわち、８ビットＣＲＣ符号比較回路１１１、ラッチ回路１１２、アンド回路１１３、及び遅延回路１１４を含んで構成される８ビットＣＲＣ符号判定回路１１０は、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］の論理レベルとＣＲＣ符号ＣＲＣ［７：０］の論理レベルとが全て一致する場合、Ｌレベルの判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇを警告信号出力部２２に対して出力し、一つでも一致しない場合、Ｈレベルの判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇを警告信号出力部２２に対して出力する。
【００３３】
続いて、図１に示すデータ入出力部１９の構成について、図４を用いて説明する。
図４は、データ入出力部１９の構成を示すブロック構成図であり、図４において、１つのデータ入出力端子ＤＱについて示している。このデータ入出力部１９は、図１に示すリードデータＤＡＴＡ［６３：０］のうちリードデータＤＡＴＡ［７：０］、ＣＲＣ符号ＣＲＣ［７：０］のうちＣＲＣ符号ＣＲＣ［０］、及びＣＲＣ符号ＣＲＣ［４］が入力されるデータ入出力部であり、データ入出力端子ＤＱ０に対応して設けられるデータ入出力部である。なお、他のデータ入出力部も複数のデータ入出力端子ＤＱ各々に対応して設けられるが、図４に示す制御回路１８が、これら全てのデータ入出力部１９に対して共通に設けられる。
データ入出力部１９は、リードライトバスを介して入力されるリードデータＤＡＴＡ［７：０］に、リードライトバスとは別途設けられるＣＲＣ信号配線を介して入力されるＣＲＣ符号ＣＲＣ［０］、及びＣＲＣ符号ＣＲＣ［４］を付加して、データ入出力端子ＤＱから出力する。
【００３４】
制御回路１８は、ＦＩＦＯ制御回路６１、シリアライザ制御回路６３、及びＯＣＤ制御回路６４を含んで構成される。なお、図４において、制御回路１８は、図１に示す制御回路１８のうち、データ入出力動作に係る部分を抜き出して示している。
ＦＩＦＯ制御回路６１は、制御回路１８が内部に備えるクロック生成回路が発生する外部クロック信号ＣＫに同期したクロック信号ＤＬＬ＿ｃｌｋが入力され、このクロック信号ＤＬＬ＿ｃｌｋに基づいて、制御信号ｒｏｎ［２：０］、制御信号ｐａｒａ２ｓｅｒ＿ｅｎ、制御信号ｃｒｃ＿ｅｎ、クロック信号ｄｌｌ＿ｃｌｋ、クロック信号ｄｒｃｌｋ［１：０］、及びクロック信号ｄｒｍｕｘｃｌｋを出力する。
シリアライザ制御回路６３は、クロック信号ｄｌｌ＿ｃｌｋ、制御信号ｐａｒａ２ｓｅｒ＿ｅｎ、及び制御信号ｃｒｃ＿ｅｎが入力され、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［５：０］をシリアライザ３５に出力する。
ＯＣＤ制御回路６４は、出力ドライバ４０のインピーダンス値を調整するイネーブル信号ｄｑ＿ｅｎ［２：０］を、ＦＩＦＯ制御回路６１がＲｏｎ／ＯＤＴ  ｃｏｄｅに基づいて出力する制御信号ｒｏｎ［２：０］、シリアライザ制御回路６３が出力する制御信号ｄｒｖ＿ｔａｒｍ、制御回路１８が出力する制御信号ｄｑ＿ｄｉｓｅｂｌｅに基づいて生成する。なお、本実施形態において、ＯＣＤ制御回路６４の動作は、本発明に直接関係しないので、詳細な説明は省略するものとし、イネーブル信号ｄｑ＿ｅｎ［２：０］は、Ｒｏｎ／ＯＤＴ  ｃｏｄｅにより全てＨレベルに設定されるものとする。
【００３５】
データ入出力部１９は、ＦＩＦＯ回路３１、ＦＩＦＯポインタ３２、マルチプレクサ３３、リタイマ回路３４、シリアライザ３５、フリップフロップ回路３６、レベルシフタ３７、論理回路部３８、出力ドライバゲート駆動回路３９ｕ、出力ドライバゲート駆動回路３９ｄ、及び出力ドライバ４０を含んで構成される。また、データ入出力部１９は、レシーバ５１、レシーバ５２、ＷｒｉｔｅＦＩＦＯバッファ５３、シリアルパラレル変換回路５４を備えている。
【００３６】
ＦＩＦＯ回路３１は、例えば、リードデータＤＡＴＡ［７：０］各々に対応した８個のＦＩＦＯバッファ（不図示）と、ＣＲＣ符号ＣＲＣ［４］、ＣＲＣ符号ＣＲＣ［０］に各々に対応した２個のＣＲＣＦＩＦＯバッファを備えている。
ところで、データ入出力部１９からデータ入出力端子ＤＱへのデータリード動作として、所定の間隔でカラムアドレスを更新して次々とデータを読み出して外部に連続出力するバーストリードが知られている。このようなバーストリードを実行すると、先行して半導体装置１０に対して供給されたリードコマンドの対象データがまだデータ入出力部１９に保持されているタイミングで、その後に供給されたリードコマンドの対象データをさらに取り込む状態が生じ得る。そのため、データ入出力部１９の上書きによる誤動作を防止すべく、ラッチ回路を多段備えたＦＩＦＯバッファを用いてデータ入出力部１９を構成し、所定の時間にわたって入力されたデータを保持し、入力順に従って順次出力するように制御する必要がある。例えば、バーストリード動作の際、外部クロックの周波数が低くなるほどアクセス時間が長くなる一方で、出力バッファ回路にデータが転送されるタイミングが相対的に早くなるので、このような動作状態になっても出力バッファ回路が確実にデータを保持できるようにする必要がある。
【００３７】
そこで、ＦＩＦＯ回路３１における上記ＦＩＦＯバッファ各々は、例えば、６ビットのラッチ回路（不図示）を含んで構成される。この６ビットラッチ回路は、６回の転送動作（６回のリードコマンドでデータ入出力端子ＤＱ０からデータを連続出力するデータ出力動作）の計６ビット分をそれぞれラッチし、ラッチされた順に所定のタイミングで出力する。そのため、６ビットのラッチ回路は、例えば６段のラッチ回路を接続して構成される。６段のラッチ回路は、それぞれ入力側のスイッチ部と、レジスタ部と、出力側のスイッチ部が直列接続されて構成されている。各段の入力側のスイッチ部には、入力データ（リードデータＤＡＴＡまたはＣＲＣ符号の１ビット）が入力される。また、各段の出力側のスイッチ部は、８個のＦＩＦＯバッファでは、セレクタ（マルチプレクサ３３）に共通に接続され、２個のＣＲＣＦＩＦＯバッファでは、シリアライザ３５に接続される。
【００３８】
ＦＩＦＯ回路３１は、ＦＩＦＯポインタ３２が出力するＯｕｔＰｏｉｎｔｅｒに応じて、６段のラッチ回路のうち１段を選択して出力を行い、ＩｎＰｏｉｎｔｅｒに応じて６段のラッチ回路のうち１段を選択して入力を行なう。
ＦＩＦＯ回路３１においては、６段のラッチ回路の順番に従って、ＦＩＦＯポインタ３２から６ビットのＩｎＰｏｉｎｔｅｒ（選択信号ＳＥＬａ＜０＞〜ＳＥＬａ＜５＞とする）が入力側の各スイッチ部に供給されるとともに、ＦＩＦＯポインタ３２から６ビットのＯｕｔＰｏｉｎｔｅｒ（選択信号ＳＥＬｂ＜０＞〜ＳＥＬｂ＜５＞とする）が出力側の各スイッチ部に供給される。例えば、初段のラッチ回路における入力側のスイッチ部、及び出力側のスイッチ部は、選択信号ＳＥＬａ＜０＞、ＳＥＬｂ＜０＞がＨレベルのときに通過状態となる一方、選択信号ＳＥＬａ＜０＞、ＳＥＬｂ＜０＞がＬレベルのときに遮断状態となる。２段目以降のラッチ回路についても、同様に通過状態又は遮断状態が選択信号ＳＥＬａ＜１＞〜ＳＥＬａ＜５＞、ＳＥＬｂ＜１＞〜ＳＥＬｂ＜５＞により切り替え制御される。
【００３９】
６段のラッチ回路の各レジスタ部には、各入力側のスイッチ部を通過した１ビットの保持データ（リードデータＤＡＴＡまたはＣＲＣ符号の１ビット）が安定に保持される。この場合、入力データの取り込みタイミングに合わせて、ＦＩＦＯポインタ３２が順番に選択信号ＳＥＬａ＜０＞〜ＳＥＬａ＜５＞を異なるタイミングでＨレベルにすることで、６回の転送動作の６ビット分を各ラッチ回路のレジスタ部にラッチすることができる。同様に、ＦＩＦＯポインタ３２が順番に選択信号ＳＥＬｂ＜０＞〜ＳＥＬｂ＜５＞を異なるタイミングでＨレベルにすることで、６ビット分をラッチされた順番で各ラッチ回路からマルチプレクサ３３に対して出力することができる。
【００４０】
本実施形態では、ＣＲＣ符号を外部に出力する場合は、外部クロックＣＫ（及び外部クロック／ＣＫ）の５サイクル（５ｔＣＫ）毎に、ＣＲＣ符号を外部に出力しない場合は、外部クロックＣＫ（及び外部クロック／ＣＫ）の４ｔＣＫ毎に、リードコマンドが供給されるバーストリード動作を前提とする。
以下では、ＣＲＣ符号を外部に出力する場合について説明する。
制御回路１８は、リードコマンド（Ｒｅａｄ  ｃｍｄ）が供給された後の所定のタイミング（リードデータＤＡＴＡの論理が確定するタイミングで）、クロック信号Ｄａｔａ  Ｌａｔｃｈ  ｃｌｋを発生させる。また、制御回路１８におけるＦＩＦＯ制御回路６１は、クロック信号ｄｒｍｕｘｃｌｋを発生させる。クロック信号Ｄａｔａ  Ｌａｔｃｈ  ｃｌｋ、クロック信号ｄｒｍｕｘｃｌｋは、外部クロックＣＫの５ｔＣＫ毎にＦＩＦＯポインタ３２に入力される。各ＦＩＦＯバッファの６ビットラッチ回路では、６段のラッチ回路が順番に通過状態となるように制御される。そのため、ＦＩＦＯポインタ３２は、入力側の選択信号ＳＥＬａ＜０：５＞を５ｔＣＫごとに切り替わりながら順番にＨレベルとする。各ＦＩＦＯバッファでは、最初のデータ（リードデータＤＡＴＡの８ビット、ＣＲＣ符号ＣＲＣの２ビット）の各ビットが初段の各ラッチ回路の保持データとしてラッチされ、それ以降は同様に５サイクルおきに各データが順番に他のラッチ回路にラッチされていく。
【００４１】
各ＦＩＦＯバッファのラッチ回路の段数は６段であるので、ＦＩＦＯポインタ３２は出力側の６ビットの選択信号ＳＥＬｂ＜０：５＞を出力する。この場合も、選択信号ＳＥＬｂ＜０：５＞は５サイクルごとに切り替わり、各ＦＩＦＯバッファにおいて、各ラッチ回路の保持データがラッチされた順にマルチプレクサ３３に出力する。また、各ＣＲＣＦＩＦＯバッファは、６段のラッチ回路が保持するデータをシリアライザ３５（パラレルシリアル変換回路）に出力する。
【００４２】
マルチプレクサ３３は、クロック信号ｄｒｍｕｘｃｌｋ、及びＦＩＦＯバッファが保持する８ビットのデータが入力され、８ビットのデータのうち４ビットのデータを選択して、次段のリタイマ回路３４に出力する。マルチプレクサ３３は、クロック信号ｄｒｍｕｘｃｌｋが入力されると、クロック信号ｄｌｌ＿ｃｌｋの２周期分の期間において、ＦＩＦＯ回路３１の８ビットの出力のうち、４ビットのデータ（リードデータＤＡＴＡ［０］〜リードデータＤＡＴＡ［３］）を通過させ、リタイマ回路３４へと出力する。また、マルチプレクサ３３は、続くクロック信号ｄｌｌ＿ｃｌｋの２周期分の期間において、ＦＩＦＯ回路３１の８ビットの出力のうち、残りの４ビットのデータ（リードデータＤＡＴＡ［４］〜リードデータＤＡＴＡ［７］）を通過させ、リタイマ回路３４へと出力する。
【００４３】
リタイマ回路３４は、上記各期間において入力される４ビットのデータ信号（リードデータＤＡＴＡ）をクロック信号ｄｒｃｌｋ［１：０］によりタイミング調整して、４ビットの正転のデータ信号ｄａｔ＿ｔ［３：０］、及びデータ信号ｄａｔ＿ｔ［３：０］をそれぞれ反転した反転のデータ信号ｄａｔ＿ｃ［３：０］をシリアライザ３５へと出力する。制御回路１８におけるＦＩＦＯ制御回路６１は、リードコマンド（Ｒｅａｄ  ｃｍｄ）が供給された後、リードコマンドが供給されるたびに外部クロックＣＫ（及び外部クロック／ＣＫ）の２サイクル（２ｔＣＫ）の期間においてＨレベルとなり、続く２サイクルの期間においてＬレベルとなるクロック信号ｄｒｃｌｋ［０］を発生する。リタイマ回路３４は、クロック信号ｄｒｃｌｋ［０］のＨレベルの期間に、マルチプレクサ３３が通過させる４ビットのデータを、クロック信号ｄｌｌ＿ｃｌｋの２周期分のパルス幅に調整してシリアライザ３５へと出力する。また、ＦＩＦＯ制御回路６１は、クロック信号ｄｒｃｌｋ［０］の反転信号であるクロック信号ｄｒｃｌｋ［１］を発生する。リタイマ回路３４は、クロック信号ｄｒｃｌｋ［１］のＨレベルの期間に、マルチプレクサ３３が通過させる４ビットのデータを、クロック信号ｄｌｌ＿ｃｌｋの２周期分のパルス幅に調整してシリアライザ３５へと出力する。
【００４４】
シリアライザ３５は、リタイマ回路３４から入力されるデータ信号ｄａｔ＿ｔ［３：０］、及びデータ信号ｄａｔ＿ｔ［３：０］を、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［５：０］の論理レベルに基づいて、クロック信号ｄｌｌ＿ｃｌｋの立ち上がり、または立ち上がりで、２つの出力信号線（Ｓｅｒｉａｌｉｚｅｒ＿ｏｕｔｐｕｔ）へ、シリアライザ出力信号ＯＵＴｕ、シリアライザ出力信号ＯＵＴｄをそれぞれ出力する。詳細については、シリアライザ３５の回路構成と併せて後述する。
【００４５】
フリップフロップ回路３６は、２つのインバータ回路の入出力を相互接続して構成され、トライステートバッファであるシリアライザ３５の出力信号がフローティング状態となるのを防止する。
レベルシフタ３７は、シリアライザ３５の出力信号の電圧レベルを、出力ドライバ４０を駆動する回路である論理回路部３８、出力ドライバゲート駆動回路３９ｕ（３９ｕ１〜３９ｕ３）、及び出力ドライバゲート駆動回路３９ｄ（３９ｄ１〜３９ｄ３）の動作電圧へ変換する回路である。
【００４６】
論理回路部３８は、インバータ回路を直列接続して形成される第１の信号伝達経路と、同じくインバータ回路を直列接続して形成される第２の信号伝達経路から構成される。図４において、第１の信号伝達経路の出力と、出力ドライバゲート駆動回路３９ｕの初段回路であるナンド回路の一方の入力との回路接続点を、接続点ｎｄＵで示している。また、図４において、第２の信号伝達経路の出力と、出力ドライバゲート駆動回路３９ｄの初段回路であるノア回路の一方の入力との回路接続点を、接続点ｎｄＤで示している。
レベルシフタ３７、及び論理回路部３８は、シリアライザ出力信号ＯＵＴｕがＨレベル、シリアライザ出力信号ＯＵＴｄがＬレベルのとき、接続点ｎｄＵをＨレベル、接続点ｎｄＤをＨレベルへと駆動する。また、レベルシフタ３７、及び論理回路部３８は、シリアライザ出力信号ＯＵＴｕがＬレベル、シリアライザ出力信号ＯＵＴｄがＨレベルのとき、接続点ｎｄＵをＬレベル、接続点ｎｄＤをＬレベルへと駆動する。
【００４７】
出力ドライバゲート駆動回路３９ｕ（３９ｕ１〜３９ｕ３）各々は、ナンド回路、オア回路、インバータ回路、ＮＭＯＳトランジスタより構成される。出力ドライバゲート駆動回路３９ｄ（３９ｄ１〜３９ｄ３）各々は、オア回路、ナンド回路、インバータ回路、ＰＭＯＳトランジスタより構成される。出力ドライバ４０は、ＰＭＯＳトランジスタとＮＭＯＳトランジスタから構成され、これらトランジスタの共通接続点にデータ入出力端子ＤＱが接続されている。
シリアライザ出力信号ＯＵＴｕがＨレベル、シリアライザ出力信号ＯＵＴｄがＬレベルのとき、出力ドライバゲート駆動回路３９ｕは、出力ドライバ４０のＰＭＯＳトランジスタを導通（オン）させ、出力ドライバゲート駆動回路３９ｄは、出力ドライバ４０のＮＭＯＳトランジスタを非導通（オフ）させる。これにより、出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
一方、シリアライザ出力信号ＯＵＴｕがＬレベル、シリアライザ出力信号ＯＵＴｄがＨレベルのとき、出力ドライバゲート駆動回路３９ｕは、出力ドライバ４０のＰＭＯＳトランジスタをオフさせ、出力ドライバゲート駆動回路３９ｄは、出力ドライバ４０のＮＭＯＳトランジスタをオンさせる。これにより、出力ドライバ４０は、データ入出力端子ＤＱをＬレベルに駆動する。
【００４８】
なお、図４において、制御信号ＺＱは、出力ドライバ４０のインピーダンスを調整するためのインピーダンス制御信号である。また、制御信号ＳＲは、出力ドライバ４０を構成するトランジスタによるリンギングを防止するため、トランジスタのゲートの急峻な立ち上がりを抑制するインピーダンス制御信号である。本実施形態において、これらの制御信号ＺＱ、制御信号ＳＲは、発明とは直接関係しないため、出力ドライバゲート駆動回路３９ｕにおいて、制御信号ＺＱはＬレベル、制御信号ＳＲはＨレベル、出力ドライバゲート駆動回路３９ｄにおいて、制御信号ＺＱはＨレベル、制御信号ＳＲはＬレベルに固定されるものとする。
【００４９】
また、データ書き込み動作については、本発明に直接関係しないので、その概要だけ以下に述べる。データ書き込み動作においては、レシーバ５２が、レシーバ５１が外部からのライトデータとともに受け取るＤＱＳクロック（ＤＱＳ＿Ｔ、ＤＱＳ＿Ｃ）に基づいて生成するクロック信号に同期して、ライトデータを、ＷｒｉｔｅＦＩＦＯバッファ５３に書き込む。例えば、半導体装置１０が×４ＩＯ構成でライト動作を行い、ＣＲＣ符号を供給される場合を説明する。レシーバ５２は、データ入出力端子ＤＱから入力される１０ビットのシリアル信号を、クロック信号の立ち上がり（ｒｉｓｅ）と立ち下がり（ｆａｌｌ）に応じて、５ビットのｄｗｒｄ＿ｎ（入力される順番にｒ０〜ｒ４とする）、５ビットのｄｗｆｄ＿ｎ（入力される順番にｆ０〜ｆ４とする）に分け、ＷｒｉｔｅＦＩＦＯバッファ５３に書き込む。なお、ｒ４、及びｆ４がＣＲＣ符号に対応する。
ＷｒｉｔｅＦＩＦＯバッファ５３は、クロック信号に同期して、最初にｒ０、ｒ１、ｆ０，ｆ１の４ビットをパラレルに、その後残りのｒ２〜ｒ４、ｆ２〜ｆ４の６ビットをパラレルに、ｄｗｆｉｆｏ＜５：０＞としてシリアルパラレル変換回路５４へ出力する。
シリアルパラレル変換回路５４は、ＷｒｉｔｅＦＩＦＯバッファ５３がシリアルに出力するｄｗｆｉｆｏ＜５：０＞をシリアルパラレル変換して、変換後のデータ（８ビットのライトデータＤＡＴＡ、２ビットのＣＲＣ符号ＣＲＣ）を、リードライトバス、及びリードライトバスとは別に設けられたＣＲＣ信号線へそれぞれ出力する。
【００５０】
続いて、シリアライザ３５の回路構成、及び動作について、図５、及び図６を用いて説明する。図５は、シリアライザ３５の回路構成を示す。図６は、シリアライザ３５の動作タイミングチャートである。図６においては、リードデータＤＡＴＡ［７：０］として、リードデータＤＡＴＡ［０］からリードデータＤＡＴＡ［７］の順番に８ビットのデータ「０１０１１０１１」が入力され、ＣＲＣ符号ＣＲＣ［０］、及びＣＲＣ符号ＣＲＣ［４］として２ビットのデータ「１０」が入力される場合の主要信号の論理レベル（０または１）と、波形（ＬレベルまたはＨレベル）を示している。
図５に示すように、シリアライザ３５は、論理回路部７１〜論理回路部７６と、バッファ回路部８１〜バッファ回路部８３を含んで構成される。
【００５１】
論理回路部７１〜論理回路部７６各々は、２つの３入力ナンド回路から構成される。
論理回路部７１は、３入力ナンド回路７１ａ、及び３入力ナンド回路７１ｂから構成される。３入力ナンド回路７１ａは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ（ＦＩＦＯ制御回路６１から入力されるクロック信号ｄｌｌ＿ｃｌｋ）、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［０］、及びデータ信号ｄａｔ＿ｃ［０］が入力され、パルス信号ｐｌｓ１＜０＞を出力する。３入力ナンド回路７１ｂは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［０］、及びデータ信号ｄａｔ＿ｔ［０］が入力され、パルス信号ｐｌｓ２＜０＞を出力する。
論理回路部７２は、３入力ナンド回路７２ａ、及び３入力ナンド回路７２ｂから構成される。３入力ナンド回路７２ａは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［２］、及びデータ信号ｄａｔ＿ｃ［２］が入力され、パルス信号ｐｌｓ１＜２＞を出力する。３入力ナンド回路７２ｂは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［２］、及びデータ信号ｄａｔ＿ｔ［２］が入力され、パルス信号ｐｌｓ２＜２＞を出力する。
【００５２】
論理回路部７３は、３入力ナンド回路７３ａ、及び３入力ナンド回路７３ｂから構成される。３入力ナンド回路７３ａは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ（シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃの反転信号）、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［１］、及びデータ信号ｄａｔ＿ｃ［１］が入力され、パルス信号ｐｌｓ１＜１＞を出力する。３入力ナンド回路７３ｂは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［１］、及びデータ信号ｄａｔ＿ｔ［１］が入力され、パルス信号ｐｌｓ２＜１＞を出力する。
論理回路部７４は、３入力ナンド回路７４ａ、及び３入力ナンド回路７４ｂから構成される。３入力ナンド回路７４ａは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［３］、及びデータ信号ｄａｔ＿ｃ［３］が入力され、パルス信号ｐｌｓ１＜３＞を出力する。３入力ナンド回路７４ｂは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［３］、及びデータ信号ｄａｔ＿ｔ［３］が入力され、パルス信号ｐｌｓ２＜３＞を出力する。
【００５３】
論理回路部７５は、３入力ナンド回路７５ａ、及び３入力ナンド回路７５ｂから構成される。３入力ナンド回路７５ａは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［４］、及びデータ信号ＣＲＣｄａｔ＿ｃ［０］が入力され、パルス信号ＣＲＣｐｌｓ１＜０＞を出力する。３入力ナンド回路７５ｂは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［４］、及びデータ信号ＣＲＣｄａｔ＿ｔ［０］が入力され、パルス信号ＣＲＣｐｌｓ２＜０＞を出力する。
論理回路部７６は、３入力ナンド回路７６ａ、及び３入力ナンド回路７６ｂから構成される。３入力ナンド回路７６ａは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［５］、及びデータ信号ＣＲＣｄａｔ＿ｃ［４］が入力され、パルス信号ＣＲＣｐｌｓ１＜４＞を出力する。３入力ナンド回路７６ｂは、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［５］、及びデータ信号ＣＲＣｄａｔ＿ｔ［４］が入力され、パルス信号ＣＲＣｐｌｓ２＜４＞を出力する。
【００５４】
バッファ回路部８１〜バッファ回路部８３各々は、２つの２入力アンド回路、２つのインバータ回路、２つのＰＭＯＳトランジスタ、２つのＮＭＯＳトランジスタから構成される。
バッファ回路部８１は、２入力アンド回路８１Ａ１、２入力アンド回路８１Ａ２、インバータ回路８１Ｉ１、インバータ回路８１Ｉ２、ＰＭＯＳトランジスタ８１Ｐ１、ＰＭＯＳトランジスタ８１Ｐ２、ＮＭＯＳトランジスタ８１Ｎ１、及びＮＭＯＳトランジスタ８１Ｎ２から構成される。アンド回路８１Ａ１は、パルス信号ｐｌｓ１＜０＞、及びパルス信号ｐｌｓ１＜２＞が入力され、駆動信号ＯＵＴｕ１を、インバータ回路８１Ｉ１、及びＰＭＯＳトランジスタ８１Ｐ２のゲートに対して出力する。アンド回路８１Ａ２は、パルス信号ｐｌｓ２＜０＞、及びパルス信号ｐｌｓ２＜２＞が入力され、駆動信号ＯＵＴｄ１を、インバータ回路８１Ｉ２、及びＰＭＯＳトランジスタ８１Ｐ１のゲートに対して出力する。インバータ回路８１Ｉ１は、駆動信号ＯＵＴｕ１を論理反転して、反転した信号をＮＭＯＳトランジスタ８１Ｎ１のゲートに対して出力する。インバータ回路８１Ｉ２は、駆動信号ＯＵＴｄ１を論理反転して、反転した信号をＮＭＯＳトランジスタ８１Ｎ２のゲートに対して出力する。ＰＭＯＳトランジスタ８１Ｐ１において、ソースは電源に接続され、ドレインはＮＭＯＳトランジスタ８１Ｎ１のドレインに接続される。ＮＭＯＳトランジスタ８１Ｎ１において、ドレインはＰＭＯＳトランジスタ８１Ｐ１のドレインに接続され、ソースは接地される。ＰＭＯＳトランジスタ８１Ｐ１のドレイン、及びＮＭＯＳトランジスタ８１Ｎ１のドレインは、シリアライザ３５の一方の出力に接続される。ＰＭＯＳトランジスタ８１Ｐ２において、ソースは電源に接続され、ドレインはＮＭＯＳトランジスタ８１Ｎ２のドレインに接続される。ＮＭＯＳトランジスタ８１Ｎ２において、ドレインはＰＭＯＳトランジスタ８１Ｐ２のドレインに接続され、ソースは接地される。ＰＭＯＳトランジスタ８１Ｐ２のドレイン、及びＮＭＯＳトランジスタ８１Ｎ２のドレインは、シリアライザ３５の他方の出力に接続される。
【００５５】
バッファ回路部８２は、２入力アンド回路８２Ａ１、２入力アンド回路８２Ａ２、インバータ回路８２Ｉ１、インバータ回路８２Ｉ２、ＰＭＯＳトランジスタ８２Ｐ１、ＰＭＯＳトランジスタ８２Ｐ２、ＮＭＯＳトランジスタ８２Ｎ１、及びＮＭＯＳトランジスタ８２Ｎ２から構成される。アンド回路８２Ａ１は、パルス信号ｐｌｓ１＜１＞、及びパルス信号ｐｌｓ１＜３＞が入力され、駆動信号ＯＵＴｕ２を、インバータ回路８２Ｉ１、及びＰＭＯＳトランジスタ８２Ｐ２のゲートに対して出力する。アンド回路８２Ａ２は、パルス信号ｐｌｓ２＜１＞、及びパルス信号ｐｌｓ２＜３＞が入力され、駆動信号ＯＵＴｄ２を、インバータ回路８２Ｉ２、及びＰＭＯＳトランジスタ８２Ｐ１のゲートに対して出力する。インバータ回路８２Ｉ１は、駆動信号ＯＵＴｕ２を論理反転して、反転した信号をＮＭＯＳトランジスタ８２Ｎ１のゲートに対して出力する。インバータ回路８２Ｉ２は、駆動信号ＯＵＴｄ２を論理反転して、反転した信号をＮＭＯＳトランジスタ８２Ｎ２のゲートに対して出力する。ＰＭＯＳトランジスタ８２Ｐ１において、ソースは電源に接続され、ドレインはＮＭＯＳトランジスタ８２Ｎ１のドレインに接続される。ＮＭＯＳトランジスタ８２Ｎ１において、ドレインはＰＭＯＳトランジスタ８２Ｐ１のドレインに接続され、ソースは接地される。ＰＭＯＳトランジスタ８２Ｐ１のドレイン、及びＮＭＯＳトランジスタ８２Ｎ１のドレインは、シリアライザ３５の一方の出力に接続される。ＰＭＯＳトランジスタ８２Ｐ２において、ソースは電源に接続され、ドレインはＮＭＯＳトランジスタ８２Ｎ２のドレインに接続される。ＮＭＯＳトランジスタ８２Ｎ２において、ドレインはＰＭＯＳトランジスタ８２Ｐ２のドレインに接続され、ソースは接地される。ＰＭＯＳトランジスタ８２Ｐ２のドレイン、及びＮＭＯＳトランジスタ８２Ｎ２のドレインは、シリアライザ３５の他方の出力に接続される。
【００５６】
バッファ回路部８３は、２入力アンド回路８３Ａ１、２入力アンド回路８３Ａ２、インバータ回路８３Ｉ１、インバータ回路８３Ｉ２、ＰＭＯＳトランジスタ８３Ｐ１、ＰＭＯＳトランジスタ８３Ｐ２、ＮＭＯＳトランジスタ８３Ｎ１、及びＮＭＯＳトランジスタ８３Ｎ２から構成される。アンド回路８３Ａ１は、パルス信号ＣＲＣｐｌｓ１＜０＞、及びパルス信号ＣＲＣｐｌｓ１＜４＞が入力され、駆動信号ＯＵＴｕ３を、インバータ回路８３Ｉ１、及びＰＭＯＳトランジスタ８３Ｐ２のゲートに対して出力する。アンド回路８３Ａ２は、パルス信号ＣＲＣｐｌｓ２＜０＞、及びパルス信号ＣＲＣｐｌｓ２＜４＞が入力され、駆動信号ＯＵＴｄ３を、インバータ回路８３Ｉ２、及びＰＭＯＳトランジスタ８３Ｐ１のゲートに対して出力する。インバータ回路８３Ｉ１は、駆動信号ＯＵＴｕ３を論理反転して、反転した信号をＮＭＯＳトランジスタ８３Ｎ１のゲートに対して出力する。インバータ回路８３Ｉ２は、駆動信号ＯＵＴｄ３を論理反転して、反転した信号をＮＭＯＳトランジスタ８３Ｎ２のゲートに対して出力する。ＰＭＯＳトランジスタ８３Ｐ１において、ソースは電源に接続され、ドレインはＮＭＯＳトランジスタ８３Ｎ１のドレインに接続される。ＮＭＯＳトランジスタ８３Ｎ１において、ドレインはＰＭＯＳトランジスタ８３Ｐ１のドレインに接続され、ソースは接地される。ＰＭＯＳトランジスタ８３Ｐ１のドレイン、及びＮＭＯＳトランジスタ８３Ｎ１のドレインは、シリアライザ３５の一方の出力に接続される。ＰＭＯＳトランジスタ８３Ｐ２において、ソースは電源に接続され、ドレインはＮＭＯＳトランジスタ８３Ｎ２のドレインに接続される。ＮＭＯＳトランジスタ８３Ｎ２において、ドレインはＰＭＯＳトランジスタ８３Ｐ２のドレインに接続され、ソースは接地される。ＰＭＯＳトランジスタ８３Ｐ２のドレイン、及びＮＭＯＳトランジスタ８３Ｎ２のドレインは、シリアライザ３５の他方の出力に接続される。
【００５７】
シリアライザ３５にはクロック信号として、図６に示す相補２相クロック（シリアライザクロックｓｅｒ＿ｃｌｋ＿ｔ、シリアライザクロックｓｅｒ＿ｃｌｋ＿ｃ）がＦＩＦＯ制御回路６１から入力される。これらの信号は、クロック信号ＤＬＬ＿ｃｌｋに完全同期（周期、パルス幅が同じ）している。なお、図６において、クロック信号ＤＬＬ＿ｃｌｋの各パルスに、外部クロックＣＫの５ｔＣＫ分のＨレベルまたはＬレベルに対応して、１〜１０の期間を示す番号ＵＩを付している。
シリアライザ制御回路６３は、１ＵＩと５ＵＩにおいてシリアライザイネーブル信号ｓｅｒ＿ｅｎ［０］を、２ＵＩと６ＵＩにおいてシリアライザイネーブル信号ｓｅｒ＿ｅｎ［１］を、３ＵＩと７ＵＩにおいてシリアライザイネーブル信号ｓｅｒ＿ｅｎ［２］を、４ＵＩと８ＵＩにおいてシリアライザイネーブル信号ｓｅｒ＿ｅｎ［３］を、それぞれＬレベルからＨレベルへと変化させる。
なお、前述の通り、リタイマ回路３４が、マルチプレクサ３３を通過する４ビットのデータを、クロック信号ｄｌｌ＿ｃｌｋの２周期分のパルス幅に調整することから、４ＵＩから５ＵＩへ切り替わる時刻において、シリアライザ３５に入力されるｄａｔ＿ｔ［３：０］の論理レベルが切り替わる。
【００５８】
本実施形態において、リードデータＤＡＴＡ［７：０］＝「０１０１１０１１」であるので、１ＵＩから４ＵＩの期間、ｄａｔ＿ｔ［０］＝０、ｄａｔ＿ｃ［０］＝１であり、５ＵＩから８ＵＩの期間、ｄａｔ＿ｔ［０］＝１、ｄａｔ＿ｃ［０］＝０である。
同様に、１ＵＩから４ＵＩの期間、ｄａｔ＿ｔ［１］＝１、ｄａｔ＿ｃ［１］＝０であり、５ＵＩから８ＵＩの期間、ｄａｔ＿ｔ［１］＝０、ｄａｔ＿ｃ［１］＝１である。
同様に、１ＵＩから４ＵＩの期間、ｄａｔ＿ｔ［２］＝０、ｄａｔ＿ｃ［２］＝１であり、５ＵＩから８ＵＩの期間、ｄａｔ＿ｔ［２］＝１、ｄａｔ＿ｃ［２］＝０である。
同様に、１ＵＩから４ＵＩの期間、ｄａｔ＿ｔ［３］＝１、ｄａｔ＿ｃ［３］＝０であり、５ＵＩから８ＵＩの期間、ｄａｔ＿ｔ［３］＝１、ｄａｔ＿ｃ［３］＝０である。
また、９ＵＩから１０ＵＩの期間、ＣＲＣｄａｔ＿ｔ［０］＝１、ＣＲＣｄａｔ＿ｃ［０］＝０であり、９ＵＩから１０ＵＩの期間、ＣＲＣｄａｔ＿ｔ［４］＝０、ＣＲＣｄａｔ＿ｃ［４］＝１である。
【００５９】
１ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ１＜０＞がＬレベルとなり、バッファ回路部８１は駆動信号ＯＵＴｕ１をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＬレベル、シリアライザ出力信号ＯＵＴｄをＨレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＬレベルに駆動する。
２ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ２＜１＞がＬレベルとなり、バッファ回路部８２は駆動信号ＯＵＴｄ２をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＨレベル、シリアライザ出力信号ＯＵＴｄをＬレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
３ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ１＜２＞がＬレベルとなり、バッファ回路部８１は駆動信号ＯＵＴｕ１をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＬレベル、シリアライザ出力信号ＯＵＴｄをＨレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＬレベルに駆動する。
４ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ２＜３＞がＬレベルとなり、バッファ回路部８２は駆動信号ＯＵＴｄ２をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＨレベル、シリアライザ出力信号ＯＵＴｄをＬレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
【００６０】
５ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ２＜０＞がＬレベルとなり、バッファ回路部８１は駆動信号ＯＵＴｄ１をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＨレベル、シリアライザ出力信号ＯＵＴｄをＬレベルに維持する。出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
６ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ１＜１＞がＬレベルとなり、バッファ回路部８２は駆動信号ＯＵＴｕ２をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＬレベル、シリアライザ出力信号ＯＵＴｄをＨレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＬレベルに駆動する。
７ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ２＜２＞がＬレベルとなり、バッファ回路部８１は駆動信号ＯＵＴｄ１をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＨレベル、シリアライザ出力信号ＯＵＴｄをＬレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
８ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ｐｌｓ２＜３＞がＬレベルとなり、バッファ回路部８２は駆動信号ＯＵＴｄ２をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＨレベル、シリアライザ出力信号ＯＵＴｄをＬレベルに維持する。出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
【００６１】
９ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ＣＲＣｐｌｓ２＜０＞がＬレベルとなり、バッファ回路部８３は駆動信号ＯＵＴｄ３をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＨレベル、シリアライザ出力信号ＯＵＴｄをＬレベルに維持する。出力ドライバ４０は、データ入出力端子ＤＱをＨレベルに駆動する。
１０ＵＩにおいて、論理回路部７１〜論理回路部７６の出力のうち、パルス信号ＣＲＣｐｌｓ１＜４＞がＬレベルとなり、バッファ回路部８２は駆動信号ＯＵＴｕ３をＬレベルにし、シリアライザ出力信号ＯＵＴｕをＬレベル、シリアライザ出力信号ＯＵＴｄをＨレベルへ変化させる。出力ドライバ４０は、データ入出力端子ＤＱをＬレベルに駆動する。
このように、シリアライザ３５は、相補２相クロックに対応したシリアル変換回路のため、低ノイズ、ジッタで超高速動作が可能である。また、シリアライザ３５は、トライステート型出力・シリアライザのため、ＰＭＯＳトランジスタ及びＮＭＯＳトランジスタがそれぞれ直列２段積みで構成される従来のクロックドインバータ型シリアライザに比べて出力の負荷が低減し、超高帯域データ転送が可能となる。
【００６２】
このようにして、データ入出力部１９は、ＦＩＦＯ回路３１に保持するリードデータＤＡＴＡ［７：０］、ＣＲＣ符号ＣＲＣ［０］、及びＣＲＣ符号ＣＲＣ［４］を、データ入出力端子ＤＱから外部クロックＣＫの立ち上がり及び立ち上がりに同期して、１０ビットのデータ（８ビットのリードデータＤＡＴＡに２ビットのＣＲＣ符号を付加したデータ）を直列に（シリアルに）出力する。
【００６３】
なお、以上の説明は、×４ＩＯ構成でＣＲＣ符号ＣＲＣを２ビット付加してリード動作する場合である。×８ＩＯ構成においてリード動作をする場合、ＣＲＣ符号ＣＲＣを１ビット付加してリード動作を行うため、ＦＩＦＯ制御回路６１が、制御信号ｐａｒａ２ｓｅｒ＿ｅｎ、及び制御信号ｃｒｃ＿ｅｎを活性レベルとすることによって、シリアライザ制御回路６３は、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［４：０］をシリアライザ３５に出力する。これにより、データ入出力部１９は、外部クロックＣＫの４．５ｔＣＫの間に８ビットのリードデータにＣＲＣ符号を加えた９ビットのデータをシリアルに出力する。
また、ＣＲＣ符号ＣＲＣを付加しないでリード動作する場合、ＦＩＦＯ制御回路６１は、制御信号ｃｒｃ＿ｅｎを非活性レベルとし、さらに、シリアライザイネーブル信号ｓｅｒ＿ｅｎ［３：０］をシリアライザ３５に出力する。これにより、データ入出力部１９は、外部クロックＣＫの４ｔＣＫの間に８ビットのデータをシリアルに出力する。
【００６４】
このように、メモリセルアレイの負荷（リードライトバスの容量）低減を図り、データ転送の高速動作を可能とするため、リードライトバスと、ＣＲＣ信号線を分離することとした。この信号分離により、リードライトバスにおいてデータ（リードデータＤＡＴＡとＣＲＣ符号ＣＲＣ）の時分割処理が不要となり、ＣＲＣ符号ＣＲＣをリードデータＤＡＴＡへ付加する制御ロジックを、シリアライザ３５において簡易化することができる。また、ＣＲＣ符号ＣＲＣをリードデータＤＡＴＡへ付加するか否かの両モードの構成を、上述の様に制御信号ｃｒｃ＿ｅｎ、シリアライザイネーブル信号ｓｅｒ＿ｅｎを両モードにおいて切り替えることで容易に実施することできる。
【００６５】
図１に戻って、半導体装置１０のライト動作、及びリード動作について説明する。ここでは、半導体装置１０のＩＯ構成を×８ＩＯ構成から×４ＩＯ構成とした半導体装置のライト動作、及びリード動作について、それぞれ図７、及び図８を用いて説明する。以下で説明する×４ＩＯ構成の半導体装置は、半導体装置１０のＩＯ構成のみを変更したもの、具体的には、図１に示す半導体装置１０のデータ入出力端子ＤＱｎをデータ入出力端子ＤＱｎ（ｎ＝０〜３）としたものである。
図７、及び図８では、×４ＩＯ構成において、ＢＬ８動作の場合（４×８＝３２ビットのメモリセルデータを４個のデータ入出力端子ＤＱからバースト長さ８で出力する動作）について説明する。この場合、未使用のリードライトバス（リードデータＤＡＴＡ[６３−３２]またはライトデータＤＡＴＡ[６３−３２]が転送されるバス配線）は、Ｈレベル又はＬレベルの一方に固定される。ここでは、誤り検出符号生成回路２０は、×８ＩＯ構成と同一のものを用いるため、×４ＩＯ構成の動作においても×８ＩＯ構成と同一のビット数のＣＲＣ演算結果が必要である。このため、ＩＯ数が少ない４ＩＯ構成では、９，１０ビット目の２倍のビットを用いて合計８ビットのＣＲＣ演算結果を出力する方式を用いる。
【００６６】
図７は、半導体装置１０のライト動作（４ＩＯ入力）のタイミングチャートである。
なお、図７において、データ入出力端子ＤＱに現れる入力信号の変化は、１つのデータ入出力端子ＤＱの入力信号を示している。
時刻ｔ１において、メモリコントローラ１０ｍが半導体装置１０にＷＲＩＴＥコマンドを供給する。
ここで、メモリコントローラ１０ｍは、ＤＭ／ＤＢＩ端子に、データマスク信号でなくデータバスインバージョン信号を供給するものとする。なお、メモリコントローラは、データマスク信号及びデータバスインバージョン信号を供給しない場合、ＤＭ／ＤＢＩ端子をハイレベル又はロウレベルのどちらか一方の論理レベルに固定する。
【００６７】
データ入出力部１９は、時刻ｔ１〜ｔ２において、メモリコントローラからＤＭ／ＤＢＩ端子を介してデータバスインバージョン信号を受け取り、時刻ｔ２以降において、ＤＭ／ＤＢＩバスを介してデータバスインバージョン信号ＤＢＩ［７：０］を誤り検出符号生成回路２０に出力する。
また、データ入出力部１９におけるレシーバ５２は、時刻ｔ１〜ｔ２において、メモリコントローラ１０ｍからデータ入出力端子ＤＱｎ（ｎ＝０〜７）各々を介してライトデータ（計６４ビット）をＤＱＳクロック（ＤＱＳ＿Ｔ、ＤＱＳ＿Ｃ）に同期して受け取り、
偶数番目のライトデータ、奇数番目のライトデータを、ＷｒｉｔｅＦＩＦＯバッファ５３に書き込む。
データ入出力部１９におけるシリアルパラレル変換回路５４は、時刻ｔ２において、ＷｒｉｔｅＦＩＦＯバッファ５３に書き込まれたデータを、リードライトバスを介してライトデータＤＡＴＡ［６３：０］として、誤り検出符号生成回路２０に出力する。
また、時刻ｔ２以降において、誤り検出符号生成回路２０は、制御回路１８から入力される制御信号Ｗｒｉｔｅ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫにより活性化され、データ入出力部１９からリードライトバスを介して入力されるライトデータＤＡＴＡ［６３：０］、及びデータ入出力部１９からＤＭ／ＤＢＩバスを介して入力されるデータバスインバージョン信号ＤＢＩ［７：０］に基づいて、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］を生成する。
【００６８】
続いて、データ入出力部１９におけるシリアルパラレル変換回路５４は、時刻ｔ２〜ｔ３において、ライトデータのうち９、１０ビット目からメモリコントローラが送信したＣＲＣ符号をＷｒｉｔｅＦＩＦＯバッファ５３から取り出し、ＣＲＣ信号線を介して、ＣＲＣ符号ＣＲＣ［７：０］を誤り検出符号生成回路２０に出力する。
時刻ｔ４において、誤り検出符号生成回路２０は、制御信号ＣＲＣ  Ｃａｐｔｕｒｅ  ＣＬＫが入力され、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］と、データ入出力部１９からＣＲＣ信号線を介して入力されるＣＲＣ符号ＣＲＣ［７：０］とを比較する。
時刻ｔ５において、誤り検出符号生成回路２０は、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］と、データ入出力部１９からＣＲＣ信号線を介して入力されるＣＲＣ符号ＣＲＣ［７：０］とが不一致だった場合、判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇを活性レベル（Ｈレベル）として警告信号出力部２２に対して供給する。
警告信号出力部２２は、活性レベルの判定結果信号Ｗｒｉｔｅ  ＣＲＣ  Ｅｒｒｏｒ  Ｆｌａｇを受け取った場合、ＡＬＥＲＴ＿Ｎ端子から活性レベル（Ｌレベル）のアラート信号をコントローラに出力し、コントローラにライトデータ又はデータバスインバージョン信号の再送をリクエストする。
【００６９】
続いて、半導体装置１０のリード動作について、図８を用いて説明する。
図８は、半導体装置１０のリード動作（４ＩＯ出力）のタイミングチャートである。なお、図８において、データ入出力端子ＤＱに現れる入力信号の変化は、１つのデータ入出力端子ＤＱの入力信号を示している。
時刻ｔ１において、メモリコントローラが半導体装置１０にＲＥＡＤコマンドを供給する。ここで、半導体装置１０は、ＤＭ／ＤＢＩ端子に、データマスク信号でなくデータバスインバージョン信号を供給するものとする。なお、メモリコントローラは、半導体装置１０がデータマスク信号及びデータバスインバージョン信号を供給しない場合、ＤＭ／ＤＢＩ端子をハイレベル又はロウレベルのどちらか一方の論理レベルに固定する。
データバスインバージョン回路２１は、メモリセルアレイ１１からリードライトバスを介してリードデータＤＡＴＡ［６３：０］を受け取り、所定の処理（上記多数決処理）を行い、データバスインバージョン信号ＤＢＩ［７：０］を生成し、ＤＭ／ＤＢＩバスを介して誤り検出符号生成回路２０、及びデータ入出力部１９に供給する。
【００７０】
時刻ｔ２において、誤り検出符号生成回路２０は、制御回路１８から入力される制御信号Ｒｅａｄ  ＣＲＣ  Ｃｔｒｌ  ＣＬＫにより活性化される。誤り検出符号生成回路２０は、メモリセルアレイ１１からリードライトバスを介して読み出されたリードデータＤＡＴＡ［６３：０］、及びデータバスインバージョン回路２１からＤＭ／ＤＢＩバスを介して入力されるデータバスインバージョン信号ＤＢＩ［７：０］に基づいて、ＣＲＣ演算結果として８ビットのＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］を生成する。
【００７１】
時刻ｔ３以降、データ入出力部１９は、データ入出力端子ＤＱｎ（ｎ＝０〜３）各々から８ビットのリードデータ（合計３２ビット）を連続して出力し、ＤＭ／ＤＢＩ端子からリードデータのビットのそれぞれに対応するデータバスインバージョン信号（８ビット）をリードデータに同期して出力する（ＢＬ１−８）。
また、誤り検出符号生成回路２０は、時刻ｔ４において、ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］をＣＲＣ符号ＣＲＣ［７：０］として、ＣＲＣ信号線を介してデータ入出力部１９に対して出力する。
データ入出力部１９は、データ入出力端子ＤＱｎ（ｎ＝０〜３）各々から、ＢＬ８のリードデータの出力終了後の時刻ｔ４において、ＢＬ９、ＢＬ１０のリードデータ（合計８ビット）としてＣＲＣ符号を出力する。
【００７２】
このように、半導体装置１０は、データを記憶する複数のメモリセルを有するメモリセルアレイ（メモリセルアレイ１１）と、メモリセルアレイから読み出されたデータ、或いはメモリセルアレイへ書き込むデータに基づいて巡回冗長論理符号（ＣＲＣ論理符号ＣＲＣ＿ＬＯＧＩＣ［７：０］）を生成する誤り検出符号生成回路（誤り検出符号生成回路２０）と、メモリセルアレイから読み出されたデータに巡回冗長論理符号を付加してデータ入出力端子を介して半導体装置の外部へリードデータとして出力し、或いは半導体装置の外部からライトデータが入力されて、前記メモリセルアレイへ書き込むデータを誤り検出符号生成回路に出力するデータ入出力部（データ入出力部１９）と、メモリセルアレイとデータ入出力部との間に配置され、メモリセルアレイから読み出されたデータ、または前記メモリセルアレイへ書き込むデータを転送するバス配線（リードライトバス）と、誤り検出符号生成回路とデータ入出力部との間配置され、巡回冗長論理符号を転送する巡回冗長論理符号配線（ＣＲＣ信号線）と、を備えることを特徴とする。
【００７３】
本発明の半導体装置１０によれば、リードライトバス（バス配線）と、ＣＲＣ信号線（巡回冗長論理符号配線）とを別々に設けたことにより、リードライトバスとデータ入出力部１９との間の回路構成を、ＣＲＣ機能を有さない従来の半導体装置の回路構成から変更する必要性が無くなる。そのため、ＣＲＣ機能を有しても、リードライトバスにおける時分割処理が不要となり、半導体装置のライト動作とリード動作を従来の半導体装置と同程度にまで高速に行うことができる。
【００７４】
本願の技術思想は、ＣＲＣ機能を有する半導体装置に適用できる。更に、図面で開示した各ブロックの接続方法や回路形式、その他の制御信号を生成する回路は、実施例が開示する回路形式に限られない。また、本発明の半導体装置の技術思想は、様々な半導体装置に適用することができる。本発明の実施形態においては、主にメモリ（Memory）での実施例を開示したが、これに限られず、メモリ以外の半導体装置、例えば、ＣＰＵ（Central Processing Unit）、ＭＣＵ（Micro Control Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＡＳＳＰ（Application Specific Standard Product）等の半導体装置全般に、本発明を適用することができる。
また、このような本発明が適用された半導体装置の製品形態としては、例えば、ＳＯＣ（システムオンチップ）、ＭＣＰ（マルチチップパッケージ）やＰＯＰ（パッケージオンパッケージ）などが挙げられる。これらの任意の製品形態、パッケージ形態を有する半導体装置に対して本発明を適用することができる。
また、トランジスタは、電界効果トランジスタ（Field Eeffect Transistor;FET）であれば良く、ＭＯＳ（Metal Oxide Semiconductor）以外にもＭＩＳ（Metal-Insulator Semiconductor）、TFT(Thin Film Transistor)等の様々なＦＥＴに適用できる。トランジスタ等の様々なＦＥＴに適用できる。更に、装置内に一部のバイポーラ型トランジスタを有しても良い。
更に、ＰＭＯＳトランジスタ（Ｐ型チャネルＭＯＳトランジスタ）は、第２導電型のトランジスタ、ＮＭＯＳトランジスタ（Ｎ型チャネルＭＯＳトランジスタ）は、第１導電型のトランジスタの代表例である。
また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得る各種変形、修正を含むことは勿論である。
【符号の説明】
【００７５】
１０…半導体装置、１１…メモリセルアレイ、ＭＣ…メモリセル、ＷＬ…ワード線、ＤＬ…ビット線、１３…ロウデコーダ、１４…カラムデコーダ、１５…センスアンプ、１８…制御回路、１９…データ入出力部、２０…誤り検出符号生成回路、２１…データバスインバージョン回路、２２…警告信号出力部、１０１，１１１ｂ…オア回路、１０２…８ビットＣＲＣ符号生成回路、１０２ａ，１１２…ラッチ回路、１０２ｂ…７２入力排他的論理和回路、１０３，３６…フリップフロップ回路、１０４…バッファ回路、１０５，１１４…遅延回路、１１０…８ビットＣＲＣ符号判定回路、１１１…８ビットＣＲＣ符号比較回路、１１１ａ，ＸＯＲ…排他的論理和回路、１１３，８１Ａ１，８１Ａ２，８２Ａ１，８２Ａ２，８３Ａ１，８３Ａ２…アンド回路、ＤＱ，ＤＱ０，ＤＱｎ…データ入出力端子、ｎｄＵ，ｎｄＤ…接続点、３１…ＦＩＦＯ回路、３２…ＦＩＦＯポインタ、３３…マルチプレクサ、３４…リタイマ回路、３５…シリアライザ、３７…レベルシフタ、３８，７１，７２，７３，７４，７５，７６…論理回路部、３９ｕ，３９ｄ…出力ドライバゲート駆動回路、４０…出力ドライバ、５１，５２…レシーバ、５３…ＷｒｉｔｅＦＩＦＯバッファ、５４…シリアルパラレル変換回路、６１…ＦＩＦＯ制御回路、６３…シリアライザ制御回路、６４…ＯＣＤ制御回路、８１，８２，８３…バッファ回路部、７１ａ，７１ｂ，７２ａ，７２ｂ，７３ａ，７３ｂ，７４ａ，７４ｂ，７５ａ，７５ｂ，７６ａ，７６ｂ…ナンド回路、８１Ｉ１，８１Ｉ２，８２Ｉ１，８２Ｉ２，８３Ｉ１，８３Ｉ２…インバータ回路、８１Ｐ１，８１Ｐ２，８２Ｐ１，８２Ｐ２，８３Ｐ１，８３Ｐ２…ＰＭＯＳトランジスタ、８１Ｎ１，８１Ｎ２，８２Ｎ１，８２Ｎ２，８３Ｎ１，８３Ｎ２…ＮＭＯＳトランジスタ、１０ｓ…メモリシステム、１０ｍ…メモリコントローラ、２０ｍ…演算部、２０ｃ…比較器、ＯＵＴｕ，ＯＵＴｄ…シリアライザ出力信号、ｐｌｓ１，ｐｌｓ２，ＣＲＣｐｌｓ１，ＣＲＣｐｌｓ２…パルス信号、ＯＵＴｕ１，ＯＵＴｄ１，ＯＵＴｕ２，ＯＵＴｄ２，ＯＵＴｕ３，ＯＵＴｄ３…駆動信号
【図１】
2013073664.tif 000003
【図２】
2013073664.tif 000004
【図３】
2013073664.tif 000005
【図４】
2013073664.tif 000006
【図５】
2013073664.tif 000007
【図６】
2013073664.tif 000008
【図７】
2013073664.tif 000009
【図８】
2013073664.tif 000010