(57)【要約】      （修正有）【課題】データ転送回路の回路規模の増大化を抑えつつ、データ転送量を大きくすることのできる半導体集積回路の提供。【解決手段】データ信号が入力される第１の素子２４ａと、前記データ信号に対応する検証コードが入力される第２の素子２４ｂと、前記第１の素子の動作を制御する第１の制御回路と、前記第２の素子の動作を制御する第２の制御回路と、前記第１の素子によって制御された前記データ信号と前記第２の素子によって制御された前記検証コードとを対照した結果を出力する出力回路２２と、を有する半導体集積回路。【選択図】      図１
2004173119.tif 000002
【特許請求の範囲】
【請求項１】
データ信号が入力される第１の素子と、
前記データ信号に対応する検証コードが入力される第２の素子と、
前記第１の素子の動作を制御する第１の制御回路と、
前記第２の素子の動作を制御する第２の制御回路と、
前記第１の素子によって制御された前記データ信号と、前記第２の素子によって制御された前記検証コードと、を対照した結果を出力する出力回路と、
を有することを特徴とする半導体集積回路。
【請求項２】
前記データ信号と前記検証コードは、前記素子に対して同クロックサイクルにて入力され、
前記出力回路は、
前記素子によって制御された前記データ信号と前記検証コードとが同クロックサイクルにて入力され、
前記同クロックサイクルにて入力された前記データ信号と前記検証コードとを対照した結果を出力することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記検証コードは、パリティビット又は誤り訂正符号であり、
前記出力回路は、
前記第１の素子によって制御された前記データ信号と、前記第２の素子によって制御された前記パリティビット又は前記誤り訂正符号と、を対照した結果を出力することを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
前記第１の素子を、前記データ信号が入力される第１のフリップフロップとし、
前記第２の素子を、前記検証コードが入力される第２のフリップフロップとし、
前記第１の制御回路は、前記第１のフリップフロップの動作を制御し、
前記第２の制御回路は、前記第２のフリップフロップの動作を制御することを特徴とする請求項１乃至３のいずれかに記載の半導体集積回路。
【請求項５】
前記第１の素子を、前記データ信号のデータ保持に用いられるクロック信号の有効・無効を制御可能な第１のフリップフロップとし、
前記第２の素子を、前記検証コードのデータ保持に用いられるクロック信号の有効・無効を制御可能な第２のフリップフロップとし、
前記第１の制御回路は、前記第１のフリップフロップに入力される前記クロック信号の有効・無効を制御し、
前記第２の制御回路は、前記第２のフリップフロップに入力される前記クロック信号の有効・無効を制御することを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
前記第１の素子は、複数の前記データ信号が入力され、
前記第１の素子を、前記入力された複数の前記データ信号をセレクト動作する第１のセレクト回路とし、
前記第２の素子は、前記複数のデータ信号ごとに付加される前記検証コードが複数入力され、
前記第２の素子を、前記入力された複数の前記検証コードをセレクト動作する第２のセレクト回路とし、
前記第１の制御回路は、前記第１のセレクト回路における前記セレクト動作を制御し、
前記第２の制御回路は、前記第２のセレクト回路における前記セレクト動作を制御する請求項１乃至５のいずれかに記載の半導体集積回路。
【請求項７】
ホストコンピュータと記憶装置との間で授受されるデータを記憶しておくためのキャッシュメモリと、前記ホストコンピュータと前記キャッシュメモリとの間のデータ転送を制御するチャネル制御部と、前記キャッシュメモリと前記記憶装置との間のデータ転送を制御するディスク制御部と、前記キャッシュメモリを制御するキャッシュメモリ制御部と、前記チャネル制御部と前記ディスク制御部とを通信可能に接続するためのスイッチング制御部と、を有する記憶制御装置において、
前記チャネル制御部、前記ディスク制御部、前記キャッシュメモリ制御部又は前記スイッチング制御部の少なくともいずれか一つは、
データ信号が入力される第１の素子と、
前記データ信号に対応する検証コードが入力される第２の素子と、
前記第１の素子の動作を制御する第１の制御回路と、
前記第２の素子の動作を制御する第２の制御回路と、
前記第１の素子によって制御された前記データ信号と前記第２の素子によって制御された前記検証コードとを対照した結果を出力する出力回路と、
を有する半導体集積回路を備えることを特徴とする記憶制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路並びにその半導体集積回路を備えた記憶制御装置に関する。
【０００２】
【従来の技術】
コンピュータシステムや記憶制御装置等において、データ転送を伴う数多くの半導体集積回路（以下、「データ転送回路」と称する）が用いられる。データ転送回路は、データ信号の伝搬、選択、演算などの工程を経て、データ信号を転送するデータパス部と、データパス部において前述の工程に対応した素子の動作を制御する制御回路と、を備える構成となる。データ転送回路では、高い信頼性が要求されるため、同一内容の論理演算を行う等価な回路が二重化されるよう配置され、一方の回路が故障したときに直ちに他方の回路に切り換えるように構成される。
【０００３】
個々のデータ転送回路では、パリティビット又は、ハミング符号やＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）等の誤り訂正符号（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）がデータ信号に付加される。そして、データ信号に付加されたパリティビット又は誤り訂正符号を用いて、データ転送中等に発生するビット誤り等の障害を検出する仕組みが備わっている。しかし、この仕組みでは、データ転送回路において、制御回路自体の故障や、制御回路からデータパス部に対して制御信号を供給する際の障害等（これらを総称して、「制御系の障害」と称する）を検出できない。
【０００４】
例えば、図６に示す従来のデータ転送回路２０において、フリップフロップ２４に供給されるクロックイネーブル信号（以下、ＣＥ信号と称す）の障害が検出できないことを、図７に示すタイミングチャートを用いて説明する。
【０００５】
図７では、各クロックサイクル（Ｔ０〜Ｔ４期間）にわたって、フリップフロップ２４に入力されるデータ信号（１Ｂｙｔｅ）とパリティビット（１ｂｉｔ）とに含まれる“１”（又は“０”）のビットを合計した数は、規定された偶数個（又は奇数個）であることを前提とする（以下、このように、データ信号（１Ｂｙｔｅ）とパリティビット（１ｂｉｔ）との間にて規定された関係のことを「パリティの関係」と称する）。
【０００６】
まず、従来のデータ転送回路２０において、ＣＥ信号が正常な場合での動作について説明する。ＣＥ信号は、Ｔ１期間にてＬレベルからＨレベルに切り替わり、フリップフロップ２４に供給されるクロック信号は有効になるものとする。そして、Ｔ１期間でのクロック信号のエッジにて、フリップフロップ２４に入力されるデータ信号ｔ１及びパリティビットｔ１が保持される（図７：（Ａ））。
【０００７】
保持されたデータ信号ｔ１及びパリティビットｔ１は、フリップフロップ２４の次段となるパリティチェッカ２２等に対して、Ｔ２期間での入力となる（図７：（Ｂ））。そして、パリティチェッカ２２は、Ｔ３期間において、Ｔ２期間に入力されたデータ信号ｔ１とパリティビットｔ１とを用いてパリティチェックする。ここで、データ信号ｔ１とパリティビットｔ１との間のパリティの関係は正常であるため、パリティチェッカ２２は、パリティチェックの結果を“ｎｏ  ｅｒｒｏｒ”として、エラー検出信号を出力する（図７：（Ｃ））。
【０００８】
つぎに、従来のデータ転送回路２０において、ＣＥ信号に障害が発生した場合での動作について説明する。なお、Ｔ１期間において、ＣＥ信号がＬレベルからＨレベルに切り替わらず、Ｌレベルの状態を維持するといった障害を想定する。この場合、Ｔ１期間では、フリップフロップ２４に供給されるクロック信号が無効となるので、データ信号ｔ１及びパリティビットｔ１は保持されない（図７：（Ｄ））。
【０００９】
そこで、Ｔ１期間の前のクロックサイクルにて保持されていたデータ信号ｔ０及びパリティビットｔ０が、フリップフロップ２４の次段となるパリティチェッカ２２等に対して、Ｔ２期間での入力となる（図７：（Ｅ））。そして、パリティチェッカ２２は、Ｔ３期間において、Ｔ２期間にて入力されたデータ信号ｔ０とパリティビットｔ０とを用いてパリティチェックする。ここで、データ信号ｔ０とパリティビットｔ０との間のパリティの関係は正常であるため、パリティチェッカ２２は、パリティチェック結果を“ｎｏ  ｅｒｒｏｒ”として、エラー検出信号を出力する（図７：（Ｆ））。
【００１０】
このようにして、従来のデータ転送回路２０では、ＣＥ信号に障害が発生したにも関わらず、その障害を検出できない（図７：（Ｆ））という不都合が生じていた。そこで、このような不都合を回避するために、正のデータ転送回路に対し、同一内容となる副のデータ転送回路を更に一つ配置する。そして、正、副のデータ転送回路の出力信号を比較して相違があれば障害として検出可能とする「完全二重化方式」と呼ばれる仕組みが提案されている（例えば、特許文献１参照）。
【００１１】
【特許文献１】
特開２０００−１８８５５３号公報
【００１２】
【発明が解決しようとする課題】
ここで、例えば、図６に示すデータ転送回路２０に対して、完全二重化方式を採用した構成を提案する（図８参照）。図８に示す構成により、比較器２６において、正のデータパス部２１ａ及び副のデータパス部２１ｂの各出力信号を比較することによって、前述した制御系の障害が検出可能となる。しかしながら、完全二重化方式を採用することによって、同一内容の回路が更に追加された構成をとるので、データ転送回路の回路規模は著しく増大する。そして、回路規模の増大によって、実装面積が限られた基板上に収容される機能（ブロック）数が低減され、全体としての処理能力の低下を招くことになる。
【００１３】
また、近年の微細化等の半導体技術の進展によって、データ転送回路の制御は複雑化してきており、それに伴って転送データ量も増大している。ここで、転送データ量は、転送ビットレート（単位時間当たりの転送ビット数）とデータパス幅との積で決定される。そのため、転送データ量の増大化に伴って、転送ビットレートと同時にデータパス幅を大きくしなければならない。しかしながら、完全二重化方式を採用すると、データパス幅を大きくすることによって、加速度的に回路規模が増大することとなる。
【００１４】
本発明は、以上のような経緯に基づいてなされたものであり、半導体集積回路並びにその半導体集積回路を備えた記憶制御装置を提供することを目的とする。
【００１５】
【課題を解決するための手段】
前記課題を解決するための主たる本発明は、
データ信号が入力される第１の素子と、
前記データ信号に対応する検証コードが入力される第２の素子と、
前記第１の素子の動作を制御する第１の制御回路と、
前記第２の素子の動作を制御する第２の制御回路と、
前記第１の素子によって制御された前記データ信号と、前記第２の素子によって制御された前記検証コードと、を対照した結果を出力する出力回路と、
を有する半導体集積回路である。
本発明の他の特徴については、添付図面及び本明細書の記載により明らかにする。
【００１６】
【発明の実施の形態】
＝＝＝開示の概要＝＝＝
以下の開示により、少なくとも次のことが明らかにされる。
ここで、前述の「半導体集積回路」とは、例えば、後述の「データ転送回路」のことである。また、前述の「第１の素子」及び「第２の素子」とは、例えば、後述の「フリップフロップ」や「セレクタ回路」のことである。また、前述の「出力回路」とは、例えば、後述の「パリティチェッカ」のことである。また、前述のデータ信号と検証コードとの「対応」とは、例えば、検証コードをパリティビットとする場合、データ信号とパリティビットに含まれる“１”（又は“０”）のビットを合計した数が、偶数個（又は奇数個）となるように規定された関係となる。
【００１７】
本発明によると、データ信号が入力される第１の素子とそのデータ信号の検証コードが入力される第２の素子とを分離し、第１の素子の動作と第２の素子の動作をそれぞれ独立に制御するために制御回路を個々に備える構成において、例えば、第１又は第２の制御回路の故障や、第１又は第２の制御回路から第１又は第２の素子へ制御信号を供給する際の障害などによって、第１又は第２の素子において制御される動作が正常に行われなかった場合を想定する。
【００１８】
この場合、出力回路において、第１の素子によって制御されたデータ信号と第２の素子によって制御された検証コードとを対照すると、データ信号と検証コードとの前記対応が成立しないことが生じうる。そのため、第１又は第２の素子において制御された動作の障害を検出することが可能となり、半導体集積回路の信頼性を向上することができる。
【００１９】
また、本発明では、完全二重化方式を採用した従来の半導体集積回路と比較すると、第１及び第２の素子を二重化しなくて済む等、回路規模の増大化を抑えつつ、第１又は第２の素子にて制御された動作の障害を検出することが可能となる。さらに、本発明では、完全二重化方式を採用した従来の半導体集積回路と比較すると、回路規模の増大化を抑えつつ、データパス幅を大きくする、すなわち、データ転送量を大きくすることができる。
【００２０】
本発明の第２の態様として、前記データ信号と前記検証コードは、前記素子に対して同クロックサイクルにて入力され、前記出力回路は、前記素子によって制御された前記データ信号と前記検証コードとが同クロックサイクルにて入力され、前記同クロックサイクルにて入力された前記データ信号と前記検証コードとを対照した結果を出力してもよい。
【００２１】
この構成により、第１又は第２の素子において制御された動作が当該クロックサイクルにて正常に行われなかった場合（障害が発生した場合）、出力回路においてデータ信号と検証コードとを対照すると、第１及び第２の素子に対してデータ信号と検証コードが入力された際のクロックサイクルが異なり、前記対応が成立しないことが生じうる。そのために、第１又は第２の素子において制御された動作の障害を検出することが可能となり、半導体集積回路の信頼性を向上することができる。
【００２２】
本発明の第３の態様として、前記検証コードをパリティビット又は誤り訂正符号とし、前記出力回路は、前記第１の素子によって制御された前記データ信号と、前記第２の素子によって制御された前記パリティビット又は前記誤り訂正符号と、を対照した結果を出力してもよい。
ここで、前述した「誤り訂正符号」とは、例えば、後述の「ハミング符号」や「ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）」のことである。
【００２３】
このようにして、第１又は第２の素子において制御された動作の障害以外にも、種々採用した誤り検出方式に応じて、データ転送中等に発生するビット誤り等の障害もあわせて検出できるので、半導体集積回路の信頼性を向上することができる。
【００２４】
本発明の第４の態様として、前記第１の素子を、前記データ信号が入力される第１のフリップフロップとし、前記第２の素子を、前記検証コードが入力される第２のフリップフロップとし、前記第１の制御回路は、前記第１のフリップフロップの動作を制御し、前記第２の制御回路は、前記第２のフリップフロップの動作を制御してもよい。
【００２５】
ここで、前述した「第１又は第２のフリップフロップの動作」とは、例えば、後述の「フリップフロップの出力信号を強制的にリセットするクリア動作」、「フリップフロップの出力信号を強制的に“Ｈ”又は“Ｌ”レベルにセットするプリセット動作」、「クロック信号の有効・無効を設定する動作」等である。すなわち、本発明によって、第１又は第２のフリップフロップにおいて制御されるクリア動作、プリセット動作、クロック信号の有効・無効を設定する動作などの障害を検出することができ、半導体集積回路の信頼性を向上させることができる。
【００２６】
本発明の第５の態様として、前記第１の素子を、前記データ信号のデータ保持に用いられるクロック信号の有効・無効を制御可能な第１のフリップフロップとし、前記第２の素子を、前記検証コードのデータ保持に用いられるクロック信号の有効・無効を制御可能な第２のフリップフロップとし、前記第１の制御回路は、前記第１のフリップフロップに入力される前記クロック信号の有効・無効を制御し、前記第２の制御回路は、前記第２のフリップフロップに入力される前記クロック信号の有効・無効を制御してもよい。
【００２７】
このようにして、第１又は第２のフリップフロップにおいて制御されたクロック信号の有効・無効を設定する動作の障害を検出することができ、半導体集積回路の信頼性を向上することができる。
【００２８】
本発明の第６の態様として、前記第１の素子を、複数の前記データ信号をセレクト動作する第１のセレクト回路とし、前記第２の素子を、前記複数のデータ信号ごとに付加される複数の前記検証コードをセレクト動作する第２のセレクト回路とし、前記第１の制御回路は、前記第１のセレクト回路における前記セレクト動作を制御し、前記第２の制御回路は、前記第２のセレクト回路における前記セレクト動作を制御してもよい。
ここで、前述の「セレクト回路」とは、例えば、後述の「マルチプレクサ」や「デマルチプレクサ」のことである。このようにして、第１又は第２のセレクト回路において制御されたセレクト動作の障害を検出することができ、半導体集積回路の信頼性を向上することができる。
【００２９】
本発明の第７の態様として、ホストコンピュータと記憶装置との間で授受されるデータを記憶しておくためのキャッシュメモリと、前記ホストコンピュータと前記キャッシュメモリとの間のデータ転送を制御するチャネル制御部と、前記キャッシュメモリと前記記憶装置との間のデータ転送を制御するディスク制御部と、前記キャッシュメモリを制御するキャッシュメモリ制御部と、前記チャネル制御部と前記ディスク制御部とを通信可能に接続するためのスイッチング制御部と、を有する記憶制御装置において、前記チャネル制御部、前記ディスク制御部、前記キャッシュメモリ制御部又は前記スイッチング制御部の少なくともいずれか一つは、データ信号が入力される第１の素子と、前記データ信号に対応する検証コードが入力される第２の素子と、前記第１の素子の動作を制御する第１の制御回路と、前記第２の素子の動作を制御する第２の制御回路と、前記第１の素子によって制御された前記データ信号と前記第２の素子によって制御された前記検証コードとを対照した結果を出力する出力回路と、を有する半導体集積回路を備えてもよい。
ここで、前述の「記憶制御装置」とは、例えば、後述の「ディスクアレイ装置」や「テープアレイ装置」のことである。
【００３０】
このようにして、記憶制御装置は、従来の半導体集積回路に対しての回路修正や追加回路が少なく済み、第１又は第２の素子にて制御された動作の障害を検出可能な半導体集積回路を備えたことにより、低コストにて高信頼性を実現できる。
【００３１】
＝＝＝実施例の具体的な説明＝＝＝
＜データ転送回路のブロック図＞
図１に本発明の一実施形態となるデータ転送回路の機能ブロック図を示す。図１に示すデータ転送回路２０は、システムにおいて複数使用する内の一つであり、前段にデータ転送回路１０が配置され、後段にデータ転送回路３０が配置される。データ転送回路２０は、前段のデータ転送回路１０よりデータ信号が入力されると、データ信号の伝搬、選択、演算などの各工程を経て、後段のデータ転送回路３０にデータ転送する機能を有する。なお、前段のデータ転送回路１０から入力されるデータ信号（１Ｂｙｔｅ）に対しては、パリティビット（１ｂｉｔ：検証コード）が付加されるものとする。（なお、データ信号のサイズは、“１Ｂｙｔｅ”に限定されるものではない。）
データ転送回路２０は、データパス部２１と、制御回路２３と、パリティチェッカ２２と、を備える。
データパス部２１は、パリティビット（１ｂｉｔ）が付加されたデータ信号（１Ｂｙｔｅ）の伝搬、選択、演算などの各工程を経て、データ転送する回路である。また、データパス部２１は、データ信号（１Ｂｙｔｅ）が入力される第１の素子を有する第１のデータパス部と、パリティビット（１ｂｉｔ）が入力される第２の素子を有する第２のデータパス部と、に分離される。
【００３２】
なお、図１には、第１及び第２の素子として、クロックイネーブル信号（以下、ＣＥ信号と称す）に基づいてクロック信号の有効・無効を制御可能な、クロックイネーブル端子付きＤフリップフロップ２４ａ（第１の素子）、２４ｂ（第２の素子）を示している。
【００３３】
制御回路２３は、データパス部２１において前述の各工程（データ信号の伝搬、選択、演算など）に対応した素子の動作を制御する回路であり、例えば、ステートマシンによって実現される。また、制御回路２３は、第１の素子の動作を制御するための第１の制御回路２３ａと、第２の素子の動作を制御するための第２の制御回路２３ｂと、に分離される。
【００３４】
ここで、第１の制御回路２３ａは、フリップフロップ２４ａに対してＣＥ信号（第１のＣＥ信号と称す）を出力する。また、第２の制御回路２３ｂは、フリップフロップ２４ｂにＣＥ信号（第２のＣＥ信号と称す）を、前述した第１のＣＥ信号と同クロックサイクルにて出力するものとする。
【００３５】
パリティチェッカ（出力回路）２２では、フリップフロップ２４ａにて保持されたデータ信号（１Ｂｙｔｅ）と、フリップフロップ２４ｂにて保持されたパリティビット（１Ｂｉｔ）と、が同クロックサイクルにて入力される。また、パリティチェッカ２２は、同クロックサイクルにて入力されたデータ信号（１Ｂｙｔｅ）とパリティビット（１Ｂｉｔ）とを用いてパリティチェックし、その結果をエラー検出信号として出力する。
【００３６】
なお、データ信号（１Ｂｙｔｅ）に付加するコードとして、パリティビット以外にも、ハミング符号やＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）等の誤り訂正符号（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を用いることができる。この場合、パリティチェッカ２２は、採用する誤り検出方式に応じた回路に代替可能である。
【００３７】
以上の説明により、データ転送回路２０は、データ信号が入力される第１の素子（フリップフロップ２４ａ等）と検証コード（パリティビットや誤り訂正符号等）が入力される第２の素子（フリップフロップ２４ｂ等）とを分離し、第１の素子の動作と第２の素子の動作をそれぞれ独立に制御するために第１の制御回路２３ａと第２の制御回路２３ｂを個々に備える構成とする。
【００３８】
この構成により、データ転送回路２０は、図８に示したような完全二重化方式のデータ転送回路２０と比較すると、データパス部２１を二重化しないで済む等、回路規模の増大化を抑えつつ、制御回路２３自体の故障や、制御回路２３からデータパス部２１に対して制御信号を供給する際の障害等（これらを総称して、制御系の障害と称す）を検出することができる。
【００３９】
さらに、データ転送回路２０は、図８に示すような完全二重化方式のデータ転送回路２０と比較して、回路規模の増大化を抑えつつ、データパス幅を大きくする、すなわち、データ転送量を大きくすることができる。
【００４０】
＜データ転送回路の動作＞
図２は、データ転送回路２０のフリップフロップ２４ａへ供給される第１のＣＥ信号の障害を例として、その検出動作を説明するための主要信号のタイミングチャートを示している。なお、フリップフロップ２４ｂへ供給される第２のＣＥ信号の障害の検出動作については、第１のＣＥ信号の障害の検出動作と同様であるために、以下では説明を省略する。
【００４１】
まず、データ転送回路２０において、第１及び第２のＣＥ信号が正常な場合の動作を説明する。なお、各クロックサイクル（Ｔ０〜Ｔ４期間）にわたって、フリップフロップ２４ａ、２４ｂに対して同クロックサイクルにて入力されるデータ信号（１Ｂｙｔｅ）とパリティビット（１ｂｉｔ）においては、“１”（又は“０”）のビットを合計した数が、規定された偶数個（又は奇数個）となることを前提とする。なお、このように、データ信号（１Ｂｙｔｅ）とパリティビット（１ｂｉｔ）との間にて規定された関係のことを「パリティの関係」と称する。
【００４２】
また、第１及び第２のＣＥ信号は、Ｔ１期間にてＬレベルからＨレベルに切り替わり、フリップフロップ２４ａ、２４ｂに供給されるクロック信号は有効な状態になるものとする。
【００４３】
このような前提のもと、フリップフロップ２４ａ、２４ｂでは、Ｔ１期間でのクロック信号のエッジにて、データ信号ｔ１及びパリティビットｔ１が保持される（図２：（Ａ））。そして、保持されたデータ信号ｔ１及びパリティビットｔ１は、フリップフロップ２４ａ、２４ｂの次段となるパリティチェッカ２２等に対し、Ｔ２期間での入力となる（図２：（Ｂ））。
【００４４】
パリティチェッカ２２は、Ｔ３期間において、Ｔ２期間に入力されたデータ信号ｔ１とパリティビットｔ１とを用いてパリティチェックする。ここで、データ信号ｔ１とパリティビットｔ１の間のパリティの関係は正常であるため、パリティチェッカ２２は、パリティチェックの結果を“ｎｏ  ｅｒｒｏｒ”として、エラー検出信号を出力する（図２：（Ｃ））。
【００４５】
つぎに、データ転送回路２０において、第１のＣＥ信号に障害が発生した場合の動作を説明する。なお、第１のＣＥ信号の障害としては、Ｔ１期間において、第１のＣＥ信号がＬレベルからＨレベルに切り替わらず、Ｌレベルの状態を維持するといった障害を想定する（図２：（Ｄ））。この場合、Ｔ１期間では、フリップフロップ２４ａに供給されるクロック信号が無効な状態となり、データ信号ｔ１は保持されない。一方、フリップフロップ２４ｂでは、第２のＣＥ信号が正常であるので、パリティビットｔ１がＴ１期間において保持される（図２：（Ｄ））。
【００４６】
そこで、パリティチェッカ２２のＴ２期間における入力としては、フリップフロップ２４ａにてＴ１期間の前のクロックサイクルに保持されていたデータ信号ｔ０と、フリップフロップ２４ｂにてＴ１期間に保持されたパリティビットｔ１となる（図２：（Ｅ））。そして、Ｔ３期間において、パリティチェッカ２２は、データ信号ｔ０とパリティビットｔ１とを用いてパリティチェックする。ここで、パリティビットｔ１は、データ信号ｔ０に基づいてパリティコード化されたものではないので、データ信号ｔ０とパリティビットｔ１との間のパリティの関係は基本的には成立しない。そのため、パリティチェッカ２２は、パリティチェックの結果を“ｅｒｒｏｒ”としてエラー検出信号を出力し（図２：（Ｆ））、第１のＣＥ信号の障害を検出する。
【００４７】
以上の説明により、第１又は第２の素子（フリップフロップ２４ａ、２４ｂ）において制御される動作が正常に行われなかった場合、出力回路（パリティチェッカ２２等）において、第１の素子によって制御されたデータ信号と第２の素子によって制御された検証コードとを対照すると、データ信号と検証コードとの間の対応（パリティの関係等）が成立しないことが起こりうる。そのため、データ転送回路２０は、第１又は第２の素子において制御された動作の障害を検出することが可能となり、前述したように回路規模の増大化を抑えつつ、高信頼性を実現できる。
【００４８】
＜セレクト回路＞
図３に示すように、データパス部２１を構成するセレクト回路２５（マルチプレクサ、デマルチプレクサなど）に対して、セレクト動作を制御するためのセレクト制御信号の障害を検出することも可能である。
【００４９】
同図によると、データパス部２１の第１のデータパス部側では、データ信号（１Ｂｙｔｅ）を伝送するための信号線が組合せ回路（不図示）等で分岐されている。そして、その分岐された複数の信号線からフリップフロップ２４ａ、２４ｃ等を介して伝送されてくるデータ信号（１Ｂｙｔｅ）をセレクト動作するセレクト回路２５ａを備える。
【００５０】
また、データパス部２１の第２のデータパス部側では、前述したデータ信号（１Ｂｙｔｅ）のパリティビット（１ｂｉｔ）を伝送するための信号線が組合せ回路（不図示）等で分岐されている。そして、その分岐された複数の信号線からフリップフロップ２４ｂ、２４ｄなどを介して伝送されてくるパリティビット（１ｂｉｔ）をセレクト動作するセレクト回路２５ｂを備える。
【００５１】
このセレクト回路２５ａ、２５ｂに対して、第１の制御回路２３ａは、セレクト回路２５ａでのセレクト動作を制御するための第１のセレクト制御信号を出力する。また、第２の制御回路２３ｂは、セレクト回路２５ｂでのセレクト動作を制御するための第２のセレクト制御信号を、前述した第１のセレクト制御信号と同クロックサイクルにて出力するものとする。パリティチェッカ２２では、セレクト回路２５ａにてセレクトされたデータ信号（１Ｂｙｔｅ）と、セレクト回路２５ｂにてセレクトされたパリティビット（１ｂｉｔ）と、が同クロックサイクルにて入力される。
【００５２】
パリティチェッカ２２は、同クロックサイクルにて入力されたデータ信号（１Ｂｙｔｅ）とパリティビット（１ｂｉｔ）を用いてパリティチェックし、その結果をエラー検出信号として出力する。
【００５３】
この構成により、データ転送回路２０は、図６に示すような従来のデータ転送回路２０と同様な回路規模にて、前述した制御系の障害を検出することができる。また、図８に示す完全二重化方式のデータ転送回路２０と比較した場合、データパス部２１を二重化しないで済む等、回路規模の増大化を抑えつつ、前述した制御系の障害を検出することができる。さらに、データ転送回路２０は、図８に示すような完全二重化方式のデータ転送回路２０と比較して、回路規模の増大化を抑えつつ、データパス幅を大きくする、すなわち、データ転送量を大きくすることができる。
【００５４】
図４は、図３に示すデータ転送回路２０において、セレクト回路２５ａへ供給される第１のセレクト制御信号の障害を例として、その検出動作を説明するための主要信号のタイミングチャートを示している。なお、第２のセレクト制御信号の障害の検出動作は、第１のセレクト制御信号の障害の検出動作と同様であるので、以下説明を省略する。
【００５５】
図４に示すように、正常な場合では、第１及び第２のセレクト制御信号は、Ｔ２期間における所定のタイミングにてＬレベルからＨレベルに切り替わる。その結果として、セレクト回路２５ａ、２５ｂでは、Ｄ０端子入力からＤ１端子入力のセレクトに切り替わるものとする。
【００５６】
ここで、Ｔ２期間において、第１のセレクト制御信号がＬレベルからＨレベルに切り替わらず、Ｌレベルの状態を維持するといった障害を想定する（図４：（Ａ））。この場合、セレクト回路２５ａでは、Ｄ０端子入力のセレクトを維持することになる。一方、セレクト回路２５ｂでは、第２のセレクト制御信号が正常であるので、Ｄ０端子入力からＤ１端子入力のセレクトに切り替わる。
【００５７】
そこで、パリティチェッカ２２のＴ２期間における入力としては、セレクト回路２５ａの出力であるデータ信号ｔ２（０）と、セレクト回路２５ｂの出力であるパリティビットｔ２（１）となる（図４：（Ｂ））。そして、Ｔ３期間において、パリティチェッカ２２は、データ信号ｔ２（０）の内容をパリティビットｔ２（１）に基づいてパリティチェックすることになる。
【００５８】
ここで、パリティビットｔ２（１）は、データ信号ｔ２（０）の内容に基づいてパリティコード化されたものではないので、データ信号ｔ２（０）とパリティビットｔ２（１）との間のパリティの関係は基本的には成立しない。そこで、パリティチェッカ２２は、パリティチェックの結果を“ｅｒｒｏｒ”として、エラー検出信号を出力することとなる（図４：（Ｃ））。
【００５９】
このようにして、データ転送回路２０は、セレクト回路２５ａへ供給される第１又は第２のセレクト制御信号の障害を検出することができ、前述したように回路規模の増大化を抑えつつ、高信頼性を実現できる。
【００６０】
＜その他の素子＞
また、本発明に係る実施形態において、データパス部２１を構成するフリップフロップ２４（Ｄ、ＪＫフリップフロップ等）は、出力信号を強制的にリセットするためのリセット信号が入力されるクリア（リセット）端子や、出力信号を強制的に“Ｈ”又は“Ｌ”レベルにセットするためのセット信号が入力されるプリセット（セット）端子を備えているものとする。ここで、本発明に係る実施形態として、クリア端子に入力されるリセット信号や、プリセット端子に入力されるセット信号の障害を検出する構成も考えられる。
【００６１】
この場合、第１の素子は、データ信号が入力されるクリア・プリセット端子付きフリップフロップ２４ａとなり、第２の素子は、パリティビット等の誤り検出（又は訂正）符号が入力されるクリア・リセット端子付きフリップフロップ２４ｂとなる。そして、第１の制御回路２３ａは、フリップフロップ２４ａでのクリア・プリセット動作を制御し、第２の制御回路２３ｂは、フリップフロップ２４ｂでのクリア・プリセット動作を制御する構成となる。
【００６２】
この構成により、データ転送回路２０は、フリップフロップ２４ａ、２４ｂにおいて制御されたクリア・プリセット動作の障害を検出することができ、高信頼性を実現できる。
【００６３】
＜記憶制御装置＞
本発明に係るデータ転送回路２０を備えた記憶制御装置について説明する。なお、以下では、記憶制御装置はディスクアレイ装置４０とし、そのディスクアレイ装置４０を含めた記憶装置システムの構成を図５に示す。
【００６４】
記憶装置システムにおいて、ホストコンピュータ５０とディスクアレイ装置４０とが、ＥＳＣＯＮ（登録商標）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等の通信手段６０を介して接続している。ホストコンピュータ５０は、メインフレームコンピュータ、パソコン又はワークステーション等のオープン系コンピュータである。
【００６５】
ディスクアレイ装置４０は、チャネル制御部４１、ディスク制御部４２、キャッシュメモリ４３ａを備えたキャッシュメモリ制御部４３、ディスクドライブ４５を備えて構成される。なお、チャネル制御部４１、ディスク制御部４２、キャッシュメモリ制御部４３は、それぞれクロスバスイッチ等で構成されたスイッチング制御部４４を介して通信可能に接続されている。
【００６６】
チャネル制御部４１は、ホストコンピュータ５０との間の通信インタフェースを備え、ホストコンピュータ５０とキャッシュメモリ４３ａとの間のデータ転送を制御する。ディスク制御部４２は、キャッシュメモリ４３ａとディスクドライブ４５との間のデータ転送を制御する。キャッシュメモリ４３ａは、チャネル制御部４１とディスク制御部４２の双方からアクセス可能であり、ディスクドライブ４５の入出力データを記憶する。また、キャッシュメモリ制御部４３は、キャッシュメモリ４３ａに対するアクセスを制御する。
【００６７】
ディスクドライブ４５は、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ（ｏｒ  Ｉｎｄｅｐｅｎｄｅｎｔ）  Ｄｉｓｋｓ）方式により制御されていることもある。また、ディスクドライブ４５により提供される記録領域は、この記憶領域上に設定される論理的な記憶領域である論理ボリュームを用いて管理される。
【００６８】
このような構成となるディスクアレイ装置４０は、チャネル制御部４１、ディスク制御部４２、キャッシュメモリ制御部４３又はスイッチング制御部４４の少なくともいずれかに対し、本発明に係るデータ転送回路２０を備える。例えば、チャネル制御部４１において、データ信号が入力される第１の素子（フリップフロップ２４ａ等）と、データ信号に対応する検証コードが入力される第２の素子（フリップフロップ２４ｂ等）と、第１の素子の動作を制御する第１の制御回路（第１の制御回路２３ａ）と、第２の素子の動作を制御する第２の制御回路（第２の制御回路２３ｂ）と、第１の素子によって制御されたデータ信号と第２の素子によって制御された検証コードとを対照した結果を出力する出力回路（パリティチェッカ２２等）と、を有する本発明に係るデータ転送回路２０を備えることになる。
【００６９】
ここで、本発明に係るデータ転送回路２０は、前述したとおり、回路規模の増大化を抑えつつ、信頼性を向上させることができる。そのため、ディスクアレイ装置４０は、従来のデータ転送回路２０からの回路変更や追加回路が少なく済み、第１又は第２の素子にて制御された動作の障害を検出可能な本発明に係るデータ転送回路２０を備えたことにより、低コストにて高信頼性を実現できる。
【００７０】
なお、記憶制御装置としては、前述のディスクアレイ装置４０に限定されず、例えば、カートリッジ型やオープン・リール型の磁気テープを対象としたテープアレイ装置としてもよい。
【００７１】
以上、本発明の実施形態について、その実施形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【００７２】
【発明の効果】
本発明によれば、半導体集積回路並びにその半導体集積回路を備えた記憶制御装置を提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る半導体集積回路（データ転送回路）の機能ブロック図である。
【図２】本発明の一実施形態に係る半導体集積回路（データ転送回路）の動作タイミングを説明するためのタイミングチャートである。
【図３】本発明のその他の一実施形態に係る半導体集積回路（データ転送回路）の機能ブロック図である。
【図４】本発明のその他の一実施形態に係る半導体集積回路（データ転送回路）の動作タイミングを説明するためのタイミングチャートである。
【図５】本発明に係る半導体集積回路（データ転送回路）を備えた記憶制御装置に関し、その記憶制御装置を含めたシステムの概略構成図である。
【図６】従来の半導体集積回路（データ転送回路）の機能ブロック図である。
【図７】従来の半導体集積回路（データ転送回路）の動作タイミングを説明するためのタイミングチャートである。
【図８】本発明に係る半導体集積回路（データ転送回路）に完全二重化方式を採用した場合の機能ブロック図である。
【符号の説明】
１０、２０、３０  データ転送回路
２１  データパス部
２２  パリティチェッカ
２３  制御回路
２４  フリップフロップ
２５  セレクト回路
４０  ディスクアレイ装置
４１  チャネル制御部
４２  ディスク制御部
４３  キャッシュメモリ制御部
４４  スイッチング制御部
４５  ディスクドライブ
５０  ホストコンピュータ
６０  通信手段
【図１】
2004173119.tif 000003
【図２】
2004173119.tif 000004
【図３】
2004173119.tif 000005
【図４】
2004173119.tif 000006
【図５】
2004173119.tif 000007
【図６】
2004173119.tif 000008
【図７】
2004173119.tif 000009
【図８】
2004173119.tif 000010