JP2015518995A - レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体 - Google Patents

レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体 Download PDF

Info

Publication number
JP2015518995A
JP2015518995A JP2015516123A JP2015516123A JP2015518995A JP 2015518995 A JP2015518995 A JP 2015518995A JP 2015516123 A JP2015516123 A JP 2015516123A JP 2015516123 A JP2015516123 A JP 2015516123A JP 2015518995 A JP2015518995 A JP 2015518995A
Authority
JP
Japan
Prior art keywords
instruction
pipeline
execution
execution pipeline
register
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
Application number
JP2015516123A
Other languages
English (en)
Other versions
JP6317339B2 (ja
JP2015518995A5 (ja
Inventor
メリンダ・ジェイ・ブラウン
ジェームズ・ノリス・ディエフェンダーファー
マイケル・ダブリュー・モロー
ブライアン・マイケル・ステンペル
マイケル・スコット・マッキルヴェイン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2015518995A publication Critical patent/JP2015518995A/ja
Publication of JP2015518995A5 publication Critical patent/JP2015518995A5/ja
Application granted granted Critical
Publication of JP6317339B2 publication Critical patent/JP6317339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、システム、方法、およびコンピュータ可読媒体が開示される。命令が命令ストリーム中で検出される。命令が少なくとも1つのソースレジスタを指定すると判断すると、実行パイプライン優先度が、パイプライン発行テーブル中の少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて決定され、命令が、実行パイプライン優先度に基づいて、実行パイプラインに発行される。命令が少なくとも1つのターゲットレジスタを指定すると判断すると、命令が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータが更新される。命令の最適な転送を可能にし、プロセッサの性能を向上させることができる。

Description

本開示の技術は、一般に、中央処理装置(CPU)ベースのシステムにおけるパイプラインコンピュータ命令の処理に関する。本出願は、2012年6月5日に出願された米国仮特許出願第61/655,655号の優先権を主張する。
現代のコンピュータアーキテクチャにおける「命令パイプライン」の出現は、CPUリソースの利用を改善し、コンピュータアプリケーションの実行時間をより高速にしている。命令パイプラインは、各命令の処理を一連のステップに分割することによって、CPUによって処理されている命令のスループットが増大され得る処理技法である。命令は、複数のステージから構成される「実行パイプライン」において実行され、各ステージは、一連の命令の各々のために、ステップのうちの1つを実行する。結果として、各CPUクロックサイクルにおいて、複数の命令のためのステップが並列に評価され得る。CPUは、場合によっては、複数の実行パイプラインを採用して、性能をさらに高めることができる。
時々、ある命令が実行パイプラインにおいてその指定されたCPUクロックサイクル中に実行できない状況が、生じることがある。たとえば、データ依存性が、最初の命令と後続の命令との間に存在することがある(すなわち、後続の命令が、最初の命令によって行われた動作によって生成されたデータを必要とすることがある)。後続の命令が実行を開始する前に、最初の命令が完全に実行していない場合、後続の命令が実行するとき、後続の命令によって必要とされるデータがまだ利用可能ではないことがあり、したがって、パイプライン「ハザード」(具体的には、「リードアフターライトハザード」)が生じることになる。このハザードを解決するために、CPUは、最初の命令が完全に実行するまで、後続の命令の実行を「ストール」または遅延させ得る。後続の命令をストールせざるを得ない状態を回避する助けとするために、CPUは、「パイプライン転送(pipeline forwarding)」として知られる技法を代替的に採用することがある。パイプライン転送は、最初に実行された命令の結果がレジスタに書き込まれ、次いで後続の命令によってレジスタからリードバックされることを必要とせずに、後続の命令がその結果にアクセスすることを可能にすることによって、後続の命令の実行をストールさせる必要がないようにすることができる。
パイプライン転送は、同じ実行パイプライン内で実行する命令間で行われることがあり、より具体的には「パイプライン内転送(intra-pipeline forwarding)」と呼ばれ得るプロセスである。加えて、パイプライン転送は、別々の実行パイプライン中で実行する命令間で起こることがあり、このプロセスは、従来「パイプライン間転送(inter-pipeline forwarding)」と呼ばれるものである。CPUは、2つの別々の実行パイプライン間のパイプライン間転送よりも効率的に、かつより多くのアクセスポイントから、単一の実行パイプライン内でパイプライン内転送を行うように構成され得る。パイプライン間転送の性能は、より多くのアクセスポイントを有効に追加するようにCPUの転送回路を拡張することによって向上し得るが、CPUアーキテクチャの複雑さが増す形で、トレードオフが存在し得る。
本開示の実施形態は、レジスタ関連優先度に基づく、実行パイプラインへの命令の発行を提供する。関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体もまた開示される。この点について、一実施形態では、コンピュータ命令を処理するための方法が提供される。方法は、命令ストリーム中で命令を検出するステップを含む。命令が少なくとも1つのソースレジスタを指定すると判断すると、命令のための少なくとも1つの実行パイプライン優先度が、パイプライン発行テーブル中の少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて決定され、命令が、少なくとも1つの実行パイプライン優先度に基づいて、実行パイプラインに発行される。方法は、命令が少なくとも1つのターゲットレジスタを指定すると判断すると、命令が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するステップをさらに含む。このようにして、命令の最適な転送を可能にし、したがって、プロセッサの性能を向上させることができる。
別の実施形態では、命令処理回路を備えるプロセッサが提供される。命令処理回路は、命令ストリーム中で命令を検出するように構成された命令検出回路と、パイプライン発行テーブルとを備える。命令処理回路は、ソースレジスタ検出回路とターゲットレジスタ検出回路とをさらに備える。ソースレジスタ検出回路は、命令が少なくとも1つのソースレジスタを指定するかどうかを判断するように構成される。命令が少なくとも1つのソースレジスタを指定すると判断することに応答して、ソースレジスタ検出回路は、パイプライン発行テーブル中の少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、命令のための少なくとも1つの実行パイプライン優先度を決定するように構成される。ターゲットレジスタ検出回路は、命令が少なくとも1つのターゲットレジスタを指定するかどうかを判断するように構成される。命令が少なくとも1つのターゲットレジスタを指定すると判断することに応答して、ターゲットレジスタ検出回路は、命令が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するように構成される。プロセッサは、ソースレジスタ検出回路が、命令が少なくとも1つのソースレジスタを指定すると判断することに応答して、少なくとも1つの実行パイプライン優先度に基づいて、命令を実行パイプラインに発行するように構成される。
別の実施形態では、命令処理回路を備えるプロセッサが提供される。命令処理回路は、命令ストリーム中で命令を検出するための手段を備える。命令処理回路は、命令が少なくとも1つのソースレジスタを指定すると判断することに応答して、パイプライン発行テーブル中の少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、命令のための少なくとも1つの実行パイプライン優先度を決定するための手段をさらに備える。命令処理回路はまた、命令が少なくとも1つのソースレジスタを指定すると判断することに応答して、少なくとも1つの実行パイプライン優先度に基づいて、命令を実行パイプラインに発行するための手段を備える。命令処理回路は、命令が少なくとも1つのターゲットレジスタを指定すると判断することに応答して、命令が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するための手段をさらに備える。
別の実施形態では、命令ストリーム中で命令を検出するための方法をプロセッサに実施させるためのコンピュータ実行可能命令を記憶した、非一時的コンピュータ可読媒体が提供される。コンピュータ実行可能命令によって実施される方法はまた、命令が少なくとも1つのソースレジスタを指定すると判断すると、パイプライン発行テーブル中の少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、命令のための少なくとも1つの実行パイプライン優先度を決定するステップと、少なくとも1つの実行パイプライン優先度に基づいて、命令を実行パイプラインに発行するステップとを含む。コンピュータ実行可能命令によって実施される方法は、命令が少なくとも1つのターゲットレジスタを指定すると判断すると、命令が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するステップをさらに含む。
レジスタ関連優先度に基づいて、命令を1つまたは複数の実行パイプラインに発行するように構成された例示的な命令処理回路を含む、1つまたは複数の実行パイプラインに入れられるべきコンピュータ命令を取り出し、処理するための、プロセッサベースシステム中に設けられた例示的な構成要素のブロック図である。 最初の命令を実行パイプラインに発行すること、実行パイプラインに基づいて、パイプライン発行テーブル中のパイプラインインジケータを更新すること、および、パイプラインインジケータに基づいて、後続の命令を実行パイプラインに優先的に発行することを含む、プロセッサベースシステムにおける例示的なシーケンスを示す図である。 1つまたは複数のソースレジスタに基づいて、命令のための少なくとも1つの実行パイプライン優先度を決定すること、少なくとも1つの実行パイプライン優先度に基づいて、命令を実行パイプラインに発行すること、および、命令が発行される先の実行パイプラインに基づいて、1つまたは複数のターゲットレジスタのための1つまたは複数のパイプラインインジケータを更新することを行うための、命令処理回路の例示的なプロセスを示すフローチャートである。 レジスタ関連優先度に基づいて、命令を実行パイプラインに発行するための、命令処理回路のより詳細な例示的なプロセスを示すフローチャートである。 レジスタ関連優先度に基づいて、命令を実行パイプラインに発行するための、命令処理回路のより詳細な例示的なプロセスを示すフローチャートである。 フラグベースのパイプライン発行テーブルに記憶されたレジスタ関連優先度に基づいて、命令を実行パイプラインに発行することを含む、例示的なシーケンスを示す図である。 識別情報ベースのパイプライン発行テーブルに記憶されたレジスタ関連優先度に基づいて、命令を実行パイプラインに発行することを含む、例示的なシーケンスを示す図である。 レジスタ関連優先度に基づいて、命令を実行パイプラインに発行するように構成された、図1の命令処理回路を含む、命令処理回路を含み得る、例示的なプロセッサベースシステムのブロック図である。
ここで図面を参照して、本開示のいくつかの例示的な実施形態を説明する。「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。「例示的な」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。
本開示の実施形態は、レジスタ関連優先度に基づく、実行パイプラインへの命令の発行を提供する。関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体もまた開示される。この点について、一実施形態では、コンピュータ命令を処理するための方法が提供される。方法は、命令ストリーム中で命令を検出することを含む。命令が少なくとも1つのソースレジスタを指定すると判断すると、命令のための少なくとも1つの実行パイプライン優先度が、パイプライン発行テーブル中の少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて決定され、命令が、少なくとも1つの実行パイプライン優先度に基づいて、実行パイプラインに発行される。方法は、命令が少なくとも1つのターゲットレジスタを指定すると判断すると、命令が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新することをさらに含む。このようにして、命令の最適な転送を可能にし、したがって、プロセッサの性能を向上させることができる。
この点について、図1は、レジスタ関連優先度に基づいて、命令を実行パイプライン12(0〜Q)(本明細書でそれぞれP0〜PQと呼ぶ)に発行するための、例示的なプロセッサベースシステム10のブロック図である。以下でより詳細に説明するように、プロセッサベースシステム10は、命令のための実行パイプライン優先度を決定するように構成される、命令処理回路14を設ける。いくつかの実施形態では、命令処理回路は、命令検出回路15と、ソースレジスタ検出回路16と、ターゲットレジスタ検出回路17とを含み得る。命令検出回路14によって処理された命令は、プロセッサベースシステム10によってアクセス可能なローカルの高速ストレージを提供する、レジスタ18(0〜X)(本明細書でそれぞれR0〜RXと呼ぶ)からデータを読み取り、かつ/またはレジスタ18(0〜X)へデータを書き込むための動作を示すことができる。本明細書で説明するように、「命令」は、指定された1つまたは複数のタスクを実行するようにコンピュータプロセッサに指示する、命令セットアーキテクチャによって定義されたビットの組合せを指し得る。例示的な命令セットアーキテクチャには、限定はしないが、ARMアーキテクチャ、Thumbアーキテクチャ、およびA64アーキテクチャが含まれる。
引き続き図1を参照すると、命令は、命令ストリーム19によって表された連続フローで、プロセッサベースシステム10において処理される。プロセッサベースシステム10が動作中であり、命令を実行中である間、命令ストリーム19は、連続的に進むことができる。この図示の例では、命令ストリーム19は、命令メモリ20から開始し、命令メモリ20は、コンピュータ実行可能プログラム中の命令のための永続ストレージを提供する。命令フェッチ回路22は、命令メモリ20から、および/または場合によっては命令キャッシュ24から命令を読み取り、レジスタ18(0〜X)のうちの1つに記憶され得るプログラムカウンタを増分することができる。
命令が命令フェッチ回路22によってフェッチされると、命令は命令解読回路26へ進み、命令解読回路26は、命令をプロセッサ固有のマイクロ命令に変換する。本実施形態では、命令解読回路26は、解読するために同時に複数の命令28(0〜N)のグループを保持する。命令がフェッチおよび解読された後、命令は、場合によっては命令キュー30(すなわち、命令を記憶するためのバッファ)に発行され、または、命令は、実行のために実行パイプライン12(0〜Q)のうちの1つに発行され得る。いくつかの実施形態では、特定の実行パイプライン12(0〜Q)は、その特定の実行パイプライン内で実行され得る動作のタイプを限定し得る。たとえば、パイプラインP0は、レジスタ18(0〜X)へのリードアクセスを可能にしないことがあり、したがって、レジスタR0を読み取るための動作を示す命令は、実行パイプラインP1〜PQのうちの1つにのみ発行され得る。
引き続き図1を参照すると、命令処理回路14は、少なくとも1つのソースレジスタのための少なくとも1つのパイプラインインジケータに基づいて、命令のための少なくとも1つの実行パイプライン優先度を決定するように構成され、少なくとも1つのターゲットレジスタが指定される場合、命令が発行される先の実行パイプライン12(0〜Q)のうちの1つに基づいて、少なくとも1つのターゲットレジスタのためのパイプラインインジケータを更新するように構成される。命令処理回路14は、任意のタイプのデバイスまたは回路でもよく、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。いくつかの実施形態では、命令処理回路14は、命令フェッチ回路22、命令解読回路26、および/または任意の命令キュー30に組み込まれる。命令処理回路14はまた、1つまたは複数のパイプラインインジケータを記憶するように構成されたパイプライン発行テーブル32を採用してもよく、パイプラインインジケータは、レジスタ18(0〜X)の各々を、レジスタ18(0〜X)の各々が直近に書き込まれた実行パイプライン12(0〜Q)のうちの1つに関連付ける。パイプライン発行テーブル32は、複数の行を含み、各行は、レジスタ18(0〜X)のうちの1つに対応し、少なくとも1つのパイプラインインジケータを含む。本明細書で説明するいくつかの実施形態によれば、少なくとも1つのパイプラインインジケータは、実行パイプライン12(0〜Q)のうちのそれぞれの1つに対応するブールフラグであり、いくつかの実施形態では、少なくとも1つのパイプラインインジケータは、実行パイプライン12(0〜Q)のうちの1つの識別情報を記憶するデータ値である。
図1のプロセッサベースシステム10における例示的な処理シーケンスの例示を提供するために、図2を提供する。図2は、図1の命令処理回路14が、検出された命令ストリーム34を処理することを示す。処理は、レジスタ関連優先度に基づいて、命令を実行パイプライン12(0〜Q)のうちの1つに発行することを含む。検出された命令ストリーム34は、命令ストリーム19からフェッチされ、図1の命令処理回路14によって検出された、一連の命令を表す。
命令36(この例では、WRITE命令)が、検出された命令ストリーム34から最初にフェッチされる。命令36は、図1のレジスタ18(0〜X)のうちの1つ(この例では、ソースレジスタR2)の内容を、同じくレジスタ18(0〜X)のうちの1つであるターゲットレジスタR1に書き込むための動作を示す。パイプライン発行矢印38によって示すように、命令36は、この例ではパイプラインP1と呼ぶ、実行パイプライン12(0〜Q)のうちの1つに発行される。
命令36が実行パイプラインP1に発行された後、ターゲットレジスタR1と実行パイプラインP1とに対応するパイプラインインジケータ40が、命令処理回路14によって(矢印42によって示すように)パイプライン発行テーブル32中で更新される。パイプライン発行テーブル32は、書込みのためにレジスタ18(0〜X)のうちの所与の1つをターゲットにするための直近の命令が発行された先の、実行パイプライン12(0〜Q)のうちの1つを追跡するために使用される。この例では、パイプライン発行テーブル32は、レジスタ18(0〜X)のうちの各々に対応する行を含み、各行は、各々が実行パイプライン12(0〜Q)のうちの1つに対応する複数のパイプラインインジケータ(たとえば、パイプラインインジケータ40)を含む。したがって、パイプライン発行テーブル32中の各パイプラインインジケータは、レジスタ18(0〜X)のうちの1つと、実行パイプライン12(0〜Q)のうちの1つとに厳密に関連付けられる。図2に示す実施形態では、ただ1つのパイプラインインジケータが、所与の時間にレジスタ18(0〜X)のうちの所与の1つに対して設定され得る。ただし、レジスタ18(0〜X)のうちの2つ以上が、それぞれ、実行パイプライン12(0〜Q)のうちの同じ1つのためのパイプラインインジケータセットを有してもよい。したがって、この例では、ターゲットレジスタR1に関連付けられた行44中のすべてのパイプラインインジケータをクリアすること、および、書込みのためのターゲットレジスタR1への直近の命令である命令36が、実行パイプラインP1に発行されたことを示すように、パイプラインインジケータ40を設定することによって、パイプラインインジケータ40が更新される。
命令処理回路14は、次に、検出された命令ストリーム34中で命令46(この例では、別のWRITE命令)を検出する。命令46は、レジスタR1をソースレジスタとして指定し、ソースレジスタR1の内容をターゲットレジスタR0(レジスタ18(0〜X)のうちの1つ)に書き込むための動作を示す。命令46は、検出された命令ストリーム34中で命令36の直後にフェッチされてもよく、または、命令36および命令46は、他の介在する命令によって、検出された命令ストリーム34中で分離されてもよいことを理解されたい。
命令46が検出された後、パイプライン発行テーブル32が、命令処理回路14によって(矢印42によって示すように)アクセスされて、パイプラインインジケータがソースレジスタR1のための行44中で設定されているかどうかが判断される。この例では、パイプライン発行テーブル32中でパイプラインインジケータ40が設定されており、書込みのためにソースレジスタR1をターゲットにするための直近の命令(ここでは、命令36)が実行パイプラインP1に発行されたことを示す。パイプラインインジケータ40に基づいて、命令処理回路14は、命令46が実行パイプラインP1に優先的に発行されるべきであることを示す、実行パイプライン優先度48を決定する。いくつかの実施形態では、命令46は、命令46のための複数のソースレジスタに対応する複数のパイプラインインジケータに基づいて、複数の実行パイプライン優先度48に関連付けられ得ることを理解されたい。いくつかの実施形態では、命令46が、実行パイプライン優先度48によって示すように、実際に実行パイプラインP1に発行される保証がなくてもよいことをさらに理解されたい。むしろ、実行パイプライン優先度48は、実行パイプライン12(0〜Q)のうちのどの1つに命令46が発行されることになるかを判断する際に、いくつかのファクタのうちの1つとして考慮され得る。
命令46が、(実行パイプラインP1であるか、実行パイプライン12(0〜Q)のうちの別の1つであるかにかかわらず)実行パイプライン12(0〜Q)のうちの1つに発行されると、命令36に関して上記で説明した例示的なプロセスが、命令46に対して繰り返され得る。この例では、命令46は、パイプライン発行矢印50によって示すように、優先実行パイプラインP1に発行される。ターゲットレジスタR0と実行パイプラインP1とに対応するパイプラインインジケータ52が、パイプライン発行テーブル32中で更新される。レジスタR0をソースレジスタとして指定する、検出された命令ストリーム34中の後続の命令54(この例では、別のWRITE命令)について、命令処理回路14は、パイプライン発行テーブル32にアクセスして、パイプラインインジケータがソースレジスタR0のための行56中で設定されているかどうかを判断することができる。パイプラインインジケータ52に基づいて、命令処理回路14は、命令54の発行のための実行パイプラインP1のための優先度を示す、実行パイプライン優先度58を決定する。
レジスタ関連優先度に基づいて、命令を実行パイプラインに発行するプロセスをさらに説明するために、実行パイプライン優先度を決定し、パイプラインインジケータを更新するように構成された、命令処理回路のための例示的な一般化されたプロセスを、図1および図2をさらに参照しながら図3に示す。この例では、図1の命令処理回路14(図示せず)が、ターゲットレジスタR0への書込み動作を示す図2の命令46を検出するとき、プロセスが開始する(ブロック60)。いくつかの実施形態では、命令46を検出することは、図1の命令検出回路15などの命令検出回路によって遂行され得る。
命令処理回路14が、次に、命令46が少なくとも1つのソースレジスタを指定するかどうかを判断する(ブロック62)。いくつかの実施形態は、この判断が、図1のソースレジスタ検出回路16など、命令処理回路14のソースレジスタ検出回路によって行われることを規定し得る。命令46が少なくとも1つのソースレジスタを指定しない場合、命令46が、デフォルトの実行パイプライン発行論理に基づいて、実行パイプライン(たとえば、実行パイプラインP0〜PQのうちの1つ)に発行される(ブロック64)。命令46が少なくとも1つのソースレジスタを指定する場合、図2に記載のように、命令処理回路14が、パイプライン発行テーブル32中の少なくとも1つのソースレジスタのためのパイプラインインジケータに基づいて、少なくとも1つの実行パイプライン優先度48を決定する(ブロック66)。図2に示した例では、実行パイプライン優先度48は、パイプライン発行テーブル32中のソースレジスタR1のためのパイプラインインジケータ40に基づく。次いで、命令46が、少なくとも1つの実行パイプライン優先度48に基づいて、実行パイプライン(図2では、実行パイプラインP1)に発行される(ブロック68)。
命令46が実行パイプラインに発行されると、ブロック64に記載のように、デフォルトの実行パイプライン発行論理に基づくか、ブロック68に記載のように、少なくとも1つの実行パイプライン優先度48に基づくかにかかわらず、命令処理回路14が、命令46が少なくとも1つのターゲットレジスタを指定するかどうかを判断する(ブロック70)。いくつかの実施形態では、この判断は、図1のターゲットレジスタ検出回路17など、命令処理回路14のターゲットレジスタ検出回路によって行われ得る。命令46が少なくとも1つのターゲットレジスタを指定しない場合、処理が図3のブロック60に戻る。命令46が少なくとも1つのターゲットレジスタを指定する場合、命令処理回路14が、命令46が発行される先の実行パイプラインに基づいて、パイプライン発行テーブル32中で少なくとも1つのターゲットレジスタのための少なくとも1つのパイプラインインジケータを更新する(ブロック72)。図2では、命令46が実行パイプラインP1に発行されることに基づいて、ターゲットレジスタR0のためのパイプラインインジケータ52が、パイプライン発行テーブル32中で更新される。次いで、処理が図3のブロック60で再開する。
図4A〜図4Bは、命令ストリーム(たとえば、図1の命令ストリーム19)中で命令を検出し、レジスタ関連優先度に基づいて、命令を実行パイプライン(図1の実行パイプライン12(0〜Q)など)に発行するための、命令処理回路(たとえば、図1のプロセッサベースシステム10における命令処理回路14)のより詳細な例示的なプロセスを示す。図4Aは、検出された命令が少なくとも1つのソースレジスタを指定するかどうかを判断し、命令のための少なくとも1つの実行パイプライン優先度を決定するためのプロセスを詳述する。図4Bは、パイプライン発行テーブル(たとえば、図1のパイプライン発行テーブル32)中でパイプラインインジケータ(図2のパイプラインインジケータ40、52など)を更新するための動作を示す。
この例のプロセスは、図4Aにおいて、命令処理回路が、処理されるべきさらなる命令が残っているかどうかを検出することから開始する(図4Aのブロック74)。いくつかの実施形態では、この検出は、命令フェッチ回路および/または命令解読回路(それぞれ、図1の命令フェッチ回路22および/または命令解読回路26など)において、未処理の命令の存在を検出することによって遂行される。残っている命令が検出されない場合、命令処理回路が、パイプライン発行テーブル(たとえば、図1のパイプライン発行テーブル32)に記憶された任意のパイプラインインジケータの検証を実行する(図4Aのブロック75)。検証は、対応するレジスタのための実行パイプライン優先度を決定するために、記憶されたパイプラインインジケータが有効のままであることを検証すること、および、それに応じて(たとえば、パイプラインインジケータのための有効性ビットを更新することによって)パイプライン発行テーブルを更新することを含み得る。次いで、処理が図4Aのブロック74に戻る。
残っている命令が検出される場合、命令処理回路が、検出された命令が、少なくとも1つのソースレジスタ(図1のレジスタ18(0〜X)のうちの1つなど)を指定する命令であるかどうかを判断する(図4Aのブロック76)。そのような命令の検出は、命令処理回路が、その命令のための少なくとも1つの実行パイプライン優先度を決定することが可能であり得ることを示す。検出された命令が、少なくとも1つのソースレジスタを指定する命令ではない場合、検出された命令が、デフォルトの実行パイプライン発行論理に基づいて、実行パイプラインに発行され(図4Aのブロック78)、処理が図4Bのブロック88へ進む。
図4Aのブロック76の決定ポイントに戻ると、検出された命令が、少なくとも1つのソースレジスタを指定する命令である場合、命令処理回路が、次に、指定されたソースレジスタに基づいて、命令が、そのための実行パイプライン優先度が決定されるべき命令であるかどうかを判断する(図4Aのブロック80)。いくつかの実施形態では、少なくとも1つのソースレジスタを指定する命令のサブセットのみが、実行パイプライン優先度を決定するために解析され得る。命令が、そのための実行パイプライン優先度が決定されるべき命令ではない場合、命令が、デフォルトの実行パイプライン発行論理に基づいて、実行パイプラインに発行され(図4Aのブロック78)、処理が図4Bのブロック88へ進む。
実行パイプライン優先度がその命令のために決定されるべきである場合、パイプライン発行テーブルが命令処理回路によってアクセスされて、少なくとも1つのソースレジスタに関連付けられたいずれかのパイプラインインジケータが設定されているかどうかが判断される(図4Aのブロック82)。少なくとも1つのソースレジスタに関連付けられたパイプラインインジケータが設定されていない場合、命令が、デフォルトの実行パイプライン発行論理に基づいて、実行パイプラインに発行され(図4Aのブロック78)、処理が図4Bのブロック88へ進む。少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータが設定されている場合、命令処理回路が、パイプライン発行テーブルに設定された少なくとも1つのパイプラインインジケータに基づいて、命令のための少なくとも1つの実行パイプライン優先度を決定する(図4Aのブロック84)。図4Aのブロック84で決定された少なくとも1つの実行パイプライン優先度に基づいて、次いで、命令が実行パイプラインに発行され(図4Aのブロック86)、処理が図4Bのブロック88で続く。
次に図4Bを参照すると、命令処理回路が、次に、命令が少なくとも1つのターゲットレジスタを指定するかどうかを判断する(図4Bのブロック88)。そうでない場合、命令の通常の処理が図4Aのブロック90で続く。それ以外は、命令処理回路が、命令のターゲットレジスタに基づいて、パイプライン発行テーブルが更新されるべきであるかどうかを判断する(図4Bのブロック92)。いくつかの実施形態では、パイプライン発行テーブルは、命令のサブセットについてのみ更新され得る。命令が、そのためにパイプライン発行テーブルが更新されるべきである命令ではない場合、命令の通常の処理が続く(図4Aのブロック90)。
命令が、そのためにパイプライン発行テーブルが更新されるべきである命令である場合、命令処理回路が、次に、命令がすべてのパイプラインについて等しい転送リソースを有するかどうかを判断する(図4Bのブロック94)。いくつかの実施形態では、いくつかの命令の結果は、それらの命令および後続の命令が発行される先の実行パイプラインにかかわらず、後続の命令へ転送するために等しく利用可能であり得る。したがって、そのような命令は、すべてのパイプラインについて等しい転送リソースを有すると言うことができる。検出された命令の転送リソースが制限されている場合(すなわち、検出された命令が、すべてのパイプラインについて等しい転送リソースを有するのではない場合)、プロセッサベースシステムの性能は、検出された命令のターゲットレジスタをソースレジスタとして指定する後続の命令を、検出された命令と同じ実行パイプラインに優先的に発行することによって、向上し得る。したがって、命令処理回路が、検出された命令が発行された先の実行パイプラインに基づいて、パイプライン発行テーブル中の少なくとも1つのターゲットレジスタに関連付けられたパイプラインインジケータを設定する(図4Bのブロック96)。次いで、処理が図4Aのブロック90で再開する。
ここで、図4Bのブロック94の決定ポイントに戻ると、命令が、すべてのパイプラインについて等しい転送リソースを有する場合、後続の命令を、検出された命令と同じ実行パイプラインに優先的に発行することで、性能の利点は得られず、実際には、命令を実行パイプラインに発行する際の柔軟性が制約され得る。したがって、そのシナリオでは、命令処理回路が、パイプライン発行テーブル中の検出された命令のターゲットレジスタに関連付けられたすべてのパイプラインインジケータをクリアして、すべてのパイプラインが等しい優先度を有することを示す(図4Bのブロック98)。次いで、処理が図4Aのブロック90で再開する。
図1に関して上述したように、パイプライン発行テーブル32は、複数の行を含み、各行は、レジスタ18(0〜X)のうちの1つに対応し、少なくとも1つのパイプラインインジケータを含む。本明細書で説明するいくつかの実施形態では、各パイプラインインジケータは、実行パイプライン12(0〜Q)のうちの1つに対応するブールフラグである。この点について、図5は、フラグベースのパイプライン発行テーブル100に記憶されたレジスタ関連優先度に基づいて、命令を実行パイプライン12(0〜Q)のうちの1つに発行することを含む、例示的なシーケンスを示す。図5では、図1の命令処理回路14は、命令ストリーム19からフェッチされ、図1の命令処理回路14によって検出された一連の命令を表す、検出された命令ストリーム102を処理する。最初に検出された命令は、ARMアーキテクチャのADD命令104である。ADD命令104は、図1に示すレジスタ18(0〜X)のうちの2つ(この例では、レジスタR2およびR3)の内容を合計し、結果を、同じくレジスタ18(0〜X)のうちの1つであるターゲットレジスタR1に書き込むための動作を示す。パイプライン発行矢印106によって示すように、ADD命令104は、この例ではパイプラインP1と呼ぶ、実行パイプライン12(0〜Q)のうちの1つに発行される。
ADD命令104が実行パイプラインP1に発行された後、ターゲットレジスタR1と実行パイプラインP1とに対応するパイプラインインジケータ108が、命令処理回路14によって(矢印110によって示すように)フラグベースのパイプライン発行テーブル100中で更新される。フラグベースのパイプライン発行テーブル100中の各パイプラインインジケータは、レジスタ18(0〜X)のうちの1つと、実行パイプライン12(0〜Q)のうちの1つとに厳密に関連付けられたブールフラグである。図5に示す例では、ただ1つのパイプラインインジケータが、所与の時間にレジスタ18(0〜X)のうちの所与の1つに対して設定され得るが、レジスタ18(0〜X)のうちの2つ以上が、それぞれ、実行パイプライン12(0〜Q)のうちの同じ1つのためのパイプラインインジケータセットを有してもよい。したがって、ターゲットレジスタR1に関連付けられた行112中のすべてのパイプラインインジケータをクリアすること、および、書込みのためのターゲットレジスタR1への直近の命令であるADD命令104が、実行パイプラインP1に発行されたことを示すように、パイプラインインジケータ108を設定することによって、パイプラインインジケータ108が更新される。
命令処理回路14は、次に、検出された命令ストリーム102中でARMアーキテクチャのMOV命令114を検出する。MOV命令114は、レジスタR1をソースレジスタとして指定し、ソースレジスタR1の内容をターゲットレジスタR0(レジスタ18(0〜X)のうちの1つ)に書き込むための動作を示す。いくつかの実施形態では、MOV命令114は、検出された命令ストリーム102中でADD命令104の直後にフェッチされ得るが、いくつかの実施形態によれば、ADD命令104およびMOV命令114は、他の介在する命令によって、検出された命令ストリーム102中で分離され得る。
MOV命令114が検出された後、フラグベースのパイプライン発行テーブル100が、命令処理回路14によって(矢印110によって示すように)アクセスされて、パイプラインインジケータがソースレジスタR1のための行112中で設定されているかどうかが判断される。この例では、フラグベースのパイプライン発行テーブル100中のパイプラインインジケータ108が、書込みのためにソースレジスタR1をターゲットにするための直近の命令(ここでは、ADD命令104)が実行パイプラインP1に発行されたことを示す。パイプラインインジケータ108に基づいて、命令処理回路14は、MOV命令114が実行パイプラインP1に優先的に発行されるべきであることを示す、パイプラインP1のための実行パイプライン優先度116を決定する。
上述したように、いくつかの実施形態では、MOV命令114が、実行パイプライン優先度116によって示された実行パイプライン12(0〜Q)のうちの特定の1つに実際に発行される保証がなくてもよく、その理由は、命令が発行される先の実行パイプライン12(0〜Q)のうちの最も適切な1つを決定する際に、他のファクタを考慮に入れることができるからである。この例では、MOV命令114は、パイプライン発行矢印118によって示すように、優先実行パイプラインP1ではなく、実行パイプラインP2に発行される。MOV命令114が実行パイプラインP2に発行されると、次いで、ターゲットレジスタR0とパイプラインP2とに対応するパイプラインインジケータ120が、フラグベースのパイプライン発行テーブル100中で更新される。
レジスタR0をソースレジスタとして指定する、検出された命令ストリーム102中の後続のMOV命令122について、命令処理回路14は、フラグベースのパイプライン発行テーブル100にアクセスして、パイプラインインジケータがソースレジスタR0のための行124中で設定されているかどうかを判断することができる。パイプラインインジケータ120に基づいて、命令処理回路14は、MOV命令122の発行のためのパイプラインP2のための優先度を示す、実行パイプライン優先度126を決定する。MOV命令122のターゲットレジスタに基づく、MOV命令122の発行、およびフラグベースのパイプライン発行テーブル100の更新は、次いで、ADD命令104およびMOV命令114に関して上記で説明したように進む。
いくつかの実施形態は、図1のパイプライン発行テーブル32に記憶された各パイプラインインジケータが、実行パイプライン12(0〜Q)のうちの1つの識別情報を記憶するデータ値を含むことを規定し得る。この点について、図6は、識別情報ベースのパイプライン発行テーブル128に記憶されたレジスタ関連優先度に基づいて、命令を実行パイプライン12(0〜Q)のうちの1つに発行することを含む、例示的なシーケンスを示す。図6では、図1の命令処理回路14は、命令ストリーム19からフェッチされ、図1の命令処理回路14によって検出された一連の命令を表す、検出された命令ストリーム130を処理する。最初に検出された命令は、ARMアーキテクチャのMOV命令132である。MOV命令132は、図1に示すレジスタ18(0〜X)のうちの1つ(この例では、ソースレジスタRX)の内容を、レジスタ18(0〜X)のうちの別の1つ(ここでは、ターゲットレジスタR0)にコピーするための動作を示す。この例では、ソースレジスタRXは、識別情報ベースのパイプライン発行テーブル128に設定されたパイプラインインジケータを有しておらず、したがって、いかなる特定の実行パイプライン12(0〜Q)にも関連付けられていない。したがって、パイプライン発行矢印134によって示すように、MOV命令132は、デフォルトの実行パイプライン発行論理に基づいて、実行パイプライン12(0〜Q)のうちの1つ(この例では、パイプラインP0)に発行される。
MOV命令132がパイプラインP0に発行された後、識別情報ベースのパイプライン発行テーブル128が、命令処理回路14によって(矢印136によって示すように)更新されて、ターゲットレジスタR0と実行パイプラインP0とに対応するパイプラインインジケータ138が設定される。識別情報ベースのパイプライン発行テーブル128中の各パイプラインインジケータは、レジスタ18(0〜X)のうちの1つに関連付けられ、実行パイプライン12(0〜Q)のうちの1つを識別する、データ値である。この例では、書込みのためのターゲットレジスタR0への直近の命令であるMOV命令132が、実行パイプラインP0に発行されたことを示すように、実行パイプラインP0の識別情報を記憶することによって、パイプラインインジケータ138が更新される。いくつかの実施形態では、パイプラインインジケータを設定することはまた、対応するレジスタのための実行パイプライン優先度を決定する際に使用するために、パイプラインインジケータが有効であるかどうかを示すように、各パイプラインインジケータのための有効性ビットを設定することを含み得る。したがって、この例では、ターゲットレジスタR0のための実行パイプライン優先度を決定する際に使用するために、パイプラインインジケータ138が有効であることを示すように、パイプラインインジケータ138に対応する有効性ビット139が、命令処理回路14によって設定される。
命令処理回路14は、次に、検出された命令ストリーム130中で、後続のARMアーキテクチャのMOV命令140を検出する。MOV命令140は、ソースレジスタRXを、レジスタ18(0〜X)のうちの別の1つ(ここでは、ターゲットレジスタR1)にコピーするための動作を示す。いくつかの実施形態では、MOV命令140は、検出された命令ストリーム130中でMOV命令132の直後にフェッチされ得るが、いくつかの実施形態によれば、MOV命令132およびMOV命令140は、他の介在する命令によって、検出された命令ストリーム130中で分離され得る。前述のように、ソースレジスタRXは、識別情報ベースのパイプライン発行テーブル128に設定されたパイプラインインジケータを有しておらず、したがって、パイプライン発行矢印142によって示すように、MOV命令140は、デフォルトの実行パイプライン発行論理に基づいて、実行パイプライン12(0〜Q)のうちの1つ(ここでは、パイプラインP1)に発行される。次いで、識別情報ベースのパイプライン発行テーブル128が更新されて、ターゲットレジスタR1と実行パイプラインP1とに対応するパイプラインインジケータ144が設定される。この点について、パイプラインインジケータ144は、書込みのためのターゲットレジスタR1への直近の命令であるMOV命令140が、実行パイプラインP1に発行されたことを示すように、実行パイプラインP1の識別情報を記憶する。パイプラインインジケータ144に対応する有効性ビット145もまた、ターゲットレジスタR1のための実行パイプライン優先度を決定する際に使用するために、パイプラインインジケータ144が有効であることを示すように、設定される。
命令処理回路14は、次に、検出された命令ストリーム130中でARMアーキテクチャのADD命令146を検出する。ADD命令146は、ソースレジスタR0およびR1の内容を合計し、結果をターゲットレジスタR2に記憶するための動作を示す。いくつかの実施形態では、ADD命令146は、検出された命令ストリーム130中でMOV命令140の直後にフェッチされ得るが、いくつかの実施形態によれば、MOV命令140およびADD命令146は、他の介在する命令によって、検出された命令ストリーム130中で分離され得る。
ADD命令146が検出された後、識別情報ベースのパイプライン発行テーブル128が、命令処理回路14によって(矢印136によって示すように)アクセスされて、パイプラインインジケータが、ソースレジスタR0に対応する行148とソースレジスタR1に対応する行150のいずれかまたは両方に設定されているかどうかが判断される。この例では、識別情報ベースのパイプライン発行テーブル128中のパイプラインインジケータ138が、書込みのためにソースレジスタR0をターゲットにするための直近の命令(ここでは、MOV命令132)が実行パイプラインP0に発行されたことを示す。加えて、識別情報ベースのパイプライン発行テーブル128中のパイプラインインジケータ144が、書込みのためにソースレジスタR1をターゲットにするための直近の命令(この例では、MOV命令140)が実行パイプラインP1に発行されたことを示す。パイプラインインジケータ138およびパイプラインインジケータ144に基づいて、命令処理回路14は、ADD命令146が実行パイプラインP0または実行パイプラインP1のいずれかに優先的に発行されるべきであることを示す、2つの実行パイプライン優先度152を決定する。
上述したように、いくつかの実施形態では、ADD命令146が、実行パイプライン優先度152によって示された実行パイプライン12(0〜Q)のうちの特定のもののいずれかに発行される保証がなくてもよく、その理由は、命令のための実行パイプライン12(0〜Q)のうちの最も適切な1つを決定する際に、他のファクタを考慮に入れることができるからである。同様に、いくつかの実施形態は、2つ以上の実行パイプライン優先度が命令処理回路によって決定されるとき、複数の優先実行パイプラインの中から選択するために、追加の実行パイプライン発行論理を適用してもよい。この例では、ADD命令146は、パイプライン発行矢印154によって示すように、優先実行パイプラインP1に発行される。次いで、ターゲットレジスタR2と実行パイプラインP1とに対応する、パイプラインインジケータ156および有効性ビット157が、識別情報ベースのパイプライン発行テーブル128中で更新される。
本明細書で開示する実施形態による、レジスタ関連優先度に基づいて、命令を実行パイプラインに発行するように動作可能な命令処理回路は、任意のプロセッサベースデバイス中に設けられ、または組み込まれてもよい。例として、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
この点について、図7は、図1に示す命令処理回路14を採用することができる、プロセッサベースシステム158の一例を示す。この例では、プロセッサベースシステム158は、1つまたは複数のプロセッサ162を各々が含む1つまたは複数の中央処理装置(CPU)160を含む。プロセッサ162は、命令処理回路(IPC)14を含み得る。CPU160は、一時記憶データへの高速アクセスのためにプロセッサ162に結合されたキャッシュメモリ164を有し得る。CPU160は、システムバス166に結合され、プロセッサベースシステム158中に含まれるマスタデバイスとスレーブデバイスとを相互結合することができる。よく知られているように、CPU160は、システムバス166を通じてアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU160は、スレーブデバイスの一例として、メモリコントローラ168にバストランザクション要求を通信することができる。図7に示されていないが、複数のシステムバス166が設けられ得る。
他のマスタデバイスおよびスレーブデバイスが、システムバス166に接続され得る。図7に示されるように、これらのデバイスは、例として、メモリシステム170、1つまたは複数の入力デバイス172、1つまたは複数の出力デバイス174、1つまたは複数のネットワークインターフェースデバイス176、ならびに1つまたは複数のディスプレイコントローラ178を含み得る。入力デバイス172は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含み得る。出力デバイス174は、限定はしないが、オーディオ、ビデオ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス176は、ネットワーク180との間でデータの交換を可能にするように構成された任意のデバイスであってよい。ネットワーク180は、限定はしないが、ワイヤードネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス176は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。メモリシステム170は、1つまたは複数のメモリユニット182(0〜N)を含むことができる。
CPU160はまた、システムバス166を通じてディスプレイコントローラ178にアクセスして、1つまたは複数のディスプレイ184に送られる情報を制御するようにも構成され得る。ディスプレイコントローラ178は、1つまたは複数のビデオプロセッサ186を介して表示されるべき情報を、ディスプレイ184に送り、ビデオプロセッサ186は、表示されるべき情報を、ディスプレイ184に適切なフォーマットとなるように処理する。ディスプレイ184は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに諒解されよう。本明細書で説明するマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、ICチップ、または半導体ダイにおいて採用され得る。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、所望の任意のタイプの情報を記憶するように構成され得る。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、特定の適用例、設計選択、および/または全体的なシステムに課された設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、FPGAもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行することができる。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
本明細書で開示する実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令で具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICは遠隔局に存在し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。
本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および考察を提供するために説明したものであることにも、留意されたい。説明された動作は、例示された順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明される動作は、実際には、いくつかの異なるステップで実行され得る。加えて、例示的な実施形態において論じられた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャート図において例示される動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
本開示の上記の説明は、当業者が本開示を構成または使用できるようにするために提供される。本開示への様々な修正は当業者には容易に明らかであり、本明細書で定義した一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用できる。したがって、本開示は、本明細書で説明する例および設計に限定されるものではなく、むしろ、本明細書で開示する原理および新規の特徴に一致する最大の範囲を与えられるものである。
10、158 プロセッサベースシステム
12(0〜Q)、P0〜PQ 実行パイプライン
14 命令処理回路、IPC
15 命令検出回路
16 ソースレジスタ検出回路
17 ターゲットレジスタ検出回路
18(0〜X)、R0〜RX レジスタ
19 命令ストリーム
20 命令メモリ
22 命令フェッチ回路
24 命令キャッシュ
26 命令解読回路
28(0〜N)、36、46、54 命令
30 命令キュー
32 パイプライン発行テーブル
34、102、130 検出された命令ストリーム
38、50、106、118、134、142、154 パイプライン発行矢印
40、52、108、120、138、144、156 パイプラインインジケータ
42、110、136 矢印
44、56、112、124、148、150 行
48、58、116、126、152 実行パイプライン優先度
100 フラグベースのパイプライン発行テーブル
104、146 ARMアーキテクチャのADD命令、ADD命令
114、132、140 ARMアーキテクチャのMOV命令、MOV命令
122 MOV命令
128 識別情報ベースのパイプライン発行テーブル
139、145、157 有効性ビット
160 中央処理装置(CPU)
162 プロセッサ
164 キャッシュメモリ
166 システムバス
168 メモリコントローラ
170 メモリシステム
172 入力デバイス
174 出力デバイス
176 ネットワークインターフェースデバイス
178 ディスプレイコントローラ
180 ネットワーク
182(0〜N) メモリユニット
184 ディスプレイ
186 ビデオプロセッサ
P0、P2 パイプライン
P1 パイプライン、優先実行パイプライン
R0、R1 ソースレジスタ、ターゲットレジスタ
R2、RX ソースレジスタ

Claims (22)

  1. コンピュータ命令を処理するための方法であって、
    命令ストリーム中で命令を検出するステップと、
    前記命令が少なくとも1つのソースレジスタを指定すると判断すると、
    パイプライン発行テーブル中の前記少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、前記命令のための少なくとも1つの実行パイプライン優先度を決定するステップと、
    前記少なくとも1つの実行パイプライン優先度に基づいて、前記命令を実行パイプラインに発行するステップと、
    前記命令が少なくとも1つのターゲットレジスタを指定すると判断すると、
    前記命令が発行される先の前記実行パイプラインに基づいて、前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するステップと、
    を含む方法。
  2. 前記命令を前記実行パイプラインに発行するステップが、前記命令を、前記少なくとも1つの実行パイプライン優先度によって示された優先実行パイプラインに発行するステップを含む、請求項1に記載の方法。
  3. 前記命令を前記実行パイプラインに発行するステップが、前記少なくとも1つの実行パイプライン優先度と、他の実行パイプライン発行論理とに基づいて、前記命令を、前記少なくとも1つの実行パイプライン優先度によって示された優先実行パイプライン以外の実行パイプラインに発行するステップを含む、請求項1に記載の方法。
  4. 前記命令が少なくとも1つのソースレジスタを指定しないと判断すると、デフォルトの実行パイプライン発行論理に基づいて、前記命令を前記実行パイプラインに発行するステップをさらに含む、請求項1に記載の方法。
  5. 前記少なくとも1つの実行パイプライン優先度を決定するステップが、そのために前記少なくとも1つのソースレジスタに関連付けられた前記少なくとも1つのパイプラインインジケータが設定される、少なくとも1つの実行パイプラインのための優先度を示すステップを含む、請求項1に記載の方法。
  6. 前記少なくとも1つの実行パイプライン優先度を決定するステップが、前記少なくとも1つのソースレジスタに関連付けられた前記少なくとも1つのパイプラインインジケータのいずれも設定されていない場合、デフォルトの実行パイプライン発行論理に基づいて、前記少なくとも1つの実行パイプライン優先度を決定するステップを含む、請求項1に記載の方法。
  7. 前記方法が、前記命令を、複数の実行パイプラインのうちの少なくとも1つへの転送リソースが制限されているとして検出するステップをさらに含み、
    前記少なくとも1つのターゲットレジスタに関連付けられた前記少なくとも1つのパイプラインインジケータを更新するステップが、前記少なくとも1つのターゲットレジスタと、前記命令が発行される先の前記実行パイプラインとに関連付けられた、前記パイプライン発行テーブル中のパイプラインインジケータを設定するステップを含む、請求項1に記載の方法。
  8. 前記方法が、前記命令を、複数の実行パイプラインへの等しい転送リソースを有するとして検出するステップをさらに含み、
    前記少なくとも1つのターゲットレジスタに関連付けられた前記少なくとも1つのパイプラインインジケータを更新するステップが、前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられたすべてのパイプラインインジケータをクリアするステップを含む、請求項1に記載の方法。
  9. 前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられた前記少なくとも1つのパイプラインインジケータを更新するステップが、複数の実行パイプラインのうちのそれぞれの1つに対応する複数のフラグのうちの1つを更新するステップを含む、請求項1に記載の方法。
  10. 前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられた前記少なくとも1つのパイプラインインジケータを更新するステップが、複数の実行パイプラインのうちの1つの識別情報を記憶するステップを含む、請求項1に記載の方法。
  11. 命令処理回路を備えるプロセッサであって、
    前記命令処理回路は、
    命令ストリーム中で命令を検出するように構成された命令検出回路と、
    パイプライン発行テーブルと、
    ソースレジスタ検出回路であって、
    前記命令が少なくとも1つのソースレジスタを指定するかどうかを判断すること、および
    前記命令が前記少なくとも1つのソースレジスタを指定すると判断することに応答して、
    前記パイプライン発行テーブル中の前記少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、前記命令のための少なくとも1つの実行パイプライン優先度を決定すること
    を行うように構成されたソースレジスタ検出回路と、
    ターゲットレジスタ検出回路であって、
    前記命令が少なくとも1つのターゲットレジスタを指定するかどうかを判断すること、および
    前記命令が前記少なくとも1つのターゲットレジスタを指定すると判断することに応答して、
    前記命令が発行される先の前記実行パイプラインに基づいて、前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新すること
    を行うように構成されたターゲットレジスタ検出回路と、
    を備え、
    前記プロセッサは、前記ソースレジスタ検出回路が、前記命令が前記少なくとも1つのソースレジスタを指定すると判断することに応答して、前記少なくとも1つの実行パイプライン優先度に基づいて、前記命令を実行パイプラインに発行するように構成される、プロセッサ。
  12. 前記命令を、前記少なくとも1つの実行パイプライン優先度によって示された優先実行パイプラインに発行することによって、前記命令を前記実行パイプラインに発行するように構成される、請求項11に記載のプロセッサ。
  13. 前記ソースレジスタ検出回路が、前記命令が前記少なくとも1つのソースレジスタを指定しないと判断することに応答して、デフォルトの実行パイプライン発行論理に基づいて、前記命令を前記実行パイプラインに発行するようにさらに構成される、請求項11に記載のプロセッサ。
  14. 複数の実行パイプラインのうちのそれぞれの1つに対応する複数のフラグを記憶するように構成された、前記パイプライン発行テーブルを備える、請求項11に記載のプロセッサ。
  15. 複数の実行パイプラインのうちの1つの識別情報を記憶するように構成された、前記パイプライン発行テーブルを備える、請求項11に記載のプロセッサ。
  16. 命令フェッチ回路と、命令解読回路と、命令キューとからなるグループから構成された回路中に配設された、前記命令処理回路を備える、請求項11に記載のプロセッサ。
  17. 半導体ダイに組み込まれた前記命令処理回路を備える、請求項11に記載のプロセッサ。
  18. 前記命令処理回路が組み込まれるデバイスをさらに備え、前記デバイスは、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなるグループから選択される、請求項11に記載のプロセッサ。
  19. 命令処理回路を備えるプロセッサであって、
    前記命令処理回路は、
    命令ストリーム中で命令を検出するための手段と、
    前記命令が少なくとも1つのソースレジスタを指定すると判断することに応答して、パイプライン発行テーブル中の前記少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、前記命令のための少なくとも1つの実行パイプライン優先度を決定するための手段と、
    前記命令処理回路が、前記命令が前記少なくとも1つのソースレジスタを指定すると判断することに応答して、前記少なくとも1つの実行パイプライン優先度に基づいて、前記命令を実行パイプラインに発行するための手段と、
    前記命令が少なくとも1つのターゲットレジスタを指定すると判断することに応答して、前記命令が発行される先の前記実行パイプラインに基づいて、前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するための手段と、
    を備える、プロセッサ。
  20. プロセッサに方法を実施させるためのコンピュータ実行可能命令を記憶した、非一時的コンピュータ可読記録媒体であって、前記方法は、
    命令ストリーム中で命令を検出するステップと、
    前記命令が少なくとも1つのソースレジスタを指定すると判断すると、
    パイプライン発行テーブル中の前記少なくとも1つのソースレジスタに関連付けられた少なくとも1つのパイプラインインジケータに基づいて、前記命令のための少なくとも1つの実行パイプライン優先度を決定するステップと、
    前記少なくとも1つの実行パイプライン優先度に基づいて、前記命令を実行パイプラインに発行するステップと、
    前記命令が少なくとも1つのターゲットレジスタを指定すると判断すると、
    前記命令が発行される先の前記実行パイプラインに基づいて、前記パイプライン発行テーブル中の前記少なくとも1つのターゲットレジスタに関連付けられた少なくとも1つのパイプラインインジケータを更新するステップと、
    を含む、非一時的コンピュータ可読記録媒体。
  21. 前記命令を前記実行パイプラインに発行するステップが、前記命令を、前記少なくとも1つの実行パイプライン優先度によって示された優先実行パイプラインに発行するステップを含む、前記方法を前記プロセッサに実施させるための前記コンピュータ実行可能命令を記憶した、請求項20に記載の非一時的コンピュータ可読記録媒体。
  22. 前記命令が少なくとも1つのソースレジスタを指定しないと判断すると、デフォルトの実行パイプライン発行論理に基づいて、前記命令を前記実行パイプラインに発行するステップをさらに含む、前記方法を前記プロセッサに実施させるための前記コンピュータ実行可能命令を記憶した、請求項20に記載の非一時的コンピュータ可読記録媒体。
JP2015516123A 2012-06-05 2013-06-04 レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体 Active JP6317339B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261655655P 2012-06-05 2012-06-05
US61/655,655 2012-06-05
US13/741,849 2013-01-15
US13/741,849 US9858077B2 (en) 2012-06-05 2013-01-15 Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media
PCT/US2013/044125 WO2013184689A1 (en) 2012-06-05 2013-06-04 Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media

Publications (3)

Publication Number Publication Date
JP2015518995A true JP2015518995A (ja) 2015-07-06
JP2015518995A5 JP2015518995A5 (ja) 2016-07-07
JP6317339B2 JP6317339B2 (ja) 2018-04-25

Family

ID=49671778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015516123A Active JP6317339B2 (ja) 2012-06-05 2013-06-04 レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体

Country Status (5)

Country Link
US (1) US9858077B2 (ja)
EP (1) EP2856304B1 (ja)
JP (1) JP6317339B2 (ja)
CN (1) CN104335167B (ja)
WO (1) WO2013184689A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017513094A (ja) * 2014-03-27 2017-05-25 インテル・コーポレーション 複数のストランドからの命令をディスパッチするためのプロセッサロジックおよび方法
US10152101B2 (en) * 2015-09-22 2018-12-11 Qualcomm Incorporated Controlling voltage deviations in processing systems
US11855831B1 (en) 2022-06-10 2023-12-26 T-Mobile Usa, Inc. Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143365A (ja) * 1996-11-15 1998-05-29 Toshiba Corp 並列処理装置及びその命令発行方式
JPH10275078A (ja) * 1997-03-26 1998-10-13 Internatl Business Mach Corp <Ibm> 命令をディスパッチする方法及びシステム
JP2007026452A (ja) * 2005-07-20 2007-02-01 Toshiba Corp 強化マイクロプロセッサのための方法及びシステム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US6047369A (en) 1994-02-28 2000-04-04 Intel Corporation Flag renaming and flag masks within register alias table
US5956747A (en) * 1994-12-15 1999-09-21 Sun Microsystems, Inc. Processor having a plurality of pipelines and a mechanism for maintaining coherency among register values in the pipelines
US5941983A (en) 1997-06-24 1999-08-24 Hewlett-Packard Company Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues
JP3209205B2 (ja) 1998-04-28 2001-09-17 日本電気株式会社 プロセッサにおけるレジスタ内容の継承装置
US6643762B1 (en) * 2000-01-24 2003-11-04 Hewlett-Packard Development Company, L.P. Processing system and method utilizing a scoreboard to detect data hazards between instructions of computer programs
US6862677B1 (en) 2000-02-16 2005-03-01 Koninklijke Philips Electronics N.V. System and method for eliminating write back to register using dead field indicator
US6728866B1 (en) 2000-08-31 2004-04-27 International Business Machines Corporation Partitioned issue queue and allocation strategy
US6754807B1 (en) * 2000-08-31 2004-06-22 Stmicroelectronics, Inc. System and method for managing vertical dependencies in a digital signal processor
US6976152B2 (en) * 2001-09-24 2005-12-13 Broadcom Corporation Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard
US20040181651A1 (en) * 2003-03-11 2004-09-16 Sugumar Rabin A. Issue bandwidth in a multi-issue out-of-order processor
US7571302B1 (en) 2004-02-04 2009-08-04 Lei Chen Dynamic data dependence tracking and its application to branch prediction
US20060095732A1 (en) 2004-08-30 2006-05-04 Tran Thang M Processes, circuits, devices, and systems for scoreboard and other processor improvements
US20060190710A1 (en) 2005-02-24 2006-08-24 Bohuslav Rychlik Suppressing update of a branch history register by loop-ending branches
US7774582B2 (en) 2005-05-26 2010-08-10 Arm Limited Result bypassing to override a data hazard within a superscalar processor
US20070260856A1 (en) 2006-05-05 2007-11-08 Tran Thang M Methods and apparatus to detect data dependencies in an instruction pipeline
US8055883B2 (en) * 2009-07-01 2011-11-08 Arm Limited Pipe scheduling for pipelines based on destination register number
US20120023314A1 (en) 2010-07-21 2012-01-26 Crum Matthew M Paired execution scheduling of dependent micro-operations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10143365A (ja) * 1996-11-15 1998-05-29 Toshiba Corp 並列処理装置及びその命令発行方式
JPH10275078A (ja) * 1997-03-26 1998-10-13 Internatl Business Mach Corp <Ibm> 命令をディスパッチする方法及びシステム
JP2007026452A (ja) * 2005-07-20 2007-02-01 Toshiba Corp 強化マイクロプロセッサのための方法及びシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
津野田賢伸ほか: "マルチメディアプロセッサSH4−CPUにおける命令発行制御およびその高速化", 電子情報通信学会技術研究報告, vol. 第99巻 第401号, JPN6017026568, October 1999 (1999-10-01), JP, pages 89〜96ページ *

Also Published As

Publication number Publication date
WO2013184689A1 (en) 2013-12-12
CN104335167B (zh) 2018-04-27
EP2856304B1 (en) 2017-07-19
JP6317339B2 (ja) 2018-04-25
CN104335167A (zh) 2015-02-04
US9858077B2 (en) 2018-01-02
US20130326197A1 (en) 2013-12-05
EP2856304A1 (en) 2015-04-08

Similar Documents

Publication Publication Date Title
US9477476B2 (en) Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
JP6744423B2 (ja) プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現
US9195466B2 (en) Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media
US20170046154A1 (en) Storing narrow produced values for instruction operands directly in a register map in an out-of-order processor
US20140281429A1 (en) Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media
CN109716292B (zh) 在块原子数据流架构中提供存储器相依性预测
JP2016535887A (ja) マルチコアプロセッサにおける並行関数の効率的なハードウェアディスパッチ、ならびに関連するプロセッサシステム、方法、およびコンピュータ可読媒体
US20160232006A1 (en) Fan out of result of explicit data graph execution instruction
US9146741B2 (en) Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media
JP6271572B2 (ja) 実行パイプラインバブルを低減するためにサブルーチンリターンのための分岐ターゲット命令キャッシュ(btic)エントリを確立すること、ならびに関連するシステム、方法、およびコンピュータ可読媒体
US20140047221A1 (en) Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
JP6317339B2 (ja) レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体
US20160170770A1 (en) Providing early instruction execution in an out-of-order (ooo) processor, and related apparatuses, methods, and computer-readable media
WO2016014239A1 (en) ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA
JP2018523241A (ja) パント回避テーブル(pat)を使用したコンピュータプロセッサ内のメモリ命令パントの予測
US20190294443A1 (en) Providing early pipeline optimization of conditional instructions in processor-based systems
WO2013184687A1 (en) Preventing execution of parity-error-induced unpredictable instructions, and related processor systems, methods, and computer-readable media

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171117

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: 20180305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180329

R150 Certificate of patent or registration of utility model

Ref document number: 6317339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150