JP2004178427A - 中央処理装置 - Google Patents
中央処理装置 Download PDFInfo
- Publication number
- JP2004178427A JP2004178427A JP2002346040A JP2002346040A JP2004178427A JP 2004178427 A JP2004178427 A JP 2004178427A JP 2002346040 A JP2002346040 A JP 2002346040A JP 2002346040 A JP2002346040 A JP 2002346040A JP 2004178427 A JP2004178427 A JP 2004178427A
- Authority
- JP
- Japan
- Prior art keywords
- identification information
- bank
- process identification
- register
- processing unit
- 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.)
- Withdrawn
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
【課題】中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図る。
【解決手段】複数のバンクに対応した汎用レジスタファイル101 、102 と、各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタ103 、105 と、現在実行中の命令列のプロセス識別情報とプロセス識別情報保持レジスタとを比較する比較回路108 、109 と、比較の結果に応じて使用するバンクを選択する選択回路111 と、使用すべきレジスタファイルがどのバンクにも存在しない場合は例外信号を発生する例外信号発生回路(図3の310 )とを具備する。
【選択図】 図1
【解決手段】複数のバンクに対応した汎用レジスタファイル101 、102 と、各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタ103 、105 と、現在実行中の命令列のプロセス識別情報とプロセス識別情報保持レジスタとを比較する比較回路108 、109 と、比較の結果に応じて使用するバンクを選択する選択回路111 と、使用すべきレジスタファイルがどのバンクにも存在しない場合は例外信号を発生する例外信号発生回路(図3の310 )とを具備する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、コンピュータシステムの中央処理装置に係り、特にマルチタスクを切り替え制御するタスクスイッチに関するもので、例えばマイクロコントローラなどに使用されるものである。
【0002】
【従来の技術】
コンピュータシステムの中央処理装置でマルチタスクを実行する場合に実行タスクを切り替える際、各タスクで使用している汎用レジスタの内容を外部メモリに保存する処理、もしくは、外部メモリの内容を汎用レジスタにリストアする処理を行う必要がある。
【0003】
この処理は、中央処理装置のロード命令およびストア命令を用いて行われるが、保存処理もしくはリストア処理の対象となる汎用レジスタの数が増加すると、それらの処理に対応する命令実行時間が増加し、本来実行すべき命令の実行性能が低下してしまう。
【0004】
なお、特許文献1の「マルチタスクにおけるバンクメモリの制御方式」には、コンピュータシステムの処理プログラムを分割した複数のタスクをそれぞれ所定のバンクメモリに保存し、該複数のタスクをディスパッチ処理部で切り替えて並行処理するマルチタスクプログラミングにおいて、ディスパッチ処理部内に前記タスクとバンクメモリの対応テーブルを予め記憶するメモリを備えている点が開示されている。
【0005】
【特許文献1】
特開平3−260840号公報
【0006】
【発明が解決しようとする課題】
上記したように従来の中央処理装置は、マルチタスクを実行する場合に実行タスクを切り替える際、保存処理もしくはリストア処理の対象となる汎用レジスタの数が増加すると、本来実行すべき命令の実行性能が低下してしまうという問題があった。
【0007】
本発明は上記の問題点を解決すべくなされたもので、マルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図ることが可能になる中央処理装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明の第1の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較する比較回路と、前記比較回路による比較の結果に応じてデータの読み出しに使用するバンクを選択する選択回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【0009】
本発明の第2の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの書き込みに使用するバンクを選択する比較回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【0010】
本発明の第3の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの読み出しまたは書き込みに使用するバンクを選択する比較回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0012】
<第1の実施形態>
図1は、本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、読み出されるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示している。
【0013】
図1中、101 および102 は、それぞれ1つもしくは複数の汎用レジスタを含むバンクであり、以下、レジスタファイルと称する。各レジスタファイル101 および102 には、それぞれ読み出すべきレジスタのアドレス(Register Address)110が入力される。
【0014】
プロセス識別情報保持レジスタ(ID Register)103および105 は、各バンクに対応して設けられ、それぞれ対応するレジスタファイル101 および102 がどの処理プロセスで実行されるかを示すプロセス識別情報(Process ID)(例えば番号データ)107 を保持するものである。
【0015】
有効データ保持レジスタ(V Register)104 および106 は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ(例えば有効ビット、もしくは他の制御ビット)(Valid Data)を保持するものである。
【0016】
比較回路(Comp.)108および109 は、各バンクに対応して設けられ、それぞれ対応するバンクの識別情報保持レジスタ103 および105 が保持しているプロセス識別情報107 と、メモリ管理ユニットから提供される(もしくは別の方法で提供される)現在実行中の命令列のプロセス識別情報(Process ID)107 とを比較し、現在実行中の命令列のプロセス識別情報に一致しているか否かの判定結果を出力するものである。
【0017】
選択回路(Selector)111 は、比較回路108 および109 の比較出力112 および113 に基づいて使用するバンクを選択する、つまり、前記レジスタファイル101 および102 からの読み出し結果114 および115 のうちのどちらか一方を選択して出力するものである。
【0018】
なお、上記選択回路111 は、前記有効データ保持レジスタ104 および106 の内容(有効/無効)を参照(活用)し、選択しようとするレジスタファイルのデータが有効な場合にのみ選択して出力するように構成されることが望ましい。
【0019】
図2は、本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行するために実行タスクを切り替える際、書き込まれるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示している。なお、図2の構成は、図1の構成と併設されるが、中央処理装置の構成によっては、比較回路(Comp.)208および209 は図1中の比較回路(Comp.)108および109 と兼用される場合もある。
【0020】
図2中、レジスタファイル201 および202 は、それぞれ書き込むべきレジスタのアドレス(Register Address)210 が入力される。
【0021】
プロセス識別情報保持レジスタ(ID Register)203および205 は、各バンクに対応して設けられ、それぞれ対応するレジスタファイル201 および202 がどの処理プロセスで実行されるかを示すプロセス識別情報(Process ID)(例えば番号データ)207 を保持するものである。
【0022】
有効データ保持レジスタ(V Register)204 および206 は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ(例えば有効ビット、もしくは他の制御ビット)(Valid Data)を保持するものである。
【0023】
比較回路(Comp.)208および209 は、各バンクに対応して設けられ、それぞれ対応するバンクの識別情報保持レジスタ203 および205 が保持しているプロセス識別情報207 と、メモリ管理ユニットから提供される(もしくは別の方法で提供される)現在実行中の命令列のプロセス識別情報(Process ID)207 とを比較し、その比較結果を出力するものである。この比較結果は、現在実行中の命令列のプロセス識別情報に一致しているか否か、つまり、各バンクのうちのどのバンクに書き込みを許可するか否かを判定した結果を示している。
【0024】
上記比較器208 および209 の比較結果(判定結果)211 および212 は、それぞれ対応するレジスタファイル201 および202 に書き込み許可信号として送られる。そして、前記比較結果211 および212 によって選択されたレジスタファイル201または202 内の前記アドレス210 によって選択された書き込むべきレジスタに対して、別途提供されるレジスタデータ(Register Data)213が書き込まれる。
【0025】
なお、上記比較回路208 および209 は、前記有効データ保持レジスタ204 および206 の内容(有効/無効)を活用し、比較結果の出力の可否(レジスタファイル201 および202 に対する書き込み許可の可否)を制御するように構成されることが望ましい。
【0026】
なお、現在実行中の命令列のプロセスで使用すべきレジスタがレジスタファイル201 および202 のいずれにも存在しなかった例外的な状況が発生した場合には、そのことをシステムが認識し、例外処理を行う機構を備えている。この例外処理として、プロセスの実行を中止し、レジスタファイル201 および202 に当該プロセスが使用すべきレジスタデータを書き込む処理がソフトウェアもしくはハードウェアにより行われる。
【0027】
図3は、本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行すべき命令列のあるプロセスで使用すべきレジスタがレジスタファイルのいずれにも存在しなかった場合にその状況が発生したことをシステムが認識するための機構の一例を示す。なお、図3の構成は、図1の構成および図2の構成と併設されるが、中央処理装置の構成によっては、比較回路(Comp.)305、306 は図1中の比較回路(Comp.)108、109 および/あるいは図2中の比較回路(Comp.)208、209 と兼用される場合もある。
【0028】
図3中、プロセス識別情報保持レジスタ(ID Register)301および303 は、図1中のレジスタファイル101 および102 、または、図2中のレジスタファイル201および202 に対応して設けられている。
【0029】
有効データ保持レジスタ(V Register)302 および304 は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ(例えば有効ビット、もしくは他の制御ビット)(Valid Data)を保持するものである。
【0030】
比較回路(Comp.)305および306 は、各バンクに対応して設けられ、それぞれ対応するバンクのプロセス識別情報保持レジスタ301 および303 が保持しているプロセス識別情報307 と、メモリ管理ユニットから提供される(もしくは別の方法で提供される)現在実行中の命令列のプロセス識別情報(Process ID)307 とが一致するか否かを比較する。そして、比較回路305 および306 は、それぞれの比較の結果がそれぞれ不一致であった場合に、それぞれ対応する図1中のレジスタファイル101 および102 、ならびに、図2中のレジスタファイル201 および202 を非選択状態に設定する信号308 および309 をそれぞれ出力するものである。
【0031】
なお、比較器305 および306 は、前記有効データ保持レジスタ302 および304の内容(有効/無効)を活用し、それぞれの内容が無効であった場合、もしくは前記識別情報比較結果との組み合わせの結果に応じて、それぞれ対応するレジスタファイルを非選択状態に設定する信号308 および309 を出力するように構成されることが望ましい。
【0032】
例外発生信号回路(Hit Detector)310 は、前記比較器305 および306 の両方がそれぞれ対応するレジスタファイルを非選択状態に設定する信号308 および309を発生した場合(実行すべき命令列で使用すべきレジスタファイルがいずれのレジスタファイルにも存在しなかった場合(when nothing hit))を検出し、レジスタファイルのいずれもが選ばれなかったことを示す例外発生信号(GPR Miss Exception)311 をシステムへ出力するものである。
【0033】
システムは、レジスタファイルのいずれも選択されなかった場合、ソフトウェアもしくはハードウェアによって例外処理ルーチンを実行する。即ち、プロセス識別情報保持レジスタ301 および303 の内容、有効データ保持レジスタ302 および304 の内容を書き換え、図1中のレジスタファイル101 および102 のどちらか、ならびに、図2中のレジスタファイル201 および202 のどちらかを現在のプロセス識別情報307 で示されるプロセスに割り当てる。
【0034】
この時、割り当てられた側のレジスタファイルにあるデータがソフトウェアもしくはハードウェアによって外部メモリに保存される。また、現在のプロセス識別情報307 で示されるプロセスで使用するレジスタの値が外部メモリに保存されている場合には、割り当てられたレジスタファイルに外部メモリの値がソフトウェアもしくはハードウェアによってリストアされる。
【0035】
上述したような第1の実施形態に係る中央処理装置は、以下の機能を有する。即ち、複数のタスクを切り替えながらシーケンシャルに実行する中央処理装置において、それぞれのタスクのプロセス識別子を使用することによりレジスタバンクを切り替えて読み出し、書き込みを行う。そして、あるタスクが使用するレジスタがレジスタバンク上に存在しない時は、そのタスクの実行を中止してレジスタバンクへのレジスタのリロードを要求する。
【0036】
したがって、上記第1の実施形態によれば、複数のタスクを切り替えながらシーケンシャルに実行する中央処理装置において、実行に使用する有限個の汎用レジスタが存在する場合、実行するタスクを切り替える時にそのタスクが使用していたレジスタをメモリに保存することなく、レジスタファイルの1つのバンクに残しておくことができる。これにより、次に実行すべきタスクは、別のバンクを使用して実行することができる。
【0037】
また、レジスタバンクの切り替えは自動的にハードウェアで行われるので、従来のシステムでレジスタをメモリに保存するのに必要であった時間は必要なくなり、中央処理装置の実行性能が向上する。
【0038】
なお、図1乃至図3は、バンクが2つしか示されていないが,2つ以上の複数個のバンクを備える場合があり、その場合にはバンクの数に対応して構成を拡張すればよい。
【0039】
【発明の効果】
上述したように本発明の中央処理装置によれば、マルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、読み出されるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示すブロック図。
【図2】本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行するために実行タスクを切り替える際、書き込まれるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示すブロック図。
【図3】本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行すべき命令列のあるプロセスで使用すべきレジスタがレジスタファイルのいずれにも存在しなかった場合にその状況が発生したことをシステムが認識するための機構の一例を示すブロック図。
【符号の説明】
101 、102 …バンク(レジスタファイル)、103 、105 …プロセス識別情報保持レジスタ(ID Register) 、104 、106 …有効データ保持レジスタ(V Register)、108 、109 …比較回路(Comp.) 、111 …選択回路(Selector)。
【発明の属する技術分野】
本発明は、コンピュータシステムの中央処理装置に係り、特にマルチタスクを切り替え制御するタスクスイッチに関するもので、例えばマイクロコントローラなどに使用されるものである。
【0002】
【従来の技術】
コンピュータシステムの中央処理装置でマルチタスクを実行する場合に実行タスクを切り替える際、各タスクで使用している汎用レジスタの内容を外部メモリに保存する処理、もしくは、外部メモリの内容を汎用レジスタにリストアする処理を行う必要がある。
【0003】
この処理は、中央処理装置のロード命令およびストア命令を用いて行われるが、保存処理もしくはリストア処理の対象となる汎用レジスタの数が増加すると、それらの処理に対応する命令実行時間が増加し、本来実行すべき命令の実行性能が低下してしまう。
【0004】
なお、特許文献1の「マルチタスクにおけるバンクメモリの制御方式」には、コンピュータシステムの処理プログラムを分割した複数のタスクをそれぞれ所定のバンクメモリに保存し、該複数のタスクをディスパッチ処理部で切り替えて並行処理するマルチタスクプログラミングにおいて、ディスパッチ処理部内に前記タスクとバンクメモリの対応テーブルを予め記憶するメモリを備えている点が開示されている。
【0005】
【特許文献1】
特開平3−260840号公報
【0006】
【発明が解決しようとする課題】
上記したように従来の中央処理装置は、マルチタスクを実行する場合に実行タスクを切り替える際、保存処理もしくはリストア処理の対象となる汎用レジスタの数が増加すると、本来実行すべき命令の実行性能が低下してしまうという問題があった。
【0007】
本発明は上記の問題点を解決すべくなされたもので、マルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図ることが可能になる中央処理装置を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明の第1の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較する比較回路と、前記比較回路による比較の結果に応じてデータの読み出しに使用するバンクを選択する選択回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【0009】
本発明の第2の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの書き込みに使用するバンクを選択する比較回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【0010】
本発明の第3の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの読み出しまたは書き込みに使用するバンクを選択する比較回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【0011】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【0012】
<第1の実施形態>
図1は、本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、読み出されるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示している。
【0013】
図1中、101 および102 は、それぞれ1つもしくは複数の汎用レジスタを含むバンクであり、以下、レジスタファイルと称する。各レジスタファイル101 および102 には、それぞれ読み出すべきレジスタのアドレス(Register Address)110が入力される。
【0014】
プロセス識別情報保持レジスタ(ID Register)103および105 は、各バンクに対応して設けられ、それぞれ対応するレジスタファイル101 および102 がどの処理プロセスで実行されるかを示すプロセス識別情報(Process ID)(例えば番号データ)107 を保持するものである。
【0015】
有効データ保持レジスタ(V Register)104 および106 は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ(例えば有効ビット、もしくは他の制御ビット)(Valid Data)を保持するものである。
【0016】
比較回路(Comp.)108および109 は、各バンクに対応して設けられ、それぞれ対応するバンクの識別情報保持レジスタ103 および105 が保持しているプロセス識別情報107 と、メモリ管理ユニットから提供される(もしくは別の方法で提供される)現在実行中の命令列のプロセス識別情報(Process ID)107 とを比較し、現在実行中の命令列のプロセス識別情報に一致しているか否かの判定結果を出力するものである。
【0017】
選択回路(Selector)111 は、比較回路108 および109 の比較出力112 および113 に基づいて使用するバンクを選択する、つまり、前記レジスタファイル101 および102 からの読み出し結果114 および115 のうちのどちらか一方を選択して出力するものである。
【0018】
なお、上記選択回路111 は、前記有効データ保持レジスタ104 および106 の内容(有効/無効)を参照(活用)し、選択しようとするレジスタファイルのデータが有効な場合にのみ選択して出力するように構成されることが望ましい。
【0019】
図2は、本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行するために実行タスクを切り替える際、書き込まれるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示している。なお、図2の構成は、図1の構成と併設されるが、中央処理装置の構成によっては、比較回路(Comp.)208および209 は図1中の比較回路(Comp.)108および109 と兼用される場合もある。
【0020】
図2中、レジスタファイル201 および202 は、それぞれ書き込むべきレジスタのアドレス(Register Address)210 が入力される。
【0021】
プロセス識別情報保持レジスタ(ID Register)203および205 は、各バンクに対応して設けられ、それぞれ対応するレジスタファイル201 および202 がどの処理プロセスで実行されるかを示すプロセス識別情報(Process ID)(例えば番号データ)207 を保持するものである。
【0022】
有効データ保持レジスタ(V Register)204 および206 は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ(例えば有効ビット、もしくは他の制御ビット)(Valid Data)を保持するものである。
【0023】
比較回路(Comp.)208および209 は、各バンクに対応して設けられ、それぞれ対応するバンクの識別情報保持レジスタ203 および205 が保持しているプロセス識別情報207 と、メモリ管理ユニットから提供される(もしくは別の方法で提供される)現在実行中の命令列のプロセス識別情報(Process ID)207 とを比較し、その比較結果を出力するものである。この比較結果は、現在実行中の命令列のプロセス識別情報に一致しているか否か、つまり、各バンクのうちのどのバンクに書き込みを許可するか否かを判定した結果を示している。
【0024】
上記比較器208 および209 の比較結果(判定結果)211 および212 は、それぞれ対応するレジスタファイル201 および202 に書き込み許可信号として送られる。そして、前記比較結果211 および212 によって選択されたレジスタファイル201または202 内の前記アドレス210 によって選択された書き込むべきレジスタに対して、別途提供されるレジスタデータ(Register Data)213が書き込まれる。
【0025】
なお、上記比較回路208 および209 は、前記有効データ保持レジスタ204 および206 の内容(有効/無効)を活用し、比較結果の出力の可否(レジスタファイル201 および202 に対する書き込み許可の可否)を制御するように構成されることが望ましい。
【0026】
なお、現在実行中の命令列のプロセスで使用すべきレジスタがレジスタファイル201 および202 のいずれにも存在しなかった例外的な状況が発生した場合には、そのことをシステムが認識し、例外処理を行う機構を備えている。この例外処理として、プロセスの実行を中止し、レジスタファイル201 および202 に当該プロセスが使用すべきレジスタデータを書き込む処理がソフトウェアもしくはハードウェアにより行われる。
【0027】
図3は、本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行すべき命令列のあるプロセスで使用すべきレジスタがレジスタファイルのいずれにも存在しなかった場合にその状況が発生したことをシステムが認識するための機構の一例を示す。なお、図3の構成は、図1の構成および図2の構成と併設されるが、中央処理装置の構成によっては、比較回路(Comp.)305、306 は図1中の比較回路(Comp.)108、109 および/あるいは図2中の比較回路(Comp.)208、209 と兼用される場合もある。
【0028】
図3中、プロセス識別情報保持レジスタ(ID Register)301および303 は、図1中のレジスタファイル101 および102 、または、図2中のレジスタファイル201および202 に対応して設けられている。
【0029】
有効データ保持レジスタ(V Register)302 および304 は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ(例えば有効ビット、もしくは他の制御ビット)(Valid Data)を保持するものである。
【0030】
比較回路(Comp.)305および306 は、各バンクに対応して設けられ、それぞれ対応するバンクのプロセス識別情報保持レジスタ301 および303 が保持しているプロセス識別情報307 と、メモリ管理ユニットから提供される(もしくは別の方法で提供される)現在実行中の命令列のプロセス識別情報(Process ID)307 とが一致するか否かを比較する。そして、比較回路305 および306 は、それぞれの比較の結果がそれぞれ不一致であった場合に、それぞれ対応する図1中のレジスタファイル101 および102 、ならびに、図2中のレジスタファイル201 および202 を非選択状態に設定する信号308 および309 をそれぞれ出力するものである。
【0031】
なお、比較器305 および306 は、前記有効データ保持レジスタ302 および304の内容(有効/無効)を活用し、それぞれの内容が無効であった場合、もしくは前記識別情報比較結果との組み合わせの結果に応じて、それぞれ対応するレジスタファイルを非選択状態に設定する信号308 および309 を出力するように構成されることが望ましい。
【0032】
例外発生信号回路(Hit Detector)310 は、前記比較器305 および306 の両方がそれぞれ対応するレジスタファイルを非選択状態に設定する信号308 および309を発生した場合(実行すべき命令列で使用すべきレジスタファイルがいずれのレジスタファイルにも存在しなかった場合(when nothing hit))を検出し、レジスタファイルのいずれもが選ばれなかったことを示す例外発生信号(GPR Miss Exception)311 をシステムへ出力するものである。
【0033】
システムは、レジスタファイルのいずれも選択されなかった場合、ソフトウェアもしくはハードウェアによって例外処理ルーチンを実行する。即ち、プロセス識別情報保持レジスタ301 および303 の内容、有効データ保持レジスタ302 および304 の内容を書き換え、図1中のレジスタファイル101 および102 のどちらか、ならびに、図2中のレジスタファイル201 および202 のどちらかを現在のプロセス識別情報307 で示されるプロセスに割り当てる。
【0034】
この時、割り当てられた側のレジスタファイルにあるデータがソフトウェアもしくはハードウェアによって外部メモリに保存される。また、現在のプロセス識別情報307 で示されるプロセスで使用するレジスタの値が外部メモリに保存されている場合には、割り当てられたレジスタファイルに外部メモリの値がソフトウェアもしくはハードウェアによってリストアされる。
【0035】
上述したような第1の実施形態に係る中央処理装置は、以下の機能を有する。即ち、複数のタスクを切り替えながらシーケンシャルに実行する中央処理装置において、それぞれのタスクのプロセス識別子を使用することによりレジスタバンクを切り替えて読み出し、書き込みを行う。そして、あるタスクが使用するレジスタがレジスタバンク上に存在しない時は、そのタスクの実行を中止してレジスタバンクへのレジスタのリロードを要求する。
【0036】
したがって、上記第1の実施形態によれば、複数のタスクを切り替えながらシーケンシャルに実行する中央処理装置において、実行に使用する有限個の汎用レジスタが存在する場合、実行するタスクを切り替える時にそのタスクが使用していたレジスタをメモリに保存することなく、レジスタファイルの1つのバンクに残しておくことができる。これにより、次に実行すべきタスクは、別のバンクを使用して実行することができる。
【0037】
また、レジスタバンクの切り替えは自動的にハードウェアで行われるので、従来のシステムでレジスタをメモリに保存するのに必要であった時間は必要なくなり、中央処理装置の実行性能が向上する。
【0038】
なお、図1乃至図3は、バンクが2つしか示されていないが,2つ以上の複数個のバンクを備える場合があり、その場合にはバンクの数に対応して構成を拡張すればよい。
【0039】
【発明の効果】
上述したように本発明の中央処理装置によれば、マルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、読み出されるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示すブロック図。
【図2】本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行するために実行タスクを切り替える際、書き込まれるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示すブロック図。
【図3】本発明の第1の実施形態に係る中央処理装置においてマルチタスクを実行すべき命令列のあるプロセスで使用すべきレジスタがレジスタファイルのいずれにも存在しなかった場合にその状況が発生したことをシステムが認識するための機構の一例を示すブロック図。
【符号の説明】
101 、102 …バンク(レジスタファイル)、103 、105 …プロセス識別情報保持レジスタ(ID Register) 、104 、106 …有効データ保持レジスタ(V Register)、108 、109 …比較回路(Comp.) 、111 …選択回路(Selector)。
Claims (5)
- 複数のバンクに対応した汎用レジスタファイルと、
前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、
現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較する比較回路と、
前記比較回路による比較の結果に応じてデータの読み出しに使用するバンクを選択する選択回路と、
前記比較回路による比較の結果に基づいて現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出し、例外信号を発生してシステムに通知する例外信号発生回路
とを具備することを特徴とする中央処理装置。 - 複数のバンクに対応した汎用レジスタファイルと、
前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、
現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの書き込みに使用するバンクを選択する比較回路と、
前記比較回路による比較の結果に基づいて現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出し、例外信号を発生してシステムに通知する例外信号発生回路
とを具備することを特徴とする中央処理装置。 - 複数のバンクに対応した汎用レジスタファイルと、
前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、
現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの読み出しまたは書き込みに使用するバンクを選択する比較回路と、
前記比較回路による比較の結果に基づいて現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出し、例外信号を発生してシステムに通知する例外信号発生回路
とを具備することを特徴とする中央処理装置。 - 前記識別情報保持レジスタは、前記複数のバンクに対応して設けられ、各対応するバンクがどの処理プロセスで実行されるかを示すプロセス識別情報を保持し、
前記各識別情報保持レジスタは、それぞれ対応するバンクに有効な値を保持しているかどうかを示すデータを保持する有効データ保持レジスタが付加されており、当該有効データ保持レジスタの保持データが前記選択回路で参照されることを特徴とする請求項1記載の中央処理装置。 - 前記プロセス識別情報保持レジスタは、前記複数のバンクに対応して設けられ、各対応するバンクがどの処理プロセスで実行されるかを示すプロセス識別情報を保持し、
前記各プロセス識別情報保持レジスタは、それぞれ対応するバンクに有効な値を保持しているかどうかを示すデータを保持する有効データ保持レジスタが付加されており、当該有効データ保持レジスタの保持データが前記比較回路で参照されることを特徴とする請求項2、3のいずれか1項に記載の中央処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002346040A JP2004178427A (ja) | 2002-11-28 | 2002-11-28 | 中央処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002346040A JP2004178427A (ja) | 2002-11-28 | 2002-11-28 | 中央処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004178427A true JP2004178427A (ja) | 2004-06-24 |
Family
ID=32707066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002346040A Withdrawn JP2004178427A (ja) | 2002-11-28 | 2002-11-28 | 中央処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004178427A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009505187A (ja) * | 2005-08-08 | 2009-02-05 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの命令実行部を備えたコンピュータシステムにおいてレジスタセットの切り替えにより初期状態を設定する方法および装置 |
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 |
JP2011238271A (ja) * | 2004-07-13 | 2011-11-24 | Nvidia Corp | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート |
JP2012038328A (ja) * | 2011-09-27 | 2012-02-23 | Intel Corp | プロセッサ内のマルチスレッド間通信 |
-
2002
- 2002-11-28 JP JP2002346040A patent/JP2004178427A/ja not_active Withdrawn
Cited By (5)
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 |
JP2011238271A (ja) * | 2004-07-13 | 2011-11-24 | Nvidia Corp | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート |
JP2009505187A (ja) * | 2005-08-08 | 2009-02-05 | ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング | 少なくとも2つの命令実行部を備えたコンピュータシステムにおいてレジスタセットの切り替えにより初期状態を設定する方法および装置 |
JP2012038328A (ja) * | 2011-09-27 | 2012-02-23 | Intel Corp | プロセッサ内のマルチスレッド間通信 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5450336B2 (ja) | レジスタ状態の保存および復元 | |
JP3098071B2 (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
US6338134B1 (en) | Method and system in a superscalar data processing system for the efficient processing of an instruction by moving only pointers to data | |
US20130036426A1 (en) | Information processing device and task switching method | |
JPH0682320B2 (ja) | データ処理装置 | |
TWI836108B (zh) | 資料結構放棄 | |
JP2004178427A (ja) | 中央処理装置 | |
US7904697B2 (en) | Load register instruction short circuiting method | |
JP2013210853A (ja) | 情報処理装置、同期処理実行管理方法、及びプログラム | |
JP3497087B2 (ja) | 命令制御装置及びその方法 | |
US20120144399A1 (en) | Apparatus and method for synchronization of threads | |
JPH06230963A (ja) | メモリアクセス制御装置 | |
US20090063808A1 (en) | Microprocessor and method of processing data | |
JP4116752B2 (ja) | 計算機とその制御方法 | |
US6775735B2 (en) | Instruction pair detection and pseudo ports for cache array | |
US6763421B2 (en) | Instruction pair detection and pseudo ports for cache array | |
JP2006107004A (ja) | トレース制御回路、マイクロプロセッサ及びトレース制御方法 | |
JP3558481B2 (ja) | データ処理装置 | |
JPS62151942A (ja) | タスク切換え方式 | |
CN118174980A (zh) | 一种报文处理方法、装置、电子设备、存储介质及车辆 | |
JPS5846444A (ja) | 電子計算機 | |
JP2798492B2 (ja) | リストベクトル処理装置 | |
JP2010092273A (ja) | 情報処理装置 | |
JPS61194566A (ja) | ベクトルデ−タ参照制御方式 | |
JPH0279122A (ja) | 浮動小数点演算機構 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060207 |