JPH09179741A - マイクロプロセッサ - Google Patents

マイクロプロセッサ

Info

Publication number
JPH09179741A
JPH09179741A JP33681895A JP33681895A JPH09179741A JP H09179741 A JPH09179741 A JP H09179741A JP 33681895 A JP33681895 A JP 33681895A JP 33681895 A JP33681895 A JP 33681895A JP H09179741 A JPH09179741 A JP H09179741A
Authority
JP
Japan
Prior art keywords
task
counter
register bank
register
value
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
JP33681895A
Other languages
English (en)
Inventor
Yoshio Sugimoto
好生 杉本
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP33681895A priority Critical patent/JPH09179741A/ja
Publication of JPH09179741A publication Critical patent/JPH09179741A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 効率よくタスク切り換えを行うことができる
マイクロプロセッサを提供することを目的とする。 【解決手段】 レジスタバンク101〜104に対応す
るカウンタ111〜114に、各レジスタバンクに割り
付けられたタスクのレジスタ使用数に応じた値を設定
し、これを動作の基準となるクロック信号に同期させて
減少させ、このカウンタ111〜114の値を比較回路
120によって比較し、最小の値が格納されているカウ
ンタに対応するレジスタバンクに割り付けられたタスク
を、レジスタバンクから読み書き可能メモリに退避す
る。これによって、タスクのレジスタ使用数とタスクの
処理発生頻度とを動的に管理することができ、タスク切
り換えのオーバーヘッドを少なくすることができるの
で、システムの性能が向上する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチタスク処理
を行うコンピュータシステム等に用いてシステム性能向
上に効果の高い、レジスタバンクを有するマイクロプロ
セッサに関するものである。
【0002】
【従来の技術】1つのコンピュータシステム上で一度に
2つ以上のタスク(作業)を行う機能をマルチタスクと
いう。マルチタスクでは、中央処理装置(CPU)が短
い時間でタスクを切り換えながら順々に処理することに
より、見かけ上複数のタスクが同時に処理されているよ
うに見える。これをマルチタスク処理という。
【0003】マルチタスク処理を行うコンピュータシス
テムにおいては、タスクの切り換え時に、それまで行っ
ていたタスクの状態、すなわちタスク中断時のCPUの
状態を退避し、次に行うタスクの状態を復帰させる必要
がある。ここで、CPUの状態の退避および復帰は、C
PU内部情報、すなわちレジスタに設定されている値を
RAMに退避、復帰することによって実現される。
【0004】従って、タスク切り換えが発生すると、そ
のたびにレジスタの内容のRAMヘの転送(退避)と、
RAMの内容のレジスタへの転送(復帰)という処理が
発生するので、オーバーヘッドが発生する。
【0005】このタスク切り換え時のオーバーヘッドを
低減することができるマイクロプロセッサとして、レジ
スタバンク機能を備えたマイクロプロセッサがあげられ
る。
【0006】レジスタバンク機能とは、マイクロプロセ
ッサが使用するレジスタの組(レジスタバンク)を複数
個備え、このレジスタバンクを必要に応じて切り換えて
使用することができる機能である。
【0007】レジスタバンク切り換え機能を備えたマイ
クロプロセッサでは、実行するタスクごとに1つのレジ
スタバンクを割り当てることにより、使用レジスタバン
クの切り換えのみでタスク切り換えを行うことができ
る。このため、従来のマイクロプロセッサでタスク切り
換えを行うときのように、タスク切り換えごとのレジス
タの内容のRAMへの転送(退避)と、RAMの内容の
レジスタへの転送(復帰)という処理が発生せず、オー
バーヘッドが発生しないので、システム性能が向上す
る。
【0008】しかしながら、マイクロプロセッサに実装
することができるレジスタバンクの数は有限であるの
で、同時に発生するタスクの数がレジスタバンクの数よ
り多い場合には、レジスタバンク機能を持たないマイク
ロプロセッサと同様にタスクの情報の退避と復帰が必要
となる。
【0009】このレジスタバンク機能を備えたマイクロ
プロセッサを用いて、タスク切り換えを効率良く行うレ
ジスタの使用方法としては、特開平6−332721号
公報に記載されたものが知られている。この方法では、
タスクが使用するレジスタを他のタスクが使用している
場合、最近使用していないレジスタをメモリに退避して
使用するとともに、関連する処理を行う複数のタスクを
1つのグループにし、このタスクグループごとにレジス
タの内容を保存する優先度を指定する手段によって高速
性を要求されるタスクグループを判別し、関連するタス
クグループごとにレジスタ内容のメモリへの転送と、メ
モリ内容のレジスタへの転送を行うことによって、タス
ク切り換えのオーバーヘッドを軽減することができる。
【0010】
【発明が解決しようとする課題】しかしながら、上記従
来の方法では、動作状態によって高い応答速度を要求す
るタスクが異なるようなシステムにおいて、効率の良い
タスク切り換えを行うことができなかった。
【0011】本発明は上記課題を解決するもので、使用
頻度と使用情報量を動的に判断し、使用頻度が高く使用
情報量の多いタスクを適宜優先的にレジスタバンクに割
り当てることにより、タスク切り換えのオーバーヘッド
時間を短縮することができるマイクロプロセッサを提供
することを目的とする。
【0012】
【課題を解決するための手段】この課題を解決するため
に本発明は、レジスタバンクと1対1に対応するカウン
タによって、このタスクがレジスタバンクを使用してい
る時間すなわちタスクの使用頻度を計測し、タスクが使
用するレジスタ数に応じた値をこのカウンタに設定する
ことによってタスクの使用情報量をカウンタの値に反映
させるように構成したものである。
【0013】これにより、タスクの使用頻度と使用情報
量とから、レジスタバンクに割り付けておくタスクの優
先順位を、システムの動作状況に応じて変化させること
ができ、タスク切り換えのオーバーヘッド時間を短縮
し、システムの性能を向上させることができるという効
果を得ることができる。
【0014】
【発明の実施の形態】本発明に係る請求項1のマイクロ
プロセッサは、任意数のレジスタからなり、複数存在す
るタスクの任意の1つを割り付けることが可能なn個
(nは自然数)のレジスタバンクと、前記レジスタバン
クのそれぞれと1対1に対応し、任意の値を設定するこ
とが可能であって、この設定された値をクロックに同期
して所定の値になるまで加算あるいは減算させることが
可能なn個のカウンタと、前記n個のカウンタに設定さ
れている値の大小を比較し、比較結果に基づいてカウン
タの番号を出力する比較手段と、タスク切り換えが発生
したとき、次に実行すべきタスクが前記レジスタバンク
のいずれかに割り当てられているときはそのレジスタバ
ンクを、このタスクが前記レジスタバンクのいずれにも
割り当てられていないときは前記比較手段から出力され
るカウンタの番号に対応するレジスタバンクをそれぞれ
選択するレジスタバンク選択手段と、タスク切り換えが
発生したとき、前記レジスタバンク選択手段によって選
択されたレジスタバンクに対応するカウンタに対して次
に実行すべきタスクの使用レジスタ数に応じた値を設定
し、このレジスタバンクに同タスクを割り付けるよう制
御を行う制御手段とを備えたことを特徴としている。
【0015】タスク切り換えが発生したとき、まず比較
手段がタスク実行開始時から加算あるいは減算している
カウンタの値を比較し、その結果最も優先順位の低いカ
ウンタの番号をレジスタバンク選択手段に供給し、レジ
スタバンク選択手段が次に処理を行うべきタスクが既に
レジスタバンクに割り付けられているか否かを判別し、
既にレジスタバンク割り付けられているときは、レジス
タバンク選択手段がこのタスクの割り付けられているレ
ジスタバンクを選択し、この番号を制御手段に供給す
る。一方、次に処理を行うべきタスクの情報がレジスタ
バンクに割り付けられていないときには、レジスタバン
ク選択手段が比較手段から供給されるカウンタの番号を
制御手段に供給する。制御手段は処理対象となるレジス
タバンクを、レジスタバンク選択手段から供給される番
号のレジスタバンクに切り換え、同時に実行を開始する
タスクが割り当てられたレジスタバンクに対応するカウ
ンタに、このタスクが使用するレジスタ数に応じた値を
設定し、これによってタスクの切り換えが行われる。従
って、タスク切り換え時には、使用開始からの時間が長
く、使用レジスタ数が少ない、すなわち使用頻度の低い
レジスタバンクが使われ、使用頻度の高いタスクの情報
は優先的にレジスタバンクに保存されるので、システム
性能が向上するという作用を有する。
【0016】本発明に係る請求項2のマイクロプロセッ
サは、上記請求項1において、カウンタは減算カウンタ
であり、比較手段はn個のカウンタのうち最小値が設定
されているカウンタの番号を出力し、制御手段は次に実
行すべきタスクの使用レジスタ数が多い場合は大きい値
を、少ない場合は小さい値をそれぞれカウンタに設定す
ることを特徴としている。カウンタとして減算カウンタ
を用いるもので、カウンタに設定する値が大きいと、減
算していっても使用頻度の高いレジスタバンクに対応し
たカウンタは大きい値を保っている確率が高く、最小値
にはなりにくいので、その使用頻度の高いタスクの情報
は優先的にレジスタバンクに保存されることになる。
【0017】本発明に係る請求項3のマイクロプロセッ
サは、上記請求項1において、カウンタは加算カウンタ
であり、比較手段はn個のカウンタのうち最大値が設定
されているカウンタの番号を出力し、制御手段は次に実
行すべきタスクの使用レジスタ数が多い場合は小さい値
を、少ない場合は大きい値をそれぞれカウンタに設定す
ることを特徴としている。カウンタとして加算カウンタ
を用いるもので、カウンタに設定する値が小さいと、加
算していっても使用頻度の高いレジスタバンクに対応し
たカウンタは小さい値を保っている確率が高く、最大値
にはなりにくいので、その使用頻度の高いタスクの情報
は優先的にレジスタバンクに保存されることになる。
【0018】本発明に係る請求項4のマイクロプロセッ
サは、任意数のレジスタからなり、複数存在するタスク
の任意の1つを割り付けることが可能なn個(nは自然
数)のレジスタバンクと、前記レジスタバンクのそれぞ
れと1対1に対応し、動作の基準となるクロック信号を
分周した分周クロック信号を出力するn個の分周手段
と、前記レジスタバンクのそれぞれと1対1に対応し、
任意の値を設定することが可能であって、この設定され
た値を前記分周クロック信号に同期して所定の値になる
まで加算あるいは減算させることが可能なn個のカウン
タと、前記n個のカウンタに設定されている値の大小を
比較し、比較結果に基づいてカウンタの番号を出力する
比較手段と、タスク切り換えが発生したとき、次に実行
すべきタスクが前記レジスタバンクのいずれかに割り当
てられているときはそのレジスタバンクを、このタスク
が前記レジスタバンクのいずれにも割り当てられていな
いときは前記比較手段から出力されるカウンタの番号に
対応するレジスタバンクをそれぞれ選択するレジスタバ
ンク選択手段と、タスク切り換えが発生したとき、前記
レジスタバンク選択手段によって選択されたレジスタバ
ンクに対応するカウンタに対して任意の値を設定し、同
レジスタバンクに対応する分周手段に対して次に実行す
べきタスクの使用レジスタ数に応じた分周比を設定し、
このレジスタバンクに同タスクを割り付けるよう制御を
行う制御手段とを備えたことを特徴としている。
【0019】タスクが割り当てられたレジスタバンクに
対応するカウンタは、タスクの実行開始時から各カウン
タに対応する分周手段から供給される分周クロックに同
期して、加算あるいは減算され、タスク切り換えが発生
したとき、まず比較手段がカウンタの値を比較し、その
結果最も優先順位の低いカウンタの番号をレジスタバン
ク選択手段に供給し、レジスタバンク選択手段が次に処
理を行うべきタスクが既にレジスタバンクに割り付けら
れているか否かを判別し、既にレジスタバンクに割り付
けられているときは、レジスタバンク選択手段がこのタ
スクの割り付けられているレジスタバンクを選択し、こ
の番号を制御手段に供給する。一方、次に処理を行うべ
きタスクの情報がレジスタバンクに割り付けられていな
いときには、レジスタバンク選択手段が比較手段から供
給されるカウンタの番号を制御手段に供給する。制御手
段は処理対象となるレジスタバンクを、レジスタバンク
選択手段から供給される番号のレジスタバンクに切り換
え、同時に実行を開始するタスクが割り当てられたレジ
スタバンクに対応する分周手段に、このタスクが使用す
るレジスタ数に応じた分周比を設定し、これによってタ
スクの切り換えが行われる。従って、タスク切り換え時
には、使用開始からの時間が長く、使用レジスタ数が少
ない、すなわち使用頻度の低いレジスタバンクが使わ
れ、使用頻度の高いタスクの情報は優先的にレジスタバ
ンクに保存されるので、システム性能が向上するという
作用を有する。
【0020】本発明に係る請求項5のマイクロプロセッ
サは、上記請求項4において、分周手段は動作基準とな
るクロック信号の1/1,1/2……1/m(mは1つ
のレジスタバンクに含まれるレジスタ数)までのm種類
の分周クロック信号を出力することを特徴としている。
分周比が大きいほどカウンタ値の進み具合が緩やかであ
り、使用頻度の高いレジスタバンクに対応したカウンタ
の番号が比較手段より出力される確率が低くなり、使用
頻度の高いタスクの情報は優先的にレジスタバンクに保
存されることになる。
【0021】本発明に係る請求項6のマイクロプロセッ
サは、上記請求項4において、カウンタは減算カウンタ
であり、比較手段はn個のカウンタのうち最小値が設定
されているカウンタの番号を出力し、制御手段は次に実
行すべきタスクの使用レジスタ数が多い場合は大きい分
周比の分周クロック信号を、少ない場合は小さい分周比
の分周クロック信号をそれぞれカウンタに設定すること
を特徴としている。カウンタとして減算カウンタを用い
るもので、カウンタに設定する分周比が大きいほどカウ
ンタの減算がゆっくりとしており、減算していっても使
用頻度の高いレジスタバンクに対応したカウンタは大き
い値を保っている確率が高く、最小値にはなりにくいの
で、その使用頻度の高いタスクの情報は優先的にレジス
タバンクに保存されることになる。
【0022】本発明に係る請求項7のマイクロプロセッ
サは、上記請求項4において、カウンタは加算カウンタ
であり、比較手段はn個のカウンタのうち最大値が設定
されているカウンタの番号を出力し、制御手段は次に実
行すべきタスクの使用レジスタ数が多い場合は大きい分
周比の分周クロック信号を、少ない場合は小さい分周比
の分周クロック信号をそれぞれカウンタに設定すること
を特徴としている。カウンタとして加算カウンタを用い
るもので、カウンタに設定する分周比が小さいほどカウ
ンタの加算がゆっくりとしており、加算していっても使
用頻度の高いレジスタバンクに対応したカウンタは小さ
い値を保っている確率が高く、最大値にはなりにくいの
で、その使用頻度の高いタスクの情報は優先的にレジス
タバンクに保存されることになる。
【0023】本発明に係る請求項8のマイクロプロセッ
サは、任意数のレジスタからなり、複数存在するタスク
の任意の1つを割り付けることが可能なn個(nは自然
数)のレジスタバンクと、前記レジスタバンクのそれぞ
れと1対1に対応し、任意の値を設定することが可能で
あって、この設定された値をクロックに同期して所定の
値になるまで加算あるいは減算させることが可能なn個
のカウンタと、前記n個のカウンタのうちのいずれかの
値が0になったことを検出し、0になったカウンタを示
すカウンタ番号を出力するゼロ検出手段と、前記ゼロ検
出手段から供給されるカウンタ番号に対応するレジスタ
バンクの内容を読み書き可能メモリに転送する転送手段
と、タスク切り換えが発生したとき、次に実行すべきタ
スクが前記レジスタバンクのいずれかに割り当てられて
いるときはそのレジスタバンクを、このタスクが前記レ
ジスタバンクのいずれにも割り当てられていないときは
前記カウンタの値が0であるレジスタバンクをそれぞれ
選択するレジスタバンク選択手段と、タスク切り換えが
発生したとき、前記レジスタバンク選択手段によって選
択されたレジスタバンクに対応するカウンタに次に実行
すべきタスクの使用レジスタ数に応じた値を設定し、こ
のレジスタバンクに同タスクを割り付けるよう制御を行
う制御手段とを備えたことを特徴としている。
【0024】タスクが割り付けられているレジスタバン
クに対応するカウンタは、クロックに同期して加算ある
いは減算され、ゼロ検出手段はカウンタの値が0になっ
たことを検出し、0になったカウンタの番号を転送手段
に供給し、転送手段がこのカウンタの番号で示されるレ
ジスタバンクの内容を読み書き可能メモリに転送する。
タスク切り換えが発生したとき、レジスタバンク選択手
段は、次に処理を行うべきタスクが既にレジスタバンク
に割り付けられているか否かを判別し、次に実行すべき
タスクがレジスタバンクのいずれかに割り当てられてい
るときはそのレジスタバンクを、次に実行すべきタスク
がレジスタバンクのいずれにも割り当てられていないと
きにはカウンタの値が0であるレジスタバンクをそれぞ
れ選択し、このレジスタバンクの番号を制御手段に供給
する。制御手段は処理対象となるレジスタバンクを、レ
ジスタバンク選択手段から供給される番号のレジスタバ
ンクに切り換え、これによってタスクの切り換えが行わ
れる。従って、使用開始からの時間が長く、使用レジス
タ数が少ない、すなわち使用頻度の低いレジスタバンク
を常に監視し、所定の条件より使用頻度の低いレジスタ
バンクの内容を読み書き可能メモリに自動的に転送し、
任意のタスクで使用可能とすることで、タスク切り換え
時にレジスタバンクに次に処理すべきタスクが割り付け
られていないときでも、すぐにレジスタバンクを使用す
ることが可能となるため、システム性能が向上するとい
う作用を有する。
【0025】本発明に係る請求項9のマイクロプロセッ
サは、上記請求項8において、カウンタは減算カウンタ
であり、制御手段は次に実行すべきタスクの使用レジス
タ数が多い場合は大きい値を、少ない場合は小さい値を
それぞれカウンタに設定することを特徴としている。カ
ウンタとして減算カウンタを用いるもので、カウンタに
設定する値が大きいと、減算していっても使用頻度の高
いレジスタバンクに対応したカウンタは大きい値を保っ
ている確率が高く、0にはなりにくいので、その使用頻
度の高いタスクの情報は優先的にレジスタバンクに保存
されることになる。
【0026】本発明に係る請求項10のマイクロプロセ
ッサは、上記請求項8において、カウンタは加算カウン
タであり、制御手段は次に実行すべきタスクの使用レジ
スタ数が多い場合はマイナス側で大きい値を、少ない場
合はマイナス側で小さい値をそれぞれカウンタに設定す
ることを特徴としている。カウンタとして加算カウンタ
を用いるもので、カウンタに設定する値がマイナス側で
大きいと、加算していっても使用頻度の高いレジスタバ
ンクに対応したカウンタはマイナス側で大きい値を保っ
ている確率が高く、0にはなりにくいので、その使用頻
度の高いタスクの情報は優先的にレジスタバンクに保存
されることになる。
【0027】本発明に係る請求項11のマイクロプロセ
ッサは、任意数のレジスタからなり、複数存在するタス
クの任意の1つを割り付けることが可能なn個(nは自
然数)のレジスタバンクと、前記レジスタバンクのそれ
ぞれと1対1に対応し、任意の値を設定することが可能
であって、この設定された値をクロックに同期して所定
の値になるまで加算あるいは減算させることが可能なn
個のカウンタと、前記n個のカウンタのそれぞれと1対
1に対応し、カウンタに設定する値を記憶するn個のカ
ウンタプリセットレジスタと、前記レジスタバンク内の
レジスタに対して書き込みまたは読み出しが発生したこ
とを検出し、書き込みまたは読み出しが行われたレジス
タバンクに対応する前記カウンタプリセットレジスタに
設定されている値を対応する前記カウンタに設定するカ
ウンタリセット手段と、前記n個のカウンタに設定され
ている値の大小を比較し、比較結果に基づいてカウンタ
の番号を出力する比較手段と、タスク切り換えが発生し
たとき、次に実行すべきタスクが前記レジスタバンクの
いずれかに割り当てられているときはそのレジスタバン
クを、このタスクが前記レジスタバンクのいずれにも割
り当てられていないときは前記比較手段から出力される
カウンタの番号に対応するレジスタバンクをそれぞれ選
択するレジスタバンク選択手段と、タスク切り換えが発
生したとき、前記レジスタバンク選択手段によって選択
されたレジスタバンクに対応するカウンタプリセットレ
ジスタに次に実行すベきタスクの使用レジスタ数に応じ
た値を設定し、このレジスタバンクに同タスクを割り付
けるよう制御を行う制御手段とを備えたことを特徴とし
ている。
【0028】タスク切り換えが発生したとき、まず比較
手段がタスク実行開始時から加算あるいは減算している
カウンタの値を比較し、その結果最も優先順位の低いレ
ジスタバンクの番号をレジスタバンク選択手段に供給
し、レジスタバンク選択手段が次に処理を行うべきタス
クが既にレジスタバンクに割り付けられているか否かを
判別し、既にレジスタバンクに割り付けられているとき
は、レジスタバンク選択手段がこのタスクの割り付けら
れているレジスタバンクを選択し、この番号を制御手段
に供給する。一方、次に処理を行うべきタスクの情報が
レジスタバンクに割り付けられていないときには、レジ
スタバンク選択手段が比較手段から供給されるレジスタ
バンクの番号を制御手段に供給する。制御手段は処理対
象となるレジスタバンクを、レジスタバンク選択手段か
ら供給される番号のレジスタバンクに切り換え、同時に
実行を開始するタスクが割り当てられたレジスタバンク
に対応するカウンタプリセットレジスタに対してこのタ
スクが使用するレジスタ数に応じた値を設定し、これに
よってタスクの切り換えが行われる。タスクの実行時に
レジスタ対して書き込みまたは読み出しが実行される
と、カウンタリセット手段が書き込みまたは読み出しの
実行されたレジスタに対応するカウンタプリセットレジ
スタの設定値を対応するカウンタに設定する。従って、
レジスタに対する読み書きの発生をカウンタに反映させ
ることにより、使用頻度の高いタスクの情報は優先的に
レジスタバンクに保存されるので、システム性能が向上
するという作用を有する。
【0029】本発明に係る請求項12のマイクロプロセ
ッサは、上記請求項11において、カウンタは減算カウ
ンタであり、比較手段はn個のカウンタのうち最小値が
設定されているカウンタの番号を出力し、制御手段は次
に実行すべきタスクの使用レジスタ数が多い場合は大き
い値を、少ない場合は小さい値をそれぞれカウンタに設
定することを特徴としている。カウンタとして減算カウ
ンタを用いるもので、カウンタに設定する値が大きい
と、減算していっても使用頻度の高いレジスタバンクに
対応したカウンタは大きい値を保っている確率が高く、
最小値にはなりにくいので、その使用頻度の高いタスク
の情報は優先的にレジスタバンクに保存されることにな
る。
【0030】本発明に係る請求項13のマイクロプロセ
ッサは、上記請求項11において、カウンタは加算カウ
ンタであり、比較手段はn個のカウンタのうち最大値が
設定されているカウンタの番号を出力し、制御手段は次
に実行すべきタスクの使用レジスタ数が多い場合は小さ
い値を、少ない場合は大きい値をそれぞれカウンタに設
定することを特徴としている。カウンタとして加算カウ
ンタを用いるもので、カウンタに設定する値が小さい
と、加算していっても使用頻度の高いレジスタバンクに
対応したカウンタは小さい値を保っている確率が高く、
最大値にはなりにくいので、その使用頻度の高いタスク
の情報は優先的にレジスタバンクに保存されることにな
る。
【0031】以下、本発明に係るマイクロプロセッサの
実施の形態について、図面を用いて説明する。
【0032】(実施の形態1)以下の説明では、1つの
レジスタバンクに含まれるレジスタ数を4、マイクロプ
ロセッサに含まれるレジスタバンクの数を4とする。
【0033】図1は、本発明の実施の形態1におけるマ
イクロプロセッサの構成を示すブロック図である。図1
において、101〜104はそれぞれ4つのレジスタを
含むレジスタバンクであり、111〜114はそれぞれ
レジスタバンク101〜104に対応するカウンタであ
り、任意値が設定されると0になるまでマイクロプロセ
ッサの動作基準クロックCLKに同期して減算する。1
20は比較手段として動作する比較回路であり、カウン
タ111〜114に設定される値を比較し、最小値が格
納されているカウンタの識別番号1〜4のいずれかを出
力する。130はレジスタバンク101〜104のそれ
ぞれに割り付けられているレジスタを記憶しておくタス
ク割り付けレジスタ131〜134を含むレジスタバン
ク選択手段として動作するレジスタバンク選択回路、1
40はタスクの切り換えの制御を行う制御手段として動
作する制御回路であり、レジスタバンク選択回路130
は制御回路140から供給されるタスクの識別番号がタ
スク割り付けレジスタ131〜134に含まれている場
合はそのレジスタの番号を、含まれていない場合は比較
回路120から供給されるカウンタの識別番号を制御回
路140に供給する。制御回路140はレジスタバンク
選択回路130から供給される識別番号に応じたレジス
タバンクにタスクの割り付けを行い、この識別番号に応
じたカウンタにタスクの使用レジスタ数に応じた正の値
を設定する。
【0034】このように構成されたマイクロプロセッサ
の動作について以下で説明する。なお、以下の説明で
は、レジスタバンク、カウンタ、タスク割り付けレジス
タの識別番号はそれぞれ同じ数値とし、レジスタバンク
101に対応するものは1、レジスタバンク102に対
応するものは2、レジスタバンク103に対応するもの
は3、レジスタバンク104に対応するものは4とす
る。また、比較回路120は、カウンタ111〜114
の中に最小値が複数個含まれていた場合には若い番号を
出力するものとする。例えばカウンタ111とカウンタ
112が同じく最小値であれば、1を出力するものとす
る。
【0035】まず、システム起動時に、レジスタバンク
101〜104、カウンタ111〜114およびタスク
割り付けレジスタ131〜134は全てリセットされ
る。
【0036】このとき、カウンタ111〜114には全
て0が格納されているので、比較回路120は最も若い
識別番号1を出力する。
【0037】ここで最初のタスク(タスク1)の処理要
求が発生したとすると、制御回路140はこのタスク1
を実行させるため、レジスタバンク選択回路130にタ
スクの識別番号1を供給する。レジスタバンク選択回路
130はタスク割り付けレジスタ131〜134にタス
ク1が割り付けられていることを示す識別番号1が格納
されているか否かを調べるが、このときタスク割り付け
レジスタ131〜134には全て0が格納されていて、
タスク1に対応した識別番号1がないので、レジスタバ
ンク選択回路130は比較回路120から供給される識
別番号1を制御回路140に出力し、レジスタバンク1
01にタスク1が割り付けられたことを記憶するため、
タスク割り付けレジスタ131にタスク1の識別番号1
を設定する。制御回路140は、レジスタバンク選択回
路130から供給された識別番号1で示されるレジスタ
バンク101に対応するカウンタ111に対してタスク
1の使用レジスタ数に応じた正の値を格納する。カウン
タ111は、制御回路140によって数値が設定される
と、動作クロックCLKに同期して減算を開始する。こ
のとき、比較回路120はカウンタ111には正の値が
格納されているので、0が格納されているカウンタのう
ち、最も番号の若いカウンタ112に対応する識別番号
2を出力する。
【0038】次に、タスク2の処理要求が発生したとす
ると、制御回路140はこのタスク2を実行させるた
め、レジスタバンク選択回路130にタスクの識別番号
2を供給する。レジスタバンク選択回路130はタスク
割り付けレジスタ131〜134にタスク2が割り付け
られていることを示す識別番号2が格納されているか否
かを調べるが、このときタスク割り付けレジスタ131
には1が、タスク割り付けレジスタ132〜134には
全て0が格納されていて、タスク2に対応した識別番号
2がないので、レジスタバンク選択回路130は比較回
路120から供給される識別番号2を制御回路140に
出力し、レジスタバンク102にタスク2が割り付けら
れたことを記憶するため、タスク割り付けレジスタ13
2にタスク2の識別番号2を設定する。制御回路140
は、レジスタバンク選択回路130から供給された識別
番号2で示されるレジスタバンク102に対応するカウ
ンタ112にタスク2の使用レジスタ数に応じた正の値
を格納する。カウンタ112は、制御回路140によっ
て数値が設定されると、動作クロックCLKに同期して
減算を開始する。これにより、タスクの使用レジスタ数
が同じであれば、後から割り付けられたタスクに対応す
るカウンタの方が大きな値となり、優先的にレジスタバ
ンクに割り付けられることになる。
【0039】以下同様に、タスクの処理要求が発生した
とき、該当するタスクがレジスタバンクに含まれておら
ず、タスクが割り付けられていないレジスタバンクがあ
るときは、そのレジスタバンクに処理要求が発生してい
るタスクが割り付けられる。
【0040】次に、タスクの処理要求が発生したとき、
該当するタスクがレジスタバンクに割り付けられている
場合の動作について説明する。
【0041】上記の例で、タスク1がレジスタバンク1
01に割り付けられているとき、再びタスク1の処理要
求が発生したとする。このとき、制御回路140はレジ
スタバンク選択回路130にタスク1の識別番号1を供
給する。レジスタバンク選択回路130は、タスク割り
付けレジスタ131から134の中に識別番号1が格納
されているか否かを調べるが、タスク割り付けレジスタ
131に識別番号1が格納されているので、タスク1が
割り付けられているのがレジスタバンク101であるこ
とを示す識別番号1を出力する。制御回路140は、レ
ジスタバンク選択回路130から供給された識別番号1
で示されるレジスタバンク101に対応するカウンタ1
11に対してタスク1の使用レジスタ数に応じた正の値
を格納する。カウンタ111は、制御回路140によっ
て数値が設定されると、動作クロックCLKに同期して
減算を開始する。これによって、カウンタ111は、タ
スクが使用されるたびに再設定され、相対的に大きな値
となる。これにより、使用頻度の高いタスクに対応する
カウンタの方が大きな値となり、優先的にレジスタバン
クに割り付けられることになる。
【0042】次に、タスクの処理要求が発生したとき、
全てのレジスタバンクにタスクが割り当てられており、
かつ該当するタスクが含まれていない場合の動作につい
て説明する。
【0043】レジスタバンク101にタスク1が、レジ
スタバンク102にタスク2が、レジスタバンク103
にタスク3が、レジスタバンク104にタスク4が割り
付けられているとする。このとき、タスク5の処理要求
が発生したとすると、制御回路140はレジスタバンク
選択回路130にタスク5の識別番号5を供給する。
【0044】レジスタバンク選択回路130はタスク割
り付けレジスタ131〜134にタスク5が割り付けら
れていることを示す識別番号5が格納されているか否か
を調べるが、このときタスク割り付けレジスタ131〜
134にはそれぞれ1、2、3、4が設定されていて、
タスク5に対応した識別番号5がないので、レジスタバ
ンク選択回路130は比較回路120から供給される識
別番号を制御回路140に出力する。このとき例えばカ
ウンタ114の値が最も小さいとすると、比較回路12
0は識別番号4を出力しているので、レジスタバンク選
択回路130は、制御回路140に識別番号4を供給す
る。制御回路140は、タスク4が使用中のレジスタバ
ンク104の内容を一旦読み書き可能メモリ(不図示)
に転送し、レジスタバンク104を使用可能とする。レ
ジスタバンク選択回路130は制御回路140から供給
されたタスクの識別番号5をタスク割り付けレジスタ1
34に設定する。制御回路140は、カウンタ114に
対してタスク5の使用レジスタ数に対応する正の値を設
定する。これにより、新たなタスクの処理要求が発生し
たために、使用中のレジスタバンクを解放しなければな
らない場合には、カウンタ111〜114に設定されて
いる値に基づいて、最もタスクの発生頻度およびタスク
の使用レジスタ数の少ないタスクが割り付けられている
レジスタバンクが選択、使用される。
【0045】なお、以上の説明では、既にレジスタバン
クに割り付けられているタスクに対して再び処理要求が
発生した場合には、カウンタに使用レジスタ数に対応す
る値を設定するとしたが、これはそのときのカウンタ値
に所定の値を加えるようにすることで、さらに使用頻度
を正確に捕捉することが可能となる。
【0046】また、以上の説明では、カウンタ111〜
114を減算カウンタとし、比較回路120はこれらの
カウンタ111〜114のうち最小値が設定されている
カウンタの番号を出力し、制御回路140は次に実行す
べきタスクの使用レジスタ数が多い場合は大きい値を、
少ない場合は小さい値をそれぞれカウンタに対して設定
するように構成したが、本発明はこれに限定されるもの
ではなく、カウンタ111〜114を加算カウンタと
し、比較回路120はこれらのカウンタ111〜114
のうち最大値が設定されているカウンタの番号を出力
し、制御回路140は次に実行すべきタスクの使用レジ
スタ数が多い場合は小さい値を、少ない場合は大きい値
をそれぞれカウンタに対して設定するように構成しても
よく、この場合も同様の効果が得られることは言うまで
もない。
【0047】なお、1つのレジスタバンクに含まれるレ
ジスタの数は任意であり、レジスタバンクおよびカウン
タの数も任意である。
【0048】(実施の形態2)以下の説明では、1つの
レジスタバンクに含まれるレジスタ数を4、マイクロプ
ロセッサに含まれるレジスタバンクの数を4として説明
する。
【0049】図2は、本発明の実施の形態2におけるマ
イクロプロセッサの構成を示すブロック図である。図2
では、図1で示される実施の形態1のマイクロプロセッ
サと同一の構成要素については、図1と同じ符号で示し
ている。実施の形態1との構成の差異は、クロックCL
Kを分周する分周手段として動作する分周回路251〜
254を新たに設けた点、レジスタバンク選択回路13
0とカウンタ111〜114の制御を行う制御回路14
0の代わりに、レジスタバンク選択回路130とカウン
タ111〜114と分周回路251〜254の制御を行
う制御回路240を設けた点である。
【0050】カウンタ111〜114は、所定の値が設
定されると、0になるまで分周回路251〜254より
それぞれ供給される分周クロックに同期して減算する。
【0051】制御回路240は、レジスタバンク選択回
路130から供給される識別番号に応じたレジスタバン
クにタスクの割り付けを行い、この識別番号に応じた分
周回路にタスクの使用レジスタ数に応じた値を設定す
る。
【0052】各分周回路251〜254に対しては、動
作基準となるクロック信号の1/1,1/2……1/m
(mは1つのレジスタバンクに含まれるレジスタ数。こ
こでの例ではm=4)までのm種類の分周クロック信号
を設定できるものとする。分周比が大きいほどカウンタ
値の進み具合が緩やかであり、使用頻度の高いレジスタ
バンクに対応したカウンタの番号が比較回路120より
レジスタバンク選択回路130に出力される確率が低く
なり、使用頻度の高いタスクの情報は優先的にレジスタ
バンクに保存されることになるからである。
【0053】このように構成されたマイクロプロセッサ
の動作について以下で説明する。なお、以下の説明で
は、レジスタバンク、カウンタ、タスク割り付けレジス
タの識別番号はそれぞれ同じ数値とし、レジスタバンク
101に対応するものは1、レジスタバンク102に対
応するものは2、レジスタバンク103に対応するもの
は3、レジスタバンク104に対応するものは4とす
る。また、比較回路120は、カウンタ111〜114
の中に最小値が複数個含まれていた場合には若い番号を
出力するものとする。例えばカウンタ111とカウンタ
112が同じく最小値であれば、1を出力するものとす
る。
【0054】まず、システム起動時に、レジスタバンク
101〜104、カウンタ111〜114、タスク割り
付けレジスタ131〜134および分周回路251〜2
54は全てリセットされる。分周回路251〜254は
リセット時には分周比として1が設定される(即ち分周
しない)。このとき、カウンタ111〜114には全て
0が格納されているので、比較回路120は最も若い識
別番号1を出力する。
【0055】ここで最初のタスク(タスク1)の処理要
求が発生したとすると、制御回路240はこのタスク1
を実行させるため、レジスタバンク選択回路130にタ
スクの識別番号1を供給する。レジスタバンク選択回路
130はタスク割り付けレジスタ131〜134にタス
ク1が割り付けられていることを示す識別番号1が格納
されているか否かを調べるが、このときタスク割り付け
レジスタ131〜134には全て0が格納されていて、
タスク1に対応した識別番号1がないので、レジスタバ
ンク選択回路130は比較回路120から供給される識
別番号1を制御回路240に出力し、レジスタバンク1
01にタスク1が割り付けられたことを記憶するため、
タスク割り付けレジスタ131にタスク1の識別番号1
を設定する。制御回路240は、レジスタバンク選択回
路130から供給された識別番号1で示されるレジスタ
バンク101に対応するカウンタ111に所定の値を設
定し、さらにタスク1の使用レジスタ数に応じた正の値
を分周比として分周回路251に設定する。カウンタ1
11は、制御回路240によって数値が設定されると、
同じく制御回路240によって分周比が設定された分周
回路251から供給される分周クロックに同期して減算
を開始する。このとき、比較回路120は、カウンタ1
11には正の値が格納されているので、0が格納されて
いるカウンタのうち、最も番号の若いカウンタ112に
対応する識別番号2を出力する。
【0056】次に、タスク2の処理要求が発生したとす
ると、制御回路240はこのタスク2を実行させるた
め、レジスタバンク選択回路130にタスクの識別番号
2を供給する。レジスタバンク選択回路130はタスク
割り付けレジスタ131〜134にタスク2が割り付け
られていることを示す識別番号2が格納されているか否
かを調べるが、このときタスク割り付けレジスタ131
には1が、タスク割り付けレジスタ132〜134には
全て0が格納されていて、タスク2に対応した識別番号
2がないので、レジスタバンク選択回路130は比較回
路120から供給される識別番号2を出力し、レジスタ
バンク102にタスク2が割り付けられたことを記憶す
るため、タスク割り付けレジスタ132にタスク2の識
別番号2を設定する。制御回路240は、レジスタバン
ク選択回路130から供給された識別番号2で示される
レジスタバンク102に対応するカウンタ112に所定
の値を設定し、さらにタスク2の使用レジスタ数に応じ
た正の値を分周比として分周回路252に設定する。カ
ウンタ112は、制御回路240によって数値が設定さ
れると、同じく制御回路240によって分周比が設定さ
れた分周回路252から供給される分周クロックに同期
して減算を開始する。これにより、タスクの使用レジス
タ数が同じであれば、後から割り付けられたタスクに対
応するカウンタの方が大きな値となり、優先的にレジス
タバンクに割り付けられることになり、またタスクの使
用レジスタ数が異なる場合には、使用レジスタ数の多い
タスクに対応するカウンタの方が、供給される分周クロ
ックの分周比が大きいので、カウンタ値の減少が緩やか
なものとなる。
【0057】以下同様に、タスクの処理要求が発生した
とき、該当するタスクがレジスタバンクに含まれておら
ず、タスクが割り付けられていないレジスタバンクがあ
るときは、そのレジスタバンクに処理要求が発生してい
るタスクが割り付けられる。
【0058】次に、タスクの処理要求が発生したとき、
該当するタスクがレジスタバンクに割り付けられている
場合の動作について説明する。
【0059】上記の例で、タスク1がレジスタバンク1
01に割り付けられているとき、再びタスク1の処理要
求が発生したとする。このとき、制御回路240はレジ
スタバンク選択回路130にタスク1の識別番号1を供
給する。レジスタバンク選択回路130は、タスク割り
付けレジスタ131から134の中に識別番号1が格納
されているか否かを調べるが、タスク割り付けレジスタ
131に識別番号1が格納されているので、タスク1が
割り付けられているのがレジスタバンク101であるこ
とを示す識別番号1を出力する。制御回路240は、レ
ジスタバンク選択回路130から供給された識別番号1
で示されるレジスタバンク101に対応するカウンタ1
11に所定の値を設定し、さらにタスク1の使用レジス
タ数に応じた正の値を分周比として分周回路251に設
定する。カウンタ111は、制御回路240によって数
値が設定されると、分周回路251から供給される分周
クロックに同期して減算を開始する。これによって、カ
ウンタ111は、タスクが使用されるたびに再設定さ
れ、相対的に大きな値となる。これにより、発生頻度の
高いタスクに対応するカウンタの方が大きな値となり、
優先的にレジスタバンクに割り付けられることになる。
【0060】次に、タスクの処理要求が発生したとき、
全てのレジスタバンクにタスクが割り当てられており、
かつ該当するタスクが含まれていない場合の動作につい
て説明する。
【0061】レジスタバンク101にタスク1が、レジ
スタバンク102にタスク2が、レジスタバンク103
にタスク3が、レジスタバンク104にタスク4が割り
付けられているとする。このとき、タスク5の処理要求
が発生したとすると、制御回路240はレジスタバンク
選択回路130にタスク5の識別番号5を供給する。
【0062】レジスタバンク選択回路130はタスク割
り付けレジスタ131〜134にタスク5が割り付けら
れていることを示す識別番号5が格納されているか否か
を調べるが、このときタスク割り付けレジスタ131〜
134にはそれぞれ1、2、3、4が設定されていて、
タスク5に対応した識別番号5がないので、レジスタバ
ンク選択回路130は比較回路120から供給される識
別番号を制御回路240に出力する。このとき例えばカ
ウンタ114の値が最も小さいとすると、比較回路12
0は識別番号4を出力しているので、レジスタバンク選
択回路130は、制御回路240に識別番号4を供給す
る。制御回路240は、タスク4が使用中のレジスタバ
ンク104の内容を一旦読み書き可能メモリ(不図示)
に転送し、レジスタバンク104を使用可能とする。レ
ジスタバンク選択回路130は制御回路240から供給
されたタスクの識別番号5をタスク割り付けレジスタ1
34に設定する。制御回路240は、カウンタ114に
所定の値を設定し、さらにタスク5の使用レジスタ数に
応じた正の値を分周比として分周回路254に設定す
る。これにより、新たなタスクの処理要求が発生したた
めに、使用中のレジスタバンクを解放しなければならな
い場合には、カウンタ111〜114に設定されている
値に基づいて、最もタスクの発生頻度およびタスクの使
用レジスタ数の少ないタスクが割り付けられているレジ
スタバンクが選択、使用される。
【0063】なお、以上の説明では、既にレジスタバン
クに割り付けられているタスクに対して再び処理要求が
発生した場合には、カウンタに所定の値を設定するとし
たが、これはそのときのカウンタ値に所定の値を加える
ようにすることで、さらに使用頻度を正確に捕捉するこ
とが可能となる。
【0064】また、以上の説明では、カウンタ111〜
114を減算カウンタとし、比較回路120はこれらの
カウンタ111〜114のうち最小値が設定されている
カウンタの番号を出力し、制御回路240は次に実行す
べきタスクの使用レジスタ数が多い場合は大きい分周比
の分周クロック信号を、少ない場合は小さい分周比の分
周クロック信号をそれぞれカウンタに対して設定するよ
うに構成したが、本発明はこれに限定されるものではな
く、カウンタ111〜114を加算カウンタとし、比較
回路120はこれらのカウンタ111〜114のうち最
大値が設定されているカウンタの番号を出力し、制御回
路240は上記と同様に次に実行すべきタスクの使用レ
ジスタ数が多い場合は大きい分周比の分周クロック信号
を、少ない場合は小さい分周比の分周クロック信号をそ
れぞれカウンタに対して設定するように構成してもよ
く、この場合も同様の効果が得られることは言うまでも
ない。
【0065】なお、1つのレジスタバンクに含まれるレ
ジスタの数は任意であり、レジスタバンクおよびカウン
タの数も任意である。
【0066】(実施の形態3)以下の説明では、1つの
レジスタバンクに含まれるレジスタ数を4、マイクロプ
ロセッサに含まれるレジスタバンクの数を4として説明
する。
【0067】図3は、本発明の実施の形態3におけるマ
イクロプロセッサの構成を示すブロック図である。図3
では、図1で示される実施の形態1のマイクロプロセッ
サと同一の構成要素については、図1と同じ符号で示し
ている。実施の形態1との構成の差異は、比較回路12
0の代わりにカウンタ111〜114のいずれかが0で
あることを検出し、そのカウンタの識別番号を出力する
ゼロ検出回路360を設けた点と、レジスタバンク選択
回路130の代わりに、レジスタバンク選択回路にゼロ
検出回路360から供給される識別番号に対応するタス
ク割り付けレジスタに0を設定する機能と、制御回路1
40からタスクの識別番号が供給されたときに該当タス
クの識別番号がタスク割り付けレジスタに設定されてい
ない場合には、タスク割り付けレジスタに0が設定され
ているレジスタバンクの識別番号を制御回路140に出
力する機能を付加したレジスタバンク選択回路330を
設けた点と、ゼロ検出回路360から供給される識別番
号に対応するレジスタバンクの内容を読み書き可能メモ
リ(不図示)に転送する転送回路370を新たに設けた
点である。
【0068】カウンタ111〜114は、任意値が設定
されると、0になるまで動作クロツクに同期して減算す
る。ゼロ検出回路360は、カウンタ111〜114の
いずれかが0になると、0になったカウンタの識別番号
を出力する。転送回路370は、ゼロ検出回路360か
ら供給される識別番号に対応するレジスタバンクの内容
を読み書き可能メモリ(不図示)に転送する。レジスタ
バンク選択回路330は、ゼロ検出回路360から供給
される識別番号に対応するタスク割り付けレジスタに0
を設定する。このように構成されたマイクロプロセッサ
の動作について以下で説明する。
【0069】なお、以下の説明では、レジスタバンク、
カウンタ、タスク割り付けレジスタの識別番号はそれぞ
れ同じ数値とし、レジスタバンク101に対応するもの
は1、レジスタバンク102に対応するものは2、レジ
スタバンク103に対応するものは3、レジスタバンク
104に対応するものは4とする。また、レジスタバン
ク選択回路330は、制御回路140からタスクの識別
番号の供給を受けたとき、該当するタスクの識別番号が
タスク割り付けレジスタ331〜334の中に含まれて
いない場合、0が格納されているタスク割り付けレジス
タのうち最若番のもの(全てのタスク割り付けレジスタ
に0が格納されているなら1)を出力するものとする。
【0070】まず、システム起動時に、レジスタバンク
101〜104、カウンタ111〜114およびタスク
割り付けレジスタ331〜334は全てリセットされ
る。
【0071】ここで最初のタスク(タスク1)の処理要
求が発生したとすると、制御回路140はこのタスク1
を実行させるため、レジスタバンク選択回路330にタ
スクの識別番号1を供給する。レジスタバンク選択回路
330はタスク割り付けレジスタ331〜334にタス
ク1が割り付けられていることを示す識別番号1が格納
されているか否かを調べるが、このときタスク割り付け
レジスタ331〜334には全て0が格納されているの
で、レジスタバンク選択回路330は0が格納されてい
るタスク割り付けレジスタのうち最若番の識別番号1を
出力し、レジスタバンク101にタスク1が割り付けら
れたことを記憶するため、タスク割り付けレジスタ33
1にタスク1の識別番号1を設定する。
【0072】制御回路140は、レジスタバンク選択回
路330から供給された識別番号1で示されるレジスタ
バンク101に対応するカウンタ111に対してタスク
1の使用レジスタ数に応じた正の値を設定する。カウン
タ111は、制御回路140によって数値が設定される
と動作クロックCLKに同期して減算を開始する。
【0073】次に、タスク2の処理要求が発生したとす
ると、制御回路140はこのタスク2を実行させるた
め、レジスタバンク選択回路330にタスクの識別番号
2を供給する。レジスタバンク選択回路330はタスク
割り付けレジスタ331〜334にタスク2が割り付け
られていることを示す識別番号2が格納されているか否
かを調べるが、このときタスク割り付けレジスタ331
には1が、タスク割り付けレジスタ332〜334には
全て0が格納されているので、レジスタバンク選択回路
330は0が格納されているタスク割り付けレジスタの
うち最若番の識別番号2を出力し、レジスタバンク10
2にタスク2が割り付けられたことを記憶するため、タ
スク割り付けレジスタ332にタスク2の識別番号2を
設定する。
【0074】制御回路140は、レジスタバンク選択回
路330から供給された識別番号2で示されるレジスタ
バンク102に対応するカウンタ112に対してタスク
2の使用レジスタ数に応じた正の値を設定する。カウン
タ112は、制御回路140によって数値が設定される
と、動作クロックCLKに同期して減算を開始する。こ
れにより、タスクの使用レジスタ数が同じであれば、後
から割り付けられたタスクに対応するカウンタの方が大
きな値となり、優先的にレジスタバンクに割り付けられ
ることになる 以下同様に、タスクの処理要求が発生し
たとき、該当するタスクがレジスタバンクに含まれてお
らず、タスクが割り付けられていないレジスタバンクが
あるときは、そのレジスタバンクに処理要求が発生して
いるタスクが割り付けられる。
【0075】次に、タスクの処理要求が発生したとき、
該当するタスクがレジスタバンクに割り付けられている
場合の動作について説明する。
【0076】上記の例で、タスク1がレジスタバンク1
01に割り付けられているとき、再びタスク1の処理要
求が発生したとする。このとき、制御回路140はレジ
スタバンク選択回路330にタスク1の識別番号1を供
給する。レジスタバンク選択回路330は、タスク割り
付けレジスタ331から334の中に識別番号1が格納
されているか否かを調べるが、タスク割り付けレジスタ
331に識別番号1が格納されているので、タスク1が
割り付けられているのがレジスタバンク101であるこ
とを示す識別番号1を出力する。制御回路140は、レ
ジスタバンク選択回路330から供給された識別番号1
で示されるレジスタバンク101に対応するカウンタ1
11にタスク1の使用レジスタ数に応じた正の値を設定
する。カウンタ111は、制御回路140によって数値
が設定されると動作クロックCLKに同期して減算を開
始する。これによって、カウンタ111は、タスクが使
用されるたびに再設定され、相対的に大きな値となる。
これにより、発生頻度の高いタスクに対応するカウンタ
の方が大きな値となり、優先的にレジスタバンクに割り
付けられることになる。
【0077】次に、あるタスク実行中に、別の非実行中
のタスクに対応するカウンタが0になった場合の動作に
ついて説明する。
【0078】上記の例で、タスク1とタスク2がそれぞ
れレジスタバンク101とレジスタバンク102に割り
付けられ、タスク2を実行中に、レジスタバンク101
に対応するカウンタ111が0になったとする。このと
き、ゼロ検出回路360は、0になったカウンタの識別
番号1をレジスタバンク選択回路330と転送回路37
0に供給する。転送回路370は、ゼロ検出回路360
から供給された識別番号1に対応するレジスタバンク1
01の内容を読み書き可能メモリ(不図示)に転送す
る。また、レジスタバンク選択回路330は、ゼロ検出
回路360から供給された識別番号1に対応するタスク
割り付けレジスタ331に0を設定する。
【0079】これにより、カウンタ値が0になったレジ
スタバンクの内容が、メモリに自動的に退避され、同時
にこのレジスタバンクに対応するタスク割り付けレジス
タが0にリセットされるので、このレジスタバンクが全
てのタスクで使用可能となる。
【0080】なお、以上の説明では、既にレジスタバン
クに割り付けられているタスクに対して再び処理要求が
発生した場合には、カウンタにタスクの使用レジスタ数
に応じた値を設定するとしたが、これはそのときのカウ
ンタ値に所定の値を加えるようにすることで、さらに使
用頻度を正確に捕捉することが可能となる。また、ここ
では説明していないが、タスクの処理要求が発生したと
きに全てのレジスタバンクにタスクが割り当てられてお
り、かつ該当するタスクが含まれていないという状況が
考えられるが、これは、カウンタに設定する値を適当な
範囲で選択することにより、少なくとも1つのレジスタ
バンクは使用可能な状態にすることが可能である。
【0081】また、以上の説明では、カウンタ111〜
114を減算カウンタとし、制御回路140は次に実行
すべきタスクの使用レジスタ数が多い場合は大きい値
を、少ない場合は小さい値をそれぞれカウンタに設定す
るように構成したが、本発明はこれに限定されるもので
はなく、カウンタ111〜114を加算カウンタとし、
制御回路140は次に実行すべきタスクの使用レジスタ
数が多い場合はマイナス側で大きい値を、少ない場合は
マイナス側で小さい値をそれぞれカウンタに設定するよ
うに構成してもよく、この場合も同様の効果が得られる
ことは言うまでもない。
【0082】なお、1つのレジスタバンクに含まれるレ
ジスタの数は任意であり、レジスタバンクおよびカウン
タの数も任意である。
【0083】(実施の形態4)以下の説明では、1つの
レジスタバンクに含まれるレジスタ数を4、マイクロプ
ロセッサに含まれるレジスタバンクの数を4として説明
する。
【0084】図4は、本発明の実施の形態4におけるマ
イクロプロセッサの構成を示すブロック図である。図4
では、図1で示される実施の形態1のマイクロプロセッ
サと同一の構成要素については、図1と同じ符号で示し
ている。実施の形態1との構成の差異は、カウンタ11
1〜114に設定する値を保持させるカウンタプリセッ
トレジスタ491〜494を新たに設けた点と、レジス
タバンク101〜104に対する読み書きを検出し、読
み書きが行われたレジスタバンクに対応するカウンタプ
リセットレジスタの値をカウンタに設定させるカウンタ
リセット手段として動作するカウンタリセット回路48
0を新たに設けた点、さらに、レジスタバンク選択回路
130とカウンタ111〜114の制御を行う制御回路
140の代わりに、レジスタバンク選択回路130とカ
ウンタプリセットレジスタ491〜494の制御を行う
制御回路440を設けた点である。
【0085】カウンタ111〜114は、任意値が設定
されると、動作クロックCLKに同期して減算する。
【0086】制御回路440は、レジスタバンク選択回
路130から供給される識別番号に応じたレジスタバン
クにタスクの割り付けを行い、この識別番号に応じたカ
ウンタプリセットレジスタにタスクの使用レジスタ数に
応じた正の値を設定する。カウンタリセット回路480
は、レジスタへの読み書きが行われるとそのレジスタを
含むレジスタバンクの識別番号に対応するカウンタプリ
セットレジスタに設定されている値を、同じく対応する
カウンタに設定する。
【0087】このように構成されたマイクロプロセッサ
の動作について以下で説明する。なお、以下の説明で
は、レジスタバンク、カウンタ、タスク割り付けレジス
タの識別番号はそれぞれ同じ数値とし、レジスタバンク
101に対応するものは1、レジスタバンク102に対
応するものは2、レジスタバンク103に対応するもの
は3、レジスタバンク104に対応するものは4とす
る。また、比較回路120は、カウンタ111〜114
の中に最小値が複数個含まれていた場合には若い番号を
出力するものとする。例えばカウンタ111とカウンタ
112が同じく最小値であれば、1を出力するものとす
る。
【0088】まず、システム起動時に、レジスタバンク
101〜104、カウンタ111〜114、タスク割り
付けレジスタ131〜134およびカウンタプリセット
レジスタ491〜494は全てリセットされる。
【0089】このとき、カウンタ111〜114には全
て0が格納されているので、比較回路120は識別番号
1を出力する。
【0090】ここで最初のタスク(タスク1)の処理要
求が発生したとすると、制御回路440はこのタスク1
を実行させるため、レジスタバンク選択回路130にタ
スクの識別番号1を供給する。レジスタバンク選択回路
130はタスク割り付けレジスタ131〜134にタス
ク1が割り付けられていることを示す識別番号1が格納
されているか否かを調べるが、このときタスク割り付け
レジスタ131〜134には全て0が格納されていて、
タスク1に対応した識別番号1がないので、レジスタバ
ンク選択回路130は比較回路120から供給される識
別番号1を出力し、レジスタバンク101にタスク1が
割り付けられたことを記憶するため、タスク割り付けレ
ジスタ131にタスク1の識別番号1を設定する。制御
回路440は、レジスタバンク選択回路130から供給
された識別番号1で示されるレジスタバンク101に対
応するカウンタプリセットレジスタ491にタスク1の
使用レジスタ数に応じた正の値を格納する。タスクの処
理が開始され、レジスタバンク101に含まれるレジス
タに対して読み出しあるいは書き込みが行われると、カ
ウンタリセット回路480がこれを検出し、カウンタプ
リセットレジスタ491に設定されている値をカウンタ
111に設定する。カウンタ111は、カウンタリセッ
ト回路480によって数値が設定されると、動作クロッ
クCLKに同期して減算を開始する。このとき、比較回
路120はカウンタ111には正の値が格納されている
ので、0が格納されているカウンタのうち、最も番号の
若いカウンタ112に対応する識別番号2を出力する。
【0091】次に、タスク2の処理要求が発生したとす
ると、制御回路440はこのタスク2を実行させるた
め、レジスタバンク選択回路130にタスクの識別番号
2を供給する。レジスタバンク選択回路130はタスク
割り付けレジスタ131〜134にタスク2が割り付け
られていることを示す識別番号2が格納されているか否
がを調べるが、このときタスク割り付けレジスタ131
には1が、タスク割り付けレジスタ132〜134には
全て0が格納されていて、タスク2に対応した識別番号
2がないので、レジスタバンク選択回路130は比較回
路120から供給される識別番号2を出力し、レジスタ
バンク102にタスク2が割り付けられたことを記憶す
るため、タスク割り付けレジスタ132にタスク2の識
別番号2を設定する。制御回路440は、レジスタバン
ク選択回路130から供給された識別番号2で示される
レジスタバンク102に対応するカウンタプリセットレ
ジスタ492にタスク2の使用レジスタ数に応じた正の
値を格納する。タスクの処理が開始され、レジスタバン
ク102に含まれるレジスタに対して読み出しあるいは
書き込みが行われると、カウンタリセット回路480が
これを検出し、カウンタプリセットレジスタ492に設
定されている値をカウンタ112に設定する。
【0092】カウンタ112は、カウンタリセット回路
480によって数値が設定されると、動作クロックCL
Kに同期して減算を開始する。これにより、タスクの使
用レジスタ数が同じであれば、後から割り付けられたタ
スクに対応するカウンタの方が大きな値となり、優先的
にレジスタバンクに割り付けられることになる。
【0093】以下同様に、タスクの処理要求が発生した
とき、該当するタスクがレジスタバンクに含まれておら
ず、タスクが割り付けられていないレジスタバンクがあ
るときは、そのレジスタバンクに処理要求が発生してい
るタスクが割り付けられる。
【0094】次に、タスクの処理要求が発生したとき、
該当するタスクがレジスタバンクに割り付けられている
場合の動作について説明する。
【0095】上記の例で、タスク1がレジスタバンク1
01に割り付けられているとき、再びタスク1の処理要
求が発生したとする。このとき、制御回路440はレジ
スタバンク選択回路130にタスク1の識別番号1を供
給する。レジスタバンク選択回路130は、タスク割り
付けレジスタ131から134の中に識別番号1が格納
されているか否かを調べるが、タスク割り付けレジスタ
131に識別番号1が格納されているので、タスク1が
割り付けられているのがレジスタバンク101であるこ
とを示す識別番号1を出力する。制御回路440は、レ
ジスタバンク選択回路130から供給された識別番号1
で示されるレジスタバンク101に対応するカウンタプ
リセットレジスタ491にタスク1の使用レジスタ数に
応じた正の値を格納する。タスクの処理が開始され、レ
ジスタバンク101に含まれるレジスタに対して読み出
しあるいは書き込みが行われると、カウンタリセット回
路480がこれを検出し、カウンタプリセットレジスタ
491に設定されている値をカウンタ111に設定す
る。カウンタ111は、カウンタリセット回路480に
よって数値が設定されると、動作クロックCLKに同期
して減算を開始する。
【0096】これによって、カウンタ111は、タスク
内でレジスタが使用されるたびに再設定され、相対的に
大きな値となる。これにより、レジスタの使用頻度の高
いタスクに対応するカウンタの方が大きな値となり、優
先的にレジスタバンクに割り付けられることになる。
【0097】次に、タスクの処理要求が発生したとき、
全てのレジスタバンクにタスクが割り当てられており、
かつ該当するタスクが含まれていない場合の動作につい
て説明する。
【0098】レジスタバンク101にタスク1が、レジ
スタバンク102にタスク2が、レジスタバンク103
にタスク3が、レジスタバンク104にタスク4が割り
付けられているとする。このとき、タスク5の処理要求
が発生したとすると、制御回路440はレジスタバンク
選択回路130にタスク5の識別番号5を供給する。
【0099】レジスタバンク選択回路130はタスク割
り付けレジスタ131〜134にタスク5が割り付けら
れていることを示す識別番号5が格納されているか否か
を調べるが、このときタスク割り付けレジスタ131〜
134にはそれぞれ1、2、3、4が設定されていて、
タスク5に対応した識別番号5がないので、レジスタバ
ンク選択回路130は比較回路120から供給される識
別番号を制御回路440に出力する。このとき例えばカ
ウンタ114の値が最も小さいとすると、比較回路12
0は識別番号4を出力しているので、レジスタバンク選
択回路130は、制御回路440に識別番号4を供給す
る。制御回路440は、タスク4が使用中のレジスタバ
ンク104の内容を一旦読み書き可能メモリ(不図示)
に転送し、レジスタバンク104を使用可能とする。レ
ジスタバンク選択回路130は制御回路440から供給
されたタスクの識別番号5をタスク割り付けレジスタ1
34に設定する。制御回路440は、カウンタプリセッ
トレジスタ494にタスク5の使用レジスタ数に対応す
る正の値を設定する。タスクの処理が開始され、レジス
タバンク104に含まれるレジスタに対して読み出しあ
るいは書き込みが行われると、カウンタリセット回路4
80がこれを検出し、カウンタプリセットレジスタ49
4に設定されている値をカウンタ114に設定する。カ
ウンタ114は、カウンタリセット回路480によって
数値が設定されると、動作クロックCLKに同期して減
算を開始する。これにより、新たなタスクの処理要求が
発生したために、使用中のレジスタバンクを解放しなけ
ればならない場合には、カウンタ111〜114に設定
されている値に基づいて、タスクのレジスタを使用する
頻度および使用レジスタ数の最も少ないタスクが割り付
けられているレジスタバンクが選択され、使用される。
【0100】なお、以上の説明では、カウンタ111〜
114を減算カウンタとし、比較回路120はこれらの
カウンタ111〜114のうち最小値が設定されている
カウンタの番号を出力し、制御回路440は次に実行す
べきタスクの使用レジスタ数が多い場合は大きい値を、
少ない場合は小さい値をそれぞれカウンタに対して設定
するように構成したが、本発明はこれに限定されるもの
ではなく、カウンタ111〜114を加算カウンタと
し、比較回路120はこれらのカウンタ111〜114
のうち最大値が設定されているカウンタの番号を出力
し、制御回路440は次に実行すべきタスクの使用レジ
スタ数が多い場合は小さい値を、少ない場合は大きい値
をそれぞれカウンタに対して設定するように構成しても
よく、この場合も同様の効果が得られることは言うまで
もない。
【0101】なお、1つのレジスタバンクに含まれるレ
ジスタの数は任意であり、レジスタバンクおよびカウン
タの数も任意である。
【0102】
【発明の効果】以上のように本発明の第1のマイクロプ
ロセッサによれば、レジスタバンクごとにカウンタを設
け、タスクの使用レジスタ数およびタスクの処理が発生
する頻度が、各レジスタバンクに対応したカウンタに反
映されるよう構成し、タスクのレジスタバンクへの割り
付けの優先順位を動的に管理することによって、タスク
切り換えのオーバーヘッド時間を低減することが可能と
なるため、システムの性能を向上させるという効果が得
られる。
【0103】また、本発明の第2のマイクロプロセッサ
によれば、カウンタのカウントタイミングを生成するク
ロックを分周する分周手段を設けることにより、タスク
の使用レジスタ数を各レジスタバンクに対応したカウン
タにより詳細に反映させることが可能となり、システム
の性能を向上させるという効果が得られる。
【0104】また、本発明の第3のマイクロプロセッサ
によれば、カウンタが0になったことを検出するゼロ検
出手段と、0になったカウンタに対応するレジスタバン
クの内容を読み書き可能メモリに転送する転送手段とを
設けることにより、レジスタバンクへの割り付けの優先
順位の低くなったタスクの情報を自動的にレジスタバン
クから退避することが可能となり、新たなタスクをレジ
スタバンクに割り付ける際にタスク切り換えのオーバー
ヘッド時間が短くなり、システムの性能を向上させると
いう効果が得られる。
【0105】さらに、本発明の第4のマイクロプロセッ
サによれば、カウンタに設定する値を記憶するカウンタ
プリセットレジスタと、レジスタへの読み書きが発生し
たことを検出し、カウンタプリセットレジスタに設定さ
れている値をカウンタに再設定するカウンタリセット手
段とを設けることにより、タスクのレジスタの使用頻度
をレジスタへの読み書き単位で詳細にカウンタに反映さ
せることが可能となるため、タスク切り換えのオーバー
ヘッド時間が短くなり、システムの性能を向上させると
いう効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1に係るマイクロプロセッ
サの構成を示すブロック図である。
【図2】本発明の実施の形態2に係るマイクロプロセッ
サの構成を示すブロック図である。
【図3】本発明の実施の形態3に係るマイクロプロセッ
サの構成を示すブロック図である。
【図4】本発明の実施の形態4に係るマイクロプロセッ
サの構成を示すブロック図である。
【符号の説明】
101,102,103,104……レジスタバンク 111,112,113,114……カウンタ 120……比較回路 130,330……レジスタバンク選択回路 131,132,133,134……タスク割り付けレ
ジスタ 331,332,333,334……タスク割り付けレ
ジスタ 140,240,440……制御回路 251,252,253,254……分周回路 360……ゼロ検出回路 370……転送回路 480……カウンタリセット回路 491,492,493,494……カウンタプリセッ
トレジスタ

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 任意数のレジスタからなり、複数存在す
    るタスクの任意の1つを割り付けることが可能なn個
    (nは自然数)のレジスタバンクと、 前記レジスタバンクのそれぞれと1対1に対応し、任意
    の値を設定することが可能であって、この設定された値
    をクロックに同期して所定の値になるまで加算あるいは
    減算させることが可能なn個のカウンタと、 前記n個のカウンタに設定されている値の大小を比較
    し、比較結果に基づいてカウンタの番号を出力する比較
    手段と、 タスク切り換えが発生したとき、次に実行すべきタスク
    が前記レジスタバンクのいずれかに割り当てられている
    ときはそのレジスタバンクを、このタスクが前記レジス
    タバンクのいずれにも割り当てられていないときは前記
    比較手段から出力されるカウンタの番号に対応するレジ
    スタバンクをそれぞれ選択するレジスタバンク選択手段
    と、 タスク切り換えが発生したとき、前記レジスタバンク選
    択手段によって選択されたレジスタバンクに対応するカ
    ウンタに対して次に実行すべきタスクの使用レジスタ数
    に応じた値を設定し、このレジスタバンクに同タスクを
    割り付けるよう制御を行う制御手段とを備えたことを特
    徴とするマイクロプロセッサ。
  2. 【請求項2】 カウンタは減算カウンタであり、比較手
    段はn個のカウンタのうち最小値が設定されているカウ
    ンタの番号を出力し、制御手段は次に実行すべきタスク
    の使用レジスタ数が多い場合は大きい値を、少ない場合
    は小さい値をそれぞれカウンタに設定することを特徴と
    する請求項1に記載のマイクロプロセッサ。
  3. 【請求項3】 カウンタは加算カウンタであり、比較手
    段はn個のカウンタのうち最大値が設定されているカウ
    ンタの番号を出力し、制御手段は次に実行すべきタスク
    の使用レジスタ数が多い場合は小さい値を、少ない場合
    は大きい値をそれぞれカウンタに設定することを特徴と
    する請求項1に記載のマイクロプロセッサ。
  4. 【請求項4】 任意数のレジスタからなり、複数存在す
    るタスクの任意の1つを割り付けることが可能なn個
    (nは自然数)のレジスタバンクと、 前記レジスタバンクのそれぞれと1対1に対応し、動作
    の基準となるクロック信号を分周した分周クロック信号
    を出力するn個の分周手段と、 前記レジスタバンクのそれぞれと1対1に対応し、任意
    の値を設定することが可能であって、この設定された値
    を前記分周クロック信号に同期して所定の値になるまで
    加算あるいは減算させることが可能なn個のカウンタ
    と、 前記n個のカウンタに設定されている値の大小を比較
    し、比較結果に基づいてカウンタの番号を出力する比較
    手段と、 タスク切り換えが発生したとき、次に実行すべきタスク
    が前記レジスタバンクのいずれかに割り当てられている
    ときはそのレジスタバンクを、このタスクが前記レジス
    タバンクのいずれにも割り当てられていないときは前記
    比較手段から出力されるカウンタの番号に対応するレジ
    スタバンクをそれぞれ選択するレジスタバンク選択手段
    と、 タスク切り換えが発生したとき、前記レジスタバンク選
    択手段によって選択されたレジスタバンクに対応するカ
    ウンタに対して任意の値を設定し、同レジスタバンクに
    対応する分周手段に対して次に実行すべきタスクの使用
    レジスタ数に応じた分周比を設定し、このレジスタバン
    クに同タスクを割り付けるよう制御を行う制御手段とを
    備えたことを特徴とするマイクロプロセッサ。
  5. 【請求項5】 分周手段は動作基準となるクロック信号
    の1/1,1/2……1/m(mは1つのレジスタバン
    クに含まれるレジスタ数)までのm種類の分周クロック
    信号を出力することを特徴とする請求項4に記載のマイ
    クロプロセッサ。
  6. 【請求項6】 カウンタは減算カウンタであり、比較手
    段はn個のカウンタのうち最小値が設定されているカウ
    ンタの番号を出力し、制御手段は次に実行すべきタスク
    の使用レジスタ数が多い場合は大きい分周比の分周クロ
    ック信号を、少ない場合は小さい分周比の分周クロック
    信号をそれぞれカウンタに設定することを特徴とする請
    求項4に記載のマイクロプロセッサ。
  7. 【請求項7】 カウンタは加算カウンタであり、比較手
    段はn個のカウンタのうち最大値が設定されているカウ
    ンタの番号を出力し、制御手段は次に実行すべきタスク
    の使用レジスタ数が多い場合は大きい分周比の分周クロ
    ック信号を、少ない場合は小さい分周比の分周クロック
    信号をそれぞれカウンタに設定することを特徴とする請
    求項4に記載のマイクロプロセッサ。
  8. 【請求項8】 任意数のレジスタからなり、複数存在す
    るタスクの任意の1つを割り付けることが可能なn個
    (nは自然数)のレジスタバンクと、 前記レジスタバンクのそれぞれと1対1に対応し、任意
    の値を設定することが可能であって、この設定された値
    をクロックに同期して所定の値になるまで加算あるいは
    減算させることが可能なn個のカウンタと、 前記n個のカウンタのうちのいずれかの値が0になった
    ことを検出し、0になったカウンタを示すカウンタ番号
    を出力するゼロ検出手段と、 前記ゼロ検出手段から供給されるカウンタ番号に対応す
    るレジスタバンクの内容を読み書き可能メモリに転送す
    る転送手段と、 タスク切り換えが発生したとき、次に実行すべきタスク
    が前記レジスタバンクのいずれかに割り当てられている
    ときはそのレジスタバンクを、このタスクが前記レジス
    タバンクのいずれにも割り当てられていないときは前記
    カウンタの値が0であるレジスタバンクをそれぞれ選択
    するレジスタバンク選択手段と、 タスク切り換えが発生したとき、前記レジスタバンク選
    択手段によって選択されたレジスタバンクに対応するカ
    ウンタに次に実行すべきタスクの使用レジスタ数に応じ
    た値を設定し、このレジスタバンクに同タスクを割り付
    けるよう制御を行う制御手段とを備えたことを特徴とす
    るマイクロプロセッサ。
  9. 【請求項9】 カウンタは減算カウンタであり、制御手
    段は次に実行すべきタスクの使用レジスタ数が多い場合
    は大きい値を、少ない場合は小さい値をそれぞれカウン
    タに設定することを特徴とする請求項8に記載のマイク
    ロプロセッサ。
  10. 【請求項10】 カウンタは加算カウンタであり、制御
    手段は次に実行すべきタスクの使用レジスタ数が多い場
    合はマイナス側で大きい値を、少ない場合はマイナス側
    で小さい値をそれぞれカウンタに設定することを特徴と
    する請求項8に記載のマイクロプロセッサ。
  11. 【請求項11】 任意数のレジスタからなり、複数存在
    するタスクの任意の1つを割り付けることが可能なn個
    (nは自然数)のレジスタバンクと、 前記レジスタバンクのそれぞれと1対1に対応し、任意
    の値を設定することが可能であって、この設定された値
    をクロックに同期して所定の値になるまで加算あるいは
    減算させることが可能なn個のカウンタと、 前記n個のカウンタのそれぞれと1対1に対応し、カウ
    ンタに設定する値を記憶するn個のカウンタプリセット
    レジスタと、 前記レジスタバンク内のレジスタに対して書き込みまた
    は読み出しが発生したことを検出し、書き込みまたは読
    み出しが行われたレジスタバンクに対応する前記カウン
    タプリセットレジスタに設定されている値を対応する前
    記カウンタに設定するカウンタリセット手段と、 前記n個のカウンタに設定されている値の大小を比較
    し、比較結果に基づいてカウンタの番号を出力する比較
    手段と、 タスク切り換えが発生したとき、次に実行すべきタスク
    が前記レジスタバンクのいずれかに割り当てられている
    ときはそのレジスタバンクを、このタスクが前記レジス
    タバンクのいずれにも割り当てられていないときは前記
    比較手段から出力されるカウンタの番号に対応するレジ
    スタバンクをそれぞれ選択するレジスタバンク選択手段
    と、 タスク切り換えが発生したとき、前記レジスタバンク選
    択手段によって選択されたレジスタバンクに対応するカ
    ウンタプリセットレジスタに次に実行すベきタスクの使
    用レジスタ数に応じた値を設定し、このレジスタバンク
    に同タスクを割り付けるよう制御を行う制御手段とを備
    えたことを特徴とするマイクロプロセッサ。
  12. 【請求項12】 カウンタは減算カウンタであり、比較
    手段はn個のカウンタのうち最小値が設定されているカ
    ウンタの番号を出力し、制御手段は次に実行すべきタス
    クの使用レジスタ数が多い場合は大きい値を、少ない場
    合は小さい値をそれぞれカウンタに設定することを特徴
    とする請求項11に記載のマイクロプロセッサ。
  13. 【請求項13】 カウンタは加算カウンタであり、比較
    手段はn個のカウンタのうち最大値が設定されているカ
    ウンタの番号を出力し、制御手段は次に実行すべきタス
    クの使用レジスタ数が多い場合は小さい値を、少ない場
    合は大きい値をそれぞれカウンタに設定することを特徴
    とする請求項11に記載のマイクロプロセッサ。
