JP3110404B2 - マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体 - Google Patents

マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体

Info

Publication number
JP3110404B2
JP3110404B2 JP10327385A JP32738598A JP3110404B2 JP 3110404 B2 JP3110404 B2 JP 3110404B2 JP 10327385 A JP10327385 A JP 10327385A JP 32738598 A JP32738598 A JP 32738598A JP 3110404 B2 JP3110404 B2 JP 3110404B2
Authority
JP
Japan
Prior art keywords
instruction
microinstruction
micro
derived
instructions
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
JP10327385A
Other languages
English (en)
Other versions
JP2000148472A (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 甲府日本電気株式会社
Priority to JP10327385A priority Critical patent/JP3110404B2/ja
Priority to US09/440,134 priority patent/US6502187B1/en
Publication of JP2000148472A publication Critical patent/JP2000148472A/ja
Application granted granted Critical
Publication of JP3110404B2 publication Critical patent/JP3110404B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/30181Instruction operation extension or modification
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

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)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマイクロプロセッサ
装置及びそのソフトウェア命令高速化方法並びにその制
御プログラムを記録した記録媒体に関し、特に可変長デ
ータを扱うソフトウェア命令の高速化方法に関する。
【0002】
【従来の技術】従来、このソフトウェア命令の高速化方
法としては、スーパスカラ構成のプロセッサがある。こ
のスーパスカラ構成のプロセッサとは、CISC(Co
mplex Instruction Set Com
puter)アーキテクチャが持つ複雑な命令をRIS
C(Reduced Instruction Set
Computer)の命令セットに似た垂直型のマイク
ロ命令で実現するプロセッサのことである。
【0003】すなわち、図10に示すように、スーパス
カラ構成のプロセッサ20は命令フェッチ動作によって
メモリ(図示せず)から読出されたCISC命令をデコ
ードして解読するCISC命令解読部21と、CISC
命令解読部21の解読結果にしたがってそのCISC命
令を実現するRISC命令群を供給するRISC命令供
給部22と、このRISC命令群を実行するプロセッサ
本体23とから構成されている。ここで、プロセッサ本
体23はRISC命令セットが動作するプロセッサであ
る。
【0004】これらRISC命令供給部22及びプロセ
ッサ本体23における一般的なハードウェア構成を図1
1に示す。図において、従来のスーパスカラ構成のプロ
セッサは命令供給部1と、レジスタリネーム部3と、リ
オーダバッファ4と、リザベーションステーション5
と、実行ユニット6とから構成されている。
【0005】命令供給部1は図示せぬ主記憶または命令
キャッシュから取出したソフトウェア命令を解析し、ソ
フトウェア命令に対応して構築されている垂直型のマイ
クロ命令(RISC命令)を供給する。また、命令供給
部1はマイクロ命令を識別するための識別子(以下、マ
イクロタグとする)を、マイクロ命令に付加して供給す
る。
【0006】レジスタリネーム部3は命令供給部1から
送られてきたマイクロ命令と先行マイクロ命令とのレジ
スタ干渉をチェックし、レジスタ干渉を回避すべくリソ
ースレジスタ番号の付け直し(以下、この付け直し処理
をレジスタリネームとする)を行う。
【0007】リオーダバッファ4はレジスタリネーム部
3から出力されるマイクロ命令を格納し、格納したマイ
クロ命令の実行完了を待ち合わせる。また、リオーダバ
ッファ4は格納したマイクロ命令に対応して実行結果を
格納するフィールドと実行完了を示すフィールドとを持
ち、実行が完了したマイクロ命令から登録順に実行結果
をソフトウェアビジブルレジスタ(図示せず)に書込ん
でいき(以下、この書込み処理をグラジュエイトとす
る)、ソフトウェアビジブルレジスタへの格納が終了し
た時点で、登録されていたエントリを解放してマイクロ
命令の処理を完了する。
【0008】リザベーションステーション5はリオーダ
バッファ4から供給されるマイクロ命令を格納し、マイ
クロ命令で使用するリソースの監視を行い、命令で使用
するリソース全てが参照可能となったマイクロ命令から
順次、実行ユニット6に供給してマイクロ命令の実行を
指示する。つまり、リザベーションステーション5にお
いてマイクロ命令発行の追い越しが行われ、命令のアウ
トオブオーダ実行が可能となる。
【0009】実行ユニット6はリザベーションステーシ
ョン5から供給されたマイクロ命令を実行し、実行が終
了した時点で実行結果と実行完了報告とをリオーダバッ
ファ4に送出し、該当マイクロ命令の完了を通知する。
但し、上記のスーパスカラ構成のプロセッサ20におい
て実行されるマイクロ命令の並列処理の個数や実行ユニ
ット数は、プロセッサによって異なっている。
【0010】
【発明が解決しようとする課題】上述した従来のスーパ
スカラ構成のプロセッサでは、CISCアーキテクチャ
が持つ複雑な命令をRISCの命令セットに似た垂直型
のマイクロ命令で実現しているので、実行命令の並列度
が上がるために性能が向上するという利点がある。しか
しながら、このプロセッサではパイプ段数が多くかつマ
イクロ命令が垂直型であるため、マイクロ命令の分岐性
能が水平型のマイクロ命令に比べて極端に悪化するとい
う問題がある。
【0011】ここで、水平型マイクロ命令とはプロセッ
サ装置において垂直型のマイクロ命令が使用される以前
からプロセッサ装置で用いられているマイクロ命令であ
り、1個のマイクロ命令の命令語長が長く、複数の動作
指定フィールドからなるハードウェア制御情報であり、
1命令中に存在する各フィールドが各演算器の動作を規
定している。
【0012】そのため、スーパスカラ構成のようなハー
ドウェア構成には適応することができない。また、分岐
命令に関しても、垂直型のマイクロ命令には分岐成立か
不成立の2種類の方向しかなく、分岐が成立した場合に
は後続命令を全てキャンセルして分岐先アドレスにて新
規に命令フェッチを開始する動作となるのに対し、水平
型のマイクロ命令では実行するマイクロ命令中に次のマ
イクロ命令のアドレスが含まれているため、分岐成功/
不成功という概念がない。
【0013】よって、水平型のマイクロ命令では命令の
分岐を、次マイクロ命令のアドレスの数bitをあるレ
ジスタの値とすり替えることによって実現しており、こ
れによって複数の次マイクロ命令のアドレス指定が可能
となっている。
【0014】図12は4方向への分岐を行う場合のマイ
クロ命令の流れを示す図である。垂直型のマイクロ命令
では、図12(a)に示すように、処理Aを実行する流
れの途中で処理Dを実行するために、分岐命令a〜cで
夫々分岐を行わなければならないのに対し、水平型のマ
イクロ命令では、図12(b)に示すように、処理Dに
直接分岐することが可能である。
【0015】例えば、命令取出しから命令終了までのパ
イプ段数が8段のパイプラインでは垂直型の分岐命令が
分岐成功の時に7Tくらいかけて分岐ターゲットを取出
しているので、処理Dの命令取出しまでに21Tの時間
を必要とする。逆に、水平型では4方向のアドレス差し
替えを可能とした場合に、1個の分岐命令で処理A〜処
理Dに分岐することが可能である。
【0016】一方、CISCアーキテクチャを実現する
マイクロプロセッサでは使用頻度が高く、実行時間が長
い可変長データを扱う命令をいかに高速に実行できるか
がプロセッサ性能を上げるための課題となっている。し
かしながら、可変長データ命令はマイクロプログラムで
実現する必要があり、しかもデータ長を判断しながらメ
モリアクセスを行う必要があるため、従来の技術ではど
うしても分岐命令が介在してしまい、性能向上が難しい
という問題がある。
【0017】すなわち、従来の技術ではマイクロ命令で
データ長を判断しながらデータ処理を行っているので、
動作クロックが高速になればなるほど、パイプ段数が多
くなる。よって、分岐成功の場合のターゲット命令の取
出しに時間がかかってしまうため、動作クロックを早く
しても、分岐命令が多く含まれる場合には命令自体の実
行クロック数が多くなってしまい、クロックの向上に比
例して命令性能をあげることが難しくなる。
【0018】そこで、本発明の目的は上記の問題点を解
消し、分岐命令を使用することなく可変長データを処理
することができ、可変長データを扱うソフトウェア命令
の高速化を図ることができるマイクロプロセッサ装置及
びそのソフトウェア命令高速化方法並びにその制御プロ
グラムを記録した記録媒体を提供することにある。
【0019】
【課題を解決するための手段】本発明によるマイクロプ
ロセッサ装置は、可変長データを扱うマイクロ命令を少
なくとも実行するマイクロプロセッサ装置であって、
記可変長データを扱うマイクロ命令の検出時に当該マイ
クロ命令を前記可変長データが取り得る最大のデータを
処理するための派生マイクロ命令群を発行するよう構成
当該マイクロ命令を各々予め設定された固定データ
長を扱う複数の基本マイクロ命令に分割して前記派生マ
イクロ命令群とするよう構成している。
【0020】本発明による他のマイクロプロセッサ装置
は、可変長データを扱うマイクロ命令を少なくとも実行
するマイクロプロセッサ装置であって、前記可変長デー
タを扱うマイクロ命令を検出した時にそのマイクロ命令
を前記可変長データが取り得る最大のデータを処理する
ための派生マイクロ命令群に分割して発行する分割手段
を備え 当該マイクロ命令を各々予め設定された固定デ
ータ長を扱う複数の基本マイクロ命令に分割して前記派
生マイクロ命令群とするよう構成している。
【0021】本発明によるソフトウェア命令高速化方法
は、可変長データを扱うマイクロ命令を少なくとも実行
するマイクロプロセッサ装置のソフトウェア命令高速化
方法であって、前記可変長データを扱うマイクロ命令の
検出時にそのマイクロ命令を前記可変長データが取り得
る最大のデータを処理するための派生マイクロ命令群を
発行するようにし 当該マイクロ命令を各々予め設定さ
れた固定データ長を扱う複数の基本マイクロ命令に分割
して前記派生マイクロ命令群とするようにしている。
【0022】本発明によるソフトウェア命令高速化方法
は、可変長データを扱うマイクロ命令を少なくとも実行
するマイクロプロセッサ装置のソフトウェア命令高速化
方法であって、前記可変長データを扱うマイクロ命令を
検出した時にそのマイクロ命令を前記可変長データが取
り得る最大のデータを処理するための派生マイクロ命令
群に分割して発行するステップを備えし、 当該マイクロ
命令を各々予め設定された固定データ長を扱う複数の基
本マイクロ命令に分割して前記派生マイクロ命令群とす
るようにしている。
【0023】
【0024】
【0025】すなわち、本発明のマイクロプロセッサ装
置は、可変長データを扱うソフトウェア命令を垂直型マ
イクロ命令で実現しているスーパスカラ構成のプロセッ
サにおいて、ソフトウェア命令内で扱うデータ長をマイ
クロ命令にて計算しながら処理することを行わずに、可
変長データが取り得る最大のデータを処理するためのマ
イクロ命令群を投機的に発行している。
【0026】その際、データ処理の行程において投機的
に発行されたマイクロ命令の冗長を検出した場合にはハ
ードウェアにて冗長命令を制御することによって、処理
時間の増加につながるマイクロ命令の分岐命令を使用す
ることなく、可変長データを扱うソフトウェア命令の高
速化を図ることが可能となる。
【0027】より具体的には、命令分割部が可変長デー
タを扱うマイクロ命令を認識した時に、可変長データの
データ長を確認することなく、可変長データが取り得る
最大データ長がアクセス可能な分の基本マイクロ命令に
分割して投機的に発行している。
【0028】冗長命令検出部は命令分割部で分割された
マイクロ命令が実行ユニットで実行される度に可変長デ
ータの残データ長を計算する。これによって、処理すべ
きデータがなくなると、冗長命令検出部は投機的に供給
された冗長なマイクロ命令を処理するように命令削除制
御部と命令終了操作部とに指示を出す。
【0029】命令削除制御部は冗長命令検出部から冗長
命令の処理指示を受けると、リザベーションステーショ
ンに残っている冗長なマイクロ命令をリザベーションス
テーションから全て削除する。命令終了操作部は冗長命
令検出部から冗長命令の処理指示を受けると、リオーダ
バッファ内に存在する冗長なマイクロ命令を実行終了状
態にする。
【0030】これによって、垂直型のマイクロ命令にお
ける実行時間増加の原因ともいえる分岐命令を使用せず
に、可変長データが処理可能となるので、可変長データ
を扱うソフトウェア命令が高速に実行可能となり、性能
向上につながる。
【0031】
【発明の実施の形態】次に、本発明の一実施例について
図面を参照して説明する。図1は本発明の一実施例によ
るスーパスカラ構成のプロセッサの構成を示すブロック
図である。図において、本発明の一実施例によるスーパ
スカラ構成のプロセッサは命令供給部1と、命令分割部
2と、レジスタリネーム部3と、リオーダバッファ4
と、リザベーションステーション5と、実行ユニット6
と、命令終了操作部7と、命令削除制御部8と、冗長命
令検出部9とから構成されている。
【0032】図2及び図3は本発明の一実施例によるス
ーパスカラ構成のプロセッサの動作を示すフローチャー
トである。これら図1〜図3を参照して本発明の一実施
例によるスーパスカラ構成のプロセッサの動作について
説明する。
【0033】尚、図2及び図3に示す処理動作は本発明
の一実施例によるスーパスカラ構成のプロセッサの各部
が図示せぬ制御メモリに記録されたプログラムを実行す
ることで実現され、制御メモリとしてはROM(リード
オンリメモリ)やIC(集積回路)メモリが使用可能で
ある。
【0034】命令供給部1は図示せぬ主記憶または命令
キャッシュから取出したソフトウェア命令を解析し、ソ
フトウェア命令に対応して構築されている垂直型のマイ
クロ命令(RISC命令)を供給する(図2ステップS
1)。また、命令供給部1はマイクロ命令を識別するた
めの識別子(以下、マイクロタグとする)を、マイクロ
命令に付加して供給する。
【0035】命令分割部2は命令供給部1から供給され
たマイクロ命令が可変長データを扱うためのマイクロ命
令でないことを認識すると(図2ステップS2)、マイ
クロ命令を分割することなく、レジスタリネーム部3と
リオーダバッファ4とを経てリザベーションステーショ
ン5に供給する(図2ステップS3)。
【0036】命令分割部2は命令供給部1から供給され
たマイクロ命令が可変長データを扱うためのマイクロ命
令であることを認識すると(図2ステップS2)、命令
供給部1に対してマイクロ命令の供給抑止を指示し(図
2ステップS4)、可変長データ用マイクロ命令を通常
のデータ長を扱う複数個の基本マイクロ命令に分割しな
がら(以下、分割によって発生した基本マイクロ命令を
派生マイクロ命令とする)、レジスタリネーム部3とリ
オーダバッファ4とを経てリザベーションステーション
5に供給する(図2ステップS5,S6)。
【0037】派生マイクロ命令数は可変長データ用マイ
クロ命令で扱える最大値のデータを基本マイクロ命令で
実現することができるだけの命令数とする。例えば、可
変長データ用マイクロ命令が最大で64バイトのデータ
をアクセスし、基本マイクロ命令が8バイトデータのア
クセスを行う場合、可変長データ用マイクロ命令は8個
の基本マイクロ命令に分割される。
【0038】また、命令分割部2では派生マイクロ命令
に対し、派生マイクロ命令であることを示すフラグと分
割順序を表すフラグとをマイクロタグに添付する。この
場合、派生マイクロ命令におけるマイクロタグは元の可
変長データ用マイクロ命令に付随していた値をそのまま
継承する。
【0039】可変長データ用マイクロ命令以外の場合に
は分割したことを表すフラグを無効にし、分割順序を表
すフラグを0クリアする(以下、分割したことを表すフ
ラグと分割順序を表すフラグとを併せて拡張タグとす
る)。
【0040】命令分割部2から供給されたマイクロ命令
はマイクロタグ及び拡張タグを伴い、レジスタリネーム
部3とリオーダバッファ4とリザベーションステーショ
ン5とを経て実行ユニット6と冗長命令検出部9とに供
給される。
【0041】リザベーションステーション5では拡張タ
グから派生マイクロ命令でないと判断すると(図3ステ
ップS7)、マイクロ命令を実行ユニット6に供給し
(図3ステップS8)、そのマイクロ命令を実行ユニッ
ト6で実行する(図3ステップS9)。
【0042】実行ユニット6はマイクロ命令の実行が完
了すると、実行完了状態となるようにリオーダバッファ
4内の実行状態を示すフィールドを実行完了状態にセッ
トし(図3ステップS10)、マイクロ命令の実行を終
了する。
【0043】一方、リザベーションステーション5では
拡張タグから派生マイクロ命令であると判断すると(図
3ステップS7)、拡張タグの分割順を表すフラグに従
い、派生マイクロ命令を分割順に実行ユニット6及び冗
長命令検出部9に供給するように制御する(図3ステッ
プS11)。
【0044】冗長命令検出部9では派生マイクロ命令群
の最初の命令を受取ったことを拡張タグによって認識す
ると(図3ステップS12)、本来の可変長データ用マ
イクロ命令で処理するはずのデータ長を調べて格納して
おき(図3ステップS13)、実行ユニット6で同一の
マイクロタグを持つ派生マイクロ命令で処理されたデー
タ長を減算していく(図3ステップS14)。
【0045】この減算結果において、冗長命令検出部9
は残データ長が0以下になった場合(派生マイクロ命令
がなくなった場合)(図3ステップS16)、最後に処
理を行った可変長データ用マイクロ命令のマイクロタグ
(以下、バブルマイクロタグとする)と、拡張タグ(以
下、バブル拡張タグとする)と、冗長な派生マイクロ命
令とが存在することを示す信号(以下、バブル指示とす
る)を命令終了操作部7と命令削除制御部8とに送出す
る。
【0046】命令削除制御部8はバブル指示とバブルマ
イクロタグとを受取ると、リザベーションステーション
5に格納されている全てのマイクロ命令におけるマイク
ロタグとバブルマイクロタグとの一致を調べ、一致して
いるマイクロ命令(冗長な派生マイクロ命令)をリザベ
ーションステーション5から削除する(図3ステップS
17)。
【0047】命令終了操作部7ではバブル指示とバブル
タグとバブル拡張タグとを受けると、リオーダバッファ
4に格納されている全てのマイクロ命令に対して、マイ
クロタグ及び拡張タグをバブルマイクロタグ及びバブル
拡張タグと比較する。
【0048】その比較結果において、マイクロタグとバ
ブルマイクロタグとが一致し、かつ拡張タグがバブル拡
張タグよりも大きいマイクロ命令を見つけると、命令終
了操作部7はそのマイクロ命令を冗長な派生マイクロ命
令と判断し、実行完了状態となるようにリオーダバッフ
ァ4内の実行状態を示すフィールドを実行完了状態にセ
ットする(図3ステップS15)。
【0049】図4は本発明の一実施例で用いるマイクロ
命令形式の一例を示す図である。図において、基本形態
11は演算結果を格納するレジスタ番号を表すWフィー
ルドと、2種類の演算リソースレジスタを表すXフィー
ルド及びYフィールドと、演算動作を規定するオペコー
ドとの4種類のフィールドから構成される。
【0050】基本マイクロ命令の一つであるload命
令12はXフィールドで示されるレジスタをベースアド
レス、Yフィールドで示されるレジスタをインデックス
レジスタとして、加算したメモリアドレスから8バイト
データをWフィールドで指定されたレジスタに格納す
る。
【0051】それに対して、可変長データ用マイクロ命
令であるlodm命令13は1バイトから64バイトま
での可変長データを扱えるマイクロ命令と定義され、X
フィールドで示されるレジスタをベースアドレスとし
て、そのアドレスで指定されるメモリデータを、Yフィ
ールドで指定されたレジスタに格納されているデータ長
(1バイトから64バイト)だけロードし、ロードデー
タはWフィールドで指定されたレジスタを先頭にした連
番のレジスタに格納する。
【0052】また、lodmf命令14はXフィールド
で指定されたレジスタをベースレジスタとしてメモリロ
ードを行い、8バイトのロードデータをWフィールドで
指定されたレジスタに書込む。このlodmf命令14
において、Yフィールドで指定されたレジスタの内容は
load命令とは異なりアドレス計算時のインデックス
レジスタとしては使用せずに、可変長データのデータ長
を管理している冗長命令検出部9に渡す。
【0053】図5は図1の命令分割部2における可変長
データ用マイクロ命令(以下、lodm命令とする)を
基本マイクロ命令(以下、load命令とする)に分割
した際に生成される派生マイクロ命令とそれに対応する
マイクロタグ及び拡張タグとを示す図である。図におい
て、命令(1)のlodmf命令はレジスタ番号B0の
レジスタをベースレジスタとしてメモリロードを行い、
ロードデータをレジスタ番号R0のレジスタに書込む。
【0054】命令(2)から命令(8)まではWフィー
ルドのレジスタ番号を1づつ加算し、インデックスとし
て固定値の8を順次加算していく。つまり、命令(1)
から命令(8)までを全て実行した場合にはレジスタ番
号B0で示されているベースアドレスから64バイトの
連続したメモリデータがレジスタ番号R0からR7まで
の連続したレジスタに書込まれることになり、lodm
命令で最大データ長を扱った場合と同様な結果となる。
【0055】また、拡張タグに関しては派生マイクロ命
令であることを示すビットを有効にして分割順を表すフ
ィールドに0から7までを命令(1)から命令(8)に
対して順次つけていく。
【0056】このように、命令分割部2においてlod
m命令から派生した8個の派生マイクロ命令は順次レジ
スタリネーム部3に送られ、通常のマイクロ命令と同様
に処理されていく。
【0057】派生マイクロ命令が通常のマイクロ命令と
異なる特殊な処理となるのはリザベーションステーショ
ン5から命令が供給された場合であり、以下にその特殊
動作について記述する。
【0058】図5において、冗長命令検出部9と実行ユ
ニット6とにlodmf命令が供給されると、実行ユニ
ット6は上述したようにlodmf命令におけるメモリ
ロード処理を行い、冗長命令検出部9はマイクロタグと
拡張タグとを記憶し、可変長データのデータ長であるY
フィールドで指定されたレジスタの内容から8を減算し
た結果を残データ長として保持するとともに、減算結果
が0以下かどうかをチェックする。
【0059】減算結果が0以下であった場合には実行ユ
ニット6において同時に行われているメモリロード処理
にて可変長データ処理がすでに終了したことを意味する
ので、lodmf命令以降の冗長な派生命令を無効化す
るために、命令削除制御部8にバブル指示とバブルマイ
クロタグとを送り、同時に命令制御操作部7にバブル指
示とバブルマイクロタグ及びバブル拡張タグとを送出す
る。
【0060】演算結果が0以下でない場合には処理すべ
き可変長データが残っていることを意味するので、冗長
命令検出部9ではデータ長から8減算した結果を保持
し、lodmf命令の後続となる派生マイクロ命令がリ
ザベーションステーション5から供給されるのを待つ。
【0061】その後、冗長命令検出部9では派生マイク
ロ命令が供給される度に、保持していた残データ長から
8づつ減算し、減算結果が0以下かどうかをチェックす
る。減算結果が0以下の場合にはlodmf命令で行っ
た後続の冗長な派生マイクロ命令の無効化を行い、0以
下でない場合には残データ長を更新して次の派生マイク
ロ命令がリザベーションステーション5から送られてく
るのを待つ。但し、リザベーションステーション5から
送られてきた最終の派生マイクロ命令(拡張タグの分割
順を示すフィールドが7である派生マイクロ命令)を認
識した場合には、残データ長の減算結果で0以下を検出
した場合でもバブル指示は報告しない。
【0062】図6及び図7は図1の命令終了操作部7と
命令削除制御部8と冗長命令検出部9とにおける処理動
作を示す図である。これら図6及び図7を参照して、バ
ブル指示が冗長命令検出部9から報告された場合に、リ
ザベーションステーション5及びリオーダバッファ4で
行われる冗長な派生マイクロ命令の扱いについて説明す
る。
【0063】尚、以下の説明では実施例の一つの例とし
てリザベーションステーション5のエントリ数を8、リ
オーダバッファ4のエントリ数を16、可変長データの
データ長を32バイトとし、派生マイクロ命令やマイク
ロタグ及び拡張タグは図6における命令(1)から命令
(8)までの内容で生成されたものとする。
【0064】図6(a)は実行ユニットに可変長データ
の24バイトから8バイトのデータを処理するための派
生マイクロ命令[図5における命令(4)]が供給され
た時のリザベーションステーション5の状態を表す。
【0065】この状態において、冗長命令検出部9から
命令削除制御部8に対してバブル指示とバブルマイクロ
タグとが送られると、命令削除制御部8ではリザベーシ
ョンステーション5の全てのエントリ(Entry)の
マイクロタグとバブルタグとの一致チェックを行い、エ
ントリ0からエントリ3の4つのエントリで一致を検出
する。
【0066】一致が検出されたエントリにあるマイクロ
命令は処理する必要がない冗長な命令であるため、実行
ユニット6への無駄な供給やリザベーションステーショ
ン5のエントリの無駄な使用時間を削除するために、リ
ザベーションステーション5内から削除して図6(b)
の状態にする。
【0067】図7(a)は実行ユニットに可変長データ
の24バイトから8バイトのデータを処理するための派
生マイクロ命令[図5における命令(4)]が供給され
た時のリオーダバッファ4の状態を表す。
【0068】この状態において、冗長命令検出部9から
命令終了操作部7に対してバブル指示とバブルマイクロ
タグとバブル拡張タグとが送られると、命令終了操作部
7ではリオーダバッファ4の全てのエントリに格納され
ているマイクロタグ及び拡張タグをバブルマイクロタグ
及びバブル拡張タグと比較する。
【0069】この比較結果において、マイクロタグとバ
ブルマイクロタグとが一致し、かつ拡張タグがバブル拡
張タグよりも大きいエントリを冗長な派生マイクロ命令
と判断する。図7(a)の例ではエントリ4からエント
リ7の派生マイクロ命令が冗長であると判断される。
【0070】冗長な派生マイクロ命令はリオーダバッフ
ァ4において強制的に実行完了状態にするとともに、オ
ペレーションコードをload命令からnop命令に書
換えてグラジュエイト時にレジスタへの演算結果の書込
みを抑止する。
【0071】この動作において、リザベーションステー
ション5内で削除されたマイクロ命令をリオーダバッフ
ァ4で完了を待ち続けてグラジュエイトがストールする
ことを防ぐとともに、演算結果を持たない冗長な派生マ
イクロ命令でレジスタを不正に更新することを防ぐ。
【0072】以上説明したように、本発明の一実施例で
は垂直型マイクロ命令における実行時間増加の原因とも
いえる分岐命令を使用せずに、可変長データを処理する
ことができるため、可変長データを扱うソフトウェア命
令が高速に実行可能となり、性能向上につながる。
【0073】図8及び図9は本発明の一実施例による具
体的な処理動作を示す図である。これら図8及び図9を
参照して本発明の一実施例による具体的な処理動作につ
いて説明する。
【0074】以下にデータ長を計算しながらメモリロー
ドを行う従来の分岐命令を使った場合の実行時間と本発
明を用いた場合の実行時間の比較をタイムチャートを参
照して行う。
【0075】タイムチャートを作成するうえでのハード
ウェア構成例はロード・ストアユニット1個とレジスタ
間の演算を行うレジスタ演算ユニット1個と分岐ユニッ
ト1個とする。
【0076】また、ステージ段数はマイクロ命令フェッ
チから実行結果をリオーダバッファ4に書込むまでとし
た場合に、ロード・ストアユニットで9段、レジスタ実
行ユニットで7段、分岐ユニットで6段であり、リオー
ダバッファ4へ同時に登録できる命令数を4個、リオー
ダバッファ4からグラジュエイトできる命令数を4個と
している。
【0077】また、命令分割部2における派生マイクロ
命令は1クロックサイクルで4個の派生マイクロ命令を
生成可能としている。さらに、タイムチャートを作成す
る場合に扱った可変長データは8バイトとしている。
【0078】図8(a)はマイクロ命令でデータ長を計
算しながらメモリロードを行うマイクロ命令コーディン
グである。動作概要はload命令でメモリからロード
してくる度にsub命令にてデータ長から8を減算して
残データ長を作成する。
【0079】この残データ長を分岐命令で判定し、残デ
ータ長が0以下になった場合には可変長データ処理を終
了して分岐する。この動作を可変長データが取り得る最
大値まで行う。
【0080】図8(b)は図8(a)のマイクロプログ
ラムを上記のハードウェア構成で実行した場合のタイム
チャートである。T1でフェッチされた4個のマイクロ
命令はT2においてレジスタリネームされ、T3におい
てリオーダバッファ4に格納される。
【0081】T4でリザベーションステーション5に格
納され、T5において夫々の命令が実行ユニット6に供
給されるが、命令(3)のbra命令は先行する命令
(2)のsub命令の実行結果を判定するためにリザベ
ーションステーション5内で待たされ、命令(2)のs
ub命令の実行結果が確定したT6において分岐ユニッ
トに供給される。
【0082】分岐ユニットに供給された命令(3)のb
ra命令は命令(2)のsub命令の演算結果が0であ
ることを判定すると、分岐先命令のフェッチをT8にお
いて実行する。分岐先命令である命令(7)のand命
令はT8でフェッチされた後にT15においてグラジュ
エイトされる。
【0083】図9(a)は本発明の一実施例を利用した
場合のマイクロ命令コーディングと、実際に実行される
マイクロプログラムを示している。命令(1)のlod
m命令は可変長データを扱うマイクロ命令であり、本発
明の一実施例によって命令(1)−1のlodmf命令
から命令(1)−8のload命令まで、合計8個に分
割される。命令(2)のand命令は上記の図8(a)
における命令(7)の分岐先命令と同一な命令を示して
いる。
【0084】図9(b)は図8(b)で用いたハードウ
ェア構成を用いて実行した場合のタイムチャートであ
る。T1でフェッチされた命令(1)のlodm命令と
命令(2)のand命令とはT2においてレジスタリネ
ームが行われるが、命令(1)のlodm命令が派生マ
イクロ命令を生成することによって命令(2)のand
命令のレジスタリネームは待たされる。
【0085】T2における命令(1)のlodm命令の
分割は4命令同時に行われる。T3ではT2で生成され
た4個の派生マイクロ命令をリオーダバッファ4に格納
するとともに、残り4個の派生マイクロ命令の生成も行
う。
【0086】T4では命令(1)のlodm命令の分割
によって待たされていた命令(2)のand命令がレジ
スタリネームされる。T5においてロード・ストアユニ
ットに供給された命令(1)−1のlodmf命令によ
って冗長命令検出部9において残データ長が0以下であ
ることが検出されると、リザベーションステーション5
内にある命令(1)−2のload命令から命令(1)
−8のload命令までが冗長と判断されるとともに、
リオーダバッファ4においても強制終了対象であると判
断され、T6においてリザベーションステーション5か
ら削除され、リオーダバッファ4において命令終了状態
となる。
【0087】その後、命令(1)−1のlodmf命令
が終了するT10においてグラジュエイトが開始され、
命令(2)のand命令のグラジュエイトはT12で行
われる。
【0088】以上説明したように、本発明の一実施例に
よるスーパスカラ構成のプロセッサでは図8(b)と図
9(b)とで比較した通り、可変長データ処理が高速化
されることがわかる。
【0089】このように、命令分割部2が可変長データ
を扱うマイクロ命令を認識した時に可変長データのデー
タ長を確認することなく、可変長データが取り得る最大
データ長がアクセス可能な分の基本マイクロ命令に分割
して投機的に発行することによって、垂直型のマイクロ
命令における実行時間増加の原因ともいえる分岐命令を
使用せずに、可変長データを処理することができる。
【0090】また、冗長命令検出部9において命令分割
部2で分割されたマイクロ命令が実行ユニット6で実行
される度に可変長データの残データ長を計算し、処理す
べきデータがなくなると、投機的に供給された冗長なマ
イクロ命令を処理するように命令削除制御部8と命令終
了操作部7とに指示を出し、命令削除制御部8がリザベ
ーションステーション5に残っている冗長なマイクロ命
令を全て削除するとともに、命令終了操作部7がリオー
ダバッファ4内に存在する冗長なマイクロ命令を実行終
了状態にすることによって、垂直型のマイクロ命令にお
ける実行時間増加の原因ともいえる分岐命令を使用せず
に、可変長データが処理可能となるので、可変長データ
を扱うソフトウェア命令を高速に実行することができ、
性能の向上を図ることができる。
【0091】
【発明の効果】以上説明したように本発明によれば、可
変長データを扱うマイクロ命令を少なくとも実行するマ
イクロプロセッサ装置において、可変長データが取り得
る最大のデータを処理するための派生マイクロ命令群を
発行することによって、分岐命令を使用することなく可
変長データを処理することができ、可変長データを扱う
ソフトウェア命令の高速化を図ることができるという効
果がある。
【図面の簡単な説明】
【図1】本発明の一実施例によるスーパスカラ構成のプ
ロセッサの構成を示すブロック図である。
【図2】本発明の一実施例によるスーパスカラ構成のプ
ロセッサの動作を示すフローチャートである。
【図3】本発明の一実施例によるスーパスカラ構成のプ
ロセッサの動作を示すフローチャートである。
【図4】本発明の一実施例で用いるマイクロ命令形式の
一例を示す図である。
【図5】図1の命令分割部における可変長データ用マイ
クロ命令を基本マイクロ命令に分割した際に生成される
派生マイクロ命令とそれに対応するマイクロタグ及び拡
張タグとを示す図である。
【図6】(a)及び(b)は図1の命令終了操作部と命
令削除制御部と冗長命令検出部とにおける処理動作を示
す図である。
【図7】(a)及び(b)は図1の命令終了操作部と命
令削除制御部と冗長命令検出部とにおける処理動作を示
す図である。
【図8】(a)はマイクロ命令でデータ長を計算しなが
らメモリロードを行うマイクロ命令コーディングを示す
図、(b)は(a)のマイクロプログラムを実行した場
合のタイムチャートである。
【図9】(a)は本発明の一実施例を利用した場合のマ
イクロ命令コーディングと、実際に実行されるマイクロ
プログラムを示す図、(b)は(b)のマイクロプログ
ラムを実行した場合のタイムチャートである。
【図10】従来例によるスーパスカラ構成のプロセッサ
の構成を示すブロック図である。
【図11】図10のRISC命令供給部及びプロセッサ
本体における一般的なハードウェア構成を示すブロック
図である。
【図12】従来例による4方向への分岐を行う場合のマ
イクロ命令の流れを示す図である。
【符号の説明】
1 命令供給部 2 命令分割部 3 レジスタリネーム部 4 リオーダバッファ 5 リザベーションステーション 6 実行ユニット 7 命令終了操作部 8 命令削除制御部 9 冗長命令検出部 11 基本形態 12 load命令 13 lodm命令 14 lodmf命令
フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06F 9/22 320

