(57)【特許請求の範囲】
【請求項１】
プロセッサを含み、前記プロセッサは、
第１の一式の命令を格納する第１のメモリと、
第２の一式の命令を格納する第２のメモリと、
前記第２のメモリに連結されている複数の遅延線と
を含み、
前記第２の一式の命令における各命令は、前記第１の一式の命令における命令より長く、
前記第１の一式の命令における命令は、前記第２の一式の命令における対応する命令に対するポインタとして使用され、
前記複数の遅延線は、前記命令のそれぞれのサイクルオフセットに対応する前記複数の遅延線におけるアドレスにおいて命令を格納する、装置。
【請求項２】
前記第１の一式の命令は、複合命令セットコンピュータ（ＣＩＳＣ）命令を含む、請求項１に記載の装置。
【請求項３】
前記第２の一式の命令は、超長命令語（ＶＬＩＷ）命令を含む、請求項１に記載の装置。
【請求項４】
前記第２のメモリは、マイクロコードメモリを含む、請求項１に記載の装置。
【請求項５】
前記第１のメモリは、プログラムメモリを含む、請求項４に記載の装置。
【請求項６】
前記複数の遅延線は、前記第２のメモリに連結されている第１の複数のレジスタを含む、請求項１に記載の装置。
【請求項７】
前記第１の複数のレジスタに連結されている複数の機能ユニットをさらに含む、請求項６に記載の装置。
【請求項８】
前記複数の機能ユニットに連結されている第２の複数のレジスタをさらに含む、請求項７に記載の装置。
【請求項９】
前記プロセッサに連結されているプログラマブル相互接続回路網をさらに含む、請求項１に記載の装置。
【請求項１０】
前記プログラマブル相互接続回路網に連結されているプログラマブル論理回路網をさらに含む、請求項９に記載の装置。
【請求項１１】
プロセッサを含み、前記プロセッサは、
第２の一式の命令をアドレス指定する第１の一式の命令を格納する第１のメモリと、
前記第２の一式の命令を格納する第２のメモリと、
前記第２のメモリに連結されている複数の遅延線と
を含み、
前記第２のメモリは、経時的に、命令のスケジューリングを可能にするために、サイクルオフセットを含み、
前記複数の遅延線は、前記命令のそれぞれのサイクルオフセットに対応する前記複数の遅延線におけるアドレスにおいて命令を格納する、集積回路（ＩＣ）。
【請求項１２】
前記第２の一式の命令における命令は、１つのプロセッササイクルにおいて、命令フラグメントを別のプロセッササイクルに配置可能である、請求項１１に記載の集積回路（ＩＣ）。
【請求項１３】
プロセッサを含み、前記プロセッサは、
第２の一式の命令をアドレス指定する第１の一式の命令を格納する第１のメモリと、
前記第２の一式の命令を格納する第２のメモリと、
前記第２のメモリに連結されている複数の遅延線と
を含み、
前記第２のメモリは、経時的に、命令のスケジューリングを可能にするために、サイクルオフセットを含み、
前記複数の遅延線における各遅延線は、書込操作中、ランダムアクセスを提供する、集積回路（ＩＣ）。
【請求項１４】
プロセッサを含み、前記プロセッサは、
第２の一式の命令をアドレス指定する第１の一式の命令を格納する第１のメモリと、
前記第２の一式の命令を格納する第２のメモリと、
前記第２のメモリに連結されている複数の遅延線と
を含み、
前記第２のメモリは、経時的に、命令のスケジューリングを可能にするために、サイクルオフセットを含み、
前記複数の遅延線における各遅延線は、読取操作中、循環バッファを含む、集積回路（ＩＣ）。
【請求項１５】
前記複数の遅延線に連結されている複数の機能ユニットをさらに含む、請求項１１に記載の集積回路（ＩＣ）。
【請求項１６】
前記第１の一式の命令における各命令は、単一命令を含む、請求項１１に記載の集積回路（ＩＣ）。
【請求項１７】
前記第１の一式の命令における各命令は、複合命令セットコンピュータ（ＣＩＳＣ）命令を含む、請求項１６に記載の集積回路（ＩＣ）。
【請求項１８】
前記第２の一式の命令における各命令は、２つ以上の命令を含む、請求項１１に記載の集積回路（ＩＣ）。
【請求項１９】
前記第２の一式の命令における各命令は、超長命令語（ＶＬＩＷ）命令を含む、請求項１８に記載の集積回路（ＩＣ）。
【請求項２０】
ユーザのプログラムを取得することと、
前記ユーザのプログラムが少なくとも１つのカスタム命令を含むかどうかを決定することと、
前記ユーザのプログラムが少なくとも１つのカスタム命令を含むかどうかに応じて、プロセッサのマイクロコードメモリに、前記少なくとも１つのカスタム命令を格納することと
を含み、
前記マイクロコードメモリは、経時的に、命令のスケジューリングを可能にするために、サイクルオフセットを含み、
前記サイクルオフセットは、前記命令のそれぞれのサイクルオフセットに従って前記命令を格納するために、前記マイクロコードメモリに連結されている複数の遅延線によって使用される、方法。
【請求項２１】
前記マイクロコードメモリは、前記プロセッサのネイティブ命令を含む、請求項２０に記載の方法。
【請求項２２】
前記プロセッサのマイクロコードメモリに、前記少なくとも１つのカスタム命令を格納することは、プロセッサのマイクロコードメモリに前記少なくとも１つのカスタム命令を格納する前に、前記少なくとも１つのカスタム命令を取得することをさらに含む、請求項２０に記載の方法。
【請求項２３】
前記プロセッサは、前記ユーザのプログラムを実行するために、複数の機能ユニットを使用する、請求項２０に記載の方法。
【請求項２４】
前記プロセッサは、前記ユーザのプログラムを実行するために、整数処理ユニットを使用する、請求項２０に記載の方法。
【請求項２５】
前記プロセッサは、前記ユーザのプログラムを実行するために、カスタムデータパスを使用する、請求項２４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される概念は、概して、電子的回路網に関し、より具体的には、効率的プロセッサおよび関連する方法に関する。
【背景技術】
【０００２】
集積回路（ＩＣ）の複雑性は、増加し続けている。いくつかのＩＣは、プロセッサ等の種々の情報処理ハードウェアを含む場合がある。プロセッサは、汎用または特殊論理回路網、信号変換回路網（アナログ／デジタルまたはデジタル／アナログ）等、ＩＣ上の他の回路網と相互作用する。プロセッサを他のＩＣ回路網とともに使用することによって、より広範囲の機能性を提供し得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
開示される概念は、データを含む情報の効率的処理のための装置および関連方法に関する。一例示的実施形態では、装置は、プロセッサを含む。プロセッサは、２つのメモリを含む。第１のメモリは、一式の命令を格納する。第２のメモリは、第１のメモリにおける一式の命令より長い別の一式の命令を格納する。第１のメモリにおける一式の命令における命令は、第２のメモリにおける一式の命令における対応する命令に対するポインタとして使用される。
【０００４】
別の例示的実施形態では、集積回路（ＩＣ）は、プロセッサを含む。プロセッサは、一式の命令を格納する第１のメモリを含む。プロセッサはまた、別の一式の命令を格納する第２のメモリを含む。第１のメモリにおける一式の命令は、第２のメモリにおける一式の命令をアドレス指定する。第２のメモリは、経時的に、命令のスケジューリングを可能にするために、サイクルオフセットを含む。
【０００５】
別の例示的実施形態では、方法は、ユーザのプログラムを取得することと、ユーザのプログラムが、少なくとも１つのカスタム命令を含むかどうかを決定することと、を含む。方法はさらに、ユーザのプログラムが、カスタム命令を含むかどうかに応じて、プロセッサのマイクロコードメモリに少なくとも１つのカスタム命令を格納することを含む。
本明細書は、例えば、以下の項目も提供する。
（項目１）
プロセッサを含み、前記プロセッサは、
第１の一式の命令を格納する第１のメモリと、
第２の一式の命令を格納する第２のメモリと
を含み、
前記第２の一式の命令における各命令は、前記第１の一式の命令における命令より長く、
前記第１の一式の命令における命令は、前記第２の一式の命令における対応する命令に対するポインタとして使用される、装置。
（項目２）
前記第１の一式の命令は、複合命令セットコンピュータ（ＣＩＳＣ）命令を含む、項目１に記載の装置。
（項目３）
前記第２の一式の命令は、超長命令語（ＶＬＩＷ）命令を含む、項目１に記載の装置。
（項目４）
前記第２のメモリは、マイクロコードメモリを含む、項目１に記載の装置。
（項目５）
前記第１のメモリは、プログラムメモリを含む、項目４に記載の装置。
（項目６）
前記第２のメモリに連結されている第１の複数のレジスタをさらに含む、項目１に記載の装置。
（項目７）
前記第１の複数のレジスタに連結されている複数の機能ユニットをさらに含む、項目６に記載の装置。
（項目８）
前記複数の機能ユニットに連結されている第２の複数のレジスタをさらに含む、項目７に記載の装置。
（項目９）
前記プロセッサに連結されているプログラマブル相互接続回路網をさらに含む、項目１に記載の装置。
（項目１０）
前記プログラマブル相互接続回路網に連結されているプログラマブル論理回路網をさらに含む、項目９に記載の装置。
（項目１１）
プロセッサを含み、前記プロセッサは、
第２の一式の命令をアドレス指定する第１の一式の命令を格納する第１のメモリと、
前記第２の一式の命令を格納する第２のメモリと
を含み、
前記第２のメモリは、経時的に、命令のスケジューリングを可能にするために、サイクルオフセットを含む、集積回路（ＩＣ）。
（項目１２）
前記第２の一式の命令における命令は、１つのプロセッササイクルにおいて、命令フラグメントを別のプロセッササイクルに配置可能である、項目１１に記載の集積回路（ＩＣ）。
（項目１３）
前記第２のメモリに連結されている複数の遅延線をさらに含む、項目１１に記載の集積回路（ＩＣ）。
（項目１４）
前記複数の遅延線における各遅延線は、書込操作中、ランダムアクセスを提供する、項目１３に記載の集積回路（ＩＣ）。
（項目１５）
前記複数の遅延線における各遅延線は、読取操作中、循環バッファを含む、項目１３に記載の集積回路（ＩＣ）。
（項目１６）
前記複数の遅延線に連結されている複数の機能ユニットをさらに含む、項目１３に記載の集積回路（ＩＣ）。
（項目１７）
前記第１の一式の命令における各命令は、単一命令を含む、項目１１に記載の集積回路（ＩＣ）。
（項目１８）
前記第１の一式の命令における各命令は、複合命令セットコンピュータ（ＣＩＳＣ）命令を含む、項目１７に記載の集積回路（ＩＣ）。
（項目１９）
前記第２の一式の命令における各命令は、２つ以上の命令を含む、項目１１に記載の集積回路（ＩＣ）。
（項目２０）
前記第２の一式の命令における各命令は、超長命令語（ＶＬＩＷ）命令を含む、項目１９に記載の集積回路（ＩＣ）。
（項目２１）
ユーザのプログラムを取得することと、
前記ユーザのプログラムが、少なくとも１つのカスタム命令を含むかどうかを決定することと、
前記ユーザのプログラムが、少なくとも１つのカスタム命令を含むかどうかに応じて、プロセッサのマイクロコードメモリに、前記少なくとも１つのカスタム命令を格納することと
を含む、方法。
（項目２２）
前記マイクロコードメモリは、前記プロセッサのネイティブ命令を含む、項目２１に記載の方法。
（項目２３）
前記プロセッサのマイクロコードメモリに、前記少なくとも１つのカスタム命令を格納することは、プロセッサのマイクロコードメモリに前記少なくとも１つのカスタム命令を格納する前に、前記少なくとも１つのカスタム命令を取得することをさらに含む、項目２１に記載の方法。
（項目２４）
前記プロセッサは、前記ユーザのプログラムを実行するために、複数の機能ユニットを使用する、項目２１に記載の方法。
（項目２５）
前記プロセッサは、前記ユーザのプログラムを実行するために、整数処理ユニットを使用する、項目２１に記載の方法。
（項目２６）
前記プロセッサは、前記ユーザのプログラムを実行するために、カスタムデータパスを使用する、項目２５に記載の方法。
【図面の簡単な説明】
【０００６】
添付の図面は、例示的実施形態のみを例証し、したがって、その範囲を限定するものと見なされるべきではない。本開示から利益を享受する当業者は、開示される概念が、他の等しく有効な実施形態に役立つことを理解する。図面中、２つ以上の図面中で使用される、同一数字指定子は、同一、類似、または同等機能性、構成要素、あるいはブロックを示す。
【図１】図１は、例示的実施形態による、プロセッサを含むＩＣのブロック図を例証する。
【図２】図２は、別の例示的実施形態による、プロセッサを含むＩＣのブロック図を示す。
【図３】図３は、例示的実施形態による、機能ユニットのブロック図を描写する。
【図４】図４は、例示的実施形態による、プロセッサのブロック図を例証する。
【図５】図５は、従来の超長命令語（ＶＬＩＷ）プロセッサを示す。
【図６】図６は、例示的実施形態による、１つ以上のプロセッサを含み得るプログラマブル論理デバイス（ＰＬＤ）のブロック図を描写する。
【図７】図７は、例示的実施形態による、プロセッサを使用する方法のための簡略フロー図を示す。
【図８】図８は、開示される概念による情報を処理するための例示的コンピュータシステムのブロック図を例証する。
【発明を実施するための形態】
【０００７】
開示される概念は、概して、電子的回路網および情報処理に関する。より具体的には、本開示は、効率的プロセッサおよび関連する方法に関する。
【０００８】
開示される概念によるプロセッサは、比較的に短い（または、狭い）命令（例えば、複合命令セットコンピュータ（ＣＩＳＣ）のための命令）と比較的に長い（または、広い）命令（例えば、超長命令語（ＶＬＩＷ）を伴う、コンピュータまたはプロセッサのための命令）の利点を組み合わせる。したがって、例示的実施形態では、プロセッサは、比較的に短い命令を使用して、比較的に長い命令にアクセスする。
【０００９】
より具体的には、そのようなプロセッサは、比較的に短い命令を使用して、比較的に長い命令をアドレス指定および／またはデコードする。比較的に短い命令のいくつか（または、すべて）は、比較的に長い命令に対するポインタとして作用する場合がある。したがって、プロセッサは、比較的により短い命令のいくつか（または、すべて）を使用して、対応する数の比較的に長い命令をデコードする。比較的に長い命令は、１つ以上の複合命令を含み得る。命令は、開示される概念の説明から利益を享受する当業者が、理解するように、データを含み得る。
【００１０】
例示的実施形態では、比較的に短い命令は、マイクロコードメモリに対するポインタとして作用する。マイクロコードメモリは、プロセッサのためのマイクロコードの一部または全部を含む。マイクロコードは、開示される概念の説明から利益を享受する当業者が、理解するように、プロセッサによる命令の実行を促進する。マイクロコードメモリは、比較的に長い命令を含む。留意されるように、比較的に長い命令はそれぞれ、１つ以上の命令を含み得る。したがって、プロセッサの命令セットは、を含む比較的に短い命令を含むが、マイクロコード空間またはメモリは、比較的に長い命令を含む。
【００１１】
いくつかの実施形態では、マイクロコードは、１つのプロセッササイクルにおいて実行する命令が、命令のフラグメントをより後に配置することを可能にするために、サイクルオフセットを含む。本スキームは、制御問題を回避する「ファイア・アンド・フォーゲット（ｆｉｒｅ−ａｎｄ−ｆｏｒｇｅｔ）」命令スタイルを可能にする。また、よりコンパクトなユーザコードをもたらす。いくつかの実施形態では、マイクロコード空間またはメモリは、書込可能であって、ユーザが、所望または特定の用途のために好適なカスタム命令を実装するのを可能にする。
【００１２】
概して、開示される概念の説明から利益を享受する当業者が、理解するように、一般情報処理タスクのために、開示される概念によるプロセッサを使用し得る。例えば、いくつかの実施形態では、プロセッサは、デジタル信号処理（ＤＳＰ）タスクを実行し得る。別の実施例として、いくつかの実施形態では、プロセッサは、整数および／または浮動小数点演算を行い得る。さらに別の実施例として、いくつかの実施形態では、プロセッサは、データ操作タスクを実行し得る。
【００１３】
開示される概念によるアプローチは、いくつかの利点を有する。第１に、比較的に短い命令は、より高いコード密度をもたらす。本特性は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブル論理デバイス（ＰＬＤ）、および類似デバイス内でプロセッサを使用する場合に有利である。第２に、比較的に長い命令は、向上した性能を提供する。より短い命令を反復的にフェッチするのではなく、プロセッサは、１つの比較的に長い命令にアクセスし、それをいくつかの命令にデコードし得る。
【００１４】
第３に、ユーザは、所望に応じて、そのカスタム命令を作成し得る。留意されるように、いくつかの実施形態では、マイクロコードメモリに書き込み得る。したがって、ユーザは、例えば、具体的タスクのために、その命令を提供し、それらをマイクロコード空間に書き込み得る。後に、プロセッサがそれらの命令にアクセスする場合、プロセッサは、ユーザの具体的タスクに好適な情報またはデータ処理を提供することができる。
【００１５】
第４に、書込可能マイクロコード空間を利用して、別のプロセッサまたはコンピュータからの移行を促進し得る。具体的には、他のデバイスの命令セット内の命令を「模倣」または実現する命令を設計し、設計された命令をマイクロコード空間に書き込み得る。
【００１６】
図１は、例示的実施形態による、プロセッサ１００を含むＩＣ１０３を例証する。プロセッサ１００は、プログラムカウンタ１０６、プログラムメモリ１０９、マイクロコードメモリまたはテーブル１１５、レジスタファイル１２１Ａ−１２１Ｍ、機能ユニット（「Ｆ．Ｕ．」として示される）１２４Ａ−１２４Ｎ、およびレジスタファイル１２７Ａ−１２７Ｋ（ここでは、Ｍ、Ｎ、およびＫは、正の整数を構成する）を含む。
【００１７】
プログラムカウンタ１０６は、プログラムメモリ１０９内のプログラム語または命令のアドレス指定を促進する。したがって、プログラムカウンタ１０６は、プログラムメモリ１０９内のプログラム命令にアクセスするための機構を提供する。プログラムメモリ１０９内の命令は、比較的に短い命令、例えば、ＣＩＳＣ命令を構成する。
【００１８】
プログラムメモリ１０９は、リンクまたはバス１１２を介して、プログラム命令、および可能性としてデータを、マイクロコードメモリ１１５に提供する。リンク１１２を介して受信された命令の少なくとも一部および可能性として全部は、マイクロコードメモリ１１５内の命令に対するポインタを構成する。前述のように、マイクロコードメモリ１１５内の命令は、比較的に長い命令、例えば、ＶＬＩＷ命令である。
【００１９】
命令に加え、マイクロコードメモリ１１５は、所望に応じて、データ（例えば、命令によって使用されるデータ）を含み得ることに留意されたい。開示される概念の説明から利益を享受する当業者が、理解するように、所望に応じて、対応する命令と同一フィールド内にデータを含み得るか、または命令およびデータに対して別個のフィールドを使用し得る。さらに、データに加え、またはその代わりに、マイクロコードメモリ１１５は、開示される概念の説明から利益を享受する当業者が、理解するように、１つのプロセッササイクルにおいて実行する命令が、命令のフラグメントをより後に配置することを可能にするために、サイクルオフセットのための付加的フィールドを含み得る。
【００２０】
マイクロコードメモリ１１５は、プロセッサ１００のネイティブ命令を含む。加えて、マイクロコードメモリ１１５は、該当する場合、ユーザのカスタム命令を含み得る。
【００２１】
リンクまたはバス１１８Ａ−１１８Ｍは、マイクロコードメモリ１１５から、レジスタ１２１Ａ−１２１Ｍに、命令、データ、および／またはサイクルオフセット等の情報を提供する。サイクルオフセットは、命令および／またはデータが、書き込まれるレジスタ１２１Ａ−１２１Ｍにおけるアドレスを提供する。
【００２２】
レジスタ１２１Ａ−１２１Ｍは、機能ユニット１２４Ａ−１２４Ｎのためのデータおよびプログラムコードを保持する。レジスタ１２１Ａ−１２１Ｍはそれぞれ、１つ以上の機能ユニット１２４Ａ−１２４Ｎと通信するか、またはそれらに情報を提供し得ることに留意されたい。
【００２３】
機能ユニット１２４Ａ−１２４Ｎは、レジスタ１２１Ａ−１２１Ｍによって提供されるデータを演算対象とする。機能ユニット１２４Ａ−１２４Ｎは、開示される概念の説明から利益を享受する当業者が、理解するように、種々の演算を行い得る。例えば、１つ以上の機能ユニットは、加算および／または減算演算を提供し得る。別の実施例として、１つ以上の機能ユニットは、乗算および／または除算演算を行い得る。
【００２４】
さらに別の実施例として、１つ以上の機能ユニットは、ロードおよび／または格納演算を行い得る。ロードおよび格納演算は、例えば、それぞれ、データをメモリから読み出し、演算の結果をメモリに書き込むことを可能にする。別の実施例として、１つ以上の機能ユニットは、有限インパルス応答（ＦＩＲ）および／または無限インパルス応答（ＩＩＲ）フィルタリング機能を提供し得る。さらに別の実施例として、１つ以上の機能ユニットは、分岐機能性を提供し得る。所望の演算を行う、機能ユニットのための回路網の詳細は、当業者の知識範囲内である。
【００２５】
機能ユニット１２４Ａ−１２４Ｎは、リンクまたはバス１５０Ａ−１５０Ｎを介して、そのそれぞれの演算の結果をレジスタ１２７Ａ−１２７Ｋに提供する。例えば、機能ユニット１２４Ａは、２つの演算子に加算演算を行うと想定する。機能ユニット１２４Ａは、演算子の合計をレジスタ１２７Ａに提供し得る。
【００２６】
開示される概念の説明から利益を享受する当業者が、理解するように、機能ユニット１２４Ａ−１２４Ｎの出力は、加えて、または代わりに、プロセッサ１００の他の部分に連結し得る。例えば、１つ以上の機能ユニット１２４Ａ−１２４Ｎの出力は、所望に応じて、１つ以上の機能ユニット１２４Ａ−１２４Ｎの入力を駆動し得る。信号および出力伝搬の選択肢は、開示される概念の説明から利益を享受する当業者が、理解するように、所望のアーキテクチャおよび機能性等、種々の要因に依存する。
【００２７】
概して、プロセッサ１００は、所望に応じて、整数データ、浮動小数点データ、または両方に、演算を行い得る。例えば、いくつかの実施形態では、機能ユニット１２４Ａ−１２４Ｎは、整数および浮動小数点演算の両方を行い得る。別の実施例として、いくつかの実施形態では、機能ユニット１２４Ａ−１２４Ｎは、浮動小数点演算のみ行い得る。
【００２８】
いくつかの実施形態では、プロセッサ１００は、整数演算（すなわち、整数演算子、例えば、加算、減算、乗算、除算、シフト、論理演算等に関する演算）を行うために、整数処理ユニット１４０を含む。整数処理ユニット１４０は、レジスタ１４０Ａ、算術論理ユニット（ＡＬＵ）１４０Ｂ、およびレジスタ１４０Ｃを含む。
【００２９】
レジスタ１４０Ａは、演算子またはデータをＡＬＵ１４０Ｂに提供する。ＡＬＵ１４０Ｂは、所望または特定の演算をデータに行い、結果をレジスタ１４０Ｃに提供する。
【００３０】
これらの実施形態では、整数ユニット１４０は、所望に応じて、プロセッサ１００の他の部分と通信し得ることに留意されたい。したがって、整数処理ユニット１４０（すなわち、レジスタ１４０Ａ、ＡＬＵ１４０Ｂ、およびレジスタ１４０Ｃのうちの１つ以上）は、リンクまたはバス１４３を介して、データをプロセッサ１００内の他の回路網に提供し得る。同様に、整数処理ユニット１４０（すなわち、レジスタ１４０Ａ、ＡＬＵ１４０Ｂ、およびレジスタ１４０Ｃのうちの１つ以上）は、リンクまたはバス１４６を介して、プロセッサ１００内の他の回路網から、データを受信し得る。さらに、整数処理ユニット１４０は、所望に応じて、リンクまたはバス１４８を介して、データをプロセッサ１００外部の回路網と通信し得る。
【００３１】
前述の説明は、レジスタを参照するが、開示される概念の説明から利益を享受する当業者が、理解するように、各レジスタは、レジスタファイルを含み得ることに留意されたい。したがって、レジスタ１２１Ａ−１２１Ｍ、１２７Ａ−１２７Ｋ、１４０Ａ、および１４０Ｃのうちの１つ以上は、所望に応じて、レジスタファイル、すなわち、２つ以上のレジスタのクラスタを含み得る。
【００３２】
いくつかの実施形態では、プロセッサ１００は、別個の整数データパスおよび浮動小数点データパスを有し得る。例えば、プロセッサ１００は、整数および浮動小数点命令をプログラムメモリ１０９内に格納し、マイクロコードメモリ１１５は、同様に、整数および浮動小数点演算の両方のためのマイクロコード命令を含み得る。図２は、そのような例示的実施形態を例証する。
【００３３】
具体的には、プログラムメモリ１０９は、整数および浮動小数点命令（両方とも、比較的に短い）を含む。整数および浮動小数点命令は、それぞれの整数および浮動小数点マイクロコードメモリをポイントする。したがって、図２に示される実施形態では、プログラムメモリ１０９内の整数命令は、整数マイクロコードメモリ１１５Ｘに対するポインタ１０９Ａとしての役割を果たす。同様に、プログラムメモリ１０９内の浮動小数点命令は、浮動小数点マイクロコードメモリ１１５Ｙに対するポインタ１０９Ｂとしての役割を果たす。
【００３４】
整数マイクロコードメモリ１１５Ｘ内の整数命令は、リンクまたはバス１８０を介して通信される整数ユニット処理１４０に対する命令としての役割を果たす。反対に、整数マイクロコードメモリ１１５Ｙ内の浮動小数点命令は、レジスタ１２１Ａ−１２Ｍ等の浮動小数点ハードウェアに対する命令としての役割を果たす。
【００３５】
他の実施形態では、プロセッサ１００は、整数ユニットまたはプロセッサあるいは整数処理ユニット、およびカスタムデータパスを含み得る。本配置の詳細は、２００９年４月２５日出願の同一人に譲渡された米国特許出願第１２／４３０，０６８号「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ａｓｓｏｃｉａｔｅｄ  Ｍｅｔｈｏｄｓ  Ｆｏｒ  Ｐｒｏｃｅｓｓｏｒｓ  Ｗｉｔｈ  Ｃｕｓｔｏｍ  Ｄａｔａｐａｔｈｓ」（弁護士整理番号第ＡＬＴＲ０７７号に提供されており、参照することによって、本開示に組み込まれる。
【００３６】
図３は、例示的実施形態による、機能ユニットの詳細を描写する。示される実施例では、機能ユニット１２４Ｎは、マルチプレクサ（ＭＵＸ）１５３、ＭＵＸ１５６、および機能ユニットハードウェアまたは実行ユニット１７２を含む。
【００３７】
ＭＵＸ１５３およびＭＵＸ１５６は、それぞれ、リンクまたはバス１６０および１６３を介して、データ（例えば、演算子）を受信する。制御信号１６６および１６９（以下に詳述のように提供される）は、それぞれ、ＭＵＸ１５３およびＭＵＸ１５６のための選択信号としての役割を果たす。ＭＵＸ１５３およびＭＵＸ１５６の出力は、機能ユニットハードウェア１７２に連結する。したがって、ＭＵＸ１５３およびＭＵＸ１５６の出力は、機能ユニットハードウェア１７２への入力としての役割を果たす。
【００３８】
機能ユニットハードウェア１７２は、機能ユニット１２４Ｎの所望の機能性を果たす。前述のように、機能ユニット１２４Ｎは、所与の用途のための仕様に応じて、所望に応じて、種々の機能を果たし得る。いくつかの実施形態では、機能ユニットハードウェア１７２はまた、制御入力１７２Ａを有し得る。
【００３９】
機能ユニットハードウェア１７２は、機能ユニット１２４Ｎの出力１５０Ｎを提供する。出力１５０Ｎは、後続回路網、例えば、レジスタ１２７Ｋ（図１参照）に連結し得る。
【００４０】
前述のように、いくつかの実施形態では、マイクロコードメモリ（例えば、図１のマイクロコードメモリ１１５）は、１つのプロセッササイクルにおいて実行する命令が、命令のフラグメントをより後に（例えば、別のプロセッササイクルに）配置することを可能にするために、サイクルオフセットを含む。他の実施形態では、あるプロセッササイクルにおいて実行する命令は、後に（例えば、別のプロセッササイクル）、他の命令をポストし得る。これらの実施形態におけるマイクロコードは、経時的に、命令をスケジューリングする。マイクロコードは、遅延線を通過または伝搬し、プロセッサ内の種々のハードウェア、例えば、図１における機能ブロック１２４Ａ−１２４Ｎを制御する。経時的に、プロセッサオフセットサイクルまたはスケジューリング命令を使用することは、機能ユニットの全部、実質的に全部（例えば、大部分）が、直列式または複合制御スキームを使用してではなく、命令を同時に演算および実行することをもたらす。
【００４１】
図４は、本機能を伴う、プロセッサ１００の例示的実施形態のブロック図を示す。示される例示的実施形態では、マイクロコードメモリ１１５は、語１１５Ａ−１１５Ｄとして示される、いくつかの命令を含む。マイクロコードメモリ１１５の各語は、４つの命令を含む（但し、所望に応じて、他の数の命令を使用し得る）。
【００４２】
前述のように、マイクロコードメモリ１１５の語は、所望に応じて、種々のフィールド、例えば、命令、データ、および／またはサイクルオフセットフィールドを含み得ることに留意されたい。より具体的には、マイクロコードメモリ１１５の１つ以上の語は、命令のためのフィールド、例えば、フィールド１１５Ａ１を含み得る。加えて、マイクロコードメモリ１１５の１つ以上の語は、データまたはサイクルオフセットのためのフィールド１１５Ａ２を含み得る。代替として、所望に応じて、データのための付加的フィールド、およびサイクルオフセットのためのさらに別の付加的フィールド（明示的に図示せず）を使用し得る。
【００４３】
マイクロコードメモリ１１５の各語内の命令は、経時的に実行するために、スケジューリングされる。レジスタ１２１Ａ−１２１Ｄは、遅延線として作用するように構成または適応される。より具体的には、遅延線１２１Ａ−１２１Ｄは、書込のためのランダムアクセスを提供し、そのコンテンツを読み取る場合、循環バッファとして作用する。
【００４４】
リンクまたはバス１１８Ａ−１１８Ｄは、マイクロコードメモリ１１５から、レジスタ１２１Ａ−１２１Ｄに、命令、データ、および／またはサイクルオフセット等の情報を提供する。サイクルオフセットは、命令および／またはデータが書き込まれるレジスタ１２１Ａ−１２１Ｄにおけるアドレスを提供する。
【００４５】
遅延線１２１Ａ−１２１Ｄは、そのそれぞれのサイクルオフセットに従って、命令を格納し、経時的な命令のスケジューリングおよび実行を促進する。遅延線内の命令の順序は、命令の実行順序に依存する。より具体的には、遅延線１２１Ａ−１２１Ｄを表すボックスを参照すると、遅延線１２１Ａ−１２１Ｄの底部に格納される命令が、最初に実行し、各遅延線内の次の命令が続き、遅延線１２１Ａ−１２１Ｄの上部に格納される命令へと実行する。
【００４６】
実施例として、複合積和（ＣＭＡＣ）演算を検討する。ＣＭＡＣ演算は、マイクロコード１１５の語、例えば、語１１５Ｄ内に格納される４つの命令１１５Ｄ１−１１５Ｄ４を含み得る。４つの命令１１５Ｄ１−１１５Ｄ４は、それぞれの遅延線１２１Ａ−１２１Ｄ内で実行するために、スケジューリングされ得る。したがって、遅延線１２１Ａ内の場所１２１Ａ１は、第１の命令、１１５Ｄ１を含み、遅延線１２１Ｂ内の場所１２１Ｂ１は、第２の命令、１１５Ｄ２を含む等となる。
【００４７】
延線１２１Ａ−１２１Ｄはそれぞれ、機能ユニット１２４Ａ−１２４Ｄの入力に連結し、それを駆動する。より具体的には、遅延線１２１Ａ−１２１Ｄの出力は、ＭＵＸ１５３Ａ−１５３Ｄ、ＭＵＸ１５６Ａ−１５６Ｄ等を駆動する。前述のように、１つ以上の機能ユニット１２４Ａ−１２４Ｄの出力は、１つ以上の機能ユニット１２４Ａ−１２４Ｄの入力、および／またはレジスタ（明示的に図示せず）を駆動し得る。図４に示されるトポロジは、単に、命令語の数および構成、遅延線、機能ユニット、種々のブロック間のパス等の一実施例を構成することに留意されたい。開示される概念の説明から利益を享受する当業者が、理解するように、所与の実装のための設計および性能仕様に応じて、種々の他のトポロジを実装し得る。
【００４８】
前述のように、いくつかの実施形態では、マイクロコードメモリ１１５は、ＶＬＩＷ命令を含み得る。換言すると、プログラムメモリ１０９内の命令は、ＶＬＩＷ命令に対するポインタとして作用する。図５は、従来のＶＬＩＷプロセッサ２００を示す。
【００４９】
ＶＬＩＷプロセッサの演算の詳細は、当業者の知識範囲内である。要するに、ＶＬＩＷプロセッサ２００は、データを保持するために、レジスタ２０３Ａおよび２０３Ｂを含む。マルチプレクサ（ＭＵＸ）２０６Ａ−２０６Ｄの制御下、レジスタ２０３Ａおよび２０３Ｂは、それぞれ、機能ユニット２０９Ａ−２０９Ｄに、そのコンテンツを提供する。機能ユニット２０９Ａ−２０９Ｄは、命令の演算コードに従って、レジスタ２０３Ａ−２０３Ｂによって提供されるデータを演算対象とする。機能ユニット２０９Ａ−２０９Ｂは、その出力をＭＵＸ２１２Ａ−２１２Ｂに提供する。ＭＵＸ２１２Ａ−２１２Ｂは、選択的に、機能ユニット２０９Ａ−２０９Ｄの出力をレジスタ２０３Ａ−２０３Ｂに戻す。
【００５０】
前述のように、プログラマブル論理デバイス（ＰＬＤ）を含む、種々のＩＣに、開示される概念を適用し得る。図６は、例示的実施形態による、１つ以上のプロセッサ１００を含み得るＰＬＤ１０３のブロック図を描写する。
【００５１】
ＰＬＤ１０３は、構成回路網４０６、構成メモリ（ＣＲＡＭ）４０３、制御回路網４０９、プログラマブル論理４２０、プログラマブル相互接続４２３、およびＩ／Ｏ回路網４２６を含む。加えて、ＰＬＤ１０３は、所望に応じて、試験／デバッグ回路網４２９、１つ以上のプロセッサ１００、１つ以上の通信回路網４３８、１つ以上のメモリ４４１、１つ以上のコントローラ４４４、および初期化回路４１２を含み得る。
【００５２】
図は、ＰＬＤ１０３の簡略ブロック図を示すことに留意されたい。したがって、ＰＬＤ１０３は、当業者が理解するように、他のブロックおよび回路網を含み得る。そのような回路網の実施例は、信号および／またはクロック発生ならびに配電回路、冗長回路等を含む。
【００５３】
プログラマブル論理４２０は、ルックアップテーブル（ＬＵＴ）、積項論理、マルチプレクサ（ＭＵＸ）、論理ゲート、レジスタ、メモリ等の構成可能またはプログラマブル論理回路網のブロックを含む。プログラマブル相互接続４２３は、プログラマブル論理４２０に連結し、プログラマブル論理４２０内の種々のブロックとＰＬＤ１０３内または外の他の回路網との間に、構成可能相互接続（連結機構）を提供する。
【００５４】
制御回路網４０９は、ＰＬＤ１０３内の種々の演算を制御する。制御回路網４０９の監視下、ＰＬＤ構成回路網４０６は、構成データ（記憶デバイス、ホスト等の外部源から取得する）を使用して、ＰＬＤ１０３の機能性をプログラムまたは構成する。構成データは、典型的には、ＣＲＡＭ４０３内に格納される。ＣＲＡＭ４０３のコンテンツは、プログラマブル論理４２０およびプログラマブル相互接続４２３等、ＰＬＤ１０３の種々のブロックの機能性を決定する。初期化回路４１２は、ＰＬＤ１０３の停止または電源投入時に種々の機能の性能を生じさせ得る。
【００５５】
Ｉ／Ｏ回路網４２６は、本開示の利益を享受する当業者が、理解するように、種々のＩ／Ｏデバイスまたは回路を構成し得る。Ｉ／Ｏ回路網４２６は、ＰＬＤ１０３の種々の部分、例えば、プログラマブル論理４２０およびプログラマブル相互接続４２３に連結し得る。Ｉ／Ｏ回路網４２６は、外部回路網またはデバイスと通信するために、ＰＬＤ１０３内の種々のブロックのための機構および回路網を提供する。
【００５６】
試験／デバッグ回路網４２９は、ＰＬＤ１０３内の種々のブロックおよび回路の試験ならびにトラブルシューティングを促進する。試験／デバッグ回路網４２９は、本開示の利益を享受する当業者に周知の種々のブロックまたは回路を含み得る。例えば、試験／デバッグ回路網４２９は、所望に応じて、ＰＬＤ１０３が電源投入またはリセット後に、試験を行うための回路を含み得る。試験／デバッグ回路網４２９はまた、所望に応じて、コード化およびパリティ回路を含み得る。
【００５７】
ＰＬＤ１０３はまた、１つ以上の通信回路４３８を含み得る。通信回路４３８は、本書内の本開示の利益を享受する当業者が、理解するように、ＰＬＤ１０３内の種々の回路とＰＬＤ１０３外部の回路との間のデータおよび情報交換を促進し得る。
【００５８】
ＰＬＤ１０３はさらに、１つ以上のメモリ４４１および１つ以上のコントローラ４４４を含み得る。メモリ４４１は、ＰＬＤ１０３内の種々のデータおよび情報（ユーザ−データ、中間結果、計算結果等）の記憶を可能にする。メモリ４４１は、所望に応じて、粒状またはブロック形態を有し得る。コントローラ４４４は、ＰＬＤ外の回路網の演算および種々の機能とインターフェースをとり、それを制御可能である。例えば、コントローラ４４４は、所望に応じて、外部同期動的ランダムアクセスメモリ（ＳＤＲＡＭ）とインターフェースをとり、それを制御する、メモリコントローラを構成し得る。
【００５９】
前述のように、ＰＬＤ１０３は、１つ以上のプロセッサ１００を含み得る。プロセッサ１００は、上に詳述のように、開示される概念によるアーキテクチャ、回路網、またはトポロジを含み得る。
【００６０】
プロセッサ１００は、ＰＬＤ１０３内の他のブロックおよび回路に連結し得る。例えば、プロセッサ１００は、メモリ４４１（および、コントローラ４４４）に連結し、プログラム命令、データ、引数等を格納し得る。プロセッサ１００は、本書内の本開示の利益を享受する当業者が、理解するように、ＰＬＤ１０３内または外部の回路から、データおよび情報を受信し、種々の方法で、情報を処理し得る。
【００６１】
プロセッサ１００のうちの１つ以上は、デジタル信号プロセッサ（ＤＳＰ）を構成し得る。ＤＳＰは、所望に応じて、圧縮、解凍、オーディオ処理、ビデオ処理、フィルタリング等、種々の信号処理タスクを行うことを可能にする。
【００６２】
前述のように、開示される概念は、ユーザに対して、種々の実施形態による、プロセッサのネイティブ命令を使用するだけではなく、また、その独自のカスタム命令を書き込み、使用するための柔軟なフレームワークを含む。図７は、例示的実施形態による、プロセッサの使用（プログラミングを含む）の方法のための簡略フロー図を示す。
【００６３】
５０３では、ユーザのプログラムが、取得される。典型的には、ユーザのプログラムは、Ｃ等の高次プログラムで書かれる。代替として、しかしながら、ユーザは、所望に応じて、アセンブリ言語でそのプログラムを書いてもよい。
【００６４】
５０６では、ユーザのプログラムが、任意のカスタム命令（例えば、１つ以上のカスタム命令）を含むかどうかを決定するために、検証される。含まない場合、制御は、５１２に進む。そうでなければ、５０９において、ユーザのカスタム命令が、取得される。いくつかの実施形態では、ユーザは、そのようなカスタム命令を明示的に宣言し得る。他の実施形態では、カスタム命令は、自動的に検出される。ユーザは、いずれの場合にも、カスタム命令の定義とともに、マイクロコードメモリ１１５（例えば、図１参照）に書き込まれる命令を提供すべきである。
【００６５】
図７を参照すると、５１２では、ユーザのプログラムが、コンパイルされる。５１５では、任意の付加的コード（例えば、外部コードセグメント、ルーチン、ライブラリ）が、リンクされる。５１８では、カスタム命令は、該当する場合、マイクロコードメモリ１１５（図１、３参照）に書き込まれる。カスタム命令に加え、マイクロコードメモリ１１５は、所望に応じて、プロセッサのネイティブ命令のためのプロビジョニングを含み得ることに留意されたい。
【００６６】
５２１では、ユーザのプログラムは、プロセッサ１００のリソースを使用して、プロセッサ１００上で実行される。プロセッサ１００のリソースは、図１−４に図示され、前述の回路網を含み得るが、それに限定されない。
【００６７】
コンピュータシステムまたはプロセッサ上において、図７に示される方法を起動または実行し得る。図８は、開示される概念による情報を処理するための例示的コンピュータシステム１０００のブロック図を示す。本開示の利益を享受する当業者は、所望に応じて、種々の他のコンピュータシステム、プロセッサ、マイクロコンピュータ、ワークステーション等を使用し得ることを理解する。
【００６８】
システム１０００は、コンピュータデバイス１００５、入力デバイス１０１０、ビデオ／ディスプレイデバイス１０１５、および記憶／出力デバイス１０２０を含むが、所望に応じて、それらのデバイスのそれぞれのうちの２つ以上を含み得る。
【００６９】
コンピュータデバイス１００５は、入力デバイス１０１０、ビデオ／ディスプレイデバイス１０１５、および記憶／出力デバイス１０２０に連結する。システム１０００は、所望に応じて、開示される概念の説明から利益を享受する当業者が、理解するように、２つ以上のコンピュータデバイス１００５、例えば、一式の関連付けられたコンピュータデバイスまたはシステムを含み得る。
【００７０】
システム１０００は、ユーザからの入力に関連して動作する。ユーザ入力は、典型的には、システム１０００に、回路合成およびシミュレーションを含む具体的所望の情報処理タスクを行わせる。システム１０００は、それらのタスクを行うために、部分的に、コンピュータデバイス１００５を使用する。コンピュータデバイス１００５は、中央処理ユニット（ＣＰＵ）等の情報処理回路網を含むが、当業者が理解するであろうように、２つ以上のＣＰＵまたは情報処理回路網を使用し得る。
【００７１】
いくつかの実施形態では、システム１０００、より具体的には、コンピュータデバイス１００５は、開示される概念による１つ以上のプロセッサ１００を含み得る（例えば、図１−４参照）。いくつかの実施形態では、システム１０００は、開示される概念による１つ以上のプロセッサ１００を含み、また、図７に示される方法ならびにユーザのプログラムを起動または実行し得る（１つ以上のプロセッサ１００を使用して）。
【００７２】
図８を参照すると、入力デバイス１０１０は、ユーザから入力を受信し、処理のために、その入力をコンピュータデバイス１００５に利用可能にする。ユーザ入力は、所望に応じて、データ、命令、または両方を含み得る。入力デバイス１０１０は、英数字入力デバイス（例えば、キーボード）、ポインティングデバイス（例えば、マウス、ローラボール、ライトペン、タッチセンサ式装置、例えば、タッチセンサ式ディスプレイ、またはタブレット）、または両方を構成し得る。ユーザは、英数字キーボードを操作して、ＡＳＣＩＩ文字等のテキストをコンピュータデバイス１００５に提供する。同様に、ユーザは、ポインティングデバイスを操作し、カーソル位置または制御情報をコンピュータデバイス１００５に提供する。
【００７３】
ビデオ／ディスプレイデバイス１０１５は、視覚映像をユーザに表示する。視覚映像は、グラフ、写真、画像、およびテキスト等のコンピュータデバイス１００５の演算に関する情報を含み得る。ビデオ／ディスプレイデバイスは、当業者が理解するであろうように、コンピュータモニタまたはディスプレイ、投影デバイス等を構成し得る。システムが、タッチセンサ式ディスプレイを使用する場合、ディスプレイはまた、ユーザ入力をコンピュータデバイス１００５に提供するように動作し得る。
【００７４】
記憶／出力デバイス１０２０は、コンピュータデバイス１００５に、付加的処理または後の読み出し（例えば、ソフトコピー）のための情報を格納させること、種々の形式（例えば、ハードコピー）で情報を提示させること、または両方を行わせる。実施例として、記憶／出力デバイス１０２０は、所望の媒体上に、および所望のフォーマットで、情報を格納可能な磁気、光、または磁気光ドライブを構成し得る。別の実施例として、記憶／出力デバイス１０２０は、コンピュータデバイス１００５からの情報の印刷またはプロットされた表現を生成するために、プリンタ、プロッタ、または他の出力デバイスを構成し得る。
【００７５】
コンピュータ可読媒体１０２５は、コンピュータデバイス１００５と構造的および機能的に相互に関係する。コンピュータ可読媒体１０２５は、機能的記述材料を格納し、エンコードし、記録し、および／または具現化する。例証として、機能的記述材料は、コンピュータプログラム、コンピュータコード、コンピュータ用途、および／または情報構造（例えば、データ構造またはファイルシステム）を含み得る。コンピュータ可読媒体１０２５によって、格納、エンコード、記録、および／または具現化されると、機能的記述材料は、機能性を付与する。機能的記述材料は、コンピュータ可読媒体１０２５と相互に関係する。
【００７６】
機能的記述材料内の情報構造は、情報構造とコンピュータ可読媒体１０２５および／またはシステム１０００の他の側面との間の構造ならびに機能的相互関係を定義する。これらの相互関係は、情報構造の機能性の実現化を可能にする。さらに、そのような機能的記述材料内において、コンピュータプログラムは、コンピュータプログラムとコンピュータ可読媒体１０２５およびシステム１０００の他の側面との間の構造ならびに機能的相互関係を定義する。これらの相互関係は、コンピュータプログラムの機能性の実現化を可能にする。
【００７７】
例証として、コンピュータデバイス１００５は、機能的記述材料を読み取り、アクセスし、またはコンピュータデバイス１００５のコンピュータメモリ（図中に明示的に図示せず）内にコピーする。コンピュータデバイス１００５は、コンピュータメモリ内に存在する材料に応答して、演算を行う。コンピュータデバイス１００５は、コンピュータデバイス１００５に、付加的さらなる演算を行わせるコンピュータアプリケーションを処理する演算を行い得る。故に、機能的記述材料は、コンピュータデバイス１００５が、プロセスを実行し、演算を行う方法とともに機能的相互関係を示す。
【００７８】
さらに、コンピュータ可読媒体１０２５は、コンピュータデバイス１００５が、コンピュータ情報、プログラム、コード、および／またはアプリケーションにアクセスし得る、装置を構成する。コンピュータデバイス１００５は、コンピュータデバイス１００５に、付加的演算を行わせる、情報、プログラム、コード、および／またはアプリケーションを処理し得る。
【００７９】
当業者が理解するであろうように、種々の方法で、コンピュータ可読媒体１０２５を実装し得ることに留意されたい。例えば、コンピュータデバイス１００５内のメモリは、所望に応じて、コンピュータ可読媒体１０２５を構成し得る。代替として、コンピュータ可読媒体１０２５は、例えば、コンピュータデバイス１００５が、コンピュータデバイスまたは情報処理システムのネットワークから、機能的記述材料を受信する場合、一式の関連付けられた、相互に関係付けられた、連結された（例えば、導体、ファイバ等を通して）、またはネットワーク化されたコンピュータ可読メディアを含み得る。コンピュータデバイス１００５は、所望に応じて、コンピュータ可読媒体１０２５、ネットワーク、または両方から、機能的記述材料を受信し得ることに留意されたい。
【００８０】
開示される概念の範囲を限定することを意図することなく、本特許開示に提供される説明は、一般的用語「プロセッサ」を使用することに留意されたい。開示される概念の説明から利益を享受する当業者が、理解するように、他の名称によって周知であり得る、種々の回路網に、開示される概念を適用し得る。限定ではなく、そのような回路網の実施例として、コントローラ、状態マシン、およびマイクロプロセッサが挙げられる。概して、開示される概念を情報処理装置に適用し得る。
【００８１】
加えて、前述の説明は、２つのメモリの使用を参照するが、所望に応じて、開示される概念の説明の利益を享受する当業者の技術および知識範囲内にある、適切な修正を行うことによって、付加的メモリを使用し得る。例えば、所望に応じて、階層式に、命令をデコードするために使用することができる、３つ以上のメモリの階層を使用し得る。
【００８２】
さらに、開示される概念の説明から利益を享受する当業者が、理解するように、開示される概念を効果的に種々の種類のＩＣに適用し得る。限定ではなく、本書に説明される実施例は、単に、例証的用途を構成する。したがって、適切な修正を行うことによって、開示される概念を種々の種類のＩＣ（例えば、ＡＳＩＣ、ＡＳＳＰ、ＦＰＧＡ、ＣＰＬＤ等）に適用し得る。それらの修正は、開示される概念の説明の利益を享受する当業者の知識および技術レベル範囲内である。
【００８３】
図面を参照すると、当業者は、図示される種々のブロックが、主に、概念的機能および信号フローを描写する場合があることに留意するであろう。実際の回路実装は、種々の機能ブロックのための別個に識別可能なハードウェアを含む場合もあり、そうでない場合もあり、図示される特定の回路網を使用する場合もあり、そうでない場合もある。例えば、所望に応じて、種々のブロックの機能性を１つの回路ブロックに組み合わせてもよい。さらに、所望に応じて、いくつかの回路ブロック内の単一ブロックの機能性を実現し得る。回路実装の選択肢は、本開示の説明から利益を教授する当業者が、理解するように、所与の実装のための特定の設計および性能仕様等、種々の要因に依存する。他の修正および代替実施形態も、本明細書に説明されるものに加え、本開示の利益を享受する当業者に明白であろう。故に、本説明は、開示される概念を実行する様式を当業者に教示するものであって、例証のみとして解釈されたい。
【００８４】
図示および説明される形式および実施形態は、例証的実施形態として、見なされるべきである。当業者は、本書に開示される概念の範囲から逸脱することなく、部品の形状、サイズ、および配置に、種々の変更を行い得る。例えば、当業者は、本明細書に例証および説明される要素に対して、同等要素を代用し得る。さらに、本開示の利益を享受する当業者は、開示される概念の範囲から逸脱することなく、他の特徴の使用から独立して、開示される概念のある特徴を使用し得る。
【図１】
0005947222.tif 000002
【図２】
0005947222.tif 000003
【図３】
0005947222.tif 000004
【図４】
0005947222.tif 000005
【図５】
0005947222.tif 000006
【図６】
0005947222.tif 000007
【図７】
0005947222.tif 000008
【図８】
0005947222.tif 000009