JP2863693B2 - 仮想記憶システムにおけるデータ転送装置及びその方法 - Google Patents

仮想記憶システムにおけるデータ転送装置及びその方法

Info

Publication number
JP2863693B2
JP2863693B2 JP5293576A JP29357693A JP2863693B2 JP 2863693 B2 JP2863693 B2 JP 2863693B2 JP 5293576 A JP5293576 A JP 5293576A JP 29357693 A JP29357693 A JP 29357693A JP 2863693 B2 JP2863693 B2 JP 2863693B2
Authority
JP
Japan
Prior art keywords
data transfer
processor
data
bit
memory
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
JP5293576A
Other languages
English (en)
Other versions
JPH06231043A (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 JPH06231043A publication Critical patent/JPH06231043A/ja
Application granted granted Critical
Publication of JP2863693B2 publication Critical patent/JP2863693B2/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling 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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、広くは仮想記憶に関
し、特に仮想記憶システム内におけるデータ転送に関す
るものである。
【0002】
【従来の技術】仮想記憶システムにおいては、1または
それ以上のプロセッサが、1またはそれ以上の制御装置
または他の装置と組み合わされた共通メモリを共用する
場合がある。プロセッサは制御装置にデータを転送する
命令を送り且つそのデータの記憶場所のアドレスを送る
ことによって、プロセッサが継続的に介在することな
く、制御装置が共通メモリに直接アクセスすることを要
求したりする。装置による共通メモリへのこのような遠
隔アクセスを、直接メモリアクセス(DMA)と云う。
従来技術においては、プロセッサが仮想記憶管理機構に
対して、装置がアクセスするメモリを変えることを固定
するようまたは妨げるように要求することは普通のこと
であり、それによって、その装置によるDMAプロセス
が完了する前にそのプロセッサまたは他のプロセッサが
そのデータの再割当てをすることを防ぐことができる。
このことは、ピニング(pinning)と呼ばれるプロセス
において共通メモリ内のアクセスされるメモリの記述を
与えることにより実現される。データがピニングされる
と、仮想記憶管理機構への別の呼出しによりピニングを
解かれるまでそのデータは仮想記憶管理機構による再割
当てを受けない。
【0003】
【発明が解決しようとする課題】しかしながら、仮想記
憶管理機構へのそのような呼出しは、多数のコンテキス
ト切換え及び数百もの命令の実行を必要とし、データ処
理システム全体のデータの処理速度が低下したりするた
め、非常に時間を消耗する。加えて、メモリのピニング
は、装置によって実行されているDMAと共通メモリに
データを再割当てしようとする仮想記憶管理機構の必要
度との間において、どの様な優先権も認めない。
【0004】
【課題を解決するための手段】本発明は、第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へ表示する。
【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は、プロセッサによる他
の機能のために使用してもよい。これらのレジスタの使
用に関しては、以下に詳細に述べる。
【0007】共通主メモリ120は、仮想アドレスを実
アドレスに変換するために、エントリ355Aから35
5Nを持つページ表350を有する。好適例におけるこ
れらのエントリは、8ビットまたは2ワードの幅を持
つ。前記のMMU内のTLBは、ページ表のキャッシュ
である。共通主メモリに記憶されたページの例は、ペー
ジX及びページYである。ページ表のエントリは、プロ
セッサ及び/または制御装置が使用するページに付い
て、仮想ページ・アドレスを有効ページ・アドレスに対
応付ける。使用されない有効ページに対するエントリ
は、無効とマークされるので、仮想アドレスを用いるプ
ログラムはそのページにアクセスできない。
【0008】システムバス上に設置されたいくつかの制
御装置は、仮想記憶転送のために、転送制御/状態レジ
スタ(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は、そのページがプロセッサにより
実行されているプログラムによって読取り可能、書込み
可能、変更され、または参照されるかどうかを示すため
に使用されるページ保護及びデータ整合ビットである。
別の実施例においては、他のページ保護及びデータ整合
機構を用いることもできる。
【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ビットの実
アドレスが作られる。
【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へ続く。
【0012】本発明の好適例においては、システムバス
上のプロセッサと装置との間でデータを転送するために
データ転送命令がプロセッサ内で用いられ、データ転送
を開始する。図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は、将来使用するためにとってお
く。
【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は、将来使用するためにと
っておく。
【0015】図8及び図9は、仮想データ転送を実行す
る場合に、好適例において使用される外部アクセス・レ
ジスタ(EAR)及び転送制御/状態レジスタ(TC
R)を示している。EARは特定のプロセッサに関係
し、TCRは特定の制御装置と関係している。
【0016】図8は、各プロセッサが作り、ソフトウェ
アにより設定されるEARであり、いずれの制御装置が
その特定のプロセッサにより実行された転送命令を受け
入れるかを示す。カラム26乃至31には、システムバ
ス上のいずれの装置がそのデータ転送を受け入れるかを
識別するための資源識別子(RID)が記憶されてい
る。各制御装置は独自のRIDを持っており、そのRI
Dがシステムバス上に提示されたとき命令を受信する。
複数のRIDを認識させることにより複数のプロセッサ
を同時にサポートする制御装置を設けることが可能であ
る。その場合、その制御装置を用いるそれぞれのプロセ
ッサが、独自のRIDを用いてその制御装置と通信する
ことにより、その制御装置が異なるプロセッサにより使
用される複数のチャネルを有しているかのような効果を
創出するであろう。その制御装置により認識される各R
IDは、各RIDに結び付いた別々のTCRを持たなけ
ればならない。しかしながら、あるプロセッサが特定の
装置にはアクセスする必要がない場合やRIDの数が少
ない場合は、よくあることである。さらに、あるプロセ
ッサがある装置に対し、様々な使用に応じて時により複
数のRIDを用いる場合もある。カラム1は、現在実行
しているプロセスがデータ転送命令を実効可能であるか
否かを示すイネーブル・ビットである。このイネーブル
機構は、実行されるプロセスによる装置へのアクセスを
直列化するために有用である。
【0017】図9は、データ転送に用いられる装置の制
御/状態情報を含むTCRを示している。TCRのカラ
ム0乃至7は、転送されているデータの有効アドレスの
ビット12乃至19を含む。後に図10乃至図13を参
照して詳細に述べるように、このデータは、プロセッサ
が共通主メモリ内の転送されるデータを変えることを防
ぐために用いられることになる。カラム8乃至11に
は、そのデータに対してどの様な操作を行うべきかを示
す命令が含まれている(例えば、圧縮せよ、グラフィク
ス表示装置上のオブジェクトを描け、等である)。カラ
ム12は、先の転送に対する例外が生じたか否かを示す
例外ビットを含む。そのような例外の例としては、TL
B同期、プロセス切換え、またはページ交差があり、そ
れらに関しては以下に詳細に述べる。値0は例外が無い
ことを示し、値1は例外を示す。カラム13は、カレン
ト転送データ命令が装置により受信されたかあるいは拒
否されたかを示す命令ワード受信または拒否ビットを含
む。カラム14は、先に開始された転送が完了したか否
かを示す命令完了ビットを含む。値0は命令が完了して
いなかったことを示し、値1は命令が完了したことを示
す。カラム15は、このデータ転送に使用するメモリが
ピニングされたか否かを示すメモリ・ピニング・ビット
を含む。本発明は、メモリをピニングすることなくデー
タを転送することを可能にするにもかかわらず、データ
量の多い実時間アプリケーション(例えばマルチメディ
ア)や非常に大きいデータ転送等、いくつかのデータ転
送についてはメモリをピニングすることが好ましい場合
もある。カラム16乃至31は、データ転送命令により
転送されるデータの長さもしくは転送により残される部
分の長さ示す。
【0018】図10は、好適例を用いるデータ転送を記
述する流れ図である。ステップ500において、プロセ
ッサ上で実行中のプログラムがデータ転送の開始の準備
をする。このプロセスでは、目的とする装置に対してデ
ータを転送することを示すロード命令を汎用レジスタに
直接ロードするか、もしくはプログラムがかかる命令を
発生する。この命令は、転送されるデータに対して行わ
れる操作とこのデータの長さとを含む。次にこのプロセ
スは、転送されるデータの有効アドレスの基準アドレス
とオフセットとを汎用レジスタにロードする。初期化の
間もしくは初期化に先だってこのプロセスは、オペレー
ティング・システムに対し、EARにロードされた目的
とする装置についての資源識別子(RID)を獲得する
ために呼出しを行う。そしてオペレーティング・システ
ムは、EARに制御装置のRIDをロードする際に、E
AR内のイネーブル・ビットを設定しなければならな
い。その後オペレーティング・システムは、データ転送
についての適切な情報を制御装置のTCRにロードす
る。
【0019】第2のステップ510でプロセッサは、プ
ロセスの命令を受信し、そしてその命令がデータ転送命
令であるか否かを判断するために復号化する。データ転
送命令である場合、ここに記述したようにその命令が実
行される。ステップ520では、プロセッサがEARを
検査して、イネーブル・ビットが目的とする装置につい
てオンであるか否かを判断する。オンでない場合は、ス
テップ525においてプログラム割込みが発生する。ス
テップ530において、プロセッサは有効アドレスを仮
想アドレスに変換する。このことによりページ表エント
リ索引が作られ、それによってプロセッサがページ表か
らの当該ページに関連する全ての制御情報にアクセスす
る。ステップ540でプロセッサは、ページ表エントリ
から、ページ保護ビットを使用するページについてのペ
ージ保護を検査する(通常、このページ表エントリはT
LBキャッシュ内に存在する)。ステップ550では、
共通主メモリといずれのディスク記憶装置の間において
もデータ整合性を維持するために、適切な参照及び/ま
たは変更ビットが設定される。これが「LOAD」命令
によるデータ転送である場合、参照ビットが未だ設定さ
れていないなら、プロセッサはページ表エントリに参照
ビットを設定する。これが「STORE」命令によるデ
ータ転送である場合、参照ビット及び変更ビットが未だ
設定されていないなら、双方のビットがページ表エント
リに設定される。
【0020】ステップ560でプロセッサは、転送され
るデータの実アドレスを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」命令によるデータ転送においては装置か
ら共通主メモリへ)。
【0022】図12は、プロセッサがTLBにより指定
されたデータの仮想ページングを行うに先立って、全て
の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
に続く。
【0024】TLB同期命令を受信した場合、ステップ
830において装置は、TLB同期を送っているプロセ
ッサに対して再試行信号を送ることによってTLB同期
を再試行させるか否かを判断する。好適例において装置
は、システムバスの割込み待ち時間に関係する許容でき
る期間内にデータ転送を完了できるか否かを判断するこ
とによって、TLB同期を再試行させるか否かを判断す
る。この装置は、転送されるデータの残りの部分をオー
プンデバイスの物理的データバッファに記憶できるか否
かを判断することによってこの判断を行う。データ転送
がバッファのオーバフロー無しに完了できる場合、ステ
ップ840において装置はシステムバス上に再試行信号
を出すことによって、プロセッサがTLBを同期させよ
うとするいかなる試みも妨げる。TLB同期により先に
データ転送命令でその装置に指定されたメモリ位置を変
えることが可能になるので、プロセス再試行信号が必要
になる。なぜなら、TLBが同期したならばオペレーテ
ィング・システムは自由に仮想ページングを実行できる
からである。この装置は、開始されたデータ転送及び関
連する操作が完了するまで、プロセッサのTLB同期命
令を再試行させ続けようとする。データ転送が装置バッ
ファのオーバフロー無しに完了し得ない場合、ステップ
840において、装置はTCRの例外ビットを設定して
操作を停止する。しばらく後に、データ転送を開始した
プログラムはそのデータ転送を再開する。
【0025】別の実施例では、いずれの関係するTLB
同期命令に対しても、データ転送がその装置のバッファ
のオーバフロー無しに完了でき且つ自動的に再試行信号
を送るか否かを装置が予め決めていてもよい。さらに装
置は、いずれのTLB同期命令に対しても、その装置が
転送しているデータにそのTLB同期が影響を及ぼすか
否かを検査することなく再試行信号を出してもよい。さ
らに装置は、例外を通知する前に特定の回数だけ自動的
にTLB同期を再試行させるためにカウンタを使用して
もよい。このカウンタは残っている試行回数を示すもの
であり、装置は、データ転送が完了する前にプロセッサ
が共通主メモリのページ表を変更することを防ぐために
これを利用できる。さらに装置は、要求されたTLB同
期を、遅延としてしばらく後まで拒否することもでき
る。本発明は、TLB同期やTLBEI命令を用いない
プロセッサについても利用することができる。その場
合、TLBの無効及び同期機能は、ソフトウェア及びプ
ロセッサ間通信を用いて行われる。しかしながら、いず
れかのデータ転送が完了したことあるいは終了すること
を確認するため、制御装置の状態を読取ることによって
制御装置をポーリングすることが必要となろう。
【0026】結論として本発明は、ページがデータ転送
操作についてピニングされなければならない必要性から
生じるオーバヘッド及び性能の低下を避けるものであ
る。さらに本発明は、仮想記憶システムにおいて望まし
い、ピニングされるページの数を最少にすることを助け
るものである。
【0027】以上のように、本発明を特定の実施例を参
照して全て記述したが、当業者にとってはこれに代わる
他の実施例も明白である。例えば、本発明を64ビット
環境において用いることもできる。従って、以上の記述
は、請求項により定められた本発明の範囲を限定するも
のとして捉えるべきではない。
【0028】
【発明の効果】本発明により、第1の装置と共通メモリ
の割当て部分との間のデータ転送を管理するための方法
であって、第2の装置から共通メモリの割当て部分の再
割当て要求を受信するステップと、第1の装置から要求
された再割当ての拒否を受信するステップと、その再割
当て要求を遅延させるステップとを含む、上記のデータ
転送を管理する方法が提供される。
【図面の簡単な説明】
【図1】好適例において用いられる典型的なデジタル・
コンピュータのブロック図である。
【図2】図1のデジタル・コンピュータの一部のより詳
細なブロック図である。
【図3】好適例におけるページ表エントリを示したもの
である。
【図4】好適例において、32ビットの有効アドレスを
52ビットの仮想アドレスに変換し、さらに32ビット
の実アドレスに変換する方法を示したものである。
【図5】好適例において、有効アドレスを実アドレスに
変換する方法を示した流れ図である。
【図6】共通主メモリからシステムバス上の周辺装置へ
のデータ転送を開始するためにプロセッサ内で使用する
転出または記憶命令を示したものである。
【図7】システムバス上の周辺装置から共通主メモリへ
のデータ転送を開始するためにプロセッサ内で使用する
転入またはロード命令を示したものである。
【図8】仮想データ転送を実行する場合に好適例で用い
られる外部アクセス・レジスタ(EAR)を示したもの
である。
【図9】仮想データ転送を実行する場合に好適例で用い
られる転送制御/状態レジスタ(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 ページ表
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ステファン・ムヒク アメリカ合衆国78759 テキサス州、オ ースチン、アルバーストーン・ウェイ 8606 (72)発明者 エドワード・ジョン・シルハ アメリカ合衆国78759 テキサス州、オ ースチン、パイレニーゼ 11509 (72)発明者 マイケル・テレル・バノーバー アメリカ合衆国78727 テキサス州、オ ースチン、ウィスパーリング・バレイ・ ドライブ 4603 (56)参考文献 特開 昭64−62751(JP,A) 特開 平1−109452(JP,A) 特開 昭63−201854(JP,A) 特開 昭58−56129(JP,A) 特開 平4−120650(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 12/08 - 12/12 G06F 13/10 - 13/14 G06F 13/20 - 13/378

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】仮想記憶システムにおいて、データバスに
    よって接続された第1の装置と共通メモリの割当て部分
    との間のデータ転送を管理する方法であって、 前記データ転送をしている前記第1の装置において、前
    記共通メモリの割当て部分の再割当て要求を第2の装置
    から受信するステップと、 前記第1の装置において、前記再割当て要求に応答し
    て、前記データ転送を所定の時間内に完了できるかどう
    かを判断し、完了できる場合には、前記再割当て要求を
    拒否する信号を前記第2の装置に送信し、完了できない
    場合には、前記データ転送を中止するステップと、 前記第2の装置において、前記拒否する信号を受信した
    場合には前記再割当て要求を再試行し、受信しなかった
    場合には再割当てを実行するステップと、 を含む、データ転送を管理する方法。
  2. 【請求項2】仮想記憶システムにおいて、周辺装置と共
    通メモリの割当て部分との間のデータ転送を管理する装
    置であって、 前記データ転送を実行することを前記周辺装置に対して
    命令する手段と、 前記周辺装置において、前記命令に応答して、前記デー
    タ転送を実行する手段と、 前記割当て部分の再割当てを要求する手段と、 前記周辺装置において、前記再割当ての要求に応答し
    て、前記データ転送が所定の時間内に完了するかどうか
    を判断し、完了できる場合には、前記再割当ての要求を
    拒否する信号を前記要求する手段に送信し、完了できな
    い場合には、前記データ転送を中止する手段と、 前記要求する手段において、前記拒否する信号を受信し
    た場合には前記再割当ての要求を再試行し、受信しない
    場合には、前記再割当てを実行する手段と、 を含む、データ転送を管理する装置。
JP5293576A 1992-12-22 1993-11-24 仮想記憶システムにおけるデータ転送装置及びその方法 Expired - Lifetime JP2863693B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
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
US994864 1992-12-22

Publications (2)

Publication Number Publication Date
JPH06231043A JPH06231043A (ja) 1994-08-19
JP2863693B2 true 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)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
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
US6598118B1 (en) * 1999-07-30 2003-07-22 International Business Machines Corporation Data processing system with HSA (hashed storage architecture)
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
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
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
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
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
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
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
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
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
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
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
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

Family Cites Families (25)

* Cited by examiner, † Cited by third party
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 株式会社日立製作所 文字図形表示装置
JPS5856129A (ja) * 1981-09-30 1983-04-02 Fujitsu Ltd デ−タ転送方式
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
JPS63201854A (ja) * 1987-02-18 1988-08-19 Hitachi Ltd アドレス変換バツフア無効化方式
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
JPH01109452A (ja) * 1987-10-22 1989-04-26 Fujitsu Ltd 変換索引バッファ情報の消去制御方式
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 日本電気株式会社 記憶装置
JPH04120650A (ja) * 1990-09-12 1992-04-21 Hitachi Ltd Dmaアドレス変換装置とdma装置
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

Also Published As

Publication number Publication date
JPH06231043A (ja) 1994-08-19
US5463739A (en) 1995-10-31

Similar Documents

Publication Publication Date Title
JP2863693B2 (ja) 仮想記憶システムにおけるデータ転送装置及びその方法
JP2613001B2 (ja) 仮想メモリ管理システム、変換索引バッファ管理方法、及び変換索引バッファパージオーバーヘッド最小化方法
JP3102495B2 (ja) 仮想記憶管理方法
US4742450A (en) Method to share copy on write segment for mapped files
US6742104B2 (en) Master/slave processing system with shared translation lookaside buffer
US4695950A (en) Fast two-level dynamic address translation method and means
US6920521B2 (en) Method and system of managing virtualized physical memory in a data processing system
US6446034B1 (en) Processor emulation virtual memory address translation
US20040107321A1 (en) Symmetric multi-processing system
EP0766177A1 (en) Information handling system including effective address translation for one or more auxiliary processors
EP2430556B1 (en) Enable/disable adapters of a computing environment
JPH077363B2 (ja) アクセス装置及び方法
JPH03135641A (ja) マイクロプロセッサ
CA1300279C (en) Central processor unit for digital data processing system including cache management mechanism
JP2013533545A (ja) 処理を逐次化するための診断命令を実行する方法、システム及びプログラム
JPH0816479A (ja) メモリ・アドレス空間管理
US6742103B2 (en) Processing system with shared translation lookaside buffer
EP0550286A2 (en) 2-Level multi-processor synchronization protocol
US5459872A (en) Software control of hardware interruptions
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
US6865651B2 (en) Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment
JPS6167160A (ja) 仮想アドレス変換装置
JPH071489B2 (ja) コンピュータ装置およびコンピュータ装置においてキャッシュデータアレイ内のデータの不一致を検出して修正する方法
JPH06332803A (ja) 仮想計算機システムにおけるtlb制御方法
JPH02244253A (ja) 分散共有メモリを持つマルチプロセッサシステム