JP2003150390A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JP2003150390A JP2003150390A JP2002220714A JP2002220714A JP2003150390A JP 2003150390 A JP2003150390 A JP 2003150390A JP 2002220714 A JP2002220714 A JP 2002220714A JP 2002220714 A JP2002220714 A JP 2002220714A JP 2003150390 A JP2003150390 A JP 2003150390A
- Authority
- JP
- Japan
- Prior art keywords
- task
- data
- microprocessor
- register file
- memory
- 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
Abstract
ングを可能にする。 【解決手段】 タスク1の実行中に割り込み制御信号の
入力を受け付けると、プログラムカウンタ1−1から1
−2に切り替えられ、レジスタファイル4−1から4−
2の経路に切り替えられ、タスク2の実行が開始され
る。タスク2の実行中に、タスク切替制御部41は、ス
イッチ51、スイッチ53乃至56、並びにスイッチ7
0を、プログラムカウンタ1−1、演算回路3の記憶素
子21−1,22−1および23−1、並びにレジスタ
ファイル4−1をそれぞれ選択するように制御し、それ
らに記憶されているデータを第1の退避メモリ42に退
避させる。データ退避終了後、第1の退避メモリ42に
退避されているタスク3のデータが、プログラムカウン
タ1−1、演算回路3の記憶素子21−1,22−1お
よび23−1、並びにレジスタファイル4−1にそれぞ
れ復元される。
Description
サに関し、特に、例えば、時間的オーバヘッドの少ない
タスクスイッチングを可能にしたマイクロプロセッサに
関する。特に、ソフトウェア無線技術(software radi
o)のように、復調処理、誤り訂正処理、プロトコル処
理のように種々の異なる処理を要求されるプロセッサに
好適なマイクロプロセッサに関する。
器内部に組み込まれるマイクロプロセッサにおいても、
さらなる高度化、かつ、効率的な処理が要求されてい
る。すなわち、大量のプログラムを実行する高速なマイ
クロプロセッサが必要とされている。
リアルタイム処理を要求されることが多く、複雑なプロ
グラムの中でタイミングに制約のある部分を、確実に、
かつ、決められた時間内に実行すること、並びに、プロ
グラムを変更した際に処理時間が間に合うか否かを見通
し良く予測することが強く望まれる。
り、以前に較べ、より多くの回路をマイクロプロセッサ
に使用することが可能となり、高度化、かつ、効率的な
処理の要求が満たされるのであれば、多少の回路量の増
大は許容される場合が多くなってきた。
積密度が向上しているため、マイクロプロセッサとは別
のチップとされていたメモリなどを同一チップに集積す
ることができ、パッケージのピン数などの制約を受ける
ことにより制限されてきたマイクロプロセッサとメモリ
間のバス幅を大幅に広げることが可能となる。従って、
バス幅の増大およびバスの複数化に関して、制約が大幅
に緩和されている。
アルタイム処理を実行する場合、外部周辺回路から、不
定期もしくは周期的な割り込み制御信号の入力を受け付
け、各種割り込みに応じたプログラム(いわゆる割り込
みサービス)を実行することができる。
みサービスの間には連続性がないため、マイクロプロセ
ッサの内部状態(例えば、演算回路に使用しているパイ
プラインフリップフロップなど)を退避させるか、もし
くは、実行をストールするかによって、それまで実行し
ていたプログラムの演算結果を割り込みサービスが変更
しないようになされている。
の構成について、図1を参照して説明する。
命令(タスク)のアドレスを記憶しておくためのレジス
タであり、記憶されている、次に実行すべき命令のアド
レスを命令メモリ2に供給する。命令メモリ2は、プロ
グラムカウンタ1から供給されるアドレスに基づいて読
み出された命令を演算回路3に供給する。命令キャッシ
ュ7は、命令メモリ2のデータの出し入れの速度が、演
算回路3と比較して遅い場合に、アクセス局所性(Acce
ss Locality)を利用して擬似的に高速なデータアクセ
スをなすための緩衝用のメモリである。
乃至15の5段のパイプラインのRISC(Reduced Instru
ction Set Computer)プロセッサで構成されているもの
とする。
ている命令(タスク)を読み出し(IF:Instruction Fe
tch)、記憶素子20に記憶させる。ステージ12は、
記憶素子20に記憶されている命令およびレジスタファ
イル4に格納されているデータを読み出してデコード
(ID:Instruction Decode)し、記憶素子21に記憶さ
せる。
ている命令を読み出して実行し(EX:Execution)、そ
の命令によって演算されたデータを記憶素子22に記憶
させる。
ているデータを読み出し、記憶素子23に記憶させる。
ステージ14はまた、演算回路3内の内部状態に関する
データおよびレジスタファイル4の内容をデータメモリ
5に書き込ませる(MEM:Memory access)とともに、デ
ータメモリ5に書き込まれているデータを読み出し、演
算回路3およびレジスタファイル4に復元させる。ステ
ージ15は、記憶素子23に記憶されているデータを読
み出し、レジスタファイル4へライトバック(WB:Writ
e Back)する。データメモリ5とステージ14の間に
は、擬似的に高速なデータアクセスをなすためのデータ
キャッシュ6が一般的には存在する。
における、割り込みサービスによるタスク切り替えのタ
イミング動作を説明する図である。
て、ステージ11は、命令メモリ2に記憶されているタ
スク1を読み出し、記憶素子20に記憶させる。時刻T
2において、ステージ12は、記憶素子20に記憶され
ているタスク1を読み出し、それをデコードし、記憶素
子21に記憶させる。時刻T3において、ステージ13
は、記憶素子21に記憶されているタスク1を読み出
し、それを実行し、演算結果を記憶素子22に記憶させ
る。時刻T4において、ステージ14は、記憶素子22
に記憶されているデータを読み出し、記憶素子23に記
憶させる。時刻T5において、ステージ15は、記憶素
子23に記憶されているデータを読み出し、レジスタフ
ァイル4へライトバックする。
11)に入力された信号は、クロック時間Tを経過した
後、次のステージ(いまの場合、ステージ12)に供給
される。その後、このステージ(ステージ11)に次の
入力があっても、この信号は、クロック時間Tを経過し
た後、次のステージ(ステージ12)に供給される。従
って、次のステージ(ステージ12)は、前のステージ
(ステージ11)の入力の影響を受ける前に、現在の信
号を、さらに次のステージ(いまの場合、ステージ1
3)に供給することができる。
号(割り込みサービス)が発生されると、マイクロプロ
セッサは、時刻T8において、次に実行すべき命令(タ
スク2)のアドレスを命令メモリ2に供給させるように
プログラムカウンタ1のアドレス切り替えを制御する。
その後、演算回路3には、パイプラインストールが発生
されるため、レジスタ退避命令が発生されるまで待機す
る。
てデータがレジスタファイル4へライトバックされると
(全てのタスク1が吐き出されると)同時に、レジスタ
退避命令が発生され、ステージ14からデータメモリ5
に、演算回路3内の内部状態に関するデータおよびレジ
スタファイル4の内容が退避される。
T15において、命令メモリ2に記憶されているタスク
2が読み出され、タスク2の実行が開始される。それ以
降、上述したタスク1と同様の動作が繰り返し実行され
る。
終了する時刻T52において、レジスタ復帰命令が発生
され、データメモリ5から、タスク1の実行における演
算回路3の内部状態およびレジスタファイル4の内容が
復元される。ステージ11のデータ復元が終了する時刻
T55において、マイクロプロセッサは、次に実行すべ
き命令(タスク1)のアドレスを命令メモリ2に供給さ
せるようにプログラムカウンタ1のアドレス復帰を制御
する。その後、演算回路3には、パイプラインストール
が発生され、ステージ15のデータ復元が終了されるま
で待機する。時刻T59において、ステージ15のデー
タ復元が終了されると、タスク1の実行が再開され、上
述した動作が繰り返される。
の実行によりレジスタファイル4の内容が破壊されない
ように、割り込みサービスを受け付ける前に、実行中の
演算回路3の内部状態およびレジスタファイル4の内容
が退避される。そして、割り込みサービスから復帰する
場合には、退避させていた演算回路3の内部状態および
レジスタファイル4の内容を復元することにより、割り
込みサービスによって、それ以前に実行されていたプロ
グラムの演算結果が変更されることを防止している。
ジスタファイル4−1および4−2を設け、割り込みサ
ービスを実行する際にレジスタファイルを切り替えるこ
とによって瞬時にタスクを切り替えることができるよう
にしたマイクロプロセッサも存在する。なお、図1と対
応する部分には同一の符号を付してあり、その説明は適
宜省略する。
ァイル4−1に記憶されているタスクが実行されている
状態で割り込みサービスを受け付けたとき、他方のレジ
スタファイル4−2に記憶されているタスクを瞬時に実
行することができるようにスイッチ31および32がレ
ジスタファイル4−1からレジスタファイル4−2を選
択するように切り替えられるため、データ退避のための
オーバヘッドが発生しない。
における、割り込みサービスによるタスク切り替えのタ
イミング動作を説明する図である。
て、タスク切り替え制御信号(割り込みサービス)が発
生されると、マイクロプロセッサは、時刻T8におい
て、次に実行すべき命令(タスク2)のアドレスを命令
メモリ2に供給するようにプログラムカウンタ1のアド
レス切り替えを制御する。その後、演算回路3には、パ
イプラインストールが発生され、時刻T12において、
ステージ15によってデータがレジスタファイル4−1
へライトバックされると(全てのタスクが吐き出される
と)同時に、スイッチ31および32がレジスタファイ
ル4−1からレジスタファイル4−2を選択するように
切り替えられ、命令メモリ2に記憶されているタスク2
が読み出され、実行される。
設けることにより、タスク1およびタスク2の切り替え
を瞬時に行うことができる。
よび図2の例の場合、レジスタファイルの内部状態の退
避およびパイプラインストールのために数十クロックを
使用しなければならず、割り込みサービスが発生する毎
に、比較的大きな時間的オーバヘッドが生じる課題があ
った。
意したレジスタファイル群(図3の場合、2個)以上の
多重割り込みサービスが存在する場合、やはり、図1の
例の場合と同様に、レジスタファイル4の内部状態の退
避およびパイプラインストールのための時間的オーバヘ
ッドが生じてしまう課題があった。
リ階層構造の中で、最も高速で動作しなければならない
レジスタファイルを大量に設けることは、回路規模が大
きくなり、かつ、配線が多くなることを意味し、マイク
ロプロセッサのクロック速度向上の妨げとなる課題があ
った。
ものであり、レジスタファイルを大量に設けなくても、
時間的オーバヘッドの少ないタスク切り替えを可能にす
るとともに、ほぼ無制限の割り込み多重化を実現するこ
とができるようにするものである。
ッサは、データを演算する少なくとも1系統の演算手段
と、演算手段により演算されたデータを記憶する少なく
とも2系統の記憶手段と、少なくとも2系統の記憶手段
のうちのいずれかを選択するように制御する制御手段
と、制御手段によって選択された記憶手段を用いて第1
のタスクを実行中に、他方の記憶手段で保持されている
第2のタスクに関するデータを退避する退避手段と、退
避手段によって退避されている第3のタスクに関するデ
ータを、制御手段によって選択された記憶手段を用いて
第1のタスクを実行中に、他方の記憶手段に復元する復
元手段とを備えることを特徴とする。
発生されたとき、他方の記憶手段を選択するように制御
させることができる。
の入力を受けたとき、他方の記憶手段を選択するように
制御させることができる。
で割り込み制御信号の入力を受けたとき、制御手段に
は、退避手段によりデータの退避が終了するまで割り込
み制御信号を保留させ、データの退避が終了したとき、
他方の記憶手段を選択するように制御させることができ
る。
で割り込み制御信号の入力を受けたとき、制御手段に
は、データの復元を中止させ、他方の記憶手段を選択す
るように制御させることができる。
であるとすることができる。
させることができる。
するメモリ及び前記1系統の演算手段と接続し、退避手
段をマイクロプロセッサ外部に存在するメモリ又はキャ
ッシュとして動作させることができる。
2系統の記憶経路のうちのいずれかが選択され、選択さ
れた記憶経路を用いて第1のタスクを実行中に、他方の
記憶経路で保持されている第2のタスクに関するデータ
がメモリに退避され、メモリに退避されている第3のタ
スクに関するデータが、他方の記憶経路に復元される。
施の形態について説明する。
ッサの内部の構成例を示すブロック図である。なお、従
来と対応する部分には同一の符号を付してあり、その説
明は適宜省略する。本発明においては、プログラムカウ
ンタ1、レジスタファイル4、並びに、演算回路3内の
記憶素子20乃至23を、それぞれ2系統で構成する
が、勿論、2以上の複数系統で構成するようにしてもよ
い。これに対して、ステージ11乃至15は、1系統の
みで構成されている。厳密に言うと、命令メモリ2とデ
ータメモリ5は、マイクロプロセッサには含まれず、そ
れ以外の部分をマイクロプロセッサコア(Microprocess
or Core)という。
ッサ内のスイッチ51乃至70を、所定の時間毎に発生
されるタスク切り替え制御信号により切り替えるように
制御するか、もしくは外部割り込み制御信号の入力によ
り切り替えるように制御する。初期状態において、タス
ク切替制御部41は、プログラムカウンタ1−1および
1−2のうち、プログラムカウンタ1−1を選択するよ
うにスイッチ52を制御し、演算回路3内の2系統のパ
イプラインのうち、記憶素子20−1,21−1,22
−1および23−1をそれぞれ選択するようにスイッチ
57乃至60を制御し、レジスタファイル4−1および
4−2のうち、レジスタファイル4−1を選択するよう
にスイッチ68および69をそれぞれ制御する。
スイッチ(選択装置)であり、タスク切替制御部41の
制御の下、プログラムカウンタ1−1または1−2から
供給されるアドレスを第1の退避メモリ42に供給す
る。スイッチ52は、タスク切替制御部41の制御の
下、プログラムカウンタ1−1または1−2から供給さ
れるアドレスを命令メモリ2に供給する。
ログラムカウンタ1−1または1−2から供給されるア
ドレスに基づいて読み出される命令(タスク)を、演算
回路3に供給する。
段のパイプラインのRISCプロセッサで構成されており、
記憶素子が2個ずつ設けられているため、2系統のパイ
プラインとされている。なお、本発明の実施の形態にお
いては、パイプラインが5段になっている例を示した
が、段数は任意であり、より多くても少なくてもよい。
ている命令(タスク)を読み出し、記憶素子20−1ま
たは20−2に記憶させる。ステージ12は、記憶素子
20−1または20−2に記憶されている命令をスイッ
チ57を介して読み出すとともに、レジスタファイル4
−1または4−2に格納されているデータをスイッチ6
8または69を介して読み出し、それらをデコードし、
記憶素子21−1または21−2に記憶させる。
21−2に記憶されている命令をスイッチ58を介して
読み出し、読み出した命令を実行し、その命令によって
演算されたデータを記憶素子22−1または22−2に
記憶させる。
22−2に記憶されているデータをスイッチ59を介し
て読み出し、記憶素子23−1または23−2に記憶さ
せる。ステージ14はまた、タスクの実行により得られ
るデータをデータメモリ5に書き込ませるとともに、デ
ータメモリ5に書き込まれているデータを読み出し、記
憶素子23−1または23−2に記憶させる。
23−2に記憶されているデータをスイッチ60を介し
て読み出し、レジスタファイル4−1または4−2へラ
イトバックする。
スイッチ(選択装置)であり、タスク切替制御部41の
制御の下、記憶素子20−1または20−2から読み出
される命令(タスク)を第1の退避メモリ42に供給す
る。スイッチ54は、退避用読み出しのためのスイッチ
であり、タスク切替制御部41の制御の下、記憶素子2
1−1または21−2から読み出されるデータを第1の
退避メモリ42に供給する。スイッチ55は、退避用読
み出しのためのスイッチであり、タスク切替制御部41
の制御の下、記憶素子22−1または22−2から読み
出されるデータを第1の退避メモリ42に供給する。ス
イッチ56は、退避用読み出しのためのスイッチであ
り、タスク切替制御部41の制御の下、記憶素子23−
1または23−2から読み出されるデータを第1の退避
メモリ42に供給する。
スイッチであり、第1の退避メモリ42から供給される
データ(アドレス)を、プログラムカウンタ1−1また
は1−2に供給する。スイッチ62は、復元用書き込み
のためのスイッチであり、第1の退避メモリ42から供
給されるデータ(命令)を、記憶素子20−1または2
0−2に供給する。スイッチ63は、復元用書き込みの
ためのスイッチであり、第1の退避メモリ42から供給
されるデータを、記憶素子21−1または21−2に供
給する。スイッチ64は、復元用書き込みのためのスイ
ッチであり、第1の退避メモリ42から供給されるデー
タを、記憶素子22−1または22−2に供給する。ス
イッチ65は、復元用書き込みのためのスイッチであ
り、第1の退避メモリ42から供給されるデータを、記
憶素子23−1または23−2に供給する。
めのスイッチであり、タスク切替制御部41の制御の
下、ステージ15からライトバックされるデータを、レ
ジスタファイル4−1または4−2に供給する。
スイッチであり、タスク切替制御部41の制御の下、第
1の退避メモリ42から供給されるデータを、レジスタ
ファイル4−1または4−2に供給する。
み出しのためのスイッチであり、タスク切替制御部41
の制御の下、レジスタファイル4−1または4−2から
読み出されるデータをステージ12に供給する。
スイッチであり、タスク切替制御部41の制御の下、レ
ジスタファイル4−1または4−2から読み出されるデ
ータを、第1の退避メモリ42に供給する。
介して供給されるプログラムカウンタ1−1または1−
2からの退避データ、スイッチ53乃至56を介して供
給される演算回路3からの退避データ、並びに、スイッ
チ70を介して供給されるレジスタファイル4−1また
は4−2からの退避データを書き込む。書き込まれた退
避データは、復元時に読み出される。また、第1の退避
メモリ42に加え、第2の退避メモリ43が存在すると
さらに好適である。例えば、第1の退避メモリ42は容
量(capacity)は小さいが、転送速度が早いメモリ(Hi
gh Access bandwidth)であり、第2の退避メモリ43
は、容量は大きいが転送速度が遅い(LowAccess bandwi
dth)ものとする。その場合は、すぐに処理が必要とさ
れないデータは第2の退避メモリ43にセーブしてお
く、などの多段階の処理が可能になる。
る命令メモリ2と、第1の退避メモリ42及び第2の退
避メモリ43を接続し、さらにその入出力をステージ1
1へ双方向接続することにより、第1の退避メモリ42
又は第2の退避メモリ43を命令キャッシュ7(図1)
として利用することもできる。同様に、マイクロプロセ
ッサの外部に存在するデータメモリ5と、第1の退避メ
モリ42及び第2の退避メモリ43を接続し、さらにそ
の入出力をステージ14へ双方向接続することにより、
第1の退避メモリ42又は第2の退避メモリ43をデー
タキャッシュ6(図1)として利用することもできる。
このように、退避メモリとキャッシュを兼用することに
より、実装効率(面積効率)を改善することができる。
2及び第2の退避メモリ43が接続されることで、退避
メモリを命令メモリ2として代用することも可能にな
る。これを上述の例にあてはめると、容量は小さいが転
送速度の速い第1の退避メモリ42を命令キャッシュ7
として代用し、容量は大きいが転送速度の遅い第2の退
避メモリ43を命令メモリ2として代用することも可能
である。このような構成にすることで、実装効率(面積
効率)を改善することもできる。
プロセッサ内部にあってもよいし、外部にあってもよ
い。
込まれるか、もしくは、並列に同時に書き込まれる。ま
た同様に、復元するデータも、多重化して読み出される
か、もしくは、並列に同時に読み出される。
における、割り込みサービスによるタスク切り替えのタ
イミング動作を説明する図である。ここでは、タスク
1、タスク2、およびタスク3の順で実行されるように
スケジュールされているものとし、これらタスク1乃至
タスク3のうち、タスク3は、以前に、タスクの実行途
中に割り込み入力されたことがあり、第1の退避メモリ
42に退避データが存在するものとし、タスク2は、第
1の退避メモリ42に退避データが存在せず、タスク2
の実行開始時において退避データの復元は必要ないもの
として説明する。なお、現在演算に使用されているレジ
スタファイルを「表」、現在演算に使用していないレジ
スタファイルを「裏」と適宜称することにする。
タスク1が実行されており、時刻T7において、タスク
切り替え制御信号が発生されると、タスク切替制御部4
1は、時刻T8において、プログラムカウンタ1−1か
らプログラムカウンタ1−2を選択するようにスイッチ
52を制御する。時刻T9において、タスク切替制御部
41は、レジスタファイル4−1からレジスタファイル
4−2の経路に切り替えるようにスイッチ68および6
9を制御する。これにより、レジスタファイル4−1が
「表」から「裏」に切り替えられ、レジスタファイル4
−2が「裏」から「表」に切り替えられ、命令メモリ2
に記憶されているタスク2の実行が開始される。それ以
降、タスク1と同様の動作が繰り返し実行される。
T8において、記憶素子20−2を選択するようにスイ
ッチ57を切り替え、時刻T9において、記憶素子21
−2を選択するようにスイッチ58を切り替え、時刻T
10において、記憶素子22−2を選択するようにスイ
ッチ59を切り替え、時刻T11において、記憶素子2
3−2を選択するようにスイッチ60を切り替える。こ
のように、各ステージ毎にタスク1の実行からタスク2
の実行に切り替えられる。
てデータがレジスタファイル4−1へライトバックされ
ると(全てのタスク1が吐き出されると)同時に、タス
ク切替制御部41は、レジスタファイル4−2にデータ
をライトバックするように、スイッチ66を切り替え
る。これにより、レジスタファイル4−1は「裏」(待
機状態)となるため、その時間を利用して、第1の退避
メモリ42に、レジスタファイル4−1の内容およびタ
スク1の実行における演算回路3の内部状態に関するデ
ータを退避させ、次に実行すべきタスクを復元させてお
く。
行されるようにスケジュールされているため、タスク2
の実行中に、タスク1のデータ退避、およびタスク3の
データ復元を行うようにする。
切替制御部41によって、スイッチ51、スイッチ53
乃至56、並びにスイッチ70が、「裏」となるプログ
ラムカウンタ1−1、演算回路3の記憶素子20−1,
21−1,22−1および23−1、並びにレジスタフ
ァイル4−1をそれぞれ選択するように切り替えられ、
プログラムカウンタ1−1、演算回路3の記憶素子20
−1,21−1,22−1および23−1、並びにレジ
スタファイル4−1に記憶されているデータが第1の退
避メモリ42に退避される。そして、時刻T32におい
て、データ退避が終了されると、時刻T34において、
第1の退避メモリ42に退避されているタスク3のデー
タが、「裏」となるプログラムカウンタ1−1、演算回
路3の記憶素子20−1,21−1,22−1および2
3−1、並びにレジスタファイル4−1にそれぞれ書き
込まれ、復元される。
となるプログラムカウンタ1−1、演算回路3の記憶素
子20−1,21−1,22−1および23−1、並び
にレジスタファイル4−1にタスク3の以前の切り替え
時のデータが復元されるため、タスク1からタスク2の
切り替えと同様に、瞬時にタスク2からタスク3に切り
替えられる。
レジスタファイル4−2、プログラムカウンタ1−2、
演算回路3の記憶素子20−2,21−2,22−2お
よび23−2に記憶されているタスク2のデータを第1
の退避メモリ42に退避させ、次に実行すべきタスク1
をそれらに復元することによって、時間的オーバヘッド
なしにタスク切り替え(タスクスイッチング)を実行す
ることができる。
に応じて、複数のタスクを自由に切り替えて実行するこ
とも可能となる。
が、適切なタイミングで与えられるものとして説明した
が、例えば、自走するカウンタによってタスク切り替え
制御信号を生成することによって、各タスクに均等に実
行時間を与えることもできる。
設け、そのダウンカウンタの値が0となるタイミングで
タスク切り替え制御信号を発生させるものとし、タスク
切り替え制御信号が発生したときにプリロード値をダウ
ンカウンタ内にロードするように構成すれば、予め設定
するプリロード値を変更するだけで、タスク切り替えの
間隔を可変にすることができる。
ロード値を保持する複数のレジスタを設け、それらのレ
ジスタをどのような順番でロードするかをプログラムに
よって設定することにより、柔軟なタスク切り替えを実
現することができる。
が予測可能である場合について説明したが、外部割込み
サービスにおいても、時間的オーバヘッドなしにタスク
切り替えを実行することができる。
メモリ42を設ける場合を例にして説明したが、これに
限らず、例えば、図示せぬキャッシュメモリに退避メモ
リを兼用させるようにしてもよい。
切り替えのタイミング動作を説明する図である。この例
の場合、データ退避およびデータ復元が実行されていな
いタイミングに割り込みサービスがあるため、通常のタ
スク切り替えと同様に扱うことができる。
に行われるタスク1のデータ退避が時刻T32に終了
し、その後、時刻T33において、外部から割り込み制
御信号の入力を受け付けると、タスク切替制御部41
は、時刻T34において、プログラムカウンタ1−2か
らプログラムカウンタ1−1を選択するようにスイッチ
52を制御するとともに、演算回路3の記憶素子20−
1,21−1,22−1および23−1をそれぞれ選択
するようにスイッチ61乃至65を制御する。時刻T3
5において、タスク切替制御部41は、レジスタファイ
ル4−2からレジスタファイル4−1の経路に切り替え
るようにスイッチ68および69を制御する。
されているタスク3のデータが、プログラムカウンタ1
−1、演算回路3の記憶素子20−1,21−1,22
−1および23−1、並びにレジスタファイル4−1に
それぞれ復元され、タスク3が実行され、いままで実行
されていたタスク2は中断される。すなわち、レジスタ
ファイル4−1の内容、およびタスク1の実行における
演算回路3の内部状態に関するデータは既に第1の退避
メモリ42に退避されているため、直ちにタスク3の実
行を行うことができる。
てデータがレジスタファイル4−1へライトバックされ
ると(全てのタスク2が吐き出されると)同時に、タス
ク切替制御部41は、タスク3をレジスタファイル4−
1にライトバックするように、スイッチ66を切り替え
る。
時刻T40において、タスク切替制御部41は、レジス
タファイル4−1から4−2の経路に切り替えるように
スイッチ68および69を制御する。これにより、割り
込みにより中断されていたタスク2の実行が再開され
る。
1によって、スイッチ61乃至65、およびスイッチ6
7が、「裏」となるプログラムカウンタ1−1、演算回
路3の記憶素子20−1,21−1,22−1および2
3−1、並びにレジスタファイル4−1をそれぞれ選択
するように切り替えられ、第1の退避メモリ42に退避
されているデータが、レジスタファイル4−1、プログ
ラムカウンタ1−1、演算回路3の記憶素子20−1,
21−1,22−1および23−1に書き込まれ、復元
される。
ムカウンタ1−1、演算回路3の記憶素子20−1,2
1−1,22−1および23−1、並びにレジスタファ
イル4−1を、割り込みが入ったタスクの演算用に割り
当てることにより、割り込みされ、一時中断されたタス
ク2の状態を保存する必要がない。すなわち、データ退
避およびデータ復元は不要となる。
タスク切り替えのタイミング動作を説明する図である。
この例においては、データ退避中に割り込みサービスが
あった場合の動作について説明する。
に行われるデータ退避の途中の時刻T31において、外
部から割り込み制御信号の入力を受け付けると、タスク
切替制御部41は、その受け付けを一旦保留し、データ
退避が終了するまで待機する。
実行中に行われるデータ退避が終了されると、時刻T3
3において、タスク切替制御部41は、保留されている
割り込み制御信号の入力を受け付ける。時刻T34にお
いて、タスク切替制御部41は、プログラムカウンタ1
−2からプログラムカウンタ1−1を選択するようにス
イッチ52を制御するとともに、演算回路3の記憶素子
20−1,21−1,22−1および23−1をそれぞ
れ選択するようにスイッチ61乃至65を制御する。時
刻T35において、タスク切替制御部41は、レジスタ
ファイル4−2からレジスタファイル4−1の経路に切
り替えるようにスイッチ68および69を制御する。
されているタスク3のデータが、プログラムカウンタ1
−1、演算回路3の記憶素子20−1,21−1,22
−1および23−1、並びにレジスタファイル4−1に
それぞれ復元され、タスク3が実行され、いままで実行
されていたタスク2は中断される。
てデータがレジスタファイル4−2へライトバックされ
ると(全てのタスク2が吐き出されると)同時に、タス
ク切替制御部41は、タスク3をレジスタファイル4−
1にライトバックするように、スイッチ66を切り替え
る。時刻T39において、タスク切替制御部41によっ
て、スイッチ51、スイッチ53乃至56、並びにスイ
ッチ70が、「裏」となるプログラムカウンタ1−2、
演算回路3の記憶素子20−1,21−2,22−2お
よび23−2、並びにレジスタファイル4−2をそれぞ
れ選択するように切り替えられ、プログラムカウンタ1
−2、演算回路3の記憶素子20−2,21−2,22
−2および23−2、並びにレジスタファイル4−2に
記憶されているデータが第1の退避メモリ42に退避さ
れる。
入る場合には、その退避が終了するまで割り込み制御信
号の受け付けを保留にすることによって、確実にデータ
を退避させることができ、かつ、時間的オーバヘッドな
しにタスク切り替えを実行することができる。
スク切り替えのタイミング動作を説明する図である。こ
の例においては、データ復元中に割り込みサービスがあ
った場合の動作について説明する。
に行われるデータ復元の途中の時刻T11において、外
部から割り込み制御信号の入力を受け付けると、データ
の復元を中止し、時刻T12において、タスク切替制御
部41は、プログラムカウンタ1−2からプログラムカ
ウンタ1−1を選択するようにスイッチ52を制御する
とともに、レジスタファイル4−2からレジスタファイ
ル4−1の経路に切り替えるようにスイッチ68および
69を制御する。
されているタスク3のデータが、プログラムカウンタ1
−1、演算回路3の記憶素子20−1,21−1,22
−1および23−1、並びにレジスタファイル4−1に
それぞれ復元され、タスク3が実行され、いままで実行
されていたタスク2は中断される。なお、途中まで復元
されていたデータは、割り込まれたタスク3によって上
書きされる。
終了すると、時刻T20において、タスク切替制御部4
1は、レジスタファイル4−1からレジスタファイル4
−2の経路に切り替えるようにスイッチ68および69
を制御する。これにより、中断されていたタスク2が再
開され、時刻T20において、割り込みにより中止され
たデータの復元が再開される。
入る場合には、その復元を中止し、割り込みサービスが
終了した時点で、復元をやり直すことによって、確実に
データを復元させることができ、かつ、時間的オーバヘ
ッドなしにタスク切り替えを実行することができる。
レジスタファイルのデータを第1の退避メモリ42に退
避させた後、そこに、次に実行すべきデータを第1の退
避メモリ42から復元することにより、ほぼ無制限の割
り込みサービスに対して、時間的オーバヘッドなしにタ
スク切り替えを実現することができる。
2系統の記憶経路のうちのいずれかを選択し、選択され
た記憶経路を用いて第1のタスクを実行中に、他方の記
憶経路で保持されている第2のタスクに関するデータを
メモリに退避し、メモリに退避されている第3のタスク
に関するデータを、他方の記憶経路に復元するようにし
たので、ほぼ無制限の割り込みサービスに対して、時間
的オーバヘッドなしにタスク切り替えを実現することが
できる。オーバヘッドをなくすことにより、ソフトウェ
ア無線などで必要とされる性質の異なる処理(復調、誤
り訂正など)の高速切り替えを、効率的に行うことがで
きる。
す図である。
サービスによるタスク切り替えのタイミング動作を説明
する図である。
を示す図である。
サービスによるタスク切り替えのタイミング動作を説明
する図である。
構成例を示すブロック図である。
サービスによるタスク切り替えのタイミング動作を説明
する図である。
込みサービスによるタスク切り替えのタイミング動作を
説明する図である。
割り込みサービスによるタスク切り替えのタイミング動
作を説明する図である。
割り込みサービスによるタスク切り替えのタイミング動
作を説明する図である。
リ, 3 演算回路,4−1,4−2 レジスタファイ
ル, 5 データメモリ, 6 データキャッシュ,
7 命令キャッシュ, 11乃至15 ステージ, 2
0−1,20−2,21−1,21−2,22−1,2
2−2,23−1,23−2 記憶素子, 41 タス
ク切替制御部, 42 第1の退避メモリ, 43 第
2の退避メモリ, 51乃至70 スイッチ
Claims (8)
- 【請求項1】 データを演算する少なくとも1系統の演
算手段と、 前記演算手段により演算された前記データを記憶する少
なくとも2系統の記憶手段と、 前記少なくとも2系統の記憶手段のうちのいずれかを選
択するように制御する制御手段と、 前記制御手段によって選択された前記記憶手段を用いて
第1のタスクを実行中に、他方の前記記憶手段で保持さ
れている第2のタスクに関するデータを退避する退避手
段と、 前記退避手段によって退避されている第3のタスクに関
するデータを、前記制御手段によって選択された前記記
憶手段を用いて前記第1のタスクを実行中に、他方の前
記記憶手段に復元する復元手段とを備えることを特徴と
するマイクロプロセッサ。 - 【請求項2】 前記制御手段は、タスク切り替え制御信
号が発生されたとき、他方の前記記憶手段を選択するよ
うに制御することを特徴とする請求項1に記載のマイク
ロプロセッサ。 - 【請求項3】 前記制御手段は、外部から割り込み制御
信号の入力を受けたとき、他方の前記記憶手段を選択す
るように制御することを特徴とする請求項1に記載のマ
イクロプロセッサ。 - 【請求項4】 前記退避手段により前記データを退避し
ている途中で前記割り込み制御信号の入力を受けたと
き、前記制御手段は、前記退避手段により前記データの
退避が終了するまで前記割り込み制御信号を保留し、前
記データの退避が終了したとき、他方の前記記憶手段を
選択するように制御することを特徴とする請求項3に記
載のマイクロプロセッサ。 - 【請求項5】 前記復元手段により前記データを復元し
ている途中で前記割り込み制御信号の入力を受けたと
き、前記制御手段は、前記データの復元を中止し、他方
の前記記憶手段を選択するように制御することを特徴と
する請求項3に記載のマイクロプロセッサ。 - 【請求項6】 前記記憶手段は、レジスタファイルを含
むことを特徴とする請求項1に記載のマイクロプロセッ
サ。 - 【請求項7】 前記退避手段を複数有し、それらが相互
に連結されていることを特徴とする請求項1に記載のマ
イクロプロセッサ。 - 【請求項8】 前記退避手段をマイクロプロセッサ外部
に存在するメモリ及び前記1系統の演算手段と接続し、 前記退避手段を前記マイクロプロセッサ外部に存在する
メモリ又はキャッシュとして動作させることを特徴とす
る請求項1に記載のマイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002220714A JP3767529B2 (ja) | 2001-08-28 | 2002-07-30 | マイクロプロセッサ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001257968 | 2001-08-28 | ||
JP2001-257968 | 2001-08-28 | ||
JP2002220714A JP3767529B2 (ja) | 2001-08-28 | 2002-07-30 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003150390A true JP2003150390A (ja) | 2003-05-23 |
JP3767529B2 JP3767529B2 (ja) | 2006-04-19 |
Family
ID=26621120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002220714A Expired - Fee Related JP3767529B2 (ja) | 2001-08-28 | 2002-07-30 | マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3767529B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7853954B2 (en) | 2004-07-07 | 2010-12-14 | Kabushiki Kaisha Toshiba | Method and apparatus for preserving the context of tasks during task switching in a pipeline architecture |
US8327122B2 (en) | 2006-03-02 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method and system for providing context switch using multiple register file |
-
2002
- 2002-07-30 JP JP2002220714A patent/JP3767529B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7853954B2 (en) | 2004-07-07 | 2010-12-14 | Kabushiki Kaisha Toshiba | Method and apparatus for preserving the context of tasks during task switching in a pipeline architecture |
US8499306B2 (en) | 2004-07-07 | 2013-07-30 | Kabushiki Kaisha Toshiba | Microprocessor configured to control a process in accordance with a request based on task identification information and the register information identifier |
US8327122B2 (en) | 2006-03-02 | 2012-12-04 | Samsung Electronics Co., Ltd. | Method and system for providing context switch using multiple register file |
Also Published As
Publication number | Publication date |
---|---|
JP3767529B2 (ja) | 2006-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100280460B1 (ko) | 데이터 처리 장치 및 이의 복수의 스레드 처리 방법 | |
JP3253303B2 (ja) | コンテキスト切り換え装置及び方法 | |
US7590774B2 (en) | Method and system for efficient context swapping | |
US5444853A (en) | System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's | |
US6223208B1 (en) | Moving data in and out of processor units using idle register/storage functional units | |
US7836291B2 (en) | Method, medium, and apparatus with interrupt handling in a reconfigurable array | |
CA2320913C (en) | Zero overhead computer interrupts with task switching | |
US20050108711A1 (en) | Machine instruction for enhanced control of multiple virtual processor systems | |
JPH10283203A (ja) | マルチスレッド・プロセッサにおけるスレッド切換え待ち時間を減少させる方法および装置 | |
EP1416376A2 (en) | Multi-threaded embedded processor having deterministic instruction memory | |
WO2007002408A2 (en) | Computer processor pipeline with shadow registers for context switching, and method | |
JP2000029737A (ja) | デバッグ機能のためのリアルタイム外部命令挿入を有するプロセッサ | |
KR100834180B1 (ko) | 프로그램/명령어의 실행을 구동하는 “l”구동법 및그것의 아키텍처와 프로세서 | |
US11392407B2 (en) | Semiconductor device | |
JPS62221732A (ja) | 情報処理装置 | |
US7761688B1 (en) | Multiple thread in-order issue in-order completion DSP and micro-controller | |
US7949860B2 (en) | Multi thread processor having dynamic reconfiguration logic circuit | |
JPH0916409A (ja) | マイクロコンピュータ | |
US7191313B2 (en) | Microprocessor | |
JP2003150390A (ja) | マイクロプロセッサ | |
US6708259B1 (en) | Programmable wake up of memory transfer controllers in a memory transfer engine | |
JP2003347930A (ja) | プログラマブル論理回路及びコンピュータシステム並びにキャッシュ方法 | |
US20030014474A1 (en) | Alternate zero overhead task change circuit | |
US20040128484A1 (en) | Method and apparatus for transparent delayed write-back | |
JP2007200106A (ja) | データ処理装置、制御方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040817 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041029 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041227 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050721 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050902 |
|
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: 20060110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060123 |
|
LAPS | Cancellation because of no payment of annual fees |