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
Application number
JP2002220714A
Other languages
English (en)
Other versions
JP3767529B2 (ja
Inventor
Eiji Takamukai
英治 高向
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2002220714A priority Critical patent/JP3767529B2/ja
Publication of JP2003150390A publication Critical patent/JP2003150390A/ja
Application granted granted Critical
Publication of JP3767529B2 publication Critical patent/JP3767529B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 時間的オーバヘッドの少ないタスクスイッチ
ングを可能にする。 【解決手段】 タスク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

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サに関し、特に、例えば、時間的オーバヘッドの少ない
タスクスイッチングを可能にしたマイクロプロセッサに
関する。特に、ソフトウェア無線技術(software radi
o)のように、復調処理、誤り訂正処理、プロトコル処
理のように種々の異なる処理を要求されるプロセッサに
好適なマイクロプロセッサに関する。
【0002】
【従来の技術】近年、電子機器の高度化が進み、電子機
器内部に組み込まれるマイクロプロセッサにおいても、
さらなる高度化、かつ、効率的な処理が要求されてい
る。すなわち、大量のプログラムを実行する高速なマイ
クロプロセッサが必要とされている。
【0003】一般に、組み込みマイクロプロセッサは、
リアルタイム処理を要求されることが多く、複雑なプロ
グラムの中でタイミングに制約のある部分を、確実に、
かつ、決められた時間内に実行すること、並びに、プロ
グラムを変更した際に処理時間が間に合うか否かを見通
し良く予測することが強く望まれる。
【0004】その一方で、近年の半導体技術の進歩によ
り、以前に較べ、より多くの回路をマイクロプロセッサ
に使用することが可能となり、高度化、かつ、効率的な
処理の要求が満たされるのであれば、多少の回路量の増
大は許容される場合が多くなってきた。
【0005】また、半導体技術の進歩により、回路の集
積密度が向上しているため、マイクロプロセッサとは別
のチップとされていたメモリなどを同一チップに集積す
ることができ、パッケージのピン数などの制約を受ける
ことにより制限されてきたマイクロプロセッサとメモリ
間のバス幅を大幅に広げることが可能となる。従って、
バス幅の増大およびバスの複数化に関して、制約が大幅
に緩和されている。
【0006】ところで、マイクロプロセッサにおいてリ
アルタイム処理を実行する場合、外部周辺回路から、不
定期もしくは周期的な割り込み制御信号の入力を受け付
け、各種割り込みに応じたプログラム(いわゆる割り込
みサービス)を実行することができる。
【0007】この際、実行していたプログラムと割り込
みサービスの間には連続性がないため、マイクロプロセ
ッサの内部状態(例えば、演算回路に使用しているパイ
プラインフリップフロップなど)を退避させるか、もし
くは、実行をストールするかによって、それまで実行し
ていたプログラムの演算結果を割り込みサービスが変更
しないようになされている。
【0008】ここで、従来のマイクロプロセッサの内部
の構成について、図1を参照して説明する。
【0009】プログラムカウンタ1は、次に実行すべき
命令(タスク)のアドレスを記憶しておくためのレジス
タであり、記憶されている、次に実行すべき命令のアド
レスを命令メモリ2に供給する。命令メモリ2は、プロ
グラムカウンタ1から供給されるアドレスに基づいて読
み出された命令を演算回路3に供給する。命令キャッシ
ュ7は、命令メモリ2のデータの出し入れの速度が、演
算回路3と比較して遅い場合に、アクセス局所性(Acce
ss Locality)を利用して擬似的に高速なデータアクセ
スをなすための緩衝用のメモリである。
【0010】このマイクロプロセッサは、ステージ11
乃至15の5段のパイプラインのRISC(Reduced Instru
ction Set Computer)プロセッサで構成されているもの
とする。
【0011】ステージ11は、命令メモリ2に記憶され
ている命令(タスク)を読み出し(IF:Instruction Fe
tch)、記憶素子20に記憶させる。ステージ12は、
記憶素子20に記憶されている命令およびレジスタファ
イル4に格納されているデータを読み出してデコード
(ID:Instruction Decode)し、記憶素子21に記憶さ
せる。
【0012】ステージ13は、記憶素子21に記憶され
ている命令を読み出して実行し(EX:Execution)、そ
の命令によって演算されたデータを記憶素子22に記憶
させる。
【0013】ステージ14は、記憶素子22に記憶され
ているデータを読み出し、記憶素子23に記憶させる。
ステージ14はまた、演算回路3内の内部状態に関する
データおよびレジスタファイル4の内容をデータメモリ
5に書き込ませる(MEM:Memory access)とともに、デ
ータメモリ5に書き込まれているデータを読み出し、演
算回路3およびレジスタファイル4に復元させる。ステ
ージ15は、記憶素子23に記憶されているデータを読
み出し、レジスタファイル4へライトバック(WB:Writ
e Back)する。データメモリ5とステージ14の間に
は、擬似的に高速なデータアクセスをなすためのデータ
キャッシュ6が一般的には存在する。
【0014】図2は、図1に示したマイクロプロセッサ
における、割り込みサービスによるタスク切り替えのタ
イミング動作を説明する図である。
【0015】同図に示されるように、時刻T1におい
て、ステージ11は、命令メモリ2に記憶されているタ
スク1を読み出し、記憶素子20に記憶させる。時刻T
2において、ステージ12は、記憶素子20に記憶され
ているタスク1を読み出し、それをデコードし、記憶素
子21に記憶させる。時刻T3において、ステージ13
は、記憶素子21に記憶されているタスク1を読み出
し、それを実行し、演算結果を記憶素子22に記憶させ
る。時刻T4において、ステージ14は、記憶素子22
に記憶されているデータを読み出し、記憶素子23に記
憶させる。時刻T5において、ステージ15は、記憶素
子23に記憶されているデータを読み出し、レジスタフ
ァイル4へライトバックする。
【0016】このように、ステージ(例えば、ステージ
11)に入力された信号は、クロック時間Tを経過した
後、次のステージ(いまの場合、ステージ12)に供給
される。その後、このステージ(ステージ11)に次の
入力があっても、この信号は、クロック時間Tを経過し
た後、次のステージ(ステージ12)に供給される。従
って、次のステージ(ステージ12)は、前のステージ
(ステージ11)の入力の影響を受ける前に、現在の信
号を、さらに次のステージ(いまの場合、ステージ1
3)に供給することができる。
【0017】時刻T7において、タスク切り替え制御信
号(割り込みサービス)が発生されると、マイクロプロ
セッサは、時刻T8において、次に実行すべき命令(タ
スク2)のアドレスを命令メモリ2に供給させるように
プログラムカウンタ1のアドレス切り替えを制御する。
その後、演算回路3には、パイプラインストールが発生
されるため、レジスタ退避命令が発生されるまで待機す
る。
【0018】時刻T12において、ステージ15によっ
てデータがレジスタファイル4へライトバックされると
(全てのタスク1が吐き出されると)同時に、レジスタ
退避命令が発生され、ステージ14からデータメモリ5
に、演算回路3内の内部状態に関するデータおよびレジ
スタファイル4の内容が退避される。
【0019】ステージ11のデータ退避が終了する時刻
T15において、命令メモリ2に記憶されているタスク
2が読み出され、タスク2の実行が開始される。それ以
降、上述したタスク1と同様の動作が繰り返し実行され
る。
【0020】そして、ステージ11のタスク2の実行が
終了する時刻T52において、レジスタ復帰命令が発生
され、データメモリ5から、タスク1の実行における演
算回路3の内部状態およびレジスタファイル4の内容が
復元される。ステージ11のデータ復元が終了する時刻
T55において、マイクロプロセッサは、次に実行すべ
き命令(タスク1)のアドレスを命令メモリ2に供給さ
せるようにプログラムカウンタ1のアドレス復帰を制御
する。その後、演算回路3には、パイプラインストール
が発生され、ステージ15のデータ復元が終了されるま
で待機する。時刻T59において、ステージ15のデー
タ復元が終了されると、タスク1の実行が再開され、上
述した動作が繰り返される。
【0021】このように、割り込みサービスプログラム
の実行によりレジスタファイル4の内容が破壊されない
ように、割り込みサービスを受け付ける前に、実行中の
演算回路3の内部状態およびレジスタファイル4の内容
が退避される。そして、割り込みサービスから復帰する
場合には、退避させていた演算回路3の内部状態および
レジスタファイル4の内容を復元することにより、割り
込みサービスによって、それ以前に実行されていたプロ
グラムの演算結果が変更されることを防止している。
【0022】また、図3に示されるように、2系統のレ
ジスタファイル4−1および4−2を設け、割り込みサ
ービスを実行する際にレジスタファイルを切り替えるこ
とによって瞬時にタスクを切り替えることができるよう
にしたマイクロプロセッサも存在する。なお、図1と対
応する部分には同一の符号を付してあり、その説明は適
宜省略する。
【0023】図3の構成においては、一方のレジスタフ
ァイル4−1に記憶されているタスクが実行されている
状態で割り込みサービスを受け付けたとき、他方のレジ
スタファイル4−2に記憶されているタスクを瞬時に実
行することができるようにスイッチ31および32がレ
ジスタファイル4−1からレジスタファイル4−2を選
択するように切り替えられるため、データ退避のための
オーバヘッドが発生しない。
【0024】図4は、図3に示したマイクロプロセッサ
における、割り込みサービスによるタスク切り替えのタ
イミング動作を説明する図である。
【0025】同図に示されるように、時刻T7におい
て、タスク切り替え制御信号(割り込みサービス)が発
生されると、マイクロプロセッサは、時刻T8におい
て、次に実行すべき命令(タスク2)のアドレスを命令
メモリ2に供給するようにプログラムカウンタ1のアド
レス切り替えを制御する。その後、演算回路3には、パ
イプラインストールが発生され、時刻T12において、
ステージ15によってデータがレジスタファイル4−1
へライトバックされると(全てのタスクが吐き出される
と)同時に、スイッチ31および32がレジスタファイ
ル4−1からレジスタファイル4−2を選択するように
切り替えられ、命令メモリ2に記憶されているタスク2
が読み出され、実行される。
【0026】このように、2系統のレジスタファイルを
設けることにより、タスク1およびタスク2の切り替え
を瞬時に行うことができる。
【0027】
【発明が解決しようとする課題】しかしながら、図1お
よび図2の例の場合、レジスタファイルの内部状態の退
避およびパイプラインストールのために数十クロックを
使用しなければならず、割り込みサービスが発生する毎
に、比較的大きな時間的オーバヘッドが生じる課題があ
った。
【0028】また、図3および図4の例の場合、予め用
意したレジスタファイル群(図3の場合、2個)以上の
多重割り込みサービスが存在する場合、やはり、図1の
例の場合と同様に、レジスタファイル4の内部状態の退
避およびパイプラインストールのための時間的オーバヘ
ッドが生じてしまう課題があった。
【0029】さらに、マイクロプロセッサにおけるメモ
リ階層構造の中で、最も高速で動作しなければならない
レジスタファイルを大量に設けることは、回路規模が大
きくなり、かつ、配線が多くなることを意味し、マイク
ロプロセッサのクロック速度向上の妨げとなる課題があ
った。
【0030】本発明はこのような状況に鑑みてなされた
ものであり、レジスタファイルを大量に設けなくても、
時間的オーバヘッドの少ないタスク切り替えを可能にす
るとともに、ほぼ無制限の割り込み多重化を実現するこ
とができるようにするものである。
【0031】
【課題を解決するための手段】本発明のマイクロプロセ
ッサは、データを演算する少なくとも1系統の演算手段
と、演算手段により演算されたデータを記憶する少なく
とも2系統の記憶手段と、少なくとも2系統の記憶手段
のうちのいずれかを選択するように制御する制御手段
と、制御手段によって選択された記憶手段を用いて第1
のタスクを実行中に、他方の記憶手段で保持されている
第2のタスクに関するデータを退避する退避手段と、退
避手段によって退避されている第3のタスクに関するデ
ータを、制御手段によって選択された記憶手段を用いて
第1のタスクを実行中に、他方の記憶手段に復元する復
元手段とを備えることを特徴とする。
【0032】制御手段には、タスク切り替え制御信号が
発生されたとき、他方の記憶手段を選択するように制御
させることができる。
【0033】制御手段には、外部から割り込み制御信号
の入力を受けたとき、他方の記憶手段を選択するように
制御させることができる。
【0034】退避手段によりデータを退避している途中
で割り込み制御信号の入力を受けたとき、制御手段に
は、退避手段によりデータの退避が終了するまで割り込
み制御信号を保留させ、データの退避が終了したとき、
他方の記憶手段を選択するように制御させることができ
る。
【0035】復元手段によりデータを復元している途中
で割り込み制御信号の入力を受けたとき、制御手段に
は、データの復元を中止させ、他方の記憶手段を選択す
るように制御させることができる。
【0036】記憶手段は、レジスタファイルを含むもの
であるとすることができる。
【0037】退避手段を複数有し、それらを相互に連結
させることができる。
【0038】退避手段をマイクロプロセッサ外部に存在
するメモリ及び前記1系統の演算手段と接続し、退避手
段をマイクロプロセッサ外部に存在するメモリ又はキャ
ッシュとして動作させることができる。
【0039】本発明のマイクロプロセッサにおいては、
2系統の記憶経路のうちのいずれかが選択され、選択さ
れた記憶経路を用いて第1のタスクを実行中に、他方の
記憶経路で保持されている第2のタスクに関するデータ
がメモリに退避され、メモリに退避されている第3のタ
スクに関するデータが、他方の記憶経路に復元される。
【0040】
【発明の実施の形態】以下、図を参照して、本発明の実
施の形態について説明する。
【0041】図5は、本発明を適用したマイクロプロセ
ッサの内部の構成例を示すブロック図である。なお、従
来と対応する部分には同一の符号を付してあり、その説
明は適宜省略する。本発明においては、プログラムカウ
ンタ1、レジスタファイル4、並びに、演算回路3内の
記憶素子20乃至23を、それぞれ2系統で構成する
が、勿論、2以上の複数系統で構成するようにしてもよ
い。これに対して、ステージ11乃至15は、1系統の
みで構成されている。厳密に言うと、命令メモリ2とデ
ータメモリ5は、マイクロプロセッサには含まれず、そ
れ以外の部分をマイクロプロセッサコア(Microprocess
or Core)という。
【0042】タスク切替制御部41は、マイクロプロセ
ッサ内のスイッチ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をそれぞれ制御する。
【0043】スイッチ51は、退避用読み出しのための
スイッチ(選択装置)であり、タスク切替制御部41の
制御の下、プログラムカウンタ1−1または1−2から
供給されるアドレスを第1の退避メモリ42に供給す
る。スイッチ52は、タスク切替制御部41の制御の
下、プログラムカウンタ1−1または1−2から供給さ
れるアドレスを命令メモリ2に供給する。
【0044】命令メモリ2は、スイッチ52を介してプ
ログラムカウンタ1−1または1−2から供給されるア
ドレスに基づいて読み出される命令(タスク)を、演算
回路3に供給する。
【0045】演算回路3は、ステージ11乃至15の5
段のパイプラインのRISCプロセッサで構成されており、
記憶素子が2個ずつ設けられているため、2系統のパイ
プラインとされている。なお、本発明の実施の形態にお
いては、パイプラインが5段になっている例を示した
が、段数は任意であり、より多くても少なくてもよい。
【0046】ステージ11は、命令メモリ2に記憶され
ている命令(タスク)を読み出し、記憶素子20−1ま
たは20−2に記憶させる。ステージ12は、記憶素子
20−1または20−2に記憶されている命令をスイッ
チ57を介して読み出すとともに、レジスタファイル4
−1または4−2に格納されているデータをスイッチ6
8または69を介して読み出し、それらをデコードし、
記憶素子21−1または21−2に記憶させる。
【0047】ステージ13は、記憶素子21−1または
21−2に記憶されている命令をスイッチ58を介して
読み出し、読み出した命令を実行し、その命令によって
演算されたデータを記憶素子22−1または22−2に
記憶させる。
【0048】ステージ14は、記憶素子22−1または
22−2に記憶されているデータをスイッチ59を介し
て読み出し、記憶素子23−1または23−2に記憶さ
せる。ステージ14はまた、タスクの実行により得られ
るデータをデータメモリ5に書き込ませるとともに、デ
ータメモリ5に書き込まれているデータを読み出し、記
憶素子23−1または23−2に記憶させる。
【0049】ステージ15は、記憶素子23−1または
23−2に記憶されているデータをスイッチ60を介し
て読み出し、レジスタファイル4−1または4−2へラ
イトバックする。
【0050】スイッチ53は、退避用読み出しのための
スイッチ(選択装置)であり、タスク切替制御部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に供給する。
【0051】スイッチ61は、復元用書き込みのための
スイッチであり、第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に供給する。
【0052】スイッチ66は、演算データ書き込みのた
めのスイッチであり、タスク切替制御部41の制御の
下、ステージ15からライトバックされるデータを、レ
ジスタファイル4−1または4−2に供給する。
【0053】スイッチ67は、復元用書き込みのための
スイッチであり、タスク切替制御部41の制御の下、第
1の退避メモリ42から供給されるデータを、レジスタ
ファイル4−1または4−2に供給する。
【0054】スイッチ68および69は、演算データ読
み出しのためのスイッチであり、タスク切替制御部41
の制御の下、レジスタファイル4−1または4−2から
読み出されるデータをステージ12に供給する。
【0055】スイッチ70は、退避用読み出しのための
スイッチであり、タスク切替制御部41の制御の下、レ
ジスタファイル4−1または4−2から読み出されるデ
ータを、第1の退避メモリ42に供給する。
【0056】第1の退避メモリ42は、スイッチ51を
介して供給されるプログラムカウンタ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にセーブしてお
く、などの多段階の処理が可能になる。
【0057】また、マイクロプロセッサの外部に存在す
る命令メモリ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)として利用することもできる。
このように、退避メモリとキャッシュを兼用することに
より、実装効率(面積効率)を改善することができる。
【0058】また、命令メモリ2と第1の退避メモリ4
2及び第2の退避メモリ43が接続されることで、退避
メモリを命令メモリ2として代用することも可能にな
る。これを上述の例にあてはめると、容量は小さいが転
送速度の速い第1の退避メモリ42を命令キャッシュ7
として代用し、容量は大きいが転送速度の遅い第2の退
避メモリ43を命令メモリ2として代用することも可能
である。このような構成にすることで、実装効率(面積
効率)を改善することもできる。
【0059】なお、第2の退避メモリ43は、マイクロ
プロセッサ内部にあってもよいし、外部にあってもよ
い。
【0060】なお、退避データは、多重化して順次書き
込まれるか、もしくは、並列に同時に書き込まれる。ま
た同様に、復元するデータも、多重化して読み出される
か、もしくは、並列に同時に読み出される。
【0061】図6は、図5に示したマイクロプロセッサ
における、割り込みサービスによるタスク切り替えのタ
イミング動作を説明する図である。ここでは、タスク
1、タスク2、およびタスク3の順で実行されるように
スケジュールされているものとし、これらタスク1乃至
タスク3のうち、タスク3は、以前に、タスクの実行途
中に割り込み入力されたことがあり、第1の退避メモリ
42に退避データが存在するものとし、タスク2は、第
1の退避メモリ42に退避データが存在せず、タスク2
の実行開始時において退避データの復元は必要ないもの
として説明する。なお、現在演算に使用されているレジ
スタファイルを「表」、現在演算に使用していないレジ
スタファイルを「裏」と適宜称することにする。
【0062】同図に示されるように、初期状態において
タスク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と同様の動作が繰り返し実行される。
【0063】すなわち、タスク切替制御部41は、時刻
T8において、記憶素子20−2を選択するようにスイ
ッチ57を切り替え、時刻T9において、記憶素子21
−2を選択するようにスイッチ58を切り替え、時刻T
10において、記憶素子22−2を選択するようにスイ
ッチ59を切り替え、時刻T11において、記憶素子2
3−2を選択するようにスイッチ60を切り替える。こ
のように、各ステージ毎にタスク1の実行からタスク2
の実行に切り替えられる。
【0064】時刻T12において、ステージ15によっ
てデータがレジスタファイル4−1へライトバックされ
ると(全てのタスク1が吐き出されると)同時に、タス
ク切替制御部41は、レジスタファイル4−2にデータ
をライトバックするように、スイッチ66を切り替え
る。これにより、レジスタファイル4−1は「裏」(待
機状態)となるため、その時間を利用して、第1の退避
メモリ42に、レジスタファイル4−1の内容およびタ
スク1の実行における演算回路3の内部状態に関するデ
ータを退避させ、次に実行すべきタスクを復元させてお
く。
【0065】いまの場合、タスク2の次にタスク3が実
行されるようにスケジュールされているため、タスク2
の実行中に、タスク1のデータ退避、およびタスク3の
データ復元を行うようにする。
【0066】具体的には、時刻T13において、タスク
切替制御部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にそれぞれ書き
込まれ、復元される。
【0067】このように、タスク2の実行中に、「裏」
となるプログラムカウンタ1−1、演算回路3の記憶素
子20−1,21−1,22−1および23−1、並び
にレジスタファイル4−1にタスク3の以前の切り替え
時のデータが復元されるため、タスク1からタスク2の
切り替えと同様に、瞬時にタスク2からタスク3に切り
替えられる。
【0068】また、タスク3を実行中に、「裏」となる
レジスタファイル4−2、プログラムカウンタ1−2、
演算回路3の記憶素子20−2,21−2,22−2お
よび23−2に記憶されているタスク2のデータを第1
の退避メモリ42に退避させ、次に実行すべきタスク1
をそれらに復元することによって、時間的オーバヘッド
なしにタスク切り替え(タスクスイッチング)を実行す
ることができる。
【0069】さらに、第1の退避メモリ42の記憶容量
に応じて、複数のタスクを自由に切り替えて実行するこ
とも可能となる。
【0070】以上においては、タスク切り替え制御信号
が、適切なタイミングで与えられるものとして説明した
が、例えば、自走するカウンタによってタスク切り替え
制御信号を生成することによって、各タスクに均等に実
行時間を与えることもできる。
【0071】また、プリロード可能なダウンカウンタを
設け、そのダウンカウンタの値が0となるタイミングで
タスク切り替え制御信号を発生させるものとし、タスク
切り替え制御信号が発生したときにプリロード値をダウ
ンカウンタ内にロードするように構成すれば、予め設定
するプリロード値を変更するだけで、タスク切り替えの
間隔を可変にすることができる。
【0072】さらに、ダウンカウンタにロードするプリ
ロード値を保持する複数のレジスタを設け、それらのレ
ジスタをどのような順番でロードするかをプログラムに
よって設定することにより、柔軟なタスク切り替えを実
現することができる。
【0073】また以上においては、予めタスクスイッチ
が予測可能である場合について説明したが、外部割込み
サービスにおいても、時間的オーバヘッドなしにタスク
切り替えを実行することができる。
【0074】なお、マイクロプロセッサ内に第1の退避
メモリ42を設ける場合を例にして説明したが、これに
限らず、例えば、図示せぬキャッシュメモリに退避メモ
リを兼用させるようにしてもよい。
【0075】図7は、外部割込みサービスによるタスク
切り替えのタイミング動作を説明する図である。この例
の場合、データ退避およびデータ復元が実行されていな
いタイミングに割り込みサービスがあるため、通常のタ
スク切り替えと同様に扱うことができる。
【0076】同図に示されるように、タスク2の実行中
に行われるタスク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を制御する。
【0077】これにより、第1の退避メモリ42に退避
されているタスク3のデータが、プログラムカウンタ1
−1、演算回路3の記憶素子20−1,21−1,22
−1および23−1、並びにレジスタファイル4−1に
それぞれ復元され、タスク3が実行され、いままで実行
されていたタスク2は中断される。すなわち、レジスタ
ファイル4−1の内容、およびタスク1の実行における
演算回路3の内部状態に関するデータは既に第1の退避
メモリ42に退避されているため、直ちにタスク3の実
行を行うことができる。
【0078】時刻T38において、ステージ15によっ
てデータがレジスタファイル4−1へライトバックされ
ると(全てのタスク2が吐き出されると)同時に、タス
ク切替制御部41は、タスク3をレジスタファイル4−
1にライトバックするように、スイッチ66を切り替え
る。
【0079】ステージ11のタスク3の実行が終了する
時刻T40において、タスク切替制御部41は、レジス
タファイル4−1から4−2の経路に切り替えるように
スイッチ68および69を制御する。これにより、割り
込みにより中断されていたタスク2の実行が再開され
る。
【0080】時刻T41において、タスク切替制御部4
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に書き込まれ、復元
される。
【0081】このように、現在使用していないプログラ
ムカウンタ1−1、演算回路3の記憶素子20−1,2
1−1,22−1および23−1、並びにレジスタファ
イル4−1を、割り込みが入ったタスクの演算用に割り
当てることにより、割り込みされ、一時中断されたタス
ク2の状態を保存する必要がない。すなわち、データ退
避およびデータ復元は不要となる。
【0082】図8は、他の外部割り込みサービスによる
タスク切り替えのタイミング動作を説明する図である。
この例においては、データ退避中に割り込みサービスが
あった場合の動作について説明する。
【0083】同図に示されるように、タスク2の実行中
に行われるデータ退避の途中の時刻T31において、外
部から割り込み制御信号の入力を受け付けると、タスク
切替制御部41は、その受け付けを一旦保留し、データ
退避が終了するまで待機する。
【0084】そして、時刻T32において、タスク2の
実行中に行われるデータ退避が終了されると、時刻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を制御する。
【0085】これにより、第1の退避メモリ42に退避
されているタスク3のデータが、プログラムカウンタ1
−1、演算回路3の記憶素子20−1,21−1,22
−1および23−1、並びにレジスタファイル4−1に
それぞれ復元され、タスク3が実行され、いままで実行
されていたタスク2は中断される。
【0086】時刻T38において、ステージ15によっ
てデータがレジスタファイル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に退避さ
れる。
【0087】このように、データの退避中に割り込みが
入る場合には、その退避が終了するまで割り込み制御信
号の受け付けを保留にすることによって、確実にデータ
を退避させることができ、かつ、時間的オーバヘッドな
しにタスク切り替えを実行することができる。
【0088】図9は、他の外部割込みサービスによるタ
スク切り替えのタイミング動作を説明する図である。こ
の例においては、データ復元中に割り込みサービスがあ
った場合の動作について説明する。
【0089】同図に示されるように、タスク2の実行中
に行われるデータ復元の途中の時刻T11において、外
部から割り込み制御信号の入力を受け付けると、データ
の復元を中止し、時刻T12において、タスク切替制御
部41は、プログラムカウンタ1−2からプログラムカ
ウンタ1−1を選択するようにスイッチ52を制御する
とともに、レジスタファイル4−2からレジスタファイ
ル4−1の経路に切り替えるようにスイッチ68および
69を制御する。
【0090】これにより、第1の退避メモリ42に退避
されているタスク3のデータが、プログラムカウンタ1
−1、演算回路3の記憶素子20−1,21−1,22
−1および23−1、並びにレジスタファイル4−1に
それぞれ復元され、タスク3が実行され、いままで実行
されていたタスク2は中断される。なお、途中まで復元
されていたデータは、割り込まれたタスク3によって上
書きされる。
【0091】時刻T19において、割り込みサービスが
終了すると、時刻T20において、タスク切替制御部4
1は、レジスタファイル4−1からレジスタファイル4
−2の経路に切り替えるようにスイッチ68および69
を制御する。これにより、中断されていたタスク2が再
開され、時刻T20において、割り込みにより中止され
たデータの復元が再開される。
【0092】このように、データの復元中に割り込みが
入る場合には、その復元を中止し、割り込みサービスが
終了した時点で、復元をやり直すことによって、確実に
データを復元させることができ、かつ、時間的オーバヘ
ッドなしにタスク切り替えを実行することができる。
【0093】以上のように、演算に使用していない裏の
レジスタファイルのデータを第1の退避メモリ42に退
避させた後、そこに、次に実行すべきデータを第1の退
避メモリ42から復元することにより、ほぼ無制限の割
り込みサービスに対して、時間的オーバヘッドなしにタ
スク切り替えを実現することができる。
【0094】
【発明の効果】本発明のマイクロプロセッサによれば、
2系統の記憶経路のうちのいずれかを選択し、選択され
た記憶経路を用いて第1のタスクを実行中に、他方の記
憶経路で保持されている第2のタスクに関するデータを
メモリに退避し、メモリに退避されている第3のタスク
に関するデータを、他方の記憶経路に復元するようにし
たので、ほぼ無制限の割り込みサービスに対して、時間
的オーバヘッドなしにタスク切り替えを実現することが
できる。オーバヘッドをなくすことにより、ソフトウェ
ア無線などで必要とされる性質の異なる処理(復調、誤
り訂正など)の高速切り替えを、効率的に行うことがで
きる。
【図面の簡単な説明】
【図1】従来のマイクロプロセッサの内部の構成例を示
す図である。
【図2】図1のマイクロプロセッサにおける、割り込み
サービスによるタスク切り替えのタイミング動作を説明
する図である。
【図3】従来の他のマイクロプロセッサの内部の構成例
を示す図である。
【図4】図2のマイクロプロセッサにおける、割り込み
サービスによるタスク切り替えのタイミング動作を説明
する図である。
【図5】本発明を適用したマイクロプロセッサの内部の
構成例を示すブロック図である。
【図6】図5のマイクロプロセッサにおける、割り込み
サービスによるタスク切り替えのタイミング動作を説明
する図である。
【図7】図5のマイクロプロセッサにおける、外部割り
込みサービスによるタスク切り替えのタイミング動作を
説明する図である。
【図8】図5のマイクロプロセッサにおける、他の外部
割り込みサービスによるタスク切り替えのタイミング動
作を説明する図である。
【図9】図5のマイクロプロセッサにおける、他の外部
割り込みサービスによるタスク切り替えのタイミング動
作を説明する図である。
【符号の説明】
1−1,1−2 プログラムカウンタ, 2 命令メモ
リ, 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】 データを演算する少なくとも1系統の演
    算手段と、 前記演算手段により演算された前記データを記憶する少
    なくとも2系統の記憶手段と、 前記少なくとも2系統の記憶手段のうちのいずれかを選
    択するように制御する制御手段と、 前記制御手段によって選択された前記記憶手段を用いて
    第1のタスクを実行中に、他方の前記記憶手段で保持さ
    れている第2のタスクに関するデータを退避する退避手
    段と、 前記退避手段によって退避されている第3のタスクに関
    するデータを、前記制御手段によって選択された前記記
    憶手段を用いて前記第1のタスクを実行中に、他方の前
    記記憶手段に復元する復元手段とを備えることを特徴と
    するマイクロプロセッサ。
  2. 【請求項2】 前記制御手段は、タスク切り替え制御信
    号が発生されたとき、他方の前記記憶手段を選択するよ
    うに制御することを特徴とする請求項1に記載のマイク
    ロプロセッサ。
  3. 【請求項3】 前記制御手段は、外部から割り込み制御
    信号の入力を受けたとき、他方の前記記憶手段を選択す
    るように制御することを特徴とする請求項1に記載のマ
    イクロプロセッサ。
  4. 【請求項4】 前記退避手段により前記データを退避し
    ている途中で前記割り込み制御信号の入力を受けたと
    き、前記制御手段は、前記退避手段により前記データの
    退避が終了するまで前記割り込み制御信号を保留し、前
    記データの退避が終了したとき、他方の前記記憶手段を
    選択するように制御することを特徴とする請求項3に記
    載のマイクロプロセッサ。
  5. 【請求項5】 前記復元手段により前記データを復元し
    ている途中で前記割り込み制御信号の入力を受けたと
    き、前記制御手段は、前記データの復元を中止し、他方
    の前記記憶手段を選択するように制御することを特徴と
    する請求項3に記載のマイクロプロセッサ。
  6. 【請求項6】 前記記憶手段は、レジスタファイルを含
    むことを特徴とする請求項1に記載のマイクロプロセッ
    サ。
  7. 【請求項7】 前記退避手段を複数有し、それらが相互
    に連結されていることを特徴とする請求項1に記載のマ
    イクロプロセッサ。
  8. 【請求項8】 前記退避手段をマイクロプロセッサ外部
    に存在するメモリ及び前記1系統の演算手段と接続し、 前記退避手段を前記マイクロプロセッサ外部に存在する
    メモリ又はキャッシュとして動作させることを特徴とす
    る請求項1に記載のマイクロプロセッサ。
JP2002220714A 2001-08-28 2002-07-30 マイクロプロセッサ Expired - Fee Related JP3767529B2 (ja)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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