Claims (12)

    (57)【特許請求の範囲】
  1. 【請求項1】 可変長データを扱うマイクロ命令を少な
    くとも実行するマイクロプロセッサ装置であって、前記可変長データを扱うマイクロ命令の検出時に当該マ
    イクロ命令を 前記可変長データが取り得る最大のデータ
    を処理するための派生マイクロ命令群を発行するよう構
    成し 当該マイクロ命令を各々予め設定された固定データ長を
    扱う複数の基本マイクロ命令に分割して前記派生マイク
    ロ命令群とするよう構成し たことを特徴とするマイクロ
    プロセッサ装置。
  2. 【請求項2】 前記発行された派生マイクロ命令の冗長
    を検出した時にその冗長な派生マイクロ命令を実行終了
    状態とするよう構成したことを特徴とする請求項1記載
    のマイクロプロセッサ装置。
  3. 【請求項3】 前記発行された派生マイクロ命令を保持
    しておき、前記発行された派生マイクロ命令の冗長を検
    出した時にその冗長な派生マイクロ命令を削除するよう
    構成したことを特徴とする請求項1または請求項2記載
    のマイクロプロセッサ装置。
  4. 【請求項4】 可変長データを扱うマイクロ命令を少な
    くとも実行するマイクロプロセッサ装置であって、 前記可変長データを扱うマイクロ命令を検出した時にそ
    のマイクロ命令を前記可変長データが取り得る最大のデ
    ータを処理するための派生マイクロ命令群に分割して発
    行する分割手段を有し、 当該マイクロ命令を各々予め設定された固定データ長を
    扱う複数の基本マイクロ命令に分割して前記派生マイク
    ロ命令群とするよう構成した ことを特徴とするマイクロ
    プロセッサ装置。
  5. 【請求項5】 前記分割手段で分割されて発行された派
    生マイクロ命令の冗長を検出する検出手段と、前記検出
    手段が前記派生マイクロ命令の冗長を検出した時にその
    冗長な派生マイクロ命令を実行終了状態とする終了操作
    手段とを含むことを特徴とする請求項4記載のマイクロ
    プロセッサ装置。
  6. 【請求項6】 前記分割手段で分割されて発行された派
    生マイクロ命令を保持する保持手段と、前記検出手段が
    前記派生マイクロ命令の冗長を検出した時にその冗長な
    派生マイクロ命令を前記保持手段から削除する削除手段
    とを含むことを特徴とする請求項5記載のマイクロプロ
    セッサ装置。
  7. 【請求項7】 可変長データを扱うマイクロ命令を少な
    くとも実行するマイクロプロセッサ装置のソフトウェア
    命令高速化方法であって、前記可変長データを扱うマイクロ命令の検出時にそのマ
    イクロ命令を 前記可変長データが取り得る最大のデータ
    を処理するための派生マイクロ命令群を発行するように
    当該マイクロ命令を各々予め設定された固定データ長を
    扱う複数の基本マイクロ命令に分割して前記派生マイク
    ロ命令群とするようにし たことを特徴とするソフトウェ
    ア命令高速化方法。
  8. 【請求項8】 前記発行された派生マイクロ命令の冗長
    を検出した時にその冗長な派生マイクロ命令を実行終了
    状態とするようにしたことを特徴とする請求項7記載の
    ソフトウェア命令高速化方法。
  9. 【請求項9】 前記発行された派生マイクロ命令を保持
    しておき、前記発行された派生マイクロ命令の冗長を検
    出した時にその冗長な派生マイクロ命令を削除するよう
    にしたことを特徴とする請求項7または請求項8記載の
    ソフトウェア命令高速化方法。
  10. 【請求項10】 可変長データを扱うマイクロ命令を少
    なくとも実行するマイクロプロセッサ装置のソフトウェ
    ア命令高速化方法であって、 前記可変長データを扱うマイクロ命令を検出した時にそ
    のマイクロ命令を前記可変長データが取り得る最大のデ
    ータを処理するための派生マイクロ命令群に分割して発
    行するステップを有し、 当該マイクロ命令を各々予め設定された固定データ長を
    扱う複数の基本マイクロ命令に分割して前記派生マイク
    ロ命令群とするようにした ことを特徴とするソフトウェ
    ア命令高速化方法。
  11. 【請求項11】 分割されて発行された派生マイクロ命
    令の冗長を検出するステップと、前記派生マイクロ命令
    の冗長が検出された時にその冗長な派生マイクロ命令を
    実行終了状態とするステップとを含むことを特徴とする
    請求項10記載のソフトウェア命令高速化方法。
  12. 【請求項12】 分割されて発行された派生マイクロ命
    令を保持するステップと、前記派生マイクロ命令の冗長
    が検出された時にその冗長な派生マイクロ命令を前記保
    持手段から削除する削除手段とを含むことを特徴とする
    請求項11記載のソフトウェア命令高速化方法。
JP10327385A 1998-11-18 1998-11-18 マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体 Expired - Fee Related JP3110404B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP10327385A JP3110404B2 (ja) 1998-11-18 1998-11-18 マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体
US09/440,134 US6502187B1 (en) 1998-11-18 1999-11-15 Pipeline computer dividing a variable-length data-handling instruction into fixed-length data-handling instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10327385A JP3110404B2 (ja) 1998-11-18 1998-11-18 マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体

Publications (2)

Publication Number Publication Date
JP2000148472A JP2000148472A (ja) 2000-05-30
JP3110404B2 true JP3110404B2 (ja) 2000-11-20

Family

ID=18198568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10327385A Expired - Fee Related JP3110404B2 (ja) 1998-11-18 1998-11-18 マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体

Country Status (2)

Country Link
US (1) US6502187B1 (ja)
JP (1) JP3110404B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039798B2 (en) * 2000-11-29 2006-05-02 Intel Corporation Method and apparatus to enable cross platform configuration
US6963961B1 (en) * 2001-07-09 2005-11-08 Lsi Logic Corporation Increasing DSP efficiency by independent issuance of store address and data
US20050232303A1 (en) * 2002-04-26 2005-10-20 Koen Deforche Efficient packet processing pipeline device and method
US20070283129A1 (en) * 2005-12-28 2007-12-06 Stephan Jourdan Vector length tracking mechanism
US8327115B2 (en) 2006-04-12 2012-12-04 Soft Machines, Inc. Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode
CN107368285B (zh) 2006-11-14 2020-10-09 英特尔公司 多线程架构
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US10228949B2 (en) 2010-09-17 2019-03-12 Intel Corporation Single cycle multi-branch prediction including shadow cache for early far branch prediction
GB2486738B (en) * 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
US9842005B2 (en) 2011-03-25 2017-12-12 Intel Corporation Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
CN103547993B (zh) 2011-03-25 2018-06-26 英特尔公司 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块
CN108108188B (zh) 2011-03-25 2022-06-28 英特尔公司 用于通过使用由可分区引擎实例化的虚拟核来支持代码块执行的存储器片段
CN107729267B (zh) 2011-05-20 2022-01-25 英特尔公司 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
WO2013077876A1 (en) 2011-11-22 2013-05-30 Soft Machines, Inc. A microprocessor accelerated code optimizer
KR101703401B1 (ko) 2011-11-22 2017-02-06 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
US9952840B2 (en) * 2012-05-15 2018-04-24 International Business Machines Corporation Conditional sequential selection of external reference resolutions
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
CN105210040B (zh) 2013-03-15 2019-04-02 英特尔公司 用于执行分组成块的多线程指令的方法
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
EP2972836B1 (en) 2013-03-15 2022-11-09 Intel Corporation A method for emulating a guest centralized flag architecture by using a native distributed flag architecture
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
JP5847781B2 (ja) * 2013-09-25 2016-01-27 シャープ株式会社 機器操作管理装置、遠隔操作システム、機器操作管理装置の制御方法、制御プログラム、端末装置
KR102200592B1 (ko) * 2019-01-02 2021-01-11 엘에스일렉트릭(주) Plc 명령어 스캔 분할 처리 방법
CN111813446A (zh) * 2019-04-12 2020-10-23 杭州中天微***有限公司 一种数据加载和存储指令的处理方法和处理装置
US11029953B2 (en) * 2019-06-26 2021-06-08 Intel Corporation Branch prediction unit in service of short microcode flows
US11748101B2 (en) * 2021-07-13 2023-09-05 Arm Limited Handling of single-copy-atomic load/store instruction with a memory access request shared by micro-operations

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4103329A (en) * 1976-12-28 1978-07-25 International Business Machines Corporation Data processing system with improved bit field handling
JPS5922142A (ja) 1982-07-27 1984-02-04 Nec Corp デ−タ処理装置
JP2554270B2 (ja) 1988-06-18 1996-11-13 富士通株式会社 情報処理装置
JPH02189633A (ja) 1989-01-18 1990-07-25 Nec Corp 情報処理装置
JPH05265755A (ja) 1992-03-24 1993-10-15 Nec Corp 並列命令実行方式
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor
US5822602A (en) * 1996-07-23 1998-10-13 S3 Incorporated Pipelined processor for executing repeated string instructions by halting dispatch after comparision to pipeline capacity
US5828875A (en) * 1997-05-29 1998-10-27 Telefonaktiebolaget Lm Ericsson Unroll of instructions in a micro-controller
US6032252A (en) * 1997-10-28 2000-02-29 Advanced Micro Devices, Inc. Apparatus and method for efficient loop control in a superscalar microprocessor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「インターフェース」、CQ出版社、平成10年3月1日、通巻249号、p99−p131

Also Published As

Publication number Publication date
JP2000148472A (ja) 2000-05-30
US6502187B1 (en) 2002-12-31

Similar Documents

Publication Publication Date Title
JP3110404B2 (ja) マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体
KR100592122B1 (ko) 가상 레지스터 번호들을 이용하여 논리적 레지스터 번호들을 물리적 레지스터 번호들로 맵핑시키도록 구성된 프로세서
KR100292300B1 (ko) 레지스터재명명시스템및방법
US5758051A (en) Method and apparatus for reordering memory operations in a processor
US6119223A (en) Map unit having rapid misprediction recovery
US6052776A (en) Branch operation system where instructions are queued until preparations is ascertained to be completed and branch distance is considered as an execution condition
US7769986B2 (en) Method and apparatus for register renaming
KR100335745B1 (ko) 고성능의 추론적인 오정렬 로드 연산
US6009509A (en) Method and system for the temporary designation and utilization of a plurality of physical registers as a stack
JPH10283181A (ja) プロセッサ内で命令を発行するための方法および装置
JP2000222207A (ja) コンピュ―タ処理システムにおけるロ―ド動作を順序変更する方法および装置
JP2003131871A (ja) コンピュータシステム
JP2002525742A (ja) 記憶からロードへの転送のための機構
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US6378062B1 (en) Method and apparatus for performing a store operation
JPH10283180A (ja) プロセッサ内で命令をディスパッチする方法および装置
US6463524B1 (en) Superscalar processor and method for incrementally issuing store instructions
EP0094535B1 (en) Pipe-line data processing system
US5930491A (en) Identification of related instructions resulting from external to internal translation by use of common ID field for each group
US6393546B1 (en) Physical rename register for efficiently storing floating point, integer, condition code, and multimedia values
US6625725B1 (en) Speculative reuse of code regions
JPH11282678A (ja) ス―パスカラ・プロセッサでストア命令を処理する方法及び装置
US6108771A (en) Register renaming with a pool of physical registers
US6230262B1 (en) Processor configured to selectively free physical registers upon retirement of instructions
US5872989A (en) Processor having a register configuration suited for parallel execution control of loop processing

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees