JP3339132B2 - 中央処理装置 - Google Patents
中央処理装置Info
- Publication number
- JP3339132B2 JP3339132B2 JP25256393A JP25256393A JP3339132B2 JP 3339132 B2 JP3339132 B2 JP 3339132B2 JP 25256393 A JP25256393 A JP 25256393A JP 25256393 A JP25256393 A JP 25256393A JP 3339132 B2 JP3339132 B2 JP 3339132B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- pipeline
- instructions
- orthogonal
- processing
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3875—Pipelining a single stage, e.g. superpipelining
Description
U)に関し、特に少なくとも1つのオペランドおよびオ
ペレーションの各種類を独立に選択可能な直交的な命令
を部分的に持つ中央処理装置に関する。
方式として、一つの処理をいくつかの細かい処理単位に
分割し、各部分での処理結果を次の処理部分へと次々転
送し、全体として一つの処理を行うパイプライン方式が
知られている。このパイプライン方式では、たとえば命
令語処理の場合、その命令処理が命令の取出し(フェッ
チ)、命令の解読(デコード)、命令の実行などのステ
ップに分けられ、それぞれの処理が同一時間に並列に行
われる。その結果、実効的に処理速度の高速化が図られ
る。
およびオペレーションの各種類を独立に選択可能な直交
的な命令を部分的に持つ中央処理装置においては、従
来、ソース、ディスティネーションおよびオペレーショ
ンを決定する機械語がビット単位で構成されていた。
構成がビット単位であって、ソース、ディスティネーシ
ョンおよびオペレーションで独立した1バイト(又は、
複数バイト)を使用していない中央処理装置では、命令
処理の高速化を図るために、その命令の処理をパイプラ
イン化(命令間パイプライン処理)し、なおかつ命令内
のソース、ディスティネーションおよびオペレーション
の各処理をパイプライン化(命令内パイプライン処理)
しても、それらの2つのパイプラインの構成は、これら
パイプライン中の各ステージ構成が対称的でないため、
制御論理を別に構成し、それらの2つのパイプラインを
全く異なったパイプラインとして処理する必要があっ
た。
イプラインの2つのパイプライン用の制御論理を別々に
構成する必要があり、2つのパイプラインを並列に実行
する場合に2つのパイプラインの非対称性によりその並
列処理化が困難であるという問題があった。
であり、その目的とするところは、命令間パイプライン
と命令内パイプラインの2つのパイプラインの処理を単
一パイプライン制御論理にて実行できるとともに、制御
論理の単純化および論理の縮小化を可能とした中央処理
装置を提供することにある。
置は、少なくとも1つのオペランドおよびオペレーショ
ンの各種類を独立に選択可能な直交的な命令を部分的に
持つ中央処理装置であって、少なくとも1つのオペラン
ドおよびオペレーションを決定する各機械語の部分をそ
れぞれバイト単位で独立に構成し、直交的な命令以外の
命令の実行を命令ごとにパイプライン処理するととも
に、直交的な命令内の少なくとも1つのオペランドおよ
びオペレーションの各処理をパイプライン化し、直交的
な命令内のパイプラインと直交的な命令以外の命令間の
パイプラインとを同一構成にしている。
1つのオペランドおよびオペレーションを決定する機械
語の部分をそれぞれバイト単位で独立に構成し、その命
令内の少なくとも1つのオペランドおよびオペレーショ
ンの各処理をパイプライン化することで、その命令内パ
イプラインと命令間パイプラインの2つのパイプライン
中の各ステージ構成を対称にできる。これにより、2つ
のパイプラインの処理を単一パイプライン制御論理によ
って実行できるので、制御論理の単純化および論理の縮
小化が可能となる。
に説明する。先ず、中央処理装置(CPU)の構成の一
例につき、図3のブロック図に基づいて説明する。
ROM51、デコードPLA52、命令レジスタ(I
R)部53、プリフェッチキュー54、汎用レジスタ5
5、ALU(論理演算装置)56、一時レジスタ57、
プロセッサ状態(ステータス)語58、プログラムカウ
ンタ59、ページレジスタ60およびアドレスバッファ
61によって構成されている。そして、各構成ブロック
がデータバス62を介して相互に接続されており、アド
レスバッファ61からのアドレスはアドレスバス63へ
出力される。
において、ソース、ディスティネーションおよびオペレ
ーションの各種類を独立に選択可能な直交的な命令を部
分的に持ったものである。本発明においては、ソース、
ディスティネーションおよびオペレーションを選択・決
定する機械語のそれぞれの部分は、図1(A)に示すよ
うに、独立したバイト単位に分割されている。
分11はnバイト、ディスティネーションを決定する機
械語部分12はmバイト、オペレーションを決定する機
械語部分13はkバイトで構成されている。ここに、
n,m,kは整数である。
ネーションおよびオペレーションを決定する3つの機械
語部分11,12,13の長さを固定としているが、可
変長であっても良い。例えば、ソースを決定する機械語
部分11がnバイトである場合以外にn+1バイトであ
る場合や、ディスティネーションを決定する機械語部分
12がmバイトである場合以外にm−1バイトである場
合などが存在する機械語構成であっても良い。要は、機
械語のソース、ディスティネーションおよびオペレーシ
ョンを決定する部分がそれぞれ独立した単数あるいは複
数バイトで構成されていることであって、個々の長さが
固定長であるか、可変長であるかは問わない。
いて、直交的な命令以外の命令の実行を図1(B)に示
すようにパイプライン化するとき、併せて、図1(A)
に示す直交的な命令の実行を図1(C)に示すようにパ
イプライン化する。その際、図1(B)で使用した命令
ごとのパイプライン処理と、図1(C)で使用した命令
内のパイプライン処理の構成を同一にする。
の一般形式において、オペレーション、ソースおよびデ
ィスティネーションを独立に自由に選択可能な命令であ
る。オペレーションの種類としては、MOV,ADD,
ADC,SUB,SBC,A ND,OR,EOR,CM
P等が挙げられる。ソースの種類としては、adr,R
n,@Rn,@(disp,Rn),@(−Rn),@
(Rn+),#immが挙げられる。ディスティネーシ
ョンの種類としては、adr,Rn,@Rn,@(di
sp,Rn),@(−Rn),@(Rn+)が挙げられ
る。
adrはメモリのアドレスを直接指定するコード、Rn
はCPU内にある汎用レジスタのうちの1本を指定する
コード、@Rnは汎用レジスタが示すメモリアドレス
(間接指定)、@(disp,Rn)は汎用レジスタの
値にdispの値を加算した値をメモリアドレスとする
コード、@(−Rn)は汎用レジスタの値をデクリメン
トした値をメモリアドレスとするコード、@(Rn+)
は汎用レジスタの値でメモリをアクセスし、その後レジ
スタをインクリメントするコード、#immは即値(ソ
ース側オペランドにのみ適用)である。
#123h,R0],[CMPR1,R2],[AD
D R0,@(123h,R1)]などが挙げられる。
命令:MOV #123h,R0は、R0に即値(16
進数の123h)を書き込む命令である。命令:CMP
R1,R2は、R1とR2の値を比較する命令であ
る。命令:ADD R0,@(123h,R1)は、R
0の値とR1の値に16進数の123hを加算して得ら
れたメモリアドレスにあるメモリの内容を加算して得た
結果をそのメモリに書き込む命令である。
ついては、図1(B)に示すように、命令ごとのパイプ
ラインが4段ステージ、即ちID(デコード)・ステー
ジ、CR(制御ROM読出し)・ステージ、EX(計算
実行)・ステージおよびWB(書込み)・ステージで構
成されている。
(C)に示すように、その命令内の処理をパイプライン
化する。そして、そのパイプラインについても、図1
(B)の命 令1-1,1-2,1-3ごとのパイプラインと同様
に、4段ステージ、即ちID(デコード)・ステージ、
CR(制御ROM読出し)・ステージ、EX(計算実
行)・ステージおよびWB(書込み)・ステージで構成
する。
いう4ステージ構成のパイプラインを示したが、パイプ
ラインの段数や各ステージで行う処理の振り分けなど、
パイプラインの構成についてはどのような構成であって
も構わない。しかし、命令ごとのパイプラインの構成
と、命令内のソース、ディスティネーションおよびオペ
レーションのパイプラインの構成が同一、即ち図1
(B)のIDステージで行われる処理が、図1(C)の
IDステージで行われる処理と対称的、換言すれば2つ
のIDステージで行える選択可能なデータ転送や状態レ
ジスタの設定など処理の種類が同じで、それらの処理の
選択起動は同一の制御論理回路にて制御している必要が
ある。CR,EX,WBのステージについても、同様に
対称性のあることが本発明の主旨である。
のパイプライン処理にあたり、ソース、ディスティネー
ションおよびオペレーションを選択・決定する機械語の
部分をそれぞれのIDステージごとに独立してデコード
し、各処理を命令内パイプライン処理に順次送り出すこ
とを可能ならしめるために必要である。すなわち、図1
(C)において、命令2-1 のソース処理のIDステージ
では図1(A)の機械語部分11をデコード処理し、命
令2-2 のディスティネーション処理のIDステージでは
図1(A)の機械語部分12をデコード処理し、命令2-
3 のオペレーション処理のIDステージでは図1(A)
の機械語部分13をデコード処理して直交的な命令中の
3つの処理をあたかも独立した命令のようにパイプライ
ンに順次送り込むことによって並列実行する。
ス、ディスティネーションおよびオペレーションを決定
する各機械語の部分がそれぞれバイト単位で独立に構成
されたものでなければ実現できない。そのようなパイプ
ラインを実現した本発明によれば、命令ごとのパイプラ
インと命令内のパイプラインが統一されているので、図
2(A)に示すように命令を実行可能である。
おいて、命令3-1 (:CLC)は直交的な命令以外の命
令の例であり、キャリーフラグをクリアする命令であ
る。CLCの命令コードが命令レジスタ(IR)にラッ
チされ、命令デコード(IDステージ)が行われる。E
Xステージによりキャリーフラグのクリアが行われる。
0)は直交的な命令の例である。(3-4)はソースオペラ
ンドである@(−R1)のアクセスを行う。具体的に
は、ソースオペランドコードが命令レジスタ(IR)に
ラッチされ、命令デコード(IDステージ)が行われ
る。CRステージにより汎用レジスタR1が読み出さ
れ、EXステージによりALUでデクリメントが行わ
れ、デクリメントした値をメモリのアドレスとしてメモ
リを読み出す。読み出した値をソース側一時レジスタに
保持する。
であるR0のアクセスを行う。具体的には、ディスティ
ネーションコードが命令レジスタ(IR)にラッチさ
れ、命令デコード(IDステージ)が行われる。CRス
テージにより汎用レジスタR0を読み出し、その読み出
した値をディスティネーションソース側一時レジスタに
保持する。
を実行する。具体的には、オペレーションコードが命令
レジスタ(IR)にラッチされ、命令デコード(IDス
テージ)が行われる。EXステージによりソース側一時
レジスタの値をALU入力に入れ、ALUスルー出力し
た結果をWBステージによりディスティネーションの汎
用レジスタR0に書き込む。
命令のソース処理(3-4) 、ディスティネーション処理(3
-5) およびオペレーション処理(3-6) はその前後の命令
と並列性を持ち、各処理がそれぞれ独立したパイプライ
ン動作として実行される。ここで、オペレーションコー
ドがMOV命令でなく、例えばADD命令の場合は、(3
-6)において、ソース側一時レジスタの値をALUのソ
ース側入力に入れ、ディスティネーション側一時レジス
タの値をALUのディスティネーション側入力に入れて
加算演算を行い、その演算結果をWBステージによりデ
ィスティネーション側に書き込む処理が行われる。
の命令の例であり、キャリーフラグをセットする命令で
ある。CLCの命令コードが命令レジスタ(IR)にラ
ッチされ、命令コード(IDステージ)が行われる。E
Xステージによりキャリーフラグのセットが行われる。
ごとのパイプラインと直交的な命令内のソース処理、デ
ィスティネーション処理およびオペレーション処理のパ
イプラインを同一構成にしたことにより、図1(B)に
示す命令ごとの処理の並列性と、図1(C)に示す命令
内の処理の並列性が相似となるため、命令列を処理する
場合の並列実行を図2(A)のように実現できる。
の実行例2の場合は図2(B)のようになる。この場合
にも、命令4-1 と命令4-2 の直交的な命令のなかのそれ
ぞれのソース処理、ディスティネーション処理およびオ
ペレーション処理を並列化するとともに、両者の命令間
の処理も並列化することができる。
(R2+))は直交的な命令の例である。(4-3)はソー
スオペランドであるR1のアクセスを行う。具体的に
は、汎用レジスタR1を読み出し、その値をソース側一
時レジスタに保持する。(4-4)はディスティネーション
オペランドのアクセスを行う。具体的には、汎用レジス
タR2で示すメモリアドレスをアクセスし、メモリを読
み出す。その読み出したメモリの値をディスティネーシ
ョン側一時レジスタに保持する。そして、汎用レジスタ
R2の値はALUを通してインクリメントして汎用レジ
スタR2に書き戻す。
命令を実行する。MOVは転送命令であり、具体的に
は、ソース側一時レジスタの値をALU入力に入れ、A
LUスルー出力した結果をディスティネーション側に書
き込む。ディスティネーションは上記(4-4)でアクセス
したメモリのアドレスを保持している。
0)は直交的な命令の例である。(4-7)は上記(3-4)と同
じ動作をする。(4-8)は上記(3-5)と同じ動作をする。(4
-9)は上記(3-6)と同じ動作をする。
令内のパイプライン実行の制御と命令ごとのパイプライ
ン実行の制御の2つを、同一制御論理回路を使用して制
御可能であるので、命令ごとのパイプラインと命令内の
パイプラインを別の構成にした中央処理装置に比べて制
御論理回路を縮小化できる。
ィネーションおよびオペレーションの処理の並列化によ
り処理の高速化が実現できるとともに、そのパイプライ
ンは命令ごとのパイプライン化とまったく同一のものを
使用しているので、新たに命令内の並列処理のためにパ
イプラインを再設計する必要がなくなり、設計期間も短
縮できる。
スティネーションの2オペランド命令の場合について説
明したが、本発明は、2オペランド命令に限られるもの
ではなく、1オペランド命令あるいは3オペランド以上
の命令の場合にも同様に適用し得る。
少なくとも1つのオペランドおよびオペレーションを決
定する各機械語の部分をそれぞれバイト単位で独立に構
成し、直交的な命令以外の命令の実行を命令ごとにパイ
プライン処理するとともに、直交的な命令内の少なくと
も1つのオペランドおよびオペレーションの各処理をパ
イプライン化し、直交的な命令内のパイプラインと直交
的な命令以外の命令間のパイプラインとを同一構成にし
たことにより、命令内パイプラインと命令間パイプライ
ンの2つのパイプライン中の各ステージ構成を対称にで
きるので、2つのパイプラインの処理を単一パイプライ
ン制御論理によって実行できるとともに、制御論理の単
純化および論理の縮小化が可能となる効果がある。
は機械語の構成を、(B)は命令ごとのパイプラインの
構成を、(C)は命令内のパイプラインの構成をそれぞ
れ示している。
あり、(A)は直交的な命令が1つの実行例1の場合
を、(B)は直交的な命令が2つ連続する実行例2の場
合をそれぞれ示している。
ロック図である。
ネーションを決定する機械語部分、13…オペレーショ
ンを決定する機械語部分、51…制御ROM、52…デ
コードPLA、59…プログラムカウンタ、60…ペー
ジレジスタ、61…アドレスバッファ、62…データバ
ス、63…アドレスバス
Claims (2)
- 【請求項1】 少なくとも1つのオペランドおよびオペ
レーションの各種類を独立に選択可能な直交的な命令を
部分的に持つ中央処理装置であって、 前記少なくとも1つのオペランドおよびオペレーション
を決定する各機械語の部分をそれぞれバイト単位で独立
に構成し、 直交的な命令以外の命令の実行を命令ごとにパイプライ
ン処理するとともに、直交的な命令内の前記少なくとも
1つのオペランドおよびオペレーションの各処理をパイ
プライン化し、 直交的な命令内のパイプラインと直交的な命令以外の命
令間のパイプラインとを同一構成にしたことを特徴とす
る中央処理装置。 - 【請求項2】 前記少なくとも1つのオペランドは、ソ
ースおよびディスティネーションであることを特徴とす
る請求項1記載の中央処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25256393A JP3339132B2 (ja) | 1993-09-14 | 1993-09-14 | 中央処理装置 |
US08/701,888 US5774740A (en) | 1993-09-14 | 1996-08-23 | Central processing unit for execution of orthogonal and non-orthogonal instructions |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25256393A JP3339132B2 (ja) | 1993-09-14 | 1993-09-14 | 中央処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0784783A JPH0784783A (ja) | 1995-03-31 |
JP3339132B2 true JP3339132B2 (ja) | 2002-10-28 |
Family
ID=17239120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25256393A Expired - Fee Related JP3339132B2 (ja) | 1993-09-14 | 1993-09-14 | 中央処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5774740A (ja) |
JP (1) | JP3339132B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6708268B1 (en) * | 1999-03-26 | 2004-03-16 | Microchip Technology Incorporated | Microcontroller instruction set |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58146941A (ja) * | 1982-02-26 | 1983-09-01 | Hitachi Ltd | マイクロプログラム制御デ−タ処理装置 |
EP0476722B1 (en) * | 1985-04-08 | 1997-02-26 | Hitachi, Ltd. | Data processing system |
JP2635057B2 (ja) * | 1987-11-04 | 1997-07-30 | 株式会社日立製作所 | マイクロプロセッサ |
-
1993
- 1993-09-14 JP JP25256393A patent/JP3339132B2/ja not_active Expired - Fee Related
-
1996
- 1996-08-23 US US08/701,888 patent/US5774740A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0784783A (ja) | 1995-03-31 |
US5774740A (en) | 1998-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6163171B2 (ja) | ソート加速プロセッサ、方法、システムおよび命令 | |
KR102449616B1 (ko) | 벡터 요소 세트에 대해 축소 연산을 수행하기 위한 방법 및 장치 | |
JP5926754B2 (ja) | 限定範囲ベクトルメモリアクセス命令、プロセッサ、方法、及びシステム | |
TWI512531B (zh) | 用以處理blake安全雜湊演算法的方法、設備、系統及製品 | |
US9411593B2 (en) | Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks | |
US20170300327A1 (en) | Packed data operation mask concatenation processors, methods, systems, and instructions | |
JP6526175B2 (ja) | ビットシャッフルプロセッサ、方法、システム、および命令 | |
JP6082116B2 (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
JP7419629B2 (ja) | データ表現間の一貫性のある変換を加速するプロセッサ、方法、プログラム、コンピュータ可読記憶媒体、および装置 | |
JP6673574B2 (ja) | ベクトルビットシャッフルを実行するための方法および装置 | |
TWI603208B (zh) | 利用索引和立即數執行向量排列的方法和設備 | |
JP2016531377A (ja) | インデックス付きベクトルメモリアクセス及び算術及び/または論理演算プロセッサ、方法、システム、及び命令 | |
CN106030514B (zh) | 用于执行采用传播的被屏蔽源元素存储指令的处理器及其方法 | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
TW201732570A (zh) | 用於聚合集中及跨步的系統、裝置及方法 | |
JP6741006B2 (ja) | マスクレジスタとベクトルレジスタとの間で可変に拡張するための方法および装置 | |
US5704052A (en) | Bit processing unit for performing complex logical operations within a single clock cycle | |
JP2017142799A (ja) | プロセッサおよび方法 | |
CN109313553B (zh) | 用于跨步加载的系统、装置和方法 | |
US6931517B1 (en) | Pop-compare micro instruction for repeat string operations | |
JP6088655B2 (ja) | 単一の命令に応じて回転及びxorを実行するためのシステム、装置及び方法 | |
CN112148251A (zh) | 跳过无意义的矩阵运算的系统和方法 | |
JP2017539013A (ja) | 競合検出を実行するための方法および装置 | |
JPH05150979A (ja) | 即値オペランド拡張方式 | |
JP2018500652A (ja) | マスクをマスク値のベクトルに拡張するための方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080816 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090816 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100816 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110816 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110816 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120816 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |