JP2571336B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP2571336B2
JP2571336B2 JP5025302A JP2530293A JP2571336B2 JP 2571336 B2 JP2571336 B2 JP 2571336B2 JP 5025302 A JP5025302 A JP 5025302A JP 2530293 A JP2530293 A JP 2530293A JP 2571336 B2 JP2571336 B2 JP 2571336B2
Authority
JP
Japan
Prior art keywords
instruction
variable length
instructions
start address
decoding
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 - Lifetime
Application number
JP5025302A
Other languages
English (en)
Other versions
JPH06161747A (ja
Inventor
チュアン チアオ−メイ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06161747A publication Critical patent/JPH06161747A/ja
Application granted granted Critical
Publication of JP2571336B2 publication Critical patent/JP2571336B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、2つ以上の命令を並行
して復号できるようにしたデータ処理装置に係る。
【0002】
【従来の技術】計算機プログラムを構成する一連の命令
は、計算機システム上で順次に実行されるのが普通であ
る。
【0003】計算機プログラムの実行速度を増すため
に、2つ以上の命令のグループを順次というよりはむし
ろ、並行して実行することができる。2つ以上の命令の
グループを並行して実行するには、当該2つ以上の命令
のグループを並行して復号しなければならない。2つ以
上の命令のグループを並行して復号するには、当該グル
ープ内の全ての命令の開始アドレスを決定しなければな
らない。
【0004】もし、計算機プログラム内の全ての命令が
同一の固定長形式のものであれば、一のグループ内の全
ての命令の開始アドレスは、当該グループ内の第1の命
令の開始アドレスに対し一定の関係を有することにな
る。他方、これらの命令が可変長形式のものであれば、
当該グループ内の先行命令の開始アドレス及び長さを決
定しない限り、当該グループ内の後続命令の開始アドレ
スを決定することができない。
【0005】
【発明が解決しようとする課題】本発明の目的は、連続
的な2つ以上の可変長命令のグループの読み取りと復号
とを並行して行うようにしたデータ処理装置を提供する
ことにある。
【0006】本発明の他の目的は、連続的な2つ以上の
可変長命令のグループの全体を復号するのに必要な時間
よりも短い時間内に、これらの命令の開始アドレスを決
定するようにしたデータ処理装置を提供することにあ
る。
【0007】
【課題を解決するための手段】本発明のデータ処理装置
は、複数のメモリ・ユニットを有するメモリ手段を備え
ている。各メモリ・ユニットは、一のアドレスを有す
る。少なくとも第1〜第3の命令が、連続的なアドレス
を有する複数のメモリ・ユニットに格納される。各命令
は、少なくとも1つのメモリ・ユニットを占有するとと
もに、一の開始アドレスを有する。
【0008】メモリ手段は、少なくとも第1〜第3の読
み取りポートを有する。各読み取りポートは、一の命令
の開始アドレスを受け取り、当該命令の少なくとも一部
をメモリ手段から読み取る。
【0009】また、本発明のデータ処理装置は、第1の
命令の開始アドレスを第1の読み取りポートに供給する
ための、次の命令ポインタを備えている。次の命令ポイ
ンタは、第1の読み取りポートから第1の命令を受け取
るとともに、第1の命令が占有するメモリ・ユニットの
数を復号する。この情報に基づいて、次の命令ポインタ
は、第2の命令の開始アドレスを決定し、当該開始アド
レスを第1の読み取りポートに供給するとともに、第1
の読み取りポートから第2の命令を受け取る。第2の命
令が占有するメモリ・ユニットの数を復号すると、第3
の命令の開始アドレスを決定することができる。次の命
令ポインタは、これらの動作の全てを1サイクル時間内
に実行する。
【0010】また、本発明のデータ処理装置は、次の命
令ポインタから少なくとも第2及び第3の命令の開始ア
ドレスを受け取るとともに、これらの開始アドレスを格
納するための、命令ポインタ待ち行列を備えている。次
に、これらの第2及び第3の命令の開始アドレスは、メ
モリ手段から第2及び第3の命令の少なくとも一部を同
時に読み取るために、命令ポインタ待ち行列から第2及
び第3の読み取りポートに供給される。
【0011】次の命令ポインタは、一の開始アドレスに
おいて開始する処の一の命令が占有するメモリ・ユニッ
トの数のみを復号するための長さ復号器と、当該命令の
長さを当該命令の開始アドレスに加算して次の命令の開
始アドレスを決定するための加算手段とから成る。
【0012】メモリ手段は、複数のメモリ・ユニットを
有する一の先取りバッファを含むように構成することが
できる。先取りバッファ内の諸命令の開始アドレスを受
け取って、当該命令の少なくとも一部を先取りバッファ
から読み取るために、第1〜第3のマルチプレクサを設
けることができる。
【0013】また、メモリ手段からの第2の命令を受け
取るとともに、第2の命令の全体を復号するための、第
1の命令復号器を設けることができる。これに加えて、
メモリ手段からの第3の命令を受け取るとともに、第3
の命令の全体を復号するための、第2の命令復号器も設
けることができる。
【0014】第1及び第2の命令復号器は、少なくとも
1サイクル時間内にそれぞれの命令を復号する。第1及
び第2の命令復号器は、それぞれの命令の全体を同時に
復号することが好ましい。
【0015】また、第1及び第2の命令復号器のうち少
なくとも1つの命令復号器が一の命令を復号しているの
と同時に、次の命令ポインタが当該命令に後続する少な
くとも2つの命令の開始アドレスを決定することが好ま
しい。
【0016】メモリ手段の各読み取りポートは、一のマ
ルチプレクサを含むように構成することができる。
【0017】各メモリ・ユニットは、1バイト(8ビッ
ト)幅であることが好ましい。命令の各々は、可変数の
メモリ・ユニットを占有する。
【0018】3つの読み取りポートを有するメモリ手段
を、次の命令ポインタ及び命令ポインタ待ち行列と組み
合わせると、連続的な2つ以上の可変長命令のグループ
の読み取りと復号を並行して行うことができる。
【0019】
【実施例】図1には、連続的な2つの可変長命令のグル
ープをメモリ手段10から同時に読み取るための、本発
明のデータ処理装置の概略構成が示されている。図示の
ように、このデータ処理装置は、複数のメモリ・ユニッ
トを有するメモリ手段10を備えている。例えば、各メ
モリ・ユニットは、1バイト(8ビット)の幅を有す
る。メモリ手段10内の各メモリ・ユニットは、一のア
ドレスを有する。
【0020】少なくとも第1〜第3の命令が、連続的な
アドレスを有する複数のメモリ・ユニットに格納され
る。各命令は、メモリ手段10内の少なくとも1つのメ
モリ・ユニットを占有するとともに、一の開始アドレス
を有する。
【0021】或る例では、メモリ手段10をメモリ・ユ
ニットの複数のページに分割するとともに、各ページを
メモリ・ユニットの複数のライン(ブロック)に分割す
ることができる。この例の場合、一のメモリ・ユニット
のアドレスを一意的に指定するには、当該メモリ・ユニ
ットが含まれているページ番号と、当該メモリ・ユニッ
トが含まれているライン番号と、当該ライン内の当該メ
モリ・ユニットの位置(即ち、ライン・オフセット)を
識別すればよい。もし、各ラインが32バイトを含んで
いれば、このライン・オフセットを当該アドレスの最下
位5ビットによって指定することができる。
【0022】メモリ手段10は、少なくとも第1〜第3
の読み取りポート12、14及び16を有する。各読み
取りポートは、一の命令の開始アドレスを受け取るとと
もに、メモリ手段10から当該命令の少なくとも一部を
読み取る。
【0023】本発明のデータ処理装置は、第1の命令の
開始アドレスを第1の読み取りポート12に供給すると
ともに、第1の読み取りポート12から第1の命令を受
け取るための、次の命令ポインタ18を備えている。次
の命令ポインタ18は、第1の命令が占有するメモリ・
ユニットの数を復号し、第2の命令の開始アドレスを決
定するとともに、第2の命令の開始アドレスを第1の読
み取りポート12に供給する。第2の命令を第1の読み
取りポート12から受け取ると、第2の命令が占有する
メモリ・ユニットの数を復号して、第3の命令の開始ア
ドレスを決定することができる。次の命令ポインタ18
は、これらの動作の全てを1サイクル時間内に実行す
る。
【0024】命令ポインタ待ち行列20は、次の命令ポ
インタ18から少なくとも第2及び第3の命令の開始ア
ドレスを受け取るとともに、これらの開始アドレスを格
納する。命令ポインタ待ち行列20は、メモリ手段10
から第2及び第3の命令の少なくとも一部を同時に読み
取るために、第2及び第3の命令の開始アドレスを第2
及び第3の読み取りポート14及び16に供給する。
【0025】図2には、本発明のデータ処理装置の一層
詳細な構成が示されている。この構成において、メモリ
手段10は、セット・アソシアティブ型のマッピング方
式を用いたキャッシュ22と、先取りバッファ24と、
マルチプレクサ26、28、30及び32から構成され
ている。
【0026】キャッシュ22内に含まれている複数の列
の各々は、例えば、4つのキャッシュ・ラインから成る
1つのセット(キャッシュ・ライン当たり32バイト、
従ってセット当たり128バイト)に対応する。各キャ
ッシュ・ラインは、ページ番号で以て索引することがで
きる。従って、キャッシュ22内の各バイトは、ベージ
番号と、キャッシュ・ライン番号と、ライン・オフセッ
トによってアドレスすることができる。
【0027】先取りバッファ24の大きさは、キャッシ
ュ22内の1ラインと同じ大きさであることが好まし
い。一のキャッシュ・ラインがキャッシュ22から先取
りバッファ24にロードされる場合、ページ番号及びキ
ャッシュ・ライン番号を用いて先取りバッファ24を索
引することができる。先取りバッファ24内の各バイト
のライン・オフセットは、キャッシュ22内のバイトの
ライン・オフセットと同じである。
【0028】キャッシュ22及び先取りバッファ24
は、静的ランダム・アクセス・メモリ(SRAM)又は
レジスタから構成することができる。
【0029】キャッシュ22からの連続的な2つのキャ
ッシュ・ラインを保持するために、2つの先取りバッフ
ァを設けることが好ましい。(各キャッシュ・ラインが
32バイトから成る場合)各先取りバッファを32バイ
トの1列から構成することが可能であるが、実際には、
各先取りバッファを8列(列当たり4バイト)から構成
することが好ましい。
【0030】マルチプレクサ26、28、30及び32
は、メモリ手段10の複数の読み取りポートを形成す
る。各マルチプレクサは、先取りバッファ24の幅(例
えば、32バイト)と同じ幅を有し、一の開始アドレス
を受け取り且つ先取りバッファ24から読み取るために
当該開始アドレスから開始する連続的なバイトの数を選
択するための、一のアドレス復号器を含んでいる。も
し、先取りバッファ24内に32バイトが存在すれば、
各マルチプレクサは、5ビットのオフセット・アドレス
を受け取る。もし、2つの先取りバッファが設けられて
いれば、各マルチプレクサは、5ビットのオフセット・
アドレス及びこれらの2つの先取りバッファのうち1つ
を選択するための1ビットから成る処の、6ビットのア
ドレスを受け取る。
【0031】この例の場合、マルチプレクサ26及び2
8の各々は、一の命令の長さを決定するのに十分な数の
バイトを、メモリ手段10から読み取る。マルチプレク
サ30及び32の各々は、この命令の全体を復号するの
に十分な数のバイトを、メモリ手段10から読み取る。
【0032】次の命令ポインタ18(図1)は、図2に
示されている長さ復号器34及び36並びに加算器38
及び40から構成することができる。長さ復号器34及
び36の各々は、関連するマルチプレクサ26及び28
に供給される開始アドレスにおいて開始する命令が占有
する処の、メモリ・ユニットの数のみを復号するに過ぎ
ない。加算手段38及び40は、次の命令の開始アドレ
スを決定するために、この命令の長さをこの命令の開始
アドレスに加算する。
【0033】計算機プログラムを開始するか、又は一の
分岐を検出する際、第1の命令の開始アドレスがバス4
2上に供給される。バス42上の当該開始アドレスを、
(例えば、オペレーティング・システムの制御下で)マ
ルチプレクサ44によって選択して、これをラッチ46
に格納することができる。次に、この第1の命令の開始
アドレスは、マルチプレクサ26及び加算器38に供給
される。マルチプレクサ26は、先取りバッファ24か
らの第1の命令を長さ復号器34に供給し、一方、長さ
復号器34は、第1の命令が占有するメモリ・ユニット
の数を復号して、このメモリ・ユニットの数を加算器3
8に供給する。加算器38は、第1の命令の長さを第1
の命令の開始アドレスに加算して、第2の命令の開始ア
ドレスを決定する。
【0034】第2の命令の開始アドレスは、加算器38
からマルチプレクサ28及び加算器40に供給される。
マルチプレクサ28は、先取りバッファ24からの第2
の命令を長さ復号器36に供給し、一方、長さ復号器3
6は、第2の命令が占有するメモリ・ユニットの数を復
号して、このメモリ・ユニットの数を加算器40に供給
する。加算器40は、第3の命令の開始アドレスを決定
するために、第2の命令の長さを第2の命令の開始アド
レスに加算する。
【0035】加算器38が、第2の命令の開始アドレス
を命令ポインタ待ち行列20に供給するのに対し、加算
器40は、第3の命令の開始アドレスを命令ポインタ待
ち行列20に供給する。命令ポインタ待ち行列20は、
これらの開始アドレスを受け取って、これを受け取り順
に格納する。
【0036】命令ポインタ待ち行列20は、先入れ先出
し式のレジスタ・スタック、又は2つの入力ポート及び
2つの出力ポートを有するランダム・アクセス・メモリ
とすることができる。
【0037】命令ポインタ待ち行列20は、先入れ先出
し式の順序で、第2及び第3の命令の開始アドレスをマ
ルチプレクサ48及び50に供給し、そしてマルチプレ
クサ48及び50は、分岐が検出されないことを条件と
して、第2及び第3の命令の開始アドレスをマルチプレ
クサ30及び32にそれぞれ供給する。マルチプレクサ
30及び32は、メモリ手段10から第2及び第3の命
令の少なくとも一部を同時に読み取る。
【0038】マルチプレクサ30及び32は、2つの命
令を第1及び第2の命令復号器52及び54に同時に供
給することが好ましい。これらの命令復号器52及び5
4の各々は、受け取った命令の全体を復号する。復号済
みの命令は、命令待ち行列56及び58に供給される。
命令待ち行列56が、メモリ動作命令を含むことがある
のに対し、命令待ち行列58は、レジスタ間命令を含む
ことがある。
【0039】もし、一の命令の長さが、マルチプレクサ
30及び32から1サイクルの間に読み取り可能なバイ
トの数(例えば、4バイト)よりも大きいか、又は命令
復号器52若しくは54によって1サイクルの間に復号
可能なバイトの数よりも大きいのであれば、第1又は第
2の命令復号器52又は54は、第2の復号サイクルの
間に当該命令の復号を継続することになる。この第2の
復号サイクルの間、第1又は第2の命令復号器52又は
54は、命令ポインタ待ち行列20内の次の命令のアド
レスの代わりに、元の命令アドレスと以前に処理された
バイトの数(例えば、4バイト)とを加えたものに等し
い一のアドレスにおいて開始する処の、一連のバイトに
ついて処理を行うことになる。
【0040】復号済みの命令は、分岐アドレス発生器6
0及び62にも供給される。分岐アドレス発生器62
は、マルチプレクサ50から受け取った命令の開始アド
レス及び命令復号器54から受け取った復号済みの命令
に応答して、一の分岐(目標)アドレスをラッチ64に
供給する。もし、一の分岐を検出すれば、マルチプレク
サ50は、ラッチ64からの分岐アドレスを選択して、
これを次のサイクルの間にマルチプレクサ30に供給す
る。
【0041】同様に、分岐アドレス発生器60は、マル
チプレクサ48から受け取った命令の開始アドレス及び
第1の命令復号器52から受け取った復号済みの命令に
応答して、一の分岐アドレスをラッチ66に供給する。
もし、一の分岐を検出すれば、マルチプレクサ48は、
ラッチ66からの分岐アドレスを選択して、これを次の
サイクルの間にマルチプレクサ32に供給する。
【0042】一の分岐を検出する場合、命令ポインタ待
ち行列20がクリアされ、長さ復号器34及び36が初
期化され、そしてバス42に供給される当該分岐アドレ
スがマルチプレクサ44によって選択される。その後、
命令長の復号が、前述のようにして行われる。
【0043】もし、この分岐アドレスが、先取りバッフ
ァ24に保持されているキャッシュ・ラインの範囲外に
あれば、当該分岐アドレスを含むキャッシュ・ライン
が、キャッシュ22から先取りバッファ24にロードさ
れる。
【0044】他方、分岐を検出しなければ、マルチプレ
クサ44は、加算器40からの開始アドレスを選択し
て、これをラッチ46に格納する。次のサイクルの間、
前述のように、ラッチ46からの開始アドレスがマルチ
プレクサ26に供給され、次の2つの命令の開始アドレ
スが復号された後、命令ポインタ待ち行列20に格納さ
れる。
【0045】第1及び第2の命令復号器52及び54の
遊休時間を最小にするために、少なくとも長さ復号器3
4及び36並びに加算器38及び40が2つの命令の開
始アドレスを命令ポインタ待ち行列20に供給する時間
内に(即ち、少なくとも1サイクル時間内に)、第1及
び第2の命令復号器52及び54の各々は一の命令を復
号する。復号中の命令に後続する少なくとも2つの命令
の開始アドレスを次の命令ポインタ18が決定するのと
同時に、第1及び第2の命令復号器52及び54の各々
が一の命令を復号するのが好ましい。
【0046】或る例では、本発明のデータ処理装置を使
用して、インテル社の80386型マイクロプロセッサ
用の命令セットに属する処の、連続的な2つ以上の可変
長命令のグループを同時に読み取ることができる。この
場合、命令長は、1〜15バイトである。一の命令の長
さは、当該命令の最初の4バイトから決定することがで
きる。
【0047】図3には、80386型マイクロプロセッ
サの命令セット用の長さ復号器の1例が示されている。
この長さ復号器は、一の命令の第1〜第4バイト68、
70、72及び74を受け取る。第1バイト68及び第
2バイト70は、第1バイトの長さ復号器76及び第2
バイトの長さ復号器78にそれぞれ供給される。第1バ
イトの長さ復号器76の出力及び第2バイト70は、追
加の処理のために特殊ケースの長さ復号器80に供給さ
れる。第2バイトの長さ復号器78及び特殊ケースの長
さ復号器80のそれぞれの出力は、マルチプレクサ82
に供給される。マルチプレクサ82は、第1バイト68
から一の制御信号を生成するコントローラ84からの制
御信号に基づいて、第2バイトの長さ復号器78又は特
殊ケースの長さ復号器80の何れかの出力を選択する。
【0048】第2バイト70及び第3バイト72は、マ
ルチプレクサ86に供給され、そしてマルチプレクサ8
6は、コントローラ84からの制御信号に基づいて、第
2バイト70又は第3バイト72の何れかを追加の長さ
復号器88に送る。また、追加の長さ復号器88は、第
4バイト74からのビット5〜7を受け取って、追加の
長さ信号をANDゲート90に出力する。追加の長さ復
号器88からの追加の長さ信号は、ANDゲート90に
おいて、第1バイトの長さ復号器76からの出力と論理
積される。ANDゲート90の出力及びマルチプレクサ
82の出力は、加算器92で加算されて、当該命令の長
さ信号を与える。
【0049】長さ信号及び制御信号を生成するための命
令バイト内のビットの解釈は、インテル社から発行され
たマニュアルである "Intel 80386 Programmer's Refer
enceManual"(1986 年)の第17章に記載されている。
【0050】80386型マイクロプロセッサ用の命令
セットの場合、その幾つかの命令は、当該命令に先行す
る処のプレフィックス(接頭)バイトを含んでいる。こ
れらのプレフィックス・バイトを処理していることを長
さ復号器34又は36が認識する場合、加算器38又は
40が生成する開始アドレスは、次のマルチプレクサ2
6又は28に送られるが、命令ポインタ待ち行列20に
は格納されない。
【0051】
【発明の効果】本発明は上記のように構成されているの
で、連続的な2つ以上の可変長命令のグループを同時に
読み取り且つ復号することができる。
【図面の簡単な説明】
【図1】連続的な2つの可変長命令のグループをメモリ
から同時に読み取るための、本発明のデータ処理装置の
構成を示すブロック図である。
【図2】連続的な2つの可変長命令のグループを同時に
読み取り且つ復号するための、本発明のデータ処理装置
の構成を示すブロック図である。
【図3】本発明のデータ処理装置で使用するための長さ
復号器の構成を示すブロック図である。
【符号の説明】
10 メモリ手段 12 読み取りポート 14 読み取りポート 16 読み取りポート 18 次の命令ポインタ 20 命令ポインタ待ち行列

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 各々が最小の可変長命令の長さと等しい
    幅をそれぞれ有する複数のメモリ・ユニットから構成さ
    れ且つ少なくとも第1〜第3の読み取りポート手段を有
    するメモリ手段を備え、 前記メモリ・ユニットの各々が一のアドレスを有し、少
    なくとも第1〜第3の可変長命令が連続的なアドレスを
    有する複数の前記メモリ・ユニット内に格納され、前記
    可変長命令の各々が少なくとも1つの前記メモリ・ユニ
    ットを占有するとともに、一の開始アドレスを有し、前
    記読み取りポート手段の各々が一の可変長命令の開始ア
    ドレスを受け取るとともに、前記メモリ手段から当該可
    変長命令の少なくとも一部分を読み取るように構成され
    ており、 前記第1の可変長命令の開始アドレスを前記第1の読み
    取りポート手段に供給し、前記第1の読み取りポート手
    段から前記第1の可変長命令を受け取り、前記第1の可
    変長命令が占有する前記メモリ・ユニットの数を復号
    し、前記第2の可変長命令の開始アドレスを決定し、前
    記第2の可変長命令の開始アドレスを前記第1の読み取
    りポート手段に供給し、前記第1の読み取りポート手段
    から前記第2の可変長命令のうち少なくとも当該第2の
    可変長命令の長さを決定するのに十分な部分を受け取
    り、前記第2の可変長命令が占有する前記メモリ・ユニ
    ットの数を復号し、前記第3の可変長命令の開始アドレ
    スを決定するという動作の全てを1サイクル時間内に行
    うための次の命令ポインタ手段を備え、 前記次の命令ポインタ手段が、一の開始アドレスにおい
    て開始する一の可変長命令が占有する前記メモリ・ユニ
    ットの数のみを復号するための長さ復号手段と、当該可
    変長命令の長さを当該可変長命令の当該開始アドレスに
    加算して次の可変長命令の開始アドレスを決定するため
    の加算手段から構成されており、 更に、前記次の命令ポインタ手段から少なくとも前記第
    2及び第3の可変長命令の開始アドレスを受け取り、少
    なくとも前記第2及び第3の可変長命令の開始アドレス
    を格納するとともに、前記メモリ手段から前記第2及び
    第3の可変長命令のうち少なくとも当該第2及び第3の
    可変長命令の全体を復号するのに十分な部分を同時に読
    み取るために、前記第2及び第3の可変長命令の開始ア
    ドレスを前記第2及び第3の読み取りポート手段にそれ
    ぞれ供給するための命令ポインタ待ち行列手段と、 前記第2の読み取りポート手段から前記第2の可変長命
    令のうち少なくとも当該第2の可変長命令の全体を復号
    するのに十分な部分を受け取るとともに、当該第2の可
    変長命令を復号するための第1の命令復号手段と、 前記第3の読み取りポート手段から前記第3の可変長命
    令のうち少なくとも当該第3の可変長命令の全体を復号
    するのに十分な部分を受け取るとともに、当該第3の可
    変長命令を復号するための第2の命令復号手段とを備
    え、 前記第1又は第2の命令復号手段が前記第2又は第3の
    可変長命令を復号するのと同時に、前記次の命令ポイン
    タ手段が当該第2又は第3の可変長命令に後続する少な
    くとも2つの可変長命令の開始アドレスを決定するよう
    にしたことを特徴とする、データ処理装置。
JP5025302A 1992-04-09 1993-02-15 データ処理装置 Expired - Lifetime JP2571336B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US866766 1992-04-09
US07/866,766 US5371864A (en) 1992-04-09 1992-04-09 Apparatus for concurrent multiple instruction decode in variable length instruction set computer

Publications (2)

Publication Number Publication Date
JPH06161747A JPH06161747A (ja) 1994-06-10
JP2571336B2 true JP2571336B2 (ja) 1997-01-16

Family

ID=25348357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5025302A Expired - Lifetime JP2571336B2 (ja) 1992-04-09 1993-02-15 データ処理装置

Country Status (2)

Country Link
US (1) US5371864A (ja)
JP (1) JP2571336B2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2542653B2 (ja) * 1987-12-10 1996-10-09 ファナック株式会社 非接触倣い方法
US5859994A (en) * 1992-08-10 1999-01-12 Intel Corporation Apparatus and method for modifying instruction length decoding in a computer processor
US5485629A (en) * 1993-01-22 1996-01-16 Intel Corporation Method and apparatus for executing control flow instructions in a control flow pipeline in parallel with arithmetic instructions being executed in arithmetic pipelines
US5717908A (en) * 1993-02-25 1998-02-10 Intel Corporation Pattern recognition system using a four address arithmetic logic unit
US5825921A (en) * 1993-03-19 1998-10-20 Intel Corporation Memory transfer apparatus and method useful within a pattern recognition system
US5673427A (en) * 1994-03-01 1997-09-30 Intel Corporation Packing valid micro operations received from a parallel decoder into adjacent locations of an output queue
US5600806A (en) * 1994-03-01 1997-02-04 Intel Corporation Method and apparatus for aligning an instruction boundary in variable length macroinstructions with an instruction buffer
US5537629A (en) * 1994-03-01 1996-07-16 Intel Corporation Decoder for single cycle decoding of single prefixes in variable length instructions
US5608885A (en) * 1994-03-01 1997-03-04 Intel Corporation Method for handling instructions from a branch prior to instruction decoding in a computer which executes variable-length instructions
US5581717A (en) * 1994-03-01 1996-12-03 Intel Corporation Decoding circuit and method providing immediate data for a micro-operation issued from a decoder
US5630083A (en) * 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5668985A (en) * 1994-03-01 1997-09-16 Intel Corporation Decoder having a split queue system for processing intstructions in a first queue separate from their associated data processed in a second queue
US5586277A (en) * 1994-03-01 1996-12-17 Intel Corporation Method for parallel steering of fixed length fields containing a variable length instruction from an instruction buffer to parallel decoders
US5758116A (en) * 1994-09-30 1998-05-26 Intel Corporation Instruction length decoder for generating output length indicia to identity boundaries between variable length instructions
US6006324A (en) 1995-01-25 1999-12-21 Advanced Micro Devices, Inc. High performance superscalar alignment unit
US5819057A (en) * 1995-01-25 1998-10-06 Advanced Micro Devices, Inc. Superscalar microprocessor including an instruction alignment unit with limited dispatch to decode units
US5867701A (en) * 1995-06-12 1999-02-02 Intel Corporation System for inserting a supplemental micro-operation flow into a macroinstruction-generated micro-operation flow
JP2931890B2 (ja) * 1995-07-12 1999-08-09 三菱電機株式会社 データ処理装置
WO1997013192A1 (en) * 1995-10-06 1997-04-10 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US5809273A (en) * 1996-01-26 1998-09-15 Advanced Micro Devices, Inc. Instruction predecode and multiple instruction decode
US5864704A (en) * 1995-10-10 1999-01-26 Chromatic Research, Inc. Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction
US5872947A (en) * 1995-10-24 1999-02-16 Advanced Micro Devices, Inc. Instruction classification circuit configured to classify instructions into a plurality of instruction types prior to decoding said instructions
US5815724A (en) * 1996-03-29 1998-09-29 Intel Corporation Method and apparatus for controlling power consumption in a microprocessor
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5867680A (en) * 1996-07-24 1999-02-02 Advanced Micro Devices, Inc. Microprocessor configured to simultaneously dispatch microcode and directly-decoded instructions
US6049863A (en) * 1996-07-24 2000-04-11 Advanced Micro Devices, Inc. Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor
US5796998A (en) * 1996-11-21 1998-08-18 International Business Machines Corporation Apparatus and method for performing branch target address calculation and branch prediciton in parallel in an information handling system
US5890009A (en) * 1996-12-12 1999-03-30 International Business Machines Corporation VLIW architecture and method for expanding a parcel
US5805850A (en) * 1997-01-30 1998-09-08 International Business Machines Corporation Very long instruction word (VLIW) computer having efficient instruction code format
US5859992A (en) * 1997-03-12 1999-01-12 Advanced Micro Devices, Inc. Instruction alignment using a dispatch list and a latch list
JP3790607B2 (ja) * 1997-06-16 2006-06-28 松下電器産業株式会社 Vliwプロセッサ
US5870578A (en) * 1997-12-09 1999-02-09 Advanced Micro Devices, Inc. Workload balancing in a microprocessor for reduced instruction dispatch stalling
US6170050B1 (en) 1998-04-22 2001-01-02 Sun Microsystems, Inc. Length decoder for variable length data
US6237101B1 (en) 1998-08-03 2001-05-22 International Business Machines Corporation Microprocessor including controller for reduced power consumption and method therefor
US6292845B1 (en) 1998-08-26 2001-09-18 Infineon Technologies North America Corp. Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
US6192465B1 (en) * 1998-09-21 2001-02-20 Advanced Micro Devices, Inc. Using multiple decoders and a reorder queue to decode instructions out of order
JP3490007B2 (ja) * 1998-12-17 2004-01-26 富士通株式会社 命令制御装置
US6438664B1 (en) 1999-10-27 2002-08-20 Advanced Micro Devices, Inc. Microcode patch device and method for patching microcode using match registers and patch routines
SE9904685D0 (sv) * 1999-12-17 1999-12-17 Switchcore Ab A programmable packet decoder
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
US6948004B2 (en) * 2001-03-28 2005-09-20 Intel Corporation Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
US7248593B2 (en) * 2001-09-25 2007-07-24 Intel Corporation Method and apparatus for minimizing spinlocks and retaining packet order in systems utilizing multiple transmit queues
US7039061B2 (en) * 2001-09-25 2006-05-02 Intel Corporation Methods and apparatus for retaining packet order in systems utilizing multiple transmit queues
US20060174089A1 (en) * 2005-02-01 2006-08-03 International Business Machines Corporation Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
JP2007122626A (ja) * 2005-10-31 2007-05-17 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US11204768B2 (en) 2019-11-06 2021-12-21 Onnivation Llc Instruction length based parallel instruction demarcator

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6049332B2 (ja) * 1977-01-31 1985-11-01 株式会社東芝 マイクロプログラム制御方式
US4131941A (en) * 1977-08-10 1978-12-26 Itek Corporation Linked microprogrammed plural processor system
JPS5931734B2 (ja) * 1977-10-25 1984-08-03 デイジタル イクイプメント コ−ポレ−シヨン 特別のオペランド指定子を持つた命令を実行する中央処理装置
US4189768A (en) * 1978-03-16 1980-02-19 International Business Machines Corporation Operand fetch control improvement
US4236206A (en) * 1978-10-25 1980-11-25 Digital Equipment Corporation Central processor unit for executing instructions of variable length
US4335277A (en) * 1979-05-07 1982-06-15 Texas Instruments Incorporated Control interface system for use with a memory device executing variable length instructions
US4370729A (en) * 1980-03-21 1983-01-25 Point 4 Data Corporation Microprogram sequencer
US4554627A (en) * 1980-04-25 1985-11-19 Data General Corporation Data processing system having a unique micro-sequencing system
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4530050A (en) * 1981-08-26 1985-07-16 Hitachi, Ltd. Central processing unit for executing instructions of variable length having end information for operand specifiers
US4654781A (en) * 1981-10-02 1987-03-31 Raytheon Company Byte addressable memory for variable length instructions and data
US4439827A (en) * 1981-12-28 1984-03-27 Raytheon Company Dual fetch microsequencer
JPS58176751A (ja) * 1982-04-09 1983-10-17 Hitachi Ltd 命令語解読ユニツト
US4812971A (en) * 1983-10-03 1989-03-14 Digital Equipment Corporation Central processing unit for a digital computer
US4714994A (en) * 1985-04-30 1987-12-22 International Business Machines Corp. Instruction prefetch buffer control
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
JPS6391739A (ja) * 1986-10-06 1988-04-22 Matsushita Electric Ind Co Ltd 可変長命令解読装置
US4821183A (en) * 1986-12-04 1989-04-11 International Business Machines Corporation A microsequencer circuit with plural microprogrom instruction counters
JP2675779B2 (ja) * 1987-01-12 1997-11-12 沖電気工業株式会社 命令解読装置
US5202967A (en) * 1988-08-09 1993-04-13 Matsushita Electric Industrial Co., Ltd. Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction
JPH0769800B2 (ja) * 1989-02-07 1995-07-31 松下電器産業株式会社 データ処理装置
JPH0774992B2 (ja) * 1988-08-09 1995-08-09 松下電器産業株式会社 データ処理装置
JP2810068B2 (ja) * 1988-11-11 1998-10-15 株式会社日立製作所 プロセッサシステム、コンピュータシステム及び命令処理方法
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
KR940003383B1 (ko) * 1989-08-28 1994-04-21 니뽄 덴끼 가부시끼가이샤 파이프라인 처리 방식으로 동작하는 프리디코더 유니트 및 주 디코더 유니트를 구비한 마이크로프로세서
US5241637A (en) * 1990-01-05 1993-08-31 Motorola, Inc. Data processor microsequencer having multiple microaddress sources and next microaddress source selection
JP2772100B2 (ja) * 1990-03-06 1998-07-02 株式会社東芝 並列命令フェッチ機構

Also Published As

Publication number Publication date
US5371864A (en) 1994-12-06
JPH06161747A (ja) 1994-06-10

Similar Documents

Publication Publication Date Title
JP2571336B2 (ja) データ処理装置
US5819058A (en) Instruction compression and decompression system and method for a processor
US5881302A (en) Vector processing unit with reconfigurable data buffer
US5680631A (en) Data processor with on-chip cache memory and purge controller responsive to external signal for controlling access to the cache memory
JP3641031B2 (ja) 命令装置
US6684319B1 (en) System for efficient operation of a very long instruction word digital signal processor
US5206945A (en) Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
EP0279189A2 (en) Storage system
JP2571682B2 (ja) 情報処理装置
US4853889A (en) Arrangement and method for speeding the operation of branch instructions
KR100284784B1 (ko) 메모리 데이터 처리 시스템 및 방법과 이건 시스템을 구비하는 통신 시스템
US6922767B2 (en) System for allowing only a partial value prediction field/cache size
EP0270873A2 (en) Single ALU computer system
JP2778623B2 (ja) プリフェッチ制御装置
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JP2881023B2 (ja) 命令バッファ構成方式
JPH10111798A (ja) 情報処理装置
JPH0540622A (ja) デジタル信号処理装置
JPH0648470B2 (ja) 多重仮想アドレス空間制御装置
JPH06332701A (ja) 情報処理装置
JPH1055303A (ja) メモリシステム
JPH0756734A (ja) マイクロプロセッサ及びその制御方法
JPS6319042A (ja) 命令先取り方法
JPS6126151A (ja) バツフア制御方式
JPS63280355A (ja) 情報処理装置