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
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
M容量で、かつ高速に行なうコンピュータの中央処理装
置を得ることである。 【構成】 命令コードは第1メモリアドレス部22と第
2メモリアドレス部23とを含み、命令キュー13のプ
リフェッチした命令コードの待避または復帰命令のオペ
コードをマイクロ命令デコーダ14がデコードすると、
マイクロROM15は、第1メモリアドレス部で指定さ
れるタスク番号をインデクス値として、第2メモリアド
レス部で指定されるコンテキスト待避情報テーブルから
タスクのレジスタリストをリードし、レジスタリストで
指定されたレジストを選択的に待避、復帰可能なマイク
ロプログラムを出力する。
Description
理装置に関するもので、特にコンピュータのコンテキス
トの待避と復帰とを高速に行なう中央処理装置に関する
ものである。
場合、タスクのスイッチングを行なう際に中央処理装置
内の汎用レジスタにあるタスクAの内容(コンテキス
ト)をメモリに待避させ、一方メモリ内に待避されてい
たタスクBのコンテキストをメモリから復帰させて実行
するという処理を行う。
理装置において、各汎用レジスタ内のタスクAのデータ
をメモリに待避される場合、図10のように外部メモリ
にレジスタR0〜R7に対応したコンテキスト待避領域
を確保しておく。このような中央処理装置ではタスクA
の使用するレジスタがR0〜R7のうち一部のレジスタ
であっても全てのレジスタのデータが待避領域に待避さ
れてしまう。そのため各レジスタR0〜R7が例えば8
ビットの場合に、仮にタスクAが使用するレジスタがR
1、R3、R4、R6のみであったならば待避する領域
は図11のように2バイトの予備領域を含め合計6バイ
トの待避領域で済むのに図10のように10バイトの待
避領域を必要をする。
ジスタ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のみを待避することを示す。
イッチングする場合のメモリに記憶されるコンテキスト
情報テーブル図である。例えば、タスク0〜タスクN
(Nは整数)間のスイッチングを行なうときに、図のテ
ーブル内にはタスク毎に固有のレジスタリストが設定さ
れ(図ではタスク3まで図示)、同時に待避されるタス
クを識別するためにインデクスとして参照されるタスク
番号が設定される。
待避命令はレジスタリストの指定を通常のアドレッシン
グモードで行なう。このためタスク番号をインデクスと
する場合、タスク番号をメモリからレジスタに一度ロー
ドする必要がある。図14はこのVAX11により待避
されるタスクの使用しているレジスタを待避させるため
のプログラムを示す例図で、アセンブリ言語により表現
されたものである。なお、図14のメモリ1ワードは1
6ビットに相当する。以下のこのプログラムによる装置
の待避動作を説明する。
ク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となる。
1のように、レジスタリストにより指定されたレジスタ
R1、R3、R4、R6のみが待避される。
コンピュータの中央処理装置でコンテキストの待避を行
なう場合、複数のレジスタから任意のレジスタを選択し
てその内容を待避、または復帰するような命令を有さな
い中央処理装置では待避させる必要のないレジスタ内容
の待避、復帰まで行う必要があり、その待避領域の分だ
けRAM容量が大きくなるという問題点が生じ、さらに
不要な待避、復帰により実行時間が増大するという問題
点が生じていた。
避、復帰させるVAX11では、コンテキストの待避を
行なう前にタスク番号を参照するためにタスク番号をレ
ジスタに一時移動しなければならない。そのためタスク
番号を一時保持させる装置内部のレジスタの内容をメモ
リに一時的に待避および復帰する必要があり、これによ
り実行時間が増大するという問題点が生じていた。
なされたもので、コンテキストの待避させるメモリ領域
を少なくしつつ、実行時間を大幅に短縮できる中央処理
装置を得ることを目的としたものである。
装置は、タスク情報のアドレスを示す第1のアドレス情
報、およびM個のレジスタを選択するレジスタ選択情報
を含んだ待避情報のアドレスを示す第2のアドレス情報
を有する1つの命令コードに基づき、N個のレジスタの
うちM個のレジスタを選択して、タスクのコンテキスト
をM個のレジスタとメモリとの間で転送させることによ
りコンテキストの待避もしくは復帰させる制御手段とを
備えたものであって、その制御手段は、タスク情報を参
照して、コンテキスト待避情報からレジスタ選択情報を
選択しロードすることにより、上記のタスクのコンテキ
ストをM個のレジスタとメモリとの間で転送させるよう
にしたものである(但し、M、Nは自然数で、M<
N)。
ク情報のアドレスを示す第1のアドレス情報、およびM
個のレジスタを選択するレジスタ選択情報を含んだ待避
情報のアドレスを示す第2のアドレス情報を有する1つ
の命令コードに基づいて、タスク情報をインデクスとし
てコンテキスト待避情報からレジスタ選択情報を選択し
ロードするようにしたので、コンテキストの待避、復帰
に必要なRAM容量が小さくなり、処理速度が速くな
る。
施例を示すマイコンの中央処理装置のブロック構成図で
ある。図において、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の出力を一
時記憶するレジスタポインタレジスタである。
示せず)から随時プリフェッチされたマクロ命令を記憶
する命令キュー、14は命令キュー13からのマクロ命
令をデコードするマクロ命令デコーダ、15は命令キュ
ー13の出力するマクロ命令を実行するように中央処理
装置を動作させるマイクロ命令が記憶されたマイクロR
OM、16はマクロ命令デコーダ14に従ってマイクロ
ROM15のアドレスを指定するマイクロアドレスカウ
ンタ、17はマイクロROM15から読み出されたマイ
クロ命令をデコードし、この中央処理装置全体の動作を
制御するマイクロ命令デコーダである。
またはレジスタとデータの入出力を行なうメモリデータ
バス、19は本中央処理装置の外部のメモリ、またはレ
ジスタを指定するためのメモリアドレスバス、20はイ
ンクリメンタで、メモリアドレスレジスタ3の内容をA
LU6での演算とは独立してインクリメントすることが
できる。
ーブ命令とリストア命令のコードを示した命令コードの
例図である。図において、21は命令の種類、つまりセ
ーブ命令あるいはリストア命令であることを装置に識別
させるためのオペコード部、22は後述の図4に示すタ
スク番号が格納されているメモリのアドレスを指定する
ための第1メモリアドレス部、23は同じく図4に示す
コンテキストの待避情報テーブルのアドレスを指定する
第2メモリアドレス部である。
ジスタリストを示す例図である。この中央処理装置のレ
ジスタ数はレジスタR0〜R7の8個なので、図3のよ
うに8ビットの値でレジスタR0〜R7を指定する。従
来例と同様、待避すべきレジスタがR1、R3、R4、
R6である場合は01011010(2進)が記憶され
る。
のセーブ命令、またはリストア命令を実行する場合の動
作について説明する。
タスクNー1のタスク(合計N個)のうち2番目のタス
ク2が待避される場合を示す。図4はメモリ内のコンテ
キスト待避情報テーブルを示したものである。コンテキ
スト待避情報として、アドレスX1にはタスク番号、ア
ドレスX2からは0〜Nー1番目の各々タスク毎にタス
クレジスタリストとタスク待避領域サイズが8ビットの
値で記憶されている。
スト(X2+4番地)、待避情報サイズ(X2+5番
地)には次の値が記憶されているものとする。 タスク番号:2 レジスタリスト:01011010(2進) 待避情報サイズ:6
置がセーブ命令を実行するために、マイクロROM15
より出力されるマイクロプログラムの例図である。
命令(セーブ命令)の実行に先立ち、その前の命令を実
行する最後のマイクロ命令のステップで命令キュー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
だけインクリメントする。
このインクリメントされたアドレスを受け、第2ステッ
プのマイクロ命令をマイクロ命令デコーダ17に出力す
る。マイクロ命令デコーダ17はこれをデコードし、メ
モリアドレスレジスタ3で指定されたアドレスX1のメ
モリの内容をメモリデータバス18を介してメモリデー
タレジスタ2にリードするように外部にリード要求す
る。すなわち、メモリデータレジスタ2には図4のコン
テキスト待避情報テーブルに格納されたタスク番号がリ
ードされる。また同様にマイクロアドレスカウンタ16
を1だけインクリメントする。この中央処理装置は次ス
テップ以降、上記と同様の手順でもってマイクロROM
15から各ステップのマイクロ命令を出力し、このマイ
クロ命令により実行制御される。
2のタスク番号の値は第1オペランドバス7よりALU
6に入力され、2倍だけ乗算される。さらにデステネー
ションバス9を介して一時レジスタ4にライトする。よ
って、本実施例のタスク番号2を2倍した4の値が一時
レジスタ4に書き込まれる。
2メモリアドレス部23を取り出し、第1オペランドバ
ス7に出力し、一方、一時レジスタ4の内容を第2オペ
ランドバス8に出力する。ALU6にて両者の値を加算
し、メモリアドレスレジスタ3、一時レジスタ4の2つ
にライトする。ここでは、第2メモリアドレス部に書き
込まれたアドレスX2に第3ステップで演算された4が
加えられたX2+4が書き込まれる。
タ3で指定されたアドレスのメモリ内容を外部メモリよ
りメモリデータバス18を介してメモリデータレジスタ
2にリードする。ここでは、図4のコンテキスト待避情
報テーブルに格納された(X2+4)番地のタスク2レ
ジスタリストがリードされる。すなわち、本例において
メモリデータレジスタには01011010(2進)が
リードされる。
2にリードされた内容、すなわちタスク2レジスタリス
トを第1オペランドバス7、ALU6を介してレジスタ
リストレジスタ10にライトする。さらにライトされた
内容はプライオリティエンコーダ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が出力され
る。
に1を加算し、メモリアドレスレジスタ3にライトす
る。第4ステップで書き込まれた値に1を加えたX2+
4+1がメモリアドレスレジスタ3にライトされる。
タ3で指定されたアドレスX2+5番地のメモリの内容
をメモリデータレジスタ2にリードする。すなわち、図
4におけるタスク2待避領域サイズをリードし、ここで
はサイズの値6がメモリデータレジスタ2にリードされ
る。
ックポインタ5の値から(例えばZとする)メモリデー
タレジスタ3の内容(すなわち、6)を減算し、スタッ
クポインタ5をZー6に書き直す。同時にプライオリテ
ィエンコーダ11のREMZ出力をマイクロアドレスカ
ウンタ16に入力し、REMZが1ならば後述する第1
3ステップのマイクロアドレスをロードし、レジスタの
待避処理である第10〜第12ステップをジャンプす
る。すなわちレジスタリストレジスタ10の全ビットが
0ならば第13ステップまでジャンプする。ここでは全
てのビットは0でないのでマイクロアドレスカウンタ1
6は1だけインクリメントし、次の第10ステップを実
行する。
の値Zー6から1を減算してメモリアドレスレジスタ3
にライトする。同時にプライオリティエンコーダ11の
エンコード出力をレジスタポインタレジスタ12にライ
トする。ここではレジスタリストレジスタ10は010
11010で、プライオリティエンコーダ11は1(2
進で001)を出力する。
ジスタ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)を出力する。
スタ3において指定されるアドレスのメモリにメモリデ
ータレジスタ2の内容をライトする。ここではメモリア
ドレスレジスタ3ではZー6番地が指定されている。同
時にプライオリティエンコーダ11のエンコード値3を
レジスタポインタレジスタ12にライトする。さらにプ
ライオリティエンコーダ11のREMZ出力が0ならば
マイクロアドレスカウンタ16に第11ステップのマイ
クロアドレスをロードさせ、第11ステップと第12ス
テップとを繰り返す。またREMZ値が1ならばマイク
ロアドレスカウンタ16に第13ステップのマイクロア
ドレスをロードさせる。
ジスタリストレジスタ10のレジスタリストの全ビット
が0になるまで4回実行される。このときメモリアドレ
スレジスタ3は第11、第12ステップの繰返し毎に1
インクリメントされる。以上により、1回目から4回目
までの第11ステップの実行後において、レジスタリス
トレジスタ10、レジスタポインタレジスタ12、待避
されるレジスタは次のように決定される。
たは第9ステップにおいてプライオリティエンコーダ1
1のREMZ値が1、すなわちレジスタリストレジスタ
10の全ビットが0になったら、命令キュー13から図
2のセーブ命令の次の命令のオペコード部をマクロ命令
デコーダ14に取り出し、命令を終了する。
1、R3、R4、R6が待避されることになる。図7は
メモリの待避領域を示す例図である。第9ステップが実
行される前のスタックポインタはメモリのZ番地を指
し、第9ステップの実行後にタスク2待避領域サイズの
値6を減算したZー6番地を指す。第11ステップでメ
モリアドレスレジスタ3を1ずつインクリメントしてZ
ー6番地から順にレジスタR1、R3、R4、R6の待
避領域が指定され、レジスタ内容が待避される。
央処理装置で図2のオペコード部21がリストア命令を
実行する場合の動作について説明する。図8は図2のリ
ストア命令コードにより中央処理装置がリストア命令を
実行するために、マイクロROM15より出力されるマ
イクロプログラムの例図である。ここではコンテキスト
待避情報テーブル上のタスク番号、タスク2レジスタリ
スト、タスク2待避領域サイズは前述のセーブ命令の場
合と同じ情報である。さらに図9のようにメモリにR
1、R3、R4、R6の4つのレジスタに復帰させるタ
スク2の復帰内容が待避されており、リストア命令の実
行前のスタックポインタはZー6番地のコンテキスト待
避領域の下端のアドレスを示している。
ラムを実行するが、第8ステップまでは図5のセーブ命
令の場合と同様なので説明を省略する。以降第9ステッ
プより説明する。
ト待避領域の下端のアドレスであるZー6番地を指すス
タックポインタ5の内容をメモリアドレスレジスタ3に
ライトする。
ステップでメモリからタスク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
ステップを実行する。
トされたメモリアドレスレジスタ3で指定されるアドレ
ス(Zー6)番地のメモリ内容をメモリデータレジスタ
2にリードする。これは図9の復帰するR1の内容であ
る。同時に第10ステップにおいてレジスタポインタレ
ジスタ12で指定された番号1に対応するレジスタリス
トレジスタ10のビットをクリアにする。この結果、レ
ジスタリストレジスタ10は01011010(2進)
から01011000(2進)になる。よってプライオ
リティエンコーダ11は3(2進で011)のエンコー
ド値を出力する。
いてレジスタポインタレジスタ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、復帰されるレジスタは次のように決定さ
れる。
たは第9ステップにおいてレジスタリストレジスタ10
の全ビットが0になったら、命令キュー13から図2の
セーブ命令の次の命令のオペコード部をマクロ命令デコ
ーダ14に取り出し、命令を終了する。
避されていたタスク2の4つの復帰内容がレジスタR
1、R3、R4、R6に復帰されたことになる。
中央処理装置によると、1つの命令コードに従って、タ
スク情報を参照し、コンテキスト待避情報からレジスタ
選択情報を選択しロードすることによりN個のレジスタ
のうちM個のレジスタを選択し、タスクのコンテキスト
をM個のレジスタとメモリとの間で転送させるようにし
たので、タスクのスイッチング処理のとき必要なレジス
タの内容のみを1命令で待避、復帰できるようになっ
た。従って、コンテキストの待避もしくは復帰に必要な
RAM容量を少なくすることができ、また、待避・復帰
処理を高速に行なうことができるようになった。
成図である。
はリストア命令の命令コード図である。
例図である。
情報テーブルを示すメモリ領域図である。
クロプログラムの例図である。
ンコーダの真理値表を示す表図である。
領域を示すメモリ領域図である。
イクロプログラムの例図である。
領域を示すメモリ領域図である。
ト待避領域を示すメモリ領域図である。
キスト待避領域を示すメモリ領域図である。
ストの例図である。
ト待避情報テーブルを示すメモリ領域図である。
ト待避命令のプログラム例図である。
リアドレスレジスタ、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】 N個のレジスタと、1つの命令コードに
基づき、前記N個のレジスタのうちM個のレジスタを選
択して、タスクのコンテキストを前記M個のレジスタと
メモリとの間で転送させることにより前記コンテキスト
の待避もしくは復帰させる制御手段とを備えた中央処理
装置であって(但し、M、Nは自然数で、M<N)、前
記命令コードはタスク情報のアドレスを示す第1のアド
レス情報、および前記M個のレジスタを選択するレジス
タ選択情報を含んだ待避情報のアドレスを示す第2のア
ドレス情報を有し、前記制御手段は前記第1のアドレス
情報により指定される前記タスク情報を参照して、前記
第2のアドレス情報により指定される前記コンテキスト
待避情報から前記レジスタ選択情報を選択しロードする
ことにより前記タスクのコンテキストを前記M個のレジ
スタと前記メモリとの間で転送させるようにしたことを
特徴とする中央処理装置。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020525957A (ja) * | 2017-07-05 | 2020-08-27 | エイアールエム リミテッド | コンテキスト・データ管理 |
Families Citing this family (21)
| 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)
| 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 |
-
1994
- 1994-09-26 JP JP22961994A patent/JP3619939B2/ja not_active Expired - Fee Related
-
1995
- 1995-09-18 US US08/529,897 patent/US5682531A/en not_active Expired - Lifetime
- 1995-09-26 KR KR1019950031959A patent/KR0167005B1/ko not_active Expired - Fee Related
Cited By (2)
| 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 |