(57)【要約】【課題】オーバーヘッドの少ない伝送制御検査回路を提供すること。【解決手段】伝送制御検査回路は、トランザクション・マスタにおいて受信され、トランザクション・マスタにおいて期待されたデータと比較されるトランザクション応答に、制御検査データを追加する。制御検査データを有する期待されたデータは、固有のトランザクション識別子とすることができる。トランザクション・マスタは、それがトランザクション要求を生成したときに、固有のトランザクション識別子を生成しており、トランザクション応答がその固有のトランザクション識別子を含むことを検査することになる。このようにして、トランザクションの伝送の制御におけるエラー、例えば誤ったルーティングが、検出され得る。【選択図】図１
2016042355.tif 000002
【特許請求の範囲】
【請求項１】
相互接続回路を経由して１つ又は複数のトランザクション・スレーブのうちの１つからペイロード・データと制御検査データとを含むトランザクション応答を受信するトランザクション応答レシーバと、
制御検査回路であって、
（ｉ）前記トランザクション応答の受信に先立って、前記トランザクション応答に関連するトランザクションの伝送の正しい制御に対応する期待されたデータを保持し、
（ｉｉ）前記トランザクション応答の受信に続いて、前記制御検査データが前記期待されたデータと一致するかを検査し、
（ｉｉｉ）前記制御検査データが前記期待されたデータと一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発する
制御検査回路と
を備える装置。
【請求項２】
前記伝送制御検査回路は、１つ又は複数のトランザクション・マスタのうちの所与のトランザクション・マスタに関連づけられ、前記期待値は、前記所与のトランザクション・マスタによって発行されるトランザクションのトランザクション識別子を含む、請求項１に記載の装置。
【請求項３】
前記所与のトランザクション・マスタについての前記トランザクション識別子を生成するトランザクション識別子ジェネレータを備える、請求項２に記載の装置。
【請求項４】
前記トランザクション識別子は、待ち状態のトランザクションのために同時に使用されている固有のトランザクション識別子のうちの固有の値を有する固有のトランザクション識別子である、請求項２に記載の装置。
【請求項５】
前記トランザクション識別子は、前記トランザクションに付随するサイドバンド信号の少なくとも一部分であり、前記相互接続回路は、前記トランザクション識別子に独立して前記トランザクションをルーティングするように構成されている、請求項２に記載の装置。
【請求項６】
（ｉ）前記制御検査データが前記トランザクション識別子と一致するということは、前記所与のトランザクションに対する前記トランザクション応答のリターンに対応し、
（ｉｉ）前記制御検査データが前記トランザクション識別子と一致しないということは、前記所与のトランザクション・マスタ以外のトランザクション・マスタを意図した、誤って向けられたトランザクション応答の受信に対応する、請求項２に記載の装置。
【請求項７】
前記トランザクション識別子は
（ｉ）前記１つ又は複数のトランザクション・マスタのうちの前記所与のトランザクション・マスタのための固有の識別子の値と、
（ｉｉ）同時に待ち状態にある、前記所与のトランザクション・マスタによって発行されたトランザクションの間に固有の番号と
の組合せである、請求項２に記載の装置。
【請求項８】
前記所与のトランザクション・マスタは、待ち状態のトランザクションに関連するアドレスをアドレス・バッファの複数のストレージ位置内に保存するための当該アドレス・バッファを含み、前記番号は、前記複数のストレージ位置のどれが、前記トランザクションに対応するアドレスを保存するかによって決定される、請求項７に記載の装置。
【請求項９】
前記トランザクションは、前記所与のトランザクション・マスタに戻される複数のトランザクション応答からなる応答シーケンスに帰着する、請求項１に記載の装置。
【請求項１０】
前記制御検査データは、シーケンス検査データであり、前記制御検査データが前記期待されたデータと一致するということは、前記応答シーケンス内の期待された次のトランザクション応答の受信に対応する、請求項９に記載の装置。
【請求項１１】
前記制御検査データは、前記応答シーケンス内の各々の連続するトランザクション応答とともに値を交互させるビットを含む、請求項１０に記載の装置。
【請求項１２】
前記トランザクションは、データ読み取りであり、前記トランザクション応答は、読み取りデータを含む、請求項１に記載の装置。
【請求項１３】
前記トランザクションは、前記所与のトランザクション・マスタに戻される複数のトランザクション応答からなる応答シーケンスに帰着し、前記トランザクション識別子は、前記複数のトランザクション応答の各々に関連づけられる、請求項２に記載の装置。
【請求項１４】
前記トランザクション応答は、エラー検出コードを含み、前記装置は、前記ペイロード・データの中の少なくともいくつかのエラーを検出するために前記エラー検出コードを使用するエラー検出回路をさらに備える、請求項１に記載の装置。
【請求項１５】
相互接続回路を経由して１つ又は複数のトランザクション・マスタのうちの所与のトランザクション・マスタから、検出されたエラーの報告と、これに対するアクションとを誘発するための制御検査データを含む読み取りトランザクション要求を受信するトランザクション要求レシーバと、
前記トランザクション要求に対応し、且つ読み取りデータと前記制御検査データとを含む読み取りトランザクション応答を生成するトランザクション応答ジェネレータと、
前記所与のトランザクション・マスタに前記トランザクション応答を送信するトランザクション応答トランスミッタと
を備える装置。
【請求項１６】
相互接続回路を経由して１つ又は複数のトランザクション・マスタのうちの所与のトランザクション・マスタから要求制御検査データを含む書き込みトランザクション要求を受信するトランザクション要求レシーバと、
書き込みデータ・レシーバであって、
（ｉ）書き込みデータ制御検査データを伴う書き込みデータを受信し、
（ｉｉ）前記書き込みデータ制御検査データが前記要求制御検査データと一致することを検査することにより、前記書き込みデータが前記書き込みトランザクション要求に対応することを検査し、
（ｉｉｉ）前記書き込みデータ制御検査データが前記要求制御検査データと一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発する
書き込みデータ・レシーバと
を備える装置。
【請求項１７】
相互接続回路を経由してその各々がそれぞれのシーケンス検査データを含む書き込みデータ転送のシーケンスについての書き込みトランザクション要求を受信するトランザクション要求レシーバと、
書き込みデータ・レシーバであって、
（ｉ）受信されたシーケンス検査データを伴う受信された書き込みデータ転送を受信し、
（ｉｉ）前記受信されたシーケンス検査データが期待された次のシーケンス検査データと一致することを検査することにより、前記受信された書き込みデータ転送が次の期待された書き込みデータ転送に対応することを検査し、
（ｉｉｉ）前記受信された書き込みデータ転送が前記次の期待された書き込みデータ転送と一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発する
書き込みデータ・レシーバと
を備える装置。
【請求項１８】
請求項１に記載の装置を備えるトランザクション・マスタ。
【請求項１９】
請求項１５に記載の装置を備えるトランザクション・スレーブ。
【請求項２０】
請求項１６に記載の装置を備えるトランザクション・スレーブ。
【請求項２１】
請求項１７に記載の装置を備えるトランザクション・スレーブ。
【請求項２２】
１つ又は複数のトランザクション・スレーブに相互接続回路を経由して接続される１つ又は複数のトランザクション・マスタを備え、且つ請求項１に記載の装置を備える、データを処理するための装置。
【請求項２３】
相互接続回路を経由して１つ又は複数のトランザクション・スレーブのうちの１つからペイロード・データと制御検査データとを含むトランザクション応答を受信するためのトランザクション応答受信手段と、
制御検査手段であって、
（ｉ）前記トランザクション応答の受信に先立って、前記トランザクション応答に関連するトランザクションの伝送の正しい制御に対応する期待されたデータを保持し、
（ｉｉ）前記トランザクション応答の受信に続いて、前記制御検査データが前記期待されたデータと一致するかを検出し、
（ｉｉｉ）前記制御検査データが前記期待されたデータと一致しない場合、検出されたエラーの報告と、それに対するアクションとを誘発する
ための制御検査手段と
を備える装置。
【請求項２４】
相互接続回路を経由して１つ又は複数のトランザクション・スレーブのうちの１つからペイロード・データと制御検査データとを含むトランザクション応答を受信するステップと、
前記トランザクション応答の受信に先立って、前記トランザクション応答に関連するトランザクションの伝送の正しい制御に対応する期待されたデータを保持するステップと、
前記トランザクション応答の受信に続いて、前記制御検査データが前記期待されたデータと一致するかを検出するステップと、
前記制御検査データが前記期待されたデータと一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発するステップと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理システムの分野に関する。より詳細には、本開示は、１つ又は複数のトランザクション・マスタと、１つ又は複数のトランザクション・スレーブとの間の相互接続回路を経由したトランザクションの伝送において発生するエラーに関する。
【背景技術】
【０００２】
トランザクション・マスタと、トランザクション・スレーブとの間のトランザクションの一部分として、相互接続回路を通して渡されるデータとアドレスとに適用される、パリティなどのエラー検出コード（ＥＤＣ：error detection codes）を生成し、また次いで検査するメカニズムを相互接続回路に提供することが知られている。そのようなエラー訂正コードを使用して、送信されるデータとアドレス値とに発生するエラーを検出し、潜在的に訂正することができる。
【０００３】
そのようなシステムにおけるエラーの別の原因は、トランザクションの伝送の制御が、トランザクション自体の内容とは別個に、エラーの影響を受ける可能性があることである。一例として、相互接続回路は、多数のマルチプレクサを含むことがあり得、そのようなマルチプレクサに対する制御信号についての単一ビットのアップセットにより、トランザクションが誤ったマスタ、又は誤ったスレーブに対してルーティングされてしまうという結果がもたらされる可能性がある。データのインテグリティが重要であるシステム（例えば、セーフティ・クリティカルなシステム）の内部では、トランザクションの伝送の制御におけるそのようなエラーが、少なくとも検出されるべきことが望ましい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
トランザクションの伝送の制御におけるエラーを検出することを扱うことへの１つの可能性があるアプローチは、相互接続回路の重複するインスタンスを与え、基本（primary）相互接続回路でロックステップにこれを動作させることである。これにより、相互接続回路の２つのインスタンスの出力を比較することができ、どのような違いであっても、相互接続回路の内部のエラーを示すことになる。そのようなアプローチの欠点は、重複する相互接続回路と、コンパレータとを提供することに関連する、著しい追加のオーバーヘッドである。そのような重複する相互接続回路及びコンパレータは、データ処理システムの回路面積と、コストと、消費電力とを増大させる。
【課題を解決するための手段】
【０００５】
本開示の少なくともいくつかの例示の実施例では、
相互接続回路を経由して１つ又は複数のトランザクション・スレーブのうちの１つからペイロード・データと制御検査データとを含むトランザクション応答を受信するトランザクション応答レシーバと、
制御回路であって、
（ｉ）前記トランザクション応答の受信に先立って、前記トランザクション応答に関連するトランザクションの伝送の正しい制御に対応する期待されたデータを保持し、
（ｉｉ）前記トランザクション応答の受信に続いて、前記制御検査データが前記期待されたデータと一致するかどうかを検査し、
（ｉｉｉ）前記制御検査データが前記期待されたデータと一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発する
制御検査回路と
を備える装置が提供される。
【０００６】
本開示の少なくともいくつかのさらなる例示の実施例では、
相互接続回路を経由して１つ又は複数のトランザクション・マスタのうちの所与のトランザクション・マスタから、検出されたエラーの報告と、これに対するアクションとを誘発するための制御検査データを含む読み取りトランザクション要求を受信するトランザクション要求レシーバと、
前記トランザクション要求に対応し、且つ読み取りデータと前記制御検査データとを含む読み取りトランザクション応答を生成するトランザクション応答ジェネレータと、
前記所与のトランザクション・マスタに前記トランザクション応答を送信するトランザクション応答トランスミッタと
を備える装置が提供される。
【０００７】
本開示の少なくともいくつかのさらなる例示の実施例では、
相互接続回路を経由して１つ又は複数のトランザクション・マスタのうちの所与のトランザクション・マスタから要求制御検査データを含む書き込みトランザクション要求を受信するトランザクション要求レシーバと、
書き込みデータ・レシーバであって、
（ｉ）書き込みデータ制御検査データを伴う書き込みデータを受信し、
（ｉｉ）前記書き込みデータ制御検査データが前記要求制御検査データと一致することを検査することにより、前記書き込みデータが前記書き込みトランザクション要求に対応することを検査し、
（ｉｉｉ）前記書き込みデータ制御検査データが前記要求制御検査データと一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発する
書き込みデータ・レシーバと
を備える装置が提供される。
【０００８】
本開示の少なくともいくつかのさらなる例示の実施例では、
相互接続回路を経由してその各々がそれぞれのシーケンス検査データを含む書き込みデータ転送のシーケンスについての書き込みトランザクション要求を受信するトランザクション要求レシーバと、
書き込みデータ・レシーバであって、
（ｉ）受信されたシーケンス検査データを伴う受信された書き込みデータ転送を受信し、
（ｉｉ）前記受信されたシーケンス検査データが期待された次のシーケンス検査データと一致することを検査することにより、前記受信された書き込みデータ転送が次の期待された書き込みデータ転送に対応することを検査し、
（ｉｉｉ）前記受信された書き込みデータ転送が前記次の期待された書き込みデータ転送と一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発する
書き込みデータ・レシーバと
を備える装置が提供される。
【０００９】
本開示の少なくともいくつかのさらなる例示の実施例では、１つ又は複数のトランザクション・スレーブに相互接続回路を経由して接続される１つ又は複数のトランザクション・マスタを備え、上記で示されるような伝送制御検査回路を備える、データを処理するための装置が提供される。
【００１０】
本開示の少なくともいくつかのさらなる例示の実施例では、
相互接続回路を経由して１つ又は複数のトランザクション・スレーブのうちの１つからペイロード・データと制御検査データとを含むトランザクション応答を受信するステップと、
前記トランザクション応答の受信に先立って、前記トランザクション応答に関連するトランザクションの伝送の正しい制御に対応する期待されたデータを保持するステップと、
前記トランザクション応答の受信に続いて、前記制御検査データが前記期待されたデータと一致するかを検出するステップと、
前記制御検査データが前記期待されたデータと一致しない場合、検出されたエラーの報告と、これに対するアクションとを誘発するステップと
を含む方法が提供される。
【００１１】
本開示についての上記、及び他の目的と、特徴と、利点とは、添付図面に関連して読まれるべきである実例となる実施例についての以下の詳細な説明から明らかになろう。
【図面の簡単な説明】
【００１２】
【図１】バス・マスタと、バス・スレーブと、相互接続回路と、伝送制御検査回路とを含むデータ処理装置を概略的に示す図である。
【図２】ＵＴＩＤ処理と、シグナル・インテグリティ処理との順序が、入れ替えられた、図１の実例に対する変形形態を概略的に示す図である。
【図３】バス・マスタと、バス・スレーブと、相互接続回路と、伝送制御回路とを含むデータ処理装置のさらなる例示の実施例を概略的に示す図である。
【図４】マスタとスレーブとの内部で実行されるＵＴＩＤ（及び物理アドレス検査）を有するさらなる例示の実施例を概略的に示す図である。
【図５】ペイロード・データと制御検査データの両方を含むトランザクションの１つの例示のフォーマットを概略的に示す図である。
【図６】受信されたトランザクション応答の正しいルーティングについてのトランザクション・マスタ検査を概略的に示す流れ図である。
【図７】レシーバにおけるビート・シーケンス検査を概略的に示す流れ図である。
【図８】書き込みトランザクションのための書き込みデータの正しいルーティングを検査するトランザクション・スレーブを概略的に示す流れ図である。
【図９】固有のトランザクション識別子の１つの例示の形式を概略的に示す図である。
【発明を実施するための形態】
【００１３】
本開示は、トランザクション応答に制御検査データを追加し、次いで、トランザクション応答を受信する回路によって既に保持されている制御検査データとこれを比較することにより、相互接続回路を通した伝送の制御におけるエラーが検出され、その検出されたエラーについての適切な報告とアクションとを誘発し得ることを認識している。本開示は、トランザクション要求の発信元が、トランザクション要求に制御検査データを追加することがあることを認識しており、このトランザクション要求は、次いで、トランザクション応答が、送信されたトランザクション要求に適切に対応しているか否かを検出するため、例えば、相互接続回路を通してのルーティング・エラーについて検査するために、関連するトランザクション応答において、トランザクションのソースに反映されることができる。期待されたデータは、制御検査回路それ自体の内部に、又はそれからリモートに記憶され得ることが、理解されるであろう。制御検査回路は、それが、トランザクション応答内の制御検査データをそれと比較する必要があるときに、期待されたデータにアクセスすることができる。
【００１４】
本開示の別の態様は、トランザクション・マスタに対して送信される読み取りトランザクション応答にこれを追加することにより、発信元のトランザクション・マスタに制御検査データを反射するのに役立つ、トランザクション・スレーブにおけるメカニズムを提供することである。
【００１５】
本技法はまた、書き込みデータに対応していると称しているものについて、書き込み要求に関連する制御検査データを、スレーブによってその後に受信される制御検査データに対して比較することをトランザクション・スレーブに許可することにより、トランザクション・スレーブにおけるエラーの検出を可能にする。書き込みデータの制御検査データが、要求の制御検査データと一致しない場合、これは、書き込みデータが、受信された書き込み要求に適切に対応していないことを示している。
【００１６】
トランザクション・スレーブは、受信された書き込みデータ転送に付随する受信されたシーケンス検査データが、次の期待された書き込みデータ転送に対応することを検査することによって、それが受信する書き込みデータが期待されたシーケンスを有することを検査するように構成されていることもある。そのような検査に合格しない場合、これは、少なくとも、書き込みデータ転送の順序付け、又は生成におけるエラーを示している。
【００１７】
上述の伝送制御検査回路は、例えば、レガシーのトランザクション・マスタとトランザクション・スレーブとに追加の機能を与えるために使用され得るラッパー回路として提供されるように、トランザクション・マスタとトランザクション・スレーブとのそれら自体とは別個のエンティティとして提供される可能性があることが、理解されるであろう。しかしながら、いくつかの実施例においては、トランザクション・マスタとトランザクション・スレーブとは、上記で説明された伝送制御検査回路を直接に組み込むことができることもまた、可能である。
【００１８】
本開示の少なくともいくつかの例示の実施例の別の態様は、１つ又は複数のトランザクション・スレーブに相互接続回路を経由して接続される１つ又は複数のトランザクション・マスタを備え、且つ上記で説明されたような伝送制御回路を備える、データを処理する装置を提供することである。関係している相互接続回路を通してのすべてのトランザクションの伝送の制御におけるエラーについて検査するために伝送制御回路を使用することができ、或いはいくつかの実施例においては、全体として、装置のクリティカルな部分に対応する、可能性のある経路のサブセットにわたって発生する伝送におけるエラーについて検査するために、必要に応じて使用することができる。
【実施例】
【００１９】
図１は、トランザクション・マスタ４と、トランザクション・スレーブ６と、相互接続回路８とを含むデータ処理装置２を概略的に示す。マスタ・ラッパー回路１０は、トランザクション・マスタ４と相互接続回路８との間に配置される。スレーブ・ラッパー回路１２は、トランザクション・スレーブ６と相互接続回路８との間に配置される。マスタ・ラッパー１０は、トランザクション・プロトコルのチャネルの各々の上に、伝送制御検査回路を含んでいる。これらのチャネルは、読み取りデータ・チャネルＲＤと、読み取りアドレス・チャネルＡＲと、書き込みアドレス・チャネルＡＷと、書き込みデータ・チャネルＷＤと、書き込み応答チャネルＢとを含む。読み取りアドレス・チャネルＡＲと、書き込みアドレス・チャネルＡＷと、書き込みデータ・チャネルＷＤとは、トランザクション・マスタ４からトランザクション・スレーブ６へと進む。読み取りデータ・チャネルＲＤと、書き込み応答チャネルＢとは、トランザクション・スレーブ６からトランザクション・マスタ４へと進む。これらのチャネルの各々は、ペイロード・データ（例えば、データ、アドレス、応答など）、並びに、マスタ・ラッパー１０とスレーブ・ラッパー１２との内部で追加され検査されるエラー訂正コード及び制御検査データを含んでいる。
【００２０】
図示されるように、送信されるデータ／アドレス／応答の値は、保護されるデータにおける１つ又は複数のビット・エリアの検出及び訂正を可能にするためにエラー訂正コード（ＡＲｅｃｃ）がそれらに追加されるエラー訂正コード・ジェネレータ１４へと渡される。エラー訂正コードは、送信されるデータ／アドレス／応答の値に提供され得るシグナル・インテグリティ保護の１つの例示の形態であるにすぎないことが、理解されるであろう。シグナル・インテグリティ保護の他の例示の形態には、パリティ・ビットが含まれる。
【００２１】
ペイロード・トランザクションが、その宛先において受信されると、エラー訂正コード・チェッカ１６は、付随するエラー訂正コードを読み取り、保護されたペイロードとこれを比較して、ビット・エラーが存在しているかどうかを検出し、必要に応じて、また可能であれば、次いでこれらのビット・エラーを訂正する役割を果たす。別のオプションは、（たとえ可能であるとしても）エラーを訂正せずに、エラーを信号で知らせることであり、例えば、アドレスにおけるエラーは、訂正される可能性は低い。エラー訂正コード・ジェネレータ１４とエラー訂正コード・チェッカ１６とは、それが相互接続回路１０によってトランザクション・マスタ４とトランザクション・スレーブ６との間で渡されるときに、それに応じて、ペイロード・データのためのシグナル・インテグリティ保護を提供する。エラー訂正コード・ジェネレータ１４とエラー訂正コード・チェッカ１６とは、相互接続回路８を通した伝送の制御において発生するエラー、例えば、トランザクションの誤ったルーティング、トランザクションの不適切な繰り返し、トランザクションの順序付けの不適切な変更などに対して、保護を提供することはない。シーケンス番号ジェネレータ１８とシーケンス番号チェッカ２０とシーケンス番号挿入器２２とシーケンス番号取込器２４との形での伝送制御検査回路が、マスタ・ラッパー１０とスレーブ・ラッパー１２との内部に設けられる。伝送制御検査回路のこれらの要素は、トランザクション応答レシーバと制御検査回路とを提供するように一緒に動作する。
【００２２】
例として、トランザクション・マスタ４による読み取りトランザクションの発行を考察しよう。読み取りトランザクション要求は、読み取りアドレス・チャネルＡＲ上に送出される。シーケンス番号ジェネレータ１８は、その読み取りトランザクション要求のための固有のトランザクション識別子ＵＴＩＤ（図１においてＲｕｔｉｄと示される）を生成する。読み取りトランザクション要求は、相互接続回路８によってトランザクション・スレーブ６にルーティングされる。図１の図示においては、単一のトランザクション・スレーブ６だけが示されているが、実際には、複数の異なるトランザクション・スレーブ６が、存在し、相互接続回路８は、読み取りトランザクション要求をこれらの複数のトランザクション・スレーブ６のうちの正しいものにルーティングすべきであることが、認識されるであろう。
【００２３】
読み取りトランザクション要求がトランザクション・スレーブ６に到着すると、シーケンス番号取込器２４は、新しいトランザクション識別子ＵＴＩＤを読み取り、これを保存する。受信するトランザクション・スレーブ６はまた、受信されたトランザクションの物理アドレスが、トランザクション・スレーブ６の物理アドレスに一致することを検査する。これは、トランザクション識別子ＵＴＩＤが、正しいトランザクション・スレーブ６に配送されていることを検査する（そのようにして、例えば、エラーで動けなくなることを回避する）。物理アドレスの検査は、他のタイプのトランザクション、例えば、書き込みのために実行されることもある。読み取りデータ・トランザクション応答が、読み取りデータ・チャネルＲＤを経由してトランザクション・スレーブ６からトランザクション・マスタ４に返されるときには、固有の識別子ＵＴＩＤ（前もって保存されている）がデータ応答に追加される、シーケンス番号挿入器２２を通る。固有のトランザクション識別子ＵＴＩＤは、トランザクション信号内のサイドバンド・チャネル内に含まれ、読み取りトランザクション要求と読み取りトランザクション応答（単数又は複数）との両方におけるトランザクション信号に付随する制御検査データに対応している。この固有のトランザクション識別子ＵＴＩＤは、トランザクションのルーティングに影響を及ぼさず、むしろ、アドレス、データ、応答値などのペイロード・データ内のエラーとは異なる、相互接続回路８を通したトランザクションの伝送の制御において発生するエラーを検査するために使用される。
【００２４】
新しいトランザクション応答が、マスタ・ラッパー１０で受信されると、シーケンス番号チェッカ２０は、当該新しいトランザクション応答に付随する固有のトランザクション識別子ＵＴＩＤを調べ、対応する読み取りトランザクション要求の一部分としてシーケンス番号ジェネレータ１８によって以前に送出された固有のトランザクション識別子ＵＴＩＤ（期待されたデータ）のコピーとこれを比較する。これらの２つの固有のトランザクション識別子が一致しない場合は、これは、受信されている読み取りトランザクション応答が、送出された読み取りトランザクション要求に対応しておらず、したがって誤ったルーティングなどのエラーが起こっていることを示している。そのようなエラーが検出されると、これは、このエラーの報告と、このエラーに対するアクションとを誘発する。報告は、例えば、監視するプログラム又はシステムに対して行われることもあり、アクションは、例えば、要求を繰り返すこと、システムをリセットすること、又は異なるフェイル・セーフ応答を伴う可能性がある。
【００２５】
マスタ・ラッパー１０は、トランザクション・スレーブ６からトランザクション応答を受信するトランザクション応答レシーバを含むことが、理解されるであろう。マスタ・ラッパー１０は、制御検査回路をさらに含んでいる。シーケンス番号チェッカ２０とシーケンス番号ジェネレータ１８とは、読み取り要求と読み取り応答とのチャネルに関しては、トランザクション応答レシーバと制御検査回路とを具現化する。シーケンス番号ジェネレータ１８は、所与のトランザクション・マスタ４のためのトランザクション識別子を生成するトランザクション識別子ジェネレータとしての機能を果たす。実際には、データ処理システム２は、各々が関連するマスタ・ラッパー１０を有する複数のトランザクション・マスタ４を含むことができることが、理解されるであろう。同じように、潜在的な複数のトランザクション・スレーブ６の各々は、それ自身のスレーブ・ラッパー１２を有することができる。他の実施例においては、マスタ・ラッパー１０又はスレーブ・ラッパー１２内に提供される回路は、それぞれ、トランザクション・マスタ４又はトランザクション・スレーブ６の一部分として組み込まれることもある。マスタ・ラッパー１０とスレーブ・ラッパー１２とを別々に提供することにより、レガシーのトランザクション・マスタ４とトランザクション・スレーブ６とが、本技法を利用することができるようになる可能性がある。マスタ・ラッパー１０とスレーブ・ラッパー１２との内部の回路は、個別に、又は組み合わせて、相互接続回路８の内部に含まれ得ることもまた、理解されるであろう。しかしながら、マスタ・ラッパー１０とスレーブ・ラッパー１２とを別々に提供することにより、レガシーの相互接続回路を使用することができ、少なくともいくつかの状況において望ましいこともある。
【００２６】
スレーブ・ラッパー１０は、シーケンス番号挿入器２２とシーケンス番号取込器２４との形で、トランザクション要求レシーバとトランザクション応答ジェネレータとトランザクション応答トランスミッタとを提供し、トランザクション・スレーブ６によって供給されるデータを出力している。シーケンス番号取込器２４は、上記の例において新しいトランザクション要求を受信し、固有のトランザクション識別子ＵＴＩＤをこれから取り込むという点で、トランザクション要求レシーバとしての機能を果たす。この固有のトランザクション識別子ＵＴＩＤは、取り込まれた固有のトランザクション識別子ＵＴＩＤをトランザクション信号の残りと連結させる（例えば、固有のトランザクション識別子ＵＴＩＤをトランザクション・サイドバンド信号内のユーザ・データに加える）ことでトランザクション応答を生成するトランザクション応答ジェネレータとしての機能を果たすシーケンス番号挿入器２２に渡される。シーケンス番号挿入器２２はまた、このトランザクション応答を、固有のトランザクション識別子ＵＴＩＤを含めてトランザクション・マスタ４に対して返信して、トランザクション応答トランスミッタとしての機能も果たす。
【００２７】
上記の例では、読み取りトランザクション要求と読み取りトランザクション応答とを考慮している。本技法はまた、書き込み要求書き込みデータと書き込み応答チャネルとにも適用することもできることが理解されるであろう。書き込みトランザクション要求がトランザクション・マスタ４から送信されると、シーケンス番号ジェネレータ１８は、固有のトランザクション識別子ＵＴＩＤをトランザクションのユーザ・データ・サイドバンドに挿入して、その書き込み要求トランザクションと一緒にトランザクション・スレーブ６に渡される制御検査データとしての機能を果たすようにする。シーケンス番号取込器２４の形の書き込みデータ・レシーバを使用して書き込み要求を受信するスレーブ・ラッパー１２は、書き込みトランザクション要求から固有のトランザクション識別子ＵＴＩＤを読み取り、これをシーケンス番号チェッカ２０に渡すように機能する。シーケンス番号チェックアップ２０は、書き込みトランザクション要求に付随した（今や、スレーブ・ラッパー１２によって保持される期待されたデータとして機能する）取り込まれた固有のトランザクション識別子ＵＴＩＤを、トランザクション・マスタ４からトランザクション・スレーブ６へと送信される書き込みデータの各ビート（beat）に付随する制御検査データと比較する。（取り込まれた固有のトランザクション識別子ＵＴＩＤの形式の）期待されたデータが、正しいデータの各ビートとともに受信される制御検査データと一致しない場合は、これは、検出されたエラーの報告と、これに対するアクションを誘発する。そのようなエラーは、受信される書き込みデータが、トランザクション・スレーブ６が受信したと期待していた書き込み要求に対応していないことを示すであろう。これは、相互接続回路８を通してデータが誤ったルーティングをされた結果である可能性がある。
【００２８】
書き込みトランザクションが完了すると、トランザクション・スレーブ６は、書き込み応答チャネルＢＲ上に書き込み応答を生成する。この書き込み応答は、それが、トランザクション・マスタ４に戻されるのにあわせてそれに追加される、対応する書き込みトランザクション要求のための固有のトランザクション識別子ＵＴＩＤを有することができる。マスタ・ラッパー１０は、書き込み応答に関連する固有のトランザクション識別子（制御検査データ）を読み取り、これをそれが期待している固有のトランザクション識別子の値と比較する。
【００２９】
エラー訂正コードのチェッカとジェネレータとの回路１４、１６とは、信号経路の中で、トランザクション・マスタ４とトランザクション・スレーブ６との最も近くに配置されることが、図１に見られるであろう。しかしながら、他の実施例においては、トランザクション・マスタ４とトランザクション・スレーブ６とに隣接しているのは伝送制御検査回路２０、２２、２４であり、エラー訂正コード・ジェネレータおよびチェッカ１４、１６が、信号経路内で、相互接続回路６に隣接しているように、伝送検査回路２０、２２、２４と、エラー訂正コード・ジェネレータおよびチェッカ１４、１６とは入れ替えられることもある。
【００３０】
図２は、ＵＴＩＤ処理とシグナル・インテグリティ処理との順序が入れ替えられた、図１の例示の実施例に対する変形形態を概略的に示す。
【００３１】
図３は、さらなる例示の実施例である。この実施例においては、固有のトランザクション識別子は、サイドバンド信号として提供されるユーザ・データ内で別個に渡されるものではなく、その代わりに、エラー訂正コード・データを形成するときに送信されるべきペイロード・データと混合され、すなわち、ＵＴＩＤは、ＥＣＣジェネレータ機能への入力として含められている。したがって、エラー訂正コードがペイロード・データと一緒に受信されると、エラー訂正コードが再計算されるときに、期待されたデータはペイロード・データと再び混ぜ合せられることができ、受信されたエラー訂正コードが新しく完了されたエラー訂正コードと一致するかどうかについての決定、すなわち、制御検査データが期待されたデータと一致することの検査がそれによっておこなわれる。相互接続回路を通しての伝送の制御におけるエラーは、期待されたデータが制御検査データと一致しないことを意味すべきであり、したがって、エラー訂正コードが比較されると、不一致が存在することになる。このアプローチの問題は、おそらく、伝送制御エラーがエラー訂正コードの不一致を引き起こさず、したがって伝送制御エラーが検出されないままとなり得ることがあるということである。エラー検出コードは、データ中のいくつかの不調を検出することができる。ＳＥＣＤＥＤ  ＥＣＣコード（一般的に使用される）は、２つの不調を検出することができ、パリティ（ＳＥＤとして知られる）は、１つを検出することができる。もし、ＵＴＩＤコードの対の間のハミング距離がビットのこの数よりも大きいならば、ＥＣＣがエラーを検出しないことになる可能性が高い。もし、ＵＴＩＤが「あまり固有なものでなく」（固有さは、より一般的な「制御検査データ」の概念の拡張である）、且つ／又はコードのエラー検出能力がより高い（例えば、より長いＣＲＣコード）ならば、ＥＣＣ生成の一部としてＵＴＩＤを使用することは適切であるかもしれない。
【００３２】
図３の実施例においては、固有のトランザクション識別子に依存するエラー訂正コードは制御検査データを形成すると考えることができ、期待されたデータは、受信されたエラー訂正コードと比較されるべきであって、トランザクション要求のための固有のトランザクション識別子である期待されたデータに基づいて計算される、計算されたエラー訂正コードであると考えることができる。
【００３３】
図４は、ＵＴＩＤ処理（及び物理アドレスの検証）が、マスタとスレーブとのそれら自身の内部で実行される、さらなる例示の実施例を概略的に示す。
【００３４】
図５は、図１及び２のデータ処理装置を通して送信されるトランザクションを形成する信号の一例を概略的に示す。トランザクション信号は、ペイロード信号（例えば、アドレス、データなど）と、エラー検出コード（又は他のシグナル・インテグリティ保護データ）と、ユーザ・データ／サイドバンド信号に追加される制御検査データとを含んでいる。これらのユーザ・データ／サイドバンド信号は、英国ケンブリッジのＡＲＭ社によって設計されたＡＸＩトランザクション・プロトコル内で提供されている。本技法は、それらのこの特定のプロトコルへの応用だけに限定されることはなく、例えば、異なるプロトコルが、チャネルの異なる組合せを有することができる。
【００３５】
読み取りデータ・チャネルＲＤと、書き込みデータＷＤチャネルの場合は、制御検査データは、以下でさらに述べられるように、偶数／奇数ビート・インジケータ（even/odd beat indicator）ＥＯＢＩをさらに含むことができる。このＥＯＢＩを使用して、（受信するトランザクション・マスタによる読み取りに応じて、又は受信するトランザクション・スレーブによる書き込みに応じてのいずれかで）受信されるデータ値のシーケンスを検査することができる。制御検査データとエラー検出コードとペイロードとは、相互接続回路８を通して一緒にルーティングされるトランザクションの信号である。
【００３６】
図６は、どのようにしてトランザクション・マスタ４が正しいルーティングについての検査をおこなうかを概略的に示す流れ図である。ステップ２６において、処理は、送信すべきトランザクション要求が存在するまで待つ。ステップ２８において、固有のトランザクション識別子が、そのトランザクション要求のために生成される。固有のトランザクション識別子は、その時点におけるすべての待ち状態にあるトランザクションに対して固有である値を有している。この特性を有するこの固有のトランザクション識別子の生成は、以下にさらに記述される。ステップ３０において、固有のトランザクション識別子を含むトランザクション要求が送出される。固有のトランザクション識別子はまた、トランザクション・マスタ内に保持され（保存され）、そのようにしてそれは、受信されたトランザクション応答に関して正しいルーティングを検証するための期待されたデータとしての機能を果たすことができる。期待されたデータの保存位置は様々であり得る。ステップ３２は、トランザクション応答が受信されるまで待つ。これは、トランザクション・マスタ４の場合には、読み取りデータ、又は書き込み応答とすることができる。トランザクション応答が受信されると、ステップ３４は、受信されたトランザクション応答に付随する固有のトランザクション識別子の形の制御検査データを、ステップ２８において保存された、保存された固有のトランザクション識別子の形の期待されたデータと比較する。不一致があると、ステップ３６は、検出されたエラーの報告とこれに対するアクションとを含むエラー応答を誘発する。エラーの報告とこれに対するアクションとは、例えば、トランザクションを繰り返すこと、トランザクションを破棄すること、リセットをトリガすることなど、多種多様な異なる形態を取ることができる。受信された制御検査データが、期待されたデータと一致するならば、処理は、その応答を受け入れるステップ３８へと進む。
【００３７】
図７は、図３のＥＯＢＩビットとの関係で上述された、レシーバ（マスタ又はスレーブのいずれか）におけるビート・シーケンス検査を概略的に示す流れ図である。ステップ４０において、レシーバは、受信すべきデータが存在するまで待つ。ステップ４２は、ＥＯＢＩの期待値の初期ステータスを０に設定する。ステップ４４は、データの最初のビートが受信される（読み取りデータがマスタへと戻されるか、又は書き込みデータがスレーブによって受信されるかのいずれか）まで待つ。データのトランスミッタは、最初のビートが、０に設定されたＥＯＢＩ値を伴った状態で、そのデータ伝送のシーケンスを開始する。したがって、送信されたこの最初のビートが受信された最初のビートであるならば、受信されたＥＯＢＩ値が期待されたＥＯＢＩ値と一致するかどうかについてのステップ４６での決定は、合格するであろう。もし、受信されたＥＯＢＩ値と期待されたＥＯＢＩ値との間の不一致がステップ４６において検出されるならば、エラー応答がステップ４８において誘発されるであろう。このエラー応答は、上記で述べられるように、多種多様の形態を取ることができる。
【００３８】
ステップ４６におけるＥＯＢＩの検査が合格すれば、データのビートは受け入れられ、ステップ５０へと続いて、データのビートが最後のビートであるか否かが決定されるであろう。データのビートが最後のビートであるならば、プロセスは終了する。データのビートが最後のビートではないならば、ステップ５２が、現在のＥＯＢＩの期待値が０であるかどうかを決定する。現在のＥＯＢＩの期待値が０であるならば、処理をステップ４４に戻して受信される次のビートを待つ前に、ステップ５４がこれを１へと反転させる。ＥＯＢＩの期待値が、現在、０でないならば、処理をステップ４４に戻してデータの次のビートを待つ前に、ステップ５６がＥＯＢＩの期待値を０に設定するように機能する。
【００３９】
図５の処理はバースト書き込みやバースト読み取りなどのバースト転送に関連づけられることが理解されるであろう。そのようなバースト転送においては、単一の転送要求は、データの複数のビートによって追従される。データのこれらのビートは、バースト読み取りの場合には、読み取り応答トランザクションの、又、バースト書き込みの場合には書き込みデータ値のシーケンスに対応する。データのこれらのビートは、それらが送信され、その同じシーケンスで受信されるように仮定される、期待されたシーケンスを有する。もし、このシーケンスが変更されると、正しくないオペレーションになり得る。図５に関連して考察されるようなＥＯＢＩ値の動作は、受信されるデータ・ビートのシーケンスが、ＥＯＢＩ値の正しい互い違いのシーケンスを有することを保証する。これは、ビートが反復されて、互い違いのシーケンスではなく同じＥＯＢＩ値が互いに隣接して２回送信されるなどのエラーを検出する際に効果的である。このようにして誤った指示も、それが、ＥＯＢＩ値が互い違いになるという要件を依然として満たす誤った指示のビートという結果にならないものであれば、検出される可能性もある。
【００４０】
図２に関連して議論されたように、ＥＯＢＩは、ＥＣＣ生成機能に対する入力として含められ、それゆえに別々に送信されない可能性もある。ＥＯＢＩは単一のビット（対して、マルチビットのＵＴＩＤフィールド）であるので、ＥＯＢＩについてのエラーは、ＥＣＣコードによって検出される可能性の高い単一ビット・エラーである。それは、より簡単なパリティ・コードによって検出されることさえある（パリティについては、それは、データの異なるビートについての偶数パリティ検査と、奇数パリティ検査との間の切り替えを事実上意味している）。これは、信号をルーティングしないという利点を有する。（ＵＴＩＤでは、エラーは、検出される可能性が低いマルチビット・エラーである可能性があるので、この手法は適切ではない可能性がある。しかしながら、ＵＴＩＤからの単一ビットであれば、このやり方でＥＣＣに組み込まれ得る。ＳＥＣＤＥＤ  ＥＣＣコードでは、サイドバンド・リターン・データの２ビット全体を取り除くことができる。）
【００４１】
図８は、トランザクション・スレーブ６によって実行される、そのスレーブに対する書き込みトランザクションの正しいルーティングを検査するための処理を概略的に示す流れ図である。トランザクション・プロトコルの特徴は、書き込みデータが、書き込みトランザクション要求の前に受信される可能性があることであるかもしれない。それにもかかわらず、図８に示される処理は、書き込みトランザクション要求が受信されるときと比較していつ（前に、同時に、又は後に）受信されるかにかかわらず、書き込みトランザクション要求の固有のトランザクション識別子がすべての受信された書き込みデータ・ビートの固有のトランザクション識別子と一致することを確認することができる。
【００４２】
ステップ５８は、書き込みトランザクション要求が受信されているかどうかを決定する。もし、書き込みトランザクション要求が受信されているならば、処理は、任意の書き込みデータ・ビートがこれらの書き込みデータ・ビートに対応する書き込みトランザクション要求なしに既に受信されているか否かについての決定が行われるステップ５９へと進む。ステップ５９における決定が、既に受信されている書き込みデータ・ビートが存在していないということである場合は、処理は、書き込み要求受信データステップ５８の固有のトランザクション識別子が保存されるステップ６０へと進む。
【００４３】
ステップ５９における決定が、いくつかの書き込みデータ・ビートが既に受信されているということである場合は、処理は、ステップ５８において受信される書き込みトランザクション要求の固有のトランザクション識別子と、既に受信されている１つ又は複数のデータ・ビートの固有のトランザクション識別子との間の比較が行われるステップ６１へと進む。これらが一致しない場合、ステップ６２においてエラー応答が誘発され、処理が終了する。ステップ６１における検査が、固有のトランザクション識別子が一致することを示すときは、処理は、ステップ５８において受信された書き込みトランザクション要求についてのすべての書き込みデータ・ビートが受信されているか否かについての決定が行われるステップ６３へと進む。もし、書き込みトランザクション要求についてのすべての書き込みデータ・ビートが既に受信されているならば、処理は終了する。
【００４４】
もし、ステップ６３における決定が、書き込みデータ・ビートのすべてはまだ受信されていないということであるならば、又は書き込みトランザクション要求が受信されていないというステップ５８における決定に続いている場合は、処理は、データ・ビートが受信されているか否かについての決定が行われるステップ５４へと進む。データ・ビートが受信されていないならば、処理はステップ５８へと戻る。ステップ６４における決定が、データ・ビートが受信されているということであるならば、ステップ６５において、書き込みトランザクション要求が既に受信されているか否かを決定する。書き込みトランザクション要求がまだ受信されていないならば、ステップ６６は、それが受信されるときに、それが書き込みトランザクション要求と後で比較され得る（ステップ６１を参照）ように、データ・ビートの固有のトランザクション識別子を保存する。ステップ６６でのデータ・ビートの固有のトランザクション識別子の保存に続いて、処理はステップ５８へと戻る。
【００４５】
ステップ６５における決定が、書き込みトランザクション要求が既に受信されているということである場合、ステップ６７が、受信されるデータ・ビートの固有のトランザクション識別子が以前に受信された書き込みトランザクション要求の固有のトランザクション識別子と一致するかどうかを決定する。一致しない場合、ステップ６８がエラー応答を誘発し、処理が終了する。ステップ６７における決定が、固有のトランザクション識別子が一致することを示す場合、ステップ６９は、ステップ６４において受信されたデータ・ビートが書き込みトランザクション要求のための最後のデータ・ビートであるかどうかを決定する役目をする。受信されたデータ・ビートが最後のデータ・ビートではない場合、処理はステップ６４へと戻る。受信されたデータ・ビートが最後のデータ・ビートである場合、処理は終了する。
【００４６】
図９は、固有のトランザクション識別子の１つの例示の形態を概略的に示す。これは、システム内に存在するトランザクション・マスタのうちの所与のトランザクション・マスタに固有であるトランザクション・マスタ識別子の形での固有の識別子の値７８を使用して形成されることができる。これは、固有のトランザクション識別子の接頭辞を形成する。固有のトランザクション識別子の接尾辞は、トランザクション・マスタ内で生成され、そのトランザクション・マスタによって発行される現在待ち状態のトランザクションの間で固有であるシーケンス番号８０によって形成される。シーケンス番号が生成され得る１つの例示のやり方は、待ち状態のトランザクションのアドレスを保存するためのアドレス・バッファを含むトランザクション・マスタ内にある。アドレスが保存されるアドレス・バッファ内の位置は、そのアドレスに関連するトランザクションに対して固有なものであろう。したがって、アドレスのこのストレージ位置は、固有のトランザクション識別子のシーケンス番号部分（接尾辞）を形成するために再使用され得る。
【００４７】
トランザクション応答の制御検査データが比較される期待された値は、様々な異なる形態を取ることができ、例えば、それは、制御検査データに直接に対応していなくてもよいが、受信される制御検査データが、正しいパリティを有しているとか、期待されたハッシュ値を生成するなど、期待された制御検査データと少なくとも整合しているという検査が行われることを可能にする形式を有することができる。しかしながら、少なくともいくつかの例示の実施例においては、期待された値は所与のトランザクション・マスタによって発行されるトランザクションのトランザクション識別子を含むことができ、このトランザクション識別子は、その関連するトランザクションと一緒に相互接続回路を通して伝搬し、トランザクション応答が最初に送信されたトランザクション要求に対応するものであることを検査するためにトランザクション・マスタに反射されている。
【００４８】
いくつかの例示の実施例においては、伝送制御検査回路は、所与のトランザクション・マスタのためにトランザクション識別子を生成する役割を果たすトランザクション識別子ジェネレータを含むことができる。このようにして、且つトランザクション・マスタのその他の部分とは別に、別個のトランザクション識別子ジェネレータを提供することにより、もともとこの能力を考慮に入れて設計されていないトランザクション・マスタ、例えばレガシー・トランザクション・マスタに、相互接続回路内の制御エラーに対する本開示の追加の保護を提供することが簡略化される。
【００４９】
相互接続回路を通しての伝送の制御における誤動作に対する保護は、いくつかの例示の実施例において、トランザクション識別子が、待ち状態のトランザクションのために現在使用されているトランザクション識別子の間で固有の値を有する固有のトランザクション識別子であるように準備することにより改善されることがある。トランザクション識別子は、時間がたって再使用されることがあっても、複数のトランザクション応答がトランザクション識別子を共用する状況を回避することができ、それによって、トランザクション識別子の再使用のために正しくないトランザクション応答が期待されたデータと一致するとして不適切に識別される可能性を回避するよう、待ち状態のトランザクションの間で固有であるように制約され得る。
【００５０】
少なくともいくつかの例示の実施例においては、トランザクション識別子は、トランザクションに付随するサイドバンド信号の一部分又はすべてを形成することができる。相互接続回路は、サイドバンド信号内のトランザクション識別子とは独立して、トランザクションをルーティングするように構成され得る。サイドバンド信号（例えば、ユーザ・データ）への供給は、既存の相互接続回路プロトコル内で既に提供されているかもしれず、相互接続を通したトランザクションの伝送の制御におけるエラーを検出する目的のために使用することができる。
【００５１】
相互接続回路を通してのトランザクションの伝送の制御におけるエラーは、様々な異なる形態を取る得ることが、理解されるであろう。１つの例示の形態は、エラーにより、それが実際に戻される所与のトランザクション・マスタ以外のトランザクション・マスタを意図していたという、トランザクション応答に誤った指示を与えるという結果をもたらすことである。他の例示のエラーは、トランザクション応答の不適切な繰り返し送信、トランザクション応答の正しくない順序付け、又はトランザクション応答自体の内容とは異なる伝送の制御に関連した他のエラーであり得る。
【００５２】
トランザクション識別子は、１つ又は複数のトランザクション・マスタのうちの所与のトランザクション・マスタにとっての固有の識別子と、その所与のトランザクション・マスタによって発行されている同時に待ち状態にあるトランザクションのうちの固有の番号（例えば、シーケンス番号、又は１組の番号内の現在未使用の番号など）との組合せとしてトランザクション識別子を形成することにより、それが、少なくともいくつかの例示の実施例において、待ち状態のトランザクションの間で固有であることを保証するように形成され得る。所与のトランザクション・マスタにとっての固有の識別子は静的に構成されることがあり、固有の番号を強制することは、その番号の生成がその所与のトランザクション・マスタの制御の下にある可能性があるので、所与のトランザクション・マスタそれ自体によって実行され得る。
【００５３】
いくつかの実施例においては、所与のトランザクション・マスタは、待ち状態のトランザクションに関連するアドレスを保存するように構成されたアドレス・バッファを含むことができる。そのような実施例内では、待ち状態のトランザクションに対応するアドレスのアドレス・バッファ内のストレージ位置が、上記で説明されるようなトランザクション識別子の部分を形成するシーケンス番号を提供するように再使用され得る。アドレスがアドレス・バッファ内の固有の位置内に保存されることを保証するようにメカニズムが既に提供されており、したがって、この固有性の振る舞いは、トランザクション識別子の適切なシーケンス番号部分を生成し、それによってオーバーヘッドを節約するように、再使用され得る。
【００５４】
いくつかの例示の実施例においては、要求されるトランザクションは、所与のトランザクション・マスタに戻される複数のトランザクション応答からなる応答シーケンスという結果になり得、例えば、バースト読み取り又はバースト書き込みトランザクションは、その読み取り又は書き込みを遂行するために転送されているデータの複数のビートに終わる可能性がある。そのようなトランザクションについて発生し得る問題は、トランザクション応答の順序付けが、相互接続回路を通した伝送の制御におけるエラーによって不適切に変更される可能性があることである。したがって、いくつかの例示の実施例においては、制御検査データの期待されたデータとの一致が、応答シーケンス内での期待された次のトランザクション応答の受信を確認するために使用される。それゆえに、制御検査データと期待されたデータとは、これに従ってそれらが戻されることになる期待されたシーケンスに従って、トランザクション応答が受信されていることを追跡する。
【００５５】
少なくともいくつかの例示の実施例において使用され得るような検査を実装する１つのオーバーヘッドの低いやり方は、より一般的にはビート・シーケンス番号が使用されるかもしれない（これは、ビートごとに固有としてもよく、又は固有である可能性が高いシーケンス番号の関数、例えば、数え上げたり若しくはグレー・コードであるかもしれない）が、制御検査データが応答シーケンス内の各々の連続するトランザクション応答とともに値を交互させるビットを含むというものである。期待されたデータは、したがって、受信されるべき次の応答に期待されるビット値とすることができ、受信されたビット値が正しくない場合、これは、順序付けにおける不適切な変化、又は不適切な繰り返しデータ・ビートが起こったことを示す。ビートの順序付けを追跡するための単一ビットの使用は、低いオーバーヘッドを使用し、繰り返され、入れ替えられ、及び紛失したビートを検出し、単一エラー検出のエラー検出コードに組み込まれ得る。
【００５６】
本技法は、様々な異なるやり方で適用されて、相互接続回路を通して行われているトランザクションの異なる部分を保護することができることが理解されるであろう。少なくともいくつかの例示の実施例においては、トランザクションはデータ読み取りであり、トランザクション応答は読み取りデータを含んでいる。本技法は、この例において、戻される読み取りデータが、戻された読み取りデータが満たすべき候補である読み取り要求とともに送信される制御検査データに対応する制御検査データと関連づけられているということを検査する役目を果たすことができる。複数のデータ・ビートの場合には、トランザクション識別子は、これらのデータ・ビートに対応する複数のトランザクション応答の各々に関連づけられ得る。
【００５７】
本開示の少なくともいくつかの例示の実施例においては、トランザクションの伝送の制御におけるエラーの少なくとも検出を可能にする上記技法は、トランザクションの一部分として送信されるデータ自体（例えば、データ値、アドレス値、応答値など）の内部のエラーを検出しようとする技法によって伴われることがある。例えば、トランザクション応答は、エラー検出コード（例えば、ＥＣＣコード、パリティ・ビット、又はシグナル・インテグリティ保護を提供するための何らかの他の形態のコード）を含むことができ、回路は、エラー検出コードを使用してペイロード・データにおける少なくともいくつかのエラーを検出するエラー検出回路をさらに含んでいる。使用されるコードによっては、エラー検出コードは、追加として／オプションとして、少なくともいくつかの検出されたエラーを訂正することも可能にすることができる。制御検査データは、いくつかの例示の実施例においては、ペイロード・データを検査するために使用されることもあるエラー検出コードに組み合わせられ／含まれることもある。
【００５８】
実例となる実施例が、添付図面を参照して本明細書において詳細に説明されているが、特許請求の範囲は、これらの厳密な実施例だけに限定されないこと、及び様々な変更、追加、修正が、添付の特許請求の範囲の範囲及び趣旨を逸脱することなく、当業者によってその中で達成され得ることを理解すべきである。例えば、従属請求項の特徴の様々な組合せが、独立請求項の特徴とともになされる可能性がある。
【図１】
2016042355.tif 000003
【図２】
2016042355.tif 000004
【図３】
2016042355.tif 000005
【図４】
2016042355.tif 000006
【図５】
2016042355.tif 000007
【図６】
2016042355.tif 000008
【図７】
2016042355.tif 000009
【図８】
2016042355.tif 000010
【図９】
2016042355.tif 000011
【外国語明細書】
2016042355000001.pdf