JPH04199428A - レジスタ装置およびレジスタ割り付け方法 - Google Patents
レジスタ装置およびレジスタ割り付け方法Info
- Publication number
- JPH04199428A JPH04199428A JP2334716A JP33471690A JPH04199428A JP H04199428 A JPH04199428 A JP H04199428A JP 2334716 A JP2334716 A JP 2334716A JP 33471690 A JP33471690 A JP 33471690A JP H04199428 A JPH04199428 A JP H04199428A
- Authority
- JP
- Japan
- Prior art keywords
- register
- registers
- virtual
- data
- group
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、複数の汎用レジスタを有し、マイクロプロセ
ッサ等のデータ処理装置に適用されるレジスタ装置と、
このレジスタ装置が適用されたデータ処理装置で実行さ
れるプログラムをコンパイルする際などに、プログラム
中の各変数等をレジスタに割り付けるレジスタ割り付け
方法に関するものである。
ッサ等のデータ処理装置に適用されるレジスタ装置と、
このレジスタ装置が適用されたデータ処理装置で実行さ
れるプログラムをコンパイルする際などに、プログラム
中の各変数等をレジスタに割り付けるレジスタ割り付け
方法に関するものである。
従来の技術
従来のレジスタ装置としては、例えば森下厳暑、「マイ
クロコンピュータのハードウェアJ 、pp、44−4
5に示されているものが知られている。
クロコンピュータのハードウェアJ 、pp、44−4
5に示されているものが知られている。
第4図はこの種のレジスタ装置が適用されたデータ処理
装置の要部の構成を示すブロック図であり、110は汎
用レジスタ群(GR)、110a・110b・・・はレ
ジスタ、120は算術論理演算装置(ALU) 、12
1〜123はラッチ回路、131〜133はバスである
。
装置の要部の構成を示すブロック図であり、110は汎
用レジスタ群(GR)、110a・110b・・・はレ
ジスタ、120は算術論理演算装置(ALU) 、12
1〜123はラッチ回路、131〜133はバスである
。
上記レジスタ110a・・・は、それぞれバス131ま
たはバス132に接続される2つの出力ポートを有し、
レジスタ110a・・・のうち2つのレジスタから同時
にバス131およびバス132にデータを出力し得るよ
うになっている。
たはバス132に接続される2つの出力ポートを有し、
レジスタ110a・・・のうち2つのレジスタから同時
にバス131およびバス132にデータを出力し得るよ
うになっている。
このようなデータ処理装置では、例えばレジスタ110
a・110bに格納されているデータについて算術論理
演算装置120で演算を行う場合には、次のような動作
が行われる。
a・110bに格納されているデータについて算術論理
演算装置120で演算を行う場合には、次のような動作
が行われる。
まず、レジスタ110a・110bから2つのデータが
同時に出力され、それぞれバス131・132を介して
ランチ回路121・122に保持される。ラッチ回路1
21・122に保持されたデータは算術論理演算袋W1
20で演算され、ランチ回路123に格納される。ラッ
チ回路123に格納されたデータは、バス133を介し
てレジスタ110a・・・のうちのいずれか1つに格納
される。
同時に出力され、それぞれバス131・132を介して
ランチ回路121・122に保持される。ラッチ回路1
21・122に保持されたデータは算術論理演算袋W1
20で演算され、ランチ回路123に格納される。ラッ
チ回路123に格納されたデータは、バス133を介し
てレジスタ110a・・・のうちのいずれか1つに格納
される。
すなわち、2つのデータをバス131・132に同時に
出力することにより、演算速度を向上させ得るようにな
っている。
出力することにより、演算速度を向上させ得るようにな
っている。
発明が解決しようとする課題
しかしながら、上記従来のレジスタ装置では、演算速度
の向上は図り得るものの、それぞれのレジスタ110a
・・・、より詳しく各レジスタ110aのすべてのメモ
リセルが、バス131またはバス132に接続される2
つの出力ポートを備えているために回路構成が複雑であ
るという問題点を有していた。
の向上は図り得るものの、それぞれのレジスタ110a
・・・、より詳しく各レジスタ110aのすべてのメモ
リセルが、バス131またはバス132に接続される2
つの出力ポートを備えているために回路構成が複雑であ
るという問題点を有していた。
特に、この種の装置はLSI化されることが多いが、そ
の際にチップ面積が大きなものとなり、製造コストも高
くつくことになる。
の際にチップ面積が大きなものとなり、製造コストも高
くつくことになる。
本発明は、かかる点に鑑み、簡潔な回路構成で、しかも
演算速度の向上環を図り得るレジスタ装置およびレジス
タ割り付け方法の提供を目的としている。
演算速度の向上環を図り得るレジスタ装置およびレジス
タ割り付け方法の提供を目的としている。
課題を解決するための手段
上記目的を達成するため、請求項第1項記載の発明は、
複数のレジスタグループにグループ分けされた複数のレ
ジスタと、互いに異なるレジスタグループに含まれる複
数のレジスタからデータを出力させる場合には、各レジ
スタに同時にデータを出力させる一方、同一のレジスタ
グループに含まれる複数のレジスタからデータを出力さ
せる場合には、各レジスタに順次データを出力させるレ
ジスタ制御手段と、前記レジスタグループから出力され
た各データをそれぞれ所定のバスに出力する切り換え手
段とを備えたことを特徴としている。
複数のレジスタグループにグループ分けされた複数のレ
ジスタと、互いに異なるレジスタグループに含まれる複
数のレジスタからデータを出力させる場合には、各レジ
スタに同時にデータを出力させる一方、同一のレジスタ
グループに含まれる複数のレジスタからデータを出力さ
せる場合には、各レジスタに順次データを出力させるレ
ジスタ制御手段と、前記レジスタグループから出力され
た各データをそれぞれ所定のバスに出力する切り換え手
段とを備えたことを特徴としている。
また、請求項第2項記載の発明は、請求項第1項記載の
レジスタ装置を備えたデータ処理装置で実行されるプロ
グラム中の各変数および/または演算の途中結果を前記
各レジスタに割り付けるレジスタ割り付け方法であって
、前記各変数および/または演算の途中結果を第1の仮
想レジスタ群の無限側の仮想レジスタに割り付けるステ
ップと、前記各仮想レジスタを第2の仮想レジスタ群を
構成する、データ処理装置の実レジスタの個数と同じ個
数の仮想レジスタに割り付けるステップと、前記第2の
仮想レジスタ群の各仮想レジスタを前記実レジスタに割
り付ける複数通りの対応関係について、前記同一のレジ
スタグループに含まれる複数のレジスタから順次データ
を出力させる頻度を算出し、この算出結果に基づいて、
第2の仮想レジスタ群の各仮想レジスタを実レジスタに
割り付けるステップとを有することを特徴としている。
レジスタ装置を備えたデータ処理装置で実行されるプロ
グラム中の各変数および/または演算の途中結果を前記
各レジスタに割り付けるレジスタ割り付け方法であって
、前記各変数および/または演算の途中結果を第1の仮
想レジスタ群の無限側の仮想レジスタに割り付けるステ
ップと、前記各仮想レジスタを第2の仮想レジスタ群を
構成する、データ処理装置の実レジスタの個数と同じ個
数の仮想レジスタに割り付けるステップと、前記第2の
仮想レジスタ群の各仮想レジスタを前記実レジスタに割
り付ける複数通りの対応関係について、前記同一のレジ
スタグループに含まれる複数のレジスタから順次データ
を出力させる頻度を算出し、この算出結果に基づいて、
第2の仮想レジスタ群の各仮想レジスタを実レジスタに
割り付けるステップとを有することを特徴としている。
作 用
請求項第1項記載の発明によれば、レジスタ制御手段は
、互いに異なるレジスタグループに含まれる複数のレジ
スタからデータを出力させる場合には、各レジスタに同
時にデータを出力させる一方、同一のレジスタグループ
に含まれる複数のレジスタからデータを出力させる場合
には、各レジスタに順次データを出力させる。切り換え
手段は、レジスタグループから出力された各データをそ
れぞれ所定のバスに出力する。
、互いに異なるレジスタグループに含まれる複数のレジ
スタからデータを出力させる場合には、各レジスタに同
時にデータを出力させる一方、同一のレジスタグループ
に含まれる複数のレジスタからデータを出力させる場合
には、各レジスタに順次データを出力させる。切り換え
手段は、レジスタグループから出力された各データをそ
れぞれ所定のバスに出力する。
請求項第2項記載の発明によれば、プログラム中の各変
数および/または演算の途中結果は、まず第1の仮想レ
ジスタ群の無限個の仮想レジスタに割り付けられ、この
仮想レジスタは、第2の仮想レジスタ群の実レジスタの
個数と同じ個数の仮想レジスタに割り付けられる。
数および/または演算の途中結果は、まず第1の仮想レ
ジスタ群の無限個の仮想レジスタに割り付けられ、この
仮想レジスタは、第2の仮想レジスタ群の実レジスタの
個数と同じ個数の仮想レジスタに割り付けられる。
さらに、第2の仮想レジスタ群の仮想レジスタは、実レ
ジスタに割り付ける複数通りの対応関係について、同一
のレジスタグループに含まれる複数のレジスタから順次
データを出力させる頻度が算出され、この算出結果に基
づいて、実レジスタに割り付けられる。
ジスタに割り付ける複数通りの対応関係について、同一
のレジスタグループに含まれる複数のレジスタから順次
データを出力させる頻度が算出され、この算出結果に基
づいて、実レジスタに割り付けられる。
実施例
第1図はレジスタ装置が適用されたデータ処理装置の要
部の構成を示すブロック図である。
部の構成を示すブロック図である。
第1図において、11は8個のレジスタlla・llb
・・・が備えられて成る第1の汎用レジスタ群(GRi
)、12は8個のレジスタ12a・12b・・・が備え
られて成る第2の汎用レジスタ群(GR2)、20は算
術論理演算装置(ALU)、21〜23はラッチ回路、
31〜33はバス、40はレジスタ制御手段、311・
321は選択器である。
・・・が備えられて成る第1の汎用レジスタ群(GRi
)、12は8個のレジスタ12a・12b・・・が備え
られて成る第2の汎用レジスタ群(GR2)、20は算
術論理演算装置(ALU)、21〜23はラッチ回路、
31〜33はバス、40はレジスタ制御手段、311・
321は選択器である。
上記第1の汎用レジスタ群11における各レジスタll
a・・・は、それぞれ選択器311・312に接続され
る1つのボートを有し、図示しないクロック信号に応じ
て、いずれか1つのレジスタから選択器311にデータ
が出力されるようになっている。
a・・・は、それぞれ選択器311・312に接続され
る1つのボートを有し、図示しないクロック信号に応じ
て、いずれか1つのレジスタから選択器311にデータ
が出力されるようになっている。
また、第2の汎用レジスタ群12における各レジスタ1
2a・・・も、同様に、それぞれ選択器312に接続さ
れる1つのボートを有し、クロック信号に応じていずれ
か1つのレジスタから選択器311・312にデータが
出力されるようになっている。
2a・・・も、同様に、それぞれ選択器312に接続さ
れる1つのボートを有し、クロック信号に応じていずれ
か1つのレジスタから選択器311・312にデータが
出力されるようになっている。
選択器311は、汎用レジスタ群11・12から出力さ
れたデータを選択的にハス31に出力する一方、選択器
312は、汎用レジスタ群11・12から出力されたデ
ータを選択的にバス32に出力するようになっている。
れたデータを選択的にハス31に出力する一方、選択器
312は、汎用レジスタ群11・12から出力されたデ
ータを選択的にバス32に出力するようになっている。
レジスタ制御手段40は、図示しない演算制御装置から
出力されるレジスタ指定信号1・2に基づいて、上記汎
用レジスタ群11のうちの1つのレジスタと、汎用レジ
スタ群12のうちの1つのレジスタとからデータを出力
させるときには、各レジスタから同時に出力させるとと
もに、選択器311・312を切り換えて、それぞれの
データをバス31、またはバス32に出力させるように
なっている。
出力されるレジスタ指定信号1・2に基づいて、上記汎
用レジスタ群11のうちの1つのレジスタと、汎用レジ
スタ群12のうちの1つのレジスタとからデータを出力
させるときには、各レジスタから同時に出力させるとと
もに、選択器311・312を切り換えて、それぞれの
データをバス31、またはバス32に出力させるように
なっている。
レジスタ制御手段40は、また、汎用レジスタ群11・
12のうちの一方に含まれる2つのレジスタからデータ
を出力させるときには、各レジスタから順次出力させる
とともに、選択器311・312を順次切り換えて、一
方のデータをバス31に、他方のデータをバス32に出
力させるようになっている。
12のうちの一方に含まれる2つのレジスタからデータ
を出力させるときには、各レジスタから順次出力させる
とともに、選択器311・312を順次切り換えて、一
方のデータをバス31に、他方のデータをバス32に出
力させるようになっている。
ラッチ回路21・22は、それぞれバス31・32を介
して送られたデータを保持し、算術論理演算装置20は
保持されたデータに対して演算を行うようになっている
。また、ラッチ回路23は、演算結果を保持し、バス3
3に出力するようになっている。
して送られたデータを保持し、算術論理演算装置20は
保持されたデータに対して演算を行うようになっている
。また、ラッチ回路23は、演算結果を保持し、バス3
3に出力するようになっている。
上記の構成において、例えば汎用レジスタ群11のレジ
スタIlaに格納されているデータと、汎用レジスタ群
12のレジスタllaに格納されているデータとについ
て演算する場合、および同一の汎用レジスタ群11のレ
ジスタlla・11bに格納されているデータについて
演算する場合には、次のような動作が行われる。
スタIlaに格納されているデータと、汎用レジスタ群
12のレジスタllaに格納されているデータとについ
て演算する場合、および同一の汎用レジスタ群11のレ
ジスタlla・11bに格納されているデータについて
演算する場合には、次のような動作が行われる。
まず、レジスタ制御手段40は、レジスタ指定信号l・
2によってレジスタlla・12aが指定されている場
合には、これらのレジスタlla・12aが互いに異な
る汎用レジスタ群11・12に分散していることを検知
し、各汎用レジスタ群11・12に出力指示信号を同時
に出力する。
2によってレジスタlla・12aが指定されている場
合には、これらのレジスタlla・12aが互いに異な
る汎用レジスタ群11・12に分散していることを検知
し、各汎用レジスタ群11・12に出力指示信号を同時
に出力する。
また、選択器311に汎用レジスタ群11を選択させる
選択信号、および選択器312に汎用レジスタ群12を
選択させる選択信号を出力する。
選択信号、および選択器312に汎用レジスタ群12を
選択させる選択信号を出力する。
そこで、汎用レジスタ群11・12からは、同一の1ク
ロツクサイクルでレジスタlla・12aに格納されて
いるデータが出力され、選択器311・312およびバ
ス31・32を介してラッチ回路21・22に保持され
る。
ロツクサイクルでレジスタlla・12aに格納されて
いるデータが出力され、選択器311・312およびバ
ス31・32を介してラッチ回路21・22に保持され
る。
ラッチ回路21・22に保持されたデータは算術論理演
算装置20で演算された後、ラッチ回路23に保持され
、バス33を介してレジスタ11a・・・・12a・・
・のうちのいずれかに格納される。
算装置20で演算された後、ラッチ回路23に保持され
、バス33を介してレジスタ11a・・・・12a・・
・のうちのいずれかに格納される。
一方、レジスタ指定信号1・2によってひとつの汎用レ
ジスタ群11のレジスタlla・llbが指定されてい
る場合には、レジスタ制御手段40は、これらのレジス
タlla・llbが同一の汎用レジスタ群11に含まれ
ていることを検知し、汎用レジスタ群11に、まずレジ
スタllaに対する出力指示信号を出力するとともに、
選択器311に汎用レジスタ群11を選択させる選択信
号を出力する。また、レジスタ制御手段40は演算制御
装置にコンフリクション信号を出力し、算術論理演算装
置20等の動作の一時停止を要求する。
ジスタ群11のレジスタlla・llbが指定されてい
る場合には、レジスタ制御手段40は、これらのレジス
タlla・llbが同一の汎用レジスタ群11に含まれ
ていることを検知し、汎用レジスタ群11に、まずレジ
スタllaに対する出力指示信号を出力するとともに、
選択器311に汎用レジスタ群11を選択させる選択信
号を出力する。また、レジスタ制御手段40は演算制御
装置にコンフリクション信号を出力し、算術論理演算装
置20等の動作の一時停止を要求する。
そこで、汎用レジスタ群11から、1クロツクサイクル
目でレジスタllaに格納されているデータが出力され
、選択器311およびバス31を介してラッチ回路21
に保持される。
目でレジスタllaに格納されているデータが出力され
、選択器311およびバス31を介してラッチ回路21
に保持される。
次に、レジスタ制御手段40は、汎用レジスタ群11に
レジスタllbに対する出力指示信号を出力するととも
に、選択器312に汎用レジスタ群11を選択させる選
択信号を出力する。また、上記コンフリクション信号を
リセットする。
レジスタllbに対する出力指示信号を出力するととも
に、選択器312に汎用レジスタ群11を選択させる選
択信号を出力する。また、上記コンフリクション信号を
リセットする。
そこで、汎用レジスタ群工1から、2クロツクサイクル
目でレジスタIlbに格納されているデータが出力され
、選択器312およびバス32を介してラッチ回路22
に保持される。そしてラッチ回路21・22に格納され
たデータが算術論理演算装置20で演算されて、ラッチ
回路23に保持され、バス33を介してレジスタlla
・・・・12a・・・のうちのいずれかに格納される。
目でレジスタIlbに格納されているデータが出力され
、選択器312およびバス32を介してラッチ回路22
に保持される。そしてラッチ回路21・22に格納され
たデータが算術論理演算装置20で演算されて、ラッチ
回路23に保持され、バス33を介してレジスタlla
・・・・12a・・・のうちのいずれかに格納される。
また、レジスタ指定信号1・2によって指定された2つ
のレジスタが共に汎用レジスタ群12に含まれている場
合にも同様の動作が行われる。
のレジスタが共に汎用レジスタ群12に含まれている場
合にも同様の動作が行われる。
すなわち、演算の対象となる各レジスタが汎用レジスタ
群11・12に分散している場合には、1クロツクサイ
クルで演算処理が行われ、同一の汎用レジスタ群11・
12に含まれる場合には、2クロツクサイクルを要する
が、演算処理は適正に行われる。
群11・12に分散している場合には、1クロツクサイ
クルで演算処理が行われ、同一の汎用レジスタ群11・
12に含まれる場合には、2クロツクサイクルを要する
が、演算処理は適正に行われる。
ここで、上記のように演算の対象となる各レジスタが同
一の汎用レジスタ群11・12に含まれる頻度が小さい
ほど、演算処理は高速に行われる。
一の汎用レジスタ群11・12に含まれる頻度が小さい
ほど、演算処理は高速に行われる。
そこで、例えば高級言語で記述されたプログラムを上記
データ処理装置で実行させるための目的プログラムにコ
ンパイルする場合、次のようにしてプログラム中の変数
や演算の途中結果を各レジスタに割り付けることにより
、演算処理の高速化を確実に図ることができる。
データ処理装置で実行させるための目的プログラムにコ
ンパイルする場合、次のようにしてプログラム中の変数
や演算の途中結果を各レジスタに割り付けることにより
、演算処理の高速化を確実に図ることができる。
第2図はレジスタ割り付け装置の構成を示すブロック図
である。
である。
第2図において、51はプログラムの入力装置、52は
レジスタの割り付けを行い、目的プログラムを生成する
処理装置、53は生成された目的プログラムを出力する
出力装置である。
レジスタの割り付けを行い、目的プログラムを生成する
処理装置、53は生成された目的プログラムを出力する
出力装置である。
上記処理装置52は、生成された目的プログラムが実行
されるデータ処理装置と同一の構成を有するものでもよ
いし、異なる構成のものでもよい。
されるデータ処理装置と同一の構成を有するものでもよ
いし、異なる構成のものでもよい。
また、出力装置53は、生成された目的プログラムを記
憶装置等に出力するものでもよいし、目的プログラムを
実行するデータ処理装置に直接入力して実行を開始させ
るようになっているものでもよい。
憶装置等に出力するものでもよいし、目的プログラムを
実行するデータ処理装置に直接入力して実行を開始させ
るようになっているものでもよい。
以下、上記処理装置52で行われるレジスタ割り付け処
理動作を第3図に示すフローチャートに基づいて説明す
る。
理動作を第3図に示すフローチャートに基づいて説明す
る。
ここで、目的プログラムを実行する前記データ処理装置
の汎用レジスタ群11・12における8個ずつのレジス
タのうち、1個ずつのレジスタは、いわゆるスタックポ
インタ、またはフレームポインタとして用いられ、残り
の7個ずつのレジスタに、プログラム中の変数等を割り
当てるとする。
の汎用レジスタ群11・12における8個ずつのレジス
タのうち、1個ずつのレジスタは、いわゆるスタックポ
インタ、またはフレームポインタとして用いられ、残り
の7個ずつのレジスタに、プログラム中の変数等を割り
当てるとする。
まず、高級言語で記述されたプログラムをデータ処理装
置0目的プログラムの形式とI!(以した形式を持つ中
間コードに翻訳する(Sl)。このとき、プログラム中
の変数の値や計算の途中結果の第1群の仮想レジスタへ
の割り付け処理を行うが、処理を簡単にするために、上
記第1群の仮想レジスタは無限個用い得ると仮定して割
り付ける。
置0目的プログラムの形式とI!(以した形式を持つ中
間コードに翻訳する(Sl)。このとき、プログラム中
の変数の値や計算の途中結果の第1群の仮想レジスタへ
の割り付け処理を行うが、処理を簡単にするために、上
記第1群の仮想レジスタは無限個用い得ると仮定して割
り付ける。
次に、中間コード中における上記第1群の仮想レジスタ
を14個の第2群の仮想レジスタに割り付け、中間コー
ドを変更する(S2)。
を14個の第2群の仮想レジスタに割り付け、中間コー
ドを変更する(S2)。
上記S2で行われるレジスタの割り付け処理は、例えば
G、J、ChaitinらによるrRegister
A11ocation and Spilling v
ia Graph Coloring J (Pro
ceedings of the 5IGPLAN S
ymposium on Co1IpilerCons
truction+ pp、98−105. June
1982 )に示されている手法を適用して行うこと
ができる。すなわち、[同時に異なるデータを保持する
レジスタが同じ色にならないように、使用しているすべ
ての仮想レジスタを14色以下の色で塗り分ける」とい
う問題をグラフ理論を応用して解くことにより、行われ
る。
G、J、ChaitinらによるrRegister
A11ocation and Spilling v
ia Graph Coloring J (Pro
ceedings of the 5IGPLAN S
ymposium on Co1IpilerCons
truction+ pp、98−105. June
1982 )に示されている手法を適用して行うこと
ができる。すなわち、[同時に異なるデータを保持する
レジスタが同じ色にならないように、使用しているすべ
ての仮想レジスタを14色以下の色で塗り分ける」とい
う問題をグラフ理論を応用して解くことにより、行われ
る。
なお、その手法の詳細は上記参考文献に詳しく述べられ
ているのでここでは説明を省略する。
ているのでここでは説明を省略する。
ただし、上記手法においては、中間コード中の第1群の
仮想レジスタを実レジスタに割り付けているのに対し、
S2では実レジスタの個数と同じ14個の第2群の仮想
レジスタに割り付けている。
仮想レジスタを実レジスタに割り付けているのに対し、
S2では実レジスタの個数と同じ14個の第2群の仮想
レジスタに割り付けている。
これは、各レジスタが複数の出力ボートを有して複数の
レジスタから同時にデータを出力し得るレジスタ装置に
おいては、同時に異なるデータを保持する仮想レジスタ
が同一の実レジスタに割り当てられることさえなければ
、いずれの実レジスタに割り当てられても演算処理速度
は同じであるが、前述のようにレジスタがグループ分け
されたレジスタ装置を用いる場合には、S2で第2群の
仮想レジスタに割り付け、以下に示すS3・S4におい
て、同時に演算対象となるレジスタができるだけ同一の
グループに属さないように実レジスタを割り当てる処理
を行う。
レジスタから同時にデータを出力し得るレジスタ装置に
おいては、同時に異なるデータを保持する仮想レジスタ
が同一の実レジスタに割り当てられることさえなければ
、いずれの実レジスタに割り当てられても演算処理速度
は同じであるが、前述のようにレジスタがグループ分け
されたレジスタ装置を用いる場合には、S2で第2群の
仮想レジスタに割り付け、以下に示すS3・S4におい
て、同時に演算対象となるレジスタができるだけ同一の
グループに属さないように実レジスタを割り当てる処理
を行う。
すなわち、S3では、前述のように第2群の仮想レジス
タが14個で、汎用レジスタ群11・12の実レジスタ
数がそれぞれ7個である場合には、各仮想レジスタがい
ずれの汎用レジスタ群のレジスタに割り付けられるかの
対応関係の組み合わせは、14C7”=3400通りな
ので、そのすべての組み合わせについて、プログラムの
実行時に同時に演算対象となるレジスタが同一のグルー
プに属している頻度を算出する。
タが14個で、汎用レジスタ群11・12の実レジスタ
数がそれぞれ7個である場合には、各仮想レジスタがい
ずれの汎用レジスタ群のレジスタに割り付けられるかの
対応関係の組み合わせは、14C7”=3400通りな
ので、そのすべての組み合わせについて、プログラムの
実行時に同時に演算対象となるレジスタが同一のグルー
プに属している頻度を算出する。
この算出処理は、近年のデータ処理装置の処理能力を考
慮すれば十分算出可能な処理であるが、実レジスタ数が
多い場合などには、例えば、[2色の色を使用して、同
一命令で使用するレジスタには異なる色を塗るJという
問題を、前記グラフ理論を用いて解く方法を使用すれば
計算量を減少させることも可能である。
慮すれば十分算出可能な処理であるが、実レジスタ数が
多い場合などには、例えば、[2色の色を使用して、同
一命令で使用するレジスタには異なる色を塗るJという
問題を、前記グラフ理論を用いて解く方法を使用すれば
計算量を減少させることも可能である。
ここで、中間コード中にループを形成している処理が含
まれている場合には、そのループの深さに応じて、上記
頻度に重み係数を乗じて算出すれば、より確実に演算速
度の向上を図ることができる。
まれている場合には、そのループの深さに応じて、上記
頻度に重み係数を乗じて算出すれば、より確実に演算速
度の向上を図ることができる。
次に、S4で、上記算出された頻度がもっとも小さくな
る対応関係で、第2群の仮想レジスタを実レジスタに割
り付け、目的プログラムを生成する。
る対応関係で、第2群の仮想レジスタを実レジスタに割
り付け、目的プログラムを生成する。
以上のように、各レジスタの出力ボート数を少なくして
も、参照するレジスタが各グループに分散していれば、
実質的に同時参照可能なレジスタ数は減少しないので、
演算速度の向上とともに、回路構成の簡素化を図ること
ができる。
も、参照するレジスタが各グループに分散していれば、
実質的に同時参照可能なレジスタ数は減少しないので、
演算速度の向上とともに、回路構成の簡素化を図ること
ができる。
特に、同一グループ内の複数レジスタの同時参照頻度が
小さくなるようにレジスタの割り付け処理を行うことに
より、上記演算速度を確実に向上させることができる。
小さくなるようにレジスタの割り付け処理を行うことに
より、上記演算速度を確実に向上させることができる。
発明の詳細
な説明したように、請求項第1項記載の発明によれば、
複数のレジスタグループにグループ分けされた複数のレ
ジスタと、互いに異なるレジスタグループに含まれる複
数のレジスタからデータを出力させる場合に、各レジス
タに同時にデータを出力させるレジスタ制御手段を備え
ていることにより、各レジスタに複数のポートを設けな
くでも、複数のレジスタから複数のバスに同時にデータ
を出力させることができるので、簡潔な回路構成で、し
かも演算速度の向上等を図ることができるという効果を
奏する。
複数のレジスタグループにグループ分けされた複数のレ
ジスタと、互いに異なるレジスタグループに含まれる複
数のレジスタからデータを出力させる場合に、各レジス
タに同時にデータを出力させるレジスタ制御手段を備え
ていることにより、各レジスタに複数のポートを設けな
くでも、複数のレジスタから複数のバスに同時にデータ
を出力させることができるので、簡潔な回路構成で、し
かも演算速度の向上等を図ることができるという効果を
奏する。
また、請求項第2項記載の発明によれば、各変数および
/または演算の途中結果をレジスタに割り付ける複数通
りの対応関係について、同一のレジスタグループに含ま
れる複数のレジスタから順次データを出力させる頻度を
算出し、この算出結果に基づいてレジスタの割り付けを
行うので、確実に演算速度の向上を図ることができる。
/または演算の途中結果をレジスタに割り付ける複数通
りの対応関係について、同一のレジスタグループに含ま
れる複数のレジスタから順次データを出力させる頻度を
算出し、この算出結果に基づいてレジスタの割り付けを
行うので、確実に演算速度の向上を図ることができる。
第1図はレジスタ装置が適用されたデータ処理装置の要
部の構成を示すブロック図、第2図はレジスタ割り付け
装置の構成を示すブロック図、第3図は処理装置で行わ
れるレジスタ割り付け処理動作を示すフローチャート、
第4図は従来のレジスタ装置が適用されたデータ処理装
置の要部の構成を示すブロック図である。 11・12・・・汎用レジスタ群、lla・llb・1
2a・12b・・・レジスタ、40・・・レジスタ制御
手段、52・・・処理装置、311・312・・・選択
器 代理人 弁理士 中島 司朗 第3図 第4図 1.32
部の構成を示すブロック図、第2図はレジスタ割り付け
装置の構成を示すブロック図、第3図は処理装置で行わ
れるレジスタ割り付け処理動作を示すフローチャート、
第4図は従来のレジスタ装置が適用されたデータ処理装
置の要部の構成を示すブロック図である。 11・12・・・汎用レジスタ群、lla・llb・1
2a・12b・・・レジスタ、40・・・レジスタ制御
手段、52・・・処理装置、311・312・・・選択
器 代理人 弁理士 中島 司朗 第3図 第4図 1.32
Claims (2)
- (1)複数のレジスタグループにグループ分けされた複
数のレジスタと、 互いに異なるレジスタグループに含まれる複数のレジス
タからデータを出力させる場合には、各レジスタに同時
にデータを出力させる一方、同一のレジスタグループに
含まれる複数のレジスタからデータを出力させる場合に
は、各レジスタに順次データを出力させるレジスタ制御
手段と、前記レジスタグループから出力された各データ
をそれぞれ所定のバスに出力する切り換え手段とを備え
たことを特徴とするレジスタ装置。 - (2)請求項第1項記載のレジスタ装置を備えたデータ
処理装置で実行されるプログラム中の各変数および/ま
たは演算の途中結果を前記各レジスタに割り付けるレジ
スタ割り付け方法であって、前記各変数および/または
演算の途中結果を第1の仮想レジスタ群の無限個の仮想
レジスタに割り付けるステップと、 前記各仮想レジスタを第2の仮想レジスタ群を構成する
、データ処理装置の実レジスタの個数と同じ個数の仮想
レジスタに割り付けるステップと、前記第2の仮想レジ
スタ群の各仮想レジスタを前記実レジスタに割り付ける
複数通りの対応関係について、前記同一のレジスタグル
ープに含まれる複数のレジスタから順次データを出力さ
せる頻度を算出し、この算出結果に基づいて、第2の仮
想レジスタ群の各仮想レジスタを実レジスタに割り付け
るステップと を有することを特徴とするレジスタ割り付け方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2334716A JPH04199428A (ja) | 1990-11-29 | 1990-11-29 | レジスタ装置およびレジスタ割り付け方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2334716A JPH04199428A (ja) | 1990-11-29 | 1990-11-29 | レジスタ装置およびレジスタ割り付け方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04199428A true JPH04199428A (ja) | 1992-07-20 |
Family
ID=18280417
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2334716A Pending JPH04199428A (ja) | 1990-11-29 | 1990-11-29 | レジスタ装置およびレジスタ割り付け方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04199428A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009059001A (ja) * | 2007-08-29 | 2009-03-19 | Internatl Business Mach Corp <Ibm> | プログラムのコンパイルのために変数にレジスタを割り付ける技術 |
-
1990
- 1990-11-29 JP JP2334716A patent/JPH04199428A/ja active Pending
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009059001A (ja) * | 2007-08-29 | 2009-03-19 | Internatl Business Mach Corp <Ibm> | プログラムのコンパイルのために変数にレジスタを割り付ける技術 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5056000A (en) | Synchronized parallel processing with shared memory | |
| US5872987A (en) | Massively parallel computer including auxiliary vector processor | |
| US20030061601A1 (en) | Data processing apparatus and method, computer program, information storage medium, parallel operation apparatus, and data processing system | |
| JPS58151655A (ja) | 情報処理装置 | |
| JPS6027984A (ja) | デ−タ処理装置 | |
| KR100288170B1 (ko) | 레지스터 화일군을 공유하는 연산 유닛을 갖춘 데이타 처리기 | |
| US4755931A (en) | Vector processing unit capable of reading vector data from a vector register simultaneously to plural resources | |
| JP3144842B2 (ja) | マイクロプロセッサ | |
| JPH04199428A (ja) | レジスタ装置およびレジスタ割り付け方法 | |
| JPH0650512B2 (ja) | デ−タ処理装置 | |
| EP0314342B1 (en) | Parallel pipelined computer processor | |
| JPS60204029A (ja) | 信号処理装置 | |
| JPS62145435A (ja) | コンカレント処理命令を有するマイクロプロセツサ | |
| CN109948785B (zh) | 一种高效的神经网络电路系统和方法 | |
| JP2545798B2 (ja) | デイジタル信号処理回路 | |
| JPH0199132A (ja) | マルチタスク実行装置 | |
| JPH0789320B2 (ja) | 演算処理装置 | |
| JPH025104A (ja) | 演算処理装置 | |
| JPS62164138A (ja) | コンカレントル−プを有するマイクロプロセツサ | |
| JP2760808B2 (ja) | データ処理装置 | |
| JPS63204322A (ja) | 情報処理装置 | |
| JPH04184535A (ja) | 並列演算装置 | |
| JPH0452760A (ja) | ベクトル処理装置 | |
| CN121478350A (zh) | 一种指令执行设备、执行方法及电子装置 | |
| JP2560120B2 (ja) | 演算装置 |