JP2000207227A - 演算装置 - Google Patents

演算装置

Info

Publication number
JP2000207227A
JP2000207227A JP11007464A JP746499A JP2000207227A JP 2000207227 A JP2000207227 A JP 2000207227A JP 11007464 A JP11007464 A JP 11007464A JP 746499 A JP746499 A JP 746499A JP 2000207227 A JP2000207227 A JP 2000207227A
Authority
JP
Japan
Prior art keywords
register
registers
address
data
register 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.)
Withdrawn
Application number
JP11007464A
Other languages
English (en)
Inventor
Osamu Yagi
修 八木
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP11007464A priority Critical patent/JP2000207227A/ja
Publication of JP2000207227A publication Critical patent/JP2000207227A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 コンテキストスイッチの高速化を図る。 【解決手段】 プロセッサは、ALU2が演算を行うの
に必要なデータを記憶する複数のレジスタを有するレジ
スタ群3と、レジスタ群3の記憶内容を一時待避するた
めの複数のレジスタを有するレジスタ群3’とを備えて
おり、レジスタ群3’は、レジスタ群3と専用の接続線
path1で接続されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、演算装置に関し、
特に、例えば、コンテキストスイッチ(contextswitc
h)の高速化を図ることができるようにする演算装置に
関する。
【0002】
【従来の技術】図4は、従来のプロセッサの構成例を示
している。
【0003】インストラクションキャッシュメモリ1
は、メインメモリ4に記憶されたプログラムを、外部バ
ス5を介してキャッシュするようになされており、AL
U(Arithmatic Logic Unit)2は、インストラクショ
ンキャッシュメモリ1に記憶されたプログラムの中のコ
マンド(インストラクション)をフェッチ、デコードし
て実行するようになされている。レジスタ群3は、複数
のレジスタで構成され、ALU2が演算を行うのに必要
なデータ(演算の対象となるデータの他、演算の結果得
られるデータも含まれる)を一時記憶するようになされ
ている。メインメモリ4は、ALU2に各種の処理を行
わせるためのプログラム(バイナリコード)や、その処
理の対象となるデータ、その処理の結果得られるデータ
を記憶するようになされている。
【0004】以上のように構成されるプロセッサでは、
インストラクションキャッシュメモリ1において、メイ
ンメモリ4に記憶されたプログラムが、外部バス5を介
して、適宜キャッシュされる。
【0005】一方、ALU2では、インストラクション
キャッシュメモリ1に記憶されたプログラムの中のコマ
ンドがフェッチ、デコードされ、必要に応じて、レジス
タ群3に対してデータの読み書きを行いながら、デコー
ドしたコマンドに対応する演算が行われる。
【0006】なお、メモリ1は、キャッシュ機構のない
メモリで構成することも可能である。
【0007】
【発明が解決しようとする課題】ところで、プロセッサ
に対して、例えば、割り込みなどのコンテキストスイッ
チの要求(以下、適宜、コンテキストスイッチリクエス
トという)があった場合には、プロセッサでは、それま
で行われていた処理が中断され、新たな処理が行われ
る。この場合、それまで行われていた処理に用いられて
いたデータがレジスタ群3に記憶されているため、コン
テキストスイッチを行う際には、レジスタ群3に記憶さ
れたデータを、外部バス5を介して、メインメモリ4に
待避させる必要がある。
【0008】即ち、例えば、図5に示すように、ALU
2が、ある処理aを行っている最中に、コンテキストス
イッチリクエストがあった場合には、レジスタ群3の記
憶内容が、外部バス5を介して、メインメモリ4に転送
される。そして、その転送が終了すると、ALU2は、
他の処理bを開始する。
【0009】以上のように、コンテキストスイッチリク
エストがあった場合には、レジスタ群3の記憶内容がメ
インメモリ4に転送されるため、この転送に要する時間
が、コンテキストスイッチの時間に影響する。そして、
レジスタ群3からメインメモリ4へのデータの転送は、
インストラクションキャッシュメモリ1やALU2も使
用する外部バス5を介して行われるため、ある程度の時
間を要し、従って、コンテキストスイッチを高速に行う
ことが困難であった。
【0010】本発明は、このような状況に鑑みてなされ
たものであり、コンテキストスイッチの高速化を図るこ
とができるようにするものである。
【0011】
【課題を解決するための手段】本発明の演算装置は、演
算手段が演算を行うのに必要なデータを記憶する複数の
レジスタを有する第1の記憶手段と、第1の記憶手段の
記憶内容を一時待避するための複数のレジスタを有し、
第1の記憶手段と専用の接続線で接続された第2の記憶
手段とを備えることを特徴とする。
【0012】上記構成の演算装置においては、第1の記
憶手段は、演算手段が演算を行うのに必要なデータを記
憶する複数のレジスタを有しており、第2の記憶手段
は、第1の記憶手段の記憶内容を一時待避するための複
数のレジスタを有し、第1の記憶手段と専用の接続線で
接続されている。
【0013】
【発明の実施の形態】図1は、本発明を適用したプロセ
ッサの一実施の形態の構成例を示している。なお、図
中、図4における場合と対応する部分については、同一
の符号を付してあり、以下では、その説明は、適宜省略
する。即ち、図1のプロセッサは、レジスタ群3の他
に、新たにレジスタ群3’が設けられている他は、基本
的に図4における場合と同様に構成されている。
【0014】レジスタ群3’(第2の記憶手段)は、例
えば、レジスタ群3(第1の記憶手段)と同様に複数の
レジスタで構成されている。そして、レジスタ群3’
は、レジスタ群3と専用のバス(接続線)path1で接続
されている。また、レジスタ群3’は、外部バス5と
も、バスpath2を介して接続されている。
【0015】以上のように構成されるプロセッサでは、
図2(A)に示すように、ALU2(演算手段)が、あ
る処理aを行っている最中に、コンテキストスイッチリ
クエストがあった場合には、レジスタ群3の記憶内容
が、専用のバスpath1を介して、レジスタ群3’に転送
されることで待避される。そして、その転送が終了する
と、ALU2は、他の処理bを開始する。
【0016】従って、レジスタ群3の記憶内容は、専用
のバスpath1を介して、レジスタ群3’に転送されるの
で、レジスタ群3の記憶内容の待避を短時間で行うこと
ができ、その結果、コンテキストスイッチを高速に行う
ことができる。
【0017】以上のように、処理aから処理bへのコン
テキストスイッチの終了後は、図2(B)に示すよう
に、処理bの実行と並列して、レジスタ群3’に待避さ
れたデータが、専用のバスpath2および外部バス5を介
して、メインメモリ4に転送されて記憶される。
【0018】次に、図1のプロセッサが、レジスタ群3
の他、それと同様に構成されるレジスタ群3’を有して
いる場合には、上述のように、コンテキストスイッチの
高速化を図ることができる他、例えば、SIMD(Sing
le Instruction Multiple Data)命令にしたがった演算
等を行う場合に、その演算(以下、適宜、SIMD演算
という)の高速化も図ることが可能となる。
【0019】即ち、SIMD演算においては、レジスタ
群3をパーティション(partition)化して扱えるよう
にし、かつレジスタ群3を構成するレジスタを2つずつ
組み合わせて1つのレジスタとして使用可能とすること
で、1つの命令に対して、並列に、複数のデータを対象
とした演算が行われる。
【0020】このようなSIMD演算を行う場合におい
て、例えば、16ビットのデータを、4つ単位で並列処
理するとすると、1の処理における対象は、64ビット
(=16ビット×4)のデータとなる。一方、いま、レ
ジスタ群3および3’を構成するレジスタのデータ長
が、例えば、32ビットであるとすると、並列処理の単
位である64ビットのデータは、32ビットのレジスタ
を2つ組み合わせて1のレジスタ(以下、適宜、レジス
タペア(register pair)という)とすることで記憶さ
せることができる。ここで、2つのレジスタを組み合わ
せて1のレジスタペアとしたときの、そのレジスタペア
の上位ビット側または下位ビット側を構成するレジスタ
それぞれを、以下、適宜、アッパー(upper)レジスタ
またはロウワー(lower)レジスタという。
【0021】図4に示したように、プロセッサが、1の
レジスタ群3のみを有する場合においては、偶数アドレ
スのレジスタを、ロウワーレジスタとして使用し、奇数
アドレスのレジスタを、アッパーレジスタとして使用す
るという制約や、メインメモリ4からレジスタ群3にデ
ータを転送するときに、メインメモリ4の偶数アドレス
に記憶されたデータは、レジスタ群3の偶数アドレスの
レジスタに転送するという制約(メインメモリ4のアド
レスのバウンダリ(boundary)を守るために、メインメ
モリ4に記憶されたデータのアラインメント(alignmen
t)を、レジスタ群3のレジスタのアドレスにあわせる
こと)が、業界の慣例になっており、この制約によっ
て、SIMD演算を高速に行うことができないことがあ
った。
【0022】即ち、いま、レジスタ群3が、例えば、図
3(A)に示すように、N+1個の32ビットのレジス
タで構成されるものとし、上からi番目のレジスタのア
ドレスを、$iで表すとして、図3(B)に示すよう
に、アドレス$3または$2のレジスタそれぞれを、ア
ッパーレジスタまたはロウワーレジスタとしてレジスタ
ペアを構成するとともに、アドレス$5または$4のレ
ジスタそれぞれを、アッパーレジスタまたはロウワーレ
ジスタとしてレジスタペアを構成して、アドレス$3と
$2のレジスタペアの記憶内容と、アドレス$5と$4
のレジスタペアの記憶内容とを加算して、その加算値
を、アドレス$3と$2のレジスタペアに記憶させるS
IMD演算を行う場合においては、ロウワーレジスタと
なる偶数アドレス$2および$4に、既に、必要なデー
タが記憶されているときであっても、(1)アッパーレ
ジスタとなる奇数アドレス$3のレジスタの記憶内容
を、使用していないアドレス$itemp1のレジスタに待
避し、(2)アッパーレジスタとなる奇数アドレス$5
のレジスタの記憶内容を、使用していないアドレス$i
temp2のレジスタに待避し、(3)アッパーレジスタと
なる奇数アドレス$3のレジスタに記憶させるべきデー
タを記憶しているアドレス$iupper1のレジスタの記憶
内容を、奇数アドレス$3のレジスタに転送し、(4)
アッパーレジスタとなる奇数アドレス$5のレジスタに
記憶させるべきデータを記憶しているアドレス$i
upper2のレジスタの記憶内容を、奇数アドレス$5のレ
ジスタに転送する必要がある。
【0023】従って、少なくとも、4回、レジスタ群3
を構成するレジスタどうしの間で、データの転送を行う
必要がある。
【0024】また、ロウワーレジスタとなる偶数アドレ
ス$2または$4のレジスタに記憶させるべきデータ
が、アッパーレジスタとなる奇数アドレス$3または$
5のレジスタにそれぞれ記憶されており、偶数アドレス
$2および$4のレジスタに、他のデータが記憶されて
いるときには、(1)’ロウワーレジスタとなる偶数ア
ドレス$2のレジスタの記憶内容を、使用していないア
ドレス$itemp1のレジスタに待避し、(2)’ロウワ
ーレジスタとなる偶数アドレス$4のレジスタの記憶内
容を、使用していないアドレス$itemp2のレジスタに
待避し、(3)’ロウワーレジスタとなる偶数アドレス
$2のレジスタに記憶させるべきデータを記憶している
奇数アドレス$3のレジスタの記憶内容を、偶数アドレ
ス$2のレジスタに転送し、(4)’ロウワーレジスタ
となる偶数アドレス$4のレジスタに記憶させるべきデ
ータを記憶している奇数アドレス$5のレジスタの記憶
内容を、偶数アドレス$4のレジスタに転送し、さら
に、上述の(3)および(4)と同様のデータ転送を行
う必要がある。
【0025】従って、この場合には、少なくとも、6
回、レジスタ群3を構成するレジスタどうしの間で、デ
ータの転送を行う必要がある。
【0026】以上のようなデータ転送は、SIMD演算
を行う前の前処理として行う必要があり、その結果、S
IMD演算を行う全体の処理時間が長時間となる。
【0027】これに対して、図1に示したように、プロ
セッサが、レジスタ群3の他、それと同様に構成される
レジスタ群3’を有している場合には、上述の制約をな
くし、SIMD演算の高速化を図ることができる。
【0028】即ち、いま、図3(C)または図3(D)
にそれぞれ示すように、レジスタ群3および3’が、い
ずれも、N+1個の32ビットのレジスタで構成される
ものとし、上からi番目のレジスタのアドレスを、A:
$iまたはB:$iでそれぞれ表すとした場合には、図
3(B)における場合と同様のSIMD演算は、例え
ば、図3(E)に示すように、アドレスB:$2とA:
$2のレジスタ、アドレスB:$3とA:$3のレジス
タ、アドレスA:$3とA:$2のレジスタを、それぞ
れ、アッパーレジスタとロウワーレジスタとしてレジス
タペアを構成し、アドレスB:$2とA:$2のレジス
タペア、およびアドレスB:$3とA:$3のレジスタ
ペアには、加算対象のデータを記憶させ、アドレスA:
$3とA:$2のレジスタペアには、それらのデータの
加算結果を記憶させることで行うことができる。
【0029】この場合、ロウワーレジスタとなるアドレ
スA:$3のレジスタ、およびアッパーレジスタとなる
アドレスB:$3に、既に、必要なデータが記憶されて
いるときには、(1)’’ロウワーレジスタとなるアド
レスA:$2のレジスタに記憶させるべきデータを記憶
しているアドレス$ilowerのレジスタの記憶内容を、
アドレスA:$2のレジスタに転送し、(2)’’アッ
パーレジスタとなるアドレスB:$2のレジスタに記憶
させるべきデータを記憶しているアドレス$iupper
レジスタの記憶内容を、アドレスB:$2のレジスタに
転送すれば良い。
【0030】また、図3(B)における場合と同様のS
IMD演算は、例えば、図3(F)に示すように、アド
レスA:$4とA:$3のレジスタ、アドレスB:$3
とB:$2のレジスタを、それぞれ、アッパーレジスタ
とロウワーレジスタとしてレジスタペアを構成し、アド
レスA:$4とA:$3のレジスタペア、およびアドレ
スB:$3とB:$2のレジスタペアには、加算対象の
データを記憶させ、アドレスA:$4とA:$3のレジ
スタペアには、さらに、それらのデータの加算結果を記
憶させることでも行うことができる。
【0031】この場合、ロウワーレジスタとなるアドレ
スA:$3のレジスタ、およびアッパーレジスタとなる
アドレスA:$4に、既に、必要なデータが記憶されて
いるときには、(1)’’’ロウワーレジスタとなるア
ドレスB:$2のレジスタに記憶させるべきデータを記
憶しているアドレス$ilowerのレジスタの記憶内容
を、アドレスB:$2のレジスタに転送し、
(2)’’’アッパーレジスタとなるアドレスB:$3
のレジスタに記憶させるべきデータを記憶しているアド
レス$iupperのレジスタの記憶内容を、アドレスB:
$3のレジスタに転送すれば良い。
【0032】従って、例えば、ロウワーレジスタに注目
すれば、ロウワーレジスタとして、偶数アドレスと奇数
アドレスのどちらのアドレスのレジスタを用いても、S
IMD演算を行う前の前処理としてのデータ転送は、2
回だけ行えば済み、その結果、SIMD演算を行う全体
の処理時間を短縮化すること、即ち、SIMD演算を高
速で行うことが可能となる。
【0033】また、上述の制約をなくした結果、メイン
メモリ4のアドレスのバウンダリ(boundary)を守るた
めに、メインメモリ4からレジスタ群3にデータを転送
するときに、そのデータのアラインメントを、レジスタ
群3のレジスタのアドレスにあわせる必要がないので、
メインメモリ4からレジスタ群3への、いわば不必要な
ブロック転送等を行わずに済むようになる。
【0034】さらに、図3(E)に示したように、レジ
スタペアを、レジスタ群3のレジスタと、レジスタ群
3’のレジスタとから構成することも、また、図3
(F)に示したように、レジスタペアを、レジスタ群3
のレジスタのみ、またはレジスタ群3’のレジスタのみ
から構成することも可能となる。
【0035】なお、図3(E)や図3(F)では、加算
結果を記憶するレジスタペアを、同一のレジスタ群、即
ち、レジスタ群3のレジスタから構成するようにした
が、加算結果を記憶するレジスタペアは、レジスタ群3
のレジスタと、レジスタ群3’のレジスタから構成する
ことも可能である。但し、レジスタ群3のレジスタと、
レジスタ群3’のレジスタから、加算結果を記憶するレ
ジスタペアを構成した場合には、コンテキストスイッチ
リクエストがあったときに、その加算結果を、メインメ
モリ4に待避する必要があり、コンテキストスイッチに
時間を要することになる。従って、加算結果を記憶する
レジスタペアは、レジスタ群3(またはレジスタ群
3’)のみのレジスタから構成するのが望ましい。即
ち、この場合、コンテキストスイッチリクエストがあっ
たときには、加算結果を、レジスタ群3’に即座に待避
することができるので、高速にコンテキストスイッチを
することができる。
【0036】また、本実施の形態では、SIMD演算を
行う場合に、2つのレジスタを組み合わせて1つのレジ
スタとして使用するようにしたが、3以上のレジスタを
組み合わせて1つのレジスタとして使用することも可能
である。
【0037】さらに、レジスタペアを構成するときのレ
ジスタの組み合わせ方は、図3(E)や図3(F)に示
したものに限定されるものではない。
【0038】また、本実施の形態では、コンテキストス
イッチリクエストがあったときに、レジスタ群3の記憶
内容を、レジスタ群3’に待避するようにしたが、逆
に、レジスタ群3’の記憶内容を、レジスタ群3に待避
することも可能である。
【0039】
【発明の効果】以上の如く、本発明の演算装置によれ
ば、演算手段が演算を行うのに必要なデータを記憶する
複数のレジスタを有する第1の記憶手段と、第1の記憶
手段の記憶内容を一時待避するための複数のレジスタを
有する第2の記憶手段とを備えており、第2の記憶手段
は、第1の記憶手段と専用の接続線で接続されている。
従って、コンテキストスイッチの高速化を図ることが可
能となる。
【図面の簡単な説明】
【図1】本発明を適用したプロセッサの一実施の形態の
構成例を示すブロック図である。
【図2】図1のプロセッサのコンテキストスイッチ時の
動作を説明するためのタイミングチャートである。
【図3】レジスタペアの構成方法を示す図である。
【図4】従来のプロセッサの一例の構成を示すブロック
図である。
【図5】図4のプロセッサのコンテキストスイッチ時の
動作を説明するためのタイミングチャートである。
【符号の説明】
1 インストラクションキャッシュメモリ, 2 AL
U, 3,3’ レジスタ群, 4 メインメモリ,
5 外部バス

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 プログラムにしたがって、各種の演算を
    行う演算装置であって、 前記プログラムにしたがって、各種の演算を行う演算手
    段と、 前記演算手段が演算を行うのに必要なデータを記憶する
    複数のレジスタを有する第1の記憶手段と、 前記第1の記憶手段の記憶内容を一時待避するための複
    数のレジスタを有し、前記第1の記憶手段と専用の接続
    線で接続された第2の記憶手段とを備えることを特徴と
    する演算装置。
  2. 【請求項2】 前記第1と第2の記憶手段それぞれの複
    数のレジスタは、そのうちの任意の2以上を組み合わせ
    て1つのレジスタとして使用可能になっていることを特
    徴とする請求項1に記載の演算装置。
  3. 【請求項3】 前記第1と第2の記憶手段それぞれの複
    数のレジスタは、そのうちの任意の2つを組み合わせて
    1つのレジスタとして使用可能になっていることを特徴
    とする請求項2に記載の演算装置。
  4. 【請求項4】 前記演算手段が、SIMD(Single Ins
    truction MultipleData)命令にしたがった演算を行う
    場合において、 前記第1と第2の記憶手段それぞれの複数のレジスタの
    うちの任意の2つを組み合わせたものを、前記SIMD
    命令にしたがった演算に用いることを特徴とする請求項
    3に記載の演算装置。
