JPH064305A - プロセッサのレジスタ入替え判別回路 - Google Patents

プロセッサのレジスタ入替え判別回路

Info

Publication number
JPH064305A
JPH064305A JP18750192A JP18750192A JPH064305A JP H064305 A JPH064305 A JP H064305A JP 18750192 A JP18750192 A JP 18750192A JP 18750192 A JP18750192 A JP 18750192A JP H064305 A JPH064305 A JP H064305A
Authority
JP
Japan
Prior art keywords
register
signal
detection circuit
bit
circuit
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
JP18750192A
Other languages
English (en)
Inventor
Hisao Harigai
尚夫 針谷
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP18750192A priority Critical patent/JPH064305A/ja
Publication of JPH064305A publication Critical patent/JPH064305A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 プロセッサにおけるタスク切換えを必要最小
限の時間で行うようにしたレジスタ入替え判別回路を得
る。 【構成】 コンテキスト入替えのバス・サイクルを開始
する際に、レジスタR0〜R31が使用されたことを各
レジスタ毎に記憶するレジスタ111の内容を先行1検
出回路116に入力し、コンテキスト入替えバス・サイ
クル開始タイミング信号118により制御されてLSB
側から“1”を保持しているビット位置を検索し、コン
テキスト入替えルーチンによりそのビット位置に対応す
るレジスタについて外部メモリ102への対比・復帰を
行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプロセッサにおけるタス
ク切換えに関し、特に情報の授受(コンテキスト入替
え)を迅速化したレジスタ入替え判別回路に関する。
【0002】
【従来の技術】一般にプロセッサは32本のユーザ・レ
ジスタを有し、最小2クロックを要するバス・サイクル
によりプロセッサ外部とのコンテキスト入替えを行うも
のとする。このプロセッサが複数のタスクを多重に処理
する際のタスク切換えは、あるタスクがIO処理を要求
した場合、割込みによる場合などがある。例えば、プロ
セッサが処理しているタスク1に対してプロセッサ外部
から割込みが通知され、プロセッサがこの割込みを受付
けてタスクを切換えるとき、プロセッサは従来10図に
示すフローにしたがってユーザ・レジスタと外部メモリ
との間でコンテキスト入替えを行っていた。
【0003】即ち、割込み受け付け直前に処理されてい
たタスク1が使用していた32本のユーザ・レジスタの
内容を、外部メモリにタスク毎に用意されたタスク1用
の退避領域へ全て退避する。各退避領域はユーザ・レジ
スタ32本分の情報を格納する領域が用意されている。
割込みにより新たに処理が開始されるタスク2が、前回
のタスク2の処理がタスク切換えにより中断するまで使
用していたユーザ・レジスタの内容を継続して使用する
ために、外部メモリ内のタスク2用の退避領域に退避さ
れていたユーザ・レジスタ32本分の情報を、全てプロ
セッサ内のユーザ・レジスタへ取込む。このコンテキス
ト入替えのために要するクロック数は、タスク1のユー
ザ・レジスタ群の内容の退避のために32回のバス・サ
イクル、タスク2のユーザ・レジスタ群の内容の取込み
のために32回のバス・サイクルの合計64回のバス・サ
イクル、 128CLKである。
【0004】図10に示すように、プロセッサが割込み
を受付けてから割込みハンドラ固有の処理のための命令
が実行されるまでの間には、ブログラム・カウンタ(P
C)、プログラム状態ワード(PSW)のスタック・プ
ッシュ、コンテキスト入替え、割込みハンドラの先頭ア
ドレスをPCに設定して外部メモリからの命令フェッチ
開始という一連の処理があり、この一連の処理をタスク
切換え処理と呼ぶ。このタスク切換え処理に要する時間
は、割込みハンドラ固有の処理にとってはオーバーヘッ
ドとして捉えられ、例えば割込みについていえばこの時
間が割込み応答性に直接反映される。
【0005】
【発明が解決しようとする課題】以上説明したように、
従来のコンテキスト入替えは、そのタスクで使用してい
るレジスタと使用していないレジスタを区別せず、全て
のユーザ・レジスタを外部メモリへ退避するので、タス
ク切換えに多大な時間(クロック数)を要するという問
題がある。本発明の目的は、必要最小限の時間でタスク
切換えを行うことを可能にしたプロセッサのレジスタ入
替え判別回路を提供することにある。
【0006】
【課題を解決するための手段】本発明は、制御回路は制
御記憶回路から取り出される制御情報と先行1検出回路
からのビット位置情報とオール0情報とを入力し、内部
データ・バスからレジスタへの読出しまたは書込み信号
と、外部バス・インターフェース部に対して特定のバス
・サイクル開始タイミングを制御する制御信号とを生成
する。また、記憶手段はレジスタ数と同数のビット数を
有し、レジスタの読出しまたは書込み信号を入力して個
々のレジスタへのアクセスがあった時に対応するビット
に“1”を記憶する。先行1検出回路は記憶手段に記憶
されているデータを入力して特定のバス・サイクル開始
タイミングを制御する制御信号により動作を制御され、
制御記憶回路内に保持されているコンテキスト入替え処
理ルーチンが先行1検出回路の出力情報によりプロセッ
サ外部への退避と復帰の対象とするレジスタを選択す
る。
【0007】
【実施例】次に、本発明について図面を参照して説明す
る。図1は本発明の一実施例のブロック構成図である。
同図において、プロセッサ101は2相のクロックCL
K1,CLK2に基づいて動作する。このプロセッサ1
01には、外部メモリ102と、プロセッサ101と外
部メモリ102を含むシステムのバス103と、プロセ
ッサ101の内部データ・バス104と、プロセッサ1
01の32個のレジスタR0〜R31と、プロセッサ1
01の制御記憶回路105と、制御回路106と、論理
和ゲート110−0〜110−31と、レジスタ111
と、外部バス・インターフェース114と、先行1検出
回路116とを備えている。前記制御回路106は、信
号路107を介して制御記憶回路105から制御情報を
入力し、かつ先行1検出回路116からの出力信号11
9,120を入力する。一方、制御回路106からは前
記レジスタR0〜R31を制御する信号108−0〜1
08−31及び109−0〜31と、レジスタ111を
制御する信号112,113と、外部バス・インターフ
ェース114を制御する信号115と、先行1検出回路
116を制御する信号117,118とを生成し、出力
する。
【0008】前記信号108−0はレジスタR0の内容
を内部データ・バス104へ読出すことを制御する信
号、以下同様に108−31はレジスタR31の内容を
内部データ・バス104へ読出すことを制御する信号で
ある。また、信号109−0はレジスタR0への内部デ
ータ・バス104からの書込みを制御する信号、以下同
様に108−31はレジスタR31への内部データ・バ
ス104からの書込みを制御する信号である。前記論理
和ゲート110−0は信号108−0と109−0を入
力して論理和をとり、以下同様に論理和ゲート110−
31は信号108−31と109−31の論理和をと
る。
【0009】レジスタ111は32ビット・レジスタで、
内部データ・バス104に接続され、信号110−0〜
110−31を入力する。信号111−0はレジスタ1
11のビット0であり、論理和ゲート110−0の出力
がアクティブになると信号111−0には“1”がセッ
トされる。以下同様に信号111−31はレジスタ11
1のビット31であり、論理和ゲート110−31の出
力がアクティブになると信号111−31には“1”が
セットされる。又、信号111−0はレジスタR0から
内部データ・バス104への読出し、または内部データ
・バス104からレジスタR0への書込みがあった時に
“1”を記憶する。以下同様に信号111−31はレジ
スタR31の読出しまたは書込みを記憶する。前記制御
回路106で生成される信号112はレジスタ111の
内容を内部データ・バス104への読出しを制御する信
号であり、信号113はレジスタ111への内部データ
・バス104からの書込みを制御する信号である。前記
外部バス・インターフェース114はプロセッサ101
の内部データ・バス104と外部バス103とのインタ
ーフェースであり、制御回路106で生成される信号1
15により制御される。
【0010】前記先行1検出回路116は、制御回路1
06で生成された信号117が入力され、この信号11
7によりレジスタ111の内容を先行1検出回路116
へ入力させる。また、同様に制御回路106で生成され
た信号118が入力される。この信号118はコンテキ
スト入替えのための外部メモリ102にアクセスする際
に、1語分のバス・サイクルの開始タイミングにアクテ
ィブになる信号であり、詳細は後述する。この先行1検
出回路116は、信号117により取込んだレジスタ1
11の内容の32ビット・データのビット0からビット31
の方向へ“1”を検索し、最初に“1”を検出したビッ
ト位置を示す5ビットの情報を信号119として出力す
る。次に、信号118がアクティブになると、前回の検
索結果の“1”の位置よりもビット31側にある“1”を
検索して2番目に“1”を検出したビット位置を示す5
ビットの情報を信号119として出力する。以下同様に
信号118がアクティブなる度に、前回“1”を検出し
たビット位置のビット31の方向へ検索して次の“1”の
ビット位置を信号119として出力する。先行1検出回
路116による検索の結果“1”を検出した場合には、
先行1検出回路116から出力される1ビットの信号1
20がインアクティブになり、検索の結果“1”を検出
しなかった場合に信号120はアクティブになる。
【0011】図2は前記先行1検出回路116の内部構
成図である。ここでは、32ビットの入力情報の先行1検
出を行うために、32ビットを8ビットづつ4つの部分に
区切って独立に先行1検出を行った上で、4つの結果を
まとめるという方式を採用している。図2において、2
01は入力8ビット分の先行1検出回路であり、201
−0は信号117のビット7〜ビット0(117−7〜
117−0)、201−1は同じくビット15〜ビット8
(117−15〜117−8)、201−2は同じくビッ
ト23〜ビット16(117−23〜117−16)、201−
3は同じくビット31〜ビット24(117−31〜117−
24)に対応している。この8ビット分の先行1検出回路
201の内部構造については後述する。
【0012】また、202は8ビット分の先行1検出回
路201の出力信号であり、入力された8ビットのなか
のビット0から検索して“1”を検出したビット位置を
3ビットにエンコードしたものである。各信号202−
0,202−1,202−2,202−3はそれぞれ8
ビット分先行1検出回路201−0,201−1,20
1−2,201−3の出力である。BZ0,BZ1,B
Z2,BZ3はそれぞれ8ビット分先行1検出回路20
1−0,201−1,201−2,201−3の出力信
号であり、たとえば信号BZ0は先行1回路201−0
に入力された8ビット全て0であるとき“1”、入力さ
れた8ビットのなかに“1”が1つでも存在する時は
“0”となる。203は8ビット分の先行1検出回路2
01のイネーブル入力信号である。各信号203−0,
203−1,203−2,203−3はそれぞれ先行1
検出回路201−1,201−1,201−2,201
−3のイネーブル入力である。ただし先行1検出回路2
01−0は最下位であるため、信号203−0には常に
“1”を入力する。
【0013】204は論理積ゲートであり、信号BZ0
とBZ1を入力して論理積をとり出力信号203−2を
先行1検出回路201−2へ入力する。信号203−2
が“1”になるのは信号BZ0とBZ1がともに
“1”、つまり先行1検出回路201−0と201−1
に入力された16ビットが全て“0”であった場合であ
る。また、205は論理積ゲートであり、信号BZ0と
BZ1とBZ2を入力して論理積をとり信号203−3
として先行1検出回路201−3へ入力する。信号20
3−3が“1”になるのは信号BZ0とBZ1とBZ2
がすべて“1”、つまり先行1検出回路201−0と2
01−1と201−2に入力された24ビットが全て
“0”であった場合である。206は信号201−0〜
201−3を入力し、選択制御信号208−0〜208
−3に基づいて選択を行うセレクタであり、信号119
のビット2、ビット1、ビット0(119−2,119
−1,119−0)を生成する。207はBZ0とBZ
1とBZ2とBZ4を入力するセレクタ206の制御回
路で、セレクタ206の選択制御信号208−0,20
8−1,208−2,208−3と、119のビット4
とビット3(119−4、119−3)および、120
を生成する。セレクタ制御回路207の内部構成につい
ては後述する。
【0014】図3は先行1検出回路201−2の内部構
成を示す図である。尚、先行1検出回路201−0,2
01−1,201−3も全く同等である。同図におい
て、301はCLK2同期の2入力の8ビットのレジス
タである。信号117により内部バス104のビット23
〜ビット16の8ビットのデータを格納する。また、30
2はCLK1のハイ期間でレジスタ301の出力を入力
して保持するラッチである。303はレジスタ301か
らの8ビットの出力を入力して8ビットのマスク情報を
生成するマスク情報生成回路である。このマスク情報生
成回路303の内部構造を図4に示す。例えば、レジス
タ301に格納されている情報のビット0を301−0
とする。401は301−0と301−1を入力とする
論理和ゲートで出力は303−2である。402は30
1−0と301−1と301−2を入力とする論理和ゲ
ートで出力は303−3である。403は301−0と
301−1と301−2と301−3を入力とする論理
和ゲートで出力は303−4である。404は403の
出力と301−5を入力とする論理和ゲートで出力は3
03−5である。405は403の出力と301−4と
301−5を入力とする論理和ゲートで出力は303−
6である。406は403の出力と301−4と301
−5と301−6を入力とする論理和ゲートで出力は3
03−7である。出力303のビット0(303−0)
は、301の入力に拘らずつねに“0”となっている。
【0015】ここで、マクス情報生成回路303の8ビ
ットの入力の中で“1”となっているビットのビット番
号が最も小さいビットを検出し、そのビット番号の1つ
上位のビットから上の全てのビットが“1”となるマス
ク情報を生成する。たとえば、レジスタ301に格納さ
れている8ビットのデータが 〔1100 0100(2) 〕 (1) であるとする。この(1)のデータが入力されると、3
03−0は常に“0”、301−0が“0”であるため
303−1は“0”、401の2入力(301−0と3
01−1)は共に“0”であるので303−2は“0”
である。301−2が“1”であるため402と403
の出力はともに“1”となり、したがって303−3と
303−4は共に“1”、403が“1”であるため4
04,405,406の出力は全て“1”となり、した
がって303−5,303−6,303−7は全て
“1”となるため、 〔1111 1000(2) 〕 (2) というマスク情報が得られる。つまり入力データ(1)
の中で“1”となっているビットはビット7、ビット
6、ビット2であり、このなかでビット番号が最も小さ
いものはビット2であるので、マスク情報生成回路30
3の出力はビット2の1つ上位のビット3より上の全て
のビットが“1”となるから、(2)のマスク情報が得
られる。マクス情報生成回路303の入力データに対す
る出力データを図5に示す。
【0016】図3に戻り、304は8ビット・レジスタ
301の出力を入力する8−3プライオリティ・エンコ
ーダであり、図6に示す論理に従い、レジスタ301か
らの8ビットのデータのビット0側から優先的に“1”
のビット位置を検索して3ビットにエンコードする。図
3では先行1検出回路201−2の内部構成を示してい
るため、8−3プライオリティ・エンコーダ304の出
力は図2の信号202−2に対応する。305はCLK
1のハイ期間においてマスク情報生成回路303で生成
されたマスク情報を入力して保持するラッチである。3
06はマスク情報生成回路303で生成された8ビット
のマスク情報とラッチ302に保持された8ビットの情
報とのビット毎の論理積をとるマスク回路である。たと
えば、マスク回路306の出力のビット3(306−
3)は303−3と302−3との論理積の結果であ
る。前記(1)のデータがレジスタ301にCLK2同
期で格納されると、その次のCLK1でラッチ305に
はマスク情報(2)が、ラッチ302には(1)のデー
タが格納されて、マスク回路306の出力は(1)と
(2)のビット毎の論理積がとられるため 〔1100 0100(2) 〕・〔1111 1000(2) 〕 =〔1100 0000(2) 〕 (3) となり、CLK2で(3)の情報がレジスタ301に格
納される。
【0017】307はラッチ302に保持されたデータ
の全てのビットが0であることを検出するオール0検出
回路である。図3が201−2の内部構成を示している
ため、オール0検出回路307の出力は図2のBZ2に
対応する。308はコンテキスト入替えバス・サイクル
開始タイミング信号118とイネーブル信号203−2
を入力する論理積ゲートで、この論理積ゲート308の
出力がアクティブの時レジスタ301にはマスク回路3
06の出力が保持される。論理積ゲート308の出力が
アクティブになるのはコンテキスト入替えバス・サイク
ル開始タイミング信号118が“1”でかつ203−2
が“1”のときである。203−2が“1”となるのは
BZ0とBZ1がともに“1”のとき、つまり先行1検
出回路201−1と201−0に入力された16ビットが
全て“0”のときである。
【0018】前記セレクタ制御回路207を図7と図8
を参照して説明する。セレクタ制御回路207には信号
BZ0〜BZ3が入力され、図8に示すようにセレクタ
206を制御する選択信号208−0〜208−3を生
成する。たとえば、信号BZ0が“0”のとき、つまり
内部データ・バス104から8ビット先行1検出回路2
01−0に書込まれた8ビットのデータが〔00000
000(2) 〕ではない時には、セレクタ206が先行1
検出回路201−0において3ビットにエンコードされ
た信号202−0を選択して信号119−2〜119−
0の3ビット信号として出力するように、4本の選択信
号208−0〜208−3のなかで208−0のみをア
クティブにする。同時にセレクタ制御回路207は信号
119−4〜119〜3に〔00(2) 〕を出力する。ま
たBZ0〜BZ3が全て“1”、つまり先行1検出回路
201−3〜201−0に格納されていた32ビットのデ
ータが全て“0”になった時には信号120がアクティ
ブになる。尚、プロセッサ101がリセットされると、
リセットに対応して起動される制御記憶105に格納さ
れているマイクロプログラムの中のリセット処理ルーチ
ンにより内部バス104からレジスタ111に〔000
00000(H) 〕が転送されることにより、レジスタ1
11は初期化される。
【0019】次に、コンテキストのストアについて説明
する。例えばプロセッサ101においてタスク1が実行
中であるとする。タスク1が初めて起動されてから次の
タスク2に切換えられるまでの間に、タスク1での処理
によりレジスタR31とR0に内部データ・バス104
からデータが書込まれ、レジスタR14とR0は内部デ
ータ・バス104へ内容が読み出されることを考える。
タスク1の処理中に制御記憶105に格納されているマ
イクロプログラムによってレジスタR31に内部データ
・バス104からデータが書込まれるときには信号10
9−31が“1”になり、したがって論理和ゲート11
0−31が“1”となってレジスタ111−31が
“1”となる。同様にレジスタR0に内部データ・バス
104からデータが書込まれるときには信号109−0
が“1”になり、したがって論理和ゲート110−0が
“1”となってレジスタ111−0が“1”となる。
【0020】また、レジスタR14から内部データ・バ
ス104へデータが読み出されるときには信号108−
14が“1”になり、したがって論理和ゲート110−
14が“1”となってレジスタ111−14が“1”と
なる。同様にレジスタR0から内部データ・バス104
へデータが読み出されるときには信号108−0が
“1”になり、したがって論理和ゲート110−0が
“1”となってレジスタ111−0が“1”となる。レ
ジスタR0に関しては内部データ・バス104からデー
タが書込まれるときにはレジスタ111−0が“1”と
なっているが、レジスタ111−0の内容には無関係に
レジスタR0から内部データ・バス104へデータが読
み出されるときには信号108−0が“1”になったこ
とによりレジスタ111−0を“1”にセットする。
【0021】タスク1のレジスタR0〜R31がこのよ
うに使用されている場合に、割込み等によりタスク2へ
の切換えが発生すると、制御記憶105に格納されてい
るマイクロプログラムの中のコンテキスト入力替えルー
チンが起動される。以下のコンテキストのストア処理に
ついて図9のタイミングチャートを用いて説明する。タ
スク1が初めて起動されてからタスク2に切換えられる
までの間に、タスク1での処理によりレジスタR31と
R0は内部データ・バス104からデータが書込まれ、
レジスタR14,R0は内部データ・バス104へ内容
が読み出されると、レジスタ111には〔800040
01(H) 〕がセットされる。
【0022】コンテキスト・ストア・ルーチンでは、制
御回路106はレジスタ111の読み出し制御信号11
2と先行1検出回路116の書込み制御信号117を同
時に発生して、レジスタ111の内容〔8000400
(H) 〕を内部データ・バス104経由で先行1検出回
路116へCLK2同期で転送する。コンテキスト・ス
トア・ルーチンでは信号120が“1”になるまで信号
119の5ビットで示されるレジスタの内容を外部メモ
リ102へ転送する。先行1検出回路116では前述し
たように入力されたデータ〔80004001(H) 〕を
ビット0側からビット31側へ“1”を検索する。8ビッ
ト先行1検出回路201−0,201−1,201−3
にはそれぞれの8ビットの中に“1”が存在するので信
号BZ0、BZ1、BZ3は“0”、8ビット先行1検
出回路201−2に入力された8ビットには“1”が存
在しないので信号BZ2は“1”である。
【0023】先行1検出回路201−0には〔0000
0001(2) 〕が保持されているので信号202−0に
は〔000(2) 〕が出力され、BZ0は“0”となる。
先行1検出回路201−1には〔0000000
(2) 〕が保持されているので信号202−1には〔0
00(2) 〕が出力され、BZ0は“1”となる。先行1
検出回路201−2には〔01000000(2) 〕が保
持されているので信号202−2には〔110(2) 〕が
出力され、BZ0は“0”となる。先行1検出回路20
1−3には〔10000000(2) 〕が保持されている
ので信号202−3には〔111(2) 〕が出力され、B
Z0は“0”となる。この時、信号120は“0”であ
る。
【0024】図8により、信号119−4,119−3
は共に“0”、信号208−0のみが“1”で信号20
8−1,208−2,208−3は共に“0”となり、
セレクタ206は信号119−2,119−1,119
−0には信号202−0の3ビットを選択する。したが
って、信号119−4,119−3,119−2,11
9−1,119−0は〔00000(2) 〕となる。この
時、先行1検出回路201−0のマスク情報生成回路3
03は 00(H) を生成し、201−1のマスク情報生
成回路303は〔80(H) 〕を生成し、先行1検出回路
201−2のマスク情報生成回路303は〔00(H)
を生成し、先行1検出回路201−3のマスク情報生成
回路303は〔00(H) 〕を生成する。コンテキスト・
ストア・ルーチンの処理に基づいて、制御回路106が
信号115を発行してインターフェース114を制御す
ることによりバス・サイクルを開始して信号119の5
ビットで示されたレジスタR0の内容を外部メモリ10
2へ転送する。同時に制御回路106はコンテキスト入
替えバス・サイクル開始タイミング信号118を“1”
にする。
【0025】先行1検出回路201−0においては信号
203−0が常に“1”であるため、レジスタR0の内
容を外部メモリ102へ転送するバス・サイクル期間で
信号118がアクティブである期間のCLK2で、レジ
スタ301にはマスク回路306の出力、つまりラッチ
305の出力〔00(H) 〕とラッチ302の出力〔01
(H) 〕のビット毎の論理積を取った結果の〔00(H)
が保持される。先行1検出回路201−1においてはレ
ジスタR0の内容を外部メモリ102へ転送するバス・
サイクル期間で信号118がアクティブである期間のC
LK2で、信号203−1つまりBZ0が“0”である
ため、レジスタ301は内容が変化しない〔4
(H) 〕。したがって8−3プライオリティー・エンコ
ーダ304の出力202−1は〔110(2) 〕となって
いる。
【0026】先行1検出回路201−2においてはレジ
スタR0の内容を外部メモリ102へ転送するバス・サ
イクル期間で信号118がアクティブである期間のCL
K2で、信号BZ0とBZ1が共に“0”なので信号2
03−2が“0”であるため、レジスタ301は内容が
変化しない〔00(H) 〕。したがって8−3プライオリ
ティー・エンコーダ304の信号202−2は〔000
(2) 〕となり、オール0検出回路307の出力BZ2は
“1”となっている。この先行1検出回路201−2は
レジスタ301に〔00(H) 〕を保持しているため、出
力信号は変化しない。先行1検出回路201−3におい
てはレジスタR0の内容を外部メモリ102へ転送する
バス・サイクル期間で信号118がアクティブである期
間のCLK2で、信号BZ0とBZ1が共に“0”でB
Z2が“1”なので信号203−3が“0”となり、レ
ジスタ301は内容が変化しない〔80(H) 〕。したが
って8−3プライオタティー・エンコーダ304の信号
202−2は〔111(2) 〕となり、オール0検出回路
307の出力BZ3は“0”となっている。
【0027】レジスタR0の内容を外部メモリ102へ
転送するバス・サイクル期間で信号118がアクティブ
である期間のCLK2同期で、信号BZ0,BZ1,B
Z3は“0”、BZ2が“1”なので、信号120は
“0”であり、コンテキスト・ストア・ルーチンでは信
号120が“1”になるまで信号119の5ビットで示
されるレジスタの内容を外部メモリ102へ転送する。
先行1検出回路201−0ではレジスタR0の内容を外
部メモリ102へ転送するバス・サイクル期間で信号1
18がアクティブである期間の次のCLK1ではマスク
情報生成回路303には〔00(H) 〕が入力されるため
ラッチ305にはマスク情報として〔00(H) 〕が保持
され、8−3プライオリティー・エンコーダ304の出
力は〔000(2) 〕となる。またラッチ302の内容が
〔01(H) 〕から〔00(H) 〕に変化し、オール0検出
回路307の出力BZ0は“1”となる。以降、先行1
検出回路201−0ではレジスタ301の内容は〔00
(H ) 〕のまま、オール0検出回路307の出力BZ0は
“1”のまま変化しない。
【0028】又、先行1検出回路201−1ではレジス
タR0の内容を外部メモリ102へ転送するバス・サイ
クル期間で信号118がアクティブである期間の次のC
LK1同期では、8−3プライオリティー・エンコーダ
304の出力202−1は〔110(2) 〕となり、マス
ク情報生成回路303には〔40(H) 〕が入力されてい
るためラッチ305にはマスク情報として〔80(H)
が保持される。先行1検出回路201−2,201−3
ではレジスタR0の内容を外部メモリ102へ転送する
バス・サイクル期間で信号118がアクティブである期
間の次のCLK1同期ではラッチ302,305の出
力、8−3プライオリティー・エンコーダ304の出
力、オール0検出回路307の出力は変化しない。
【0029】レジスタR0の内容を外部メモリ102へ
転送するバス・サイクル期間で信号118がアクティブ
である期間の次のCLK1同期で信号BZ0とBZ2が
“1”、BZ1とBZ3が“0”になるため、信号12
0は“0”であり、図8により信号119−4は
“0”、119−3は“1”、208−1のみが“1”
で208−0,208−2,208−3は共に“0”と
なってセレクタ206は信号119−2,119−1,
119−0には202−1の3ビットを選択して出力す
る。したがって、信号119−4,119−3,119
−2,119−1,119−0は〔01110(2) 〕と
なり、コンテキスト・ストア・ルーチンでは信号120
が“0”なのでレジスタR0の次に信号119の5ビッ
トで示されるレジスタR14の内容を外部メモリ102
へ転送する。
【0030】レジスタR0の内容を外部メモリ102へ
転送するバス・サイクルが終了すると、コンテキスト・
ストア・ルーチンの処理に基づいて、制御回路106が
信号115を発行してインターフェース114を制御す
ることによりバス・サイクルを開始して信号119の5
ビットで示されたレジスタR14の内容を外部メモリ1
02へ転送する。同時に制御回路106はコンテキスト
入替えバス・サイクル開始タイミング信号118をアク
ティブにする。先行1検出回路201−1においてはレ
ジスタR14の内容を外部メモリ102へ転送するバス
・サイクル期間で信号118がアクティブである期間の
CLK2で、信号203−1つまりBZ0が“1”にな
ったため、レジスタ301にはマスク回路306の出
力、つまりラッチ305の出力〔80(H) 〕とラッチ3
02の出力〔40(H) 〕のビット毎の論理積を取った結
果〔00(H) 〕が保持される。
【0031】先行1検出回路201−3においてはレジ
スタR0の内容を外部メモリ102へ転送するバス・サ
イクル期間で信号118がアクティブである期間のCL
K2で、信号BZ1が“0”でBZ0とBZ2が“1”
なので信号203−3が“0”となり、レジスタ301
は内容が変化しない〔80 (H)〕。したがって8−3プ
ライオリティー・エンコーダ304の出力202−2は
〔111(2) 〕となり、オール0検出回路307の出力
BZ3は“0”となっている。先行1検出回路201−
1ではレジスタR14の内容を外部メモリ102へ転送
するバス・サイクル期間で信号118がアクティブであ
る期間のCLK1で、マスク情報生成回路303には
〔00(H) 〕が入力されるためラッチ305にはマスク
情報として〔00(H) 〕が保持され、8−3プライオリ
ティー・エンコーダ304の出力は〔000(2) 〕とな
る。またラッチ302の内容が〔40(H)〕から〔00
(H) 〕に変化し、オール0検出回路307の出力BZ1
は“1”となる。以降、先行1検出回路201−1では
レジスタ301の内容は〔00(H)〕のまま、オール0
検出回路307の出力BZ1は“1”のまま変化しな
い。
【0032】レジスタR14の内容を外部メモリ102
へ転送するバス・サイクル期間で信号118がアクティ
ブである期間の次のCLK1同期で信号BZ0とBZ1
とBZ2が“1”、BZ3が“0”になるため、信号1
20は“0”であり、図8により信号119−4,11
9−3はともに“1”、信号208−3のみが“1”で
信号208−0,208−1,208−2はともに
“0”となってセレクタ206が信号119−2,11
9−1,119−0には信号202−3の3ビットを選
択する。したがって信号119−4,119−3,11
9−2,119−1,119−0は〔11111(2)
となり、コンテキスト・ストア・ルーチンでは信号12
0が“0”なのでレジスタR14の次に、この信号11
9の5ビットで示されるレジスタR31の内容を外部メ
モリ102へ転送する。
【0033】レジスタR14の内容を外部メモリ102
へ転送するバス・サイクルが終了すると、コンテキスト
・ストア・ルーチンの処理に基づいて、制御回路106
が信号115を発行してインターフェース114を制御
することによりバス・サイクルを開始して119の5ビ
ットで示されたレジスタR31の内容を外部メモリ10
2へ転送する。同時に制御回路106はコンテキスト入
替えバス・サイクル開始タイミング信号118をアクテ
ィブにする。先行1検出回路201−3においてはレジ
スタR31の内容を外部メモリ102へ転送するバス・
サイクル期間で信号118がアクティブである期間のC
LK2で、信号BZ0,BZ1,BZ2が“1”となっ
たため信号203−3が“1”になり、レジスタ301
にはマスク回路306の出力、つまりラッチ305の出
力〔00(H) 〕とラッチ302の出力〔80(H) 〕のビ
ット毎の論理積を取った結果の〔00(H) 〕が保持され
る。
【0034】先行1検出回路201−3ではレジスタR
31の内容を外部メモリ102へ転送するバス・サイク
ル期間で信号118がアクティブである期間の次のCL
K1で、マスク情報生成回路303には〔00(H) 〕が
入力されるためラッチ305にはマスク情報として〔0
(H) 〕が保持され、8−3プライオリー・エンコーダ
304の出力は〔000(2) 〕となる。またラッチ30
2の内容が〔80(H)〕から〔00(H) 〕に変化し、オ
ール0検出回路307の出力BZ3は“1”となる。し
たがって信号BZ0,BZ1,BZ2,BZ3はすべて
“1”となるので信号120が“1”となり、コンテキ
スト・ストア・ルーチンでは信号120が“1”となっ
たことにより、レジスタR0,R14,R31の内容を
外部メモリ102への転送を終了する。
【0035】レジスタのストアが終了するとレジスタ1
11の内容〔80004001(H)〕、PC,PSWを
外部メモリ102へ転送してコンテキストのストアを終
了する。外部メモリ102内のコンテキストを格納する
部分は各タスク毎のレジスタR0〜R31を格納する部
分と各タスク毎のレジスタ111を格納する部分の2箇
所に分ける。レジスタR0〜R31を格納する部分のア
ドレスは、ベース・レジスタ間接であたえられ、タスク
毎に割当てられた領域のベース・アドレスと、上記の先
行1検出回路116から得られるレジスタ番号を示す1
19とを加算して得られる。外部メモリ102内のレジ
スタR0〜R31を格納する部分はタスク毎に32本分の
領域を確保する。
【0036】次に少なくとも一度処理が行われた後タス
クが切換えられたタスク1が、再び処理される場合のコ
ンテキスト・リストリアについて説明する。例えばプロ
セッサ101において前記実施例のタスク1のコンテキ
スト・ストアに引続き実行が開始されたタスク2が割込
みによりタスク1に切換えられる場合を考える。まずタ
スク2のコンテキストのストアは前記実施例の手順によ
り行われ、タスク2が起動されてから今回タスク1に切
換えられるまでの間に、タスク2での処理により内部デ
ータ・バス104からデータを書込まれ、また内部デー
タ・バス104へ内容を読み出されたレジスタが外部メ
モリ102へストアされ、レジスタ111の内容とP
C,PSWがタスク2に割当てられた外部メモリ102
内の領域へストアされる。
【0037】次にタスク1のコンテキストのリストアが
行われる。制御記憶回路105に格納されているマイク
ロプログラムの中のコンテキスト入替えルーチンにより
制御されて、まず前記実施例においてタスク1のコンテ
キスト・ストアの最後に外部メモリ102にストアされ
たレジスタ111の内容をレジスタ111に、PC,P
SWの値がそれぞれプロセッサ101内のPC,PSW
へリストアされる。次にレジスタ111にリストアされ
たデータを先行1検出回路116へ転送して、レジスタ
111に格納されたデータのビット0側からビット31の
方向へ“1”になっているビット位置を検索する。外部
メモリ内のタスク毎に割当てられた領域のレジスタR0
〜R31を格納する部分のベース・アドレスと、先行1
検出回路116から得られるレジスタ番号を示す119
とを加算して得られるアドレスから読み込んだデータ
を、先行1検出回路116から得られるレジスタ番号の
レジスタへ格納する。
【0038】前記実施例で外部メモリ102にストアさ
れたレジスタ111の内容〔80004001(H) 〕が
レジスタ111にリストアされ、レジスタ111に格納
されたデータ〔80004001(H) 〕を先行1検出回
路116へ転送して、前記実施例と同様にレジスタ11
1に格納されたデータのビット0側からビット31の方
向へ“1”になっているビット位置を検索する。最初は
信号120が“0”であり、信号119は〔00000
(2) 〕となるのでレジスタR0をリストアするためのバ
ス・サイクルが起動されて、外部メモリ102内の「タ
スク1用のベース・アドレス+00000(2) 」のアド
レスからデータを読み込んでレジスタR0に格納する。
この時信号120が“0”であり、信号119は〔01
110(2) 〕となるのでレジスタR14をリストアする
ためのバス・サイクルが起動されて、外部メモリ102
内の「タスク1用のベース・アドレス+0111
(2) 」のアドレスからデータを読み込んでR14に格
納する。この時信号120が“0”であり、信号119
は〔11111(2) 〕となるのでレジスタR31をリス
トアするためのバス・サイクルが起動されて、外部メモ
リ102内の「タスク1用ベース・アドレス+1111
(2) 」のアドレスからデータを読み込んでレジスタR
31に格納する。この時信号120が“1”となるた
め、コンテキスト入替えルーチンは終了する。
【0039】タスク1の全てのコンテキストが外部メモ
リ102からプロセッサ101へリストアされたあと、
タスク1は外部メモリ102からリストアされたPCか
ら処理を再開する。再開されたタスク1の処理によりレ
ジスタR3の内容が内部データ・バス104に読み出さ
れると、信号108−3が“1”になるので、レジスタ
111のビット3が“1”となり、このときレジスタ1
11の内容は〔80004009(H) 〕となる。タスク
1がタスク2に切換わる時、レジスタ資源とともにタス
ク1のコンテキストとしてレジスタ111の内容を外部
メモリ102へストアし、再びタスク1の処理が再開さ
れた時にレジスタ資源とともにタスク1のコンテキスト
としてレジスタ111の内容を外部メモリ102からリ
ストアすることにより、タスク1が起動されてから、何
回かのタスク切換えを通じて、タスク1でのレジスタ資
源の使用の履歴を残すことができるため、タスク1を正
確に再開することができる。
【0040】このように、従来ではコンテキストを外部
メモリにストアする際には、タスクの実行中にどのレジ
スタが使用されていたかが不明であるため、32本のレジ
スタを全てストアする必要があり、32バス・サイクルを
必要としたが、本発明によれば、前記実施例においてR
0,R14,R31の3つのレジスタがタスク1の処理
の間に使用されたことをレジスタ111のビットに記憶
し、先行1検出回路116により識別することができる
ため、コンテキスト入替えのための外部メモリへのアク
セスを必要最小限に留めて、オーバヘッドを低減するこ
とができる。
【0041】
【発明の効果】以上説明したように本発明のコンテキス
ト入替えは、タスク切換え前のタスクで使用しているレ
ジスタと使用していないレジスタを識別することによ
り、使用していたユーザ・レジスタのみを外部メモリへ
退避するので、コンテキスト入替えに必要最小限の時間
(クロック数)を要することになるため、必要最小限の
時間でタスク切換えできる効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例のブロック構成図である。
【図2】先行1検出回路の内部構成を示すブロック図で
ある。
【図3】8ビット分の先行1検出回路の内部構成を示す
ブロック図である。
【図4】マスク情報生成回路の内部構成を示す回路図で
ある。
【図5】マスク情報生成回路の入力データと出力データ
の関係を示す図である。
【図6】プライオリティ・エンコーダの入力データと出
力データの関係を示す図である。
【図7】セレクタ制御回路の内部構成の回路図である。
【図8】セレクタ制御回路の入力データと出力データの
関係を示す図である。
【図9】タイミングチャート図である。
【図10】一般的なコンテキスト入替えを含む割込み動
作のフローチャートである。
【符号の説明】
101 プロセッサ R0〜R31 レジスタ 102 外部メモリ 105 制御記憶回路 106 制御回路 111 レジスタ 114 外部バス・インターフェース 116 先行1検出回路 201−1〜201−3 8ビット先行1検出回路 206 セレクタ 207 セレクタ制御回路 301 レジスタ 302 ラッチ 303 マスク情報生成回路 305 ラッチ 304 8−3プライオリティエンコーダ 306 マスク回路 307 オール0検出回路

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数本のレジスタと、外部バス・インタ
    ーフェース部と、記憶手段と、先行1検出回路とを内部
    データ・バスで接続し、かつ制御記憶回路と、制御回路
    とを備え、前記先行1検出回路では、入力されたデータ
    を検索して最初に“1”を検出したビット位置情報と入
    力されたデータの全ビットが0であることを示すオール
    0情報を出力するプロセッサにおいて、前記制御回路は
    前記制御記憶回路から取り出される制御情報と前記先行
    1検出回路からのビット位置情報とオール0情報とを入
    力し、前記内部データ・バスから前記レジスタへの読出
    しまたは書込み信号と、外部バス・インターフェース部
    に対して特定のバス・サイクル開始タイミングを制御す
    る制御信号とを生成し、前記記憶手段は前記レジスタ数
    と同数のビット数を有し、前記レジスタの読出しまたは
    書込み信号を入力して個々のレジスタへのアクセスがあ
    った時に対応するビットに“1”を記憶し、前記先行1
    検出回路は前記記憶手段に記憶されているデータを入力
    して、前記特定のバス・サイクル開始タイミングを制御
    する制御信号により動作を制御され、前記制御記憶回路
    内に保持されているコンテキスト入替え処理ルーチンが
    前記先行1検出回路の出力情報によりプロセッサ外部へ
    の退避と復帰の対象とするレジスタを選択することを特
    徴とするプロセッサのレジスタ入替え判別回路。
JP18750192A 1992-06-22 1992-06-22 プロセッサのレジスタ入替え判別回路 Pending JPH064305A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18750192A JPH064305A (ja) 1992-06-22 1992-06-22 プロセッサのレジスタ入替え判別回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18750192A JPH064305A (ja) 1992-06-22 1992-06-22 プロセッサのレジスタ入替え判別回路

Publications (1)

Publication Number Publication Date
JPH064305A true JPH064305A (ja) 1994-01-14

Family

ID=16207171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18750192A Pending JPH064305A (ja) 1992-06-22 1992-06-22 プロセッサのレジスタ入替え判別回路

Country Status (1)

Country Link
JP (1) JPH064305A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011135759A1 (ja) 2010-04-30 2011-11-03 日本電気株式会社 情報処理装置及びタスク切り替え方法
JP2015501019A (ja) * 2011-10-03 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータ・システム内のオペランド活性情報の維持

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59184943A (ja) * 1983-04-05 1984-10-20 Nec Corp 情報処理装置
JPS60101643A (ja) * 1983-11-09 1985-06-05 Hitachi Ltd デ−タ処理装置
JPS62151940A (ja) * 1985-12-25 1987-07-06 Nec Corp レジスタ退避/復帰方式
JPH0236423A (ja) * 1988-07-26 1990-02-06 Nec Corp 退避/復帰レジスタアドレス生成回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59184943A (ja) * 1983-04-05 1984-10-20 Nec Corp 情報処理装置
JPS60101643A (ja) * 1983-11-09 1985-06-05 Hitachi Ltd デ−タ処理装置
JPS62151940A (ja) * 1985-12-25 1987-07-06 Nec Corp レジスタ退避/復帰方式
JPH0236423A (ja) * 1988-07-26 1990-02-06 Nec Corp 退避/復帰レジスタアドレス生成回路

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011135759A1 (ja) 2010-04-30 2011-11-03 日本電気株式会社 情報処理装置及びタスク切り替え方法
US9043806B2 (en) 2010-04-30 2015-05-26 Nec Corporation Information processing device and task switching method
JP2015501019A (ja) * 2011-10-03 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータ・システム内のオペランド活性情報の維持
US10061588B2 (en) 2011-10-03 2018-08-28 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
US10078515B2 (en) 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information

Similar Documents

Publication Publication Date Title
US4430706A (en) Branch prediction apparatus and method for a data processing system
US6219775B1 (en) Massively parallel computer including auxiliary vector processor
US5008812A (en) Context switching method and apparatus for use in a vector processing system
EP0747816B1 (en) Method and system for high performance multithread operation in a data processing system
JP2539199B2 (ja) デジタルプロセッサ制御装置
US20170329629A1 (en) System for selecting a task to be executed according to an output from a task control circuit
US3943494A (en) Distributed execution processor
US4542456A (en) Method and apparatus for performing range checks
JP2004185637A (ja) 複数型レジスタ・セットを採用したriscマイクロプロセッサ・アーキテクチャ
EP0125855A2 (en) Buffer-storage control system
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
US7143271B2 (en) Automatic register backup/restore system and method
US7373486B2 (en) Partially decoded register renamer
US4739470A (en) Data processing system
JPH02227730A (ja) データ処理システム
JPS62236038A (ja) 制御記憶装置
JP3170472B2 (ja) レジスタ・リマップ構造を有する情報処理システム及び方法
US5875483A (en) Completion unit register file using virtual addresses with qualify and pseudo-address bits
JPH064305A (ja) プロセッサのレジスタ入替え判別回路
EP1537480B1 (en) Method and apparatus for handling nested interrupts
JPS61136132A (ja) 情報処理装置
JP3102399B2 (ja) データ処理装置及び方法
USRE27485E (en) Ls ec sdr
JPH10247150A (ja) データ処理システム
JPH0229826A (ja) 情報処理装置