JP33681895A 1995-12-25 1995-12-25 マイクロプロセッサ Pending JPH09179741A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33681895A JPH09179741A (ja) 1995-12-25 1995-12-25 マイクロプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33681895A JPH09179741A (ja) 1995-12-25 1995-12-25 マイクロプロセッサ

Publications (1)

Publication Number Publication Date
JPH09179741A true JPH09179741A (ja) 1997-07-11

Family

ID=18302968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33681895A Pending JPH09179741A (ja) 1995-12-25 1995-12-25 マイクロプロセッサ

Country Status (1)

Country Link
JP (1) JPH09179741A (ja)

Similar Documents

Publication Publication Date Title
US7950016B2 (en) Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot
JP4838240B2 (ja) 情報処理装置における電力制御装置
US9465610B2 (en) Thread scheduling in a system with multiple virtual machines
US6430666B1 (en) Linked list memory and method therefor
US20060101252A1 (en) Information processing apparatus and context switching method
JP5406287B2 (ja) マルチプロセッサシステム、マルチプロセッサ制御方法、及びマルチプロセッサ集積回路
WO2007020739A1 (ja) スケジューリング方法およびスケジューリング装置
JP4388005B2 (ja) コンテキスト切替え装置
US20050066093A1 (en) Real-time processor system and control method
JP6774147B2 (ja) 制御装置
JPH09179741A (ja) マイクロプロセッサ
JP2585905B2 (ja) マルチタスク実行装置
JP3880739B2 (ja) オペレーティングシステムの処理方式及びオペレーティングシステムの処理方法
JPH07230358A (ja) 多重化ボリューム装置
RU1777147C (ru) Мультипрограммное вычислительное устройство
JP2020035264A (ja) メモリアクセス制御装置
JP2847729B2 (ja) 情報処理装置
JPH0673128B2 (ja) 記憶制御方式
JPH02304615A (ja) 並列ディスク制御バッファの割当て方式
JP2017187895A (ja) メモリー管理装置およびメモリー管理方法
US20010020257A1 (en) Method and an integrated circuit for controlling access of at least two masters to a common bus
JPH0460864A (ja) 通信レジスタ多重化方式
JP2005338952A (ja) プログラム分岐方法
JPH10240702A (ja) 並列処理プロセッサおよびその処理方法
JP2002132702A (ja) メモリ制御方式