JPH05289870A - 並列命令実行制御方式 - Google Patents
並列命令実行制御方式Info
- Publication number
- JPH05289870A JPH05289870A JP11521692A JP11521692A JPH05289870A JP H05289870 A JPH05289870 A JP H05289870A JP 11521692 A JP11521692 A JP 11521692A JP 11521692 A JP11521692 A JP 11521692A JP H05289870 A JPH05289870 A JP H05289870A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- parallel
- assembly
- flag
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 複雑なハードウェアを用いることなく、プロ
セッサの並列実行制御を容易に行えるようにする。 【構成】 複数の演算部を有するプロセッサの各々の演
算部を目的プログラムであるアセンブリ命令列に含まれ
る各アセンブリ命令によって並列に制御する並列命令実
行制御方式において、前記アセンブリ命令のフィールド
内に命令群の終りであるか否かを示すフラグを設け、前
記プロセッサの実行時には、サイクル毎にそのフラグが
セットされている命令までを取り出して前記各演算部で
並列に実行させる。
セッサの並列実行制御を容易に行えるようにする。 【構成】 複数の演算部を有するプロセッサの各々の演
算部を目的プログラムであるアセンブリ命令列に含まれ
る各アセンブリ命令によって並列に制御する並列命令実
行制御方式において、前記アセンブリ命令のフィールド
内に命令群の終りであるか否かを示すフラグを設け、前
記プロセッサの実行時には、サイクル毎にそのフラグが
セットされている命令までを取り出して前記各演算部で
並列に実行させる。
Description
【0001】
【産業上の利用分野】本発明は、複数の演算部を有する
プロセッサの各演算部を並列に制御するための並列命令
実行制御方式に関するものである。
プロセッサの各演算部を並列に制御するための並列命令
実行制御方式に関するものである。
【0002】
【従来の技術】前記のようなプロセッサにおいては、コ
ンパイラが目的プログラムを生成する時点で命令及びデ
ータの依存関係が解析され、その結果に基づいてアセン
ブリ命令の配置が行なわれる。生成される目的プログラ
ムたるアセンブリ命令列は並列アセンブリ命令の並び
で、並列アセンブリ命令の各々は演算部の数に等しい数
のアセンブリ命令を含むが、一個又はそれ以上の演算部
で実行すべき命令が存在しないサイクルにおいては、並
列アセンブリ命令中の対応する箇所には何も実行しない
ことを示す空命令が置かれる。実行時にはサイクル毎
に、目的プログラムたるアセンブリ命令列から1個の並
列アセンブリ命令即ち演算部の数に等しい数のアセンブ
リ命令群を取り出してデコードし、その結果に基づいて
各々の演算部が制御される。
ンパイラが目的プログラムを生成する時点で命令及びデ
ータの依存関係が解析され、その結果に基づいてアセン
ブリ命令の配置が行なわれる。生成される目的プログラ
ムたるアセンブリ命令列は並列アセンブリ命令の並び
で、並列アセンブリ命令の各々は演算部の数に等しい数
のアセンブリ命令を含むが、一個又はそれ以上の演算部
で実行すべき命令が存在しないサイクルにおいては、並
列アセンブリ命令中の対応する箇所には何も実行しない
ことを示す空命令が置かれる。実行時にはサイクル毎
に、目的プログラムたるアセンブリ命令列から1個の並
列アセンブリ命令即ち演算部の数に等しい数のアセンブ
リ命令群を取り出してデコードし、その結果に基づいて
各々の演算部が制御される。
【0003】
【発明が解決しようとする課題】しかしながら、従来に
あっては実際には各サイクルにおいて全ての演算部に対
してアセンブリ命令を実行させることは不可能であるこ
とが多く、特に並列性の低いプログラムの場合、目的プ
ログラムは多くの空命令を含むことになる。こうした問
題を解決する手段として、例えばClowell R.
P.,Nix R.P.,O’donnell J.J.,P
apworth D.B.and Rodman P.
K.:“A VLIW architecture f
or atrace scheduling comp
iler”,IEEE Trans.Computer
s,37,8,pp.967−979(1988−0
8)に、展開後の命令の位置情報を付加して目的プログ
ラムの圧縮を行ない、実行時に専用のハードウェアを用
いてキャッシュメモリ上で圧縮された目的プログラムを
展開する方式が提唱されている。ところが、この方式で
は展開用ハードウェアの構成が非常に複雑になるという
難点がある。
あっては実際には各サイクルにおいて全ての演算部に対
してアセンブリ命令を実行させることは不可能であるこ
とが多く、特に並列性の低いプログラムの場合、目的プ
ログラムは多くの空命令を含むことになる。こうした問
題を解決する手段として、例えばClowell R.
P.,Nix R.P.,O’donnell J.J.,P
apworth D.B.and Rodman P.
K.:“A VLIW architecture f
or atrace scheduling comp
iler”,IEEE Trans.Computer
s,37,8,pp.967−979(1988−0
8)に、展開後の命令の位置情報を付加して目的プログ
ラムの圧縮を行ない、実行時に専用のハードウェアを用
いてキャッシュメモリ上で圧縮された目的プログラムを
展開する方式が提唱されている。ところが、この方式で
は展開用ハードウェアの構成が非常に複雑になるという
難点がある。
【0004】また、前記の問題がコンパイラが静的に目
的プログラムの配置を行なうことに起因するものである
ことから、それとは全く異なる側面からの並列実行制御
の手段として、実行時に動的に命令の依存関係の解析を
行ないそれに基づいて複数の演算部を持つプロセッサの
実行制御を行なおうとするsuperscalarとい
う方式が、McGeady S.:“The i960
CA superscalar implementa
tion of the 80960 archite
cture”,Compcon Spring 90
digestof papers,pp.232−24
0,IEEE(1990)等により提案されている。し
かし、このsuperscaler方式では命令の依存
関係及び資源の利用可能性の解析のための複雑で膨大な
ハードウェアが必須であり、また命令の依存関係の解析
が狭い範囲に限定されるという難点があった。
的プログラムの配置を行なうことに起因するものである
ことから、それとは全く異なる側面からの並列実行制御
の手段として、実行時に動的に命令の依存関係の解析を
行ないそれに基づいて複数の演算部を持つプロセッサの
実行制御を行なおうとするsuperscalarとい
う方式が、McGeady S.:“The i960
CA superscalar implementa
tion of the 80960 archite
cture”,Compcon Spring 90
digestof papers,pp.232−24
0,IEEE(1990)等により提案されている。し
かし、このsuperscaler方式では命令の依存
関係及び資源の利用可能性の解析のための複雑で膨大な
ハードウェアが必須であり、また命令の依存関係の解析
が狭い範囲に限定されるという難点があった。
【0005】本発明の目的は、前記の問題を解消して、
不要な空命令を含まないサイズの小さな目的プログラム
によって、複雑なハードウェアを用いることなく前記の
ようなプロセッサの並列実行制御を容易に行なえるよう
にした並列命令実行制御方式を提供することにある。
不要な空命令を含まないサイズの小さな目的プログラム
によって、複雑なハードウェアを用いることなく前記の
ようなプロセッサの並列実行制御を容易に行なえるよう
にした並列命令実行制御方式を提供することにある。
【0006】
【課題を解決するための手段】本発明における並列命令
実行制御方式は、アセンブリ命令のフィールド内に命令
群の終りを示すフラグを設けて、各サイクル毎にそのフ
ラグがセットされている命令までを取り出して実行する
ことにより、従来のような不要な空命令を含むことなく
容易に並列実行制御を行なうことを特徴とするものであ
る。
実行制御方式は、アセンブリ命令のフィールド内に命令
群の終りを示すフラグを設けて、各サイクル毎にそのフ
ラグがセットされている命令までを取り出して実行する
ことにより、従来のような不要な空命令を含むことなく
容易に並列実行制御を行なうことを特徴とするものであ
る。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て詳細に説明する。図1は本発明の並列命令実行制御方
式に基づく目的プログラムの一実施例を示した図であ
る。以下、図1の実施例の手順について具体的に説明す
る。なお、ここで対象としているプロセッサは、1サイ
クルに整数演算命令(またはロード/ストア命令)を2
個、浮動小数点演算命令を1個、分岐命令を1個同時に
実行することが可能であるとし、また簡略化のため遅延
は生じないものとする。
て詳細に説明する。図1は本発明の並列命令実行制御方
式に基づく目的プログラムの一実施例を示した図であ
る。以下、図1の実施例の手順について具体的に説明す
る。なお、ここで対象としているプロセッサは、1サイ
クルに整数演算命令(またはロード/ストア命令)を2
個、浮動小数点演算命令を1個、分岐命令を1個同時に
実行することが可能であるとし、また簡略化のため遅延
は生じないものとする。
【0008】図1において、11.12.13.14は
それぞれ1サイクルで同時に実行されるべき並列アセン
ブリ命令を示す。この並列アセンブリ命令は可変個のア
センブリ命令を含んでいる。例えば、11の並列アセン
ブリ命令は各々の整数演算器で実行されるべきアセンブ
リ命令111と113を含む。ここで、111はレジス
タr8の内容に整数10を加算して結果をr8に置くこ
とを表し、113はレジスタr10の内容から整数1を
減算して結果をr10に置くことを表す。また、11
2,114は各々命令111,113が並列アセンブリ
命令の終りか否かを示すフラグである。112はセット
されていないフラグで、114はセットされているフラ
グである。同様に、12の並列アセンブリ命令は、r8
の内容を変数aへストアする命令121とr8とr10
の内容を加算して結果をr8へ置く命令122を含んで
いる。また、13の並列アセンブリ命令はr8の内容が
0と等しいならば、ラベルlabelで示されるアドレ
スへ分岐する命令131を含み、14の並列アセンブリ
命令はaの内容をレジスタr9へロードする命令141
を含むことを示している。
それぞれ1サイクルで同時に実行されるべき並列アセン
ブリ命令を示す。この並列アセンブリ命令は可変個のア
センブリ命令を含んでいる。例えば、11の並列アセン
ブリ命令は各々の整数演算器で実行されるべきアセンブ
リ命令111と113を含む。ここで、111はレジス
タr8の内容に整数10を加算して結果をr8に置くこ
とを表し、113はレジスタr10の内容から整数1を
減算して結果をr10に置くことを表す。また、11
2,114は各々命令111,113が並列アセンブリ
命令の終りか否かを示すフラグである。112はセット
されていないフラグで、114はセットされているフラ
グである。同様に、12の並列アセンブリ命令は、r8
の内容を変数aへストアする命令121とr8とr10
の内容を加算して結果をr8へ置く命令122を含んで
いる。また、13の並列アセンブリ命令はr8の内容が
0と等しいならば、ラベルlabelで示されるアドレ
スへ分岐する命令131を含み、14の並列アセンブリ
命令はaの内容をレジスタr9へロードする命令141
を含むことを示している。
【0009】図1では、まず4個のアセンブリ命令、す
なわち111,113,121,122が読み込まれる
が、命令113はフラグ114がセットされているの
で、このサイクルでは111及び113すなわち並列ア
センブリ命令11が実行され、121,122は次のサ
イクルまで実行しない。次のサイクルでは、122にフ
ラグがセットされているので、121及び122すなわ
ち並列アセンブリ命令12が実行される。同様にして、
それ以降のサイクルで並列アセンブリ命令13,14が
実行される。ここで命令131にはフラグが存在しない
が、これは分岐命令では必ず並列アセンブリ命令が区切
れるものと仮定しているためである。
なわち111,113,121,122が読み込まれる
が、命令113はフラグ114がセットされているの
で、このサイクルでは111及び113すなわち並列ア
センブリ命令11が実行され、121,122は次のサ
イクルまで実行しない。次のサイクルでは、122にフ
ラグがセットされているので、121及び122すなわ
ち並列アセンブリ命令12が実行される。同様にして、
それ以降のサイクルで並列アセンブリ命令13,14が
実行される。ここで命令131にはフラグが存在しない
が、これは分岐命令では必ず並列アセンブリ命令が区切
れるものと仮定しているためである。
【0010】対比のため、図2に従来方式による目的プ
ログラムの例を示す。図2の21,22,23,24は
並列アセンブリ命令を示すが、この場合1個の並列アセ
ンブリ命令は常に4個のアセンブリ命令から構成され
る。その4個の中にはNOPで表される空命令が1個ま
たはそれ以上含まれることもある。例えば、並列アセン
ブリ命令21は211,212,213,214のアセ
ンブリ命令を含むが、213,214は空命令である。
従来方式では、サイクル毎に21,22,23,24の
順に読み込まれて実行されるが、この場合半分以上が空
命令であり、本発明にくらべて2倍程のメモリ及びバス
等の資源を浪費することになる。
ログラムの例を示す。図2の21,22,23,24は
並列アセンブリ命令を示すが、この場合1個の並列アセ
ンブリ命令は常に4個のアセンブリ命令から構成され
る。その4個の中にはNOPで表される空命令が1個ま
たはそれ以上含まれることもある。例えば、並列アセン
ブリ命令21は211,212,213,214のアセ
ンブリ命令を含むが、213,214は空命令である。
従来方式では、サイクル毎に21,22,23,24の
順に読み込まれて実行されるが、この場合半分以上が空
命令であり、本発明にくらべて2倍程のメモリ及びバス
等の資源を浪費することになる。
【0011】
【発明の効果】以上に示した如く本発明は、不要な空命
令を含まない目的プログラムを用いて、前記のようなプ
ロセッサに対する並列実行制御を容易に行なえるという
効果がある。
令を含まない目的プログラムを用いて、前記のようなプ
ロセッサに対する並列実行制御を容易に行なえるという
効果がある。
【図1】本発明の並列命令実行制御方式に基づく目的プ
ログラムの一実施例を示した図である。
ログラムの一実施例を示した図である。
【図2】従来方式による目的プログラムを示した図であ
る。
る。
11〜14 並列アセンブリ命令 111,113,121,122,131,141 各
演算器で実行されるべきアセンブリ命令 112,114 フラグ
演算器で実行されるべきアセンブリ命令 112,114 フラグ
Claims (1)
- 【請求項1】 複数の演算部を有するプロセッサの各々
の演算部を目的プログラムであるアセンブリ命令列に含
まれる各アセンブリ命令によって並列に制御する並列命
令実行制御方式において、前記アセンブリ命令のフィー
ルド内に命令群の終りであるか否かを示すフラグを設
け、前記プロセッサの実行時には、サイクル毎にそのフ
ラグがセットされている命令までを取り出して前記各演
算部で並列に実行させることを特徴とする並列命令実行
制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4115216A JP2797833B2 (ja) | 1992-04-09 | 1992-04-09 | 並列命令実行制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4115216A JP2797833B2 (ja) | 1992-04-09 | 1992-04-09 | 並列命令実行制御方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05289870A true JPH05289870A (ja) | 1993-11-05 |
| JP2797833B2 JP2797833B2 (ja) | 1998-09-17 |
Family
ID=14657241
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4115216A Expired - Fee Related JP2797833B2 (ja) | 1992-04-09 | 1992-04-09 | 並列命令実行制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2797833B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5951674A (en) * | 1995-03-23 | 1999-09-14 | International Business Machines Corporation | Object-code compatible representation of very long instruction word programs |
| US6880150B1 (en) | 1998-04-28 | 2005-04-12 | Matsushita Electric Industrial Co., Ltd. | Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor |
| USRE41751E1 (en) | 1998-03-30 | 2010-09-21 | Panasonic Corporation | Instruction converting apparatus using parallel execution code |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61245239A (ja) * | 1985-04-23 | 1986-10-31 | Toshiba Corp | 論理回路方式 |
-
1992
- 1992-04-09 JP JP4115216A patent/JP2797833B2/ja not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS61245239A (ja) * | 1985-04-23 | 1986-10-31 | Toshiba Corp | 論理回路方式 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5951674A (en) * | 1995-03-23 | 1999-09-14 | International Business Machines Corporation | Object-code compatible representation of very long instruction word programs |
| USRE41751E1 (en) | 1998-03-30 | 2010-09-21 | Panasonic Corporation | Instruction converting apparatus using parallel execution code |
| US6880150B1 (en) | 1998-04-28 | 2005-04-12 | Matsushita Electric Industrial Co., Ltd. | Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor |
| US6976245B2 (en) | 1998-04-28 | 2005-12-13 | Matsushita Electric Industrial Co., Ltd. | Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor |
| US6976250B2 (en) | 1998-04-28 | 2005-12-13 | Matsushita Electric Industrial Co., Ltd. | Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor |
| US7080367B2 (en) | 1998-04-28 | 2006-07-18 | Matsushita Electric Industrial Co., Ltd. | Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor |
| US7823142B2 (en) | 1998-04-28 | 2010-10-26 | Panasonic Corporation | Processor for executing instructions in units that are unrelated to the units in which instructions are read, and a compiler, an optimization apparatus, an assembler, a linker, a debugger and a disassembler for such processor |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2797833B2 (ja) | 1998-09-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5150470A (en) | Data processing system with instruction queue having tags indicating outstanding data status | |
| US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
| JP2918631B2 (ja) | デコーダ | |
| US8386754B2 (en) | Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism | |
| EP0312764A2 (en) | A data processor having multiple execution units for processing plural classes of instructions in parallel | |
| US6330657B1 (en) | Pairing of micro instructions in the instruction queue | |
| US4967338A (en) | Loosely coupled pipeline processor | |
| US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
| JPH02227730A (ja) | データ処理システム | |
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| JPH01310441A (ja) | データ処理装置 | |
| JPH09152973A (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
| JPH0673105B2 (ja) | 命令パイプライン方式のマイクロプロセッサ | |
| JPH05289870A (ja) | 並列命令実行制御方式 | |
| KR20040111559A (ko) | 주소 레지스터의 내용을 스와핑하기 위한 방법 및 장치 | |
| JP2620505B2 (ja) | スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム | |
| JPH1153189A (ja) | 演算装置、演算方法及びコンピュータ読み取り可能な記録媒体 | |
| US7107478B2 (en) | Data processing system having a Cartesian Controller | |
| JP2551163B2 (ja) | 命令処理制御方式 | |
| JP2004287919A (ja) | 演算装置及び制御装置及び演算処理装置及び演算方法及び演算プログラム | |
| JP2851192B2 (ja) | 並列演算処理装置におけるキャリー付き加減算処理方式 | |
| JP3079090B2 (ja) | プロセッサ及びプログラム変換装置 | |
| JPS5971542A (ja) | 演算処理装置 | |
| JPH0353322A (ja) | 情報処理装置 | |
| JPS62226336A (ja) | マイクロプログラム制御方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 9 Free format text: PAYMENT UNTIL: 20070703 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080703 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090703 Year of fee payment: 11 |
|
| LAPS | Cancellation because of no payment of annual fees |