JPH02148223A - レジスタ退避復活装置 - Google Patents
レジスタ退避復活装置Info
- Publication number
- JPH02148223A JPH02148223A JP30245688A JP30245688A JPH02148223A JP H02148223 A JPH02148223 A JP H02148223A JP 30245688 A JP30245688 A JP 30245688A JP 30245688 A JP30245688 A JP 30245688A JP H02148223 A JPH02148223 A JP H02148223A
- Authority
- JP
- Japan
- Prior art keywords
- register
- cache memory
- contents
- window
- data
- 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
- 238000000034 method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
- G06F9/30127—Register windows
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
本発明は、電子計算機の中央処理装置に設けられたレジ
スタファイルの内容の退避・復活を行なうためのレジス
タ退避復活装置に関する。
スタファイルの内容の退避・復活を行なうためのレジス
タ退避復活装置に関する。
(従来の技術)
近年、情報処理技術の進歩に伴って電子計算機が行なう
仕事も多種多様になってきた。このため、多様なニーズ
に対して効率の良い処理を行なうためのマルチタスク方
式が開発されている。マルチタスク方式では、例えば数
ミリ秒毎にタスクの切換えを行なう必要があり、その度
に現タスクのCPUのレジスタファイルの内容をメイン
メモリに退避し、次のタスクの情報をCPUのレジスタ
ファイルに復活しなければならない。
仕事も多種多様になってきた。このため、多様なニーズ
に対して効率の良い処理を行なうためのマルチタスク方
式が開発されている。マルチタスク方式では、例えば数
ミリ秒毎にタスクの切換えを行なう必要があり、その度
に現タスクのCPUのレジスタファイルの内容をメイン
メモリに退避し、次のタスクの情報をCPUのレジスタ
ファイルに復活しなければならない。
また、1つのタスクの中においても、サブルーチンコー
ル、リターンによるレジスタの退避・復活が頻繁に行わ
れる。
ル、リターンによるレジスタの退避・復活が頻繁に行わ
れる。
更にPr010gマシンにおいては、ユニフィケーショ
ンの過程でバックトラックが発生した場合、それ以前に
通過した最も近いチョイス・ポイントまで計算機環境を
戻さなくてはならない。特にPrologのような非決
定論的な推論処理においては、このようなチョイスポイ
ントとバックトラックとが頻繁に繰返される。
ンの過程でバックトラックが発生した場合、それ以前に
通過した最も近いチョイス・ポイントまで計算機環境を
戻さなくてはならない。特にPrologのような非決
定論的な推論処理においては、このようなチョイスポイ
ントとバックトラックとが頻繁に繰返される。
このように、電子計算機の分野ではレジスタ内容の退避
・復活が頻繁に繰返され、その度にレジスタファイルと
メモリとの間でデータ転送を行なわなくてはならない。
・復活が頻繁に繰返され、その度にレジスタファイルと
メモリとの間でデータ転送を行なわなくてはならない。
したがって、このデータ転送に必要なCPUの実行時間
によってCPUの実行効率が低下するという問題があっ
た。
によってCPUの実行効率が低下するという問題があっ
た。
そこで、このようなCPUのオーバーヘッドを削減する
方式としてレジスタ・ウィンドウ方式も提案されている
。この方式では、タスクスイッチやサブルーチンコール
などが発生すると、レジスタのポインタを変更して使用
すべきレジスタ群を切換える。これにより、レジスタの
内容をメモリに退避・復活することなく、仮想的なデー
タの退避・復活を行なうことができる。
方式としてレジスタ・ウィンドウ方式も提案されている
。この方式では、タスクスイッチやサブルーチンコール
などが発生すると、レジスタのポインタを変更して使用
すべきレジスタ群を切換える。これにより、レジスタの
内容をメモリに退避・復活することなく、仮想的なデー
タの退避・復活を行なうことができる。
しかしながら、この方式においても、全てのウィンドウ
を使い果たすと、使用済のウィンドウの内容をメモリに
退避した後、そのウィンドウを使用しなければならない
。このため、この退避のためにレジスタとメモリとの間
でデータ転送を行なう必要があり、CPUの処理効率が
低下するという問題があった。
を使い果たすと、使用済のウィンドウの内容をメモリに
退避した後、そのウィンドウを使用しなければならない
。このため、この退避のためにレジスタとメモリとの間
でデータ転送を行なう必要があり、CPUの処理効率が
低下するという問題があった。
(発明が解決しようとする課8)
このように、従来のレジスタ退避・復活方式では、タス
クスイッチ、サブルーチンコール、チョイスポイントな
どが発生する毎にレジスタの内容をメモリに退避・復活
するため、CPUの実行効率が低下するという問題があ
った。
クスイッチ、サブルーチンコール、チョイスポイントな
どが発生する毎にレジスタの内容をメモリに退避・復活
するため、CPUの実行効率が低下するという問題があ
った。
本発明は、上記問題点を解決すべくなされたもので、C
PUの負担を増すことなくデータの退避・復活が行なえ
、これによりCPUの実行効率の向上が図れるレジスタ
退避復活装置を提供することを目的とする。
PUの負担を増すことなくデータの退避・復活が行なえ
、これによりCPUの実行効率の向上が図れるレジスタ
退避復活装置を提供することを目的とする。
[発明の構成]
(課題を解決するための手段)
本発明は、電子計算機の中央処理装置に設けられたレジ
スタファイルと、前記電子計算機に設けられたメインメ
モリとの間に、両者の間でデータの受渡しを行なう高速
メモリからなるレジスタ用キャッシュメモリを介挿し、
前記レジスタファイル中の使用レジスタ群を切換えてレ
ジスタ内容の退避・復活を行ないつつ、以下の手段を中
央処理装置とは独立に作動させるようにしたものである
。この手段は、前記レジスタ内容の退避に伴って次に使
用される可能性のあるレジスタ群の内容をキャッシュメ
モリに退避させ、レジスタ内容の復活に伴って次に使用
される可能性のあるレジスタ群にキャッシュメモリから
対応するデータを復活させるものとなっている。
スタファイルと、前記電子計算機に設けられたメインメ
モリとの間に、両者の間でデータの受渡しを行なう高速
メモリからなるレジスタ用キャッシュメモリを介挿し、
前記レジスタファイル中の使用レジスタ群を切換えてレ
ジスタ内容の退避・復活を行ないつつ、以下の手段を中
央処理装置とは独立に作動させるようにしたものである
。この手段は、前記レジスタ内容の退避に伴って次に使
用される可能性のあるレジスタ群の内容をキャッシュメ
モリに退避させ、レジスタ内容の復活に伴って次に使用
される可能性のあるレジスタ群にキャッシュメモリから
対応するデータを復活させるものとなっている。
(作用)
本発明によれば、基本的には使用レジスタ群の切換えと
いうレジスタ・ウィンドウ方式のレジスタ退避・復活を
行なうので、レジスタファイルが全て満杯になるまでは
レジスタ内容のメモリへの転送が不要となる。一方、中
央処理装置とは独立に作動する手段は、レジスタ内容の
退避に伴って次に使用される可能性のあるレジスタ群の
内容をキャッシュメモリに退避させ、レジスタ内容の復
活に伴って次に使用される可能性のあるレジスタ群にキ
ャッシュメモリから対応するデータを復活させ、次のレ
ジスタ群の切換えを準備する。このときのレジスタファ
イルとキャッシュメモリとの転送は、キャッシュメモリ
が高速メモリであることから例えば1サイクルで行なう
ことができ、また中央処理装置とは独立に行なわれるた
め中央処理装置になんら負担をかけるものではない。よ
って、中央処理装置の実行効率は十分に高められる。
いうレジスタ・ウィンドウ方式のレジスタ退避・復活を
行なうので、レジスタファイルが全て満杯になるまでは
レジスタ内容のメモリへの転送が不要となる。一方、中
央処理装置とは独立に作動する手段は、レジスタ内容の
退避に伴って次に使用される可能性のあるレジスタ群の
内容をキャッシュメモリに退避させ、レジスタ内容の復
活に伴って次に使用される可能性のあるレジスタ群にキ
ャッシュメモリから対応するデータを復活させ、次のレ
ジスタ群の切換えを準備する。このときのレジスタファ
イルとキャッシュメモリとの転送は、キャッシュメモリ
が高速メモリであることから例えば1サイクルで行なう
ことができ、また中央処理装置とは独立に行なわれるた
め中央処理装置になんら負担をかけるものではない。よ
って、中央処理装置の実行効率は十分に高められる。
(実施例)
以下、図面を参照しながら本発明の一実施例について説
明する。
明する。
第1図は本発明の一実施例に係るレジスタ退避復活装置
を含むマルチタスク処理が可能な計算機システムの構成
を示すブロック図である。
を含むマルチタスク処理が可能な計算機システムの構成
を示すブロック図である。
CPUIにはレジスタファイル2が備えられている。こ
のレジスタファイル2とメインメモリ3との間にはレジ
スタ用キャッシュメモリ4が介挿されている。このキャ
ッシュメモリ4とレジスタファイル2及びメインメモリ
3との間のデータの転送は制御部5によって制御される
。なお、このシステムには、この他にもCPUIとメイ
ンメモリ3との間にデータ用キャッシュメモリ、命令コ
ード用キャッシュメモリ、データバスなどが適宜設けら
れるが、ここではこれらの図示を省略している。
のレジスタファイル2とメインメモリ3との間にはレジ
スタ用キャッシュメモリ4が介挿されている。このキャ
ッシュメモリ4とレジスタファイル2及びメインメモリ
3との間のデータの転送は制御部5によって制御される
。なお、このシステムには、この他にもCPUIとメイ
ンメモリ3との間にデータ用キャッシュメモリ、命令コ
ード用キャッシュメモリ、データバスなどが適宜設けら
れるが、ここではこれらの図示を省略している。
第2図にレジスタファイル2の構成例を示す。
このレジスタファイル2は、4つのウィンドA〜Dと4
つのブロック1〜4とを2次元的に構成したものである
。1つのタスクには1本のレジスタウィンドが割当てら
れる。各レジスタウィンドA〜Dは、4つのブロック1
〜4からなり、1つのブロックは8つのレジスタから構
成されている。
つのブロック1〜4とを2次元的に構成したものである
。1つのタスクには1本のレジスタウィンドが割当てら
れる。各レジスタウィンドA〜Dは、4つのブロック1
〜4からなり、1つのブロックは8つのレジスタから構
成されている。
−度に使用できるのは1つのウィンド内の互いに隣接す
る2つのブロック(合計16個のレジスタ)である。し
たがって、1つのタスクに対し、例えばウィンドAが割
当てられたとすると、始めはウィンドAのブロック1,
2が使用され、そのタスク中でサブルーチンコールが発
生すると、使用ブロックがブロック2.3に切替わり、
更にサブルーチンコールが複数回発生すると使用ブロッ
クがブロック3,4、ブロック4,1、ブロック1゜2
、・・・と順次切替わる。またサブルーチンリターンが
発生すれば、ブロック4,1、ブロック3゜4、ブロッ
ク2,3、・・・と逆向きに使用ブロックが切替わる。
る2つのブロック(合計16個のレジスタ)である。し
たがって、1つのタスクに対し、例えばウィンドAが割
当てられたとすると、始めはウィンドAのブロック1,
2が使用され、そのタスク中でサブルーチンコールが発
生すると、使用ブロックがブロック2.3に切替わり、
更にサブルーチンコールが複数回発生すると使用ブロッ
クがブロック3,4、ブロック4,1、ブロック1゜2
、・・・と順次切替わる。またサブルーチンリターンが
発生すれば、ブロック4,1、ブロック3゜4、ブロッ
ク2,3、・・・と逆向きに使用ブロックが切替わる。
タスクスイッチが起こると、次のタスクに割当てられた
レジスタウィンドが使用される。どのレジスタウィンド
を使用するかはオペレーティング会システムによって決
定される。
レジスタウィンドが使用される。どのレジスタウィンド
を使用するかはオペレーティング会システムによって決
定される。
レジスタ用キャッシュメモリ4は、制御部5の指示によ
ってレジスタファイル2の1ブロック分のデータを1サ
イクルの間に退避・復活する高速メモリである。また、
このキャッシュメモリ4は、制御部5の指示によってタ
スクのウィンド1本をメインメモリ3に退避し、必要な
場合には再度メインメモリ3から復活させる。このレジ
スタ用キャッシュメモリ4は、例えば第3図に示すよう
な構成となっている。このキャッシュメモリ4は、保存
し得るレジスタウィンド数が16で、各ウィンドについ
てn個のブロックを格納し得るものとなっている。この
ブロック数みは、多数のサブルチンコールに対応し得る
ように十分に大きいことが望ましい。各ブロックは、レ
ジスタファイル2の各ブロックの内容をそっくり格納で
きる容量(例えばレジスタ8個分の容ff1)を備えて
いる。
ってレジスタファイル2の1ブロック分のデータを1サ
イクルの間に退避・復活する高速メモリである。また、
このキャッシュメモリ4は、制御部5の指示によってタ
スクのウィンド1本をメインメモリ3に退避し、必要な
場合には再度メインメモリ3から復活させる。このレジ
スタ用キャッシュメモリ4は、例えば第3図に示すよう
な構成となっている。このキャッシュメモリ4は、保存
し得るレジスタウィンド数が16で、各ウィンドについ
てn個のブロックを格納し得るものとなっている。この
ブロック数みは、多数のサブルチンコールに対応し得る
ように十分に大きいことが望ましい。各ブロックは、レ
ジスタファイル2の各ブロックの内容をそっくり格納で
きる容量(例えばレジスタ8個分の容ff1)を備えて
いる。
制御部5は、レジスタファイル2とキャッシュメモリ4
との間、キャッシュメモリ4とメインメモリ3との間の
データの流れと、レジスタファイル2内及びキャッシュ
メモリ4内のデータの管理を行なう。この制御部5はC
PU5からサブルーチンコール拳リターン、タスクスイ
ッチなどの情報を受取るがCPUIとは独立に動作をす
る。
との間、キャッシュメモリ4とメインメモリ3との間の
データの流れと、レジスタファイル2内及びキャッシュ
メモリ4内のデータの管理を行なう。この制御部5はC
PU5からサブルーチンコール拳リターン、タスクスイ
ッチなどの情報を受取るがCPUIとは独立に動作をす
る。
次にこのように構成されたシステムにおいて、1つのタ
スク内でサブルーチンコール及びリターンが発生した場
合の制御部5の動作について説明する。
スク内でサブルーチンコール及びリターンが発生した場
合の制御部5の動作について説明する。
第4図はこのデータ転送制御のための流れを示すための
図である。まずサブルーチンの深さを示す変数iと、キ
ャッシュメモリ4への退避ブロック数を示す変数Pとが
0に設定される(Sl)。
図である。まずサブルーチンの深さを示す変数iと、キ
ャッシュメモリ4への退避ブロック数を示す変数Pとが
0に設定される(Sl)。
この状態で、例えば第5図■に示すようにレジスタファ
イル2におけるウィンドAのブロック1゜2が使用され
ているとする。ここでサブルーチンコールが発生すると
(S2)、iが歩進して1になり(S3)、第5図■に
示すように使用ブロックがブロック2.3に切替わり(
S4) 、サブルーチンaが実行される。このとき、メ
インルーチンとサブルーチンaとの間で共有するブロッ
ク2のレジスタ群によってルーチン間のデータの受渡し
を行なうことができる。また、ブロック1にはメインル
ーチンでのレジスタ値が残っている。更にサブルーチン
コールが発生すると(S2)、i−2となり(S3)、
第5図■に示すように使用ブロックがブロック3.4に
切替わる(S4)。
イル2におけるウィンドAのブロック1゜2が使用され
ているとする。ここでサブルーチンコールが発生すると
(S2)、iが歩進して1になり(S3)、第5図■に
示すように使用ブロックがブロック2.3に切替わり(
S4) 、サブルーチンaが実行される。このとき、メ
インルーチンとサブルーチンaとの間で共有するブロッ
ク2のレジスタ群によってルーチン間のデータの受渡し
を行なうことができる。また、ブロック1にはメインル
ーチンでのレジスタ値が残っている。更にサブルーチン
コールが発生すると(S2)、i−2となり(S3)、
第5図■に示すように使用ブロックがブロック3.4に
切替わる(S4)。
このとき、メインルーチンのレジスタ内容が保持されて
いるブロック1は、次のサブルーチンコールによって使
用される可能性のあるブロックとなる。このため、その
レジスタ内容を事前に退避しておく必要がある。制御部
5は、このようなレジスタ内容の退避の必要性をlがN
−2(この例では2)以上であるかどうかを比較するこ
とによって調べる(S5)。もし退避の必要性有りと判
断されたのであれば、第5図■に示すようにブロック1
の内容をキャッシュメモリ4に退避させ(S6)、Pを
更新してP−1とする(S7)。
いるブロック1は、次のサブルーチンコールによって使
用される可能性のあるブロックとなる。このため、その
レジスタ内容を事前に退避しておく必要がある。制御部
5は、このようなレジスタ内容の退避の必要性をlがN
−2(この例では2)以上であるかどうかを比較するこ
とによって調べる(S5)。もし退避の必要性有りと判
断されたのであれば、第5図■に示すようにブロック1
の内容をキャッシュメモリ4に退避させ(S6)、Pを
更新してP−1とする(S7)。
これにより1ブロック分が退避されたことが記憶される
。更にサブルーチンコールが起こると、第5図■に示す
ように、使用ブロックはブロック4と退避済のブロック
1とに切替わり、次に使用される可能性のあるブロック
2の内容が退避されることになる。このときi−3,P
=2となる。
。更にサブルーチンコールが起こると、第5図■に示す
ように、使用ブロックはブロック4と退避済のブロック
1とに切替わり、次に使用される可能性のあるブロック
2の内容が退避されることになる。このときi−3,P
=2となる。
続いて、サブルーチンリターンが発生した場合には(S
8)、i−2となって(S9)、第5図■に示すように
使用ブロックがブロック3,4に切替わる(S 10)
。このときP−2であるから(S11.)、キャッシュ
メモリ4内にまだレジスタファイル2に復活していない
データが存在している。この場合、ブロック2が次のサ
ブルーチンリターンによって使用される可能性のあるブ
ロックとなるので、このブロック2の内容を第5図■の
ようにキャッシュメモリ4からレジスタファイル2に復
活する(S 12)。そして、復活したことによりレジ
スタへの退避数Pを1つ減らしp−1とする(513)
。なお、次のサブルーチンコールによって使用される可
能性のあるブロック1については、まだキャッシュメモ
リ4内へ退避しておらず、しかもその内容は変化してい
ないので上記のような復活を行なう必要はない。同じく
サブルーチンリターンが続けて発生すると、第5図■の
ようにブロック3と復活詩のブロック2とが使用ブロッ
クとなるので、このときにはブロック1がキャッシュメ
モリ4からレジスタファイル2に復活されることになる
。
8)、i−2となって(S9)、第5図■に示すように
使用ブロックがブロック3,4に切替わる(S 10)
。このときP−2であるから(S11.)、キャッシュ
メモリ4内にまだレジスタファイル2に復活していない
データが存在している。この場合、ブロック2が次のサ
ブルーチンリターンによって使用される可能性のあるブ
ロックとなるので、このブロック2の内容を第5図■の
ようにキャッシュメモリ4からレジスタファイル2に復
活する(S 12)。そして、復活したことによりレジ
スタへの退避数Pを1つ減らしp−1とする(513)
。なお、次のサブルーチンコールによって使用される可
能性のあるブロック1については、まだキャッシュメモ
リ4内へ退避しておらず、しかもその内容は変化してい
ないので上記のような復活を行なう必要はない。同じく
サブルーチンリターンが続けて発生すると、第5図■の
ようにブロック3と復活詩のブロック2とが使用ブロッ
クとなるので、このときにはブロック1がキャッシュメ
モリ4からレジスタファイル2に復活されることになる
。
次に、タスクスイッチが起こった場合の制御部5の動作
について説明する。
について説明する。
いま、ウィンドAを使用している最中に、タスクスイッ
チが起こったとすると、現在使用していないウィンドB
、C,Dの中から次のタスクのレジスタウィンドを捜し
、その番号のウィンドに切換えてそのウィンドを使用す
る。この時、制御部5は前述した変数iとPとにWづい
て、ウィンドAのうちの現在使用中の2つのブロックと
、まだ退避をしていないブロックとを全てキャッシュメ
モリに退避させる。そして、必要があればオペレティン
グ・システムから情報を受取り、この次にタスクスイッ
チが起きたときに動く可能性の高いタスクのレジスタウ
ィンドのデータを他の各ウィンドに復活しておく。第6
図はウィンドデータの退避復活の様子を示した図である
。同図(a)において現在使用中のウィンドAに対し、
次に使用される可能性の高いウィンドデータがキャシュ
メモリ4のウィンド3,4.16に格納されているので
あれば、このデータをそれぞれウィンドB。
チが起こったとすると、現在使用していないウィンドB
、C,Dの中から次のタスクのレジスタウィンドを捜し
、その番号のウィンドに切換えてそのウィンドを使用す
る。この時、制御部5は前述した変数iとPとにWづい
て、ウィンドAのうちの現在使用中の2つのブロックと
、まだ退避をしていないブロックとを全てキャッシュメ
モリに退避させる。そして、必要があればオペレティン
グ・システムから情報を受取り、この次にタスクスイッ
チが起きたときに動く可能性の高いタスクのレジスタウ
ィンドのデータを他の各ウィンドに復活しておく。第6
図はウィンドデータの退避復活の様子を示した図である
。同図(a)において現在使用中のウィンドAに対し、
次に使用される可能性の高いウィンドデータがキャシュ
メモリ4のウィンド3,4.16に格納されているので
あれば、このデータをそれぞれウィンドB。
C,Dに復活させておく。そして、ウィンドの切替えが
あったらウィンドAのデータを例えばウィンド1に格納
する。このとき、レジスタファイル2から退避されるデ
ータは、キャッシュメモリ4の各ウィンドのブロックに
スタックのように格納される。続いて同図(b)に示す
ように、タスクスイッチによって使用ウィンドがウィン
ドBに切替わると、ウィンドA、C,Dは次に使用され
る可能性の高いウィンドデータに書替えられる。このよ
うにしてタスクの切換えに対処できる。
あったらウィンドAのデータを例えばウィンド1に格納
する。このとき、レジスタファイル2から退避されるデ
ータは、キャッシュメモリ4の各ウィンドのブロックに
スタックのように格納される。続いて同図(b)に示す
ように、タスクスイッチによって使用ウィンドがウィン
ドBに切替わると、ウィンドA、C,Dは次に使用され
る可能性の高いウィンドデータに書替えられる。このよ
うにしてタスクの切換えに対処できる。
ところで、キャッシュメモリ4には、現在勤いているタ
スクのレジスタウィンドと次に動く可能性の高いタスク
のレジスタ・ウィンドのデータが格納されていれば良い
ので、制御部5は、オペレーティング・システムからの
情報をもとに不必要なレジスタウィンドのデータをメイ
ンメモリ3に退避させ、次に使用される可能性の高いデ
ータをメインメモリ3からキャッシュメモリ4に復活さ
せる。この場合のキャッシュメモリ4とメインメモリ3
との間のデータ伝送は通常のメモリアクセスの手順で行
なえば良い。
スクのレジスタウィンドと次に動く可能性の高いタスク
のレジスタ・ウィンドのデータが格納されていれば良い
ので、制御部5は、オペレーティング・システムからの
情報をもとに不必要なレジスタウィンドのデータをメイ
ンメモリ3に退避させ、次に使用される可能性の高いデ
ータをメインメモリ3からキャッシュメモリ4に復活さ
せる。この場合のキャッシュメモリ4とメインメモリ3
との間のデータ伝送は通常のメモリアクセスの手順で行
なえば良い。
なお、以上はサブルーチンコールやタスクスイッチが起
こった場合の例であるが、Prologにおけるチョイ
スポイントやバックトラックが発生する場合にも同様の
手段を適用可能であることはいうまでもない。また、上
記実施例では、ブロックとウィンドの双方についてレジ
スタファイルとキャッシュメモリとの間の退避・復活を
行なったが、ブロックとウィンドのうちいずれか一方に
ついてのみ退避・復活を行なうようにしても本発明の効
果が得れることは明らかである。
こった場合の例であるが、Prologにおけるチョイ
スポイントやバックトラックが発生する場合にも同様の
手段を適用可能であることはいうまでもない。また、上
記実施例では、ブロックとウィンドの双方についてレジ
スタファイルとキャッシュメモリとの間の退避・復活を
行なったが、ブロックとウィンドのうちいずれか一方に
ついてのみ退避・復活を行なうようにしても本発明の効
果が得れることは明らかである。
[発明の効果]
以上のように本発明によれば、レジスタウィンド方式を
基本としたレジスタ退避復活方式において、レジスタ退
避・復活に伴って次に使用される口■能性のあるレジス
タ内容のキャッシュメモリへの退避及びキャッシュメモ
リからの復活を中央処理装置とは独立に高速で行なうよ
うにしているので、中央処理装置がレジスタの退避・復
活に時間を取られることがない。このため、特にマルチ
タスク処理やProlog等でレジスタ退避・復活が頻
繁に行われるように場合には、中央処理装置の実行効率
を大幅に高めることが可能となる。
基本としたレジスタ退避復活方式において、レジスタ退
避・復活に伴って次に使用される口■能性のあるレジス
タ内容のキャッシュメモリへの退避及びキャッシュメモ
リからの復活を中央処理装置とは独立に高速で行なうよ
うにしているので、中央処理装置がレジスタの退避・復
活に時間を取られることがない。このため、特にマルチ
タスク処理やProlog等でレジスタ退避・復活が頻
繁に行われるように場合には、中央処理装置の実行効率
を大幅に高めることが可能となる。
第1図は本発明の一実施例に係るレジスタ退避復活装置
のブロック図、第2図は同装置におけるレジスタファイ
ルの構成を示す図、第3図は同装置におけるキャッシュ
メモリの構成を示す図、第4図は同装置における制御部
の処理手順を示す流れ図、第5図は同装置におけるブロ
ック切換えの様子を示す図、第6図は同装置におけるウ
ィンド切換えの様子を示す図である。 1・・・CPU、2・・・レジスタウィンド、3・・・
メインメモリ、4・・・レジスタ用キャッシュメモリ、
5・・・制御部。 出願人代理人 弁理士 鈴江武彦 第1図 第2図 第4図 第3図
のブロック図、第2図は同装置におけるレジスタファイ
ルの構成を示す図、第3図は同装置におけるキャッシュ
メモリの構成を示す図、第4図は同装置における制御部
の処理手順を示す流れ図、第5図は同装置におけるブロ
ック切換えの様子を示す図、第6図は同装置におけるウ
ィンド切換えの様子を示す図である。 1・・・CPU、2・・・レジスタウィンド、3・・・
メインメモリ、4・・・レジスタ用キャッシュメモリ、
5・・・制御部。 出願人代理人 弁理士 鈴江武彦 第1図 第2図 第4図 第3図
Claims (1)
- 【特許請求の範囲】 電子計算機の中央処理装置に設けられたレジスタファイ
ルと、 前記電子計算機に設けられたメインメモリと、前記レジ
スタファイルと前記メインメモリとの間に介挿され、両
者の間でデータの受渡しを行なう高速メモリからなるレ
ジスタ用キャッシュメモリと、 レジスタ内容の退避、復活のため前記レジスタファイル
中の使用レジスタ群を切換える手段と、前記中央処理装
置とは独立に動作をし、前記レジスタ内容の退避に伴っ
て次に使用される可能性のあるレジスタ群の内容をキャ
ッシュメモリに退避させ、前記レジスタ内容の復活に伴
って次に使用される可能性のあるレジスタ群にキャッシ
ュメモリから対応するデータを復活させる手段とを具備
したことを特徴とするレジスタ退避復活装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30245688A JPH02148223A (ja) | 1988-11-30 | 1988-11-30 | レジスタ退避復活装置 |
EP19890312427 EP0373790A3 (en) | 1988-11-30 | 1989-11-29 | Data processing apparatus for saving and restoring |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30245688A JPH02148223A (ja) | 1988-11-30 | 1988-11-30 | レジスタ退避復活装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02148223A true JPH02148223A (ja) | 1990-06-07 |
Family
ID=17909159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30245688A Pending JPH02148223A (ja) | 1988-11-30 | 1988-11-30 | レジスタ退避復活装置 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0373790A3 (ja) |
JP (1) | JPH02148223A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007087108A (ja) * | 2005-09-22 | 2007-04-05 | Fujitsu Ltd | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
JP2008234075A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | 演算処理装置 |
JP2009512941A (ja) * | 2005-10-20 | 2009-03-26 | クゥアルコム・インコーポレイテッド | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
US7600101B2 (en) | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6408325B1 (en) | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
US6553487B1 (en) * | 2000-01-07 | 2003-04-22 | Motorola, Inc. | Device and method for performing high-speed low overhead context switch |
US8042116B2 (en) | 2004-09-17 | 2011-10-18 | Panasonic Corporation | Task switching based on the execution control information held in register groups |
US9286068B2 (en) * | 2012-10-31 | 2016-03-15 | International Business Machines Corporation | Efficient usage of a multi-level register file utilizing a register file bypass |
US20140122842A1 (en) * | 2012-10-31 | 2014-05-01 | International Business Machines Corporation | Efficient usage of a register file mapper mapping structure |
US10275251B2 (en) * | 2012-10-31 | 2019-04-30 | International Business Machines Corporation | Processor for avoiding reduced performance using instruction metadata to determine not to maintain a mapping of a logical register to a physical register in a first level register file |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6054049A (ja) * | 1983-09-02 | 1985-03-28 | Hitachi Ltd | デ−タ処理装置におけるサブル−チンリンク制御方式 |
JPS6151243A (ja) * | 1984-08-20 | 1986-03-13 | Toshiba Corp | レジスタ式演算処理装置 |
JPS6352240A (ja) * | 1986-08-22 | 1988-03-05 | Hitachi Ltd | デ−タ処理装置 |
-
1988
- 1988-11-30 JP JP30245688A patent/JPH02148223A/ja active Pending
-
1989
- 1989-11-29 EP EP19890312427 patent/EP0373790A3/en not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600101B2 (en) | 2005-01-13 | 2009-10-06 | Hewlett-Packard Development Company, L.P. | Multithreaded hardware systems and methods |
JP2007087108A (ja) * | 2005-09-22 | 2007-04-05 | Fujitsu Ltd | 演算処理装置,情報処理装置,及びレジスタファイルの制御方法 |
JP2009512941A (ja) * | 2005-10-20 | 2009-03-26 | クゥアルコム・インコーポレイテッド | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
JP2012234556A (ja) * | 2005-10-20 | 2012-11-29 | Qualcomm Inc | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
JP2014130606A (ja) * | 2005-10-20 | 2014-07-10 | Qualcomm Incorporated | スタックド・レジスタ・ファイルのレジスタ・セーブ・エンジンのためのバッキング記憶装置バッファ |
JP2008234075A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | 演算処理装置 |
Also Published As
Publication number | Publication date |
---|---|
EP0373790A3 (en) | 1992-06-03 |
EP0373790A2 (en) | 1990-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970008523B1 (ko) | 프로세서 | |
JPH0353328A (ja) | レジスタ退避回復方法ならびに処理装置 | |
KR950009453A (ko) | 컴퓨터 프로세싱 시스템 및 인스트럭션 실행방법 | |
KR20010070469A (ko) | 고속의 낮은 오버헤드 콘텍스트 스위치를 실행하는디바이스 및 방법 | |
JPH02148223A (ja) | レジスタ退避復活装置 | |
CN100440153C (zh) | 处理器 | |
EP0614139A2 (en) | External procedure call for distributed processing environment | |
US6820153B2 (en) | Interrupt processing and memory management method in an operation processing device and a device using the same | |
JP2001249808A (ja) | 情報処理装置 | |
JPS6159539A (ja) | サブプロセツサのレジスタ退避/復帰方式 | |
JPH025104A (ja) | 演算処理装置 | |
JPH03182945A (ja) | 主記憶内データ転送方式 | |
JPH02163834A (ja) | マルチ・タスク処理方式 | |
JPH0223439A (ja) | データ処理装置 | |
JPH0333954A (ja) | 情報処理装置 | |
JPS6222149A (ja) | プロセス切り換え方式 | |
KR19990026795A (ko) | 마이크로프로세서 | |
JPS61109145A (ja) | メモリアドレス算出方式 | |
JPH0298744A (ja) | 割込み処理方式 | |
JPS626329A (ja) | デ−タ転送回路 | |
JPH0546410A (ja) | タスク切り換え制御システム | |
JPS6394339A (ja) | 仮想計算機システム | |
JPH0448333A (ja) | ロールバック後の自動制御移行方式 | |
JPH04155532A (ja) | タスク切替方式 | |
JPH06103065A (ja) | 命令プリフェッチ装置 |