(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-05
(54)【発明の名称】インフラストラクチャの完全性チェック
(51)【国際特許分類】
G06F 11/10 20060101AFI20230928BHJP
G06F 13/36 20060101ALI20230928BHJP
【FI】
G06F11/10 648
G06F13/36 320B
G06F13/36 310E
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023518349
(86)(22)【出願日】2021-09-13
(85)【翻訳文提出日】2023-05-22
(86)【国際出願番号】 US2021050007
(87)【国際公開番号】W WO2022066451
(87)【国際公開日】2022-03-31
(32)【優先日】2020-09-22
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【代理人】
【識別番号】230129078
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】デスモンド フェルナンデス
(72)【発明者】
【氏名】インドュ プラサパン
(72)【発明者】
【氏名】ジャスビル シンハ
(72)【発明者】
【氏名】プラサップ スリニヴァサン
(72)【発明者】
【氏名】リシャヴ カルキ
(57)【要約】
デバイス(200)が、データ入力及びデータ出力を有する第1の構成要素(210)を含む。デバイスは、第1の構成要素(210)のデータ入力に結合される入力を有するエラー訂正符号(ECC)生成回路(230)をさらに含む。ECC生成回路(230)は出力を有する。第2の構成要素(220)が、ECC生成回路(230)の出力に結合されるデータ入力を有する。第2の構成要素(220)は、データ出力を有する。ECCエラー検出回路(250)が、第1の構成要素(210)のデータ出力に結合される第1のデータ入力と、第2の構成要素(230)のデータ出力に結合される第2のデータ入力とを有する。
【特許請求の範囲】
【請求項1】
デバイスであって、
データ入力及びデータ出力を有する第1の構成要素、
前記第1の構成要素の前記データ入力に結合される入力と、出力とを有する、エラー訂正符号(ECC)生成回路、
前記ECC生成回路の前記出力に結合されるデータ入力と、データ出力とを有する、第2の構成要素、及び
前記第1の構成要素の前記データ出力に結合される第1のデータ入力と、前記第2の構成要素の前記データ出力に結合される第2のデータ入力とを有する、ECCエラー検出回路、
を含む、デバイス。
【請求項2】
請求項1に記載のデバイスであって、前記第1の構成要素の制御出力に結合される第1の制御入力を有し、前記第2の構成要素の制御出力に結合される第2の制御入力を有する、制御信号コンパレータ回路をさらに含む、デバイス。
【請求項3】
請求項2に記載のデバイスであって、前記制御信号コンパレータ回路が、前記第1の構成要素の前記制御出力からの制御ビットを、前記第2の構成要素の前記制御出力からの対応する制御ビットと比較するように構成される、デバイス。
【請求項4】
請求項3に記載のデバイスであって、前記制御信号コンパレータ回路が、前記第1の構成要素の前記制御出力からの前記制御ビットと、前記第2の構成要素の前記制御出力からの前記対応する制御ビットとの間の不一致に応答して、エラー信号をアサートするように構成される、デバイス。
【請求項5】
請求項1に記載のデバイスであって、
前記ECC生成回路が、前記ECC生成回路の入力上で受け取ったデータに基づいてECCワードを生成し、その出力上に前記ECCワードを提供するように構成され、
前記ECCエラー検出回路が、前記第1の構成要素の前記データ出力上のデータに基づいてECCビットを計算し、前記計算されたECCビットを、前記ECC生成回路の前記出力上に提供された前記ECCワードに含まれるECCビットと比較するように構成される、
デバイス。
【請求項6】
請求項5に記載のデバイスであって、前記第2の構成要素が、前記ECC生成回路からの前記計算されたECCビットと比較されるべき前記ECCワードを、前記ECCエラー検出回路に提供するように構成される、デバイス。
【請求項7】
請求項1に記載のデバイスであって、前記第1の構成要素が、そのデータ入力とそのデータ出力との間でバス幅変換を実施するように構成され、前記第2の構成要素が、そのデータ入力とそのデータ出力との間でバス幅変換を実施するように構成される、デバイス。
【請求項8】
請求項1に記載のデバイスであって、前記第1の構成要素が、アドレス復号、アービトレーション、バスプロトコル変換、又はバーストスプリットのうちの少なくとも1つを実施するように構成される、デバイス。
【請求項9】
請求項1に記載のデバイスであって、前記第2の構成要素が、前記第1の構成要素を含む回路の同じインスタンスを含む、デバイス。
【請求項10】
請求項1に記載のデバイスであって、
前記第1の構成要素の前記データ出力のビットと前記ECCエラー検出回路の前記第1のデータ入力の対応するビットとの間に結合される論理ゲートをさらに含み、
前記論理ゲートが、エラー注入信号を受信するように構成される入力を含み、
前記エラー注入信号が第1の状態にアサートされたとき、前記第1のデータ入力の前記ビットが、前記第1の構成要素の前記データ出力の前記ビットとは反対の状態である、
デバイス。
【請求項11】
請求項10に記載のデバイスであって、前記論理ゲートが排他的ORゲートを含む、デバイス。
【請求項12】
デバイスであって、
データ入力、制御出力、及びデータ出力を有する、第1の構成要素と、
前記第1の構成要素の前記データ入力に結合される入力と、出力とを有する、エラー訂正符号(ECC)生成回路と、
データ入力、制御出力、及びデータ出力を有する第2の構成要素であって、前記第2の構成要素の前記データ入力が、前記ECC生成回路の前記出力に結合される、前記第2の構成要素と、
前記第1の構成要素の前記制御出力に結合される第1の制御入力と、前記第2の構成要素の前記制御出力に結合される第2の制御入力と、前記第1の構成要素の前記データ出力に結合されるデータ入力と、データ出力とを有する、制御信号コンパレータ回路と、
前記制御信号コンパレータ回路の前記データ出力に結合される第1のデータ入力と、前記第2の構成要素の前記データ出力に結合される第2のデータ入力とを有する、ECCエラー検出回路と、
を含む、デバイス。
【請求項13】
請求項12に記載のデバイスであって、前記制御信号コンパレータ回路が、前記第1の構成要素の前記制御出力からの制御ビットを、前記第2の構成要素の前記制御出力からの対応する制御ビットと比較するように構成される、デバイス。
【請求項14】
請求項12に記載のデバイスであって、
前記ECC生成回路が、前記ECC生成回路の入力上で受け取ったデータに基づいてECCワードを生成し、そのデータ出力上の前記ECCワードを、前記第2の構成要素の前記データ入力に提供するように構成され、
前記ECCエラー検出回路が、前記第1の構成要素の前記データ出力上のデータに基づいてECCビットを計算し、前記計算されたECCビットを、前記第2の構成要素の前記データ出力から入力された第2のデータ上で受け取った前記ECCワードに含まれるECCビットと比較するように構成される、
デバイス。
【請求項15】
請求項14に記載のデバイスであって、前記第1の構成要素が、バス幅変換、アドレス復号、アービトレーション、バスプロトコル変換、又はバーストスプリットのうちの少なくとも1つを実施するように構成される、デバイス。
【請求項16】
請求項14に記載のデバイスであって、前記第2の構成要素が、前記第1の構成要素を含む回路の同じインスタンスを含む、デバイス。
【請求項17】
システムオンチップであって、
データ入力及びデータ出力を有する第1の構成要素であって、或る機能を実施するように構成される第1の構成要素と、
前記第1の構成要素の前記データ入力に結合される入力と、出力とを有する、エラー訂正符号(ECC)生成回路と、
前記ECC発生回路の前記出力に結合されるデータ入力と、データ出力とを有する第2の構成要素であって、前記機能を実施するように構成される前記第2の構成要素と、
前記第1の構成要素の前記データ出力に結合される第1のデータ入力と、前記第2の構成要素の前記データ出力に結合される第2のデータ入力とを有する、ECCエラー検出回路と、
を含む、システムオンチップ。
【請求項18】
請求項17に記載のSoCであって、
前記第1の構成要素の制御出力に結合される第1の制御入力を有し、前記第2の構成要素の制御出力に結合される第2の制御入力を有する、制御信号コンパレータ回路をさらに含み、
前記制御信号コンパレータ回路が、前記第1の構成要素の前記制御出力からの制御ビットを、前記第2の構成要素の前記制御出力からの対応する制御ビットと比較するように構成される、
SoC。
【請求項19】
請求項17に記載のSoCであって、
前記ECC生成回路が、前記ECC生成回路の入力上で受け取ったデータに基づいてECCワードを生成し、その出力上に前記ECCワードを提供するように構成され、
前記ECCエラー検出回路が、前記第1の構成要素の前記データ出力上のデータに基づいてECCビットを計算し、前記計算されたECCビットを、前記ECC生成回路の前記出力上に提供された前記ECCワードに含まれる前記ECCビットと比較するように構成される、
SoC。
【請求項20】
請求項17に記載のSoCであって、前記機能が、バス幅変換、アドレス復号、アービトレーション、バスプロトコル変換、又はバーストスプリットのうちの少なくとも1つである、SoC。
【発明の詳細な説明】
【技術分野】
【0001】
電子システムには、システム挙動の保証が増大されることにより恩恵を受けるものがある。例えば、今日の自動車は、障害を検出する能力、及びそれによって自動車の安全な動作を保証する能力を組み込んでいるべき高度な電子システムを含んでいる。工業用途及び他の用途も障害検出の恩恵を受ける。
【発明の概要】
【0002】
少なくとも一例において、或るデバイスが、データ入力及びデータ出力を有する第1の構成要素を含む。このデバイスは、第1の構成要素のデータ入力に結合される入力を有するエラー訂正符号(ECC)生成回路をさらに含む。ECC生成回路は出力を有する。第2の構成要素が、ECC生成回路の出力に結合されるデータ入力を有する。第2の構成要素はデータ出力を有する。ECCエラー検出回路が、第1の構成要素のデータ出力に結合される第1のデータ入力と、第2の構成要素のデータ出力に結合される第2のデータ入力とを有する。
【図面の簡単な説明】
【0003】
種々の例の詳細な説明のため、ここで、添付の図面を参照する。
【0004】
【
図1】クロスバー相互接続を含むシステムオンチップ(SoC)の例を図示する。
【0005】
【
図2】複数のインフラストラクチャ構成要素を含むクロスバー相互接続の例示の実装を図示する。
【0006】
【
図3】インフラストラクチャ構成要素によって実施される機能の例を図示する。
【0007】
【
図4】エラー訂正符号(ECC)性能を試験するためのエラー注入の例を図示する。
【0008】
【
図5】複数のマスター及びスレーブを含むシステムを図示する。
【0009】
【
図6】分散システムにおける制御ビット及びデータ完全性チェックの例示の実装を示す。
【発明を実施するための形態】
【0010】
図1は、システムオンチップ(SoC)100の例示のアーキテクチャを示し、システムオンチップ(SoC)100は、1つ又は複数の中央処理装置(CPU)コア110と、密に結合されたメモリA及びB(TCMA及びTCMB)120及び122と、クロスバー130と、共有メモリ128と、入力/出力(I/O)デバイス140及び142とを含む。各CPUコア110は、それぞれの密に結合されたメモリに結合される。例えば、2つのCPUコア110がある場合、一方のCPUコアはTCMA120に結合され、他方のCPUコア110はTCMB122に結合される。各CPUコア110は、そのそれぞれの密に結合されたメモリに情報を格納し、そこから情報を取り出すことができる。CPUコア110はクロスバー130に結合され、クロスバー130は共有メモリ128及びI/Oデバイス140、142に結合される。I/Oデバイス140、142は、ネットワークポート(例えば、コントローラエリアネットワーク、シリアル・ペリフェラル・インタフェースなど)、メモリなどを含み得る。SoC100は、1つのI/Oデバイスのみを有する可能性があり、又は2つ又はそれ以上のI/Oデバイスを有する可能性がある。I/Oデバイス140、142は、クロスバー130を介してCPUコア110にアクセス可能である。共有メモリは、例えば、ランダムアクセスメモリ(RAM)として実装され得る。CPUコア110は、クロスバー130を介して共通の共有メモリ128にアクセスすることができる。一例では、CPUコア110が400MHzクロック周波数を有し、密に結合されたメモリ(TCMA110、TCMB122)のサイズは32キロバイト(KB)である。しかしながら、共有メモリ128は、TCMA110又はTCMB120よりも大きいサイズ(例えば、1メガバイト(MB))を有する。
【0011】
共有メモリ128は、例えば、命令及びデータを格納するために用いられ得る。命令は、破線矢印145によって示されるように、クロスバー130を介してCPUコア110によって取り出される。データはまた、CPUコア110によって、共有メモリ128に書き込まれるか、又はそこから取り出され得る。そのような情報(命令及び/又はデータ)は、共有メモリ128とCPUコア110との間でクロスバー130を横断するので、クロスバー130の欠陥が情報の完全性に影響を及ぼす恐れがある。即ち、共有メモリ128から取り出された命令(これは複数のビットを含む)は、そのビットの1つ又は複数の状態が変化(反転)している、つまり「0」が「1」になっている、又は「1」が「0」になっている可能性がある。そのような欠陥は、SoC100を含むシステム(例えば、自動車)の動作に悪影響を及ぼす恐れがある。本明細書に記載の例は、クロスバー130内に欠陥検出能力を実装する。
【0012】
図2は、クロスバー130の少なくとも一部の例示の回路(例えば、集積回路)実装を示す。上述のような一例では、クロスバー130は、CPUコア110と共有メモリとの間でデータを転送するために用いることができる。しかしながら、クロスバー130は、ダイレクトメモリアクセス(DMA)コントローラの制御下で、スレーブデバイス間でデータを転送するために用いることができる。一般に、クロスバー130は、2つのデバイス間でデータを転送するために用いることができる。
図2の回路200は、インフラストラクチャ構成要素(Main)210と、インフラストラクチャ構成要素220(Safe)と、エラー訂正符号(ECC)生成回路230と、制御信号コンパレータ回路240と、ECCエラー検出回路250とを含む。CPUコア110からの信号は、制御ビット201及びデータビット202を含む。制御ビット202は、トランザクションに関する情報、例えば、アドレス、トランザクションが読取りであるか又は書込みであるか、バーストサイズ、優先度、特権レベル、及びアクセスタイプを符号化する。書き込みトランザクションの文脈では、データビット202は、共有メモリ128に書き込まれるデータを含む。
【0013】
制御ビット201及びデータビット202は、インフラストラクチャ構成要素(Main)210に提供される。データビット202はECC生成回路230にも提供される。ECC生成回路230は、データビット202に対するECCを計算し、計算されたECC231をインフラストラクチャ構成要素(Safe)220に提供する。制御ビット201は、ECCインフラストラクチャ構成要素220にも提供される。
【0014】
一例において、インフラストラクチャ構成要素(Main)210は、データビット202に対する変換を実施する。一例において、インフラストラクチャ構成要素(Main)210は、データビット202のバス幅変換を実施する。CPUコア110と回路200との間にデータビット202を提供するデータバスは、例えば128ビットバスであってもよいが、共有メモリ128までのデータバスの幅は32ビットである。従って、インフラストラクチャ構成要素(Main)210は、データビット202を128ビットワードから4つの連続する32ビットワードに変換する。従って、データビット212の幅は32ビットである。128ビットの幅と32ビットの幅との間でデータを変換するインフラストラクチャ構成要素(Main)210の例が本明細書で論じられ、インフラストラクチャ構成要素(Main)210は、任意のバス幅の間で変換することができる。他の例において、インフラストラクチャ構成要素(Main)210は、アドレス復号、アービトレーション、バスプロトコル変換、及び/又はバーストスプリットを実施する。インフラストラクチャ構成要素(Main)210は、制御ビット201を改変することもできる。インフラストラクチャ構成要素(Main)210がデータビット202のバス幅変換を実施する例において、インフラストラクチャ構成要素(Main)210は、4つの連続するワードの各々についてのバイトカウントを、インフラストラクチャ構成要素(Main)210に入力された制御ビット201において提供されたバイトカウントの1/4に変換し得る。
【0015】
データビット212は、制御信号コンパレータ240を介して流れ、データビット222としてECCエラー検出回路250に供給される。この例において、データビット222の幅はデータビット212の幅(例えば、32ビットの幅)と同じである。インフラストラクチャ構成要素(Main)210からの制御ビット211も、制御信号コンパレータ240に提供される。インフラストラクチャ構成要素(Safe)220からの制御ビット239も、制御信号コンパレータ240に提供される。制御信号コンパレータ240は、インフラストラクチャ構成要素(Safe)220からの制御ビット239を、インフラストラクチャ(Main)構成要素210からの制御ビット211と比較する。一例において、制御信号コンパレータ240は、制御ビット211と制御ビット239とのビット単位の比較を実施する。エラー信号241が、制御ビット211及び239が一致するか否かを示す。一例において、エラー信号241は単ビット信号である(例えば、0が制御ビット211及び239が一致することを示し、1が不一致を示す)。不一致がある場合、CPUコア110は、中断され得(又は外部ホストに通知され得)、次いで、エラーに応答するために中断サービスルーチンを実施する。エラーがないと仮定すると、制御信号コンパレータ240からの制御ビット221は、制御ビット211を含み、クロスバー130からの出力として(例えば、共有メモリ128に)提供される。
【0016】
インフラストラクチャ構成要素(Safe)220は、インフラストラクチャ構成要素(Main)210とほとんど同じ変換プロセスを実施し、いくつかの例において、インフラストラクチャ構成要素(Main)210を含む同じ回路要素の別のインスタンスである。インフラストラクチャ構成要素(Main)210は、入力としてデータビット202を受け取り、インフラストラクチャ構成要素(Safe)220は、入力としてECCビット231を受け取る。128ビット幅のワードを含むデータビット202の場合、ECC生成回路230は、128ビット幅のワードの形態で28ビットのECC及びECCビット231を計算する。
【0017】
図3は、インフラストラクチャ構成要素(Main)210及びインフラストラクチャ構成要素(Safe)220によって実施されるデータ幅変換、並びにECC生成回路230によって実施される機能を示す。128ビットワードが、データビット202として示される。データワードは、4つの32ビット部分301~304を含む。部分301は、下位データビット0~31を含む。部分302は、次のセットである32個のデータビット、即ち、ビット32~63を含む。部分303はビット64~95を含む。部分304はビット96~127を含む。
【0018】
インフラストラクチャ構成要素(Main)210は、4つの32ビットワード315~318を形成し、これらは、4つの個別のクロックサイクルにおいてインフラストラクチャ構成要素(Main)210からクロックアウトされ得る。32ビットワード315は、元の128ビットデータワードからの部分301を含む。32ビットワード316~318は、図示されるように、それぞれの部分302~304を含む。
【0019】
ECC生成回路230はまた、128ビットのデータワード(データビット202)を受け取り、関連する128ビットのデータワードについてECCビットを計算し、128ビットのECCワード231を形成する。128ビットのデータワードの場合、ECC生成回路230は、237に示すように、ECCの28ビットを計算する。ECCの28ビットは、4つの7ビットECC部分に分けられる。下位の7つのECCビットは、図示するように、ビット位置0~6のECCワード231の最初の7ビットに入力される(populated)。次に高次の7つのECCビットは、ビット位置32~38に入力される。同様に、7つのECCビットの次の2つのセットは、図示されるように、ビット位置64~70及びビット位置96~102に入力される。ECCワード231の残りの100ビットは、この例では0でポピュレートされる。従って、ECC生成回路230によって生成されるECCワード231は、ECCビットの4つの別個のセグメントを含む。128ビットECCワード231の各32ビット部分は、7つのECCビットを含む。
【0020】
インフラストラクチャ構成要素(Safe)220は、128ビットECCワード231を受け取り、インフラストラクチャ構成要素(Main)210について上述したものと同じように変換処理を実施する。即ち、インフラストラクチャ構成要素(Safe)220は、4つの32ビットワード331~334を生成する。32ビットワード331は、ECCワード231の最下位32ビットを含み、ECCワード231自体が最初の7ビット位置に7つのECCビットを含み、残りのビット位置に0を含む。同様に、32ビットワード332は、ECCワード231の32ビットの次のセットを含み、次の7つのECCビットは、その7つの最下位ビット位置にある。32ビットのワード333及び334が同様に形成され、各々が、図示されるように、その最下位7ビットの7つのECCビットを有する。
【0021】
32ビットワード315~318は、各々、元の128ビットのデータの32ビットを含み、32ビットワード331~334は、各々、各関連ワード331~334内の32データビットに対応する7つのECCビットを含む。即ち、ワード331内のECCビットは、ワード315内の32ビットのデータについて計算されたECCビットを含む。同様に、ワード332~334内のECCビットは、それぞれ、ワード316~318の32ビットのデータについて計算されたECCビットを含む。データワード315~318は、データビット222として
図2に表される。ECCワード331~334は、ECCワード248として
図2に表される。
【0022】
図2を再び参照すると、データビット222及びECCワード248は、ECCエラー検出回路250に提供される。32ビットデータワード(データビット222を含む315~318)の各々について、ECCエラー検出回路250は、7つのECCビットを生成し、新たに計算されたECCビットを、対応するECCワード248(ワード331~334)内のECCビットと比較する。エラー信号251(これは、CPU110を中断し得、又は、外部ホストに通知され得る)は、ECCビットが一致するかどうかを示す(例えば、0の値を有するエラー信号が、ECCビットが一致したことを意味し、1の値を有するエラー信号が、少なくとも1つのECCビットが一致しなかったことを意味する)。ECCエラーがない場合、ECCエラー検知回路250からのデータビット232は、データビット222を含む。そのため、エラー信号241もエラー信号251もエラーを示していない(即ち、制御ビットエラーがなく、ECCビットエラーがない)場合、制御ビット221及びデータビット232は、共有メモリ128などのダウンストリーム構成要素に提供される。
【0023】
図4は、回路200内のECCエラー検知を試験することができる実装を図示する。
図4の例では、データビットの1つ又はそれ以上の論理状態が意図的に変更される(「0」が「1」に変更され、逆も同様である)。
図4の回路は、
図2の回路とほぼ同じである。
図2の制御ビットは、
図4の例には示していない。ECCエラー検出回路250は、ECC比較回路420に結合されたECC生成器回路410を含む。インフラストラクチャ構成要素(Main)210からのデータビット212は、ECC生成器回路410の入力に提供される。
【0024】
データビット212の1つ又は複数が、排他的論理和(XOR)ゲートの入力に提供される。
図4の例において、データビット212の最下位2ビットが、XORゲートのそれぞれの入力に結合される。XORゲート401が、その一方の入力で最下位データビットDATA[0]を、他方の入力でエラー注入信号403を受信する。XORゲート401の出力411は、ECC生成器回路410のそれぞれの入力に結合される。同様に、XORゲート402が、その入力の一方でDATA[1]を受け取り、エラーXORゲート401が、その入力の一方で最下位データビットDATA[0]を受け取り、他方の入力でエラー注入信号403を受信する。XORゲート401の出力411は、ECC生成器回路410のそれぞれの入力に結合され、信号404をその他方の入力で受信する。XORゲート402の出力413は、ECC生成器回路410のそれぞれの入力に結合される。
【0025】
XORゲート401及び402は、ECCエラー検出回路250の動作を試験することが望まれるとき、それらのそれぞれのデータ入力ビットの極性を反転するように機能する。そうでない場合、通常のランタイム動作の間、データビットの極性は変化しないままである。エラー注入信号403が低(0)であるとき、XORゲート401の出力411上の信号の極性は、DATA[0]の極性と同じであり、DATA[0]が1に等しい場合、出力411は1であり、DATA[0]が0に等しい場合、出力411は0である。エラー注入信号403が高(1)である場合、XORゲート401はその出力411を、DATA[0]とは逆の極性にし、即ち、XORゲート401は、エラー注入信号403が強制的に高にされたとき、DATA[0]の論理状態を反転させる。XORゲート402の動作は、それぞれのエラー注入信号404が高にアサートされたとき、DATA[1]の論理レベルを反転させるのと同じ方式で機能する。そうでない場合、XORゲート402は、エラー注入信号404が0であるとき、その出力413の論理レベルをDATA[1]の論理レベルと同じに保つ。
【0026】
図4の例において、データビット212のうちの1つ又は2つを「反転」することができる。そのような反転ビット状態は、インフラストラクチャ構成要素(Safe)220に提供されるデータビット202にも反映されず、インフラストラクチャ(safe)構成要素220自体がデータビットのECCを計算する。そのため、データビット212にエラーを注入することができ、それが正しく機能する場合、ECCエラー検出回路250はエラーを検出し、それに応じてエラー信号241をアサートする。ECC生成器回路410は、論理状態が変更された1つ又はそれ以上のデータビットを含み得るデータビットのECCを計算する。ECC比較回路420は、インフラストラクチャ構成要素(Safe)220からECCワード248を受け取り、ECCワード248からECCを抽出し、それらを、ECC生成器回路410から新たに計算されたECC417と比較する。差が検出された場合、エラー信号241は、例えばECCエラー状態を示すために高に、アサートされる。
【0027】
図5は、複数のマスター302、306、310、及び314と、複数のスレーブ320及び324と、相互接続330とを含む、システム300の例を示す。
図5に示される構成要素は半導体ダイ上に提供され得る。任意の適切な数のマスター及びスレーブを提供することができる。情報は、任意のマスター302~314と任意のスレーブ320及び324との間の相互接続330を介して双方向に流れ得る。任意の所与のノード(マスター、相互接続、又はスレーブ)を介するデータ及び制御信号として、(
図2の例による)完全なデータ及び制御信号チェックは、各ノードで実施される必要はない。即ち、マスター302がスレーブ324に通信を送っている場合、マスター302、相互接続330、及びスレーブ324の各々内で、
図2の論理が通信経路に沿って複数回実施される必要はない。
【0028】
代わりに、マスター302は、ECCワード248を生成し、制御ビット239を提供するインフラストラクチャ構成要素220を含み得るが、制御ビットを比較せず、ECCビットを生成及び比較しない。代わりに、ECCワード248及び制御ビット239は、マスター302から相互接続330を介してスレーブ324に転送され得る。スレーブ324は、制御ビットを比較し、エラーを検出するためにECCビットを生成及び比較するための、論理を含み得る。従って、マスター302~314及びスレーブ320及び324は、Safe End(SE)303及びSafe Parse(SP)305として示される論理を有する。SE303は、一方向(例えば、マスターからスレーブへ)の通信のための制御ビット239及びECCワード248を生成するための論理と、反対方向(スレーブからマスターへ)の通信のための制御ビット及びECCビットを比較するための論理とを含む。
【0029】
図6は、マスター302~314及び/又はスレーブ320~324の一部として実装され得る回路600の例を示す。回路600は、回路606及び608を含む。回路606は、インフラストラクチャ構成要素(Main)210と、インフラストラクチャ構成要素(Safe)220と、上述のECC生成器230とを含む。回路608は、ECCエラー検出回路250と、上述した制御信号コンパレータ240とを含む。これらの構成要素の機能性は、おおかた上記で説明した通りである。
図2の例示の実装では、制御ビット211及び239並びにデータビット212は、同じデバイス内の制御信号コンパレータ240に提供される。
図6の例示の実装では、インフラストラクチャ構成要素(Main)210からの制御ビット611及びデータビット612、並びにインフラストラクチャ(Safe)構成要素220からの制御ビット639及びECCワード648は、同じデバイス(マスター、スレーブ)内の回路608に提供されない。代わりに、これらの信号は、相互接続330を介して宛先デバイスの制御信号コンパレータ240に供給される。即ち、
図6において回路608への入力として示される制御ビット655及び658並びにデータビット642及び668は、相互接続330を介するデバイスから発生したものである。従って、制御ビット及びデータビット(ECC)の完全性チェックは宛先デバイス内で実施され、一方で、完全性チェックで用いるECCワード及び別個の制御ビットの生成は、通信トランザクションが発生するデバイス内で行われる。例えば、マスター302がスレーブ324にトランザクションを送るここと試みている場合、マスター302は、自身のインフラストラクチャ構成要素(Safe)220から制御ビット639及びECCワード648を生成し、相互接続330を介して制御ビット639、ECCワード648、並びに制御ビット611及びデータビット612を提供する。スレーブ324は、これらのビットを受け取り、それ自身の制御信号コンパレータ240及びECCエラー検出回路250内で制御及びデータビット完全性チェックを実施する。例えば、相互接続330内の中間チェックは、必ずしも実施される必要はない。
【0030】
SP305は、完全性チェックを実施することなく、制御ビット及びデータビット並びにECCワードを通過させるインターフェースを指定する。SE303は、
図6の例示に示されるように、回路606及び608を有するインターフェースを指定する。安全でない(NS:non-safe)インターフェース317は、本明細書に記載する完全性手法を実装せず、そのため、そうでなければ記載された完全性チェックのために使用可能な余分な制御ビット639及びECCワード648を含まないインターフェースを指定する。
【0031】
「結合する」という用語は本明細書全体を通じて用いられている。この用語は、本開示の説明と一貫した機能的な関係を可能にする、接続、通信、又は信号経路を包含し得る。例えば、デバイスAが或る行為を行なうためにデバイスBを制御するための信号を生成する場合、第1の例において、デバイスAはデバイスBに結合され、又は第2の例において、介在構成要素CがデバイスAとデバイスBとの間の機能関係を実質的に変化させない場合に、デバイスBがデバイスAによって生成される制御信号を介してデバイスAによって制御されるように、デバイスAは介在構成要素Cを介してデバイスBに結合される。
【0032】
本発明の特許請求の範囲内で、説明した例示の実施例に改変が成され得、他の実施例が可能である。
【国際調査報告】