JP5052678B2 - コンピュータを動作させる方法及びシステム - Google Patents
コンピュータを動作させる方法及びシステム Download PDFInfo
- Publication number
- JP5052678B2 JP5052678B2 JP2010541775A JP2010541775A JP5052678B2 JP 5052678 B2 JP5052678 B2 JP 5052678B2 JP 2010541775 A JP2010541775 A JP 2010541775A JP 2010541775 A JP2010541775 A JP 2010541775A JP 5052678 B2 JP5052678 B2 JP 5052678B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- instruction
- address
- bit
- register
- 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
Links
Images
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
Description
キテクチャ化インターフェースを含む、エミュレートされたプロセッサ1のアーキテクチャによって識別されるリソースを提供し、オペレーティング・システム又はエミュレートされたプロセッサ上で実行するように設計されたアプリケーション・プログラムが、エミュレーション・ソフトウェアを有するネイティブ・プロセッサ上に実行できるようにしなければならない。
method」という名称の特許文献5、Eric Trautによる「Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions」という名称の特許文献6その他多くのものを含む、種々のソフトウェア及びハードウェア・エミュレーションの特許は、当業者が利用可能なターゲット・マシンのための異なるマシンのために設計された命令形式のエミュレーションを達成するための様々な既知の方法、並びに、上記で参照されたものにより使用される市販のソフトウェア技術を示す。
(Complex Instruction Set Computing、複合命令セット・コンピューティング)命令は、典型的には可変長である。IBM z/Architectureの命令は、2バイト、4バイト、又は6バイトの長さを有するCISC命令である。例えば、コンテキスト・スイッチの操作又は分岐命令の分岐成立(Branch taken)操作により、プログラム・カウンタ311が変更される。コンテキスト・スイッチ操作において、現行のプログラム・カウンタ値は、実行されるプログラムについての他の状態情報(条件コードのような)と共にプログラム状況ワード(PSW)に保存され、実行される新しいプログラム・モジュールの命令を指し示す新しいプログラム・カウンタ値がロードされる。分岐成立操作を行ない、分岐命令の結果をプログラム・カウンタ311にロードすることによって、プログラムが判断を下すこと又はプログラム内でループすることが可能になる。
コンピュータ・システムは、主ストレージ内の情報、並びに、アドレッシング、保護、参照、及び変更の記録を含む。アドレッシングの幾つかの態様は、アドレスの形式、アドレス空間の概念、種々のタイプのアドレス、及び1つのタイプのアドレスを別のタイプのアドレスに変換する方法を含む。主ストレージの一部は、永続的に割り当てられたストレージ場所を含む。主ストレージは、システムに、データの直接アドレス指定可能な高速アクセス・ストレージを与える。データ及びプログラムの両方は、これらを処理できるようになる前に、(入力装置から)主ストレージにロードしなければならない。
モデルは、キャッシュラインのサイズをバイトで返す、EXTRACT CACHE ATTRIBUTE命令を提供することができる。モデルはまた、データ又は命令キャッシュへのストレージのプリフェッチ、或いは、キャッシュからのデータの解放に影響を与える、PREFETCH DATA及びPREFETCH DATA RELATIVE LONG命令を提供することができる。
ある。しかしながら、ビット数は、ストレージ・アドレスではない。バイトだけがアドレス指定することができる。ストレージ内のバイトの個々のビットに対して操作を行うためには、バイト全体にアクセスする必要がある。1バイト内のビットは、左から右へ0から7までの番号が付けられる。1つのアドレス内のビットは、24ビット・アドレスの場合、8−31又は40−63の番号を付けることができ、或いは、31ビット・アドレスの場合、1−31又は33−63の番号を付けることができ、64ビット・アドレスの場合、0−63の番号が付けられる。複数バイトの他のいずれかの固定長形式において、形式を構成するビットには、連続的に0から始まる番号が付けられる。エラー検出及び好ましくは訂正のために、各バイト又はバイトのグループと共に、1つ又は複数のチェックビットを伝送することができる。このようなチェックビットは、マシンによって自動的に生成され、プログラムにより直接制御することはできない。ストレージ容量は、バイト数で表現される。ストレージ−オペランド・フィールドの長さが命令のオペレーション・コードによって暗示されるとき、フィールドは固定長を有すると言われ、固定長は1バイト、2バイト、4バイト、8バイト、又は16バイトとすることができる。一部の命令については、より大きなフィールドが暗示されることがある。ストレージ−オペランド・フィールドの長さは暗示されず明示的に記述されているときには、フィールドは可変長を有すると言われる。可変長オペランドの長さは、1バイトのインクリメントにより変えることができる。情報がストレージ内に置かれるとき、ストレージへの物理パスの幅がストアされるフィールドの長さを上回り得るとしても、指定されたフィールド内に含まれるバイト位置の内容のみが置き換えられる。
典型的には、CPUの動作は、ストレージ・アドレスの昇順で1度に1つずつ左から右に連続的に実行される、ストレージ内の命令によって制御される。順次動作の変更は、分岐、LOAD PSW、割り込み、SIGNAL PROCESSORオーダー、又は手作業の介入によってもたらされ得る。
・実行される動作を指定するオペレーション・コード(オペコード)
・随意的に、関係するオペランドの指示
を含む。
簡略表記法を使用して完全なアドレスを指定すること、
汎用レジスタをオペランドとして用いる命令を用いて、アドレス操作を行うこと、
命令ストリームを変更することなく、プログラム手段によりアドレスを変更すること、
他のプログラムから受け取ったアドレスを直接用いて、データ域の記憶位置に関係なく操作を行なうこと、
が可能になる。
・RISは、レジスタ及び即値操作及びストレージ操作を示す。
・RRSは、レジスタ間操作及びストレージ操作を示す。
・SILは、16ビットの即値フィールドを有するストレージ及び即値操作を示す。
IMMEDIATE、及びMULTIPLY HALFWORD IMMEDIATE命令のRI形式では、命令の16ビットのI2フィールドの内容が、直接符号付き2進整数として使用され、R1フィールドは第1オペランドを指定し、その長さは、命令に応じて、32ビット又は64ビットである。命令TEST UNDER MASK(TMHH、TMHL、TMLH、TMLL)については、I2フィールドの内容はマスクとして使用され、R1フィールドは、64ビットの長さの第1オペランドを指定する。
・24ビット・アドレッシング・モードでは、どちらの命令も、汎用レジスタR1のビット位置40−63に戻りアドレスを入れ、そのレジスタのビット0−31は変わらないままである。BRANCH AND LINKは、汎用レジスタR1のビット位置32−39に、命令長コードと、現行PSWからの条件コード及びプログラム・マスクを入れる。
・31ビットのアドレッシング・モードで、どちらの命令も、汎用レジスタR1のビット位置33−63に戻りアドレスを入れ、ビット位置32に1を入れ、レジスタのビット0−31は変わらないままである。
・64ビット・アドレッシング・モードでは、どちらの命令も、汎用レジスタR1のビット位置0−63に戻りアドレスを入れる。
・どのアドレッシング・モードにおいても、どちらの命令も現行アドレッシング・モードの制御下で分岐アドレスを生成する。これらの命令は、分岐アドレスのビット0−63をPSWのビット位置64−127に入れる。RR形式では、命令のR2フィールドが0であるときは、どちらの命令も分岐を行なわない。
・BRANCH AND SAVE AND SET MODEは、汎用レジスタR1の内容をBRANCH AND SAVEの場合と同じに設定する。さらに、この命令は、拡張アドレッシング・モード・ビット、即ちPSWのビット31を、レジスタのビット位置63に入れる。
・BRANCH AND SET MODEは、R1が0以外のときは、以下のことを実行する。24ビット又は31ビット・モードでは、この命令は、PSWのビット32を汎用レジスタR1のビット位置32に入れ、レジスタのビット0−31及び33−63は変更しない。レジスタが命令アドレスを含む場合、レジスタのビット63は0でなければならないという点に留意されたい。64ビット・モードでは、この命令は、PSWのビット31(1つ)を汎用レジスタR1のビット位置63に入れ、レジスタのビット0−62は変更されないままである。
・R2が0以外のときは、どちらの命令も、以下のように、アドレッシング・モードを設定し、分岐を行なう。汎用レジスタR2のビット63が、PSWのビット位置31に入れられる。ビット63が0の場合は、レジスタのビット32がPSWのビット位置32に入れられる。ビット63が1の場合は、PSWのビット32は1に設定される。次いで、新しいアドレッシング・モードの制御下で、レジスタのビット63は0と見なされることを除いて、レジスタの内容に基づいて分岐アドレスが生成される。命令は、分岐アドレスのビット0−63をPSWのビット位置64−127に入れる。汎用レジスタR2のビット63は変更されないままなので、呼び出し先プログラムに入る時点で1になっていることがある。R2がR1と同じである場合は、指定された汎用レジスタ内の結果は、R1レジスタについて指定されている結果と同じになる。
割り込み機構により、CPUが、構成の外部、構成の内部、又はCPU自体の中の条件の結果として、自身の状態を変化させることが可能になる。優先順位の高い条件に迅速に応答し、条件のタイプを即時に認識できるようにために、割り込み条件は、6つのクラス、すなわち、外部、入力/出力、マシン・チェック、プログラム、再始動、及び監視プログラム呼び出しにグループ化される。
る。
1.PSWの未割り当てのビット位置(即ち、ビット位置0、2−4、24−30、又は33−63のいずれか)に1が導入される。これは、早期PSW指定例外として処理される。
2.PSWのビット位置12に1が導入される。これは、早期PSW指定例外として扱われる。
3.次のいずれかの理由によりPSWが無効である:a.PSWのビット31が1であり、ビット32が0である。b.PSWのビット31及び32が、24ビット・アドレッシング・モードを示す0であり、PSWのビット64−103が全て0ではない。c.PSWのビット31が0であり、ビット32が、31ビット・アドレッシング・モードを示す1であり、PSWのビット64−96が全て0ではない。これは、早期PSW指定例外として扱われる。
4.PSWが奇数の命令アドレスを含む。
5.こうした整数境界の指定を必要とする命令で、オペランド・アドレスが整数境界を指していない。
6.偶数番号のレジスタ指定を必要とする命令のRフィールドにより、奇数番号の汎用レジスタが指定される。
7.拡張オペランドに、0、1、4、5、8、9、12、又は13以外の浮動小数点レジスタが指定される。
8.10進数演算の乗数又は除数が、15桁の数字と符号を超えている。
9.10進数の乗算又は除算において、第1オペランド・フィールドの長さが、第2オペランド・フィールドの長さより短いか又はこれと等しい。
10.CIPHER MESSAGE、CIPHER MESSAGE WITH CHAINING、COMPUTE INTERMEDIATE MESSAGE DIGEST、COMPUTE LAST MESSAGE DIGEST、又はCOMPUTE
MESSAGE AUTHENTICATION CODEの命令が試みられ、汎用レジスタ0のビット57−63における機能コードは、未割り当ての又はインストールされていない機能コードを含む。
11.CIPHER MESSAGE又はCIPHER MESSAGE WITH CHAININGの実行が試みられ、R1又はR2フィールドは、奇数番号のレジスタ又は汎用レジスタ0を指示する。
12.CIPHER MESSAGE、CIPHER MESSAGE WITH CHAINING、COMPUTE INTERDIATE MESSAGE DIGEST、又はCOMPUTE MESSAGE AUTHENTICATION CODEの実行が試みられ、第2オペランドの長さは、指定された関数のデータ・ブロック・サイズの倍数ではない。クエリ関数には、この指定例外条件が適用されない。
13.COMPARE AND FORM CODEWORDの実行が試みられ、汎用レジスタ1、2、及び3は、最初に偶数値を含んでいない。
32.COMPARE AND SWAP AND STOREの実行が試みられ、次の条件のいずれかが存在する。:
・機能コードが、未割り当ての値を指定する。
・格納特性が、未割り当ての値を指定する。
・機能コードは0であり、第1オペランドはワード境界上に指定されない。
・機能コードは1であり、第1オペランドはダブルワード境界上に指定されない。
・第2オペランドは、格納値のサイズに対応する整数境界上に指定されない。
33.COMPARE LOGICAL LONG UNICODE又はMOVE LONG UNICODEの実行が試みられ、汎用レジスタR1+1又はR3+1の内容が、偶数のバイト数を指定しない。
34.COMPARE LOGICAL STRING、MOVE STRING、又はSEARCH STRINGの実行が試みられ、汎用レジスタ0のビット32−55が全て0ではない。
35.COMPRESSION CALLの実行が試みられ、汎用レジスタ0のビット48−51は、値0000及び0110−1111(2進数)のいずれかを有する。
36.COMPUTE INTERMEDIATE MESSAGE DIGEST、COMPUTE LAST MESSAGE DIGEST、又はCOMPUTE MESSAGE AUTHENTICATION CODEの実行が試みられ、次のいずれかが真である。:
・R2フィールドが、奇数番号のレジスタ又は汎用レジスタ0を指定する。
・汎用レジスタ0のビット56が0ではない。
37.CONVERT HFP TO BFP、CONVERT TO FIXED(BFP又はHFP)、又はLOAD FP INTEGER(BFP)の実行が試みられ、M3フィールドは有効な変更子を指定していない。
38.DIVIDE TO INTEGERの実行が試みられ、M4フィールドは有効な変更子を指定していない。
39.EXECUTEの実行が試みられ、ターゲット・アドレスは奇数である。
40.EXTRACT STACKED STATEの実行が試みられ、汎用レジスタR2のビット位置56−63のコードは、ASN及びLX再使用ファシリティがインストールされていない場合に4より大きく、或いは、このファシリティがインストールされている場合に5より大きい。
41.FIND LEFTMOST ONEの実行が試みられ、R1フィールドは、奇数番号のレジスタを指定する。
42.INVALIDATE DAT TABLE ENTRYの実行が試みられ、汎用レジスタR2のビット44−51は全てが0ではない。
43.LOAD FPCの実行が試みられ、FPCレジスタ内のサポートされていないビットに対応する第2オペランドの1又は複数のビットが1である。
44.LOAD PAGE−TABLE−ENTRY ADDRESSの実行が試みられ、命令のM4フィールドは0000−0100(2進数)以外のいずれかの値を含む。
45.LOAD PSWの実行が試みられ、第2オペランドのアドレスにおけるダブルワードのビット12が0である。この例外が認識されるかどうかは、モデルによって決まる。
46.MONITOR CALLの実行が試みられ、命令のビット位置8−11が0を含まない。
47.MOVE PAGEの実行が試みられ、汎用レジスタ0のビット位置48−51に0が含まれていないか、又は、レジスタのビット52及び53の両方とも1である。
48.PACK ASCIIの実行が試みられ、L2フィールドが31より大きい。
49.PACK UNICODEの実行が試みられ、L2フィールドが63より大きいか、又は偶数である。
50.PERFORM FLOATING POINT OPERATIONの実行が試みられ、汎用レジスタ0のビット32が0であり、ビット33−63の1つ又は複数のフィールドが無効であるか、又はインストールされていない機能を指定する。
51.PERFORM LOCKED OPERATIONの実行が試みられ、次のいずれかが真である。・汎用レジスタのTビット、即ちビット55が0であり、レジスタのビット56−63の機能コードが無効である。・汎用レジスタ0のビット32−54が全て0ではない。・アクセス・レジスタ・モードにおいて、ALETを含むパラメータ・リストを使用させる機能コードについて、R3フィールドが0である。
52.PERFORM TIMING FACILITY FUNCTIONの実行が試みられ、次のいずれかが真である。:・汎用レジスタ0のビット56が0ではない。・汎用レジスタ0のビット57−63が、未割り当ての又はインストールされていない機能コードを指定する。
53.PROGRAM TRANSFER又はPROGRAM TRANSFER WITH INSTANCEの実行が試みられ、次の全てが真である。:
・PSWの拡張アドレッシング・モード・ビットが0である。・命令のR2フィールドが示す汎用レジスタの基本アドレッシング・モード・ビット、即ちビット32が0である。・同じレジスタの命令アドレスのビット33−39が全て0ではない。
54.RESUME PROGRAMの実行が試みられ、次のいずれかが真である。:・現行PSW内に配置する場合、第2オペランドにおけるPSWフィールドのビット31、32及び64−127は有効ではない。次のいずれかが真である場合に、例外が認識される。:−ビット31及び32の両方とも0であり、ビット63−103が全て0ではない。−ビット31は0、ビット32は1であり、ビット64−96は全てが0ではない。−ビット31は1、ビット32は0である。−ビット127は1である。
・パラメータ・リストのビット0−12は全て0ではない。
55.SEARCH STRING UNICODEの実行が試みられ、汎用レジスタ0のビット32−47が全て0ではない。
56.SET ADDRESS SPACE CONTROL又はSET ADDRESS SPACE CONTROL FASTの実行が試みられ、第2オペランド・アドレスのビット52及び53が両方とも0ではない。
57.SET ADDRESSING MODE(SAM24)の実行が試みられ、PSW内の未更新の命令アドレスのビット0−39、PSWのビット64−103は全て0ではない。
58.SET ADDRESSING MODE(SAM31)の実行が試みられ、PSW内の未更新の命令アドレスのビット0−32、PSWのビット64−96は全て0ではない。
59.SET CLOCK PROGRAMMABLE FIELDの実行が試みられ、汎用レジスタ0のビット32−47は全て0ではない。
60.SET FPCの実行が試みられ、FPCレジスタ内のサポートされていないビットに対応する第1オペランドの1つ又は複数のビットが1である。
61.STORE SYSTEM INFORMATIONの実行が試みられ、汎用レジスタ0における機能コードが有効であり、次のいずれかが真である。:・汎用レジスタ0のビット36−55及び汎用レジスタ1のビット32−47が全て0ではない。・第2オペランド・アドレスが、4Kバイト境界上に境界合わせされない。
62.TRANSLATE TWO TO ONE又はTRANSLATE TWO TO TWOの実行が試みられ、汎用レジスタR1+1における長さが偶数のバイトを指定していない。
63.UNPACK ASCIIの実行が試みられ、L1フィールドが31より大きい。64.UNPACK UNICODEの実行が試みられ、L1フィールドが63より大きいか、又は偶数である。
65.UPDATE TREEの実行が試みられ、汎用レジスタ4及び5の最初の内容は、24ビット・アドレッシング・モード又は31ビット・アドレッシング・モードにおいて8の倍数ではない、又は、64ビット・アドレッシング・モードにおいて16の倍数ではない。旧PSWにより識別される命令の実行は抑止される。しかしながら、早期PSW指定例外(原因1−3)の場合は、新PSWを導入する操作が完了するが、その直後に割り込みが発生する。命令長コード(ILC)は1、2、又は3であり、例外を生じさせた命令の長さを示すことが好ましい。命令アドレスが奇数(6−33ページの原因4)である場合は、ILCが1、2、又は3のいずれであるか予測不能である。早期PSW指定例外(原因1−3)のために例外が認識され、LOAD PSW、LOAD PSW EXTENDED、PROGRAM RETURN、又は割り込みによりその例外が導入された場合は、ILCは0である。例外がSET ADDRESSING MODE(SAM24、SAM31)により導入された場合、ILCは1であり、或いは、SET ADDRESSING MODEがEXECUTEのターゲットであった場合は、ILCは2である。例外が、SET SYSTEM MASK又はSTORE THEN OR SYSTEM MASKにより導入された場合は、ILCは2である。
36−351に格納され、新PSWが実記憶位置464−479からフェッチされる。割り込み原因は、割り込みコードにより識別される。割り込みコードは、実記憶位置142−143に入れられ、命令長コードは実記憶位置141のバイトのビット位置5及び6に入れられ、そのビットの残りは0に設定され、実記憶位置140には0が格納される。原因によっては、割り込みの理由を識別する付加的な情報が実記憶位置144−183に格納される。PER−3ファシリティがインストールされている場合、プログラム割り込み動作の一部として、ブレーキング・イベント・アドレスレジスタの内容が、実記憶位置272−279に入れられる。PERイベント及び暗号操作例外を除いて、割り込みコードの右端7個のビット位置に置かれたコード値が、割り込みの原因となった条件を示す。1度に1つの条件しか示すことはできない。割り込みコードのビット0−7は、0に設定される。PERイベントは、割り込みコードのビット8が1に設定することにより示される。これが唯一の条件である場合は、ビット0−7及び9−15も0に設定される。PERイベントと同時に別のプログラム割り込み条件も示された場合、ビット8は1であり、ビット0−7及び9−15は、他の条件と同様に設定される。暗号操作例外は、割り込みコード0119(16進数)で示されるか、又は、PERイベントも示される場合、0199(16進数)で示される。
図17を参照すると、図15のEXTRACT CACHE ATTRIBUTE命令がフェッチされ801、実行されると、ストレージ・サブシステム303の指定属性804に関する情報805が、第1オペランド記憶位置806に入れられる。命令は、8ビットのオペコード「EB」及び8ビットのオペコード拡張部「4C」に加えて、レジスタ・フィールドR1、R3及びB2、並びに符号付き変位フィールドDH2/DL2を含む。第1オペランドは、命令のR1レジスタ・フィールドによって指定されたレジスタであり、64ビットである。
属性表示(AI):図16の第2オペランド・アドレスのビット位置56−59は、次の:
0 トポロジ・サマリを抽出する
1 バイトでキャッシュのラインサイズを抽出する
2 バイトでキャッシュの全体サイズを抽出する
3 キャッシュのセット・アソシアティビティ・レベルを抽出する
4−15 未使用、
のような、抽出されるキャッシュ属性を示す4ビットの符号なし整数を含む。
レベル表示(L1):図16の第2オペランド・アドレスのビット位置60−62は、キャッシュ属性が抽出されるキャッシュのレベルを示す3ビットの符号なし整数を含み、0は第1レベルのキャッシュを示し、1は第2レベルのキャッシュを示し、以下同様である。モデル上にキャッシュ・レベルが実装されない場合、対応するレベル表示は未使用である。
タイプ表示(T1):図16の第2オペランド・アドレスのビット63は、キャッシュ属性が抽出されるキャッシュのタイプを示し、0はデータキャッシュを示し、1は命令キャッシュを示す。キャッシュ・レベルが統合されたデータ及び命令キャッシュを有する場合、タイプの表示に関係なく、同じ結果が戻される。
サマリ・フィールド
ビット 意味
0−3 未使用であり、0として格納される
4−5 次のようなキャッシュ範囲:
(00)このレベルにおいてキャッシュは存在しない
(01)キャッシュは、あるCPU専用である。
(10)キャッシュは、複数のCPUにより共有できる。
(11)未使用である。
6−7 ビット位置4−5が非0値を含む場合、ビット位置6−7は次のようなキャッシュタイプを含む。:
(00)このレベルにおいて別個の命令及びデータキャッシュが存在する。
(01)このレベルにおいて命令キャッシュだけが存在する。
(10)このレベルにおいてデータキャッシュだけが存在する。
(11)このレベルにおいて統合された命令及びデータキャッシュが存在する。
・操作例外(一般的な命令拡張ファシリティがインストールされていない場合)
Claims (6)
- 処理システムのプロセッサによって実行される方法であって、
コンピュータ・アーキテクチャのために定義されたキャッシュ・マシン命令をフェッチするステップであって、前記キャッシュ・マシン命令は、オペコードと、オペランド記憶位置を識別するオペランド識別子とを含み、キャッシュ・レベル識別子及びキャッシュ属性識別子が、前記キャッシュ・マシン命令中に指定されており、前記キャッシュ・マシン命令は、前記キャッシュ・レベル識別子及びキャッシュ属性識別子を直接的に指定するか又は間接的に指定するかを選択可能な命令形式を有する、前記フェッチするステップと、
前記キャッシュ・マシン命令を実行するステップであって、
前記キャッシュ・レベル識別子に基づいて、ターゲット・キャッシュを判断することと、
前記キャッシュ属性識別子に基づいて、抽出されるターゲット・キャッシュの属性(以下、ターゲット・キャッシュ属性という)を判断することと、
前記判断されたターゲット・キャッシュ属性を抽出することと、
前記抽出されたターゲット・キャッシュ属性を前記識別されたオペランド記憶位置に保存することと
を含む、前記実行するステップと
を含み、
前記抽出されるターゲット・キャッシュ属性は、
1つ又は複数のキャッシュのキャッシュ・トポロジ・サマリ、
前記ターゲット・キャッシュのラインサイズ、
前記ターゲット・キャッシュの全体サイズ、又は、
前記ターゲット・キャッシュのセット・アソシアティビティ・レベル、
のうちのいずれか1つを含む、
前記方法。 - 前記オペランド識別子は、第1のレジスタを識別する第1レジスタ・フィールドを含み、
前記キャッシュ属性識別子を判断するステップは、
前記命令の変位フィールドを前記命令の第2フィールドに関連した値に代数的に加算して、前記キャッシュ属性識別子を求めるステップを含む、
請求項1に記載の方法。 - 前記抽出されたキャッシュ・トポロジ・サマリは、1つ又複数のサマリを含み、各々のサマリは、前記キャッシュ・レベル識別子により指定されたレベルにおけるキャッシュについてのものであり、
前記対応するキャッシュ・レベルにおけるキャッシュについてのサマリは、
キャッシュが存在するかどうか、
キャッシュが前記命令を実行している前記プロセッサ専用のものであるかどうか、
キャッシュは、前記処理システムの他のプロセッサによって共有できるかど うか、
キャッシュは、別個の命令キャッシュ及び別個のデータキャッシュから成るかどうか、
前記キャッシュは命令キャッシュだけであるかどうか、
前記キャッシュはデータキャッシュだけであるかどうか、
前記キャッシュは統合された命令及びデータキャッシュであるかどうか、
のうちのいずれか1つを含む、請求項1に記載の方法。 - 前記コンピュータ・アーキテクチャのために定義された前記キャッシュ・マシン命令は、代替的なコンピュータ・アーキテクチャの中央処理装置によりフェッチ及び実行され、
前記方法は、前記キャッシュ・マシン命令を解釈して、前記キャッシュ・マシン命令の動作をエミュレートするための所定のソフトウェア・ルーチンを特定するステップをさらに含み、
前記キャッシュ・マシン命令を実行するステップは、前記所定のソフトウェア・ルーチンを実行して、前記キャッシュ・マシン命令の動作を実行するための前記方法のステップを実施するステップを含む、請求項1に記載の方法。 - コンピュータに、請求項1〜4のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
- コンピュータ・システムであって、
メモリと、
前記メモリと通信状態にあり、かつ、メモリから命令をフェッチするための命令フェッチ要素と、フェッチされた命令を実行するための1つ又は複数の実行要素とを含むプロセッサと、
を備えており、
請求項1〜4のいずれか一項に記載の方法の各ステップを実施するように構成されている前記コンピュータ・システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/972,675 US7870339B2 (en) | 2008-01-11 | 2008-01-11 | Extract cache attribute facility and instruction therefore |
US11/972,675 | 2008-01-11 | ||
PCT/EP2009/050107 WO2009087160A1 (en) | 2008-01-11 | 2009-01-07 | Extract cache attribute facility and instruction therefore |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2011509475A JP2011509475A (ja) | 2011-03-24 |
JP2011509475A5 JP2011509475A5 (ja) | 2012-05-10 |
JP5052678B2 true JP5052678B2 (ja) | 2012-10-17 |
Family
ID=40513439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010541775A Active JP5052678B2 (ja) | 2008-01-11 | 2009-01-07 | コンピュータを動作させる方法及びシステム |
Country Status (16)
Country | Link |
---|---|
US (3) | US7870339B2 (ja) |
EP (1) | EP2229620B1 (ja) |
JP (1) | JP5052678B2 (ja) |
KR (1) | KR101231562B1 (ja) |
CN (1) | CN101911013B (ja) |
AT (1) | ATE516538T1 (ja) |
BR (1) | BRPI0906424B1 (ja) |
CA (1) | CA2701093C (ja) |
CY (1) | CY1112472T1 (ja) |
DK (1) | DK2229620T3 (ja) |
ES (1) | ES2368682T3 (ja) |
IL (1) | IL206848A (ja) |
PL (1) | PL2229620T3 (ja) |
PT (1) | PT2229620E (ja) |
SI (1) | SI2229620T1 (ja) |
WO (1) | WO2009087160A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9280480B2 (en) * | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
US8151076B2 (en) * | 2008-04-04 | 2012-04-03 | Cisco Technology, Inc. | Mapping memory segments in a translation lookaside buffer |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9459867B2 (en) * | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9459868B2 (en) * | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US10620957B2 (en) * | 2015-10-22 | 2020-04-14 | Texas Instruments Incorporated | Method for forming constant extensions in the same execute packet in a VLIW processor |
US10713048B2 (en) * | 2017-01-19 | 2020-07-14 | International Business Machines Corporation | Conditional branch to an indirectly specified location |
CN109408429B (zh) * | 2018-11-01 | 2020-10-16 | 苏州浪潮智能科技有限公司 | 一种低速接口的缓存方法与装置 |
SG11202107290QA (en) | 2019-03-15 | 2021-09-29 | Intel Corp | Sparse optimizations for a matrix accelerator architecture |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
US11954062B2 (en) | 2019-03-15 | 2024-04-09 | Intel Corporation | Dynamic memory reconfiguration |
CN117093510B (zh) * | 2023-05-30 | 2024-04-09 | 中国人民解放军军事科学院国防科技创新研究院 | 大小端通用的缓存行高效索引方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3825895A (en) * | 1973-05-14 | 1974-07-23 | Amdahl Corp | Operand comparator |
US3982229A (en) * | 1975-01-08 | 1976-09-21 | Bell Telephone Laboratories, Incorporated | Combinational logic arrangement |
US4713750A (en) * | 1983-03-31 | 1987-12-15 | Fairchild Camera & Instrument Corporation | Microprocessor with compact mapped programmable logic array |
US4569016A (en) * | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
US4578750A (en) * | 1983-08-24 | 1986-03-25 | Amdahl Corporation | Code determination using half-adder based operand comparator |
US5113523A (en) * | 1985-05-06 | 1992-05-12 | Ncube Corporation | High performance computer system |
JPS6382513A (ja) * | 1986-09-26 | 1988-04-13 | Toshiba Corp | バレルシフタ |
EP0325421B1 (en) * | 1988-01-20 | 1994-08-10 | Advanced Micro Devices, Inc. | Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations |
JPH05158795A (ja) * | 1991-12-06 | 1993-06-25 | Nec Corp | キャッシュメモリシステム |
US5859994A (en) * | 1992-08-10 | 1999-01-12 | Intel Corporation | Apparatus and method for modifying instruction length decoding in a computer processor |
JPH07129464A (ja) * | 1993-11-05 | 1995-05-19 | Hitachi Ltd | 情報処理装置 |
US6067613A (en) * | 1993-11-30 | 2000-05-23 | Texas Instruments Incorporated | Rotation register for orthogonal data transformation |
US5748950A (en) * | 1994-09-20 | 1998-05-05 | Intel Corporation | Method and apparatus for providing an optimized compare-and-branch instruction |
EP0730220A3 (en) * | 1995-03-03 | 1997-01-08 | Hal Computer Systems Inc | Method and device for quickly executing branch instructions |
US5732242A (en) * | 1995-03-24 | 1998-03-24 | Silicon Graphics, Inc. | Consistently specifying way destinations through prefetching hints |
JP3790607B2 (ja) | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US6223256B1 (en) * | 1997-07-22 | 2001-04-24 | Hewlett-Packard Company | Computer cache memory with classes and dynamic selection of replacement algorithms |
US6112293A (en) * | 1997-11-17 | 2000-08-29 | Advanced Micro Devices, Inc. | Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result |
US6035392A (en) * | 1998-02-20 | 2000-03-07 | International Business Machines Corporation | Computer with optimizing hardware for conditional hedge fetching into cache storage |
US6088789A (en) * | 1998-05-13 | 2000-07-11 | Advanced Micro Devices, Inc. | Prefetch instruction specifying destination functional unit and read/write access mode |
US6349363B2 (en) * | 1998-12-08 | 2002-02-19 | Intel Corporation | Multi-section cache with different attributes for each section |
US6446197B1 (en) * | 1999-10-01 | 2002-09-03 | Hitachi, Ltd. | Two modes for executing branch instructions of different lengths and use of branch control instruction and register set loaded with target instructions |
US6763327B1 (en) * | 2000-02-17 | 2004-07-13 | Tensilica, Inc. | Abstraction of configurable processor functionality for operating systems portability |
US6738895B1 (en) * | 2000-08-31 | 2004-05-18 | Micron Technology, Inc. | Method and system for substantially registerless processing |
US7165101B2 (en) * | 2001-12-03 | 2007-01-16 | Sun Microsystems, Inc. | Transparent optimization of network traffic in distributed systems |
US6842822B2 (en) * | 2002-04-05 | 2005-01-11 | Freescale Semiconductor, Inc. | System and method for cache external writing |
US7493480B2 (en) * | 2002-07-18 | 2009-02-17 | International Business Machines Corporation | Method and apparatus for prefetching branch history information |
US20060212439A1 (en) | 2005-03-21 | 2006-09-21 | Microsoft Corporation | System and method of efficient data backup in a networking environment |
US7529768B2 (en) * | 2005-12-08 | 2009-05-05 | International Business Machines Corporation | Determining which objects to place in a container based on relationships of the objects |
US8335810B2 (en) * | 2006-01-31 | 2012-12-18 | Qualcomm Incorporated | Register-based shifts for a unidirectional rotator |
-
2008
- 2008-01-11 US US11/972,675 patent/US7870339B2/en active Active
-
2009
- 2009-01-07 CA CA2701093A patent/CA2701093C/en active Active
- 2009-01-07 KR KR1020107014473A patent/KR101231562B1/ko active IP Right Grant
- 2009-01-07 AT AT09700229T patent/ATE516538T1/de active
- 2009-01-07 CN CN2009801017685A patent/CN101911013B/zh active Active
- 2009-01-07 JP JP2010541775A patent/JP5052678B2/ja active Active
- 2009-01-07 BR BRPI0906424-9A patent/BRPI0906424B1/pt active IP Right Grant
- 2009-01-07 ES ES09700229T patent/ES2368682T3/es active Active
- 2009-01-07 SI SI200930067T patent/SI2229620T1/sl unknown
- 2009-01-07 WO PCT/EP2009/050107 patent/WO2009087160A1/en active Application Filing
- 2009-01-07 EP EP09700229A patent/EP2229620B1/en active Active
- 2009-01-07 PT PT09700229T patent/PT2229620E/pt unknown
- 2009-01-07 PL PL09700229T patent/PL2229620T3/pl unknown
- 2009-01-07 DK DK09700229.9T patent/DK2229620T3/da active
-
2010
- 2010-07-07 IL IL206848A patent/IL206848A/en active IP Right Grant
- 2010-12-13 US US12/966,316 patent/US8131934B2/en active Active
-
2011
- 2011-10-11 CY CY20111100972T patent/CY1112472T1/el unknown
-
2012
- 2012-02-08 US US13/368,363 patent/US8516195B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2229620B1 (en) | 2011-07-13 |
US20110131382A1 (en) | 2011-06-02 |
KR20100106444A (ko) | 2010-10-01 |
US20120137073A1 (en) | 2012-05-31 |
PL2229620T3 (pl) | 2011-12-30 |
CY1112472T1 (el) | 2015-12-09 |
US20090182942A1 (en) | 2009-07-16 |
IL206848A0 (en) | 2010-12-30 |
CA2701093A1 (en) | 2009-07-16 |
US7870339B2 (en) | 2011-01-11 |
CN101911013B (zh) | 2013-07-31 |
WO2009087160A1 (en) | 2009-07-16 |
SI2229620T1 (sl) | 2011-10-28 |
BRPI0906424B1 (pt) | 2020-10-20 |
EP2229620A1 (en) | 2010-09-22 |
IL206848A (en) | 2014-03-31 |
JP2011509475A (ja) | 2011-03-24 |
CN101911013A (zh) | 2010-12-08 |
PT2229620E (pt) | 2011-10-06 |
ES2368682T3 (es) | 2011-11-21 |
ATE516538T1 (de) | 2011-07-15 |
CA2701093C (en) | 2016-10-11 |
KR101231562B1 (ko) | 2013-02-12 |
US8516195B2 (en) | 2013-08-20 |
BRPI0906424A2 (pt) | 2016-10-11 |
US8131934B2 (en) | 2012-03-06 |
DK2229620T3 (da) | 2011-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5052678B2 (ja) | コンピュータを動作させる方法及びシステム | |
JP5357181B2 (ja) | コンピュータ・システム、その動作方法、及び、コンピュータ・プログラム | |
US10963391B2 (en) | Extract target cache attribute facility and instruction therefor | |
JP2011509475A5 (ja) | ||
JP5657074B2 (ja) | 命令が利用可能な汎用レジスタの数を拡張するための上位ワード・ファシリティ | |
US20090182983A1 (en) | Compare and Branch Facility and Instruction Therefore | |
US20090182988A1 (en) | Compare Relative Long Facility and Instructions Therefore | |
JP2011509474A (ja) | コンピュータを動作させる方法及びシステム | |
US20090182992A1 (en) | Load Relative and Store Relative Facility and Instructions Therefore | |
US20090182985A1 (en) | Move Facility and Instructions Therefore | |
JP2011509473A (ja) | Rotatetheninsertselectedbitsファシリティ及びそのための命令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110801 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20110801 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110802 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20111114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120220 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20120220 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20120220 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120223 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120523 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120528 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120528 |
|
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: 20120702 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20120702 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20120702 |
|
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: 20120724 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5052678 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150803 Year of fee payment: 3 |