JP5085180B2 - 情報処理装置およびアクセス制御方法 - Google Patents

情報処理装置およびアクセス制御方法 Download PDF

Info

Publication number
JP5085180B2
JP5085180B2 JP2007114316A JP2007114316A JP5085180B2 JP 5085180 B2 JP5085180 B2 JP 5085180B2 JP 2007114316 A JP2007114316 A JP 2007114316A JP 2007114316 A JP2007114316 A JP 2007114316A JP 5085180 B2 JP5085180 B2 JP 5085180B2
Authority
JP
Japan
Prior art keywords
register
virtual
conversion table
physical
recorded
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.)
Active
Application number
JP2007114316A
Other languages
English (en)
Other versions
JP2008269474A (ja
Inventor
剛 西田
玄 渡辺
和義 桑原
創 園部
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007114316A priority Critical patent/JP5085180B2/ja
Priority to US12/075,220 priority patent/US7971026B2/en
Publication of JP2008269474A publication Critical patent/JP2008269474A/ja
Application granted granted Critical
Publication of JP5085180B2 publication Critical patent/JP5085180B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Executing Machine-Instructions (AREA)

Description

この発明は、例えばパーソナルコンピュータなどの情報処理装置に適用して好適なデータアクセス制御技術に関する。
近年、例えばデスクトップタイプやノートブックタイプなど、様々なタイプのパーソナルコンピュータが広く普及している。この種のパーソナルコンピュータは、要求される機能が日々高度化し、最近では、例えばスクランブル化されて放送される番組データを視聴できるまでに至っている。
このようなことから、従来より、プロセッサの性能を向上させるための手法が種々提案されている(例えば特許文献1等参照)。この特許文献1では、複数のプロセッサで回路を共有することにより、LSI面積を抑えつつ、複数のプロセスを効率良く実行することが可能なマルチプロセッサを提案している。
特開2000−298652公報
この種のパーソナルコンピュータは、仮想記憶機構を備えているので、プログラムによるデータアクセスは、仮想アドレスを用いて実行される。一方、システム側では、この仮想アドレスに対してアドレス変換を施すことにより実アドレスを得て、主記憶に対するアクセス処理を実行する。
また、この種のパーソナルコンピュータが搭載するプロセッサは、レジスタリネーミング機能を備えている。プログラムが発行する命令の実行には、命令セットアーキテクチャで規定される汎用レジスタが用いられるが、この汎用レジスタをレジスタファイル内の物理レジスタに動的に割り当て制御するのがレジスタリネーミング機能である。
ところで、主記憶、即ち(プロセッサ外の)メモリに対するアクセス処理と比べ、(プロセッサ内の)物理レジスタに対するアクセス処理は格段に高速である。また、汎用レジスタが未割り当ての物理レジスタは単なる余剰資源と化する。従って、メモリに対するアクセス処理を物理レジスタに対するアクセス処理に置き換える仕組みを備えれば、資源の有効利用と共にプロセッサの性能向上を図ることができる。
この発明は、このような事情を考慮してなされたものであり、資源の有効利用と共にプロセッサの性能向上を図ることを実現した情報処理装置および同装置のデータアクセス制御方法を提供することを目的とする。
実施形態によれば、情報処理装置は、命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルと、前記レジスタファイル内の物理レジスタに対する汎用レジスタの割り当てを動的に制御するレジスタリネーミング手段と、プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理する手段であって、仮想アドレスを前記命令セットアーキテクチャ外で仮想的に規定される汎用レジスタに割り当て、当該仮想アドレスと仮想的に規定される汎用レジスタとの対応関係を前記仮想レジスタ変換表に記録して管理し、前記レジスタファイル内の物理レジスタに対する仮想アドレスの割り当てを、前記仮想的に定義される汎用レジスタを介在させることによって前記レジスタリネーミング手段に実行させる仮想レジスタアサイン手段と、アクセス対象の仮想アドレスが前記仮想レジスタアサイン手段により管理される前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行するアクセス変換手段と、を有するプロセッサを具備する。
また、実施形態によれば、データアクセス制御方法は、命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルと、前記レジスタファイル内の物理レジスタに対する汎用レジスタの割り当てを動的に制御するレジスタリネーミング手段とを有するプロセッサを搭載する情報処理装置のデータアクセス制御方法であって、プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理すべく、仮想アドレスを前記命令セットアーキテクチャ外で仮想的に規定される汎用レジスタに割り当て、当該仮想アドレスと仮想的に規定される汎用レジスタとの対応関係を前記仮想レジスタ変換表に記録して管理し、前記レジスタファイル内の物理アドレスに対する仮想アドレスの割り当てを、前記仮想的に定義される汎用レジスタを介在させることによって前記レジスタリネーミング手段に実行させ、アクセス対象の仮想アドレスが前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行する。
この発明によれば、資源の有効利用と共にプロセッサの性能向上を図ることを実現した情報処理装置および同装置のデータアクセス制御方法を提供することができる。
(第1実施形態)
以下、図面を参照して、この発明の第1実施形態を説明する。図1には、本実施形態に係る情報処理装置の構成例が示されている。この情報処理装置は、例えばバッテリ駆動可能なノートブック型パーソナルコンピュータ等として実現されている。
図1に示すように、このコンピュータは、マルチコアプロセッサ11、ノースブリッジ12、主メモリ13、グラフィックスコントローラ14、VRAM14A、LCD15、サウスブリッジ16、BIOS−ROM17、HDD18、サウンドコントローラ19、スピーカ20、エンベデッドコントローラ/キーボードコントローラ(EC/KBC)21、キーボード22、タッチパッド23、電源回路24、バッテリ25および各種PCIデバイス26等を備えている。
マルチコアプロセッサ11は、本コンピュータ内の各部の動作を制御する中央処理装置であり、複数の命令処理部(コア)を内蔵する。なお、本実施形態で説明する本発明のデータアクセス制御手法は、マルチコアプロセッサに限られず、コアを1つのみ内蔵するシングルコアプロセッサにおいても適用可能である。
このマルチコアプロセッサ11は、HDD18から主メモリ13にロードされるオペレーティングシステム(OS)100や、このOS100の制御下で動作する種々のアプリケーションプログラムを実行する。OS100には、マルチコアプロセッサ11の各コアに対するタスクの割り当て制御を行うディスパッチャ101が含まれている。また、マルチコアプロセッサ11は、BIOS−ROM17に格納されたBIOSも実行する。BIOSは、各種ハードウェア制御のためのプログラムである。BIOSには、本コンピュータの動作環境設定を行うためのセットアッププログラム150が含まれている。
ノースブリッジ12は、マルチコアプロセッサ11のローカルバスとサウスブリッジ16との間を接続するブリッジデバイスである。ノースブリッジ12は、バスを介してグラフィックスコントローラ14との通信を実行する機能を有しており、また、主メモリ13をアクセス制御するメモリコントローラも内蔵されている。グラフィックスコントローラ14は、本コンピュータのディスプレイモニタとして使用されるLCD15を制御する表示コントローラである。グラフィックスコントローラ14は、VRAM14Aに書き込まれた画像データからLCD15に送出すべき表示信号を生成する。
サウスブリッジ16は、PCIバス上の各種PCIデバイス26を制御するコントローラである。また、このサウスブリッジ16には、BIOS−ROM17、HDD18、サウンドコントローラ19が直接的に接続され、これらを制御する機能も有している。サウンドコントローラ19は、スピーカ20を制御する音源コントローラである。
EC/KBC21は、電力管理のためのエンベデッドコントローラと、キーボード22およびタッチパッド23を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。EC/KBC21は、電源回路24と協働して、バッテリ25または外部AC電源からの電力を各部に供給制御する。
図2は、マルチコアプロセッサ11の構成を示す図である。図2に示すように、マルチコアプロセッサ11は、統合演算ユニット111、2つのコア(0,1)112、2次キャッシュ113、バスコントローラ114等を備えている。
このマルチコアプロセッサ11では、各コア112は演算資源を持たず、(演算資源である)1つの統合演算ユニット111を共用する。そして、各コア112から共用される演算資源としての統合演算ユニット111は、複数の演算器(0,1,…)1111、レジスタファイル1112、リネーム/アロケート部1113を有する。
本コンピュータでは、命令セットアーキテクチャとして32ビットの汎用レジスタが8本(R0,R1,…R7)規定される。また、本コンピュータは、レジスタリネーミング機能をサポートしており、レジスタファイル1112内に物理レジスタを128本(R100,R102,…R227)保持する。そして、このレジスタファイル1112内の物理レジスタに汎用レジスタを動的に割り当てるレジスタリネーミング機能を実現しているのがリネーム/アロケート部1113である。リネーム/アロケート部1113は、汎用レジスタが未割り当てのレジスタファイル1112内の物理レジスタを各コア112からの要求に応じて確保するアロケーション機能も有している。このアロケーション機能の用途については後述する。そして、このレジスタファイル1112を複数のコア112で共用することで、本コンピュータは、レジスタリネーミング時のレジスタ不足を発生しにくくし、レジスタ不足によるパフォーマンス低下(例えば主メモリ13を介して演算を行わなければならない等)を回避している。
一方、この演算資源である統合演算ユニット111を共用する各コア112は、仮想レジスタ変換表1121、1次データキャッシュ1122、命令デコーダ1123、1次命令キャッシュ1124をそれぞれ具備している。このうち、仮想レジスタ変換表1121が、本コンピュータのマルチコアプロセッサ11に特有の構成であり、図3に、この仮想レジスタ変換表1121の構成例を示す。
図示のように、仮想レジスタ変換表1121は、「インデックス」、「有効フラグ」、「仮想アドレス」、「物理レジスタ番号」の4つのフィールドを持ち、メインメモリ空間中の仮想アドレスと物理レジスタ番号(100〜227)との対応を記録する。即ち、本コンピュータでは、この仮想レジスタ変換表1121を備えることにより、レジスタファイル1112内の物理レジスタをデータキャッシュとして用いることを可能とする。例えば仮想アドレス”10032030h”に対するアクセスが発生したとすると、インデックス”2”に当該仮想アドレスが記録されているので、コア112は、1次データキャッシュ1122、2次キャッシュ113またはバスコントローラ114を経由した主メモリ13に対するアクセスに代えて、レジスタファイル1112内の物理レジスタ番号”102”の物理レジスタに対するアクセスを実行する。前述のリネーム/アロケート部1113のアロケーション機能は、この仮想アドレスに対応づけるレジスタファイル1112内の物理レジスタを確保するために用いられる。
汎用レジスタが未割り当ての物理レジスタは単なる余剰資源と化しており、また、メモリアクセスと比較してレジスタアクセスは格段に高速であるので、このメモリアクセスからレジスタアクセスへの置き換えにより、資源の有効利用と共にプロセッサの性能向上が図られることとなる。以下、各コア112が、この仮想レジスタ変換表1121を用いて仮想アドレスのアクセスをメモリアクセスからレジスタアクセスに置き換える基本原理について詳述する。
仮想アドレスと物理レジスタ番号との対応は、プログラムからの要求によって、仮想レジスタ変換表1121に記録される。図4は、仮想アドレスをレジスタファイル1112内の物理レジスタに対応づける(アサイン)場合の手順を示すフローチャートである。
コア112は、ある仮想アドレスをレジスタファイル1112内の物理レジスタにアサインする旨を要求をプログラムから受けると、まず、その仮想アドレスが自然なアラインであることを確認する(ステップA1)。自然なアラインとは、当該アドレスが格納するデータのサイズの倍数となっていることを意味する。本コンピュータでは、汎用レジスタと同じサイズの32ビットデータを格納するので、仮想アドレスが4の倍数であることを確認する。
自然なアラインであることを確認したら(ステップA1のYES)、コア112は、今度は、その仮想アドレスが仮想レジスタ変換表1121に含まれていないかどうか、つまり既にアサイン済みとなっていないかどうかを調べ(ステップA2,ステップA3)、仮想レジスタ変換表1121に含まれていなければ(ステップA3のNO)、続いて、仮想レジスタ変換表1121に空きエントリが有るかどうかを調べる(ステップA4)。
仮想レジスタ変換表1121に空きエントリがあれば(ステップA4のYES)、コア112は、リネーム/アロケート部1113に対して、レジスタファイル1112内の物理レジスタの割り当てを要求し(ステップA5)、当該割り当てが成功したら(ステップA6のYES)、当該仮想アドレスのリード処理をメモリアクセスで実行し(ステップA7)、このメモリアクセスで得られたデータのライト処理を、当該割り当てられたレジスタファイル1112内の物理レジスタに対するレジスタアクセスで実行する(ステップA8)。そして、このデータコピーが完了すると、コア112は、当該仮想アドレスと割り当てられたレジスタファイル1112内の物理レジスタの物理レジスタ番号とを仮想レジスタ変換表1121の空きエントリに記録し、かつ、そのエントリの有効フラグを有効に設定する(ステップA9)。
また、図5は、仮想アドレスに対するリードまたはライトを行う場合の手順を示すフローチャートである。
ある仮想アドレスに対するアクセスが発生すると、コア112は、まず、そのアクセス対象の仮想アドレスが仮想レジスタ変換表1121に含まれるかどうかを調べる(ステップB1,ステップB2)。そして、仮想レジスタ変換表1121に含まれていたら(ステップB2のYES)、コア112は、仮想レジスタ変換表1121から得られる物理レジスタ番号を持つ物理レジスタに対してリード・ライトを実行する(ステップB3)。
なお、アクセス対象の仮想アドレスが仮想レジスタ変換表1121に含まれていなかった場合には(ステップB2のNO)、コア112は、1次データキャッシュ1122、2次キャッシュ113またはバスコントローラ114を経由した主メモリ13に対する一般的な仮想アドレスのリード・ライトを実行する(ステップB4〜ステップB10)。
また、図6は、仮想アドレスとレジスタファイル1112内の物理レジスタとの対応づけを解消する(フラッシュ)場合の手順を示すフローチャートである。
ページテーブル変更が発生した場合や、プログラムから明示的にフラッシュする旨の要求を受けた場合、コア112は、まず、仮想レジスタ変換表1121のエントリを選択するためのカウンタを初期化する(ステップC1)。次に、コア112は、カウンタを用いて仮想レジスタ変換表1121のエントリを選択し(ステップC2)、その選択したエントリの有効フラグが有効かどうかを調べる(ステップC3)。
もし、有効フラグが有効であれば(ステップC3のYES)、コア112は、そのエントリに記録された物理レジスタ番号に対応するレジスタファイル1112内の物理レジスタからのリード処理を実行する(ステップC4)。そして、コア112は、その読み出したデータを、当該エントリに記録された仮想アドレスに書き込むライト処理を実行し(ステップC5)、当該エントリの有効フラグをクリアする(ステップC6)。
コア112は、仮想レジスタ変換表1121のエントリを選択するためのカウンタを更新し(ステップC7)、この更新後のカウンタの値が仮想レジスタ変換表1121のエントリ数に達していたら(ステップC8のNO)、この処理を終了する。
以上のように、本コンピュータは、メモリに対するアクセス処理を物理レジスタに対するアクセス処理に置き換える仕組みを備えることにより、資源の有効利用と共にプロセッサの性能向上を図ることを実現する。また、レジスタファイル1112内に保持される物理レジスタの数を増加させるといった、演算リソースを増強したプロセッサが登場した場合には、プログラムを修正することなく、増強された分の演算リソースが自動的に利用されることになる。
(第2実施形態)
次に、この発明の第2実施形態について説明する。
図7に、本実施形態で用いる仮想レジスタ変換表1121の構成例を示す。前述の第1実施形態においては、仮想アドレスに対応づけるレジスタファイル1112内の物理レジスタの情報として物理レジスタ番号を記録していたが、本実施形態では、物理レジスタ番号に代えて仮想的な汎用レジスタ番号を用いる。
前述のように、本コンピュータは、命令セットアーキテクチャとして32ビットの汎用レジスタが8本(R0,R1,…R7)規定される。そこで、例えば仮想レジスタ変換表1121のエントリ数を4とした場合、汎用レジスタR0〜R7に加えて、汎用レジスタR8〜R11を命令セットアーキテクチャ外で仮想的に規定し、仮想レジスタ変換表1121の各インデックスをこの仮想的な汎用レジスタR8〜R11と見なす。
こうすることで、第1に、図8に示すように、この仮想的な汎用レジスタ(R8〜R11)も、リネーム/アロケート部1113によるレジスタリネーミング機能の処理対象とすることができ、さらにパフォーマンスを向上させることができる。
また、第2に、仮想レジスタ変換表1121のインデックスが仮想レジスタの汎用レジスタ番号と1対1に対応するため、仮想レジスタ変換表1121のインデックス数を増加させることにより、命令セットアーキテクチャを変更することなく、実質的な汎用レジスタ数を拡張することが可能となる。
(第3実施形態)
次に、この発明の第3実施形態を説明する。
前述の第1実施形態および第2実施形態では、各コア112において、タスクスイッチが発生した時点で、メモリアクセスのレジスタアクセスへの置き換え処理が解除され、それ以後、タスクが再開された場合でもパフォーマンスは向上しない。
そこで、本実施形態のコンピュータでは、OS100が、ディスパッチャ101によるタスクスイッチを発生させた際、図9に示すように、そのコア112の仮想レジスタ変換表1121の内容を主メモリ13に退避させ、タスク再開時に、当該退避させた内容を仮想レジスタ変換表1121に復帰する処理を行うことで、パフォーマンスの向上を持続させることを可能とする。
ところで、前述した各実施形態では、レジスタファイル1112内の物理レジスタをデータキャッシュとして用いることで、プロセッサの性能向上を図る例を説明したが、これによって逆にレジスタリネーミング時のレジスタ不足を招いてしまうといったリソースの枯渇を確実に防止するために、このメモリアクセスからレジスタアクセスへ置き換える機能を作動させるか否かをユーザに設定させる仕組みを設けてもよい。例えば前述の本コンピュータの動作環境設定を行うためのセットアッププログラム150が、図10に示す画面をユーザに提示する機能を備え、この画面上での設定に応じて、各コア112がメモリアクセスからレジスタアクセスへ置き換える機能を作動させるか否かを判断する。
メモリアクセスからレジスタアクセスへ置き換える機能を作動させない設定となっている場合に、ある仮想アドレスをレジスタファイル1112内の物理レジスタにアサインする旨を要求をプログラムから受けた際、この要求を無視したとしても、データアクセスは内容的に矛盾無くメモリアクセスとして実行されるので問題はない。
このように、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
この発明の第1実施形態に係る情報処理装置(コンピュータ)の構成例を示す図 同第1実施形態のコンピュータが搭載するマルチコアプロセッサの構成を示す図 同第1実施形態のコンピュータが搭載するマルチコアプロセッサの各コアが備える仮想レジスタ変換表の構成例を示す図 同第1実施形態のコンピュータが仮想アドレスをレジスタファイル内の物理レジスタに対応づける(アサイン)場合の手順を示すフローチャート 同第1実施形態のコンピュータが仮想アドレスに対するリードまたはライトを行う場合の手順を示すフローチャート 同第1実施形態のコンピュータが仮想アドレスとレジスタファイル内の物理レジスタとの対応づけを解消する(フラッシュ)場合の手順を示すフローチャート 同第2実施形態のコンピュータが搭載するマルチコアプロセッサの各コアが備える仮想レジスタ変換表の構成例を示す図 同第2実施形態のコンピュータがレジスタリネーミングによって仮想的な汎用レジスタをレジスタファイル内の物理レジスタに割り当てる様子を表した図 同第3実施形態のコンピュータがタスクスイッチ時に仮想レジスタ変換表の内容を切り換える様子を表した図 同第1乃至第3実施形態のコンピュータがメモリアクセスからレジスタアクセスへ置き換える機能を作動させるか否かをユーザに設定させるために提示する画面を例示する図
符号の説明
11…マルチコアプロセッサ、12…ノースブリッジ、13…主メモリ、14…グラフィックスコントローラ、14A…VRAM、15…LCD、16…サウスブリッジ、17…BIOS−ROM、18…HDD、19…サウンドコントローラ、20…スピーカ、21…エンベデッドコントローラ/キーボードコントローラ(EC/KBC)、22…キーボード、23…タッチパッド、24…電源回路、25…バッテリ、26…PCIデバイス、100…オペレーティングシステム(OS)、101…ディスパッチャ、111…統合演算ユニット、112…コア、113…2次キャッシュ、114…バスコントローラ、150…セットアッププログラム、1111…演算器、1112…レジスタファイル、1113…リネーム/アロケート部、1121…仮想レジスタ変換表、1122…1次データキャッシュ、1123…命令デコーダ、1124…1次命令キャッシュ。

Claims (9)

  1. 命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルと、
    前記レジスタファイル内の物理レジスタに対する汎用レジスタの割り当てを動的に制御するレジスタリネーミング手段と、
    プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理する手段であって、仮想アドレスを前記命令セットアーキテクチャ外で仮想的に規定される汎用レジスタに割り当て、当該仮想アドレスと仮想的に規定される汎用レジスタとの対応関係を前記仮想レジスタ変換表に記録して管理し、前記レジスタファイル内の物理レジスタに対する仮想アドレスの割り当てを、前記仮想的に定義される汎用レジスタを介在させることによって前記レジスタリネーミング手段に実行させる仮想レジスタアサイン手段と、
    アクセス対象の仮想アドレスが前記仮想レジスタアサイン手段により管理される前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行するアクセス変換手段と、
    を有するプロセッサを具備する情報処理装置。
  2. 前記プロセッサ上でタスクスイッチが発生した場合、前記仮想レジスタ変換表に記録されている物理レジスタからデータを読み出し、前記仮想レジスタ変換表によって対応関係が記録されている仮想アドレスに書き出す仮想レジスタフラッシュ手段をさらに具備する請求項1記載の情報処理装置。
  3. メモリと、
    前記プロセッサ上でタスクスイッチが発生した場合、スイッチ前のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容を前記メモリに退避させ、前記メモリに退避させていたスイッチ後のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容を前記仮想レジスタ変換表上に復元するスイッチング手段と、
    をさらに具備する請求項1または2記載の情報処理装置。
  4. 前記プロセッサは、複数の命令処理部を有し、1つの前記レジスタファイルを前記複数の命令処理部で共用する請求項1記載の情報処理装置。
  5. 前記仮想レジスタアサイン手段および前記アクセス変換手段の作動有無を設定する設定手段をさらに具備する請求項1記載の情報処理装置。
  6. 命令セットアーキテクチャで規定される汎用レジスタが割り当てられる物理レジスタを保持するレジスタファイルと、前記レジスタファイル内の物理レジスタに対する汎用レジスタの割り当てを動的に制御するレジスタリネーミング手段とを有するプロセッサを搭載する情報処理装置のデータアクセス制御方法であって、
    プログラムからの要求に基づき、メインメモリ空間中の仮想アドレスを前記レジスタファイル内の物理レジスタに割り当て、当該仮想アドレスと物理レジスタとの対応関係を仮想レジスタ変換表に記録して管理すべく、仮想アドレスを前記命令セットアーキテクチャ外で仮想的に規定される汎用レジスタに割り当て、当該仮想アドレスと仮想的に規定される汎用レジスタとの対応関係を前記仮想レジスタ変換表に記録して管理し、前記レジスタファイル内の物理アドレスに対する仮想アドレスの割り当てを、前記仮想的に定義される汎用レジスタを介在させることによって前記レジスタリネーミング手段に実行させ、
    アクセス対象の仮想アドレスが前記仮想レジスタ変換表に記録されているか否かを判定し、記録されていた場合、前記仮想レジスタ変換表によって対応関係が記録されている物理レジスタに対して当該アクセス処理を実行する、
    ータアクセス制御方法。
  7. 前記プロセッサ上でタスクスイッチが発生した場合、前記仮想レジスタ変換表に記録されている物理レジスタからデータを読み出し、前記仮想レジスタ変換表によって対応関係が記録されている仮想アドレスに書き出す、
    求項記載のデータアクセス制御方法。
  8. 前記プロセッサ上でタスクスイッチが発生した場合、スイッチ前のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容をメモリに退避させ、前記メモリに退避させていたスイッチ後のタスクによるアクセス処理で用いる前記仮想レジスタ変換表の内容を前記仮想レジスタ変換表上に復元する、
    求項6または7記載のデータアクセス制御方法。
  9. 前記仮想レジスタ変換表の管理および前記仮想レジスタ変換表に基づく前記物理レジスタに対するアクセス処理の実行の作動有無を設定する請求項記載のデータアクセス制御方法。
JP2007114316A 2007-04-24 2007-04-24 情報処理装置およびアクセス制御方法 Active JP5085180B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007114316A JP5085180B2 (ja) 2007-04-24 2007-04-24 情報処理装置およびアクセス制御方法
US12/075,220 US7971026B2 (en) 2007-04-24 2008-03-10 Information processing apparatus and access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007114316A JP5085180B2 (ja) 2007-04-24 2007-04-24 情報処理装置およびアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2008269474A JP2008269474A (ja) 2008-11-06
JP5085180B2 true JP5085180B2 (ja) 2012-11-28

Family

ID=39888413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007114316A Active JP5085180B2 (ja) 2007-04-24 2007-04-24 情報処理装置およびアクセス制御方法

Country Status (2)

Country Link
US (1) US7971026B2 (ja)
JP (1) JP5085180B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122205B2 (en) * 2009-02-20 2012-02-21 Standard Microsystems Corporation Structured virtual registers for embedded controller devices
US8336056B1 (en) * 2009-12-22 2012-12-18 Gadir Omar M A Multi-threaded system for data management
JP2012088909A (ja) * 2010-10-19 2012-05-10 Tokyo Univ Of Agriculture & Technology 変換器及び変換方法
US10534614B2 (en) * 2012-06-08 2020-01-14 MIPS Tech, LLC Rescheduling threads using different cores in a multithreaded microprocessor having a shared register pool
JP5986543B2 (ja) 2013-07-19 2016-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation アーキテクチャレジスタの割り付け方法、割り付け装置及び割り付けプログラム
US10169039B2 (en) * 2015-04-24 2019-01-01 Optimum Semiconductor Technologies, Inc. Computer processor that implements pre-translation of virtual addresses
US10768935B2 (en) * 2015-10-29 2020-09-08 Intel Corporation Boosting local memory performance in processor graphics
US10884929B2 (en) 2017-09-19 2021-01-05 International Business Machines Corporation Set table of contents (TOC) register instruction
US10620955B2 (en) 2017-09-19 2020-04-14 International Business Machines Corporation Predicting a table of contents pointer value responsive to branching to a subroutine
US10705973B2 (en) 2017-09-19 2020-07-07 International Business Machines Corporation Initializing a data structure for use in predicting table of contents pointer values
US10896030B2 (en) 2017-09-19 2021-01-19 International Business Machines Corporation Code generation relating to providing table of contents pointer values
US11061575B2 (en) * 2017-09-19 2021-07-13 International Business Machines Corporation Read-only table of contents register
US10713050B2 (en) 2017-09-19 2020-07-14 International Business Machines Corporation Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions
US10725918B2 (en) 2017-09-19 2020-07-28 International Business Machines Corporation Table of contents cache entry having a pointer for a range of addresses
US10635417B2 (en) * 2018-06-12 2020-04-28 Intel Corporation Techniques for compiler sheltered non-volatile memory stores

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
JPH0812636B2 (ja) * 1986-12-24 1996-02-07 株式会社東芝 仮想記憶制御方式の計算機システム
JP2658397B2 (ja) * 1989-06-13 1997-09-30 日本電気株式会社 マルチプロセッサシステム
JP3006204B2 (ja) * 1991-09-13 2000-02-07 松下電器産業株式会社 情報処理装置
JP2000194554A (ja) * 1998-12-25 2000-07-14 Nec Corp 演算処理装置
US6591359B1 (en) * 1998-12-31 2003-07-08 Intel Corporation Speculative renaming of data-processor registers
JP2000298652A (ja) 1999-04-14 2000-10-24 Mitsubishi Electric Corp マルチプロセッサ
JP2001147822A (ja) * 1999-11-19 2001-05-29 Matsushita Electric Ind Co Ltd リアルタイムモニタ
US6766435B1 (en) * 2000-05-31 2004-07-20 Hewlett-Packard Development Company, L.P. Processor with a general register set that includes address translation registers
US6925547B2 (en) * 2000-12-14 2005-08-02 Silicon Graphics, Inc. Remote address translation in a multiprocessor system
JP2003345589A (ja) 2002-05-23 2003-12-05 Nec Corp 情報処理装置
US8108870B2 (en) * 2004-01-29 2012-01-31 Klingman Edwin E Intelligent memory device having ASCII-named task registers mapped to addresses of a task
JP2006195598A (ja) 2005-01-12 2006-07-27 Matsushita Electric Ind Co Ltd リアルタイム処理システム

Also Published As

Publication number Publication date
US7971026B2 (en) 2011-06-28
JP2008269474A (ja) 2008-11-06
US20080270736A1 (en) 2008-10-30

Similar Documents

Publication Publication Date Title
JP5085180B2 (ja) 情報処理装置およびアクセス制御方法
JP5241737B2 (ja) プロセッサ・システムにおいて命令レベルでのリソース割り当ての識別を可能にする方法および装置
US9442851B2 (en) Multi-core processor system, control program, and control method
US20170123996A1 (en) Direct Mapped Files in Virtual Address-Backed Virtual Machines
US7757034B1 (en) Expansion of virtualized physical memory of virtual machine
US20080235477A1 (en) Coherent data mover
JP2009537053A (ja) 仮想化されたトランザクショナルメモリのグローバルオーバーフロー方法
JP2008077144A (ja) 仮想化システム、メモリ管理方法及び制御プログラム
CN1831790A (zh) 虚拟机环境中的客机物理地址虚拟化方法和系统
JP2007183952A (ja) ゲストがメモリ変換されたデバイスにアクセスする方法及び装置
JP5063152B2 (ja) 代替ページのプールを使用してdma書込みページ障害をコンピュータにより管理するための方法、装置、及びコンピュータ・プログラム
US11188365B2 (en) Memory overcommit by speculative fault
US20110296428A1 (en) Register allocation to threads
KR20110094764A (ko) 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
KR20130079865A (ko) 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US20130073779A1 (en) Dynamic memory reconfiguration to delay performance overhead
US10228859B2 (en) Efficiency in active memory sharing
JP7325437B2 (ja) リソースインデックス置換を実施するデバイス及びプロセッサ
JP2011204077A (ja) 情報処理装置、リソース割り当て方法、およびリソース割り当てプログラム
JP5699665B2 (ja) サーバ装置、処理実行方法およびプログラム
US20120054773A1 (en) Processor support for secure device driver architecture
US9251100B2 (en) Bitmap locking using a nodal lock
WO2018169645A1 (en) Systems and methods for providing power-efficient file system operation to a non-volatile block memory
WO2012101538A1 (en) Emulation of strongly ordered memory models
US20140244942A1 (en) Affinity group access to global data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120807

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120905

R151 Written notification of patent or utility model registration

Ref document number: 5085180

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313121

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350