JPH1185513A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH1185513A
JPH1185513A JP23798397A JP23798397A JPH1185513A JP H1185513 A JPH1185513 A JP H1185513A JP 23798397 A JP23798397 A JP 23798397A JP 23798397 A JP23798397 A JP 23798397A JP H1185513 A JPH1185513 A JP H1185513A
Authority
JP
Japan
Prior art keywords
instruction
instructions
branch
circuit
register
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.)
Pending
Application number
JP23798397A
Other languages
English (en)
Inventor
Kentaro Shimada
健太郎 島田
Yoshio Miki
良雄 三木
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP23798397A priority Critical patent/JPH1185513A/ja
Publication of JPH1185513A publication Critical patent/JPH1185513A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】依存関係がある命令を含む複数の命令を同時に
発行可能とする。 【解決手段】命令発行部12は実行すべき5つの命令を
それらの間の依存関係の有無に依らないで同時に発行
し、第1の命令は演算器16aに直ちに送られ、パイプ
ラインレジスタ17a〜17jは第2の命令以降を1マ
シンサイクル遅れで順次演算器16b〜16eに供給す
る。命令発行部12はそれらの命令の間の依存関係に基
づいて制御信号122b等を生成する。制御回路19b
は、演算器16bに送付された命令が指定する二つのデ
ータをレジスタファイル15から読み出し、その演算器
の演算結果をその命令が指定するレジスタに書き込む。
スイッチ回路14bは、制御信号122bに応答して、
読み出された二つのデータおよび先行する演算器16a
の演算結果の内の二つを選択して演算器16bに供給す
る。分岐制御部20は上記5つの命令の中に含まれた分
岐命令を実行する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の命令を同時
に発行し、並列に実行するプロセッサに係り、とくに概
念的な順序に従って順次実行されるように構成された複
数の命令を並列に実行するスーパースカラプロセッサあ
るいはそれぞれ複数の小命令よりなる複数の長語長命令
(VLIW(Very Long Instructio
n Word))を順次実行するプロセッサ(以下、V
LIWプロセッサと呼ぶ)に関する。
【0002】
【従来の技術】スーパースカラプロセッサは、順次実行
されるように構成された複数の独立の命令を並列に実行
する。各命令はパイプライン的に実行され、先行して実
行中の命令と並列に実行される。スーパースカラプロセ
ッサで実行される命令は、元来順次実行するように構成
されているために、並列に実行できない場合もある。そ
のため、スーパースカラプロセッサは、並列に実行しよ
うとする複数の命令が並列に実行可能であるか否かを判
別する回路を有する。もし、それらの命令が並列に実行
できないときには、それらの命令は順次実行される。そ
れらの命令が並列に実行できないときとは、それらの複
数の命令の中に依存関係がある少なくとも2つの命令が
含まれていることである。すなわち、ある命令の実行結
果データを演算に使用する他の命令がそれらの命令の中
に含まれているときである。このような2つの命令の間
にはオペランドコンフリクトがあるとも呼ばれる。依存
関係があるために並列に実行できない複数の命令の組が
発生するのを減少させるために、従来ではコンパイラに
より命令の配置を最適化することが行われてきた。
【0003】VLIWプロセッサでは、各長語長命令
は、複数の小命令を含み、大命令とも呼ばれる。各大命
令内の複数の小命令は同時に発行され、互いに並列に実
行され、各大命令はパイプライン的に実行され、先行し
て実行中の大命令と並列に実行される。各大命令内の複
数の小命令が並列に実行可能なためには、同じ大命令中
の複数の小命令間に依存関係があってはならない。した
がって、複数の小命令をいずれの大命令に配置するかに
関する小命令の配置の最適化がコンパイラにより行われ
ている。例えば情報処理Vol.31 No.6 pp.
763−772の解説「VLIW計算機のためのコンパ
イラ技術」(中谷登志男、情報処理学会、1990年6
月)参照。よく知られているこのようなコンパイラの最
適化手法としては、ループにおけるループ展開及びソフ
トウェア・パイプライニングという手法がある。これら
はループの繰り返しの間で依存関係のない命令を探そう
とするものである。
【0004】
【発明が解決しようとする課題】しかしそのような最適
化がどのくらい可能であるかはプログラムの性質にもよ
り、常に大きな効果があるとは限らない。さらに、最も
大きな問題は、ループ中に条件文を含むプログラムであ
る。例えば、上記ソフトウェア・パイプライニングで
は、ループで繰り返し実行される命令列が静的に決定さ
れている必要がある。しかし、ループ中に条件文を含む
ような場合では、条件分岐の結果により実行される命令
列が動的に変化してしまうので、上記ソフトウェア・パ
イプライニングを適用することが困難である。
【0005】このように従来技術では、スーパスカラプ
ロセッサあるいはVLIWプロセッサで実行するプログ
ラムに対して、静的に確定できる命令列中の命令間で依
存関係による性能低下を解消するように、命令の配置の
最適化をコンパイラによって実施していた。しかし、実
行命令列に動的な変動があると、そのようにして最適化
したプログラムも充分最適とは言えず、命令間の依存関
係がかなり残存するという場合が多かった。また、その
ような動的な変動を考慮して命令の配置を最適化するこ
とも難しい。したがって、スーパスカラプロセッサ用の
プログラムでは、相前後する位置にある複数の命令の間
に依存関係が残存することが生じる。その場合、それら
の命令はスーパスカラプロセッサでは同時に発行されな
いで、順次発行される。このために、並列に実行される
命令の割合が減少し、その結果、プログラムの実行時間
が増大する。
【0006】一方、VLIWプロセッサ用のVLIW命
令の場合、一つのVLIW命令中の複数の小命令は相互
に依存関係がないように定められる。あるVLIW命令
中の小命令に対して依存関係がある他の小命令は他のV
LIW命令中に含まれるように、小命令の配置が定めら
れる。あるVLIW命令中の格納可能な小命令の最大数
より少ない小命令がそのVLIW命令に格納される場
合、この最大数と実際に配置された小命令の総数との差
に相当する数のNOP命令がそのVLIW命令に埋め込
まれる。VLIW命令からなるプログラムの場合、でき
るだけ少ない数のVLIW命令によりプログラムが構成
されるように、上記スーパスカラープロセッサ用のプロ
グラムと同様にして、小命令の配置が最適化される。し
かし、同一のVLIW命令中の小命令が相互に依存関係
があってはならないという制約のために、小命令の最適
化は必ずしも十分でないことが生じる。
【0007】本発明の目的は、依存関係が存在する複数
の命令を含む一群の命令を同時に発行し、しかも多数の
命令群をパイプライン的に並列に実行可能なプロセッサ
を提供することである。
【0008】本発明のより具体的な目的は、条件文によ
り動的に実行される命令列が変わる場合でも、依存関係
が存在する複数の命令を含む一群の命令を同時に発行
し、しかも多数の命令群をパイプライン的に並列に実行
可能なプロセッサを提供することである。
【0009】本発明のより具体的な目的は、上記条件文
により動的に実行される命令列が変わる場合でも、依存
関係が存在する複数の命令を含む一群の命令を同時に発
行し、しかも多数の命令群をパイプライン的に並列に実
行可能なスーパスカラプロセッサを提供することであ
る。
【0010】本発明の他のより具体的な目的は、上記条
件文により動的に実行される命令列が変わる場合でも、
依存関係が存在する複数の命令を含む一群の命令を同時
に発行し、しかも多数の命令群をパイプライン的に並列
に実行可能な、VLIW命令用のプロセッサを提供する
ことである。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明によるプロセッサは、命令で指定可能な複数
のレジスタからなるレジスタファイルと、複数(n)個
の順序付けられた演算器と、上記複数の演算器に対応し
て設けられた複数のオペランド制御回路と、次に実行す
べきn個の命令を並列に発行する命令発行回路と、上記
n個の発行された命令をそれぞれ上記複数の演算器の内
の一つおよびその演算器に対応するオペランド制御回路
に順次異なる時間差を付けて供給する命令情報供給回路
とを有する。
【0012】より具体的には、上記命令発行回路は、上
記n個の命令の内の先頭の命令以外の命令の一つと、そ
のn個の命令の内の先行する命令との間のレジスタオペ
ランドのコンフリクトの有無を検出する複数のコンフリ
クト検出回路を有し、上記命令情報供給回路は、各コン
フリクト検出回路により上記他の複数の命令の一つに対
して検出されたコンフリクト検出結果信号を、対応する
命令とともに上記複数の演算器の内の一つに対応するオ
ペランド制御回路に供給する。
【0013】各オペランド制御回路は、レジスタ読み書
き制御回路と、スイッチ回路とを有する。上記レジスタ
読み書き制御回路は、上記命令情報供給回路により供給
された命令に応答して、その命令が指定するレジスタの
データを上記レジスタファイルから読み出し、上記スイ
ッチ回路は、上記命令情報供給回路により供給されたコ
ンフリクト検出結果信号に応答して、そのオペランド制
御回路に対応する演算器に先行するいずれかの演算器の
出力データもしくは上記レジスタ読み書き制御回路によ
り読み出されたデータを選択して上記対応する演算器に
供給する。上記レジスタ読み書き制御回路は、上記命令
情報供給回路により供給された上記命令に応答して、上
記対応する演算器による演算結果データを上記レジスタ
ファイル内の、上記命令が指定するレジスタに書き込
む。
【0014】本発明の望ましい実施の形態では、上記プ
ロセッサは、スーパスカラプロセッサであり、この場合
には、上記n個の命令は、プログラムが想定する概念的
順序にしたがって逐次実行されるべきスカラ命令であ
る。
【0015】本発明の他の望ましい実施の形態では、上
記プロセッサは、VLIWプロセッサであり、この場合
には、 上記n個の命令は、一つの大命令に含まれた同
時に実行されるべきn個の小命令である。
【0016】
【発明の実施の形態】以下、本発明に係るプロセッサを
図面に示したいくつかの実施の形態を参照してさらに詳
細に説明する。なお、以下においては、同じ参照番号は
同じものもしくは類似のものを表わすものとする。ま
た、発明の第2の実施の形態以降においては、発明の第
1の実施の形態との相違点を主に説明するに止める。
【0017】<発明の実施の形態1>図1に示すスーパ
スカラプロセッサにおいて、第1の演算器13aから第
5の演算器13eが設けられ、命令で指定可能な複数の
レジスタからなるレジスタファイル15がそれらの演算
器に共通に設けられている。命令フェッチ部11はメモ
リ2より命令を読み込み、一度に複数の命令を命令発行
部12へ送る。命令発行部12は、次に実行すべき命令
として、演算器の総数に等しい5つの命令の中に分岐命
令が含んでいないときには、それらの5つの命令を第1
の演算器13aから第5の演算器13eに対して線12
1aから121eを介して発行する。発行された最初の
命令は直接線121aを介して第1の演算器16aに直
ちに供給される。発行された第2の命令は、一つのパイ
プラインレジスタ17aを介して1マシンクロック後に
第2の演算器16bに供給される。発行された第3の命
令は、2つのパイプラインレジスタ17b、17eを介
して2マシンクロック後に第3の演算器16cに供給さ
れる。発行された第4の命令は、3つのパイプラインレ
ジスタ17c、17f、17hを介して3マシンクロッ
ク後に第4の演算器16dに供給される。発行された第
5の命令は、4つのパイプラインレジスタ17d、17
g、17i、17jを介して4マシンクロック後に第5
の演算器16eに供給される。
【0018】パイプラインレジスタ17aから17jの
各々は、クロックに応答してそのレジスタに保持された
データを後続のパイプラインレジスタに転送する。した
がって、これらのレジスタは、それぞれパイプライン径
路を構成する。これらのパイプライン径路は、命令およ
び後に説明する、その命令の実行に使用されるスイッチ
制御信号等の命令情報を演算器に供給する命令供給回路
として機能する。本実施の形態では、第2の演算器以降
の演算器に命令を転送する4つのパイプライン径路が使
用される。これらのパイプライン径路を構成するパイプ
ラインレジスタの数は、一つづつ異なる。この結果、5
個の命令の内、先頭の命令以外の他の命令は、先頭の命
令が先頭の演算器に供給されるタイミングよりも順次1
マシーンサイクル遅れで、第2の演算器以降の演算器1
6b、16c、16d、16eに順次供給される。命令
発行部12は、次に実行すべき5つの命令の中に分岐命
令が含まれているときには、その分岐命令より前の命令
を同時に発行するとともに、その分岐命令を分岐制御部
20に対して発行する。この分岐制御部20には演算器
16aから16eの出力が供給されている。
【0019】各演算器に対応してR/W制御回路19
a、19b、19c、19dまたは19eが設けられて
いる。各R/W制御回路19aは、対応する演算器に対
して発行された命令が指定する2つのレジスタオペラン
ドをレジスタファイル15から読み出し、その演算器で
の演算結果データを、レジスタファイル15内の、その
命令が指定するレジスタに格納する。各演算器に対応し
て入力データを選択するためのスイッチ回路14a、1
4b、14cまたは14dが設けられている。各スイッ
チ回路は、それに対応する演算器の先行する一つまたは
複数の演算器の出力とレジスタファイルから読み出され
た2つのレジスタオペランドの内、その対応する演算器
に供給する2つのオペランドを選択する。もし、そのス
イッチ回路に対応する演算器に対して発行された命令
が、先行する命令の演算結果を使用するとき、その先行
する命令の演算を実行した演算器の出力を選択する。こ
のように、各演算器に対応して設けられたR/W制御回
路およびスイッチ回路との組が、その演算器に供給する
データを選択しあるいはその演算器の演算結果データを
出力するオペランド制御回路として機能する。
【0020】このように、本実施の形態では、複数の命
令を同時に発行しながら、それぞれの命令の演算の実行
サイクルを順次遅延している。これにより、いずれかの
命令が先行する命令の演算結果を利用する命令であると
きでも、複数の命令を毎サイクル発行可能にしている。
さらに、スイッチ回路14aから14dの利用により、
先行する命令の演算結果データをレジスタファイル15
を介することなく直接後続の命令が利用可能にしてい
る。
【0021】図2において、命令発行部12では、命令
バッファ制御回路125は、命令フェッチ部11によっ
てメモリ2から読み込まれた複数の命令を命令バッファ
124に順次格納する。命令バッファ制御回路125
は、命令バッファ124に格納されている複数の命令を
先頭から5命令だけ毎サイクル切り出す。分岐命令判定
回路126は、切り出された5つの命令の中に分岐命令
があるか否かを検出する。もし、分岐命令が含まれてい
ないときには、後に説明するようにANDゲート129
aから129eがオンとされ、切り出された5命令は、
線121a、121b、121c、121d、121e
を介して前述の演算器に対して発行される。
【0022】もし分岐命令が切り出された5命令の中に
含まれているときには、セレクタ127によりその分岐
命令を選択させ、分岐制御部20に線123を介して転
送するとともに、切り出された5つの命令内の、分岐命
令の番号より1小さい番号を線301により分岐制御部
20と命令バッファ制御回路125に通知する。さら
に、その分岐命令より前に位置する一つまたは複数の命
令だけを演算器群に対して発行するように、上記AND
ゲート129aから129eを制御する。なお、命令バ
ッファ制御回路125は、信号301に応答して、その
後に切り出す命令を決定する。
【0023】スイッチ制御回路123bから123e
は、それぞれ切り出された第2の命令以降の命令の一つ
に対応して設けられ、対応する命令と先行する一つまた
は複数の命令の各々との間のオペランドコンフリクトを
検出するコンフリクト検出回路(図示せず)を有し、コ
ンフリクト検出結果を表す信号として、その対応する命
令が発行される演算器に対応して設けられたスイッチ回
路14a、14b、、を制御するスイッチ制御信号12
1a、121b、、121dを生成する。本実施の形態
で使用する演算命令は、図5(a)に示すように、2つ
の読み出しレジスタ番号S0、S1と一つの書き込みレ
ジスタ番号T0を指定する。
【0024】同様にスイッチ制御回路123bは、切り
出された第1の命令の書き込みレジスタT0と切り出さ
れた第2の命令の2つの読み出しレジスタ番号S0、S
1を比較し、その結果、第1の命令の書き込みレジスタ
番号T0と第2の命令の読み出しレジスタ番号S0また
はS1のいずれかが等しい時には、第2の演算器に対応
して設けられたスイッチ回路14aにおいて、読み出し
レジスタ番号S0またはS1の代りに第1の演算器16
aによる演算結果データを入力データとして用いるよう
に、スイッチ回路14aのスイッチ制御信号122bを
生成する。上記比較の結果、第1の命令の書き込みレジ
スタ番号T0と第2の命令の読み出しレジスタ番号S0
またはS1のいずれとも一致しないことが検出されたと
きには、レジスタファイルから線15bに読み出される
レジスタ番号S0、S1のデータをそのまま入力データ
として選択するように、スイッチ制御信号122bを生
成する。
【0025】同様にスイッチ制御回路123cは、切り
出された第1及び第2の命令の書き込みレジスタ番号T
0と切り出された第3の命令の2つの読み出しレジスタ
番号S0、S1を比較し、第3の命令の入力データを選
択するスイッチ回路14bを制御するスイッチ制御信号
122cを生成する。スイッチ制御回路123dは、切
り出された第1〜第3の命令の書き込みレジスタ番号T
0と切り出された第4の命令の2つの読み出しレジスタ
番号S0、S1を比較し、第3の命令の入力データを選
択するスイッチ回路14cを制御するスイッチ制御信号
122dを生成する。スイッチ制御回路123eは、切
り出された第1〜第4の命令の書き込みレジスタ番号T
0と切り出された第5の命令の2つの読み出しレジスタ
番号S0、S1を比較し、第3の命令の入力データを選
択するスイッチ回路14dを制御するスイッチ制御信号
122eを生成する。
【0026】各スイッチ制御回路が生成したスイッチ制
御信号は、対応する命令と一緒に、その命令が発行され
る演算器に供給される。すなわち、切り出された第2の
命令に対するスイッチ制御信号122bは、パイプライ
ンレジスタ17aを介して第2の演算器16bに供給さ
れる。同様に第3の命令に対応するスイッチ制御信号1
22cは、パイプラインレジスタ17b、17eを介し
て第3の演算器16cに転送される。他のスイッチ制御
信号122d、122eも同様である。各スイッチ回路
14a、14b、、はクロスバスイッチからなる。した
がって、スイッチ制御信号122b、122c、112
d、122eは、対応するスイッチ回路の、それに対応
する演算器に接続された二つの出力端に接続されるべき
二つの入力端を指定する信号よりなる。
【0027】図1において、第1の演算器16aに対応
して設けられたレジスタ読み書き制御回路(以下、R/
W制御回路と呼ぶ)19aは、線121aを介して供給
された第1の命令が指定する読み出しレジスタ番号S
0、S1をレジスタファイル15に送り、それらの番号
のレジスタを線15aに読み出す。演算器16aは、線
121aを介して入力された第1の命令のオペコードお
よび線15aを介して入力された二つの読み出しレジス
タからの入力データをクロック毎に保持するラッチ機能
の付いた演算器である。さらに、この演算器は種々の演
算を実行できる演算器であり、それらの演算の内、第1
の命令で指定される演算を実行する。さらにいずれの演
算も1マシーンサイクル以内で実行される。以上のこと
は他の演算器についても同様である。さらにR/W制御
回路19aは、第1の演算器16aによる演算結果デー
タが確定した時点で、第1の命令が指定した書き込みレ
ジスタ番号T0をレジスタファイル15に送り、この演
算結果データをその番号のレジスタに書き込む。
【0028】図3に示すように、R/W制御回路19a
は、より具体的には、S0読み出し命令検出回路191
により、読み出しレジスタ番号S0に基づいてレジスタ
を読み出す命令が送られて来たことを検出し、読み出し
番号S0取り出し回路192により読み出しレジスタ番
号S0を取り出して、レジスタファイル15に送る。同
様に、S1読み出し命令検出回路193により、読み出
しレジスタ番号S1に基づいてレジスタを読み出す命令
が送られて来たことを検出し、読み出し番号S1取り出
し回路194により読み出しレジスタ番号S0を取り出
す。書き込みレジスタ番号T0については、T0書き込
み命令検出・タイミング生成回路195によりレジスタ
番号T0に書き込む命令が送られて来たことを検出する
とともに、演算器16aにおいて結果が生成されるタイ
ミングに合わせた信号を生成し、これに基づき書き込み
番号T0取り出し回路196により書き込みレジスタ番
号T0を取り出して、レジスタファイル15に送出す
る。他のR/W制御回路19b〜eも同じ構造である。
【0029】命令発行部12より発行された第2の命令
121bは、パイプラインレジスタ17aを介して第2
の演算器16bに供給され、この演算器に対応するR/
W制御回路19bは、R/W制御回路19aと同様にし
て、第2の命令が指定する二つの読み出しレジスタ番号
S0、S1のレジスタ内の二つのデータをレジスタファ
イル15から線15bに読み出す。第2の命令に対応す
るスイッチ制御信号122bは、パイプラインレジスタ
17aを介してスイッチ回路14aに供給される。スイ
ッチ回路14aは、このスイッチ制御信号122bに応
答して演算器に供給すべき二つの入力データを選択す
る。もし、第2の命令が第1の命令の演算結果を利用す
るときには、第1の演算器16aの出力が選択されるこ
とになる。この結果、第1の演算器16aの出力がレジ
スタファイル15に書き込まれた後に、その書き込まれ
たデータを読み出し演算器16bに供給するよりも速く
なる。R/W制御回路19bは、演算器16bによる演
算結果データをレジスタファイル15内に書き込むの
は、R/W制御回路19aと同じである。こうして、第
2の演算器16bは、第1の演算器16aより1マシン
サイクル遅れて第2の命令の演算を実行する。他の第3
から第5の命令も同様に実行される。
【0030】本実施の形態で使用される分岐命令の例を
図5(b)から(d)に示す。図5(b)は条件付き分
岐命令を示し、図中の”condition”で指定す
る条件が満たされたときに分岐を行う。図5(c)はル
ープを行うためのループ分岐命令で、ループカウントの
値を1減じ、0にならなければ分岐する。また図5
(d)は図5(c)の命令のためにループカウントの初
期値、即ちループの回数を設定するループカウンタ設定
命令である。分岐制御部20の詳細は以下に述べる命令
の実行態様の説明の中で行う。
【0031】本プロセッサの具体的な動作の例を、簡単
なプログラムで説明する。図7(a)はFORTRAN
言語で記述したソースプログラムの例である。これを機
械語プログラムに変換した例を図7(b)に示す。この
機械語プログラムは、プログラムが想定する概念的な順
序に従って逐次実行されるべきスカラ命令列からなる。
図7(b)はループの本体部分を示す。図7(b)に示
した命令の間では、1番目のLD命令の結果を3番目の
MUL命令が用いるなど依存関係がある。
【0032】図7(b)の機械語を従来のプロセッサで
動作させると図8のようになる。図8では図7(b)に
示した5命令以上を一度に実行できる、充分な並列度の
あるスーパースカラプロセッサを想定している。しか
し、上記依存関係により、5命令をすべて同時に実行す
ることはできない。結果として図8に示したようにルー
プを一回実行するのに4クロックかかることになる。
【0033】これに対し本実施の形態によるプロセッサ
での上記5命令の実行態様を図9に示す。図9では、各
命令を発行するサイクルとその命令の演算を実行するサ
イクルとを同じ命令の名称で示している。最初に5つの
命令が同時に発行されると、次のサイクル以降では、最
初のLD命令から第4のストア命令STR4までが順次
実行される。一方、第5の分岐命令は、ループ分岐命令
である。この分岐命令は、後に説明するように、分岐制
御部20により、これらの5つの命令が発行されたサイ
クルの次のサイクルで実行され、再度同じ命令列が再度
発行される。本実施の形態では、ループ分岐命令の実行
サイクルと同じサイクルに、新たに5つの命令が再発行
されると仮定している。この結果、図9に示したよう
に、本プロセッサでは、依存関係のある命令を含む複数
の命令を一度に発行できるので、分岐命令を実行し次
第、すぐ次のクロックで2回目のループを始めることが
できる。結果として図に示したように、ループ1回の実
行を1クロックで行うことができる。このように、本実
施の形態によれば、依存関係のある命令を含むループを
繰り返し実行するときでも、その依存関係の影響を受け
ないで、従来より高速に実行できる。
【0034】さて、上記ループ分岐命令は以下のように
して実行される。図4に示すように、分岐制御部20で
は、図1の命令発行部12より発行された5つの命令の
中に分岐命令があるときには、その分岐命令は命令発行
部12内のセレクタ127より線123を介して命令レ
ジスタ30に設定される。この命令レジスタ30に前述
のループ分岐命令がセットされたときには、分岐命令デ
コーダ36は、ループカウンタ減算信号309を出力
し、ループカウンタレジスタ34の内容を1だけ減じ、
さらに、セレクタ35に非ゼロ検出回路37の出力を選
択するようにセレクト信号308を供給する。非ゼロ検
出回路37は、ループカウンタレジスタ34の新たな値
が0にならなければループ分岐生起信号303を出力す
る。このループ分岐生起信号303はセレクタ35によ
り選択された分岐生起信号304として命令フェッチ部
11に、命令レジスタ30内のループ先頭アドレス30
6とともに命令フェッチ部11へ送られてフェッチ先が
分岐先に切り替わり、分岐が行われる。なお、ループカ
ウンタ34の減算の結果、その値が0の時はループ分岐
生起信号303は出力されず、分岐は行われない。
【0035】命令フェッチ部11は、それ自体公知のよ
うに、分岐予測を行って、1サイクルで次の命令の読み
出しを行っている。すなわち、メモリ2からフェッチし
た命令列の中に分岐命令が含まれているか否かを検出
し、分岐命令が検出されたときには、その命令が指定す
る分岐先の命令列を予めメモリ2よりフェッチし、命令
発行部12内の命令バッファ124に転送する回路を有
する。
【0036】より具体的には、図6に示すように、命令
フェッチ部11では、命令フェッチアドレスレジスタ4
01は、命令を読み出すアドレスが格納されている。分
岐予測・次読み出し命令アドレス生成回路404は、命
令フェッチアドレスレジスタ401の内容から分岐命令
の有無及び分岐の生起を予測し、次の読み出しアドレス
を生成する。このために、メモリ2より命令を読み出し
ている間に、次の読み出しアドレスを生成することがで
きる。また読み出した命令中に分岐命令が含まれている
かどうかを分岐命令検出回路405により判定し、判定
結果を分岐予測・次読み出し命令アドレス生成回路40
4に送る。分岐予測・次読み出し命令アドレス生成回路
404では、その判定結果を記録して、分岐命令の有無
を予測する。また分岐制御部20より、実際に分岐が生
起したことが通知された時は、分岐予測正誤判定回路4
03により、分岐予測が正しかったどうか判定され、誤
っていた時にはセレクタ402により正しい分岐アドレ
スが命令フェッチアドレスレジスタ401に設定され
て、正しいアドレスより命令の読み込みが行われる。
【0037】したがって、命令フェッチ部11は、そこ
に条件分岐生起信号304が供給されたときには、分岐
先の命令列の読み出しを命令バッファ制御回路125に
通知するのみでよい。命令バッファ制御回路125はこ
の通知に基づいて、分岐先の命令列の先頭の5つの命令
を切り出し、すでに述べたと同じようにこれらの命令を
実行する。この結果、図9に示したように、本実施の形
態では、分岐命令が実行されたサイクルと同じサイクル
に分岐先の5つの命令が発行可能であると仮定してい
る。
【0038】なお、実行された分岐命令が図5(c)の
ループカウンタ設定命令の場合には、命令中で指定され
た値が命令レジスタ30よりループカウンタ設定信号3
05に出力されて、ループカウンタレジスタ34に設定
される。本実施の形態では、図示した命令列にはこのよ
うな命令が示されていないが、このループに先立つ図示
していない命令列にこのループカウント設定命令が含ま
れていると仮定している。
【0039】図7のような例ではプログラムが簡単なた
め、従来のプロセッサでもコンパイラによる最適化を行
うことは可能である。しかしループ中にIF文を含むな
どプログラムが複雑になるとコンパイラでの最適化は困
難になる。本プロセッサではそのような場合にも効果を
あげることが可能である。次に図10にそのプログラム
の例を示す。
【0040】今、図10(a)に示すようにループ中に
IF文を含むようなプログラムがあったとする。これを
機械語へ変換した命令列の例は、図10(b)に示すよ
うに途中に条件分岐命令BLE L2とループ分岐命令
BR L1とを含み、後者の命令と先頭のロード命令L
D以外の全ての命令が先行するいずれかの命令に対して
依存関係を有する。図10(b)に示した命令列を図8
の場合と同じく5命令以上を一度に実行できる従来のス
ーパースカラプロセッサで実行した様子を図11に示
す。図11では、ループ1回目にIF文が成立し、ルー
プ2回目にIF文が不成立であった場合について示して
いる。
【0041】従来のスーパースカラプロセッサは、図1
1に示したように、ST命令とCMP命令のように相互
に依存関係のない命令は同時に実行することができる
が、その他の互いに依存関係のある命令は同時に実行す
ることはできない。しかも、IF文のためにBLE命令
が存在し、この命令が条件が成立するか不成立かで、動
的に実行される命令列が変更されている。図11では、
1回目のループでは条件が成立したためIF文の本体を
含む全10命令が実行されているが、2回目のループで
は条件が不成立のため、実行される命令数は6命令であ
る。このように動的に実行される命令列が変更されるた
め、コンパイラによる静的な最適化は適用することが困
難である。このため、図11では、6命令以上のスーパ
ースカラプロセッサとしているにも拘わらず、ループ2
回の全実行サイクル数が15サイクル、ループ1回当た
り7.5サイクルとなっている。
【0042】これに対し、本プロセッサでの図10の命
令列の実行態様は、図12のようになる。本プロセッサ
での条件付き分岐命令の実行は後に説明する。本プロセ
ッサでは、図12のように、分岐命令毎に、依存関係が
ある複数の命令を1度に発行することが可能である。B
LE命令により動的に実行される命令列が変更されて
も、その都度それに対応した命令発行を行うことができ
る。これにより図12ではループ1回目の後半、条件分
岐命令BLE L2の後続の命令からループ2回目の命
令がオーバーラップして同時に実行されている。オーバ
ーラップは図12では4サイクルとなり、ループ2回の
全実行サイクル数が11サイクル、ループ1回当たり
5.5サイクルとなっている。
【0043】上記条件付き分岐命令BLEは以下のよう
にして実行される。図4の分岐制御部20において、命
令発行部12の分岐命令判定回路126により分岐命令
が検出されたときには、その命令が命令レジスタ30に
セットされるとともに、分岐命令判定回路126より線
301を介して、切り出された5つの命令の中での、そ
の分岐命令の番号より1小さい番号がセレクタ34に供
給される。セレクタ34には5つの演算器16aから1
6eの出力が供給され、セレクタ34は、線301によ
り指定された番号に対応する演算器の出力を選択する。
すなわち、分岐命令の直前の命令を実行した演算器の出
力が選択される。条件コード生成部31はセレクタ34
により選択された演算器の出力データにより複数の条件
コードを生成する。例えば、その演算結果が0に等しい
(=0)か、正である(>0)か、負である(<0)
か、演算結果がオーバーフロー(Overflow)し
たか等が判定され、それぞれを表す条件コードを生成す
る。条件コード判定部32は、条件付き分岐が成功した
か否かを判定する。
【0044】分岐命令デコーダ36は、命令レジスタ3
0にセットされた分岐命令が条件付き分岐命令と判定し
たときには、その命令が指定するconditionフ
ィールドの値に依存して、条件コード判定部32に判定
すべき条件コードとそれが有すべき値を指定する。さら
に、セレクタ35に条件コード判定部32の出力を選択
させる。条件コード判定部32は、この指定された条件
コードが指定された値を有するか否かを判別する。も
し、この指定された条件コードが指定された値を有する
ときには、分岐が成功したと判断し、条件分岐生起信号
302を出力する。この条件分岐生起信号302は、セ
レクタ35を介して命令フェッチ部11へ供給され、分
岐先の命令のフェッチを指示する。その後は、先にルー
プ分岐命令について説明したと同様にして、分岐先の5
つの命令列がこの条件分岐命令の実行サイクルに発行さ
れることになる。図12に示すように、第1回目のルー
プでは、分岐が成功しないので、この分岐先の命令列に
代えてLD命令からBR命令までである。第2回目のル
ープでは、分岐が成功し、分岐先の命令列としてLD命
令からBLE命令までが実行される。
【0045】<発明の実施の形態2>図13に示すスー
パスカラプロセッサでは、演算器の個数を4として、各
演算器16a〜16dの演算結果出力にパイプラインレ
ジスタ18a〜18fが設けられている。さらに各演算
器16a〜16dに対応して設けられたスイッチ回路1
4a〜14cは、その演算器のデータ入力に、その演算
器に対して発行された命令が指定する二つの読み出しレ
ジスタ番号S0、S1の出力か、他の演算器16a〜1
6dの演算結果出力か、あるいは、パイプラインレジス
タ18a〜18fに格納された内容かのいずれかを選ぶ
ようになっている。
【0046】これを実現するために、命令により読み出
しレジスタとしてパイプラインレジスタ18a〜18f
を指定可能にしている。さらに、命令が指定した演算の
演算器16a〜16dによる演算結果出力をパイプライ
ンレジスタ18a〜18fにのみ格納し、レジスタファ
イル15に書き戻さないように、命令が指定ができるよ
うにしている。こうすることにより、レジスタファイル
15の中のレジスタ数を節約することができる。図14
(b)にそのような命令の例を示す。図14(a)は、
一般的なレジスタ指定方法を採る、図14(b)の命令
列に対応する命令列の例を示す。図14(b)の各命令
において、命令の第1オペランドが演算結果の書き込み
を行うレジスタ、第2オペランド以降が演算に用いるデ
ータの読み出しを行うレジスタの指定である。図14
(a)では全部でR1からR8の8個のレジスタが用い
られている。
【0047】これに対し、図14(b)の命令列では、
t1、t2、t1(0)、t2(0)はそれぞれ第1及
び第2の演算器16a、16bの演算結果出力及びこれ
らに接続されたパイプラインレジスタ18a〜c及び1
8d、eを指定する。即ち、第1のADD命令及び第2
のSUB命令において、演算結果を書き込むレジスタt
1、t2は、それぞれ第1、第2の演算器16a、16
bの演算結果データはレジスタファイル15には書き戻
されないことを指定している。また、第2のSUB命令
及び第3のMUL命令において、演算に用いるデータを
読み出すレジスタt1(0)、t2(0)の指定は、そ
れぞれ第1の演算器16aの出力そのもの及び第2の演
算器16bの演算結果出力そのものを読み出しレジスタ
として使用することを指定する。より一般的には、書き
込みレジスタtnは第n演算器の演算結果をレジスタフ
ァイルに書き戻さないことを指定し、読み出しレジスタ
tn(m)は、第n演算器の演算結果出力及びそれに接
続されたパイプラインレジスタのうち、演算器の演算結
果出力からm個目のパイプラインレジスタを読み出しレ
ジスタとして指定する。とくにtn(0)は、第n演算
器の出力を読み出しレジスタとして指定する。以上のよ
うな指定を使用すれば、レジスタファイル15の中に必
要なレジスタ数を減らすことができる。図14(b)の
例ではレジスタファイル15の中で必要なレジスタは6
個となる。
【0048】本実施の形態では、命令発行部12は、図
15に示すように構成される。スイッチ回路14a〜c
によって選択されるべき、レジスタファイル15中のレ
ジスタ及びパイプラインレジスタ18a〜fはすでに図
12に示した命令でもって指定される。このためスイッ
チ制御回路130b〜dは、それぞれ第2から第4の命
令中の読み出しレジスタ番号を調べて、レジスタファイ
ル15中のレジスタの代わりにパイプラインレジスタ1
8a〜fの内容を用いるかどうかを判定し、その結果を
スイッチ制御信号122b〜dとして出力する。スイッ
チ制御回路b〜dは、第1の実施の形態のように命令中
のレジスタ番号を比較する必要はない。
【0049】<発明の実施の形態3>発明の実施の形態
1に示したプロセッサは、VLIW命令用のプロセッサ
としても使用できる。すなわち、発明の実施の形態1に
おいて、メモリ2には、それぞれ複数の小命令からなる
複数のVLIW命令の列を記憶しておき、各VLIW命
令を命令フェッチ部11によりフェッチさせる。命令発
行部12は、毎サイクル一つのVLIW命令を発行する
ように構成される。従来のVLIWプロセッサでは、同
じVLIW命令中の複数の小命令間に依存関係があって
はならない。したがって、一つのVLIW命令中の小命
令の間の依存関係を検出するための回路は使用されな
い。しかし、本実施の形態では、同じVLIW命令中の
複数の小命令は時間差をもって実行されるので、それら
の小命令の間に依存関係があることが許される。また、
そのようなVLIW命令を実行するために、従来のVL
IWプロセッサと異なり、図2に示したスイッチ制御回
路123bのように依存関係を検出する回路が使用され
ている。このVLIW命令内の小命令の総数が、図1の
演算器の総数+1であると仮定すると、上記発明の実施
の形態1に示したプロセッサがそのままこれらのVLI
W命令列にも使用できる。但し、いずれかのVLIW命
令が、小命令として分岐命令を含んでいるときには、そ
の分岐命令より後には有効な小命令は含まれず、代わり
にNOP命令が含まれる。したがって、図2に示された
分岐命令判定回路126、およびANDゲート129a
〜129eは本実施の形態では使用する必要はない。
【0050】本実施の形態でのVLIW命令の実行形態
は、VLIW命令内の小命令の総数が、図1の演算器の
総数+1であると仮定し、図9あるいは図12に示した
同時に発行される複数の命令が同一のVLIW命令中に
含まれる小命令であると仮定すると、これらの小命令お
よび後続の小命令の実行の様子は図9あるいは図12に
示したものと同じとなる。実施の形態1と異なる点は、
命令のフェッチあるいは発行が大命令を単位として実行
されることである。たとえば、いずれかの大命令に分岐
命令が含まれ、その分岐命令による分岐が成功したとき
には、分岐先の大命令が次に発行される。したがって、
本実施の形態によるプロセッサでは、相互に依存関係を
有する複数の小命令を含むVLIW命令を実行できる。
【0051】<発明の実施の形態4>発明の実施の形態
2に示したプロセッサも、VLIW命令用のプロセッサ
としても使用できる。この際、発明の実施の形態1に示
したプロセッサを発明の実施の形態3に使用するときに
行ったのと同じ変更を行う必要があるのは言うまでもな
い。
【0052】
【発明の効果】以上のように本発明によるプロセッサで
は、ある命令とその結果を使う命令があってもその2命
令を含むより多くの命令を同時に発行できる。さらにそ
れらの命令の実行がすべて終了する前に後続の複数の命
令を発行できる。
【0053】さらに、本発明のより具体的な態様では、
条件分岐命令を含み、プログラムの実行時に実行される
命令が動的に変化する場合でも、同時に多くの命令を発
行できる。
【図面の簡単な説明】
【図1】本発明に係るスーパスカラプロセッサの概略ブ
ロック図。
【図2】図1の装置に使用する命令発行部(12)の概
略ブロック図。
【図3】図1の装置に使用するR/W制御回路(19
a)の概略ブロック図。
【図4】図1の装置に使用する分岐制御部(20)の概
略ブロック図。
【図5】図1の装置に使用するいくつかの命令のフォー
マットを示す図。
【図6】図1の装置に使用する命令フェッチ部(11)
の概略ブロック図。
【図7】図1の装置で実行するプログラムと命令列を示
す図。
【図8】図7の命令列の、従来のプロセッサでの実行態
様を示す図。
【図9】図7の命令列の、図1のプロセッサでの実行態
様を示す図。
【図10】図1の装置で実行する他のプログラムと命令
列を示す図。
【図11】図10の命令列の従来のプロセッサでの実行
態様を示す図。
【図12】図10の命令列の図1のプロセッサでの実行
態様を示す図。
【図13】本発明に係る他のスーパスカラプロセッサの
概略ブロック図。
【図14】図13の装置で実行する命令列を示す図。
【図15】図13の装置で使用する命令発行部(12)
の概略ブロック図。
【符号の説明】
16a〜16e … 演算器 14a〜14d … スイッチ回路 17a〜17j、18a〜18f … パイプラインレ
ジスタ

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】命令で指定可能な複数のレジスタからなる
    レジスタファイルと、 複数(n)個の順序付けられた演算器と、 上記複数の演算器に対応して設けられ、それぞれ対応す
    る演算器にオペランドを上記レジスタファイルもしくは
    その対応する演算器に先行する演算器から供給し、それ
    ぞれ対応する演算器から供給される演算結果データを上
    記レジスタファイルに格納するための複数のオペランド
    制御回路と、 次に実行すべきn個の命令を並列に発行する命令発行回
    路と、 上記n個の発行された命令をそれぞれ上記複数の演算器
    の内の一つおよびその演算器に対応するオペランド制御
    回路に順次異なる時間差を付けて供給する命令情報供給
    回路とを有するプロセッサ。
  2. 【請求項2】上記命令発行回路は、上記n個の命令の内
    の先頭の命令以外の命令の一つと、そのn個の命令の内
    の先行する命令との間のレジスタオペランドのコンフリ
    クトの有無を検出する複数のコンフリクト検出回路を有
    し、 上記命令情報供給回路は、各コンフリクト検出回路によ
    り上記他の複数の命令の一つに対して検出されたコンフ
    リクト検出結果信号を、対応する命令とともに上記複数
    の演算器の内の一つに対応するオペランド制御回路に供
    給し、 各オペランド制御回路は、 レジスタ読み書き制御回路と、 スイッチ回路とを有し、 上記レジスタ読み書き制御回路は、上記命令情報供給回
    路により供給された命令に応答して、その命令が指定す
    るレジスタのデータを上記レジスタファイルから読み出
    し、 上記スイッチ回路は、上記命令情報供給回路により供給
    されたコンフリクト検出結果信号に応答して、そのオペ
    ランド制御回路に対応する演算器に先行するいずれかの
    演算器の出力データもしくは上記レジスタ読み書き制御
    回路により読み出されたデータを選択して上記対応する
    演算器に供給し、 上記レジスタ読み書き制御回路は、上記命令情報供給回
    路により供給された上記命令に応答して、上記対応する
    演算器による演算結果データを上記レジスタファイル内
    の、上記命令が指定するレジスタに書き込む請求項1記
    載のプロセッサ。
  3. 【請求項3】上記命令情報供給回路は、上記先頭の演算
    器以外の他の複数の演算器に対応して設けられ、順次異
    なる段数のレジスタからなる複数のパイプライン径路を
    有し、 各パイプライン径路は、上記先頭の命令以外の命令の一
    つをクロック信号に応答して転送する請求項2載のプロ
    セッサ。
  4. 【請求項4】上記複数の演算器の内の最後の演算器以外
    の演算器に対応して設けられ、順次異なる段数のレジス
    タからなり、対応する演算器の出力データをクロック信
    号に応答して転送する複数のデータ転送パイプライン径
    路をさらに有し、 各オペランド制御回路は、そのオペランド制御回路に対
    応する演算器に先行するいずれかの演算器から供給され
    る演算結果データもしくはその演算器に接続されたデー
    タ転送パイプライン径路上のいずれかのレジスタに保持
    されたデータもしくは上記レジスタファイルに保持され
    たデータの一つを選択して、そのオペランド制御回路に
    対応する演算器に供給する請求項1載のプロセッサ。
  5. 【請求項5】上記命令情報供給回路は、上記複数の演算
    器の内の先頭の演算器以外の他の複数の演算器に対応し
    て設けられ、順次異なる段数のレジスタからなる複数の
    パイプライン径路を有し、 各パイプライン径路は、上記n個の命令の内の先頭の命
    令以外の命令の一つをクロック信号に応答して転送する
    請求項4載のプロセッサ。
  6. 【請求項6】上記プロセッサはスーパスカラプロセッサ
    であり、 上記n個の命令は、プログラムが想定する概念的順序に
    したがって逐次実行されるべきスカラ命令である請求項
    2または4記載のプロセッサ。
  7. 【請求項7】上記n個の命令の中に分岐命令が含まれて
    いるか否かを検出する回路と、 上記n個の命令の中に分岐命令が含まれているときに
    は、その分岐命令が指定する分岐条件が満たされたか否
    かを判定する判定回路とをさらに有し、 上記命令発行回路は、 上記n個の命令の中に分岐命令が含まれているときに
    は、上記n個の命令の中の、その分岐命令の後続の命令
    の発行を抑止する回路と、 その分岐命令が指定する分岐条件が満たされたことが上
    記判定回路により判定されたときには、その分岐命令が
    指定する分岐先のn個の命令を、上記分岐命令を含む上
    記n個の命令の次に実行すべき命令群として並行して発
    行する回路とを有する請求項6記載のプロセッサ。
  8. 【請求項8】上記プロセッサは長語長命令を実行するV
    LIWプロセッサであり、 上記n個の命令は、一つの大命令に含まれた同時に実行
    されるべきn個の小命令である請求項2または4記載の
    プロセッサ。
  9. 【請求項9】上記n個の小命令の中に分岐命令が含まれ
    ているか否かを検出する回路と、 上記n個の小命令の中に分岐命令が含まれているときに
    は、その分岐命令が指定する分岐条件が満たされたか否
    かを判定する判定回路とをさらに有し、 上記n個の小命令の中に分岐命令が含まれているときに
    は、上記分岐命令より後の小命令は、演算の実行を要求
    しない非演算命令であり、 上記命令発行回路は、 その分岐命令が指定する分岐条件が満たされたことが上
    記判定回路により判定されたときには、その分岐命令が
    指定する分岐先の大命令に含まれるn個の小命令を、上
    記分岐命令を含む大命令の次に実行すべき命令として並
    行して発行する回路とを有する請求項8記載のプロセッ
    サ。
