JP2575598B2 - マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム - Google Patents

マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム

Info

Publication number
JP2575598B2
JP2575598B2 JP5315563A JP31556393A JP2575598B2 JP 2575598 B2 JP2575598 B2 JP 2575598B2 JP 5315563 A JP5315563 A JP 5315563A JP 31556393 A JP31556393 A JP 31556393A JP 2575598 B2 JP2575598 B2 JP 2575598B2
Authority
JP
Japan
Prior art keywords
memory
map table
bit
fields
memory map
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.)
Expired - Lifetime
Application number
JP5315563A
Other languages
English (en)
Other versions
JPH06236353A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06236353A publication Critical patent/JPH06236353A/ja
Application granted granted Critical
Publication of JP2575598B2 publication Critical patent/JP2575598B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、全般的に、改良された
データ処理システムに関し、詳しくはマルチプロセッサ
・コンピュータ・システムのシステム・メモリの並行性
の改良に関する。さらに詳細には、本発明は、マルチプ
ロセッサ・コンピュータ・システム内の特定のシステム
・メモリ位置の参照指標および変更標識を更新する改良
された方法およびシステムに関する。
【0002】
【従来の技術】現代の最新データ処理システムの設計者
は、絶えずそのようなシステムの性能面の向上に努めて
いる。データ処理システム効率を向上させる1つの技法
は、サイクル・タイムを短くし、1命令当たりサイクル
(CPI)率を下げることである。このような技法を拡
張データ処理システムに巧みに応用した例に、インター
ナショナル・ビジネス・マシーンズ・コーポレーション
(IBM)のRISCシステム/6000(RS/60
00)コンピュータがある。RS/6000システム
は、数値中心の科学技術の応用分野およびマルチユーザ
商業環境でうまく機能するように設計されている。RS
/6000プロセッサは、マルチスカラ実施態様を使用
する。すなわち、複数の命令が同時に発行され実行され
る。
【0003】複数の命令を同時に発行して実行するに
は、高命令帯域幅で同時に実行できる独立した機能ユニ
ットが必要である。RS/6000システムは、本来的
にパイプライン式の別々のブランチ処理ユニット、固定
小数点処理ユニット、および浮動小数点処理ユニットを
使ってこれを実現している。そのようなシステムでは、
条件付きブランチ命令を実行すると、重大なパイプライ
ン遅延が発生するおそれがある。条件付きブランチ命令
とは、1つまたは複数の他の命令の処理の特定の結果に
応じて、アプリケーション内の指定された条件付きブラ
ンチをとることを指令する命令である。したがって、条
件付きブランチ命令がパイプライン待ち行列内の実行位
置にくる時までに、実行時遅延を避けるため、条件付き
ブランチを解決する以前に、この条件付きブランチ命令
の後に続く命令をロードしておく必要がある。
【0004】マルチスカラ・プロセッサ・システム内の
遅延の他の原因は、そのようなシステムが通常複数のタ
スクを同時に実行することである。これらの複数のタス
クはそれぞれ通常、そのタスクの実行に利用される有効
または仮想アドレス空間をもつ。そのような有効または
仮想アドレス空間内の位置は、システム・メモリ内の実
アドレスに「マップ」されるアドレスを含む。実メモリ
内の単一の空間をマルチスカラ・プロセッサ・システム
内の複数の有効または仮想メモリ・アドレスにマップす
ることはまれである。複数のタスクがそれぞれ有効また
は仮想アドレスを使用する場合、これらのアドレスをシ
ステム・メモリ内の実アドレスに変換して、適切な命令
またはデータを、メモリから取り出し、マルチスカラ・
プロセッサ・システムを構成している複数の独立機能ユ
ニットの1つにディスパッチするために命令待ち行列内
に入れておく必要があるので、マルチスカラ・プロセッ
サ・システム内で追加の遅延が発生する。
【0005】マルチスカラ・プロセッサ・システム内の
有効または仮想アドレスをシステム・メモリ内の実メモ
リ・アドレスに迅速に変換するための1つの技法は、い
わゆる「変換索引バッファ」(TLB)を使用すること
である。変換索引バッファ(TLB)は、有効または仮
想メモリ・アドレスと、変換アルゴリズムを使用して生
成された実メモリ・アドレスの間の変換関係を含むバッ
ファである。変換索引バッファ(TLB)を使用する
と、かなり効率的なアドレス変換方法が提供されるが、
密結合された対称形マルチプロセッサ・システムでその
ようなバッファを使用すると、インコヒーレンシの問題
が発生する。複数のプロセッサが共通のシステム実メモ
リに対して読取りおよび書込みを行えるデータ処理シス
テムでは、メモリ・システムがコヒーレントに動作する
ように配慮しなければならない。すなわち、メモリ・シ
ステムが複数のプロセッサの動作の結果としてインコヒ
ーレントになることは許されない。そのようなマルチプ
ロセッサ・データ処理システム内の各プロセッサは通
常、アドレス変換用の変換索引バッファ(TLB)を含
み、そのようなシステム内でのメモリの共用態様では、
コヒーレンシを維持するために、マルチプロセッサ・シ
ステム中の1つのプロセッサ内の単一の変換索引バッフ
ァ(TLB)に対する変更を、マルチプロセッサ・コン
ピュータ・システム内の各プロセッサ内の各変換索引バ
ッファに慎重にかつ矛盾なくマップする必要がある。
【0006】従来技術のマルチプロセッサ・システムに
おける変換索引バッファ(TLB)のコヒーレンシの維
持は通常、すべての変換索引バッファ(TLB)の修正
にプロセッサ間割込みおよびソフトウェア同期化を使用
することによって実現される。これらの方法を使用すれ
ば、マルチプロセッサ・システム全体にわたってコヒー
レンシを確保することができる。しかし、割込みおよび
ソフトウェア同期化を使用する必要があるので、マルチ
プロセッサ・コンピュータ・システム内で性能が大幅に
低下する。マルチプロセッサ・システム内で変換索引バ
ッファ(TLB)を維持する1つの技法が、1992年
10月9日に出願された米国特許出願第07/9591
89号に記載されている。
【0007】ページ・メモリ・システムでは、マルチプ
ロセッサ・システム内の各変換索引バッファ(TLB)
の内容は、システム・メモリ内に維持されるページ・テ
ーブルの内容を反映したものとなる。ページ・テーブル
は一般に、仮想または有効メモリ・アドレス、あるいは
それらのセグメントと、それらのアドレスに関連する実
メモリ・アドレスとを含む、メモリ・マップ・テーブル
である。ページ保護ビット、有効エントリ・ビット、お
よび様々なアクセス制御ビットを含む他の様々な管理デ
ータも通常、そのようなページ・テーブル内に含まれ
る。参照ビットおよび変更ビットも通常、ページ・テー
ブル内に提供され、関連するメモリ・ページが、読取り
または書込み動作のためにアクセスされたか否か、ある
いは記憶動作によって修正されたか否かを示すために使
用される。
【0008】単一プロセッサ・システムでは、参照ビッ
トおよび変更ビットの変更に対する競合は存在しない。
なぜなら、これらのビットには1個のプロセッサしかア
クセスできないからである。しかし、マルチプロセッサ
・システムでは、2個以上のプロセッサが同時にページ
・テーブルの更新を試みることがあり得る。すなわち、
あるプロセッサが変更ビットを更新している間に、別の
プロセッサが参照ビットを更新することがあり得る。そ
のような場合、これらのビットのうち一方が、他方のビ
ットの更新中に上書きされるおそれがある。この状況を
防ぐために、マルチプロセッサ・システム内のページ・
テーブルの更新は通常、これらの状況ビットに対するい
わゆる「書込みハザード」を防止するために、ロックま
たは原子的読取り/修正/書込み動作を使用して行われ
る。
【0009】したがって、複数のプロセッサが、「書込
みハザード」状況を発生させることなく、マルチプロセ
ッサ・コンピュータ・システム内のシステム・メモリ・
ページ・テーブル内の参照ビットおよび変更ビットを同
時に更新できるようにする方法およびシステムが必要で
あることは明らかである。
【0010】
【発明が解決しようとする課題】したがって、本発明の
一目的は、改良されたデータ処理システムを提供するこ
とである。
【0011】本発明の他の目的は、マルチプロセッサ・
コンピュータ・システムのメモリ並行性を改良すること
である。
【0012】本発明の他の目的は、マルチプロセッサ・
コンピュータ・システム内の特定のシステム・メモリ位
置の参照標識ビットおよび変更標識ビットを更新する改
良された方法およびシステムを提供することである。
【0013】
【課題を解決するための手段】前述の目的は、以下に述
べるようにして達成される。本発明の方法およびシステ
ムを使用して、システム・メモリと、それぞれ複数の命
令を実行し、読取り、書込み、および記憶動作を実行す
るための複数の処理装置を含む、バスを介して結合され
た複数のプロセッサと、有効アドレスをシステム・メモ
リ内の実メモリ・アドレスに変換する関連する変換索引
バッファ(TLB)とを含む、マルチプロセッサ・コン
ピュータ・システムのメモリ並行性を増大することがで
きる。それぞれ複数の個別にアクセス可能なフィールド
と、特定のシステム・メモリ位置の有効アドレスと、選
択されたシステム・メモリ位置の関連する実メモリ・ア
ドレスとを含む複数のページ・エントリが、システム・
メモリ内のページ・テーブル内に提供される。各ページ
・テーブル・エントリ中の第1の個別にアクセス可能な
フィールド内に参照ビットが提供され、この参照ビット
は、関連するシステム・メモリ位置が読取りまたは書込
み動作のためにアクセスされたか否かを示すために使用
される。各ページ・テーブル・エントリ内の第2の個別
にアクセス可能なフィールド内に変換ビットが提供さ
れ、この変換ビットは、関連するシステム・メモリが書
込み動作によって修正されたか否かを示すために使用さ
れる。参照ビットおよび変更ビットを別々のアクセス可
能なフィールドに記憶することにより、複数のプロセッ
サが参照ビットおよび変更ビットを同時に更新すること
ができ、メモリ並行性が増大する。
【0014】本発明の前記その他の目的、特徴、および
利点は、以下の詳細な説明において明らかになろう。
【0015】
【実施例】図面、特に図1を参照すると、本発明の方法
およびシステムを実施するために使用できるマルチプロ
セッサ・データ処理システム6を示す高水準ブロック図
が示されている。図のように、マルチプロセッサ・デー
タ処理システム6は、それぞれバス8を使用してシステ
ム・メモリ18に結合されたマルチスカラ・プロセッサ
10を使用して構築することができる。マルチプロセッ
サ・データ処理システム6などの密結合対称形マルチプ
ロセッサ・システムでは、マルチプロセッサ・データ処
理システム6内の各マルチスカラ・プロセッサ10を使
用して、メモリ18に対する読取りまたは書込みを行う
ことができる。したがって、システムおよびインタロッ
クを使用して、システム・メモリ18内のデータおよび
命令がコヒーレントになるようにする必要がある。当業
者には明らかなように、システム・メモリ18内にはペ
ージ・テーブル16を提供することが好ましく、ページ
・テーブル内の複数のエントリを使用して、有効アドレ
スをシステム・メモリ18内の実アドレスに効率的にマ
ップすることができる。
【0016】図1に示し、本明細書で詳細に説明するよ
うに、マルチプロセッサ・データ処理システム6内の各
マルチスカラ・プロセッサ10は、変換索引バッファ
(TLB)40を含む。変換索引バッファ40を使用し
て、ページ・テーブル16の各部分に含まれる情報を複
製することにより、命令またはデータの有効または仮想
アドレスをメモリ18内の実アドレスに変換することが
できる。変換索引バッファ(TLB)40がメモリ空間
を構成するという事実にかんがみ、変換索引バッファ4
0の正確な動作を確保するために、マルチプロセッサ・
データ処理システム6内の各変換索引バッファ(TL
B)40間でコヒーレンシを維持することが重要であ
る。
【0017】次に図2を参照すると、図1のマルチプロ
セッサ・データ処理システム6を提供するために使用で
きるマルチスカラ・プロセッサ10の高水準ブロック図
が示されている。図のように、マルチスカラ・プロセッ
サ10は、それによってシステム・メモリ18(図1参
照)から読み取られ、あるいはメモリ18に書き込まれ
るデータ、命令などを記憶するために使用できる、メモ
リ待ち行列36を含むことが好ましい。メモリ待ち行列
36内に格納されたデータまたは命令には、当業者に周
知の方法でキャッシュ/メモリ・インタフェース20を
使用してアクセスすることが好ましい。キャッシュ・メ
モリ・システムのサイズ設定および使用法は、データ処
理の分野で周知であり、本明細書では取り上げない。し
かし、現代の関連するキャッシュ技法を使用することに
より、大部分のメモリ・アクセスが、キャッシュ/メモ
リ・インタフェース20内に一時的に記憶されたデータ
を使用して実現できることが、当業者には理解されよ
う。
【0018】キャッシュ/メモリ・インタフェース20
からの命令は通常、命令待ち行列22にロードされる。
命令待ち行列22は、複数の待ち行列位置を含むことが
好ましい。マルチスカラ・コンピュータ・システムの典
型的な実施例では、命令待ち行列22は8個の待ち行列
位置を含むことができるので、所与のサイクル中に、キ
ャッシュ/メモリ・インタフェース20によって有効な
命令がいくつ渡されるか、および命令待ち行列22内の
空間がどれだけ利用可能かに応じて、命令待ち行列22
に0ないし8個の命令をロードすることができる。
【0019】そのようなマルチスカラ・プロセッサ・シ
ステムでは通常のことであるが、命令待ち行列22が、
複数の実行ユニットに命令をディスパッチするために使
用される。図2に示すように、マルチスカラ・プロセッ
サ10は、浮動小数点処理ユニット24、固定小数点処
理ユニット26、およびブランチ処理ユニット28を含
む。したがって、命令待ち行列22は単一のサイクル中
に0ないし3個の命令を各実行ユニットに1個ずつディ
スパッチすることができる。
【0020】命令待ち行列22からディスパッチされる
順次命令だけでなく、いわゆる「条件付きブランチ命
令」も、ブランチ・プロセッサで実行するために命令待
ち行列22にロードすることができる。条件付きブラン
チ命令とは、1つまたは複数の順次命令の処理の特定の
結果に応じてアプリケーション内で選択される、関連す
る条件付きブランチを指定する命令である。マルチスカ
ラ・プロセッサ10などのパイプライン式プロセッサ・
システムの実行時遅延を最小限にするために、命令待ち
行列内での条件付きブランチ命令の存在が検出され、条
件付きブランチの結果が予測される。当業者には明らか
なように、条件付きブランチが「選択されない」と予測
されると、命令待ち行列内の順次命令は単に現経路に沿
って継続し、命令が修正されることはない。しかし、ブ
ランチの発生に関する予測が正しくない場合、命令待ち
行列から、プログラムの順序で条件付きブランチ命令の
次にくる順次命令をパージし、ターゲット命令を取り出
す必要がある。また、条件付きブランチが「選択され
る」と予測された場合、ターゲット命令が取り出され、
予測が正しいとわかった場合は、ターゲット命令を使用
して条件付きブランチをたどる。言うまでもなく、「選
択される」という予測が正しくない場合は、ターゲット
命令をパージして、プログラムの順序で条件付きブラン
チ命令の次にくる順次命令を取り出さなければならな
い。
【0021】図のように、マルチスカラ・プロセッサ1
0はまた、条件レジスタ32を含むことが好ましい。条
件レジスタ32は、マルチスカラ・プロセッサ10内で
処理される順次命令の結果を使用して行われる様々な比
較の結果を一時的に記憶するために使用される。したが
って、浮動小数点処理ユニット24、固定小数点処理ユ
ニット26、およびブランチ処理ユニット28はすべ
て、条件レジスタ32に結合される。条件レジスタ32
内の特定の条件の状況を検出し、ターゲット・アドレス
を生成するためにブランチ処理ユニット28に結合する
ことができる。その後、ブランチを開始する条件の発生
に応じて、ターゲット・アドレスを使用してターゲット
命令を取り出す。
【0022】次に、ブランチ処理ユニット28は、ター
ゲット・アドレスを取出し機構30に結合する。取出し
機構30は、条件付きブランチをたどるのに必要なター
ゲット命令の取出しアドレスを計算し、それをキャッシ
ュ/メモリ・インタフェース20に結合する。当業者に
は理解できるように、それらの取出しアドレスに関連す
るターゲット命令がキャッシュ/メモリ・インタフェー
ス20内に存在する場合、それらのターゲット命令は命
令待ち行列22にロードされる。あるいは、ターゲット
命令を、システム・メモリ18から取り出し、その後そ
れらのターゲット命令を取り出すのに必要な遅延の後、
キャッシュ/メモリ・インタフェース20から命令待ち
行列22にロードすることもできる。
【0023】当業者には明らかであるが、マルチスカラ
・プロセッサ10内の各タスクは通常、有効または仮想
メモリ空間と関連付けられており、各タスクを実施する
のに必要な命令を、有効または仮想アドレスを使用して
その空間内で指定する。したがって、取出し機構30
は、各タスクが使用する有効アドレスから命令の実アド
レスを決定できる必要がある。前述のように、従来技術
の実施態様の取出し機構30は通常、複雑な変換索引バ
ッファ(TLB)40、順次レジスタ、および複数の変
換アルゴリズムを備えている。言い換えると、有効また
は仮想命令アドレスから実命令アドレスを決定するため
に、そのような命令取出し機構は、そのような複雑な変
換機能をもつメモリ管理ユニット(MMU)にアクセス
する必要がある。
【0024】マルチスカラ・プロセッサ10内には、メ
モリ管理ユニット(MMU)34も示されている。メモ
リ管理ユニットについては、本明細書で以下に詳細に説
明するように、マルチスカラ・プロセッサ10内の各有
効アドレスをシステム・メモリ18内の実アドレスに変
換するために使用できる、変換索引バッファ(TLB)
40およびすべての必要なレジスタおよび変換アルゴリ
ズムを含むことが好ましい。取出し機構は通常、メモリ
管理ユニットにアクセスするための優先順位が極めて低
いので、メモリ管理ユニット(MMU)34を使用して
実命令アドレスを取り出す際には若干の遅延が予想され
る。
【0025】図3を参照すると、図2のマルチスカラ・
プロセッサ10内の変換索引バッファ(TLB)40お
よびメモリ管理ユニット(MMU)34を示すさらに詳
細なブロック図が示されている。図3には、キャッシュ
/メモリ・インタフェース20と取出し機構30とメモ
リ管理ユニット(MMU)34の関係が示されている。
既知のメモリ管理ユニットでは一般的であるが、メモリ
管理ユニット(MMU)34は、かなり大きなサイズの
変換索引バッファ(TLB)40を含む。変換索引バッ
ファ(TLB)は、有効または仮想アドレスを実アドレ
スに変換するためのかなり迅速な技法としてしばしば使
用されることが当業者には理解されよう。メモリ管理ユ
ニット(MMU)34内にはPTE変換機構42も存在
する。PTE変換機構42はページ・テーブル型変換を
実施するのに使用することが好ましい。ページ・テーブ
ル変換は、矛盾のないサイズのメモリ・ページをもつシ
ステム内で行われることが、当業者には理解されよう。
【0026】したがって、図3を参照すると、変換索引
バッファ(TLB)40とPTE変換機構42を併用す
ることにより、ページ・テーブル変換を使用するマルチ
スカラ・プロセッサ10(図2参照)内のすべての有効
アドレスをシステム・メモリ内の実アドレスに変換でき
ることが、当業者には理解されよう。
【0027】当業者には明らかであるが、取出し機構3
0は、ブランチ処理ユニット28によって選択されるタ
ーゲット命令のために、取出しアドレスをキャッシュ/
メモリ・インタフェース20に結合するために使用され
る。ブランチ処理ユニット28から取出し機構30に結
合される各ターゲット・アドレスごとに、取出しアドレ
スが決定され、キャッシュ/メモリ・インタフェース2
0に結合される。本発明の図示された実施例では、これ
らのアドレスは、メモリ管理ユニット34内の変換索引
バッファ(TLB)40にアクセスすることによって決
定できることが多い。したがって、マルチプロセッサ・
データ処理システム6内の各マルチスカラ・プロセッサ
10内でコヒーレンスを維持するために、各マルチスカ
ラ・プロセッサ10内の各変換索引バッファ(TLB)
40間でコヒーレンスを維持する必要があることが理解
されよう。
【0028】図4を参照すると、本発明の方法およびシ
ステムによって提供される単一のページ・テーブル・エ
ントリ50が図示されている。図のように、図4に示さ
れたページ・テーブル・エントリ50の特定の実施例
は、2個の32ビット・ワード、すなわち32ビット・
ワード52および32ビット・ワード54を含んでい
る。図4に示す実施例では、各32ビット・ワードが、
各バイト境界56で示す8ビット・バイトに沿ってさら
に分割されている。したがって、メモリの個々のバイト
にアクセスできるシステムを使用する際に、32ビット
・ワード内のあるバイトに含まれる各8ビット・フィー
ルドに個別にアクセスできることが、当業者には理解さ
れよう。
【0029】ページ・テーブル・エントリ50は、シス
テム・メモリ18(図1参照)内に維持され、当業者に
周知の方法で有効または仮想メモリ・アドレスとシステ
ム・メモリ18内の実アドレスとの変換を行うために使
用される。したがって、ページ・テーブル・エントリ5
0は、変換情報およびその他の管理データの複数の例を
含むことができる。図4に示した実施例では、有効エン
トリ・ビットが符号58で示されている。このビットを
使用して、図示された特定のページ・テーブル・エント
リ50が有効なエントリかどうかを示すことができる。
次に、仮想セグメントIDが符号60で示されている。
ページ・メモリ・システムは、複数の異なる技法を使用
して仮想または有効アドレスを実アドレスにマップする
ことができ、仮想セグメントID60は、実仮想アドレ
ス、または追加情報と連結されて実仮想アドレスを形成
する実仮想アドレスの一部分を含むことができること
が、当業者には理解されよう。ハッシュ機能IDが符号
62で示されているが、このIDは、ページ・テーブル
内にデータを記憶するために使用される特定のハッシュ
機能を決定するために使用される。最後に、32ビット
・ワード52は、短縮ページ・インデックス64を含
む。
【0030】32ビット・ワード54は、実ページ番号
66と未使用ビット68を含むことが好ましい。次に、
本発明の重要な特徴によれば、32ビット・ワード54
内の、1つの個別にアクセス可能なバイト内に参照標識
ビット70が記憶される。次に、32ビット・ワード5
4内の、他の個別にアクセス可能なバイト内に変更標識
ビット72が記憶される。したがって、参照標識ビット
70と変更標識ビット72をバイト境界56の反対側に
記憶することにより、マルチプロセッサ・コンピュータ
・システム内の複数のプロセッサが、参照標識ビット7
0と変更標識ビット72に個別にアクセスして、それら
を更新することができる。参照標識ビット70と変更標
識ビット72を、ページ・テーブル・エントリ50内
の、異なる個別にアクセス可能なバイト内に格納するこ
とにより、これらの標識ビットの一方の更新中に他のプ
ロセッサ・アクセスをロックする必要や、原子的書込み
/修正/読取り動作を実行する必要がなくなる。したが
って、複数のプロセッサが参照標識ビット70および変
更標識ビット72に同時にアクセスしてそれらを更新で
きるようになり、並行性が大幅に増大される。
【0031】最後に、WING記憶アクセス制御74お
よびページ保護ビット76も、ページ・テーブル・エン
トリ50に記憶される。言うまでもなく、ページ・テー
ブル・エントリ内の、別個の個別にアクセス可能なフィ
ールドに参照標識ビット70および変更標識ビット72
を記憶する限り、本発明の方法およびシステムを活用し
ながら、ページ・テーブル内の各ページ・テーブル・エ
ントリの形式およびフォーマットを大幅に変えることが
できることが、当業者には理解されよう。
【0032】最後に、図5を参照すると、本発明の方法
およびシステムによるページ・テーブル・エントリ内で
の参照標識ビット70および変更標識ビット72の更新
を示す高水準論理フローチャートが示されている。図の
ように、プロセスはブロック100から開始し、次にブ
ロック102に進む。ブロック102で、メモリのペー
ジが読取りまたは書込みのためにアクセスされたか否か
判定する。アクセスされた場合、ブロック104に進
む。ブロック104で、システム・メモリ内の特定の位
置に関連する参照標識ビットがすでにセットされている
か否か判定し、セットされていない場合、ブロック10
6に進む。ブロック106で、ページ・テーブル・エン
トリ内の適切なフィールドに個別にアクセスし、参照標
識ビット70をセットする。その後、または参照ビット
がすでにセットされている場合は、ブロック108に進
む。ブロック108で、ページが書込み動作のためにア
クセスされたか否か判定する。アクセスされていない場
合、ブロック114でプロセスは単にリターンする。
【0033】ブロック108を再度参照すると、システ
ム・メモリのページが書込みのためにアクセスされた場
合、ブロック110に進む。ブロック110で、変更標
識ビットがすでにセットされているか否か判定する。セ
ットされている場合、ブロック114でプロセスは単に
リターンする。ブロック110を再度参照すると、変更
標識ビットがまだセットされていない場合、ブロック1
12に進む。ブロック112で、ページ・テーブル・エ
ントリ内の適切なフィールドに個別にアクセスし、変更
標識ビット72をセットして、そのページ内のデータが
記憶動作によって修正されたか否かを示す。次に、前述
のようにブロック114でプロセスはリターンする。
【0034】前述の内容を参照すれば、複数のプロセッ
サがシステム・メモリ内のページ・テーブル内の参照標
識ビットおよび変更標識ビットに同時にアクセスして、
それらのビットを更新できるようにすることにより、複
数のプロセッサによる同時アクセスを禁止するロックを
必要とせず、原子的読取り/修正/書込み動作を実行す
る必要もなしに、システム・メモリの並行性を増大する
ことのできる、新規の方法およびシステムを本発明者等
が提供したことが、当業者には理解されよう。
【図面の簡単な説明】
【図1】本発明の方法およびシステムを実施するために
使用できるマルチプロセッサ・データ処理システムを示
す高水準ブロック図である。
【図2】図1のマルチプロセッサ・データ処理システム
内の1個のマルチスカラ・プロセッサを示す高水準ブロ
ック図である。
【図3】図2のマルチスカラ・プロセッサ内の変換索引
バッファ(TLB)およびメモリ管理ユニット(MM
U)を示すさらに詳細なブロック図である。
【図4】本発明の方法およびシステムによって提供され
る単一のテーブル・エントリを示す絵画図である。
【図5】本発明の方法およびシステムによるページ・テ
ーブル・エントリ内の参照ビット標識および変更ビット
標識の更新を示す高水準論理フローチャートである。
【符号の説明】
6 マルチプロセッサ・データ処理システム 8 バス 10 マルチスカラ・プロセッサ 16 ページ・テーブル 18 システム・メモリ 20 キャッシュ/メモリ・インタフェース 22 命令待ち行列 24 浮動小数点処理ユニット 26 固定小数点処理ユニット 28 ブランチ処理ユニット 30 取出し機構 32 条件レジスタ 34 メモリ管理ユニット 36 メモリ待ち行列 40 変換索引バッファ 42 PTE変換機構 50 ページ・テーブル・エントリ 70 参照標識ビット 72 変更標識ビット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・エス・ミューイク アメリカ合衆国78759、テキサス州オー スチン、アヴァーストーン・ウェイ 8606 (72)発明者 リチャード・アール・エーラー アメリカ合衆国10589、ニューヨーク州 ソマーズ、ボニー・ドライブ(番地な し) (72)発明者 エドワード・ジェイ・シリヤ アメリカ合衆国78759、テキサス州オー スチン、ピレニーズ 11509 (56)参考文献 特開 平2−162439(JP,A) 特開 平4−306750(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】システム・メモリと、それぞれ複数の命令
    を実行し、読取りおよび書込み動作を実行するための複
    数の処理装置を含む、バスを介して結合された複数のプ
    ロセッサと、有効アドレスをシステム・メモリ内の実メ
    モリ・アドレスに変換する、関連する変換索引バッファ
    (TLB)とを有する、マルチプロセッサ・コンピュー
    タ・システムのメモリの並行性を増大する方法であっ
    て、 それぞれ複数の個別にアクセス可能なフィールドを含む
    複数のエントリを有するメモリ・マップ・テーブルを前
    記システム・メモリ内に提供するステップと、 前記各メモリ・マップ・テーブル・エントリ内に特定の
    システム・メモリ位置の有効アドレスおよび関連する実
    メモリ・アドレスを記憶するステップと、 前記各メモリ・マップ・テーブル・エントリ内の、前記
    複数の個別にアクセス可能なフィールドのうちの第1の
    フィールド内に、特定のシステム・メモリ位置が読取り
    または書込み動作のためにアクセスされたか否かを示す
    参照標識を記憶するステップと、 前記各メモリ・マップ・テーブル・エントリ内の、前記
    複数の個別にアクセス可能なフィールドのうちの第2の
    フィールド内に、特定のシステム・メモリ位置が書込み
    動作によって修正されたか否かを示す変更標識を記憶す
    るステップとを含み、 前記複数のプロセッサが前記参照標識および変更標識に
    同時にアクセスしてそれらを更新できる方法。
  2. 【請求項2】それぞれ複数の個別にアクセス可能なフィ
    ールドを含む複数のエントリを有するメモリ・マップ・
    テーブルを前記システム・メモリ内に提供するステップ
    が、それぞれ個別にアクセス可能な8ビット・フィール
    ドを4個含む複数の32ビット・メモリ・マップ・テー
    ブル・エントリを提供するステップを含む請求項1に記
    載の、マルチプロセッサ・コンピュータ・システムのシ
    ステム・メモリの並行性を増大する方法。
  3. 【請求項3】前記各メモリ・マップ・テーブル・エント
    リ内の前記複数の個別にアクセス可能なフィールドのう
    ちの第1のフィールド内に参照標識を記憶するステップ
    が、該参照標識を記憶するために参照標識ビットを使用
    することを特徴とする請求項1に記載の、マルチプロセ
    ッサ・コンピュータ・システムのシステム・メモリの並
    行性を増大する方法。
  4. 【請求項4】前記各メモリ・マップ・テーブル・エント
    リ内の前記複数の個別にアクセス可能なフィールドのう
    ちの第2のフィールド内に変更標識を記憶するステップ
    が、該変更標識を記憶するために変更標識ビットを使用
    することを特徴とする請求項1に記載の、マルチプロセ
    ッサ・コンピュータ・システムのシステム・メモリの並
    行性を増大する方法。
  5. 【請求項5】システム・メモリと、それぞれ複数の命令
    を実行し、読取りおよび書込み動作を実行するための複
    数の処理装置を含む、バスを介して結合された複数のプ
    ロセッサと、有効アドレスをシステム・メモリ内の実メ
    モリ・アドレスに変換する、関連する変換索引バッファ
    (TLB)とを有する、マルチプロセッサ・コンピュー
    タ・システムのメモリの並行性を増大するシステムであ
    って、 それぞれ複数の個別にアクセス可能なフィールドを含む
    複数のエントリを含むメモリ・マップ・テーブルと、 前記各メモリ・マップ・テーブル・エントリ内に記憶さ
    れた特定のシステム・メモリ位置の有効アドレスおよび
    関連する実メモリ・アドレスと、 前記各メモリ・マップ・テーブル・エントリ内の、前記
    複数の個別にアクセス可能なフィールドのうちの第1の
    フィールド内に記憶され、特定のシステム・メモリ位置
    が読取りまたは書込み動作のためにアクセスされたか否
    かを示す参照標識と、 前記各メモリ・マップ・テーブル・エントリ内の、前記
    複数の個別にアクセス可能なフィールドのうちの第2の
    フィールド内に記憶され、特定のシステム・メモリ位置
    が書込み動作によって修正されたか否かを示す変更標識
    とを備え、 前記複数のプロセッサが前記参照標識および変更標識に
    同時にアクセスしてそれらを更新できるシステム。
  6. 【請求項6】前記複数のメモリ・マップ・テーブル・エ
    ントリがそれぞれ、それぞれ個別にアクセス可能な8ビ
    ット・フィールドを4個含む複数の32ビット・メモリ
    ・マップ・テーブル・エントリを備える請求項5に記載
    の、マルチプロセッサ・コンピュータ・システムのシス
    テム・メモリの並行性を増大するシステム。
  7. 【請求項7】前記参照標識が、単一の参照標識ビットを
    含む請求項5に記載の、マルチプロセッサ・コンピュー
    タ・システムのシステム・メモリの並行性を増大するシ
    ステム。
  8. 【請求項8】前記変更標識が、単一の変更標識ビットを
    含む請求項5に記載の、マルチプロセッサ・コンピュー
    タ・システムのシステム・メモリの並行性を増大するシ
    ステム。
JP5315563A 1993-01-08 1993-12-15 マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム Expired - Lifetime JP2575598B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US229293A 1993-01-08 1993-01-08
US002292 1993-01-08

Publications (2)

Publication Number Publication Date
JPH06236353A JPH06236353A (ja) 1994-08-23
JP2575598B2 true JP2575598B2 (ja) 1997-01-29

Family

ID=21700105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5315563A Expired - Lifetime JP2575598B2 (ja) 1993-01-08 1993-12-15 マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム

Country Status (5)

Country Link
US (1) US5758120A (ja)
EP (1) EP0605871B1 (ja)
JP (1) JP2575598B2 (ja)
CA (1) CA2107056C (ja)
DE (1) DE69322244T2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835964A (en) * 1996-04-29 1998-11-10 Microsoft Corporation Virtual memory system with hardware TLB and unmapped software TLB updated from mapped task address maps using unmapped kernel address map
US6417848B1 (en) 1997-08-25 2002-07-09 Ati International Srl Pixel clustering for improved graphics throughput
US6438722B1 (en) * 1999-08-11 2002-08-20 International Business Machines Corporation Method and system for testing an integrated circuit
US6393594B1 (en) * 1999-08-11 2002-05-21 International Business Machines Corporation Method and system for performing pseudo-random testing of an integrated circuit
US20020186954A1 (en) * 2001-04-30 2002-12-12 Schott Optovance, Inc. Fiber optic array assembly and method of making the same
GB0214669D0 (en) * 2002-06-26 2002-08-07 Ibm Method for maintaining data access during failure of a controller
US7080220B2 (en) * 2003-07-03 2006-07-18 International Business Machines Corporation Page replacement with a re-reference indicator
US7739476B2 (en) 2005-11-04 2010-06-15 Apple Inc. R and C bit update handling
US8397029B2 (en) * 2007-12-19 2013-03-12 International Business Machines Corporation System and method for cache coherency in a multiprocessor system
GB2474250B (en) * 2009-10-07 2015-05-06 Advanced Risc Mach Ltd Video reference frame retrieval
WO2012070291A1 (ja) * 2010-11-26 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュコヒーレンシ制御の方法、システムおよびプログラム
JP5559932B2 (ja) * 2011-04-05 2014-07-23 ルネサスエレクトロニクス株式会社 半導体装置
US9330017B2 (en) * 2012-11-02 2016-05-03 International Business Machines Corporation Suppressing virtual address translation utilizing bits and instruction tagging
WO2015061731A1 (en) * 2013-10-27 2015-04-30 Advanced Micro Devices, Inc. Input/output memory map unit and northbridge
US9785554B2 (en) 2014-05-30 2017-10-10 International Business Machines Corporation Synchronizing updates of page table status indicators in a multiprocessing environment
US9384133B2 (en) 2014-05-30 2016-07-05 International Business Machines Corporation Synchronizing updates of page table status indicators and performing bulk operations
US10671754B2 (en) 2017-10-20 2020-06-02 International Business Machines Corporation Detection of sensitive personal information in a storage device

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3581291A (en) * 1968-10-31 1971-05-25 Hitachi Ltd Memory control system in multiprocessing system
US3735360A (en) * 1971-08-25 1973-05-22 Ibm High speed buffer operation in a multi-processing system
JPS51115737A (en) * 1975-03-24 1976-10-12 Hitachi Ltd Adress conversion versus control system
US4293910A (en) * 1979-07-02 1981-10-06 International Business Machines Corporation Reconfigurable key-in-storage means for protecting interleaved main storage
US4394731A (en) * 1980-11-10 1983-07-19 International Business Machines Corporation Cache storage line shareability control for a multiprocessor system
US4520441A (en) * 1980-12-15 1985-05-28 Hitachi, Ltd. Data processing system
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
US4577274A (en) * 1983-07-11 1986-03-18 At&T Bell Laboratories Demand paging scheme for a multi-ATB shared memory processing system
US4731739A (en) * 1983-08-29 1988-03-15 Amdahl Corporation Eviction control apparatus
JPS60134949A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ストレ−ジキ−制御方式
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine
US4811206A (en) * 1986-01-16 1989-03-07 Ibm Corporation Data processing system with overlapped address translation and address computation
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
JPS63157250A (ja) * 1986-12-22 1988-06-30 Hitachi Ltd キ−記憶装置
JPH0812636B2 (ja) * 1986-12-24 1996-02-07 株式会社東芝 仮想記憶制御方式の計算機システム
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
JPH02162439A (ja) * 1988-12-15 1990-06-22 Fujitsu Ltd 共有メモリのフリーリスト管理方式
US5075848A (en) * 1989-12-22 1991-12-24 Intel Corporation Object lifetime control in an object-oriented memory protection mechanism
US5339397A (en) * 1990-10-12 1994-08-16 International Business Machines Corporation Hardware primary directory lock
US5317705A (en) * 1990-10-24 1994-05-31 International Business Machines Corporation Apparatus and method for TLB purge reduction in a multi-level machine system
JP2581323B2 (ja) * 1990-12-06 1997-02-12 富士通株式会社 参照ビット,変更ビットの更新方法
JPH0736170B2 (ja) * 1991-04-03 1995-04-19 工業技術院長 マルチプロセッサシステム

Also Published As

Publication number Publication date
DE69322244D1 (de) 1999-01-07
EP0605871A2 (en) 1994-07-13
CA2107056C (en) 1998-06-23
EP0605871A3 (en) 1994-10-19
JPH06236353A (ja) 1994-08-23
US5758120A (en) 1998-05-26
EP0605871B1 (en) 1998-11-25
CA2107056A1 (en) 1994-07-09
DE69322244T2 (de) 1999-07-01

Similar Documents

Publication Publication Date Title
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
JP3618385B2 (ja) データをバッファリングする方法およびそのシステム
US5809530A (en) Method and apparatus for processing multiple cache misses using reload folding and store merging
JP2575598B2 (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US5155832A (en) Method to increase performance in a multi-level cache system by the use of forced cache misses
US5349651A (en) System for translation of virtual to physical addresses by operating memory management processor for calculating location of physical address in memory concurrently with cache comparing virtual addresses for translation
US5437017A (en) Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
US4583165A (en) Apparatus and method for controlling storage access in a multilevel storage system
JP3666689B2 (ja) 仮想アドレス変換方法
US5621896A (en) Data processor with unified store queue permitting hit under miss memory accesses
KR960001945B1 (ko) 우선변환참조버퍼에서 적중수를 증가시키기 위한 장치
KR20170139659A (ko) 메모리를 어드레싱하기 위한 별개의 레지스터들을 가진 컴퓨터 프로세서
US5155828A (en) Computing system with a cache memory and an additional look-aside cache memory
US5946718A (en) Shadow translation look-aside buffer and method of operation
US6766434B2 (en) Method for sharing a translation lookaside buffer between CPUs
US5226132A (en) Multiple virtual addressing using/comparing translation pairs of addresses comprising a space address and an origin address (sto) while using space registers as storage devices for a data processing system
US5926841A (en) Segment descriptor cache for a processor
GB2200481A (en) Maintaining coherence between a microprocessor's integrated cache and external memory
EP0173909B1 (en) Look-aside buffer least recently used marker controller
US5715420A (en) Method and system for efficient memory management in a data processing system utilizing a dual mode translation lookaside buffer
US5619673A (en) Virtual access cache protection bits handling method and apparatus
US5305458A (en) Multiple virtual storage system and address control apparatus having a designation table holding device and translation buffer
US20100146214A1 (en) Method and system for efficient cache locking mechanism
US5687350A (en) Protocol and system for performing line-fill address during copy-back operation
EP0407053B1 (en) Small, fast, look-aside data cache memory