JP2008535074A - 複数の発行ポートを有するプロセッサにおける命令グループの作成 - Google Patents
複数の発行ポートを有するプロセッサにおける命令グループの作成 Download PDFInfo
- Publication number
- JP2008535074A JP2008535074A JP2008503571A JP2008503571A JP2008535074A JP 2008535074 A JP2008535074 A JP 2008535074A JP 2008503571 A JP2008503571 A JP 2008503571A JP 2008503571 A JP2008503571 A JP 2008503571A JP 2008535074 A JP2008535074 A JP 2008535074A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- pool
- instructions
- pools
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000006243 chemical reaction Methods 0.000 claims abstract description 23
- 238000000034 method Methods 0.000 claims description 66
- 238000009826 distribution Methods 0.000 claims description 13
- 230000001419 dependent effect Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 230000007423 decrease Effects 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims 1
- 230000009466 transformation Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 5
- 238000013519 translation Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000761456 Nops Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 108010020615 nociceptin receptor Proteins 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45516—Runtime code conversion or optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
Description
多くのプロセッサは、専用浮動少数点演算装置のような特定のタスクを実施するために、専用の機能ユニットを採用する。全てのプロセッサは、有限の資源を有し、および特定の機能ユニットで実行できる命令の種類に関して制約を有するという問題が生じる。さらにパイプラインプロセッサは、単一のクロックサイクルで同時に2個以上の命令で作動できる。そのようなプロセッサは、1サイクルで複数の命令を実行できる。パイプラインプロセッサにおいて1つのグループとして共に実行するために、複数の命令を作成する際に問題が生じる。
1つの態様において、複数の発行ポートを通じたプロセッサの複数の機能ユニットへの分散のための命令グループを形成する方法が提供される。複数のプールの各々は、1以上の発行ポートに関連付けられ、かつ少なくとも1つの発行ポートを共有する少なくとも第1及び第2のプールを含む。命令は、命令の種類に従ってプールに格納され、命令が第1のプールへ格納されると、第2のプールの占有が減少する。次に、命令グループが、格納された命令から生成される。
図2に示されるように、制御は、最初に、トランスレータ制御ループ190でなされる。ステップ201において、制御ループ190が、トランスレータ19のコード発生機能192を呼出し、そのトランスレータは、対象コード17のブロックを、変換されるコード21の対応するブロックに変換する。ついで、ステップ202において、変換されたコード21のブロックは、目標プロセッサ13で実行される。1つの好ましい実施態様において、変換されたコード21のそれぞれのブロックの最後は、制御を制御ループ201へ戻す命令を含む。言い換えれば、対象コードを変換および実行するそれらのステップは、対象プログラム17のそれらの部分が、順に変換され、ついで実行されるように、インターレースされる。
この例では、対象命令S1〜S3が、機能的に均等な目標命令T1〜T3をもたらす。対象命令S1は、デッド・コード削除最適化などによって除去されており、生成された目標コード内において対応物を有さない。対象命令S2は、1つの均等な目標命令T3をもたらす。これに対して、対象命令S3は、2つの目標命令T1,T2をもたらす。目標コード命令と対象コード命令との間に、1対0、1対1、1対多、または多対1の関係が、存在可能である。
機能ユニット620のそれぞれは、パイプライン化され、かつクロックサイクル毎に1つの新しい命令を受け入れることができる。しかしながら、特定のサイクル内で実行できる、それぞれの種類の命令数に関して限界がある。
図6に示されるように、それぞれの命令600は、3個の命令のバンドル603の一部分を形成する。6個の命令(すなわち、2個のバンドル)は共に、命令グループ606を形成する。命令600は、命令キャッシュ609に格納される。フロントエンドFEは、バンドル回転として知られるプロセスにより、サイクル毎に命令キャッシュ609からゼロか、1つかまたは2つのバンドル603を取り出す。
命令は、命令の種類(たとえば、ALU、メモリ、整数など)に基づいて発生ポートの部分集合へマッピングされる。ついで、命令グループ内の命令の位置に応じて、その命令は、部分集合内の特定の発行ポートへマッピングされる。一例として、A型命令は、全てのMとIのポート上で発行できる一方、I型命令は、Iポートのみに発行できる。さらに、Iポートは非対称であり、そこにおいて、一部のI型命令は、ポートI0上でのみ発行できる。さらに、Mポートは、多くの非対称部分を有し、そこにおいて、M型命令は、メモリポートの1つまたは2つ上でのみ発行できる。
図7は、命令グループを作成する好ましい機構を示す。図7に示されるように、複数の割当プール700が提供される。それぞれのプール700は、1以上の命令600を含むように配列される。好都合には、それぞれのプール700は、1以上の命令空間701を有する。
図8に示されるように、対象プログラム17は、目標コード21に変換される(すなわち、図1のトランスレータ19により)。実行可能な目標コード命令600は待機リスト(ready list)820に作成される。待機リスト820は、実行される準備ができている目標コード命令を含む。理想的には、待機リスト820における命令600は、待機リストにおいて、それぞれの命令が、他の命令と関係なく実行できるという点で、それぞれ独立している。
候補命令821の待機リスト820はステップ901において提供される。第1の候補命令821は、ステップ902において待機リスト820から選択される。一実施態様において、候補命令は、待機リスト内の経年数(たとえば、そのリストにおける最も古い命令)に基づいて選択される。他の実施態様において、その命令は、待ち時間に基づいて選択される。命令の実行回数(待ち時間)は、1〜24サイクルの範囲である。キャッシュを欠くメモリからのロード、およびチェック命令(推測に使用される)は、50サイクルを超えることがある。このために、好ましい例において、実行の最も長くかかる命令が、少ないクロックサイクルで実行する命令に優先して選択される。他の特に好ましい実施態様において、命令は、その命令、およびその命令に従属する命令の累積待ち時間に基づいて選択される(たとえば、LOAD命令は、累積待ち時間を有し、その待ち時間も、従属PUSH命令の待ち時間を含む)。
ステップ906において、命令グループが、割当プール階層700に格納された命令の集合から準備できるかどうかが判断される。準備できない場合、次の命令がステップ902において選択される。準備できる場合、格納された命令はステップ907において命令グループに形成される。ついで待機リストは、格納された命令に対応するように更新され(ステップ902)、そして、このプロセスが繰返される。特に、実行準備ができた命令グループに作成された命令により依存性が除かれる場合、新しい目標命令が待機リストへ加えられる。
図10を参照すると、命令600(ここでは文字「T」により示される)は、利用できる命令空間701を占有するために、所望のプール700へ割当てられる。図10の例において、第1の命令T1は、プールM0に格納されるメモリ型M命令である。このプールは、1つの命令のみを受け入れることができるので、命令T1がプールM0を満たす。
図7、10および11を参照すると、この好ましい実施態様において、追加の最下位グループ・プール715が、命令グループを表すために提供される。このグループ・プール715は適切には、6個の命令空間(この命令グループにおける最大)を有する。命令は、グループ・プール715に直接格納することができない。代わりに、このグループ・プールは、6個の命令が、上位レベルのプールに適正に、かつ有効に格納されたことを確認する好都合な機構を提供する。
図14は、命令グループを作成する別の好ましい方法を示す。この方法は適切には、図13に示されるプール構造を使用する。
Claims (35)
- プロセッサ(13)の複数の機能ユニット(620)に対する分散を複数の発行ポート(610)を通じて行うための命令グループ(606)を形成する方法であって、
複数のプール(700)を提供するステップであって、各プール(700)は、1以上の発行ポート(610)に関連付けられており、少なくとも1つの発行ポート(610、I0)を共有する少なくとも第1及び第2のプール(I0、I0_1)を含む、ステップと、
命令の種類に従って複数のプール(700)に命令(600)を格納するステップであって、命令(600)を第1のプール(I0)に格納することにより、第2のプール(I0_1)の利用性を減少させる、ステップと、
格納された命令(600)から命令グループ(606)を生成するステップと、
を備える方法。 - 前記複数のプール(700)は、前記第1のプール(I0)が前記第2のプール(I0_1)の上位となる階層アーキテクチャ(711〜715)を形成する、請求項1記載の方法。
- 前記第1のプール(I0)は、前記第2のプール(I0_1)よりも少ない発行ポート(610)に関連付けられている、請求項1又は2記載の方法。
- 前記複数のプール(700)を提供するステップであって、各プール(700)は、該各プール(700)が所定の数の命令(600)を受け入れるためのゼロまたは1以上の空白を有するように、1以上の命令空間(701)を有する、ステップと、
命令を第1のプール(I0)に格納するステップと、
前記命令を第1のプール(I0)に格納するステップに応答して、第1のプール(I0)において利用可能な命令空間(701)の数を減少させるステップと、
前記命令を第1のプール(I0)に格納するステップに応答して、第2のプール(I0_1)において利用可能な命令空間(701)の数を減少させるステップと、
を更に備える、請求項1乃至3の何れか一項記載の方法。 - 前記複数のプール(700)の各々は所定の最大占有を有し、
前記命令を格納するステップは、前記複数のプール(700)の少なくとも2個の占有を調整するステップを含む、請求項1乃至4の何れか一項記載の方法。 - 前記第1のプール(I0)及び前記第2のプール(I0_1)の両方が前記命令を受け入れるのに利用可能な容量を有している場合にのみ、前記命令を第1のプール(I0)に格納するステップを更に備える、請求項5記載の方法。
- 前記第1のプール(I0)及び前記第2のプール(I0_1)の両方がそれぞれにおける所定の最大占有まで占有されていない場合にのみ、前記命令を第1のプール(I0)に格納するステップを更に備える、請求項5又は6記載の方法。
- 前記複数のプール(700)の各々に関連付けられたカウンタ値(702)を提供するステップであって、前記カウンタ値(702)は格納された命令(600)の数を表す、ステップと、
各カウンタ値(702)を所定の閾値と比較して、前記第1及び第2のプール(711、712)が命令を受け入れることができるかを確認するステップと、
命令が前記第1のプール(I0)に格納される毎に、前記第1のプール(I0)のカウンタ値(702)及び前記第2のプール(I0_1)のカウンタ値(702)を調整するステップと、
を更に備える、請求項1乃至7の何れか一項記載の方法。 - 命令グループ(606)内での前記プール(700)の所定の最大占有に前記カウンタ値(702)を初期化するステップと、
命令の格納毎に前記カウンタ値(702)をデクリメントするステップと、
前記カウンタ値(702)をゼロの閾値と比較するステップと、
を更に備える、請求項8記載の方法。 - 前記複数のプール(700)の少なくとも1つの最大占有を、1つのプール(700)に関連付けられた発行ポート(610)および/または命令の種類により決定される前記1つのプール(700)に関する絶対最大未満に制約するステップを更に備える、請求項8記載の方法。
- 前記第1及び第2のプール(711、712)における利用性を減少させるとともに、前記第1及び第2のプール(711、712)の何れかに従属しない第3のプール(F)の利用性を減少させることにより、特定の種類の命令を格納するステップを更に備える、請求項1乃至10の何れか一項記載の方法。
- 命令グループ(606)の命令(600)の最大数を表すグループ・プール(GP)を提供するステップと、
前記複数のプール(700)の他のいずれかに命令が格納される毎に、前記グループ・プール(GP)の占有を調整するステップと、
を更に備える、請求項1乃至11の何れか一項記載の方法。 - 候補命令(821)の待機リスト(820)を形成するステップと、
前記待機リスト(820)から候補命令(821)を選択するステップと、
前記候補命令(821)を前記複数のプール(700)の1つに格納するステップと、
を更に備える、請求項1乃至12の何れか一項記載の方法。 - 前記待機リスト(820)内の候補命令(821)は、各々独立して実行可能である、請求項13記載の方法。
- それまでに格納された候補命令(821)により全ての依存性が満たされた後に、候補命令(821)を前記待機リスト(820)へ付加するステップを更に備える、請求項14記載の方法。
- 対象コード(17)のセクションを、目標コード命令(21)のブロックに変換するステップと、
前記目標コード命令(21)のブロックから1以上の命令を前記待機リスト(820)へ選択的に付加するステップと、
を更に備える、請求項15記載の方法。 - 前記プール(700)から前記格納された命令(600)を順次取り出して前記命令グループ(606)を生成するステップを更に備える、請求項1乃至16の何れか一項記載の方法。
- 前記複数のプール(700)に命令(600)の所定の最大数が格納された場合か、または前記複数のプール(700)にさらなる命令(600)を格納することが適切でない場合に前記命令グループ(606)を生成するステップを更に備える、請求項1乃至17の何れか一項記載の方法。
- 前記格納された命令(600)の組み合わせをテンプレート集合に対してチェックするステップを更に備える、請求項1乃至18の何れか一項記載の方法。
- 前記複数のプール(700)に既に格納されたゼロまたは1以上の命令(600)と共に、前記複数のプール(700)に格納すべき命令(600)の候補組み合わせを形成するステップと、
前記プロセッサ(13)の複数の機能ユニット(620)内において有効に実行可能な命令組み合わせを表すテンプレート集合に対して、前記候補組み合わせをチェックするステップと、
を更に備える、請求項1乃至19の何れか一項記載の方法。 - 前記複数のプール(700)は、少なくとも、メモリ、浮動小数点、および整数の種類の命令(600)を供給する発行ポート(610)に関連付けられている、請求項1乃至20の何れか一項記載の方法。
- 前記複数のプール(700)は、少なくとも、メモリ、浮動小数点、整数、および分岐の種類の命令(600)を供給する発行ポート(610)に関連付けられている、請求項20記載の方法。
- 目標プロセッサ(13)の複数の機能ユニット(620)に対する分散を複数の発行ポート(610)を通じて行うための目標命令の命令グループ(606)を、対象プロセッサ(13)により実行可能な対象命令(17)に基づいて作成するために、
前記対象命令(17)から目標命令(600)のブロックを生成するステップと、
前記目標命令のブロックの集合を前記複数のプール(700)に格納するステップであって、各プール(700)は、1以上の従属する広域プール(I0_1、A)よりも少ない命令ポートに関連付けられた1以上の上位の狭域プール(I0)を有するオーバーラップ階層構造(711〜715)における発行ポート(610)の部分集合に関連付けられており、前記目標命令の1つを前記階層構造(711〜715)における前記上位の狭域プールの1つに格納することに応答して、前記1以上の従属する広域プール(I0_1、A)の少なくとも1つにおける利用性を減少させる、ステップと、
前記格納された目標命令(600)の集合から命令グループ(606)を形成するステップと、
を更に備える、請求項1乃至22の何れか一項記載の方法。 - 前記狭域プール(I0)及び前記広域プール(I0_1、A)の両方に格納可能な目標命令(600)を、狭域プール(I0)に優先して広域プール(I0_1、A)に格納するステップを更に備える、請求項23記載の方法。
- 前記プール(700)または任意の上位プールに格納された命令(600)の数を表すカウンタ値(702)を提供するステップと、
前記カウンタ値(702)を調べ、前記プール(700)または任意の従属するプールが満杯か否かを命令(600)の格納前に判断するステップと、
を更に備える、請求項23又は24記載の方法。 - 命令グループ(606)における命令(600)の最大数を表すカウンタ値(702)を有するグループ・プール(GP)を提供するステップと、
前記複数のプール(700)の他のいずれかに命令が格納される毎に前記グループ・プール(GP)のカウンタ値(702)を変更するステップと、
を更に備える、請求項25記載の方法。 - 前記目標命令(600)のブロックに基づき、各々独立して実行可能な候補命令(821)の待機リスト(820)を更新するステップと、
候補命令(821)を前記待機リスト(820)から取り出すステップと、
命令の種類に関して前記候補命令(821)に適切な所望のプールを決定するステップと、
前記所望のプール(700)及び該所望のプールに従属する任意の従属プール(700)が前記候補命令(821)を受け入れ可能か否かを確認するステップであって、受け入れ可能である場合、前記候補命令(821)を前記所望のプールに格納することにより、前記所望のプール及び前記従属プールにおける利用性を減少させ、受け入れ可能でない場合、前記目標命令の集合が格納されて命令グループ(606)を形成する準備ができるまで、次の候補命令(821)について前記確認を繰り返すステップと、
を更に備える、請求項23乃至26の何れか一項記載の方法。 - 前記複数のプール(700)に格納された目標命令の集合に基づき命令グループ(606)が形成される毎に、前記待機リスト(820)を更新するステップを更に備える請求項27記載の方法。
- 前記待機リスト(820)の経年数、前記候補命令(821)の待ち時間、および前記ブロック内における1以上の従属目標命令の待ち時間と組み合わせた前記候補命令(821)の累積待ち時間のうちの少なくとも1つに基づいて、前記候補命令(821)を取り出すステップを更に備える、請求項27又は28記載の方法。
- 前記候補命令(821)に関する命令の種類及び適切な1つ又は複数の発行ポート(610)に従って前記所望のプール(700)を決定するステップを更に備える、請求項27乃至29の何れか一項記載の方法。
- 所定数の命令(600)が格納された場合か、または前記待機リスト(820)からの命令(600)を更に格納することができない場合、前記複数のプール(700)に格納された命令(600)の集合から命令グループ(606)を準備可能であることを判断するステップを更に備える、請求項27乃至30の何れか一項記載の方法。
- 1以上の非動作命令(600)を有する命令グループ(606)を形成して、部分的に完全な命令グループ(606)を満たすステップを更に備える、請求項31記載の方法。
- 前記対象コード命令(17)を複数のブロックに分割して、対象コード(17)の現行ブロックを選択するステップと、
前記対象コード(17)の現行ブロックを、動的バイナリ変換を通じて目標コード(21)の現行ブロックに変換し、該目標コードの現行ブロック内に含まれる目標命令を命令グループ(606)内に準備するステップと、
前記命令グループ(606)を使用して前記目標コード(21)の現行ブロックを実行するとともに、次なる対象コード(17)の現行ブロックを決定するステップと、
前記次なる対象コード(17)の現行ブロックに関して、前記変換と前記実行とを繰り返すステップと、
を更に備える、請求項23乃至32の何れか一項記載の方法。 - 対象コード(17)を目標プロセッサ(13)により実行可能な目標コード(21)に変換するように構成されたトランスレータ装置であって、
前記目標プロセッサ(13)の複数の機能ユニット(620)に対する分散を複数の発行ポート(610)を通じて行うための目標コード(21)の命令グループ(606)を形成するように構成されたトランスレータユニットを備え、前記トランスレータユニットは請求項1乃至33の何れか一項記載の方法を実行するように構成されている、トランスレータ装置。 - 請求項1乃至33の何れか一項記載の方法を実現する、コンピュータにより実行可能な命令が記録されたコンピュータ読取可能媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0506469A GB2424727B (en) | 2005-03-30 | 2005-03-30 | Preparing instruction groups for a processor having a multiple issue ports |
GB0506469.6 | 2005-03-30 | ||
US11/139,232 US7934203B2 (en) | 2005-03-30 | 2005-05-27 | Preparing instruction groups for a processor having multiple issue ports |
US11/139,232 | 2005-05-27 | ||
PCT/GB2006/001000 WO2006103395A1 (en) | 2005-03-30 | 2006-03-17 | Preparing instruction groups in a processor having multiple issue ports |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008535074A true JP2008535074A (ja) | 2008-08-28 |
JP2008535074A5 JP2008535074A5 (ja) | 2012-06-07 |
JP5102758B2 JP5102758B2 (ja) | 2012-12-19 |
Family
ID=34566706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008503571A Active JP5102758B2 (ja) | 2005-03-30 | 2006-03-17 | 複数の発行ポートを有するプロセッサにおける命令グループを形成する方法、並びに、その装置及びコンピュータ・プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US7934203B2 (ja) |
JP (1) | JP5102758B2 (ja) |
CN (1) | CN100585560C (ja) |
GB (1) | GB2424727B (ja) |
TW (1) | TWI406176B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210098533A (ko) * | 2019-01-08 | 2021-08-10 | 애플 인크. | 코프로세서 동작 번들링 |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
EP2122461A4 (en) | 2006-11-14 | 2010-03-24 | Soft Machines Inc | DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES |
US8116748B2 (en) | 2006-12-14 | 2012-02-14 | At&T Intellectual Property I, Lp | Management of locations of group members via mobile communications devices |
US8160548B2 (en) * | 2006-12-15 | 2012-04-17 | At&T Intellectual Property I, Lp | Distributed access control and authentication |
US8566602B2 (en) | 2006-12-15 | 2013-10-22 | At&T Intellectual Property I, L.P. | Device, system and method for recording personal encounter history |
US7646297B2 (en) | 2006-12-15 | 2010-01-12 | At&T Intellectual Property I, L.P. | Context-detected auto-mode switching |
US8787884B2 (en) * | 2007-01-25 | 2014-07-22 | At&T Intellectual Property I, L.P. | Advertisements for mobile communications devices via pre-positioned advertisement components |
US8649798B2 (en) * | 2007-01-25 | 2014-02-11 | At&T Intellectual Property I, L.P. | Methods and devices for attracting groups based upon mobile communications device location |
US8199003B2 (en) * | 2007-01-30 | 2012-06-12 | At&T Intellectual Property I, Lp | Devices and methods for detecting environmental circumstances and responding with designated communication actions |
US8335504B2 (en) | 2007-08-23 | 2012-12-18 | At&T Intellectual Property I, Lp | Methods, devices and computer readable media for providing quality of service indicators |
US20090070570A1 (en) * | 2007-09-11 | 2009-03-12 | Shubhodeep Roy Choudhury | System and Method for Efficiently Handling Interrupts |
US7992059B2 (en) | 2007-09-11 | 2011-08-02 | International Business Machines Corporation | System and method for testing a large memory area during processor design verification and validation |
US7752499B2 (en) * | 2007-09-11 | 2010-07-06 | International Business Machines Corporation | System and method for using resource pools and instruction pools for processor design verification and validation |
US8006221B2 (en) | 2007-09-11 | 2011-08-23 | International Business Machines Corporation | System and method for testing multiple processor modes for processor design verification and validation |
US8099559B2 (en) * | 2007-09-11 | 2012-01-17 | International Business Machines Corporation | System and method for generating fast instruction and data interrupts for processor design verification and validation |
US8019566B2 (en) * | 2007-09-11 | 2011-09-13 | International Business Machines Corporation | System and method for efficiently testing cache congruence classes during processor design verification and validation |
EP2616928B1 (en) | 2010-09-17 | 2016-11-02 | Soft Machines, Inc. | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
US9274793B2 (en) | 2011-03-25 | 2016-03-01 | Soft Machines, Inc. | Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
KR101842550B1 (ko) | 2011-11-22 | 2018-03-28 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
EP2783281B1 (en) | 2011-11-22 | 2020-05-13 | Intel Corporation | A microprocessor accelerated code optimizer |
US8782620B2 (en) * | 2012-06-12 | 2014-07-15 | International Business Machines Corporation | Processing reified generics in object-based programming environments |
DE112012006946T5 (de) * | 2012-09-27 | 2015-06-03 | Intel Corporation | Verfahren und Vorrichtung zur Planung von Speicherinstruktionen quer über atomare Bereiche bei der binären Übersetzung |
US9304848B2 (en) | 2013-01-15 | 2016-04-05 | International Business Machines Corporation | Dynamic accessing of execution elements through modification of issue rules |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
EP2972845B1 (en) | 2013-03-15 | 2021-07-07 | Intel Corporation | A method for executing multithreaded instructions grouped onto blocks |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
CN105247484B (zh) * | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
US9348596B2 (en) | 2013-06-28 | 2016-05-24 | International Business Machines Corporation | Forming instruction groups based on decode time instruction optimization |
US9372695B2 (en) | 2013-06-28 | 2016-06-21 | Globalfoundries Inc. | Optimization of instruction groups across group boundaries |
US20160179542A1 (en) * | 2014-12-23 | 2016-06-23 | Patrick P. Lai | Instruction and logic to perform a fused single cycle increment-compare-jump |
US10331446B2 (en) * | 2017-05-23 | 2019-06-25 | International Business Machines Corporation | Generating and verifying hardware instruction traces including memory data contents |
US11962455B2 (en) | 2021-11-29 | 2024-04-16 | T-Mobile Usa, Inc. | Prioritizing multiple issues associated with a wireless telecommunication network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09292991A (ja) * | 1996-04-30 | 1997-11-11 | Nec Corp | 命令処理方法及び命令処理装置 |
JP2002323982A (ja) * | 2001-04-25 | 2002-11-08 | Fujitsu Ltd | 命令処理方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148533A (en) * | 1989-01-05 | 1992-09-15 | Bull Hn Information Systems Inc. | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units |
CA2016068C (en) * | 1989-05-24 | 2000-04-04 | Robert W. Horst | Multiple instruction issue computer architecture |
US5404557A (en) * | 1991-11-22 | 1995-04-04 | Matsushita Electric Industrial Co., Ltd. | Data processor with plural instruction execution parts for synchronized parallel processing and exception handling |
US6237077B1 (en) * | 1997-10-13 | 2001-05-22 | Idea Corporation | Instruction template for efficient processing clustered branch instructions |
WO2000022521A1 (en) | 1998-10-10 | 2000-04-20 | The Victoria University Of Manchester | Program code conversion |
US6871298B1 (en) * | 1999-11-12 | 2005-03-22 | Obsidian Software, Inc. | Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing |
US6799262B1 (en) * | 2000-09-28 | 2004-09-28 | International Business Machines Corporation | Apparatus and method for creating instruction groups for explicity parallel architectures |
US7082602B2 (en) * | 2002-04-12 | 2006-07-25 | Intel Corporation | Function unit based finite state automata data structure, transitions and methods for making the same |
US7496494B2 (en) | 2002-09-17 | 2009-02-24 | International Business Machines Corporation | Method and system for multiprocessor emulation on a multiprocessor host system |
US8423976B2 (en) | 2003-03-13 | 2013-04-16 | Northrop Grumman Corporation | Extreme pipeline and optimized reordering technology |
-
2005
- 2005-03-30 GB GB0506469A patent/GB2424727B/en not_active Expired - Fee Related
- 2005-05-27 US US11/139,232 patent/US7934203B2/en active Active
-
2006
- 2006-03-17 JP JP2008503571A patent/JP5102758B2/ja active Active
- 2006-03-17 CN CN200680010649A patent/CN100585560C/zh active Active
- 2006-03-27 TW TW095110556A patent/TWI406176B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09292991A (ja) * | 1996-04-30 | 1997-11-11 | Nec Corp | 命令処理方法及び命令処理装置 |
JP2002323982A (ja) * | 2001-04-25 | 2002-11-08 | Fujitsu Ltd | 命令処理方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210098533A (ko) * | 2019-01-08 | 2021-08-10 | 애플 인크. | 코프로세서 동작 번들링 |
US11755328B2 (en) | 2019-01-08 | 2023-09-12 | Apple Inc. | Coprocessor operation bundling |
KR102588399B1 (ko) * | 2019-01-08 | 2023-10-12 | 애플 인크. | 코프로세서 동작 번들링 |
Also Published As
Publication number | Publication date |
---|---|
GB0506469D0 (en) | 2005-05-04 |
CN101151594A (zh) | 2008-03-26 |
TW200710730A (en) | 2007-03-16 |
CN100585560C (zh) | 2010-01-27 |
GB2424727A (en) | 2006-10-04 |
US7934203B2 (en) | 2011-04-26 |
GB2424727B (en) | 2007-08-01 |
US20060224863A1 (en) | 2006-10-05 |
TWI406176B (zh) | 2013-08-21 |
JP5102758B2 (ja) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5102758B2 (ja) | 複数の発行ポートを有するプロセッサにおける命令グループを形成する方法、並びに、その装置及びコンピュータ・プログラム | |
JP2008535074A5 (ja) | ||
CN103858099B (zh) | 用于执行应用的方法和系统、具有机器指令的电路 | |
Eichenberger et al. | Using advanced compiler technology to exploit the performance of the Cell Broadband Engine™ architecture | |
JP5934094B2 (ja) | データ並列スレッドを有する処理論理の複数のプロセッサにわたるマッピング | |
Chakravarty et al. | Data Parallel Haskell: a status report | |
US20080250227A1 (en) | General Purpose Multiprocessor Programming Apparatus And Method | |
US9477465B2 (en) | Arithmetic processing apparatus, control method of arithmetic processing apparatus, and a computer-readable storage medium storing a control program for controlling an arithmetic processing apparatus | |
WO2015150342A1 (en) | Program execution on heterogeneous platform | |
US10372509B2 (en) | Composable and cancelable dataflow continuation passing | |
US20080270771A1 (en) | Method of optimizing multi-set context switch for embedded processors | |
US20120331278A1 (en) | Branch removal by data shuffling | |
US8499293B1 (en) | Symbolic renaming optimization of a trace | |
Osama et al. | Parallel SAT simplification on GPU architectures | |
Diamos et al. | Translating GPU binaries to tiered SIMD architectures with Ocelot | |
EP1866759B1 (en) | Preparing instruction groups in a processor having multiple issue ports | |
Wozniak et al. | Language features for scalable distributed-memory dataflow computing | |
Aditya et al. | Elcor's machine description system: Version 3.0 | |
US20050257200A1 (en) | Generating code for a configurable microprocessor | |
US20230367604A1 (en) | Method of interleaved processing on a general-purpose computing core | |
Fluet et al. | Status report: The manticore project | |
JPH09512939A (ja) | 超長命令語プログラムのオブジェクト・コードの互換性ある表記方法 | |
Raskar | Dataflow software pipelining for codelet model using hardware-software co-design | |
Aumage | Instruments of Productivity for High Performance Computing | |
Abdolrashidi | Improving Data-Dependent Parallelism in GPUs Through Programmer-Transparent Architectural Support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090316 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090731 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20090824 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20090824 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120319 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20120319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120321 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120904 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120904 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20120904 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120928 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151005 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5102758 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |