JPH06161747A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH06161747A JPH06161747A JP5025302A JP2530293A JPH06161747A JP H06161747 A JPH06161747 A JP H06161747A JP 5025302 A JP5025302 A JP 5025302A JP 2530293 A JP2530293 A JP 2530293A JP H06161747 A JPH06161747 A JP H06161747A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory
- instructions
- address
- start address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation 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)
Abstract
(57)【要約】
【目的】 2つ以上の隣接した可変長命令の群をメモリ
から同時に読み出し且つ並行して復号化する。 【構成】 メモリ手段10は少なくとも第1、第2、及
び第3の隣接した命令を格納し、また開始アドレスを受
信してメモリ10から命令を読み出すための少なくとも
第1、第2、第3のリードポート12、14、16を有
する。次の命令のポインタ18は第1の命令の開始アド
レスを第1のリードポート12に供給し、第1の命令長
を復号化し、第2の命令の開始アドレスを決定し、第2
の命令の開始アドレスを第1のリードポート12に供給
し、第2の命令を受信し、第2の命令長を復号化し、第
3の命令の開始アドレスを決定する。これらはすべて1
サイクル時間で実行される。命令ポインタ待ち行列20
は少なくとも第2と第3の命令の開始アドレスを受信且
つ格納し、第2と第3の命令をメモリから同時に読み出
すために第2、第3のリードポート14、16に開始ア
ドレスを供給する。
から同時に読み出し且つ並行して復号化する。 【構成】 メモリ手段10は少なくとも第1、第2、及
び第3の隣接した命令を格納し、また開始アドレスを受
信してメモリ10から命令を読み出すための少なくとも
第1、第2、第3のリードポート12、14、16を有
する。次の命令のポインタ18は第1の命令の開始アド
レスを第1のリードポート12に供給し、第1の命令長
を復号化し、第2の命令の開始アドレスを決定し、第2
の命令の開始アドレスを第1のリードポート12に供給
し、第2の命令を受信し、第2の命令長を復号化し、第
3の命令の開始アドレスを決定する。これらはすべて1
サイクル時間で実行される。命令ポインタ待ち行列20
は少なくとも第2と第3の命令の開始アドレスを受信且
つ格納し、第2と第3の命令をメモリから同時に読み出
すために第2、第3のリードポート14、16に開始ア
ドレスを供給する。
Description
【0001】
【産業上の利用分野】本発明は2つ以上の命令が並行し
て復号化されるコンピュータに関する。
て復号化されるコンピュータに関する。
【0002】
【従来の技術】概して、コンピュータプログラムは一連
の命令から成る。命令は通常、コンピュータシステム上
で順次(一度に一つずつ)実行される。
の命令から成る。命令は通常、コンピュータシステム上
で順次(一度に一つずつ)実行される。
【0003】コンピュータプログラムの実行速度を増す
ために、2つ以上の命令から成る群を逐次的(直列的
に)というよりはむしろ、同時に(並行して)実行する
ことが考えられ得る。2つ以上の命令から成る群を並行
して実行するためには、その2つ以上の命令から成る群
を最初に並行して復号化する必要がある。2つ以上の命
令から成る群を並行して復号化するには、その群内の命
令のすべての開始アドレスを決定しなければならない。
ために、2つ以上の命令から成る群を逐次的(直列的
に)というよりはむしろ、同時に(並行して)実行する
ことが考えられ得る。2つ以上の命令から成る群を並行
して実行するためには、その2つ以上の命令から成る群
を最初に並行して復号化する必要がある。2つ以上の命
令から成る群を並行して復号化するには、その群内の命
令のすべての開始アドレスを決定しなければならない。
【0004】コンピュータプログラムにおける命令のす
べてが同一の固定長を有する場合、群内のすべての命令
の開始アドレスは、その群の第1の命令の開始アドレス
に対して一定の関係を示すことになる。しかしながら、
命令が可変長を有する場合、群内の前の命令の開始アド
レスと長さとはともに、群内の次の命令の開始アドレス
が得られる前に決定されなければならない。
べてが同一の固定長を有する場合、群内のすべての命令
の開始アドレスは、その群の第1の命令の開始アドレス
に対して一定の関係を示すことになる。しかしながら、
命令が可変長を有する場合、群内の前の命令の開始アド
レスと長さとはともに、群内の次の命令の開始アドレス
が得られる前に決定されなければならない。
【0005】
【発明が解決しようとする課題】本発明の目的は、2つ
以上の隣接した可変長命令の群を同時に読み取り且つ復
号化することができるデータ処理装置を提供することで
ある。
以上の隣接した可変長命令の群を同時に読み取り且つ復
号化することができるデータ処理装置を提供することで
ある。
【0006】本発明の別の目的は、2つ以上の隣接した
可変長命令の群の開始アドレスを、命令群を全体的に復
号化するのに必要な時間よりも少ない時間において分解
することができるデータ処理装置を提供することであ
る。
可変長命令の群の開始アドレスを、命令群を全体的に復
号化するのに必要な時間よりも少ない時間において分解
することができるデータ処理装置を提供することであ
る。
【0007】
【課題を解決するための手段】本発明によるデータ処理
装置は、複数のメモリユニットを有するメモリ手段を有
し、各メモリユニットはアドレス、ならびに連続するア
ドレスを有するメモリユニットに格納される少なくとも
第1、第2、及び第3の命令を有し、各命令は少なくと
も一つのメモリユニットを占有し、且つ開始アドレスを
有するとともに、命令の開始アドレスを受信し、且つメ
モリ手段から命令の少なくとも一部を読み出すための第
1、第2、及び第3のリードポート手段を少なくとも有
し、第1の命令の開始アドレスを第1のリードポート手
段に供給し、第1のリードポート手段から第1の命令を
受信し、第1の命令によって占有されるメモリユニット
の数を復号化し、第2の命令の開始アドレスを決定し、
第2の命令の開始アドレスを第1のリードポート手段に
供給し、第1のリードポート手段から第2の命令を受信
し、第2の命令によって占有されるメモリユニットの数
を復号化し、さらに第3の命令の開始アドレスを1サイ
クル時間において決定するための次の命令のポインタ手
段を有し、さらに次の命令のポインタ手段から少なくと
も第2と第3の命令の開始アドレスを受信し、少なくと
も第2と第3の命令の開始アドレスを格納し、さらにメ
モリ手段から第2と第3の命令の少なくとも一部を同時
に読み出すために第2と第3の命令の開始アドレスを第
2と第3のリードポート手段に供給するための命令ポイ
ンタ待ち行列バッファ手段を有する。
装置は、複数のメモリユニットを有するメモリ手段を有
し、各メモリユニットはアドレス、ならびに連続するア
ドレスを有するメモリユニットに格納される少なくとも
第1、第2、及び第3の命令を有し、各命令は少なくと
も一つのメモリユニットを占有し、且つ開始アドレスを
有するとともに、命令の開始アドレスを受信し、且つメ
モリ手段から命令の少なくとも一部を読み出すための第
1、第2、及び第3のリードポート手段を少なくとも有
し、第1の命令の開始アドレスを第1のリードポート手
段に供給し、第1のリードポート手段から第1の命令を
受信し、第1の命令によって占有されるメモリユニット
の数を復号化し、第2の命令の開始アドレスを決定し、
第2の命令の開始アドレスを第1のリードポート手段に
供給し、第1のリードポート手段から第2の命令を受信
し、第2の命令によって占有されるメモリユニットの数
を復号化し、さらに第3の命令の開始アドレスを1サイ
クル時間において決定するための次の命令のポインタ手
段を有し、さらに次の命令のポインタ手段から少なくと
も第2と第3の命令の開始アドレスを受信し、少なくと
も第2と第3の命令の開始アドレスを格納し、さらにメ
モリ手段から第2と第3の命令の少なくとも一部を同時
に読み出すために第2と第3の命令の開始アドレスを第
2と第3のリードポート手段に供給するための命令ポイ
ンタ待ち行列バッファ手段を有する。
【0008】本発明によると、データ処理装置は複数の
メモリユニットを有するメモリ手段を備えている。各メ
モリユニットはアドレスを有する。少なくとも第1、第
2、及び第3の命令は連続するアドレスを備えたメモリ
ユニットに格納される。各命令は少なくとも一つのメモ
リユニットを占有し、また開始アドレスを有する。
メモリユニットを有するメモリ手段を備えている。各メ
モリユニットはアドレスを有する。少なくとも第1、第
2、及び第3の命令は連続するアドレスを備えたメモリ
ユニットに格納される。各命令は少なくとも一つのメモ
リユニットを占有し、また開始アドレスを有する。
【0009】メモリ手段は少なくとも第1、第2、及び
第3のリード(読み出し)ポート手段を有する。各リー
ドポート手段は命令の開始アドレスを受信し、命令の少
なくとも一部をメモリ手段から読み出す。
第3のリード(読み出し)ポート手段を有する。各リー
ドポート手段は命令の開始アドレスを受信し、命令の少
なくとも一部をメモリ手段から読み出す。
【0010】データ処理装置はまた、第1の命令の開始
アドレスを第1のリードポート手段に供給するための次
の命令のポインタ手段を有する。次の命令のポインタ手
段はさらに第1のリードポート手段から第1の命令を受
信し、第1の命令によって占有されるメモリユニットの
数を復号化する。この情報により、次の命令のポインタ
手段は第2の命令の開始アドレスを決定し、開始アドレ
スを第1のリードポート手段に供給し、第1のリードポ
ート手段から第2の命令を受信する。第2の命令によっ
て占有されるメモリユニットの数は復号化されると、第
3の命令の開始アドレスが決定される。次の命令のポイ
ンタ手段はこれら動作のすべてを一サイクル時間で実行
する。
アドレスを第1のリードポート手段に供給するための次
の命令のポインタ手段を有する。次の命令のポインタ手
段はさらに第1のリードポート手段から第1の命令を受
信し、第1の命令によって占有されるメモリユニットの
数を復号化する。この情報により、次の命令のポインタ
手段は第2の命令の開始アドレスを決定し、開始アドレ
スを第1のリードポート手段に供給し、第1のリードポ
ート手段から第2の命令を受信する。第2の命令によっ
て占有されるメモリユニットの数は復号化されると、第
3の命令の開始アドレスが決定される。次の命令のポイ
ンタ手段はこれら動作のすべてを一サイクル時間で実行
する。
【0011】本発明によるデータ処理装置はさらに、少
なくとも第2と第3の命令の開始アドレスを次の命令の
ポインタ手段から受信し、開始アドレスを格納するため
の命令ポインタ待ち行列バッファ手段を有する。第2と
第3の命令の開始アドレスはさらに、メモリ手段から第
2と第3の命令の少なくとも一部を同時に読み出すため
に命令ポインタ待ち行列バッファ手段によって第2と第
3のリードポート手段に供給される。
なくとも第2と第3の命令の開始アドレスを次の命令の
ポインタ手段から受信し、開始アドレスを格納するため
の命令ポインタ待ち行列バッファ手段を有する。第2と
第3の命令の開始アドレスはさらに、メモリ手段から第
2と第3の命令の少なくとも一部を同時に読み出すため
に命令ポインタ待ち行列バッファ手段によって第2と第
3のリードポート手段に供給される。
【0012】本発明の一態様において、次の命令のポイ
ンタ手段は、開始アドレスで始動する命令によって占有
されるメモリユニットの数のみを復号化するための長さ
復号化手段と、命令の長さを命令の開始アドレスに加算
することによって次の命令の開始アドレスを得るための
加算手段と、を有する。
ンタ手段は、開始アドレスで始動する命令によって占有
されるメモリユニットの数のみを復号化するための長さ
復号化手段と、命令の長さを命令の開始アドレスに加算
することによって次の命令の開始アドレスを得るための
加算手段と、を有する。
【0013】メモリ手段は、例えば、複数のメモリユニ
ットを有する先取りバッファを含むものでもよい。第
1、第2、及び第3のマルチプレクサは、先取りバッフ
ァの命令の開始アドレスを受信し、命令の少なくとも一
部を先取りバッファから読み出すために提供される。
ットを有する先取りバッファを含むものでもよい。第
1、第2、及び第3のマルチプレクサは、先取りバッフ
ァの命令の開始アドレスを受信し、命令の少なくとも一
部を先取りバッファから読み出すために提供される。
【0014】データ処理装置はまた、メモリ手段から第
2の命令を受信し、全体の第2の命令を復号化するため
の第1の命令復号化手段を有する。第2の命令復号化手
段は、メモリ手段から第3の命令を受信し、全体の第3
の命令を復号化するために提供される。
2の命令を受信し、全体の第2の命令を復号化するため
の第1の命令復号化手段を有する。第2の命令復号化手
段は、メモリ手段から第3の命令を受信し、全体の第3
の命令を復号化するために提供される。
【0015】第1と第2の命令復号化手段は、少なくと
も一サイクル時間において命令を復号化する。
も一サイクル時間において命令を復号化する。
【0016】好ましくは、第1と第2の命令復号化手段
は全体の命令を同時に復号化する。
は全体の命令を同時に復号化する。
【0017】次の命令のポインタ手段が復号化されてい
る命令の後に少なくとも2つの命令の開始アドレスを決
定すると同時に、少なくとも一つの命令復号化手段が命
令を復号化することはさらに好ましいことである。
る命令の後に少なくとも2つの命令の開始アドレスを決
定すると同時に、少なくとも一つの命令復号化手段が命
令を復号化することはさらに好ましいことである。
【0018】メモリ手段の各リードポートは、例えば、
マルチプレクサを含むものでもよい。
マルチプレクサを含むものでもよい。
【0019】各メモリユニットは好ましくは、1バイト
(8個の二進数)である。命令は可変数のメモリユニッ
トを占有する。
(8個の二進数)である。命令は可変数のメモリユニッ
トを占有する。
【0020】3リードポート(3つのリードポートのあ
る)メモリを次の命令ポインタと本発明による命令ポイ
ンタ待ち行列とに組み合わせることによって、2つ以上
の可変長命令の群を同時に読み取って復号化することが
できる。
る)メモリを次の命令ポインタと本発明による命令ポイ
ンタ待ち行列とに組み合わせることによって、2つ以上
の可変長命令の群を同時に読み取って復号化することが
できる。
【0021】
【実施例】図1は、2つの隣接した可変長命令の群をメ
モリから同時に読み出すための本発明によるデータ処理
装置の一例を示すブロック図である。図1に示されるよ
うに、データ処理装置には複数のメモリユニットを有す
るメモリ手段10が備えられている。例えばメモリユニ
ットは、8個の二進数(ビット)のデータから成る1バ
イトのものでもよい。メモリ手段10内の各メモリユニ
ットはアドレスを有する。
モリから同時に読み出すための本発明によるデータ処理
装置の一例を示すブロック図である。図1に示されるよ
うに、データ処理装置には複数のメモリユニットを有す
るメモリ手段10が備えられている。例えばメモリユニ
ットは、8個の二進数(ビット)のデータから成る1バ
イトのものでもよい。メモリ手段10内の各メモリユニ
ットはアドレスを有する。
【0022】少なくとも第1、第2、及び第3の命令は
連続するアドレスを備えたメモリユニットに格納され
る。各命令はメモリ手段内の少なくとも一つのメモリユ
ニットを占有し、開始アドレスを有する。
連続するアドレスを備えたメモリユニットに格納され
る。各命令はメモリ手段内の少なくとも一つのメモリユ
ニットを占有し、開始アドレスを有する。
【0023】一例において、メモリ手段をメモリユニッ
トのページに分けることもできる。メモリユニットの各
ページはさらに、メモリユニットの行に分けられる。こ
の例においてメモリユニットのアドレスは、メモリユニ
ットが含まれるページ数と、メモリユニットを含む行数
と、行内のメモリユニットの位置(即ち、行オフセッ
ト)と、を識別することによって独自に指定されること
が可能である。例えば、各行が32個のバイトを含む場
合、行オフセットをアドレスの最下位の5個のビットに
よって指定することができる。
トのページに分けることもできる。メモリユニットの各
ページはさらに、メモリユニットの行に分けられる。こ
の例においてメモリユニットのアドレスは、メモリユニ
ットが含まれるページ数と、メモリユニットを含む行数
と、行内のメモリユニットの位置(即ち、行オフセッ
ト)と、を識別することによって独自に指定されること
が可能である。例えば、各行が32個のバイトを含む場
合、行オフセットをアドレスの最下位の5個のビットに
よって指定することができる。
【0024】メモリ手段10はまた、少なくとも第1、
第2、及び第3のリードポート手段12、14、及び1
6をそれぞれ有する。各リードポート手段は命令の開始
アドレスを受信し、メモリ10から命令の少なくとも一
部を読み出す。
第2、及び第3のリードポート手段12、14、及び1
6をそれぞれ有する。各リードポート手段は命令の開始
アドレスを受信し、メモリ10から命令の少なくとも一
部を読み出す。
【0025】データ処理装置はさらに、第1の命令の開
始アドレスを第1のリードポート手段12に供給し、第
1のリードポート手段12から第1の命令を受信するた
めの次の命令のポインタ手段18を有する。次の命令の
ポインタ手段18は、第1の命令によって占有されるメ
モリユニットの数を復号化し、第2の命令の開始アドレ
スを決定し、さらに第2の命令の開始アドレスを第1の
リードポート手段12に供給する。第2の命令は第1の
リードポート手段12から受信され、第2の命令によっ
て占有されるメモリユニットの数は復号化されて、第3
の命令の開始アドレスが決定される。次の命令のポイン
タ手段18はこれら操作のすべてを一サイクル時間で実
行する。
始アドレスを第1のリードポート手段12に供給し、第
1のリードポート手段12から第1の命令を受信するた
めの次の命令のポインタ手段18を有する。次の命令の
ポインタ手段18は、第1の命令によって占有されるメ
モリユニットの数を復号化し、第2の命令の開始アドレ
スを決定し、さらに第2の命令の開始アドレスを第1の
リードポート手段12に供給する。第2の命令は第1の
リードポート手段12から受信され、第2の命令によっ
て占有されるメモリユニットの数は復号化されて、第3
の命令の開始アドレスが決定される。次の命令のポイン
タ手段18はこれら操作のすべてを一サイクル時間で実
行する。
【0026】命令ポインタ待ち行列バッファ手段20は
少なくとも第2と第3の命令の開始アドレスを次の命令
のポインタ手段18から受信し、その開始アドレスを格
納する。命令ポインタ待ち行列バッファ手段20は、メ
モリ手段から第2と第3の命令の少なくとも一部を同時
に読み出すために、第2と第3の命令の開始アドレスを
第2と第3のリードポート手段14と16にそれぞれ供
給する。
少なくとも第2と第3の命令の開始アドレスを次の命令
のポインタ手段18から受信し、その開始アドレスを格
納する。命令ポインタ待ち行列バッファ手段20は、メ
モリ手段から第2と第3の命令の少なくとも一部を同時
に読み出すために、第2と第3の命令の開始アドレスを
第2と第3のリードポート手段14と16にそれぞれ供
給する。
【0027】図2は、本発明によるデータ処理装置のさ
らに詳細な例のブロック図である。この例において、メ
モリ手段10はセットアソシエイティブキャッシュ2
2、先取りバッファ24、及びマルチプレクサ26、2
8、30と32を有する。
らに詳細な例のブロック図である。この例において、メ
モリ手段10はセットアソシエイティブキャッシュ2
2、先取りバッファ24、及びマルチプレクサ26、2
8、30と32を有する。
【0028】セットアソシエイティブキャッシュ22は
複数列のバイトを含む。各キャッシュ列は、例えば、キ
ャッシュ行あたり32個のバイトの4つのキャッシュ行
から成る1セット(セットあたり128個のバイト)に
対応する。各キャッシュ行は例えば、ページ番号で索引
付けされる。従って、キャッシュ内の各バイトはベージ
番号、キャッシュ行番号、及び行オフセットによってア
ドレス指定可能である。
複数列のバイトを含む。各キャッシュ列は、例えば、キ
ャッシュ行あたり32個のバイトの4つのキャッシュ行
から成る1セット(セットあたり128個のバイト)に
対応する。各キャッシュ行は例えば、ページ番号で索引
付けされる。従って、キャッシュ内の各バイトはベージ
番号、キャッシュ行番号、及び行オフセットによってア
ドレス指定可能である。
【0029】先取りバッファ24はキャッシュ22内の
行と同じ大きさであることが好ましい。キャッシュ行が
キャッシュ22から先取りバッファ24にロードされる
と、先取りバッファ24はページ番号とキャッシュ行番
号によって索引付けされる。先取りバッファ24内の各
バイトの行オフセットは、キャッシュ22内のバイトの
行オフセットと同一である。
行と同じ大きさであることが好ましい。キャッシュ行が
キャッシュ22から先取りバッファ24にロードされる
と、先取りバッファ24はページ番号とキャッシュ行番
号によって索引付けされる。先取りバッファ24内の各
バイトの行オフセットは、キャッシュ22内のバイトの
行オフセットと同一である。
【0030】キャッシュ22と先取りバッファ24は静
的(スタティック)ランダムアクセスメモリ(SRA
M)又はレジスタであってもよい。
的(スタティック)ランダムアクセスメモリ(SRA
M)又はレジスタであってもよい。
【0031】好ましくは、2つの先取りバッファはキャ
ッシュ22から2つの連続するキャッシュ行を保持する
ためのものである。各先取りバッファが32個のバイト
から成る一列のものであると(各キャッシュ行は32個
のバイトから成る例の場合)、各先取りバッファは列あ
たり4個のバイトによる8個の列から成ることが好まし
い。
ッシュ22から2つの連続するキャッシュ行を保持する
ためのものである。各先取りバッファが32個のバイト
から成る一列のものであると(各キャッシュ行は32個
のバイトから成る例の場合)、各先取りバッファは列あ
たり4個のバイトによる8個の列から成ることが好まし
い。
【0032】マルチプレクサ26、28、30、及び3
2は、メモリ手段のリードポートを形成する。各マルチ
プレクサは先取りバッファ24と同じ幅を有し(この場
合は32バイト幅)、開始アドレスを受信し且つ先取り
バッファ24から読み出すための該開始アドレスから多
数の連続バイトを選択するためのアドレス復号器を有す
る。先取りバッファ24に32個のバイトがある場合、
各マルチプレクサは5ビットのオフセットアドレスを受
信する。2つの先取りバッファがある場合、各マルチプ
レクサが6ビットのアドレスを受信し、このアドレスは
5ビットのオフセットアドレスと、2つの先取りバッフ
ァから一つを選択するための1ビットから構成される。
2は、メモリ手段のリードポートを形成する。各マルチ
プレクサは先取りバッファ24と同じ幅を有し(この場
合は32バイト幅)、開始アドレスを受信し且つ先取り
バッファ24から読み出すための該開始アドレスから多
数の連続バイトを選択するためのアドレス復号器を有す
る。先取りバッファ24に32個のバイトがある場合、
各マルチプレクサは5ビットのオフセットアドレスを受
信する。2つの先取りバッファがある場合、各マルチプ
レクサが6ビットのアドレスを受信し、このアドレスは
5ビットのオフセットアドレスと、2つの先取りバッフ
ァから一つを選択するための1ビットから構成される。
【0033】この例において、各マルチプレクサ26と
28は、メモリ手段から命令の長さを得るために充分な
バイトを読み出す。各マルチプレクサ30と32は、メ
モリ手段から全体の命令を復号化するために充分なバイ
トを読み出す。
28は、メモリ手段から命令の長さを得るために充分な
バイトを読み出す。各マルチプレクサ30と32は、メ
モリ手段から全体の命令を復号化するために充分なバイ
トを読み出す。
【0034】図1による次の命令のポインタ手段18
は、例えば、図2に示される長さ復号器34と36、及
び加算器38と40を含むことができる。各長さ復号器
34と36は、対応付けられるマルチプレクサ26と2
8にそれぞれ供給される開始アドレスで始動する命令に
よって占有されるメモリユニットの数のみを復号化す
る。加算手段38と40は、次の命令の開始アドレスを
得るために命令の長さを命令の開始アドレスに加算す
る。
は、例えば、図2に示される長さ復号器34と36、及
び加算器38と40を含むことができる。各長さ復号器
34と36は、対応付けられるマルチプレクサ26と2
8にそれぞれ供給される開始アドレスで始動する命令に
よって占有されるメモリユニットの数のみを復号化す
る。加算手段38と40は、次の命令の開始アドレスを
得るために命令の長さを命令の開始アドレスに加算す
る。
【0035】コンピュータプログラムの初めに、又は、
ブランチを検出すると同時に、第1の命令の開始アドレ
スはバス42上に提供される。バス42上の開始アドレ
スはマルチプレクサ44によって(例えば、オペレーテ
ィングシステムの制御のもとで)選択され、ラッチ46
に格納される。第1の命令の開始アドレスはさらに、マ
ルチプレクサ26と加算器38に供給される。マルチプ
レクサ26は先取りバッファ24からの第1の命令を長
さ復号器34に供給し、長さ復号器34は第1の命令に
よって占有されるメモリユニットの数を復号化し、この
数を加算器38に供給する。加算器38は命令の長さを
命令の開始アドレスに加算して、第2の命令の開始アド
レスを得ることになる。
ブランチを検出すると同時に、第1の命令の開始アドレ
スはバス42上に提供される。バス42上の開始アドレ
スはマルチプレクサ44によって(例えば、オペレーテ
ィングシステムの制御のもとで)選択され、ラッチ46
に格納される。第1の命令の開始アドレスはさらに、マ
ルチプレクサ26と加算器38に供給される。マルチプ
レクサ26は先取りバッファ24からの第1の命令を長
さ復号器34に供給し、長さ復号器34は第1の命令に
よって占有されるメモリユニットの数を復号化し、この
数を加算器38に供給する。加算器38は命令の長さを
命令の開始アドレスに加算して、第2の命令の開始アド
レスを得ることになる。
【0036】第2の命令の開始アドレスは加算器38に
よってマルチプレクサ28と加算器40に供給される。
マルチプレクサ28は先取りバッファ24からの第2の
命令を長さ復号器36に供給する。長さ復号器36は第
2の命令によって占有されるメモリユニットの数を復号
化し、この数を加算器40に供給する。加算器40は、
第3の命令の開始アドレスを得るために第2の命令の長
さを第2の命令の開始アドレスに加算する。
よってマルチプレクサ28と加算器40に供給される。
マルチプレクサ28は先取りバッファ24からの第2の
命令を長さ復号器36に供給する。長さ復号器36は第
2の命令によって占有されるメモリユニットの数を復号
化し、この数を加算器40に供給する。加算器40は、
第3の命令の開始アドレスを得るために第2の命令の長
さを第2の命令の開始アドレスに加算する。
【0037】加算器38は第2の命令の開始アドレスを
供給し、加算器40は第3の命令の開始アドレスを命令
ポインタ待ち行列20に供給する。命令ポインタ待ち行
列20は開始アドレスを受信し、これらを受信した順に
格納する。
供給し、加算器40は第3の命令の開始アドレスを命令
ポインタ待ち行列20に供給する。命令ポインタ待ち行
列20は開始アドレスを受信し、これらを受信した順に
格納する。
【0038】命令ポインタ待ち行列20は、例えば、先
入れ先出しレジスタスタック又は2つの入力ポートと2
つの出力ポートを備えたランダムアクセスメモリでもよ
い。
入れ先出しレジスタスタック又は2つの入力ポートと2
つの出力ポートを備えたランダムアクセスメモリでもよ
い。
【0039】先入れ先出し理論に基づいて、命令ポイン
タ待ち行列20は第2と第3の命令の開始アドレスをマ
ルチプレクサ48と50に供給し、ブランチが検出され
ないと、マルチプレクサ48と50はマルチプレクサ3
0と32に開始アドレスをそれぞれ提供する。マルチプ
レクサ30と32はメモリ手段から第2と第3の命令の
少なくとも一部を同時に読み出す。
タ待ち行列20は第2と第3の命令の開始アドレスをマ
ルチプレクサ48と50に供給し、ブランチが検出され
ないと、マルチプレクサ48と50はマルチプレクサ3
0と32に開始アドレスをそれぞれ提供する。マルチプ
レクサ30と32はメモリ手段から第2と第3の命令の
少なくとも一部を同時に読み出す。
【0040】好ましくは、マルチプレクサ30と32は
第1と第2の命令復号化手段52と54に2つの命令を
同時に供給する。各命令復号器は受信した全体の命令を
復号化する。復号化命令は命令待ち行列56と58に供
給される。命令待ち行列56は、例えば、メモリ演算命
令を含むこともある。命令待ち行列58は、例えば、レ
ジスタ間命令を含むこともある。
第1と第2の命令復号化手段52と54に2つの命令を
同時に供給する。各命令復号器は受信した全体の命令を
復号化する。復号化命令は命令待ち行列56と58に供
給される。命令待ち行列56は、例えば、メモリ演算命
令を含むこともある。命令待ち行列58は、例えば、レ
ジスタ間命令を含むこともある。
【0041】命令が、(例えば、4バイトの)一サイク
ルにおいてマルチプレクサ30と32から読み出し可能
なバイトの数よりも大きな長さを有する場合、又は一サ
イクルにおいて命令復号化手段52もしくは54によっ
て復号化可能なバイトの数よりも大きな長さを有する場
合、復号化手段52もしくは54は第2の復号サイクル
において命令の復号化を続けることになる。第2の復号
サイクルにおいて命令復号化手段は、命令ポインタ待ち
行列20の次の命令アドレスの代わりに、元の命令アド
レスと前もって演算されたバイトの数(例えば、4個の
バイト)とを加えたものに等しいアドレスにおいて始動
する一連のバイトで演算することになる。
ルにおいてマルチプレクサ30と32から読み出し可能
なバイトの数よりも大きな長さを有する場合、又は一サ
イクルにおいて命令復号化手段52もしくは54によっ
て復号化可能なバイトの数よりも大きな長さを有する場
合、復号化手段52もしくは54は第2の復号サイクル
において命令の復号化を続けることになる。第2の復号
サイクルにおいて命令復号化手段は、命令ポインタ待ち
行列20の次の命令アドレスの代わりに、元の命令アド
レスと前もって演算されたバイトの数(例えば、4個の
バイト)とを加えたものに等しいアドレスにおいて始動
する一連のバイトで演算することになる。
【0042】復号化命令はさらに、ブランチアドレス発
生器60と62に提供される。ブランチアドレス発生器
62は、マルチプレクサ50から命令の開始アドレスを
受信し、復号器54から復号化命令を受信し、さらにブ
ランチ目標アドレスをラッチ64に供給する。検出され
るブランチがあると、ラッチ64からのブランチアドレ
スはマルチプレクサ50によって選択されて、次のサイ
クルではマルチプレクサ30に供給される。
生器60と62に提供される。ブランチアドレス発生器
62は、マルチプレクサ50から命令の開始アドレスを
受信し、復号器54から復号化命令を受信し、さらにブ
ランチ目標アドレスをラッチ64に供給する。検出され
るブランチがあると、ラッチ64からのブランチアドレ
スはマルチプレクサ50によって選択されて、次のサイ
クルではマルチプレクサ30に供給される。
【0043】同様に、ブランチアドレス発生器60はマ
ルチプレクサ48から命令の開始アドレスを受信し、復
号器52から復号化命令を受信し、さらにブランチ目標
アドレスをラッチ66に供給する。ブランチが検出され
ると、ラッチ66からのブランチアドレスはマルチプレ
クサ48によって選択され、次のサイクルにおいてマル
チプレクサ48はブランチアドレスをマルチプレクサ3
2に送る。
ルチプレクサ48から命令の開始アドレスを受信し、復
号器52から復号化命令を受信し、さらにブランチ目標
アドレスをラッチ66に供給する。ブランチが検出され
ると、ラッチ66からのブランチアドレスはマルチプレ
クサ48によって選択され、次のサイクルにおいてマル
チプレクサ48はブランチアドレスをマルチプレクサ3
2に送る。
【0044】ブランチが検出されると、命令ポインタ待
ち行列20はクリアされて、長さ復号器34と36は初
期化される。ブランチアドレスはバス42に供給され
て、マルチプレクサ44によって選択される。命令長の
復号化はさらに、上述した方法で進む。
ち行列20はクリアされて、長さ復号器34と36は初
期化される。ブランチアドレスはバス42に供給され
て、マルチプレクサ44によって選択される。命令長の
復号化はさらに、上述した方法で進む。
【0045】ブランチアドレスが先取りバッファ24に
含まれるキャッシュ行の外側にあると、ブランチアドレ
スを含むキャッシュ行はキャッシュ22から先取りバッ
ファ24にロードされる。
含まれるキャッシュ行の外側にあると、ブランチアドレ
スを含むキャッシュ行はキャッシュ22から先取りバッ
ファ24にロードされる。
【0046】ブランチがない場合、加算器40からの開
始アドレスはマルチプレクサ44によって選択されて、
ラッチ46に格納される。次のサイクルにおいて、ラッ
チ46からの開始アドレスはマルチプレクサ26に供給
されて、次の2つの命令の開始アドレスは復号化され、
また上述した方法によって命令ポインタ待ち行列20に
格納される。
始アドレスはマルチプレクサ44によって選択されて、
ラッチ46に格納される。次のサイクルにおいて、ラッ
チ46からの開始アドレスはマルチプレクサ26に供給
されて、次の2つの命令の開始アドレスは復号化され、
また上述した方法によって命令ポインタ待ち行列20に
格納される。
【0047】命令復号器52と54のアイドル(遊休)
時間を最小限にするためには、長さ復号器34と36及
び加算器38と40が2つの命令の開始アドレスを命令
ポインタ待ち行列20に供給する以上の時間において
(即ち、少なくとも一サイクル時間で)各命令復号器は
命令を復号化する。好ましくは各命令復号器は、次の命
令のポインタ手段が復号化される命令の後に少なくとも
2つの命令の開始アドレスを決定すると同時に命令を復
号化する。
時間を最小限にするためには、長さ復号器34と36及
び加算器38と40が2つの命令の開始アドレスを命令
ポインタ待ち行列20に供給する以上の時間において
(即ち、少なくとも一サイクル時間で)各命令復号器は
命令を復号化する。好ましくは各命令復号器は、次の命
令のポインタ手段が復号化される命令の後に少なくとも
2つの命令の開始アドレスを決定すると同時に命令を復
号化する。
【0048】一例において、2つ以上の可変長命令の群
をIntel(インテル)386(商標)マイクロプロ
セッサ用の命令セットから同時に読み出すために本発明
によるデータ処理装置を使用することができる。この場
合に、命令長は1乃至15個のバイトである。命令長は
命令の第1の4個のバイトから決定することができる。
をIntel(インテル)386(商標)マイクロプロ
セッサ用の命令セットから同時に読み出すために本発明
によるデータ処理装置を使用することができる。この場
合に、命令長は1乃至15個のバイトである。命令長は
命令の第1の4個のバイトから決定することができる。
【0049】図3は、Intel80386(商標)マ
イクロプロセッサの命令セット用の長さ復号器の一例を
示すブロック図である。長さ復号器は、命令の第1、第
2、第3、及び第4のバイト68、70、72、及び7
4を受信する。第1のバイト68と第2のバイト70は
長さ復号器76と78に供給される。長さ復号器76の
出力と第2の命令バイト70は、特別な処理のための特
別ケース長さ復号器80に供給される。復号器78と8
0からの長さ出力はマルチプレクサ82に対し供給され
る。マルチプレクサ82は、第1の命令バイト68から
の制御信号を生成するコントローラ84からの制御信号
を基礎として長さ復号器78又は長さ復号器80の出力
を選択する。
イクロプロセッサの命令セット用の長さ復号器の一例を
示すブロック図である。長さ復号器は、命令の第1、第
2、第3、及び第4のバイト68、70、72、及び7
4を受信する。第1のバイト68と第2のバイト70は
長さ復号器76と78に供給される。長さ復号器76の
出力と第2の命令バイト70は、特別な処理のための特
別ケース長さ復号器80に供給される。復号器78と8
0からの長さ出力はマルチプレクサ82に対し供給され
る。マルチプレクサ82は、第1の命令バイト68から
の制御信号を生成するコントローラ84からの制御信号
を基礎として長さ復号器78又は長さ復号器80の出力
を選択する。
【0050】第2の命令バイト70と第3の命令バイト
72はマルチプレクサ86に供給され、マルチプレクサ
86は第2のバイト70又は第3のバイト72のいずれ
かをコントローラ84からの信号の制御のもとで特別な
長さ復号器88に送る。特別な長さ復号器88はまた、
第4の命令バイト74からビット5、6、及び7を受信
し、特別な長さ信号をANDゲート90に出力する。復
号器88からの特別な長さは、第1のバイト長さ復号器
76からの出力によって論理積をとられる。ANDゲー
ト90の結果とマルチプレクサ82の出力とは、加算器
92において加算されて命令長を提供する。
72はマルチプレクサ86に供給され、マルチプレクサ
86は第2のバイト70又は第3のバイト72のいずれ
かをコントローラ84からの信号の制御のもとで特別な
長さ復号器88に送る。特別な長さ復号器88はまた、
第4の命令バイト74からビット5、6、及び7を受信
し、特別な長さ信号をANDゲート90に出力する。復
号器88からの特別な長さは、第1のバイト長さ復号器
76からの出力によって論理積をとられる。ANDゲー
ト90の結果とマルチプレクサ82の出力とは、加算器
92において加算されて命令長を提供する。
【0051】長さ及び制御信号を生成するための命令バ
イトのビットの解説は「Intel80386プログラ
マ参照マニュアル(Intel 80386 Programmer's Referen
ce Manual)」(1986年)の第17章に記載されてい
る。
イトのビットの解説は「Intel80386プログラ
マ参照マニュアル(Intel 80386 Programmer's Referen
ce Manual)」(1986年)の第17章に記載されてい
る。
【0052】Intel80386(商標)マイクロプ
ロセッサ用の命令セットの場合において、命令の前に来
るプレフィックス(接頭)バイトを含む命令も多少あ
る。長さ復号器34又は36がプレフィックス(接頭
部)で作動していることを認識すると、加算器38又は
40によって生成される開始アドレスは次のマルチプレ
クサ26又は28に送られるが、但し命令ポインタ待ち
行列20には格納されない。
ロセッサ用の命令セットの場合において、命令の前に来
るプレフィックス(接頭)バイトを含む命令も多少あ
る。長さ復号器34又は36がプレフィックス(接頭
部)で作動していることを認識すると、加算器38又は
40によって生成される開始アドレスは次のマルチプレ
クサ26又は28に送られるが、但し命令ポインタ待ち
行列20には格納されない。
【0053】
【発明の効果】本発明は上記のように構成されているの
で、2つ以上の隣接した可変長命令の群を同時に読み取
り且つ復号化することのできる効果を有する。
で、2つ以上の隣接した可変長命令の群を同時に読み取
り且つ復号化することのできる効果を有する。
【図1】2つの隣接した可変長命令の群をメモリから同
時に読み出すための本発明によるデータ処理装置の一例
を示すブロック図である。
時に読み出すための本発明によるデータ処理装置の一例
を示すブロック図である。
【図2】2つの隣接した可変長命令の群を同時に読み取
り且つ復号化するための本発明によるデータ処理装置の
一例を示すブロック図である。
り且つ復号化するための本発明によるデータ処理装置の
一例を示すブロック図である。
【図3】本発明によるデータ処理装置で使用するための
長さ復号器の一例を示すブロック図である。
長さ復号器の一例を示すブロック図である。
10 メモリ 12 リードポート 14 リードポート 16 リードポート 18 次の命令のポインタ 20 命令ポインタ待ち行列
Claims (2)
- 【請求項1】 複数のメモリユニットを有するメモリ手
段であって、各メモリユニットはアドレス、ならびに連
続するアドレスを有するメモリユニットに格納される少
なくとも第1、第2、及び第3の命令を有し、各命令は
少なくとも一つのメモリユニットを占有し、且つ開始ア
ドレスを有するとともに、命令の開始アドレスを受信
し、且つメモリ手段から命令の少なくとも一部を読み出
すための第1、第2、及び第3のリードポート手段を少
なくとも有するメモリ手段と、 第1の命令の開始アドレスを第1のリードポート手段に
供給し、第1のリードポート手段から第1の命令を受信
し、第1の命令によって占有されるメモリユニットの数
を復号化し、第2の命令の開始アドレスを決定し、第2
の命令の開始アドレスを第1のリードポート手段に供給
し、第1のリードポート手段から第2の命令を受信し、
第2の命令によって占有されるメモリユニットの数を復
号化し、さらに第3の命令の開始アドレスを1サイクル
時間において決定するための次の命令のポインタ手段
と、 次の命令のポインタ手段から少なくとも第2と第3の命
令の開始アドレスを受信し、少なくとも第2と第3の命
令の開始アドレスを格納し、さらにメモリ手段から第2
と第3の命令の少なくとも一部を同時に読み出すために
第2と第3の命令の開始アドレスを第2と第3のリード
ポート手段に供給するための命令ポインタ待ち行列バッ
ファ手段と、 を有するデータ処理装置。 - 【請求項2】 前記次の命令のポインタ手段は、 開始アドレスで始動する命令によって占有されるメモリ
ユニットの数のみを復号化するための長さ復号化手段
と、 次の命令の開始アドレスを得るために命令の長さを命令
の開始アドレスに加算するための加算手段と、 を有する請求項1に記載のデータ処理装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/866,766 US5371864A (en) | 1992-04-09 | 1992-04-09 | Apparatus for concurrent multiple instruction decode in variable length instruction set computer |
| US866766 | 1992-04-09 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH06161747A true JPH06161747A (ja) | 1994-06-10 |
| JP2571336B2 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) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1989005212A1 (fr) * | 1987-12-10 | 1989-06-15 | Fanuc Ltd | Procede de profilage sans contact |
| CN119252304A (zh) * | 2021-04-07 | 2025-01-03 | 华为技术有限公司 | 存储装置和处理数据的方法 |
Families Citing this family (48)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| 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 |
| US5630083A (en) * | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| US6006324A (en) * | 1995-01-25 | 1999-12-21 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
| 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 | 三菱電機株式会社 | データ処理装置 |
| AU7168496A (en) * | 1995-10-06 | 1997-04-28 | 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 |
| US7039061B2 (en) * | 2001-09-25 | 2006-05-02 | Intel Corporation | Methods and apparatus for retaining packet order in systems utilizing multiple transmit queues |
| 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 |
| 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 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS58176751A (ja) * | 1982-04-09 | 1983-10-17 | Hitachi Ltd | 命令語解読ユニツト |
| JPH03255530A (ja) * | 1990-03-06 | 1991-11-14 | Toshiba Corp | 並列命令フェッチ機構 |
Family Cites Families (26)
| 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 |
| US4241397A (en) * | 1977-10-25 | 1980-12-23 | Digital Equipment Corporation | Central processor unit for executing instructions with a special operand specifier of indeterminate length |
| 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 |
| 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 |
| JP2725450B2 (ja) * | 1989-08-28 | 1998-03-11 | 日本電気株式会社 | マイクロプロセッサ |
| US5241637A (en) * | 1990-01-05 | 1993-08-31 | Motorola, Inc. | Data processor microsequencer having multiple microaddress sources and next microaddress source selection |
-
1992
- 1992-04-09 US US07/866,766 patent/US5371864A/en not_active Expired - Fee Related
-
1993
- 1993-02-15 JP JP5025302A patent/JP2571336B2/ja not_active Expired - Lifetime
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS58176751A (ja) * | 1982-04-09 | 1983-10-17 | Hitachi Ltd | 命令語解読ユニツト |
| JPH03255530A (ja) * | 1990-03-06 | 1991-11-14 | Toshiba Corp | 並列命令フェッチ機構 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1989005212A1 (fr) * | 1987-12-10 | 1989-06-15 | Fanuc Ltd | Procede de profilage sans contact |
| CN119252304A (zh) * | 2021-04-07 | 2025-01-03 | 华为技术有限公司 | 存储装置和处理数据的方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US5371864A (en) | 1994-12-06 |
| JP2571336B2 (ja) | 1997-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06161747A (ja) | データ処理装置 | |
| US5819058A (en) | Instruction compression and decompression system and method for a processor | |
| JP3916680B2 (ja) | プロセッサ | |
| US6272596B1 (en) | Data processor | |
| EP0424618A2 (en) | Input/output system | |
| JPH0527971A (ja) | 情報処理装置 | |
| WO2008043287A1 (en) | Configurable single instruction multiple data unit | |
| US4812970A (en) | Microprogram control system | |
| JP2571682B2 (ja) | 情報処理装置 | |
| US6922767B2 (en) | System for allowing only a partial value prediction field/cache size | |
| US6363469B1 (en) | Address generation apparatus | |
| WO2002039272A9 (en) | Method and apparatus for reducing branch latency | |
| US6772271B2 (en) | Reduction of bank switching instructions in main memory of data processing apparatus having main memory and plural memory | |
| JP2002278774A (ja) | プロセッサ内の機能単位の制御時に命令語を生成する方法と装置 | |
| JPH0814791B2 (ja) | 処理システム | |
| JP2881023B2 (ja) | 命令バッファ構成方式 | |
| EP1050818A1 (en) | Computer memory access | |
| JPH05290188A (ja) | 超並列計算機 | |
| JP2545594B2 (ja) | オペランドデータ先取り方式 | |
| JP2576589B2 (ja) | 仮想記憶アクセス制御方式 | |
| JPH06332701A (ja) | 情報処理装置 | |
| JPS6371736A (ja) | Romのパリテイビツト領域割当方式 | |
| JPH0648470B2 (ja) | 多重仮想アドレス空間制御装置 | |
| JPH05165717A (ja) | データ処理装置 | |
| JPH05165633A (ja) | 命令先取り装置 |