JP11007464A 1999-01-14 1999-01-14 演算装置 Withdrawn JP2000207227A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11007464A JP2000207227A (ja) 1999-01-14 1999-01-14 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11007464A JP2000207227A (ja) 1999-01-14 1999-01-14 演算装置

Publications (1)

Publication Number Publication Date
JP2000207227A true JP2000207227A (ja) 2000-07-28

Family

ID=11666547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11007464A Withdrawn JP2000207227A (ja) 1999-01-14 1999-01-14 演算装置

Country Status (1)

Country Link
JP (1) JP2000207227A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101014028B1 (ko) 2008-11-26 2011-02-14 한양대학교 산학협력단 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101014028B1 (ko) 2008-11-26 2011-02-14 한양대학교 산학협력단 고속 블록 입출력을 위한 적응성 문맥전환 방법 및 장치

Similar Documents

Publication Publication Date Title
EP0377990B1 (en) Data processing systems
JP2002509312A (ja) 不整列データ・アクセスを実行するためのデータ整列バッファを有するディジタル信号プロセッサ
KR970011208B1 (ko) 파이프라인된 기록버퍼 레지스터
JPH02207351A (ja) データ路の巾が予め定められたコンピュータシステムのデータ記憶レートを増加する方法及び装置
JPS60142743A (ja) 内部母線システム
JPH063584B2 (ja) 情報処理装置
JPH10228376A (ja) 複数レジスタ命令を処理する方法及びプロセッサ
US4967339A (en) Operation control apparatus for a processor having a plurality of arithmetic devices
JP2000207227A (ja) 演算装置
US6721867B2 (en) Memory processing in a microprocessor
JPH0377137A (ja) 情報処理装置
JP2861560B2 (ja) データ処理装置
JPS61250754A (ja) 簡易型キヤツシユメモリ
JPS60103454A (ja) 命令先読み制御装置
JP2744152B2 (ja) データ駆動型データ処理装置
JPH01147723A (ja) 情報処理装置のパイプライン処理方式
JP2506873B2 (ja) 命令解読装置
JP2815850B2 (ja) データ処理ユニット
JP2542120B2 (ja) 情報処理装置
JP2504535B2 (ja) バスユニットの構成方法
JPS61221965A (ja) ベクトル・デ−タ処理装置
JPS6057440A (ja) 情報処理装置
JPS6149695B2 (ja)
JPH05250318A (ja) マイクロプロセッサ
JPS6345652A (ja) 情報処理装置の無効化処理方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20060404