(57)【要約】【課題】資源の有効利用と共にプロセッサの性能向上を図ることを実現した情報処理装置を提供する。【解決手段】マルチコアプロセッサ１１の各コア１１２は、プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスをレジスタファイル１１１２内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表１１２１に記録して管理する。そして、この仮想レジスタ変換表１１２１によって管理された仮想アドレスに対するアクセスが発生すると、各コア１１２は、当該仮想レジスタ変換表１１２１によって対応関係が記録されているレジスタファイル１１１２内の物理レジスタに対して当該アクセス処理を実行する。【選択図】      図３
2008269474.tif 000002
【特許請求の範囲】
【請求項１】
命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルと、
プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理する仮想レジスタアサイン手段と、
アクセス対象の仮想アドレスが前記仮想レジスタアサイン手段により管理される前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行するアクセス変換手段と、
を有するプロセッサを具備することを特徴とする情報処理装置。
【請求項２】
前記プロセッサ上でタスクスイッチが発生した場合、前記仮想レジスタ変換表に記録されている物理レジスタからデータを読み出し、前記仮想レジスタ変換表によって対応関係が記録されている仮想アドレスに書き出す仮想レジスタフラッシュ手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記プロセッサは、
前記レジスタファイル内の物理レジスタに対する汎用レジスタの割り当てを動的に制御するレジスタリネーミング手段を有し、
前記仮想レジスタアサイン手段は、仮想アドレスを前記命令セットアーキテクチャ外で仮想的に規定される汎用レジスタに割り当て、当該仮想アドレスと仮想的に規定される汎用レジスタとの対応関係を前記仮想レジスタ変換表に記録して管理し、前記レジスタファイル内の物理レジスタに対する仮想アドレスの割り当てを、前記仮想的に定義される汎用レジスタを介在させることによって前記レジスタリネーミング手段に実行させる、
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
メモリと、
前記プロセッサ上でタスクスイッチが発生した場合、スイッチ前のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容を前記メモリに退避させ、前記メモリに退避させていたスイッチ後のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容を前記仮想レジスタ変換表上に復元するスイッチング手段と、
をさらに具備することを特徴とする請求項１または２記載の情報処理装置。
【請求項５】
前記プロセッサは、複数の命令処理部を有し、１つの前記レジスタファイルを前記複数の命令処理部で共用することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記仮想レジスタアサイン手段および前記アクセス変換手段の作動有無を設定する設定手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項７】
命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルを有するプロセッサを搭載する情報処理装置のデータアクセス制御方法であって、
プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理しておき、
アクセス対象の仮想アドレスが前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行する、
ことを特徴とするデータアクセス制御方法。
【請求項８】
前記プロセッサ上でタスクスイッチが発生した場合、前記仮想レジスタ変換表に記録されている物理レジスタからデータを読み出し、前記仮想レジスタ変換表によって対応関係が記録されている仮想アドレスに書き出す、
ことを特徴とする請求項７記載のデータアクセス制御方法。
【請求項９】
前記プロセッサは、前記レジスタファイル内の物理レジスタに対する汎用レジスタの割り当てを動的に制御するレジスタリネーミング手段を有し、
仮想アドレスを前記命令セットアーキテクチャ外で仮想的に規定される汎用レジスタに割り当て、当該仮想アドレスと仮想的に規定される汎用レジスタとの対応関係を前記仮想レジスタ変換表に記録して管理し、前記レジスタファイル内の物理アドレスに対する仮想アドレスの割り当てを、前記仮想的に定義される汎用レジスタを介在させることによって前記レジスタリネーミング手段に実行させる、
ことを特徴とする請求項７記載のデータアクセス制御方法。
【請求項１０】
前記プロセッサ上でタスクスイッチが発生した場合、スイッチ前のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容をメモリに退避させ、前記メモリに退避させていたスイッチ後のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容を前記仮想レジスタ変換表上に復元する、
ことを特徴とする請求項７または８記載のデータアクセス制御方法。
【請求項１１】
前記仮想レジスタ変換表の管理および前記仮想レジスタ変換表に基づく前記物理レジスタに対するアクセス処理の実行の作動有無を設定することを特徴とする請求項７記載のデータアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばパーソナルコンピュータなどの情報処理装置に適用して好適なデータアクセス制御技術に関する。
【背景技術】
【０００２】
近年、例えばデスクトップタイプやノートブックタイプなど、様々なタイプのパーソナルコンピュータが広く普及している。この種のパーソナルコンピュータは、要求される機能が日々高度化し、最近では、例えばスクランブル化されて放送される番組データを視聴できるまでに至っている。
【０００３】
このようなことから、従来より、プロセッサの性能を向上させるための手法が種々提案されている（例えば特許文献１等参照）。この特許文献１では、複数のプロセッサで回路を共有することにより、ＬＳＩ面積を抑えつつ、複数のプロセスを効率良く実行することが可能なマルチプロセッサを提案している。
【特許文献１】特開２０００−２９８６５２公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
この種のパーソナルコンピュータは、仮想記憶機構を備えているので、プログラムによるデータアクセスは、仮想アドレスを用いて実行される。一方、システム側では、この仮想アドレスに対してアドレス変換を施すことにより実アドレスを得て、主記憶に対するアクセス処理を実行する。
【０００５】
また、この種のパーソナルコンピュータが搭載するプロセッサは、レジスタリネーミング機能を備えている。プログラムが発行する命令の実行には、命令セットアーキテクチャで規定される汎用レジスタが用いられるが、この汎用レジスタをレジスタファイル内の物理レジスタに動的に割り当て制御するのがレジスタリネーミング機能である。
【０００６】
ところで、主記憶、即ち（プロセッサ外の）メモリに対するアクセス処理と比べ、（プロセッサ内の）物理レジスタに対するアクセス処理は格段に高速である。また、汎用レジスタが未割り当ての物理レジスタは単なる余剰資源と化する。従って、メモリに対するアクセス処理を物理レジスタに対するアクセス処理に置き換える仕組みを備えれば、資源の有効利用と共にプロセッサの性能向上を図ることができる。
【０００７】
この発明は、このような事情を考慮してなされたものであり、資源の有効利用と共にプロセッサの性能向上を図ることを実現した情報処理装置および同装置のデータアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前述の目的を達成するために、本発明の情報処理装置は、命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルと、プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理する仮想レジスタアサイン手段と、アクセス対象の仮想アドレスが前記仮想レジスタアサイン手段により管理される前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行するアクセス変換手段と、を有するプロセッサを具備することを特徴とする。
【０００９】
また、本発明のデータアクセス制御方法は、命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルを有するプロセッサを搭載する情報処理装置のデータアクセス制御方法であって、プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理しておき、アクセス対象の仮想アドレスが前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行する、ことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、資源の有効利用と共にプロセッサの性能向上を図ることを実現した情報処理装置および同装置のデータアクセス制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１１】
（第１実施形態）
以下、図面を参照して、この発明の第１実施形態を説明する。図１には、本実施形態に係る情報処理装置の構成例が示されている。この情報処理装置は、例えばバッテリ駆動可能なノートブック型パーソナルコンピュータ等として実現されている。
【００１２】
図１に示すように、このコンピュータは、マルチコアプロセッサ１１、ノースブリッジ１２、主メモリ１３、グラフィックスコントローラ１４、ＶＲＡＭ１４Ａ、ＬＣＤ１５、サウスブリッジ１６、ＢＩＯＳ−ＲＯＭ１７、ＨＤＤ１８、サウンドコントローラ１９、スピーカ２０、エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）２１、キーボード２２、タッチパッド２３、電源回路２４、バッテリ２５および各種ＰＣＩデバイス２６等を備えている。
【００１３】
マルチコアプロセッサ１１は、本コンピュータ内の各部の動作を制御する中央処理装置であり、複数の命令処理部（コア）を内蔵する。なお、本実施形態で説明する本発明のデータアクセス制御手法は、マルチコアプロセッサに限られず、コアを１つのみ内蔵するシングルコアプロセッサにおいても適用可能である。
【００１４】
このマルチコアプロセッサ１１は、ＨＤＤ１８から主メモリ１３にロードされるオペレーティングシステム（ＯＳ）１００や、このＯＳ１００の制御下で動作する種々のアプリケーションプログラムを実行する。ＯＳ１００には、マルチコアプロセッサ１１の各コアに対するタスクの割り当て制御を行うディスパッチャ１０１が含まれている。また、マルチコアプロセッサ１１は、ＢＩＯＳ−ＲＯＭ１７に格納されたＢＩＯＳも実行する。ＢＩＯＳは、各種ハードウェア制御のためのプログラムである。ＢＩＯＳには、本コンピュータの動作環境設定を行うためのセットアッププログラム１５０が含まれている。
【００１５】
ノースブリッジ１２は、マルチコアプロセッサ１１のローカルバスとサウスブリッジ１６との間を接続するブリッジデバイスである。ノースブリッジ１２は、バスを介してグラフィックスコントローラ１４との通信を実行する機能を有しており、また、主メモリ１３をアクセス制御するメモリコントローラも内蔵されている。グラフィックスコントローラ１４は、本コンピュータのディスプレイモニタとして使用されるＬＣＤ１５を制御する表示コントローラである。グラフィックスコントローラ１４は、ＶＲＡＭ１４Ａに書き込まれた画像データからＬＣＤ１５に送出すべき表示信号を生成する。
【００１６】
サウスブリッジ１６は、ＰＣＩバス上の各種ＰＣＩデバイス２６を制御するコントローラである。また、このサウスブリッジ１６には、ＢＩＯＳ−ＲＯＭ１７、ＨＤＤ１８、サウンドコントローラ１９が直接的に接続され、これらを制御する機能も有している。サウンドコントローラ１９は、スピーカ２０を制御する音源コントローラである。
【００１７】
ＥＣ／ＫＢＣ２１は、電力管理のためのエンベデッドコントローラと、キーボード２２およびタッチパッド２３を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。ＥＣ／ＫＢＣ２１は、電源回路２４と協働して、バッテリ２５または外部ＡＣ電源からの電力を各部に供給制御する。
【００１８】
図２は、マルチコアプロセッサ１１の構成を示す図である。図２に示すように、マルチコアプロセッサ１１は、統合演算ユニット１１１、２つのコア（０，１）１１２、２次キャッシュ１１３、バスコントローラ１１４等を備えている。
【００１９】
このマルチコアプロセッサ１１では、各コア１１２は演算資源を持たず、（演算資源である）１つの統合演算ユニット１１１を共用する。そして、各コア１１２から共用される演算資源としての統合演算ユニット１１１は、複数の演算器（０，１，…）１１１１、レジスタファイル１１１２、リネーム／アロケート部１１１３を有する。
【００２０】
本コンピュータでは、命令セットアーキテクチャとして３２ビットの汎用レジスタが８本（Ｒ０，Ｒ１，…Ｒ７）規定される。また、本コンピュータは、レジスタリネーミング機能をサポートしており、レジスタファイル１１１２内に物理レジスタを１２８本（Ｒ１００，Ｒ１０２，…Ｒ２２７）保持する。そして、このレジスタファイル１１１２内の物理レジスタに汎用レジスタを動的に割り当てるレジスタリネーミング機能を実現しているのがリネーム／アロケート部１１１３である。リネーム／アロケート部１１１３は、汎用レジスタが未割り当てのレジスタファイル１１１２内の物理レジスタを各コア１１２からの要求に応じて確保するアロケーション機能も有している。このアロケーション機能の用途については後述する。そして、このレジスタファイル１１１２を複数のコア１１２で共用することで、本コンピュータは、レジスタリネーミング時のレジスタ不足を発生しにくくし、レジスタ不足によるパフォーマンス低下（例えば主メモリ１３を介して演算を行わなければならない等）を回避している。
【００２１】
一方、この演算資源である統合演算ユニット１１１を共用する各コア１１２は、仮想レジスタ変換表１１２１、１次データキャッシュ１１２２、命令デコーダ１１２３、１次命令キャッシュ１１２４をそれぞれ具備している。このうち、仮想レジスタ変換表１１２１が、本コンピュータのマルチコアプロセッサ１１に特有の構成であり、図３に、この仮想レジスタ変換表１１２１の構成例を示す。
【００２２】
図示のように、仮想レジスタ変換表１１２１は、「インデックス」、「有効フラグ」、「仮想アドレス」、「物理レジスタ番号」の４つのフィールドを持ち、メインメモリ空間中の仮想アドレスと物理レジスタ番号（１００〜２２７）との対応を記録する。即ち、本コンピュータでは、この仮想レジスタ変換表１１２１を備えることにより、レジスタファイル１１１２内の物理レジスタをデータキャッシュとして用いることを可能とする。例えば仮想アドレス”１００３２０３０ｈ”に対するアクセスが発生したとすると、インデックス”２”に当該仮想アドレスが記録されているので、コア１１２は、１次データキャッシュ１１２２、２次キャッシュ１１３またはバスコントローラ１１４を経由した主メモリ１３に対するアクセスに代えて、レジスタファイル１１１２内の物理レジスタ番号”１０２”の物理レジスタに対するアクセスを実行する。前述のリネーム／アロケート部１１１３のアロケーション機能は、この仮想アドレスに対応づけるレジスタファイル１１１２内の物理レジスタを確保するために用いられる。
【００２３】
汎用レジスタが未割り当ての物理レジスタは単なる余剰資源と化しており、また、メモリアクセスと比較してレジスタアクセスは格段に高速であるので、このメモリアクセスからレジスタアクセスへの置き換えにより、資源の有効利用と共にプロセッサの性能向上が図られることとなる。以下、各コア１１２が、この仮想レジスタ変換表１１２１を用いて仮想アドレスのアクセスをメモリアクセスからレジスタアクセスに置き換える基本原理について詳述する。
【００２４】
仮想アドレスと物理レジスタ番号との対応は、プログラムからの要求によって、仮想レジスタ変換表１１２１に記録される。図４は、仮想アドレスをレジスタファイル１１１２内の物理レジスタに対応づける（アサイン）場合の手順を示すフローチャートである。
【００２５】
コア１１２は、ある仮想アドレスをレジスタファイル１１１２内の物理レジスタにアサインする旨を要求をプログラムから受けると、まず、その仮想アドレスが自然なアラインであることを確認する（ステップＡ１）。自然なアラインとは、当該アドレスが格納するデータのサイズの倍数となっていることを意味する。本コンピュータでは、汎用レジスタと同じサイズの３２ビットデータを格納するので、仮想アドレスが４の倍数であることを確認する。
【００２６】
自然なアラインであることを確認したら（ステップＡ１のＹＥＳ）、コア１１２は、今度は、その仮想アドレスが仮想レジスタ変換表１１２１に含まれていないかどうか、つまり既にアサイン済みとなっていないかどうかを調べ（ステップＡ２，ステップＡ３）、仮想レジスタ変換表１１２１に含まれていなければ（ステップＡ３のＮＯ）、続いて、仮想レジスタ変換表１１２１に空きエントリが有るかどうかを調べる（ステップＡ４）。
【００２７】
仮想レジスタ変換表１１２１に空きエントリがあれば（ステップＡ４のＹＥＳ）、コア１１２は、リネーム／アロケート部１１１３に対して、レジスタファイル１１１２内の物理レジスタの割り当てを要求し（ステップＡ５）、当該割り当てが成功したら（ステップＡ６のＹＥＳ）、当該仮想アドレスのリード処理をメモリアクセスで実行し（ステップＡ７）、このメモリアクセスで得られたデータのライト処理を、当該割り当てられたレジスタファイル１１１２内の物理レジスタに対するレジスタアクセスで実行する（ステップＡ８）。そして、このデータコピーが完了すると、コア１１２は、当該仮想アドレスと割り当てられたレジスタファイル１１１２内の物理レジスタの物理レジスタ番号とを仮想レジスタ変換表１１２１の空きエントリに記録し、かつ、そのエントリの有効フラグを有効に設定する（ステップＡ９）。
【００２８】
また、図５は、仮想アドレスに対するリードまたはライトを行う場合の手順を示すフローチャートである。
【００２９】
ある仮想アドレスに対するアクセスが発生すると、コア１１２は、まず、そのアクセス対象の仮想アドレスが仮想レジスタ変換表１１２１に含まれるかどうかを調べる（ステップＢ１，ステップＢ２）。そして、仮想レジスタ変換表１１２１に含まれていたら（ステップＢ２のＹＥＳ）、コア１１２は、仮想レジスタ変換表１１２１から得られる物理レジスタ番号を持つ物理レジスタに対してリード・ライトを実行する（ステップＢ３）。
【００３０】
なお、アクセス対象の仮想アドレスが仮想レジスタ変換表１１２１に含まれていなかった場合には（ステップＢ２のＮＯ）、コア１１２は、１次データキャッシュ１１２２、２次キャッシュ１１３またはバスコントローラ１１４を経由した主メモリ１３に対する一般的な仮想アドレスのリード・ライトを実行する（ステップＢ４〜ステップＢ１０）。
【００３１】
また、図６は、仮想アドレスとレジスタファイル１１１２内の物理レジスタとの対応づけを解消する（フラッシュ）場合の手順を示すフローチャートである。
【００３２】
ページテーブル変更が発生した場合や、プログラムから明示的にフラッシュする旨の要求を受けた場合、コア１１２は、まず、仮想レジスタ変換表１１２１のエントリを選択するためのカウンタを初期化する（ステップＣ１）。次に、コア１１２は、カウンタを用いて仮想レジスタ変換表１１２１のエントリを選択し（ステップＣ２）、その選択したエントリの有効フラグが有効かどうかを調べる（ステップＣ３）。
【００３３】
もし、有効フラグが有効であれば（ステップＣ３のＹＥＳ）、コア１１２は、そのエントリに記録された物理レジスタ番号に対応するレジスタファイル１１１２内の物理レジスタからのリード処理を実行する（ステップＣ４）。そして、コア１１２は、その読み出したデータを、当該エントリに記録された仮想アドレスに書き込むライト処理を実行し（ステップＣ５）、当該エントリの有効フラグをクリアする（ステップＣ６）。
【００３４】
コア１１２は、仮想レジスタ変換表１１２１のエントリを選択するためのカウンタを更新し（ステップＣ７）、この更新後のカウンタの値が仮想レジスタ変換表１１２１のエントリ数に達していたら（ステップＣ８のＮＯ）、この処理を終了する。
【００３５】
以上のように、本コンピュータは、メモリに対するアクセス処理を物理レジスタに対するアクセス処理に置き換える仕組みを備えることにより、資源の有効利用と共にプロセッサの性能向上を図ることを実現する。また、レジスタファイル１１１２内に保持される物理レジスタの数を増加させるといった、演算リソースを増強したプロセッサが登場した場合には、プログラムを修正することなく、増強された分の演算リソースが自動的に利用されることになる。
【００３６】
（第２実施形態）
次に、この発明の第２実施形態について説明する。
【００３７】
図７に、本実施形態で用いる仮想レジスタ変換表１１２１の構成例を示す。前述の第１実施形態においては、仮想アドレスに対応づけるレジスタファイル１１１２内の物理レジスタの情報として物理レジスタ番号を記録していたが、本実施形態では、物理レジスタ番号に代えて仮想的な汎用レジスタ番号を用いる。
【００３８】
前述のように、本コンピュータは、命令セットアーキテクチャとして３２ビットの汎用レジスタが８本（Ｒ０，Ｒ１，…Ｒ７）規定される。そこで、例えば仮想レジスタ変換表１１２１のエントリ数を４とした場合、汎用レジスタＲ０〜Ｒ７に加えて、汎用レジスタＲ８〜Ｒ１１を命令セットアーキテクチャ外で仮想的に規定し、仮想レジスタ変換表１１２１の各インデックスをこの仮想的な汎用レジスタＲ８〜Ｒ１１と見なす。
【００３９】
こうすることで、第１に、図８に示すように、この仮想的な汎用レジスタ（Ｒ８〜Ｒ１１）も、リネーム／アロケート部１１１３によるレジスタリネーミング機能の処理対象とすることができ、さらにパフォーマンスを向上させることができる。
【００４０】
また、第２に、仮想レジスタ変換表１１２１のインデックスが仮想レジスタの汎用レジスタ番号と１対１に対応するため、仮想レジスタ変換表１１２１のインデックス数を増加させることにより、命令セットアーキテクチャを変更することなく、実質的な汎用レジスタ数を拡張することが可能となる。
【００４１】
（第３実施形態）
次に、この発明の第３実施形態を説明する。
【００４２】
前述の第１実施形態および第２実施形態では、各コア１１２において、タスクスイッチが発生した時点で、メモリアクセスのレジスタアクセスへの置き換え処理が解除され、それ以後、タスクが再開された場合でもパフォーマンスは向上しない。
【００４３】
そこで、本実施形態のコンピュータでは、ＯＳ１００が、ディスパッチャ１０１によるタスクスイッチを発生させた際、図９に示すように、そのコア１１２の仮想レジスタ変換表１１２１の内容を主メモリ１３に退避させ、タスク再開時に、当該退避させた内容を仮想レジスタ変換表１１２１に復帰する処理を行うことで、パフォーマンスの向上を持続させることを可能とする。
【００４４】
ところで、前述した各実施形態では、レジスタファイル１１１２内の物理レジスタをデータキャッシュとして用いることで、プロセッサの性能向上を図る例を説明したが、これによって逆にレジスタリネーミング時のレジスタ不足を招いてしまうといったリソースの枯渇を確実に防止するために、このメモリアクセスからレジスタアクセスへ置き換える機能を作動させるか否かをユーザに設定させる仕組みを設けてもよい。例えば前述の本コンピュータの動作環境設定を行うためのセットアッププログラム１５０が、図１０に示す画面をユーザに提示する機能を備え、この画面上での設定に応じて、各コア１１２がメモリアクセスからレジスタアクセスへ置き換える機能を作動させるか否かを判断する。
【００４５】
メモリアクセスからレジスタアクセスへ置き換える機能を作動させない設定となっている場合に、ある仮想アドレスをレジスタファイル１１１２内の物理レジスタにアサインする旨を要求をプログラムから受けた際、この要求を無視したとしても、データアクセスは内容的に矛盾無くメモリアクセスとして実行されるので問題はない。
【００４６】
このように、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４７】
【図１】この発明の第１実施形態に係る情報処理装置（コンピュータ）の構成例を示す図
【図２】同第１実施形態のコンピュータが搭載するマルチコアプロセッサの構成を示す図
【図３】同第１実施形態のコンピュータが搭載するマルチコアプロセッサの各コアが備える仮想レジスタ変換表の構成例を示す図
【図４】同第１実施形態のコンピュータが仮想アドレスをレジスタファイル内の物理レジスタに対応づける（アサイン）場合の手順を示すフローチャート
【図５】同第１実施形態のコンピュータが仮想アドレスに対するリードまたはライトを行う場合の手順を示すフローチャート
【図６】同第１実施形態のコンピュータが仮想アドレスとレジスタファイル内の物理レジスタとの対応づけを解消する（フラッシュ）場合の手順を示すフローチャート
【図７】同第２実施形態のコンピュータが搭載するマルチコアプロセッサの各コアが備える仮想レジスタ変換表の構成例を示す図
【図８】同第２実施形態のコンピュータがレジスタリネーミングによって仮想的な汎用レジスタをレジスタファイル内の物理レジスタに割り当てる様子を表した図
【図９】同第３実施形態のコンピュータがタスクスイッチ時に仮想レジスタ変換表の内容を切り換える様子を表した図
【図１０】同第１乃至第３実施形態のコンピュータがメモリアクセスからレジスタアクセスへ置き換える機能を作動させるか否かをユーザに設定させるために提示する画面を例示する図
【符号の説明】
【００４８】
１１…マルチコアプロセッサ、１２…ノースブリッジ、１３…主メモリ、１４…グラフィックスコントローラ、１４Ａ…ＶＲＡＭ、１５…ＬＣＤ、１６…サウスブリッジ、１７…ＢＩＯＳ−ＲＯＭ、１８…ＨＤＤ、１９…サウンドコントローラ、２０…スピーカ、２１…エンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）、２２…キーボード、２３…タッチパッド、２４…電源回路、２５…バッテリ、２６…ＰＣＩデバイス、１００…オペレーティングシステム（ＯＳ）、１０１…ディスパッチャ、１１１…統合演算ユニット、１１２…コア、１１３…２次キャッシュ、１１４…バスコントローラ、１５０…セットアッププログラム、１１１１…演算器、１１１２…レジスタファイル、１１１３…リネーム／アロケート部、１１２１…仮想レジスタ変換表、１１２２…１次データキャッシュ、１１２３…命令デコーダ、１１２４…１次命令キャッシュ。
【図１】
2008269474.tif 000003
【図２】
2008269474.tif 000004
【図３】
2008269474.tif 000005
【図４】
2008269474.tif 000006
【図５】
2008269474.tif 000007
【図６】
2008269474.tif 000008
【図７】
2008269474.tif 000009
【図８】
2008269474.tif 000010
【図９】
2008269474.tif 000011
【図１０】
2008269474.tif 000012