JP6352386B2 - 定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置 - Google Patents

定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置 Download PDF

Info

Publication number
JP6352386B2
JP6352386B2 JP2016502276A JP2016502276A JP6352386B2 JP 6352386 B2 JP6352386 B2 JP 6352386B2 JP 2016502276 A JP2016502276 A JP 2016502276A JP 2016502276 A JP2016502276 A JP 2016502276A JP 6352386 B2 JP6352386 B2 JP 6352386B2
Authority
JP
Japan
Prior art keywords
instruction
entry
pipeline
register
cache
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.)
Expired - Fee Related
Application number
JP2016502276A
Other languages
English (en)
Other versions
JP2016512366A (ja
JP2016512366A5 (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 JP2016512366A publication Critical patent/JP2016512366A/ja
Publication of JP2016512366A5 publication Critical patent/JP2016512366A5/ja
Application granted granted Critical
Publication of JP6352386B2 publication Critical patent/JP6352386B2/ja
Expired - Fee Related 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters

Description

本発明はマイクロプロセッサに関する。
典型的な中央処理装置(CPU)のパイプラインフローにおいて、パイプラインにおける命令は、まずそのオペランドを取得し、次いで実行してから、最後に結果を書き戻し、場合により、結果を後続の従属消費命令に転送する。CPUマイクロアーキテクチャにより、このプロセスは、性能と周波数とを最適化するように複数のパイプライン段階にわたってしばしば起きる。
複数の実行パイプラインを含むスーパースケーラプロセッサにおいて、1つの命令の結果をパイプライン内の1つまたは複数の消費命令に転送するステップは、効率的に行われない場合、パイプラインストールをもたらし得る性能クリティカル機能であり得る。データ依存ストールは、命令が実行のためにそれぞれのパイプラインにディスパッチしようとすることが関与する、最も一般的なストールであり、その場合、ストールした命令は、オペランドのプロデューサが完了するのを待つ。必要とされるオペランドをそのプロデューサ(producer)からストールした命令の結果に転送するのが遅れると、結果としてCPUの性能が低下する。
本発明の実施形態は、定数(リテラルまたは即値)を記憶するためのキャッシュを使用してより効率的にリテラル生成データを従属命令に転送するためのシステムおよび方法を対象とする。
一実施形態においては、プロセッサは、レジスタと、第1のパイプラインと、キャッシュと、コントローラとを含む。コントローラは、第1のパイプラインが命令をデコードするのに応答してキャッシュ内のエントリに値を記憶し、命令は、実行を完了し次第、値をレジスタに書き込み、第1のパイプラインが命令をデコードするとき、値は決定されるかまたは利用可能である。コントローラは、エントリをレジスタでタグ付けするためにエントリにタグフィールドを設定し、エントリが有効であることを示すためにエントリにフラグフィールドを設定する。命令は即値移動命令であり得る。
別の実施形態においては、方法は、第1のパイプラインにおいて第1の命令をデコードするステップを含み、第1の命令は、実行を完了し次第、値をレジスタに書き込み、第1のパイプラインが第1の命令をデコードするとき、値は決定されるかまたは利用可能である。方法は、値をキャッシュ内のエントリに記憶するステップと、エントリをレジスタでタグ付けするステップと、エントリを有効として設定するステップとをさらに含む。
別の実施形態においては、プロセッサは、第1の命令をデコードするための第1のパイプラインを含み、第1の命令は、実行を完了し次第、値をレジスタに書き込み、第1のパイプラインが第1の命令をデコードするとき、値は決定されるかまたは利用可能である。プロセッサは、記憶するための手段であって、値をキャッシュ内のエントリに記憶する記憶するための手段と、タグ付けするための手段であって、エントリをレジスタでタグ付けするタグ付けするための手段と、設定するための手段であって、エントリを有効として設定する設定するための手段とをさらに含む。
別の実施形態においては、非一時的コンピュータ可読媒体が、プロセッサにプロセスを実行させるために命令を記憶している。プロセスは、第1のパイプラインにおいて第1の命令をデコードするステップであって、第1の命令が、実行を完了し次第、値をレジスタに書き込み、第1のパイプラインが第1の命令をデコードするとき値が決定されるかまたは利用可能である、デコードするステップと、値をキャッシュ内のエントリに記憶するステップと、エントリをレジスタでタグ付けするステップと、エントリを有効として設定するステップとを含む。
添付の図面は、本発明の実施形態の説明を助けるために提示され、実施形態の限定のためではなく、その例示のためだけに提供される。
一実施形態によるプロセッサを例示する図である。 一実施形態による方法を例示する図である。 実施形態が応用され得るワイヤレス通信システムを例示する図である。
本発明の態様が、本発明の具体的な実施形態を対象とする以下の説明および関連する図面において開示される。代替の実施形態を本発明の範囲から逸脱することなく考案することができる。さらに、本発明のよく知られた要素は、本発明の関連する詳細を曖昧にしないようにするために、詳細には説明されないし、あるいは省略される。
「例示的な」という単語は、本明細書では「例、事例、または例示として働くこと」を意味するために用いられる。「例示的な」として本明細書に説明する任意の実施形態は、必ずしも、他の実施形態よりも好ましいまたは有利であると解釈されない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた動作の特徴、利点または態様を含むことを必要としていない。
本明細書に用いる用語は、特定の実施形態を説明するためだけであり、本発明の実施形態を限定することが意図されていない。本明細書では、単数形「1つの(a)」、「1つの(an)」および「その(the)」は、文脈が明確に他の指示をしていない限り、複数形も含むことが意図されている。「備える(comprises)」、「備える(comprising)」、「含む(includes)」および/または「含む(including)」という用語は、本明細書に用いたとき、記載された特徴、整数、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらの群の存在または追加を除外しないことがさらに理解されよう。
さらに、多くの実施形態が、たとえば、コンピューティングデバイスの要素によって実施される動作のシーケンスの観点から説明されている。本明細書に説明する様々な動作が、具体的な回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実施できることが認識されよう。さらに、これらの本明細書に説明する動作のシーケンスは、実行し次第、関連付けられたプロセッサに本明細書に説明する機能性を実施させる、対応するコンピュータ命令の組をその中に記憶しているコンピュータ可読記憶媒体の任意の形態内で全体が具現化されるとみなすことができる。したがって、本発明の様々な態様は、いくつかの異なる形態で具現化することができ、そのすべては、特許請求される主題の範囲内にあることが企図されている。さらに、本明細書に説明する実施形態の各々に対して、任意のそのような実施形態の対応する形態は、たとえば、説明された動作を実施する「ように構成されたロジック」として本明細書に説明することができる。
図1は、プロセッサ100の構成要素を例示するが、その場合、例示を容易にするために、すべての構成要素を例示してはいない。多くのプロセッサが、1つより多くのパイプラインを採用した、スーパースケーラプロセッサである。2つのパイプラインが、102aおよび102bとラベル付けされて、図1に例示されるが、実際には、スーパースケーラプロセッサには2つより多くのパイプラインがあり得る。簡単にするために、各パイプラインには3つの段階が示されているが、実際には、3つより多くの段階が使用される可能性がある。
図1のパイプラインに例示されているのは、命令フェッチ段階104aおよび104b、デコード段階106aおよび106b、ならびに実行段階108aおよび108bである。パイプラインは、少し例を挙げると、レジスタフェッチ、ハザードチェッキング、キャッシュヒット検知、データフェッチ、およびロードのための書き戻し、およびレジスタ間動作などの他の段階を含むことができる。110とラベル付けされたコントローラ機能ユニットは、パイプライン102aおよび102bを制御する。
移動命令は、データを1つの位置から別の位置に移動させる(コピーするまたは書き込む)ための一般に使用される命令である。移動命令は、しばしばMOVと書かれ、ここではその規約に従う。移動命令の一般的用法は、作成されたレジスタに定数の値をコピーすることである。コピーされる定数値は、即値またはリテラルと称することがある。定数をレジスタに移動させるための移動命令は、即値移動命令と呼ばれることがあり、MOV Rm #constantと書くことができ、その場合、constantは定数値を表し、Rmは定数値が書き込まれる作成されたレジスタを表す。図1において、レジスタRmは、118とラベル付けされ、レジスタファイル120内のレジスタとして例示される。
即値移動命令をデコードし次第、実施形態は、定数をエントリの一部として、図1に定数キャッシュと称し、112とラベル付けされる、キャッシュに記憶する。定数キャッシュ112内のエントリは、図1に114とラベル付けされ、114aとラベル付けされたタグフィールド、114bとラベル付けされた定数フィールド、および114cとラベル付けされたフラグフィールドの3つのフィールドを備える。その名前が示すように、定数フィールド114bは、エントリに関連付けられた定数値を記憶する。タグフィールド114aは、定数が書き込まれる(移動される)レジスタを識別する。フラグフィールド114cは、エントリ114の状態を示すために1つまたは複数のビットを備える。いくつかの実施形態の場合、フラグフィールド114cは、幅が1ビットでよく、エントリが有効であるかないかを示す。
定数キャッシュ112は、レジスタファイルとしてプロセッサ100で実現することができる。図1の例示において、定数キャッシュ112は、レジスタファイル120とは別個の構造として示される。しかし、定数キャッシュ112は、必ずしもレジスタファイル120とは独立していなくてよい。たとえば、定数キャッシュ112は、レジスタファイル120の一部でよいし、または両方の構造は、より大きなレジスタファイル構造に含めることができる。
即値移動命令は、その結果を計算するための後続の実行を必要としない。典型的には、定数が生成されたとき、直ちに後続の(プログラム順序において)消費命令によって使用される。定数キャッシュ112を利用することによって、後続の消費命令は、定数値が宛先の作成されたレジスタに書き込まれる前に、記憶された定数値にアクセスすることができる。
定数キャッシュ112の内容は、表にまとめられるものとして表示することができ、その場合、エントリに記憶された定数値が即値移動命令によって書かれ、即値移動命令の宛先レジスタに従ってタグ付けされる。定数キャッシュ112に記憶された即値移動命令の結果(定数値)および即値移動命令に依存する後続の(プログラム順序において)命令を検討し、その場合、後続の命令のオペランドは、即値移動命令が宛先レジスタに移動させる定数値である。後続の命令は、消費命令であり、宛先レジスタは移動命令によってターゲットとされるレジスタである。
一実施形態の場合、消費命令の実行は、即値移動命令の結果が転送されるのを待たなくてよいし、即値移動命令が実行を完了するのを待たなくてもよい。むしろ、消費命令は、それが依存する、即値移動命令に関連付けられた定数キャッシュ112内のエントリに記憶された定数値をそのオペランドとして使用することができる。その結果、即値移動命令が完了したかどうか、またはまだパイプライン内にあるかどうかにかかわらず、データ転送は必要とされず、データストールは起きることが必要とされない。
さらに、即値移動命令およびデータ依存消費命令は、異なるパイプライン内の同じ段階であり得るが、それにもかかわらず、いくつかの実施形態の場合、データ依存消費命令は、そのオペランドをゼロパイプラインサイクル遅延で取得することができる。
即値移動命令がデコードされ、その即値(リテラルまたは定数値)が定数キャッシュ内のエントリ114に記憶されたとき、エントリに関連付けられたフラグフィールド114cは、エントリの内容が有効であることを示すように設定される。そのエントリが後で消費命令によってアクセスされたとき、エントリの有効性がチェックされてからエントリに記憶された即値が消費命令に転送される。エントリに関連付けられたフラグフィールドが、エントリに記憶された即値が有効でないことを示している場合、記憶された即値は、消費命令に転送されない。
上記の説明は即値移動命令の文脈内にあるが、実施形態は、定数キャッシュ112を採用したとき即値移動命令に限定されない。コントローラ110は、値を宛先レジスタに書き込む他の種類の命令の場合、エントリは即値移動命令に関して説明したように定数キャッシュ112内に生成することができるように構成することができ、したがって、記憶された値は消費命令に転送することができる。そのような命令の例は、少し挙げると、分岐およびリンク命令、ならびにプログラム制御相対分岐である。
より一般的には、説明される実施形態は、結果をレジスタファイルに書き込む命令に適用することができ、その場合、結果は、命令のデコードに含まれる情報によって決定され得るか、またはデコード時に利用可能な情報によって決定され得るかのいずれかである。そのような命令は、レジスタファイルを読み取らなければならない任意のオペランドを有しない。しかし、議論を容易にするために、本明細書に開示する実施形態は、即値移動命令について説明され、その場合、即値移動命令は、単に、実施形態が有用であり得る命令の例として働くにすぎない。
作成されたレジスタに命令が結果を書き込むとき、その場合、命令が、結果を決定するための実行の前にレジスタファイルから読み取る必要があるが、コントローラ110は、作成されたレジスタに一致するタグを有する定数キャッシュ114内の任意のエントリを無効にする。この場合、コントローラ110は、一致するエントリのフラグフィールドを、エントリに記憶された定数値が有効でないことを示す値に設定する。
コントローラ110は、上記の実施形態により定数キャッシュ114内のエントリを更新する。これらの動作は、全面的にハードウェアによって実施することができる。いくつかの実施形態の場合、たとえば、メモリ116などのメモリに記憶された命令は、上記の動作を実行することができる。メモリ116は、一般に、非一時的コンピュータ可読媒体でよい。
図2は上記の動作を例示する。ステップ202では、命令がデコードされる。ステップ204では、デコードされた命令は、作成されたレジスタRmに定数値Cが移動されることを示すための、MOV Rm #Cと表示される、即値移動命令である。即値移動命令をデコードし次第、ステップ206は、定数値Cが定数キャッシュ112内のエントリに記憶されていることを示し、その場合、エントリはレジスタRmでタグ付けされ、エントリのフラグフィールドは、エントリが有効であることを示すように設定される。
ステップ208で示されるように、デコードされた命令が、作成されたレジスタRmのコンシューマ(consumer)である場合、作成されたレジスタRmに関連付けられた(でタグ付けされた)定数キャッシュ112内に有効なエントリがあるという条件で、ステップ210で示されるように、そのエントリの定数フィールドに記憶された定数値Cがコンシューマに転送される。ステップ212で示されるように、デコードされた命令が実行を完了し、作成されたレジスタRmに定数値を書き込む(またはコピーする)命令である場合、ステップ214で示されるように、コントローラ110が、作成されたレジスタRmに関連付けられた(でタグ付けされた)定数キャッシュ112内のエントリ(1つあるという条件で)を無効にする。
図3は、実施形態が応用され得るワイヤレス通信システムを例示する。図3は、基地局304Aと、304Bと、304Cとを備えた通信ネットワーク302を例示する。図3は、携帯電話(たとえば、スマートフォン)、タブレット、またはコンピュータシステムなどの携帯電話ネットワークに適した他の種類の通信デバイスなど、モバイルセルラー通信デバイスであり得る、306とラベル付けされた通信デバイスを示す。通信デバイス306はモバイルでなくてよい。図3の特定の例においては、通信デバイス306は、基地局304Cに関連付けられたセル内に位置する。矢印308および310は、それぞれ、アップリンクチャネルとダウンリンクチャネルとを図によって表し、それによって、通信デバイス306が基地局304Cと通信する。
実施形態は、たとえば、通信デバイス306、または基地局304C、または両方に関連付けられたデータ処理システムにおいて使用することができる。図3は、本明細書に説明する実施形態を採用することができる、多くのうちの1つの用途だけを例示する。
情報および信号は、様々な異なる技術および技法のいずれかを使用して表すことができることを当業者は理解されよう。たとえば、上記の説明全体を通して参照することができるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せで表すことができる。
さらに、本明細書に開示する実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実現できることを当業者は理解されよう。このハードウェアおよびソフトウェアの互換性を明確に例示するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが一般にそれらの機能性の観点から上に説明されている。そのような機能性がハードウェアまたはソフトウェアとして実現されるかどうかは、特定の用途および全体のシステムに課される設計上の制約による。当業者は、各特定の用途に対して、説明された機能性を様々なやり方で実現することができるが、そのような実現の決定は、本発明の範囲から逸脱させるものと解釈すべきでない。
本明細書に開示する実施形態に関連して説明した方法、シーケンス、および/またはアルゴリズムは、直接、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、または2つの組合せで具現化することができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取外し可能ディスク、CD-ROM、または当技術分野で知られた任意の他の記憶媒体の形態に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。あるいは、記憶媒体はプロセッサと一体でよい。
したがって、本発明の実施形態は、定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法を採用したコンピュータ可読媒体を含むことができる。
したがって、本発明は、例示された例に限定されず、本明細書に説明した機能性を実施するための任意の手段は、本発明の実施形態に含まれる。
前述の開示は、本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく本明細書において様々な変更および修正を加えることができることに留意されたい。本明細書に説明した本発明の実施形態による方法の特許請求の範囲の機能、ステップ、および/または動作は、任意の特定の順序で実施しなくてよい。さらに、本発明の要素は、単数で説明しまたは特許請求することができるが、単数への限定が明示的に記載されていない限り、複数が企図されている。
100 プロセッサ
102a パイプライン
102b パイプライン
104a フェッチ段階
104b フェッチ段階
106a デコード段階
106b デコード段階
108a 実行段階
108b 実行段階
110 コントローラ
112 定数キャッシュ
114 エントリ
114a タグフィールド
114b 定数フィールド
114c フラグフィールド
116 メモリ
118 レジスタ
120 レジスタファイル
302 通信ネットワーク
304A 基地局
304B 基地局
304C 基地局
306 通信デバイス
308 矢印
310 矢印

Claims (15)

  1. レジスタと、
    第1の命令をデコードするための第1のパイプラインであって、前記第1の命令が、実行を完了し次第、値を前記レジスタに書き込み、前記第1のパイプラインがレジスタファイルを読み取ることなく前記第1の命令をデコードするとき、前記値が決定されるか、または利用可能である、第1のパイプラインと、
    記憶するための手段であって、前記第1のパイプラインが前記第1の命令をデコードするのに応答して、エントリをキャッシュに記憶し、前記値を前記キャッシュ内のエントリに記憶する、記憶するための手段と、
    タグ付けするための手段であって、前記キャッシュ内の各エントリをタグ付けし、タグに基づいて前記キャッシュを検索し、前記エントリを前記レジスタでタグ付けする、タグ付けするための手段と、
    設定するための手段であって、前記エントリを有効として設定する、設定するための手段とを備える装置。
  2. 前記エントリを記憶するためのキャッシュであって、各エントリが、タグフィールドを有し、エントリが、前記タグフィールドに従って検索される、キャッシュと、
    前記第1のパイプラインが前記第1の命令をデコードするのに応答して前記キャッシュ内の前記エントリに前記値を記憶するためのコントローラであって、前記レジスタを示す前記タグフィールドを前記エントリに設定し、前記エントリが有効であることを示すためにフラグフィールドを前記エントリに設定する、コントローラとを備える、請求項1に記載の装置。
  3. 前記第1の命令が即値移動命令である、請求項1または請求項2に記載の装置。
  4. 前記コントローラが、前記第1のパイプラインがプログラム順序において前記第1の命令の後の消費命令をデコードすることに応答して、
    前記レジスタでタグ付けされた前記エントリを探して前記キャッシュを検索し、
    前記エントリが見つかるという条件で、および前記エントリの前記フラグフィールドが前記エントリが有効であることを示しているという条件で、前記値を前記第1のパイプラインに転送する、請求項2に記載の装置。
  5. 転送するための手段であって、前記エントリが有効と示されているという条件で、前記値を前記エントリから前記第1のパイプラインに、前記第1のパイプラインにおいてデコードされる第2の命令のオペランドとして転送する転送するための手段であって、前記第2の命令が、プログラム順序において前記第1の命令の後であり、かつ消費命令である、転送するための手段をさらに備える、請求項1に記載の装置。
  6. レジスタファイルをさらに備え、前記レジスタファイルが前記レジスタを備え、前記設定するための手段が、前記第1のパイプラインが前記レジスタをターゲットとする第3の命令をデコードし次第、前記エントリを無効として設定し、前記第3の命令が、前記レジスタファイルから読み取ることによってその結果を決定する、請求項5に記載の装置。
  7. レジスタファイルをさらに備え、前記レジスタファイルが前記レジスタを備え、前記設定するための手段が、前記第1のパイプラインが前記レジスタをターゲットとする第2の命令をデコードし次第、前記エントリを無効として設定し、前記第2の命令が、前記レジスタファイルから読み取ることによってその結果を決定する、請求項1に記載の装置。
  8. 第2のパイプラインと、
    転送するための手段であって、前記エントリが有効と示されているという条件で、前記値を前記エントリから前記第2のパイプラインに、前記第2のパイプラインにおいてデコードされる第2の命令のオペランドとして転送する転送するための手段であって、前記第2の命令がプログラム順序において前記第1の命令の後であり、かつ消費命令である、転送するための手段とをさらに備える、請求項1に記載の装置。
  9. レジスタファイルをさらに備え、前記レジスタファイルが前記レジスタを備え、前記設定するための手段が、前記第1のパイプラインが第3の命令をデコードし次第、前記エントリを無効として設定し、前記第3の命令が、前記レジスタをターゲットとし、前記第3の命令が、前記レジスタファイルから読み取ることによってその結果を決定する、請求項8に記載の装置。
  10. 第2のパイプラインと、
    転送するための手段であって、前記第1の命令が実行するとき、前記第1の命令により前記エントリが有効と示されているという条件で、前記値を前記第2のパイプラインに、前記第2のパイプラインにおいてデコードされる第2の命令のオペランドとしてゼロパイプラインサイクル遅延で転送する転送するための手段であって、前記第2の命令がプログラム順序において前記第1の命令の後であり、かつ消費命令である、転送するための手段とをさらに備える、請求項1に記載の装置。
  11. 携帯電話と基地局とからなる群から選択される、請求項1または請求項2に記載の装置。
  12. 第1のパイプラインにおいて第1の命令をデコードするステップであって、前記第1の命令が、実行を完了し次第、値をレジスタに書き込み、前記第1のパイプラインがレジスタファイルを読み取ることなく前記第1の命令をデコードするとき、前記値が決定されるか、または利用可能である、デコードするステップと、
    前記第1のパイプラインが前記第1の命令をデコードすることに応答して前記値をキャッシュ内のエントリに記憶するステップと、
    前記エントリを前記レジスタでタグ付けするステップであって、前記キャッシュが前記タグ付けするステップに従って検索される、タグ付けするステップと、
    前記エントリを有効として設定するステップとを含む方法。
  13. 前記第1の命令が即値移動命令である、請求項12に記載の方法。
  14. 前記第1のパイプラインにおいて第2の命令をデコードするステップであって、前記第2の命令が、プログラム順序において前記第1の命令の後であり、かつ消費命令である、デコードするステップと、
    前記エントリが有効と示されているという条件で、前記値を前記キャッシュ内の前記エントリから前記第1のパイプラインに前記第2の命令のオペランドとして転送するステップとをさらに含む、請求項12に記載の方法。
  15. 請求項12〜14のいずれか一項に記載の方法をプロセッサに実施させるための命令を記憶した非一時的コンピュータ可読記憶媒体。
JP2016502276A 2013-03-14 2014-03-14 定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置 Expired - Fee Related JP6352386B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/827,867 2013-03-14
US13/827,867 US20140281391A1 (en) 2013-03-14 2013-03-14 Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache
PCT/US2014/026907 WO2014152064A1 (en) 2013-03-14 2014-03-14 Method and apparatus for forwarding literal generated data to dependent instructions more efficiently using a constant cache

Publications (3)

Publication Number Publication Date
JP2016512366A JP2016512366A (ja) 2016-04-25
JP2016512366A5 JP2016512366A5 (ja) 2017-03-30
JP6352386B2 true JP6352386B2 (ja) 2018-07-04

Family

ID=50729776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016502276A Expired - Fee Related JP6352386B2 (ja) 2013-03-14 2014-03-14 定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置

Country Status (6)

Country Link
US (1) US20140281391A1 (ja)
EP (1) EP2972791B1 (ja)
JP (1) JP6352386B2 (ja)
KR (1) KR102055228B1 (ja)
CN (1) CN105009073B (ja)
WO (1) WO2014152064A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150019845A1 (en) * 2013-07-09 2015-01-15 Texas Instruments Incorporated Method to Extend the Number of Constant Bits Embedded in an Instruction Set
US10324723B2 (en) * 2014-07-02 2019-06-18 Nxp Usa, Inc. Systems and methods for processing both instructions and constant values from a memory of a digital processor accessed by separate pointers
US20160092219A1 (en) * 2014-09-29 2016-03-31 Qualcomm Incorporated Accelerating constant value generation using a computed constants table, and related circuits, methods, and computer-readable media
US20160170770A1 (en) * 2014-12-12 2016-06-16 Qualcomm Incorporated Providing early instruction execution in an out-of-order (ooo) processor, and related apparatuses, methods, and computer-readable media
US10671398B2 (en) * 2017-08-02 2020-06-02 International Business Machines Corporation Low-overhead, low-latency operand dependency tracking for instructions operating on register pairs in a processor core

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
US5123097A (en) * 1989-01-05 1992-06-16 Bull Hn Information Systems Inc. Apparatus and method for simultaneous execution of a write instruction and a succeeding read instruction in a data processing system with a store through cache strategy
JPH04130942A (ja) * 1990-09-21 1992-05-01 Hitachi Ltd ディジタル信号処理装置
JP2539974B2 (ja) * 1991-11-20 1996-10-02 富士通株式会社 情報処理装置におけるレジスタの読出制御方式
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US6505293B1 (en) * 1999-07-07 2003-01-07 Intel Corporation Register renaming to optimize identical register values
US6742112B1 (en) * 1999-12-29 2004-05-25 Intel Corporation Lookahead register value tracking
US6728870B1 (en) * 2000-10-06 2004-04-27 Intel Corporation Register move operations
WO2003090681A2 (en) * 2002-04-24 2003-11-06 Research Development Foundation SYNERGISTIC EFFECTS OF NUCLEAR TRANSCRIPTION FACTOR NF-κB INHIBITORS AND ANTI-NEOPLASTIC AGENTS
EP1387254B1 (en) * 2002-07-31 2012-12-12 Texas Instruments Incorporated Skip instruction carrying out a test with immediate value
SE527350C8 (sv) * 2003-08-18 2006-03-21 Gallaher Snus Ab Lock till snusdosa
US9557994B2 (en) 2004-07-13 2017-01-31 Arm Limited Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number
US7343482B2 (en) * 2004-10-20 2008-03-11 Arm Limited Program subgraph identification
KR101355496B1 (ko) 2005-08-29 2014-01-28 디 인벤션 사이언스 펀드 원, 엘엘씨 복수의 병렬 클러스터들을 포함하는 계층 프로세서의스케쥴링 메카니즘
US8176265B2 (en) * 2006-10-30 2012-05-08 Nvidia Corporation Shared single-access memory with management of multiple parallel requests
US7900027B2 (en) * 2008-01-31 2011-03-01 International Business Machines Corporation Scalable link stack control method with full support for speculative operations
US20100004994A1 (en) * 2008-07-02 2010-01-07 Global Launch Incorporated Methods for facilitating communications between businesses and consumers
US20110047357A1 (en) * 2009-08-19 2011-02-24 Qualcomm Incorporated Methods and Apparatus to Predict Non-Execution of Conditional Non-branching Instructions

Also Published As

Publication number Publication date
EP2972791A1 (en) 2016-01-20
CN105009073A (zh) 2015-10-28
EP2972791B1 (en) 2019-08-07
WO2014152064A1 (en) 2014-09-25
JP2016512366A (ja) 2016-04-25
US20140281391A1 (en) 2014-09-18
KR102055228B1 (ko) 2019-12-12
CN105009073B (zh) 2019-01-15
KR20150129822A (ko) 2015-11-20

Similar Documents

Publication Publication Date Title
KR101643675B1 (ko) 명령 프로세싱 회로들, 및 관련 프로세서 시스템들, 방법들 및 컴퓨터―판독 가능 매체들에서 반대 컨디션들을 갖는 조건부 기록 명령들의 융합
JP6006248B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
US8645669B2 (en) Cracking destructively overlapping operands in variable length instructions
JP6352386B2 (ja) 定数キャッシュを使用してより効率的にリテラル生成データを従属命令に転送するための方法および装置
US11593117B2 (en) Combining load or store instructions
JP7118984B2 (ja) ロード命令のメモリ・アクセスを回避するためのコンピュータ実装方法、システム、およびコンピュータ・プログラム
WO2017146860A1 (en) Combining loads or stores in computer processing
US10459727B2 (en) Loop code processor optimizations
US9652234B2 (en) Instruction and logic to control transfer in a partial binary translation system
JP2003523573A (ja) プロセッサにおける書き込みトラヒックを減少するシステム及び方法
CN108885551B (zh) 存储器复制指令、处理器、方法和系统
US10592252B2 (en) Efficient instruction processing for sparse data
US10545763B2 (en) Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme
JP6257745B2 (ja) プロセッサにおいてリターン分岐命令を実行する速度を向上させる方法
US20230367595A1 (en) Gather buffer management for unaligned and gather load operations
US20170046160A1 (en) Efficient handling of register files
WO2017116927A1 (en) Zero cache memory system extension
TWI835807B (zh) 用於組合載入或儲存指示的方法、裝置及非暫時性電腦可讀媒體
US20140075140A1 (en) Selective control for commit lines for shadowing data in storage elements

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170223

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180509

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180606

R150 Certificate of patent or registration of utility model

Ref document number: 6352386

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees