JPH0895804A - 中央処理装置 - Google Patents

中央処理装置

Info

Publication number
JPH0895804A
JPH0895804A JP6229619A JP22961994A JPH0895804A JP H0895804 A JPH0895804 A JP H0895804A JP 6229619 A JP6229619 A JP 6229619A JP 22961994 A JP22961994 A JP 22961994A JP H0895804 A JPH0895804 A JP H0895804A
Authority
JP
Japan
Prior art keywords
register
address
memory
instruction
task
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.)
Granted
Application number
JP6229619A
Other languages
English (en)
Other versions
JP3619939B2 (ja
Inventor
Kazuo Nakamura
和夫 中村
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP22961994A priority Critical patent/JP3619939B2/ja
Priority to US08/529,897 priority patent/US5682531A/en
Priority to KR1019950031959A priority patent/KR0167005B1/ko
Publication of JPH0895804A publication Critical patent/JPH0895804A/ja
Application granted granted Critical
Publication of JP3619939B2 publication Critical patent/JP3619939B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00—Digital computers in general; Data processing equipment in general
    • G06F15/76—Architectures of general purpose stored program computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 コンテキストの待避または復帰を少ないRA
M容量で、かつ高速に行なうコンピュータの中央処理装
置を得ることである。 【構成】 命令コードは第1メモリアドレス部22と第
2メモリアドレス部23とを含み、命令キュー13のプ
リフェッチした命令コードの待避または復帰命令のオペ
コードをマイクロ命令デコーダ14がデコードすると、
マイクロROM15は、第1メモリアドレス部で指定さ
れるタスク番号をインデクス値として、第2メモリアド
レス部で指定されるコンテキスト待避情報テーブルから
タスクのレジスタリストをリードし、レジスタリストで
指定されたレジストを選択的に待避、復帰可能なマイク
ロプログラムを出力する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータの中央処
理装置に関するもので、特にコンピュータのコンテキス
トの待避と復帰とを高速に行なう中央処理装置に関する
ものである。
【0002】
【従来の技術】コンピュータをマルチタスクで実行する
場合、タスクのスイッチングを行なう際に中央処理装置
内の汎用レジスタにあるタスクAの内容(コンテキス
ト)をメモリに待避させ、一方メモリ内に待避されてい
たタスクBのコンテキストをメモリから復帰させて実行
するという処理を行う。
【0003】R0〜R7の汎用レジスタを有する中央処
理装置において、各汎用レジスタ内のタスクAのデータ
をメモリに待避される場合、図10のように外部メモリ
にレジスタR0〜R7に対応したコンテキスト待避領域
を確保しておく。このような中央処理装置ではタスクA
の使用するレジスタがR0〜R7のうち一部のレジスタ
であっても全てのレジスタのデータが待避領域に待避さ
れてしまう。そのため各レジスタR0〜R7が例えば8
ビットの場合に、仮にタスクAが使用するレジスタがR
1、R3、R4、R6のみであったならば待避する領域
は図11のように2バイトの予備領域を含め合計6バイ
トの待避領域で済むのに図10のように10バイトの待
避領域を必要をする。
【0004】タスクが使用しているレジスタに応じてレ
ジスタR0〜R7を選択的に待避させるものとしてDE
C社製VAX11がある。VAX11の場合、レジスタ
はR0〜R15の合計16個ある(そのうち、R15は
プログラムカウンタ用、R14はスタックポインタ用で
ある)。それぞれのレジスタは32ビットで構成されて
いる。図12は待避させるレジスタを指定するレジスタ
リストの例図であり、16ビットの値により構成され
る。レジスタリストのビット0〜ビット15はそれぞれ
レジスタR0〜R15に対応し、それが1か0かの値に
よって対応するレジスタを待避するか否かを指定する。
例えばレジスタリストが0000 0000 0101
1010(2進)の値を取った場合、ビット1、ビット
3、ビット4、ビット6が1なのでR1、R3、R4、
R6のみを待避することを示す。
【0005】図13はVAX11でタスク間の実行をス
イッチングする場合のメモリに記憶されるコンテキスト
情報テーブル図である。例えば、タスク0〜タスクN
(Nは整数)間のスイッチングを行なうときに、図のテ
ーブル内にはタスク毎に固有のレジスタリストが設定さ
れ(図ではタスク3まで図示)、同時に待避されるタス
クを識別するためにインデクスとして参照されるタスク
番号が設定される。
【0006】図12のレジスタリストによるレジスタの
待避命令はレジスタリストの指定を通常のアドレッシン
グモードで行なう。このためタスク番号をインデクスと
する場合、タスク番号をメモリからレジスタに一度ロー
ドする必要がある。図14はこのVAX11により待避
されるタスクの使用しているレジスタを待避させるため
のプログラムを示す例図で、アセンブリ言語により表現
されたものである。なお、図14のメモリ1ワードは1
6ビットに相当する。以下のこのプログラムによる装置
の待避動作を説明する。
【0007】まず始めに、図13のタスク番号にはタス
ク2が指定され、タスク2レジスタリストには0000
0000 0101 1010(2進)が設定されてい
るとする。 (第1行):レジスタR0にある内容をメモリのTMP
2番地に一時的に待避する。 (第2行):メモリのTASKNUM番地にあるタスク
番号を32ビットに拡張して待避されたレジスタR0に
ロードする。 (第3行):メモリのRLTBL番地のコンテキスト待
避情報テーブルににおいて、レジスタR0にロードした
タスク番号2を参照してタスク2レジスタリストをメモ
リのTMP1番地にコピーする。実際には中央処理装置
内でRLTBL+2×2(VAX11では8ビットで1
アドレスなので16ビットの値は2倍する必要がある)
を演算して、RLTBL+4番地にあるタスク2レジス
タリストを指定してコピーする。 (第4行):第1行でTMP2番地に待避された内容を
レジスタR0に戻す。 (第5行):2個分のレジスタの予備領域を確保するた
めにスタックポインタから8を減算する。 (第6行):レジスタR0〜R7のうち、第3行でTM
P1番地の領域にコピーしたタスク2レジスタリストで
指定されたレジスタの内容をスタックに待避する。 なお、VAX11では1つのレジスタが16ビット、つ
まり4バイトなので源算値は2でなく8となる。
【0008】この結果、メモリのスタック領域には図1
1のように、レジスタリストにより指定されたレジスタ
R1、R3、R4、R6のみが待避される。
【0009】
【発明が解決しようとする課題】上記のように、従来の
コンピュータの中央処理装置でコンテキストの待避を行
なう場合、複数のレジスタから任意のレジスタを選択し
てその内容を待避、または復帰するような命令を有さな
い中央処理装置では待避させる必要のないレジスタ内容
の待避、復帰まで行う必要があり、その待避領域の分だ
けRAM容量が大きくなるという問題点が生じ、さらに
不要な待避、復帰により実行時間が増大するという問題
点が生じていた。
【0010】また、必要なレジスタのみを選択的に待
避、復帰させるVAX11では、コンテキストの待避を
行なう前にタスク番号を参照するためにタスク番号をレ
ジスタに一時移動しなければならない。そのためタスク
番号を一時保持させる装置内部のレジスタの内容をメモ
リに一時的に待避および復帰する必要があり、これによ
り実行時間が増大するという問題点が生じていた。
【0011】この発明は上記の問題点を解決するために
なされたもので、コンテキストの待避させるメモリ領域
を少なくしつつ、実行時間を大幅に短縮できる中央処理
装置を得ることを目的としたものである。
【0012】
【課題を解決するための手段】この発明による中央処理
装置は、タスク情報のアドレスを示す第1のアドレス情
報、およびM個のレジスタを選択するレジスタ選択情報
を含んだ待避情報のアドレスを示す第2のアドレス情報
を有する1つの命令コードに基づき、N個のレジスタの
うちM個のレジスタを選択して、タスクのコンテキスト
をM個のレジスタとメモリとの間で転送させることによ
りコンテキストの待避もしくは復帰させる制御手段とを
備えたものであって、その制御手段は、タスク情報を参
照して、コンテキスト待避情報からレジスタ選択情報を
選択しロードすることにより、上記のタスクのコンテキ
ストをM個のレジスタとメモリとの間で転送させるよう
にしたものである(但し、M、Nは自然数で、M<
N)。
【0013】
【作用】この発明における中央処理装置によると、タス
ク情報のアドレスを示す第1のアドレス情報、およびM
個のレジスタを選択するレジスタ選択情報を含んだ待避
情報のアドレスを示す第2のアドレス情報を有する1つ
の命令コードに基づいて、タスク情報をインデクスとし
てコンテキスト待避情報からレジスタ選択情報を選択し
ロードするようにしたので、コンテキストの待避、復帰
に必要なRAM容量が小さくなり、処理速度が速くな
る。
【0014】
【実施例】
実施例1.以下、本発明の一実施例を示す。図1は本実
施例を示すマイコンの中央処理装置のブロック構成図で
ある。図において、1はレジスタ群でR0からR7の8
個の8ビットの汎用レジスタで構成されている。2は外
部のメモリ、またはレジスタ(いずれも図示せず)と入
出力されるデータを一時保持するメモリデータレジス
タ、3はその外部メモリ、またはレジスタを指定するア
ドレスを一時保持し、出力するメモリアドレスレジス
タ、4はコンテキストを待避、復帰するための保持領域
を指定するスタックポインタ、6は演算手段である演算
ユニット(以下、ALUと称す)、7、8はレジスタR
0〜R7、メモリデータレジスタ2、一時レジスタ4、
スタックポインタ5の各々からオペランドを取り出し、
ALU4に入力させるための第1オペランドバスおよび
第2オペランドバスで、ALU6はこの第1および第2
オペランド7、8のそれぞれに出力された内容(オペラ
ンド)について演算を実行する。9はALU4の演算結
果を出力するデステネーションバスで、その演算結果は
デステネーションバス7を介してレジスタR0〜R7、
メモリデータレジスタ2、メモリアドレスレジスタ3、
一時レジスタ4またはスタックポインタ5のいずれかに
ライトされる。10はレジスタリストを保持する8ビッ
トからなるレジスタリストレジスタ、11はレジスタリ
ストレジスタ10から8ビットの出力に対して後述する
図6の真理値表に従って動作するプライオリティエンコ
ーダ、12はプライオリティエンコーダ11の出力を一
時記憶するレジスタポインタレジスタである。
【0015】13は命令の実行に応じて外部メモリ(図
示せず)から随時プリフェッチされたマクロ命令を記憶
する命令キュー、14は命令キュー13からのマクロ命
令をデコードするマクロ命令デコーダ、15は命令キュ
ー13の出力するマクロ命令を実行するように中央処理
装置を動作させるマイクロ命令が記憶されたマイクロR
OM、16はマクロ命令デコーダ14に従ってマイクロ
ROM15のアドレスを指定するマイクロアドレスカウ
ンタ、17はマイクロROM15から読み出されたマイ
クロ命令をデコードし、この中央処理装置全体の動作を
制御するマイクロ命令デコーダである。
【0016】また、18はその指定された外部メモリ、
またはレジスタとデータの入出力を行なうメモリデータ
バス、19は本中央処理装置の外部のメモリ、またはレ
ジスタを指定するためのメモリアドレスバス、20はイ
ンクリメンタで、メモリアドレスレジスタ3の内容をA
LU6での演算とは独立してインクリメントすることが
できる。
【0017】図2は図1の中央処理装置に設けられたセ
ーブ命令とリストア命令のコードを示した命令コードの
例図である。図において、21は命令の種類、つまりセ
ーブ命令あるいはリストア命令であることを装置に識別
させるためのオペコード部、22は後述の図4に示すタ
スク番号が格納されているメモリのアドレスを指定する
ための第1メモリアドレス部、23は同じく図4に示す
コンテキストの待避情報テーブルのアドレスを指定する
第2メモリアドレス部である。
【0018】また、図3は本実施例の中央処理装置のレ
ジスタリストを示す例図である。この中央処理装置のレ
ジスタ数はレジスタR0〜R7の8個なので、図3のよ
うに8ビットの値でレジスタR0〜R7を指定する。従
来例と同様、待避すべきレジスタがR1、R3、R4、
R6である場合は01011010(2進)が記憶され
る。
【0019】次に、図1の中央処理装置において、図2
のセーブ命令、またはリストア命令を実行する場合の動
作について説明する。
【0020】[セーブ命令の場合]例としてタスク0〜
タスクNー1のタスク(合計N個)のうち2番目のタス
ク2が待避される場合を示す。図4はメモリ内のコンテ
キスト待避情報テーブルを示したものである。コンテキ
スト待避情報として、アドレスX1にはタスク番号、ア
ドレスX2からは0〜Nー1番目の各々タスク毎にタス
クレジスタリストとタスク待避領域サイズが8ビットの
値で記憶されている。
【0021】今、タスク番号と、タスク2のレジスタリ
スト(X2+4番地)、待避情報サイズ(X2+5番
地)には次の値が記憶されているものとする。 タスク番号:2 レジスタリスト:01011010(2進) 待避情報サイズ:6
【0022】図5は図2の命令コードにより中央処理装
置がセーブ命令を実行するために、マイクロROM15
より出力されるマイクロプログラムの例図である。
【0023】(第1ステップ):まず、この条件ロード
命令(セーブ命令)の実行に先立ち、その前の命令を実
行する最後のマイクロ命令のステップで命令キュー13
からセーブ命令のオペコード部21がマクロ命令デコー
ダ14に取り出される。マクロ命令デコーダ14はオペ
コード部21をデコードし、命令がセーブ命令であるこ
とを識別する。そして図5のマイクロプログラムの第1
ステップのマイクロ命令が記憶されているマイクロRO
M15のアドレスをマイクロアドレスカウンタ16に出
力する。マイクロアドレスカウンタ16はそのアドレス
をロードし、マイクロROM15に出力する。マイクロ
ROM12はそのアドレスに記憶されている第1のステ
ップのマイクロ命令をマイクロ命令デコーダ17に出力
し、マイクロ命令デコーダ17はこれをデコードし、図
5の第1ステップを実行するように中央処理装置を制御
する。この第1ステップでは、命令キュー13から第1
メモリアドレス部22に書き込まれているアドレスX1
を取り出し、第1オペランドバス7、ALU6、デステ
ネーションバス9を介してメモリアドレスレジスタ3に
ライトする。同時にマイクロアドレスカウンタ16を1
だけインクリメントする。
【0024】(第2ステップ):マイクロROM15は
このインクリメントされたアドレスを受け、第2ステッ
プのマイクロ命令をマイクロ命令デコーダ17に出力す
る。マイクロ命令デコーダ17はこれをデコードし、メ
モリアドレスレジスタ3で指定されたアドレスX1のメ
モリの内容をメモリデータバス18を介してメモリデー
タレジスタ2にリードするように外部にリード要求す
る。すなわち、メモリデータレジスタ2には図4のコン
テキスト待避情報テーブルに格納されたタスク番号がリ
ードされる。また同様にマイクロアドレスカウンタ16
を1だけインクリメントする。この中央処理装置は次ス
テップ以降、上記と同様の手順でもってマイクロROM
15から各ステップのマイクロ命令を出力し、このマイ
クロ命令により実行制御される。
【0025】(第3ステップ):メモリデータレジスタ
2のタスク番号の値は第1オペランドバス7よりALU
6に入力され、2倍だけ乗算される。さらにデステネー
ションバス9を介して一時レジスタ4にライトする。よ
って、本実施例のタスク番号2を2倍した4の値が一時
レジスタ4に書き込まれる。
【0026】(第4ステップ):命令キュー13から第
2メモリアドレス部23を取り出し、第1オペランドバ
ス7に出力し、一方、一時レジスタ4の内容を第2オペ
ランドバス8に出力する。ALU6にて両者の値を加算
し、メモリアドレスレジスタ3、一時レジスタ4の2つ
にライトする。ここでは、第2メモリアドレス部に書き
込まれたアドレスX2に第3ステップで演算された4が
加えられたX2+4が書き込まれる。
【0027】(第5ステップ):メモリアドレスレジス
タ3で指定されたアドレスのメモリ内容を外部メモリよ
りメモリデータバス18を介してメモリデータレジスタ
2にリードする。ここでは、図4のコンテキスト待避情
報テーブルに格納された(X2+4)番地のタスク2レ
ジスタリストがリードされる。すなわち、本例において
メモリデータレジスタには01011010(2進)が
リードされる。
【0028】(第6ステップ):メモリデータレジスタ
2にリードされた内容、すなわちタスク2レジスタリス
トを第1オペランドバス7、ALU6を介してレジスタ
リストレジスタ10にライトする。さらにライトされた
内容はプライオリティエンコーダ11に入力される。
【0029】図6はプライオリティエンコーダ11の真
理値表である。レジスタリストレジスタ10の8ビット
の出力L0〜L7を入力して3ビットのエンコード値P
0〜P2と出力L0〜L7のすべてのビットがゼロであ
るかどうかを示す信号REMZが図の真理値表に従って
出力される。例えばタスク2レジスタリスト:0101
1010(2進)が第6ステップでレジスタレストレジ
スタ10にライトされ、その出力は(L7,L6,…,
L0)=(0,1,0,1,1,0,1,0)としてプ
ライオリティエンコーダ11に入力され、(P2,P
1,P0)=(0,0,1)、REMZ=0が出力され
る。
【0030】(第7ステップ):一時レジスタ4の内容
に1を加算し、メモリアドレスレジスタ3にライトす
る。第4ステップで書き込まれた値に1を加えたX2+
4+1がメモリアドレスレジスタ3にライトされる。
【0031】(第8ステップ):メモリアドレスレジス
タ3で指定されたアドレスX2+5番地のメモリの内容
をメモリデータレジスタ2にリードする。すなわち、図
4におけるタスク2待避領域サイズをリードし、ここで
はサイズの値6がメモリデータレジスタ2にリードされ
る。
【0032】(第9ステップ):待避命令実行前のスタ
ックポインタ5の値から(例えばZとする)メモリデー
タレジスタ3の内容(すなわち、6)を減算し、スタッ
クポインタ5をZー6に書き直す。同時にプライオリテ
ィエンコーダ11のREMZ出力をマイクロアドレスカ
ウンタ16に入力し、REMZが1ならば後述する第1
3ステップのマイクロアドレスをロードし、レジスタの
待避処理である第10〜第12ステップをジャンプす
る。すなわちレジスタリストレジスタ10の全ビットが
0ならば第13ステップまでジャンプする。ここでは全
てのビットは0でないのでマイクロアドレスカウンタ1
6は1だけインクリメントし、次の第10ステップを実
行する。
【0033】(第10ステップ):スタックポインタ5
の値Zー6から1を減算してメモリアドレスレジスタ3
にライトする。同時にプライオリティエンコーダ11の
エンコード出力をレジスタポインタレジスタ12にライ
トする。ここではレジスタリストレジスタ10は010
11010で、プライオリティエンコーダ11は1(2
進で001)を出力する。
【0034】(第11ステップ):レジスタポインタレ
ジスタ12は入力されたエンコード値をマイクロ命令デ
コーダ17に入力する。マイクロ命令デコーダ17はこ
のエンコード値によりR0〜R7のうち待避されるレジ
スタを識別し、エンコード値の指定するレジスタの内容
をメモリデータレジスタ2にライトする。ここではエン
コード値は1なのでレジスタR1が指定され、レジスタ
R1の内容がメモリデータレジスタ2にライトされる。
同時にインクリメンタ20によってメモリアドレスレジ
スタ3を1だけインクリメントする。メモリアドレスレ
ジスタ3の値はZー6になり、第10ステップで1を減
算する前のスタックポインタの値となる。さらに、レジ
スタリストレジスタ10に記憶されたレジスタリスト
で、レジスタポインタレジスタ17の指定するレジスタ
R1に対応する番号のビット、つまりビット1をクリア
にする。この結果、レジスタリストレジスタ10の値は
01011000(2進)となり、したがってプライオ
リティエンコーダ11は図6の真理値表によりエンコー
ド値3(2進で011)を出力する。
【0035】(第12ステップ):メモリアドレスレジ
スタ3において指定されるアドレスのメモリにメモリデ
ータレジスタ2の内容をライトする。ここではメモリア
ドレスレジスタ3ではZー6番地が指定されている。同
時にプライオリティエンコーダ11のエンコード値3を
レジスタポインタレジスタ12にライトする。さらにプ
ライオリティエンコーダ11のREMZ出力が0ならば
マイクロアドレスカウンタ16に第11ステップのマイ
クロアドレスをロードさせ、第11ステップと第12ス
テップとを繰り返す。またREMZ値が1ならばマイク
ロアドレスカウンタ16に第13ステップのマイクロア
ドレスをロードさせる。
【0036】本実施例では第11と第12ステップはレ
ジスタリストレジスタ10のレジスタリストの全ビット
が0になるまで4回実行される。このときメモリアドレ
スレジスタ3は第11、第12ステップの繰返し毎に1
インクリメントされる。以上により、1回目から4回目
までの第11ステップの実行後において、レジスタリス
トレジスタ10、レジスタポインタレジスタ12、待避
されるレジスタは次のように決定される。
【0037】 1回目 レジスタリストレジスタ :01011000 レジスタポインタレジスタ:1 待避レジスタ :R1 2回目 レジスタリストレジスタ :01010000 レジスタポインタレジスタ:3 待避レジスタ :R3 3回目 レジスタリストレジスタ :01000000 レジスタポインタレジスタ:4 待避レジスタ :R4 4回目 レジスタリストレジスタ :00000000 レジスタポインタレジスタ:6 待避レジスタ :R6
【0038】(第13ステップ):第12ステップ、ま
たは第9ステップにおいてプライオリティエンコーダ1
1のREMZ値が1、すなわちレジスタリストレジスタ
10の全ビットが0になったら、命令キュー13から図
2のセーブ命令の次の命令のオペコード部をマクロ命令
デコーダ14に取り出し、命令を終了する。
【0039】以上の結果、メモリには4個のレジスタR
1、R3、R4、R6が待避されることになる。図7は
メモリの待避領域を示す例図である。第9ステップが実
行される前のスタックポインタはメモリのZ番地を指
し、第9ステップの実行後にタスク2待避領域サイズの
値6を減算したZー6番地を指す。第11ステップでメ
モリアドレスレジスタ3を1ずつインクリメントしてZ
ー6番地から順にレジスタR1、R3、R4、R6の待
避領域が指定され、レジスタ内容が待避される。
【0040】[リストア命令の場合]次に、第1図の中
央処理装置で図2のオペコード部21がリストア命令を
実行する場合の動作について説明する。図8は図2のリ
ストア命令コードにより中央処理装置がリストア命令を
実行するために、マイクロROM15より出力されるマ
イクロプログラムの例図である。ここではコンテキスト
待避情報テーブル上のタスク番号、タスク2レジスタリ
スト、タスク2待避領域サイズは前述のセーブ命令の場
合と同じ情報である。さらに図9のようにメモリにR
1、R3、R4、R6の4つのレジスタに復帰させるタ
スク2の復帰内容が待避されており、リストア命令の実
行前のスタックポインタはZー6番地のコンテキスト待
避領域の下端のアドレスを示している。
【0041】リストア命令では第8図のマイクロプログ
ラムを実行するが、第8ステップまでは図5のセーブ命
令の場合と同様なので説明を省略する。以降第9ステッ
プより説明する。
【0042】(第9ステップ):Zー6番地コンテキス
ト待避領域の下端のアドレスであるZー6番地を指すス
タックポインタ5の内容をメモリアドレスレジスタ3に
ライトする。
【0043】(第10ステップ):第7ステップと第8
ステップでメモリからタスク2待避情報領域サイズがメ
モリデータレジスタ2にリードされており、スタックポ
インタ5の値にこのメモリデータレジスタ2の値を加算
する。この結果、スタックポインタ5の値はZー6から
サイズ6を加えた値Zとなり、図9のZ番地のメモリを
指す。同時にプライオリティエンコーダ11のエンコー
ド出力をレジスタポインタレジスタ12にライトする。
ここではレジスタリストレジスタ10の出力は0101
1010なので、プライオリティエンコーダ11は1
(2進で001)のエンコード値を出力する。さらに、
レジスタリストレジスタ10の全ビットが0かどうかを
示すREMZ値をマイクロアドレスカウンタ16に入力
し、REMZが1ならばマイクロアドレスカウンタ16
に第13ステップのマイクロアドレスをロードする。す
なわちレジスタリストレジスタ10の全ビットが0のと
きレジスタ復帰処理である第11、第12ステップをジ
ャンプする。ここでは全ビットは0でないのでマイクロ
アドレスカウンタ16は1インクリメントされ、第11
ステップを実行する。
【0044】(第11ステップ):第9ステップでライ
トされたメモリアドレスレジスタ3で指定されるアドレ
ス(Zー6)番地のメモリ内容をメモリデータレジスタ
2にリードする。これは図9の復帰するR1の内容であ
る。同時に第10ステップにおいてレジスタポインタレ
ジスタ12で指定された番号1に対応するレジスタリス
トレジスタ10のビットをクリアにする。この結果、レ
ジスタリストレジスタ10は01011010(2進)
から01011000(2進)になる。よってプライオ
リティエンコーダ11は3(2進で011)のエンコー
ド値を出力する。
【0045】(第12ステップ):第10ステップにお
いてレジスタポインタレジスタ12で指定された番号1
に従ってメモリデータレジスタ2にリードされたR1の
復帰内容をレジスタR1にライトする。同時にメモリア
ドレスカウンタ3の値を1だけインクリメントするとと
もに、プライオリティエンコーダ11のエンコード出力
値3をレジスタポインタレジスタ12にライトする。さ
らに、プライオリティエンコーダ11のREMZ値が0
ならば(レジスタリストレジスタ10の全ビットが0で
ないならば)、マイクロアドレスカウンタ15に第11
ステップのマイクロアドレスをロードし、第11ステッ
プと第12ステップを繰り返す。この実施例ではセーブ
命令と同様に第11ステップと第12ステップは4回繰
り返して実行される。このときメモリアドレスレジスタ
3は繰り返す毎に1インクリメントされる。以上によ
り、1回目から4回目までの第12ステップの実行後に
おけるレジスタリストレジスタ10、レジスタポインタ
レジスタ12、復帰されるレジスタは次のように決定さ
れる。
【0046】 1回目 レジスタリストレジスタ :01011000 レジスタポインタレジスタ:1 復帰レジスタ :R1 2回目 レジスタリストレジスタ :01010000 レジスタポインタレジスタ:3 復帰レジスタ :R3 3回目 レジスタリストレジスタ :01000000 レジスタポインタレジスタ:4 復帰レジスタ :R4 4回目 レジスタリストレジスタ :00000000 レジスタポインタレジスタ:6 復帰レジスタ :R6
【0047】(第13ステップ):第12ステップ、ま
たは第9ステップにおいてレジスタリストレジスタ10
の全ビットが0になったら、命令キュー13から図2の
セーブ命令の次の命令のオペコード部をマクロ命令デコ
ーダ14に取り出し、命令を終了する。
【0048】以上の中央処理装置の動作により図9に待
避されていたタスク2の4つの復帰内容がレジスタR
1、R3、R4、R6に復帰されたことになる。
【0049】
【発明の効果】以上説明したように、この発明における
中央処理装置によると、1つの命令コードに従って、タ
スク情報を参照し、コンテキスト待避情報からレジスタ
選択情報を選択しロードすることによりN個のレジスタ
のうちM個のレジスタを選択し、タスクのコンテキスト
をM個のレジスタとメモリとの間で転送させるようにし
たので、タスクのスイッチング処理のとき必要なレジス
タの内容のみを1命令で待避、復帰できるようになっ
た。従って、コンテキストの待避もしくは復帰に必要な
RAM容量を少なくすることができ、また、待避・復帰
処理を高速に行なうことができるようになった。
【図面の簡単な説明】
【図1】 この発明の実施例1に示す中央処理装置の構
成図である。
【図2】 この発明の中央処理装置のセーブ命令、また
はリストア命令の命令コード図である。
【図3】 この発明の中央処理装置のレジスタリストの
例図である。
【図4】 この発明の中央処理装置のコンテキスト待避
情報テーブルを示すメモリ領域図である。
【図5】 この発明の中央処理装置のセーブ命令のマイ
クロプログラムの例図である。
【図6】 この発明の中央処理装置のプライオリティエ
ンコーダの真理値表を示す表図である。
【図7】 この発明の中央処理装置のコンテキスト待避
領域を示すメモリ領域図である。
【図8】 この発明の中央処理装置のリストア命令のマ
イクロプログラムの例図である。
【図9】 この発明の中央処理装置のコンテキスト復帰
領域を示すメモリ領域図である。
【図10】 従来技術による中央処理装置のコンテキス
ト待避領域を示すメモリ領域図である。
【図11】 従来技術による別の中央処理装置のコンテ
キスト待避領域を示すメモリ領域図である。
【図12】 図11における中央処理装置のレジスタリ
ストの例図である。
【図13】 図11における中央処理装置のコンテキス
ト待避情報テーブルを示すメモリ領域図である。
【図14】 図11における中央処理装置のコンテキス
ト待避命令のプログラム例図である。
【符号の説明】
1…レジスタ群、2…メモリデータレジスタ、3…メモ
リアドレスレジスタ、4…一時レジスタ、5…スタック
ポインタ、6…演算ユニット(ALU)、7…第1オペ
ランドバス、8…第2オペランドバス、9…デステネー
ションバス、10…レジスタリストレジスタ、11…プ
ライオリティエンコーダ、12…レジスタポインタレジ
スタ、13…命令キュー、14…マクロ命令デコーダ、
15…マイクロROM、16…マイクロアドレスカウン
タ、17…マイクロ命令デコーダ、18…メモリデータ
バス、19…メモリアドレスバス、20…インクリメン
タ、21…オペコード部、22…第1メモリアドレス
部、、23…第2メモリアドレス部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 N個のレジスタと、1つの命令コードに
    基づき、前記N個のレジスタのうちM個のレジスタを選
    択して、タスクのコンテキストを前記M個のレジスタと
    メモリとの間で転送させることにより前記コンテキスト
    の待避もしくは復帰させる制御手段とを備えた中央処理
    装置であって(但し、M、Nは自然数で、M<N)、前
    記命令コードはタスク情報のアドレスを示す第1のアド
    レス情報、および前記M個のレジスタを選択するレジス
    タ選択情報を含んだ待避情報のアドレスを示す第2のア
    ドレス情報を有し、前記制御手段は前記第1のアドレス
    情報により指定される前記タスク情報を参照して、前記
    第2のアドレス情報により指定される前記コンテキスト
    待避情報から前記レジスタ選択情報を選択しロードする
    ことにより前記タスクのコンテキストを前記M個のレジ
    スタと前記メモリとの間で転送させるようにしたことを
    特徴とする中央処理装置。
JP22961994A 1994-09-26 1994-09-26 中央処理装置 Expired - Fee Related JP3619939B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP22961994A JP3619939B2 (ja) 1994-09-26 1994-09-26 中央処理装置
US08/529,897 US5682531A (en) 1994-09-26 1995-09-18 Central processing unit
KR1019950031959A KR0167005B1 (ko) 1994-09-26 1995-09-26 중앙처리장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22961994A JP3619939B2 (ja) 1994-09-26 1994-09-26 中央処理装置

Publications (2)

Publication Number Publication Date
JPH0895804A true JPH0895804A (ja) 1996-04-12
JP3619939B2 JP3619939B2 (ja) 2005-02-16

Family

ID=16895033

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22961994A Expired - Fee Related JP3619939B2 (ja) 1994-09-26 1994-09-26 中央処理装置

Country Status (3)

Country Link
US (1) US5682531A (ja)
JP (1) JP3619939B2 (ja)
KR (1) KR0167005B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020525957A (ja) * 2017-07-05 2020-08-27 エイアールエム リミテッド コンテキスト・データ管理

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970066915A (ko) * 1996-03-30 1997-10-13 유상부 멀티타스킹을 위한 타스크의 동작모드 제어방법
US6209020B1 (en) * 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
JP3991443B2 (ja) * 1998-04-27 2007-10-17 ソニー株式会社 タスク切り替え方法及びデータ処理装置
US6188411B1 (en) * 1998-07-02 2001-02-13 Neomagic Corp. Closed-loop reading of index registers using wide read and narrow write for multi-threaded system
KR100379151B1 (ko) * 2001-01-04 2003-04-07 패러데이 테크놀로지 코퍼레이션 프로세서 내부의 블록 데이터 전송 명령을 실행하는 장치및 방법
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US8171268B2 (en) * 2005-09-19 2012-05-01 Intel Corporation Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors
US20070101325A1 (en) * 2005-10-19 2007-05-03 Juraj Bystricky System and method for utilizing a remote memory to perform an interface save/restore procedure
JP2008299501A (ja) * 2007-05-30 2008-12-11 Sanyo Electric Co Ltd プロセッサ
US8762692B2 (en) * 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US8631261B2 (en) * 2007-12-31 2014-01-14 Intel Corporation Context state management for processor feature sets
US9519480B2 (en) * 2008-02-11 2016-12-13 International Business Machines Corporation Branch target preloading using a multiplexer and hash circuit to reduce incorrect branch predictions
US8131982B2 (en) * 2008-06-13 2012-03-06 International Business Machines Corporation Branch prediction instructions having mask values involving unloading and loading branch history data
US8887162B2 (en) * 2008-12-17 2014-11-11 Microsoft Corporation Persistent local storage for processor resources
US10338923B2 (en) * 2009-05-05 2019-07-02 International Business Machines Corporation Branch prediction path wrong guess instruction
US8521999B2 (en) * 2010-03-11 2013-08-27 International Business Machines Corporation Executing touchBHT instruction to pre-fetch information to prediction mechanism for branch with taken history
JP5507317B2 (ja) * 2010-04-12 2014-05-28 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及び割込み制御方法
US9898330B2 (en) * 2013-11-11 2018-02-20 Intel Corporation Compacted context state management
US12182572B2 (en) * 2021-08-13 2024-12-31 Infineon Technologies Ag Call and return instructions for saving and restoring different sets of context registers mapped to different call opcodes
US12299451B2 (en) * 2022-08-26 2025-05-13 Texas Instruments Incorporated Securing registers across security zones
WO2025170877A1 (en) * 2024-02-06 2025-08-14 Microchip Technology Incorporated Os context switching

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142677A (en) * 1989-05-04 1992-08-25 Texas Instruments Incorporated Context switching devices, systems and methods

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020525957A (ja) * 2017-07-05 2020-08-27 エイアールエム リミテッド コンテキスト・データ管理
US11704127B2 (en) 2017-07-05 2023-07-18 Arm Limited Marking current context data to control a context-data-dependent processing operation to save current or default context data to a data location

Also Published As

Publication number Publication date
KR960011767A (ko) 1996-04-20
JP3619939B2 (ja) 2005-02-16
KR0167005B1 (ko) 1999-01-15
US5682531A (en) 1997-10-28

Similar Documents

Publication Publication Date Title
JP3619939B2 (ja) 中央処理装置
KR100328162B1 (ko) 정보처리회로와마이크로컴퓨터와전자기기
US4740893A (en) Method for reducing the time for switching between programs
JP3649470B2 (ja) データ処理装置
US20080082800A1 (en) Data processor for modifying and executing operation of instruction code
JP2002517037A (ja) 混合ベクトル/スカラレジスタファイル
JP2006079652A (ja) 多重命令セットによるデータ処理
US4541047A (en) Pipelined data processing system
US4933847A (en) Microcode branch based upon operand length and alignment
US6499099B1 (en) Central processing unit method and apparatus for extending general instructions with extension data of an extension register
JPH10207717A (ja) マイクロコンピュータ
JPH04260927A (ja) データ処理装置
US5991872A (en) Processor
US4245327A (en) Data processor having two types of carry flags
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
JP3504355B2 (ja) プロセッサ
JPH04260929A (ja) データ処理装置
JP3452989B2 (ja) 中央処理装置
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPH07110769A (ja) Vliw型計算機
JPH04260928A (ja) データ処理装置
JPH05282133A (ja) 演算方式
JPS6155130B2 (ja)

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040826

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041102

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20071126

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081126

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091126

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees