(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-11
(45)【発行日】2024-09-20
(54)【発明の名称】スプリット・モード及びロック・モードを有する処理クラスタにおける効率的なメモリ利用
(51)【国際特許分類】
G06F 11/16 20060101AFI20240912BHJP
G06F 15/177 20060101ALI20240912BHJP
G06F 15/173 20060101ALI20240912BHJP
【FI】
G06F11/16 641
G06F15/177 A
G06F15/173 681
G06F11/16 654
【外国語出願】
(21)【出願番号】P 2020142185
(22)【出願日】2020-08-26
【審査請求日】2023-08-18
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】カウザー ヤコブ ジョハール
(72)【発明者】
【氏名】ロイク ピエロン
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2019-95893(JP,A)
【文献】特開2019-66983(JP,A)
【文献】特表2002-518739(JP,A)
【文献】特表2017-532671(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16
G06F 15/177
G06F 15/173
(57)【特許請求の範囲】
【請求項1】
処理要素のクラスタであって、前記処理要素が独立処理ワークロードを処理するように構成されるスプリット・モードと、前記処理要素が、少なくとも1つの1次処理要素及び少なくとも1つの冗長処理要素を備え、各冗長処理要素が、前記1次処理要素によって実行される1次処理ワークロードの正当性を検査するための冗長処理ワークロードを実行するように構成されるロック・モードとを有し、
各処理要素が、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリを有する、
処理要素のクラスタと、
前記ロック・モード中に、前記少なくとも1つの1次処理要素が、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするように構成されたローカル・メモリ・アクセス制御機構と
を備える装置。
【請求項2】
前記ロック・モード中に、前記1次処理ワークロードを実行するときに前記少なくとも1つの1次処理要素によって発行されたメモリ・アクセス要求に応答して、メモリへのアクセスが実行され、前記冗長処理ワークロードを実行するときに前記少なくとも1つの冗長処理要素によって発行された対応するメモリ・アクセス要求が、メモリへのアクセスを引き起こすことを防止される、請求項1に記載の装置。
【請求項3】
前記ロック・モード中に、前記冗長処理ワークロードを実行するときに前記少なくとも1つの冗長処理要素によって発行された前記対応するメモリ・アクセス要求が、前記1次処理ワークロードの正当性を検査するときに使用される、請求項2に記載の装置。
【請求項4】
前記ロック・モード中に、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリの前記メモリ・ロケーションの少なくともサブセットが、前記1次処理ワークロードを実行するときに前記少なくとも1つの1次処理要素によって使用するための許容できるメモリ・アドレスを識別するメモリ・アドレス空間内に含まれる、請求項1に記載の装置。
【請求項5】
前記ローカル・アクセス制御機構が、
前記クラスタ中の各処理要素に関連付けられた、前記処理要素の前記関連付けられたローカル・メモリへのアクセスを制御するためのローカル・メモリ・アクセス制御ユニットと、
前記少なくとも1つの1次処理要素に関連付けられた前記ローカル・メモリ・アクセス制御ユニットの出力を、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリの入力に結合する相互接続信号経路と
を備え、
前記ロック・モード中に、前記少なくとも1つの1次処理要素に関連付けられた前記メモリ・アクセス制御ユニットは、前記1次処理ワークロードを実行するときに前記少なくとも1つの1次処理要素によって発行されたメモリ・アクセス要求が、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリ内のメモリ・ロケーションにアクセスすることを求めていることを検出すると、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリにアクセスするために前記相互接続信号経路を採用するように構成される、請求項1に記載の装置。
【請求項6】
前記ロック・モード中に、前記1次処理ワークロードを実行するときに前記少なくとも1つの1次処理要素によって発行された前記メモリ・アクセス要求を処理した結果として生成された結果が、前記少なくとも1つの1次処理要素と前記少なくとも1つの冗長処理要素との両方に伝搬される、請求項2に記載の装置。
【請求項7】
前記少なくとも1つの1次処理要素の各々が、メモリ・アクセス要求を発行するための1次要求チャネルと2次要求チャネルとを有し、
前記ロック・モード中に、前記少なくとも1つの1次処理要素が、自身の関連付けられたローカル・メモリ内のメモリ・ロケーションへのアクセスが必要とされると決定したことに応答して、前記メモリ・ロケーションを識別する前記1次要求チャネル上でメモリ・アクセス要求を発行するように構成され、
前記ロック・モード中に、前記少なくとも1つの1次処理要素が、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリ内のメモリ・ロケーションへのアクセスが必要とされると決定したことに応答して、前記メモリ・ロケーションを識別する前記2次要求チャネル上でメモリ・アクセス要求を発行するように構成される、請求項1に記載の装置。
【請求項8】
前記ローカル・アクセス制御機構が、
前記クラスタ中の各処理要素に関連付けられた、前記処理要素の前記関連付けられたローカル・メモリへのアクセスを制御するためのローカル・メモリ・アクセス制御ユニットと、
前記少なくとも1つの1次処理要素に関連付けられた前記ローカル・メモリ・アクセス制御ユニットの出力を、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリの入力に結合する相互接続信号経路と
を備え、
前記ロック・モード中に、前記少なくとも1つの1次処理要素に関連付けられた前記ローカル・メモリ・アクセス制御ユニットは、前記2次要求チャネルを介して前記少なくとも1つの1次処理要素によって発行されたメモリ・アクセス要求の受信を検出すると、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリにアクセスするために前記相互接続信号経路を採用するように構成される、請求項7に記載の装置。
【請求項9】
前記クラスタの前記ローカル・メモリに関連付けられた共通アクセス・ポートであって、前記共通アクセス・ポートが、前記ローカル・メモリにメモリ・アクセス要求を伝搬するための1次要求チャネルと2次要求チャネルとを有する、共通アクセス・ポート
をさらに備え、
前記ロック・モード中に、前記少なくとも1つの1次処理要素が、前記1次処理ワークロードを実行するときに前記共通アクセス・ポートを介してメモリ・アクセス要求を発行するように構成され、
前記共通アクセス・ポートは、前記メモリ・アクセス要求が前記少なくとも1つの1次処理要素の関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを求めていることを決定したことに応答して、前記1次要求チャネル上で前記メモリ・アクセス要求を伝搬するように構成され、
前記共通アクセス・ポートは、前記メモリ・アクセス要求が前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリ内のメモリ・ロケーションにアクセスすることを求めていることを決定したことに応答して、前記2次要求チャネル上で前記メモリ・アクセス要求を伝搬するように構成された、
請求項1に記載の装置。
【請求項10】
前記ローカル・アクセス制御機構が、
前記クラスタ中の各処理要素に関連付けられた、前記処理要素の前記関連付けられたローカル・メモリへのアクセスを制御するためのローカル・メモリ・アクセス制御ユニットと、
前記少なくとも1つの1次処理要素に関連付けられた前記ローカル・メモリ・アクセス制御ユニットの出力を、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリの入力に結合する相互接続信号経路と
を備え、
前記ロック・モード中に、前記少なくとも1つの1次処理要素に関連付けられた前記メモリ・アクセス制御ユニットは、前記2次要求チャネル上で前記共通アクセス・ポートを介して発行されたメモリ・アクセス要求の受信を検出すると、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリにアクセスするために前記相互接続信号経路を採用するように構成される、請求項9に記載の装置。
【請求項11】
前記ローカル・メモリの各々が関連付けられたプライベート・アクセス・ポートを有し、各プライベート・アクセス・ポートが前記1次要求チャネルと前記2次要求チャネルの両方に結合され、前記共通アクセス・ポートが、前記少なくとも1つの1次処理要素の前記プライベート・アクセス・ポートと前記少なくとも1つの冗長処理要素の前記プライベート・アクセス・ポートの両方に、前記1次要求チャネル及び前記2次要求チャネルのうちの選択された1つで前記メモリ・アクセス要求をブロードキャストするように構成された、請求項9に記載の装置。
【請求項12】
前記共通アクセス・ポートが、処理要素の前記クラスタの外部のデバイスによる前記ローカル・メモリへのアクセスを与えるように構成される、請求項9に記載の装置。
【請求項13】
前記関連付けられたローカル・メモリがスクラッチパッド・メモリである、請求項1に記載の装置。
【請求項14】
各ローカル・メモリが、前記関連付けられた処理要素により実行するための命令と、前記命令を実行するときに前記関連付けられた処理要素によって操作されるデータと、のうちの少なくとも1つを記憶するために使用される、請求項1に記載の装置。
【請求項15】
前記ロック・モード中に、前記1次処理ワークロードを実行するときに前記少なくとも1つの1次処理要素によって発行されたメモリ・アクセス要求を、前記1次処理ワークロードの前記正当性を確立するために、前記冗長処理ワークロードを実行するときに前記少なくとも1つの冗長処理要素によって発行された対応するメモリ・アクセス要求と比較するために採用される比較回路をさらに備える、請求項1に記載の装置。
【請求項16】
前記比較回路が、前記1次処理ワークロードを実行するときに前記少なくとも1つの1次処理要素によって発行された前記メモリ・アクセス要求と、前記冗長処理ワークロードを実行するときに前記少なくとも1つの冗長処理要素によって発行された前記対応するメモリ要求との間の不整合を検出したとき、前記比較回路が、エラー信号を発行するように構成される、請求項15に記載の装置。
【請求項17】
処理要素のクラスタを備えるデータ処理装置を動作させるための方法であって、
前記クラスタをスプリット・モードで動作させるとき、前記クラスタの前記処理要素上で独立処理ワークロードを処理することと、
前記クラスタをロック・モードで動作させるとき、少なくとも1つの1次処理要素及び少なくとも1つの冗長処理要素を備えるように前記処理要素を構成し、前記少なくとも1つの1次処理要素上で1次処理ワークロードを実行し、前記少なくとも1つの冗長処理要素上で、前記1次処理要素によって実行される前記1次処理ワークロードの正当性を検査するための冗長処理ワークロードを実行することと、
各処理要素に、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリを与えることと、
前記ロック・モード中に、前記ついに1つの1次処理要素が、前記少なくとも1つの冗長処理要素に関連付けられた前記ローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするために、ローカル・メモリ・アクセス制御機構を採用することと
を含む、データ処理装置を動作させるための方法。
【請求項18】
処理手段のクラスタであって、前記処理手段が独立処理ワークロードを処理するように構成されるスプリット・モードと、前記処理手段が少なくとも1つの1次処理手段及び少なくとも1つの冗長処理手段を備え、前記1次処理手段によって実行される1次処理ワークロードの正当性を検査するための冗長処理ワークロードを実行するための各冗長処理手段、ロック・モードとを有し、
各処理手段が、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリ手段を有する、処理手段のクラスタと、
前記ロック・モード中に、前記ついに1つの1次処理手段が前記少なくとも1つの冗長処理手段に関連付けられた前記ローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするためのローカル・メモリ・アクセス制御手段と
を備える装置。
【発明の詳細な説明】
【技術分野】
【0001】
本技法はデータ処理の分野に関する。
【背景技術】
【0002】
いくつかの分野において、あるレベルの機能安全の保証を与える処理ハードウェアを提供することは重要であり得る。たとえば、これは、車両における制動又はステアリング・システムを制御するためのプロセッサなど、自動車分野で使用するために設計された処理システムに有用であり得る。機能安全を与えるための1つの技法は、エラーを検出するために結果が比較され得るように、冗長処理要素が、1次((primary)“プライマリ”ともいう)処理要素によって実行されているのと同じ処理ワークロードを複製し得る、ロック・モードを与えることであり得る。
【0003】
処理要素のクラスタ(たとえば中央処理ユニット(CPU)のクラスタ)を設計するとき、処理要素がどのように使用されるかについてのフレキシビリティを与えるためにスプリット・ロック構成が採用され得る。次いで、処理要素がそれら自体のタスクを実行することを可能にする、処理要素が真に独立し得るスプリット・モードにおいて、又は冗長処理要素が1次処理要素と同じタスクを実行している上述のロック・モード(ロックステップ・モードと呼ばれることもある)において、クラスタを動作させるべきかどうかに関する決定が(たとえば積分時間において)行われ得る。
【0004】
プロセッサ・クラスタが、スプリット・ロック設計に従って構築され、次いで、ターゲット・アプリケーションに応じて、スプリットのみのクラスタ又はロックステップのみのクラスタのいずれかに変えられる、「1シリコン複数使用(one silicon multiple use)」モデルを有することは、シリコン・プロバイダにとって成長しつつあるトレンドである。これがしばしば該当するのは、個々の処理要素が、たとえばキャッシュ構造又は密結合メモリ(スクラッチパッド・メモリとも呼ばれる)を実装するために、処理要素自体のローカル・ストレージ・リソース(たとえばランダム・アクセス・メモリ(RAM:random access memory)構造)を与えられるような設計である。これらのローカル・ストレージ・リソースは、スプリット・モード(各処理要素がそれ自体のローカル・ストレージ・リソースを単独で使用することができる)で動作しているとき、効率的に利用され得るが、ロック・モードで動作しているとき、1次処理要素及び冗長処理要素は、同じワークロードを実行しており、同じローカル・ストレージ・リソースを共有する。これは、一般に、ロック・モードにあるとき、1次処理要素のローカル・ストレージ・リソースは使用されるが、冗長処理要素のローカル・ストレージ・リソースは使用されないことを意味する。
【発明の概要】
【課題を解決するための手段】
【0005】
少なくともいくつかの実例は、
処理要素が独立処理ワークロードを処理するように構成されるスプリット・モードと、処理要素が、少なくとも1つの1次処理要素及び少なくとも1つの冗長処理要素を備え、各冗長処理要素が、1次処理要素によって実行される1次処理ワークロードの正当性を検査するための冗長処理ワークロードを実行するように構成されるロック・モードとを有し、
各処理要素が、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリを有する、
処理要素のクラスタと、
ロック・モード中に、少なくとも1つの1次処理要素が、少なくとも1つの冗長処理要素に関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするように構成されたローカル・メモリ・アクセス制御機構と
を備える装置を提供する。
【0006】
少なくともいくつかの実例は、
処理要素のクラスタを備えるデータ処理装置を動作させるための方法であって、
クラスタをスプリット・モードで動作させるとき、クラスタの処理要素上で独立処理ワークロードを処理することと、
クラスタをロック・モードで動作させるとき、少なくとも1つの1次処理要素及び少なくとも1つの冗長処理要素を備えるように処理要素を構成し、少なくとも1つの1次処理要素上で1次処理ワークロードを実行し、少なくとも1つの冗長処理要素上で、1次処理要素によって実行される1次処理ワークロードの正当性を検査するための冗長処理ワークロードを実行することと、
各処理要素に、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリを与えることと、
ロック・モード中に、ついに1つの1次処理要素が、少なくとも1つの冗長処理要素に関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするために、ローカル・メモリ・アクセス制御機構を採用することと
を含む、データ処理装置を動作させるための方法を提供する。
【0007】
他の実例によれば、
処理手段のクラスタであって、処理手段が独立処理ワークロードを処理するように構成されるスプリット・モードと、処理手段が少なくとも1つの1次処理手段及び少なくとも1つの冗長処理手段を備え、1次処理手段によって実行される1次処理ワークロードの正当性を検査するための冗長処理ワークロードを実行するための各冗長処理手段、ロック・モードとを有し、
各処理手段が、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリ手段を有する、処理手段のクラスタと、
ロック・モード中に、ついに1つの1次処理手段が少なくとも1つの冗長処理手段に関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするためのローカル・メモリ・アクセス制御手段と
を備える装置が提供される。
【0008】
本技法のさらなる態様、特徴及び利点は、添付の図面とともに読まれるべき、実例の以下の説明から明らかになろう。
【0009】
本技法について、添付の図面に示されているその実例に関して、単に例として、さらに説明する。
【図面の簡単な説明】
【0010】
【
図1】例示的な実装形態による、処理クラスタを概略的に示す図である。
【
図2A】例示的な実装形態による、スプリット・モードで動作しているときの
図1の処理クラスタを概略的に示す図である。
【
図2B】例示的な実装形態による、ロック・モードで動作しているときの
図1の処理クラスタを概略的に示す図である。
【
図3】代替の例示的な実装形態に従って動作する処理クラスタを概略的に示す図である。
【
図4A】例示的な実装形態による、スプリット・モードで動作しているときの
図3の処理クラスタを概略的に示す図である。
【
図4B】例示的な実装形態による、ロック・モードで動作しているときの
図3の処理クラスタを概略的に示す図である。
【
図5】1つの例示的な実装形態による、処理クラスタがロック・モードで動作しているときに、密結合メモリ(TCM)にアクセスするための方法におけるステップを示す流れ図である。
【
図6】1つの例示的な実装形態において採用されるチャネルベース・アクセス機構による、処理クラスタがロック・モードで動作しているときに、TCMにアクセスするための方法におけるステップを示す流れ図である。
【
図7】1つの例示的な実装形態による、TCMアクセス要求のチャネルを決定するための方法におけるステップを示す流れ図である。
【
図8】別の例示的な実装形態による、TCMアクセス要求のチャネルを決定するための方法におけるステップを示す流れ図である。
【発明を実施するための形態】
【0011】
以下でいくつかの具体的な実例について説明する。本発明はこれらの実例に限定されないことが諒解されよう。
【0012】
前に説明したように、いくつかのシステムは、処理要素のクラスタがアプリケーションに応じてスプリット・モード又はロック・モードで動作させられ得る、スプリット・ロック構成を与え得る。スプリット・モードでは、各プロセッサは独立したワークロードを実行するが、ロック・モードでは、プロセッサのうちの1つが1次プロセッサとして働き、少なくとも1つが冗長プロセッサとして働く。ロック・モードでは、両方のプロセッサが、1次プロセッサの演算の正当性を検査するために使用されている冗長プロセッサによって生成される情報(たとえば演算の結果)を用いて、1次処理ワークロードを実行する。
【0013】
クラスタ中の各プロセッサは、関連付けられたローカル・メモリを与えられ得る。1つの例示的な実装形態では、この関連付けられたローカル・メモリは、スクラッチパッド・メモリとも呼ばれる、密結合メモリ(TCM)である。TCMは、一般に、アクセス時間を改善するために関連付けられたプロセッサの近くに与えられ、関連付けられたプロセッサによって発行されたアクセス要求によってアドレス指定可能なメモリ・アドレス空間内のメモリ・ロケーションを与える。それ自体のアドレス空間を有するメモリはゴールデン・メモリと呼ばれることがあり、したがって、TCMはゴールデン・メモリの一形態であることが理解されよう。ゴールデン・メモリはキャッシュではなく、メイン・メモリ中に保持されるデータのコピーを記憶しないが、代わりに、メイン・メモリにアクセスするときに使用されるアドレスとは別個のメモリ・アドレス空間内のアドレスのそれ自体の領域を割り振られる。スプリット・モードでは、各コアは、それ自体のTCMを利用することが可能である。いくつかのシステムにおいて、ロック・モードで動作しているとき、1次プロセッサと冗長プロセッサの両方は同じワークロードを実行し、そのワークロードは1次プロセッサのメモリ・アドレス空間内で動作する。結果として、1次プロセッサのTCMのみが(任意のメイン・メモリ・リソースに加えて)使用するために利用可能であり、冗長プロセッサのTCMは使用されない。本技術は、ロック・モードのときに1次処理コア及び冗長処理コアに関連付けられた両方のTCMがアクセスされ得る方法を与える。本明細書で与えられる実例はTCMに焦点を当てるが、本明細書で説明する技法は、ローカル・キャッシュなど、他のローカル・ストレージ・デバイスに関連して使用されるように適応され得、したがって、ロック・モードのときに有効なキャッシュ容量を増加させることが可能になる。
【0014】
以下の実例では、ロック・モードで動作している処理クラスタは1次処理要素と冗長処理要素とを含む。しかしながら、本技法は、2つ以上の1次処理要素及び/又は2つ以上の冗長処理要素をもつ処理クラスタに適用され得ることが諒解されよう。
【0015】
本技術の装置は、処理要素が独立処理ワークロードを処理するように構成されたスプリット・モードを有する、処理要素のクラスタを含む。スプリット・モードでは、そうでなければコア又は単にプロセッサと呼ばれることがある処理要素は、異なる命令シーケンスを実行し、それら自体の定義されたメモリ・アドレス空間にアクセスすることができる。それらの個々のメモリ・アドレス空間は、それらのローカルTCMにマッピングする領域を含むことができる。
【0016】
ロック・モードでは、処理要素は、少なくとも1つの1次処理要素及び少なくとも1つの冗長処理要素を備える。各冗長処理要素は、1次処理要素によって実行される1次処理ワークロードの正当性を検査するために冗長処理ワークロードを実行するように構成される。ワークロードに応じて、スプリット・モードで動作するか又はロック・モードで動作するかに関する決定が行われ得る。たとえば、正確さのために処理の速度が犠牲にされ得るとき、エラーの確率を最小にするために、安全重視のワークロードがロック・モードで実行され得る。これらは、たとえば、ハード回路障害、素粒子衝突又は電磁放射によるエラー原因であることがある。反対に、重要でない処理の場合には、エラーが許容され得るスプリット・モードが、ワークロードをより速く処理するために採用され得る。
【0017】
各処理要素は、複数のメモリ・ロケーションを備える関連付けられたローカル・メモリを有し得る。このローカル・メモリは、密結合メモリ(TCM)、又は処理要素に対してローカルな任意の他のメモリであり得、たとえば、ランダム・アクセス・メモリ(RAM)として構築され得る。
【0018】
本技法によれば、ロック・モード中に、少なくとも1つの1次処理要素が、少なくとも1つの冗長処理要素に関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを可能にするように構成されたローカル・メモリ・アクセス制御機構が与えられる。すなわち、ロック・モード中に、1次処理要素は、メイン・メモリ・ロケーションと、1次プロセッサのTCMに関連付けられたローカル・メモリ・ロケーションと、冗長プロセッサのTCMに関連付けられたローカル・メモリ・ロケーションとにアクセスする能力を有する。結果として、ロック・モードを実行しているときに、1次処理要素にアクセス可能なアドレス空間内に冗長プロセッサのTCMを組み込むことによって、有効なローカル・メモリ容量が増加させられる。
【0019】
本技法の少なくとも1つの実例では、ロック・モード中に、1次処理ワークロードを実行するときに1次処理要素によって発行されたメモリ・アクセス要求に応答して、メモリへのアクセスが実行される。冗長処理ワークロードを実行するときに冗長処理要素によって発行された対応するメモリ・アクセス要求は、メモリへのアクセスを引き起こすことを防止される。ロック・モードで動作しているとき、冗長プロセッサは、1次プロセッサによって実行される処理が正当であることを検査するために使用される。したがって、メモリ・アクセスが実行されるとき、1次プロセッサからの要求が適切なメモリに伝搬され、アクセスが実行される。これは読取り又は書込みアクセスであり得る。冗長処理要素は、エラーが起こらないとき、冗長処理要素は同じ命令を処理しているので、対応する要求を発行する。この要求は、両方のプロセッサが同じメモリ・ロケーションへの同じ種類のアクセスを試みていることの検査として、1次処理要素からの対応する要求と比較される。冗長プロセッサからの要求は、これは同じメモリ・ロケーションに同時にアクセスするための2つの要求につながるので、メモリに伝搬されない。むしろ、1次プロセッサからの要求は、メモリ・ロケーションへのアクセスを伝搬し、完了することが可能にされ、アクセスの結果は1次プロセッサと冗長プロセッサの両方に伝搬される。ロック・モード中に、冗長処理要素によって発行された対応するメモリ・アクセス要求は、したがって、1次処理ワークロードの正当性を検査するために使用され得る。
【0020】
ロック・モード中、少なくとも1つの冗長処理要素に関連付けられたローカル・メモリのメモリ・ロケーションの少なくともサブセットが、1次処理要素によって使用するための許容できるメモリ・アドレスを識別するメモリ・アドレス空間内に含まれる。すなわち、ロック・モードで動作しているとき、1次処理ワークロードを実行しているときに、1次処理要素に関連付けられたローカル・メモリと冗長処理要素の両方を1次処理要素にアクセス可能にするメモリ・マップが与えられる。
【0021】
少なくともいくつかの実例では、ローカル・メモリ・アクセス制御機構は、クラスタ中の各処理要素に関連付けられたローカル・メモリ・アクセス制御ユニットを備える。制御ユニットは、その処理要素の関連付けられたローカル・メモリへのアクセスを制御する。また、1次処理要素に関連付けられたローカル・メモリ・アクセス制御ユニットの出力を、冗長処理要素に関連付けられたローカル・メモリの入力に結合するために、相互接続信号経路が与えられ得る。これは、ロック・モード中に、1次処理要素に関連付けられたメモリ・アクセス制御ユニットが、少なくとも1つの1次処理要素によって発行されたメモリ・アクセス要求が、冗長処理要素に関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを求めていることを検出すると、冗長処理要素に関連付けられたローカル・メモリにアクセスするために相互接続信号経路を採用するように構成され得ることを意味する。制御ユニットは、したがって、1次プロセッサによって発行されたアクセス要求を、専用信号経路を介して冗長プロセッサのローカル・メモリにルーティングすることが可能である。
【0022】
ロック・モード中に、1次処理要素によって発行されたメモリ・アクセス要求の結果として生成された結果が、少なくとも1つの1次処理要素と少なくとも1つの冗長処理要素の両方に伝搬される。これにより、メモリ・アクセスの結果が同じになり、冗長プロセッサと1次プロセッサの両方に与えられることが保証される。この結果はさらなる処理動作において使用され得、したがって、冗長プロセッサと1次プロセッサの両方に同じ情報が与えられることが、エラー検査の比較のために重要である。読取り要求の場合、結果は、ローカル・メモリから読み取られた値であり得る。書込み要求の場合、結果は、単に、書込み動作が完了したことの確認であり得る。
【0023】
少なくともいくつかの実例では、1次処理要素は、メモリ・アクセス要求を発行するための1次要求チャネルと2次((secondary)“セカンダリ”ともいう)要求チャネルとを有する。ロック・モード中に、1次処理要素は、自身の関連付けられたローカル・メモリ内のメモリ・ロケーションへのアクセスが必要とされることを決定したことに応答して、そのメモリ・ロケーションを識別する1次要求チャネル上でメモリ・アクセス要求を発行するように構成される。すなわち、1次処理要素に関連付けられたローカル・メモリにおいてターゲットにされるメモリ要求は、1次要求チャネルを介して発行される。
【0024】
少なくとも1つの1次処理要素はさらに、少なくとも1つの冗長処理要素に関連付けられたローカル・メモリ内のメモリ・ロケーションへのアクセスが必要とされることを決定したことに応答して、そのメモリ・ロケーションを識別する2次要求チャネル上でメモリ・アクセス要求を発行するように構成される。したがって、メモリ・アクセス要求が、冗長処理要素に関連付けられたローカル・メモリをターゲットにしている場合、メモリ・アクセス要求は2次チャネルを介して発行される。
【0025】
処理要素の各々は、例示的な一実装形態では同等に構築され得、したがって、ロック・モードで冗長処理要素として使用される処理要素も1次要求チャネルと2次要求チャネルとを有し得ることに留意されたい。
【0026】
前に述べた相互接続信号経路を採用する実装形態では、次いでロック・モード中に、1次処理要素に関連付けられたローカル・メモリ・アクセス制御ユニットは、2次要求チャネルを介してメモリ・アクセス要求の受信を検出すると、冗長処理要素に関連付けられたローカル・メモリにアクセスするために相互接続信号経路を採用するように構成され得る。これは、アクセスの意図された宛先の明示的決定がローカル・メモリ・アクセス制御ユニットによって行われる必要がなく(その決定は1次処理要素によってすでに行われている)、ローカル・メモリ・アクセス制御ユニットは、要求がそれを介して受信されたチャネルに応じて、要求を宛先ローカル・メモリに正しくルーティングすることが可能であることを意味する。
【0027】
代替実装形態では、処理要素は、アクセス要求をそれらの関連付けられたローカル・メモリ・アクセス制御ユニットに直接発行しないことがある。代わりに、処理クラスタは、クラスタのローカル・メモリに関連付けられた共通アクセス・ポートをさらに備え得、共通アクセス・ポートは、メモリ・アクセス要求をローカル・メモリに伝搬するための1次要求チャネルと2次要求チャネルとを有する。ロック・モード中に、1次処理要素は、1次処理ワークロードを実行するときに共通アクセス・ポートを介してメモリ・アクセス要求を発行するように構成され得る。これは、メモリ・アクセス要求が1次処理要素の関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを求めていることを決定したことに応答して、共通アクセス・ポートは、1次要求チャネル上でメモリ・アクセス要求を伝搬するように構成されることを意味する。反対に、共通アクセス・ポートは、メモリ・アクセス要求が少なくとも1つの冗長処理要素に関連付けられたローカル・メモリ内のメモリ・ロケーションにアクセスすることを求めていることを決定したことに応答して、2次要求チャネル上でメモリ・アクセス要求を伝搬するように構成される。そのような手法によって、1次処理要素が、どのローカル・メモリがアクセスされることを求めているかを解明する必要がもはやなくなり、代わりに、そのタスクが共通アクセス・ポートに移譲され、したがって1次処理要素の動作の効率が改善され得る。
【0028】
共通アクセス・ポートは、共通アクセス・ポートが、要求がどのローカル・メモリをターゲットにしているかを決定することを可能にする、決定論理及び又はメモリ・マップへのアクセスを有し得る。要求が1次処理要素のローカル・メモリをターゲットにしている場合、要求は1次チャネルを介して適切なローカル・メモリに向けて伝搬される。同様に、要求が冗長処理要素のローカル・メモリをターゲットにしていることが決定された場合、要求は2次要求チャネルを介して伝搬される。1次処理要素がこの決定を行った前の実例と同様に、これは、メモリ・アクセス制御ユニットは、アクセスの宛先に関するアクティブな決定を行う必要がなく、むしろ、それは、要求が受信されるチャネルから推論されることを意味する。
【0029】
上記で説明した共通アクセス・ポートを採用する少なくとも1つの実例では、クラスタは依然として、各処理要素に関連付けられたローカル・メモリ・アクセス制御ユニットと、1次処理要素に関連付けられたローカル・メモリ・アクセス制御ユニットの出力を、冗長処理要素に関連付けられたローカル・メモリの入力に結合する相互接続信号経路とを含む。ロック・モード中に、少なくとも1つの1次処理要素に関連付けられたメモリ・アクセス制御ユニットは、2次要求チャネル上で共通アクセス・ポートを介して発行されたメモリ・アクセス要求の受信を検出すると、少なくとも1つの冗長処理要素に関連付けられたローカル・メモリにアクセスするために相互接続信号経路を採用するように構成され得る。
【0030】
いくつかの実例では、ローカル・メモリの各々は関連付けられたプライベート・アクセス・ポートを有し、各プライベート・アクセス・ポートは、1次要求チャネルと2次要求チャネルの両方に結合される。共通アクセス・ポートは、次いで、1次処理要素のプライベート・アクセス・ポートと冗長処理要素のプライベート・アクセス・ポートの両方に、選択されたチャネル上でメモリ・アクセス要求をブロードキャストするように構成される。このようにして、ローカル・アクセス制御ユニットの両方は、アクセスが冗長処理要素又は1次処理要素に関連付けられたローカル・メモリにおいてターゲットにされるか否かにかかわらず、適切なチャネル上で、プライベート・アクセス・ポートを介して要求を受信する。これは、この例示的な実装形態では、ローカル・アクセス制御ユニットは、それらの関連付けられた処理要素から直接要求を受信していないという事実にもかかわらず、適切な検査が依然として実行され得ることを保証することによって、1次処理ワークロードの正当性を検査することを支援する。
【0031】
例示的な一実装形態では、共通アクセス・ポートは、処理要素のクラスタの外部のデバイスによるローカル・メモリへのアクセスを与えるように構成され得る。したがって、処理クラスタの外側の別のデバイスは、共通アクセス・ポートを介して処理要素に関連付けられたローカル・メモリにアクセスすることが可能であり得る。たとえば、始動中に、関連付けられたプロセッサによる使用のためのTCMの初期状態を定義するために、命令及び/又はデータがそのような外部デバイスによってTCM中にロードされ得る。データは、この処理中に、メイン・メモリからローカル・メモリに移動され得るが、前に説明したように、TCMは、メイン・メモリに関連付けられたアドレスとは別個のメモリ・アドレス空間中にそれ自体のアドレス範囲を有するので、データは、その場合、それ自体の別個のアドレス空間中に存在する(すなわち、そのようなデータは、単にメイン・メモリ中のキャッシュされたデータのコピーではなく、代わりにTCM中にロードされた後は、メイン・メモリ中のデータとはまったく別個に処理される)。
【0032】
各ローカル・メモリは、関連付けられた処理要素により実行するための命令を記憶するために使用され得る。一実例では、したがって、ローカル・メモリは、メイン・メモリ・アドレス空間とは別個のそれ自体のアドレス空間をもつ、命令TCMの形態を取り得る。そのようなローカル命令メモリの形態は、命令キャッシュも与えられるか否かとは無関係に存在し得、命令キャッシュが与えられる場合、それはローカル命令TCMに対して別個に与えられる。
【0033】
ローカル・メモリは、代替的に、又は追加的に、命令を実行するときに関連付けられた処理要素によって操作されるデータを記憶するために使用され得る。本発明による、データをローカル・メモリに記憶させることは、データがメイン・メモリに記憶されるデータよりも迅速に容易に取出し可能であることを意味し得る。ローカル・メモリに記憶されるデータは、たとえば、定期的にアクセスされる必要がある値であり得る。したがって、一実例では、ローカル・メモリはデータTCMであり得、上記で説明した命令TCMと同様に、与えられる任意のデータ・キャッシュに別個の構造として与えられ得る(キャッシュとは異なり、データTCMは、メイン・メモリ中のデータのコピーをキャッシュするのではなく、代わりにメイン・メモリに関連付けられたアドレスの範囲とは別個のメモリ・アドレス空間中にアドレスのそれ自体の範囲を有する)。
【0034】
比較回路は、ロック・モード中に、1次処理要素によって発行されたメモリ・アクセス要求を、1次処理ワークロードの正当性を確立するために冗長処理によって発行された対応するメモリ・アクセス要求と比較するために採用され得る。ロック・モードで動作しているとき、両方の処理要素は、同じタイミングで同じワークロードを処理するように構成され得る。したがって、エラーが発生していないことを検査するために、生成されたメモリ・アクセス要求を含む、2つの処理要素の出力間で比較が行われる。これは、1次処理要素によって発行されたメモリ・アクセス要求のタイプ(読取り/書込み)及びターゲット・アドレスが、冗長処理要素によって発行された対応する要求と同じであることを検査するために与えられる、簡単な比較器を含むことができる。
【0035】
比較回路が、1次処理要素によって発行されたメモリ・アクセス要求と冗長処理要素によって発行された対応するメモリ要求との間の不整合を検出したとき、比較回路は、エラー信号を発行するように構成され得る。エラー信号は、たとえばアクセスの発生を防ぐために、すぐにアサートされ得るか、又は、代わりに、エラーのログを形成するために使用され得るが、1次処理要素によって発行された要求に従って、メモリ要求が伝搬することを可能にされ、メモリ・アクセスが完了する。
【0036】
次に、図を参照しながら特定の実例について説明する。
【0037】
図1は、例示的な一実装形態による処理クラスタの実例を概略的に示す。処理クラスタ1は、コア0 200とコア0’ 400とを含む処理コアを含む。各コア200、400は、処理要素201、401(処理パイプラインとも呼ばれる)と、TCMラッパー210、410の内側の関連付けられた密結合メモリ(TCM)212、412とを含む。処理パイプライン201、401は、直接TCMラッパー210、410にTCM212、412にアクセスするための要求を発行し得る。TCMコントローラ211、411は、次いで、処理パイプライン201、401からの要求のパフォーマンスを管理する。通信の2つのチャネル(本明細書ではp(1次)チャネル及びr(冗長)チャネルと呼ぶことがある)が、図に示されているように、それらの構成要素間の各方向の矢印のペアによって示されるように、処理パイプラインと関連付けられたTCMラッパーとの間に与えられる。
【0038】
以下の説明では、コア0’ 400を、コア0’ 400がコア0から独立したワークロードを処理しているときにスプリット・モードで動作しているときにコア1と呼ぶこともある。ロック・モードで動作しているときは、コア0’ 400を、冗長ワークロードを処理しているときにコア0’と呼ぶことがあり、それはコア0の別のインスタンスと考えられ得る。
【0039】
図2Aは、例示的な一実装形態による、スプリット・モードで動作しているときの
図1の処理クラスタを概略的に示す。点線は、スプリット・モードで使用されない機能を示す。スプリット・モードでは、処理パイプライン201、401の各々は、それら自体の処理ワークロードを単独で実行するように動作することができ、対応するTCMラッパー210、410にTCMアクセス要求を発行し得、これは、要求がPチャネルを介して発行されることを示す実線の下向き矢印によって図に示されている。適切なTCMコントローラ211、411は、次いで、Req-Pチャネルを介して要求を同じコアのTCM212、412に伝搬する。アクセスはTCM212、412において完了され、結果は、Resp-応答チャネルによって示されるように、TCMコントローラ211、411に伝搬される。この応答は、次いで、各TCMラッパー210、410と関連付けられたパイプライン201、401との間の実線の上向き矢印によって示されているように、TCMコントローラ211、411から処理パイプライン201、401に伝搬される。この方式では、コア200、400間の相互接続経路は使用されないことに留意されたい。コア0’ 400のマルチプレクサ414及び416は、スプリット・モード中に1次チャネル上で受信された要求(及び対応する応答)をコア0’ 400のTCM412(及びTCMコントローラ411)にルーティングする。ロック・モードでは、冗長チャネル上で受信された要求(及び応答)はコア0’ 400のTCM412(及びTCMコントローラ411)にルーティングされる。
【0040】
図2Bは、例示的な一実装形態による、ロック・モードで動作しているときの
図1の処理クラスタを概略的に示す。処理パイプライン201をもつコア200と処理パイプライン401をもつ400の両方は、ロック・モードで動作しているときに同じワークロードを処理し、コア0 200は1次コアとして働き、コア0’ 400は冗長コアとして働く。処理パイプライン201、401によって発行された要求は、それのターゲット・アドレスがコア0 200のTCM212であるかコア0’ 400のTCM412であるかに応じて、チャネルを介して伝搬される。したがって、2つのチャネルがパイプライン201、401からTCMラッパー210、410への下向き矢印として示されている。要求は、次いで、コア0 200のTCM212をターゲットにする要求のためのReq-Pチャネル上のTCMコントローラ211と、コア0’ 400のTCM412をターゲットにする要求のためのReq-Rチャネル上のTCMコントローラ411とから伝搬される。
【0041】
Req-Pチャネル上のコア0 200のTCMコントローラ211から発行された要求は、比較器300によって、Req-Pチャネル上のコア0’ 411のTCMコントローラからの対応する要求と比較される。しかしながら、コア0’からの要求はそれ以上伝搬されない。代わりに、コア0 200のTCMコントローラ211からの要求が、(それがReq-Pチャネル上にあると仮定して)コア0 200のTCM212に伝搬される。要求に対する応答は、TCM212からTCMコントローラ211、411の両方に送られ、そこでPチャネル入力において受信される。コントローラは、次いで、この場合も、応答がコア0 200のTCM212から来たことを示すためにpチャネルを利用して、その結果を各自のパイプライン201、401に転送して戻す。
【0042】
Req-Rチャネル上でコア0 200のTCMコントローラ211から発行された要求は、比較器310によって、コア0’ 400のTCMコントローラ411からの対応する要求と比較される。コア0 200からの要求は、2つのコアの間を通る相互接続信号経路305を組み込んだReq-Rチャネルを介してコア0’ 400(冗長コア)のTCM412に伝搬され、アクセスはTCM412において完了する。応答は、コア0 200のTCMコントローラ211とコア0’ 400のTCMコントローラ411とに伝搬され、そこでr-チャネル入力において受信される。結果は、次いで、この場合も、コア0’ 400のTCM412から応答が来たことを示すためにrチャネルを利用して、TCMラッパー210、410から各自のパイプライン201、401に転送されて戻される。
【0043】
ロック・モード中に、冗長処理パイプライン401によって発行された要求がターゲットTCM212、412に伝搬することが可能にされないことは、図及びそれの説明から明らかである。代わりに、それらは、1次処理パイプライン201によって発行された要求と比較するために使用される。結果は、両方のパイプライン201、401に同じ結果が与えられることを保証するように、両方のコア200、400に伝搬される。
【0044】
この構成では、処理パイプラインは、メイン・メモリのためのアドレス範囲だけでなく、各TCMのための別個のアドレス範囲をも含むメモリ・マップを有することが諒解されよう。各処理パイプラインは、次いで、アクセス要求を生成するときに、TCMがアクセスされているかどうかを、したがって、要求が、関連付けられたTCMラッパーに発行されるべきであるかどうかを決定することができる。さらに、各処理パイプラインは、どのTCMがターゲット・メモリ・アドレスを含んでいるかを決定すること、したがって、どのチャネル上で要求を出力するか(すなわち、ターゲットにされているTCMに対応するチャネル)を決定することができる。
【0045】
図3は、アクセス要求がTCMへのアクセスである場合でも、各パイプラインは、システム相互接続を介してアクセス要求を発行するように構成される(
図1、
図2A及び
図2Bの例示的な実装形態では、パイプラインは、アクセスがメイン・メモリへのアクセスであった場合は、それのみを行ない得、前に説明したように、アクセスがTCMアクセスであった場合は、要求をそれのローカルTCMラッパーに直接ルーティングする)、代替の例示的な実装形態による処理クラスタ・システムの実例を概略的に示す。処理クラスタ1は、上記の
図1に関して説明した要素と同様の要素を含んでいる。さらに、共有されたスレーブ・ポート2、4に要求をルーティングすることができるシステム相互接続3が与えられる。共有されたスレーブ・ポート4は、ロック・モードのとき、共有されたスレーブ・ポート2によって実行される演算の検査を可能にするための冗長のために与えられる。共有されたスレーブ・ポート2から、要求がプライベート・スレーブ・ポート220を介してコア0 200に伝搬され、プライベート・スレーブ・ポート420を介してコア0’に伝搬され得る。
【0046】
図4Aは、例示的な実装形態による、スプリット・モードで動作しているときの
図3の処理クラスタ・システムを概略的に示す。処理パイプライン201、401は、スプリット・モードで動作しているとき、独立したワークロードを処理する。メイン・メモリとTCM212、412の両方へのアクセスは処理パイプラインによってシステム相互接続3に発行される。システム相互接続3は、要求のターゲット・アドレスがメイン・メモリ中にあるか、TCM212、412のうちの1つにあるかを決定することが可能である。TCMにアクセスするための要求は、TCM212 412のうちのどちらがターゲットにされているかを決定することが可能である、共有されたスレーブ・ポート2にルーティングされる。コア0 200のTCM212のための要求は、Req-Pチャネルを介して、コア0 200に関連付けられたプライベート・スレーブ・ポート220にルーティングされ、TCMコントローラ211は、次いで、前に
図2Aで説明したのと同様に、TCM212へのアクセスを制御し、この要求からの結果はPチャネルを介してTCMラッパー210からパイプライン201に伝搬される。
【0047】
コア0’ 400に関連付けられたTCM412をターゲットにした要求は、共有されたスレーブ・ポート2によって、Req-P-コア1チャネルを介して、コア0’ 400に関連付けられたプライベート・スレーブ・ポート420にルーティングされる。スレーブ・ポート420は、要求をTCMラッパー410に転送し、そこで要求はサービスされ、結果がパイプライン401に伝搬されて戻され、TCMラッパー410は前に
図2Aで説明したように動作する。したがって、
図2Aの実例のように、各処理パイプライン201、401は、それのそれぞれのTCM212、412にアクセスすることができる。
【0048】
図4Bは、例示的な実装形態による、ロック・モードで動作しているときの
図3の処理クラスタ・システムを概略的に示す。ロック・モードでは、コア0 200は1次プロセッサとして働き、コア0’ 400は冗長プロセッサとして働く。コア0’ 400の冗長パイプライン401からの要求はシステム相互接続3に発行されず、代わりに、それらは、不一致の場合にエラーがシグナリングされ得るように、比較器320によってコア0 200の1次処理パイプライン201からの対応する要求と比較される。1次処理パイプライン201からのこの要求は、要求がメイン・メモリをターゲットにしているのか、TCMをターゲットにしているのかを決定することが可能である、システム相互接続3によって受信される。後者が当てはまる場合、要求は、共有されたスレーブ・ポート2と共有されたスレーブ・ポート4の両方に伝搬される。これらの共有されたスレーブ・ポートは、要求がTCMのうちのどれをターゲットにしているかを単独で決定し、適切なチャネル上で要求を送る。TCM212のための要求は、共有されたスレーブ・ポート2、4の各々からReq-Pチャネルによって伝搬される。これらは、不一致の場合にエラーがシグナリングされ得るように、比較器330によって比較され、共有されたスレーブ・ポート2からの要求は、Pチャネルを介して、コア200のスレーブ・ポート220とコア400のスレーブ・ポート420の両方に伝搬される。要求は、次いで、Pチャネルを介して、TCMコントローラ211、411に伝搬され、そこでそれらは、次いで、
図2Bを参照しながら上記で説明したのと同様に処理される。
【0049】
同様に、TCM412のための要求は、スレーブ・ポート2、4の各々からReq-Rチャネルを介して伝搬される。共有されたスレーブ・ポート’4からの要求は、比較器340によって、共有されたスレーブ・ポート2からの要求と比較され、スレーブ共有されたスレーブ・ポート2からの要求は、r-チャネル上でプライベート・スレーブ・ポート220とプライベート・スレーブ・ポート420の両方に伝搬される。要求は、次いで、r-チャネルを介して、TCMコントローラ211、411に伝搬され、そこでそれらは、次いで、
図2Bを参照しながら上記で説明したのと同様に処理される。
【0050】
両方の共有されたスレーブ・ポート2、4を使用するプロセス、及び比較器330、340を使用した比較は、どのTCMがアクセスされているかに関する決定が正しく実行されたことと、各スレーブ・ポート2、4によって生成された要求コンテンツが同等であることとを保証する。前の例示的な実装形態と同様に、冗長プロセッサの要求は、1次処理ワークロードの正当性を決定するために使用され、TCM自体には伝搬されない。
【0051】
図2Bを参照しながら説明した手法ではなく、
図4Bを参照しながら説明したような手法を使用することによって、どのTCMがアクセスされているのかをパイプラインが解明する必要がもはやなくなり、代わりに、そのタスクは、共有されたスレーブ・ポート2、4(本明細書で共通アクセス・ポートとも呼ぶ)に移譲され、したがってパイプラインの動作の効率が改善され得る。
【0052】
図5は、1つの例示的な実装形態による、処理クラスタをロック・モードで動作しているときにTCMにアクセスするための方法におけるステップを示す流れ図を示す。ステップS101において、メモリ・アクセスはTCMコントローラによって受信され、次いで、ステップS102において、メモリ・アクセス要求がどのTCMをターゲットにしているのかに関する決定が行われる。TCMはステップS103においてアクセスされるが、メモリ要求が冗長プロセッサから来た場合、それは、メモリ・アクセスを実際に実行しているときに使用される1次プロセッサからの対応する要求であり得る。次いで、メモリ・アクセスの結果がステップS104において受信され、これは、たとえば、読取り要求、又は書込み要求が行われたことの確認によってアクセスされる値であり得る。ステップS105において、結果は1次パイプラインと冗長処理パイプラインの両方に伝搬される。
【0053】
図6は、前に説明した別個のチャネルを利用する1つの特定の例示的な実装形態による、処理クラスタがロック・モードで動作しているときにTCMにアクセスするための方法におけるステップを示す流れ図を示す。ステップS201において、メモリ要求は2つのチャネルのうちの1つで受信される。ステップS202において、要求が2つのチャネルのうちのどちらの上で受信されたかに関する決定が行われる。Pチャネル上で受信された場合、アクセスは1次プロセッサのTCMをターゲットにしていると決定され、このTCMはステップS203aにおいてアクセスされる。要求がRチャネル上で受信された場合、アクセスは冗長プロセッサに関連付けられたTCMをターゲットにしていると決定され、このTCMはステップS203bにおいてアクセスされる。どちらの場合にも、ステップS204においてメモリ・アクセスの結果が受信され、S205において1次プロセッサと冗長プロセッサとに伝搬される。
【0054】
図7は、決定が処理パイプラインによって行われる1つの例示的な実装形態による、TCMアクセス要求のチャネルを決定するための方法におけるステップを示す流れ図を示す。ステップS301において、処理パイプラインは、メモリ・アクセスを含む命令を実行する。ステップS302において、これはがTCMアクセスであるか否かが決定される。それがTCMアクセスでない場合、ステップS303において、ターゲットがメイン・メモリ中にあることが仮定され、要求は通常のメイン・メモリ・アクセス・プロトコルの通りに進行することが可能になる。ステップS302において、それがTCMアクセスであると決定された場合、ステップS304において、要求のアドレスが1次TCMに関連付けられているかどうかに関する別の決定が行われる。アドレスが1次TCMに関連付けられている場合、ステップS305において、要求はPチャネルを介して発行され、メモリ・アクセスは
図5又は
図6のうちの1つについて説明した方法の通りに継続する。ステップS304において、アドレスが1次TCMに関連付けられていない場合、それはステップS306において冗長TCMに関連付けられていると仮定される。要求は、次いで、ステップS307において、Rチャネルを介して発行され、プロセスは、この場合も前に説明した方法のうちの1つに進む。
【0055】
図8は、別の例示的な実装形態による、TCMのチャネルを決定するための方法におけるステップを示す流れ図を示し、決定は共有されたスレーブ・ポートによって行われる。ステップS410において、処理パイプラインは、ステップS402においてシステム相互接続によって受信されるメモリ・アクセス要求を発行する。システム相互接続は、ステップS403において、要求がTCMアクセスであるかどうかを決定する。要求がTCM要求でない場合、要求はステップS404において「通常の」メイン・メモリ要求として処理される。要求がTCM要求である場合、ステップS405において、要求は共有されたスレーブ・ポートに伝搬される。ステップS406において、共有されたスレーブ・ポートは、要求が1次コアのTCMに関連付けられたアドレスをターゲットにしているかどうかを決定する。要求が1次コアのTCMに関連付けられたアドレスをターゲットにしている場合、ステップS407において、要求は、Pチャネル上の冗長コアと1次コアの両方のプライベート・スレーブ・ポートに発行され、方法は、次いで、
図5及び
図6において説明した例示的な実装形態のうちの1つに進む。ステップS406において、アドレス空間が1次TCMに関連付けられていないと決定された場合、ステップS408において、アドレス空間は冗長TCMに関連付けられていると仮定される。ステップS409において、要求は、したがって、プライベート・スレーブ・ポートを介してRチャネルの1次コアと冗長コアの両方に伝搬され、方法は、次いで、
図5及び
図6において説明した例示的な実装形態のうちの1つに進む。
【0056】
本明細書で説明する技法を使用することによって、処理クラスタのスプリット・ロック構成が採用され得るが、ロック・モードで冗長コアとして使用されるコアのローカル・メモリ・リソースが使用されなくなることはない。したがって、設計の効率が改善され得る。特に、ロック・モードのとき、一般にロック・モードでは利用不可能であろうメモリ・リソースの使用を促進することによって、設計にさらなるメモリを加えることなしに、ローカル・メモリの容量が著しく増加し得る。
【0057】
本出願では、「~に構成された」という単語は、装置の要素が、定義された動作を実行することが可能な構成を有することを意味するために使用される。このコンテキストにおいて、「構成」は、ハードウェア又はソフトウェアの相互接続の配置又は様式を意味する。たとえば、装置は、定義された動作を与える専用のハードウェアを有し得るか、又はプロセッサ若しくは他の処理デバイスが機能を実行するようにプログラムされ得る。「~に構成された」は、定義された動作を与えるために装置要素が何らかの方法で変更される必要があることを暗示しない。
【0058】
添付の図面を参照しながら、本明細書で本発明の例示的な実装形態について詳細に説明したが、本発明は、それらの正確な例示的な実装形態に限定されないこと、並びに様々な変更及び改変が、添付の特許請求の範囲によって定義されているように、本発明の範囲及び趣旨から逸脱することなく、当業者によってその中で実施され得ることを理解されたい。