説明

半導体集積回路

【課題】エラー検出のためのハードウエア上のオーバーヘッド及び時間的オーバーヘッドを小さくでき、且つエラーを発生した論理素子を特定できる半導体集積回路を提供することを第1目的とする。また、ダイナミック回路のリセット時間による時間的オーバーヘッドを隠蔽でき、実効的な演算スループットを向上させる半導体集積回路を提供することを第2目的とする。
【解決手段】本発明に係る半導体集積回路は、論理素子単位でのハンドシェークを実施し、論理素子単位でのエラー発生の検出を行うことで後段の論理素子にエラー伝搬を行わないこととした。さらに、本発明に係る半導体集積回路は、各論理素子内で同一の論理回路を並列に接続し、2相で動作させることとした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、論理素子毎にエラー検出を可能とする半導体集積回路に関する。
【背景技術】
【0002】
従来、信頼性向上のために回路の二重化(例えば、特許文献1を参照。)やエラー検出符号化(例えば、特許文献2を参照。)によるエラー検出方式が検討されている。また、半導体集積回路の高速化のためにダイナミック回路を用いることが知られている(例えば、特許文献3を参照。)。
【特許文献1】特開平06−237151号公報
【特許文献2】特開2007−267392号公報
【特許文献3】特開2003−060497号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかし、回路の二重化やエラー検出符号化によるエラー検出方式は、別途エラー検出用のハードウエア上のオーバーヘッドが存在し、エラー検出実行のための時間的オーバーヘッドも存在するという課題があった。さらに、動作時のエラーを検出してもエラーが発生した論理回路を特定できず、エラー回避のための具体的な対策を施すのが困難という課題があった。また、ダイナミック回路を用いた場合、動作は高速になるが、リセット動作が時間的オーバーヘッドとなるという課題もあった。
【0004】
本発明は、上記課題を解決するためになされたもので、エラー検出のためのハードウエア上のオーバーヘッド及び時間的オーバーヘッドを小さくでき、且つエラーを発生した論理素子を特定できる半導体集積回路を提供することを第1目的とする。また、ダイナミック回路のリセット時間による時間的オーバーヘッドを隠蔽でき、実効的な演算スループットを向上させる半導体集積回路を提供することを第2目的とする。
【課題を解決するための手段】
【0005】
第1目的を達成するために、本発明に係る半導体集積回路は、論理素子単位でのハンドシェークを実施し、論理素子単位でのエラー発生の検出を行うことで後段の論理素子にエラー伝搬を行わないこととした。
【0006】
具体的には、本発明に係る半導体集積回路は、ダイナミック回路の論理回路を持つ複数の論理素子が連結された論理ブロックと、ハンドシェーク方式で前段の前記論理素子から後段の前記論理素子へ信号を伝送させ、前記論理素子単位で自己同期的なパイプライン動作をさせる信号伝送手段と、前記論理素子毎の出力信号を確認し、エラーを検知したときにエラーの信号を出力した前記論理素子の動作を停止させるディテクタと、前記論理素子へ入力する信号数又は前記論理素子が出力する信号数を計測するカウンタと、前記ディテクタがエラーを検知したときに、前記カウンタを通過した信号数からエラーを発生した前記論理素子を特定するエラー特定手段と、を備える。
【0007】
ディテクタは、論理素子からの出力にエラーを発見した場合、その論理素子を停止させることができる。また、カウンタはその論理素子停止後からカウンタを通過した信号数を計測することができる。さらに、半導体集積回路内の論理素子の接続経路及びカウンタの配置場所は既知である。論理素子はハンドシェーク方式で信号を伝搬するため、論理素子の1つが停止すれば、後続の信号は停止中の論理素子より前段の各論理素子で出力待ち状態となる。このため、カウンタの後段の論理素子が停止すれば、カウンタから停止中の論理素子間にある論理素子数分の信号がカウンタを通過することになり、停止中、すなわちエラーが発生した論理素子の位置が判明する。また、カウンタの前段の論理素子が停止しても、停止中の論理素子からカウンタ間にある論理素子数分の信号がカウンタを通過することになり、停止中、すなわちエラーが発生した論理素子の位置が判明する。
【0008】
従って、本発明に係る半導体集積回路は、外部にエラー検知用の回路が不要であり後段の論理素子へエラー伝搬を行わないため、エラー検出のためのハードウエア上のオーバーヘッド及び時間的オーバーヘッドを小さくでき、且つエラーを発生した論理素子を特定できる。
【0009】
本発明に係る半導体集積回路の前記カウンタは、前記論理ブロックの入力端と出力端に配置されていることが好ましい。信号の入力数と出力数をカウントすることでエラーが発生した論理素子の特定精度が向上する。
【0010】
第2目的を達成するために、本発明に係る半導体集積回路は、各論理素子内で同一の論理回路を並列に接続し、2相で動作させることとした。
【0011】
具体的には、本発明に係る半導体集積回路の前記論理素子のそれぞれは、第一相側と第二相側で交互に動作する並列関係にある同一の前記論理回路を持ち、非動作時に前記論理回路をリセットし、前記信号伝送手段は、前記論理素子の第一相側の前記論理回路から出力された信号を後段の前記論理素子の第一相側の前記論理回路に結合し、前記論理素子の第二相側の前記論理回路から出力された信号を後段の前記論理素子の第二相側の前記論理回路に結合することを特徴とする。
【0012】
第一相と第二相側を交互に動作させることでダイナミック回路のリセット動作中も他方の論理回路で処理することができる。本発明に係る半導体集積回路は、ダイナミック回路のリセット時間による時間的オーバーヘッドを隠蔽でき、実効的な演算スループットを向上させることができる。
【0013】
本発明に係る半導体集積回路の前記論理素子が持つ第一相側と第二相側の前記論理回路は、一方が信号処理中に他方がリセット動作を行うことを特徴とする。演算スループットを最大とすることができる。
【発明の効果】
【0014】
本発明は、エラー検出のためのハードウエア上のオーバーヘッド及び時間的オーバーヘッドを小さくでき、且つエラーを発生した論理素子を特定できる半導体集積回路を提供すること、並びに、ダイナミック回路のリセット時間による時間的オーバーヘッドを隠蔽でき、実効的な演算スループットを向上させる半導体集積回路を提供することができる。
【発明を実施するための最良の形態】
【0015】
添付の図面を参照して本発明の実施の形態を説明する。以下に説明する実施の形態は本発明の構成の例であり、本発明は、以下の実施の形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。また、枝番号を付さずに説明している場合は、同一符号全てに共通する説明である。
【0016】
図1は、本実施形態の半導体集積回路を説明する概念図である。本実施形態の半導体集積回路は、ダイナミック回路の論理回路を持つ複数の論理素子21が連結された論理ブロック31と、ハンドシェーク方式で前段の論理素子21から後段の論理素子21へ信号を伝送させ、論理素子21単位で自己同期的なパイプライン動作をさせる信号伝送手段(図示せず)と、論理素子21毎の出力信号を確認し、エラーを検知したときにエラーの信号を出力した論理素子21の動作を停止させるディテクタ22と、論理素子21へ入力する信号数又は論理素子21が出力する信号数を計測するカウンタ23と、ディテクタ22がエラーを検知したときに、カウンタ23を通過した信号数からエラーを発生した論理素子21を特定するエラー特定手段(図示せず)と、を備える。
【0017】
論理ブロック31は論理素子21−1から論理素子21−5を順に連結している。論理素子21はそれぞれダイナミック回路の論理回路をもつ。ダイナミック回路の論理回路の例を図2から図4に示す。図2は否定的論理積(NAND)又は否定論理和(NOR)である。入力端子(A1、A2、B1、B2)は4つ、出力端子(X1、X2)は2つである。図3は排他的論理和(XOR)又は排他的論理和の否定(XNOR)である。入力端子(A1、A2、B1、B2)は4つ、出力端子(X1、X2)は2つである。図4はインバータ(NOT)である。入力端子(A1、A2)は2つ、出力端子(X1、X2)は2つである。
【0018】
信号伝送手段は、ハンドシェーク方式で前段の論理素子21から後段の論理素子21へ信号を伝送させ、論理素子21単位でパイプライン動作をさせる。例えば、信号伝送手段は自己同期転送制御装置(Cエレメント)である。
【0019】
それぞれの論理素子21の出力には論理素子21の出力を監視するディテクタ22が配置される。例えば、ディテクタ22−3は、論理素子21−3からエラーが出力された場合、論理素子21−3を停止させる。例えば、論理素子21の出力がAとBの2つある場合、(A,B)=(0,1)、(1,0)を正常出力、(A,B)=(0,0)をリセット状態、(A,B)=(1,1)をエラー出力と判断することができる。ディテクタ22がエラー出力した論理素子21を停止させることで後段の論理素子21へのエラー伝搬を抑制することができる。
【0020】
カウンタ23は、通過する信号数を計測し、少なくとも1ついずれかの論理素子21間に配置される。エラー特定手段は、カウンタ23の信号計測数でエラーを発生した論理素子21を特定することができる。エラー特定手段がエラーを発生した論理素子21を特定する方法を図5及び図6を用いて説明する。
【0021】
図5はカウンタ23の後段の論理素子21がエラー出力した場合を説明した図である。図1で説明したように論理素子21−1から論理素子21−5が連続して接続されている。カウンタ23は論理素子21−1と論理素子21−2との間に配置されている。図5ではディテクタ22の記載を省略している。信号S1は図5(1)から図5(5)に示すように論理素子21−1から論理素子21−5へハンドシェークされ、パイプライン動作で処理されていく。次の信号S2は図5(4)から図5(7)にかけて同様にハンドシェークされ、パイプライン動作で処理されていく。図5(7)で論理素子21−4がエラー出力したとする。この時点で論理素子21−4は停止する。次の信号S3は図5(7)から図5(9)にかけて同様にハンドシェークされ、パイプライン動作で処理されていくが、論理素子21−4が停止しているため、論理素子21−3で出力待ち状態で止まることになる。同様に信号S4及び信号S5もそれぞれ論理素子21−2及び論理素子21−1で止まることになる。
【0022】
ここで、カウンタ23は論理素子21−4が停止した後に通過した信号数を計測する。すなわち、カウンタ23は信号S3と信号S4の2つが通過したことを計測する。2つの信号がカウンタ23を通過したことから、エラー検出手段はカウンタ23の後段の論理素子21の2つ、すなわち論理素子21−2、論理素子21−3が正常に動作していると判断でき、論理素子21−4がエラーを発生したと判断できる。
【0023】
図6はカウンタ23の前段の論理素子21がエラー出力した場合を説明した図である。論理素子21の接続は図5と同様であるが、カウンタ23は論理素子21−3と論理素子21−4との間に配置されている。図6(1)から図6(7)にかけて信号S1、信号S2及び信号S3がハンドシェークされ、パイプライン動作で処理されていく。図6(5)のように論理素子S21−2が信号S4についてエラー出力したとする。この時点で論理素子21−2は停止する。次の信号S5は論理素子21−2が停止しているため、論理素子21−1で出力待ち状態で止まることになる。
【0024】
ここで、カウンタ23は論理素子21−2が停止した後に通過した信号数を計測する。すなわち、カウンタ23は信号S3が通過したことを計測する。1つの信号がカウンタ23を通過したことから、エラー検出手段はカウンタ23の前段の論理素子21−3が正常に動作していると判断でき、論理素子21−2がエラーを発生したと判断できる。例えば、信号S1,信号S2間が空いていた場合でも、エラーにより信号S1が止まると、信号S2は必ず信号S1に追いつくため、結果的にエラー位置を特定することが可能となる。
【0025】
図5及び図6で説明したように、本実施形態の半導体集積回路は、カウンタとエラー検出回路を備えることでエラーを発生した論理回路21を特定できる。また、エラーを発生した論理回路21を停止するため、エラー伝搬することがなく時間的オーバーヘッドを小さくでき、外部でエラーを検出する回路が不要のためハードウエア上のオーバーヘッドも小さくできる。
【0026】
本実施形態の半導体集積回路は、カウンタ23は、論理ブロック31の入力端32と出力端33に配置されていてもよい。図1、図5、図6では論理素子21が直線的に接続されている半導体集積回路を説明したが、入力端32と出力端33にもカウンタ23を配置することで論理素子21が複雑に接続される半導体集積回路における論理素子21のエラーも検出できるようになる。
【0027】
図1の半導体集積回路の論理素子21のそれぞれは、第一相側と第二相側で交互に動作する並列関係にある同一の論理回路を持つ。図1の論理回路(11−1、11−2、12−1、12−2、13−1、13−2、14−1、14−2、15−1、15−2)は、ダイナミック回路である。論理素子21−1は第一相側に論理回路11−1を持ち、第二相側に論理回路11−1と同じ論理回路11−2を持つ。論理素子21−2から論理素子21−5も同様である。
【0028】
図1の半導体集積回路の信号伝送手段は、論理素子21の第一相側の論理回路から出力された信号を後段の論理素子21の第一相側の論理回路に結合し、論理素子21の第二相側の論理回路から出力された信号を後段の論理素子21の第二相側の論理回路に結合する。例えば、論理回路11−1で処理された信号は後段の論理素子21の全てにおいて第一相側の論理回路(12−1、13−1、14−1、15−1)で処理される。一方、論理回路11−2で処理された信号は後段の論理素子21の全てにおいて第二相側の論理回路(12−2、13−2、14−2、15−2)で処理される。
【0029】
論理素子21は順に入力される信号を第一相側の論理回路と第二相側の論理回路で交互に処理し、非動作時に論理回路をリセットする。この動作を図7を利用して詳細に説明する。論理素子21の接続は図5と同様であるが、それぞれの論理素子21は第一相と第二相があるため、図7ではこれらを上段と下段に分けて記載している。すなわち、論理素子21−1の上段は論理回路11−1であり、下段は論理回路11−2である。同様に、論理素子(21−2、21−3、21−4、21−5)の上段はそれぞれ論理回路(12−1、13−1、14−1、15−1)であり、下段はそれぞれ論理回路(12−2、13−2、14−2、15−2)である。なお、図7においてカウンタ23及びディテクタ22の記載を省略している。
【0030】
信号S1は図7(1)から図7(5)に示すように論理素子21−1から論理素子21−5へハンドシェークされ、第一相側の論理回路でパイプライン動作で処理されていく。第一相側の論理回路11−1から論理回路15−1それぞれは、信号S1の処理の後、リセット動作を行う。次の信号S2は図7(4)から図7(8)にかけて同様にハンドシェークされ、第二相側の論理回路でパイプライン動作で処理されていく。第二相側の論理回路11−2から論理回路15−2それぞれは、信号S2の処理の後、リセット動作を行う。次の信号S3は再び第一相側の論理回路でパイプライン動作で処理されていく(図7(6)から図7(10))。
【0031】
このように、第一相側の論理回路と第二相側の論理回路とで交互に信号を処理することで、リセット時間中に他の相の論理回路で信号を処理することができ、ダイナミック回路に必要なリセット動作の時間を隠蔽することができる。第一相側の論理回路と第二相側の論理回路とで交互に信号を処理することを図7を用いて詳細に説明する。
【0032】
第一相側の論理回路(11−1、12−1、13−1、14−1、15−1)は信号S3を処理した後にリセット動作に入る。この時間に第二相側の論理回路(11−2、12−2、13−2、14−2、15−2)は次の信号S4を処理することができる。さらに、第二相側の論理回路が信号4の処理後のリセット動作中に第一相側の論理回路は次の信号S5を処理することができる。すなわち、本実施形態の半導体集積回路はダイナミック回路に必要なリセット動作の時間を隠蔽し、信号処理のスループットを向上することができる。
【0033】
(具体例)
図8は、本発明に係る半導体集積回路の具体的な回路図の一例である。図8の半導体集積回路の論理ブロック35は、並列に配置された論理素子(21−11、21−12、21−13)とこれらの論理素子の出力が入力される論理素子(21−14、21−15)を備える。これらの論理素子の第一相側論理回路と第二相側論理回路は2入力2出力である。論理素子(21−11、21−12、21−13)の第一相側論理回路と第二相側論理回路にはそれぞれ入力端子32が2つ接続される。論理素子(21−11、21−12、21−13)の第一相側論理回路の一方の出力及び第二相側論理回路の一方の出力がそれぞれディテクタ(22−4、22−5、22−6)に結合される。
【0034】
論理ブロック35は、3組の入力端子32それぞれに対応する出力端子32’を有する。ディテクタ(22−4,22−5,22−6)の出力はカウンタ23に結合され、論理素子(21−11,21−12,21−13)を通過した信号数をカウントし、その結果を出力端子32’に出力する。
【0035】
論理素子(21−11、21−12、21−13)の第一相側論理回路の他方の出力と第二相側論理回路の他方の出力は、それぞれ論理素子(21−14、21−15)の第一相側論理回路と第二相側論理回路に結合される。具体的には、論理素子21−11の出力は論理素子21−14へ結合され、論理素子21−13の出力は論理素子21−15へ結合され、論理素子21−12の出力は論理素子21−14及び論理素子21−15の双方へ結合される。
【0036】
論理素子(21−14、21−15)の出力が出力端子33から出力される。また、ディテクタ22−7は、論理素子(21−14、21−15)の出力を監視している。ディテクタ22−7にはカウンタ23’が結合され、論理素子(21−14,21−15)から出力される信号数をカウントする。ディテクタ(22−1〜22−6)の回路の具体例を図9に示す。端子T11及び端子T12に第一相側の信号が入力され、端子T21及び端子T22に第二相側の信号が入力される。同時に第一相側と第二相側とに信号が入力されることはないので、端子T11及び端子T12に接続するトランジスタと端子T21及び端子T22に接続するトランジスタとはいずれか一方のみが動作することになる。
【0037】
ディテクタ22−7の回路の具体例を図10に示す。ディテクタ22−7と図9のディテクタ(22−1〜22−6)との違いは、信号が入力される端子の数である。ディテクタ22−7は、第一相側の信号が入力される端子(T11a、T12a、T11b、T12b)及び第二相側の信号が入力される端子(T21a、T22a、T21b、T22b)を持つ。例えば、端子T11a及び端子T12aには論理素子21−14の第一相側論理回路の出力が結合され、端子T21a及び端子T22aには論理素子21−14の第二相側論理回路の出力が結合され、端子T11b及び端子T12bには論理素子21−15の第一相側論理回路の出力が結合され、端子T21b及び端子T22bには論理素子21−15の第二相側論理回路の出力が結合される。
【0038】
図8の半導体集積回路は、次のように動作してエラーを発生した論理素子を特定する。例えば、論理素子21−14の出力がエラーであった場合について説明する。論理素子21−14は第一相側論理回路においてエラーを発生すると、その出力が(1,1)となる。この状態をディテクタ(22−1,22−2)が検出し、21−14を停止させると共に論理素子(21−11,21−12)の出力も停止させる。そのため、カウンタ23の信号通過数の増加が停止するため、エラーの発生が検出される。この時、カウンタ23とカウンタ23’の差が論理ブロック35内に存在する信号数となり、入力端子32側から存在する信号数に相当する数の論理素子を通過した論理素子においてエラーが生じたことを特定できる。
【産業上の利用可能性】
【0039】
本発明に係る半導体集積回路における論理素子ごとのパイプライン化およびダイナミック回路のリセット時間の隠蔽技術は、高速動作が要求される半導体集積回路全般に適用可能である。
【図面の簡単な説明】
【0040】
【図1】本発明に係る半導体集積回路を説明する概念図である。
【図2】ダイナミック回路の論理回路の例を説明する図である。
【図3】ダイナミック回路の論理回路の例を説明する図である。
【図4】ダイナミック回路の論理回路の例を説明する図である。
【図5】本発明に係る半導体集積回路がエラーを発生した論理素子を特定するエラー特定手段を説明する概念図である。
【図6】本発明に係る半導体集積回路がエラーを発生した論理素子を特定するエラー特定手段を説明する概念図である。
【図7】本発明に係る半導体集積回路の動作を説明する概念図である。
【図8】本発明に係る半導体集積回路の具体的な回路図の一例である。
【図9】本発明に係る半導体集積回路のディテクタの回路の具体例である。
【図10】本発明に係る半導体集積回路のディテクタの回路の具体例である。
【符号の説明】
【0041】
図面において使用されている符号は、以下の通りである。
11、11−1〜11−5:論理回路
21、21−1〜21−5、21−11〜21−15:論理素子
22、22−1〜22−7:ディテクタ
23、23’:カウンタ
31、35:論理ブロック
32:入力端子
32’、33,33’:出力端子
A1、A2、B1、B2:入力端子
X1、X2:出力端子
R:リセット端子
T11、T12、T21、T22、T11a、T12a、T11b、T12b、T21a、T22a、T21b、T22b、D1、D2:端子

【特許請求の範囲】
【請求項1】
ダイナミック回路の論理回路を持つ複数の論理素子が連結された論理ブロックと、
ハンドシェーク方式で前段の前記論理素子から後段の前記論理素子へ信号を伝送させ、前記論理素子単位で自己同期的なパイプライン動作をさせる信号伝送手段と、
前記論理素子毎の出力信号を確認し、エラーを検知したときにエラーの信号を出力した前記論理素子の動作を停止させるディテクタと、
前記論理素子へ入力する信号数又は前記論理素子が出力する信号数を計測するカウンタと、
前記ディテクタがエラーを検知したときに、前記カウンタを通過した信号数からエラーを発生した前記論理素子を特定するエラー特定手段と、
を備える半導体集積回路。
【請求項2】
前記カウンタは、前記論理ブロックの入力端と出力端に配置されていることを特徴とする請求項1に記載の半導体集積回路。
【請求項3】
前記論理素子のそれぞれは、第一相側と第二相側で交互に動作する並列関係にある同一の前記論理回路を持ち、非動作時に前記論理回路をリセットし、
前記信号伝送手段は、前記論理素子の第一相側の前記論理回路から出力された信号を後段の前記論理素子の第一相側の前記論理回路に結合し、前記論理素子の第二相側の前記論理回路から出力された信号を後段の前記論理素子の第二相側の前記論理回路に結合することを特徴とする請求項1又は2に記載の半導体集積回路。
【請求項4】
前記論理素子が持つ第一相側と第二相側の前記論理回路は、一方が信号処理中に他方がリセット動作を行うことを特徴とする請求項3に記載の半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−147580(P2010−147580A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−319877(P2008−319877)
【出願日】平成20年12月16日(2008.12.16)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】