JP2014182830A - ベクトルレジスターファイルの動的再命名基盤のレジスター再構成 - Google Patents

ベクトルレジスターファイルの動的再命名基盤のレジスター再構成 Download PDF

Info

Publication number
JP2014182830A
JP2014182830A JP2014051610A JP2014051610A JP2014182830A JP 2014182830 A JP2014182830 A JP 2014182830A JP 2014051610 A JP2014051610 A JP 2014051610A JP 2014051610 A JP2014051610 A JP 2014051610A JP 2014182830 A JP2014182830 A JP 2014182830A
Authority
JP
Japan
Prior art keywords
register
micro
information
fragmentation
registers
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
JP2014051610A
Other languages
English (en)
Other versions
JP2014182830A5 (ja
JP6196176B2 (ja
Inventor
Gene Burgess Bradley
ブラッドリー・ジーン・バージェス
Ahmed Ashraf
アシュラフ・アハメド
Iyengar Ravi
ラヴィ・イェンガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014182830A publication Critical patent/JP2014182830A/ja
Publication of JP2014182830A5 publication Critical patent/JP2014182830A5/ja
Application granted granted Critical
Publication of JP6196176B2 publication Critical patent/JP6196176B2/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
    • 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/30098Register arrangements
    • 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
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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
    • G06F9/384Register renaming

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)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】ナロー−ワイド依存性を有する命令のソースレジスターに対する断片化情報を示す複数のフィールドを有する再命名テーブルを使用してレジスターファイルを再構成する方法及び装置を提供する。
【解決手段】本発明の実施形態によるレジスターファイルを再構成する方法は、再命名テーブルを提供する段階と、前記再命名テーブルに命令のソースレジスターに対する断片化情報を書き込む段階と、を含み、前記断片化情報は、前記ソースレジスターの少なくとも1つのプロデューサーに対する情報を含む。前記ソースレジスターは、前記命令の構造ソースレジスターであり、前記方法は、前記断片化情報から前記構造ソースレジスターが断片化したかを判別する段階をさらに含み、前記構造ソースレジスターのコンテンツが複数の物理レジスターに分散している時、前記構造ソースレジスターは、断片化したと判別される。
【選択図】図2

Description

本発明の実施形態による方法及び装置は、プロセッサーでレジスターファイルの断片化(fracture)を判別し、断片化を修正してレジスターファイルを再構成することに関する。
例えば、図1Aに示したように、ARMv7プロセッサ(ARMv7はイギリスケンブリッジのARM社の商標(trademark)である)のAarch32レイアウトのベクトルレジスターファイル(Vector Registor File、VRF)の構造レジスター(architectural registers)のレイアウトは、ソース及び目的地レジスターの間に潜在的なナロー−ワイド(narrow−to−wide)依存性を提供するように構成される。ナロー−ワイド依存性は、大きいサイズの値を読み出すことが複数の小さいサイズのレジスターを読み出すことを発生させる現象を示す。例えば、クワッドワード(quad word)のプロデューサー(producer)が複数のシングルワード(single words)又はダブルワード(double words)を生成する場合、クワッドワード(quad word)の読出しは複数のシングルレジスター(single registers)又はダブルレジスター(double registers)の読出しをもたらすことがある。同様に、ダブルワードの読出しは2つのシングルレジスターの読出しをもたらすことがある。
図1Aに示したように、32ビットレジスターレイアウト(ARMv7プロセッサのAarch32レイアウト)で、クワッドレジスター(例えば、Q15)は2つのダブルレジスター(例えば、D31及びD32)とマッピング(map)され、ダブルレジスター(例えば、D15)は2つのシングルレジスター(例えば、S31及びS30)とマッピング(map)される。図1Bに示したように、64ビットレジスターレイアウト(ARMv8プロセッサのAarch64レイアウト)で、各エントリQ0、Q1、Q2、Q3はサイズに関わらずにシングルレジスターにマッピング(map)される。
上述された例で、1つのクワッドレジスターソースに関連する命令(instruction)は、4つのシングルレジスターソース、又はシングルレジスターソース及びダブルレジスターソースの組合せを必要とすることがあり得る。したがって、命令に複数のクワッドレジスターソースが存在すれば、要求される実際レジスターソースの数はさらに大きくなり得る。したがって、命令処理に要求される電力及び時間消耗が無視できない。
ナロー−ワイド依存性を使用することは、面積及び電力面で高コストを要求することがあり、パフォーマンスに対するボトルネックとなることがある。また、大きいサイズの値(例えば、クワッドワード値)を読み出すことがさらに小さいサイズの複数のレジスターを読み出すことを必要とする時、大きいサイズのソースは断片化され、プロセッサの面積及び電力消耗は悪くなり得る。例えば、構造的に識別された(specified)生成命令が全体構造レジスターの一部のみを書き込み、このような命令がマイクロ構造(microarchitecture)によって識別されて固有な物理レジスターに結果を書き込むので、断片化が発生することがある。したがって、構造レジスターの値は複数の物理レジスターに掛けて分散しているので、‘断片化’は構造レジスターソースのコンテンツが複数の物理レジスターに分散していることを示し得る。
米国特許第8250346号明細書 米国特許出願公開第2011/0238962号明細書
本発明の目的は上述されたナロー−ワイド依存性の問題を解決することにある。
本発明の実施形態によるレジスターファイルを再構成する方法は、再命名テーブルを提供する段階と、前記再命名テーブルに命令のソースレジスターに対する断片化情報を書き込む段階と、を含み、前記断片化情報は、前記ソースレジスターの少なくとも1つのプロデューサーに対する情報を含む。
実施形態として、前記ソースレジスターは、前記命令の構造ソースレジスターであり、前記方法は、前記断片化情報から前記構造ソースレジスターが断片化したかを判別する段階をさらに含み、前記構造ソースレジスターのコンテンツが複数の物理レジスターに分散している時、前記構造ソースレジスターは、断片化したと判別される。
実施形態として、前記断片化情報は、前記構造ソースレジスターのタイプを示す構造ソースタグの第1情報及び前記構造ソースレジスターが断片化したかを示す前記構造ソースタグの第2情報から導出される。
実施形態として、前記第1情報は、前記構造ソースレジスターのタイプがシングル、ダブル又はクワッドのうちのいずれか1つであることを示し、前記第2情報は、前記少なくとも1つのプロデューサーがシングル、ダブル、又はクワッドであることを示す。
実施形態として、前記構造ソースレジスターが断片化したと判別されれば、少なくとも1つの修正マイクロオペレーションを生成する段階と、前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正するように前記修正マイクロオペレーションを実行する段階と、をさらに含む。
実施形態として、前記修正マイクロオペレーションを再命名する段階をさらに含む。
実施形態として、前記第1情報及び前記第2情報に基づいて、前記少なくとも1つの修正マイクロオペレーションの数を判別する段階をさらに含む。
実施形態として、マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、再命名及び実行のためのスケジュールがされないマイクロオペレーションを中止(stall)する段階をさらに含む。
実施形態として、前記マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正する段階をさらに含む。
実施形態として、マイクロオペレーションが断片化したと判別されれば、再命名及び実行のためにスケジュールされないマイクロオペレーションを中止する段階をさらに含む。
実施形態として、前記マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正する段階をさらに含む。
本発明の実施形態による命令処理装置は、再命名テーブルを提供する再命名器を含み、前記再命名器は、前記再命名テーブルに命令のソースレジスターに対する断片化情報を書き込み、そして前記断片化情報は、前記ソースレジスターの少なくとも1つのプロデューサーに対する情報を含む。
実施形態として、前記ソースレジスターは、前記命令の構造ソースレジスターであり、前記命令処理装置は、前記断片化情報から前記構造ソースレジスターが断片化したか否かを判別するように構成される断片化判別器をさらに含み、前記構造ソースレジスターのコンテンツが複数の物理レジスターに分散している時、前記構造ソースレジスターは、断片化したと判別される。
実施形態として、前記断片化情報は、前記構造ソースレジスターのタイプを示す構造ソースタグの第1情報及び前記構造ソースレジスターが断片化したことを示す前記構造ソースタグの第2情報から導出される。
実施形態として、前記第1情報は、前記構造ソースレジスターのタイプがシングル、ダブル、又はクワッドのうちの1つであることを示し、前記第2情報は、前記少なくとも1つのプロデューサーがシングル、ダブル、又はクワッドであることを示す。
実施形態として、前記構造ソースレジスターが断片化したと判別されれば、少なくとも1つの修正マイクロオペレーションを生成し、そして前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、断片化を修正するように前記修正マイクロオペレーションを実行するように構成される修正ステートマシンをさらに含む。
実施形態として、前記再命名器は、前記修正マイクロオペレーションを再命名する。
実施形態として、前記修正ステートマシンは、前記第1情報及び前記第2情報に基づいて前記少なくとも1つの修正マイクロオペレーションの数を決定する。
実施形態として、マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、再命名及び実行のためにスケジュールされないマイクロオペレーションを中止する修正ステートマシンをさらに含む。
実施形態として、前記マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、前記修正ステートマシンは、前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正する。
実施形態として、マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、再命名及び実行のためにスケジュールされないマイクロオペレーションを中止する修正ステートマシンをさらに含む。
実施形態として、前記マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、前記修正ステートマシンは、前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正する。
上述された例示的な再命名及び修正スキームは、レジスター併合を必要とするすべての断片化したソースで、同時にスケジューラーに複数の物理ソースタグを格納する必要性を除去する。また、このスキームは、レジスター併合を遂行するために再命名器及び物理レジスターファイルの追加的な読出しポートを必要としない。上述された実施形態は、面積及び電力面で効率的なステートマシンを利用してレジスターで併合のための修正マイクロオペレーションを検出及び実行する。また、上述された実施形態は、ナロー−ワイド依存性を有しない命令に影響を与えないので、動作性能面でさらに効率的である。
32ビットレジスターレイアウト(ARMv7プロセッサのAarch32レイアウト)を示す。 64ビットレジスターレイアウト(ARMv8プロセッサのAarch64レイアウト)を示す。 本発明の実施形態によるプロセッサの一部を示すブロック図である。 本発明の実施形態によるARMv7プロセッサのAarch32レイアウトの再命名テーブルのエントリを示す。 本発明の実施形態による再命名テーブルの更新されたフィールドを示す。 本発明の実施形態による再命名テーブルでクワッド目的地レジスターに要求されるフィールドを示す。 本発明の実施形態によるARMv7プロセッサのAarch32レイアウトのための再命名テーブルのすべての再命名テーブルエントリ及びフィールド情報のサイズを示す。 本発明の実施形態にしたがって断片化を判別し、断片化の修正を開始するシークェンスを示す。 本発明の実施形態にしたがって断片化を判別し、断片化の修正を開始するシークェンスを示す。 本発明の実施形態にしたがって断片化を判別し、断片化の修正を開始するシークェンスを示す。 本発明の実施形態にしたがって断片化を判別し、断片化の修正を開始するシークェンスを示す。 本発明の実施形態にしたがって断片化を判別し、断片化の修正を開始するシークェンスを示す。 本発明の実施形態による、図4A乃至図4Eに図示されたシークェンスで決定された断片化を修正するシークェンスを示す。 本発明の実施形態による、図4A乃至図4Eに図示されたシークェンスで決定された断片化を修正するシークェンスを示す。 本発明の実施形態による、図4A乃至図4Eに図示されたシークェンスで決定された断片化を修正するシークェンスを示す。 本発明の実施形態による、図4A乃至図4Eに図示されたシークェンスで決定された断片化を修正するシークェンスを示す。 本発明の実施形態にしたがってレジスター断片化を決定し、修正マイクロオペレーションを生成するシークェンスを示す。 本発明の実施形態による、命令パイプラインダイヤグラムでの修正プロセスの流れを示す。
本発明の実施形態が、添付された図面を参照して、該当技術分野で通常的な技術を有する者(以下、当業者)に容易に理解できるように詳細に説明される。本発明の技術的な思想は、ここに開示された実施形態に限定されず、多様な形態に応用され得る。広く公知された部分に対する詳細な説明は、説明を簡単にするために省略され得る。類似な参照番号は、類似な構成要素を参照することができる。
図1Aに示したように、構造レイアウトで断片化したレジスターソースを発生させるナロー−ワイド(narrow−to−wide、NTW)依存性は多様な方法を利用して遂行され得る。例えば、断片化した原本構造ソースは、複数の物理レジスターソースに分散され、又は読出し−修正−書込み(read−modify−write)方法が使用されてレジスターマージ(register merge)が遂行されることがある。このような方法は全てが問題点を有する。ソース分散方法は、ソースの数の増加をもたらして、さらに多くのソースタグを格納する必要性をもたらし、そして潛在的にさらに多くのレジスターファイル読出しポート及び再命名テーブル読出しポートの必要性をもたらすことがある。読出し−修正−書込み(read−modify−write)方法は、動作性能を低下させ、電力消耗を増加させ得る。
図2は本発明の実施形態によるプロセッサ10の一部を示すブロック図である。プロセッサ10は、メモリ又はキャッシュ(図示せず)からフェッチ(fetch)される命令を処理するデコーダー100、再命名器200、及びスケジューラー300を含む。再命名器200は、再命名テーブル210、断片化判別器220、及び修正ステートマシン230を含む。図2に図示された構造は、マルチ−コアプロセッサを含む多様な形態のプロセッサ又はデータプロセシングユニットに適用され得る。
図2で、デコーダー100は、メモリ(図示せず)からフェッチされた命令を下位レベルのマイクロオペレーション(micro−operation)又は複数の命令にデコーディングする。したがって、命令の流れはマイクロオペレーションの流れによってマッピング(map)される。デコーディングされたマイクロオペレーションフィールドは、遂行する動作(例えば、足し算(add)、掛け算(multiply)、ロード(load)、格納(store)等)を明示するオペレーションコード、データが維持されている構造レジスターアドレスを示すソースオペランド(source operand)、及びデータが処理されて伝達される構造レジスターアドレスを示す目的地オペランド(destination operand)を包含することができる。デコーディングされたマイクロオペレーションは、再命名インターフェイス150を通じて再命名器200に伝達される。再命名器200で、マイクロオペレーションの構造レジスターは、スケジューラー300へ伝送されて実行スケジュールが決定される前に、再命名され、依存性がチェックされる。再命名器200は、レジスターファイル内で、マイクロオペレーションのレジスターに対する情報が格納された再命名テーブル210を利用して、構造レジスターを物理的レジスターに再命名するように構成される。再命名テーブル210は本実施形態による再命名器200内に含まれるものとして図示されている。しかし、再命名テーブル210はプロセッサ10の他の部分に格納され得る。レジスター再命名(register renaming)は読出し後書込み(write−after−read)を回避するために遂行され、読出し後書込みデータはマイクロオペレーションの非順次実行(out−of−order execution)に危険をもたらすことがある。構造レジスターはプロセッサの構造のプログラマーの観点の命令で識別されるレジスターであり得る。
再命名器200で、断片化判別器220は、マイクロオペレーションの構造ソースレジスターが断片化しているか、そしてデコーダーから受信されるソースタイプ情報及び再命名テーブル210からの断片化情報を分析することによって、修正される必要があるかを判別するように提供され得る。大きいサイズのソース値のマイクロオペレーションで、マイクロオペレーションのプロデューサーが小さいサイズ(例えば、シングルサイズ)のレジスターであれば、大きいサイズのソース値は物理的レジスターファイルで断片化したと看做す。例えば、クワッド値のプロデューサーがシングル又はダブルソースに続いてコンテンツが複数の物理レジスターに分散された場合、ソース値は物理的レジスターファイルで断片化する。修正ステートマシン230は、レジスターファイルの構造レジスターソースに断片化が存在する時、修正マイクロオペレーションを利用して断片化判別器220によって判別された断片化を修正する。断片化判別器220及び修正ステートマシン230の詳細な動作は後述される。
図3Aは、図1Aに図示されたARMv7プロセッサ10のAarch32レイアウトで、本発明の実施形態によるレジスターQ0、D0、D1、S0、S1、S2、S3に関連した再命名テーブルのエントリを示す。ここに開示される再命名テーブルは、図2に図示されたプロセッサ10の再命名器200で使用される再命名テーブル210と同一であり得る。したがって、以下で、再命名テーブルは再命名テーブル210と同一であることと看做す。再命名テーブルは、図3B乃至図3Dを参照してより詳細に説明される。再命名器200は、デコーダー100からデコーディングされたマイクロオペレーションの各目的地レジスターを再命名し、そして目的地レジスターのサイズに関わらずに物理レジスターファイルPRF(Physical Register File)で各目的地レジスターに新しいエントリを割当する。図3Aで、PRFエントリは128ビット幅(bit wide)であり、再命名テーブルは4つのシングルレジスターエントリフィールド(S0エントリ#乃至S3エントリ#)を割当する。各エントリフィールドは32ビットサイズを有することができる。レジスターエントリの結果はPRFエントリで常に右側に整列される。このような再命名テーブルエントリ構造は、ARMv8プロセッサのAarch64レイアウトで明確に(clearly)動作し、再命名テーブルに格納された情報の少数の追加ビットを通じてARMv7プロセッサのAarch32レイアウトでも動作することができる。ARMv7プロセッサのAarch32レイアウト及びARMv8プロセッサのAarch64レイアウトは単なる例示的なものであり、再命名テーブルエントリ構造は類似なレイアウトの他の構造に適用され得る。追加ビットは、3つの有効(Valid)情報フィールド及び3つのレーン(Lane)情報フィールドに格納され得る。有効情報フィールドのような情報フィールドは、最後書込みがシングル(32)、ダブル(64)又はクワッド(128)ワードによるものであるかを格納することができる。レーン情報フィールドは、読み出されたレーン情報、即ちデータがレジスターから読み出される時、データがどのようにして整列されなければならないかを格納することができる。有効情報フィールドに格納された情報のような再命名テーブルに格納された情報は、後述されるように、レジスターファイルに断片化が存在するか否かを示す断片化情報として参照され得る。
図3Bは、本発明の実施形態にしたがってレジスターS0〜S3が再命名される時、再命名テーブルの何れのフィールドが更新されたかを示す。シングルレジスターS0〜S3のうちの1つ以上が1つ以上の物理レジスターファイルエントリ番号(PRFエントリ#)にマッピング(map)されることにしたがって、対応する情報フィールドが更新され得る。
図3Cは、本発明の実施形態による再命名テーブルでクワッド目的地レジスターで要求されるフィールドを示す。再命名テーブルで、すべてのエントリがすべての情報フィールドを格納する必要はない。図1Aに示したように、AEMv7プロセッサのAarch32レイアウトで、クワッドレジスターQ0−Q15はダブルレジスターにマッピングされる。しかし、これらのうちの半分のみで、即ちQ0乃至Q7のみで、各ダブルレジスターは2つのシングルレジスターにマッピングされる。したがって、本発明の実施形態によるARMv7プロセッサのAarch32レイアウトを利用して再命名テーブルをマッピングするために、シングルレジスターはD0−D15/Q0−Q7にマッピングされる必要のみがあり、ダブルレジスターはQ0−Q15、Q16にマッピングされる必要のみがあり、Q16−Q31は存在しない。
図3Dは、本発明の実施形態によるARMv7プロセッサのAarch32レイアウトの再命名テーブルのすべての再命名テーブルエントリ及びフィールド情報のサイズを示す。図3Dで、第0テーブルエントリ(エントリ0)は、図3A乃至図3Cに図示されたテーブルエントリに対応する。シングル、ダブル、又はクワッドレジスターの各々は、図3BのPRFエントリ#に対応する物理レジスタータグ(Rtag)にマッピングされる。第0乃至第7再命名テーブルエントリ(エントリ0乃至エントリ7)に対応するレジスターで、クワッドレジスターは、各々2つのシングルレジスターにマッピングされる2つのダブルレジスターにマッピングされる。各有効情報は1ビットのサイズを有する。S1のような1つのレーン情報は1ビットのサイズを有し、S2及びS7のような2つのレーン情報は2ビットのサイズを有する。第8乃至第15再命名テーブルエントリ(エントリ8乃至エントリ15)に対応するレジスターで、クワッドレジスターは2つのダブルレジスターにマッピングされる。このような再命名テーブルエントリの各々で、2つのダブルレジスターのうちのD1のような1つのレジスターのみが1ビットレーン情報を有する。第16乃至第31再命名テーブルエントリ(エントリ16乃至エントリ31)に対応するレジスターで、断片化情報ビットは存在しない。
図4A乃至図4Eは、本発明の実施形態にしたがって、図2のプロセッサ10で構造レジスターソースで断片化を判別し、構造レジスターソース断片化の修正を開始するシークェンス(sequence)を示す。Rtag32にマッピングされたシングルレジスターS0を書き込むための第1番目マイクロオペレーション(uOP0)が再命名される時、図4Aに示したように、再命名器200は、再命名テーブルの第0エントリ(エントリ0)で、Rtag(32)の情報を書き込み、異なる情報フィールドを更新する。以後に、Rtag33にマッピングされたシングルレジスターS1の書込みのための第2番目マイクロオペレーション(uOP1)が入力される時、図4Bに示したように、再命名器200は、再命名テーブルの同一のエントリ(エントリ0)で、Rtag(33)の情報を書き込み、情報フィールドもまた更新する。同様に、Rtag(34)及びRtag(35)にマッピングされたシングルレジスターS2、S3の書込みのための第3番目マイクロオペレーション(uOP2)及び第4番目マイクロオペレーション(uOP3)が各々入力される時、図4C及び図4Dに示したように、再命名器200は、再命名テーブルの同一のエントリ(エントリ0)で、この情報を書き込み、情報フィールドを更新する。再命名器200がレジスターS2、S3に対する情報を書き込んだ後に、デコーダーからクワッドソースレジスターQ0の読出しのための第5番目マイクロオペレーション(uOP4)が入力される時、Q0、D1、D0ビットが無効であるので、断片化判別器220によってレジスターが断片化したと判別される。即ち、図4Eに示したように、クワッドソースデータは複数のPRFエントリに存在する。
デコーダーから再命名器200に第5番目マイクロオペレーション(uOP4)が受信された時に、断片化判別器201が構造ソースレジスターで断片化があることを判別すれば、マイクロオペレーション(uOP4)は再命名器200で収容されなく、デコーダー100から再命名インターフェイス150への伝送は遅延される。同時に、修正ステートマシン202が活性化されて、1つ以上の修正マイクロオペレーションを利用して構造ソースレジスターが修正される。
図5A乃至図5Dは、本発明の実施形態にしたがって、図4A乃至図4Eに図示されたシークェンスで決定された断片化を修正する順序を示す。図5A乃至図5Dで、マイクロオペレーション(uOP1、uOP2、uOP3)は、断片化した構造ソースレジスターを併合(merge)するために使用される修正マイクロオペレーションである。第1番目修正マイクロオペレーション(uOP1)は、図5Aに示したように、2つのシングルレジスターS0(Rtag32)及びS1(Rtag33)を読み出し、結果をPRFエントリ36(Rtag36)のダブルレジスターに書き込み、そしてD0有効情報を1に更新する。この方法で、2つの異なるPRFエントリからの断片化した2つのシングルレジスターは同一のエントリに併合される。図5Bに示したように、第2番目修正マイクロオペレーション(uOP2)は、S2及びS3を読み出し、結果をPRFエントリ37(Rtag37)を有する他のダブルレジスターに書き込み、そしてD1有効情報を更新する。図5Cに示したように、第3番目修正マイクロオペレーション(uOP3)は、2つのダブルレジスターD0、D1を読み出し、結果をPRFエントリ38(Rtag38)のクワッドレジスターに書き込み、そしてQ0有効情報を1に更新する。この時、1つの構造レジスターソースに対する修正が完了される。プロセスは、断片化したマイクロオペレーションのすべての構造レジスターソースが修正される時まで反複され得る。断片化したマイクロオペレーションの修正が完了されれば、修正ステートマシン230はデコーダー遅延を中止する。図5Dに示したように、修正を誘発した原本マイクロオペレーション(図4EのuOP4)は再命名器200へ伝送され得る。
図5A乃至図5Dを参照して上述された修正プロセスで、修正マイクロオペレーションは、通常的なマイクロオペレーションが再命名器200で使用する再命名テーブルの読出しポートと同一の読出しポートを使用する。したがって、修正マイクロオペレーションのための追加的な読出しポートが要求されない。
図6は本発明の実施形態にしたがって構造ソースレジスター断片化を判別し、図2の断片化判別器220及び修正ステートマシン230で修正マイクロオペレーションが生成されるシークェンスを示す。
一サイクルですべてのマイクロオペレーションのレジスタータグ(Rtags)が再命名された後、断片化判別器220は、マイクロオペレーションがレジスター併合を遂行するための修正を必要とするか否かを判別する。より詳細には、図6に示したように、断片化判別器220は、マイクロオペレーションが再命名器200に伝達される時、再命名テーブル210から断片化情報を受信し(S10)、デコーダーからマイクロオペレーションの構造ソースレジスターのタイプ(例えば、シングル、ダブル、又はクワッド)に対する情報を受信する(S20)。断片化情報は、再命名テーブルに格納されたソースレジスターQ0、D1、及び/又はD0に対する有効性情報を含む。受信された情報に基づいて、断片化判別器220は、構造ソースレジスターが断片化したか否かを判別する。即ち、断片化判別器220は、構造ソースレジスターの修正が必要であるであるか否かを判別する(S30)。マイクロオペレーションの構造ソースレジスターが複数のPRFエントリに存在するものとしてマーク(mark)されていれば、断片化判別器220は、マイクロオペレーションの構造ソースレジスターが断片化し、修正が必要であることと判別する(S40)。
構造ソースレジスターが断片化したと判別されて、構造ソースレジスターのマイクロオペレーションが修正を必要とすれば(S40)、断片化判別器220は、断片化したマイクロオペレーションの再命名インターフェイス150及び新しいマイクロオペレーション(younger uOP)を遅延する(S50)。しかし、同一のサイクルで古いマイクロオペレーション(older uOP)は再命名が遂行される間に処理されることが許容され得る。ここで、新しいマイクロオペレーションは、プログラム順序(program order)で新しい、即ち、生成された後に相対的に短い時間が経過したマイクロオペレーションを意味する。古いマイクロオペレーションは、プログラム順序(program order)で古い、即ち、生成された後に相対的に長い時間が経過したマイクロオペレーションを意味する。
S40段階でマイクロオペレーションが修正を必要とすることが判別された後、修正ステートマシン230は、再命名テーブルから断片化情報、即ちソース有効情報を受信し(S60)、デコーダー100からマイクロオペレーションのソースレジスターのタイプ(シングル、ダブル、又はクワッド)に対する情報を受信し(S70)、そしてデコーダー100からソースレジスターの構造タグを受信する(S80)。受信された情報を利用して、修正ステートマシン230は、断片化した各マイクロオペレーションで要求される修正マイクロオペレーションの数を判別し、必要となる数の修正マイクロオペレーションを生成してソースレジスターの断片化を修正する(S90)。上述したように、修正は、異なる物理レジスターファイルエントリ数を有する小さいサイズのレジスターを併合することによって、そしてレジスターのデータを他のレジスターファイルエントリ数を有するさらに大きいサイズのレジスターに書き込むことによって遂行される。例えば、ソースレジスターが2つのダブルレジスターによって作られたクワッドである場合、2つのダブルレジスターは併合され、その結果がクワッドレジスターに書き込まれ得る。2つのシングルレジスターから作られたダブルソースレジスターの場合、2つのシングルレジスターが併合され、その結果がダブルレジスターに書き込まれ得る。修正マイクロオペレーションが生成されれば、このような修正マイクロオペレーションが再命名テーブルに伝送されて、修正ステートマシン230によって断片化が修正される(S100)。断片化したマイクロオペレーションの修正が完了されれば、デコーディングの遅延が除去され、デコーダーは元のマイクロオペレーション(断片化したマイクロオペレーションであったが、それ以上断片化されないマイクロオペレーション)を再び遂行する。修正マイクロオペレーションは再命名器に成功的に伝送される。必要となる修正マイクロオペレーションの数を判別及び生成することは、すべての修正マイクロオペレーションが生成され、再命名される時まで反複される(S110)。このような修正マイクロオペレーションは正常レジスター再命名プロセスに遂行される。断片化したマイクロオペレーションの修正が完了されれば、デコーディングの遅延が除去される(S120)。ここに開示された反複的な修正メカニズムは、修正スキームがどのようにして遂行されるかを示す例示的なものであり、他のメカニズムが採用されることができる。
本発明の実施形態による修正マイクロオペレーションは、小さいサイズのレジスターを読み出し、大きいサイズのレジスターに書き込むことを助ける命令である。例えば、修正マイクロオペレーションは、2つのシングルレジスターを読み出し、1つのダブルレジスターを書き込むか、又は2つのダブルレジスターを読み出し、1つのクワッドレジスターを書き込むことができる。
必要となる修正マイクロオペレーションの数は、ソースレジスターがクワッド又はダブルであるかによって、そしてソースデータのプロデューサーがクワッド、ダブル、又はシングルであるかによって決定される。例えば、図3Bに図示された再命名テーブルで、ソースレジスターがクワッドQ0であり、2つのプロデューサーダブルD1、D0が全て有効であれば、D0及びD1を全て読み出しクワッドレジスターに書き込むための1つの修正マイクロオペレーションが必要である。ソースレジスターD0、D1のうちの1つが無効であれば、2つの修正マイクロオペレーションが必要である。即ち、第1番目修正マイクロオペレーションは、2つのプロデューサーシングルS0、S1を読み出し、ダブルレジスターに書き込むために必要であり、第2番目修正マイクロオペレーションは、新しく生成されたダブルレジスター及び既存の有効なダブルレジスターを読み出し、最終クワッドレジスターに書き込むために必要である。D0及びD1が全て無効であれば、3つの修正マイクロオペレーションが必要である。即ち、第1番目マイクロオペレーションは2つの下位のシングルレジスターを読み出してダブルレジスターに書き込み、第2番目修正マイクロオペレーションは2つの上位のシングルレジスターを読み出して他の1つのダブルレジスターに書き込み、第3番目修正マイクロオペレーションは2つのダブルレジスターを読み出して最終クワッドレジスターに書き込む。ソースレジスターがダブルレジスターであれば、2つのシングルレジスターを読み出してダブルレジスターに書き込む1つの修正マイクロオペレーションが必要である。修正ステートマシン230は、必要となる数の修正マイクロオペレーションを生成して修正を遂行することができる。
図7は、本発明の実施形態による命令パイプラインダイヤグラム上の修正プロセッサ流れを示す。図6に示したように、4つのマイクロオペレーション(uOP0、uOP1、uOP2、uOP3)が再命名器200に伝送される。サイクル内でuOP0が最も古いマイクロオペレーションであり、uOP3が最も新しいマイクロオペレーションである。各マイクロオペレーションのソースレジスターの断片化情報が再命名テーブルに書き込まれる。再命名テーブル及びマイクロオペレーションのソースタイプを比較することによって、断片化判別器230によって断片化修正の必要性が判別される。uOP0が再命名器200に到達する時、断片化判別器230がソースレジスターに修正を発生させる断片化がないと判別すれば、uOP0は再命名のために伝送される。第2番目マイクロオペレーション(uOP1)は修正が必要であると判別される。デコーダーは遅延(又は中止)され、修正プロセスが開始される。
修正ステートマシン230は、断片化したマイクロオペレーションに必要となる修正マイクロオペレーションの数を判別し、必要となる数の修正マイクロオペレーションを生成する。図7の例で、uOP1を修正するために必要となる修正マイクロオペレーションの数は3つである。生成された修正マイクロオペレーション(FxOP1a、FxOP1b、FxOP1c)は、小さいサイズのレジスターを併合して大きいサイズのレジスターに書き込むことを助ける。uOP1の修正マイクロオペレーションが生成されることによって、修正マイクロオペレーション(FxOP1a、FxOP1b、FxOP1c)が伝送(dispatch)され、デコーダー100の遅延(又は中止)が除去される。
uOP1の修正を終了した後、デコーダーの遅延(又は中止)は除去され、デコーダーはuOP1、uOP2、uOP3を実行する。uOP1は成功的に再命名される。第3番目マイクロオペレーション(uOP2)は修正が必要であることと判別され、デコーダー100は再び遅延(又は中止)される。同様に、修正ステートマシン230はuOP2を修正するために必要となる数の修正マイクロオペレーションを生成し、その他の修正プロセスが開始される。第4番目マイクロオペレーション(uOP3)又は類似なプロセスに修正される。図7に示したように、修正プロセスはパイプラインプロセスである。
マイクロオペレーションのソースレジスターの各々で修正スキームを必要とすることがある。マイクロオペレーションに3つのソースが存在すれば、最大9つの修正マイクロオペレーションがマイクロオペレーションの断片化を修正するために必要となることがある。本発明の実施形態によれば、9つの修正マイクロオペレーションの中で、サイクル当たり4つの修正マイクロオペレーションが再命名/伝送(dispatch)されることができる。後続マイクロオペレーションの再命名は、修正マイクロオペレーションが実行(insert)される時まで遅延(又は中止)される。複数のマイクロオペレーションが同一サイクルで修正を必要とすれば、マイクロオペレーションを修正する順序は、マイクロオペレーションの相対的な新古にしたがって決定されることができる。
上述された例示的な再命名及び修正スキームは、レジスター併合を必要とするすべての断片化したソースで、同時にスケジューラーに複数の物理ソースタグを格納する必要性を除去する。また、このスキームは、レジスター併合を遂行するために再命名器及び物理レジスターファイルの追加的な読出しポートの必要性を誘発しない。上述された実施形態は、面積及び電力面で効率的なステートマシンを利用してレジスターで併合のための修正マイクロオペレーションを検出及び実行する。また、上述された実施形態は、ナロー−ワイド依存性を有しない命令に影響を及ぼさないので、動作の性能面でさらに効率的である。
上述された実施形態は、例示的なものであり、本発明の技術的な思想を限定しない。例えば、物理レジスターの例示的な128ビットのサイズは、256、64、又は32ビットのような他のデータサイズであり得る。シングルレジスターは、4、16、64ビットのような任意のサイズも有し得り、したがって、ダブルレジスターは、8、32、64、128ビットのような任意のサイズも有することができる。また、実施形態で説明されたサイクル当たりマイクロオペレーションの数は任意の数であり得る。再命名テーブル210、断片化判別器220及び修正ステートマシン230は、構造的に再命名器200に包含されないこともあり、図2のプロセッサ10の別の構成要素として具現され得る。
本発明の技術的な思想は、限定されず、ナロー−ワイド依存性を有するすべてのタイプの構造レジスターに適用され得る。上述された、そして上述されなかった多様な応用、最適化、追加及び改善は本発明の技術的な思想の範囲に属する。したがって、本発明の範囲は、実施形態の詳細な説明によって限定されず、添付された特許請求の範囲及び本発明の技術的な思想に含まれる多様な変更によって定めなければならない。
10 プロセッサ
100 デコーダー
200 再命名器
210 再命名テーブル
220 断片化判別器
230 修正ステートマシン
300 スケジューラー

Claims (10)

  1. レジスターファイルを再構成する方法において、
    再命名テーブルを提供する段階と、
    前記再命名テーブルに命令のソースレジスターに対する断片化情報を書き込む段階と、を含み、
    前記断片化情報は、前記ソースレジスターの少なくとも1つのプロデューサーに対する情報を含む方法。
  2. 前記ソースレジスターは、前記命令の構造ソースレジスターであり、
    前記方法は、前記断片化情報から前記構造ソースレジスターが断片化したかを判別する段階をさらに含み、
    前記構造ソースレジスターのコンテンツが複数の物理レジスターに分散している時、前記構造ソースレジスターは断片化したと判別される請求項1に記載の方法。
  3. 前記断片化情報は、前記構造ソースレジスターのタイプを示す構造ソースタグの第1情報及び前記構造ソースレジスターが断片化したかを示す前記構造ソースタグの第2情報から導出される請求項2に記載の方法。
  4. 前記第1情報は、前記構造ソースレジスターのタイプがシングル、ダブル、又はクワッドのうちのいずれか1つであることを示し、
    前記第2情報は、前記少なくとも1つのプロデューサーがシングル、ダブル、又はクワッドであることを示す請求項3に記載の方法。
  5. 前記構造ソースレジスターが断片化したと判別されれば、少なくとも1つの修正マイクロオペレーションを生成する段階と、
    前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正するように前記修正マイクロオペレーションを実行する段階と、をさらに含む請求項3に記載の方法。
  6. 前記修正マイクロオペレーションを再命名する段階をさらに含む請求項5に記載の方法。
  7. 前記第1情報及び前記第2情報に基づいて、前記少なくとも1つの修正マイクロオペレーションの数を判別する段階をさらに含む請求項5に記載の方法。
  8. マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、再命名及び実行のためのスケジュールがされないマイクロオペレーションを中止する段階をさらに含む請求項3に記載の方法。
  9. 前記マイクロオペレーションの前記構造ソースレジスターが断片化したと判別されれば、前記レジスターファイルで、2つ以上のプロデューサーの2つ以上のレジスターを読み出し、読み出された結果を前記2つ以上のプロデューサーのレジスターの各々のサイズよりも大きいサイズを有するレジスターに書き込むことによって、前記断片化を修正する段階をさらに含む請求項8に記載の方法。
  10. 再命名テーブルを提供する再命名器を含み、
    前記再命名器は、前記再命名テーブルに命令のソースレジスターに対する断片化情報を書き込み、
    前記断片化情報は、前記ソースレジスターの少なくとも1つのプロデューサーに対する情報を含む命令処理装置。
JP2014051610A 2013-03-15 2014-03-14 ベクトルレジスターファイルの動的再命名基盤のレジスター再構成 Active JP6196176B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/837,213 2013-03-15
US13/837,213 US9588770B2 (en) 2013-03-15 2013-03-15 Dynamic rename based register reconfiguration of a vector register file

Publications (3)

Publication Number Publication Date
JP2014182830A true JP2014182830A (ja) 2014-09-29
JP2014182830A5 JP2014182830A5 (ja) 2017-04-20
JP6196176B2 JP6196176B2 (ja) 2017-09-13

Family

ID=51419102

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014051610A Active JP6196176B2 (ja) 2013-03-15 2014-03-14 ベクトルレジスターファイルの動的再命名基盤のレジスター再構成

Country Status (5)

Country Link
US (1) US9588770B2 (ja)
JP (1) JP6196176B2 (ja)
KR (1) KR101952209B1 (ja)
CN (1) CN104049947B (ja)
DE (1) DE102014103184A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429393B2 (en) * 2015-11-11 2022-08-30 Arm Limited Apparatus and method for supporting out-of-order program execution of instructions
CN106095393B (zh) 2016-06-22 2019-04-30 上海兆芯集成电路有限公司 在回退阶段期间合并部分写结果的系统和方法
CN107291425B (zh) * 2017-06-23 2020-11-24 上海兆芯集成电路有限公司 合并解决重命名尺寸问题的部分写入结果的系统和方法
US11256509B2 (en) * 2017-12-07 2022-02-22 International Business Machines Corporation Instruction fusion after register rename
US11276223B2 (en) 2018-12-13 2022-03-15 Advanced Micro Devices, Inc. Merged data path for triangle and box intersection test in ray tracing
US10747538B2 (en) 2018-12-21 2020-08-18 Intel Corporation Method and apparatus to re-configure MDIO registers on an ethernet device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100205409A1 (en) * 2009-02-04 2010-08-12 Stmicroelectronics (Beijing) R&D Co. Ltd. Novel register renaming system using multi-bank physical register mapping table and method thereof
US7809932B1 (en) * 2004-03-22 2010-10-05 Altera Corporation Methods and apparatus for adapting pipeline stage latency based on instruction type
JP2011018120A (ja) * 2009-07-07 2011-01-27 Nec Computertechno Ltd 情報処理装置及びベクトル型情報処理装置
US20120124337A1 (en) * 2010-11-16 2012-05-17 Arm Limited Size mis-match hazard detection

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481683A (en) 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US6609189B1 (en) 1998-03-12 2003-08-19 Yale University Cycle segmented prefix circuits
US20030217249A1 (en) 2002-05-20 2003-11-20 The Regents Of The University Of Michigan Method and apparatus for virtual register renaming to implement an out-of-order processor
US20080077782A1 (en) 2006-09-26 2008-03-27 Arm Limited Restoring a register renaming table within a processor following an exception
US7765384B2 (en) * 2007-04-18 2010-07-27 International Business Machines Corporation Universal register rename mechanism for targets of different instruction types in a microprocessor
US7725439B2 (en) 2007-08-03 2010-05-25 International Business Machines Corporation Handling column renaming as part of schema evolution in a data archiving tool
US8250346B2 (en) 2009-06-04 2012-08-21 Arm Limited Register renaming of a partially updated data granule
TWI389026B (zh) 2009-06-08 2013-03-11 Rdc Semiconductor Co Ltd 暫存器更名表的回復方法與回復系統
US20110238962A1 (en) 2010-03-23 2011-09-29 International Business Machines Corporation Register Checkpointing for Speculative Modes of Execution in Out-of-Order Processors
US8725989B2 (en) 2010-12-09 2014-05-13 Intel Corporation Performing function calls using single instruction multiple data (SIMD) registers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809932B1 (en) * 2004-03-22 2010-10-05 Altera Corporation Methods and apparatus for adapting pipeline stage latency based on instruction type
US20100205409A1 (en) * 2009-02-04 2010-08-12 Stmicroelectronics (Beijing) R&D Co. Ltd. Novel register renaming system using multi-bank physical register mapping table and method thereof
JP2011018120A (ja) * 2009-07-07 2011-01-27 Nec Computertechno Ltd 情報処理装置及びベクトル型情報処理装置
US20120124337A1 (en) * 2010-11-16 2012-05-17 Arm Limited Size mis-match hazard detection

Also Published As

Publication number Publication date
CN104049947B (zh) 2018-03-09
DE102014103184A1 (de) 2014-09-18
KR20140113307A (ko) 2014-09-24
KR101952209B1 (ko) 2019-04-22
US20140281415A1 (en) 2014-09-18
US9588770B2 (en) 2017-03-07
JP6196176B2 (ja) 2017-09-13
CN104049947A (zh) 2014-09-17

Similar Documents

Publication Publication Date Title
US10261879B2 (en) Instruction and logic to test transactional execution status
JP6196176B2 (ja) ベクトルレジスターファイルの動的再命名基盤のレジスター再構成
CN108351839B (zh) 挂起/恢复飞地页面高速缓存中飞地的迁移的设备和方法
JP6702590B2 (ja) セキュアエンクレーブのプロセスを分岐してセキュアエンクレーブページキャッシュに子エンクレーブを確立する命令及びロジック
US9250901B2 (en) Execution context swap between heterogeneous functional hardware units
JP5758515B2 (ja) バイパスマルチプルインスタンス化テーブルを用いた移動除去のためのシステム及び方法
US8386754B2 (en) Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism
US9830158B2 (en) Speculative execution and rollback
KR101655713B1 (ko) 이동 제거 연산들에서의 플래그 트래킹을 위한 시스템들 및 방법들
JP2018500657A5 (ja)
WO2014004222A1 (en) Instruction and logic to test transactional execution status
JP2018512631A (ja) アトミックな範囲演算を提供する命令及びロジック
TW201741867A (zh) 記憶體複製指令、處理器、方法及系統
JP2018504667A (ja) ベクトルパックドタプル相互比較機能を提供する方法、装置、命令、およびロジック
US10146691B2 (en) System and method for performing partial cache line writes without fill-reads or byte enables
KR20160075639A (ko) 이미디에이트 핸들링 및 플래그 핸들링을 위한 프로세서 및 방법
US10255072B2 (en) Architectural register replacement for instructions that use multiple architectural registers
US9710389B2 (en) Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170314

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170314

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170314

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170817

R150 Certificate of patent or registration of utility model

Ref document number: 6196176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250