JPH06231043A - 仮想記憶システムにおけるデータ転送装置及びその方法 - Google Patents
仮想記憶システムにおけるデータ転送装置及びその方法Info
- Publication number
- JPH06231043A JPH06231043A JP5293576A JP29357693A JPH06231043A JP H06231043 A JPH06231043 A JP H06231043A JP 5293576 A JP5293576 A JP 5293576A JP 29357693 A JP29357693 A JP 29357693A JP H06231043 A JPH06231043 A JP H06231043A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processor
- transfer
- common memory
- data transfer
- 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
- 238000012546 transfer Methods 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000002093 peripheral effect Effects 0.000 claims abstract description 29
- 230000004044 response Effects 0.000 claims abstract 5
- 238000012545 processing Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 15
- 238000013519 translation Methods 0.000 description 10
- 230000014616 translation Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】 仮想記憶システムにおけるデータ転送のため
の装置及び方法を提供すること。 【構成】 第1の装置と共通メモリの割当て部分との間
のデータ転送を管理する方法が、共通メモリの割当て部
分の再割当て要求を第2の装置から受信するステップ
と、要求された再割当ての拒否を第1の装置から受信す
るステップと、再割当て要求を遅延させるステップとを
含む。さらに、周辺装置と仮想記憶システムにおける共
通メモリとの間のデータ転送方法が、共通メモリの割当
て部分と共にデータを転送することを周辺装置に対して
命令するステップと、共通メモリの割当て部分の再割当
てを要求するステップと、命令されたデータ転送に応答
して要求された再割当ての拒否を周辺装置から受信する
ステップとを含む。
の装置及び方法を提供すること。 【構成】 第1の装置と共通メモリの割当て部分との間
のデータ転送を管理する方法が、共通メモリの割当て部
分の再割当て要求を第2の装置から受信するステップ
と、要求された再割当ての拒否を第1の装置から受信す
るステップと、再割当て要求を遅延させるステップとを
含む。さらに、周辺装置と仮想記憶システムにおける共
通メモリとの間のデータ転送方法が、共通メモリの割当
て部分と共にデータを転送することを周辺装置に対して
命令するステップと、共通メモリの割当て部分の再割当
てを要求するステップと、命令されたデータ転送に応答
して要求された再割当ての拒否を周辺装置から受信する
ステップとを含む。
Description
【0001】
【産業上の利用分野】本発明は、広くは仮想記憶に関
し、特に仮想記憶システム内におけるデータ転送に関す
るものである。
し、特に仮想記憶システム内におけるデータ転送に関す
るものである。
【0002】
【従来の技術】仮想記憶システムにおいては、1または
それ以上のプロセッサが、1またはそれ以上の制御装置
または他の装置と組み合わされた共通メモリを共用する
場合がある。プロセッサは制御装置にデータを転送する
命令を送り且つそのデータの記憶場所のアドレスを送る
ことによって、プロセッサが継続的に介在することな
く、制御装置が共通メモリに直接アクセスすることを要
求したりする。装置による共通メモリへのこのような遠
隔アクセスを、直接メモリアクセス(DMA)と云う。
従来技術においては、プロセッサが仮想記憶管理機構に
対して、装置がアクセスするメモリを変えることを固定
するようまたは妨げるように要求することは普通のこと
であり、それによって、その装置によるDMAプロセス
が完了する前にそのプロセッサまたは他のプロセッサが
そのデータの再割当てをすることを防ぐことができる。
このことは、ピニング(pinning)と呼ばれるプロセス
において共通メモリ内のアクセスされるメモリの記述を
与えることにより実現される。データがピニングされる
と、仮想記憶管理機構への別の呼出しによりピニングを
解かれるまでそのデータは仮想記憶管理機構による再割
当てを受けない。
それ以上のプロセッサが、1またはそれ以上の制御装置
または他の装置と組み合わされた共通メモリを共用する
場合がある。プロセッサは制御装置にデータを転送する
命令を送り且つそのデータの記憶場所のアドレスを送る
ことによって、プロセッサが継続的に介在することな
く、制御装置が共通メモリに直接アクセスすることを要
求したりする。装置による共通メモリへのこのような遠
隔アクセスを、直接メモリアクセス(DMA)と云う。
従来技術においては、プロセッサが仮想記憶管理機構に
対して、装置がアクセスするメモリを変えることを固定
するようまたは妨げるように要求することは普通のこと
であり、それによって、その装置によるDMAプロセス
が完了する前にそのプロセッサまたは他のプロセッサが
そのデータの再割当てをすることを防ぐことができる。
このことは、ピニング(pinning)と呼ばれるプロセス
において共通メモリ内のアクセスされるメモリの記述を
与えることにより実現される。データがピニングされる
と、仮想記憶管理機構への別の呼出しによりピニングを
解かれるまでそのデータは仮想記憶管理機構による再割
当てを受けない。
【0003】
【発明が解決しようとする課題】しかしながら、仮想記
憶管理機構へのそのような呼出しは、多数のコンテキス
ト切換え及び数百もの命令の実行を必要とし、データ処
理システム全体のデータの処理速度が低下したりするた
め、非常に時間を消耗する。加えて、メモリのピニング
は、装置によって実行されているDMAと共通メモリに
データを再割当てしようとする仮想記憶管理機構の必要
度との間において、どの様な優先権も認めない。
憶管理機構へのそのような呼出しは、多数のコンテキス
ト切換え及び数百もの命令の実行を必要とし、データ処
理システム全体のデータの処理速度が低下したりするた
め、非常に時間を消耗する。加えて、メモリのピニング
は、装置によって実行されているDMAと共通メモリに
データを再割当てしようとする仮想記憶管理機構の必要
度との間において、どの様な優先権も認めない。
【0004】
【課題を解決するための手段】本発明は、第1の装置と
共通メモリの割当て部分との間のデータ転送を管理する
方法を提供し、第2の装置からの共通メモリの割当て部
分の再割当て要求を受信するステップと、第1の装置か
ら、要求された再割当てに対する拒否を受信するステッ
プと、その再割当て要求を遅らせるステップとを含む。
さらに本発明は、周辺装置と仮想記憶システム内の共通
メモリとの間でデータを転送する方法を提供し、周辺装
置に対し共通メモリの割当て部分と共にデータを転送す
るように命令するステップと、共通メモリの割当て部分
の再割当てを要求するステップと、命令されたデータ転
送に応答する周辺装置から、要求された再割当てに対す
る拒否を受信するステップとを含む。さらに本発明は、
周辺装置と仮想記憶システム内の共通メモリとの間でデ
ータ転送する装置を提供し、周辺装置に対し共通メモリ
の割当て部分と共にデータを転送するように命令する装
置と、共通メモリの割当て部分の再割当てを要求する装
置と、命令されたデータ転送に応答する周辺装置から、
要求された再割当てに対する拒否を受信する装置とを含
む。
共通メモリの割当て部分との間のデータ転送を管理する
方法を提供し、第2の装置からの共通メモリの割当て部
分の再割当て要求を受信するステップと、第1の装置か
ら、要求された再割当てに対する拒否を受信するステッ
プと、その再割当て要求を遅らせるステップとを含む。
さらに本発明は、周辺装置と仮想記憶システム内の共通
メモリとの間でデータを転送する方法を提供し、周辺装
置に対し共通メモリの割当て部分と共にデータを転送す
るように命令するステップと、共通メモリの割当て部分
の再割当てを要求するステップと、命令されたデータ転
送に応答する周辺装置から、要求された再割当てに対す
る拒否を受信するステップとを含む。さらに本発明は、
周辺装置と仮想記憶システム内の共通メモリとの間でデ
ータ転送する装置を提供し、周辺装置に対し共通メモリ
の割当て部分と共にデータを転送するように命令する装
置と、共通メモリの割当て部分の再割当てを要求する装
置と、命令されたデータ転送に応答する周辺装置から、
要求された再割当てに対する拒否を受信する装置とを含
む。
【0005】
【実施例】図1は、本発明の好適な実施例に用いられる
典型的なデジタルコンピュータ100のブロック図であ
る。このコンピュータは、主メモリ120に接続された
主プロセッサ複合体110、入力装置130及び出力装
置140を有する。主プロセッサ複合体110は、単一
のプロセッサかまたは互いに結合した複数のプロセッサ
を備えている。入力装置130は、キーボード、マウ
ス、タブレットまたは他の形式の入力装置を備える。出
力装置140は、テキストモニタ、プロッタまたは他の
形式の出力装置を備える。主プロセッサ複合体110は
さらに、グラフィクス・アダプタ200、バス・インタ
ーフェース210、ネットワーク・インターフェース2
20及びシステムバス160上の他の周辺装置等の、い
くつかの制御装置やアダプタや他の周辺装置へも接続さ
れている。制御装置は、典型的にはシステムバス上に設
置された装置やアダプタであり、(例えばデータ転送等
において)プロセッサから独立して動作することが可能
である。主プロセッサ複合体はさらに、システムバスに
設置された制御装置を介して他の周辺装置へ接続するこ
とができる。例えば、システムバス160、バス・イン
ターフェース210及びバス218を通って主プロセッ
サ複合体をハードディスク219や他の周辺装置へ接続
することができる。さらに主プロセッサ複合体は、グラ
フィクス・アダプタ200を介してグラフィクス表示装
置等のグラフィクス出力装置209へ接続することもで
きる。グラフィクス・アダプタ200は、システムバス
160上の主プロセッサ110からグラフィクスに関す
る命令を受信する。その後、グラフィクス・アダプタは
それらの命令を実行し、その出力をグラフィクス出力装
置205へ表示する。
典型的なデジタルコンピュータ100のブロック図であ
る。このコンピュータは、主メモリ120に接続された
主プロセッサ複合体110、入力装置130及び出力装
置140を有する。主プロセッサ複合体110は、単一
のプロセッサかまたは互いに結合した複数のプロセッサ
を備えている。入力装置130は、キーボード、マウ
ス、タブレットまたは他の形式の入力装置を備える。出
力装置140は、テキストモニタ、プロッタまたは他の
形式の出力装置を備える。主プロセッサ複合体110は
さらに、グラフィクス・アダプタ200、バス・インタ
ーフェース210、ネットワーク・インターフェース2
20及びシステムバス160上の他の周辺装置等の、い
くつかの制御装置やアダプタや他の周辺装置へも接続さ
れている。制御装置は、典型的にはシステムバス上に設
置された装置やアダプタであり、(例えばデータ転送等
において)プロセッサから独立して動作することが可能
である。主プロセッサ複合体はさらに、システムバスに
設置された制御装置を介して他の周辺装置へ接続するこ
とができる。例えば、システムバス160、バス・イン
ターフェース210及びバス218を通って主プロセッ
サ複合体をハードディスク219や他の周辺装置へ接続
することができる。さらに主プロセッサ複合体は、グラ
フィクス・アダプタ200を介してグラフィクス表示装
置等のグラフィクス出力装置209へ接続することもで
きる。グラフィクス・アダプタ200は、システムバス
160上の主プロセッサ110からグラフィクスに関す
る命令を受信する。その後、グラフィクス・アダプタは
それらの命令を実行し、その出力をグラフィクス出力装
置205へ表示する。
【0006】図2は、図1を参照して記述したデジタル
コンピュータの一部のより詳細なブロック図であり、本
発明の好適な実施例による共通主メモリを使用するマル
チプロセッサ・データ処理システムを示している。デー
タ処理システム100は、主プロセッサ複合体110の
中にプロセッサ300、310及び320を備えてい
る。好適例における主プロセッサ複合体は、共通のオペ
レーティング・システムを共用する少なくとも1つのプ
ロセッサを備えている。さらに別のプロセッサをこの構
成に追加することもできる。プロセッサは、共通主メモ
リ120、グラフィクス・アダプタ200、ネットワー
ク・インターフェース220及びバス・インターフェー
ス210へシステムバス160によって接続されてい
る。それぞれのプロセッサは、種々のメモリ管理機能を
処理するために専用のメモリ管理ユニット(MMU)3
01、311及び321を備えている。好適例における
それぞれのMMUは、仮想記憶変換を処理するために変
換索引バッファ(TLB)302、312及び322並
びに専用のセグメント・レジスタの組304、314及
び324を備えている。他の実施例においては、仮想記
憶変換または他のメモリ管理機能を実行するために他の
機構を用いることもできる。セグメント・レジスタは、
有効アドレスの仮想アドレスへの変換のための好適例に
おけるシステム・エントリを含む。好適例においては1
6個のセグメント・レジスタがあり、それらは有効アド
レスの4ビットにより参照される。変換索引バッファ
は、仮想アドレスを実際のアドレスへ効率的に変換する
ために、最近使用されたページ表のエントリのキャッシ
ュを可能にする。好適例においては、各プロセッサに付
いて約128乃至256のTLBエントリがある。さら
にそれぞれのプロセッサは、仮想記憶転送を処理するた
めに専用の外部アクセス・レジスタ(EAR)306、
316及び326並びに専用の汎用レジスタ(GPR)
の組308、318及び328を備え、命令を実行する
ために少なくとも1つの実効ユニット309、319及
び329を備えている。GPRは、プロセッサによる他
の機能のために使用してもよい。これらのレジスタの使
用に関しては、以下に詳細に述べる。
コンピュータの一部のより詳細なブロック図であり、本
発明の好適な実施例による共通主メモリを使用するマル
チプロセッサ・データ処理システムを示している。デー
タ処理システム100は、主プロセッサ複合体110の
中にプロセッサ300、310及び320を備えてい
る。好適例における主プロセッサ複合体は、共通のオペ
レーティング・システムを共用する少なくとも1つのプ
ロセッサを備えている。さらに別のプロセッサをこの構
成に追加することもできる。プロセッサは、共通主メモ
リ120、グラフィクス・アダプタ200、ネットワー
ク・インターフェース220及びバス・インターフェー
ス210へシステムバス160によって接続されてい
る。それぞれのプロセッサは、種々のメモリ管理機能を
処理するために専用のメモリ管理ユニット(MMU)3
01、311及び321を備えている。好適例における
それぞれのMMUは、仮想記憶変換を処理するために変
換索引バッファ(TLB)302、312及び322並
びに専用のセグメント・レジスタの組304、314及
び324を備えている。他の実施例においては、仮想記
憶変換または他のメモリ管理機能を実行するために他の
機構を用いることもできる。セグメント・レジスタは、
有効アドレスの仮想アドレスへの変換のための好適例に
おけるシステム・エントリを含む。好適例においては1
6個のセグメント・レジスタがあり、それらは有効アド
レスの4ビットにより参照される。変換索引バッファ
は、仮想アドレスを実際のアドレスへ効率的に変換する
ために、最近使用されたページ表のエントリのキャッシ
ュを可能にする。好適例においては、各プロセッサに付
いて約128乃至256のTLBエントリがある。さら
にそれぞれのプロセッサは、仮想記憶転送を処理するた
めに専用の外部アクセス・レジスタ(EAR)306、
316及び326並びに専用の汎用レジスタ(GPR)
の組308、318及び328を備え、命令を実行する
ために少なくとも1つの実効ユニット309、319及
び329を備えている。GPRは、プロセッサによる他
の機能のために使用してもよい。これらのレジスタの使
用に関しては、以下に詳細に述べる。
【0007】共通主メモリ120は、仮想アドレスを実
アドレスに変換するために、エントリ355Aから35
5Nを持つページ表350を有する。好適例におけるこ
れらのエントリは、8ビットまたは2ワードの幅を持
つ。前記のMMU内のTLBは、ページ表のキャッシュ
である。共通主メモリに記憶されたページの例は、ペー
ジX及びページYである。ページ表のエントリは、プロ
セッサ及び/または制御装置が使用するページに付い
て、仮想ページ・アドレスを有効ページ・アドレスに対
応付ける。使用されない有効ページに対するエントリ
は、無効とマークされるので、仮想アドレスを用いるプ
ログラムはそのページにアクセスできない。
アドレスに変換するために、エントリ355Aから35
5Nを持つページ表350を有する。好適例におけるこ
れらのエントリは、8ビットまたは2ワードの幅を持
つ。前記のMMU内のTLBは、ページ表のキャッシュ
である。共通主メモリに記憶されたページの例は、ペー
ジX及びページYである。ページ表のエントリは、プロ
セッサ及び/または制御装置が使用するページに付い
て、仮想ページ・アドレスを有効ページ・アドレスに対
応付ける。使用されない有効ページに対するエントリ
は、無効とマークされるので、仮想アドレスを用いるプ
ログラムはそのページにアクセスできない。
【0008】システムバス上に設置されたいくつかの制
御装置は、仮想記憶転送のために、転送制御/状態レジ
スタ(TCR)202、212及び222並びに任意に
設けたカウンタ(CTR)204、214及び224を
有する。これらのレジスタの使用に関しては、以下に詳
細に述べる。
御装置は、仮想記憶転送のために、転送制御/状態レジ
スタ(TCR)202、212及び222並びに任意に
設けたカウンタ(CTR)204、214及び224を
有する。これらのレジスタの使用に関しては、以下に詳
細に述べる。
【0009】図3は、好適例におけるページ表のエント
リを示している。各ページ表エントリは、1つの仮想ア
ドレス・ページ番号を1つの実アドレス・ページ番号に
対応付ける。第1ワードのカラム0は、そのエントリが
有効であるか否かを示す有効性ビットである。このビッ
トを1(エントリ有効)から0(エントリ無効)へ変え
ることによりエントリを無効にすることができる。第1
ワードのカラム1乃至24は仮想セグメント識別子(V
SID)であり、セグメント・レジスタ内にある24ビ
ットの識別子で有効アドレスから仮想アドレスを作るた
めに使用される。第1ワードのカラム25は、ハッシュ
関数識別子である。第1ワードのカラム26乃至31
は、省略されたページ索引である。ハッシュ関数識別子
及び省略ページ索引は、ページ表エントリのグループを
選択するハッシュ機能で用いられる。第2ワードのカラ
ム0乃至19は、実アドレスを作るために使用される実
アドレス・ページ番号である。第2ワードのカラム20
乃至22及び28乃至29は、将来使用するためにある
いは他の特性のためにとっておく。カラム23は、プロ
セッサまたは装置がこのページを参照していることを示
すために使用される参照ビットである。第2ワードのカ
ラム24は、あるプロセッサまたは装置が、このページ
のある情報を変えたことを示すために使用される変更ビ
ットである。第2ワードのカラム25乃至27は、その
ページがライトスルー、キャッシュ禁止、広域アクセス
可能または他の必要とされるキャッシュ制御機能である
か否かを示すために使用されるキャッシュ制御である。
カラム30乃至31は、そのページがプロセッサにより
実行されているプログラムによって読取り可能、書込み
可能、変更され、または参照されるかどうかを示すため
に使用されるページ保護及びデータ整合ビットである。
別の実施例においては、他のページ保護及びデータ整合
機構を用いることもできる。
リを示している。各ページ表エントリは、1つの仮想ア
ドレス・ページ番号を1つの実アドレス・ページ番号に
対応付ける。第1ワードのカラム0は、そのエントリが
有効であるか否かを示す有効性ビットである。このビッ
トを1(エントリ有効)から0(エントリ無効)へ変え
ることによりエントリを無効にすることができる。第1
ワードのカラム1乃至24は仮想セグメント識別子(V
SID)であり、セグメント・レジスタ内にある24ビ
ットの識別子で有効アドレスから仮想アドレスを作るた
めに使用される。第1ワードのカラム25は、ハッシュ
関数識別子である。第1ワードのカラム26乃至31
は、省略されたページ索引である。ハッシュ関数識別子
及び省略ページ索引は、ページ表エントリのグループを
選択するハッシュ機能で用いられる。第2ワードのカラ
ム0乃至19は、実アドレスを作るために使用される実
アドレス・ページ番号である。第2ワードのカラム20
乃至22及び28乃至29は、将来使用するためにある
いは他の特性のためにとっておく。カラム23は、プロ
セッサまたは装置がこのページを参照していることを示
すために使用される参照ビットである。第2ワードのカ
ラム24は、あるプロセッサまたは装置が、このページ
のある情報を変えたことを示すために使用される変更ビ
ットである。第2ワードのカラム25乃至27は、その
ページがライトスルー、キャッシュ禁止、広域アクセス
可能または他の必要とされるキャッシュ制御機能である
か否かを示すために使用されるキャッシュ制御である。
カラム30乃至31は、そのページがプロセッサにより
実行されているプログラムによって読取り可能、書込み
可能、変更され、または参照されるかどうかを示すため
に使用されるページ保護及びデータ整合ビットである。
別の実施例においては、他のページ保護及びデータ整合
機構を用いることもできる。
【0010】図4は、好適例において32ビットの有効
アドレスを52ビットの仮想アドレスに変換し、その後
32ビットの実アドレスに変換する方法を示している。
有効アドレスから実アドレスへの変換は、好適にはMM
Uにより実行される。データの有効アドレスは、プロセ
ッサ内のソフトウェアにより普通に利用される。データ
の実アドレスは、プロセッサと装置との間の通信におい
て利用される。データの実アドレスはまた、共通主メモ
リ内であれ記憶装置内であれ、実メモリからのデータに
アクセスするために利用される。有効アドレスは、セグ
メント・レジスタと呼ばれる上位の4ビット、16ビッ
トのページ参照及び12ビットのバイト参照を含む。4
ビットのセグメント・レジスタ参照ビットは、16個の
エントリ・セグメント・レジスタをアドレス指定するた
めに使用され、そのアドレス指定されたセグメント・レ
ジスタから24ビットの仮想セグメントIDが得られ
る。その後、そのセグメント・レジスタからの24ビッ
トの仮想セグメントIDは、16ビットのページ参照及
び12ビットのバイト参照と連結されて、52ビットの
仮想アドレスが得られる。その後、52ビットの仮想ア
ドレスは、24ビットの仮想セグメントIDと16ビッ
トのページ参照を連結して40ビットのページ表索引値
をつくることによって、32ビットの実アドレスに変換
することができる。その後、このページ表索引値は、変
換索引バッファ(TLB)もしくは共通メモリ内のペー
ジ表のいずれかから実ページ番号を得るために使用され
る。この結果、20ビットの実ページ番号が12ビット
のバイト参照と連結されて、必要とする32ビットの実
アドレスが作られる。
アドレスを52ビットの仮想アドレスに変換し、その後
32ビットの実アドレスに変換する方法を示している。
有効アドレスから実アドレスへの変換は、好適にはMM
Uにより実行される。データの有効アドレスは、プロセ
ッサ内のソフトウェアにより普通に利用される。データ
の実アドレスは、プロセッサと装置との間の通信におい
て利用される。データの実アドレスはまた、共通主メモ
リ内であれ記憶装置内であれ、実メモリからのデータに
アクセスするために利用される。有効アドレスは、セグ
メント・レジスタと呼ばれる上位の4ビット、16ビッ
トのページ参照及び12ビットのバイト参照を含む。4
ビットのセグメント・レジスタ参照ビットは、16個の
エントリ・セグメント・レジスタをアドレス指定するた
めに使用され、そのアドレス指定されたセグメント・レ
ジスタから24ビットの仮想セグメントIDが得られ
る。その後、そのセグメント・レジスタからの24ビッ
トの仮想セグメントIDは、16ビットのページ参照及
び12ビットのバイト参照と連結されて、52ビットの
仮想アドレスが得られる。その後、52ビットの仮想ア
ドレスは、24ビットの仮想セグメントIDと16ビッ
トのページ参照を連結して40ビットのページ表索引値
をつくることによって、32ビットの実アドレスに変換
することができる。その後、このページ表索引値は、変
換索引バッファ(TLB)もしくは共通メモリ内のペー
ジ表のいずれかから実ページ番号を得るために使用され
る。この結果、20ビットの実ページ番号が12ビット
のバイト参照と連結されて、必要とする32ビットの実
アドレスが作られる。
【0011】図5は、本発明の好適例において有効アド
レスを実アドレスに変換する方法を示した流れ図であ
る。第1のステップ400では、図2のプロセッサ30
0等のプロセッサが、32ビットの有効アドレスの上位
の4ビットを利用して専用の16個のエントリ・セグメ
ント・レジスタ304を読取ることにより、24ビット
の仮想セグメントIDを得る。ステップ410では、プ
ロセッサが24ビットの仮想セグメントIDを16ビッ
トのページ参照と連結して、40ビットのページ表索引
値を得る。ステップ420では、得られた40ビットの
ページ表索引値をハッシングすることにより、ページ表
エントリの32ビットの実アドレスを得る。ステップ4
30ではプロセッサ300が、そのページ表エントリが
そのプロセッサ専用の変換索引バッファ(TLB)30
2内にあるか否かを判断する。そのページ表エントリが
あった場合は、ステップ440でそのプロセッサ専用の
TLB302内のエントリを探し出して20ビットの実
ページ番号を得る。そしてステップ460において、そ
の実ページ番号が12ビットのバイト参照と連結され
て、32ビットの実アドレスが得られる。もしステップ
430においてページ表参照がプロセッサ専用の変換索
引バッファ内になかった場合、ステップ450において
プロセッサは共通主メモリ内のページ表を読取ることに
より必要とする実ページ番号を得る。そして処理は、ス
テップ460へ続く。
レスを実アドレスに変換する方法を示した流れ図であ
る。第1のステップ400では、図2のプロセッサ30
0等のプロセッサが、32ビットの有効アドレスの上位
の4ビットを利用して専用の16個のエントリ・セグメ
ント・レジスタ304を読取ることにより、24ビット
の仮想セグメントIDを得る。ステップ410では、プ
ロセッサが24ビットの仮想セグメントIDを16ビッ
トのページ参照と連結して、40ビットのページ表索引
値を得る。ステップ420では、得られた40ビットの
ページ表索引値をハッシングすることにより、ページ表
エントリの32ビットの実アドレスを得る。ステップ4
30ではプロセッサ300が、そのページ表エントリが
そのプロセッサ専用の変換索引バッファ(TLB)30
2内にあるか否かを判断する。そのページ表エントリが
あった場合は、ステップ440でそのプロセッサ専用の
TLB302内のエントリを探し出して20ビットの実
ページ番号を得る。そしてステップ460において、そ
の実ページ番号が12ビットのバイト参照と連結され
て、32ビットの実アドレスが得られる。もしステップ
430においてページ表参照がプロセッサ専用の変換索
引バッファ内になかった場合、ステップ450において
プロセッサは共通主メモリ内のページ表を読取ることに
より必要とする実ページ番号を得る。そして処理は、ス
テップ460へ続く。
【0012】本発明の好適例においては、システムバス
上のプロセッサと装置との間でデータを転送するために
データ転送命令がプロセッサ内で用いられ、データ転送
を開始する。図6は、共通主メモリからシステムバス上
の装置へデータ転送を開始するためにプロセッサで使用
される「LOAD」命令による転送を示している。図7
は、システムバス上の装置から共通主メモリへデータ転
送を開始するためにプロセッサで使用される「STOR
E」命令による転送を示している。
上のプロセッサと装置との間でデータを転送するために
データ転送命令がプロセッサ内で用いられ、データ転送
を開始する。図6は、共通主メモリからシステムバス上
の装置へデータ転送を開始するためにプロセッサで使用
される「LOAD」命令による転送を示している。図7
は、システムバス上の装置から共通主メモリへデータ転
送を開始するためにプロセッサで使用される「STOR
E」命令による転送を示している。
【0013】図6を参照すると、「LOAD」命令によ
る転送は、カラム0乃至5の基本的なop(オペレーシ
ョン)コード及びカラム21乃至30の拡張opコード
を含む。これは好適例において使用されるopコード機
構であるが、他の例においては別のopコードを使用す
ることもできる。命令のカラム11乃至15及び16乃
至20は、プロセッサの汎用レジスタ内のレジスタRA
及びRBに関連する。レジスタRA及びRBの内容は、
メモリ内の位置の有効アドレスを計算するために使用さ
れ、制御装置はそこから指定された量のデータを転送す
る。好適例によればそのメモリ位置の有効アドレスは、
レジスタRAの値が0でない場合、レジスタRA内の値
とレジスタRB内の値を足したものである。RAが0の
場合(即ち、1乃至31に等しくない)、メモリ位置の
有効アドレスはレジスタRB内の値に等しい。もちろ
ん、他の実施例においては有効アドレスを作るために別
の機構を用いることができる。有効アドレスが決定され
ると、プロセッサが上記の手順を用いて対応する実アド
レスを決定できる。プロセッサは、前記のように計算さ
れた実アドレスをシステムバス上の制御装置へ送り、そ
の代わりに、制御装置から32ビットのオペランドを受
信する。このオペランドは、命令のカラム6乃至10の
目標(RT)フィールドにより指定されたGPR内に置
かれる。ビット31は、将来使用するためにとってお
く。
る転送は、カラム0乃至5の基本的なop(オペレーシ
ョン)コード及びカラム21乃至30の拡張opコード
を含む。これは好適例において使用されるopコード機
構であるが、他の例においては別のopコードを使用す
ることもできる。命令のカラム11乃至15及び16乃
至20は、プロセッサの汎用レジスタ内のレジスタRA
及びRBに関連する。レジスタRA及びRBの内容は、
メモリ内の位置の有効アドレスを計算するために使用さ
れ、制御装置はそこから指定された量のデータを転送す
る。好適例によればそのメモリ位置の有効アドレスは、
レジスタRAの値が0でない場合、レジスタRA内の値
とレジスタRB内の値を足したものである。RAが0の
場合(即ち、1乃至31に等しくない)、メモリ位置の
有効アドレスはレジスタRB内の値に等しい。もちろ
ん、他の実施例においては有効アドレスを作るために別
の機構を用いることができる。有効アドレスが決定され
ると、プロセッサが上記の手順を用いて対応する実アド
レスを決定できる。プロセッサは、前記のように計算さ
れた実アドレスをシステムバス上の制御装置へ送り、そ
の代わりに、制御装置から32ビットのオペランドを受
信する。このオペランドは、命令のカラム6乃至10の
目標(RT)フィールドにより指定されたGPR内に置
かれる。ビット31は、将来使用するためにとってお
く。
【0014】図7を参照すると、共通メモリへの転送す
る「STORE]命令は、カラム0乃至5の基本的なo
pコード及びカラム21乃至30の拡張opコードを含
む。これは好適例において使用されるopコード機構で
あるが、他の例においては別のopコードを使用するこ
ともできる。命令のカラム11乃至15及び16乃至2
0は、プロセッサの汎用レジスタ内のレジスタRA及び
RBに関連する。レジスタRA及びRBの内容は、メモ
リ内の位置の有効アドレスを計算するために使用され、
制御装置はそこへ指定された量のデータを転送する。好
適例によればそのメモリ位置の有効アドレスは、レジス
タRAの値が0でない場合、レジスタRA内の値とレジ
スタRB内の値を足したものである。RAが0の場合
(即ち、1乃至31に等しくない)、メモリ位置の有効
アドレスはレジスタRB内の値に等しい。もちろん、他
の実施例においては有効アドレスを作るために別の機構
を用いることができる。有効アドレスが決定されると、
プロセッサが上記の手順を用いて対応する実アドレスを
決定できる。プロセッサは、前記のように計算された実
アドレスを、命令のカラム6乃至10のソース(RS)
フィールドにより指定されたRSレジスタの内容と共に
制御装置へ送る。ビット31は、将来使用するためにと
っておく。
る「STORE]命令は、カラム0乃至5の基本的なo
pコード及びカラム21乃至30の拡張opコードを含
む。これは好適例において使用されるopコード機構で
あるが、他の例においては別のopコードを使用するこ
ともできる。命令のカラム11乃至15及び16乃至2
0は、プロセッサの汎用レジスタ内のレジスタRA及び
RBに関連する。レジスタRA及びRBの内容は、メモ
リ内の位置の有効アドレスを計算するために使用され、
制御装置はそこへ指定された量のデータを転送する。好
適例によればそのメモリ位置の有効アドレスは、レジス
タRAの値が0でない場合、レジスタRA内の値とレジ
スタRB内の値を足したものである。RAが0の場合
(即ち、1乃至31に等しくない)、メモリ位置の有効
アドレスはレジスタRB内の値に等しい。もちろん、他
の実施例においては有効アドレスを作るために別の機構
を用いることができる。有効アドレスが決定されると、
プロセッサが上記の手順を用いて対応する実アドレスを
決定できる。プロセッサは、前記のように計算された実
アドレスを、命令のカラム6乃至10のソース(RS)
フィールドにより指定されたRSレジスタの内容と共に
制御装置へ送る。ビット31は、将来使用するためにと
っておく。
【0015】図8及び図9は、仮想データ転送を実行す
る場合に、好適例において使用される外部アクセス・レ
ジスタ(EAR)及び転送制御/状態レジスタ(TC
R)を示している。EARは特定のプロセッサに関係
し、TCRは特定の制御装置と関係している。
る場合に、好適例において使用される外部アクセス・レ
ジスタ(EAR)及び転送制御/状態レジスタ(TC
R)を示している。EARは特定のプロセッサに関係
し、TCRは特定の制御装置と関係している。
【0016】図8は、各プロセッサが作り、ソフトウェ
アにより設定されるEARであり、いずれの制御装置が
その特定のプロセッサにより実行された転送命令を受け
入れるかを示す。カラム26乃至31には、システムバ
ス上のいずれの装置がそのデータ転送を受け入れるかを
識別するための資源識別子(RID)が記憶されてい
る。各制御装置は独自のRIDを持っており、そのRI
Dがシステムバス上に提示されたとき命令を受信する。
複数のRIDを認識させることにより複数のプロセッサ
を同時にサポートする制御装置を設けることが可能であ
る。その場合、その制御装置を用いるそれぞれのプロセ
ッサが、独自のRIDを用いてその制御装置と通信する
ことにより、その制御装置が異なるプロセッサにより使
用される複数のチャネルを有しているかのような効果を
創出するであろう。その制御装置により認識される各R
IDは、各RIDに結び付いた別々のTCRを持たなけ
ればならない。しかしながら、あるプロセッサが特定の
装置にはアクセスする必要がない場合やRIDの数が少
ない場合は、よくあることである。さらに、あるプロセ
ッサがある装置に対し、様々な使用に応じて時により複
数のRIDを用いる場合もある。カラム1は、現在実行
しているプロセスがデータ転送命令を実効可能であるか
否かを示すイネーブル・ビットである。このイネーブル
機構は、実行されるプロセスによる装置へのアクセスを
直列化するために有用である。
アにより設定されるEARであり、いずれの制御装置が
その特定のプロセッサにより実行された転送命令を受け
入れるかを示す。カラム26乃至31には、システムバ
ス上のいずれの装置がそのデータ転送を受け入れるかを
識別するための資源識別子(RID)が記憶されてい
る。各制御装置は独自のRIDを持っており、そのRI
Dがシステムバス上に提示されたとき命令を受信する。
複数のRIDを認識させることにより複数のプロセッサ
を同時にサポートする制御装置を設けることが可能であ
る。その場合、その制御装置を用いるそれぞれのプロセ
ッサが、独自のRIDを用いてその制御装置と通信する
ことにより、その制御装置が異なるプロセッサにより使
用される複数のチャネルを有しているかのような効果を
創出するであろう。その制御装置により認識される各R
IDは、各RIDに結び付いた別々のTCRを持たなけ
ればならない。しかしながら、あるプロセッサが特定の
装置にはアクセスする必要がない場合やRIDの数が少
ない場合は、よくあることである。さらに、あるプロセ
ッサがある装置に対し、様々な使用に応じて時により複
数のRIDを用いる場合もある。カラム1は、現在実行
しているプロセスがデータ転送命令を実効可能であるか
否かを示すイネーブル・ビットである。このイネーブル
機構は、実行されるプロセスによる装置へのアクセスを
直列化するために有用である。
【0017】図9は、データ転送に用いられる装置の制
御/状態情報を含むTCRを示している。TCRの内容
は、RTにより指定されるプロセッサが「LOAD」命
令による転送を実行したとき、そのプロセッサ内のGP
Rに転送される。カラム0乃至7は、転送されているデ
ータの有効アドレスのビット12乃至19を含む。後に
図10乃至図13を参照して詳細に述べるように、この
データは、プロセッサが共通主メモリ内の転送されるデ
ータを変えることを防ぐために用いられることになる。
カラム8乃至11には、そのデータに対してどの様な操
作を行うべきかを示す命令が含まれている(例えば、圧
縮せよ、グラフィクス表示装置上のオブジェクトを描
け、等である)。カラム12は、先の転送に対する例外
が生じたか否かを示す例外ビットを含む。そのような例
外の例としては、TLB同期、プロセス切換え、または
ページ交差があり、それらに関しては以下に詳細に述べ
る。値0は例外が無いことを示し、値1は例外を示す。
カラム13は、カレント転送データ命令が装置により受
信されたかあるいは拒否されたかを示す命令ワード受信
または拒否ビットを含む。カラム14は、先に開始され
た転送が完了したか否かを示す命令完了ビットを含む。
値0は命令が完了していなかったことを示し、値1は命
令が完了したことを示す。カラム15は、このデータ転
送に使用するメモリがピニングされたか否かを示すメモ
リ・ピニング・ビットを含む。本発明は、メモリをピニ
ングすることなくデータを転送することを可能にするに
もかかわらず、データ量の多い実時間アプリケーション
(例えばマルチメディア)や非常に大きいデータ転送
等、いくつかのデータ転送についてはメモリをピニング
することが好ましい場合もある。カラム16乃至31
は、データ転送命令により転送されるデータの長さもし
くは転送により残される部分の長さ示す。
御/状態情報を含むTCRを示している。TCRの内容
は、RTにより指定されるプロセッサが「LOAD」命
令による転送を実行したとき、そのプロセッサ内のGP
Rに転送される。カラム0乃至7は、転送されているデ
ータの有効アドレスのビット12乃至19を含む。後に
図10乃至図13を参照して詳細に述べるように、この
データは、プロセッサが共通主メモリ内の転送されるデ
ータを変えることを防ぐために用いられることになる。
カラム8乃至11には、そのデータに対してどの様な操
作を行うべきかを示す命令が含まれている(例えば、圧
縮せよ、グラフィクス表示装置上のオブジェクトを描
け、等である)。カラム12は、先の転送に対する例外
が生じたか否かを示す例外ビットを含む。そのような例
外の例としては、TLB同期、プロセス切換え、または
ページ交差があり、それらに関しては以下に詳細に述べ
る。値0は例外が無いことを示し、値1は例外を示す。
カラム13は、カレント転送データ命令が装置により受
信されたかあるいは拒否されたかを示す命令ワード受信
または拒否ビットを含む。カラム14は、先に開始され
た転送が完了したか否かを示す命令完了ビットを含む。
値0は命令が完了していなかったことを示し、値1は命
令が完了したことを示す。カラム15は、このデータ転
送に使用するメモリがピニングされたか否かを示すメモ
リ・ピニング・ビットを含む。本発明は、メモリをピニ
ングすることなくデータを転送することを可能にするに
もかかわらず、データ量の多い実時間アプリケーション
(例えばマルチメディア)や非常に大きいデータ転送
等、いくつかのデータ転送についてはメモリをピニング
することが好ましい場合もある。カラム16乃至31
は、データ転送命令により転送されるデータの長さもし
くは転送により残される部分の長さ示す。
【0018】図10は、好適例を用いるデータ転送を記
述する流れ図である。ステップ500において、プロセ
ッサ上で実行中のプログラムがデータ転送を初期化す
る。このプロセスでは、目的とする装置に対する転送ロ
ード命令を汎用レジスタに直接ロードするかもしくは構
成する。この命令は、転送されるデータに対して行われ
る操作とこのデータの長さとを含む。次にこのプロセス
は、転送されるデータの有効アドレスの基準アドレスと
オフセットとを汎用レジスタにロードする。初期化の間
もしくは初期化に先だってこのプロセスは、オペレーテ
ィング・システムに対し、EARにロードされた目的と
する装置についての資源識別子(RID)を獲得するた
めに呼出しを行う。そしてオペレーティング・システム
は、EARに制御装置のRIDをロードする際に、EA
R内のイネーブル・ビットを設定しなければならない。
その後オペレーティング・システムは、データ転送につ
いての適切な情報と共にTCRを制御装置にロードす
る。
述する流れ図である。ステップ500において、プロセ
ッサ上で実行中のプログラムがデータ転送を初期化す
る。このプロセスでは、目的とする装置に対する転送ロ
ード命令を汎用レジスタに直接ロードするかもしくは構
成する。この命令は、転送されるデータに対して行われ
る操作とこのデータの長さとを含む。次にこのプロセス
は、転送されるデータの有効アドレスの基準アドレスと
オフセットとを汎用レジスタにロードする。初期化の間
もしくは初期化に先だってこのプロセスは、オペレーテ
ィング・システムに対し、EARにロードされた目的と
する装置についての資源識別子(RID)を獲得するた
めに呼出しを行う。そしてオペレーティング・システム
は、EARに制御装置のRIDをロードする際に、EA
R内のイネーブル・ビットを設定しなければならない。
その後オペレーティング・システムは、データ転送につ
いての適切な情報と共にTCRを制御装置にロードす
る。
【0019】第2のステップ510でプロセッサは、プ
ロセスの命令を受信し、そしてその命令がデータ転送命
令であるか否かを判断するために復号化する。データ転
送命令である場合、ここに記述したようにその命令が実
行される。ステップ520では、プロセッサがEARを
検査して、イネーブル・ビットが目的とする装置につい
てオンであるか否かを判断する。オンでない場合は、ス
テップ525においてプログラム割込みが発生する。ス
テップ530において、プロセッサは有効アドレスを仮
想アドレスに変換する。このことによりページ表エント
リ索引が作られ、それによってプロセッサがページ表か
らの当該ページに関連する全ての制御情報にアクセスす
る。ステップ540でプロセッサは、ページ表エントリ
から、ページ保護ビットを使用するページについてのペ
ージ保護を検査する(通常、このページ表エントリはT
LBキャッシュ内に存在する)。ステップ550では、
共通主メモリといずれのディスク記憶装置の間において
もデータ整合性を維持するために、適切な参照及び/ま
たは変更ビットが設定される。これが「LOAD」命令
によるデータ転送である場合、参照ビットが未だ設定さ
れていないなら、プロセッサはページ表エントリに参照
ビットを設定する。これが「STORE」命令によるデ
ータ転送である場合、参照ビット及び変更ビットが未だ
設定されていないなら、双方のビットがページ表エント
リに設定される。
ロセスの命令を受信し、そしてその命令がデータ転送命
令であるか否かを判断するために復号化する。データ転
送命令である場合、ここに記述したようにその命令が実
行される。ステップ520では、プロセッサがEARを
検査して、イネーブル・ビットが目的とする装置につい
てオンであるか否かを判断する。オンでない場合は、ス
テップ525においてプログラム割込みが発生する。ス
テップ530において、プロセッサは有効アドレスを仮
想アドレスに変換する。このことによりページ表エント
リ索引が作られ、それによってプロセッサがページ表か
らの当該ページに関連する全ての制御情報にアクセスす
る。ステップ540でプロセッサは、ページ表エントリ
から、ページ保護ビットを使用するページについてのペ
ージ保護を検査する(通常、このページ表エントリはT
LBキャッシュ内に存在する)。ステップ550では、
共通主メモリといずれのディスク記憶装置の間において
もデータ整合性を維持するために、適切な参照及び/ま
たは変更ビットが設定される。これが「LOAD」命令
によるデータ転送である場合、参照ビットが未だ設定さ
れていないなら、プロセッサはページ表エントリに参照
ビットを設定する。これが「STORE」命令によるデ
ータ転送である場合、参照ビット及び変更ビットが未だ
設定されていないなら、双方のビットがページ表エント
リに設定される。
【0020】ステップ560でプロセッサは、転送され
るデータの実アドレスをEARからのRID(これは転
送装置または制御装置を識別する)及び転送形式(これ
はその転送が「LOAD」命令によるものかまたは「S
TORE」命令によるものかを示す)と共にバス上に出
す。この時点で、装置は要求されたデータ転送及びデー
タに対して指示された操作を実行するために必要な情報
を有する。任意であるがこのプロセスは、要求された転
送が受信されたか、例外なく完了されたか、あるいは他
の状態であるかを判断するために装置に問合わせること
も可能である。プロセスが仮想記憶をページアウトしよ
うとする場合に、データ整合性を確保するためにプロセ
ッサと装置との間を方法論により結び付ける必要があ
る。好適例における方法論は図13及び図14を参照し
て記述することとする。
るデータの実アドレスをEARからのRID(これは転
送装置または制御装置を識別する)及び転送形式(これ
はその転送が「LOAD」命令によるものかまたは「S
TORE」命令によるものかを示す)と共にバス上に出
す。この時点で、装置は要求されたデータ転送及びデー
タに対して指示された操作を実行するために必要な情報
を有する。任意であるがこのプロセスは、要求された転
送が受信されたか、例外なく完了されたか、あるいは他
の状態であるかを判断するために装置に問合わせること
も可能である。プロセスが仮想記憶をページアウトしよ
うとする場合に、データ整合性を確保するためにプロセ
ッサと装置との間を方法論により結び付ける必要があ
る。好適例における方法論は図13及び図14を参照し
て記述することとする。
【0021】図11は、図10を参照して記述したシス
テムバス上のプロセッサから受信したデータ転送命令を
装置が実行する方法を示している。ステップ600で装
置は、その装置に対応付けられたRIDを共に持つ、シ
ステムバス上のデータ転送のトランザクション形式に対
してバスをモニタし続けている。これを受信すると、ス
テップ610において装置は、バスからの実アドレスを
ラッチして、TCRのカラム13内の命令受信ビットを
設定する。データ転送命令が「STORE」命令である
場合、TCRは、データバスからのデータをラッチする
(これは、開始したプロセッサのソースGPR(RS)
からきたものである)。データ転送命令が「LOAD」
命令である場合、TCRの内容がバス上に出される(こ
れは、開始したプロセッサの目標GPR(RT)にラッ
チされるものである)。ステップ630で装置は、デー
タ転送が完了したか否かを判断する。完了している場
合、装置はTCR内の完了ビットを設定して操作を停止
する。完了していない場合、ステップ640において装
置は、転送されるデータのユニットがページ境界にまた
がっているか否かを判断する。転送がページ境界にまた
がっていない場合、ステップ650において装置はバス
を調停し、装置と共通主メモリとの間をバスト通してデ
ータのユニットを転送する(「LOAD」命令によるデ
ータ転送においては共通主メモリから装置へ。または
「STORE」命令によるデータ転送においては装置か
ら共通主メモリへ)。
テムバス上のプロセッサから受信したデータ転送命令を
装置が実行する方法を示している。ステップ600で装
置は、その装置に対応付けられたRIDを共に持つ、シ
ステムバス上のデータ転送のトランザクション形式に対
してバスをモニタし続けている。これを受信すると、ス
テップ610において装置は、バスからの実アドレスを
ラッチして、TCRのカラム13内の命令受信ビットを
設定する。データ転送命令が「STORE」命令である
場合、TCRは、データバスからのデータをラッチする
(これは、開始したプロセッサのソースGPR(RS)
からきたものである)。データ転送命令が「LOAD」
命令である場合、TCRの内容がバス上に出される(こ
れは、開始したプロセッサの目標GPR(RT)にラッ
チされるものである)。ステップ630で装置は、デー
タ転送が完了したか否かを判断する。完了している場
合、装置はTCR内の完了ビットを設定して操作を停止
する。完了していない場合、ステップ640において装
置は、転送されるデータのユニットがページ境界にまた
がっているか否かを判断する。転送がページ境界にまた
がっていない場合、ステップ650において装置はバス
を調停し、装置と共通主メモリとの間をバスト通してデ
ータのユニットを転送する(「LOAD」命令によるデ
ータ転送においては共通主メモリから装置へ。または
「STORE」命令によるデータ転送においては装置か
ら共通主メモリへ)。
【0022】図12は、プロセッサがTLBにより指定
されたデータの仮想ページングを行うに先立って、全て
のTLBを同期させようとするプロセッサを示す流れ図
である。ステップ700で、仮想ページが取り除かれよ
うとし且つ下にある実ページが別の仮想アドレスまたは
プログラムに再割当てされようとしている場合、その再
割当てされようとしているページについての変換を含む
ページ表エントリは変えられ、その変換は無効にされ
る。それによりそのプロセッサのTLB内の変えられた
エントリのいずれの複写も無効にされる。そしてプロセ
ッサは、TLBエントリ無効(TLBEI)をシステム
バス上に出す。それには、仮想ページングにより再び対
応付けされているデータの有効アドレスのビット12乃
至19が含まれる。有効アドレスビットは、プロセッサ
が装置により転送されているデータを変えたり再び対応
付けしたりできるか否かを判断するために、装置により
使用される。ステップ710においてプロセッサは、シ
ステムバス上にTLB同期命令を出すことによって整合
性を維持するため全てのTLBを同期させようと試み
る。ステップ720においてプロセッサは、TLBを同
期させることに関係のある装置からの再試行信号を受信
するか否かを判断するための期間待機する。以下に図1
3を参照して記述するように、プロセッサが装置により
転送されているデータを変えたり再び対応付けしたりで
きそうな場合は、その装置がプロセッサからのTLB同
期を再試行させることがある。プロセッサがシステムバ
ス上の再試行信号を受信した場合は、ある期間待機して
から再びTLBを同期させることを試みるためにステッ
プ710を繰返す。プロセッサが再試行信号を受信しな
い場合は、ステップ730において仮想ページングを続
ける。
されたデータの仮想ページングを行うに先立って、全て
のTLBを同期させようとするプロセッサを示す流れ図
である。ステップ700で、仮想ページが取り除かれよ
うとし且つ下にある実ページが別の仮想アドレスまたは
プログラムに再割当てされようとしている場合、その再
割当てされようとしているページについての変換を含む
ページ表エントリは変えられ、その変換は無効にされ
る。それによりそのプロセッサのTLB内の変えられた
エントリのいずれの複写も無効にされる。そしてプロセ
ッサは、TLBエントリ無効(TLBEI)をシステム
バス上に出す。それには、仮想ページングにより再び対
応付けされているデータの有効アドレスのビット12乃
至19が含まれる。有効アドレスビットは、プロセッサ
が装置により転送されているデータを変えたり再び対応
付けしたりできるか否かを判断するために、装置により
使用される。ステップ710においてプロセッサは、シ
ステムバス上にTLB同期命令を出すことによって整合
性を維持するため全てのTLBを同期させようと試み
る。ステップ720においてプロセッサは、TLBを同
期させることに関係のある装置からの再試行信号を受信
するか否かを判断するための期間待機する。以下に図1
3を参照して記述するように、プロセッサが装置により
転送されているデータを変えたり再び対応付けしたりで
きそうな場合は、その装置がプロセッサからのTLB同
期を再試行させることがある。プロセッサがシステムバ
ス上の再試行信号を受信した場合は、ある期間待機して
から再びTLBを同期させることを試みるためにステッ
プ710を繰返す。プロセッサが再試行信号を受信しな
い場合は、ステップ730において仮想ページングを続
ける。
【0023】図13は、プロセッサにより要求されたT
LB同期操作を再試行するか否かを装置が判断する流れ
図を示している。ステップ800において装置は、その
装置についてのデータ転送が進行中であるか否かを判断
する。転送中でない場合、ステップ805においてプロ
セッサは、共通主メモリをの変更するためにシステムバ
スをモニタしない。ステップ810において装置は、シ
ステムバス上のTLBエントリ無効(TLBEI)を観
測する。TLBEIには、プロセッサがページングアウ
トすることによって再割当てされるデータの有効アドレ
スの一部を含んでいる。その有効アドレスの一部がTC
Rに記憶された有効アドレスの一部と適合しない場合、
処理はステップ800に戻る。適合する場合は、ステッ
プ820において装置はTLB同期を受信するために待
機する。そして受信しない場合、処理はステップ800
に続く。
LB同期操作を再試行するか否かを装置が判断する流れ
図を示している。ステップ800において装置は、その
装置についてのデータ転送が進行中であるか否かを判断
する。転送中でない場合、ステップ805においてプロ
セッサは、共通主メモリをの変更するためにシステムバ
スをモニタしない。ステップ810において装置は、シ
ステムバス上のTLBエントリ無効(TLBEI)を観
測する。TLBEIには、プロセッサがページングアウ
トすることによって再割当てされるデータの有効アドレ
スの一部を含んでいる。その有効アドレスの一部がTC
Rに記憶された有効アドレスの一部と適合しない場合、
処理はステップ800に戻る。適合する場合は、ステッ
プ820において装置はTLB同期を受信するために待
機する。そして受信しない場合、処理はステップ800
に続く。
【0024】TLB同期命令を受信した場合、ステップ
830において装置は、TLB同期を送っているプロセ
ッサに対して再試行信号を送ることによってTLB同期
を再試行させるか否かを判断する。好適例において装置
は、システムバスの割込み待ち時間に関係する許容でき
る期間内にデータ転送を完了できるか否かを判断するこ
とによって、TLB同期を再試行させるか否かを判断す
る。この装置は、転送されるデータの残りの部分をオー
プンデバイスの物理的データバッファに記憶できるか否
かを判断することによってこの判断を行う。データ転送
がバッファのオーバフロー無しに完了できる場合、ステ
ップ840において装置はシステムバス上に再試行信号
を出すことによって、プロセッサがTLBを同期させよ
うとするいかなる試みも妨げる。TLB同期により先に
データ転送命令でその装置に指定されたメモリ位置を変
えることが可能になるので、プロセス再試行信号が必要
になる。なぜなら、TLBが同期したならばオペレーテ
ィング・システムは自由に仮想ページングを実行できる
からである。この装置は、開始されたデータ転送及び関
連する操作が完了するまで、プロセッサのTLB同期命
令を再試行させ続けようとする。データ転送が装置バッ
ファのオーバフロー無しに完了し得ない場合、ステップ
840において、装置はTCRの例外ビットを設定して
操作を停止する。しばらく後に、データ転送を開始した
プログラムはそのデータ転送を再開する。
830において装置は、TLB同期を送っているプロセ
ッサに対して再試行信号を送ることによってTLB同期
を再試行させるか否かを判断する。好適例において装置
は、システムバスの割込み待ち時間に関係する許容でき
る期間内にデータ転送を完了できるか否かを判断するこ
とによって、TLB同期を再試行させるか否かを判断す
る。この装置は、転送されるデータの残りの部分をオー
プンデバイスの物理的データバッファに記憶できるか否
かを判断することによってこの判断を行う。データ転送
がバッファのオーバフロー無しに完了できる場合、ステ
ップ840において装置はシステムバス上に再試行信号
を出すことによって、プロセッサがTLBを同期させよ
うとするいかなる試みも妨げる。TLB同期により先に
データ転送命令でその装置に指定されたメモリ位置を変
えることが可能になるので、プロセス再試行信号が必要
になる。なぜなら、TLBが同期したならばオペレーテ
ィング・システムは自由に仮想ページングを実行できる
からである。この装置は、開始されたデータ転送及び関
連する操作が完了するまで、プロセッサのTLB同期命
令を再試行させ続けようとする。データ転送が装置バッ
ファのオーバフロー無しに完了し得ない場合、ステップ
840において、装置はTCRの例外ビットを設定して
操作を停止する。しばらく後に、データ転送を開始した
プログラムはそのデータ転送を再開する。
【0025】別の実施例では、いずれの関係するTLB
同期命令に対しても、データ転送がその装置のバッファ
のオーバフロー無しに完了でき且つ自動的に再試行信号
を送るか否かを装置が予め決めていてもよい。さらに装
置は、いずれのTLB同期命令に対しても、その装置が
転送しているデータにそのTLB同期が影響を及ぼすか
否かを検査することなく再試行信号を出してもよい。さ
らに装置は、例外を通知する前に特定の回数だけ自動的
にTLB同期を再試行させるためにカウンタを使用して
もよい。このカウンタは残っている試行回数を示すもの
であり、装置は、データ転送が完了する前にプロセッサ
が共通主メモリのページ表を変更することを防ぐために
これを利用できる。さらに装置は、要求されたTLB同
期を、遅延としてしばらく後まで拒否することもでき
る。本発明は、TLB同期やTLBEI命令を用いない
プロセッサについても利用することができる。その場
合、TLBの無効及び同期機能は、ソフトウェア及びプ
ロセッサ間通信を用いて行われる。しかしながら、いず
れかのデータ転送が完了したことあるいは終了すること
を確認するため、制御装置の状態を読取ることによって
制御装置をポーリングすることが必要となろう。
同期命令に対しても、データ転送がその装置のバッファ
のオーバフロー無しに完了でき且つ自動的に再試行信号
を送るか否かを装置が予め決めていてもよい。さらに装
置は、いずれのTLB同期命令に対しても、その装置が
転送しているデータにそのTLB同期が影響を及ぼすか
否かを検査することなく再試行信号を出してもよい。さ
らに装置は、例外を通知する前に特定の回数だけ自動的
にTLB同期を再試行させるためにカウンタを使用して
もよい。このカウンタは残っている試行回数を示すもの
であり、装置は、データ転送が完了する前にプロセッサ
が共通主メモリのページ表を変更することを防ぐために
これを利用できる。さらに装置は、要求されたTLB同
期を、遅延としてしばらく後まで拒否することもでき
る。本発明は、TLB同期やTLBEI命令を用いない
プロセッサについても利用することができる。その場
合、TLBの無効及び同期機能は、ソフトウェア及びプ
ロセッサ間通信を用いて行われる。しかしながら、いず
れかのデータ転送が完了したことあるいは終了すること
を確認するため、制御装置の状態を読取ることによって
制御装置をポーリングすることが必要となろう。
【0026】結論として本発明は、ページがデータ転送
操作についてピニングされなければならない必要性から
生じるオーバヘッド及び性能の低下を避けるものであ
る。さらに本発明は、仮想記憶システムにおいて望まし
い、ピニングされるページの数を最少にすることを助け
るものである。
操作についてピニングされなければならない必要性から
生じるオーバヘッド及び性能の低下を避けるものであ
る。さらに本発明は、仮想記憶システムにおいて望まし
い、ピニングされるページの数を最少にすることを助け
るものである。
【0027】以上のように、本発明を特定の実施例を参
照して全て記述したが、当業者にとってはこれに代わる
他の実施例も明白である。例えば、本発明を64ビット
環境において用いることもできる。従って、以上の記述
は、請求項により定められた本発明の範囲を限定するも
のとして捉えるべきではない。
照して全て記述したが、当業者にとってはこれに代わる
他の実施例も明白である。例えば、本発明を64ビット
環境において用いることもできる。従って、以上の記述
は、請求項により定められた本発明の範囲を限定するも
のとして捉えるべきではない。
【0028】
【発明の効果】本発明により、第1の装置と共通メモリ
の割当て部分との間のデータ転送を管理するための方法
であって、第2の装置から共通メモリの割当て部分の再
割当て要求を受信するステップと、第1の装置から要求
された再割当ての拒否を受信するステップと、その再割
当て要求を遅延させるステップとを含む、上記のデータ
転送を管理する方法が提供される。
の割当て部分との間のデータ転送を管理するための方法
であって、第2の装置から共通メモリの割当て部分の再
割当て要求を受信するステップと、第1の装置から要求
された再割当ての拒否を受信するステップと、その再割
当て要求を遅延させるステップとを含む、上記のデータ
転送を管理する方法が提供される。
【図1】好適例において用いられる典型的なデジタル・
コンピュータのブロック図である。
コンピュータのブロック図である。
【図2】図1のデジタル・コンピュータの一部のより詳
細なブロック図である。
細なブロック図である。
【図3】好適例におけるページ表エントリを示したもの
である。
である。
【図4】好適例において、32ビットの有効アドレスを
52ビットの仮想アドレスに変換し、さらに32ビット
の実アドレスに変換する方法を示したものである。
52ビットの仮想アドレスに変換し、さらに32ビット
の実アドレスに変換する方法を示したものである。
【図5】好適例において、有効アドレスを実アドレスに
変換する方法を示した流れ図である。
変換する方法を示した流れ図である。
【図6】共通主メモリからシステムバス上の周辺装置へ
のデータ転送を開始するためにプロセッサ内で使用する
転出または記憶命令を示したものである。
のデータ転送を開始するためにプロセッサ内で使用する
転出または記憶命令を示したものである。
【図7】システムバス上の周辺装置から共通主メモリへ
のデータ転送を開始するためにプロセッサ内で使用する
転入またはロード命令を示したものである。
のデータ転送を開始するためにプロセッサ内で使用する
転入またはロード命令を示したものである。
【図8】仮想データ転送を実行する場合に好適例で用い
られる外部アクセス・レジスタ(EAR)を示したもの
である。
られる外部アクセス・レジスタ(EAR)を示したもの
である。
【図9】仮想データ転送を実行する場合に好適例で用い
られる転送制御/状態レジスタ(TCR)を示したもの
である。
られる転送制御/状態レジスタ(TCR)を示したもの
である。
【図10】好適例を用いたデータ転送を記述する流れ図
である。
である。
【図11】好適例を用いたデータ転送を記述する流れ図
である。
である。
【図12】好適例を用いたデータ転送を記述する流れ図
である。
である。
【図13】好適例を用いたデータ転送を記述する流れ図
である。
である。
100 データ処理システム 110 主プロセッサ複合体 120 共通主メモリ 160 システムバス 200 グラフィクス・アダプタ 202、212、222 転送制御/状態レジスタ(T
CR) 210 バス・インターフェース 204、214、224 カウンタ 220 ネットワーク・インターフェース 300、310、320 プロセッサ 301、311、321 メモリ管理ユニット(MM
U) 302、312、322 変換索引バッファ(TLB) 304、314、324 セグメント・レジスタ 306、316、326 外部アクセス・レジスタ(E
AR) 308、318、328 汎用レジスタ 309、319、329 実行ユニット 350 ページ表
CR) 210 バス・インターフェース 204、214、224 カウンタ 220 ネットワーク・インターフェース 300、310、320 プロセッサ 301、311、321 メモリ管理ユニット(MM
U) 302、312、322 変換索引バッファ(TLB) 304、314、324 セグメント・レジスタ 306、316、326 外部アクセス・レジスタ(E
AR) 308、318、328 汎用レジスタ 309、319、329 実行ユニット 350 ページ表
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ステファン・ムヒク アメリカ合衆国78759 テキサス州、オー スチン、アルバーストーン・ウェイ 8606 (72)発明者 エドワード・ジョン・シルハ アメリカ合衆国78759 テキサス州、オー スチン、パイレニーゼ 11509 (72)発明者 マイケル・テレル・バノーバー アメリカ合衆国78727 テキサス州、オー スチン、ウィスパーリング・バレイ・ドラ イブ 4603
Claims (10)
- 【請求項1】第1の装置と共通メモリの割当て部分との
間のデータ転送を管理する方法であって、 a)前記共通メモリの割当て部分の再割当て要求を第2
の装置から受信するステップと、 b)前記要求された再割当ての拒否を前記第1の装置か
ら受信するステップと、 c)前記再割当て要求を遅延させるステップとを含む、 データ転送を管理する方法。 - 【請求項2】前記拒否を受信するステップが、前記要求
された再割当てに対する再試行信号を受信することを含
む請求項1記載の方法。 - 【請求項3】前記要求された再割当てが、前記管理され
たデータ転送に影響するか否かを判断するステップをさ
らに含む請求項2記載の方法。 - 【請求項4】仮想記憶システムにおいて周辺装置と共通
メモリとの間でデータを転送する方法であって、 a)前記共通メモリの割当て部分と共にデータを転送す
ることを前記周辺装置に対して命令するステップと、 b)前記共通メモリの割当て部分の再割当てを要求する
ステップと、 c)前記命令されたデータ転送に応答して前記要求され
た再割当ての拒否を前記周辺装置から受信するステップ
とを含む、 データ転送方法。 - 【請求項5】前記拒否を受信するステップが、前記要求
された再割当てに対する再試行信号を受信することを含
む請求項4記載の方法。 - 【請求項6】前記要求された再割当てが、前記命令され
たデータ転送に影響するか否かを判断するステップをさ
らに含む請求項5記載の方法。 - 【請求項7】前記再試行信号を受信するステップが、予
め決められた回数の再試行信号を繰返し受信することを
含む請求項6記載の方法。 - 【請求項8】仮想記憶システムにおいて周辺装置と共通
メモリとの間でデータを転送する装置であって、 a)前記共通メモリの割当て部分と共にデータを転送す
ることを前記周辺装置に対して命令する手段と、 b)前記共通メモリの割当て部分の再割当てを要求する
手段と、 c)前記命令されたデータ転送に応答して前記要求され
た再割当ての拒否を前記周辺装置から受信する手段とを
含む、 データ転送装置。 - 【請求項9】仮想記憶システムにおいて周辺装置と共通
メモリとの間でデータを転送するためにコンピュータの
読取り可能な媒体に与えられるコンピュータ・プログラ
ムであって、 a)前記共通メモリの割当て部分と共にデータを転送す
ることを前記周辺装置に対して命令する手段と、 b)前記共通メモリの割当て部分の再割当てを要求する
手段と、 c)前記命令されたデータ転送に応答して前記要求され
た再割当ての拒否を前記周辺装置から受信する手段とを
含む、 コンピュータ・プログラム。 - 【請求項10】仮想記憶システムにおいてデータを転送
するデータ処理システムであって、 a)少なくとも1つのプロセッサと、 b)システムバスを通して前記プロセッサと接続された
周辺装置と、 c)システムバスを通して前記少なくとも1つのプロセ
ッサと前記周辺装置とに接続された共通メモリと、 d)前記共通メモリの割当て部分と共にデータを転送す
ることを前記周辺装置に対して命令する手段と、 e)前記共通メモリの割当て部分の再割当てを要求する
手段と、 f)前記命令されたデータ転送に応答して前記要求され
た再割当ての拒否を前記周辺装置から受信する手段とを
含む、 データ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US994864 | 1992-12-22 | ||
US07/994,864 US5463739A (en) | 1992-12-22 | 1992-12-22 | Apparatus for vetoing reallocation requests during a data transfer based on data bus latency and the number of received reallocation requests below a threshold |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06231043A true JPH06231043A (ja) | 1994-08-19 |
JP2863693B2 JP2863693B2 (ja) | 1999-03-03 |
Family
ID=25541157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5293576A Expired - Lifetime JP2863693B2 (ja) | 1992-12-22 | 1993-11-24 | 仮想記憶システムにおけるデータ転送装置及びその方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5463739A (ja) |
JP (1) | JP2863693B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006004407A (ja) * | 2004-05-03 | 2006-01-05 | Microsoft Corp | 不揮発性メモリ・キャッシュの性能改善 |
US8909861B2 (en) | 2004-10-21 | 2014-12-09 | Microsoft Corporation | Using external memory devices to improve system performance |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9361183B2 (en) | 2008-09-19 | 2016-06-07 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US9529716B2 (en) | 2005-12-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5822601A (en) * | 1989-12-29 | 1998-10-13 | Packard Bell Nec | Apparatus to allow a CPU to control the relocation of code blocks for other CPUs |
US5675750A (en) * | 1993-11-12 | 1997-10-07 | Toshiba America Information Systems | Interface having a bus master arbitrator for arbitrating occupation and release of a common bus between a host processor and a graphics system processor |
US6128714A (en) * | 1994-03-17 | 2000-10-03 | Hitachi, Ltd. | Method of processing a data move instruction for moving data between main storage and extended storage and data move instruction processing apparatus |
JPH0887451A (ja) * | 1994-09-09 | 1996-04-02 | Internatl Business Mach Corp <Ibm> | アドレス変換を管理する方法およびアドレス変換マネージャ |
US6006303A (en) * | 1997-08-28 | 1999-12-21 | Oki Electric Industry Co., Inc. | Priority encoding and decoding for memory architecture |
US6078980A (en) * | 1998-12-29 | 2000-06-20 | Intel Corporation | Regulating a data transfer time |
GB2345987B (en) * | 1999-01-19 | 2003-08-06 | Advanced Risc Mach Ltd | Memory control within data processing systems |
US6823471B1 (en) | 1999-07-30 | 2004-11-23 | International Business Machines Corporation | Method for providing high availability within a data processing system via a reconfigurable hashed storage subsystem |
US6446165B1 (en) | 1999-07-30 | 2002-09-03 | International Business Machines Corporation | Address dependent caching behavior within a data processing system having HSA (hashed storage architecture) |
US6516404B1 (en) | 1999-07-30 | 2003-02-04 | International Business Machines Corporation | Data processing system having hashed architected processor facilities |
US6598118B1 (en) * | 1999-07-30 | 2003-07-22 | International Business Machines Corporation | Data processing system with HSA (hashed storage architecture) |
US6658556B1 (en) | 1999-07-30 | 2003-12-02 | International Business Machines Corporation | Hashing a target address for a memory access instruction in order to determine prior to execution which particular load/store unit processes the instruction |
US6470442B1 (en) | 1999-07-30 | 2002-10-22 | International Business Machines Corporation | Processor assigning data to hardware partition based on selectable hash of data address |
US6449691B1 (en) | 1999-07-30 | 2002-09-10 | International Business Machines Corporation | Asymmetrical cache properties within a hashed storage subsystem |
US7518993B1 (en) * | 1999-11-19 | 2009-04-14 | The United States Of America As Represented By The Secretary Of The Navy | Prioritizing resource utilization in multi-thread computing system |
US7509391B1 (en) * | 1999-11-23 | 2009-03-24 | Texas Instruments Incorporated | Unified memory management system for multi processor heterogeneous architecture |
US6804741B2 (en) * | 2002-01-16 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Coherent memory mapping tables for host I/O bridge |
US7725620B2 (en) * | 2005-10-07 | 2010-05-25 | International Business Machines Corporation | Handling DMA requests in a virtual memory environment |
US7533198B2 (en) * | 2005-10-07 | 2009-05-12 | International Business Machines Corporation | Memory controller and method for handling DMA operations during a page copy |
US7854120B2 (en) * | 2006-03-03 | 2010-12-21 | Pratt & Whitney Canada Corp. | Fuel manifold with reduced losses |
US7783867B2 (en) * | 2007-02-01 | 2010-08-24 | International Business Machines Corporation | Controlling instruction execution in a processing environment |
US8631203B2 (en) | 2007-12-10 | 2014-01-14 | Microsoft Corporation | Management of external memory functioning as virtual cache |
US8032707B2 (en) | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
KR20180087925A (ko) * | 2017-01-25 | 2018-08-03 | 삼성전자주식회사 | 논리 어드레스와 물리 어드레스 사이에서 해싱 기반 변환을 수행하는 스토리지 장치 |
US10884948B2 (en) * | 2019-05-16 | 2021-01-05 | Advanced Micro Devices, Inc. | Replacing pointers with hashing in tree-based page table designs |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5856129A (ja) * | 1981-09-30 | 1983-04-02 | Fujitsu Ltd | デ−タ転送方式 |
JPS63201854A (ja) * | 1987-02-18 | 1988-08-19 | Hitachi Ltd | アドレス変換バツフア無効化方式 |
JPH01109452A (ja) * | 1987-10-22 | 1989-04-26 | Fujitsu Ltd | 変換索引バッファ情報の消去制御方式 |
JPH04120650A (ja) * | 1990-09-12 | 1992-04-21 | Hitachi Ltd | Dmaアドレス変換装置とdma装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3333252A (en) * | 1965-01-18 | 1967-07-25 | Burroughs Corp | Time-dependent priority system |
US4277826A (en) * | 1978-10-23 | 1981-07-07 | Collins Robert W | Synchronizing mechanism for page replacement control |
US4495571A (en) * | 1979-01-31 | 1985-01-22 | Honeywell Information Systems Inc. | Data processing system having synchronous bus wait/retry cycle |
JPS6036592B2 (ja) * | 1979-06-13 | 1985-08-21 | 株式会社日立製作所 | 文字図形表示装置 |
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
US4792895A (en) * | 1984-07-30 | 1988-12-20 | International Business Machines Corp. | Instruction processing in higher level virtual machines by a real machine |
US5067071A (en) * | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
JPS62159239A (ja) * | 1985-12-30 | 1987-07-15 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 仮想マシンの編集システム |
US4811206A (en) * | 1986-01-16 | 1989-03-07 | Ibm Corporation | Data processing system with overlapped address translation and address computation |
US4787026A (en) * | 1986-01-17 | 1988-11-22 | International Business Machines Corporation | Method to manage coprocessor in a virtual memory virtual machine data processing system |
US4928253A (en) * | 1986-01-25 | 1990-05-22 | Fujitsu Limited | Consecutive image processing system |
GB2196762B (en) * | 1986-10-27 | 1990-12-19 | Burr Brown Ltd | Interleaved access to global memory by high priority source |
US4916301A (en) * | 1987-02-12 | 1990-04-10 | International Business Machines Corporation | Graphics function controller for a high performance video display system |
US4849875A (en) * | 1987-03-03 | 1989-07-18 | Tandon Corporation | Computer address modification system with optional DMA paging |
EP0288649B1 (en) * | 1987-04-22 | 1992-10-21 | International Business Machines Corporation | Memory control subsystem |
JPH0199163A (ja) * | 1987-10-13 | 1989-04-18 | Nec Corp | マルチプロセッサ割込み処理方式 |
US4914619A (en) * | 1987-10-19 | 1990-04-03 | International Business Machines Corporation | Apparatus and method for interconnecting an application of a transparent services access facility to remote source |
US5016167A (en) * | 1987-12-21 | 1991-05-14 | Amdahl Corporation | Resource contention deadlock detection and prevention |
US5047921A (en) * | 1989-01-31 | 1991-09-10 | International Business Machines Corporation | Asynchronous microprocessor random access memory arbitration controller |
JP3039557B2 (ja) * | 1989-11-01 | 2000-05-08 | 日本電気株式会社 | 記憶装置 |
US5265212A (en) * | 1992-04-01 | 1993-11-23 | Digital Equipment Corporation | Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types |
-
1992
- 1992-12-22 US US07/994,864 patent/US5463739A/en not_active Expired - Fee Related
-
1993
- 1993-11-24 JP JP5293576A patent/JP2863693B2/ja not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5856129A (ja) * | 1981-09-30 | 1983-04-02 | Fujitsu Ltd | デ−タ転送方式 |
JPS63201854A (ja) * | 1987-02-18 | 1988-08-19 | Hitachi Ltd | アドレス変換バツフア無効化方式 |
JPH01109452A (ja) * | 1987-10-22 | 1989-04-26 | Fujitsu Ltd | 変換索引バッファ情報の消去制御方式 |
JPH04120650A (ja) * | 1990-09-12 | 1992-04-21 | Hitachi Ltd | Dmaアドレス変換装置とdma装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405693B2 (en) | 2004-05-03 | 2016-08-02 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
JP2013047979A (ja) * | 2004-05-03 | 2013-03-07 | Microsoft Corp | 不揮発性メモリ・キャッシュの性能改善 |
US10216637B2 (en) | 2004-05-03 | 2019-02-26 | Microsoft Technology Licensing, Llc | Non-volatile memory cache performance improvement |
JP2006004407A (ja) * | 2004-05-03 | 2006-01-05 | Microsoft Corp | 不揮発性メモリ・キャッシュの性能改善 |
US9690496B2 (en) | 2004-10-21 | 2017-06-27 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
US9317209B2 (en) | 2004-10-21 | 2016-04-19 | Microsoft Technology Licensing, Llc | Using external memory devices to improve system performance |
US8909861B2 (en) | 2004-10-21 | 2014-12-09 | Microsoft Corporation | Using external memory devices to improve system performance |
US9529716B2 (en) | 2005-12-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
US11334484B2 (en) | 2005-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Optimizing write and wear performance for a memory |
US9032151B2 (en) | 2008-09-15 | 2015-05-12 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US10387313B2 (en) | 2008-09-15 | 2019-08-20 | Microsoft Technology Licensing, Llc | Method and system for ensuring reliability of cache data and metadata subsequent to a reboot |
US9361183B2 (en) | 2008-09-19 | 2016-06-07 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US9448890B2 (en) | 2008-09-19 | 2016-09-20 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
US10509730B2 (en) | 2008-09-19 | 2019-12-17 | Microsoft Technology Licensing, Llc | Aggregation of write traffic to a data store |
Also Published As
Publication number | Publication date |
---|---|
JP2863693B2 (ja) | 1999-03-03 |
US5463739A (en) | 1995-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2863693B2 (ja) | 仮想記憶システムにおけるデータ転送装置及びその方法 | |
US4742450A (en) | Method to share copy on write segment for mapped files | |
US7197585B2 (en) | Method and apparatus for managing the execution of a broadcast instruction on a guest processor | |
US5852738A (en) | Method and apparatus for dynamically controlling address space allocation | |
US5123094A (en) | Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers | |
JP3102495B2 (ja) | 仮想記憶管理方法 | |
US6446034B1 (en) | Processor emulation virtual memory address translation | |
US6742104B2 (en) | Master/slave processing system with shared translation lookaside buffer | |
US6920521B2 (en) | Method and system of managing virtualized physical memory in a data processing system | |
EP0766177A1 (en) | Information handling system including effective address translation for one or more auxiliary processors | |
US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
JPS6013501B2 (ja) | 仮想計算機システムにおけるチヤネルアドレス制御方式 | |
JPH077363B2 (ja) | アクセス装置及び方法 | |
US5765022A (en) | System for transferring data from a source device to a target device in which the address of data movement engine is determined | |
US8738890B2 (en) | Coupled symbiotic operating system | |
CN113454590A (zh) | 定向中断虚拟化 | |
US5339417A (en) | Computer system with two levels of guests | |
JPH03135641A (ja) | マイクロプロセッサ | |
US6742103B2 (en) | Processing system with shared translation lookaside buffer | |
US5615327A (en) | Apparatus and method for controlling the initiating of a synchronization protocol for synchronizing a plurality of processors in a multi-processor system | |
US5459872A (en) | Software control of hardware interruptions | |
US6647468B1 (en) | Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment | |
US5479629A (en) | Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address | |
US5051894A (en) | Apparatus and method for address translation of non-aligned double word virtual addresses | |
JPH071489B2 (ja) | コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法 |