(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-29
(45)【発行日】2022-10-07
(54)【発明の名称】アクセストリガ型コンピュータアーキテクチャのための誤り訂正およびパイプライン化技法を使用するためのシステムおよび方法
(51)【国際特許分類】
G06F 9/318 20060101AFI20220930BHJP
【FI】
G06F9/318 C
【外国語出願】
(21)【出願番号】P 2018093548
(22)【出願日】2018-05-15
【審査請求日】2021-05-07
(32)【優先日】2017-08-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500575824
【氏名又は名称】ハネウェル・インターナショナル・インコーポレーテッド
【氏名又は名称原語表記】Honeywell International Inc.
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100162846
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】トム・クレイダー
(72)【発明者】
【氏名】ジョン・ダグラス・ギルレス
(72)【発明者】
【氏名】ギャリー・ワーニカ
(72)【発明者】
【氏名】ポール・ディー.・カマン
(72)【発明者】
【氏名】ヴィンス・ジェイ.・ガヴァガン・ザ・フォース
(72)【発明者】
【氏名】ロナルド・イー.・ストロング
【審査官】田中 幸雄
(56)【参考文献】
【文献】米国特許第5617570(US,A)
【文献】国際公開第2015/019421(WO,A1)
【文献】欧州特許出願公開第2947566(EP,A1)
【文献】特開2002-333978(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/318
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法であって、
実行時間に従って前記アクセストリガ型アーキテクチャの典型的な動作を実行するステップであって、前記典型的な動作は、
データセットおよび命令セットを取得することであって、前記命令セットが、ソースポインタと宛先ポインタとからなる現在の命令を含む、複数の命令を含む、取得することと、
前記ソースポインタによって示された第1のシステムメモリロケーションから前記データセットを取り出すこと、
動作に関連付けられた機能ブロックの第2のシステムメモリロケーションに前記データセットを再配置することであって、前記第2のシステムメモリロケーションが、前記命令に基づいて、前記第2の
システムメモリロケーションに関連付けられた前記動作の実行をトリガするために、前記宛先ポインタによって示され、前記機能ブロックが、トリガされたときに前記動作を実行するように構成され、前記機能ブロックは、前記第2のシステムメモリロケーションにおいてデータが受信されるたびにトリガされる、再配置すること、
結果を生成するために、前記データセットを使用して、前記第2のシステムメモリロケーションにおいて前記機能ブロックによって前記動作を実施すること、および
前記第2のシステムメモリロケーションに前記生成された結果を返すことであって、前記機能ブロックが、前記生成された結果を含む修正されたデータセットを生成するために前記データセットを使用して前記動作を実施する、返すこと
によって、前記機能ブロックに前記データセットを送信するために前記命令セットを使用することと
を含む、実行するステップと、
低減された実行時間を作成するために、前記典型的な動作の前記実行時間を低減するための前記典型的な動作のパイプラインを作成するステップと、
前記パイプラインを使用して、前記低減された実行時間に従って前記典型的な動作を実行するステップと、
前記アクセストリガ型アーキテクチャによる実行のための拡張された動作を生成するために、前記典型的な動作中に誤り訂正を実施するステップと、
変更された低減された実行時間を作成するために、前記拡張された動作の第2の実行時間を低減するための前記拡張された動作の変更されたパイプラインを作成するステップと、
前記変更されたパイプラインを使用して、前記変更された低減された実行時間に従って、前記拡張された動作を実行するステップと
を含む、方法。
【請求項2】
前記実行時間に従って前記典型的な動作を実行するステップが、
第1のクロックサイクルおよび第2のクロックサイクル中に前記命令セットを読み取るステップと、
第3のクロックサイクル中に、前記命令セットに基づいて前記データセットを読み取るステップと、
第4のクロックサイクル中に、前記命令セットに基づいて前記データセットを書き込むステップと
をさらに含み、
前記低減された実行時間に従って前記典型的な動作を実行するステップが、
同時に、パイプライン化された第1のクロックサイクル中に、前記命令セットの現在の部分と前記命令セットの前の読取りによって示されたデータとを読み取るステップと、
同時に、
パイプライン化された第2のクロックサイクル中に、前記命令セットの前記現在の部分を読み取り、前記命令セットの前記前の読取りによって示された前記データを書き込むステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記パイプラインを使用して、前記低減された実行時間に従って前記典型的な動作を実行するステップが、
前記パイプライン化された第1のクロックサイクル中に、
前記命令セットの前記現在の部分を読み取るために第1のデータバスを使用することと、
前記命令セットの前記前の読取りによって示された前記データを読み取るために第2のデータバスを使用することと、
前記パイプライン化された第2のクロックサイクル中に、
前記命令セットの前記現在の部分を読み取るために前記第1のデータバスを使用することと、
前記命令セットの前記前の読取りによって示された前記データを書き込むために前記第2のデータバスを使用することと
をさらに含む、請求項2に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、2014年5月20日に出願された、米国特許出願第14/282,912号の一部継続出願である。
【0002】
[0002]本明細書で説明される主題の実施形態は、一般にコンピュータアーキテクチャシステムに関する。より詳細には、主題の実施形態は、アクセストリガ型(access triggered)コンピュータアーキテクチャシステムの実装および使用に関する。
【背景技術】
【0003】
[0003]汎用プロセッサは、時間制約型動作に依拠するアプリケーションの実行中に高い失敗率を経験する。一例として、エンジンコントローラを構築するとき、時間制約型ファクタに基づく特殊な考慮事項がある。たとえば、バルブは、ピストンとの衝突を回避するために極めて正確な時間に動くことを必要とされる。ここで、汎用プロセッサアーキテクチャは、最も有利な実装形態を提供しないであろう。
【発明の概要】
【発明が解決しようとする課題】
【0004】
[0004]したがって、時間が重要な関心事であるアプリケーションのために、時間に敏感なコンピューティングアーキテクチャとそれの使用のための方法とを提供することが望ましい。さらに、添付の図面ならびに上記の技術分野および背景技術とともに、後続の発明を実施するための形態および添付の特許請求の範囲を読めば、他の望ましい特徴および特性が明らかになろう。
【課題を解決するための手段】
【0005】
[0005]本開示のいくつかの実施形態は、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法を提供する。本方法は、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行し、典型的な動作は、データセットおよび命令セットを取得することと、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用することとを含み、機能ブロックは、修正されたデータセットを生成するためにデータセットを使用して動作を実施する。本方法は、さらに、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行する。
【0006】
[0006]本開示のいくつかの実施形態は、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するためのシステムを提供する。本システムは、複数のシステムメモリロケーションを含むシステムメモリ要素と、システムメモリ要素に通信可能に結合された少なくとも1つのプロセッサとを含み、少なくとも1つのプロセッサは、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行するように構成され、典型的な動作は、データセットおよび命令セットを取得することと、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用することとを含み、機能ブロックは、修正されたデータセットを生成するためにデータセットを使用して動作を実施する。少なくとも1つのプロセッサは、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成することと、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行することとを行うようにさらに構成される。
【0007】
[0007]本開示のいくつかの実施形態は、プロセッサによって実行されたとき、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法を実施する、命令を含んでいる非一時的、コンピュータ可読媒体を提供する。上記方法は、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行し、典型的な動作は、データセットおよび命令セットを取得することであって、命令セットが、ソースポインタと宛先ポインタとからなる現在の命令を含む、複数の命令を含む、取得することと、ソースポインタによって示された第1のシステムメモリロケーションからデータセットを取り出すこと、動作に関連付けられた機能ブロックの第2のシステムメモリロケーションにデータセットを再配置することであって、第2のシステムメモリロケーションが、命令に基づいて、第2のメモリロケーションに関連付けられた動作の実行をトリガするために、宛先ポインタによって示され、機能ブロックが、トリガされたときに動作を実行するように構成され、機能ブロックは、第2のシステムメモリロケーションにおいてデータが受信されるたびにトリガされる、再配置すること、結果を生成するために、データセットを使用して、第2のシステムメモリロケーションにおいて機能ブロックによって動作を実施すること、および、第2のシステムメモリロケーションに生成された結果を返すことであって、機能ブロックが、生成された結果を含む修正されたデータセットを生成するためにデータセットを使用して動作を実施する、返すことによって、機能ブロックにデータセットを送信するために命令セットを使用することとを含む。上記方法は、さらに、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行する。
【0008】
[0008]本発明の概要は、発明を実施するための形態において以下でさらに説明される概念の選択を簡略化された形で紹介するために与えられる。本発明の概要は、請求される主題の主要な特徴または本質的な特徴を識別するものではなく、請求される主題の範囲を決定する際の補助として使用されるものでもない。
【0009】
[0009]主題のより完全な理解は、以下の図に関連して検討されると、発明を実施するための形態および特許請求の範囲を参照することによって得られ得、図全体にわたって、同様の参照番号は同様の要素を指す。
【図面の簡単な説明】
【0010】
【
図1】[0010]いくつかの実施形態による、アクセストリガ型アーキテクチャシステムの概略ブロック図表示である。
【
図2】[0011]アクセストリガ型アーキテクチャを使用するアプリケーションを初期化するためのプロセスの一実施形態を示すフローチャートである。
【
図3】[0012]アクセストリガ型アーキテクチャを使用するアプリケーションを用いてデータを操作するためのプロセスの一実施形態を示すフローチャートである。
【
図4】[0013]いくつかの実施形態による、単一の動作を含む機能ブロックにアクセスするように構成された、システムメモリのサブセットの図表示である。
【
図5】[0014]いくつかの実施形態による、第2の命令セットを含む機能ブロックにアクセスするように構成された、システムメモリのサブセットの図表示である。
【
図6】[0015]アクセストリガ型アーキテクチャを使用するためのプロセスの一実施形態を示すフローチャートである。
【
図7】[0016]開示される実施形態による、パイプライン化および誤り訂正技法を使用するアクセストリガ型アーキテクチャシステムの概略ブロック図表示である。
【
図8】[0017]開示される実施形態による、アクセストリガ型アーキテクチャによって実行される典型的な動作の図表示である。
【
図9】[0018]開示される実施形態による、連続的に実行される複数の典型的な動作の図表示である。
【
図10】[0019]開示される実施形態による、連続的に実行される複数の拡張された動作の図表示である。
【
図11】[0020]開示される実施形態による、パイプライン構造を使用して実行される拡張された動作の図表示である。
【
図12】[0021]開示される実施形態による、パイプライン構造および命令メモリ誤り訂正を使用して実行される複数の拡張された動作の図表示である。
【
図13】[0022]誤り訂正なしにパイプライン構造を使用して実行される複数の典型的な動作の図表示である。
【
図14】[0023]開示される実施形態による、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するためのプロセスの一実施形態を示すフローチャートである。
【
図15】[0024]開示される実施形態による、アクセストリガ型アーキテクチャの典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【
図16】[0025]開示される実施形態による、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用するためのプロセスの一実施形態を示すフローチャートである。
【
図17】[0026]開示される実施形態による、実行時間に従って典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【
図18】[0027]開示される実施形態による、低減された実行時間に従って典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【
図19】[0028]開示される実施形態による、通常の実行時間に従って拡張された動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【
図20】[0029]開示される実施形態による、変更された低減された実行時間に従って拡張された動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【発明を実施するための形態】
【0011】
[0030]以下の発明を実施するための形態は、本質的に例示的なものにすぎず、主題の実施形態またはそのような実施形態の適用例および使用を限定するものではない。本明細書で使用される、「例示的」という単語は、例、事例、または例示の働きをすることを意味する。例示的として本明細書で説明されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきであるとは限らない。さらに、先行する技術分野、背景技術、発明の概要、または以下の発明を実施するための形態において提示される明示または暗示される理論によって制限される意図はない。
【0012】
[0031]以下の発明を実施するための形態は、本質的に例示的なものにすぎず、主題の実施形態またはそのような実施形態の適用例および使用を限定するものではない。本明細書で使用される、「例示的」という単語は、例、事例、または例示の働きをすることを意味する。例示的として本明細書で説明されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきであるとは限らない。さらに、先行する技術分野、背景技術、発明の概要、または以下の発明を実施するための形態において提示される明示または暗示される理論によって制限される意図はない。
【0013】
[0032]本明細書で提示される主題は、アクセストリガ型コンピュータアーキテクチャを初期化および使用するための装置および方法に関する。アクセストリガ型アーキテクチャは複数の機能ブロックを含む。各機能ブロックは、関連付けられたシステムメモリアドレスにおいて受信された入力データセットを使用して動作を実施する。いくつかの実施形態では、システムメモリアドレスは、システムメモリアドレスにおいて記憶された入力データセットを使用して動作を実施する、機能ブロックに関連付けられる。概して、特定のメモリアドレスにおいてデータセットが受信されたとき、メモリアドレスに関連付けられた機能ブロックは、受信されたデータセットを使用して算術および/または論理演算を実施し、次いで結果を返す。
【0014】
[0033]また、本明細書では、アクセストリガ型アーキテクチャが、標準アクセストリガ型アーキテクチャ構成よりも、ロバストにされ、信頼性が高くされ、迅速に動作するように、コンピュータ実装アクセストリガ型アーキテクチャのための誤り訂正およびパイプライン化動作を実施するための技法が企図される。詳細には、誤り訂正技法は、アクセストリガ型アーキテクチャシステムによって記憶されたデータのバイナリ表現に対する「ビットフリッピング」または他の変更を防ぎ、したがって、アクセストリガ型アーキテクチャの信頼性を増加させ得る。パイプライン化技法は、アクセストリガ型アーキテクチャが動作を実施する速度を増加させることを可能にする。
【0015】
[0034]
図1は、いくつかの実施形態による、アクセストリガ型アーキテクチャシステム100の概略ブロック図表示である。アクセストリガ型アーキテクチャシステム100は、任意の所望のプラットフォームを使用して実装され得るが、概して、フィールドプログラマブルゲートアレイ(FPGA)内で実装される1つまたは複数の状態機械を使用して実装される。たとえば、アクセストリガ型アーキテクチャシステム100は、限定はしないが、データマルチプレクサ/デマルチプレクサ、遠隔データコンセントレータ、バストランスレータ(たとえば、イーサネット対MIL-1553)、特殊な診断機器、埋込みプロセッサベースデバイスまたはシステム、あるいはプロセッサアーキテクチャ102とシステムメモリ104とを含む任意の他のデバイスのいずれかとして実現され得る。代替的に、アクセストリガ型アーキテクチャシステム100は、限定はしないが、ネットワークデータ処理、航空機の入力および出力(I/O)信号の制御、家庭用水加熱などを含む、実施形態に関連付けられた任意のタイプのコントローラを使用するいくつかの実装形態を実現するために使用され得る。
【0016】
[0035]アクセストリガ型アーキテクチャシステム100は、限定はしないが、プロセッサアーキテクチャ102と、システムメモリ104と、初期化モジュール106と、命令モジュール108と、データ転送モジュール110と、機能ブロックモジュール112とを含み得る。実際には、アクセストリガ型アーキテクチャシステム100の様々な実施形態は、特定のアプリケーションのために必要に応じて、追加または代替の要素およびコンポーネントを含み得る。アクセストリガ型アーキテクチャシステム100のこれらの要素および特徴は、本明細書で説明されるように、所望の機能をサポートし、特に、アクセストリガ型アーキテクチャに固有の特徴を与えるために、必要に応じて動作可能に互いに関連付けられるか、互いに結合されるか、または場合によっては互いと協働するように構成され得る。説明しやすいようにおよび明快のために、これらの要素および特徴のための様々な物理的、電気的、および論理的結合ならびに相互接続は
図1に示されていない。その上、アクセストリガ型アーキテクチャシステム100の実施形態が、所望の機能をサポートするために協働する他の要素、モジュール、および特徴を含むことを諒解されたい。簡単のために、
図1は、以下でより詳細に説明される、アクセストリガ型アーキテクチャ特徴に関係するいくつかの要素のみを示す。
【0017】
[0036]プロセッサアーキテクチャ102は、1つまたは複数のプロセッサ(たとえば、複数のチップ、または単一のチップ上の複数のコア)、コントローラ、マイクロプロセッサ、マイクロコントローラ、処理コア、および/あるいは任意の数の「クラウドベース」のまたは他の仮想システムを含む、任意の数の分散型システムまたは集積システムにわたって拡散された他のコンピューティングリソースなど、任意の好適な処理システムを使用して実装され得る。代替的に、プロセッサアーキテクチャ102は、マイクロコントローラまたはプロセッサを使用して実装されず、この場合、アクセストリガ型アーキテクチャシステム100は、特定のアプリケーションに関連するマイクロコントローラおよび/またはプロセッサコンポーネントを利用する。
【0018】
[0037]プロセッサアーキテクチャ102は、システムメモリ104と通信するように構成される。システムメモリ104は、任意の種類のランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、磁気または光大容量ストレージなどを含む、プロセッサアーキテクチャ102上での実行のためのプログラミング命令を記憶することが可能な任意の非一時的短期または長期ストレージあるいは他のコンピュータ可読媒体を表す。システムメモリ104は、そのようなコンピュータ可読媒体の1つの好適な実装形態を表し、代替または追加として、プロセッサアーキテクチャ102は、ポータブルまたはモバイルコンポーネントあるいはアプリケーションプラットフォーム、たとえば、ポータブルハードドライブ、USBフラッシュドライブ、光ディスクなどとして実現された外部コンピュータ可読媒体を受け、その外部コンピュータ可読媒体と協働することができることに留意されたい。
【0019】
[0038]初期化モジュール106は、アクセストリガ型アーキテクチャシステム100において利用される複数の機能ブロックを作成するように構成される。初期化モジュール106は、機能ブロックを作成するために特定のアプリケーションに関連する動作または機能をシステムメモリ104中のロケーションに関連付けることによってこれを達成する。特定のアプリケーションの実行中に、機能ブロックは、関連付けられたメモリロケーションにデータのセットが到着するたびに、一貫して、同じ動作を実施するように構成される。
【0020】
[0039]命令モジュール108は、システムメモリ104中の記憶ロケーションから命令を取り出すことと、各命令中に含まれる情報を認識することと、命令の実行を始動することとを行うように構成される。概して、各命令は、データが記憶されたシステムメモリ中のロケーションから、システムメモリ104中の新しいロケーションにデータのセットを移動することが必要とされる情報を含む。各命令は、2つのポインタ、すなわち、ソースポインタと宛先ポインタとを含む。ソースポインタは、命令が実行されたときにデータのセットがそこから移動される、システムメモリ104中のソースロケーションを参照する。宛先ポインタは、データのセットが移動される、システムメモリ104中の宛先ロケーションを参照する。システムメモリブロック104内の各ソースロケーションおよび各宛先ロケーションは、メモリ、I/O、または機能ブロックに割り当てられ得る。いくつかの実施形態では、アクセストリガ型アーキテクチャシステム100を使用する特定のアプリケーションは、複数の命令を含む命令テーブルを利用する。各命令テーブルは特定のアプリケーションに固有であり、命令テーブルが実行されたとき、各命令は連続的に実施される。命令テーブルは、個々にまたは1つまたは複数の追加の命令テーブルとの組合せで使用され得る。
【0021】
[0040]いくつかの実施形態では、命令モジュール108は、テーブルの終了に達すると、テーブルの始まりに戻り、再び命令のシーケンスを実行することによって、ループを実施するように構成される。他の実施形態では、命令モジュール108は、特定の命令テーブルの終了に達すると、別のテーブルを実行するように構成される。いくつかの実施形態では、命令モジュール108は、命令の1つのリストのみを実行することと、命令リストの終了に達すると実行を中止することとを行うように構成される。いくつかの実施形態では、命令リストの実行は、外部イベントによってトリガされたときに発生する。
【0022】
[0041]データ転送モジュール110は、命令モジュール108から命令情報を受信することと、各命令において指定されたデータセットの再配置を行うこととを行うように構成される。概して、データ転送モジュール110は、各命令においてソースポインタと宛先ポインタとにアクセスし、ソースポインタに関連付けられたソースロケーションを識別し、宛先ポインタに関連付けられた宛先ロケーションを識別し、ソースロケーションからデータのセットを取り出し、宛先ロケーションにデータのセットを送信する。
【0023】
[0042]機能ブロックモジュール112は、宛先ロケーションにおいて受信されたデータのセットを使用して動作を実施するように適切に構成される。各宛先ロケーションは、システムメモリアドレスによって示される。概して、機能ブロックは宛先ロケーションに関連し、特定のシステムメモリアドレスによって示された特定の宛先ロケーションにおいてデータのセットが受信されたとき、機能ブロックはトリガされる。トリガされると、機能ブロックは指定の動作を実施する。指定の動作は、機能ブロックに関連付けられた特定の宛先ロケーションにおいて受信されたデータの各セットについて一貫して実施される。
【0024】
[0043]機能ブロックによって実施される動作は、受信されたデータを1つまたは複数のやり方で改変する。動作は、算術演算、論理演算、および/またはアクセストリガ型アーキテクチャシステム100によって実施されるタスクに適用可能な任意の特殊化された機能を含み得る。いくつかの実施形態では、特定の機能ブロックに関連し、特定の機能ブロックによって実施される指定の動作は、2つ以上の基本動作を含み得る。たとえば、機能ブロックAは、データの受信されたセットを増分するように構成され得、機能ブロックBは、結果を生成するために、データのセットを増分することと、データの第2のセットを用いて論理OR演算を実施することとを行うように構成され得る。特殊化された機能は、巡回冗長検査(CRC)の計算、暗号化/解読ステップ、イーサネットパケットからヘッダを取り外すこと、1つまたは複数のデータストリーム中の文字のシーケンスの探索を実施することなどを含み得る。機能ブロックのこの特殊化は、アクセストリガ型アーキテクチャシステム100の効率を最適化する、指定の機能ブロックとのプロセスの関連付けと、機能ブロックの再利用可能なライブラリの作成とを可能にする。
【0025】
[0044]アクセストリガ型アーキテクチャシステム100による有用なタスクの実施を可能にするために、システムメモリ104内のロケーションは、メモリデバイスに排他的にマッピングされない。いくつかの実施形態では、システムメモリ104ロケーションは、データ入力および出力のために使用される特殊化されたロケーションにマッピングされる。いくつかの実施形態では、システムメモリ104ロケーションは、機能ブロックモジュール112内の専用の機能にマッピングされる。たとえば、アクセストリガ型アーキテクチャシステム100は、システムメモリ104内の特殊化されたロケーションから何らかの外部情報(たとえば、現在の空気速度)を読み取るように構成される。この特殊化されたシステムメモリ104ロケーションは、「インメールボックス(in-mailbox)」と呼ばれることがある。アクセストリガ型アーキテクチャシステム100は、次いで、その情報を、機能ブロックに関連付けられた第2の特殊化されたシステムメモリ104ロケーションに記憶する。この例では、機能ブロックは、データの受信されたセットを用いて、「比較」動作を実施するように構成される。アクセストリガ型アーキテクチャシステム100は、次いで、システムRAMメモリからの値(たとえば、空気速度上限)を同じ機能ブロックに関連付けられた第3の特殊化されたメモリロケーションに転送する。機能ブロックは、「比較」機能を実施し、2つのデータ値を比較し、結果を作り出し、結果は、次いで、第3の特殊化されたメモリロケーションに記憶される。いくつかの実施形態では、その結果は、システムメモリ中の第4の特殊化されたロケーション(たとえば、「アウトメールボックス(out-mailbox)」)に記憶され得、そこにおいて、結果は、アクセストリガ型アーキテクチャシステム100内の他の機能ブロックおよび/またはシステムによる取出しのために利用可能である。この特定の例では、現在の空気速度と空気速度上限との間の比較結果は、エンジンスロットル設定など、外部設定を調整するために使用され得る。
【0026】
[0045]実際には、初期化モジュール106、命令モジュール108、データ転送モジュール110、および/または機能ブロックモジュール112は、本明細書でより詳細に説明される機能および動作のうちの少なくともいくつかを実施するために、プロセッサアーキテクチャ102を用いて実装され(またはプロセッサアーキテクチャ102と協働し)得る。この点について、初期化モジュール106、命令モジュール108、データ転送モジュール110、および/または機能ブロックモジュール112は、適切に書かれた処理論理、アプリケーションプログラムコードなどとして実現され得る。
【0027】
[0046]
図2は、アクセストリガ型アーキテクチャを使用するアプリケーションを初期化するためのプロセス200の一実施形態を示すフローチャートである。いくつかの実施形態では、アプリケーションは、1つまたは複数の特定のタスクを達成するためのツールとしてのアクセストリガ型アーキテクチャの使用を可能にする実行可能命令を含み得る。最初に、プロセス200は、複数の宛先メモリロケーションを認識する(ステップ202)。宛先メモリロケーションは、データの1つまたは複数のセットがそれに転送されるシステムメモリアドレスを含む。複数の宛先メモリロケーションは、設計時にあらかじめ定義される。ここで、プロセス200は、複数のシステムメモリアドレスからなる、システムメモリ中のストレージのあらかじめ定義されたブロックを認識する。
【0028】
[0047]次に、プロセス200は、アプリケーションに関連する複数の動作を識別する(ステップ204)。複数の動作は、プロセス200が実行することが可能であり、アプリケーションに適用可能な命令と区別可能である、任意の命令を含み得る。概して、複数の動作の各々は、算術および/または論理演算を含む。いくつかの例示的な実施形態では、複数の動作の各々は、単一のまたはワンステップ機能を含む。他の実施形態では、複数の動作の各々は機能の組合せを含み得る。
【0029】
[0048]適用可能な宛先メモリロケーションを認識し(ステップ202)、アプリケーションに関連する複数の動作を識別した(ステップ204)後に、プロセス200は、複数の機能ブロックを作成するために複数の宛先メモリロケーションの各々を複数の動作のそれぞれの動作に関連付け、複数の機能ブロックの各々は、それぞれの宛先メモリロケーションにある(ステップ206)。ここで、プロセス200は、識別された関連する動作のうちの1つと宛先メモリロケーションとの間の接続を作成し、機能ブロックを生じる。各機能ブロックは、宛先メモリロケーションにおいてデータのセットが受信されたとき、関連付けられた動作を実施する。ここで、機能ブロックのグループは、動作のグループをメモリロケーションのグループに関連付けることによって作成される。各機能ブロックは概して1つのタスクを実施するにすぎないが、これらの機能ブロックは、より複雑なタスキングを実施するために互いと組み合わせて使用され得る。
【0030】
[0049]
図3は、アクセストリガ型アーキテクチャを使用するアプリケーションを用いてデータを操作するためのプロセス300の一実施形態を示すフローチャートである。最初に、プロセス300は、システムメモリロケーションに関連付けられた指定の機能ブロックにおいてデータのセットを受信する(ステップ302)。一実装形態では、アクセストリガ型アーキテクチャは航空機によって利用され得、この例では、データのセットは、航空機制御面(フラップ、エレベータなど)についての位置情報、エンジン温度、空気速度、燃料重量、全地球測位システム(GPS)情報、エンジン性能パラメータ、自動飛行制御パラメータなどを含み得る。
【0031】
[0050]次に、プロセス300は、結果を生成するために、データのセットを使用して、指定の機能ブロックにおいて動作を実施し、動作は、指定の機能ブロックにおいて情報が受信されるたびに、一貫して実施される(ステップ304)。いくつかの実施形態では、動作は、
図4に示されているように、単一の機能を含み得る。
図4は、いくつかの実施形態による、単一の動作を含む機能ブロック406にアクセスするように構成された、システムメモリのサブセット404を含む、アクセストリガ型アーキテクチャシステム400の図表示である。図示のように、データセット402は、機能ブロック406に関連付けられた、メモリロケーション0x8000:0003において受信される。機能ブロック406は、受信されたデータセット402を使用して、単一の機能、またはワンステップ動作を実行する。単一の動作の例示的な実施形態は、限定はしないが、算術演算(たとえば、増分、減分など)、論理演算(たとえば、AND、OR、XORなど)などを含み得る。単一の機能が実施されると、機能ブロック406は、同じメモリロケーションに結果408を返す。したがって、メモリロケーション0x8000:0003に送信された元のデータセット402は変更され、メモリロケーション0x8000:0003のコンテンツが将来の時間において(たとえば、後続のクロックサイクル中に)取り出されたとき、元のデータセット402はもはや利用可能でなくなる。
【0032】
[0051]いくつかの実施形態では、動作は、
図5に示されているように、実施されるべき命令の完全に新しいセットを含み得る。
図5は、いくつかの実施形態による、第2のアプリケーション510のための命令の第2のセット508を含む機能ブロック506にアクセスするように構成された、システムメモリのサブセット504を含む、アクセストリガ型アーキテクチャシステム500のサブセットの図表示である。図示のように、データセット502は、機能ブロック506に関連付けられた、メモリロケーション0x8000:0005において受信される。機能ブロック506は、受信されたデータセット502を使用して動作を実行し、同じメモリロケーションに結果512を返す。ソースロケーション(図示せず)からメモリロケーション0x8000:0005にデータセット502を転送するこのアクションは、命令の第1のセットのうちの少なくとも1つの実行中に第1のアプリケーションによって実施される。
【0033】
[0052]メモリロケーション0x8000:0005においてデータセット502が受信されると、データセット502は、機能ブロック506への入力値として使用される。機能ブロック506は、命令の第2のセット508を含む、第2のアプリケーション、またはサブアプリケーションを実行する。命令の第2のセット508は、第1のアプリケーションに関連付けられた、命令の第1のセットによって「参照」または認識されない。命令の第1のセットと同様に、命令の第2のセット508の各々は、ソースロケーションからシステムメモリ中の宛先ロケーションにデータのセットを再配置するためのコマンドを含む。命令の第2のセット508の、第1の命令は、別の機能ブロックに関連付けられた別の動作の実施のためにメモリロケーション0x8000:0005(すなわち、ソースロケーション)から別のメモリアドレス(すなわち、宛先ロケーション、図示せず)にデータセット502を再配置する。この例では、第2のアプリケーション510は、出力結果512を作り出すために、連続的に、命令の第2のセット508を実行する。命令の第2のセット508の各々は、単一の機能または動作を実行し、命令の第2のセット508全体は、ワンステップ機能超を必要とする、より複雑な動作のために使用される。
【0034】
[0053]メモリロケーション0x8000:0005がシングルステップ動作に関連付けられたときの場合のように、出力結果512が生成されると、メモリロケーション0x8000:0005に送信された元のデータセット502は変更される。メモリロケーション0x8000:0005のコンテンツが将来の時間において(たとえば、後続のクロックサイクル中に)取り出されたとき、元のデータセット502はもはや利用可能でなくなる。
【0035】
[0054]
図3に戻ると、動作を実施した(ステップ304)後に、プロセス300は、システムメモリロケーションに生成された結果を返す(ステップ306)。
図4および
図5に関して示されているように、機能ブロックにおいて受信されたデータセットを使用して動作が実施されると、データセットは、それ自体が動作によって変更または改変される。この結果は、次いで、データセットが受信されたメモリロケーションにおいて記憶され、元のデータセットを効果的に上書きする。この更新されたまたは「新しい」データセットは、メモリロケーション中に存在し、別のシングルステップ動作、または複数のシングルステップ動作を含む第2のアプリケーションを実施するために、取出しおよびシステムメモリ中の別の機能ブロックへの転送のために利用可能である。
【0036】
[0055]
図6は、アクセストリガ型アーキテクチャを使用するためのプロセス600の一実施形態を示すフローチャートである。最初に、プロセス600は命令ポインタを受信し、命令ポインタは、システムメモリ中の第1の命令ロケーションを参照する(ステップ602)。命令ポインタは、第1の命令が所与のアプリケーションのために存在する、システムメモリアドレスを示す。各アプリケーションは複数の実行可能命令を含み、命令ポインタは、特定のアプリケーションの実行を始めるためにアクセスされる。
【0037】
[0056]次に、プロセス600は、第1の命令ロケーションにおいて記憶された第1の命令にアクセスする(ステップ604)。第1の命令から、プロセス600は、システムメモリ中のソースロケーションに関連付けられたソースポインタと、システムメモリ中の宛先ロケーションに関連付けられた宛先ポインタとを識別する(ステップ606)。各命令は、最低でも、ソースポインタと宛先ポインタとを含む。これらのポインタの各々は、システムメモリ中のアドレスを参照し、システムメモリは、データのセットを各アドレスにおいて記憶することが可能である。
【0038】
[0057]プロセス600は、次いで、ソースロケーションから、ソースポインタによって参照されるデータのセットを取り出し(ステップ608)、宛先ロケーションにデータのセットを書き込み、宛先ロケーションは、指定の機能ブロックに関連付けられる(ステップ610)。プロセス600の目的は、順次、一連の命令を実行することである。各命令は、ソースメモリロケーションから宛先メモリロケーションにデータのセットを移動し、宛先メモリロケーションにおける機能ブロックがデータのセットを使用して動作を実施することを可能にする。
【0039】
[0058]システムメモリ中の宛先ロケーションにデータのセットを書き込んだ(ステップ610)後に、プロセス600は、命令セットの終了に達したかどうかを決定する(ステップ612)。プロセス600は、あるシステムロケーションから別のシステムロケーションへのデータ転送を実施する。停止、ルーピング、または新しいリストの実行を含むプロセス600のすべての挙動は、実行されている命令内に符号化される。一例では、プロセス600は、命令セットを再び実行するために、ループを実施する。この例では、命令セットの最終命令は、同じリストの始まりのアドレスを用いて命令ポインタを再ロードするための命令を含み得る。代替的に、最終命令は、機能ブロックが新しいリストに対処するために結果を変更するまで、その機能ブロックを読み取ることであり得るか、または、最終命令は、検出されたイベントの発生時のみに現在の命令リストを繰り返すことであり得る。
【0040】
[0059]命令セットの終了に達した場合(ステップ612の「はい」分岐)、プロセス600は終了する。命令セットの終了に達しなかった場合(ステップ612の「いいえ」分岐)、プロセス600は、命令ポインタを増分し(ステップ616)、増分された命令ポインタによって示された命令ロケーションにおいて記憶された命令にアクセスする(ステップ604)ためにプロセス600の始まりに戻る。実行可能命令の各々は、実行しやすいように、システムメモリに連続順序で記憶される。いくつかの実施形態では、複数の実行可能命令は、連続順序で記憶された、または言い換えると、各命令が実行される順序で記憶された、複数の命令を含む、アプリケーションについての「命令テーブル」を含む。各命令は、システムメモリ中の特定のロケーションにおいて記憶され、これらのロケーションの各々は、システムメモリアドレスによって参照される。命令ポインタは、命令テーブルの第1の命令のシステムメモリアドレスにプロセス600を導く。増分されると、命令ポインタは、命令が記憶された次のメモリロケーションをポイントし、プロセス600はステップ604に戻り、再び始まる。
【0041】
[0060]いくつかの実施形態では、プロセス600は、ステップ602の実行より前に、アプリケーションについての命令テーブルを最初に受信する。ここで、命令テーブルは複数の命令を含み、命令ポインタによって示された命令ロケーションにおいて記憶された命令は、命令テーブル中で見つかる命令のうちの1つである。命令テーブル中に含まれている、複数の命令の各々は、ソースメモリロケーションから宛先メモリロケーションに情報を移動するためのコマンドを含む。命令テーブルを使用して、プロセス600は、
図6で説明されるプロセス600のステップを通して、連続的に、複数の命令の各々を実行する。命令ポインタが増分される(ステップ616)たびに、プロセス600は、命令テーブル中の次のステップを実行するために前進する。いくつかの実施形態では、複数の命令の各々が連続的に実行されたとき、プロセス600は、第2の複数の命令を含む第2の命令テーブルを受信し、第2の複数の命令の各々を連続的に実行し、第2の複数の命令の各々も、ソースメモリロケーションから機能ブロックに関連付けられた宛先メモリロケーションに情報を移動するためのコマンドを含む。
【0042】
[0061]アクセストリガ型アーキテクチャのための誤り訂正およびパイプライン化技法
[0062]
図7は、開示される実施形態による、パイプライン化および誤り訂正技法を使用するアクセストリガ型アーキテクチャシステム700の概略ブロック図表示である。アクセストリガ型アーキテクチャシステム700の図示の実施形態は、概して、限定はしないが、プロセッサアーキテクチャ702と、システムメモリ704と、初期化モジュール706と、命令モジュール708と、データ転送モジュール710と、機能ブロックモジュール712と、誤り訂正モジュール714と、パイプラインモジュール716とを含む。アクセストリガ型アーキテクチャシステム700のこれらの要素および特徴は、本明細書で説明されるように、所望の機能をサポートするために必要に応じて動作可能に互いに関連付けられるか、互いに結合されるか、または場合によっては互いと協働するように構成され得る。説明しやすいようにおよび明快のために、これらの要素および特徴のための様々な物理的、電気的、および論理的結合ならびに相互接続は
図7に示されていない。その上、アクセストリガ型アーキテクチャシステム700の実施形態が、所望の機能をサポートするために協働する他の要素、モジュール、および特徴を含むことを諒解されたい。簡単のために、
図7は、以下でより詳細に説明される、アクセストリガ型コンピュータアーキテクチャのための、誤り訂正およびパイプライン化技法に関係するいくつかの要素のみを示す。
【0043】
[0063]プロセッサアーキテクチャ702、システムメモリ704、初期化モジュール706、命令モジュール708、データ転送モジュール710、および機能ブロックモジュール712は、構成および機能において、
図1に示されているアクセストリガ型アーキテクチャシステムのコンテキストにおいて上記で説明されたそれらの相対物と同様である。したがって、アクセストリガ型アーキテクチャシステム700のこれらの要素の共通の特徴および動作は、ここで冗長的に説明されない。
【0044】
[0064]誤り訂正モジュール714は、取り出されたデータが正確、有効、または場合によっては正しいかどうかをシステム700が決定することができるように、アクセストリガ型アーキテクチャシステム700のための誤り訂正を実施するように構成される。誤り訂正モジュール714は、パリティビット、誤り訂正コード(ECC:error correcting code)、および/または当技術分野でよく知られており一般的に使用される他の誤り訂正技法を使用する。誤り訂正モジュール714は、破損したデータを識別するように構成される。いくつかの実施形態では、誤り訂正モジュール714は、破損されたまたは場合によっては不正確であるデータを識別することと、また、データが正しい状態に戻るようにデータを訂正することとを行うように構成される。
【0045】
[0065]パイプラインモジュール716は、アクセストリガ型アーキテクチャシステム700が複数の動作を同時に(すなわち、同じクロックサイクル中に)実行および実施することができるように、アクセストリガ型アーキテクチャシステム700の動作を合理化するように構成される。パイプラインモジュール716は、概して、アクセストリガ型アーキテクチャシステム700の2つまたはそれ以上のデータバス(たとえば、データバス、命令バスなど)を使用してそのような同時動作を実施する。
【0046】
[0066]実際には、誤り訂正モジュール714および/またはパイプラインモジュール716は、本明細書でより詳細に説明される機能および動作のうちの少なくともいくつかを実施するために、プロセッサアーキテクチャ702を用いて実装され(またはプロセッサアーキテクチャ702と協働し)得る。この点について、誤り訂正モジュール714および/またはパイプラインモジュール716は、適切に書かれた処理論理、アプリケーションプログラムコードなどとして実現され得る。
【0047】
[0067]
図8は、開示される実施形態による、アクセストリガ型アーキテクチャによって実行される典型的な動作800の図表示である。典型的な動作800は4つのサブ動作を含み、サブ動作の各々は連続クロックサイクル中に実行される。したがって、図示された典型的な動作800の実行は、完了のために4つのクロックサイクルを必要とする。典型的な動作800のサブ動作は、アクセストリガ型アーキテクチャが、命令セットを読み取り、次いで、システムメモリ中のロケーションから、データのセットを入力値として使用して1つまたは複数の動作が実施され得る機能ブロックに、データのセットを移動するために命令を使用するように、実行される。このプロセスは、
図1~
図6の説明に関して、前に詳細に説明された。
【0048】
[0068]第1のクロックサイクル中に、第1のサブ動作は実行され、第1のサブ動作はソースポインタを読み取ること802である。命令セットは、前に説明されたように、ソースポインタと宛先ポインタとを含む。ここで、命令セットのソースポインタは、第1のクロックサイクル中に読み取られる。第2のクロックサイクル中に、第2のサブ動作は実行され、第2のサブ動作は宛先ポインタを読み取ること804である。ここで、命令セットの宛先ポインタは、第2のクロックサイクル中に読み取られる。したがって、(ソースポインタと宛先ポインタとを含む)命令セットは、典型的な動作800の第1の2つのクロックサイクル中に読み取られる。第3のクロックサイクル中に、第3のサブ動作は実行され、第3のサブ動作はソースポインタからデータを読み取ること806である。ソースポインタは、データを記憶するシステムメモリ中のロケーションを参照し、データは、第3のクロックサイクル中にシステムメモリロケーションにおいて読み取られる。第4のクロックサイクル中に、第4のサブ動作は実行され、第4のサブ動作は宛先ポインタにデータを書き込むこと808である。宛先ポインタは、システムメモリ中の第2のロケーションを参照し、第2のロケーションは、データを入力値として使用して1つまたは複数の動作が実施される機能ブロックを含む。ここで、データは、第4のクロックサイクル中に宛先ポインタによって示された第2のロケーションに書き込まれる。
【0049】
[0069]
図9は、複数の典型的な動作902、904、906のシーケンス900の図表示である。複数の典型的な動作902、904、906は、開示される実施形態に従って、連続的に実行される。複数の典型的な動作902、904、906の各々は4つのサブ動作を含み、サブ動作の各々は、
図8に関して前に説明されたように、連続クロックサイクル中に実行される。また、
図8に関して前に説明されたように、サブ動作は、第1の連続クロックサイクル中にソースポインタを読み取ることと、第2の連続クロックサイクル中に宛先ポインタを読み取ることと、第3の連続クロックサイクル中にソースポインタからデータを読み取ることと、第4の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む。図示のように、シーケンス900は、典型的な動作902の後に実行される典型的な動作904と、典型的な動作904の後に実行される典型的な動作906とを含む。複数の典型的な動作902、904、906の各々は、連続クロックサイクル中に、順序が正しく、アクセストリガ型アーキテクチャによって実施される。
【0050】
[0070]4つのサブ動作のうちの最後の動作(たとえば、第4の連続クロックサイクル中に宛先ポインタにデータを書き込むこと)中に、アクセストリガ型アーキテクチャシステムは、複数の命令(すなわち、複数の命令を含む命令セット)のうちの次の命令に命令ポインタを増分する。命令ポインタは、機能ユニット(たとえば、
図1~
図7および
図15~
図16に関して説明される、機能ブロック)によって、ジャンプ、分岐を作成し、必要に応じて、不当ジャンプおよび/または不当分岐からガードされるように影響を及ぼされ得る。
【0051】
[0071]
図10は、開示される実施形態による、連続的に実行される複数の拡張された動作1002、1004のシーケンス1000の図表示である。図示のように、シーケンス1000は、
図9に関して前に説明されたように、連続的に実行される複数の動作1002、1004を含む。ただし、
図9は、第1の連続クロックサイクル中にソースポインタを読み取ることと、第2の連続クロックサイクル中に宛先ポインタを読み取ることと、第3の連続クロックサイクル中にソースポインタからデータを読み取ることと、第4の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む典型的な動作の連続実行を示す。
【0052】
[0072]対照的に、
図10に示されているシーケンス1000は、第1の連続クロックサイクル中にソースポインタを読み取ることと、第2の連続クロックサイクル中に誤り訂正コード(ECC)を使用して誤り訂正を実施すること1006と、第3の連続クロックサイクル中に宛先ポインタを読み取ることと、第4の連続クロックサイクル中にECCを使用して誤り訂正を実施すること1008と、第5の連続クロックサイクル中にソースポインタからデータを読み取ることと、第6の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む拡張された動作1002、1004の連続実行を示す。
【0053】
[0073]ここで、誤り訂正技法が、典型的なアクセストリガ型アーキテクチャ動作に組み込まれる。典型的なアクセストリガ型アーキテクチャ動作のサブ動作が実施され、誤り訂正は、アクセストリガ型アーキテクチャの動作が、信頼性が高く正確な結果を作り出すことを保証するために使用される。第2のクロックサイクル中に、第1のクロックサイクル中に読み取られたソースポインタの正確さを検証するために、誤り訂正が実施される1006。第4のクロックサイクル中に、第3のクロックサイクル中に読み取られた宛先ポインタの正確さを検証するために、誤り訂正が実施される1008。したがって、拡張された動作1002、1004は、アクセストリガ型アーキテクチャの改善された正確さおよび信頼性を与える。さらに、いくつかの実施形態では、誤り訂正技法は、第5の連続クロックサイクル中にソースポインタから読み取られたデータを検証するために使用される。これは、レイテンシのインラインクロックサイクルとして完成され得る。
【0054】
[0074]
図11は、開示される実施形態による、パイプライン構造を使用して実行される拡張された動作1102の図表示である。アクセストリガ型アーキテクチャによって実施される拡張された動作1102は、
図10に関して前に説明された拡張された動作を含む。ただし、拡張された動作1102は、拡張された動作1102が、実行時間を低減するために、同時動作を実施するためにパイプライン構造を使用するという点で、
図10の拡張された動作とは異なる。パイプライン構造1100は、(1)第1の連続クロックサイクル中にソースポインタを読み取ること1104と、(2)第2の連続クロックサイクル中に宛先ポインタを読み取ること1106と、並列に、誤り訂正コード(ECC)を使用して誤り訂正を実施すること1108と、(3)第3の連続クロックサイクル中にECCを使用して誤り訂正を実施すること1110と、並列に、ソースポインタからデータを読み取ること1112と、(4)第4の連続クロックサイクル中に宛先ポインタにデータを書き込むこと1114とを含む、拡張された動作1102のパイプライン化された実行を示す。
【0055】
[0075]図示のように、1つの完全な拡張された動作1102を実施するために必要とされる総時間は、4つのクロックサイクルである。しかしながら、
図12に示されているように、同時に実行されるサブ動作は、連続の拡張された動作のいくつかのサブ動作が重複し、並列に実施されるように構成される。したがって、各サブ動作についての結果を取得するために2つのクロックサイクルが必要とされる。
図12は、開示される実施形態による、パイプライン構造を使用して実行される複数の拡張された動作1200の図表示である。
【0056】
[0076]図示のように、複数の拡張された動作1200は、実行時間を低減するためにサブ動作が同時に実施され得るように、パイプライン構造を使用して実行される。複数の拡張された動作1200の各々は、(1)第1の連続クロックサイクル中にソースポインタを読み取ること1212と、(2)第2の連続クロックサイクル中に宛先ポインタを読み取ること1214と、誤り訂正コード(ECC)を使用して誤り訂正を実施することとを含む、
図11に示されている拡張された動作1102と同じサブ動作を実施する。ただし、第3の連続クロックサイクル中に、サブ動作は、別のソースポインタを読み取ること1216と、ECCを使用して誤り訂正を実施することと、第1のソースポインタ(たとえば、読み取られたソースポインタ1212によって示されたロケーション)からデータを読み取ることとを含む。また、
図11とは異なり、第4の連続クロックサイクル中に、サブ動作は、別の宛先ポインタを読み取ること1218と、ECCを使用して誤り訂正を実施することと、宛先ポインタにデータを書き込むこととを含む。
【0057】
[0077]したがって、第3の連続クロックサイクルおよび第4の連続クロックサイクル中に、アクセストリガ型アーキテクチャシステムは、(たとえば、ソースポインタからデータを読み取ることと、宛先ポインタにデータを書き込むこととによって)第1の拡張された動作1202を完了するとともに、また同時に、(たとえば、第2のソースポインタを読み取ること1216と、第2の宛先ポインタを読み取ること1218とによって)第2の拡張された動作1204を開始する。その結果、複数の拡張された動作1200の各々は、2つのクロックサイクルごとに完了される。
【0058】
[0078]
図13は、パイプライン構造を使用して実行される複数の典型的な動作1300の図表示である。
図13に示されている複数の典型的な動作1300は、第1の連続クロックサイクル中にソースポインタを読み取ること1306と、第2の連続クロックサイクル中に宛先ポインタを読み取ること1308と、第3の連続クロックサイクル中に、第2のソースポインタを読み取ること1310と、第1のソースポインタからデータを読み取ることと、第4の連続クロックサイクル中に、第2の宛先ポインタを読み取ること1312と、第1の宛先ポインタにデータを書き込むこととを含む、
図12の複数の拡張された動作と同様である。ただし、複数の典型的な動作1300は、複数の典型的な動作1300が、ECCを使用して誤り訂正を実施するための追加の同時動作を含まないという点で、
図12の複数の拡張された動作とは異なる。
【0059】
[0079]図示のように、第3の連続クロックサイクルおよび第4の連続クロックサイクル中に、アクセストリガ型アーキテクチャシステムは、(たとえば、ソースポインタからデータを読み取ることと、宛先ポインタにデータを書き込むこととによって)第1の典型的な動作1302を完了するとともに、また同時に、(たとえば、第2のソースポインタを読み取ること1310と、第2の宛先ポインタを読み取ること1312とによって)第2の拡張された動作1304を開始する。その結果、複数の典型的な動作1300の各々は、2つのクロックサイクルごとに完了される。
【0060】
[0080]
図14は、開示される実施形態による、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するためのプロセス1400の一実施形態を示すフローチャートである。最初に、プロセス1400は、実行時間に従ってアクセストリガ型アーキテクチャシステムの典型的な動作を実行する(ステップ1402)。アクセストリガ型アーキテクチャシステムの典型的な動作は、
図1~
図6に関して前に説明された。これらの典型的な動作は、概して、
図8~
図9に関して前に説明されたように、連続的に実行され、いくつかの実施形態では、完了のために4つのクロックサイクルを必要とする。典型的な動作を実行する例示的な一実施形態は、
図15で詳細に説明され、実行時間に従って典型的な動作を実行する例示的な一実施形態は、
図17で詳細に説明される。
【0061】
[0081]次に、プロセス1400は、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し(ステップ1404)、典型的な動作のパイプラインを作成した後に、プロセス1400は、低減された実行時間に従って典型的な動作を実行する(ステップ1406)。低減された実行時間に従って典型的な動作を実行する例示的な一実施形態は、
図18で詳細に説明される。
【0062】
[0082]パイプラインは、複数のコンピュータ命令が同時に実行および実施されるように、それらのコンピュータ命令が重複される実装技法である。いくつかの実施形態では、同時実行は、複数のパイプライン化されたコンピュータ命令がアクセストリガ型アーキテクチャの同じクロックサイクル中に実行および実施されることを示す。本明細書で説明されるように、パイプラインは、サブ動作が同時に実行および実施されるように、アクセストリガ型アーキテクチャシステムの典型的な動作または拡張された動作の複数のサブ動作が重複される実装技法である。ここで、プロセス1400は、アクセストリガ型アーキテクチャシステムが複数の動作を同時に(すなわち、同じクロックサイクル中に)実行および実施するように、アクセストリガ型アーキテクチャシステムの動作を合理化するように構成される。プロセス1400は、概して、アクセストリガ型アーキテクチャシステムの2つまたはそれ以上のデータバス(たとえば、データバス、命令バスなど)を使用してそのような同時動作を実施する。
【0063】
[0083]パイプライン化された典型的な動作は、
図13に関して本明細書で説明された。説明された実施形態では、第3の連続クロックサイクルおよび第4の連続クロックサイクル中に、アクセストリガ型アーキテクチャシステムは、(たとえば、ソースポインタからデータを読み取ることと、宛先ポインタにデータを書き込むこととによって)第1の典型的な動作1302を完了するとともに、また同時に、(たとえば、第2のソースポインタを読み取ること1310と、第2の宛先ポインタを読み取ること1312とによって)第2の拡張された動作1304を開始する。その結果、複数の典型的な動作1300の各々は、2つのクロックサイクルごとに完了される。
【0064】
[0084]
図14に戻ると、いくつかの実施形態では、プロセス1400はまた、アクセストリガ型アーキテクチャによる実行のための拡張された動作を生成するために典型的な動作中に誤り訂正を実施する(ステップ1408)。ここで、プロセス1400は、取り出されたデータが正確、有効、または場合によっては正しいかどうかを決定するために、アクセストリガ型アーキテクチャシステムのための誤り訂正を実施するように構成される。プロセス1400は、パリティビット、誤り訂正コード(ECC)、および/または当技術分野でよく知られており一般的に使用される他の誤り訂正技法を使用する。プロセス1400は、破損したデータを識別するように構成される。いくつかの実施形態では、プロセス1400は、破損されたまたは場合によっては不正確であるデータを識別することと、また、データが正しい状態に戻るようにデータを訂正することとを行うように構成される。例示的な実施形態では、ステップ1408に関して説明される、プロセス1400は、
図10~
図12に示されているように、取得されたソースポインタおよび宛先ポインタの正確さを検証するために誤り訂正を実施する。他の実施形態では、誤り訂正は、取得されたソースポインタによって示されたシステムメモリロケーションから取得されたデータの正確さを検証するために使用される。
【0065】
[0085]プロセス1400は、第2の実行時間に従って、拡張された動作を実行する(ステップ1410)。第2の実行時間に従って、拡張された動作を実行する例示的な一実施形態は、
図19で詳細に説明される。第2の実行時間は、
図10に示されているように、拡張された動作が連続、または言い換えると、連続順序で実施されるとき、拡張された動作のための「通常の」実行時間である。ここで、
図10に示されているシーケンス1000は、拡張された動作1002、1004の各々が完了のために6つの連続するクロックサイクルを必要とするような、拡張された動作1002、1004の連続実行を示す。拡張された動作1002、1004の各々は、以下のサブ動作、すなわち、第1の連続クロックサイクル中にソースポインタを読み取ることと、第2の連続クロックサイクル中に誤り訂正コード(ECC)を使用して誤り訂正を実施すること1006と、第3の連続クロックサイクル中に宛先ポインタを読み取ることと、第4の連続クロックサイクル中にECCを使用して誤り訂正を実施すること1008と、第5の連続クロックサイクル中にソースポインタからデータを読み取ることと、第6の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む。拡張された動作1002、1004の各々を完了するために使用される6つの連続する、連続クロックサイクルは、第2の実行時間、または言い換えると、拡張された動作を連続的に実施するために必要とされる「通常の」実行時間を表す。
【0066】
[0086]
図14に戻ると、プロセス1400は、次いで、変更された低減された実行時間を作成するために、拡張された動作の第2の実行時間を低減するための拡張された動作の変更されたパイプラインを作成する(ステップ1412)。拡張された動作の変更されたパイプラインの例示的な一実施形態は、
図12に示されている。前に説明されたように、変更されたパイプラインは、サブ動作を同時に実施することによって、したがって、拡張された動作のサブ動作を実施するためにより少数のクロックサイクルを必要とすることによって、拡張された動作の必要とされる実行時間を低減するためにプロセス1400によって実装され、拡張された動作の各々は、(i)アクセストリガ型アーキテクチャシステムの典型的な動作と、(ii)アクセストリガ型アーキテクチャシステムの典型的な動作中に取得および使用されるデータの完全性を保証するために組み込まれる誤り訂正プロシージャとを含む。
【0067】
[0087]プロセス1400は、次いで、変更された低減された実行時間に従って、拡張された動作を実行する(ステップ1414)。変更された低減された実行時間に従って、拡張された動作を実行する例示的な一実施形態は、
図20で詳細に説明される。
図12および
図20に関して説明される例示的な実施形態は、各拡張された動作を完了するために必要とされる時間(たとえば、必要とされるクロックサイクルの数)を、6つのクロックサイクルを必要とする連続実行から2つのクロックサイクルを必要とするパイプライン実行に低減する。プロセス1400は、アクセストリガ型アーキテクチャ内の2つまたはそれ以上のデータバスを使用して、このパイプライン実行(たとえば、拡張された動作の変更されたパイプライン)を達成する。
【0068】
[0088]
図15は、開示される実施形態による、アクセストリガ型アーキテクチャの典型的な動作を実行するためのプロセス1500の一実施形態を示すフローチャートである。
図15で説明されるプロセス1500は、追加の詳細を含む、
図14の説明において上記で説明されたステップ1402の一実施形態を表すことを諒解されたい。最初に、プロセス1500は、データセットおよび命令セットを取得し、命令セットは、ソースポインタと宛先ポインタとからなる現在の命令を含む複数の命令を含む(ステップ1502)。次に、プロセス1500は、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用する(ステップ1504)。動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用するための1つの好適な方法論は、
図16を参照しながら以下で説明される。
【0069】
[0089]
図16は、開示される実施形態による、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用するためのプロセス1600の一実施形態を示すフローチャートである。
図16で説明されるプロセス1600は、追加の詳細を含む、
図15の説明において上記で説明されたステップ1502の一実施形態を表すことを諒解されたい。最初に、プロセス1600は、ソースポインタによって示された第1のシステムメモリロケーションからデータセットを取り出す(ステップ1602)。次に、プロセス1600は、機能ブロックの第2のシステムメモリロケーションにデータセットを再配置し、第2のシステムメモリロケーションは、命令に基づいて、第2のシステムメモリロケーションに関連付けられた動作の実行をトリガするために、宛先ポインタによって示され、機能ブロックは、トリガされたときに動作を実行するように構成され、機能ブロックは、第2のシステムメモリロケーションにおいてデータが受信されるたびにトリガされる(ステップ1604)。プロセス1600は、次いで、結果を生成するために、データセットを使用して、第2のシステムメモリロケーションにおいて機能ブロックによって動作を実施する(ステップ1606)。プロセス1600は、第2のシステムメモリロケーションに生成された結果を返し、機能ブロックは、生成された結果を含む修正されたデータセットを生成するためにデータセットを使用して動作を実施する(ステップ1608)。
【0070】
[0090]
図17は、開示される実施形態による、実行時間に従って典型的な動作を実行するためのプロセス1700の一実施形態を示すフローチャートである。
図17で説明されるプロセス1700は、追加の詳細を含む、
図14の説明において上記で説明されたステップ1402の一実施形態を表すことを諒解されたい。さらに、アクセストリガ型アーキテクチャシステムの典型的な動作の実行の例示的な実施形態は、
図8~
図9に関して説明された。
【0071】
[0091]プロセス1700は、第1のクロックサイクルおよび第2のクロックサイクル中に命令セットを読み取る(ステップ1702)。プロセス1700は、第3のクロックサイクル中に、命令セットに基づいてデータセットを読み取る(ステップ1704)。プロセス1700は、第4のクロックサイクル中に、命令セットに基づいてデータセットを書き込む(ステップ1706)。本明細書で説明されるように、第1のクロックサイクルと、第2のクロックサイクルと、第3のクロックサイクルと、第4のクロックサイクルとは、アクセストリガ型アーキテクチャシステムによって使用される連続クロックサイクルである。プロセス1700のステップの各々は、連続クロックサイクル中に実行され、したがって、順序が正しくおよび順次実施される。
【0072】
[0092]
図18は、開示される実施形態による、低減された実行時間に従って典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
図18で説明されるプロセス1800は、追加の詳細を含む、
図14の説明において上記で説明されたステップ1406の一実施形態を表すことを諒解されたい。さらに、低減された実行時間に従うアクセストリガ型アーキテクチャシステムの典型的な動作の実行の例示的な実施形態は、
図13に関して説明された。
【0073】
[0093]プロセス1800は、同時に、パイプライン化された第1のクロックサイクル中に、命令セットの現在の部分と命令セットの前の読取りによって示されたデータとを読み取る(ステップ1802)。命令セットの現在の部分は、
図13に示されている、ソースポインタ1310と宛先ポインタ1312とを含む。ここで、プロセス1800は、前のクロックサイクル中に読み取られたソースポインタ1306によって示されたデータを読み取るとともに、同時に、新しいソースポインタ1310を読み取る。プロセス1800は、次いで、同時に、パイプライン化された第2のクロックサイクル中に、命令セットの現在の部分を読み取り、命令セットの前の読取りによって示されたデータを書き込む(ステップ1804)。命令セットの現在の部分は、
図13に示されている、ソースポインタ1310と宛先ポインタ1312とを含む。ここで、プロセス1800は、前のクロックサイクル中に読み取られたソースポインタ1306によって示されたデータを書き込み、プロセス1800は、前に取得された宛先ポインタ1308によって示されたロケーションにデータを書き込む。同時に、プロセス1800は、新しい宛先ポインタ1312を読み取る。
【0074】
[0094]
図19は、開示される実施形態による、通常の実行時間に従って拡張された動作を実行するためのプロセス1900の一実施形態を示すフローチャートである。
図19で説明されるプロセス1900は、追加の詳細を含む、
図14の説明において上記で説明されたステップ1410の一実施形態を表すことを諒解されたい。さらに、通常の実行時間に従う拡張された動作の実行の例示的な実施形態は、
図10に関して説明された。
【0075】
[0095]最初に、プロセス1900は、第1の連続クロックサイクル中に命令セットの第1の部分を読み取る(ステップ1902)。
図10に示されているように、命令セットは、データセットの再配置のために、ソースポインタと宛先ポインタとを含む。ここで、プロセス1900は、第1のクロックサイクル中に命令セットの第1の部分を読み取る。
図10に示されている例示的な実施形態では、命令セットの第1の部分はソースポインタである。ただし、他の実施形態では、プロセス1900は、第1の連続クロックサイクル中に宛先ポインタを読み取り、第2の連続クロックサイクル中にソースポインタを読み取り得ることに留意されたい。ソースポインタと宛先ポインタとを読み取るまたは取得するためのプロセス1900のための順序は、アクセストリガ型アーキテクチャシステムの実装に基づいて、異なり得る。次に、プロセス1900は、第2の連続クロックサイクル中に命令セットの第1の部分のための誤り訂正を実施する(ステップ1904)。ここで、プロセス1900は、命令セットの取得された第1の部分の正確さを検証するために誤り訂正コード(ECC)を使用し得る。
【0076】
[0096]プロセス1900は、次いで、第3の連続クロックサイクル中に命令セットの第2の部分を読み取る(ステップ1906)。
図10に関して説明されたように、プロセス1900は、第3の連続クロックサイクル中に宛先ポインタを読み取る。ただし、他の実施形態では、宛先ポインタは、第1の連続クロックサイクル中に読み取られ得、ソースポインタは、第3の連続クロックサイクル中に取得され得る。プロセス1900は、第4の連続クロックサイクル中に命令セットの第2の部分のための誤り訂正を実施する(ステップ1908)。
【0077】
[0097]プロセス1900は、第5の連続クロックサイクル中に、命令セットの第1の部分に基づいてデータセットを読み取る(ステップ1910)。ここで、プロセス1900は、ソースポインタによって示されたシステムメモリ中のロケーションを識別するために(第1の連続クロックサイクル中に取得された)ソースポインタを使用し、プロセス1900は、示されたシステムメモリロケーションにおいて記憶されたデータを読み取る。プロセス1900は、第6の連続クロックサイクル中に、命令セットの第2の部分に基づいてデータセットを書き込む(ステップ1912)。プロセス1900は、宛先ポインタによって示されたシステムメモリ中の宛先ロケーションを識別するために(第3の連続クロックサイクル中に取得された)宛先ポインタを使用し、プロセス1900は、システムメモリ中の示された宛先ロケーションにデータを書き込む。
【0078】
[0098]
図20は、開示される実施形態による、変更された低減された実行時間に従って拡張された動作を実行するためのプロセス2000の一実施形態を示すフローチャートである。
図20で説明されるプロセス2000は、追加の詳細を含む、
図14の説明において上記で説明されたステップ1414の一実施形態を表すことを諒解されたい。さらに、変更された低減された実行時間に従う拡張された動作の実行の例示的な実施形態は、
図12に関して説明された。
【0079】
[0099]プロセス2000は、同時に、パイプライン化された第1のクロックサイクル中に、命令セットの将来の第1の部分をプリフェッチし、命令セットの前にプリフェッチされた第2の部分のための誤り訂正を実施し、命令セットの前にプリフェッチされた第1の部分に基づいてデータセットを読み取る(ステップ2002)。プロセス2000は、次いで、同時に、パイプライン化された第2のクロックサイクル中に、命令セットの将来の第2の部分をプリフェッチし、命令セットの将来の第1の部分のための誤り訂正を実施し、命令セットの前にプリフェッチされた第2の部分に基づいてデータセットを書き込む(ステップ2004)。
【0080】
[00100](
図2、
図3、
図6、および
図14~
図20に関して説明された)プロセス200、300、600、および1400~2000に関連して実施される様々なタスクは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せによって実施され得る。説明の目的で、プロセス200、300、600、および1400~2000の先行する説明は、
図1、
図4、
図5、および/または
図7~
図13に関連して述べられた要素に言及し得る。実際には、プロセス200、300、600、および1400~2000の部分が、説明されたシステムの異なる要素によって実施され得る。プロセス200、300、600、および1400~2000は、任意の数の追加または代替のタスクを含み得、
図2、
図3、
図6、および
図14~
図20に示されているタスクは、図示された順序で実施される必要はなく、プロセス200、300、600、および1400~2000は、各々、本明細書で詳細に説明されない追加の機能を有するより包括的なプロシージャまたはプロセスに、個々にまたは組合せで、組み込まれ得ることを諒解されたい。その上、
図2、
図3、
図6、および/または
図14~
図20に示されているタスクのうちの1つまたは複数は、意図された全体的な機能がそのままである限り、プロセス200、300、600、または1400~2000のうちの1つまたは複数の一実施形態から省略され得る。
【0081】
[00101]本明細書では、機能および/または論理ブロックコンポーネントに関して、ならびに様々なコンピューティングコンポーネントまたはデバイスによって実施され得る動作、処理タスク、および機能の記号表現を参照しながら、技法および技術が説明され得る。そのような動作、タスク、および機能は、コンピュータ実行されるか、コンピュータ化されるか、ソフトウェア実装されるか、またはコンピュータ実装されると言及されることがある。実際には、1つまたは複数のプロセッサデバイスは、システムメモリ中のメモリロケーションにおけるデータビットを表す電気信号を操作すること、ならびに信号の他の処理によって、説明される動作、タスク、および機能を行うことができる。データビットが維持されるメモリロケーションは、データビットに対応する特定の電気的、磁気的、光学的、または有機的特性を有する物理的ロケーションである。図に示されている様々なブロックコンポーネントは、指定された機能を実施するように構成された任意の数のハードウェア、ソフトウェア、および/またはファームウェアコンポーネントによって実現され得ることを諒解されたい。たとえば、システムまたはコンポーネントの一実施形態は、1つまたは複数のマイクロプロセッサまたは他の制御デバイスの制御下で様々な機能を行い得る、様々な集積回路コンポーネント、たとえば、メモリ要素、デジタル信号処理要素、論理要素、ルックアップテーブルなどを採用し得る。
【0082】
[00102]ソフトウェアまたはファームウェアにおいて実装されたとき、本明細書で説明されるシステムの様々な要素は、本質的に、様々なタスクを実施するコードセグメントまたは命令である。プログラムまたはコードセグメントは、プロセッサ可読媒体に記憶されるか、あるいは伝送媒体または通信経路を介して搬送波中に組み込まれたコンピュータデータ信号によって送信され得る。「コンピュータ可読媒体」、「プロセッサ可読媒体」、または「機械可読媒体」は、情報を記憶または転送することができる任意の媒体を含み得る。プロセッサ可読媒体の例は、電子回路、半導体メモリデバイス、ROM、フラッシュメモリ、消去可能ROM(EROM)、フロッピーディスケット、CD-ROM、光ディスク、ハードディスク、光ファイバー媒体、無線周波数(RF)リンクなどを含む。コンピュータデータ信号は、電子ネットワークチャネル、光ファイバー、空気、電磁経路、またはRFリンクなど、伝送媒体上で伝搬することができる任意の信号を含み得る。コードセグメントは、インターネット、イントラネット、LANなど、コンピュータネットワークを介してダウンロードされ得る。
【0083】
[00103]先行する説明は、互いに「接続された(connected)」または「結合された(coupled)」要素またはノードまたは特徴に言及する。別段に明記されていない限り、本明細書で使用される、「結合された」は、1つの要素/ノード/特徴が、別の要素/ノード/特徴に直接または間接的に連結される(あるいは別の要素/ノード/特徴と直接または間接的に通信する)ことを意味し、必ずしも機械的に連結されることを意味するとは限らない。同様に、別段に明記されていない限り、「接続された」は、1つの要素/ノード/特徴が、別の要素/ノード/特徴に直接連結される(または別の要素/ノード/特徴と直接通信する)ことを意味し、必ずしも機械的に連結されることを意味するとは限らない。したがって、
図1および
図7に示されている概略図が要素の例示的な構成を示すが、追加の介在する要素、デバイス、特徴、またはコンポーネントが、図示された主題の一実施形態において存在し得る。
【0084】
[00104]さらに、いくつかの用語も、以下の説明において参照の目的で使用されるすぎないことがあり、したがって、限定するものではない。たとえば、「上側(upper)」、「下側(lower)」、「上方の(above)」、および「下方の(below)」などの用語は、参照が行われる図面における方向を指す。「前面(front)」、「背面(back)」、「後面(rear)」、「側面(side)」、「外側(outboard)」および「内側(inboard)」などの用語は、テキストおよび説明の下でコンポーネントについて説明する関連する図面を参照することによって明らかにされる参照の無矛盾であるが任意の基準系内のコンポーネントの部分の配向および/またはロケーションについて説明する。そのような用語は、上記で具体的に述べられた単語、その派生語、および同様の意味の単語を含み得る。同様に、「第1の」、「第2の」という用語、および構造を指す他のそのような数値的な用語は、コンテキストによって明らかに示されない限り、シーケンスまたは順序を暗示しない。
【0085】
[00105]簡潔のために、本明細書では、信号処理、データ送信、シグナリング、ネットワーク制御、およびシステムの他の機能的態様(およびシステムの個々の動作コンポーネント)に関係する従来の技法は、詳細に説明されないことがある。さらに、本明細書に含まれる様々な図に示されている接続線は、様々な要素間の例示的な機能的関係および/または物理的結合を表すものである。多くの代替または追加の機能的関係または物理的接続が、主題の一実施形態において存在し得ることに留意されたい。
【0086】
[00106]本明細書で説明される機能ユニットのうちのいくつかは、特に機能ユニットの実装独立性を強調するために「モジュール」と呼ばれた。たとえば、本明細書でモジュールと呼ばれる機能は、カスタムVLSI回路またはゲートアレイを含むハードウェア回路、論理チップなどのオフザシェルフ半導体、トランジスタ、あるいは他の個別コンポーネントとして、全体的にまたは部分的に実装され得る。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイ論理、プログラマブル論理デバイスなど、プログラマブルハードウェアデバイスにおいても実装され得る。モジュールは、様々なタイプのプロセッサによる実行のためのソフトウェアにおいても実装され得る。実行可能コードの識別されたモジュールは、たとえば、オブジェクト、プロシージャ、または機能として編成され得る、コンピュータ命令の1つまたは複数の物理的または論理的モジュールを含み得る。とはいえ、識別されたモジュールの実行ファイルは、互いに物理的に配置される必要はなく、互いに論理的に連結されたとき、モジュールを含み、モジュールについての述べられた目的を達成する、異なるロケーションに記憶された異なる命令を含み得る。実際、実行可能コードのモジュールは、単一の命令、または多くの命令であり得、さらには、いくつかの異なるコードセグメント上で、異なるプログラムの間で、およびいくつかのメモリデバイスにわたって、分散され得る。同様に、動作データは、任意の好適な形式で実施され、任意の好適なタイプのデータ構造内に編成され得る。動作データは、単一のデータセットとして収集され得るか、または、異なるストレージデバイスにわたってなど、異なるロケーションにわたって分散され得、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として、存在し得る。
【0087】
[00107]上記の詳細な説明において少なくとも1つの例示的な実施形態が提示されたが、莫大な数の変形形態が存在することを諒解されたい。また、本明細書で説明される1つまたは複数の例示的な実施形態は、請求される主題の範囲、適用可能性、または構成をいかなる形でも限定するものではないことを諒解されたい。そうではなく、上記の詳細な説明は、説明される1つまたは複数の実施形態を実装するための好都合なロードマップを当業者に与える。特許請求の範囲によって定義される範囲から逸脱することなく要素の機能および構成において様々な変更が行われ得、それは、本特許出願を出願するときに知られている等価物および予見可能な等価物を含むことを理解されたい。
【符号の説明】
【0088】
100 アクセストリガ型アーキテクチャシステム
102 プロセッサアーキテクチャ
104 システムメモリ
106 初期化モジュール
108 命令モジュール
110 データ転送モジュール
112 機能ブロックモジュール
400 アクセストリガ型アーキテクチャシステム
402 データセット
404 システムメモリのサブセット
406 機能ブロック
408 結果
500 アクセストリガ型アーキテクチャシステム
502 データセット
504 システムメモリのサブセット
506 機能ブロック
508 命令の第2のセット
510 第2のアプリケーション
512 結果
700 アクセストリガ型アーキテクチャシステム
702 プロセッサアーキテクチャ
704 システムメモリ
706 初期化モジュール
708 命令モジュール
710 データ転送モジュール
712 機能ブロックモジュール
714 誤り訂正モジュール
716 パイプラインモジュール