JPH07262004A - プロセッサ - Google Patents

プロセッサ

Info

Publication number
JPH07262004A
JPH07262004A JP6051502A JP5150294A JPH07262004A JP H07262004 A JPH07262004 A JP H07262004A JP 6051502 A JP6051502 A JP 6051502A JP 5150294 A JP5150294 A JP 5150294A JP H07262004 A JPH07262004 A JP H07262004A
Authority
JP
Japan
Prior art keywords
storage
storage area
data
storage means
instruction
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
JP6051502A
Other languages
English (en)
Inventor
Yasumasa Nakada
恭正 中田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP6051502A priority Critical patent/JPH07262004A/ja
Publication of JPH07262004A publication Critical patent/JPH07262004A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】第1の演算手段用の第1の記憶手段から同一チ
ップ上の第2の演算手段用の第2の記憶手段へのデータ
移動にストア命令およびロード命令からなる命令シーケ
ンスを適用しながら、高速データ移動が行えるようにす
る。 【構成】レジスタファイル13内レジスタから主メモリ
2へのストアを指示するストア命令の実行時には、当該
レジスタに対応するアドレス・サイズ保持部14内スロ
ットに、ストア先を示す仮想アドレスを整数演算ユニッ
ト12によりセットしておく。主メモリからレジスタフ
ァイル16へのロードを指示するロード命令のデコード
時には、当該ロード命令の指定するロード元を示す仮想
アドレスがセットされている有効なアドレス・サイズ保
持部14内スロットが有るならば、そのスロットに対応
するレジスタファイル13内レジスタのデータを、デー
タ転送ユニット17によってレジスタファイル16の指
定レジスタに転送させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、第1の演算機能を有
する第1の演算手段と、この第1の演算手段にはない第
2の演算機能を持つ第2の演算手段とを1つのチップに
内蔵するプロセッサに係り、特に、第1の演算手段用の
第1の記憶手段から第2の演算手段用の第2の記憶手段
へのデータ移動に、第1の記憶手段からチップ外部のメ
モリへのストアと、当該メモリから第2の記憶手段への
ロードという命令シーケンスを適用するプロセッサに関
する。
【0002】
【従来の技術】近年のプロセッサには、同一チップ内
に、整数演算ユニット(第1の演算機能を有する第1の
演算手段)の他に、当該ユニットにはない浮動小数点演
算機能(第2の演算機能)を持つコプロセッサ(第2の
演算手段)を内蔵するものがある。
【0003】この種のプロセッサは、整数演算ユニット
が行う演算に使用されるデータを保持する整数演算用の
汎用レジスタファイル(第1の記憶手段)と、コプロセ
ッサが行う演算に使用されるデータを保持するコプロセ
ッサ汎用レジスタファイル(第2の記憶手段)とを有す
る。
【0004】さて、整数演算用汎用レジスタファイルの
データをコプロセッサによる浮動小数点演算等に用いる
ためには、当該データをコプロセッサ汎用レジスタファ
イルに移動する必要がある。
【0005】従来、この整数演算用汎用レジスタファイ
ルからコプロセッサ汎用レジスタファイルへデータを移
動するには、整数演算用汎用レジスタファイルから主メ
モリへのストアと、主メモリからコプロセッサ汎用レジ
スタファイルへのロードという命令シーケンスを実行す
る必要があった。
【0006】
【発明が解決しようとする課題】上記したように、第1
の演算機能を有する演算手段(第1の演算手段)の他
に、当該第1の演算手段にはない第2の演算機能を有す
る演算手段(第2の演算手段)を持つ従来のプロセッサ
では、第1の演算手段用の第1の記憶手段から第2の演
算手段用の第2の記憶手段へデータを移動するには、第
1の記憶手段から主メモリへのストアと、主メモリから
第2の記憶手段へのロードという命令シーケンスを忠実
に実行する必要があった。
【0007】しかし、主メモリのアクセスには時間がか
かるため、第1の記憶手段から第2の記憶手段へのデー
タ移動が高速に行えないという問題があった。特に、キ
ャッシュミスなどの要因で、第1の記憶手段から主メモ
リへのストアが待たされている間は、それに続く主メモ
リから第2の記憶手段へのロードが実行できないため、
第1の記憶手段から第2の記憶手段へのデータ移動が一
層遅れるという問題があった。
【0008】この発明は上記事情に鑑みてなされたもの
でその目的は、第1の演算機能を有する演算手段(第1
の演算手段)用の第1の記憶手段から同一チップ上の第
2の演算機能を有する演算手段(第2の演算手段)用の
第2の記憶手段へのデータ移動にストア命令およびロー
ド命令からなる命令シーケンスを適用しながら、ストア
命令実行時の情報を記憶手段(第3の記憶手段)に設定
してロード命令時に当該情報を利用することにより、高
速データ移動が行えるプロセッサを提供することにあ
る。
【0009】この発明の他の目的は、ストア命令実行時
の情報を設定するための記憶手段の容量が少なくて済む
プロセッサを提供することにある。この発明の更に他の
目的は、ストアすべきデータを一時格納するための記憶
手段を有効利用することにより、特別の記憶手段を設け
ることなく、第1の記憶手段から第2の記憶手段へのデ
ータ移動の高速化が図れるプロセッサを提供することに
ある。
【0010】
【課題を解決するための手段および作用】この発明は、
第1の演算機能を有する第1の演算手段用の第1の記憶
手段から同一チップ上の第2の演算機能を有する第2の
演算手段用の第2の記憶手段へのデータ移動にストア命
令およびロード命令からなる命令シーケンスを適用する
プロセッサにおいて、第1の記憶手段の各記憶領域にそ
れぞれ対応する記憶領域を有する第3の記憶手段と、上
記ストア命令の実行時には、対象データが格納されてい
る第1の記憶手段内記憶領域に対応する第3の記憶手段
内記憶領域に、ストア先を示すアドレス情報を含む情報
をセットする情報セット手段と、第1の記憶手段から第
2の記憶手段へ直接データを転送するデータ転送手段
と、ロード命令がデコードされた際に第3の記憶手段内
を参照し、ロード元を示すアドレス情報が格納されてい
る有効な記憶領域が存在するならば、当該ロード命令の
実行に代えて、その記憶領域に対応する第1の記憶手段
内記憶領域に格納されているデータを上記のデータ転送
手段により当該ロード命令の指定する第2の記憶手段内
記憶領域に転送させるデータ転送制御手段とを備えたこ
とを特徴とするものである。
【0011】上記の構成において、第1の記憶手段から
第2の記憶手段へのデータ移動のための命令シーケンス
中のストア命令の実行時には、対象データが格納されて
いる第1の記憶手段内記憶領域に対応する第3の記憶手
段内記憶領域に、ストア先を示すアドレス情報を含む情
報が情報セット手段によりセットされる。
【0012】一方、上記命令シーケンス中のロード命令
がデコードされた場合には、転送制御手段により第3の
記憶手段内が参照され、ロード元を示すアドレス情報が
格納されている有効な記憶領域が存在するならば、当該
ロード命令が実行される代わりにデータ転送手段が起動
される。このデータ転送手段は、上記ロード元を示すア
ドレス情報が格納されている第3記憶手段内記憶領域に
対応する第1の記憶手段内記憶領域からデータを取り出
す。このデータは、当該ロード命令の対象データに一致
する。そこでデータ転送手段は、このデータを、当該ロ
ード命令の指定する第2の記憶手段内記憶領域に転送す
る。
【0013】このように、第1の記憶手段から第2の記
憶手段へのデータ移動のためにストア命令およびロード
命令からなる命令シーケンスを適用しながらも、ストア
命令実行時に第3の記憶手段にセットされた情報を利用
することで、第2の記憶手段にロードすべきデータを外
部のメモリからではなくて第1の記憶手段から取り出せ
ることから、第1の記憶手段から第2の記憶手段へのデ
ータ移動が高速に行える。
【0014】上記の構成においては、第3の記憶手段は
第1の記憶手段と同数の記憶領域を有している必要があ
るが、第3の記憶手段内の記憶領域の数を第1の記憶手
段内の記憶領域より少なくすることも可能である。但
し、この場合、情報セット手段は、ストア命令の実行時
に第3の記憶手段内の1つの記憶領域を選択し、当該記
憶領域に、ストア先を示すアドレス情報だけでなく対象
データが格納されている第1の記憶手段内記憶領域を指
すポインタ情報をも含む情報をセットする必要がある。
一方、データ転送制御手段は、ロード命令がデコードさ
れた際に、第3の記憶手段内にロード元を示すアドレス
情報が格納されている有効な記憶領域が存在するなら
ば、当該ロード命令の実行に代えて、その記憶領域に格
納されているポインタ情報の指す第1の記憶手段内記憶
領域に格納されているデータをデータ転送手段により当
該ロード命令の指定する第2の記憶手段内記憶領域に転
送させる必要がある。
【0015】また、以上の第3の記憶手段は新たに設け
られるものであるが、(プロセッサから外部のメモリへ
の効率的なストア動作のために)ストアすべきデータお
よびストア先を示すアドレス情報を一時保持しておく記
憶手段を第3の記憶手段として利用することも可能であ
る。但し、この場合、データ転送制御手段は、ロード命
令がデコードされた際に第3の記憶手段内を参照し、ロ
ード元を示すアドレス情報が格納されている有効な記憶
領域が存在するならば、当該ロード命令の実行に代え
て、その記憶領域に格納されているデータをデータ転送
手段により当該ロード命令の指定する第2の記憶手段内
記憶領域に転送させるようにする必要がある。
【0016】
【実施例】以下、この発明を仮想記憶制御方式の情報処
理装置に適用した実施例につき図面を参照して説明す
る。 [第1の実施例]図1はこの発明の第1の実施例を示す
情報処理装置のブロック構成図である。
【0017】図1の情報処理装置は、主として、各種命
令を実行するプロセッサ1と、当該プロセッサ1が実行
する命令群並びにデータ等が記憶される主メモリ2と、
プロセッサ1および主メモリ2等が接続されるメモリバ
ス3とから構成される。このメモリバス3には、プロセ
ッサ1の他、主メモリ2に直接アクセスする例えばLS
I化された主メモリ利用手段としてのデバイス(図示せ
ず)が接続される。メモリバス3に接続されている各デ
バイスは、当該メモリバス3を介して主メモリ2との間
で情報の授受を行う。
【0018】プロセッサ1は、アドレス変換・データ転
送部11、整数演算ユニット12、整数演算用汎用レジ
スタファイル13、アドレス・サイズ保持部14、コプ
ロセッサユニット15、コプロセッサ汎用レジスタファ
イル16およびデータ転送ユニット17を同一チップに
内蔵する。
【0019】アドレス変換・データ転送部11は、メモ
リバス3と整数演算ユニット12との間に設けられ、当
該整数演算ユニット12からの命令またはデータの読み
出し要求に従って主メモリ2から命令またはデータを取
り込むデータ転送機能を持つ。アドレス変換・データ転
送部11はまた、整数演算ユニット12からのデータの
書き込み要求に従って主メモリ2へデータをストアする
データ転送機能も持つ。アドレス変換・データ転送部1
1は更に、主メモリ2とのデータ転送のために、仮想ア
ドレスを物理アドレスに変換するアドレス変換機能を持
つ。
【0020】整数演算ユニット12は、アドレス変換・
データ転送部11により取り込まれた命令を解読して実
行する標準的な演算機能(ここでは整数演算機能)を持
つ演算手段である。
【0021】この整数演算ユニット12は、解読した命
令がコプロセッサユニット15で演算を行うべきコプロ
セッサ命令の場合には、当該命令をコプロセッサユニッ
ト15に送るようになっている。
【0022】整数演算ユニット12はまた、解読した命
令が整数演算用汎用レジスタファイル13内レジスタの
データを主メモリ2にストアするためのストア命令の場
合には、当該命令の指示する動作に加え、そのデータを
含む情報をアドレス・サイズ保持部14の対応スロット
に登録するようにもなっている。
【0023】整数演算ユニット12は更に、解読した命
令が主メモリ2からコプロセッサ汎用レジスタファイル
16にデータをロードするためのロード命令の場合に
は、アドレス・サイズ保持部14を調べ、当該アドレス
・サイズ保持部14内に目的のデータが保持されている
ならば、そのデータをデータ転送ユニット17によりア
ドレス・サイズ保持部14からコプロセッサ汎用レジス
タファイル16に転送させるようにもなっている。
【0024】整数演算ユニット12は更に、命令実行に
伴い整数演算用汎用レジスタファイル13内レジスタを
書き換える際には、アドレス・サイズ保持部14の対応
スロットをインバリッド状態にするようにもなってい
る。
【0025】整数演算用汎用レジスタファイル13は、
整数演算ユニット12が行う演算に使用するデータを保
持するのに用いられるレジスタ群からなる記憶手段であ
る。アドレス・サイズ保持部14は、整数演算用汎用レ
ジスタファイル13内の各レジスタに保持されているデ
ータの仮想アドレス、サイズを保持するための記憶手段
である。このアドレス・サイズ保持部14は、図2
(a)に示すように、整数演算用汎用レジスタファイル
13の各レジスタに対応するスロット(記憶領域)を持
つ。
【0026】アドレス・サイズ保持部14内の各スロッ
トは、図2(b)に示すように、仮想アドレスフィール
ド141、サイズフィールド142およびバリッドフィ
ールド143からなる。
【0027】仮想アドレスフィールド141は、整数演
算用汎用レジスタファイル13内の対応するレジスタに
保持されているデータの仮想アドレスを設定するための
ものであり、サイズフィールド142は、当該データの
サイズを設定するためのものである。またバリッドフィ
ールド143は、対応するスロットの情報が有効(バリ
ッド)であるか否かを示すバリッドフラグ(有効/無効
情報)を設定するためのものである。
【0028】コプロセッサユニット15は、整数演算ユ
ニット12にはない演算機能、例えば浮動小数点演算機
能を持つ演算手段である。コプロセッサユニット15
は、整数演算ユニット12が解読したコプロセッサ命令
を当該ユニット12から受け取って実行するようになっ
ている。
【0029】コプロセッサ汎用レジスタファイル16
は、コプロセッサユニット15が行う演算に使用するデ
ータを保持するのに用いられるレジスタ群からなる記憶
手段である。
【0030】データ転送ユニット17は、整数演算ユニ
ット12からのデータ転送要求に従って、整数演算用汎
用レジスタ13からコプロセッサ用汎用レジスタファイ
ル16へのデータ転送を行うデータ転送機能を持つ。
【0031】次に、この発明の第1の実施例の動作を図
3および図4のフローチャートを参照して説明する。ま
ず、アドレス変換・データ転送部11によって主メモリ
2から命令がフェッチされ、整数演算ユニット12に送
られたものとする。
【0032】整数演算ユニット12は、アドレス変換・
データ転送部11から送られた命令を解読する(ステッ
プS1)。もし、この解読した命令が、整数演算用汎用
レジスタファイル13内レジスタのデータを主メモリ2
にストアするためのストア命令である場合、整数演算ユ
ニット12は、以下に述べる処理を行う。
【0033】まず整数演算ユニット12は、当該ストア
命令の指定する整数演算用汎用レジスタファイル13内
レジスタに保持されているデータを、アドレス変換・デ
ータ転送部11により主メモリ2にストアさせるとい
う、当該ストア命令の指示する本来の動作を行う(ステ
ップS2)。
【0034】即ち整数演算ユニット12は、アドレス変
換・データ転送部11に対し、主メモリ2へのライト要
求と共に、当該ストア命令の指定する(ストア先を示
す)仮想アドレスおよび当該ストア命令の指定する整数
演算用汎用レジスタファイル13内レジスタに保持され
ているデータを渡す。これにより、アドレス変換・デー
タ転送部11は、整数演算ユニット12から渡された
(ストア先を示す)仮想アドレスを物理アドレス(実ア
ドレス)に変換し、その物理アドレスで示される主メモ
リ2内領域に整数演算ユニット12から渡されたデータ
を書き込むライトアクセスをメモリバス3を介して行
う。
【0035】また整数演算ユニット12は、ストア命令
の指定する整数演算用汎用レジスタファイル13内レジ
スタに対応するアドレス・サイズ保持部14内スロット
を求める(ステップS3)。
【0036】整数演算ユニット12は、求めたアドレス
・サイズ保持部14内スロットのバリッドフィールド1
43(のバリッドフラグ)をバリッド表示状態にし、そ
のスロットの仮想アドレスフィールド141に当該スト
ア命令の指定する仮想アドレスを、そのスロットのサイ
ズフィールド142に当該ストア命令の指定するデータ
のサイズを、それぞれ設定する(ステップS4)。
【0037】次に整数演算ユニット12は、アドレス・
サイズ保持部14内の他のすべてのスロットの仮想アド
レスフィールド141を調べ、当該ストア命令の指定す
る仮想アドレスと一致していたなら、そのスロットのバ
リッドフィールド143(のバリッドフラグ)をインバ
リッド表示状態にする(ステップS5,S6)。
【0038】次に、整数演算ユニット12で解読された
命令が、整数演算用汎用レジスタファイル13内レジス
タの書き換えを伴う命令である場合について説明する。
この場合、整数演算ユニット12は、当該命令の指示す
る本来の動作を行う(ステップS7)他、書き換えられ
る整数演算用汎用レジスタファイル13内レジスタに対
応するアドレス・サイズ保持部14内スロットのバリッ
ドフィールド143(のバリッドフラグ)をインバリッ
ド表示状態にする(ステップS8)。
【0039】次に、整数演算ユニット12で解読された
命令が、主メモリ2から整数演算用汎用レジスタファイ
ル13内レジスタへデータをロードするためのロード命
令である場合について説明する。
【0040】この場合、まず整数演算ユニット12は、
アドレス・サイズ保持部14内でバリッドフィールド1
43がバリッド表示状態になっているスロットを探す
(ステップS9)。
【0041】次に整数演算ユニット12は、探したスロ
ットの仮想アドレスフィールド141の内容が、当該ロ
ード命令の指定する(ロード元を示す)仮想アドレスと
一致しているか否かを調べる(ステップS10)。
【0042】もし、当該ロード命令の指定する仮想アド
レスと一致する仮想アドレスフィールド141を持つア
ドレス・サイズ保持部14内スロットが有り(上記スト
ア命令実行時のステップS4〜S6の動作により、高々
1つしか一致しない)、且つそのスロットのサイズフィ
ールド142の内容が当該ロード命令の指定する(ロー
ド対象データの)サイズに一致するならば(ステップS
11)、整数演算ユニット12は当該ロード命令の指示
する本来の動作を行わない。この場合、整数演算ユニッ
ト12は、仮想アドレスが一致したアドレス・サイズ保
持部14内スロットに対応する整数演算用汎用レジスタ
ファイル13内レジスタから、当該ロード命令で(ロー
ド先として)指定されるコプロセッサ汎用レジスタファ
イル16内レジスタへのデータ転送を、データ転送ユニ
ット17により行わせる(ステップS12)。
【0043】このステップS12において転送されるデ
ータ、即ち仮想アドレスおよびサイズ(データサイズ)
が一致したアドレス・サイズ保持部14内スロットに対
応する整数演算用汎用レジスタファイル13内レジスタ
に保持されているデータは、当該ロード命令の仮想アド
レスおよびサイズで指定される主メモリ2内領域に(先
のストア命令の指示により)ストアされている(或いは
ストア動作が未完了の場合には、ストアされるべき)本
来ロード対象となるデータに一致している。したがっ
て、当該ロード命令の指示する主メモリ2からコプロセ
ッサ汎用レジスタファイル13内レジスタへのデータロ
ード動作に代えて、このデータに一致するアドレス・サ
イズ保持部14内スロットの保持データを、データ転送
ユニット17によりコプロセッサ汎用レジスタファイル
16内レジスタに転送することにより、高速転送が可能
となる。
【0044】これに対し、当該ロード命令の指定する仮
想アドレスと一致する仮想アドレスフィールド141を
持つアドレス・サイズ保持部14内スロットが無いか、
或いは有ったとしても、そのスロットのサイズフィール
ド142の内容が当該ロード命令の指定するサイズに一
致しないならば、整数演算ユニット12は、主メモリ2
に格納されているデータをアドレス変換・データ転送部
11によりコプロセッサユニット15を介してコプロセ
ッサ汎用レジスタファイル16内レジスタにロードさせ
るという、当該ロード命令の指示する本来の動作を行う
(ステップS13)。
【0045】なお、図3および図4のフローチャートで
は、以上のストア命令(整数演算用汎用レジスタファイ
ル13内レジスタのデータを主メモリ2にストアするた
めのストア命令)、整数演算用汎用レジスタファイル1
3内レジスタの書き換えを伴う命令、およびロード命令
(主メモリ2から整数演算用汎用レジスタファイル13
内レジスタへデータをロードするためのロード命令)以
外の命令の場合の動作手順については、本発明に直接関
係しないため省略してある。
【0046】ところで、システムによっては、整数演算
用汎用レジスタファイル13がレジスタウインドウ方式
で制御されている場合がある。レジスタウインドウ方式
では、整数演算用汎用レジスタファイル13を構成する
レジスタ群が複数のグループ(レジスタウインドウ)に
分けて管理され、ソフトウェア的には、そのうちの1つ
のグループ(レジスタウインドウ)内のレジスタ群しか
見えない(扱えない)ようになっている。したがって、
レジスタウインドウ方式で制御される整数演算用汎用レ
ジスタファイル13では、レジスタウインドウを切り換
える命令が実行されると、その切り換え前のレジスタウ
インドウを構成する整数演算用汎用レジスタファイル1
3内レジスタ群と、切り換え後のレジスタウインドウを
構成する整数演算用汎用レジスタファイル13内レジス
タ群とは一致しない。
【0047】そこで整数演算ユニット12は、整数演算
用汎用レジスタファイル13がレジスタウインドウ方式
で制御されている場合には、レジスタウインドウを切り
換える命令が実行されたときに、すべての整数演算用汎
用レジスタファイル13内レジスタに対応するアドレス
・サイズ保持部14内スロットのバリッドフィールド1
43をインバリッド表示状態にする。こうすることによ
り、ロード命令時に、(レジスタウインドウの切り換え
に起因して)誤ったデータがアドレス・サイズ保持部1
4内スロットからコプロセッサ汎用レジスタファイル1
6に転送されることが防止できる。
【0048】また、仮想アドレスと物理アドレスとの関
係は一般に固定化されておらず、同じ仮想アドレスでも
例えばプロセスの切り換えの前後で物理アドレスが異な
ることがある。これは、仮想アドレスを物理アドレスに
変換するための変換マップが(オペレーティングシステ
ム等によって)書き換えられるためである。このような
書き換えが行われる場合には、必ず、サブルーチンがコ
ールされるか、或いはサブルーチンからリターンする。
【0049】そこで本実施例では、整数演算ユニット1
2は、サブルーチンをコールする命令を実行したとき、
或いはサブルーチンからリターンする命令を実行したと
きには、上記のレジスタウインドウを切り換える命令の
実行時と同様に、すべての整数演算用汎用レジスタファ
イル13内レジスタに対応するアドレス・サイズ保持部
14内スロットのバリッドフィールド143をインバリ
ッド表示状態にする。こうすることにより、ロード命令
時に、(仮想アドレス−物理アドレス変換マップの切り
換えに起因して)誤ったデータがアドレス・サイズ保持
部14内スロットからコプロセッサ汎用レジスタファイ
ル16に転送されることが防止できる。
【0050】なお、以上の説明は、仮想記憶制御方式の
情報処理装置に実施した場合であるが、仮想記憶制御方
式を適用しない場合には、上記のサブルーチンコール時
等におけるインバリッド操作は不要となる。
【0051】また、ロード命令、ストア命令で取り扱う
データのサイズが固定であるならば、アドレス・サイズ
保持部14内スロットのサイズフィールド142は不要
であり、上記ステップS11の処理も不要である。 [第2の実施例]以上に述べた第1の実施例では、アド
レス・サイズ保持部(14)のスロット数は整数演算用
汎用レジスタファイル(13)のレジスタ数に一致して
いる必要があった。そこで、アドレス・サイズ保持部の
スロット数が整数演算用汎用レジスタファイルのレジス
タ数より少なくて済むようにした第2の実施例につき図
面を参照して説明する。
【0052】図5はこの発明の第2の実施例を示す情報
処理装置のブロック構成図である。図5の情報処理装置
は、前記第1の実施例におけるプロセッサ1、主メモリ
2およびメモリバス3にそれぞれ相当する、プロセッサ
4、主メモリ5およびメモリバス6を備えている。
【0053】プロセッサ4は、前記第1の実施例におけ
るプロセッサ1と同様に1チップ化されており、そのプ
ロセッサ1が有するアドレス変換・データ転送部11、
整数演算ユニット12、整数演算用汎用レジスタファイ
ル13、アドレス・サイズ保持部14、コプロセッサユ
ニット15、コプロセッサ汎用レジスタファイル16お
よびデータ転送ユニット17にそれぞれ相当する、アド
レス変換・データ転送部41、整数演算ユニット42、
整数演算用汎用レジスタファイル43、アドレス・サイ
ズ保持部44、コプロセッサユニット45、コプロセッ
サ汎用レジスタファイル46およびデータ転送ユニット
47を有している。
【0054】以上のように、プロセッサ4の構成は、第
1の実施例におけるプロセッサ1とほぼ同様である。そ
こで、プロセッサ4の構成がプロセッサ1と異なる点に
ついてのみ説明する。
【0055】本実施例におけるプロセッサ4が、第1の
実施例におけるプロセッサ1と最も相違するのは、アド
レス・サイズ保持部44の構造である。即ちアドレス・
サイズ保持部44は、図6(a)に示すように、整数演
算用汎用レジスタファイル43のレジスタ総数mより少
ないn段(m,nは正の整数)のスロットを持つ。これ
に対し、第1の実施例におけるプロセッサ1上のアドレ
ス・サイズ保持部14は、図2(a)に示したように、
整数演算用汎用レジスタファイル13のレジスタ総数m
に一致するm段のスロットを持っている。
【0056】このようにアドレス・サイズ保持部44内
の各スロットは、(第1の実施例におけるアドレス・サ
イズ保持部14と異なって)整数演算用汎用レジスタフ
ァイル43内の各レジスタと1対1に対応していない。
このため、アドレス・サイズ保持部44内の各スロット
には、図6(b)に示すように、(第1の実施例におけ
るアドレス・サイズ保持部14内スロットの仮想アドレ
スフィールド141、サイズフィールド142およびバ
リッドフィールド143に相当する)仮想アドレスフィ
ールド441、サイズフィールド442およびバリッド
フィールド443の他、対応する整数演算用汎用レジス
タファイル43内レジスタを指すレジスタポインタフィ
ールド444が設けられる。
【0057】アドレス・サイズ保持部44の構造が、第
1の実施例におけるアドレス・サイズ保持部14と異な
ることから、整数演算ユニット42の動作も、第1の実
施例における整数演算ユニット12とは少し異なる。こ
れについては、動作説明の中で詳述する。
【0058】次に、この発明の第2の実施例の動作を図
7および図8のフローチャートを参照して説明する。ま
ず、アドレス変換・データ転送部41によって主メモリ
5から命令がフェッチされ、整数演算ユニット42に送
られたものとする。
【0059】整数演算ユニット42は、アドレス変換・
データ転送部41から送られた命令を解読する(ステッ
プS21)。もし、この解読した命令が、整数演算用汎
用レジスタファイル43内レジスタのデータを主メモリ
5にストアするためのストア命令である場合、整数演算
ユニット42は、以下に述べる処理を行う。
【0060】まず整数演算ユニット42は、当該ストア
命令の指定する整数演算用汎用レジスタファイル43内
レジスタに保持されているデータを、アドレス変換・デ
ータ転送部41により主メモリ5にストアさせるとい
う、当該ストア命令の指示する本来の動作を行う(ステ
ップS22)。この場合、アドレス変換・データ転送部
41によるストア動作は、当該ストア命令の指定する仮
想アドレスを物理アドレスに変換し、その物理アドレス
を用いて主メモリ5をライトアクセスすることにより行
われる。
【0061】また整数演算ユニット42は、ストア命令
の指定する整数演算用汎用レジスタファイル43内レジ
スタに対応させるべきアドレス・サイズ保持部44内ス
ロットを選択する(ステップS23)。このスロット選
択方式としては、ランダムにスロットを選択するランダ
ム方式、或いは最も以前に使用されたスロットを選択す
るLRU(Least Recently Used )方式など、任意の方
式が適用可能である。
【0062】整数演算ユニット42は、選択したアドレ
ス・サイズ保持部44内スロットのバリッドフィールド
443(のバリッドフラグ)をバリッド表示状態にし、
そのスロットの仮想アドレスフィールド441に当該ス
トア命令の指定する仮想アドレスを、そのスロットのサ
イズフィールド442に当該ストア命令の指定するデー
タのサイズを、そのスロットのレジスタポインタフィー
ルド444に当該ストア命令の指定する整数演算用汎用
レジスタファイル43内レジスタを指すポインタ(レジ
スタポインタ)を、それぞれ設定する(ステップS2
4)。
【0063】次に整数演算ユニット42は、アドレス・
サイズ保持部44内の他のすべてのスロットの仮想アド
レスフィールド441を調べ、当該ストア命令の指定す
る仮想アドレスと一致していたなら、そのスロットのバ
リッドフィールド443(のバリッドフラグ)をインバ
リッド表示状態にする(ステップS25,S26)。
【0064】次に、整数演算ユニット42で解読された
命令が、整数演算用汎用レジスタファイル43内レジス
タの書き換えを伴う命令である場合について説明する。
この場合、整数演算ユニット42は、当該命令の指示す
る本来の動作を行う(ステップS27)他、アドレス・
サイズ保持部14内のすべてのスロット(或いはすべて
の有効なスロット)のレジスタポインタフィールド44
4を調べ、書き換えられるレジスタを指しているスロッ
トが有れば、そのスロットのバリッドフィールド443
(のバリッドフラグ)をインバリッド表示状態にする
(ステップS28)。
【0065】この他、整数演算ユニット42は、前記第
1の実施例における整数演算ユニット12と同様に、以
下の(a),(b),(c)の少なくとも1つが成立す
る場合には、アドレス・サイズ保持部14内のすべての
スロットのバリッドフィールド443(のバリッドフラ
グ)をインバリッド表示状態にする。
【0066】(a)整数演算用汎用レジスタファイル4
3がレジスタウインドウ方式で制御されている場合に、
レジスタウインドウを切り換える命令が実行されたとき (b)サブルーチンをコールする命令を実行したとき (c)サブルーチンからリターンする命令を実行したと
き 次に、整数演算ユニット42で解読された命令が、主メ
モリ5からコプロセッサ汎用レジスタファイル46内レ
ジスタへデータをロードするためのロード命令である場
合について説明する。
【0067】この場合、まず整数演算ユニット42は、
アドレス・サイズ保持部44内でバリッドフィールド4
43がバリッド表示状態になっているスロットを探す
(ステップS29)。
【0068】次に整数演算ユニット42は、探したスロ
ットの仮想アドレスフィールド441の内容が、当該ロ
ード命令の指定する仮想アドレスと一致しているか否か
を調べる(ステップS30)。
【0069】もし、当該ロード命令の指定する仮想アド
レスと一致する仮想アドレスフィールド441を持つア
ドレス・サイズ保持部44内スロットが有り(上記スト
ア命令実行時のステップS24〜S26の動作により、
高々1つしか一致しない)、且つそのスロットのサイズ
フィールド442の内容が当該ロード命令の指定するサ
イズに一致するならば(ステップS31)、整数演算ユ
ニット42は当該ロード命令の指示する本来の動作を行
わない。この場合、整数演算ユニット42は、仮想アド
レスが一致したアドレス・サイズ保持部14内スロット
のレジスタポインタフィールド444の内容(レジスタ
ポインタ)の指す整数演算用汎用レジスタファイル43
内レジスタから、当該ロード命令で(ロード先として)
指定されるコプロセッサ汎用レジスタファイル16内レ
ジスタへのデータ転送を、データ転送ユニット47によ
り行わせる(ステップS32)。
【0070】これに対し、当該ロード命令の指定する仮
想アドレスと一致する仮想アドレスフィールド441を
持つアドレス・サイズ保持部44内スロットが無いか、
或いは有ったとしても、そのスロットのサイズフィール
ド442の内容が当該ロード命令の指定するサイズと一
致しないならば、整数演算ユニット42は、主メモリ5
に格納されているデータをアドレス変換・データ転送部
41によりコプロセッサユニット45を介してコプロセ
ッサ汎用レジスタファイル46内レジスタにロードさせ
るという、当該ロード命令の指示する本来の動作を行う
(ステップS33)。 [第3の実施例]以上に述べた第1および第2の実施例
では、アドレス・サイズ保持部(14,44)という新
たな記憶手段を設ける必要があった。ところで、主メモ
リへの効率的なストア動作のために、ストアすべきデー
タおよびストア先を示す仮想アドレス情報を一時保持し
ておくストアバッファを持つプロセッサが知られてい
る。そこで、このストアバッファを前記第1および第2
の実施例におけるアドレス・サイズ保持部に代わる記憶
手段として利用するようにした(但し、ストアバッファ
内スロットのデータ構造は異なる)第3の実施例につき
図面を参照して説明する。
【0071】図9はこの発明の第3の実施例を示す情報
処理装置のブロック構成図である。図9の情報処理装置
は、前記第1の実施例におけるプロセッサ1、主メモリ
2およびメモリバス3にそれぞれ相当する、プロセッサ
7、主メモリ8およびメモリバス9を備えている。
【0072】プロセッサ7は、アドレス変換・データ転
送部71、整数演算ユニット72、整数演算用汎用レジ
スタファイル73、ストアバッファ74、コプロセッサ
ユニット75、コプロセッサ汎用レジスタファイル76
およびデータ転送ユニット77を同一チップに内蔵す
る。
【0073】アドレス変換・データ転送部71は、メモ
リバス9と整数演算ユニット72との間に設けられ、当
該整数演算ユニット72からの命令またはデータの読み
出し要求に従って主メモリ8から命令またはデータを取
り込むデータ転送機能を持つ。アドレス変換・データ転
送部71はまた、整数演算ユニット72からのデータの
書き込み要求に従って主メモリ8へデータをストアする
データ転送機能も持つ。アドレス変換・データ転送部7
1は更に、主メモリ8とのデータ転送のために、仮想ア
ドレスを物理アドレスに変換するアドレス変換機能を持
つ。
【0074】整数演算ユニット72は、アドレス変換・
データ転送部71により取り込まれた命令を解読して実
行する標準的な演算機能(ここでは整数演算機能)を持
つ演算手段である。
【0075】この整数演算ユニット72は、解読した命
令がコプロセッサユニット75で演算を行うべきコプロ
セッサ命令の場合には、当該命令をコプロセッサユニッ
ト75に送るようになっている。
【0076】整数演算ユニット72はまた、解読した命
令が整数演算用汎用レジスタファイル73内レジスタの
データを主メモリ8にストアするためのストア命令の場
合には、主メモリ8へのライト要求と共に、当該ストア
命令の指定する(ストア先を示す)仮想アドレスおよび
当該ストア命令の指定する整数演算用汎用レジスタファ
イル73内レジスタに保持されているデータをアドレス
変換・データ転送部71に渡して、主メモリ8へのスト
ア動作を行わせるようになっている。
【0077】整数演算ユニット72は更に、解読した命
令が主メモリ8からコプロセッサ汎用レジスタファイル
76にデータをロードするためのロード命令の場合に
は、ストアバッファ74を調べ、当該ストアバッファ7
4内に目的のデータが保持されているならば、そのデー
タをデータ転送ユニット77によりストアバッファ74
からコプロセッサ汎用レジスタファイル76に転送させ
るようにもなっている。
【0078】整数演算ユニット72は更に、命令実行に
伴い整数演算用汎用レジスタファイル73内レジスタを
書き換える際に、当該レジスタを指すストアバッファ7
4内スロットが有れば、そのスロットをインバリッド状
態にするようにもなっている。
【0079】整数演算用汎用レジスタファイル73は、
整数演算ユニット72が行う演算に使用するデータを保
持するのに用いられるレジスタ群からなるデータ記憶手
段である。
【0080】ストアバッファ74は、アドレス変換・デ
ータ転送部71により主メモリ8にストアされるデータ
を含む情報を保持するための記憶手段である。このスト
アバッファ74は、図10(a)に示すように、p段
(pは正の整数)のスロット#1,#2,#3,…#p
−1,#pを持つ。
【0081】ストアバッファ74内の各スロットは、図
10(b)に示すように、データフィールド741、仮
想アドレスフィールド742、物理アドレスフィールド
743、サイズフィールド744、レジスタポインタフ
ィールド745およびバリッドフィールド746からな
る。
【0082】データフィールド741は、主メモリ8に
ストアされるデータを設定するためのものである。また
仮想アドレスフィールド742は、データフィールド7
41に設定されているデータのストア先を示す仮想アド
レスを設定するためのものであり、物理アドレスフィー
ルド743は、当該仮想アドレスに対応する物理アドレ
スを設定するためのものである。またサイズフィールド
744は、データフィールド741に設定されているデ
ータのサイズを設定するためのものであり、レジスタポ
インタフィールド745は当該データが保持されていた
整数演算用汎用レジスタファイル73内レジスタを指す
ポインタ(レジスタポインタ)を設定するためのもので
ある。またバリッドフィールド746は、対応するスロ
ットの情報が有効(バリッド)であるか否かを示すバリ
ッドフラグ(有効/無効情報)を設定するためのもので
ある。
【0083】コプロセッサユニット75は、整数演算ユ
ニット72にはない演算機能、例えば浮動小数点演算機
能を持つ演算手段である。コプロセッサユニット75
は、整数演算ユニット72が解読したコプロセッサ命令
を当該ユニット72から受け取って実行するようになっ
ている。
【0084】コプロセッサ汎用レジスタファイル76
は、コプロセッサユニット75が行う演算に使用するデ
ータを保持するのに用いられるレジスタ群からなるデー
タ記憶手段である。
【0085】データ転送ユニット77は、整数演算ユニ
ット72からのデータ転送要求に従って、ストアバッフ
ァ74から汎用レジスタファイル76へのデータ転送を
行うデータ転送機能を持つ。
【0086】次に、この発明の第3の実施例の動作を図
11および図12のフローチャートを参照して説明す
る。まず、アドレス変換・データ転送部71によって主
メモリ8から命令がフェッチされ、整数演算ユニット7
2に送られたものとする。
【0087】整数演算ユニット72は、アドレス変換・
データ転送部71から送られた命令を解読する(ステッ
プS41)。もし、この解読した命令が、整数演算用汎
用レジスタファイル73内レジスタのデータを主メモリ
8にストアするためのストア命令である場合、整数演算
ユニット72は、アドレス変換・データ転送部71に対
し、主メモリ8へのライト要求と共に、当該ストア命令
の指定する(ストア先を示す)仮想アドレスおよび当該
ストア命令の指定する整数演算用汎用レジスタファイル
73内レジスタに保持されているデータを渡し、このデ
ータを以下に述べるようにストアバッファ74を介して
主メモリ8にストアさせる(ステップS42)。
【0088】アドレス変換・データ転送部71は、整数
演算ユニット72からのライト要求に応じ、当該ユニッ
ト72から渡された(ストア先を示す)仮想アドレスを
物理アドレス(実アドレス)に変換する。そしてアドレ
ス変換・データ転送部71は、図示せぬライトポインタ
の指すストアバッファ74内スロットのバリッドフィー
ルド746(のバリッドフラグ)をバリッド表示状態に
し、そのスロットのデータフィールド741に整数演算
ユニット72から渡されたデータを、そのスロットの仮
想アドレスフィールド742に整数演算ユニット72か
ら渡された仮想アドレスを、そのスロットの物理アドレ
スフィールド743にアドレス変換により得た物理アド
レスを、そのスロットのサイズフィールド744に当該
データのサイズを、そのスロットのレジスタポインタフ
ィールド745に当該データが保持されていた整数演算
用汎用レジスタファイル73内レジスタを指すポインタ
を、それぞれ設定する。この際、ライトポインタが次の
スロットを指すように更新される。
【0089】アドレス変換・データ転送部71は、メモ
リバス9が空いている場合、ストアバッファ74の先頭
スロット#1を参照し、当該スロットのバリッドフィー
ルド746がバリッド表示状態にあるならば、当該スロ
ットの物理アドレスフィールド743に設定されている
物理アドレスで示される主メモリ2内領域に、当該スロ
ットのデータフィールド741に設定されているデータ
をストアするライトアクセスをメモリバス9を介して行
う。
【0090】このストア動作の結果、ストアバッファ7
4の先頭スロット#1が空くと、アドレス変換・データ
転送部71は、当該スロット#1のバリッドフィールド
746をインバリッド表示状態にした後、スロット#2
の内容をスロット#1にコピーし、スロット#3の内容
をスロット#2にコピーし、以下同様にスロット#pの
内容をスロット#p−1にコピーする。
【0091】なお、ストアバッファ74内スロットを指
すリードポインタを設け、当該リードポインタの指すス
ロット(のデータフィールド741)に保持されている
データを主メモリ8にストアする構成とするならば、上
記のコピー動作は不要であり、ストア動作の後に当該リ
ードポインタを次のスロットを指すように更新するだけ
で良い。
【0092】次に、整数演算ユニット72で解読された
命令が、整数演算用汎用レジスタファイル73内レジス
タの書き換えを伴う命令である場合について説明する。
この場合、整数演算ユニット72は、当該命令の指示す
る本来の動作を行う(ステップS43)他、ストアバッ
ファ74のすべてのスロット(或いはすべての有効なス
ロット)のレジスタポインタフィールド745を調べ、
書き換えられるレジスタを指しているスロットが有るな
らば、そのスロットのバリッドフィールド746(のバ
リッドフラグ)をインバリッド表示状態にする(ステッ
プS44)。
【0093】この他、整数演算ユニット72は、前記第
1の実施例における整数演算ユニット12と同様に、以
下の(a),(b),(c)の少なくとも1つが成立す
る場合には、ストアバッファ74内のすべてのスロット
のバリッドフィールド746(のバリッドフラグ)をイ
ンバリッド表示状態にする。
【0094】(a)整数演算用汎用レジスタファイル7
3がレジスタウインドウ方式で制御されている場合に、
レジスタウインドウを切り換える命令が実行されたとき (b)サブルーチンをコールする命令を実行したとき (c)サブルーチンからリターンする命令を実行したと
き 次に、整数演算ユニット72で解読された命令が、主メ
モリ8から整数演算用汎用レジスタファイル73内レジ
スタへデータをロードするためのロード命令である場合
について説明する。
【0095】この場合、まず整数演算ユニット72は、
ストアバッファ74内でバリッドフィールド746がバ
リッド表示状態になっているスロットを探す(ステップ
S45)。
【0096】次に整数演算ユニット72は、探したスロ
ットの仮想アドレスフィールド742の内容が、当該ロ
ード命令の指定する仮想アドレスと一致しているか否か
を調べる(ステップS46)。
【0097】もし、当該ロード命令の指定する仮想アド
レスと一致する仮想アドレスフィールド742を持つス
トアバッファ74内スロットが有り(高々1つしか一致
しない)、且つそのスロットのサイズフィールド744
の内容が当該ロード命令の指定するサイズに一致するな
らば(ステップS47)、整数演算ユニット72は当該
ロード命令の指示する本来の動作を行わない。この場
合、整数演算ユニット72は、仮想アドレスが一致した
ストアバッファ74内スロット(のデータフィールド7
41)から、当該ロード命令で(ロード先として)指定
されるコプロセッサ汎用レジスタファイル76内レジス
タへのデータ転送を、データ転送ユニット77により行
わせる(ステップS48)。
【0098】これに対し、当該ロード命令の指定する仮
想アドレスと一致する仮想アドレスフィールド742を
持つストアバッファ74内スロットが無いか、或いは有
ったとしても、そのスロットのサイズフィールド744
の内容が当該ロード命令の指定するサイズと一致しない
ならば、整数演算ユニット72は、主メモリ8に格納さ
れているデータをアドレス変換・データ転送部71によ
りコプロセッサユニット75を介してコプロセッサ汎用
レジスタファイル76内レジスタにロードさせるとい
う、当該ロード命令の指示する本来の動作を行う(ステ
ップS49)。
【0099】
【発明の効果】以上詳述したようにこの発明によれば、
第1の演算機能を有する第1の演算手段用の第1の記憶
手段から同一チップ上の第2の演算機能を有する第2の
演算手段用の第2の記憶手段へのデータ移動にストア命
令およびロード命令からなる命令シーケンスを適用する
プロセッサ内に、第1の記憶手段の各記憶領域にそれぞ
れ対応する記憶領域を有する第3の記憶手段を設け、ス
トア命令の実行時には、対象データが格納されている第
1の記憶手段内記憶領域に対応する第3の記憶手段内記
憶領域に、ストア先を示すアドレス情報を含む情報をセ
ットし、ロード命令がデコードされた際には第3の記憶
手段内を参照し、ロード元を示すアドレス情報が格納さ
れている有効な記憶領域が存在するならば、当該ロード
命令の実行に代えて、その記憶領域に対応する第1の記
憶手段内記憶領域に格納されているデータを当該ロード
命令の指定する第2の記憶手段内記憶領域に転送させる
構成とすることにより、第1の記憶手段から第2の記憶
手段へのデータ移動のためにストア命令およびロード命
令からなる命令シーケンスを適用しながらも、第2の記
憶手段にロードすべきデータを外部のメモリからではな
くて第1の記憶手段から取り出せることから、第1の記
憶手段から第2の記憶手段へのデータ移動が高速に行え
る。
【0100】また、この発明によれば、第3の記憶手段
内の記憶領域に、ストア先を示すアドレス情報だけでな
く対象データが格納されている第1の記憶手段内記憶領
域を指すポインタ情報をも含む情報をセットする構成と
すると共に、ロード命令がデコードされた際に、第3の
記憶手段内にロード元を示すアドレス情報が格納されて
いる有効な記憶領域が存在するならば、当該ロード命令
の実行に代えて、その記憶領域に格納されているポイン
タ情報の指す第1の記憶手段内記憶領域に格納されてい
るデータを第2の記憶手段に転送させる構成とすること
により、第3の記憶手段の記憶領域数を、第1の記憶手
段の記憶領域数より少なくすることができる。
【0101】また、この発明によれば、プロセッサから
外部のメモリへの効率的なストア動作のためにストアす
べきデータおよびストア先を示すアドレス情報を一時保
持しておく記憶手段を第3の記憶手段として利用し、ロ
ード命令がデコードされた際に、第3の記憶手段内にロ
ード元を示すアドレス情報が格納されている有効な記憶
領域が存在するならば、当該ロード命令の実行に代え
て、その記憶領域に格納されているデータを第2の記憶
手段内記憶領域に転送させる構成とすることにより、特
別の記憶手段を設けることなく、第1の記憶手段から第
2の記憶手段へのデータ移動の高速化を図ることができ
る。
【図面の簡単な説明】
【図1】この発明の第1の実施例を示す情報処理装置の
ブロック構成図。
【図2】図1中のアドレス・サイズ保持部14内スロッ
トと整数演算用汎用レジスタファイル13内レジスタと
の関係、およびアドレス・サイズ保持部14内スロット
のデータ構造を示す図。
【図3】上記第1の実施例の動作を説明するためのフロ
ーチャートの一部を示す図。
【図4】上記第1の実施例の動作を説明するためのフロ
ーチャートの残りを示す図。
【図5】この発明の第2の実施例を示す情報処理装置の
ブロック構成図。
【図6】図5中のアドレス・サイズ保持部44内スロッ
トと整数演算用汎用レジスタファイル43内レジスタと
の関係、およびアドレス・サイズ保持部44内スロット
のデータ構造を示す図。
【図7】上記第2の実施例の動作を説明するためのフロ
ーチャートの一部を示す図。
【図8】上記第2の実施例の動作を説明するためのフロ
ーチャートの残りを示す図。
【図9】この発明の第3の実施例を示す情報処理装置の
ブロック構成図。
【図10】図9中のストアバッファ74の構造と、当該
ストアバッファ74内スロットのデータ構造を示す図。
【図11】上記第3の実施例の動作を説明するためのフ
ローチャートの一部を示す図。
【図12】上記第3の実施例の動作を説明するためのフ
ローチャートの残りを示す図。
【符号の説明】
1…プロセッサ、2…主メモリ、3…メモリバス、11
…アドレス変換・データ転送部、12…整数演算ユニッ
ト(第1の演算手段、情報セット手段、データ転送制御
手段)、13…整数演算用汎用レジスタファイル(第1
の記憶手段)、14…アドレス・サイズ保持部(第3の
記憶手段)、15…コプロセッサユニット(第2の演算
手段)、16…コプロセッサ汎用レジスタファイル(第
2の記憶手段)、17…データ転送ユニット(データ転
送手段)、4…プロセッサ、5…主メモリ、6…メモリ
バス、41…アドレス変換・データ転送部、42…整数
演算ユニット(第1の演算手段、情報セット手段、デー
タ転送制御手段)、43…整数演算用汎用レジスタファ
イル(第1の記憶手段)、44…アドレス・サイズ保持
部(第3の記憶手段)、45…コプロセッサユニット
(第2の演算手段)、46…コプロセッサ汎用レジスタ
ファイル(第2の記憶手段)、47…データ転送ユニッ
ト(データ転送手段)、7…プロセッサ、8…主メモ
リ、9…メモリバス、71…アドレス変換・データ転送
部(情報セット手段、ストア手段)、72…整数演算ユ
ニット(第1の演算手段、情報セット手段、データ転送
制御手段)、73…整数演算用汎用レジスタファイル
(第1の記憶手段)、74…ストアバッファ(第3の記
憶手段)、75…コプロセッサユニット(第2の演算手
段)、76…コプロセッサ汎用レジスタファイル(第2
の記憶手段)、77…データ転送ユニット(データ転送
手段)。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】第1の演算機能を有する第1の演算手段
    と、この第1の演算手段が行う演算に使用するデータを
    保持するための第1の記憶手段と、前記第1の演算手段
    にはない第2の演算機能を持つ第2の演算手段と、この
    第2の演算手段が行う演算に使用するデータを保持する
    ための第2の記憶手段とを同一チップに内蔵し、前記第
    1の記憶手段から前記第2の記憶手段へのデータ移動
    に、前記第1の記憶手段から前記チップ外部のメモリへ
    のデータストアを指示するストア命令および当該メモリ
    から前記第2の記憶手段へのデータロードを指示するロ
    ード命令からなる命令シーケンスを適用するプロセッサ
    において、 前記第1の記憶手段の各記憶領域にそれぞれ対応する記
    憶領域であって、アドレス情報を含む情報が設定される
    記憶領域を有する第3の記憶手段と、 前記ストア命令の実行時には、対象データが格納されて
    いる前記第1の記憶手段内記憶領域に対応する前記第3
    の記憶手段内記憶領域に、ストア先を示すアドレス情報
    を含む情報をセットする情報セット手段と、 前記第1の記憶手段から前記第2の記憶手段へ直接デー
    タを転送するデータ転送手段と、 前記ロード命令がデコードされた際に前記第3の記憶手
    段内を参照し、ロード元を示すアドレス情報が格納され
    ている有効な記憶領域が存在するならば、当該ロード命
    令の実行に代えて、その記憶領域に対応する前記第1の
    記憶手段内記憶領域に格納されているデータを前記デー
    タ転送手段により当該ロード命令の指定する前記第2の
    記憶手段内記憶領域に転送させるデータ転送制御手段と
    を具備することを特徴とするプロセッサ。
  2. 【請求項2】前記第3の記憶手段の各記憶領域に設定さ
    れる情報には、その記憶領域の内容が有効であるか否か
    を示す有効/無効情報が含まれており、 前記情報セット手段は、前記第3の記憶手段内記憶領域
    への情報セットを行う際に、その記憶領域の内容が有効
    であることを示す有効/無効情報を併せてセットすると
    共に、前記第3の記憶手段内の他の記憶領域のうち、当
    該ストア命令により指定されるストア先を示すアドレス
    情報と一致するアドレス情報が設定されている記憶領域
    の有効/無効情報を無効表示状態にし、前記第1の記憶
    手段内記憶領域の内容の書き換えを伴う命令の実行時に
    は、当該記憶領域に対応する前記第3の記憶手段内の記
    憶領域の有効/無効情報を無効表示状態にするすること
    を特徴とする請求項1記載のプロセッサ。
  3. 【請求項3】第1の演算機能を有する第1の演算手段
    と、この第1の演算手段が行う演算に使用するデータを
    保持するための第1の記憶手段と、前記第1の演算手段
    にはない第2の演算機能を持つ第2の演算手段と、この
    第2の演算手段が行う演算に使用するデータを保持する
    ための第2の記憶手段とを同一チップに内蔵し、前記第
    1の記憶手段から前記第2の記憶手段へのデータ移動
    に、前記第1の記憶手段から前記チップ外部のメモリへ
    のデータストアを指示するストア命令および当該メモリ
    から前記第2の記憶手段へのデータロードを指示するロ
    ード命令からなる命令シーケンスを適用するプロセッサ
    において、 前記第1の記憶手段内の記憶領域より少数の記憶領域で
    あって、アドレス情報および前記第1の記憶手段内記憶
    領域を指すポインタ情報を含む情報が設定される複数の
    記憶領域を有する第3の記憶手段と、 前記ストア命令の実行時には、前記第3の記憶手段内の
    記憶領域を1つ選択して、当該記憶領域に、ストア先を
    示すアドレス情報および対象データが格納されている前
    記第1の記憶手段内記憶領域を指すポインタ情報を含む
    情報をセットする情報セット手段と、 前記第1の記憶手段から前記第2の記憶手段へ直接デー
    タを転送するデータ転送手段と、 前記ロード命令がデコードされた際に前記第3の記憶手
    段内を参照し、ロード元を示すアドレス情報が格納され
    ている有効な記憶領域が存在するならば、当該ロード命
    令の実行に代えて、その記憶領域に格納されているポイ
    ンタ情報の指す前記第1の記憶手段内記憶領域に格納さ
    れているデータを前記データ転送手段により当該ロード
    命令の指定する前記第2の記憶手段内記憶領域に転送さ
    せるデータ転送制御手段とを具備することを特徴とする
    プロセッサ。
  4. 【請求項4】前記第3の記憶手段の各記憶領域に設定さ
    れる情報には、その記憶領域の内容が有効であるか否か
    を示す有効/無効情報が含まれており、 前記情報セット手段は、前記第3の記憶手段内記憶領域
    への情報セットを行う際に、その記憶領域の内容が有効
    であることを示す有効/無効情報を併せてセットすると
    共に、前記第3の記憶手段内の他の記憶領域のうち、当
    該ストア命令により指定されるストア先を示すアドレス
    情報と一致するアドレス情報が設定されている記憶領域
    の有効/無効情報を無効表示状態にし、前記第1の記憶
    手段内記憶領域の内容の書き換えを伴う命令の実行時に
    は、前記第3の記憶手段内のすべての記憶領域のうち、
    前記書き換えられる第1の記憶手段内記憶領域を指すポ
    インタ情報が設定されている記憶領域の有効/無効情報
    を無効表示状態にすることを特徴とする請求項3記載の
    プロセッサ。
  5. 【請求項5】第1の演算機能を有する第1の演算手段
    と、この第1の演算手段が行う演算に使用するデータを
    保持するための第1の記憶手段と、前記第1の演算手段
    にはない第2の演算機能を持つ第2の演算手段と、この
    第2の演算手段が行う演算に使用するデータを保持する
    ための第2の記憶手段とを同一チップに内蔵し、前記第
    1の記憶手段から前記第2の記憶手段へのデータ移動
    に、前記第1の記憶手段から前記チップ外部のメモリへ
    のデータストアを指示するストア命令および当該メモリ
    から前記第2の記憶手段へのデータロードを指示するロ
    ード命令からなる命令シーケンスを適用するプロセッサ
    において、 前記メモリへのストアに用いられるデータおよびストア
    先を示すアドレス情報を含む情報が設定される複数の記
    憶領域を有する第3の記憶手段と、 前記ストア命令の実行のために、当該ストア命令の指定
    する前記第1の記憶手段内記憶領域に格納されているデ
    ータおよびストア先を示すアドレス情報を含む情報を前
    記第3の記憶手段内の記憶領域にセットする情報セット
    手段と、 前記第3の記憶手段から前記第2の記憶手段へ直接デー
    タを転送するデータ転送手段と、 前記第3の記憶手段内の記憶領域に格納されているデー
    タを、その記憶領域に格納されているアドレス情報の指
    定する前記メモリにストアするストア手段と、 前記ロード命令がデコードされた際に前記第3の記憶手
    段内を参照し、ロード元を示すアドレス情報が格納され
    ている有効な記憶領域が存在するならば、当該ロード命
    令の実行に代えて、その記憶領域に格納されているデー
    タを前記データ転送手段により当該ロード命令の指定す
    る前記第2の記憶手段内記憶領域に転送させるデータ転
    送制御手段とを具備することを特徴とするプロセッサ。
  6. 【請求項6】前記第3の記憶手段の各記憶領域に設定さ
    れる情報には、その記憶領域の内容が有効であるか否か
    を示す有効/無効情報、およびその記憶領域に設定され
    るデータが格納されている前記第1の記憶手段内記憶領
    域を指すポインタ情報が含まれており、 前記情報セット手段は、前記ストア命令の実行のために
    当該ストア命令の指定する前記第1の記憶手段内記憶領
    域に格納されているデータおよびストア先を示すアドレ
    ス情報を前記第3の記憶手段内記憶領域にセットする際
    に、その記憶領域の内容が有効であることを示す有効/
    無効情報および当該ストア命令の指定する前記第1の記
    憶手段内記憶領域を指すポインタ情報を併せてセット
    し、前記第1の記憶手段内記憶領域の内容の書き換えを
    伴う命令の実行時には、前記第3の記憶手段内のすべて
    の記憶領域のうち、前記書き換えられる記憶領域を指す
    ポインタ情報が設定されている記憶領域の有効/無効情
    報を無効表示状態にすることを特徴とする請求項5記載
    のプロセッサ。
  7. 【請求項7】前記第1の記憶手段内の記憶領域群が複数
    のグループに分けて管理され、そのうちの1つのグルー
    プ内の記憶領域だけを処理の対象とし得る方式が適用さ
    れたプロセッサであって、 前記情報セット手段は、前記処理対象となるグループを
    切り換える命令の実行時には、前記第3の記憶手段内の
    すべての記憶領域の有効/無効情報を無効表示状態にす
    ることを特徴とする請求項2、請求項4または請求項6
    に記載のプロセッサ。
  8. 【請求項8】前記情報セット手段は、サブルーチンをコ
    ールする命令の実行時またはサブルーチンからリターン
    する命令の実行時には、前記第3の記憶手段内のすべて
    の記憶領域の有効/無効情報を無効表示状態にすること
    を特徴とする請求項2、請求項4、請求項6または請求
    項7に記載のプロセッサ。
JP6051502A 1994-03-23 1994-03-23 プロセッサ Pending JPH07262004A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6051502A JPH07262004A (ja) 1994-03-23 1994-03-23 プロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6051502A JPH07262004A (ja) 1994-03-23 1994-03-23 プロセッサ

Publications (1)

Publication Number Publication Date
JPH07262004A true JPH07262004A (ja) 1995-10-13

Family

ID=12888770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6051502A Pending JPH07262004A (ja) 1994-03-23 1994-03-23 プロセッサ

Country Status (1)

Country Link
JP (1) JPH07262004A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322149B1 (ko) * 1998-02-17 2002-02-04 포만 제프리 엘 고성능 추론적 스트링/다중 연산 방법
KR101221430B1 (ko) * 2011-04-26 2013-01-11 삼성탈레스 주식회사 멀티신호 분산 처리 장치 및 그 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100322149B1 (ko) * 1998-02-17 2002-02-04 포만 제프리 엘 고성능 추론적 스트링/다중 연산 방법
KR101221430B1 (ko) * 2011-04-26 2013-01-11 삼성탈레스 주식회사 멀티신호 분산 처리 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
JP4171496B2 (ja) スタックを用いる演算マシンのための命令フォールディング処理
US5819063A (en) Method and data processing system for emulating a program
JP3634379B2 (ja) スタックキャッシングのための方法及び装置
US5123094A (en) Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
US6219783B1 (en) Method and apparatus for executing a flush RS instruction to synchronize a register stack with instructions executed by a processor
US5644746A (en) Data processing apparatus with improved mechanism for executing register-to-register transfer instructions
JPH0612386A (ja) プロセス内のスレッドを同期するための方法およびシステム
US5621896A (en) Data processor with unified store queue permitting hit under miss memory accesses
US6115777A (en) LOADRS instruction and asynchronous context switch
US4454580A (en) Program call method and call instruction execution apparatus
US6338134B1 (en) Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data
US5764962A (en) Emulation of asynchronous signals using a branch mechanism
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
EP0669579B1 (en) Coherence index generation for use by an input/output adapter
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
KR100281007B1 (ko) 마이크로 프로세서 및 이를 사용한 그래픽처리 장치 및 그래픽처리 방법
US6065114A (en) Cover instruction and asynchronous backing store switch
JP2002032264A (ja) キャッシュメモリ装置及びそれを用いた中央演算処理装置
JPS6167160A (ja) 仮想アドレス変換装置
JPH07262004A (ja) プロセッサ
JP2002543490A (ja) プログラムコード変換において使用する例外処理の方法および装置
JPS6032220B2 (ja) 情報処理装置
US6112292A (en) Code sequence for asynchronous backing store switch utilizing both the cover and LOADRS instructions
JP3006204B2 (ja) 情報処理装置
JPS59500241A (ja) メモリ内容を機械レジスタに自動的に写像する計算機