JP23798397A 1997-09-03 1997-09-03 プロセッサ Pending JPH1185513A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23798397A JPH1185513A (ja) 1997-09-03 1997-09-03 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23798397A JPH1185513A (ja) 1997-09-03 1997-09-03 プロセッサ

Publications (1)

Publication Number Publication Date
JPH1185513A true JPH1185513A (ja) 1999-03-30

Family

ID=17023383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23798397A Pending JPH1185513A (ja) 1997-09-03 1997-09-03 プロセッサ

Country Status (1)

Country Link
JP (1) JPH1185513A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002333978A (ja) * 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
JP2006048661A (ja) * 2004-07-06 2006-02-16 Matsushita Electric Ind Co Ltd プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置
JP2007213578A (ja) * 2006-02-09 2007-08-23 Internatl Business Mach Corp <Ibm> データ・キャッシュ・ミス予測およびスケジューリング
JP2008015589A (ja) * 2006-07-03 2008-01-24 Nec Corp Vliw型プロセッサおよび命令発行方法
JP2009009569A (ja) * 2007-06-27 2009-01-15 Internatl Business Mach Corp <Ibm> 複数のロード命令を実行するための方法および装置
JP2009009570A (ja) * 2007-06-27 2009-01-15 Internatl Business Mach Corp <Ibm> レジスタ状態エラー回復および再開機構
JP2009540411A (ja) * 2006-06-07 2009-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 高速で安価なストア−ロード競合スケジューリング及び転送機構
JP2010073197A (ja) * 2008-09-19 2010-04-02 Internatl Business Mach Corp <Ibm> 多重プロセッサ・コア・ベクトル・モーフ結合機構
WO2011086808A1 (ja) * 2010-01-14 2011-07-21 日本電気株式会社 情報処理装置
JP2013519137A (ja) * 2010-02-01 2013-05-23 アルテラ コーポレイション 効率的プロセッサおよび関連する方法
US10606602B2 (en) 2016-09-26 2020-03-31 Samsung Electronics Co., Ltd Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002333978A (ja) * 2001-05-08 2002-11-22 Nec Corp Vliw型プロセッサ
JP2006048661A (ja) * 2004-07-06 2006-02-16 Matsushita Electric Ind Co Ltd プロセッサとコプロセッサとの間でのデータ転送を制御する演算処理装置
JP2007213578A (ja) * 2006-02-09 2007-08-23 Internatl Business Mach Corp <Ibm> データ・キャッシュ・ミス予測およびスケジューリング
JP2009540411A (ja) * 2006-06-07 2009-11-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 高速で安価なストア−ロード競合スケジューリング及び転送機構
JP2008015589A (ja) * 2006-07-03 2008-01-24 Nec Corp Vliw型プロセッサおよび命令発行方法
JP2009009569A (ja) * 2007-06-27 2009-01-15 Internatl Business Mach Corp <Ibm> 複数のロード命令を実行するための方法および装置
JP2009009570A (ja) * 2007-06-27 2009-01-15 Internatl Business Mach Corp <Ibm> レジスタ状態エラー回復および再開機構
JP2010073197A (ja) * 2008-09-19 2010-04-02 Internatl Business Mach Corp <Ibm> 多重プロセッサ・コア・ベクトル・モーフ結合機構
WO2011086808A1 (ja) * 2010-01-14 2011-07-21 日本電気株式会社 情報処理装置
JP2011145886A (ja) * 2010-01-14 2011-07-28 Nec Corp 情報処理装置
JP2013519137A (ja) * 2010-02-01 2013-05-23 アルテラ コーポレイション 効率的プロセッサおよび関連する方法
US10606602B2 (en) 2016-09-26 2020-03-31 Samsung Electronics Co., Ltd Electronic apparatus, processor and control method including a compiler scheduling instructions to reduce unused input ports

Similar Documents

Publication Publication Date Title
JP3984786B2 (ja) 異なる待ち時間を伴う命令のスケジューリング
US6185668B1 (en) Method and apparatus for speculative execution of instructions
US5884060A (en) Processor which performs dynamic instruction scheduling at time of execution within a single clock cycle
US7418575B2 (en) Long instruction word processing with instruction extensions
US7454598B2 (en) Controlling out of order execution pipelines issue tagging
JP2002333978A (ja) Vliw型プロセッサ
KR960001274B1 (ko) 트랩 및 스톨 제어기능을 갖는 병렬처리형 프로세서 시스템
KR980010763A (ko) 연산처리장치
JPS6239780B2 (ja)
JP2004234642A (ja) 命令実行ユニットのための統合化構造のレイアウト
JPH04275628A (ja) 演算処理装置
JP3449186B2 (ja) パイプラインバイパス機能を有するデータ処理装置
JP3556246B2 (ja) パイプラインプロセッサにおける割込み処理のための装置
JPH1185513A (ja) プロセッサ
JP4412905B2 (ja) 低電力動作制御装置、およびプログラム最適化装置
US5907693A (en) Autonomously cycling data processing architecture
JP3756410B2 (ja) 述語データを提供するシステム
TWI613589B (zh) 處理器流水線中的靈活的指令執行
KR950012118B1 (ko) 병렬 파이프라인 명령 처리 장치
JP4771079B2 (ja) Vliw型プロセッサ
JP4465081B2 (ja) Vliwプロセッサにおける効率的なサブ命令エミュレーション
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
CN112379928B (zh) 指令调度方法以及包括指令调度单元的处理器
KR20180126518A (ko) 벡터 명령 처리
JP2553728B2 (ja) 演算装置