(57)【要約】【課題】ビット数の異なるレジスタ環境であっても効率的にプログラムを稼働させることができるオペレーションシステム、スレッド制御機構、及び情報処理装置を提供する。【解決手段】ＣＰＵがビット数の異なる動作モードをプロセス毎に切り替える仕組みを保持していない場合でも、ＯＳで動作モードの異なるプロセスを混在して動作させるときでも、プロセス毎にディスパッチ時のレジスタ退避復旧を変えることで、無駄なメモリアクセスを減らすことができるため、３２ビットモードの動作のディスパッチ性能を維持しつつ、６４ビットモードの動作で高性能化させたプログラムを稼動させることが可能となり、システム全体の性能向上を図ることが可能となる。【選択図】図１
2007207074.tif 000002
【特許請求の範囲】
【請求項１】
レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリとを備えた装置に用いられるオペレーションシステムであって、
レジスタ演算サイズの異なるプログラムを並行動作させる場合にプロセス毎に動作モードを前記メモリのコンテキストに保持させる保持手段と、扱うレジスタサイズの異なるプログラム毎にレジスタ退避方法を変更し、プロセスディスパッチ方法を変えてディスパッチ効率を上げるように前記ＣＰＵに実行させる実行手段とを備えたことを特徴とするオペレーティングシステム。
【請求項２】
レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にプロセスの動作モードを設定する設定手段を備えたことを特徴とする請求項１記載のオペレーティングシステム。
【請求項３】
レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリとを備えた装置に用いられるスレッド制御機構であって、
同一プロセス内でレジスタ演算サイズの異なるスレッドを並行動作させる場合にスレッドとプロセス毎に動作モードを前記メモリのコンテキストに保持させ、扱うレジスタサイズの異なるスレッド毎にレジスタ退避方法を変更し、スレッドディスパッチ方法を変えてディスパッチ効率を上げるように前記ＣＰＵに実行させることを特徴とするスレッド制御機構。
【請求項４】
レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にスレッドの動作モードを設定する設定手段を備えたことを特徴とする請求項３記載のスレッド制御機構。
【請求項５】
レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリと、前記ＣＰＵ及び前記メモリを制御するオペレーティングシステムとを備えた情報処理装置であって、
前記オペレーティングシステムは、同一プロセス内でレジスタ演算サイズの異なるスレッドを並行動作させる場合にスレッドとプロセス毎に動作モードを保持する保持手段と、扱うレジスタサイズの異なるスレッド毎にレジスタ退避方法を変更し、スレッドディスパッチ方法を変えてディスパッチ効率を上げるように前記ＣＰＵに実行させる実行手段とを備えたことを特徴とする情報処理装置。
【請求項６】
前記オペレーティングシステムは、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にスレッドの動作モードを設定する設定手段を備えたことを特徴とする請求項５記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オペレーションシステム、スレッド制御機構、及び情報処理装置に関する。
【背景技術】
【０００２】
電子機器を制御しているＣＰＵ（Central Processing Unit）には６４ビット動作モードと３２ビット動作モードというようなビット数の異なる動作モードを複数持つものが存在し、情報処理装置に適用したものがある（例えば、特許文献１参照）。
【特許文献１】特開２００４−１２７２５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、この種のＣＰＵの中には、３２ビット動作モードでは６４ビットレジスタを正しく扱えないものがある。このようなＣＰＵでは通常、制御対象に合わせて３２ビット動作モードか６４ビット動作モードのいずれか一方の動作モードを選択することが多いが、複数プログラムを並行して動作させるＯＳ（Operating System）でも、プログラムを切り替える機能(一般的に「プロセスディスパッチ」と呼ばれる)はいずれか一方の動作モードに合わせて用意する。
６４ビット動作モードにすると、汎用レジスタとして６４ビットサイズで演算できるため、３２ビット動作モードにしたときよりも、１命令当たり効率的な演算が可能になる。
特に、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャを取るＣＰＵの場合には複数レジスタを使った多倍長演算や操作を命令としてサポートしないことが多いため、多量のデータに対して同じような処理を行う場合には、３２ビット動作モードに比べて６４ビット動作モードの方が効率的になることが多い。
【０００４】
しかしながら、プロセス切り替え時に、汎用レジスタをプロセス単位に保護するために、全ての汎用レジスタを一旦メモリに保存して、別のプロセス用のメモリに保存されていたレジスタ値を読み出す必要があるが、６４ビット動作モードの時には３２ビット動作モードの時よりも２倍のサイズのメモリを用意しておき、かつ２倍のレジスタとメモリとの間の読み書き (つまりレジスタ内容のメモリへの退避復旧) を行う必要があり、プロセス切り替えの処理に掛かる時間が相対的に大きくなってしまう。
【０００５】
また、プロセスだけでなく、プロセス内の「スレッド」と呼ばれる並行処理の単位で動作する仕組みを、ＯＳやライブラリ等で用意して利用していることも多いが、スレッドの切り替え時にもプロセス切り替え時と同様にレジスタ内容のメモリへの退避復旧が必要である。この場合には、プロセスの切り替えのようにプロセスコンテキスト(個々のプロセスを実行するために必要な情報)を切り替えるわけではないので、いっそう動作ビット数の差によるレジスタのメモリへの退避復旧の時間差がディスパッチ性能に影響してしまう。
一方、ＣＰＵの種類によってはＣＰＵ自体が複数動作モードを混在して動作させるための仕組みを用意して、ＣＰＵ内のレジスタの一部のモードビットによって退避させるレジスタサイズや個数を変更することができるものがある。
【０００６】
しかしながら、ＣＰＵが動作モードに応じたレジスタ退避復旧の機能を有していない場合には、ＯＳレベルではサポートする動作モードにおける最大のレジスタサイズに合わせてプロセスディスパッチ時にレジスタの退避復旧を行うのが一般的である。６４ビット動作プログラムをサポートするために、プロセスディスパッチ処理で６４ビットレジスタを必ず退避復旧する場合には、あるプログラムは６４ビット動作による高速化などのメリットがディスパッチ性能低下のデメリットに対して十分効果があったとしても、それ以外のプログラムでは３２ビット動作の方が効率的な場合も少なくない。
【０００７】
したがって、複数のプログラムを考慮していずれのプログラムが効率的に電子機器を制御できるかを判断して、ＯＳのサポートする動作モードを一つに決定しなければならなかった。
同様に、プロセス内の並行処理単位であるスレッドの制御機構において、６４ビット演算と３２ビット演算とがスレッド毎に異なる場合でも、一般に動作モードをプロセス内で混在させることはできず、６４ビットモードとして動作させることで、スレッドディスパッチ時のレジスタ退避復旧処理の性能の低下はある程度考慮して、レジスタサイズが大きくなることによる演算性能の向上を図ることが多い。
【０００８】
そこで、本発明の目的は、ビット数の異なるレジスタ環境であっても効率的にプログラムを稼働させることができるオペレーションシステム、スレッド制御機構、及び情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、請求項１記載の発明は、レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリとを備えた装置に用いられるオペレーションシステムであって、レジスタ演算サイズの異なるプログラムを並行動作させる場合にプロセス毎に動作モードを前記メモリのコンテキストに保持させる保持手段と、扱うレジスタサイズの異なるプログラム毎にレジスタ退避方法を変更し、プロセスディスパッチ方法を変えてディスパッチ効率を上げるように前記ＣＰＵに実行させる実行手段とを備えたことを特徴とする。
【００１０】
請求項２記載の発明は、請求項１記載の発明において、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にプロセスの動作モードを設定する設定手段を備えたことを特徴とする。
【００１１】
請求項３記載の発明は、レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリとを備えた装置に用いられるスレッド制御機構であって、  同一プロセス内でレジスタ演算サイズの異なるスレッドを並行動作させる場合にスレッドとプロセス毎に動作モードを前記メモリのコンテキストに保持させ、扱うレジスタサイズの異なるスレッド毎にレジスタ退避方法を変更し、スレッドディスパッチ方法を変えてディスパッチ効率を上げるように前記ＣＰＵに実行させることを特徴とする。
【００１２】
請求項４記載の発明は、請求項３記載の発明において、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にスレッドの動作モードを設定する設定手段を備えたことを特徴とする。
【００１３】
請求項５記載の発明は、レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリと、前記ＣＰＵ及び前記メモリを制御するオペレーティングシステムとを備えた情報処理装置であって、前記オペレーティングシステムは、同一プロセス内でレジスタ演算サイズの異なるスレッドを並行動作させる場合にスレッドとプロセス毎に動作モードを保持する保持手段と、扱うレジスタサイズの異なるスレッド毎にレジスタ退避方法を変更し、スレッドディスパッチ方法を変えてディスパッチ効率を上げるように前記ＣＰＵに実行させる実行手段とを備えたことを特徴とする。
【００１４】
請求項６記載の発明は、請求項５記載の発明において、前記オペレーティングシステムは、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にスレッドの動作モードを設定する設定手段を備えたことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、プロセス毎にディスパッチ時のレジスタ退避復旧を変えることで、無駄なメモリアクセスを減らすことができるため、ビット数の異なるレジスタ環境であっても効率的にプログラムを稼働させることができるオペレーションシステム、スレッド制御機構、及び情報処理装置の提供を実現することができる。
【発明を実施するための最良の形態】
【００１６】
本発明に係るオペレーションシステムの一実施形態（請求項１）は、レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリとを備えた装置に用いられるオペレーションシステムであって、レジスタ演算サイズの異なるプログラムを並行動作させる場合にプロセス毎に動作モードをメモリのコンテキストに保持させる保持手段と、扱うレジスタサイズの異なるプログラム毎にレジスタ退避方法を変更し、プロセスディスパッチ方法を変えてディスパッチ効率を上げるようにＣＰＵに実行させる実行手段とを備えたことを特徴とする。
【００１７】
ＣＰＵとしては、例えば、マイクロプロセッサが挙げられる。
メモリとしては、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（CD Recordable）、ＤＶＤ（Digital Versatile Disk）などのコンピュータで読み取り可能な記憶媒体、ＨＤＤ（Hard Disc Driver）、フラッシュメモリ、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＦｅＲＡＭ（強誘電体メモリ）等の半導体メモリが挙げられる。
【００１８】
上記構成によれば、ＣＰＵがビット数の異なる動作モードをプロセス毎に切り替える仕組みを保持していない場合でも、ＯＳで動作モードの異なるプロセスを混在して動作させるときでも、プロセス毎にディスパッチ時のレジスタ退避復旧を変えることで、無駄なメモリアクセスを減らすことができるため、３２ビット動作のディスパッチ性能を維持しつつ、６４ビット動作で高性能化させたプログラムを稼動させることが可能となり、システム全体の性能向上を図ることが可能となる。
【００１９】
本発明に係るオペレーションシステムの他の実施形態（請求項２）は、上記構成に加え、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にプロセスの動作モードを設定する設定手段を備えたことを特徴とする。
設定手段としては、例えば、ＲＯＭ等に格納されるソフトウェアで構成される。
【００２０】
上記構成によれば、設計者が動作モードを調べたりする必要性がなく、またプログラムの動作モードが不明な場合でも、またプログラムに余計な修正や属性を加えなくても、自動的に動作モードを動的に決定することができるため、６４ビット動作と３２ビット動作とを混在させながら、プロセスやスレッドのディスパッチ性能を低下させることなく、６４ビット動作の高演算性能を確保することが可能となる。
【００２１】
本発明に係るスレッド制御機構の一実施形態（請求項３）は、レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリとを備えた装置に用いられるスレッド制御機構であって、同一プロセス内でレジスタ演算サイズの異なるスレッドを並行動作させる場合にスレッドとプロセス毎に動作モードをメモリのコンテキストに保持させ、扱うレジスタサイズの異なるスレッド毎にレジスタ退避方法を変更し、スレッドディスパッチ方法を変えてディスパッチ効率を上げるようにＣＰＵに実行させることを特徴とする。
【００２２】
上記構成によれば、オペレーションシステムのプロセスと同様にスレッド毎に扱う動作モードが異なる場合でも、スレッド単位にディスパッチ時の処理を変えることで最適化できるため、６４ビット動作のスレッドが３２ビット動作のスレッドより相対的に少ない場合に、３２ビット動作でのディスパッチ性能を維持しつつ６４ビット動作での高性能演算が実現可能となる。
【００２３】
本発明に係るスレッド制御機構の他の実施形態（請求項４）は、上記構成に加え、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にスレッドの動作モードを設定する設定手段を備えたことを特徴とする。
【００２４】
上記構成によれば、設計者が動作モードを調べたりする必要性がなく、またプログラムの動作モードが不明な場合でも、またプログラムに余計な修正や属性を加えなくても、自動的に動作モードを動的に決定することができるため、６４ビット動作と３２ビット動作とを混在させながら、プロセスやスレッドのディスパッチ性能を低下させることなく、６４ビット動作の高演算性能を確保することが可能となる。
【００２５】
本発明に係る情報処理装置の一実施形態（請求項５）は、レジスタ演算サイズの変更を動作モードの切り替えで行うことが可能なＣＰＵと、メモリと、ＣＰＵ及びメモリを制御するオペレーティングシステムとを備えた情報処理装置であって、オペレーティングシステムは、同一プロセス内でレジスタ演算サイズの異なるスレッドを並行動作させる場合にスレッドとプロセス毎に動作モードを保持する保持手段と、扱うレジスタサイズの異なるスレッド毎にレジスタ退避方法を変更し、スレッドディスパッチ方法を変えてディスパッチ効率を上げるようにＣＰＵに実行させる実行手段とを備えたことを特徴とする。
【００２６】
上記構成によれば、オペレーションシステムのプロセスと同様にスレッド毎に扱う動作モードが異なる場合でも、スレッド単位にディスパッチ時の処理を変えることで最適化できるため、６４ビット動作のスレッドが３２ビット動作のスレッドより相対的に少ない場合に、３２ビット動作でのディスパッチ性能を維持しつつ６４ビット動作での高性能演算が実現可能となる。
【００２７】
本発明に係る情報処理装置の他の実施形態（請求項６）は、上記構成に加え、オペレーティングシステムは、レジスタ演算サイズの異なるプログラムを並行動作させる場合に自動的にスレッドの動作モードを設定する設定手段を備えたことを特徴とする。
【００２８】
上記構成によれば、設計者が動作モードを調べたりする必要性がなく、またプログラムの動作モードが不明な場合でも、またプログラムに余計な修正や属性を加えなくても、自動的に動作モードを動的に決定することができるため、６４ビット動作と３２ビット動作とを混在させながら、プロセスやスレッドのディスパッチ性能を低下させることなく、６４ビット動作の高演算性能を確保することが可能となる。
【００２９】
なお、上述した実施の形態は、本発明の好適な実施の形態の一例を示すものであり、本発明はそれに限定されることなく、その要旨を逸脱しない範囲内において、種々変形実施が可能である。
【実施例１】
【００３０】
次に、本発明に係る情報処理装置の一実施例について説明する。
図１は、本発明に係る情報処理装置としての機器制御装置の一例を示す構成図である。
同図に示す機器制御装置において、バス103にＣＰＵ101と、メモリ102と、ＲＯＭ104とが接続されている。
機器制御装置において、制御プログラムを動作させるためには、同図に示すようにＣＰＵ101とメモリ102とが必要で、一般にこれらＣＰＵ101とメモリ102との間はバス103を経由して接続されている。
【００３１】
図２は、図１に示した機器制御装置に用いられるＣＰＵレジスタである。
図２に示すようにＣＰＵ101は演算用のレジスタ105を有するが、複数のプログラムを動作させるためにはプログラムとしてＯＳが搭載されるのが一般的である。
ＯＳやプログラムは一般に図１のＲＯＭ104から起動される。複数プログラムを動作させるために、ＯＳはメモリ上にそれぞれのプログラムを起動し、プロセスとして管理する。各プロセスの状態(これを「コンテキスト」と呼ぶ)を管理するために、ＯＳは図３の様にメモリ上に個別のコンテキスト[201,202,…,20n]を確保し、その中にＣＰＵのレジスタの値も個別に退避しておく領域[211,212,…,21n]を用意しておく。
【００３２】
図３は、コンテキストの説明図である。
実行するプロセスを切り替えるときには、図３に示すようにＣＰＵ内のレジスタの値を現在実行中のプロセスコンテキストのレジスタ退避領域へ保存(退避)し、切り替えたいプロセスのコンテキストのレジスタ退避領域からレジスタへ読み込んで値を復旧することで実現する。
レジスタ以外の情報として、メモリの利用状況なども切り替える必要があるため、コンテキストの内容はレジスタ退避領域以外の様々な情報を含んでいて、それをレジスタのときと同様に切り替えることで、実行するプロセスの切り替えを実現している。
【００３３】
本実施例においては、コンテキスト中にＣＰＵの動作モードを保持し、例えば６４ビット動作及び３２ビット動作のいずれの動作であったのかを保存することとする。この動作モードはプログラム自体がＯＳのシステムコールやＡＰＩ（Application Programming Interface）を用いて設定するか、プログラムがメモリへ読み込まれるときに元となるＲＯＭなどに格納されたプログラムファイルの属性情報に動作モードが付加されているものをＯＳが読み込んで設定する。
【００３４】
プログラムの動作モードがプロセス単位で規定できる。そのため例えば、図４に示す様にプロセス＃１が３２ビット動作モードであった場合には、レジスタ退避領域にはＣＰＵレジスタの下位３２ビットだけを保存する。
プロセス＃２が６４ビット動作モードであった場合には、レジスタ退避領域にはＣＰＵレジスタの全体(６４ビット)を保存する。
プロセス＃ｎが３２ビット動作であった場合にも、同様にＣＰＵレジスタの下位３２ビットをレジスタ退避領域へ保存する。
尚、図４は、ディスパッチの説明図である。
この動作を表したのが図６であるが、一般のＯＳでは図５のように動作モードを判定せずにＣＰＵのレジスタ全体を扱う。
【００３５】
図５は、一般のディスパッチフローを示す図であり、図６は、動作モード別ディスパッチフローを示す図である。
図５において、ディスパッチが開始すると、ＣＰＵ101（図１参照）は、現在のプロセスコンテキストにレジスタの内容を退避する（ステップＳ５１）。
レジスタの内容の退避後は、切り替えるプロセスのコンテキストに保存されている内容をＣＰＵのレジスタに復旧することで切り替え完了する（ステップＳ５２）。
【００３６】
図６において、動作モード付きディスパッチが開始すると、ＣＰＵ101（図１参照）は、動作モードが３２ビットであるか否かを判断する（ステップＳ６１）。
ＣＰＵ101により、動作モードが３２ビットモードであると判断された場合（ステップＳ６１／ＹＥＳ）、現在のプロセスコンテキストにレジスタの下位３２ビットの内容だけ退避し、ステップＳ６３に進む（ステップＳ６２）。
ＣＰＵ101は、切り替えるプロセス動作モードが３２ビットであるか否かを判断する（ステップＳ６３）。
ＣＰＵ101により切り替えるプロセス動作モードが３２ビットであると判断された場合（ステップＳ６３／ＹＥＳ）、切り替え後のプロセスコンテキストからレジスタの下位３２ビットの内容だけを復旧することで切り替えが完了する（ステップＳ６４）。
ＣＰＵ101により、動作モードが３２ビットではないと判断された場合（ステップＳ６１／ＮＯ）、現在のプロセスコンテキストにレジスタ全体６４ビットの内容を退避し、ステップＳ６３に進む。
ＣＰＵ101により、切り替えるプロセス動作モードが３２ビットではないと判断された場合（ステップＳ６３／ＮＯ）、切り替え後のプロセスコンテキストからレジスタの全体６４ビットの内容を復旧することで切り替えが完了する（ステップＳ６６）。
【実施例２】
【００３７】
次に、本発明に係る情報処理装置の他の実施例について説明する。
本実施例は、実施例１におけるプロセスの変わりにスレッドのコンテキスト領域に動作モードを保持して、同様の動作を行うようにするものである。
図７は、他の動作モード別ディスパッチフローを示す図である。
図７において、動作モード付きディスパッチが開始すると、ＣＰＵ101（図１参照）は、動作モードが３２ビットであるか否かを判断する（ステップＳ７１）。
ＣＰＵ101により、動作モードが３２ビットモードであると判断された場合（ステップＳ７１／ＹＥＳ）、現在のスレッドコンテキストにレジスタの下位３２ビットの内容だけ退避し、ステップＳ７３に進む（ステップＳ７２）。
ＣＰＵ101により、切り替えるスレッド動作モードが３２ビットモードであるか否かを判断する（ステップＳ７３）。
ＣＰＵ101により、切り替えるスレッド動作モードが３２ビットモードであると判断し場合（ステップＳ７３／ＹＥＳ）、切り替え後のスレッドコンテキストからレジスタの下位３２ビットの内容だけを復旧することで切り替えが完了する（ステップＳ７４）。
ＣＰＵ101により、動作モードが３２ビットモードではないと判断され場合（ステップＳ６１／ＮＯ）、現在のスレッドコンテキストにレジスタ全体６４ビットの内容を退避し、ステップＳ７３に進む。
ＣＰＵ101により、切り替えるスレッド動作モードが３２ビットモードではないと判断された場合（ステップＳ７３／ＮＯ）、切り替え後のスレッドコンテキストからレジスタの全体６４ビットの内容を復旧することで切り替えが完了する（ステップＳ７６）。
【実施例３】
【００３８】
次に、本発明に係る情報処理装置のさらに他の実施例について説明する。
本実施例においては、動作モードを自動判定するために、最初の動作モードを３２ビットモードとしておき、６４ビットのレジスタ操作になるときにエラーを検知できるＣＰＵであれば、ＯＳにエラーが通知される。このとき、ＯＳが自動的に対象のプロセスの動作モードを３２ビットモードから６４ビットモードに書き換える。この動作を表したのが図８である。
図８は、動作モード自動判定フローを示す図である。
図８において、プロセス自動モード判定が開始すると、ＣＰＵ101（図１参照）は、動作モードのエラーを検知したか否かを判断する（ステップＳ８１）。
ＣＰＵ101により、動作モードのエラーが検知された場合（ステップＳ８１／ＹＥＳ）、動作モードが３２ビットモードであるか否かを判定する（ステップＳ８２）。
ＣＰＵ101により、動作モードが３２ビットモードであると判定された場合（ステップＳ８２／ＹＥＳ）、ＣＰＵ101は、プロセス動作モードを６４ビットモードに変更して切り替えが完了する（ステップＳ８３）。
ＣＰＵ101により、動作モードのエラーが検知された場合（ステップＳ８１／ＮＯ）、プロセス動作モードを変更せず（この場合３２ビットモードのまま）切り替えが完了する。
ＣＰＵ101により、動作モードが３２ビットモードではないと判断された場合（ステップＳ８２／ＮＯ）、切り替えが完了する。
【００３９】
以上において、本発明に係るオペレーションシステムＯＳによれば、ＣＰＵがビット数の異なる動作モードをプロセス毎に切り替える仕組みを保持していない場合でも、ＯＳで動作モードの異なるプロセスを混在して動作させるときでも、プロセス毎にディスパッチ時のレジスタ退避復旧を変えることで、無駄なメモリアクセスを減らすことができるため、３２ビットモードの動作のディスパッチ性能を維持しつつ、６４ビットモードの動作で高性能化させたプログラムを稼動させることが可能となり、システム全体の性能向上を図ることが可能となる。
【００４０】
本発明に係るスレッド制御機構、情報処理装置によれば、オペレーションシステムのプロセスと同様にスレッド毎に扱う動作モードが異なる場合でも、スレッド単位にディスパッチ時の処理を変えることで最適化できるため、６４ビットモードの動作のスレッドが３２ビットモードの動作のスレッドより相対的に少ない場合に、３２ビットモードの動作でのディスパッチ性能を維持しつつ６４ビットモードの動作での高性能演算が実現可能となる。
【００４１】
本発明に係るオペレーションシステム、スレッド制御機構、及び情報処理装置においては、設計者が動作モードを調べたりする必要性がなく、またプログラムの動作モードが不明な場合でも、またプログラムに余計な修正や属性を加えなくても、自動的に動作モードを動的に決定することができるため、６４ビットモードの動作と３２ビットモードの動作とを混在させながら、プロセスやスレッドのディスパッチ性能を低下させることなく、６４ビットモードの動作の高演算性能を確保することが可能となる。
【産業上の利用可能性】
【００４２】
本発明は、オペレーションシステム、スレッド制御機構、及び情報処理装置に利用できる。
【図面の簡単な説明】
【００４３】
【図１】本発明に係る情報処理装置としての機器制御装置の一例を示す構成図である。
【図２】図１に示した機器制御装置に用いられるＣＰＵレジスタである。
【図３】コンテキストの説明図である。
【図４】ディスパッチの説明図である。
【図５】一般ディスパッチフローの説明図である。
【図６】動作モード別ディスパッチフローを示す図である。
【図７】他の動作モード別ディスパッチフローを示す図である。
【図８】動作モード自動判定フローを示す図である。
【符号の説明】
【００４４】
１０１    ＣＰＵ
１０２    メモリ
１０３    バス
１０４    ＲＯＭ
【図１】
2007207074.tif 000003
【図２】
2007207074.tif 000004
【図３】
2007207074.tif 000005
【図４】
2007207074.tif 000006
【図５】
2007207074.tif 000007
【図６】
2007207074.tif 000008
【図７】
2007207074.tif 000009
【図８】
2007207074.tif 000010