(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-19
(45)【発行日】2024-06-27
(54)【発明の名称】レジスタデータの消去
(51)【国際特許分類】
G06F 9/30 20180101AFI20240620BHJP
【FI】
G06F9/30 350A
(21)【出願番号】P 2023502592
(86)(22)【出願日】2021-07-14
(86)【国際出願番号】 EP2021069660
(87)【国際公開番号】W WO2022013315
(87)【国際公開日】2022-01-20
【審査請求日】2023-03-10
(32)【優先日】2020-07-14
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】518371892
【氏名又は名称】グラフコアー リミテッド
【氏名又は名称原語表記】Graphcore Limited
【住所又は居所原語表記】11-19 Wine Street,Bristol,BS1 2PH,United Kingdom
(74)【代理人】
【識別番号】100169904
【氏名又は名称】村井 康司
(74)【代理人】
【識別番号】100221372
【氏名又は名称】岡崎 信治
(72)【発明者】
【氏名】ジョナサン ルイス ファーガソン
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2019-028695(JP,A)
【文献】特開平05-324597(JP,A)
【文献】米国特許第05533185(US,A)
【文献】特開平07-219680(JP,A)
【文献】特開平11-249895(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/30-9/355
(57)【特許請求の範囲】
【請求項1】
処理ユニットの外部のホストコンピュータと通信している処理ユニットを含むコンピュータシステムであって、レジスタファイルを有する前記処理ユニットは、
それぞれが、書き込み許可信号を受信するように構成されている書き込み許可入力と、前記処理ユニットの書き込みデータ経路に接続され、前記書き込み許可信号をアサートする場合にレジスタにおける記憶用の前記書き込みデータ経路からデータ値を書き込むように構成されている書き込みデータ入力とを有する複数のレジスタと、
通常動作モードで、複数のレジスタのうち1つのレジスタの前記書き込み許可信号をアサートし、動作データ値を前記書き込みデータ経路から前記レジスタに書き込むように構成されている書き込み回路と、
前記レジスタファイルにおける全レジスタの前記書き込み許可信号を同時にアサートし、除去データ値を前記書き込みデータ経路から全レジスタに同時に書き込むようにするデータ除去モードを制御するように構成されているデータ除去回路と、
を含み、
前記ホストは、除去データ値を保持するように構成され、前記除去データ値にデータ除去モード信号を供給するように構成されている記憶装置を含み、前記処理ユニットは、前記除去データ値を受信し、次に、前記書き込みデータ経路に適用し、前記データ除去モード信号を使用して全レジスタ上の前記書き込み許可信号を同時にアサートするように構成されている、
コンピュータシステム。
【請求項2】
前記記憶装置は、システムオンチップレジスタを含む、請求項1に記載のコンピュータシステム。
【請求項3】
前記処理ユニットは、コンピュータ命令を実行するように構成されている実行ユニットを含み、前記通常動作モードで、前記書き込み許可信号は、前記実行ユニットによって実行されるコンピュータ実行可能命令によって供給されている、請求項1に記載の
コンピュータシステム。
【請求項4】
前記処理ユニットは、前記書き込み許可信号を生成する前記コンピュータ実行可能命令によって示されるアドレスを復号するように構成されている、請求項
3に記載の
コンピュータシステム。
【請求項5】
前記動作データ値は、前記実行ユニットによって実行される前記コンピュータ実行可能命令によって示されている、請求項
3又は4に記載の
コンピュータシステム。
【請求項6】
前記処理ユニットは、前記処理ユニットの外部のホストコンピュータと通信するように構成されているポートを含む、請求項1~
5のいずれか一項に記載の
コンピュータシステム。
【請求項7】
前記処理ユニットは、前記書き込み許可信号を生成する前記コンピュータ実行可能命令によって示されるアドレスを復号するように構成されている、請求項
3~5のいずれかに記載の
コンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プロセッサにおけるレジスタからのデータの消去に関する。
【背景技術】
【0002】
複雑な又は大量の用途の処理データのコンテキストで、ワークアクセラレータは、特定のデータの処理をホストシステムから解放するサブシステムであってもよい。このようなワークアクセラレータは、特定のタイプの処理を実行する専用ハードウェアを有してもよい。このようなワークアクセラレータの特徴は、高い作業量で動作する、即ち、高出力及び速いクロック速度で大量のデータを処理するように構成されていることである。
【0003】
このようなワークアクセラレータを、いわゆる「機密計算」シナリオに適用してもよい。即ち、ワークアクセラレータにホストからの作業負荷を与えてもよく、その作業負荷は、極秘又は機密データを含んでもよい。このような異なる作業負荷に対してワークアクセラレータを再利用できることが望ましい。特定のシナリオで、例えば、これらの作業負荷が同じエンティティによって所有されていない場合、新しい作業負荷をアクセラレータに与える前に、全機密データをアクセラレータから消去する必要がある。
【0004】
アクセラレータは、1つ又は複数のプロセッサを含んでもよい。データは、プロセッサ内メモリ及び/又はレジスタに保持される。レジスタは、プロセッサが動作中でありながら、通常一時的にデータを保持するように構成されている書き込み可能記憶装置である。いわゆるレジスタファイルは、多数のレジスタを含む。レジスタファイルを、主メモリよりもプロセッサの処理ユニットの近くに物理的に設置し、その処理ユニットに密接に結合することができる。データを主メモリに書き込むことができる場合よりも速く、データをレジスタファイルに書き込むことができる。同様に、データを主メモリから呼び戻すことができる場合よりも速く、データを、処理ユニット用にレジスタファイルから呼び戻すことができる。
【0005】
レジスタファイルを使用して、任意の種類のデータを記憶することができる。これは、処理ユニットへの入力命令が与えられるオペランド、主メモリから呼び戻されるオペランド、処理ユニットにおける命令によって与えられるアドレス、主メモリから呼び戻されるアドレス及びポインターなどを含むことができる。主メモリに記憶可能な任意のデータを、レジスタファイルに記憶してもよい。幾つかのプロセッサは、特定の動作に専用のレジスタファイルを有する。例えば、マルチスレッド処理ユニットのコンテキストで、動作の各スレッドは、レジスタファイルに記憶されるコンテキストを有してもよい。
【0006】
機密計算シナリオにおいて、次の作業負荷がプロセッサに与えられる前に一時的に記憶されていた任意のデータを、主メモリだけでなくレジスタファイルからも除去する必要がある。このために、レジスタは、リセット入力を含む。動作のリセット段階で、レジスタのリセット入力を起動させ、(例えば、全0又は全1などの所定値にデータを書き込むことによって)レジスタにおけるデータを除去する。
【発明の概要】
【課題を解決するための手段】
【0007】
本開示によれば、レジスタにこのようなリセット入力を有しないレジスタファイルを提供する。このようなリセット入力を必要としないにもかかわらず、レジスタファイルに記憶されている任意のデータを確実に除去するレジスタファイルにおけるデータを除去する方法について説明する。
【0008】
データ除去動作は、機密計算用途に重要であるが、レジスタファイルにおける各レジスタの物理的構成でリセット入力を提供すると、レジスタは、より複雑になる。このようなリセット入力を有しないレジスタを提供できることで、より単純でより小さいシリコン設置面積を占めるレジスタを構成することができる。
【0009】
本開示の1つの態様は、レジスタファイルを有する処理ユニットであって、
それぞれが、書き込み許可信号を受信するように構成されている書き込み許可入力と、処理ユニットの書き込みデータ経路に接続され、書き込み許可信号をアサートする場合にレジスタにおける記憶用の書き込みデータ経路からデータ値を書き込むように構成されている書き込みデータ入力とを有する複数のレジスタと、
通常動作モードで、複数のレジスタのうち1つのレジスタの書き込み許可信号をアサートし、動作データ値を書き込みデータ経路からそのレジスタに書き込むように構成されている書き込み回路と、
レジスタファイルにおける全レジスタの書き込み許可信号を同時にアサートし、除去データ値を書き込みデータ経路から全レジスタに同時に書き込むようにするデータ除去モードを制御するように構成されているデータ除去回路と、
を含む処理ユニットを提供する。
【0010】
幾つかの実施形態において、処理ユニットは、コンピュータ命令を実行するように構成されている実行ユニットを含み、通常動作モードで、書き込み許可信号は、実行ユニットによって実行されるコンピュータ実行可能命令によって供給されている。
【0011】
処理ユニットは、書き込み許可信号を生成するコンピュータ実行可能命令によって示されるアドレスを復号するように構成されていてもよい。
【0012】
動作データ値は、実行ユニットによって実行されるコンピュータ実行可能命令によって示されていてもよい。
【0013】
幾つかの実施形態において、処理ユニットは、処理ユニットの外部のホストコンピュータと通信するように構成されているポートを含む。
【0014】
処理ユニットは、ポートに接続されているホストコンピュータからデータ除去値を受信し、データ除去値を書き込みデータ経路に適用するように構成されていてもよい。
【0015】
幾つかの実施形態において、処理ユニットは、ポートを介してホストコンピュータからデータ除去モード信号を受信するように構成されており、データ除去モード信号は、全レジスタ上の書き込み許可信号を同時にアサートする。
【0016】
本開示の別の態様は、処理ユニットの外部のホストコンピュータと通信している処理ユニットを含むコンピュータシステムであって、レジスタファイルを有する処理ユニットは、
それぞれが、書き込み許可信号を受信するように構成されている書き込み許可入力と、処理ユニットの書き込みデータ経路に接続され、書き込み許可信号をアサートする場合にレジスタにおける記憶用の書き込みデータ経路からデータ値を書き込むように構成されている書き込みデータ入力とを有する複数のレジスタと、
通常動作モードで、複数のレジスタのうち1つのレジスタの書き込み許可信号をアサートし、動作データ値を書き込みデータ経路からそのレジスタに書き込むように構成されている書き込み回路と、
レジスタファイルにおける全レジスタの書き込み許可信号を同時にアサートし、除去データ値を書き込みデータ経路から全レジスタに同時に書き込むようにするデータ除去モードを制御するように構成されているデータ除去回路と、
を含み、
ホストは、除去データ値を保持するように構成され、除去データ値にデータ除去モード信号を供給するように構成されている記憶装置を含み、処理ユニットは、除去データ値を受信し、次に、書き込みデータ経路に適用し、データ除去モード信号を使用して全レジスタ上の書き込み許可信号を同時にアサートするように構成されている、
コンピュータシステムを提供する。
【0017】
記憶装置は、システムオンチップレジスタを含んでもよい。
【0018】
本開示の別の態様は、ホストに接続されるプロセッサのレジスタファイルにおけるデータを除去する方法であって、
データ除去モードで、
ホストからデータ除去モード信号及び除去データ値をプロセッサで受信するステップと、
複数のレジスタの各々の書き込みデータ入力に接続される書き込みデータ経路にホストから受信される除去データ値を適用するステップと、
を含み、
データ除去モード信号は、レジスタファイルにおける全レジスタの書き込み許可信号を同時にアサートし、除去データ値を書き込みデータ経路から全レジスタに同時に書き込むようにする、
方法を提供する。
【0019】
通常動作モードで、方法は、複数のレジスタのうち1つのレジスタの書き込み許可信号をアサートし、動作データ値を書き込みデータ経路からそのレジスタに書き込むようにするステップを含んでもよい。
【0020】
幾つかの実施形態において、方法は、通常動作モードで書き込み許可信号を生成するプロセッサによって実行されるべきコンピュータ実行可能命令によって示されるアドレスを復号するステップを含み、動作データ値を、プロセッサによって実行されるコンピュータ実行可能命令によって示されている。
【0021】
プロセッサによってコンピュータ実行可能命令の実行を制御するクロックから供給されるクロック信号の制御下で、書き込み許可信号を同時にアサートしてもよい。
【0022】
本発明のより良い理解のために、及び本発明を実行に移し得る方法を示すために、ここで、一例として下記の図面について説明する。
【図面の簡単な説明】
【0023】
【
図1】リセット入力を有するレジスタの概略図である。
【
図2】リセット入力を有しないレジスタを含むレジスタファイルの概略図である。
【
図4】処理ユニット内の処理パイプライン及びレジスタファイルの概略ブロック図である。
【
図5】ホストに接続された多数の処理ユニットを含むプロセッサの概略ブロック図である。
【発明を実施するための形態】
【0024】
本開示によれば、リセット入力を有しないレジスタを含むレジスタファイルを提供する。これにより、リセット入力を有するレジスタよりも速い動作を行うことができるより少ないフリップフロップ又はラッチからレジスタを構成することができる。更に、このようなリセット入力を必要とせずにファイルされたレジスタに記憶されたデータを除去する技法について説明する。
【0025】
図1は、既存のレジスタ構成を簡略に示す。レジスタRiは、データをレジスタに書き込む復号書き込みアドレスを受信するように構成されている書き込み許可入力40を含む。レジスタファイルは、多数のこのようなレジスタを含んでもよく、これらのレジスタのうち1つだけが、データをレジスタに書き込むことができる任意の時に使用可能となる書き込み許可入力40を有する。レジスタに書き込まれるべきデータを、書き込みデータバス42に供給する。書き込みデータバスの幅は、アーキテクチャによって異なるが、例えば、32ビット幅とできる。その特定のレジスタに対して書き込み許可入力40を有効とする場合、書き込みデータバス42上のデータを、書き込みデータ入力44上のレジスタファイルに書き込む。レジスタは、1つ又は複数のデータ読み取りポート46を有してもよい。例えば、出力トライステートバッファーを介して、データをそのポートから読み取ってもよい。レジスタRiに関連するトライステートバッファー48は、起動される場合、データを読み取りポート46から読み取りデータバス50に転送することができる制御入力を有する。
図1に示す既知のレジスタファイル構成は、レジスタファイルの各レジスタに対してリセット入力52を含む。リセット入力の目的は、例えば、新しい動作を開始する、又はプロセッサが新しい作業負荷を受信するために、任意のデータを除去する必要がある場合、レジスタファイルに記憶されている任意のデータをリセットすることである。これは、機密計算用途のコンテキストで特に有用である。
【0026】
ここで、個々のレジスタがリセット入力を有しないレジスタファイルの1つの例を示す
図2について説明する。このようなレジスタファイルを、適切なライブラリからアクセスされるセルで形成してもよい。
【0027】
図2は、多数のこのようなレジスタR0・・・Rmを含むレジスタファイルの例を示す。各レジスタは、書き込みデータポート40
0・・・44m及び読み取りデータポート46
0・・・46mを有する。実際に、1以上の読み取りデータポートがあってもよいことに留意されたい。どのレジスタデータが読み取りデータバス50で読み取られるべきかを判定する復号読み取りアドレスを受信する論理回路48に、各レジスタを関連付ける。データを、書き込みデータバス42から書き込む。通常動作で、これは、データを
図1のレジスタに書き込む方法と同様である。即ち、各レジスタは、使用可能とされた場合、書き込みデータバス上のデータをそのレジスタに書き込むようにする書き込み許可入力40
0・・・40mを有する。書き込みロジック180から供給される書き込みアドレスによって、書き込み入力を選択的に可能にする。読み取りアドレスを、読み取り復号ロジック182から供給する。分かりやすくするために、読み取り復号ロジックと論理回路48との間の接続を
図2に示していないことに留意せよ。
【0028】
各レジスタはリセット入力を有しないので、例えば、機密計算用途のコンテキストで、処理を異なる作業負荷のために使用すべきである場合、レジスタからデータを除去するように異なる技法に要求する。これは、レジスタの全書き込み許可入力40
0・・・40
mを同時に有効とする信号を使用することによって達成される。この信号は、例えば、処理ユニットの動作を制御しているクロック信号のエッジであってもよい。
図2は、立ち上がり及び立ち下がりエッジを有するクロック信号43を供給するクロック3を例示する。幾つかの実施形態において、クロック3は、後述のように、他の機能も制御する。クロック信号43を、スイッチ回路47の一方の入力に供給し、スイッチ回路47は、書き込みロジック180から書き込みアドレスを他方の入力で受信する。制御値45を、後述のように、レジスタ位置に設定する。シングルビットであってもよい制御値45は、スイッチ回路47の動作を制御する。制御値を設定する場合、スイッチ回路47は、クロック信号43を各レジスタの書き込み許可入力40
0・・・40
mに接続し、全レジスタが、書き込みデータバス42からデータを読み込むようにする。任意の除去データを、書き込みデータバスに置くことができる。例えば、全0又は全1を、書き込みデータバスに供給し、全レジスタに既存のデータを上書きすることができる。リセットでレジスタに書き込まれた値は、実装詳細であり、チップをシリコンに形成する前に、変更可能である。シリコンチップで一度、値を固定してもよい。
【0029】
図3は、本開示の実施形態による処理ユニットの例を示す。幾つかの実施形態において、処理ユニットは、後述のように、マルチタイルプロセッサのタイルを含んでもよい。幾つかの実施形態において、各タイルは、実行の多数のスレッドを処理する処理パイプラインを含む。本明細書に記載のレジスタ除去技法を、この環境に限定せず、単一スレッド実行環境でも利用できることに留意されたい。
図3の例のタイルにおいて、共用処理実行パイプラインを介して、多数の命令スレッドをインタリーブする。パイプラインの動作を、クロック3によって制御する。タイルは、複数のスレッドの異なるセットの状態を表すように各々配置されている複数のコンテキスト26と、複数のスレッドに共通の共用命令メモリ12と、複数のスレッドに更に共通の共用データメモリ22と、複数のスレッドに再度共通の共用処理パイプライン14、16、18と、インタリーブ方法で共用パイプラインを介して実行用の複数のスレッドをスケジュールするスレッドスケジューラとを含む。
【0030】
スレッドスケジューラ24は、一連のタイムスロットS0・・・S5のシーケンスによって図面に概略的に表されているが、実際には、タイムスロットに関してスレッドのプログラムカウンターを管理するハードウェア機構である。実行パイプラインは、取り出し段階14、復号段階16、及び実行段階18を含む。各コンテキスト26は、各スレッドのプログラム状態を表すレジスタR0・・・Rmの各セットを含む。これらのレジスタを、本明細書に記載のように、実装及び制御してもよい。
【0031】
図4は、レジスタ(レジスタファイル)の各セットと処理パイプラインとの関係を示す。処理パイプラインの実行段階18は、異なる実行演算(例えば、数学演算及び累算演算)を実行する多数の部分段階を含んでもよい。実行段階における最終段階は、ロードストア段階であってもよい。このロードストア段階は、レジスタファイルの書き込みアドレス入力を制御する書き込みロジック180を含む。ロードストアユニット184は、書き込みデータバス42に書き込まれるべきデータをレジスタファイルに供給することができる。パイプラインにおける他の段階(例えば、実行パイプラインにおける演算ユニット)は、値をレジスタファイルに書き込むこともできる。
【0032】
処理ユニットの通常動作において、コンピュータ実行可能命令を、取り出し段階14によって命令メモリ12から取り出し、復号段階16に供給する。通常パイプライン動作によれば、復号段階16が前の取り出し命令を復号している間に、取り出し段階は、次の命令を取り出していてもよい。本開示の態様を、処理パイプラインのコンテキストで、又はパイプライン処理を使用しない処理ユニットで利用することができることが分かる。
【0033】
復号段階16は、レジスタファイルに事前記憶されているデータにアクセスする復号命令に示す読み取りアドレスを復号することができる読み取り復号ロジック182を含む。このようなデータを、読み取りデータポート46から実行パイプラインの実行段階18にレジスタファイルから読み取ってもよい。実行段階は、復号命令に定義の動作に従ってレジスタファイルから読み取られたデータで動作する。更に、復号段階16は、必要な動作を抽出する命令を復号する役割を果たす。実行段階の各段階は、レジスタファイルから読み取られたデータで異なる動作を実行することができる。実行段階18の最終段階で、ロードストアユニット184は、レジスタファイルに戻って記憶される状態にある処理パイプラインで実行されている動作の結果を保持する。このために、ロードストアユニット184を書き込みデータバス42に接続する。書き込みデータバスに関する情報を、通常動作で適切な書き込みアドレスによって選択されるレジスタにだけ書き込むことに留意されたい。書き込みロジック180は、通常動作でロードストアユニットからのデータ値によって書き込まれるべき適切なレジスタを選択するように、レジスタファイルの書き込みアドレス入力を制御する。書き込みロジックは、他のパイプライン段階に存在し、同様の機能を実行してもよいことに留意されたい。書き込みアドレスは、コンピュータ命令において示される。書き込みアドレスを、復号段階で識別してもよい。例えば、命令は、動作データ値(実行される命令の結果)を書き込むことができる宛先レジスタを定義してもよい。代わりに、このような宛先レジスタは、命令において暗示されていてもよい。例えば、命令における特定のコードは、特定のレジスタ番号を常に暗示することを意味することができる。別の明示において、命令の動作の一部は、宛先レジスタとしての機能を果たすレジスタを示すメモリアドレスにアクセスすべきであってもよい。これは、レジスタファイルをそれ自体利用する必要がある多段命令であることに留意されたい。いかなる場合でも、命令の動作から生じる動作データ値を記憶するように要求されるレジスタは、通常動作モードで処理パイプラインによって実行されるコンピュータ命令において示される。
【0034】
データ除去動作モードについて説明する。このデータ除去動作モードで、レジスタファイルは、異なる方法で動作するように構成されている。データ除去動作モードで、レジスタファイルの全レジスタは、書き込みデータ経路からデータを受信することができる。即ち、書き込みアドレスポートでアサートされる書き込み許可信号は、全レジスタを同時に起動させて、書き込みデータ経路に置かれる除去データ値を受信する。
図5は、ホスト5に接続された多数の処理ユニットを含むプロセッサの例を示す。ホスト5は、データ除去モードをトリガすべきであると判定する。例えば、異なる作業負荷を受信するためにプロセッサをリセットすべきである場合、データ除去モードをトリガできる。異なる用途又は異なる所有者に対してプロセッサからデータを完全に除去して再度目的を持たすべきである場合、データ除去モードをトリガしてもよい。データ除去モードをトリガできる多くの理由があり、上述の例は網羅的でない。
【0035】
ホスト5がデータ除去モードをトリガする場合、ホスト5は、データ除去値を処理ユニットに供給する。ホストは、プロセッサをリセットするリセットレジスタ49に書き込む。レジスタファイル除去がクロック3の次の立ち上がりクロックエッジで発生するようにする制御値45を設定する。
【0036】
制御値は、通常のアドレス復号ロジック180を無効にし、クロック信号43を通過させるためにスイッチ回路47を切り換えることによって書き込みデータを取ることをレジスタファイルの全レジスタバンクに強制する。
【0037】
例えば、後述及び
図5の例に示すように、ホストに接続されたプロセッサの入力ポート8aを利用して、リセットを実施してもよい。処理ユニット又は各処理ユニットに内部記憶されるデータ除去値を、書き込みデータ経路に置く。
【0038】
ホスト5は、処理ユニット又は各処理ユニットで受信され、書き込み許可信号をレジスタファイルの全レジスタの書き込みアドレス入力に同時にアサートするデータ除去モード信号を更に供給する。これは、書き込みデータバス上の除去データ値をレジスタファイルの全レジスタに同時に書き込む効果を有する。
【0039】
除去データ値を、処理ユニット又は各処理ユニットにおけるシステムオンチップレジスタに保持してもよい。例えば、シリコンチップを製造する場合、除去データ値を記憶してもよい。代わりに、除去データ値を、ホストによって提供することができ、又は、新しいプログラムをプロセッサにロードする場合、再プログラムすることができる。
【0040】
プロセッサは多数の処理ユニットを含むが、全処理ユニットを一緒にリセットする。幾つかの実施形態において、ホストからのデータ除去モード信号を1つ又は複数の処理ユニットのグループだけに経路設定することによって、ホストによってリセットされるべき処理ユニットのうち1つ又は複数の処理ユニットを選択することができる。
【0041】
データ除去値は、任意の適切な無意味な値であってもよい。例えば、データ除去値は、全0又は全1又はランダム値とできる。
【0042】
1つの特定のワークアクセラレータの詳細を、コンテキストによって以下に与える。しかし、本明細書に記載の技法を、レジスタファイルを除去する必要がある任意の状況で利用することができることが容易に分かる。
【0043】
1つのこのような専用ワークアクセラレータは、Graphcoreによって開発され、例えば、米国特許出願第16/389682号明細書及び同第15/886131号明細書に記載のいわゆるインテリジェンス処理ユニット(IPU)である。これらの出願の内容を、参照により引用したものとする。このアーキテクチャにおいて、複数の処理ユニットを、チップ上の各列に配置する。プロセッサは、いわゆる時間決定論的方法で送信及び受信処理ユニットの間でメッセージを交換する交換構造体を有する。即ち、送信及び受信処理ユニットの物理的位置に基づいて送信処理ユニットから受信処理ユニットにメッセージを伝送する固定伝送時間がある。
【0044】
列(及び列内の処理ユニット)を、固定伝送時間が交換構造体に対する処理回路の距離に依存するように、交換構造体に対して配置する。
図5は、単一チッププロセッサ2のアーキテクチャの例を概略的に示す。コンピュータを形成するチップ上のリンクを用いて、多数の単一チッププロセッサを一緒に接続することができる。更に、後述のように、チップからホストへのリンクを介して、単一チッププロセッサをホストに接続することができる。プロセッサ2は、タイルと呼ばれる多数の処理ユニットを含む。1つの例において、チップ上の各配列に編成された1216個のタイルがある。本明細書に記載の概念は、多くの異なる物理的アーキテクチャにまで及ぶことが分かり、理解を助けるために1つの例をここに挙げる。チップ2は、2つのチップからホストへのリンク8a、8b、及び4つのチップ間のリンク30a、30bを有する。
図5の例において、双方向リンク31上のチップからホストへのリンク8a、8bに接続されたホスト5を示す。チップ2は、作業をホスト5から受信する。本明細書に記載の単一チッププロセッサ2、又はホストアプリケーションからの作業負荷に応じた多数の相互接続単一チッププロセッサ2のグループとして設計されたアクセラレータでホスト5は動作することができることに留意されたい。
図5を簡略化するために、ここで、ホストを単一チップ2に接続すると仮定する。チップ2は、チップ活動のタイミングを制御するクロック3を有する。分かりやすくするために、接続を全図面に示さないが、クロックをチップ回路及び構成要素の全部に接続する。チップ2は、データをチップタイルの間で交換することができる交換構造体又は相互接続部34を含む。交換は、データを伝送し、チップを断続的に、例えば、ホストに及びホストからの信号を制御することもできる。データ除去モードを始動させるリセット信号を、交換体34を介して経路設定してもよい。しかし、リセット信号は、専用信号であり、交換体上のデータから離れた経路をたどる。リセット信号を、チップの周囲に設置可能なリセットレジスタ49に接続する。ホストは、ソフトウェアを実行して、リセットレジスタ49に書き込み、周囲のリンク上でPCIeコマンドを介して制御値45を設定してもよい。
【0045】
特定の実施形態が説明されたが、開示された技法の他の用途及び変形は、本明細書の開示を与えられれば、当業者に明らかになるであろう。本開示の範囲は、記載の実施形態によって限定されず、添付の特許請求の範囲によってだけ限定される。