(57)【要約】【課題】中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図る。【解決手段】複数のバンクに対応した汎用レジスタファイル１０１  、１０２  と、各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタ１０３  、１０５  と、現在実行中の命令列のプロセス識別情報とプロセス識別情報保持レジスタとを比較する比較回路１０８  、１０９  と、比較の結果に応じて使用するバンクを選択する選択回路１１１  と、使用すべきレジスタファイルがどのバンクにも存在しない場合は例外信号を発生する例外信号発生回路（図３の３１０  ）とを具備する。【選択図】    図１
2004178427.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクに対応した汎用レジスタファイルと、
前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、
現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較する比較回路と、
前記比較回路による比較の結果に応じてデータの読み出しに使用するバンクを選択する選択回路と、
前記比較回路による比較の結果に基づいて現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出し、例外信号を発生してシステムに通知する例外信号発生回路
とを具備することを特徴とする中央処理装置。
【請求項２】
複数のバンクに対応した汎用レジスタファイルと、
前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、
現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの書き込みに使用するバンクを選択する比較回路と、
前記比較回路による比較の結果に基づいて現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出し、例外信号を発生してシステムに通知する例外信号発生回路
とを具備することを特徴とする中央処理装置。
【請求項３】
複数のバンクに対応した汎用レジスタファイルと、
前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、
現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの読み出しまたは書き込みに使用するバンクを選択する比較回路と、
前記比較回路による比較の結果に基づいて現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出し、例外信号を発生してシステムに通知する例外信号発生回路
とを具備することを特徴とする中央処理装置。
【請求項４】
前記識別情報保持レジスタは、前記複数のバンクに対応して設けられ、各対応するバンクがどの処理プロセスで実行されるかを示すプロセス識別情報を保持し、
前記各識別情報保持レジスタは、それぞれ対応するバンクに有効な値を保持しているかどうかを示すデータを保持する有効データ保持レジスタが付加されており、当該有効データ保持レジスタの保持データが前記選択回路で参照されることを特徴とする請求項１記載の中央処理装置。
【請求項５】
前記プロセス識別情報保持レジスタは、前記複数のバンクに対応して設けられ、各対応するバンクがどの処理プロセスで実行されるかを示すプロセス識別情報を保持し、
前記各プロセス識別情報保持レジスタは、それぞれ対応するバンクに有効な値を保持しているかどうかを示すデータを保持する有効データ保持レジスタが付加されており、当該有効データ保持レジスタの保持データが前記比較回路で参照されることを特徴とする請求項２、３のいずれか１項に記載の中央処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムの中央処理装置に係り、特にマルチタスクを切り替え制御するタスクスイッチに関するもので、例えばマイクロコントローラなどに使用されるものである。
【０００２】
【従来の技術】
コンピュータシステムの中央処理装置でマルチタスクを実行する場合に実行タスクを切り替える際、各タスクで使用している汎用レジスタの内容を外部メモリに保存する処理、もしくは、外部メモリの内容を汎用レジスタにリストアする処理を行う必要がある。
【０００３】
この処理は、中央処理装置のロード命令およびストア命令を用いて行われるが、保存処理もしくはリストア処理の対象となる汎用レジスタの数が増加すると、それらの処理に対応する命令実行時間が増加し、本来実行すべき命令の実行性能が低下してしまう。
【０００４】
なお、特許文献１の「マルチタスクにおけるバンクメモリの制御方式」には、コンピュータシステムの処理プログラムを分割した複数のタスクをそれぞれ所定のバンクメモリに保存し、該複数のタスクをディスパッチ処理部で切り替えて並行処理するマルチタスクプログラミングにおいて、ディスパッチ処理部内に前記タスクとバンクメモリの対応テーブルを予め記憶するメモリを備えている点が開示されている。
【０００５】
【特許文献１】
特開平３−２６０８４０号公報
【０００６】
【発明が解決しようとする課題】
上記したように従来の中央処理装置は、マルチタスクを実行する場合に実行タスクを切り替える際、保存処理もしくはリストア処理の対象となる汎用レジスタの数が増加すると、本来実行すべき命令の実行性能が低下してしまうという問題があった。
【０００７】
本発明は上記の問題点を解決すべくなされたもので、マルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図ることが可能になる中央処理装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明の第１の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較する比較回路と、前記比較回路による比較の結果に応じてデータの読み出しに使用するバンクを選択する選択回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【０００９】
本発明の第２の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの書き込みに使用するバンクを選択する比較回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【００１０】
本発明の第３の中央処理装置は、複数のバンクに対応した汎用レジスタファイルと、前記各バンクが命令列のどの処理プロセスで実行されるかを示すプロセス識別情報を保持するプロセス識別情報保持レジスタと、現在実行中の命令列のプロセス識別情報と前記プロセス識別情報保持レジスタとを比較し、比較の結果に応じてデータの読み出しまたは書き込みに使用するバンクを選択する比較回路と、現在実行中の命令列の処理プロセスで使用すべきレジスタファイルがどのバンクにも存在しない場合を検出して例外信号を発生してシステムに通知する例外信号発生回路とを具備することを特徴とする。
【００１１】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００１２】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、読み出されるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示している。
【００１３】
図１中、１０１  および１０２  は、それぞれ１つもしくは複数の汎用レジスタを含むバンクであり、以下、レジスタファイルと称する。各レジスタファイル１０１  および１０２  には、それぞれ読み出すべきレジスタのアドレス（Ｒｅｇｉｓｔｅｒ  Ａｄｄｒｅｓｓ）１１０が入力される。
【００１４】
プロセス識別情報保持レジスタ（ＩＤ  Ｒｅｇｉｓｔｅｒ）１０３および１０５  は、各バンクに対応して設けられ、それぞれ対応するレジスタファイル１０１  および１０２  がどの処理プロセスで実行されるかを示すプロセス識別情報（Ｐｒｏｃｅｓｓ  ＩＤ）（例えば番号データ）１０７  を保持するものである。
【００１５】
有効データ保持レジスタ（Ｖ  Ｒｅｇｉｓｔｅｒ）１０４  および１０６  は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ（例えば有効ビット、もしくは他の制御ビット）（Ｖａｌｉｄ  Ｄａｔａ）を保持するものである。
【００１６】
比較回路（Ｃｏｍｐ．）１０８および１０９  は、各バンクに対応して設けられ、それぞれ対応するバンクの識別情報保持レジスタ１０３  および１０５  が保持しているプロセス識別情報１０７  と、メモリ管理ユニットから提供される（もしくは別の方法で提供される）現在実行中の命令列のプロセス識別情報（Ｐｒｏｃｅｓｓ  ＩＤ）１０７  とを比較し、現在実行中の命令列のプロセス識別情報に一致しているか否かの判定結果を出力するものである。
【００１７】
選択回路（Ｓｅｌｅｃｔｏｒ）１１１  は、比較回路１０８  および１０９  の比較出力１１２  および１１３  に基づいて使用するバンクを選択する、つまり、前記レジスタファイル１０１  および１０２  からの読み出し結果１１４  および１１５  のうちのどちらか一方を選択して出力するものである。
【００１８】
なお、上記選択回路１１１  は、前記有効データ保持レジスタ１０４  および１０６  の内容（有効／無効）を参照（活用）し、選択しようとするレジスタファイルのデータが有効な場合にのみ選択して出力するように構成されることが望ましい。
【００１９】
図２は、本発明の第１の実施形態に係る中央処理装置においてマルチタスクを実行するために実行タスクを切り替える際、書き込まれるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示している。なお、図２の構成は、図１の構成と併設されるが、中央処理装置の構成によっては、比較回路（Ｃｏｍｐ．）２０８および２０９  は図１中の比較回路（Ｃｏｍｐ．）１０８および１０９  と兼用される場合もある。
【００２０】
図２中、レジスタファイル２０１  および２０２  は、それぞれ書き込むべきレジスタのアドレス（Ｒｅｇｉｓｔｅｒ  Ａｄｄｒｅｓｓ）２１０  が入力される。
【００２１】
プロセス識別情報保持レジスタ（ＩＤ  Ｒｅｇｉｓｔｅｒ）２０３および２０５  は、各バンクに対応して設けられ、それぞれ対応するレジスタファイル２０１  および２０２  がどの処理プロセスで実行されるかを示すプロセス識別情報（Ｐｒｏｃｅｓｓ  ＩＤ）（例えば番号データ）２０７  を保持するものである。
【００２２】
有効データ保持レジスタ（Ｖ  Ｒｅｇｉｓｔｅｒ）２０４  および２０６  は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ（例えば有効ビット、もしくは他の制御ビット）（Ｖａｌｉｄ  Ｄａｔａ）を保持するものである。
【００２３】
比較回路（Ｃｏｍｐ．）２０８および２０９  は、各バンクに対応して設けられ、それぞれ対応するバンクの識別情報保持レジスタ２０３  および２０５  が保持しているプロセス識別情報２０７  と、メモリ管理ユニットから提供される（もしくは別の方法で提供される）現在実行中の命令列のプロセス識別情報（Ｐｒｏｃｅｓｓ  ＩＤ）２０７  とを比較し、その比較結果を出力するものである。この比較結果は、現在実行中の命令列のプロセス識別情報に一致しているか否か、つまり、各バンクのうちのどのバンクに書き込みを許可するか否かを判定した結果を示している。
【００２４】
上記比較器２０８  および２０９  の比較結果（判定結果）２１１  および２１２  は、それぞれ対応するレジスタファイル２０１  および２０２  に書き込み許可信号として送られる。そして、前記比較結果２１１  および２１２  によって選択されたレジスタファイル２０１または２０２  内の前記アドレス２１０  によって選択された書き込むべきレジスタに対して、別途提供されるレジスタデータ（Ｒｅｇｉｓｔｅｒ  Ｄａｔａ）２１３が書き込まれる。
【００２５】
なお、上記比較回路２０８  および２０９  は、前記有効データ保持レジスタ２０４  および２０６  の内容（有効／無効）を活用し、比較結果の出力の可否（レジスタファイル２０１  および２０２  に対する書き込み許可の可否）を制御するように構成されることが望ましい。
【００２６】
なお、現在実行中の命令列のプロセスで使用すべきレジスタがレジスタファイル２０１  および２０２  のいずれにも存在しなかった例外的な状況が発生した場合には、そのことをシステムが認識し、例外処理を行う機構を備えている。この例外処理として、プロセスの実行を中止し、レジスタファイル２０１  および２０２  に当該プロセスが使用すべきレジスタデータを書き込む処理がソフトウェアもしくはハードウェアにより行われる。
【００２７】
図３は、本発明の第１の実施形態に係る中央処理装置においてマルチタスクを実行すべき命令列のあるプロセスで使用すべきレジスタがレジスタファイルのいずれにも存在しなかった場合にその状況が発生したことをシステムが認識するための機構の一例を示す。なお、図３の構成は、図１の構成および図２の構成と併設されるが、中央処理装置の構成によっては、比較回路（Ｃｏｍｐ．）３０５、３０６  は図１中の比較回路（Ｃｏｍｐ．）１０８、１０９  および／あるいは図２中の比較回路（Ｃｏｍｐ．）２０８、２０９  と兼用される場合もある。
【００２８】
図３中、プロセス識別情報保持レジスタ（ＩＤ  Ｒｅｇｉｓｔｅｒ）３０１および３０３  は、図１中のレジスタファイル１０１  および１０２  、または、図２中のレジスタファイル２０１および２０２  に対応して設けられている。
【００２９】
有効データ保持レジスタ（Ｖ  Ｒｅｇｉｓｔｅｒ）３０２  および３０４  は、各バンクに対応して設けられ、それぞれ対応するバンクが有効な値を保持しているかどうかを示すデータ（例えば有効ビット、もしくは他の制御ビット）（Ｖａｌｉｄ  Ｄａｔａ）を保持するものである。
【００３０】
比較回路（Ｃｏｍｐ．）３０５および３０６  は、各バンクに対応して設けられ、それぞれ対応するバンクのプロセス識別情報保持レジスタ３０１  および３０３  が保持しているプロセス識別情報３０７  と、メモリ管理ユニットから提供される（もしくは別の方法で提供される）現在実行中の命令列のプロセス識別情報（Ｐｒｏｃｅｓｓ  ＩＤ）３０７  とが一致するか否かを比較する。そして、比較回路３０５  および３０６  は、それぞれの比較の結果がそれぞれ不一致であった場合に、それぞれ対応する図１中のレジスタファイル１０１  および１０２  、ならびに、図２中のレジスタファイル２０１  および２０２  を非選択状態に設定する信号３０８  および３０９  をそれぞれ出力するものである。
【００３１】
なお、比較器３０５  および３０６  は、前記有効データ保持レジスタ３０２  および３０４の内容（有効／無効）を活用し、それぞれの内容が無効であった場合、もしくは前記識別情報比較結果との組み合わせの結果に応じて、それぞれ対応するレジスタファイルを非選択状態に設定する信号３０８  および３０９  を出力するように構成されることが望ましい。
【００３２】
例外発生信号回路（Ｈｉｔ  Ｄｅｔｅｃｔｏｒ）３１０  は、前記比較器３０５  および３０６  の両方がそれぞれ対応するレジスタファイルを非選択状態に設定する信号３０８  および３０９を発生した場合（実行すべき命令列で使用すべきレジスタファイルがいずれのレジスタファイルにも存在しなかった場合（ｗｈｅｎ  ｎｏｔｈｉｎｇ  ｈｉｔ））を検出し、レジスタファイルのいずれもが選ばれなかったことを示す例外発生信号（ＧＰＲ  Ｍｉｓｓ  Ｅｘｃｅｐｔｉｏｎ）３１１  をシステムへ出力するものである。
【００３３】
システムは、レジスタファイルのいずれも選択されなかった場合、ソフトウェアもしくはハードウェアによって例外処理ルーチンを実行する。即ち、プロセス識別情報保持レジスタ３０１  および３０３  の内容、有効データ保持レジスタ３０２  および３０４  の内容を書き換え、図１中のレジスタファイル１０１  および１０２  のどちらか、ならびに、図２中のレジスタファイル２０１  および２０２  のどちらかを現在のプロセス識別情報３０７  で示されるプロセスに割り当てる。
【００３４】
この時、割り当てられた側のレジスタファイルにあるデータがソフトウェアもしくはハードウェアによって外部メモリに保存される。また、現在のプロセス識別情報３０７  で示されるプロセスで使用するレジスタの値が外部メモリに保存されている場合には、割り当てられたレジスタファイルに外部メモリの値がソフトウェアもしくはハードウェアによってリストアされる。
【００３５】
上述したような第１の実施形態に係る中央処理装置は、以下の機能を有する。即ち、複数のタスクを切り替えながらシーケンシャルに実行する中央処理装置において、それぞれのタスクのプロセス識別子を使用することによりレジスタバンクを切り替えて読み出し、書き込みを行う。そして、あるタスクが使用するレジスタがレジスタバンク上に存在しない時は、そのタスクの実行を中止してレジスタバンクへのレジスタのリロードを要求する。
【００３６】
したがって、上記第１の実施形態によれば、複数のタスクを切り替えながらシーケンシャルに実行する中央処理装置において、実行に使用する有限個の汎用レジスタが存在する場合、実行するタスクを切り替える時にそのタスクが使用していたレジスタをメモリに保存することなく、レジスタファイルの１つのバンクに残しておくことができる。これにより、次に実行すべきタスクは、別のバンクを使用して実行することができる。
【００３７】
また、レジスタバンクの切り替えは自動的にハードウェアで行われるので、従来のシステムでレジスタをメモリに保存するのに必要であった時間は必要なくなり、中央処理装置の実行性能が向上する。
【００３８】
なお、図１乃至図３は、バンクが２つしか示されていないが，２つ以上の複数個のバンクを備える場合があり、その場合にはバンクの数に対応して構成を拡張すればよい。
【００３９】
【発明の効果】
上述したように本発明の中央処理装置によれば、マルチタスクを実行する場合に実行タスクを切り替える際、本来実行すべき命令の実行性能の高速化を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る中央処理装置においてマルチタスクを実行する場合に実行タスクを切り替える際、読み出されるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示すブロック図。
【図２】本発明の第１の実施形態に係る中央処理装置においてマルチタスクを実行するために実行タスクを切り替える際、書き込まれるレジスタファイルをプロセス識別情報に応じて切り替え選択する部分を示すブロック図。
【図３】本発明の第１の実施形態に係る中央処理装置においてマルチタスクを実行すべき命令列のあるプロセスで使用すべきレジスタがレジスタファイルのいずれにも存在しなかった場合にその状況が発生したことをシステムが認識するための機構の一例を示すブロック図。
【符号の説明】
１０１  、１０２  …バンク（レジスタファイル）、１０３  、１０５  …プロセス識別情報保持レジスタ（ＩＤ  Ｒｅｇｉｓｔｅｒ）  、１０４  、１０６  …有効データ保持レジスタ（Ｖ  Ｒｅｇｉｓｔｅｒ）、１０８  、１０９  …比較回路（Ｃｏｍｐ．）  、１１１  …選択回路（Ｓｅｌｅｃｔｏｒ）。
【図１】
2004178427.tif 000003
【図２】
2004178427.tif 000004
【図３】
2004178427.tif 000005