JP3317985B2 - 擬似ベクトルプロセッサ - Google Patents

擬似ベクトルプロセッサ

Info

Publication number
JP3317985B2
JP3317985B2 JP30447691A JP30447691A JP3317985B2 JP 3317985 B2 JP3317985 B2 JP 3317985B2 JP 30447691 A JP30447691 A JP 30447691A JP 30447691 A JP30447691 A JP 30447691A JP 3317985 B2 JP3317985 B2 JP 3317985B2
Authority
JP
Japan
Prior art keywords
register
instruction
value
floating
physical
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 - Lifetime
Application number
JP30447691A
Other languages
English (en)
Other versions
JPH07114534A (ja
Inventor
喜三郎 中澤
宏 中村
弘充 位守
英夫 和田
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 JP30447691A priority Critical patent/JP3317985B2/ja
Priority to US07/977,298 priority patent/US5438669A/en
Priority to EP92119710A priority patent/EP0543366B1/en
Priority to DE69229771T priority patent/DE69229771T2/de
Publication of JPH07114534A publication Critical patent/JPH07114534A/ja
Application granted granted Critical
Publication of JP3317985B2 publication Critical patent/JP3317985B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】 本発明はデ−タ処理装置に関
し、さらに具体的には命令によってアドレス可能なレジ
スタの数より多いレジスタをデ−タ処理装置がアクセス
可能とする技術に関する。特に、このようにすることに
よって、キャッシュがあまり有効でない大規模なデ−タ
を連続的に処理するいわゆるベクトル処理に際しても、
主記憶からの転送のための性能低下がほとんど生じない
ようにし、効率の良い疑似ベクトル処理を通常のデ−タ
処理装置で実現可能とする技術に関する。
【0002】
【従来の技術】 (従来技術1)従来、命令によってア
ドレス可能なレジスタの数より多いレジスタをデ−タ処
理装置がアクセス可能とする技術としては、特開昭57
−166649号に記載があり、その方式によると、ま
ず、プログラムによってアドレス可能な汎用レジスタの
数よりも多いハ−ドウェアレジスタと称するレジスタ群
を設け、異なった主記憶アドレスから同一の汎用レジス
タに対する複数のロ−ド命令があったら、該ロ−ド命令
の数だけハ−ドウェアレジスタに保持する(すなわち、
プログラムによってアドレス可能な汎用レジスタの数が
16である場合、ハ−ドウェアレジスタを各汎用レジス
タ当たり16、つまり、合計256用意し、たとえば、
汎用レジスタ0にはハ−ドウェアレジスタ0から15を
割り当てる。汎用レジスタ0に対して16個の異なった
主記憶アドレスを指定したロ−ド命令が実行された場合
は、該16個のロ−ド命令からのデ−タをハ−ドウェア
レジスタ0からハ−ドウェアレジスタ15までの中に保
持する)。そして、過去に実行されたロ−ド命令の主記
憶アドレスとその時ロ−ドされたデ−タが格納されてい
るハ−ドウェアレジスタ番号を登録しておく記憶機構を
設け、プログラムで発行されたロ−ド命令が該記憶機構
に登録されている主記憶アドレスと一致したら、主記憶
からデ−タを読まずに、対応するハ−ドウェアレジスタ
からデ−タを読みだす。この方式により、主記憶参照回
数が低減でき、また、命令間の参照レジスタのぶつかり
による性能低下を防ぐことができる。
【0003】(従来技術2)従来、命令によってアドレ
ス可能なレジスタの数より多いレジスタをデ−タ処理装
置がアクセス可能とする技術としては、J.L.Hen
nessy and D.A.Patterson ”
ComputerArchitecture : A
QuantitativeApproach”, Mo
rgan Kaufmann Publish−er
s, Inc.(1990)に記載があり、その方式に
よると、まず、プログラムによってアドレス可能なレジ
スタの数より多い物理レジスタと称するレジスタを設
け、該物理レジスタを複数個のウィンドウと呼ばれる部
分に分ける。すなわち、各ウィンドウは複数個の物理レ
ジスタから成る。たとえば、プログラムによってレジス
タが番号1からnまで番号づけられるとし、物理レジス
タがn*m個、すなわち、番号1からn*mまで設けら
れたとする。ウィンドウをm個、すなわち、番号1から
mまで設けるとすれば、ウィンドウ1は物理レジスタ1
からn、ウィンドウ2は物理レジスタn+1から2nと
いうように割り当てることができる。実際には、全ウィ
ンドウ共通の物理レジスタや、隣合うウィンドウ共通の
物理レジスタなどを設けるのが通例であるが、簡単のた
め、前記の例を示した。各ウィンドウは1つのプログラ
ムが使用するレジスタを持つ。すなわち、あるプログラ
ムでアドレス可能なレジスタを参照することは、実際に
は、あるウィンドウに属する物理レジスタを参照するこ
とになる。たとえば、前記の例では、あるプログラムに
ウィンドウ2が割当てられていたとしたら、該プログラ
ムでレジスタkを指定したら、参照される物理レジスタ
は物理レジスタn+kになる。
【0004】このウィンドウは以下のように使う。仮
に、あるプログラムにウィンドウjが割当てられていた
場合、該プログラムが別のプログラムを呼んだ(cal
lした)場合、呼ばれたプログラムには、ウィンドウj
+1が割当てられる。また、あるプログラムにウィンド
ウjが割当てられていた場合、該プログラムから該プロ
グラムを呼んだプログラムに戻った(returnし
た)場合、戻り先のプログラムには、ウィンドウj−1
が割当てられる。このように使うことによって、以下の
効果がある。プログラムによってアドレス可能なレジス
タの数だけのレジスタしか持たないシステムでは、前記
のようなプログラムの呼びが発生するたびに、該呼び発
生時点の情報保存のために、レジスタに格納されていた
デ−タを主記憶に格納しなければならず、プログラムの
戻りが発生するたびに、プログラムの再開のために、主
記憶に格納されていたデ−タをレジスタに書き戻さなく
てはならない。前記のウィンドウの機構を持つシステム
では、異なるウィンドウが割当てられているプログラム
は異なる物理レジスタを参照しているので、前記のレジ
スタからの主記憶への格納、主記憶からレジスタへの書
き戻しの操作が不要になり、処理が高速化される。
【0005】ただし、該ウィンドウの機構を持つシステ
ムでは、「最大のウィンドウ番号のプログラムからプロ
グラムの呼びが発された場合、ウィンドウオ−バフロ−
の割込みを起こし、最小のウィンドウ番号のプログラム
からプログラムの戻りが発された場合、ウィンドウアン
ダフロ−の割込みを起こす」という制御が必要になる。
【0006】
【発明が解決しようとする課題】科学技術計算の大部分
は以下に示すような、ベクトル演算である。
【0007】 C(i)=A(i)+B(i) i=1,N (1) ここで、A,B,Cは要素数Nのベクトルである。
【0008】式(1)を、汎用計算機で実行すると、表
1のようなプログラムになる。
【0009】以下の説明で、レジスタとして浮動小数点
数が格納される浮動小数点レジスタを例にとり、浮動小
数点レジスタのデ−タ幅は8バイトであるとする。
【0010】表1中の各命令の機能を以下に説明する。
【0011】FLDM a(GRm),FRn (機能)汎用レジスタmの値で表される主記憶アドレス
から8バイトのデ−タを読みだし、浮動小数点レジスタ
nに格納する。
【0012】その後、汎用レジスタmの値をa加える。
【0013】FADD FRj,FRm,FRn (機能)浮動小数点レジスタmの値と浮動小数点レジス
タnの値を加えて浮動小数点レジスタjに格納する。
【0014】FSTM a(GRm),FRn (機能)浮動小数点レジスタnの値(8バイト)を汎用
レジスタmの値で表される主記憶アドレスにストアす
る。
【0015】その後、汎用レジスタmの値をa加える。
【0016】BCNT GRm,t (機能)GRmの値を1減じる。その値がゼロでなけれ
ば、番地tに分岐する。ゼロならば、分岐しない。
【0017】
【表1】
【0018】ここで、表1のプログラムの実行に先だっ
て、ベクトルAは、主記憶アドレスad1から始まる連
続領域に格納されているものとする。すなわち、A
(1)の主記憶アドレスがad1、A(2)の主記憶ア
ドレスがad1+8というように格納されている。同様
にベクトルBは、主記憶アドレスad2から始まる連続
領域に格納されているものとする。また、ベクトルC
は、主記憶アドレスad3から始まる連続領域に格納す
るものとする。汎用レジスタ1にはad1が、汎用レジ
スタ2にはad2が、汎用レジスタ3にはad3が、汎
用レジスタ4にはNが前もって格納されているものとす
る。
【0019】表1からわかるように、No.1、No.
2のFLDM命令でA(i)、B(i)がそれぞれ、浮
動小数点レジスタ12、13にロ−ドされ、該2レジス
タの値が加えられ浮動小数点レジスタ20に格納され、
該レジスタの内容がC(i)にストアされる。
【0020】すなわち、5命令からなるル−プを1回実
行することによって、1要素の結果が求まり、このル−
プをN回実行することによって全要素計算ができる。
【0021】ここで問題となるのは、1ル−プの実行時
間である。まずNo.1とNo.2のFLDM命令で浮
動小数点レジスタ12と13に主記憶からデ−タをロ−
ドしているが、キャッシュにデ−タがある場合はFLD
M命令は短いサイクル数で終わるが、キャッシュにない
場合は、キャッシュよりはかなり低速の主記憶からデ−
タを読みださなくてはならず、キャッシュにデ−タがあ
る場合に比べ、かなり時間がかかることになる。次にN
o.3のFADD命令は浮動小数点レジスタ12と13
の値を使うが、浮動小数点レジスタ12と13は先行す
る2つのFLDM命令の実行が終わらないと、すなわ
ち、前記のデ−タ読みだしが終わらないと、値が決まら
ないので、FADD命令はそれまで実行が開始できな
い。さらに、No.4のFSTM命令は浮動小数点レジ
スタ20の値を使うが、浮動小数点レジスタ20の値は
先行するFADD命令の実行が終わらないと値が決まら
ないので、FSTM命令はそれまで実行が開始できな
い。すなわち、(1)デ−タ読みだし時間、(2)レジ
スタのぶつかりという2つの性能低下要因がル−プの実
行時間を長くすることになる。特に(1)は長大デ−タ
を扱う計算の場合は深刻で、必要なデ−タがキャッシュ
にはいりきらない場合が多いので、性能の低下は大きく
なる。
【0022】この問題を解決する一手法がル−プアンロ
−リングであり、表2に示す手法である。すなわち、1
ル−プで複数要素(=nとする)を処理し、1ル−プで
1要素を処理する場合に比べ、ル−プ回数を1/nにす
る方式である。表2は1ル−プで4要素を処理する方式
である。
【0023】
【表2】
【0024】ここで、表2のプログラムの実行に先だっ
て、ベクトルAは、主記憶アドレスad1から始まる連
続領域に格納されているものとする。すなわち、A
(1)の主記憶アドレスがad1、A(2)の主記憶ア
ドレスがad1+8というように格納されている。同様
にベクトルBは、主記憶アドレスad2から始まる連続
領域に格納されているものとする。また、ベクトルC
は、主記憶アドレスad3から始まる連続領域に格納す
るものとする。汎用レジスタ1にはad1が、汎用レジ
スタ2にはad2が、汎用レジスタ3にはad3が、汎
用レジスタ4にはN/4が前もって格納されているもの
とする。
【0025】表2からわかるように、17命令からなる
ル−プを1回実行することによって、4要素の結果が求
まり、このル−プをN/4回実行することによって全要
素計算ができる。
【0026】表2からわかる通り、i番目の要素に関
し、ロ−ドをNo.1とNo.2のFLDM命令で、加
算をNo.9のFADD命令で、ストアをNo.13の
FSTM命令で行う。同様に、i+1番目の要素に関
し、ロ−ドをNo.3とNo.4のFLDM命令で、加
算をNo.10のFADD命令で、ストアをNo.14
のFSTM命令で行う。同様に、i+2番目の要素に関
し、ロ−ドをNo.5とNo.6のFLDM命令で、加
算をNo.11のFADD命令で、ストアをNo.15
のFSTM命令で行う。同様に、i+3番目の要素に関
し、ロ−ドをNo.7とNo.8のFLDM命令で、加
算をNo.12のFADD命令で、ストアをNo.16
のFSTM命令で行う。したがって、表1に比べ、ある
1つの要素番号で示される要素に関するロ−ド、加算、
ストアという一連の処理が、命令列上で離れることにな
り、前記の(1)デ−タ読みだし時間、(2)レジスタ
のぶつかりという2つの性能低下要因の影響を低減でき
る。たとえば、No.1とNo.2のFLDM命令でA
(i)とB(i)のロ−ドが行われ、そのロ−ド結果が
使われるのが、7命令後になるので、デ−タ読みだし時
間が7サイクル以内ならば、そのロ−ド結果を使うN
o.9のFADD命令が待たされることはない。また、
No.9のFADD命令による加算結果A(i)+B
(i)が使われるのが、4命令後になるので、加算に要
する時間が4サイクル以内ならば、No.13のFST
M命令が待たされることはない。
【0027】このように、ル−プアンロ−リングによっ
て、性能は向上するが、この方式の欠点は、多くのレジ
スタを必要とすることである。表1のプログラムが3本
の浮動小数点レジスタを必要とするのに対し、表2のプ
ログラムは、12本の浮動小数点レジスタを必要とす
る。デ−タの読みだしに要する時間がさらに長かった
り、演算に要する時間がさらに長かったりすると、もっ
と多くの要素を1ル−プで処理しなくてはならず、より
多くのレジスタが必要となることになる。
【0028】一般に、レジスタはアクティブな素子(す
なわち、メモリ素子ではない)で構成され、読みだし/
書き込みのためのポ−ト(すなわち、デ−タの出入口)
を多く用意することができるので、いわゆる記憶装置が
1つの動作サイクルに1個のデ−タの読みだし/書き込
みしかできないのに比べ、極めて高速である。したがっ
て、主記憶はもちろん、キャッシュに比べても、高速化
のためには、十分な容量のレジスタをもっていることが
必要不可欠である。それにもかかわらず、従来、レジス
タの数が比較的少なかったのは、ビット当たりのコスト
が高価であったことと、下記に示すように命令形式上の
レジスタ番号のフィ−ルドの長さに制限があったためで
ある。コストの問題はLSI化で解決されつつあるが、
後者はまだ未解決であった。
【0029】プログラムでアドレス可能なレジスタの数
は、ア−キテクチャ上から制限されている。たとえば、
命令語中にレジスタ指定フィ−ルドが5ビットあれば、
アドレス可能なレジスタの数は32(2の5乗)であ
る。該レジスタ指定フィ−ルドのビット数を増せば、プ
ログラムでアドレス可能なレジスタの数は増えるが、命
令形式が変わるので、既存のプログラムの変更が必要と
なり、非現実的である。
【0030】そこで、デ−タ処理装置のア−キテクチャ
を変えずに、命令によってアドレス可能なレジスタの数
より多いレジスタをデ−タ処理装置がアクセス可能とす
る方式が必要となるが、従来技術1では、過去にロ−ド
命令が実行された主記憶アドレスに対し、新たにロ−ド
命令が発行された場合は高速化される。しかし、式
(1)のようなベクトル計算は多くの場合、表1、2の
プログラムのように主記憶上のデ−タに対するロ−ド要
求は1度しか出ないので、従来技術では高速化されない
という問題がある。
【0031】また、従来技術2では、1つのプログラム
で使えるのはある1つのウィンドウに属する物理レジス
タのみであり、その数はプログラムでアドレス可能なレ
ジスタの数に等しく、1つのプログラムで行なわれる演
算を高速化できない。すなわち、前記のウィンドウの機
構は、プログラムの呼びと戻りが発生する場合のみ処理
の高速化がなされ、式(1)のベクトル計算のように1
つのプログラムで処理が完結しているような場合は高速
化されないという問題がある。また、前記のウィンドウ
オ−バフロ−、ウィンドウアンダフロ−の割込みは式
(1)のベクトル計算のように1つのプログラムで処理
が完結していて、プログラムの呼びと戻りが発生しない
場合は不要であるという問題がある。
【0032】本発明の目的は、デ−タ処理装置のア−キ
テクチャを変えずに、命令によってアドレス可能なレジ
スタの数より多いレジスタをデ−タ処理装置がアクセス
可能とし、科学技術計算におけるベクトル計算を高速に
実行する方式を提供することにある。
【0033】
【課題を解決するための手段】上記目的を達成するため
に、命令によってアドレス可能な浮動小数点レジスタの
数より多い物理浮動小数点レジスタと呼ばれる浮動小数
点レジスタを用意し、該レジスタは物理浮動小数点レジ
スタ番号で参照されることにする。また、物理浮動小数
点レジスタ全体をウィンドウと呼ばれる複数個のレジス
タから成る部分群に区分けし、ウィンドウ番号とウィン
ドウ内のレジスタ番号の組合せで参照することもできる
ようにする。これらの対応関係を決定づけるために、論
理浮動小数点レジスタ番号と呼ばれる、プログラム命令
中の浮動小数点レジスタ番号を、物理浮動小数点レジス
タ番号に変換するパタ−ンを示す現浮動小数点ウィンド
ウポインタを格納する現浮動小数点ウィンドウポインタ
レジスタ、現浮動小数点ウィンドウポインタが有効であ
ることを示す値を格納しておく現浮動小数点ウィンドウ
ポインタ有効レジスタ、現浮動小数点ウィンドウポイン
タを用いて論理浮動小数点レジスタ番号を物理浮動小数
点レジスタ番号に変換する変換回路、現浮動小数点ウィ
ンドウポインタを変更する現浮動小数点ウィンドウポイ
ンタ変更命令、論理浮動小数点レジスタ番号を現浮動小
数点ウィンドウポインタから決定されるが該現浮動小数
点ウィンドウポインタとは異なる値を現浮動小数点ウィ
ンドウポインタとして変換した物理浮動小数点レジスタ
に主記憶デ−タを格納する浮動小数点レジスタプリロ−
ド命令、論理浮動小数点レジスタ番号を現浮動小数点ウ
ィンドウポインタから決定されるが該現浮動小数点ウィ
ンドウポインタとは異なる値を現浮動小数点ウィンドウ
ポインタとして変換した物理浮動小数点レジスタから主
記憶にデ−タを格納する浮動小数点レジスタポストスト
ア命令を設ける。
【0034】
【作用】浮動小数点レジスタを参照する命令では全て、
現浮動小数点ウィンドウポインタ有効レジスタの値が1
であれば、論理浮動小数点レジスタ番号−物理浮動小数
点レジスタ番号変換が行われ、浮動小数点レジスタの参
照で物理浮動小数点レジスタ番号が参照される。現浮動
小数点ウィンドウポインタ有効レジスタの値が0であれ
ば、論理浮動小数点レジスタ番号は物理浮動小数点レジ
スタ番号に等しい。
【0035】論理浮動小数点レジスタ番号−物理浮動小
数点レジスタ番号変換は以下のようにして行われる。論
理浮動小数点レジスタが物理浮動小数点レジスタのどの
範囲を指定するかを、複数通り設ける。この範囲の指定
が前述のウィンドウである。
【0036】ウィンドウの設けかたの一例を図1に示
す。本例では、論理浮動小数点レジスタは32本で、論
理浮動小数点レジスタ番号は0から31まで指定可能と
する。物理浮動小数点レジスタは88本で、物理浮動小
数点レジスタ番号は0から87である。ウィンドウはw
0からw3の4通り設け、現浮動小数点ウィンドウポイ
ンタ0から3でそれぞれ指定される。
【0037】ここで、現浮動小数点ウィンドウポインタ
をw、論理浮動小数点レジスタ番号をrと表記し、物理
浮動小数点レジスタ番号はwとrから決まるので、<
w,r>と表記することにする。
【0038】命令でwの増減を行なうが、該増減は4を
法として行なわれる。たとえば、w=3では、w+1の
値は0になる。
【0039】図1の例では、以下のように論理浮動小数
点レジスタ番号−物理浮動小数点レジスタ番号変換が行
われる。
【0040】 1. 0≦r≦7の時 : wに関係なく<w,r>=r (2) 2. 8≦r≦31の時 : <0,r>=r (3) <1,r>=r+20 (4) <2,r>=r+40 (5) <3,r>=r+60 (8≦r≦27) r−20 (28≦r≦31) (6) 上記の変換法で以下の2つが特長的である。
【0041】1. 0番から7番の物理浮動小数点レジ
スタは、各ウィンドウ共通に使う。これらのレジスタ
は、global registerとして、それぞれ
のウィンドウを用いる演算ル−プに共通のデ−タを保持
する。
【0042】2. 各ウィンドウの論理浮動小数点レジ
スタ28番から31番は、現浮動小数点ウィンドウポイ
ンタが1つ大きいウィンドウの論理浮動小数点レジスタ
8番から11番と同一の物理浮動小数点レジスタを指
す。これらのレジスタは、overlap regis
terとして隣合うウィンドウを用いる演算ル−プ間の
デ−タの受渡しに用いる。
【0043】前記新設命令の命令ニモニックと機能を、
一例として、以下のように定める。
【0044】 1.現浮動小数点ウィンドウポインタ変更命令 (命令ニモニック)CFRWPS GRm (機能)汎用レジスタmの値を現浮動小数点ウィンドウ
ポインタレジスタにセットする。 2.浮動小数点レジスタプリロ−ド命令 (命令ニモニック)FLDPRM a(GRm),FR
n (機能)汎用レジスタmの値で表される主記憶アドレス
から8バイトのデ−タを読みだし、浮動小数点レジスタ
nに格納する。このとき、(現浮動小数点レジスタウィ
ンドウポインタ+1)を現浮動小数点レジスタウィンド
ウポインタとして、論理浮動小数点レジスタ番号−物理
浮動小数点レジスタ番号変換が行われる。
【0045】その後、汎用レジスタmの値をa加える。
【0046】3.浮動小数点レジスタポストストア命令 FSTPOM a(GRm),FRn (機能)浮動小数点レジスタnの値(8バイト)を汎用
レジスタmの値で表される主記憶アドレスにストアす
る。このとき、(現浮動小数点レジスタウィンドウポイ
ンタ−1)を現浮動小数点レジスタウィンドウポインタ
として、論理浮動小数点レジスタ番号−物理浮動小数点
レジスタ番号変換が行われる。
【0047】その後、汎用レジスタmの値をa加える。
【0048】また、一般の浮動小数点命令(すなわち、
上記2−3を除く浮動小数点命令)では、現浮動小数点
レジスタウィンドウポインタを用いて、論理浮動小数点
レジスタ番号−物理浮動小数点レジスタ番号変換が行わ
れる。
【0049】式(1)を、上記新設機能を用いると、表
3のようなプログラムになる。
【0050】ここで、表3のプログラムの実行に先だっ
て、ベクトルAは、主記憶アドレスad1から始まる連
続領域に格納されているものとする。すなわち、A
(1)の主記憶アドレスがad1、A(2)の主記憶ア
ドレスがad1+8というように格納されている。同様
にベクトルBは、主記憶アドレスad2から始まる連続
領域に格納されているものとする。また、ベクトルC
は、主記憶アドレスad3から始まる連続領域に格納す
るものとする。汎用レジスタ4にはN−2、汎用レジス
タ5には1、汎用レジスタ6には0、現浮動小数点レジ
スタウインドウポインタレジスタには0が格納されてい
るものとする。
【0051】ここで、表3には、上記の記述にないAD
D命令が含まれているので、該命令の機能を以下に述べ
る。
【0052】ADD GRj,GRm (機能)汎用レジスタjの値と汎用レジスタmの値を加
えて汎用レジスタjに格納する。
【0053】
【表3】
【0054】以下、表3について説明する。No.1の
FLDM命令では、現浮動小数点レジスタウィンドウポ
インタで論理浮動小数点レジスタ番号−物理浮動小数点
レジスタ番号変換が行われるので、A(1)が物理浮動
小数点レジスタ<0、12>に格納される。同様にN
o.2のFLDM命令でB(1)が物理浮動小数点レジ
スタ<0、13>に格納される。No.3のFLDPR
M命令では、「現浮動小数点レジスタウィンドウポイン
タ+1」の値で論理浮動小数点レジスタ番号−物理浮動
小数点レジスタ番号変換が行われるので、A(2)が物
理浮動小数点レジスタ<1、12>に格納される。同様
に、No.4のFLDPRM命令でB(2)が物理浮動
小数点レジスタ<1、13>に格納される。No.5の
FADD命令では、現浮動小数点レジスタウィンドウポ
インタで論理浮動小数点レジスタ番号−物理浮動小数点
レジスタ番号変換が行われるので、物理浮動小数点レジ
スタ<0、12>の値と物理浮動小数点レジスタ<0、
13>の値が加算されて物理浮動小数点レジスタ<0、
20>に格納される。No.1,No.2のFLDM命
令でA(1)、B(1)がそれぞれ物理浮動小数点レジ
スタ<0、12>と物理浮動小数点レジスタ<0、13
>に格納されているので、A(1)+B(1)が物理浮
動小数点レジスタ<0、20>に格納されることにな
る。No.5のADD命令とNo.6のCFRWPS命
令で現浮動小数点レジスタウィンドウポインタが+1さ
れ、1になる。No.8のFLDPRM命令からNo.
14のBCNT命令までが、ル−プを構成し、N−2回
くりかえし実行される。以下、ル−プ内での現浮動小数
点レジスタウィンドウポインタの値をwとする。第i−
1回目に実行されるル−プについて見る。汎用レジスタ
1、汎用レジスタ2の値からわかる通り、No.10の
FADD命令で加算されるデ−タはA(i)とB(i)
になり、No.8、No.9のFLDPRM命令で物理
浮動小数点レジスタ<w+1、12>と物理浮動小数点
レジスタ<w+1、13>にロ−ドされるのは、それぞ
れ、A(i+1)、B(i+1)になる。汎用レジスタ
3の値からわかる通り、No.11のFSTPOM命令
で物理浮動小数点レジスタ<w−1、20>の値がC
(i−1)の主記憶位置に格納される。No.12のA
DD命令とNo.13のCFRWPS命令で現浮動小数
点レジスタウィンドウポインタwが+1され、ル−プの
先頭に戻る。すなわち、1つのル−プの中では、1つ後
のル−プで加算されるデ−タA(i+1)、B(i+
1)をそれぞれ、物理浮動小数点レジスタ<w+1,1
2>、物理浮動小数点レジスタ<w+1,13>に格納
し、前のル−プでそれぞれ、物理浮動小数点レジスタ<
w,12>、物理浮動小数点レジスタ<w,13>に格
納されたA(i)とB(i)を加算して、物理浮動小数
点レジスタ<w,20>に格納し、前のル−プで物理浮
動小数点レジスタ<w−1,20>に格納されたA(i
−1)+B(i−1)をC(i−1)の主記憶位置に格
納する。
【0055】ル−プを抜けた後のNo.15からNo.
19の命令は、未処理の要素の処理であり、No.15
のFADD命令でA(N)+B(N)を実行し、No.
16、、No.19のFSTPOM命令でそれぞれA
(N−1)+B(N−1)、A(N)+B(N)の主記
憶へのストアを行う。
【0056】ル−プ内の処理をからわかるように、N
o.8、No.9のFLDPRM命令で論理浮動小数点
レジスタ12、13を指定して、直後のNo.10のF
ADD命令で論理浮動小数点レジスタ12、13を使っ
ているが、アクセスしている物理浮動小数点レジスタは
異なる。また、No.10のFADD命令で論理浮動小
数点レジスタ20に加算結果を格納し、直後のFSTP
OM命令で論理浮動小数点レジスタ20を使っている
が、アクセスしている物理浮動小数点レジスタは異な
る。したがって、表1のプログラムで発生した、デ−タ
読みだし待ち、演算終了待ちで後続命令の実行が待たさ
れるという現象は起こらず、言いかえれば、デ−タ読み
だし、演算は次ル−プの実行までに完了すればよいわけ
で、プログラムが高速に実行される。また、プログラム
で指定している論理浮動小数点レジスタは3つだけであ
り、表2のプログラムのように浮動小数点レジスタを数
多く使う必要もない。
【0057】ここで、表3のプログラムには、表1、表
2のプログラムにはない現浮動小数点レジスタウィンド
ウポインタの更新の処理があってオ−バヘッドになって
いる。たとえば、表1のプログラムのル−プが5命令で
構成されているのに対し、表3のプログラムのル−プは
7命令で構成されている。しかし、表1のプログラムに
あるデ−タ読みだし待ち、演算終了待ちで後続命令の実
行が待たされるオ−バヘッドの方がはるかに大きい。ま
た、表2のプログラムのようなル−プアンロ−リングの
手法も、プログラムで指定できるレジスタを使い果たし
てしまうと実現できないので、現浮動小数点レジスタウ
ィンドウポインタの更新のオ−バヘッドがあっても、本
発明の方式のほうがすぐれていると考えられる。
【0058】以上のように、本発明の方式によって、命
令列のル−プのくりかえしが主となる科学技術計算のベ
クトル計算では、ル−プごとに現浮動小数点レジスタウ
ィンドウポインタを変え、すなわち、使うウィンドウを
変え、i番目の要素の処理を、第i−1ル−プにおける
浮動小数点レジスタプリロ−ド命令によるオペランドベ
クトルの第i要素のロ−ド、第iル−プにおける演算、
第i+1ル−プにおける浮動小数点レジスタポストスト
ア命令による結果格納用ベクトルの第i要素への演算結
果のストアによって行なうことによって、1つのデ−タ
に対するロ−ド、演算、ストアの処理の命令列上での距
離が大きくなり、デ−タの読みだし時間、演算実行時間
の影響による性能低下を防ぐことができ、高速化ができ
る。
【0059】
【実施例】以下、本発明の一実施例を図を用いて説明す
る。図2に本実施例のデ−タ処理装置を示す。デ−タ処
理装置は、命令の発行および実行を行なう命令処理ユニ
ット10、命令処理ユニットで実行する命令やデ−タを
記憶する主記憶30、命令処理ユニットと主記憶との間
のデ−タのやりとりを制御する記憶制御ユニット20か
ら構成される。
【0060】命令処理ユニット10は、実行する命令を
保持する命令レジスタ101、命令レジスタ101の内
容を解読し、命令実行の制御を行なう命令制御部10
2、汎用演算およびアドレス計算に必要なデ−タを保持
する汎用レジスタ群103、命令で指定される汎用演算
を実行する汎用演算器104、浮動小数点演算に必要な
デ−タを保持する物理浮動小数点レジスタ群105、命
令で指定される浮動小数点演算を実行する浮動小数点演
算器106、主記憶デ−タをアクセスするための主記憶
アドレスを計算するアドレス加算器107、記憶制御ユ
ニット20から読みだされた主記憶デ−タを保持するキ
ャッシュ108、キャッシュ108の検索結果に従い記
憶制御ユニット20から主記憶デ−タを読みだすなどの
制御を行なう主記憶アクセス制御部109、現浮動小数
点レジスタウィンドウポインタを格納する現浮動小数点
ウィンドウポインタレジスタ110、現浮動小数点レジ
スタウィンドウポインタが有効であることを示す現浮動
小数点ウィンドウポインタ有効レジスタ111、命令で
指定された論理浮動小数点レジスタ番号を物理浮動小数
点レジスタ番号に式(2)−(6)にしたがって変換す
る変換論理112から構成される。
【0061】ここで、このデ−タ処理装置には、図3で
示すように、4つの命令が新たに追加される。それら
は、(a)現浮動小数点レジスタウィンドウポインタ変
更命令、(b)浮動小数点レジスタプリロ−ド命令、
(c)拡張浮動小数点レジスタプリロ−ド命令、(d)
浮動小数点レジスタポストストア命令である。現浮動小
数点レジスタウィンドウポインタ変更命令は現浮動小数
点レジスタウィンドウポインタを変更する命令である。
前記命令のうち(a),(b),(d)の命令ニモニッ
クと機能は「作用」の項に述べた。図3(a)中、命令
コ−ドは、現浮動小数点レジスタウィンドウポインタ変
更命令であることを示すものである。汎用レジスタ番号
は、セットする現浮動小数点レジスタウィンドウポイン
タの値が格納されている汎用レジスタを指定する。浮動
小数点レジスタプリロ−ド命令は、主記憶デ−タを、
(現浮動小数点レジスタウィンドウポインタ+1)のウ
ィンドウに属する浮動小数点レジスタに格納する命令で
ある。図3(b)中、命令コ−ドは、浮動小数点レジス
タプリロ−ド命令であることを示すものである。浮動小
数点レジスタ番号は主記憶デ−タが格納される論理浮動
小数点レジスタ番号(rとする)であり、対応する物理
浮動小数点レジスタ番号は、現浮動小数点レジスタウィ
ンドウポインタをwとして、<w+1,r>である。汎
用レジスタの値が、デ−タを主記憶から読みだすための
主記憶アドレスである。該読みだし実行後、汎用レジス
タに加える値がインクリメント値である。拡張浮動小数
点レジスタプリロ−ド命令は、主記憶デ−タを、(現浮
動小数点レジスタウィンドウポインタ+2)のウィンド
ウに属する浮動小数点レジスタに格納する命令である。
図3(c)中、命令コ−ドは、拡張浮動小数点レジスタ
プリロ−ド命令であることを示すものである。浮動小数
点レジスタ番号は主記憶デ−タが格納される論理浮動小
数点レジスタ番号(rとする)であり、対応する物理浮
動小数点レジスタ番号は、現浮動小数点レジスタウィン
ドウポインタをwとして、<w+2,r>である。汎用
レジスタの値が、デ−タを主記憶から読みだすための主
記憶アドレスである。該読みだし実行後、汎用レジスタ
に加える値がインクリメント値である。なお、拡張浮動
小数点レジスタプリロ−ド命令の機能は「作用」の項に
示していないが、拡張浮動小数点レジスタプリロ−ド命
令の単なる拡張で、上記説明から自明である。浮動小数
点レジスタポストストア命令は、(現浮動小数点レジス
タウィンドウポインタ−1)のウィンドウに属する浮動
小数点レジスタからデ−タを主記憶に格納する命令であ
る。図3(d)中、命令コ−ドは、浮動小数点レジスタ
ポストストア命令であることを示すものである。浮動小
数点レジスタ番号はデ−タが読みだされる論理浮動小数
点レジスタ番号(rとする)であり、対応する物理浮動
小数点レジスタ番号は、現浮動小数点レジスタウィンド
ウポインタをwとして、<w−1,r>である。汎用レ
ジスタの値がデ−タが格納される主記憶のアドレスであ
る。該読みだし実行後、汎用レジスタに加える値がイン
クリメント値である。 これらの命令の動作を図2に従
い、説明する。まず、現浮動小数点レジスタウィンドウ
ポインタ変更命令について説明する。命令レジスタ10
1に命令が取り込まれていると、命令は命令制御部10
2で解読され、現浮動小数点レジスタウィンドウポイン
タ変更命令であることが識別されると、命令中に指定さ
れた汎用レジスタが汎用レジスタ群103から読みださ
れ、該レジスタに格納されている値が現浮動小数点ウィ
ンドウポインタレジスタ110にセットされる。
【0062】次に浮動小数点レジスタプリロ−ド命令に
ついて説明する。命令レジスタ101に命令が取り込ま
れていると、命令は命令制御部102で解読され、浮動
小数点レジスタプリロ−ド命令であることが識別される
と、アドレス加算器107は、命令に指定された汎用レ
ジスタ番号で示される汎用レジスタの内容をデ−タを主
記憶から読みだすための主記憶アドレスとする。主記憶
アクセス制御部109は前記主記憶アドレスをもとにキ
ャッシュ108を検索し、キャッシュに所望のデ−タが
あれば、キャッシュからデ−タを転送し、なければ、記
憶制御ユニット20経由で、主記憶30からデ−タを転
送する。該転送デ−タは、浮動小数点レジスタ105に
格納されるが、格納される浮動小数点レジスタの物理浮
動小数点レジスタ番号は、変換回路112で以下のよう
にして求められる。命令中に指定された浮動小数点レジ
スタ番号は論理浮動小数点レジスタ番号(rとする)で
あり、現浮動小数点レジスタウィンドウポインタレジス
タ110の値をwとして、<w+1,r>が物理浮動小
数点レジスタ番号になる。該デ−タ転送動作開始後、汎
用演算器104で汎用レジスタの値にインクリメント値
を加える。
【0063】次に拡張浮動小数点レジスタプリロ−ド命
令について説明する。命令レジスタ101に命令が取り
込まれていると、命令は命令制御部102で解読され、
拡張浮動小数点レジスタプリロ−ド命令であることが識
別されると、アドレス加算器107は、命令に指定され
た汎用レジスタ番号で示される汎用レジスタの内容をデ
−タを主記憶から読みだすための主記憶アドレスとす
る。主記憶アクセス制御部109は前記主記憶アドレス
をもとにキャッシュ108を検索し、キャッシュに所望
のデ−タがあれば、キャッシュからデ−タを転送し、な
ければ、記憶制御ユニット20経由で、主記憶30から
デ−タを転送する。該転送デ−タは、浮動小数点レジス
タ105に格納されるが、格納されるレジスタの物理浮
動小数点レジスタ番号は、変換回路112で以下のよう
にして求められる。命令中に指定された浮動小数点レジ
スタ番号は論理浮動小数点レジスタ番号(rとする)で
あり、現浮動小数点レジスタウィンドウポインタレジス
タ110の値をwとして、<w+2,r>が物理浮動小
数点レジスタ番号になる。該デ−タ転送動作開始後、汎
用演算器104で汎用レジスタの値にインクリメント値
を加える。
【0064】次に浮動小数点レジスタポストストア命令
について説明する。命令レジスタ101に命令が取り込
まれていると、命令は命令制御部102で解読され、浮
動小数点レジスタポストストア命令であることが識別さ
れると、アドレス加算器107は、命令に指定された汎
用レジスタ番号で示される汎用レジスタの内容をデ−タ
を主記憶に格納するための主記憶アドレスとする。浮動
小数点レジスタ105からデ−タが読みだされるが、読
みだされるレジスタの物理浮動小数点レジスタ番号は、
変換回路112で以下のようにして求められる。命令中
に指定された浮動小数点レジスタ番号は論理浮動小数点
レジスタ番号(rとする)であり、現浮動小数点レジス
タウィンドウポインタレジスタ110の値をwとして、
<w−1,r>が物理浮動小数点レジスタ番号になる。
主記憶アクセス制御部109は前記主記憶アドレスをも
とにキャッシュ108を検索し、キャッシュ中に、主記
憶30の該主記憶アドレスに格納されているデ−タの写
しがあれば、該デ−タを前記読みだしデ−タに置き換
え、なければ、キャッシュは操作しない。さらに、主記
憶アクセス制御部109は記憶制御ユニット20経由
で、主記憶30の前記主記憶アドレスに前記読みだしデ
−タを格納する。該デ−タ転送動作開始後、汎用演算器
104で汎用レジスタの値にインクリメント値を加え
る。
【0065】また、一般の浮動小数点命令(演算命令、
ロ−ド命令、ストア命令)では、命令中に示された論理
浮動小数点レジスタ番号rは、現浮動小数点レジスタウ
ィンドウポインタレジスタ110の値をwとして、<
w,r>で示される物理浮動小数点レジスタ番号に、変
換論理112で変換され、該物理浮動小数点レジスタ番
号の示す浮動小数点レジスタが参照される。
【0066】また、現浮動小数点ウィンドウポインタ有
効レジスタ111の値が「1」であると、現浮動小数点
レジスタウィンドウポインタが有効である。すなわち、
変換回路112における論理レジスタ番号−物理レジス
タ番号変換が行なわれ、「0」であると、論理レジスタ
番号−物理レジスタ番号変換は行なわれず、命令で指定
された論理浮動小数点レジスタ番号がそのまま物理浮動
小数点レジスタ番号になり、該物理浮動小数点レジスタ
番号の示す物理浮動小数点レジスタが参照される。 こ
こで、現浮動小数点ウィンドウポインタ有効レジスタ1
11には、デ−タ処理システムの制御情報を格納する既
存のレジスタの空きビットを割当てれば良く、該レジス
タに値を格納する既存の命令を用いて値をセットするも
のとする。
【0067】以上のように現浮動小数点レジスタウィン
ドウポインタ変更命令、浮動小数点レジスタプリロ−ド
命令、拡張浮動小数点レジスタプリロ−ド命令、浮動小
数点レジスタポストストア命令、現浮動小数点ウィンド
ウポインタの制御下での一般の浮動小数点命令は動作す
る。
【0068】上記の実施例により、表3のようなプログ
ラムが実現でき、ベクトル計算が高速化されることは、
「作用」の欄に述べた。
【0069】したがって、本発明の方式によると、現浮
動小数点ウィンドウポインタを変えることにより、命令
中のある浮動小数点レジスタ番号は異なる物理浮動小数
点レジスタ番号に変換されるので、命令によってアドレ
ス可能なレジスタの数よりも多い物理レジスタをデ−タ
処理装置のア−キテクチャを変えることなくアクセス可
能にでき、表3に示すようなプログラムが実現でき、デ
−タ読みだし、レジスタのぶつかりによって命令実行が
待たされることによる性能低下を防ぐことができ、プロ
グラムの高速な実行が可能である。
【0070】特に、表3のプログラムからもわかる通
り、命令列のル−プのくりかえしが主となる科学技術計
算のベクトル計算では、ル−プごとに使うウィンドウを
変え、i番目の要素の処理を、第i−1ル−プにおける
浮動小数点プリロ−ド命令によるオペランドベクトルの
第i要素のロ−ド、第iル−プにおける演算、第i+1
ル−プにおける浮動小数点ポストストア命令による結果
格納用ベクトルの第i要素への演算結果のストアを行う
ことによって、1つのデ−タに対するロ−ド、演算、ス
トアの処理の命令列上での距離が大きくなり、デ−タの
読みだし時間、演算実行時間の影響による性能低下を防
ぐことができ、高速化ができる。
【0071】ここで、表3にない拡張浮動小数点プリロ
−ド命令が実施例では導入されているが、これは、主記
憶からデ−タを読みだす時間が長いシステムにおいて
は、表3のプログラムのように、プリロ−ド命令を発行
したル−プの次のル−プでロ−ドされたデ−タを演算し
ようとしても、まだロ−ドが完了していなくて、演算命
令が待たされる場合が生じる恐れがある。したがって、
プリロ−ド命令を発行したル−プの次の次のル−プでロ
−ドされたデ−タを演算するようにプログラムできるよ
うに拡張浮動小数点プリロ−ド命令を考案した。
【0072】
【発明の効果】本発明によれば、現浮動小数点ウィンド
ウポインタを変えることにより、命令中のある浮動小数
点レジスタ番号は異なる物理浮動小数点レジスタ番号に
変換されるので、命令によってアドレス可能なレジスタ
の数よりも多い物理レジスタをデ−タ処理装置のア−キ
テクチャを変えることなくアクセス可能にできるので、
デ−タ読みだし、レジスタのぶつかりによって命令実行
が待たされることによる性能低下を防ぐことができ、プ
ログラムの高速な実行が可能であるという効果がある。
【0073】特に、命令列のル−プのくりかえしが主と
なる科学技術計算のベクトル計算では、ル−プごとに使
うウィンドウを変え、i番目の要素の処理を、第i−1
ル−プにおける浮動小数点プリロ−ド命令によるオペラ
ンドベクトルの第i要素のロ−ド、第iル−プにおける
演算、第i+1ル−プにおける浮動小数点ポストストア
命令による結果格納用ベクトルの第i要素への演算結果
のストアを行うことによって、1つのデ−タに対するロ
−ド、演算、ストアの処理の命令列上での距離が大きく
なり、デ−タの読みだし時間、演算実行時間の影響によ
る性能低下を防ぐことができ、高速化ができる。
【図面の簡単な説明】
【図1】 本発明による論理浮動小数点レジスタ番号−
物理浮動小数点レジスタ番号変換の1実施例。
【図2】 本発明による図3で示す命令を実行するデー
タ処理装置の1実施例を示す構成図。
【図3】 本発明による現浮動小数点レジスタウィンド
ウポインタ変更命令、浮動小数点レジスタプリロード命
令、拡張浮動小数点レジスタプリロード命令、浮動小数
点レジスタポイントストア命令の1実施例を示す図。
【符号の説明】
10は命令処理ユニット、20は記憶制御ユニット、3
0は主記憶、101は命令レジスタ、102は命令制御
部、103は汎用レジスタ群、104は汎用演算器、1
05は物理浮動小数点レジスタ群、106は浮動小数点
演算器、107はアドレス加算器、108はキャッシ
ュ、109は主記憶アクセス制御部、110は現浮動小
数点ウィンドウポインタレジスタ、111は現浮動小数
点ウィンドウポインタ有効レジスタ、112は変換論理
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中澤 喜三郎 神奈川県相模原市相模台6丁目29番10号 (72)発明者 中村 宏 茨城県つくば市並木4丁目1043番 (72)発明者 位守 弘充 茨城県つくば市天久保2丁目23番6号 (72)発明者 和田 英夫 神奈川県秦野市堀山下1番地 株式会社 日立製作所 神奈川工場内 (56)参考文献 特開 昭62−98434(JP,A) 特開 平1−161477(JP,A) 特開 昭62−17873(JP,A) 特開 昭61−267134(JP,A) 特開 昭61−241870(JP,A) 特開 昭61−136131(JP,A) 特開 昭60−129838(JP,A) 特開 平5−233279(JP,A) Daniel Tabak著,大森健 児訳,RISCシステム,日本,海文堂 出版株式会社,1991年11月1日,初版, p.110−116 D.R.Miller,D.J.Qu ammen,Exploiting l arge register set s,Microprocessors and Microsystems,英 国,Butterworth−Hein emann Ltd.,1990年,第14 巻,第6号,p.333−340 (58)調査した分野(Int.Cl.7,DB名) G06F 17/16 G06F 9/30 - 9/355 G06F 9/38 G06F 9/40 - 9/42 G06F 9/46 - 9/54

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】命令やデ−タを保持する主記憶と、該主記
    憶内に保持された主記憶デ−タを用いて命令を実行し、
    その命令には、該主記憶から主記憶デ−タを読みだし、
    命令中で番号づけされたレジスタに格納するロ−ド命令
    、命令中で番号づけされたレジスタから該主記憶にデ
    −タを格納するストア命令、演算を行い、演算結果を
    命令中で番号づけされたレジスタに格納する演算命令
    を含む命令処理ユニットから成るデ−タ処理装置におい
    て、命令によってアドレス可能なレジスタの数より多い
    物理レジスタと呼ばれるレジスタ、複数のビットから
    成るウィンドウポインタレジスタと呼ばれるレジスタ
    、1ビットのウィンドウポインタ有効レジスタと呼ば
    れるレジスタ、該ウィンドウポインタ有効レジスタの
    値が1のときに、命令中のレジスタ番号を物理レジスタ
    番号へ変換し、かつ前記ウィンドウポインタレジスタの
    値によって該変換のパタ−ンを変える変換回路とを備
    前記命令処理ユニットが実行する命令には、前記ウ
    ィンドウポインタレジスタの値を変更するためのウィン
    ドウポインタ変更命令、命令中のレジスタ番号を前記
    ウィンドウポインタレジスタの値から決定されるが該ウ
    ィンドウポインタレジスタの値とは異なる値を前記ウィ
    ンドウポインタレジスタの値とみなして前記変換回路で
    物理レジスタ番号へ変換し、該物理レジスタ番号の示す
    物理レジスタに主記憶デ−タを格納するレジスタプリロ
    −ド命令、命令中のレジスタ番号を前記ウィンドウポ
    インタレジスタの値から決定されるが該ウィンドウポイ
    ンタレジスタの値とは異なる値を前記ウィンドウポイン
    タレジスタの値とみなして前記変換回路で物理レジスタ
    番号へ変換し、該物理レジスタ番号の示す物理レジスタ
    から読み出したデ−タを主記憶に格納するレジスタポス
    トストア命令とを含み前記命令処理ユニットは、前記
    レジスタプリロ−ド命令、前記レジスタポストストア命
    令を除く前記ロ−ド命令、前記ストア命令、及び前記演
    算命令の実行時には、命令中のレジスタ番号を前記ウィ
    ンドウポインタレジスタの値で前記変換回路で物理レジ
    スタ番号へ変換し、該物理レジスタ番号の示す物理レジ
    スタを参照し、前記レジスタプリロ−ド命令の実行時に
    は、命令中のレジスタ番号を前記ウィンドウポインタレ
    ジスタの値から決定されるが該ウィンドウポインタレジ
    スタの値とは異なる値を前記ウィンドウポインタレジス
    タの値とみなして前記 変換回路で物理レジスタ番号へ変
    換し、該物理レジスタ番号の示す物理レジスタに主記憶
    データを格納し、前記レジスタポストストア命令の実行
    時には、命令中のレジスタ番号を前記ウィンドウポイン
    タレジスタの値から決定されるが該ウィンドウポインタ
    レジスタの値とは異なる値を前記ウィンドウポインタレ
    ジスタの値とみなして前記変換回路で物理レジスタ番号
    へ変換し、該物理レジスタ番号の示す物理レジスタから
    読み出したデータを主記憶に格納することを特徴とする
    デ−タ処理装置。
  2. 【請求項2】前記命令処理ユニットは、前記レジスタプ
    リロ−ド命令の実行時には、前記ウィンドウポインタレ
    ジスタの値に任意の整数値を加えた値を用いることを特
    徴とする請求項1記載のデ−タ処理装置。
  3. 【請求項3】前記命令処理ユニットは、前記レジスタプ
    リロ−ド命令の実行時には、主記憶デ−タの読みだしに
    おいて、主記憶の内容の一部を一時的に保持しておく緩
    衝記憶装置であるキャッシュに該主記憶デ−タが登録さ
    れていなかった場合は、該キャッシュの内容は変更
    、前記レジスタポストストア命令の実行時には、主記
    憶へのデ−タ書き込みにおいて、該当する主記憶アドレ
    スの主記憶デ−タが該キャッシュに登録されていなかっ
    た場合は、該キャッシュの内容は変更しないことを特徴
    とする請求項1記載のデ−タ処理装置。
  4. 【請求項4】命令中のレジスタ番号から前記物理レジス
    タ番号の変換において、該ウィンドウポインタレジスタ
    の値によって命令中のレジスタ番号から変換されうる前
    記物理レジスタ番号の集合と、該ウィンドウポインタレ
    ジスタの値と1異なる値によって命令中のレジスタ番号
    から変換されうる前記物理レジスタ番号の集合が1つま
    たは複数個のオ−バラップレジスタ番号と呼ばれる同一
    の値を含むことと、命令中のレジスタ番号のうち1つま
    たは複数個は、前記ウィンドウポインタレジスタの値に
    よらずグロ−バルレジスタ番号と呼ばれる同一の前記物
    理レジスタ番号に変換されることと、上記オ−バラップ
    レジスタ番号と上記グロ−バルレジスタ番号以外の前記
    物理レジスタ番号は、前記ウィンドウポインタレジスタ
    の1つの値のみによって変換される結果であることを特
    徴とする請求項1記載のデ−タ処理装置。
  5. 【請求項5】前記命令中で番号づけされたレジスタと前
    記物理レジスタが、浮動小数点レジスタと呼ばれる、浮
    動小数点数を格納する専用レジスタであることを特徴と
    する請求項1記載のデ−タ処理装置。
  6. 【請求項6】前記命令処理ユニットは、前記ウィンドウ
    ポインタ変更命令の実行時には、前記ウィンドウポイン
    タレジスタに値をセットするか、または、前記ウィンド
    ウポインタレジスタの値を増減するかいずれかの動作を
    行なうことを特徴とする請求項1記載のデ−タ処理装
    置。
JP30447691A 1991-11-20 1991-11-20 擬似ベクトルプロセッサ Expired - Lifetime JP3317985B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP30447691A JP3317985B2 (ja) 1991-11-20 1991-11-20 擬似ベクトルプロセッサ
US07/977,298 US5438669A (en) 1991-11-20 1992-11-16 Data processor with improved loop handling utilizing improved register allocation
EP92119710A EP0543366B1 (en) 1991-11-20 1992-11-19 Data processing method and apparatus
DE69229771T DE69229771T2 (de) 1991-11-20 1992-11-19 Datenverarbeitungsverfahren und -vorrichtung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30447691A JP3317985B2 (ja) 1991-11-20 1991-11-20 擬似ベクトルプロセッサ

Publications (2)

Publication Number Publication Date
JPH07114534A JPH07114534A (ja) 1995-05-02
JP3317985B2 true JP3317985B2 (ja) 2002-08-26

Family

ID=17933482

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30447691A Expired - Lifetime JP3317985B2 (ja) 1991-11-20 1991-11-20 擬似ベクトルプロセッサ

Country Status (1)

Country Link
JP (1) JP3317985B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190073593A (ko) * 2016-01-20 2019-06-26 캠브리콘 테크놀로지스 코퍼레이션 리미티드 벡터 계산 장치
US11734383B2 (en) 2016-01-20 2023-08-22 Cambricon Technologies Corporation Limited Vector and matrix computing device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1011352A (ja) * 1996-06-19 1998-01-16 Hitachi Ltd データ処理装置およびそのレジスタアドレス変換方法
US10564965B2 (en) * 2017-03-03 2020-02-18 International Business Machines Corporation Compare string processing via inline decode-based micro-operations expansion

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
D.R.Miller,D.J.Quammen,Exploiting large register sets,Microprocessors and Microsystems,英国,Butterworth−Heinemann Ltd.,1990年,第14巻,第6号,p.333−340
Daniel Tabak著,大森健児訳,RISCシステム,日本,海文堂出版株式会社,1991年11月1日,初版,p.110−116

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190073593A (ko) * 2016-01-20 2019-06-26 캠브리콘 테크놀로지스 코퍼레이션 리미티드 벡터 계산 장치
KR20200058562A (ko) * 2016-01-20 2020-05-27 캠브리콘 테크놀로지스 코퍼레이션 리미티드 벡터 계산 장치
KR102185287B1 (ko) 2016-01-20 2020-12-01 캠브리콘 테크놀로지스 코퍼레이션 리미티드 벡터 연산 장치
KR102304216B1 (ko) 2016-01-20 2021-09-23 캠브리콘 테크놀로지스 코퍼레이션 리미티드 벡터 계산 장치
US11734383B2 (en) 2016-01-20 2023-08-22 Cambricon Technologies Corporation Limited Vector and matrix computing device

Also Published As

Publication number Publication date
JPH07114534A (ja) 1995-05-02

Similar Documents

Publication Publication Date Title
JP2725546B2 (ja) デ−タ処理装置
US4745547A (en) Vector processing
US4740893A (en) Method for reducing the time for switching between programs
EP0543366B1 (en) Data processing method and apparatus
JPH0778734B2 (ja) プログラム・ステータス・ワードを変更するサブシステム及び方法
JPH0855028A (ja) マイクロプロセッサ
JPH063584B2 (ja) 情報処理装置
EP0201833A2 (en) Instruction processor
JP3317985B2 (ja) 擬似ベクトルプロセッサ
JPH0410108B2 (ja)
US5729723A (en) Data processing unit
EP0550289A2 (en) A mechanism to detect stores into the instruction stream
WO1998011484A1 (fr) Processeur de commande a memoire d'historique
JPS6116335A (ja) 情報処理装置
JPH0512751B2 (ja)
JP2875426B2 (ja) 擬似ベクトルプロセッサ
JP3097981B2 (ja) データ処理装置
JPS60129839A (ja) 情報処理装置
JP2783285B2 (ja) 情報処理装置
JPH0326862B2 (ja)
JP2001216136A (ja) 加算回路およびプロセッサ
JP2000029865A (ja) デ―タ処理装置
JP2812610B2 (ja) パイプライン制御方式
JPH08263289A (ja) 複数命令流パイプライン計算機
JPH06162067A (ja) ベクトル命令制御装置および制御方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080614

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080614

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090614

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100614

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100614

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110614

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110614

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120614

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120614

Year of fee payment: 10