JP2011513808A - 変換例外修飾子を用いる動的アドレス変換 - Google Patents
変換例外修飾子を用いる動的アドレス変換 Download PDFInfo
- Publication number
- JP2011513808A JP2011513808A JP2010547162A JP2010547162A JP2011513808A JP 2011513808 A JP2011513808 A JP 2011513808A JP 2010547162 A JP2010547162 A JP 2010547162A JP 2010547162 A JP2010547162 A JP 2010547162A JP 2011513808 A JP2011513808 A JP 2011513808A
- Authority
- JP
- Japan
- Prior art keywords
- address
- exception
- translation
- host
- bit
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】一実施形態では、変換すべき仮想アドレスと、変換テーブルの階層の変換テーブルの初期オリジン・アドレスとが得られる。仮想アドレスの動的アドレス変換が進行する。動的アドレス変換中に発生した変換割込みに応答して、ビットが変換例外修飾子(TXQ)フィールド内に格納され、例外が、ホスト・プログラムを実行中に発生したホストDAT例外、またはゲスト・プログラムを実行中に発生したホストDAT例外のどちらかであったことが示される。TXQはさらに、例外がゲスト・ページ・フレーム実アドレスまたはゲスト・セグメント・フレーム絶対アドレスから導出されたホスト仮想アドレスに関連付けられたことを示すことができる。TXQはさらに、ゲスト・フレームを支持するのに、より大きいまたは小さいホスト・フレーム・サイズが好ましいことを示すことができる。
【選択図】図7
Description
拡張動的アドレス変換(DAT)機構の例示的実施形態が提供される。拡張DAT機構がインストールされ、動作可能となるとき、DAT変換は、セグメント・テーブル・エントリ内のセグメント・テーブル・エントリ(STE)フォーマット制御で決定されるページ・フレーム実アドレスまたはセグメント・フレーム絶対アドレスを生成することができる。本明細書では、「拡張DAT(EDAT)が適用される」という術語は、以下のすべてが真であることを意味する。1)EDAT機構がインストールされること、2)制御レジスタ0(CR0)ビット40を介してEDAT機構が動作可能となること、および3)アドレスがDATテーブル・エントリによって変換されること。
・DAT保護ビットが領域テーブル・エントリに追加され、セグメント・テーブル・エントリおよびページ・テーブル・エントリ内のDAT保護ビットに類似の機能が提供される。
・STEフォーマット制御がセグメント・テーブル・エントリに追加される。STEフォーマット制御が0であるとき、DATは、ページ・テーブル・エントリ内の変更記録オーバーライドが変更ビットの設定をページのために迂回することができるかどうかを示すことを除いて、現在定義されている通りに進行する。
・STEフォーマット制御が1であるとき、セグメント・テーブル・エントリは以下も含む。
・1メガバイト・ブロックの絶対ストレージ位置を指定する(ページ・テーブル・オリジンではなく)セグメント・フレーム絶対アドレス。
・セグメントの個々のストレージ・キー内の対応するビットの代わりに任意選択で使用することのできるアクセス制御ビットおよびフェッチ保護ビット。
・セグメント・テーブル・エントリ内のアクセス制御ビットおよびフェッチ保護ビットの有効性を判定するビット。
・変更ビットの設定をセグメントの個々のストレージ・キーで迂回することができるかどうかを示す変更記録オーバーライド。
・DAT例外割込みが発生したときに変換例外修飾子(TXQ)が格納され、例外が発生した実行環境(ホストまたはゲスト)、および変換中であったアドレスのソースに関する詳細が提供される。
エミュレート化システムは、ホスト・アーキテクチャと解釈実行機能のどちらも提供することのできるコンピュータ・システムをエミュレートするエミュレータ・プログラムを含む。エミュレート化システム・メモリは、ホストとページ可能ゲストのどちらも含むことができる。エミュレート化ホスト・アーキテクチャ内で動作中のホスト・プログラムは、ゲスト・プログラムのStart Interpretive Executionでよく、次いでゲスト・プログラムは、解釈実行機構のエミュレーション下で動作することができる。ページ可能ゲストを実行するための解釈実行機構およびStartInterpretive Execution(SIE)命令の一例が、参照によりその全体が本明細書に組み込まれる"IBM(R) System/370Extended Architecture", IBM(R) Pub. No. SA22-7095 (1985)で説明されている。
一実施形態では、CPUのプログラム命令機能は、通信バスを介して複数のレジスタと通信する。通信バスは、CPUの内部または外部でよい。あるレジスタは読取り専用でよい。他のハードウェアまたはソフトウェアあるいはその両方も、CPUでアクセス可能なレジスタのうちの1つまたは複数に読取り/書込みすることができる。命令演算コード(命令コード)は、何らかの特定の機械語命令操作でどのタイプのレジスタを使用すべきかを決定する。
命令は、16個の汎用レジスタのうちの1つまたは複数の中の情報を指定することができる。汎用レジスタは、アドレス計算でベース・アドレス・レジスタおよび索引レジスタとして使用することができ、一般算術演算および論理演算でアキュムレータとして使用することができる。各レジスタは64ビット位置を含む。汎用レジスタは、番号0〜15で識別され、命令内の4ビットRフィールドで指定される。ある命令は、いくつかのRフィールドを有することによって複数の汎用レジスタをアドレス指定することを実現する。ある命令では、特定の汎用レジスタの使用が、命令のRフィールドで明示的に指定されるのではなく、暗示される。
制御レジスタは、プログラム・ステータス・ワードの外部で制御情報を維持および操作することを実現する。CPUは、64ビット位置をそれぞれ有する16個の制御レジスタを有する。レジスタ内のビット位置は、プログラム・イベント記録などのシステム内の特定の機構に割り当てられ、演算を行うことができることを示すのに使用され、または機構で必要とされる特別な情報を提供するのに使用される。制御レジスタは、番号0〜15で識別され、命令LOAD CONTROLおよびSTORE CONTROLで4ビットRフィールドで指定される。こうした命令で複数の制御レジスタをアドレス指定することができる。
制御レジスタ1は1次アドレス空間制御要素(PASCE)を含む。一実施形態では、制御レジスタ1は、レジスタ内の実空間制御ビット(R)に応じて、以下の2つのフォーマットのうちの一方を有する。
1次領域テーブルまたはセグメント・テーブル・オリジン:制御レジスタ1内の1次領域テーブルまたはセグメント・テーブル指定のビット0〜51の右側に12個の0を付加したものが、1次領域テーブルまたはセグメント・テーブルの先頭を指定する64ビット・アドレスを形成する。アドレスが実アドレスか、それとも絶対アドレスかは予測不能である。このテーブルは、1次アドレス空間内の仮想アドレスを変換するのに使用されるので、1次領域テーブルまたはセグメント・テーブルと呼ばれる。
制御レジスタ7は2次アドレス空間制御要素(SASCE)を含む。一実施形態では、制御レジスタ7は、レジスタ内の実空間制御ビット(R)に応じて、以下の2つのフォーマットの一方を有する。
制御レジスタ13はホーム・アドレス空間制御要素(HASCE)を含む。一実施形態では、制御レジスタ13は、レジスタ内の実空間制御ビット(R)に応じて、以下の2つのフォーマットの一方を有する。
CPUは、0〜15と番号が付けられる16個のアクセス・レジスタを有する。アクセス・レジスタは、ASCEの間接指定を含む32ビット位置からなる。ASCEは、対応するアドレス空間に対する参照を変換する動的アドレス変換(DAT)機構で使用されるパラメータである。CPUがアクセス・レジスタ・モードと呼ばれるモードにあるとき(プログラム・ステータス・ワード内のビットで制御される)、ストレージ・オペランド参照に関する論理アドレスを指定するのに使用される命令Bフィールドが、アクセス・レジスタを指定し、アクセス・レジスタで指定されるASCEが、参照を行うためにDATで使用される。ある命令では、Rフィールドが、Bフィールドの代わりに使用される。アクセス・レジスタの内容をロードおよび格納し、あるアクセス・レジスタから別のアクセス・レジスタに内容を移動する命令が提供される。
プログラム・ステータス・ワードは、命令アドレス、条件コード、および命令順序付けを制御し、CPUの状態を判定するのに使用される他の情報を含む。アクティブなプログラム・ステータス・ワード、または制御中のプログラム・ステータス・ワードは、現プログラム・ステータス・ワードと呼ばれる。現プログラム・ステータス・ワードは、現在実行中のプログラムを管理する。
CPU内の現プログラム・ステータス・ワードは、現在アクティブなプログラムの実行のために必要な情報を含む。プログラム・ステータス・ワードは、長さ128ビットであり、命令アドレス、条件コード、および他の制御フィールドを含む。一般には、プログラム・ステータス・ワードは、命令順序付けを制御し、現在実行中のプログラムに関するCPUのステータスの多くを保持および指示するのに使用される。追加の制御およびステータス情報が制御レジスタ内に含まれ、ストレージ位置が永続的に割り当てられる。CPUのステータスは、新しいプログラム・ステータス・ワードまたはプログラム・ステータス・ワードの一部をロードすることによって変更することができる。
主ストレージをアドレス指定するために、絶対アドレス、実アドレス、および仮想アドレスという3つの基本的なタイプのアドレスが認識される。アドレスは、ストレージ・アクセス中にアドレスに適用される変換に基づいて区別される。アドレス変換は、仮想アドレスを実アドレスに変換する。プレフィックス変換は、実アドレスを絶対アドレスに変換する。3つの基本アドレス・タイプに加えて、命令および現モードに応じて、3つの基本タイプのうちのいずれかとして扱われる追加のタイプが定義される。
絶対アドレスは、主ストレージ位置に割り当てられるアドレスである。絶対アドレスは、それに対してどんな変換も実施されないストレージ・アクセスのために使用される。構成内のチャネル・サブシステムおよびすべてのCPUは、同じ絶対アドレスを使用することによって共有主ストレージ位置を参照する。利用可能な主ストレージには通常、0から始まる連続する絶対アドレスが割り当てられ、整数境界上に完全な4キロバイト・ブロックとしてアドレスが割り当てられる。物理位置に割り当てられていないブロックで絶対アドレスを使用する試行が行われるときに、例外が認識される。あるモデルでは、オペレータが絶対アドレスと物理位置との対応を変更することを可能にするストレージ再構成制御を提供することができる。しかし、任意の1時点で、物理位置は、複数の絶対アドレスとは関連付けられない。その絶対アドレスに従って順序付けられたバイト位置からなるストレージは、絶対ストレージと呼ばれる。
実アドレスは、実ストレージ内の位置を特定する。主ストレージにアクセスするために実アドレスが使用されるとき、実アドレスがプレフィックス変換によって変換され、絶対アドレスが形成される。任意の瞬間に、構成内の各CPUについて1つの実アドレス−絶対アドレス・マッピングが存在する。主ストレージにアクセスするために実アドレスがCPUで使用されるとき、プレフィックス変換によって実アドレスを絶対アドレスに変換することができる。この特定の変換は、CPUに関するプレフィックス・レジスタ内の値で定義される。その実アドレスに従って順序付けられたバイト位置からなるストレージは、実ストレージと呼ばれる。
仮想アドレスは、仮想ストレージ内の位置を特定する。主ストレージにアクセスするために仮想アドレスが使用されるとき、仮想アドレスが、動的アドレス変換により、プレフィックス変換の対象となる可能性のある実アドレスに変換されて絶対アドレスが形成され、または直接的に絶対アドレスに変換される。
1次仮想アドレスは、1次アドレス空間制御要素(PASCE)によって変換すべき仮想アドレスである。論理アドレスは、1次空間モードにあるとき、1次仮想アドレスとして扱われる。命令アドレスは、1次空間モード、2次空間モード、またはアクセス・レジスタ・モードにあるとき、1次仮想アドレスとして扱われる。MOVE TO PRIMARYの第1オペランド・アドレスおよびMOVE TO SECONDARYの第2オペランド・アドレスが、1次仮想アドレスとして扱われる。さらに、ページ可能ゲストが実行中のとき、ゲストが絶対ストレージとみなす主ストレージ(メモリ)が、ホストの1次アドレス空間内で表現され、すなわち、ゲスト絶対アドレスがホスト1次仮想アドレスとして扱われる。
2次仮想アドレスは、2次アドレス空間制御要素(SASCE)によって変換すべき仮想アドレスである。論理アドレスは、2次空間モードにあるとき、2次仮想アドレスとして扱われる。MOVE TO PRIMARYの第2オペランド・アドレスおよびMOVE TO SECONDARYの第1オペランド・アドレスが、2次仮想アドレスとして扱われる。
AR指定仮想アドレスは、アクセス・レジスタ指定アドレス空間制御要素によって変換すべき仮想アドレスである。論理アドレスは、アクセス・レジスタ・モードにあるとき、AR指定アドレスとして扱われる。
ホーム仮想アドレスは、ホーム・アドレス空間制御要素(HASCE)によって変換すべき仮想アドレスである。論理アドレスおよび命令アドレスは、ホーム空間モードにあるとき、ホーム仮想アドレスとして扱われる。
ストレージから命令をフェッチするのに使用されるアドレスは、命令アドレスと呼ばれる。命令アドレスは、実モードでは実アドレスとして扱われ、1次空間モード、2次空間モード、またはアクセス・レジスタ・モードでは1次仮想アドレスとして扱われ、ホーム空間モードではホーム仮想アドレスとして扱われる。現プログラム・ステータス・ワード内の命令アドレスおよびEXECUTEのターゲット・アドレスは、命令アドレスである。
ある状況では、「有効アドレス」という用語を用いることが便利である。有効アドレスは、動的アドレス変換またはプレフィックス変換による任意の変換が実施される前に存在するアドレスである。有効アドレスは、レジスタ内に直接的に指定することができ、またはアドレス計算の結果として得ることができる。アドレス計算は、ベースおよび変位の追加、またはベース、索引、および変位の追加である。
プレフィックス変換は、実アドレスの範囲0〜8191を各CPUについての絶対ストレージ内の異なるブロックに割り当てる能力を提供し、したがって、主ストレージを共有する複数のCPUが、特に割込みの処理で、干渉を最小限に抑えて同時に動作することが可能となる。プレフィックス変換は、範囲0〜8191内の実アドレスを、CPUに関するプレフィックス・レジスタのビット位置0〜50内の値で識別される8Kバイト絶対アドレスのブロック(プレフィックス・エリア)に1対1に対応させ、プレフィックス・レジスタ内のその値で識別される実アドレスのブロックを、絶対アドレス0〜8191に1対1に対応させる。残りの実アドレスは、対応する絶対アドレスと同じである。この変換により、各CPUが、最初の8Kバイト、および他のCPUのプレフィックス・レジスタで指定される位置を含む主ストレージのすべてにアクセスすることが可能となる。
1.アドレスのビット0〜50がすべて0である場合、アドレスのビット0〜50がプレフィックスのビット0〜50で置き換えられる。
2.アドレスのビット0〜50がプレフィックスのビット0〜50に等しい場合、アドレスのビット0〜50が0で置き換えられる。
3.アドレスのビット0〜50がすべてが0ではなく、プレフィックスのビット0〜50に等しくない場合、アドレスのビット0〜50は不変のままである。
実アドレスと絶対アドレスとの関係は、以下のように図式で示される。
アドレス空間は、整数の連続するシーケンス(仮想アドレス)と、各数をストレージ内のバイト位置と関連付けることを可能にする特定の変換パラメータである。シーケンスは0で始まり、左から右に進む。
動的アドレス変換は、(例えばストレージ参照中に)仮想アドレスを対応するメイン・メモリ・アドレス(実施形態では実アドレスまたは絶対アドレス)に変換するプロセスである。仮想アドレスは、1次仮想アドレス、2次仮想アドレス、アクセス・レジスタ指定仮想アドレス、またはホーム仮想アドレスでよい。こうしたアドレスは、それぞれPASCE、SASCE、AR指定ASCE、またはHASCEによって変換される。適切なASCEの選択後、変換プロセスは、4つのタイプの仮想アドレスのすべてについて同一である。
有効アドレスは、動的アドレス変換またはプレフィックス変換による任意の変換が実施される前に存在するアドレス(仮想アドレス)である。動的アドレス変換を制御するプログラム・ステータス・ワード内の3つのビットは、DATモード・ビットであるビット5、ならびにアドレス空間制御ビットであるビット16および17である。DATモード・ビットが0であるとき、DATはオフであり、CPUは実モードにある。DATモード・ビットが1であるとき、DATはオンであり、CPUは、アドレス空間制御ビットで指定される変換モードにある。2進数00が1次空間モードを示し、2進数01がアクセス・レジスタ・モードを示し、2進数10が2次空間モードを示し、2進数11がホーム空間モードを示す。様々なモードを、各モードでのアドレスの処理と共に以下に示す。
次に図3を参照すると、仮想アドレスの動的アドレス変換のための有効アドレス空間制御要素(ASCE)を求めるのにプログラム・ステータス・ワードがどのように使用されるかについての一実施形態が示されている。ASCEは、例えば2ギガバイト(ギガ=230)アドレス空間を指定することができる。あるいは、ASCEは、例えば4テラバイト(テラ=240)、8ペタバイト(ペタ=250)、または16エクサバイト(エクサ=260)アドレス空間を指定することができる。あるいは、ASCEは、実空間指定を指定することができる。実空間指定により、仮想アドレスが、1つまたは複数のアドレス変換テーブルを参照することなくストレージ内の実アドレスとして処理される。
仮想アドレスの変換は、変換テーブルの階層の複数の変換テーブルを参照して、実アドレスまたは絶対アドレスを得ることを含むことがある。実アドレスはさらに、絶対アドレスを形成するためのプレフィックス変換操作の対象となることがある。仮想アドレスは、変換テーブルの階層内の変換テーブル内のエントリに対する索引を含む。したがって、仮想アドレスは4つの基本フィールドに分割される。ビット0〜32は領域索引(RX)と呼ばれ、ビット33〜43はセグメント索引(SX)と呼ばれ、ビット44〜51はページ索引(PX)と呼ばれ、ビット52〜63はバイト索引(BX)と呼ばれる。一実施形態では、仮想アドレスは以下のフォーマットを有する。
次に図4を参照すると、図3で求めた有効なASCEを使用して、仮想アドレスの変換で使用される変換テーブルの階層内の第1変換テーブルを求める一実施形態が示されている。
変換で使用される変換テーブルの階層内の様々な変換テーブル・エントリの実施形態は以下の通りである。
「領域テーブル・エントリ」という用語は、領域第1テーブル・エントリ、領域第2テーブル・エントリ、または領域第3テーブル・エントリを意味する。領域第1テーブル、領域第2テーブル、および領域第3テーブルからフェッチされるエントリが、以下のフォーマットを有する。エントリを含むテーブルのレベル(第1、第2、または第3)は、エントリ内のテーブル・タイプ(TT)ビットで識別される。
拡張DATが適用されないとき、または拡張DATが適用され、セグメント・テーブル・エントリのビット53であるSTEフォーマット制御が0であるとき、一実施形態では、セグメント・テーブルからフェッチされるエントリが、以下のフォーマットを有する。
ページ・テーブル・オリジン:拡張DATが適用されないとき、または拡張DATが適用されるが、セグメント・テーブル・エントリのビット53であるSTEフォーマット制御が0であるとき、ビット0〜52の右側に11個の0を付加することにより、ページ・テーブルの先頭を指定する64ビット・アドレスが形成される。アドレスが実アドレスであるか、それとも絶対アドレスであるかは予測不能である。
・FCビットが0であるとき、エントリのビット0〜52がページ・テーブル・オリジンを形成し、ビット55が予約される。
・FCビットが1であるとき、エントリのビット0〜43がセグメント・フレーム絶対アドレスを形成し、ビット47はACCF有効性制御であり、ビット48〜51はアクセス制御ビットであり、ビット52はフェッチ保護ビットであり、ビット55は変更記録オーバーライドである。拡張DATが適用されないとき、ビット53は無視される。
・拡張DATが適用されないとき、ビット54は、変換で使用されるページ・テーブル・エントリ内のDAT保護ビットとORされるものとして扱われる。
・拡張DATが適用されるとき、変換で使用される任意のすべての領域テーブル・エントリ内のDAT保護ビットは、セグメント・テーブル・エントリ内のDAT保護ビットとORされるものとして扱われる。STEフォーマット制御が0であるとき、STE内のDAT保護ビットはさらに、ページ・テーブル・エントリ内のDAT保護ビットとORされるものとして扱われる。
・ビットが0であるとき、セグメント・テーブル・エントリを使用することによってアドレス変換が進行する。
・ビットが1であるとき、セグメント・テーブル・エントリを変換のために使用することができない。
・0はプライベート・セグメントを特定する。この場合、セグメント・テーブル・エントリが常駐するセグメント・テーブルを指定するセグメント・テーブル・オリジンに従って、セグメント・テーブル・エントリおよびセグメント・テーブル・エントリが指定する任意のページ・テーブルを使用することができるだけである。
・1は共通セグメントを特定する。この場合、異なるセグメント・テーブルが指定されるとしても、セグメント索引に対応するアドレスを変換するために、セグメント・テーブル・エントリおよびセグメント・テーブル・エントリが指定する任意のページ・テーブルを引き続き使用することができる。
一実施形態では、ページ・テーブルからフェッチされるエントリが、以下のフォーマットを有する。
ページ・フレーム実アドレス(PFRA):ビット0〜51が、実ストレージ・アドレスの左端ビットを与える。これらのビットが仮想アドレスの12ビット・バイト索引フィールドの右側に連結されるとき、64ビット実アドレスが得られる。
・変換で使用されるセグメント・テーブル・エントリ内でDAT保護ビットが0となる。
・拡張DATが適用されるとき、変換で使用されるすべての領域テーブル・エントリ内でDAT保護ビットは0となる。
・他の保護機構。
本節は、主ストレージにアクセスするために仮想アドレスが使用される前に暗黙的に実施される変換プロセスを説明する。
有効なASCEのビット60〜61のDT制御は、以下のように、ASCEのテーブル指定タイプと、指定のテーブルによって変換すべき仮想アドレスの部分のどちらも指定する。
・拡張DATが適用されないとき、または拡張DATが適用されるが、STEフォーマット制御が0であるとき、セグメント・テーブルからフェッチされるエントリが、対応するページ・テーブルの先頭を指定し、以下の「ページ・テーブル・ルックアップ」で説明するように処理が続行される。
・拡張DATが適用され、STEフォーマット制御が1であるとき、セグメント・テーブルからフェッチされるエントリが、セグメント・フレーム絶対アドレスの左端ビットを含む。変換で使用される何らかの領域テーブル・エントリ内、またはセグメント・テーブル・エントリ内でDAT保護ビットが1であり、変換を実施中のストレージ参照がストアである場合、保護例外が認識される。
有効なASCEが領域テーブル指定であるとき、先行するセクションで説明したように領域テーブル・エントリが選択される。次いで、選択されたエントリの内容と、仮想アドレスの次の索引部分とが使用されて、次の下位レベル・テーブル名のエントリが選択され、次の下位レベル・テーブルは、別の領域テーブルまたはセグメント・テーブルでよい。ASCEによって選択されたテーブル・エントリが領域第1テーブル・エントリであるとき、仮想アドレスの領域第2索引部分が、領域第1テーブル・エントリ内に含まれる領域第2テーブル・オリジンと共に使用され、領域第2テーブルからエントリが選択される。実ストレージまたは絶対ストレージ内の領域第2テーブル・エントリの64ビット・アドレスが、領域第1テーブル・エントリのビット0〜51の右側に12個の0を付加すること、および右端に3つの0を付加し、左端に50個の0を付加した領域第2索引を加えることによって得られる。
・拡張DATが適用されないとき、または拡張DATが適用されるが、STEフォーマット制御が0であるとき、セグメント・テーブルからフェッチされるエントリが、対応するページ・テーブルの先頭を指定し、以下の「ページ・テーブル・ルックアップ」で説明するように処理が続行される。
・拡張DATが適用され、STEフォーマット制御が1であるとき、セグメント・テーブルからフェッチされるエントリが、セグメント・フレーム絶対アドレスの左端ビットを含む。変換で使用される何らかの領域テーブル・エントリ内、またはセグメント・テーブル・エントリ内でDAT保護ビットが1であり、変換を実施中のストレージ参照がストアである場合、保護例外が認識される。
拡張DATが適用されないとき、または拡張DATが適用されるが、STEフォーマット制御が0であるとき、仮想アドレスのページ索引部分が、セグメント・テーブル・エントリ内に含まれるページ・テーブル・オリジンと共に使用され、ページ・テーブルからエントリが選択される。
有効なASCEが実空間指定であるとき、仮想アドレスのビット0〜63が、実ストレージ・アドレスとして直接的に使用される。実アドレスにさらにプレフィックス変換を施して、絶対アドレスを形成することができる。有効なASCEが実空間指定ではなく、変換プロセスで例外に直面しないとき、以下の条件が適用される。
・拡張DATが適用されないとき、または拡張DATが適用されるが、STEフォーマット制御が0であるとき、ページ・フレーム実アドレスがページ・テーブル・エントリから得られる。ページ・フレーム実アドレスと仮想アドレスのバイト索引部分とが連結され、ページ・フレーム実アドレスが左端部を形成する。その結果は、仮想アドレスに対応する実ストレージ・アドレスである。実アドレスにさらにプレフィックス変換を施し、絶対アドレスを形成することができる。
・拡張DATが適用され、STEフォーマット制御が1であるとき、セグメント・フレーム絶対アドレスと、仮想アドレスのページ索引部分およびバイト索引部分とが、それぞれ左から右に連結され、仮想アドレスに対応する絶対アドレスが形成される。
無効とマークされたテーブル・エントリ、あるいは無効アドレス無効フォーマットを含むテーブル・エントリにより、変換プロセス中に例外が認識されることがある。例外は、テーブル・エントリ内に含まれる情報が変換のために使用され、誤っていると判明したときに認識される。
If ((DT < 3 AND RFX != 0) OR (DT < 2AND (RFX || RSX) != 0) OR (DT < 1 AND RX != 0)) then asce_type_exception();
変換例外修飾子に関して、「拡張DATが適用されるとき」という語句は、変換例外が提示されるレベル(ホストまたはゲスト)に関する。例えば、拡張DATがホスト・レベルに適用されるときにはいつでも、拡張DATがゲスト・レベルで適用されるか否かに関わらず、TXQがホスト変換例外上で提示される。
・0−例外が、現在実行中の構成で引き起こされた(すなわち、ゲスト実行中にゲストDAT例外が提示され、またはホスト実行中にホストDAT例外が提示される)。
・1−例外が、以下で列挙されるもの以外のゲスト・アドレスから導出されたホスト仮想アドレスと関連付けられた。
・2−例外が、ゲスト・ページ・フレーム実アドレスから導出されたホスト仮想アドレスと関連付けられた。
・3−例外が、ゲスト・セグメント・フレーム絶対アドレスから導出されたホスト仮想アドレスと関連付けられた。
・4〜7予約済み。
上述のように、ページ可能ゲストの実行中、2つのレベルのDATが実施される。ゲスト仮想アドレスが、ゲストDAT、および適用可能なときはプレフィックス変換を介してゲスト絶対アドレスに変換され、次いでゲスト絶対アドレスは、ホスト1次アドレス空間内のホスト仮想アドレスとして扱われ、ホストDAT、および適用可能なときはプレフィックス変換を介してホスト絶対アドレスに変換される。ゲストDATプロセスの間、ホストDATおよび適用可能なときはプレフィックス変換を介してやはり変換しなければならないゲスト絶対アドレスを介して配置されるゲスト変換テーブル・エントリに対する参照が行われる。プロセスの結果、ゲスト・テーブル仕様および内容に基づくゲストDAT例外が発生する可能性があり、ゲスト・テーブル・エントリまたはゲスト変換の最終目標のための、ゲスト絶対アドレスに対する各参照により、ホストDAT例外が引き起こされる可能性がある。こうした例外のそれぞれについて適切なTXQを生成しなければならない。図8〜11は、ゲストDATプロセスを詳細に示し、図11〜13は、ホストDATプロセスを示す。
次に図8を参照すると、ゲスト・セグメント・テーブル・エントリからフォーマット制御フィールドを得る地点に対するゲスト動的アドレス変換の一実施形態の流れ図が示されている。
次に図9を参照すると、ゲストSTEフォーマット制御が0であるときの、図8のノード630からの流れ図の続きが示されている。
次に図10を参照すると、ゲストSTEフォーマット制御が1であるときの、図8のノード632からの流れ図の続きが示されている。
次に図11を参照すると、ホスト・セグメント・テーブル・エントリからフォーマット制御フィールドを得るために、ゲストEDATプロセスから起動することのできる、ホスト・レベルでのホスト動的アドレス変換の一実施形態の流れ図が示されている。
次に図12を参照すると、ホストSTEフォーマット制御が0であるときの、図11のノード928からの流れ図の続きが示されている。
次に図13を参照すると、ホストSTEフォーマット制御が1であるときの、図11のノード930からの流れ図の続きが示されている。
本明細書ではIBM(R)によるz/Architecture(R)に言及したが、本発明の1つまたは複数の態様は、ページ可能エンティティまたは類似の構成を使用する他のマシン・アーキテクチャまたはコンピューティング環境あるいはその両方に同等に適用可能である。
本明細書で説明した様々な実施形態は、単なる例に過ぎない。本発明の精神から逸脱することなく、こうした実施形態に対する多数の変形形態が存在することがある。
Claims (15)
- 仮想アドレスをコンピュータ・システム内の主ストレージ内のデータのブロックの変換後アドレスに変換することのできる動的アドレス変換機構内の変換例外を修飾する方法であって、
変換すべき仮想アドレスを得ること、
前記仮想アドレスを主ストレージ内のデータの所望のブロックの実アドレスまたは絶対アドレスに動的に変換すること、および
前記仮想アドレスの動的アドレス変換中に発生した変換例外割込みイベントに応答して、
前記変換例外が、ホスト・プログラムを実行中に発生したホストDAT例外と、ゲスト・プログラムを実行中に発生したホストDAT例外の一方であったことを示すビットを変換例外修飾子内に格納すること
を含む方法。 - 前記変換例外が、前記ゲスト・プログラムを実行中に発生したゲストDAT例外であったことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項1に記載の方法。
- 前記ホストDAT例外が、ゲスト・リーフ・テーブル・エントリから導出されたアドレスに関係したことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項1または2に記載の方法。
- 前記ホストDAT例外が、ゲスト・ページ・フレーム実アドレスから導出されたアドレスに関係したことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項1、2、または3に記載の方法。
- 前記ホストDAT例外が、ゲスト・セグメント・フレーム絶対アドレスから導出されたアドレスに関係したことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項1、2、3、または4に記載の方法。
- 前記ホストDAT例外が関係するゲスト・フレームのサイズ、および前記ゲスト・フレームを支持するために割り振るべきホスト・フレームのサイズのいずれかを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項1ないし5のいずれか一項に記載の方法。
- 仮想アドレスをコンピュータ・システム内の主ストレージ内のデータのブロックの変換後アドレスに変換することのできる動的アドレス変換機構内の変換例外を修飾するシステムであって、
仮想アドレスの、前記主ストレージ内のデータの所望のブロックの実アドレスまたは絶対アドレスへの動的アドレス変換のために使用される機械語命令と変換テーブルの階層とを格納することのできるコンピュータ・メモリと、
前記コンピュータ・メモリと通信するプロセッサであって、前記メモリ内に格納された変換テーブルの前記階層にアクセスすることができ、
変換すべき仮想アドレスを得ること、
前記仮想アドレスを主ストレージ内のデータの所望のブロックの実アドレスまたは絶対アドレスに動的に変換すること、および
前記仮想アドレスの動的アドレス変換中に発生した変換例外割込みイベントに応答して、
前記変換例外が、ホスト・プログラムを実行中に発生したホストDAT例外と、ゲスト・プログラムを実行中に発生したホストDAT例外の一方であったことを示すビットを変換例外修飾子内に格納すること
を含む方法を実施するプロセッサと
を備えるシステム。 - 前記変換例外が、前記ゲスト・プログラムを実行中に発生したゲストDAT例外であったことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項7に記載のシステム。
- 前記ホストDAT例外が、ゲスト・リーフ・テーブル・エントリから導出されたアドレスに関係したことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項7または8に記載のシステム。
- 前記ホストDAT例外が、ゲスト・ページ・フレーム実アドレスから導出されたアドレスに関係したことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項7、8、または9に記載のシステム。
- 前記ホストDAT例外が、ゲスト・セグメント・フレーム絶対アドレスから導出されたアドレスに関係したことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項7、8、9、または10に記載のシステム。
- 前記ホストDAT例外が関係するゲスト・フレームのサイズを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項7ないし11のいずれか一項に記載のシステム。
- 前記ゲスト・フレームを支持するために割り振るべきホスト・フレームのサイズを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項7ないし12のいずれか一項に記載のシステム。
- 仮想アドレスをコンピュータ・システム内の主ストレージ内のデータのブロックの変換後アドレスに変換することのできる動的アドレス変換機構内の変換例外を修飾するコンピュータ・プログラムであって、
前記コンピュータ・システムで実行されることにより、前記コンピュータ・システムに、
変換すべき仮想アドレスを得ること、
前記仮想アドレスを主ストレージ内のデータの所望のブロックの実アドレスまたは絶対アドレスに動的に変換すること、および
前記仮想アドレスの動的アドレス変換中に発生した変換例外割込みイベントに応答して、
前記変換例外が、ホスト・プログラムを実行中に発生したホストDAT例外と、ゲスト・プログラムを実行中に発生したホストDAT例外の一方であったことを示すビットを変換例外修飾子内に格納すること
を実施させる
コンピュータ・プログラム。 - 前記変換例外が、前記ゲスト・プログラムを実行中に発生したゲストDAT例外であったことを示すビットを前記変換例外修飾子内に格納することをさらに含む請求項14に記載のコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/037,268 US8095773B2 (en) | 2008-02-26 | 2008-02-26 | Dynamic address translation with translation exception qualifier |
US12/037,268 | 2008-02-26 | ||
PCT/EP2009/051864 WO2009106457A1 (en) | 2008-02-26 | 2009-02-17 | Dynamic address translation with translation exception qualifier |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011513808A true JP2011513808A (ja) | 2011-04-28 |
JP2011513808A5 JP2011513808A5 (ja) | 2012-08-02 |
JP5079104B2 JP5079104B2 (ja) | 2012-11-21 |
Family
ID=40626591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010547162A Active JP5079104B2 (ja) | 2008-02-26 | 2009-02-17 | 変換例外修飾子を用いる動的アドレス変換 |
Country Status (13)
Country | Link |
---|---|
US (6) | US8095773B2 (ja) |
EP (1) | EP2248025B1 (ja) |
JP (1) | JP5079104B2 (ja) |
KR (1) | KR101174583B1 (ja) |
CN (1) | CN101960432B (ja) |
AT (1) | ATE551652T1 (ja) |
CY (1) | CY1112693T1 (ja) |
DK (1) | DK2248025T3 (ja) |
ES (1) | ES2381432T3 (ja) |
PL (1) | PL2248025T3 (ja) |
PT (1) | PT2248025E (ja) |
SI (1) | SI2248025T1 (ja) |
WO (1) | WO2009106457A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017513113A (ja) * | 2014-03-18 | 2017-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 選択されたアーキテクチャ・ファシリティと関連した処理の管理 |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037278B2 (en) * | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
US8335906B2 (en) * | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
US8103851B2 (en) * | 2008-01-11 | 2012-01-24 | International Business Machines Corporation | Dynamic address translation with translation table entry format control for indentifying format of the translation table entry |
US8041922B2 (en) * | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
US8019964B2 (en) * | 2008-01-11 | 2011-09-13 | International Buisness Machines Corporation | Dynamic address translation with DAT protection |
US8082405B2 (en) * | 2008-01-11 | 2011-12-20 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
US8677098B2 (en) | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8417916B2 (en) * | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
US8086811B2 (en) | 2008-02-25 | 2011-12-27 | International Business Machines Corporation | Optimizations of a perform frame management function issued by pageable guests |
US8176279B2 (en) | 2008-02-25 | 2012-05-08 | International Business Machines Corporation | Managing use of storage by multiple pageable guests of a computing environment |
US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
US10248453B2 (en) | 2012-10-23 | 2019-04-02 | Red Hat Israel, Ltd. | Client live migration for a virtual machine |
US10445229B1 (en) | 2013-01-28 | 2019-10-15 | Radian Memory Systems, Inc. | Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US20160062911A1 (en) * | 2014-08-27 | 2016-03-03 | Advanced Micro Devices, Inc. | Routing direct memory access requests in a virtualized computing environment |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
EP3274824B1 (en) * | 2015-03-27 | 2021-03-17 | Intel Corporation | Efficient address translation |
WO2016162720A1 (en) * | 2015-04-10 | 2016-10-13 | Google Inc. | Binary translation into native client |
KR102023668B1 (ko) * | 2015-04-10 | 2019-09-20 | 구글 엘엘씨 | 공유된 객체 레벨에 대한 이진 트랜슬레이션 |
JP6441171B2 (ja) * | 2015-06-12 | 2018-12-19 | 東芝メモリ株式会社 | メモリシステム |
US9658837B1 (en) * | 2015-11-06 | 2017-05-23 | Sentry Insurance a Mutual Company | Integration of independent platforms |
US9424155B1 (en) | 2016-01-27 | 2016-08-23 | International Business Machines Corporation | Use efficiency of platform memory resources through firmware managed I/O translation table paging |
US11150928B2 (en) * | 2016-06-08 | 2021-10-19 | Red Hat Israel, Ltd. | Hypervisor translation bypass |
US10241924B2 (en) | 2016-07-18 | 2019-03-26 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation using an array of tags |
US10168902B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing purging of structures associated with address translation |
US10248573B2 (en) | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Managing memory used to back address translation structures |
US10180909B2 (en) | 2016-07-18 | 2019-01-15 | International Business Machines Corporation | Host-based resetting of active use of guest page table indicators |
US10169243B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation |
US10223281B2 (en) | 2016-07-18 | 2019-03-05 | International Business Machines Corporation | Increasing the scope of local purges of structures associated with address translation |
US10176006B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Delaying purging of structures associated with address translation |
US10162764B2 (en) | 2016-07-18 | 2018-12-25 | International Business Machines Corporation | Marking page table/page status table entries to indicate memory used to back address translation structures |
US10282305B2 (en) | 2016-07-18 | 2019-05-07 | International Business Machines Corporation | Selective purging of entries of structures associated with address translation in a virtualized environment |
US10176110B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
US10176111B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Host page management using active guest page table indicators |
US10802986B2 (en) | 2016-07-18 | 2020-10-13 | International Business Machines Corporation | Marking to indicate memory used to back address translation structures |
US9798597B1 (en) | 2016-09-26 | 2017-10-24 | International Business Machines Corporation | Verifying selective purging of entries from translation look-aside buffers |
SG11201903311XA (en) * | 2016-11-09 | 2019-05-30 | Mediatek Inc | Enhanced multimedia call control in next generation mobile communication systems |
US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
US10698836B2 (en) | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
US10606762B2 (en) | 2017-06-16 | 2020-03-31 | International Business Machines Corporation | Sharing virtual and real translations in a virtual cache |
US11469953B2 (en) | 2017-09-27 | 2022-10-11 | Intel Corporation | Interworking of legacy appliances in virtualized networks |
WO2019079960A1 (en) * | 2017-10-24 | 2019-05-02 | Intel Corporation | MATERIAL ASSISTED VIRTUAL SWITCH |
US10387325B2 (en) * | 2017-11-28 | 2019-08-20 | International Business Machines Corporation | Dynamic address translation for a virtual machine |
US11029991B2 (en) * | 2019-03-08 | 2021-06-08 | International Business Machines Corporation | Dispatch of a secure virtual machine |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63308644A (ja) * | 1987-06-10 | 1988-12-16 | Fujitsu Ltd | 割込み処理制御方式 |
JPH01125640A (ja) * | 1987-11-11 | 1989-05-18 | Hitachi Ltd | アドレス変換方式 |
US20040024953A1 (en) * | 1999-02-17 | 2004-02-05 | Elbrus International | Method of using a plurality of virtual memory spaces for providing efficient binary compatibility between a plurality of source architectures and a single target architecture |
JP2004110812A (ja) * | 2002-09-17 | 2004-04-08 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US669043A (en) * | 1900-08-20 | 1901-02-26 | Adolph K Cross | Concentrating apparatus. |
US4669043A (en) | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
US4972338A (en) | 1985-06-13 | 1990-11-20 | Intel Corporation | Memory management for microprocessor system |
JP2693770B2 (ja) | 1987-10-26 | 1997-12-24 | 株式会社トプコン | レーザービーム走査式眼底観察装置 |
US5008811A (en) | 1988-02-10 | 1991-04-16 | International Business Machines Corp. | Control mechanism for zero-origin data spaces |
US5058003A (en) | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
JPH02235640A (ja) | 1989-03-08 | 1990-09-18 | Seiko Instr Inc | ビデオインターフェース回路 |
US5617554A (en) | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
JPH0695898A (ja) * | 1992-09-16 | 1994-04-08 | Hitachi Ltd | 仮想計算機の制御方法および仮想計算機システム |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
US5845331A (en) | 1994-09-28 | 1998-12-01 | Massachusetts Institute Of Technology | Memory system including guarded pointers |
JP3500751B2 (ja) | 1995-01-20 | 2004-02-23 | ソニー株式会社 | 画像信号処理装置及び撮像装置 |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US6463582B1 (en) | 1998-10-21 | 2002-10-08 | Fujitsu Limited | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
DE10002120B4 (de) | 1999-02-13 | 2006-04-20 | International Business Machines Corp. | Adressumsetzpufferanordnung und Verfahren für den Betrieb einer Adressumsetzpufferanordnung |
US6574706B2 (en) | 2001-02-28 | 2003-06-03 | International Business Machines Corporation | Managing unvirtualized data pages in real storage |
US6985951B2 (en) | 2001-03-08 | 2006-01-10 | International Business Machines Corporation | Inter-partition message passing method, system and program product for managing workload in a partitioned processing environment |
US7321026B2 (en) * | 2001-06-27 | 2008-01-22 | Skytech Technology Limited | Framework-patched immunoglobulins |
US7299243B2 (en) | 2001-09-19 | 2007-11-20 | Bmc Software, Inc. | System and method for controlling free space distribution by key range within a database |
US6801993B2 (en) * | 2001-09-28 | 2004-10-05 | International Business Machines Corporation | Table offset for shortening translation tables from their beginnings |
US7120746B2 (en) | 2002-09-09 | 2006-10-10 | International Business Machines Corporation | Technique for data transfer |
US7197585B2 (en) | 2002-09-30 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing the execution of a broadcast instruction on a guest processor |
US7703097B2 (en) | 2002-11-15 | 2010-04-20 | International Business Machines Corporation | Auto-commit processing in an IMS batch application |
US7073042B2 (en) * | 2002-12-12 | 2006-07-04 | Intel Corporation | Reclaiming existing fields in address translation data structures to extend control over memory accesses |
US7111145B1 (en) * | 2003-03-25 | 2006-09-19 | Vmware, Inc. | TLB miss fault handler and method for accessing multiple page tables |
US6996698B2 (en) | 2003-05-12 | 2006-02-07 | International Business Machines Corporation | Blocking processing restrictions based on addresses |
US7284100B2 (en) | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
US7020761B2 (en) | 2003-05-12 | 2006-03-28 | International Business Machines Corporation | Blocking processing restrictions based on page indices |
US7530067B2 (en) | 2003-05-12 | 2009-05-05 | International Business Machines Corporation | Filtering processor requests based on identifiers |
DE60311462T2 (de) | 2003-09-19 | 2008-01-03 | Sun Microsystems, Inc., Santa Clara | Verfahren und Vorrichtung zur Protokollverarbeitung in Computersystemen unter Verwendung der Übersetzung von Speicheradressen |
US7234037B2 (en) | 2003-11-25 | 2007-06-19 | International Business Machines Corporation | Memory mapped Input/Output operations |
US8214622B2 (en) | 2004-05-27 | 2012-07-03 | International Business Machines Corporation | Facilitating management of storage of a pageable mode virtual environment absent intervention of a host of the environment |
US7941799B2 (en) | 2004-05-27 | 2011-05-10 | International Business Machines Corporation | Interpreting I/O operation requests from pageable guests without host intervention |
EP1783615A4 (en) | 2004-07-23 | 2009-10-28 | Sharp Kk | STORAGE, STORAGE, AND IMAGE DISPLAY |
US8843727B2 (en) | 2004-09-30 | 2014-09-23 | Intel Corporation | Performance enhancement of address translation using translation tables covering large address spaces |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
US7428626B2 (en) * | 2005-03-08 | 2008-09-23 | Microsoft Corporation | Method and system for a second level address translation in a virtual machine environment |
US8387049B2 (en) | 2005-07-15 | 2013-02-26 | International Business Machines Corporation | Facilitating processing within computing environments supporting pageable guests |
US7464249B2 (en) | 2005-07-26 | 2008-12-09 | International Business Machines Corporation | System and method for alias mapping of address space |
JP2007122305A (ja) * | 2005-10-27 | 2007-05-17 | Hitachi Ltd | 仮想計算機システム |
JP4469783B2 (ja) | 2005-11-28 | 2010-05-26 | 株式会社東芝 | メモリ保護装置、メモリ保護システムおよびメモリ保護方法 |
US7596654B1 (en) * | 2006-01-26 | 2009-09-29 | Symantec Operating Corporation | Virtual machine spanning multiple computers |
US8032897B2 (en) * | 2007-07-31 | 2011-10-04 | Globalfoundries Inc. | Placing virtual machine monitor (VMM) code in guest context to speed memory mapped input/output virtualization |
US8335906B2 (en) | 2008-01-11 | 2012-12-18 | International Business Machines Corporation | Perform frame management function instruction for clearing blocks of main storage |
US20090182732A1 (en) | 2008-01-11 | 2009-07-16 | Jianwei Dian | Query based operation realization interface |
US8041922B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Enhanced dynamic address translation with load real address function |
US8037278B2 (en) | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
US8019964B2 (en) | 2008-01-11 | 2011-09-13 | International Buisness Machines Corporation | Dynamic address translation with DAT protection |
US8677098B2 (en) | 2008-01-11 | 2014-03-18 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8151083B2 (en) | 2008-01-11 | 2012-04-03 | International Business Machines Corporation | Dynamic address translation with frame management |
US8412700B2 (en) | 2008-01-11 | 2013-04-02 | International Business Machines Corporation | Database query optimization using index carryover to subset an index |
US8117417B2 (en) | 2008-01-11 | 2012-02-14 | International Business Machines Corporation | Dynamic address translation with change record override |
US8103851B2 (en) | 2008-01-11 | 2012-01-24 | International Business Machines Corporation | Dynamic address translation with translation table entry format control for indentifying format of the translation table entry |
US8417916B2 (en) | 2008-01-11 | 2013-04-09 | International Business Machines Corporation | Perform frame management function instruction for setting storage keys and clearing blocks of main storage |
US8041923B2 (en) | 2008-01-11 | 2011-10-18 | International Business Machines Corporation | Load page table entry address instruction execution based on an address translation format control field |
US8082405B2 (en) | 2008-01-11 | 2011-12-20 | International Business Machines Corporation | Dynamic address translation with fetch protection |
US8775441B2 (en) | 2008-01-16 | 2014-07-08 | Ab Initio Technology Llc | Managing an archive for approximate string matching |
US8095773B2 (en) | 2008-02-26 | 2012-01-10 | International Business Machines Corporation | Dynamic address translation with translation exception qualifier |
-
2008
- 2008-02-26 US US12/037,268 patent/US8095773B2/en active Active
-
2009
- 2009-02-17 PT PT09714687T patent/PT2248025E/pt unknown
- 2009-02-17 DK DK09714687.2T patent/DK2248025T3/da active
- 2009-02-17 JP JP2010547162A patent/JP5079104B2/ja active Active
- 2009-02-17 KR KR1020107017234A patent/KR101174583B1/ko active IP Right Grant
- 2009-02-17 ES ES09714687T patent/ES2381432T3/es active Active
- 2009-02-17 CN CN200980106284XA patent/CN101960432B/zh active Active
- 2009-02-17 EP EP09714687A patent/EP2248025B1/en active Active
- 2009-02-17 SI SI200930238T patent/SI2248025T1/sl unknown
- 2009-02-17 WO PCT/EP2009/051864 patent/WO2009106457A1/en active Application Filing
- 2009-02-17 AT AT09714687T patent/ATE551652T1/de active
- 2009-02-17 PL PL09714687T patent/PL2248025T3/pl unknown
-
2011
- 2011-12-06 US US13/312,079 patent/US8683176B2/en active Active
-
2012
- 2012-04-20 CY CY20121100374T patent/CY1112693T1/el unknown
-
2014
- 2014-02-27 US US14/191,516 patent/US9092351B2/en active Active
-
2015
- 2015-07-27 US US14/809,350 patent/US10078585B2/en active Active
-
2017
- 2017-07-10 US US15/645,819 patent/US10241910B2/en active Active
-
2019
- 2019-03-19 US US16/357,719 patent/US11074180B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63308644A (ja) * | 1987-06-10 | 1988-12-16 | Fujitsu Ltd | 割込み処理制御方式 |
JPH01125640A (ja) * | 1987-11-11 | 1989-05-18 | Hitachi Ltd | アドレス変換方式 |
US20040024953A1 (en) * | 1999-02-17 | 2004-02-05 | Elbrus International | Method of using a plurality of virtual memory spaces for providing efficient binary compatibility between a plurality of source architectures and a single target architecture |
JP2004110812A (ja) * | 2002-09-17 | 2004-04-08 | Internatl Business Mach Corp <Ibm> | マルチプロセッサ・ホスト上でのマルチプロセッサ・アドレス変換の効率のよいエミュレーションのための方法およびシステム |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017513113A (ja) * | 2014-03-18 | 2017-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 選択されたアーキテクチャ・ファシリティと関連した処理の管理 |
US10747582B2 (en) | 2014-03-18 | 2020-08-18 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US10747583B2 (en) | 2014-03-18 | 2020-08-18 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
Also Published As
Publication number | Publication date |
---|---|
CY1112693T1 (el) | 2016-02-10 |
ES2381432T8 (es) | 2012-06-27 |
ATE551652T1 (de) | 2012-04-15 |
US20140181360A1 (en) | 2014-06-26 |
US20120084488A1 (en) | 2012-04-05 |
PT2248025E (pt) | 2012-05-10 |
US11074180B2 (en) | 2021-07-27 |
US10241910B2 (en) | 2019-03-26 |
CN101960432A (zh) | 2011-01-26 |
US20190213126A1 (en) | 2019-07-11 |
JP5079104B2 (ja) | 2012-11-21 |
EP2248025A1 (en) | 2010-11-10 |
DK2248025T3 (da) | 2012-05-07 |
ES2381432T3 (es) | 2012-05-28 |
US9092351B2 (en) | 2015-07-28 |
US20090216992A1 (en) | 2009-08-27 |
KR20100126286A (ko) | 2010-12-01 |
PL2248025T3 (pl) | 2012-11-30 |
US20150339226A1 (en) | 2015-11-26 |
US8683176B2 (en) | 2014-03-25 |
US20180081800A9 (en) | 2018-03-22 |
WO2009106457A1 (en) | 2009-09-03 |
US8095773B2 (en) | 2012-01-10 |
US10078585B2 (en) | 2018-09-18 |
EP2248025B1 (en) | 2012-03-28 |
CN101960432B (zh) | 2012-10-10 |
KR101174583B1 (ko) | 2012-08-16 |
US20170315910A1 (en) | 2017-11-02 |
SI2248025T1 (sl) | 2012-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5079104B2 (ja) | 変換例外修飾子を用いる動的アドレス変換 | |
US10977190B2 (en) | Dynamic address translation with access control in an emulator environment | |
JP5602638B2 (ja) | フォーマット制御を有する動的アドレス変換 | |
JP4815539B2 (ja) | フレーム管理を有する動的アドレス変換 | |
US9158711B2 (en) | Creating a program product or system for executing a perform frame management instruction | |
US9003134B2 (en) | Emulation of a dynamic address translation with change record override on a machine of another architecture | |
US20140181463A1 (en) | Dynamic Address Translation with Translation Table Entry Format Control for Identifying Format of the Translation Table Entry | |
WO2009087135A1 (en) | Dynamic address translation with dat protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111212 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120618 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20120618 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20120627 |
|
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: 20120828 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150907 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5079104 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |