(57)【要約】【課題】コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法を提供すること。【解決手段】本方法は、最初に、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行し、典型的な動作は、データセットおよび命令セットを取得することと、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用することとを含み、機能ブロックは、修正されたデータセットを生成するためにデータセットを使用して動作を実施する。本方法は、さらに、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行する。【選択図】図６
2019040589.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法であって、
実行時間に従って前記アクセストリガ型アーキテクチャの典型的な動作を実行するステップであって、前記典型的な動作は、
データセットおよび命令セットを取得することであって、前記命令セットが、ソースポインタと宛先ポインタとからなる現在の命令を含む、複数の命令を含む、取得することと、    前記ソースポインタによって示された第１のシステムメモリロケーションから前記データセットを取り出すこと、
機能ブロックの第２のシステムメモリロケーションに前記データセットを再配置することであって、前記第２のシステムメモリロケーションが、前記命令に基づいて、前記第２のメモリロケーションに関連付けられた前記動作の実行をトリガするために、前記宛先ポインタによって示され、前記機能ブロックが、トリガされたときに前記動作を実行するように構成され、前記機能ブロックは、前記第２のシステムメモリロケーションにおいてデータが受信されるたびにトリガされる、再配置すること、
結果を生成するために、前記データセットを使用して、前記第２のシステムメモリロケーションにおいて前記機能ブロックによって前記動作を実施すること、および
前記第２のシステムメモリロケーションに前記生成された結果を返すことであって、前記機能ブロックが、前記生成された結果を含む修正されたデータセットを生成するために前記データセットを使用して前記動作を実施する、返すこと
によって、前記機能ブロックに前記データセットを送信するために前記命令セットを使用することと
を含む、実行するステップと、
低減された実行時間を作成するために、前記典型的な動作の前記実行時間を低減するための前記典型的な動作のパイプラインを作成するステップと、
前記パイプラインを使用して、前記低減された実行時間に従って前記典型的な動作を実行するステップと、
前記アクセストリガ型アーキテクチャによる実行のための拡張された動作を生成するために、前記典型的な動作中に誤り訂正を実施するステップと、
変更された低減された実行時間を作成するために、前記拡張された動作の第２の実行時間を低減するための前記拡張された動作の変更されたパイプラインを作成するステップと、
前記変更されたパイプラインを使用して、前記変更された低減された実行時間に従って、前記拡張された動作を実行するステップと
を含む、方法。
【請求項２】
前記実行時間に従って前記典型的な動作を実行するステップが、
第１のクロックサイクルおよび第２のクロックサイクル中に前記命令セットを読み取るステップと、
第３のクロックサイクル中に、前記命令セットに基づいて前記データセットを読み取るステップと、
第４のクロックサイクル中に、前記命令セットに基づいて前記データセットを書き込むステップと
をさらに含み、
前記低減された実行時間に従って前記典型的な動作を実行するステップが、
同時に、パイプライン化された第１のクロックサイクル中に、前記命令セットの現在の部分と前記命令セットの前の読取りによって示されたデータとを読み取るステップと、
同時に、前記命令セットの前記現在の部分を読み取り、前記命令セットの前記前の読取りによって示された前記データを書き込むステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記パイプラインを使用して、前記低減された実行時間に従って前記典型的な動作を実行するステップが、
前記パイプライン化された第１のクロックサイクル中に、
前記命令セットの前記現在の部分を読み取るために第１のデータバスを使用することと、
前記命令セットの前記前の読取りによって示された前記データを読み取るために第２のデータバスを使用することと、
前記パイプライン化された第２のクロックサイクル中に、
前記命令セットの前記現在の部分を読み取るために前記第１のデータバスを使用することと、
前記命令セットの前記前の読取りによって示された前記データを書き込むために前記第２のデータバスを使用することと
をさらに含む、請求項２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]本出願は、２０１４年５月２０日に出願された、米国特許出願第１４／２８２，９１２号の一部継続出願である。
【０００２】
[0002]本明細書で説明される主題の実施形態は、一般にコンピュータアーキテクチャシステムに関する。より詳細には、主題の実施形態は、アクセストリガ型（ａｃｃｅｓｓ  ｔｒｉｇｇｅｒｅｄ）コンピュータアーキテクチャシステムの実装および使用に関する。
【背景技術】
【０００３】
[0003]汎用プロセッサは、時間制約型動作に依拠するアプリケーションの実行中に高い失敗率を経験する。一例として、エンジンコントローラを構築するとき、時間制約型ファクタに基づく特殊な考慮事項がある。たとえば、バルブは、ピストンとの衝突を回避するために極めて正確な時間に動くことを必要とされる。ここで、汎用プロセッサアーキテクチャは、最も有利な実装形態を提供しないであろう。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]したがって、時間が重要な関心事であるアプリケーションのために、時間に敏感なコンピューティングアーキテクチャとそれの使用のための方法とを提供することが望ましい。さらに、添付の図面ならびに上記の技術分野および背景技術とともに、後続の発明を実施するための形態および添付の特許請求の範囲を読めば、他の望ましい特徴および特性が明らかになろう。
【課題を解決するための手段】
【０００５】
[0005]本開示のいくつかの実施形態は、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法を提供する。本方法は、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行し、典型的な動作は、データセットおよび命令セットを取得することと、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用することとを含み、機能ブロックは、修正されたデータセットを生成するためにデータセットを使用して動作を実施する。本方法は、さらに、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行する。
【０００６】
[0006]本開示のいくつかの実施形態は、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するためのシステムを提供する。本システムは、複数のシステムメモリロケーションを含むシステムメモリ要素と、システムメモリ要素に通信可能に結合された少なくとも１つのプロセッサとを含み、少なくとも１つのプロセッサは、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行するように構成され、典型的な動作は、データセットおよび命令セットを取得することと、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用することとを含み、機能ブロックは、修正されたデータセットを生成するためにデータセットを使用して動作を実施する。少なくとも１つのプロセッサは、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成することと、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行することとを行うようにさらに構成される。
【０００７】
[0007]本開示のいくつかの実施形態は、プロセッサによって実行されたとき、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するための方法を実施する、命令を含んでいる非一時的、コンピュータ可読媒体を提供する。上記方法は、実行時間に従ってアクセストリガ型アーキテクチャの典型的な動作を実行し、典型的な動作は、データセットおよび命令セットを取得することであって、命令セットが、ソースポインタと宛先ポインタとからなる現在の命令を含む、複数の命令を含む、取得することと、ソースポインタによって示された第１のシステムメモリロケーションからデータセットを取り出すこと、動作に関連付けられた機能ブロックの第２のシステムメモリロケーションにデータセットを再配置することであって、第２のシステムメモリロケーションが、命令に基づいて、第２のメモリロケーションに関連付けられた動作の実行をトリガするために、宛先ポインタによって示され、機能ブロックが、トリガされたときに動作を実行するように構成され、機能ブロックは、第２のシステムメモリロケーションにおいてデータが受信されるたびにトリガされる、再配置すること、結果を生成するために、データセットを使用して、第２のシステムメモリロケーションにおいて機能ブロックによって動作を実施すること、および、第２のシステムメモリロケーションに生成された結果を返すことであって、機能ブロックが、生成された結果を含む修正されたデータセットを生成するためにデータセットを使用して動作を実施する、返すことによって、機能ブロックにデータセットを送信するために命令セットを使用することとを含む。上記方法は、さらに、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し、パイプラインを使用して、低減された実行時間に従って典型的な動作を実行する。
【０００８】
[0008]本発明の概要は、発明を実施するための形態において以下でさらに説明される概念の選択を簡略化された形で紹介するために与えられる。本発明の概要は、請求される主題の主要な特徴または本質的な特徴を識別するものではなく、請求される主題の範囲を決定する際の補助として使用されるものでもない。
【０００９】
[0009]主題のより完全な理解は、以下の図に関連して検討されると、発明を実施するための形態および特許請求の範囲を参照することによって得られ得、図全体にわたって、同様の参照番号は同様の要素を指す。
【図面の簡単な説明】
【００１０】
【図１】[0010]いくつかの実施形態による、アクセストリガ型アーキテクチャシステムの概略ブロック図表示である。
【図２】[0011]アクセストリガ型アーキテクチャを使用するアプリケーションを初期化するためのプロセスの一実施形態を示すフローチャートである。
【図３】[0012]アクセストリガ型アーキテクチャを使用するアプリケーションを用いてデータを操作するためのプロセスの一実施形態を示すフローチャートである。
【図４】[0013]いくつかの実施形態による、単一の動作を含む機能ブロックにアクセスするように構成された、システムメモリのサブセットの図表示である。
【図５】[0014]いくつかの実施形態による、第２の命令セットを含む機能ブロックにアクセスするように構成された、システムメモリのサブセットの図表示である。
【図６】[0015]アクセストリガ型アーキテクチャを使用するためのプロセスの一実施形態を示すフローチャートである。
【図７】[0016]開示される実施形態による、パイプライン化および誤り訂正技法を使用するアクセストリガ型アーキテクチャシステムの概略ブロック図表示である。
【図８】[0017]開示される実施形態による、アクセストリガ型アーキテクチャによって実行される典型的な動作の図表示である。
【図９】[0018]開示される実施形態による、連続的に実行される複数の典型的な動作の図表示である。
【図１０】[0019]開示される実施形態による、連続的に実行される複数の拡張された動作の図表示である。
【図１１】[0020]開示される実施形態による、パイプライン構造を使用して実行される拡張された動作の図表示である。
【図１２】[0021]開示される実施形態による、パイプライン構造および命令メモリ誤り訂正を使用して実行される複数の拡張された動作の図表示である。
【図１３】[0022]誤り訂正なしにパイプライン構造を使用して実行される複数の典型的な動作の図表示である。
【図１４】[0023]開示される実施形態による、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するためのプロセスの一実施形態を示すフローチャートである。
【図１５】[0024]開示される実施形態による、アクセストリガ型アーキテクチャの典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【図１６】[0025]開示される実施形態による、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用するためのプロセスの一実施形態を示すフローチャートである。
【図１７】[0026]開示される実施形態による、実行時間に従って典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【図１８】[0027]開示される実施形態による、低減された実行時間に従って典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【図１９】[0028]開示される実施形態による、通常の実行時間に従って拡張された動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【図２０】[0029]開示される実施形態による、変更された低減された実行時間に従って拡張された動作を実行するためのプロセスの一実施形態を示すフローチャートである。
【発明を実施するための形態】
【００１１】
[0030]以下の発明を実施するための形態は、本質的に例示的なものにすぎず、主題の実施形態またはそのような実施形態の適用例および使用を限定するものではない。本明細書で使用される、「例示的」という単語は、例、事例、または例示の働きをすることを意味する。例示的として本明細書で説明されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきであるとは限らない。さらに、先行する技術分野、背景技術、発明の概要、または以下の発明を実施するための形態において提示される明示または暗示される理論によって制限される意図はない。
【００１２】
[0031]以下の発明を実施するための形態は、本質的に例示的なものにすぎず、主題の実施形態またはそのような実施形態の適用例および使用を限定するものではない。本明細書で使用される、「例示的」という単語は、例、事例、または例示の働きをすることを意味する。例示的として本明細書で説明されるいかなる実装形態も、必ずしも他の実装形態よりも好ましいまたは有利であると解釈されるべきであるとは限らない。さらに、先行する技術分野、背景技術、発明の概要、または以下の発明を実施するための形態において提示される明示または暗示される理論によって制限される意図はない。
【００１３】
[0032]本明細書で提示される主題は、アクセストリガ型コンピュータアーキテクチャを初期化および使用するための装置および方法に関する。アクセストリガ型アーキテクチャは複数の機能ブロックを含む。各機能ブロックは、関連付けられたシステムメモリアドレスにおいて受信された入力データセットを使用して動作を実施する。いくつかの実施形態では、システムメモリアドレスは、システムメモリアドレスにおいて記憶された入力データセットを使用して動作を実施する、機能ブロックに関連付けられる。概して、特定のメモリアドレスにおいてデータセットが受信されたとき、メモリアドレスに関連付けられた機能ブロックは、受信されたデータセットを使用して算術および／または論理演算を実施し、次いで結果を返す。
【００１４】
[0033]また、本明細書では、アクセストリガ型アーキテクチャが、標準アクセストリガ型アーキテクチャ構成よりも、ロバストにされ、信頼性が高くされ、迅速に動作するように、コンピュータ実装アクセストリガ型アーキテクチャのための誤り訂正およびパイプライン化動作を実施するための技法が企図される。詳細には、誤り訂正技法は、アクセストリガ型アーキテクチャシステムによって記憶されたデータのバイナリ表現に対する「ビットフリッピング」または他の変更を防ぎ、したがって、アクセストリガ型アーキテクチャの信頼性を増加させ得る。パイプライン化技法は、アクセストリガ型アーキテクチャが動作を実施する速度を増加させることを可能にする。
【００１５】
[0034]図１は、いくつかの実施形態による、アクセストリガ型アーキテクチャシステム１００の概略ブロック図表示である。アクセストリガ型アーキテクチャシステム１００は、任意の所望のプラットフォームを使用して実装され得るが、概して、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）内で実装される１つまたは複数の状態機械を使用して実装される。たとえば、アクセストリガ型アーキテクチャシステム１００は、限定はしないが、データマルチプレクサ／デマルチプレクサ、遠隔データコンセントレータ、バストランスレータ（たとえば、イーサネット対ＭＩＬ−１５５３）、特殊な診断機器、埋込みプロセッサベースデバイスまたはシステム、あるいはプロセッサアーキテクチャ１０２とシステムメモリ１０４とを含む任意の他のデバイスのいずれかとして実現され得る。代替的に、アクセストリガ型アーキテクチャシステム１００は、限定はしないが、ネットワークデータ処理、航空機の入力および出力（Ｉ／Ｏ）信号の制御、家庭用水加熱などを含む、実施形態に関連付けられた任意のタイプのコントローラを使用するいくつかの実装形態を実現するために使用され得る。
【００１６】
[0035]アクセストリガ型アーキテクチャシステム１００は、限定はしないが、プロセッサアーキテクチャ１０２と、システムメモリ１０４と、初期化モジュール１０６と、命令モジュール１０８と、データ転送モジュール１１０と、機能ブロックモジュール１１２とを含み得る。実際には、アクセストリガ型アーキテクチャシステム１００の様々な実施形態は、特定のアプリケーションのために必要に応じて、追加または代替の要素およびコンポーネントを含み得る。アクセストリガ型アーキテクチャシステム１００のこれらの要素および特徴は、本明細書で説明されるように、所望の機能をサポートし、特に、アクセストリガ型アーキテクチャに固有の特徴を与えるために、必要に応じて動作可能に互いに関連付けられるか、互いに結合されるか、または場合によっては互いと協働するように構成され得る。説明しやすいようにおよび明快のために、これらの要素および特徴のための様々な物理的、電気的、および論理的結合ならびに相互接続は図１に示されていない。その上、アクセストリガ型アーキテクチャシステム１００の実施形態が、所望の機能をサポートするために協働する他の要素、モジュール、および特徴を含むことを諒解されたい。簡単のために、図１は、以下でより詳細に説明される、アクセストリガ型アーキテクチャ特徴に関係するいくつかの要素のみを示す。
【００１７】
[0036]プロセッサアーキテクチャ１０２は、１つまたは複数のプロセッサ（たとえば、複数のチップ、または単一のチップ上の複数のコア）、コントローラ、マイクロプロセッサ、マイクロコントローラ、処理コア、および／あるいは任意の数の「クラウドベース」のまたは他の仮想システムを含む、任意の数の分散型システムまたは集積システムにわたって拡散された他のコンピューティングリソースなど、任意の好適な処理システムを使用して実装され得る。代替的に、プロセッサアーキテクチャ１０２は、マイクロコントローラまたはプロセッサを使用して実装されず、この場合、アクセストリガ型アーキテクチャシステム１００は、特定のアプリケーションに関連するマイクロコントローラおよび／またはプロセッサコンポーネントを利用する。
【００１８】
[0037]プロセッサアーキテクチャ１０２は、システムメモリ１０４と通信するように構成される。システムメモリ１０４は、任意の種類のランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、磁気または光大容量ストレージなどを含む、プロセッサアーキテクチャ１０２上での実行のためのプログラミング命令を記憶することが可能な任意の非一時的短期または長期ストレージあるいは他のコンピュータ可読媒体を表す。システムメモリ１０４は、そのようなコンピュータ可読媒体の１つの好適な実装形態を表し、代替または追加として、プロセッサアーキテクチャ１０２は、ポータブルまたはモバイルコンポーネントあるいはアプリケーションプラットフォーム、たとえば、ポータブルハードドライブ、ＵＳＢフラッシュドライブ、光ディスクなどとして実現された外部コンピュータ可読媒体を受け、その外部コンピュータ可読媒体と協働することができることに留意されたい。
【００１９】
[0038]初期化モジュール１０６は、アクセストリガ型アーキテクチャシステム１００において利用される複数の機能ブロックを作成するように構成される。初期化モジュール１０６は、機能ブロックを作成するために特定のアプリケーションに関連する動作または機能をシステムメモリ１０４中のロケーションに関連付けることによってこれを達成する。特定のアプリケーションの実行中に、機能ブロックは、関連付けられたメモリロケーションにデータのセットが到着するたびに、一貫して、同じ動作を実施するように構成される。
【００２０】
[0039]命令モジュール１０８は、システムメモリ１０４中の記憶ロケーションから命令を取り出すことと、各命令中に含まれる情報を認識することと、命令の実行を始動することとを行うように構成される。概して、各命令は、データが記憶されたシステムメモリ中のロケーションから、システムメモリ１０４中の新しいロケーションにデータのセットを移動することが必要とされる情報を含む。各命令は、２つのポインタ、すなわち、ソースポインタと宛先ポインタとを含む。ソースポインタは、命令が実行されたときにデータのセットがそこから移動される、システムメモリ１０４中のソースロケーションを参照する。宛先ポインタは、データのセットが移動される、システムメモリ１０４中の宛先ロケーションを参照する。システムメモリブロック１０４内の各ソースロケーションおよび各宛先ロケーションは、メモリ、Ｉ／Ｏ、または機能ブロックに割り当てられ得る。いくつかの実施形態では、アクセストリガ型アーキテクチャシステム１００を使用する特定のアプリケーションは、複数の命令を含む命令テーブルを利用する。各命令テーブルは特定のアプリケーションに固有であり、命令テーブルが実行されたとき、各命令は連続的に実施される。命令テーブルは、個々にまたは１つまたは複数の追加の命令テーブルとの組合せで使用され得る。
【００２１】
[0040]いくつかの実施形態では、命令モジュール１０８は、テーブルの終了に達すると、テーブルの始まりに戻り、再び命令のシーケンスを実行することによって、ループを実施するように構成される。他の実施形態では、命令モジュール１０８は、特定の命令テーブルの終了に達すると、別のテーブルを実行するように構成される。いくつかの実施形態では、命令モジュール１０８は、命令の１つのリストのみを実行することと、命令リストの終了に達すると実行を中止することとを行うように構成される。いくつかの実施形態では、命令リストの実行は、外部イベントによってトリガされたときに発生する。
【００２２】
[0041]データ転送モジュール１１０は、命令モジュール１０８から命令情報を受信することと、各命令において指定されたデータセットの再配置を行うこととを行うように構成される。概して、データ転送モジュール１１０は、各命令においてソースポインタと宛先ポインタとにアクセスし、ソースポインタに関連付けられたソースロケーションを識別し、宛先ポインタに関連付けられた宛先ロケーションを識別し、ソースロケーションからデータのセットを取り出し、宛先ロケーションにデータのセットを送信する。
【００２３】
[0042]機能ブロックモジュール１１２は、宛先ロケーションにおいて受信されたデータのセットを使用して動作を実施するように適切に構成される。各宛先ロケーションは、システムメモリアドレスによって示される。概して、機能ブロックは宛先ロケーションに関連し、特定のシステムメモリアドレスによって示された特定の宛先ロケーションにおいてデータのセットが受信されたとき、機能ブロックはトリガされる。トリガされると、機能ブロックは指定の動作を実施する。指定の動作は、機能ブロックに関連付けられた特定の宛先ロケーションにおいて受信されたデータの各セットについて一貫して実施される。
【００２４】
[0043]機能ブロックによって実施される動作は、受信されたデータを１つまたは複数のやり方で改変する。動作は、算術演算、論理演算、および／またはアクセストリガ型アーキテクチャシステム１００によって実施されるタスクに適用可能な任意の特殊化された機能を含み得る。いくつかの実施形態では、特定の機能ブロックに関連し、特定の機能ブロックによって実施される指定の動作は、２つ以上の基本動作を含み得る。たとえば、機能ブロックＡは、データの受信されたセットを増分するように構成され得、機能ブロックＢは、結果を生成するために、データのセットを増分することと、データの第２のセットを用いて論理ＯＲ演算を実施することとを行うように構成され得る。特殊化された機能は、巡回冗長検査（ＣＲＣ）の計算、暗号化／解読ステップ、イーサネットパケットからヘッダを取り外すこと、１つまたは複数のデータストリーム中の文字のシーケンスの探索を実施することなどを含み得る。機能ブロックのこの特殊化は、アクセストリガ型アーキテクチャシステム１００の効率を最適化する、指定の機能ブロックとのプロセスの関連付けと、機能ブロックの再利用可能なライブラリの作成とを可能にする。
【００２５】
[0044]アクセストリガ型アーキテクチャシステム１００による有用なタスクの実施を可能にするために、システムメモリ１０４内のロケーションは、メモリデバイスに排他的にマッピングされない。いくつかの実施形態では、システムメモリ１０４ロケーションは、データ入力および出力のために使用される特殊化されたロケーションにマッピングされる。いくつかの実施形態では、システムメモリ１０４ロケーションは、機能ブロックモジュール１１２内の専用の機能にマッピングされる。たとえば、アクセストリガ型アーキテクチャシステム１００は、システムメモリ１０４内の特殊化されたロケーションから何らかの外部情報（たとえば、現在の空気速度）を読み取るように構成される。この特殊化されたシステムメモリ１０４ロケーションは、「インメールボックス（ｉｎ−ｍａｉｌｂｏｘ）」と呼ばれることがある。アクセストリガ型アーキテクチャシステム１００は、次いで、その情報を、機能ブロックに関連付けられた第２の特殊化されたシステムメモリ１０４ロケーションに記憶する。この例では、機能ブロックは、データの受信されたセットを用いて、「比較」動作を実施するように構成される。アクセストリガ型アーキテクチャシステム１００は、次いで、システムＲＡＭメモリからの値（たとえば、空気速度上限）を同じ機能ブロックに関連付けられた第３の特殊化されたメモリロケーションに転送する。機能ブロックは、「比較」機能を実施し、２つのデータ値を比較し、結果を作り出し、結果は、次いで、第３の特殊化されたメモリロケーションに記憶される。いくつかの実施形態では、その結果は、システムメモリ中の第４の特殊化されたロケーション（たとえば、「アウトメールボックス（ｏｕｔ−ｍａｉｌｂｏｘ）」）に記憶され得、そこにおいて、結果は、アクセストリガ型アーキテクチャシステム１００内の他の機能ブロックおよび／またはシステムによる取出しのために利用可能である。この特定の例では、現在の空気速度と空気速度上限との間の比較結果は、エンジンスロットル設定など、外部設定を調整するために使用され得る。
【００２６】
[0045]実際には、初期化モジュール１０６、命令モジュール１０８、データ転送モジュール１１０、および／または機能ブロックモジュール１１２は、本明細書でより詳細に説明される機能および動作のうちの少なくともいくつかを実施するために、プロセッサアーキテクチャ１０２を用いて実装され（またはプロセッサアーキテクチャ１０２と協働し）得る。この点について、初期化モジュール１０６、命令モジュール１０８、データ転送モジュール１１０、および／または機能ブロックモジュール１１２は、適切に書かれた処理論理、アプリケーションプログラムコードなどとして実現され得る。
【００２７】
[0046]図２は、アクセストリガ型アーキテクチャを使用するアプリケーションを初期化するためのプロセス２００の一実施形態を示すフローチャートである。いくつかの実施形態では、アプリケーションは、１つまたは複数の特定のタスクを達成するためのツールとしてのアクセストリガ型アーキテクチャの使用を可能にする実行可能命令を含み得る。最初に、プロセス２００は、複数の宛先メモリロケーションを認識する（ステップ２０２）。宛先メモリロケーションは、データの１つまたは複数のセットがそれに転送されるシステムメモリアドレスを含む。複数の宛先メモリロケーションは、設計時にあらかじめ定義される。ここで、プロセス２００は、複数のシステムメモリアドレスからなる、システムメモリ中のストレージのあらかじめ定義されたブロックを認識する。
【００２８】
[0047]次に、プロセス２００は、アプリケーションに関連する複数の動作を識別する（ステップ２０４）。複数の動作は、プロセス２００が実行することが可能であり、アプリケーションに適用可能な命令と区別可能である、任意の命令を含み得る。概して、複数の動作の各々は、算術および／または論理演算を含む。いくつかの例示的な実施形態では、複数の動作の各々は、単一のまたはワンステップ機能を含む。他の実施形態では、複数の動作の各々は機能の組合せを含み得る。
【００２９】
[0048]適用可能な宛先メモリロケーションを認識し（ステップ２０２）、アプリケーションに関連する複数の動作を識別した（ステップ２０４）後に、プロセス２００は、複数の機能ブロックを作成するために複数の宛先メモリロケーションの各々を複数の動作のそれぞれの動作に関連付け、複数の機能ブロックの各々は、それぞれの宛先メモリロケーションにある（ステップ２０６）。ここで、プロセス２００は、識別された関連する動作のうちの１つと宛先メモリロケーションとの間の接続を作成し、機能ブロックを生じる。各機能ブロックは、宛先メモリロケーションにおいてデータのセットが受信されたとき、関連付けられた動作を実施する。ここで、機能ブロックのグループは、動作のグループをメモリロケーションのグループに関連付けることによって作成される。各機能ブロックは概して１つのタスクを実施するにすぎないが、これらの機能ブロックは、より複雑なタスキングを実施するために互いと組み合わせて使用され得る。
【００３０】
[0049]図３は、アクセストリガ型アーキテクチャを使用するアプリケーションを用いてデータを操作するためのプロセス３００の一実施形態を示すフローチャートである。最初に、プロセス３００は、システムメモリロケーションに関連付けられた指定の機能ブロックにおいてデータのセットを受信する（ステップ３０２）。一実装形態では、アクセストリガ型アーキテクチャは航空機によって利用され得、この例では、データのセットは、航空機制御面（フラップ、エレベータなど）についての位置情報、エンジン温度、空気速度、燃料重量、全地球測位システム（ＧＰＳ）情報、エンジン性能パラメータ、自動飛行制御パラメータなどを含み得る。
【００３１】
[0050]次に、プロセス３００は、結果を生成するために、データのセットを使用して、指定の機能ブロックにおいて動作を実施し、動作は、指定の機能ブロックにおいて情報が受信されるたびに、一貫して実施される（ステップ３０４）。いくつかの実施形態では、動作は、図４に示されているように、単一の機能を含み得る。図４は、いくつかの実施形態による、単一の動作を含む機能ブロック４０６にアクセスするように構成された、システムメモリのサブセット４０４を含む、アクセストリガ型アーキテクチャシステム４００の図表示である。図示のように、データセット４０２は、機能ブロック４０６に関連付けられた、メモリロケーション０ｘ８０００：０００３において受信される。機能ブロック４０６は、受信されたデータセット４０２を使用して、単一の機能、またはワンステップ動作を実行する。単一の動作の例示的な実施形態は、限定はしないが、算術演算（たとえば、増分、減分など）、論理演算（たとえば、ＡＮＤ、ＯＲ、ＸＯＲなど）などを含み得る。単一の機能が実施されると、機能ブロック４０６は、同じメモリロケーションに結果４０８を返す。したがって、メモリロケーション０ｘ８０００：０００３に送信された元のデータセット４０２は変更され、メモリロケーション０ｘ８０００：０００３のコンテンツが将来の時間において（たとえば、後続のクロックサイクル中に）取り出されたとき、元のデータセット４０２はもはや利用可能でなくなる。
【００３２】
[0051]いくつかの実施形態では、動作は、図５に示されているように、実施されるべき命令の完全に新しいセットを含み得る。図５は、いくつかの実施形態による、第２のアプリケーション５１０のための命令の第２のセット５０８を含む機能ブロック５０６にアクセスするように構成された、システムメモリのサブセット５０４を含む、アクセストリガ型アーキテクチャシステム５００のサブセットの図表示である。図示のように、データセット５０２は、機能ブロック５０６に関連付けられた、メモリロケーション０ｘ８０００：０００５において受信される。機能ブロック５０６は、受信されたデータセット５０２を使用して動作を実行し、同じメモリロケーションに結果５１２を返す。ソースロケーション（図示せず）からメモリロケーション０ｘ８０００：０００５にデータセット５０２を転送するこのアクションは、命令の第１のセットのうちの少なくとも１つの実行中に第１のアプリケーションによって実施される。
【００３３】
[0052]メモリロケーション０ｘ８０００：０００５においてデータセット５０２が受信されると、データセット５０２は、機能ブロック５０６への入力値として使用される。機能ブロック５０６は、命令の第２のセット５０８を含む、第２のアプリケーション、またはサブアプリケーションを実行する。命令の第２のセット５０８は、第１のアプリケーションに関連付けられた、命令の第１のセットによって「参照」または認識されない。命令の第１のセットと同様に、命令の第２のセット５０８の各々は、ソースロケーションからシステムメモリ中の宛先ロケーションにデータのセットを再配置するためのコマンドを含む。命令の第２のセット５０８の、第１の命令は、別の機能ブロックに関連付けられた別の動作の実施のためにメモリロケーション０ｘ８０００：０００５（すなわち、ソースロケーション）から別のメモリアドレス（すなわち、宛先ロケーション、図示せず）にデータセット５０２を再配置する。この例では、第２のアプリケーション５１０は、出力結果５１２を作り出すために、連続的に、命令の第２のセット５０８を実行する。命令の第２のセット５０８の各々は、単一の機能または動作を実行し、命令の第２のセット５０８全体は、ワンステップ機能超を必要とする、より複雑な動作のために使用される。
【００３４】
[0053]メモリロケーション０ｘ８０００：０００５がシングルステップ動作に関連付けられたときの場合のように、出力結果５１２が生成されると、メモリロケーション０ｘ８０００：０００５に送信された元のデータセット５０２は変更される。メモリロケーション０ｘ８０００：０００５のコンテンツが将来の時間において（たとえば、後続のクロックサイクル中に）取り出されたとき、元のデータセット５０２はもはや利用可能でなくなる。
【００３５】
[0054]図３に戻ると、動作を実施した（ステップ３０４）後に、プロセス３００は、システムメモリロケーションに生成された結果を返す（ステップ３０６）。図４および図５に関して示されているように、機能ブロックにおいて受信されたデータセットを使用して動作が実施されると、データセットは、それ自体が動作によって変更または改変される。この結果は、次いで、データセットが受信されたメモリロケーションにおいて記憶され、元のデータセットを効果的に上書きする。この更新されたまたは「新しい」データセットは、メモリロケーション中に存在し、別のシングルステップ動作、または複数のシングルステップ動作を含む第２のアプリケーションを実施するために、取出しおよびシステムメモリ中の別の機能ブロックへの転送のために利用可能である。
【００３６】
[0055]図６は、アクセストリガ型アーキテクチャを使用するためのプロセス６００の一実施形態を示すフローチャートである。最初に、プロセス６００は命令ポインタを受信し、命令ポインタは、システムメモリ中の第１の命令ロケーションを参照する（ステップ６０２）。命令ポインタは、第１の命令が所与のアプリケーションのために存在する、システムメモリアドレスを示す。各アプリケーションは複数の実行可能命令を含み、命令ポインタは、特定のアプリケーションの実行を始めるためにアクセスされる。
【００３７】
[0056]次に、プロセス６００は、第１の命令ロケーションにおいて記憶された第１の命令にアクセスする（ステップ６０４）。第１の命令から、プロセス６００は、システムメモリ中のソースロケーションに関連付けられたソースポインタと、システムメモリ中の宛先ロケーションに関連付けられた宛先ポインタとを識別する（ステップ６０６）。各命令は、最低でも、ソースポインタと宛先ポインタとを含む。これらのポインタの各々は、システムメモリ中のアドレスを参照し、システムメモリは、データのセットを各アドレスにおいて記憶することが可能である。
【００３８】
[0057]プロセス６００は、次いで、ソースロケーションから、ソースポインタによって参照されるデータのセットを取り出し（ステップ６０８）、宛先ロケーションにデータのセットを書き込み、宛先ロケーションは、指定の機能ブロックに関連付けられる（ステップ６１０）。プロセス６００の目的は、順次、一連の命令を実行することである。各命令は、ソースメモリロケーションから宛先メモリロケーションにデータのセットを移動し、宛先メモリロケーションにおける機能ブロックがデータのセットを使用して動作を実施することを可能にする。
【００３９】
[0058]システムメモリ中の宛先ロケーションにデータのセットを書き込んだ（ステップ６１０）後に、プロセス６００は、命令セットの終了に達したかどうかを決定する（ステップ６１２）。プロセス６００は、あるシステムロケーションから別のシステムロケーションへのデータ転送を実施する。停止、ルーピング、または新しいリストの実行を含むプロセス６００のすべての挙動は、実行されている命令内に符号化される。一例では、プロセス６００は、命令セットを再び実行するために、ループを実施する。この例では、命令セットの最終命令は、同じリストの始まりのアドレスを用いて命令ポインタを再ロードするための命令を含み得る。代替的に、最終命令は、機能ブロックが新しいリストに対処するために結果を変更するまで、その機能ブロックを読み取ることであり得るか、または、最終命令は、検出されたイベントの発生時のみに現在の命令リストを繰り返すことであり得る。
【００４０】
[0059]命令セットの終了に達した場合（ステップ６１２の「はい」分岐）、プロセス６００は終了する。命令セットの終了に達しなかった場合（ステップ６１２の「いいえ」分岐）、プロセス６００は、命令ポインタを増分し（ステップ６１６）、増分された命令ポインタによって示された命令ロケーションにおいて記憶された命令にアクセスする（ステップ６０４）ためにプロセス６００の始まりに戻る。実行可能命令の各々は、実行しやすいように、システムメモリに連続順序で記憶される。いくつかの実施形態では、複数の実行可能命令は、連続順序で記憶された、または言い換えると、各命令が実行される順序で記憶された、複数の命令を含む、アプリケーションについての「命令テーブル」を含む。各命令は、システムメモリ中の特定のロケーションにおいて記憶され、これらのロケーションの各々は、システムメモリアドレスによって参照される。命令ポインタは、命令テーブルの第１の命令のシステムメモリアドレスにプロセス６００を導く。増分されると、命令ポインタは、命令が記憶された次のメモリロケーションをポイントし、プロセス６００はステップ６０４に戻り、再び始まる。
【００４１】
[0060]いくつかの実施形態では、プロセス６００は、ステップ６０２の実行より前に、アプリケーションについての命令テーブルを最初に受信する。ここで、命令テーブルは複数の命令を含み、命令ポインタによって示された命令ロケーションにおいて記憶された命令は、命令テーブル中で見つかる命令のうちの１つである。命令テーブル中に含まれている、複数の命令の各々は、ソースメモリロケーションから宛先メモリロケーションに情報を移動するためのコマンドを含む。命令テーブルを使用して、プロセス６００は、図６で説明されるプロセス６００のステップを通して、連続的に、複数の命令の各々を実行する。命令ポインタが増分される（ステップ６１６）たびに、プロセス６００は、命令テーブル中の次のステップを実行するために前進する。いくつかの実施形態では、複数の命令の各々が連続的に実行されたとき、プロセス６００は、第２の複数の命令を含む第２の命令テーブルを受信し、第２の複数の命令の各々を連続的に実行し、第２の複数の命令の各々も、ソースメモリロケーションから機能ブロックに関連付けられた宛先メモリロケーションに情報を移動するためのコマンドを含む。
【００４２】
[0061]アクセストリガ型アーキテクチャのための誤り訂正およびパイプライン化技法
[0062]図７は、開示される実施形態による、パイプライン化および誤り訂正技法を使用するアクセストリガ型アーキテクチャシステム７００の概略ブロック図表示である。アクセストリガ型アーキテクチャシステム７００の図示の実施形態は、概して、限定はしないが、プロセッサアーキテクチャ７０２と、システムメモリ７０４と、初期化モジュール７０６と、命令モジュール７０８と、データ転送モジュール７１０と、機能ブロックモジュール７１２と、誤り訂正モジュール７１４と、パイプラインモジュール７１６とを含む。アクセストリガ型アーキテクチャシステム７００のこれらの要素および特徴は、本明細書で説明されるように、所望の機能をサポートするために必要に応じて動作可能に互いに関連付けられるか、互いに結合されるか、または場合によっては互いと協働するように構成され得る。説明しやすいようにおよび明快のために、これらの要素および特徴のための様々な物理的、電気的、および論理的結合ならびに相互接続は図７に示されていない。その上、アクセストリガ型アーキテクチャシステム７００の実施形態が、所望の機能をサポートするために協働する他の要素、モジュール、および特徴を含むことを諒解されたい。簡単のために、図７は、以下でより詳細に説明される、アクセストリガ型コンピュータアーキテクチャのための、誤り訂正およびパイプライン化技法に関係するいくつかの要素のみを示す。
【００４３】
[0063]プロセッサアーキテクチャ７０２、システムメモリ７０４、初期化モジュール７０６、命令モジュール７０８、データ転送モジュール７１０、および機能ブロックモジュール７１２は、構成および機能において、図１に示されているアクセストリガ型アーキテクチャシステムのコンテキストにおいて上記で説明されたそれらの相対物と同様である。したがって、アクセストリガ型アーキテクチャシステム７００のこれらの要素の共通の特徴および動作は、ここで冗長的に説明されない。
【００４４】
[0064]誤り訂正モジュール７１４は、取り出されたデータが正確、有効、または場合によっては正しいかどうかをシステム７００が決定することができるように、アクセストリガ型アーキテクチャシステム７００のための誤り訂正を実施するように構成される。誤り訂正モジュール７１４は、パリティビット、誤り訂正コード（ＥＣＣ：ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅ）、および／または当技術分野でよく知られており一般的に使用される他の誤り訂正技法を使用する。誤り訂正モジュール７１４は、破損したデータを識別するように構成される。いくつかの実施形態では、誤り訂正モジュール７１４は、破損されたまたは場合によっては不正確であるデータを識別することと、また、データが正しい状態に戻るようにデータを訂正することとを行うように構成される。
【００４５】
[0065]パイプラインモジュール７１６は、アクセストリガ型アーキテクチャシステム７００が複数の動作を同時に（すなわち、同じクロックサイクル中に）実行および実施することができるように、アクセストリガ型アーキテクチャシステム７００の動作を合理化するように構成される。パイプラインモジュール７１６は、概して、アクセストリガ型アーキテクチャシステム７００の２つまたはそれ以上のデータバス（たとえば、データバス、命令バスなど）を使用してそのような同時動作を実施する。
【００４６】
[0066]実際には、誤り訂正モジュール７１４および／またはパイプラインモジュール７１６は、本明細書でより詳細に説明される機能および動作のうちの少なくともいくつかを実施するために、プロセッサアーキテクチャ７０２を用いて実装され（またはプロセッサアーキテクチャ７０２と協働し）得る。この点について、誤り訂正モジュール７１４および／またはパイプラインモジュール７１６は、適切に書かれた処理論理、アプリケーションプログラムコードなどとして実現され得る。
【００４７】
[0067]図８は、開示される実施形態による、アクセストリガ型アーキテクチャによって実行される典型的な動作８００の図表示である。典型的な動作８００は４つのサブ動作を含み、サブ動作の各々は連続クロックサイクル中に実行される。したがって、図示された典型的な動作８００の実行は、完了のために４つのクロックサイクルを必要とする。典型的な動作８００のサブ動作は、アクセストリガ型アーキテクチャが、命令セットを読み取り、次いで、システムメモリ中のロケーションから、データのセットを入力値として使用して１つまたは複数の動作が実施され得る機能ブロックに、データのセットを移動するために命令を使用するように、実行される。このプロセスは、図１〜図６の説明に関して、前に詳細に説明された。
【００４８】
[0068]第１のクロックサイクル中に、第１のサブ動作は実行され、第１のサブ動作はソースポインタを読み取ること８０２である。命令セットは、前に説明されたように、ソースポインタと宛先ポインタとを含む。ここで、命令セットのソースポインタは、第１のクロックサイクル中に読み取られる。第２のクロックサイクル中に、第２のサブ動作は実行され、第２のサブ動作は宛先ポインタを読み取ること８０４である。ここで、命令セットの宛先ポインタは、第２のクロックサイクル中に読み取られる。したがって、（ソースポインタと宛先ポインタとを含む）命令セットは、典型的な動作８００の第１の２つのクロックサイクル中に読み取られる。第３のクロックサイクル中に、第３のサブ動作は実行され、第３のサブ動作はソースポインタからデータを読み取ること８０６である。ソースポインタは、データを記憶するシステムメモリ中のロケーションを参照し、データは、第３のクロックサイクル中にシステムメモリロケーションにおいて読み取られる。第４のクロックサイクル中に、第４のサブ動作は実行され、第４のサブ動作は宛先ポインタにデータを書き込むこと８０８である。宛先ポインタは、システムメモリ中の第２のロケーションを参照し、第２のロケーションは、データを入力値として使用して１つまたは複数の動作が実施される機能ブロックを含む。ここで、データは、第４のクロックサイクル中に宛先ポインタによって示された第２のロケーションに書き込まれる。
【００４９】
[0069]図９は、複数の典型的な動作９０２、９０４、９０６のシーケンス９００の図表示である。複数の典型的な動作９０２、９０４、９０６は、開示される実施形態に従って、連続的に実行される。複数の典型的な動作９０２、９０４、９０６の各々は４つのサブ動作を含み、サブ動作の各々は、図８に関して前に説明されたように、連続クロックサイクル中に実行される。また、図８に関して前に説明されたように、サブ動作は、第１の連続クロックサイクル中にソースポインタを読み取ることと、第２の連続クロックサイクル中に宛先ポインタを読み取ることと、第３の連続クロックサイクル中にソースポインタからデータを読み取ることと、第４の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む。図示のように、シーケンス９００は、典型的な動作９０２の後に実行される典型的な動作９０４と、典型的な動作９０４の後に実行される典型的な動作９０６とを含む。複数の典型的な動作９０２、９０４、９０６の各々は、連続クロックサイクル中に、順序が正しく、アクセストリガ型アーキテクチャによって実施される。
【００５０】
[0070]４つのサブ動作のうちの最後の動作（たとえば、第４の連続クロックサイクル中に宛先ポインタにデータを書き込むこと）中に、アクセストリガ型アーキテクチャシステムは、複数の命令（すなわち、複数の命令を含む命令セット）のうちの次の命令に命令ポインタを増分する。命令ポインタは、機能ユニット（たとえば、図１〜図７および図１５〜図１６に関して説明される、機能ブロック）によって、ジャンプ、分岐を作成し、必要に応じて、不当ジャンプおよび／または不当分岐からガードされるように影響を及ぼされ得る。
【００５１】
[0071]図１０は、開示される実施形態による、連続的に実行される複数の拡張された動作１００２、１００４のシーケンス１０００の図表示である。図示のように、シーケンス１０００は、図９に関して前に説明されたように、連続的に実行される複数の動作１００２、１００４を含む。ただし、図９は、第１の連続クロックサイクル中にソースポインタを読み取ることと、第２の連続クロックサイクル中に宛先ポインタを読み取ることと、第３の連続クロックサイクル中にソースポインタからデータを読み取ることと、第４の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む典型的な動作の連続実行を示す。
【００５２】
[0072]対照的に、図１０に示されているシーケンス１０００は、第１の連続クロックサイクル中にソースポインタを読み取ることと、第２の連続クロックサイクル中に誤り訂正コード（ＥＣＣ）を使用して誤り訂正を実施すること１００６と、第３の連続クロックサイクル中に宛先ポインタを読み取ることと、第４の連続クロックサイクル中にＥＣＣを使用して誤り訂正を実施すること１００８と、第５の連続クロックサイクル中にソースポインタからデータを読み取ることと、第６の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む拡張された動作１００２、１００４の連続実行を示す。
【００５３】
[0073]ここで、誤り訂正技法が、典型的なアクセストリガ型アーキテクチャ動作に組み込まれる。典型的なアクセストリガ型アーキテクチャ動作のサブ動作が実施され、誤り訂正は、アクセストリガ型アーキテクチャの動作が、信頼性が高く正確な結果を作り出すことを保証するために使用される。第２のクロックサイクル中に、第１のクロックサイクル中に読み取られたソースポインタの正確さを検証するために、誤り訂正が実施される１００６。第４のクロックサイクル中に、第３のクロックサイクル中に読み取られた宛先ポインタの正確さを検証するために、誤り訂正が実施される１００８。したがって、拡張された動作１００２、１００４は、アクセストリガ型アーキテクチャの改善された正確さおよび信頼性を与える。さらに、いくつかの実施形態では、誤り訂正技法は、第５の連続クロックサイクル中にソースポインタから読み取られたデータを検証するために使用される。これは、レイテンシのインラインクロックサイクルとして完成され得る。
【００５４】
[0074]図１１は、開示される実施形態による、パイプライン構造を使用して実行される拡張された動作１１０２の図表示である。アクセストリガ型アーキテクチャによって実施される拡張された動作１１０２は、図１０に関して前に説明された拡張された動作を含む。ただし、拡張された動作１１０２は、拡張された動作１１０２が、実行時間を低減するために、同時動作を実施するためにパイプライン構造を使用するという点で、図１０の拡張された動作とは異なる。パイプライン構造１１００は、（１）第１の連続クロックサイクル中にソースポインタを読み取ること１１０４と、（２）第２の連続クロックサイクル中に宛先ポインタを読み取ること１１０６と、並列に、誤り訂正コード（ＥＣＣ）を使用して誤り訂正を実施すること１１０８と、（３）第３の連続クロックサイクル中にＥＣＣを使用して誤り訂正を実施すること１１１０と、並列に、ソースポインタからデータを読み取ること１１１２と、（４）第４の連続クロックサイクル中に宛先ポインタにデータを書き込むこと１１１４とを含む、拡張された動作１１０２のパイプライン化された実行を示す。
【００５５】
[0075]図示のように、１つの完全な拡張された動作１１０２を実施するために必要とされる総時間は、４つのクロックサイクルである。しかしながら、図１２に示されているように、同時に実行されるサブ動作は、連続の拡張された動作のいくつかのサブ動作が重複し、並列に実施されるように構成される。したがって、各サブ動作についての結果を取得するために２つのクロックサイクルが必要とされる。図１２は、開示される実施形態による、パイプライン構造を使用して実行される複数の拡張された動作１２００の図表示である。
【００５６】
[0076]図示のように、複数の拡張された動作１２００は、実行時間を低減するためにサブ動作が同時に実施され得るように、パイプライン構造を使用して実行される。複数の拡張された動作１２００の各々は、（１）第１の連続クロックサイクル中にソースポインタを読み取ること１２１２と、（２）第２の連続クロックサイクル中に宛先ポインタを読み取ること１２１４と、誤り訂正コード（ＥＣＣ）を使用して誤り訂正を実施することとを含む、図１１に示されている拡張された動作１１０２と同じサブ動作を実施する。ただし、第３の連続クロックサイクル中に、サブ動作は、別のソースポインタを読み取ること１２１６と、ＥＣＣを使用して誤り訂正を実施することと、第１のソースポインタ（たとえば、読み取られたソースポインタ１２１２によって示されたロケーション）からデータを読み取ることとを含む。また、図１１とは異なり、第４の連続クロックサイクル中に、サブ動作は、別の宛先ポインタを読み取ること１２１８と、ＥＣＣを使用して誤り訂正を実施することと、宛先ポインタにデータを書き込むこととを含む。
【００５７】
[0077]したがって、第３の連続クロックサイクルおよび第４の連続クロックサイクル中に、アクセストリガ型アーキテクチャシステムは、（たとえば、ソースポインタからデータを読み取ることと、宛先ポインタにデータを書き込むこととによって）第１の拡張された動作１２０２を完了するとともに、また同時に、（たとえば、第２のソースポインタを読み取ること１２１６と、第２の宛先ポインタを読み取ること１２１８とによって）第２の拡張された動作１２０４を開始する。その結果、複数の拡張された動作１２００の各々は、２つのクロックサイクルごとに完了される。
【００５８】
[0078]図１３は、パイプライン構造を使用して実行される複数の典型的な動作１３００の図表示である。図１３に示されている複数の典型的な動作１３００は、第１の連続クロックサイクル中にソースポインタを読み取ること１３０６と、第２の連続クロックサイクル中に宛先ポインタを読み取ること１３０８と、第３の連続クロックサイクル中に、第２のソースポインタを読み取ること１３１０と、第１のソースポインタからデータを読み取ることと、第４の連続クロックサイクル中に、第２の宛先ポインタを読み取ること１３１２と、第１の宛先ポインタにデータを書き込むこととを含む、図１２の複数の拡張された動作と同様である。ただし、複数の典型的な動作１３００は、複数の典型的な動作１３００が、ＥＣＣを使用して誤り訂正を実施するための追加の同時動作を含まないという点で、図１２の複数の拡張された動作とは異なる。
【００５９】
[0079]図示のように、第３の連続クロックサイクルおよび第４の連続クロックサイクル中に、アクセストリガ型アーキテクチャシステムは、（たとえば、ソースポインタからデータを読み取ることと、宛先ポインタにデータを書き込むこととによって）第１の典型的な動作１３０２を完了するとともに、また同時に、（たとえば、第２のソースポインタを読み取ること１３１０と、第２の宛先ポインタを読み取ること１３１２とによって）第２の拡張された動作１３０４を開始する。その結果、複数の典型的な動作１３００の各々は、２つのクロックサイクルごとに完了される。
【００６０】
[0080]図１４は、開示される実施形態による、コンピュータ実装アプリケーションのためのアクセストリガ型アーキテクチャの性能を改善するためのプロセス１４００の一実施形態を示すフローチャートである。最初に、プロセス１４００は、実行時間に従ってアクセストリガ型アーキテクチャシステムの典型的な動作を実行する（ステップ１４０２）。アクセストリガ型アーキテクチャシステムの典型的な動作は、図１〜図６に関して前に説明された。これらの典型的な動作は、概して、図８〜図９に関して前に説明されたように、連続的に実行され、いくつかの実施形態では、完了のために４つのクロックサイクルを必要とする。典型的な動作を実行する例示的な一実施形態は、図１５で詳細に説明され、実行時間に従って典型的な動作を実行する例示的な一実施形態は、図１７で詳細に説明される。
【００６１】
[0081]次に、プロセス１４００は、低減された実行時間を作成するために、典型的な動作の実行時間を低減するための典型的な動作のパイプラインを作成し（ステップ１４０４）、典型的な動作のパイプラインを作成した後に、プロセス１４００は、低減された実行時間に従って典型的な動作を実行する（ステップ１４０６）。低減された実行時間に従って典型的な動作を実行する例示的な一実施形態は、図１８で詳細に説明される。
【００６２】
[0082]パイプラインは、複数のコンピュータ命令が同時に実行および実施されるように、それらのコンピュータ命令が重複される実装技法である。いくつかの実施形態では、同時実行は、複数のパイプライン化されたコンピュータ命令がアクセストリガ型アーキテクチャの同じクロックサイクル中に実行および実施されることを示す。本明細書で説明されるように、パイプラインは、サブ動作が同時に実行および実施されるように、アクセストリガ型アーキテクチャシステムの典型的な動作または拡張された動作の複数のサブ動作が重複される実装技法である。ここで、プロセス１４００は、アクセストリガ型アーキテクチャシステムが複数の動作を同時に（すなわち、同じクロックサイクル中に）実行および実施するように、アクセストリガ型アーキテクチャシステムの動作を合理化するように構成される。プロセス１４００は、概して、アクセストリガ型アーキテクチャシステムの２つまたはそれ以上のデータバス（たとえば、データバス、命令バスなど）を使用してそのような同時動作を実施する。
【００６３】
[0083]パイプライン化された典型的な動作は、図１３に関して本明細書で説明された。説明された実施形態では、第３の連続クロックサイクルおよび第４の連続クロックサイクル中に、アクセストリガ型アーキテクチャシステムは、（たとえば、ソースポインタからデータを読み取ることと、宛先ポインタにデータを書き込むこととによって）第１の典型的な動作１３０２を完了するとともに、また同時に、（たとえば、第２のソースポインタを読み取ること１３１０と、第２の宛先ポインタを読み取ること１３１２とによって）第２の拡張された動作１３０４を開始する。その結果、複数の典型的な動作１３００の各々は、２つのクロックサイクルごとに完了される。
【００６４】
[0084]図１４に戻ると、いくつかの実施形態では、プロセス１４００はまた、アクセストリガ型アーキテクチャによる実行のための拡張された動作を生成するために典型的な動作中に誤り訂正を実施する（ステップ１４０８）。ここで、プロセス１４００は、取り出されたデータが正確、有効、または場合によっては正しいかどうかを決定するために、アクセストリガ型アーキテクチャシステムのための誤り訂正を実施するように構成される。プロセス１４００は、パリティビット、誤り訂正コード（ＥＣＣ）、および／または当技術分野でよく知られており一般的に使用される他の誤り訂正技法を使用する。プロセス１４００は、破損したデータを識別するように構成される。いくつかの実施形態では、プロセス１４００は、破損されたまたは場合によっては不正確であるデータを識別することと、また、データが正しい状態に戻るようにデータを訂正することとを行うように構成される。例示的な実施形態では、ステップ１４０８に関して説明される、プロセス１４００は、図１０〜図１２に示されているように、取得されたソースポインタおよび宛先ポインタの正確さを検証するために誤り訂正を実施する。他の実施形態では、誤り訂正は、取得されたソースポインタによって示されたシステムメモリロケーションから取得されたデータの正確さを検証するために使用される。
【００６５】
[0085]プロセス１４００は、第２の実行時間に従って、拡張された動作を実行する（ステップ１４１０）。第２の実行時間に従って、拡張された動作を実行する例示的な一実施形態は、図１９で詳細に説明される。第２の実行時間は、図１０に示されているように、拡張された動作が連続、または言い換えると、連続順序で実施されるとき、拡張された動作のための「通常の」実行時間である。ここで、図１０に示されているシーケンス１０００は、拡張された動作１００２、１００４の各々が完了のために６つの連続するクロックサイクルを必要とするような、拡張された動作１００２、１００４の連続実行を示す。拡張された動作１００２、１００４の各々は、以下のサブ動作、すなわち、第１の連続クロックサイクル中にソースポインタを読み取ることと、第２の連続クロックサイクル中に誤り訂正コード（ＥＣＣ）を使用して誤り訂正を実施すること１００６と、第３の連続クロックサイクル中に宛先ポインタを読み取ることと、第４の連続クロックサイクル中にＥＣＣを使用して誤り訂正を実施すること１００８と、第５の連続クロックサイクル中にソースポインタからデータを読み取ることと、第６の連続クロックサイクル中に宛先ポインタにデータを書き込むこととを含む。拡張された動作１００２、１００４の各々を完了するために使用される６つの連続する、連続クロックサイクルは、第２の実行時間、または言い換えると、拡張された動作を連続的に実施するために必要とされる「通常の」実行時間を表す。
【００６６】
[0086]図１４に戻ると、プロセス１４００は、次いで、変更された低減された実行時間を作成するために、拡張された動作の第２の実行時間を低減するための拡張された動作の変更されたパイプラインを作成する（ステップ１４１２）。拡張された動作の変更されたパイプラインの例示的な一実施形態は、図１２に示されている。前に説明されたように、変更されたパイプラインは、サブ動作を同時に実施することによって、したがって、拡張された動作のサブ動作を実施するためにより少数のクロックサイクルを必要とすることによって、拡張された動作の必要とされる実行時間を低減するためにプロセス１４００によって実装され、拡張された動作の各々は、（ｉ）アクセストリガ型アーキテクチャシステムの典型的な動作と、（ｉｉ）アクセストリガ型アーキテクチャシステムの典型的な動作中に取得および使用されるデータの完全性を保証するために組み込まれる誤り訂正プロシージャとを含む。
【００６７】
[0087]プロセス１４００は、次いで、変更された低減された実行時間に従って、拡張された動作を実行する（ステップ１４１４）。変更された低減された実行時間に従って、拡張された動作を実行する例示的な一実施形態は、図２０で詳細に説明される。図１２および図２０に関して説明される例示的な実施形態は、各拡張された動作を完了するために必要とされる時間（たとえば、必要とされるクロックサイクルの数）を、６つのクロックサイクルを必要とする連続実行から２つのクロックサイクルを必要とするパイプライン実行に低減する。プロセス１４００は、アクセストリガ型アーキテクチャ内の２つまたはそれ以上のデータバスを使用して、このパイプライン実行（たとえば、拡張された動作の変更されたパイプライン）を達成する。
【００６８】
[0088]図１５は、開示される実施形態による、アクセストリガ型アーキテクチャの典型的な動作を実行するためのプロセス１５００の一実施形態を示すフローチャートである。図１５で説明されるプロセス１５００は、追加の詳細を含む、図１４の説明において上記で説明されたステップ１４０２の一実施形態を表すことを諒解されたい。最初に、プロセス１５００は、データセットおよび命令セットを取得し、命令セットは、ソースポインタと宛先ポインタとからなる現在の命令を含む複数の命令を含む（ステップ１５０２）。次に、プロセス１５００は、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用する（ステップ１５０４）。動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用するための１つの好適な方法論は、図１６を参照しながら以下で説明される。
【００６９】
[0089]図１６は、開示される実施形態による、動作に関連付けられた機能ブロックにデータセットを送信するために命令セットを使用するためのプロセス１６００の一実施形態を示すフローチャートである。図１６で説明されるプロセス１６００は、追加の詳細を含む、図１５の説明において上記で説明されたステップ１５０２の一実施形態を表すことを諒解されたい。最初に、プロセス１６００は、ソースポインタによって示された第１のシステムメモリロケーションからデータセットを取り出す（ステップ１６０２）。次に、プロセス１６００は、機能ブロックの第２のシステムメモリロケーションにデータセットを再配置し、第２のシステムメモリロケーションは、命令に基づいて、第２のシステムメモリロケーションに関連付けられた動作の実行をトリガするために、宛先ポインタによって示され、機能ブロックは、トリガされたときに動作を実行するように構成され、機能ブロックは、第２のシステムメモリロケーションにおいてデータが受信されるたびにトリガされる（ステップ１６０４）。プロセス１６００は、次いで、結果を生成するために、データセットを使用して、第２のシステムメモリロケーションにおいて機能ブロックによって動作を実施する（ステップ１６０６）。プロセス１６００は、第２のシステムメモリロケーションに生成された結果を返し、機能ブロックは、生成された結果を含む修正されたデータセットを生成するためにデータセットを使用して動作を実施する（ステップ１６０８）。
【００７０】
[0090]図１７は、開示される実施形態による、実行時間に従って典型的な動作を実行するためのプロセス１７００の一実施形態を示すフローチャートである。図１７で説明されるプロセス１７００は、追加の詳細を含む、図１４の説明において上記で説明されたステップ１４０２の一実施形態を表すことを諒解されたい。さらに、アクセストリガ型アーキテクチャシステムの典型的な動作の実行の例示的な実施形態は、図８〜図９に関して説明された。
【００７１】
[0091]プロセス１７００は、第１のクロックサイクルおよび第２のクロックサイクル中に命令セットを読み取る（ステップ１７０２）。プロセス１７００は、第３のクロックサイクル中に、命令セットに基づいてデータセットを読み取る（ステップ１７０４）。プロセス１７００は、第４のクロックサイクル中に、命令セットに基づいてデータセットを書き込む（ステップ１７０６）。本明細書で説明されるように、第１のクロックサイクルと、第２のクロックサイクルと、第３のクロックサイクルと、第４のクロックサイクルとは、アクセストリガ型アーキテクチャシステムによって使用される連続クロックサイクルである。プロセス１７００のステップの各々は、連続クロックサイクル中に実行され、したがって、順序が正しくおよび順次実施される。
【００７２】
[0092]図１８は、開示される実施形態による、低減された実行時間に従って典型的な動作を実行するためのプロセスの一実施形態を示すフローチャートである。図１８で説明されるプロセス１８００は、追加の詳細を含む、図１４の説明において上記で説明されたステップ１４０６の一実施形態を表すことを諒解されたい。さらに、低減された実行時間に従うアクセストリガ型アーキテクチャシステムの典型的な動作の実行の例示的な実施形態は、図１３に関して説明された。
【００７３】
[0093]プロセス１８００は、同時に、パイプライン化された第１のクロックサイクル中に、命令セットの現在の部分と命令セットの前の読取りによって示されたデータとを読み取る（ステップ１８０２）。命令セットの現在の部分は、図１３に示されている、ソースポインタ１３１０と宛先ポインタ１３１２とを含む。ここで、プロセス１８００は、前のクロックサイクル中に読み取られたソースポインタ１３０６によって示されたデータを読み取るとともに、同時に、新しいソースポインタ１３１０を読み取る。プロセス１８００は、次いで、同時に、パイプライン化された第２のクロックサイクル中に、命令セットの現在の部分を読み取り、命令セットの前の読取りによって示されたデータを書き込む（ステップ１８０４）。命令セットの現在の部分は、図１３に示されている、ソースポインタ１３１０と宛先ポインタ１３１２とを含む。ここで、プロセス１８００は、前のクロックサイクル中に読み取られたソースポインタ１３０６によって示されたデータを書き込み、プロセス１８００は、前に取得された宛先ポインタ１３０８によって示されたロケーションにデータを書き込む。同時に、プロセス１８００は、新しい宛先ポインタ１３１２を読み取る。
【００７４】
[0094]図１９は、開示される実施形態による、通常の実行時間に従って拡張された動作を実行するためのプロセス１９００の一実施形態を示すフローチャートである。図１９で説明されるプロセス１９００は、追加の詳細を含む、図１４の説明において上記で説明されたステップ１４１０の一実施形態を表すことを諒解されたい。さらに、通常の実行時間に従う拡張された動作の実行の例示的な実施形態は、図１０に関して説明された。
【００７５】
[0095]最初に、プロセス１９００は、第１の連続クロックサイクル中に命令セットの第１の部分を読み取る（ステップ１９０２）。図１０に示されているように、命令セットは、データセットの再配置のために、ソースポインタと宛先ポインタとを含む。ここで、プロセス１９００は、第１のクロックサイクル中に命令セットの第１の部分を読み取る。図１０に示されている例示的な実施形態では、命令セットの第１の部分はソースポインタである。ただし、他の実施形態では、プロセス１９００は、第１の連続クロックサイクル中に宛先ポインタを読み取り、第２の連続クロックサイクル中にソースポインタを読み取り得ることに留意されたい。ソースポインタと宛先ポインタとを読み取るまたは取得するためのプロセス１９００のための順序は、アクセストリガ型アーキテクチャシステムの実装に基づいて、異なり得る。次に、プロセス１９００は、第２の連続クロックサイクル中に命令セットの第１の部分のための誤り訂正を実施する（ステップ１９０４）。ここで、プロセス１９００は、命令セットの取得された第１の部分の正確さを検証するために誤り訂正コード（ＥＣＣ）を使用し得る。
【００７６】
[0096]プロセス１９００は、次いで、第３の連続クロックサイクル中に命令セットの第２の部分を読み取る（ステップ１９０６）。図１０に関して説明されたように、プロセス１９００は、第３の連続クロックサイクル中に宛先ポインタを読み取る。ただし、他の実施形態では、宛先ポインタは、第１の連続クロックサイクル中に読み取られ得、ソースポインタは、第３の連続クロックサイクル中に取得され得る。プロセス１９００は、第４の連続クロックサイクル中に命令セットの第２の部分のための誤り訂正を実施する（ステップ１９０８）。
【００７７】
[0097]プロセス１９００は、第５の連続クロックサイクル中に、命令セットの第１の部分に基づいてデータセットを読み取る（ステップ１９１０）。ここで、プロセス１９００は、ソースポインタによって示されたシステムメモリ中のロケーションを識別するために（第１の連続クロックサイクル中に取得された）ソースポインタを使用し、プロセス１９００は、示されたシステムメモリロケーションにおいて記憶されたデータを読み取る。プロセス１９００は、第６の連続クロックサイクル中に、命令セットの第２の部分に基づいてデータセットを書き込む（ステップ１９１２）。プロセス１９００は、宛先ポインタによって示されたシステムメモリ中の宛先ロケーションを識別するために（第３の連続クロックサイクル中に取得された）宛先ポインタを使用し、プロセス１９００は、システムメモリ中の示された宛先ロケーションにデータを書き込む。
【００７８】
[0098]図２０は、開示される実施形態による、変更された低減された実行時間に従って拡張された動作を実行するためのプロセス２０００の一実施形態を示すフローチャートである。図２０で説明されるプロセス２０００は、追加の詳細を含む、図１４の説明において上記で説明されたステップ１４１４の一実施形態を表すことを諒解されたい。さらに、変更された低減された実行時間に従う拡張された動作の実行の例示的な実施形態は、図１２に関して説明された。
【００７９】
[0099]プロセス２０００は、同時に、パイプライン化された第１のクロックサイクル中に、命令セットの将来の第１の部分をプリフェッチし、命令セットの前にプリフェッチされた第２の部分のための誤り訂正を実施し、命令セットの前にプリフェッチされた第１の部分に基づいてデータセットを読み取る（ステップ２００２）。プロセス２０００は、次いで、同時に、パイプライン化された第２のクロックサイクル中に、命令セットの将来の第２の部分をプリフェッチし、命令セットの将来の第１の部分のための誤り訂正を実施し、命令セットの前にプリフェッチされた第２の部分に基づいてデータセットを書き込む（ステップ２００４）。
【００８０】
[00100]（図２、図３、図６、および図１４〜図２０に関して説明された）プロセス２００、３００、６００、および１４００〜２０００に関連して実施される様々なタスクは、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せによって実施され得る。説明の目的で、プロセス２００、３００、６００、および１４００〜２０００の先行する説明は、図１、図４、図５、および／または図７〜図１３に関連して述べられた要素に言及し得る。実際には、プロセス２００、３００、６００、および１４００〜２０００の部分が、説明されたシステムの異なる要素によって実施され得る。プロセス２００、３００、６００、および１４００〜２０００は、任意の数の追加または代替のタスクを含み得、図２、図３、図６、および図１４〜図２０に示されているタスクは、図示された順序で実施される必要はなく、プロセス２００、３００、６００、および１４００〜２０００は、各々、本明細書で詳細に説明されない追加の機能を有するより包括的なプロシージャまたはプロセスに、個々にまたは組合せで、組み込まれ得ることを諒解されたい。その上、図２、図３、図６、および／または図１４〜図２０に示されているタスクのうちの１つまたは複数は、意図された全体的な機能がそのままである限り、プロセス２００、３００、６００、または１４００〜２０００のうちの１つまたは複数の一実施形態から省略され得る。
【００８１】
[00101]本明細書では、機能および／または論理ブロックコンポーネントに関して、ならびに様々なコンピューティングコンポーネントまたはデバイスによって実施され得る動作、処理タスク、および機能の記号表現を参照しながら、技法および技術が説明され得る。そのような動作、タスク、および機能は、コンピュータ実行されるか、コンピュータ化されるか、ソフトウェア実装されるか、またはコンピュータ実装されると言及されることがある。実際には、１つまたは複数のプロセッサデバイスは、システムメモリ中のメモリロケーションにおけるデータビットを表す電気信号を操作すること、ならびに信号の他の処理によって、説明される動作、タスク、および機能を行うことができる。データビットが維持されるメモリロケーションは、データビットに対応する特定の電気的、磁気的、光学的、または有機的特性を有する物理的ロケーションである。図に示されている様々なブロックコンポーネントは、指定された機能を実施するように構成された任意の数のハードウェア、ソフトウェア、および／またはファームウェアコンポーネントによって実現され得ることを諒解されたい。たとえば、システムまたはコンポーネントの一実施形態は、１つまたは複数のマイクロプロセッサまたは他の制御デバイスの制御下で様々な機能を行い得る、様々な集積回路コンポーネント、たとえば、メモリ要素、デジタル信号処理要素、論理要素、ルックアップテーブルなどを採用し得る。
【００８２】
[00102]ソフトウェアまたはファームウェアにおいて実装されたとき、本明細書で説明されるシステムの様々な要素は、本質的に、様々なタスクを実施するコードセグメントまたは命令である。プログラムまたはコードセグメントは、プロセッサ可読媒体に記憶されるか、あるいは伝送媒体または通信経路を介して搬送波中に組み込まれたコンピュータデータ信号によって送信され得る。「コンピュータ可読媒体」、「プロセッサ可読媒体」、または「機械可読媒体」は、情報を記憶または転送することができる任意の媒体を含み得る。プロセッサ可読媒体の例は、電子回路、半導体メモリデバイス、ＲＯＭ、フラッシュメモリ、消去可能ＲＯＭ（ＥＲＯＭ）、フロッピーディスケット、ＣＤ−ＲＯＭ、光ディスク、ハードディスク、光ファイバー媒体、無線周波数（ＲＦ）リンクなどを含む。コンピュータデータ信号は、電子ネットワークチャネル、光ファイバー、空気、電磁経路、またはＲＦリンクなど、伝送媒体上で伝搬することができる任意の信号を含み得る。コードセグメントは、インターネット、イントラネット、ＬＡＮなど、コンピュータネットワークを介してダウンロードされ得る。
【００８３】
[00103]先行する説明は、互いに「接続された（ｃｏｎｎｅｃｔｅｄ）」または「結合された（ｃｏｕｐｌｅｄ）」要素またはノードまたは特徴に言及する。別段に明記されていない限り、本明細書で使用される、「結合された」は、１つの要素／ノード／特徴が、別の要素／ノード／特徴に直接または間接的に連結される（あるいは別の要素／ノード／特徴と直接または間接的に通信する）ことを意味し、必ずしも機械的に連結されることを意味するとは限らない。同様に、別段に明記されていない限り、「接続された」は、１つの要素／ノード／特徴が、別の要素／ノード／特徴に直接連結される（または別の要素／ノード／特徴と直接通信する）ことを意味し、必ずしも機械的に連結されることを意味するとは限らない。したがって、図１および図７に示されている概略図が要素の例示的な構成を示すが、追加の介在する要素、デバイス、特徴、またはコンポーネントが、図示された主題の一実施形態において存在し得る。
【００８４】
[00104]さらに、いくつかの用語も、以下の説明において参照の目的で使用されるすぎないことがあり、したがって、限定するものではない。たとえば、「上側（ｕｐｐｅｒ）」、「下側（ｌｏｗｅｒ）」、「上方の（ａｂｏｖｅ）」、および「下方の（ｂｅｌｏｗ）」などの用語は、参照が行われる図面における方向を指す。「前面（ｆｒｏｎｔ）」、「背面（ｂａｃｋ）」、「後面（ｒｅａｒ）」、「側面（ｓｉｄｅ）」、「外側（ｏｕｔｂｏａｒｄ）」および「内側（ｉｎｂｏａｒｄ）」などの用語は、テキストおよび説明の下でコンポーネントについて説明する関連する図面を参照することによって明らかにされる参照の無矛盾であるが任意の基準系内のコンポーネントの部分の配向および／またはロケーションについて説明する。そのような用語は、上記で具体的に述べられた単語、その派生語、および同様の意味の単語を含み得る。同様に、「第１の」、「第２の」という用語、および構造を指す他のそのような数値的な用語は、コンテキストによって明らかに示されない限り、シーケンスまたは順序を暗示しない。
【００８５】
[00105]簡潔のために、本明細書では、信号処理、データ送信、シグナリング、ネットワーク制御、およびシステムの他の機能的態様（およびシステムの個々の動作コンポーネント）に関係する従来の技法は、詳細に説明されないことがある。さらに、本明細書に含まれる様々な図に示されている接続線は、様々な要素間の例示的な機能的関係および／または物理的結合を表すものである。多くの代替または追加の機能的関係または物理的接続が、主題の一実施形態において存在し得ることに留意されたい。
【００８６】
[00106]本明細書で説明される機能ユニットのうちのいくつかは、特に機能ユニットの実装独立性を強調するために「モジュール」と呼ばれた。たとえば、本明細書でモジュールと呼ばれる機能は、カスタムＶＬＳＩ回路またはゲートアレイを含むハードウェア回路、論理チップなどのオフザシェルフ半導体、トランジスタ、あるいは他の個別コンポーネントとして、全体的にまたは部分的に実装され得る。モジュールは、フィールドプログラマブルゲートアレイ、プログラマブルアレイ論理、プログラマブル論理デバイスなど、プログラマブルハードウェアデバイスにおいても実装され得る。モジュールは、様々なタイプのプロセッサによる実行のためのソフトウェアにおいても実装され得る。実行可能コードの識別されたモジュールは、たとえば、オブジェクト、プロシージャ、または機能として編成され得る、コンピュータ命令の１つまたは複数の物理的または論理的モジュールを含み得る。とはいえ、識別されたモジュールの実行ファイルは、互いに物理的に配置される必要はなく、互いに論理的に連結されたとき、モジュールを含み、モジュールについての述べられた目的を達成する、異なるロケーションに記憶された異なる命令を含み得る。実際、実行可能コードのモジュールは、単一の命令、または多くの命令であり得、さらには、いくつかの異なるコードセグメント上で、異なるプログラムの間で、およびいくつかのメモリデバイスにわたって、分散され得る。同様に、動作データは、任意の好適な形式で実施され、任意の好適なタイプのデータ構造内に編成され得る。動作データは、単一のデータセットとして収集され得るか、または、異なるストレージデバイスにわたってなど、異なるロケーションにわたって分散され得、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として、存在し得る。
【００８７】
[00107]上記の詳細な説明において少なくとも１つの例示的な実施形態が提示されたが、莫大な数の変形形態が存在することを諒解されたい。また、本明細書で説明される１つまたは複数の例示的な実施形態は、請求される主題の範囲、適用可能性、または構成をいかなる形でも限定するものではないことを諒解されたい。そうではなく、上記の詳細な説明は、説明される１つまたは複数の実施形態を実装するための好都合なロードマップを当業者に与える。特許請求の範囲によって定義される範囲から逸脱することなく要素の機能および構成において様々な変更が行われ得、それは、本特許出願を出願するときに知られている等価物および予見可能な等価物を含むことを理解されたい。
【符号の説明】
【００８８】
１００  アクセストリガ型アーキテクチャシステム
１０２  プロセッサアーキテクチャ
１０４  システムメモリ
１０６  初期化モジュール
１０８  命令モジュール
１１０  データ転送モジュール
１１２  機能ブロックモジュール
４００  アクセストリガ型アーキテクチャシステム
４０２  データセット
４０４  システムメモリのサブセット
４０６  機能ブロック
４０８  結果
５００  アクセストリガ型アーキテクチャシステム
５０２  データセット
５０４  システムメモリのサブセット
５０６  機能ブロック
５０８  命令の第２のセット
５１０  第２のアプリケーション
５１２  結果
７００  アクセストリガ型アーキテクチャシステム
７０２  プロセッサアーキテクチャ
７０４  システムメモリ
７０６  初期化モジュール
７０８  命令モジュール
７１０  データ転送モジュール
７１２  機能ブロックモジュール
７１４  誤り訂正モジュール
７１６  パイプラインモジュール
【図１】
2019040589.tif 000003
【図２】
2019040589.tif 000004
【図３】
2019040589.tif 000005
【図４】
2019040589.tif 000006
【図５】
2019040589.tif 000007
【図６】
2019040589.tif 000008
【図７】
2019040589.tif 000009
【図８】
2019040589.tif 000010
【図９】
2019040589.tif 000011
【図１０】
2019040589.tif 000012
【図１１】
2019040589.tif 000013
【図１２】
2019040589.tif 000014
【図１３】
2019040589.tif 000015
【図１４】
2019040589.tif 000016
【図１５】
2019040589.tif 000017
【図１６】
2019040589.tif 000018
【図１７】
2019040589.tif 000019
【図１８】
2019040589.tif 000020
【図１９】
2019040589.tif 000021
【図２０】
2019040589.tif 000022
【外国語明細書】
2019040589000001.pdf