JP4898525B2 - Dmaオペレーションを選択的に停止させるための方法、装置およびデータ処理システム - Google Patents

Dmaオペレーションを選択的に停止させるための方法、装置およびデータ処理システム Download PDF

Info

Publication number
JP4898525B2
JP4898525B2 JP2007098505A JP2007098505A JP4898525B2 JP 4898525 B2 JP4898525 B2 JP 4898525B2 JP 2007098505 A JP2007098505 A JP 2007098505A JP 2007098505 A JP2007098505 A JP 2007098505A JP 4898525 B2 JP4898525 B2 JP 4898525B2
Authority
JP
Japan
Prior art keywords
migration
control entry
physical page
memory access
direct 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 - Fee Related
Application number
JP2007098505A
Other languages
English (en)
Other versions
JP2007287140A (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 JP2007287140A publication Critical patent/JP2007287140A/ja
Application granted granted Critical
Publication of JP4898525B2 publication Critical patent/JP4898525B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Description

本発明は、データ処理システムに関し、特に、入出力(I/O)装置によるアクセスを受ける物理ページ間でのデータのマイグレーションに関するものである。更に詳しく云えば、本発明は、物理I/Oアダプタによるアクセスを受ける物理ページ間でのデータのマイグレーションを可能にするために、物理I/Oアダプタにおける選択されたダイレクト・メモリ・アクセス(DMA)オペレーションを一時的に停止させること(stalling)に関するものである。
コンピュータ・システムは、そのシステムにおけるデータ処理を混乱させることなく実行中に再構成することが可能である。例えば、複数のオペレーティング・システムがコンピュータ上で稼動している場合、それらのオペレーティング・システムの1つが或るメモリ・ブロックを使用しており、第2のオペレーティング・システムによる使用のためにそのメモリ・ブロックを再割振りする必要があることがある。従って、第1のオペレーティング・システムは、第2のオペレーティング・システムのアクセスを可能にするためには、その物理メモリ・ブロックの使用を中止しなければならない。もう1つの例では、物理メモリ・ブロックにおいて問題が検出されることがあり、その場合、そのメモリを置換することができるよう、オペレーションからそのメモリを除外することが望ましい。従って、特定の物理ページ内のデータを移動させる必要があることがあり、あるいは、その物理ページの使用を所定の期間の間阻止する必要があることがある。このメモリ・ブロックがI/O装置によるアクセスを受ける場合、その物理ページのマイグレーションまたはそのページの使用の阻止という問題は困難なことになる。
I/O装置によるアクセスを受けるデータをマイグレーションするための1つの方法は、特定の物理ページをアクセスするためにそのI/O装置が結合されるI/Oアダプタによって行われるすべてのアービトレーションを一時的に、しかし完全に使用不可にすることである。アービトレーションのプロセスはDMAプロセス中に取られる第1ステップである。アービトレーションが使用不可にされるとき、物理I/OアダプタのすべてのDMAオペレーションが使用不可にされる。従って、アービトレーションが使用不可にされるとき、短い期間の間、マイグレーションされるべきデータをアクセスする必要がある物理I/Oアダプタに対するすべてのDMAオペレーションが全体的に使用不可にされる。そこで、その短い期間の間に、物理ページ・データがマイグレーションまたは更新される。一旦物理ページのマイグレーションまたは更新が完了すると、DMAオペレーションはそのI/Oアダプタにおいて再び使用可能にされる。
しかし、業界標準のペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect : PCI)エクスプレス・バスのような既存のアダプタはデータ・マイグレーションを遂行するためにDMAオペレーションを使用不可にするまたは停止させることを可能にするが、これらのアダプタは、すべてのDMAオペレーションが一時的に中断されることを必要とする。この現在の方法に対する欠点は、バスにおけるすべてのDMAオペレーションを使用不可にすると、I/OアダプタへのまたはI/Oアダプタからの他の実行中のDMA転送に悪影響を与えることがあり、物理I/Oアダプタをエラー状態に入らせることがあるということである。
従って、或る物理I/Oアダプタによるアクセスを受ける物理ページのマイグレーションを可能にするためにその物理I/Oアダプタにおける選択されたDMAオペレーションだけを停止させるが、その物理I/Oアダプタからシステム・メモリ内の他のページへの他のDMAオペレーションが継続することを可能にするための機構を持つことは有利なことであろう。
本発明の目的は、物理I/Oアダプタによるアクセスを受ける物理ページ間でのデータのマイグレーションを可能にするために、その物理I/Oアダプタにおける選択されたダイレクト・メモリ・アクセス(DMA)オペレーションを一時的に停止させるための方法、装置およびデータ処理システムを提供することである。なお、この停止させるということは、I/OアダプタへのまたはI/OアダプタからのDMAオペレーションを中断または使用不可にするプロセスである。
本発明の機構によれば、データが物理ページ間でマイグレーションされる間、I/OアダプタへのまたはI/OアダプタからのDMAオペレーションは一時的に停止させられるが、システム・メモリ内の他のページに対する他の物理I/Oアダプタへのまたは他の物理I/Oアダプタからの他のDMAオペレーションは継続することを可能にされる。システム・メモリにおける物理ページへのダイレクト・メモリ・アクセスを求める要求をI/Oアダプタから受け取るとき、その物理ページを指す変換制御エントリ内のマイグレーション進行状況表示ビットが検査される。マイグレーション進行状況表示ビットは、システム・メモリ内の他のロケーションへの当該物理ページのマイグレーションが現在進行中であるかどうかを表す。物理ページのマイグレーションが進行中であるということをマイグレーション進行状況表示ビットが表す場合、I/Oアダプタからのダイレクト・メモリ・アクセスは一時的に停止させられるが、他のI/Oアダプタからシステム・メモリ内の他の物理ページへの他のダイレクト・メモリ・アクセス・オペレーションは継続することを可能にされる。
次に図面を参照すると、図1は、本発明の実施例を具現化し得るデータ処理システムのブロック図を示す。データ処理システム100は、システム・バス106に接続された複数のプロセッサ101、102、103、および104を含む対称マルチプロセッサ(SMP)システムであってもよい。例えば、データ処理システム100は、ネットワ−ク内でサーバとして具現化される IBM(商標)eServer(商標)(米国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの製品)であってもよい。それとは別に、シングル・プロセッサ・システムを使用することも可能である。更に、システム・バス106にはメモリ・コントローラ/キャッシュ108も接続される。このメモリ・コントローラ/キャッシュは、複数のローカル・メモリ160〜163に対するインターフェースを提供する。システム・バス106にはI/Oバス・ブリッジ110も接続され、I/Oバス112に対するインターフェースを提供する。メモリ・コントローラ/キャッシュ108およびI/Oバス・ブリッジ110は、図示のように統合されてもよい。
データ処理システム100は論理分割(LPAR)データ処理システムである。しかし、本発明がLPARシステムに限定されず、他のデータ処理システムにおいて具現化することも可能であることは当然である。LPARデータ処理システム100は、同時に稼動する複数の異種のオペレーティング・システム(あるいは単一のオペレーティング・システムの複数コピー)を有する。これらの複数のオペレーティング・システムの各々が、内部で実行される任意の数のソフトウェア・プログラムを有してもよい。データ処理システム100は、種々のPCI入出力アダプタ(IOA)120、121、122、123、および124、グラフィックス・アダプタ148、ならびにハードディスク・アダプタ149、あるいはそれの一部が種々の論理パーティションに割り当てられるように論理分割される。この場合、グラフィックス・アダプタ148はディスプレイ装置(図示されてない)のための接続を提供し、一方ハードディスク・アダプタ149は、ハードディスク150を制御するための接続を提供する。
そこで、例えば、データ処理システム100が3つの論理パーティション、P1、P2、およびP3に分割されるものと仮定する。PCI IOA120〜124の各々、グラフィックス・アダプタ148、ハードディスク・アダプタ149、ホスト・プロセッサ101〜104の各々、およびローカル・メモリ160〜163からのメモリが3つのパーティションの各々に割り当てられる。この例では、ローカル・メモリ160〜163は、デュアル・インライン・メモリ・モジュール(DIMM)の形式をとることが可能である。DIMMは、DIMMごとにパーティションに常に割り当てられるわけではない。代わりに、パーティションは、プラットフォームによって見られるメモリ全体のうちの一部分を割り当てられるであろう。例えば、プロセッサ101、ローカル・メモリ160〜163のうちの一部分のメモリ、PCIIOA121、123、および124を論理パーティションP1に割り当て、プロセッサ102、103、ローカル・メモリ160〜163のうちの一部分のメモリ、およびPCIIOA120および122をパーティションP2に割り当て、プロセッサ104、ローカル・メモリ160〜163のうちの一部分のメモリ、グラフィックス・アダプタ148、およびハードディスク・アダプタ149を論理パーティションP3に割り当てることが可能である。
論理分割データ処理システム100において実行される各オペレーティング・システムは異なる論理パーティションに割り当てられる。したがって、データ処理システム100において実行される各オペレーティング・システムは、その論理パーティション内にあるIOAだけをアクセスすることが可能である。例えば、アドバンスド・インタラクティブ・イグゼクティブ(AIX)オペレーティング・システムの1つのインスタンスがパーティションP1内で実行され、AIXオペレーティング・システムの第2のインスタンス(コピー)がパーティションP2の内で実行され、LinuxR(商標)またはOS/400(商標)オペレーティング・システムが論理パーティションP3の内で実行されてもよい。
ペリフェラル・コンポーネント・インターコネクト(PCI)ホスト・ブリッジ(PHB)130、131、132、および133がI/Oバス112に接続され、それぞれ、PCIローカル・バス140、141、142、および143に対するインターフェースを提供する。PCIローカル・バス140には、スイッチおよびブリッジを含むI/Oファブリック180を介してPCIIOA120、121が接続される。同様に、PCIローカル・バス141には、I/Oファブリック181を介してPCI IOA122、123が接続され、PCIローカル・バス142には、I/Oファブリック182を介してPCIIOA124が接続され、PCIローカル・バス143には、I/Oファブリック183を介してグラフィックス・アダプタ148およびハードディスク・アダプタ149が接続される。I/Oファブリック180〜183はPCIバス140〜143に対するインターフェースを提供する。典型的なPCIホスト・ブリッジは4〜8個のIOA(例えば、アドイン・コネクター用の拡張スロット)をサポートするであろう。各PCI IOA120〜124は、データ処理システム100と、例えば、データ処理システム100に対するクライアントである他のネットワーク・コンピューターのような入出力装置との間のインターフェースを提供する。
PCIホスト・ブリッジ130は、PCIバス140をI/Oバス112に接続するためのインターフェースを提供する。PCIバス140は、更に、PCIホスト・ブリッジ130を、サービス・プロセッサ・メールボックス・インターフェース兼ISAバス・アクセス・パススルー・ロジック194およびI/Oファブリック180に接続する。サービス・プロセッサ・メールボックス・インターフェース兼ISAバス・アクセス・パススルー・ロジック194はPCI/ISAブリッジ193を宛先とするPCIアクセスを送る。NVRAMストレージ192がISAバス196に接続される。サービス・プロセッサ135がローカルPCIバス195を介してサービス・プロセッサ・メールボックス・インターフェース兼ISAバス・アクセス・パススルー・ロジック194に接続される。サービス・プロセッサ135は、複数のJTAG/ICバス134を介してプロセッサ101〜104に接続される。JTAG/ICバス134は、JTAG/スキャン・バス(IEEE 1149.1参照)およびフィリップスICバスの結合体である。しかし、それとは別に、JTAG/ICバス134は、フィリップスICバスのみと、またはJTAG/スキャン・バスのみと置換することも可能である。ホスト・プロセッサ101、102、103、および104のすべてのSP−ATTN信号がサービス・プロセッサ135の割込み入力信号に接続される。サービス・プロセッサ135はそれ自身のローカル・メモリ191を有し、ハードウェアOPパネル190に対するアクセスも行う。
データ処理システム100が最初に電力供給されるとき、サービス・プロセッサ135は、JTAG/ICバス134を使用してシステム(ホスト)プロセッサ101〜104、メモリ・コントローラ/キャッシュ108、およびI/Oブリッジ110に問い合わせる。このステップの完了時に、サービス・プロセッサ135は、データ処理システム100に関するインベントリおよびトポロジを理解する。サービス・プロセッサ135は、さらに、ホスト・プロセッサ101〜104、メモリ・コントローラ/キャッシュ108、およびI/Oブリッジ110に問い合わせをすることによってわかったすべての要素に関する組込み自己診断テスト(BIST)、基本検証テスト(BAT)、およびメモリ・テストも実行する。BIST、BAT、およびメモリ・テスト時に検出された障害に関する如何なるエラー情報も、サービス・プロセッサ135によって収集および報告される。
BIST、BAT、およびメモリ・テスト時に障害があると分かった要素を取り除いた後でも依然としてシステム資源の有意/有効構成が可能である場合、データ処理システム100は実行可能なコードをローカル(ホスト)・メモリ160〜163にロードすることを可能にされる。その後、サービス・プロセッサ135は、ローカル・メモリ160〜163にロードされたコードの実行のためにホスト・プロセッサ101〜104を解放する。ホスト・プロセッサ101〜104がデータ処理システム100内のそれぞれのオペレーティング・システムからのコードを実行している間、サービス・プロセッサ135は、エラーをモニタして報告するモードに入る。サービス・プロセッサ135によってモニタされる項目のタイプは、例えば、冷却ファンの速度およびオペレーション、熱センサー、電源調整装置、ならびにプロセッサ101〜104、ローカル・メモリ160〜163、およびI/Oブリッジ110によって報告された復元可能エラーおよび復元不可能エラーを含む。
サービス・プロセッサ135は、データ処理システム100におけるすべてのモニタされた項目に関係するエラー情報を保存し且つ報告する義務を負う。サービス・プロセッサ135は、さらにエラーのタイプおよび定義された閾値に基づいてアクションを取る。例えば、サービス・プロセッサ135は、プロセッサのキャッシュ・メモリにおける過度の復元可能エラーに注意し、これがハード障害の予兆であるということを決定することも可能である。この決定に基づいて、サービス・プロセッサ135は、現在の稼動セッションおよび将来の初期プログラム・ロード(IPL)時の構成解除に備えてその資源をマークすることが可能である。なお、IPLは、「ブート」あるいは「ブートストラップ」と呼ばれることもある。
データ処理システム100は、種々の商業的に入手可能なコンピューター・システムを使用して具現化することが可能である。例えば、データ処理システム100は、IBM eServer Model 840 システムを使用して具現化することも可能である。そのようなシステムは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能な OS/400(商標)オペレーティング・システムを使用して論理分割を支援し得るものである。
図1に示されたハードウェアが変更可能であることは当業者には明らかであろう。例えば、図示のハードウェアに加えて、あるいはそのハードウェアの代わりに光ディスク装置等のような他の周辺装置を使用することも可能である。図示の例は、本発明に関しての体系上の限定を暗示することを意味するものではない。
I/Oブリッジ110は、テーブル110aをそのテーブルのための制御装置と共に含む。変換および制御エントリ(TCE)がテーブル110a(即ち、TCEテーブル)に格納される。テーブル110aは、I/Oページに基づいて、I/O装置から物理ページへのI/Oオペレーションを制御する機能を提供するI/Oアドレス変換および保護機構である。
TCEエントリは、物理メモリの物理ページの実アドレスを、I/OアダプタによってI/Oバス上に与えられるアドレスと関連付ける。各エントリは、特定の物理ページを特定のI/Oバス・ページと関連付ける。TCEテーブル110aは、DMAオペレーションのI/Oバス・アドレスによってインデックスされる。このテーブルは、I/Oアダプターが、それが割り当てられた記憶ロケーションのみにアクセスすることを保証するために使用される。さらに、TCE機構は、本発明の実施例を具現化することを可能にする間接アドレス機構を提供する。
図2は、本発明の実施例を含む例示的な論理分割プラットフォームのブロック図を示す。論理分割プラットフォーム200におけるハードウェアは、例えば、図1におけるデータ処理システム100として具現化することが可能である。論理分割プラットフォーム200は、分割ハードウェア230、オペレーティング・システム(OS)202、204、206、208、およびプラットフォーム・ファームウェア210を含む。オペレーティング・システム202、204、206、および208は、論理分割プラットフォーム200上で同時に稼動する単一のオペレーティング・システムの複数コピー、または多数の異種のオペレーティング・システムであってもよい。これらのオペレーティング・システムは、ハイパーバイザのようなパーティション管理ファームウェアとインターフェースするように設計されているOS/400 を使用して具現化することも可能である。OS/400 は、単に、これらの実施例における1つの例として使用されるに過ぎない。AIX(商標)およびLinux(商標)のような他のタイプのオペレーティング・システムも、特定の具現化態様次第では使用することが可能である。
オペレーティング・システム202、204、206、および208がパーティション203、205、207、および209に設けられる。ハイパーバイザ・ソフトウェアは、プラットフォーム・ファームウェア210を具現化するために使用することができ、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能であるソフトウェアの一例である。ファームウェアは、例えば、リード・オンリ・メモリ(ROM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、および不揮発性ランダム・アクセス・メモリ(NVRAM)のような電力なしでその内容を保持するメモリ・チップに格納された「ソフトウェア」である。
さらに、これらのパーティションはパーティション・ファームウェア211、213、215、および217も含む。パーティション・ファームウェア211、213、215、および217は、初期ブートストラップ・コード、IEEE-1275標準オープン・ファームウェア、および、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能なランタイム・アブストラクション・ソフトウェア(RTAS)を使用して具現化することも可能である。
パーティション203、205、207、および209がインスタンス化されるとき、ブートストラップ・コードのコピーが、プラットフォーム・ファームウェア210によってパーティション203、205、207、および209にロードされる。しかる後、制御がブートストラップ・コードに移され、その後、そのブートストラップ・コードがオープン・ファームウェアおよびRTASをロードする。しかる後、それらのパーティションと関連したプロセッサまたはそれらに割り当てられたプロセッサが、そのパーティション・ファームウェアを実行するためにパーティションのメモリにディスパッチされる。
分割ハードウェア230は複数のプロセッサ232〜238、複数のシステム・メモリ・ユニット240〜246、複数の入出力アダプタ(IOA)248〜262、ストレージ・ユニット270、およびTCEテーブル272を含む。プロセッサ232〜238、メモリ・ユニット240〜248、NVRAM298、およびI/Oアダプタ248〜262、あるいはそれの一部分の各々は、論理分割プラットフォーム200内の多数のパーティションの1つに割り当てることが可能である。各パーティションはオペレーティング・システム202、204、206、および208の1つに対応する。
プラットフォーム・ファームウェア210は、論理分割プラットフォーム200の区分化を生成および促進するためにパーティション203、205、207、および209のための多くの機能およびサービスを行う。プラットフォーム・ファームウェア210は、基礎ハードウェアと同じファームウェア具現化仮想マシンである。したがって、プラットフォーム・ファームウェア210は、論理分割プラットフォーム200のハードウェア資源を仮想化することによって独立のOSイメージ202、204、206、および208の同時の実行を可能にする。
サービス・プロセッサ290は、パーティションにおけるプラットフォーム・エラーの処理のような様々なサービスを提供するために使用することが可能である。これらのサービスは、インターナショナル・ビジネス・マシーンズ・コーポレーションのようなベンダにエラーを報告するためのサービス・エージェントとしての役割を果たすことも可能である。種々のパーティションのオペレーションが、ハードウェア管理コンソール280のようなハードウェア管理コンソールを通して制御されることも可能である。ハードウェア管理コンソール280は、システム管理者が種々のパーティションへの資源の再配分を含む様々な機能を行うことを可能にする別個のデータ処理システムである。
LPAR環境では、1つのパーティションにおける資源またはプログラムが別のパーティションにおけるオペレーションに影響を与えることは許容し得ないことである。更に、有用であるためには、資源の割り振りがきめの細かいものであることが必要である。例えば、特定のPCIホスト・ブリッジ(PHB)に接続されているすべてのI/Oアダプタを同じパーティションに割り当てることは、パーティション間で資源を動的に移動させる機能を含むシステムの構成可能性を制限するので、多くの場合受け入れ難いことである。
従って、個々のI/OアダプタあるいはI/Oアダプタの一部分のような資源を別々のパーティションに割り当てることができるようにI/OアダプタをI/Oバスに接続し、同時に、割り当てられた資源が、例えば他のパーティションの資源へのアクセスを得ることによって当該他のパーティションに影響を与えることを阻止する、何らかの機能がPCIホスト・ブリッジでは必要である。
図3は、本発明の実施例に従うページ・マイグレーション変換プロセスのブロック図を示す。ページ・マイグレーションは、1つの物理メモリ・ページから異なるメモリ・ページにデータを移動させるプロセスである。このアクションはデータのユーザにとって透明でなければならない。例えば、この実施例では、ページ・マイグレーションは、物理メモリ304におけるページ302をその物理メモリにおける異なるロケーション即ちページ306に移動させることを含む。変換制御エントリ(TCE)機構を介してI/OアダプタのI/Oバス・ページ・アドレスをリダイレクトすることによって、ユーザにとって透明なページ・マイグレーションを行うことが可能である。TCE機構は、データの物理メモリ・アドレスを識別するためにTCEテーブル308を使用する。TCEテーブル308は、図1におけるTCEテーブル110aのようなアドレス変換ルックアップ・テーブルの一例である。TCEテーブルは、適切なターゲット・メモリへのI/OアダプタのDMAアクセスを指示するために使用され、データ・マイグレーション後に、新しいデータ・ロケーションにおける新しいメモリ・アドレスを指すように変更することが可能である。
TCEテーブル308は、一次バスに接続された任意のI/Oブリッジの二次バスにおけるすべてのI/Oアダプタを支援するように各I/Oホスト・ブリッジに対して設けられる。TCEテーブル308は、TCE310および312のような複数のページ・エントリを含む。これらのページ・エントリは、I/Oバス上のページ・アドレスに基づいてアドレス変換および制御機構によってフェッチされる。1つまたは複数のTCEが特定のページを指すことも可能である。図示のように、TCE310および312の両方がページ302を指す。ページ302がページ306にマイグレーションされるとき、それらのTCEの内容は新たなページ、即ち、ページ306を指すように変更されなければならない。ページがマイグレーションされるときの各TCEの内容に対するこの変更は、I/OアダプタあるいはI/Oアダプタのデバイス・ドライバに関連することなく行われる。このようにして、当初はページ302を指していたTCE310および312が、メモリ・マイグレーションの宛先、即ち、ページ306を指すように変更される。
図4は、PCIホスト・ブリッジ(PHB)のような既知のI/Oホスト・ブリッジにおけるコンポーネントのブロック図である。この実施例では、PCIホスト・ブリッジ400は、メモリ・マップI/O(MMIO)キューおよび制御ロジック402、MMIOロード応答キューおよび制御ロジック404、DMAキューおよび制御ロジック406、ならびにアドレス変換および制御ロジック408を含む。PCIホスト・ブリッジ400は、一次バス410からMMIOロードおよびストア要求を受け取ると、MMIOキューおよび制御ロジック402においてMMIOロードおよびストア要求をキューに入れ且つ制御する。MMIOオペレーションは、アドレスされたMMIOスペースから、あるいはそのスペースにデータを転送する単一のロードまたはストア命令の実行を含むことも可能である。MMIOキューおよび制御ロジック402から、MMIOロードおよびストア要求は二次バス412に送出される。
PCIホスト・ブリッジ400はDMA読取りおよび書込み要求を二次バス412から受け取り、それらの要求はDMAキューおよび制御ロジック406に送り込まれる。PCIホスト・ブリッジ400は、DMA書込みおよび読取り要求を二次バス412から受け取ると、DMAキューおよび制御ロジック406においてDMA書込みおよび読取り要求をキューに入れ且つ制御する。DMAキューおよび制御ロジック406は、図1におけるTCEテーブル110aから変換制御エントリをフェッチするようにアドレス変換および制御ロジック408に指示することが可能である。アドレス変換および制御ロジック408は、物理メモリのロケーションを決定するために、供給されたDMAアドレスに対応するTCEテーブルにおけるエントリをフェッチする。このようにして、フェッチされたエントリは、DMA書込みまたは読取り要求を変換および制御するために使用される。
PCIホスト・ブリッジ400は、二次バス412からMMIOロード応答も受取る。その応答は、MMIOロード応答キューおよび制御ロジック404においてキューに入れられ、制御される。DMAキューおよび制御ロジック406では、DMA書込みおよび読取り要求が一次バス410に送出される。MMIOロード応答は、MMIOロード応答キューおよび制御ロジック404から一次バスに送出される。
図5は、本発明の実施例に従う、PCIホスト・ブリッジにおいて変換制御エントリ・マイグレーション制御を含むコンポーネントのブロック図である。本発明の諸態様は、通常のPCI、PCI−XおよびPCIエクスプレス含むすべての形式のペリフェラル・コンポーネント・インターコネクト(PCI)、並びに他のI/Oバスに適用することが可能である。図4におけるPCIホスト・ブリッジ(PHB)400のように、PCIホスト・ブリッジ500は、メモリ・マップI/O(MMIO)キューおよび制御ロジック502、MMIOロード応答キューおよび制御ロジック504、DMAキューおよび制御ロジック506、ならびにアドレス変換および制御ロジック508を含み、それらは図4における既知のPCIホスト・ブリッジ400におけるコンポーネントと同様のオペレーションを遂行する。しかし、PCIホスト・ブリッジ500はTCEマイグレーション制御ロジック510も含む。この制御ロジック510は、他の実行中のDMAオペレーションに悪影響を及ぼすことなく物理ページのマイグレーションを可能にするために、選択されたDMAオペレーションを停止させるためのロジックを含む。アドレス変換および制御ロジック508が図1におけるTCEテーブル110aのようなTCEテーブルからエントリをフェッチするとき、TCEマイグレーション制御ロジック510は、そのエントリに関連したメモリの物理ページのマイグレーションが進行中かどうか決めるためにそのエントリを受取って検査する。TCEマイグレーション制御ロジック510に関しては、図7において更に詳細に説明することにする。
図6は、本発明の実施例に従う例示的なTCEエントリを示す。TCEエントリ600は、変換情報602、読取りおよび書込み制御情報604、ならびにマイグレーション進行状況表示(MIP)ビット606を含む。変換情報602は、データの物理ページ番号(即ち、メモリにおけるページの開始アドレス)を含む。読取りおよび書込みの制御情報604は、ページが、DMA読取りのみによって、DMA書込みのみによって、もしくはDMA読取りおよびDMA書込みの両方によってアクセスし得るか、または全くアクセスし得ないことを表す制御情報を含む。
マイグレーション進行状況表示(MIP)ビット606は、TCEエントリと関連したメモリの特定の物理ページが現在マイグレーションされつつあるどうか表す。MIPビット606がセットされている(即ち、MIPビット=1)場合、ページ・マイグレーションが完了するまで、特定のページに対するいずれのオペレーションおよび同じI/Oアダプタからのいずれの先行のDMAオペレーションも停止させられるであろう。MIPビット606がオフである(即ち、MIPビット=0)場合、そのページへのDMAオペレーションは継続することを可能にされる。
図7は、本発明の実施例に従うTCEマイグレーション制御のロジックを示すブロック図である。TCEマイグレーション制御ロジック700は、図5に示されたTCEマイグレーション制御ロジック510の詳細な例である。TCEマイグレーション制御ロジック700は、図5におけるアドレス変換および制御ロジック508のようなアドレス変換および制御ロジックがシステム・メモリにあるTCEテーブルからTCE702をフェッチするときに使用される。フェッチされたTCE704はTCE保持レジスタ706に入れられ、マイグレーション制御状態マシン708によって検査される。詳しく言えば、マイグレーション制御状態マシン708は、TCE704内のページ・アドレスが現在システム・メモリの異なるロケーションにマイグレーションされている物理ページと関連付けられているかどうかを決定するためにTCE704内のMIPビット710を検査する。例えば、MIPビット710が1にセットされている場合、マイグレーション制御状態マシン708は図5におけるアドレス変換および制御ロジック508に信号712を送ってDMAを停止させる。TCEマイグレーション制御ロジック700がDMA停止信号を取り除くまで、図5におけるアドレス変換および制御ロジック508は、DMAを遂行しているI/Oアダプタからの如何なるDMA書込みまたは読取り要求も、あるいはI/Oアダプタからの如何なるMMIOロード応答も、進行することを許さないであろう。
DMA書込み要求または読取り要求は許されないが、DMA読取り応答は、パスに沿ってキューに入れられている停止させられたMMIOロードまたはストア要求を迂回することを許されるということに留意されたい。DMA読取り応答が停止させられたMMIOロードまたはストア要求を迂回することを許すと、たとえMMIOキューが未完了の要求を持っていても、図5におけるアドレス変換および制御ロジック508によるTCEの再読取りが可能になる。
DMA停止信号712が送出されるとき、図5におけるアドレス変換および制御ロジック508によってフェッチされたTCEはTCE保持レジスタ706から廃棄され、TCE再フェッチ・タイマ714が信号716によって開始される。TCE再フェッチ・タイマ714は、システムにページ・マイグレーション・オペレーションを完了するための時間がなかったとき、TCEを再フェッチする要求がシステムにあふれないようにするために具現化される。従って、TCE再フェッチ・タイマ714は、図5におけるアドレス変換および制御ロジック508がTCEを再フェッチする期間を延ばし、それによって、システム・ソフトまたはファームウェアがページ・マイグレーション・オペレーションを完了してTCEのMIPビットを0にリセットすることを可能にする。そこで、マイグレーション制御状態マシン708は、TCE再フェッチ・タイマ714が満了するのを待つ。
マイグレーション制御状態マシン708は、TCE再フェッチ・タイマ714が満了したことを信号718から決定すると、TCEを再フェッチするための信号720を図5におけるアドレス変換および制御ロジック508に送る。TCEが再フェッチされると、その再フェッチされたエントリが保持レジスタ706に入れられる。プロセスは、停止したオペレーションに対するTCE内のMIPビット710が0であるということをマイグレーション制御状態マシン708が決定するまで、このループを継続し、しかる後、図5におけるアドレス変換および制御ロジック508がDMA停止信号712の滅勢によって継続を知らされ、TCEによって参照された物理ページへのDMAオペレーションは再開することが可能となる。
別の実施例では、TCE再フェッチ・タイマ714が除去され、それによって、保持レジスタ706内のTCE704のMIPビット710が1にセットされていることをアドレス変換および制御ロジック508が決定すると直ちにTCEの廃棄および再フェッチを遂行させることが可能となる。
ほとんどの場合、PCIホスト・ブリッジは、種々のI/Oアダプタへのオペレーションおよび種々のI/Oアダプタからのオペレーションを区別せず、それによってすべてのDMAおよびMMIOオペレーションを一時的に停止させるであろう。しかし、PCI−XおよびPCIエクスプレス・アダプタは、データ・ストリームの区別を可能にするいくつかの機構をパフォーマンスの向上として提供する。例えば、PCI−XおよびPCIエクスプレスでは、DMAを関連付けるために要求元ID(バス番号、装置番号、および機能番号)を使用することも可能である。MMIOを要求元IDに関連付けるためのMMIOのデコーディングは、停止したDMAパスにMMIOパスを結び付けるために使用することも可能である。PCIエクスプレスに関しては、これが仮想チャネル機構によって達成されてもよい。更なるパフォーマンス向上として、MIPビット710がセットされたページへの第1のDMA書込みオペレーションまでDMAオペレーションを停止する必要がなく、従って、停止ができるだけ遅れるかまたは完全に回避されるという実施例も可能である。即ち、マイグレーションされているページが変更されてない場合、オペレーションの継続を許容し得る。一旦、マイグレーションされるページに対するDMA書込みが検出されると、そのページへの更なるDMAオペレーション、そのページからの更なるDMAオペレーション、そのページへのDMA書込みを要求するI/O装置への更なるDMAオペレーション、およびそのI/O装置からの更なるDMAオペレーションは停止されなければならない。
図8は、本発明の実施例に従って、特定のDMAオペレーションを一時的におよび選択的に停止させるためにハードウェアのアドレス変換および制御、並びにマイグレーション制御状態マシンによって遂行されるプロセスを示すフローチャートである。このプロセスは、バスからDMA要求を受け取ることに応答して、アドレス変換および制御ロジックがアドレス変換を開始することによって始まる(ステップ802)。アドレス変換は、第1バスからのメモリ要求と関連した正しい物理ページをアクセスするために、TCEテーブルにアクセスして、第2バスに供給しなければならない物理ページ・アドレスを含むTCEを得ることによって行うことが可能である。しかる後、ハードウェアは、その必要とされるTCEが、例えば、図1のI/Oブリッジ110におけるI/Oデータ・バッファー内に既にキャッシュされているかどうか、およびキャッシュ・データが有効であるかどうかの決定を行う(ステップ804)。TCEがキャッシュされ且つ有効である場合、ハードウェアは、ダイレクト・メモリ・アクセスがそのキャッシュされたTCEを使用し続けることを可能にする(ステップ806)。TCEがキャッシュされてない場合、ハードウェアは、TCEテーブルからTCEがフェッチされるまで、特定の要求のダイレクト・メモリ・アクセスを停止させる(ステップ808)。
TCEがフェッチされると(ステップ810)、エントリ内のMIPビットが1にセットされているかどうかに関する決定が行われる(ステップ812)。MIPビットがセットされてない(MIPビット=0)場合、ハードウェアはダイレクト・メモリ・アクセスの停止を解除する(ステップ814)。しかる後、プロセスはステップ806に戻り、ダイレクト・メモリ・アクセスが、フェッチされたTCEを使用し続けることを可能にする。ステップ812に説明を戻すと、MIPビットが1にセットされている場合、フェッチされたTCEが廃棄され(ステップ816)、TCE再フェッチ・タイマが開始する(ステップ818)。しかる後、マイグレーション制御状態マシンは、TCE再フェッチ・タイマが満了するのを待つ(ステップ820)。タイマが満了すると、プロセスはステップ810に戻り、TCEが再びTCEテーブルからフェッチされて、同様の処理が繰り返される。
図9は、本発明の実施例に従う、ページ・マイグレーションを制御するためのソフトウェア/ファームウェアによって行なわれるプロセスを示すフローチャートである。このプロセスは、ソフトウェア/ハードウェアがページ・マイグレーションを開始することによって始まる(ステップ902)。ソフトウェア/ファームウェアは、マイグレーションされるべきメモリ・ページを指す各TCEエントリ内のMIPビットをセット(MIPビット=1)する(ステップ904)。MIPビットを1にセットすることは、ページ・マイグレーションが進行中であることを示す。MIPビットの変更に応答して、TCEのキャッシュされたコピーの各々が無効にされる(ステップ906)。TCEエントリの無効化はこの分野では知られており、使用されるプラットフォームにしたがって様々な方法で行なうことが可能である。
しかる後、ソフトウェア/ファームウェアは、1にセットされたMIPビットを持つTCEを使用し得る各PCIホスト・ブリッジにMMIOロードを発行する(ステップ908)。これらのMMIOロードは、MMIOロード応答がプロセッサに戻される前に、TCEのハードウェア無効化をPCIホスト・ブリッジに到達させ、その無効化前のTCEへのすべての書込みがメモリに送出されてしまうことを保証するであろう(このプロセスは、通常のPCI順序付けルールによって保証される)。
ソフトウェア/ファームウェアは、同期したMMIOロードがすべて完了するのを待つ(ステップ910)。それらのロードが完了すると、ソフトウェア/ファームウェアは、メモリ・ソース・ページへのソフトウェア・ロードおよび宛先ページへのソフトウェア・ストアを行うことによって古い物理ページの内容を新しいページにコピーする(ステップ912)。このコピーの完了時に、ソフトウェア/ファームウェアは新しいページを指すようにTCEをセットし、それらのTCE内のMIPビットを0にセットする(ステップ914)。ソフトウェア/ファームウェアは、古いTCE値を使用する実行中のすべてのダイレクト・メモリ・アクセス読取り要求および応答が完了するのに十分な長い時間待機する(ステップ916)。ダイレクト・メモリ・アクセス読取りオペレーションがすべて完了したことを決定すると、ソフトウェア/ファームウェアはページ・マイグレーションを完了として宣言することが可能である(ステップ918)。
本発明は、ハードウェアの実施例、またはハードウェア要素およびソフトウェア要素の両方を含む実施例の形式をとることが可能である。プログラム・コードの記憶や実行に適したデータ処理システムは、システム・バスを介してメモリ要素に直接的あるいは間接的に結合された少なくとも1つのプロセッサを含むであろう。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量ストレージと、プログラム・コードが実行中に大容量ストレージから検索されなければならない回数を減らすために少なくとも幾つかのプログラム・コードの一時記憶を提供するキャッシュ・メモリとを含むことが可能である。
入出力装置、即ち、I/O装置(キーボード、ディスプレイ、ポインティング・デバイス等を含むが、これらに限定されない)は、 直接にあるいはI/Oコントローラの介在を通してシステムに結合することができる。
データ処理システムが、介在する私設ネットワークまたは公衆ネットワークを介して、他のデータ処理システムまたは遠隔のプリンタもしくはストレージに結合されることを可能にするように、ネットワーク・アダプタをシステムに結合することも可能である。モデム、ケーブル・モデム、および Ethernet(登録商標) カードは、現在利用可能なタイプのネットワーク・アダプタである。
本発明に関する記述は、例示と説明を目的として示されており、網羅的であることまたは開示された形式の発明に限定されることを意図するものではない。多くの修正および変更が当業者には明らかであろう。実施例は、本発明の原理、実用的な応用を最もよく説明するために、および当業者が、予想される特定の用途に適するように種々の修正を伴う種々の実施例に関して本発明を理解することを可能にするために、選定および記述された。
本発明の諸態様を具現化し得るコンピュータ・システムの高レベルのブロック図である。 本発明を具現化し得る例示的な論理分割プラットフォームのブロック図である。 本発明の実施例に従うページ・マイグレーション変換プロセスを示すブロック図である。 既知のPCIホスト・ブリッジ(PHB)におけるコンポーネントのブロック図である。 本発明の実施例に従う、PCIホスト・ブリッジ内の変換制御エントリ(TCE)マイグレーション制御を含むコンポーネントのブロック図である。 本発明の実施例に従う例示的な変換および制御エントリを示す概略図である。 本発明の実施例に従う、図5におけるTCEマイグレーション制御のロジックを示すブロック図である。 本発明の実施例に従う、システム・ハードウェアのアドレス変換および制御状態マシン並びにマイグレーション制御状態マシンによって遂行されるプロセスを示すフローチャートである。 本発明の実施例に従うページ・マイグレーションのソフトウェア/ハードウェア制御を示すフローチャートである。

Claims (12)

  1. 複数の物理ページをもつシステム・メモリと、該物理ページに対応して設けられ、該物理ページにアクセスしてダイレクト・メモリ・アクセス・オペレーションを実行させる入出力アダプタとをもつシステムにおいて、前記ダイレクト・メモリ・アクセス・オペレーションを選択的に停止させるための方法であって、
    前記物理ページへのダイレクト・メモリ・アクセスに関する要求を前記入出力アダプタから受け取ることに応答して、前記物理ページを指す変換制御エントリにおいて、システム・メモリ内の他のロケーションへの前記物理ページのマイグレーションが進行中であるかどうかを表すマイグレーション進行状況表示ビットを検査するステップと、
    前記物理ページのマイグレーションが進行中であることを前記マイグレーション進行状況表示ビットが表す場合、前記入出力アダプタからのダイレクト・メモリ・アクセスを停止させるが、他の物理ページに対応する入出力アダプタから前記システム・メモリ内の他の物理ページへの他のダイレクト・メモリ・アクセス・オペレーションを継続させるステップとを含み、
    前記物理ページのマイグレーションが、
    前記物理ページのマイグレーションが進行中であることを表すように、前記物理ページを指すすべての変換制御エントリ内のマイグレーション進行状況表示ビットをセットするステップと、
    前記マイグレーション進行状況表示ビットをセットすることに応答して、前記変換制御エントリのキャッシュされたコピーを無効にするステップと、
    各PCIホスト・ブリッジにメモリ・マップ入出力ロードを発行するステップと、
    すべてのメモリ・マップ入出力ロードが完了したという決定に応答して、前記物理ページの内容を新しい物理ページにコピーするステップと、
    前記新しい物理ページを指すように前記変換制御エントリを修正するステップと、
    物理ページのマイグレーションが進行中でないことを表すように、前記変換制御エントリ内の各マイグレーション進行状況表示ビットをセットするステップと、
    すべての実行中のダイレクト・メモリ・アクセス読取りオペレーションが完了したという決定に応答して、前記マイグレーションが完了したとして宣言するステップと、
    を含む、
    方法。
  2. 前記物理ページのマイグレーションが進行中でないことを前記マイグレーション進行状況表示ビットが表す場合、前記物理ページへのダイレクト・メモリ・アクセスが継続することを可能にするステップを更に含む、請求項1に記載の方法。
  3. 前記停止させるステップが、前記マイグレーションが完了するまで前記入出力アダプタからのダイレクト・メモリ・アクセスを停止させるステップを含む、請求項1に記載の方法。
  4. 前記検査するステップが、
    システム・メモリにある変換制御エントリ・テーブルから前記変換制御エントリをフェッチするステップと、
    前記変換制御エントリ内の前記マイグレーション進行状況表示ビットを検査するために前記変換制御エントリを前記入出力アダプタ内の保持レジスタに入れるステップと、
    を更に含む、請求項1に記載の方法。
  5. 前記停止させるステップが、前記入出力アダプタからのダイレクト・メモリ・アクセス書込み要求およびダイレクト・メモリ・アクセス読取り要求ならびに前記入出力アダプタからのメモリ・マップ入出力ロード応答を使用不可にするステップを更に含む、請求項1に記載の方法。
  6. マイグレーションされる物理ページへのダイレクト・メモリ・アクセス書込み要求を受け取るまで、前記停止させるステップを遅らせる、請求項1に記載の方法。
  7. 前記ダイレクト・メモリ・アクセスを停止させることに応答して、前記保持レジスタから前記変換制御エントリを廃棄するステップと、
    前記ダイレクト・メモリ・アクセスにおける前記物理ページのマイグレーションが進行中でないという決定が行われるまで、前記変換制御エントリを変換制御エントリ・テーブルから再フェッチするステップと、
    を更に含む、請求項4に記載の方法。
  8. 前記保持レジスタから前記変換制御エントリを廃棄することに応答して、再フェッチ・タイマを開始させるステップと、
    前記ダイレクト・メモリ・アクセスにおける前記物理ページのマイグレーションが進行中でないという決定が行われるまで、前記変換制御エントリが廃棄され、且つ前記再フェッチ・タイマが満了するたびに前記変換制御エントリ・テーブルから前記変換制御エントリを再フェッチするステップと、
    を更に含む、請求項7に記載の方法。
  9. 前記要求を受け取ることに応答して、前記ダイレクト・メモリ・アクセスを行うために必要な変換制御エントリがキャッシュされているかどうかを決定するステップと、
    前記変換制御エントリがキャッシュされてない場合、前記変換制御エントリがフェッチされるまで前記ダイレクト・メモリ・アクセスを停止させるステップと、
    を更に含む、請求項1に記載の方法。
  10. 前記変換制御エントリがキャッシュされている場合、キャッシュされている変換制御エントリが有効であるかどうかを決定するステップと、
    前記キャッシュされている変換制御エントリが有効である場合、前記キャッシュされている変換制御エントリを使用して前記ダイレクト・メモリ・アクセスが継続することを可能にするステップと、
    を更に含む、請求項9に記載の方法。
  11. 前記メモリ・マップ入出力ロードは、メモリ・マップ入出力ロード応答がプロセッサに戻る前に前記変換制御エントリの無効化を前記PCIホスト・ブリッジに到達させ、前記変換制御エントリの無効化前におけるメモリへのすべてのダイレクト・メモリ・アクセス書込みがメモリに送出されることを保証させる、請求項1に記載の方法。
  12. 前記コピーするステップが、前記物理ページへのソフトウェア・ロードおよび前記新しいページへのソフトウェア・ストアを行うステップを含む、請求項1に記載の方法。
JP2007098505A 2006-04-17 2007-04-04 Dmaオペレーションを選択的に停止させるための方法、装置およびデータ処理システム Expired - Fee Related JP4898525B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/279,906 US8621120B2 (en) 2006-04-17 2006-04-17 Stalling of DMA operations in order to do memory migration using a migration in progress bit in the translation control entry mechanism
US11/279,906 2006-04-17

Publications (2)

Publication Number Publication Date
JP2007287140A JP2007287140A (ja) 2007-11-01
JP4898525B2 true JP4898525B2 (ja) 2012-03-14

Family

ID=38662426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007098505A Expired - Fee Related JP4898525B2 (ja) 2006-04-17 2007-04-04 Dmaオペレーションを選択的に停止させるための方法、装置およびデータ処理システム

Country Status (4)

Country Link
US (1) US8621120B2 (ja)
JP (1) JP4898525B2 (ja)
CN (1) CN100495375C (ja)
TW (1) TWI414943B (ja)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574537B2 (en) * 2005-02-03 2009-08-11 International Business Machines Corporation Method, apparatus, and computer program product for migrating data pages by disabling selected DMA operations in a physical I/O adapter
US7500072B2 (en) * 2006-04-25 2009-03-03 International Business Machines Corporation Migrating data that is subject to access by input/output devices
TWI328167B (en) * 2007-05-04 2010-08-01 Inventec Corp Method for accessing memory
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US8918488B2 (en) * 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
US8572635B2 (en) 2010-06-23 2013-10-29 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US8626970B2 (en) 2010-06-23 2014-01-07 International Business Machines Corporation Controlling access by a configuration to an adapter function
US8639858B2 (en) 2010-06-23 2014-01-28 International Business Machines Corporation Resizing address spaces concurrent to accessing the address spaces
US8621112B2 (en) 2010-06-23 2013-12-31 International Business Machines Corporation Discovery by operating system of information relating to adapter functions accessible to the operating system
US8510599B2 (en) 2010-06-23 2013-08-13 International Business Machines Corporation Managing processing associated with hardware events
US8566480B2 (en) 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8478922B2 (en) 2010-06-23 2013-07-02 International Business Machines Corporation Controlling a rate at which adapter interruption requests are processed
US8650337B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Runtime determination of translation formats for adapter functions
US8615645B2 (en) 2010-06-23 2013-12-24 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
US8468284B2 (en) 2010-06-23 2013-06-18 International Business Machines Corporation Converting a message signaled interruption into an I/O adapter event notification to a guest operating system
US8635430B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Translation of input/output addresses to memory addresses
US8504754B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Identification of types of sources of adapter interruptions
US9213661B2 (en) * 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9195623B2 (en) * 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US8505032B2 (en) 2010-06-23 2013-08-06 International Business Machines Corporation Operating system notification of actions to be taken responsive to adapter events
US8549182B2 (en) 2010-06-23 2013-10-01 International Business Machines Corporation Store/store block instructions for communicating with adapters
US8650335B2 (en) 2010-06-23 2014-02-11 International Business Machines Corporation Measurement facility for adapter functions
US8407389B2 (en) * 2010-07-20 2013-03-26 International Business Machines Corporation Atomic operations with page migration in PCIe
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US20120254582A1 (en) * 2011-03-31 2012-10-04 Ashok Raj Techniques and mechanisms for live migration of pages pinned for dma
EP2626757A1 (en) * 2012-02-08 2013-08-14 Intel Mobile Communications Technology Dresden GmbH Finite state machine for system management
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
CN102645609B (zh) * 2012-03-30 2014-12-10 上海斐讯数据通信技术有限公司 Jtag链路测试装置及其测试方法
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US9875105B2 (en) 2012-05-03 2018-01-23 Nvidia Corporation Checkpointed buffer for re-entry from runahead
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US9645929B2 (en) 2012-09-14 2017-05-09 Nvidia Corporation Speculative permission acquisition for shared memory
US20140089553A1 (en) * 2012-09-24 2014-03-27 Broadcom Corporation Interface between a host and a peripheral device
US10001996B2 (en) 2012-10-26 2018-06-19 Nvidia Corporation Selective poisoning of data during runahead
US9740553B2 (en) 2012-11-14 2017-08-22 Nvidia Corporation Managing potentially invalid results during runahead
US9632976B2 (en) 2012-12-07 2017-04-25 Nvidia Corporation Lazy runahead operation for a microprocessor
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US9569214B2 (en) 2012-12-27 2017-02-14 Nvidia Corporation Execution pipeline data forwarding
US9823931B2 (en) 2012-12-28 2017-11-21 Nvidia Corporation Queued instruction re-dispatch after runahead
US9547602B2 (en) 2013-03-14 2017-01-17 Nvidia Corporation Translation lookaside buffer entry systems and methods
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US9582280B2 (en) 2013-07-18 2017-02-28 Nvidia Corporation Branching to alternate code based on runahead determination
US10404795B2 (en) * 2014-02-19 2019-09-03 Vmware, Inc. Virtual machine high availability using shared storage during network isolation
US9563572B2 (en) 2014-12-10 2017-02-07 International Business Machines Corporation Migrating buffer for direct memory access in a computer system
US10810031B2 (en) * 2015-09-28 2020-10-20 Red Hat Israel, Ltd. Dirty memory tracking with assigned devices by exitless paravirtualization
US9529759B1 (en) 2016-01-14 2016-12-27 International Business Machines Corporation Multipath I/O in a computer system
US10042720B2 (en) 2016-02-22 2018-08-07 International Business Machines Corporation Live partition mobility with I/O migration
US10042723B2 (en) 2016-02-23 2018-08-07 International Business Machines Corporation Failover of a virtual function exposed by an SR-IOV adapter
US10002018B2 (en) 2016-02-23 2018-06-19 International Business Machines Corporation Migrating single root I/O virtualization adapter configurations in a computing system
US10025584B2 (en) 2016-02-29 2018-07-17 International Business Machines Corporation Firmware management of SR-IOV adapters
US9720862B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9715469B1 (en) 2016-10-21 2017-07-25 International Business Machines Corporation Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9740647B1 (en) * 2016-10-21 2017-08-22 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9785451B1 (en) 2016-10-21 2017-10-10 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system
US9760512B1 (en) 2016-10-21 2017-09-12 International Business Machines Corporation Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
US9720863B1 (en) 2016-10-21 2017-08-01 International Business Machines Corporation Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system
CN110765462B (zh) * 2018-07-28 2023-06-27 阿里巴巴集团控股有限公司 一种操作控制方法、装置、计算系统及电子设备
CN113950721B (zh) 2019-05-31 2022-12-30 美光科技公司 允许多核操作的基于jtag的架构
CN110321225B (zh) * 2019-07-08 2021-04-30 腾讯科技(深圳)有限公司 负载均衡方法、元数据服务器及计算机可读存储介质
US11567666B2 (en) * 2021-03-24 2023-01-31 Ati Technologies Ulc Handling the migration of pages of memory accessible by input-output devices
US20230325321A1 (en) * 2022-04-11 2023-10-12 Samsung Electronics Co., Ltd. Systems and methods for pre-populating address translation cache

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377337A (en) * 1993-06-08 1994-12-27 International Business Machines Corporation Method and means for enabling virtual addressing control by software users over a hardware page transfer control entity
US6457072B1 (en) * 1999-07-29 2002-09-24 Sony Corporation System and method for effectively performing physical direct memory access operations
GB2359906B (en) * 2000-02-29 2004-10-20 Virata Ltd Method and apparatus for DMA data transfer
US6785759B1 (en) 2000-05-10 2004-08-31 International Business Machines Corporation System and method for sharing I/O address translation caching across multiple host bridges
US6654818B1 (en) 2000-06-22 2003-11-25 International Business Machines Corporation DMA access authorization for 64-bit I/O adapters on PCI bus
US6678755B1 (en) * 2000-06-30 2004-01-13 Micron Technology, Inc. Method and apparatus for appending memory commands during a direct memory access operation
US6816921B2 (en) * 2000-09-08 2004-11-09 Texas Instruments Incorporated Micro-controller direct memory access (DMA) operation with adjustable word size transfers and address alignment/incrementing
US6931471B2 (en) 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US6941436B2 (en) * 2002-05-09 2005-09-06 International Business Machines Corporation Method and apparatus for managing memory blocks in a logical partitioned data processing system
US7103728B2 (en) 2002-07-23 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for memory migration in distributed-memory multi-processor systems
US6804729B2 (en) 2002-09-30 2004-10-12 International Business Machines Corporation Migrating a memory page by modifying a page migration state of a state machine associated with a DMA mapper based on a state notification from an operating system kernel
US7117385B2 (en) 2003-04-21 2006-10-03 International Business Machines Corporation Method and apparatus for recovery of partitions in a logical partitioned data processing system
JP2005122640A (ja) 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。
US7146482B2 (en) 2003-11-25 2006-12-05 International Business Machines Corporation Memory mapped input/output emulation

Also Published As

Publication number Publication date
CN101059786A (zh) 2007-10-24
TW200809514A (en) 2008-02-16
TWI414943B (zh) 2013-11-11
CN100495375C (zh) 2009-06-03
US8621120B2 (en) 2013-12-31
JP2007287140A (ja) 2007-11-01
US20070260768A1 (en) 2007-11-08

Similar Documents

Publication Publication Date Title
JP4898525B2 (ja) Dmaオペレーションを選択的に停止させるための方法、装置およびデータ処理システム
US7734843B2 (en) Computer-implemented method, apparatus, and computer program product for stalling DMA operations during memory migration
US8607020B2 (en) Shared memory partition data processing system with hypervisor managed paging
US7318127B2 (en) Method, apparatus, and computer program product for sharing data in a cache among threads in an SMT processor
JP5579354B2 (ja) 関連アプリケーションに対するトラック・データ・クロスリファレンスを保存する方法及び装置
US7660912B2 (en) I/O adapter LPAR isolation in a hypertransport environment
US7492723B2 (en) Mechanism to virtualize all address spaces in shared I/O fabrics
US7908457B2 (en) Retaining an association between a virtual address based buffer and a user space application that owns the buffer
US20080168208A1 (en) I/O Adapter LPAR Isolation In A Hypertransport Environment With Assigned Memory Space Indexing a TVT Via Unit IDs
US20090204959A1 (en) Method and apparatus for virtual processor dispatching to a partition based on shared memory pages
JP4405435B2 (ja) 動的なホスト区画ページ割り当てのための方法および装置
US20060010276A1 (en) Isolation of input/output adapter direct memory access addressing domains
US7941568B2 (en) Mapping a virtual address to PCI bus address
US7266631B2 (en) Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains
US20090182967A1 (en) Packet transfer in a virtual partitioned environment
US20240086195A1 (en) Monitor exclusive instruction
US8930670B2 (en) Partition redispatching using page tracking

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111206

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

R150 Certificate of patent or registration of utility model

Ref document number: 4898525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees