JP2019537153A - サービス・レイヤ・アダプタを用いる、コヒーレンシの最低点(lpc)メモリの管理方法、アダプタ、プログラム - Google Patents

サービス・レイヤ・アダプタを用いる、コヒーレンシの最低点(lpc)メモリの管理方法、アダプタ、プログラム Download PDF

Info

Publication number
JP2019537153A
JP2019537153A JP2019528145A JP2019528145A JP2019537153A JP 2019537153 A JP2019537153 A JP 2019537153A JP 2019528145 A JP2019528145 A JP 2019528145A JP 2019528145 A JP2019528145 A JP 2019528145A JP 2019537153 A JP2019537153 A JP 2019537153A
Authority
JP
Japan
Prior art keywords
adapter
memory
memory access
access instruction
lpc
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
Application number
JP2019528145A
Other languages
English (en)
Other versions
JP6982618B2 (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 JP2019537153A publication Critical patent/JP2019537153A/ja
Application granted granted Critical
Publication of JP6982618B2 publication Critical patent/JP6982618B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/656Address space sharing

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)
  • Computer Security & Cryptography (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】サービス・レイヤ・アダプタを用いて、コヒーレンシの最低点(LPC)メモリを管理する。【解決手段】アダプタはホスト・コンピューティング・システム上のプロセッサおよびアクセラレータに連結され、プロセッサは対称型マルチプロセッシング用に構成されていて、該管理は、アダプタによって、アクセラレータからメモリ・アクセス命令を受信するステップと、アダプタによって、そのメモリ・アクセス命令に対する実アドレスを読出すステップと、アダプタ上のベース・アドレス・レジスタを使って、その実アドレスがLPCメモリを対象としていることを判断するステップであって、該ベース・アドレス・レジスタが、ホスト・コンピューティング・システム上のLPCメモリ位置と他のメモリ位置との間でメモリ・アクセス要求を振り分ける、該判断するステップと、アダプタによって、メモリ・アクセス命令および実アドレスを、LPCメモリに対するメディア・コントローラに送信するステップであって、このLPCメモリに対するメディア・コントローラはメモリ・インターフェースを介してアダプタに取付けられている、該送信するステップと、を含む。【選択図】図2

Description

本発明の分野はデータ処理であり、またはさらに具体的には、サービス・レイヤ・アダプタを用いて、コヒーレンシの最低点(LPC:lowest point of coherency)メモリを管理するための方法、装置、および製品である。
1948年EDVACコンピュータ・システムの開発が、しばしばコンピュータ時代の始まりとして挙げられている。この時以来、コンピュータ・システムは極めて複雑なデバイスに進展してきた。今日のコンピュータは、EDVACなど初期のシステムよりもはるかに高度である。コンピュータ・システムは、通常、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入力/出力デバイスなど、ハードウェアおよびソフトウェアコンポーネントの組合せを含む。半導体処理およびコンピュータ・アーキテクチャの進歩が、コンピュータのパフォーマンスをより高く押し上げるのとともに、そのハードウェアの高いパフォーマンスの利点を取り入れて、さらに高度なコンピュータ・ソフトウェアが進展し、ほんの数年前よりはるかに強力な今日のコンピュータ・システムをもたらしている。
サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理することによって、
・ AFUに、コヒーレント・インターフェースから独立したオープン・プロセッサ・メモリ・インターフェースをAFUに備えることによって、コンピュータ・システムのオペレーションを改良し、ストレージ・アクセス効率を向上し、
・ アダプタに取付けられたLPCメモリへの保護されたアクセスをAFUに備えることによって、コンピュータ・システムのオペレーションを改良し、待ち時間を低減し、
・ AFUにより、アダプタにローカルなおよびリモートなメモリへのメモリ・アクセスを管理することによって、コンピュータ・システムのオペレーションを改良し、メモリの整合性を向上する。
本明細書において、サービス・レイヤ・アダプタを用いて、コヒーレンシの最低点(LPC)メモリを管理するための方法、アダプタ、システム、装置、プログラムが開示される。開示されるアダプタはホスト・コンピューティング・システム上のプロセッサおよびアクセラレータに連結され、該プロセッサは対称型マルチプロセッシング用に構成されている、サービス・レイヤ・アダプタを用いるコヒーレンシの最低点(LPC)メモリの管理は、アダプタによって、アクセラレータからメモリ・アクセス命令を受信するステップと、アダプタによって、そのメモリ・アクセス命令に対する実アドレスを読み出すステップと、アダプタ上のベース・アドレス・レジスタを使って、その実アドレスがLPCメモリを対象としていることを判断するステップであって、該ベース・アドレス・レジスタが、ホスト・コンピューティング・システム上のLPCメモリ位置と他のメモリ位置との間でメモリ・アクセス要求を振り分ける、該判断するステップと、アダプタによって、メモリ・アクセス命令および実アドレスを、LPCメモリに対するメディア・コントローラに送信するステップであって、このLPCメモリに対するメディア・コントローラはメモリ・インターフェースを介してアダプタに取付けられている、該送信するステップを含む。
本発明の前述および他の目的、特徴、および利点は、添付の図面に示されている本発明の例示的な実施形態の以下のさらに具体的な説明から明らかとなろう。図面中の同じ参照符号は、一般に、本発明の例示的な実施形態の同じ部分を表す。
以下に、本発明の諸実施形態を、単なる例示として添付の図面を参照しながら説明する。
本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するように構成された例示のシステムのブロック図を示す。 本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてLPCメモリを管理するためのブロック図を示す。 本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてLPCメモリを管理するための或る例示的な方法を表すフローチャートを示す。 本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてLPCメモリを管理するための或る例示的な方法を表すフローチャートを示す。 本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてLPCメモリを管理するための或る例示的な方法を表すフローチャートを示す。 本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてLPCメモリを管理するための或る例示的な方法を表すフローチャートを示す。
本発明による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するための例示的な方法、装置、および製品を、添付の図面を参照しながら、図1から説明する。図1は、本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するように構成された例示的なコンピューティング・システム(152)を含む自動化コンピューティング・マシンのブロック図を示す。図1のコンピューティング・システム(152)は、少なくとも1つのコンピュータ・プロセッサ(156)または「CPU」と、高速メモリ・バス(166)およびバス・アダプタ(158)を介してプロセッサ(156)ならびにコンピューティング・システム(152)の他のコンポーネントに接続されているランダム・アクセス・メモリ(168)(「RAM」:random access memory)とを含む。
RAM(168)中には、オペレーティング・システム(154)が格納されている。本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するように構成されたコンピュータの中で使えるオペレーティング・システムには、UNIX(R)、Linux(R)、マイクロソフト(R)のXP、AIX(IBM社の登録商標)、IBM(IBM社の登録商標)のiOS、および当業者が考え付く他のオペレーティング・システムが含まれる。図1の例中のオペレーティング・システム(154)はRAM(168)の中に示されているが、かかるソフトウェアの多くのコンポーネントは、通常、例えば、ディスク・ドライブ(170)上などの不揮発性メモリにも格納される。
図1のコンピューティング・システム(152)は、拡張バス(160)およびバス・アダプタ(158)を介して、プロセッサ(156)およびコンピューティング・システム(152)の他のコンポーネントに連結されたディスク・ドライブ・アダプタ(172)を含む。ディスク・ドライブ・アダプタ(172)は、不揮発性データ・ストレージを、ディスク・ドライブ(170)の形でコンピューティング・システム(152)に接続する。本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するように構成されたコンピュータ中で使えるディスク・ドライブ・アダプタには、インテグレーテッド・ドライブ・エレクトロニクス(「IDE」:Integrated Drive Electronics)アダプタ、小型コンピュータ・システム・インターフェース(「SCSI」:Small Computer System Interface)アダプタ、および当業者が考え付く他のアダプタが含まれる。また、不揮発性コンピュータ・メモリは、当業者なら考え付くであろうが、光ディスク・ドライブ、電気的消去可能プログラマブル読み出し専用メモリ(いわゆる「EEPROM」または「フラッシュ」メモリ)、RAMドライブなどとして実装が可能である。
図1の例示のコンピューティング・システム(152)は、1つ以上の入力/出力(「I/O」:input/output)アダプタ(178)を含む。I/Oアダプタは、例えば、コンピュータ・ディスプレイ・スクリーンなどの表示デバイスへの出力、ならびにキーボードおよびマウスなどのユーザ入力デバイス(181)からのユーザ入力を制御するためのソフトウェア・ドライバおよびコンピュータ・ハードウェアを介して、ユーザ指向の入力/出力を実行する。図1の例示のコンピューティング・システム(152)は、ビデオ・アダプタ(209)を含み、これは、ディスプレイ・スクリーンまたはコンピュータ・モニタなどの表示デバイス(180)へのグラフィック出力のために特に設計されたI/Oアダプタの一例である。ビデオ・アダプタ(209)は、高速ビデオ・バス(164)と、バス・アダプタ(158)と、これも高速バスであるフロント・サイド・バス(162)とを介してプロセッサ(156)に接続される。
図1の例示的なコンピューティング・システム(152)は、他のコンピュータ(182)とのデータ通信、およびデータ通信ネットワークとのデータ通信のための通信アダプタ(167)を含む。かかるデータ通信は、ユニバーサル・シリアル・バス(「USB」:Universal Serial Bus)などの外部バスを通して、IPデータ通信ネットワークなどのデータ通信ネットワークを通して、および当業者が考え付く他のやり方で、RS−232接続を介してシリアル方式で行われ得る。通信アダプタは、データ通信のハードウェア・レベルを実装し、これを通して、一つのコンピュータが、直接にまたはデータ通信ネットワークを介して別のコンピュータにデータ通信を送信する。本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するように構成されたコンピュータ中で使える通信アダプタの例には、有線ダイアルアップ通信用のモデム、有線データ通信用のイーサネット(R)(IEEE802.3)アダプタ、およびワイヤレスデータ通信用の802.11アダプタが含まれる。
図1の例示的なコンピューティング・システム(152)は、プロセッサおよびRAM(168)を(バス・アダプタ(158)を介して)サービス・レイヤ・アダプタ(192)およびアクセラレータ機能ユニット(194)に接続する通信バス(190)を含む。
図2は、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するように構成されたシステムの例示のブロック図である。図2は、アクセラレータ機能ユニット(194)と、メモリ(216)と、メディア・コントローラ(214)と、サービス・レイヤ・アダプタ(192)と、通信バス(190)と、プロセッサ(156)とを含む。サービス・レイヤ・アダプタ(192)は、変換サービス・レイヤ(202)と、コヒーレンシ・サービス・レイヤ(204)と、メモリ・レイヤ(206)と、リンク・アービタ(210)とを含む。メモリ・レイヤ(206)は、XTAGテーブル(208)とベース・アドレス・レジスタ(212)とを含む。
アクセラレータ機能ユニット(AFU:accelerator functional unit)(194)は、コンピューティング・システムの機能を拡張するように構成されたアクセラレータである。AFU(194)は、特定のタスクまたはタスクの群を実行するため取付けられた、コンピューティング・システムのリムーバブル・コンポーネントであってよい。AFU(194)の例には、例えば、ネットワーク・インターフェース・カード、グラフィック・アクセラレータ・カード、およびストレージ・アダプタ・カードが含まれる。
通信バス(190)は媒体であり、それを通ってコンピューティング・システム上のハードウェア・コンポーネントの間でデータが移動される。通信バス(190)は、通信バス(190)上で送られるデータを管理するバス・コントローラを含んでよい。例示の通信バス(190)は、ペリフェラル・コンポーネント・ インターコネクト・ エクスプレス(PCIe:peripheral component interconnect express)バスを含む。
AFU(194)は、コヒーレンシベースのオペレーションおよびメモリ・アクセス命令を、通信バスを介して、コンピューティング・システム上の他のハードウェア素子に送信するように構成することが可能である。プロセッサ(156)は、AFU(194)に、プロセッサ(156)上のコヒーレント対称型マルチプロセッシング・バスへのアクセスを提供するコヒーレント・アクセラレータ・プロセッサ・プロキシを含んでよい。このプロキシは、AFU(194)が対称型マルチプロセッシング・コヒーレンシ・プロトコルに関与できるようにするコヒーレント・アクセラレータ・プロキシ・インターフェースによって使用されてよい。
サービス・レイヤ・アダプタ(192)は、AFU(194)とコヒーレント・アクセラレータ・プロキシ・インターフェースとの間の通信を適合化する。サービス・レイヤ・アダプタ(192)とこのプロキシとの間の通信は、通信バスを介するプロセッサへのパケットの中にカプセル化される。サービス・レイヤ・アダプタ(192)は、フィールド・プログラマブル・ゲート・アレイまたは特殊用途向け集積回路など、外部のチップ上に実装されてもよい。
サービス・レイヤ・アダプタ(192)は、AFU(194)によって開始されたコヒーレンシベースのオペレーションに対処するように構成することが可能である。サービス・レイヤ・アダプタ(192)は、変換サービス・レイヤ(202)と、コヒーレンシ・サービス・レイヤ(204)と、メモリ・レイヤ(206)とを含む。変換サービス・レイヤ(202)は、オペレーションに対するコンテキストを読み出し、有効アドレス−実アドレス変換(ERAT:effective−to−real address translation)を使って、有効アドレスを実アドレスに変換するための素子およびロジックを含むことができる。有効アドレスとは、メモリの位置を指すために、コンピューティング・システム中で素子およびプロセスによって用いられるアドレスである。但し、要求されるデータにアクセスするためには、有効アドレスは実アドレスに変換されなければならない。有効アドレスは、仮想アドレスと称してもよく、実アドレスは、物理アドレスと称してもよい。また、変換サービス・レイヤ(202)は、頻繁にアクセスされるコンテキストを格納するためのコンテキスト・キャッシュ、および頻繁にアクセスされる実アドレス変換を格納するためのERATキャッシュを含むことも可能である。
コヒーレンシ・サービス・レイヤ(204)は、コヒーレンシベースのオペレーションを実行するための素子およびロジックを含むことができる。コヒーレンシ・サービス・レイヤ(204)は、AFU(194)からコンテキストベースの通信を(コヒーレンシ・インターフェースを介して)受信し、オペレーションに対処するために、サービス・レイヤ・アダプタ(192)中の他の諸レイヤと通信する。また、コヒーレンシ・サービス・レイヤ(204)は、コヒーレンシベースのオペレーションによって頻繁に対象とされるデータを格納するためのデータ・キャッシュを含むことも可能である。コヒーレンシ・サービス・レイヤ(204)は、さらに、AFU(194)とコンピューティング・システム上の他のメモリ位置との間のデータ・コヒーレンシを維持することに関する他のタスクも扱う。
また、サービス・レイヤ・アダプタ(192)は、メモリ・レイヤ(206)を介して、メディア・コントローラ(214)およびメモリ(216)にメモリ・インターフェースを提供する。メモリ・レイヤ(206)は、メモリ(216)およびメディア・コントローラ(214)へのアクセスを提供し、コヒーレンシの最低点(LPC)メモリとしてのメモリ(216)へのアクセスを管理する。LPCメモリとしてのメモリ(216)の管理は、該メモリ(216)のコヒーレンシを維持するためのスヌーピング、およびLPCメモリ(216)と当該システム上の他の箇所に位置づけされたメモリとの間でのメモリ・アクセス要求の振り分けなど、該メモリに対してメモリ管理のユニット型サービスを提供することを含み得る。
メモリ・レイヤ(206)は、AFU(194)にメモリ(216)へのアクセスを提供することができる。サービス・レイヤ・アダプタ(192)に属するメモリ(216)へのアクセスは、システム上の他の箇所のメモリにアクセスするよりも少ない待ち時間であり得る。さらに、メモリ(216)は、より大量のメモリを必要とする、またはそれにより利益を得るシステム上の他の素子に、部分的にまたは全体的に割り当てることが可能である。例えば、大量のメモリを必要とするアクティビティのためにプロセッサ(156)を活用することができる。メモリは、サービス・レイヤ・アダプタ(192)上のメモリ・インターフェースを介して、より低コストでまたはシステムのアップグレードの一部として備えることが可能である。
さらに、メモリ(216)は、AFU(194)と、プロセッサ(156)など、システム上の他の素子との間で分割されてよい。そうすることによって、プロセッサ(156)または追加のメモリを必要とする他の素子のメモリのための予備を保ちながら、AFU(194)に、メモリへの低待ち時間のアクセスが提供される。このメモリは、RAMとは別個の、且つ、プロセッサおよびメモリ管理ユニットによって管理される他のメモリとも別個の揮発性メモリとすることができる。
また、メモリ・レイヤ(206)はベース・レジスタ(212)も含む。ベース・アドレス・レジスタ(212)は、メモリ・マッピングがそこから開始されるベース・アドレスを提供する。ベース・アドレス・レジスタ(212)は、機能的に、メモリ・アクセス命令内のメモリ・アドレスを、メモリ(216)、プロセッサ(156)上のメモリ、およびホスト・システム上の他のサービス・レイヤ・アダプタに連結されているメモリを含め、システム上のいろいろなメモリ位置に振り分けることができる。
メモリ・レイヤ(206)は、メモリ・インターフェースを介してメディア・コントローラ(214)と通信する。メディア・コントローラ(214)は、サービス・レイヤ・アダプタ(192)のメモリ・レイヤ(206)と、メモリ(216)との間の通信を円滑にするように構成されたデバイスである。メディア・コントローラ(214)は、それに取付けられるメモリ(216)デバイスの種類に対する固有のものであってよい。
メディア・コントローラ(214)は、メモリ・インターフェースを介してメモリ・レイヤ(206)と通信することができる。メモリ・レイヤ(206)上のメモリ・インターフェースは、コヒーレンシ・サービス・レイヤ(204)上のコヒーレンシ・インターフェースとは別個の通信インターフェースであってよい。例えば、コヒーレンシ・インターフェースとメモリ・インターフェースとは、サービス・レイヤ・アダプタ(192)がその上に実装されているチップ上の別個のピンとすることができる。さらに、サービス・レイヤ・アダプタ(192)は、AFU(194)に接続を提供する複数のポートを含むことが可能である。これら接続を提供するポートは、AFU(194)によって、AFU(194)の要件に従い、メモリ・アクセス命令を配信するために使用されてよい。
メモリ・レイヤ(206)は、変換タグ(XTAG)を用いて変換サービスを提供する。XTAGは、AFU(194)に提供され、実アドレスにマップされたXTAGテーブル(208)中に格納される。XTAGテーブル(208)は、XTAGを、プロセッサ(156)およびメモリ・レイヤ(206)によって使われる、実アドレスなどの内部アドレスにマップする。XTAGは、メモリ・アクセス命令内にあるメモリ位置を識別するため、AFU(194)によって使用される。AFU(194)は、プロセッサ(156)またはコンピューティング・システム上の他のデバイスによって使われる実アドレスへのアクセスもその知識も持たなくてよい。XTAGテーブル(208)がメモリ・レイヤ(206)内に示されているが、XTAGテーブル(208)は、サービス・レイヤ・アダプタ(192)上のどの場所に常駐してもよく、あるいはサービス・レイヤ・アダプタ(192)によってアクセスが可能であってよい。
AFU(194)には、メモリ(216)からのメモリ、またはプロセッサ(156)上のメモリもしくはメモリ管理ユニットによって管理される他のメモリなど、システム上の他の箇所からのメモリが割り当てられてよい。AFU(194)は、サービス・レイヤ・アダプタ(192)を介してアクセスが可能なメモリの物理的位置は知らなくてもよい。言い換えれば、AFU(194)は、当該メモリの位置に関係なく、同じ命令セットを使って、サービス・レイヤ・アダプタ(192)を介して全ての割り当てられたメモリにアクセスすることになる。但し、サービス・レイヤ・アダプタ(192)に属するメモリは、システム上の他の箇所のメモリよりも短い待ち時間のアクセスを提供することが可能である。
リンク・アービタ(210)は、変換レイヤに、サービス・レイヤ・アダプタ(192)と、諸プロセッサなど、コンピューティング・システム上の他のハードウェア素子との間の通信が円滑になるようにする。また、リンク・アービタ(210)は、キャッシュ・ミスが発生した場合、サービス・レイヤ・アダプタ(192)上の各種キャッシュ(例えば、コンテキスト・キャッシュ、ERATキャッシュなど)を更新するためのインターフェースも提供することが可能である。
さらなる説明のために、図3は、本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するための或る例示的な方法を表すフローチャートを示す。図3の方法は、アダプタ(192)によって、アクセラレータ(194)からメモリ・アクセス命令(320)を受信するステップ(302)を含む。アダプタ(192)によって、アクセラレータ(194)からメモリ・アクセス命令(320)を受信するステップ(302)は、アダプタ(192)によって、アクセラレータ(194)から、有効アドレスを含む、メモリ・アクセス・オペレーションを開始する要求を受信するステップと、有効アドレスを実アドレスに変換するステップと、アダプタ(192)によって、その実アドレスに対応する変換タグ(「XTAG」)をアクセラレータ(194)に提供するステップと、アダプタ(192)によって、アクセラレータ(194)からXTAGを含むメモリ・アクセス命令を受信するステップと、によって実行することが可能である。
このメモリ・アクセス命令は、アダプタによって、アダプタ上のコヒーレンシ・インターフェースを介して受信することができる。これに換えて、メモリ・アクセス命令は、アクセラレータ(194)とアダプタ(192)とを連結している別のインターフェースによって受信されてもよい。例えば、アダプタ(192)が、直接メモリ・アクセス・インターフェースなど、メモリ・アクセス命令用に専用化されたインターフェースを備えることが可能である。
また、図3の方法は、アダプタ(192)によって、メモリ・アクセス命令に対する実アドレスを読み出すステップ(304)も含む。アダプタ(192)によって、メモリ・アクセス命令に対する実アドレスを読み出すステップ(304)は、XTAGテーブルから、XTAGにマップされた実アドレスを取得し、アダプタによって、メモリ・アクセス命令の中のXTAGを実アドレスで置き換えることによって実行が可能である。実アドレスは、メモリ・アクセス命令からアルゴリズム的に導出することができる。例えば、アダプタ(192)は、実アドレスを得るために、XTAGなど、メモリ・アクセス命令の要素にアルゴリズムを適用することが可能である。
また、アダプタ(192)によって、メモリ・アクセス命令に対する実アドレスを読み出すステップ(304)は、アダプタ(192)がメモリ中の対象位置にアクセスする許可をされていることを判断することによっても実行することが可能である。例えば、ERATまたは他の構造体は、アクセラレータ(194)または関連するコンテキストが、有効アドレスまたは関連する実アドレスによって識別される当該メモリにアクセスする許可を有するかどうかを示すことができる。
また、図3の方法は、アダプタ(192)上のベース・アドレス・レジスタを使って、実アドレスがLPCメモリを対象としていることを判断するステップ(306)をも含み、該ベース・アドレス・レジスタは、メモリ・アクセス要求を、LPCメモリ位置とホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける。アダプタ(192)上のベース・アドレス・レジスタを用い、当該実アドレスがLPCメモリを対象としていることを判断するステップ(306)であって、ベース・アドレス・レジスタが、メモリ・アクセス要求を、LPCメモリ位置とホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、該判断するステップは、該実アドレスに対するベース・アドレスを判断し、組合されたベース・アドレスと実アドレスとを用いて、実アドレスに対するメモリが存在するシステム上の位置を判断することによって実行することが可能である。この位置は、メディア・コントローラ(214)に属するメモリ、プロセッサ上のメモリ、(システムRAMなどの)メモリ管理ユニットにより制御されるメモリ、またはシステム上の別のサービス・レイヤ・アダプタに属するメモリであり得る。
また、図3の方法は、アダプタ(192)によって、メモリ・アクセス命令および実アドレス(326)を、LPCメモリに対するメディア・コントローラ(214)に送信するステップ(308)を含み、LPCメモリに対するメディア・コントローラ(214)はメモリ・インターフェースを介してアダプタ(192)に取付けられている。アダプタ(192)によって、メモリ・アクセス命令および実アドレス(326)を、LPCメモリに対するメディア・コントローラ(214)に送信するステップ(308)であって、当該LPCメモリに対するメディア・コントローラ(214)はメモリ・インターフェースを介してアダプタ(192)に取付けられている、該送信するステップは、メモリ・アクセス命令および実アドレス(326)を、メディア・コントローラ(214)に取付けられたメモリ・インターフェース上に置くことによって実行することが可能である。また、アダプタ(192)によって、メモリ・アクセス命令および実アドレス(326)を、LPCメモリに対するメディア・コントローラ(214)に送信するステップ(308)であって、該LPCメモリに対するメディア・コントローラ(214)はメモリ・インターフェースを介してアダプタ(192)に取付けられている、該送信するステップは、メディア・コントローラ(214)が、メモリ・アクセス命令を、その付属メモリによって当該メモリ・アクセス命令に対処するのに適した、下位レベルの命令に変換することによっても実行することが可能である。
さらなる説明のために、図4は、本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するための或る例示的な方法を表すフローチャートを示し、本方法は、アダプタ(192)によって、アクセラレータ(194)からメモリ・アクセス命令(320)を受信するステップ(302)と、アダプタ(192)によって、該メモリ・アクセス命令に対する実アドレスを読み出すステップ(304)と、アダプタ(192)上のベース・アドレス・レジスタを使って、実アドレスがLPCメモリを対象としていることを判断するステップ(306)であって、ベース・アドレス・レジスタが、メモリ・アクセス要求を、LPCメモリ位置とホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、該判断するステップと、アダプタ(192)によって、メモリ・アクセス命令および実アドレス(326)を、当該LPCメモリに対するメディア・コントローラ(214)に送信するステップ(308)であって、該LPCメモリに対するメディア・コントローラ(214)はメモリ・インターフェースを介してアダプタ(192)に取付けられている、該送信するステップと、を含む。
但し、図4の方法は、図4が、プロセッサから後続のメモリ・アクセス命令を受信するステップ(402)をさらに含むという点で図3の方法とは異なる。プロセッサから後続のメモリ・アクセス命令を受信するステップ(402)は、実アドレスがサービス・レイヤ・アダプタ(192)に属するメモリ上のメモリ位置を対象としてプロセッサ上のコアまたは他の素子が後続のメモリ・アクセス命令を生成することによって実行が可能である。
このメモリ・アクセス命令は、プロセッサ上のベース・アドレス・レジスタを介してサービス・レイヤ・アダプタ(192)に向かわせることができる。
図4の方法は、アダプタ上のベース・アドレス・レジスタを使って、後続のメモリ・アクセス命令がLPCメモリを対象としていることを判断するステップ(404)をさらに含む。アダプタ上のベース・アドレス・レジスタを使って、後続のメモリ・アクセス命令がLPCメモリを対象としていることを判断するステップ(404)は、当該実アドレスに対するベース・アドレスを判断し、組合されたベース・アドレスと実アドレスとを用いて、後続のメモリ・アクセス要求が、該アダプタ(192)に属するメモリ上の位置を対象としているのを判断することによって実行することが可能である。
図4の方法は、アダプタ(192)によって、後続のメモリ・アクセス命令および後続のメモリ・アクセス命令に対する実アドレス(328)を、LPCメモリに対するメディア・コントローラ(214)に送信するステップ(406)をさらに含む。アダプタ(192)によって、後続のメモリ・アクセス命令および後続のメモリ・アクセス命令に対する実アドレス(328)を、LPCメモリに対するメディア・コントローラ(214)に送信するステップ(406)は、後続のメモリ・アクセス命令および実アドレス(328)を、メディア・コントローラ(214)に取付けられたメモリ・インターフェース上に置くことによって実行することが可能である。後続のメモリ・アクセス命令は、アクセラレータによってアクセスされるアダプタ(192)に属する同じメモリの一部を対象とすることが可能であるが、但し、プロセッサおよびアクセラレータ(194)は、それらがアクセスを許可されたメモリ上の位置に限定され得る。
さらなる説明のために、図5は、本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するための或る例示的な方法を表すフローチャートを示し、本方法は、アダプタ(192)によって、アクセラレータ(194)からメモリ・アクセス命令(320)を受信するステップ(302)と、アダプタ(192)によって、該メモリ・アクセス命令に対する実アドレスを読み出すステップ(304)と、アダプタ(192)上のベース・アドレス・レジスタを使って、実アドレスがLPCメモリを対象としていることを判断するステップ(306)であって、ベース・アドレス・レジスタが、メモリ・アクセス要求を、LPCメモリ位置とホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、該判断するステップと、アダプタ(192)によって、メモリ・アクセス命令および実アドレス(326)を、当該LPCメモリに対するメディア・コントローラ(214)に送信するステップ(308)であって、該LPCメモリに対するメディア・コントローラ(214)はメモリ・インターフェースを介してアダプタ(192)に取付けられている、該送信するステップと、を含む。
但し、図5の方法は、図5が、アクセラレータ(194)から、後続のメモリ・アクセス命令を受信するステップ(502)をさらに含むという点で図3の方法とは異なる。アクセラレータ(194)から、後続のメモリ・アクセス命令を受信するステップ(502)は、XTAGを含む後続のメモリ・アクセス命令を受信することによって実行することが可能である。XTAGは、XTAGテーブルを用いて実アドレスに変換することができる。
図5の方法は、アダプタ(192)上のベース・アドレス・レジスタを使って、後続のメモリ・アクセス命令がLPCメモリを対象としていないことを判断するステップ(504)をさらに含む。アダプタ(192)上のベース・アドレス・レジスタを使って、後続のメモリ・アクセス命令がLPCメモリを対象としていないことを判断するステップ(504)は、当該実アドレスに対するベース・アドレスを判断し、組合されたベース・アドレスと実アドレスとを用いて、後続のメモリ・アクセス要求が、アダプタ(192)に属するメモリ上でないメモリ位置を対象としているのを判断することによって実行することが可能である。
図5の方法は、アダプタ(192)によって、後続のメモリ・アクセス命令および後続のメモリ・アクセス命令に対する実アドレス(328)をプロセッサ(156)に送信するステップ(506)をさらに含む。アダプタ(192)によって、後続のメモリ・アクセス命令および後続のメモリ・アクセス命令に対する実アドレス(328)をプロセッサ(156)に送信するステップ(506)は、該プロセッサによって、後続のメモリ・アクセス命令(328)を受信し、(例えば、ベース・アドレス・レジスタを使って)対象とされたメモリ位置がプロセッサ上にあるのか、またはシステムの別のアダプタ上にあるのかを判断することによって、実行することが可能である。対象とされたメモリがプロセッサ・メモリである場合、プロセッサが当該後続のメモリ・アクセス要求に対処する。対象とされたメモリが、別のアダプタに属する場合、その後続のメモリ・アクセス要求は、当該メモリを管理するアダプタに転送されてよい。
さらなる説明のために、図6は、本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するための或る例示的な方法を表すフローチャートを示し、本方法は、アダプタ(192)によって、アクセラレータ(194)からメモリ・アクセス命令(320)を受信するステップ(302)と、アダプタ(192)によって、該メモリ・アクセス命令に対する実アドレスを読み出すステップ(304)と、アダプタ(192)上のベース・アドレス・レジスタを使って、実アドレスがLPCメモリを対象としていることを判断するステップ(306)であって、ベース・アドレス・レジスタが、メモリ・アクセス要求を、LPCメモリ位置とホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、該判断するステップと、アダプタ(192)によって、メモリ・アクセス命令および実アドレス(326)を、当該LPCメモリに対するメディア・コントローラ(214)に送信するステップ(308)であって、該LPCメモリに対するメディア・コントローラ(214)はメモリ・インターフェースを介してアダプタ(192)に取付けられている、該送信するステップと、を含む。
但し、図6の方法は、アダプタ(192)によって、アクセラレータ(194)からメモリ・アクセス命令(320)を受信するステップ(302)が、アダプタ(192)によって、アクセラレータ(194)から、有効アドレスを含む、メモリ・アクセス・オペレーションを開始する要求を受信するステップ(602)と、その有効アドレスを実アドレスに変換するステップ(604)と、アダプタ(192)によって、アクセラレータ(194)にその実アドレスに対応する変換タグ(「XTAG」)(330)を提供するステップ(606)と、アダプタ(192)によって、アクセラレータ(194)から、XTAG(332)を含むメモリ・アクセス命令を受信するステップ(608)と、を含むという点で図3の方法とは異なる。
アダプタ(192)によって、アクセラレータ(194)から、有効アドレスを含むメモリ・アクセス・オペレーションを開始する要求、を受信するステップ(602)は、アクセラレータ(194)によって、メモリ・アクセス・オペレーションを開始する要求を、アダプタ(192)のコヒーレンシ・サービス・レイヤ上のコヒーレンシ・インターフェースに送信することによって実行することが可能である。メモリ・アクセス・オペレーションを開始する要求は、位置識別子,プロセス操作子、およびオペレーション識別子を含むことができる。この位置識別子は、アクセラレータが、プロセッサ、RAM、またはコンピューティング・システム上の他のハードウェア素子上のメモリ位置を参照するために用いるアドレスである。位置識別子は、例えば、有効アドレスであってよい。プロセス操作子は、要求に対するコンテキストの識別子である。このコンテキストは、アダプタ(192)によって、上記の位置識別子を対象のデバイスに理解される実アドレスに変換するために使用される。オペレーション識別子は、AFU(194)が開始しようとしている、メモリ・アクセス命令などのオペレーションの種類を識別できる。
有効アドレスを実アドレスに変換するステップ(604)は、アダプタ上のERATを使って、有効アドレスを実アドレスに変換することによって実行することが可能である。アダプタ(192)によって、アクセラレータ(194)に当該実アドレスに対応する変換タグ(「XTAG」)(330)を提供するステップ(606)は、アダプタ(192)によって、メモリ・アクセス命令に対する実アドレスを判断し、その実アドレスを、アダプタ(192)上のXTAGテーブル中に格納することによって実行することが可能である。
アダプタ(192)によって、アクセラレータ(194)から、XTAG(332)を含むメモリ・アクセス命令を受信するステップ(608)は、アクセラレータ(194)によって、XTAG(332)を含むメモリ・アクセス命令を、コヒーレンシ・インターフェース、または直接メモリ・アクセス・インターフェースなど別の専用化されたインターフェースを介してアダプタ(192)に送ることによって実行することが可能である。
読者は、前述の説明を鑑み、本発明の諸実施形態による、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理する利益には以下が含まれることを認識されよう:
・ コヒーレント・インターフェースから独立したオープン・プロセッサ・メモリ・インターフェースをAFUに備えることによって、コンピュータ・システムのオペレーションを改良し、ストレージ・アクセス効率を向上する。
・ アダプタに取付けられたLPCメモリへの保護されたアクセスをAFUに備えることによって、コンピュータ・システムのオペレーションを改良し、待ち時間を低減する。
・ AFUにより、アダプタにローカルなおよびリモートなメモリへのメモリ・アクセスを管理することによって、コンピュータ・システムのオペレーションを改良し、メモリの整合性を向上する。
本発明の例示的な諸実施形態は、主として、サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するため完全に機能するコンピュータ・システムのコンテキストで記述されている。しかしながら、当業者であれば、本発明はまた、任意の適切なデータ処理システムとともに使用するためにコンピュータ可読ストレージ媒体上に配置されたコンピュータ・プログラム製品中に具現化することも可能であることを認識していよう。かかるコンピュータ可読ストレージ媒体は、磁気媒体、光媒体、または他の適切な媒体を含め、マシン可読情報のための任意のストレージ媒体であってよい。かかる媒体の例には、ハード・ドライブ中の磁気ディスクまたはディスケット、光ドライブのためのコンパクト・ディスク、磁気テープ、および当業者が考え付く他の媒体が含まれる。当業者は、適切なプログラミング手段を備えるどのようなコンピュータ・システムであっても、コンピュータ・プログラム製品中に具現化された本発明の方法のステップを実行することが可能であろうことを即座に認識していよう。また、当業者は、本明細書中に記載された例示的な諸実施形態のいくつかは、コンピュータ・ハードウェア上にインストールされ実行されるソフトウェアを指向しているが、それにかかわらず、ファームウェアまたはハードウェアとして実装された代替の実施形態も同様に本発明の範囲内にあることを認識しているであろう。
本発明は、システム、方法、もしくはコンピュータ・プログラム製品またはこれらの組合せとすることができる。このコンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラムを有するコンピュータ可読ストレージ媒体(または媒体群)を含むことが可能である。
このコンピュータ可読ストレージ媒体は、命令実行デバイスが使用するための命令を保持し格納できる有形のデバイスとすることができる。該コンピュータ可読ストレージ媒体は、例えば、以下に限らないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の適切な組合せであってよい。コンピュータ可読ストレージ媒体のさらに具体的な例の非包括的リストには、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去およびプログラム可能読み取り専用メモリ(EPROM:erasable programmable read−only memoryまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM:static random access memory)、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、パンチカードまたは記録された命令を有する溝中の嵩上げ構造体などの機械的符号化デバイス、および前述の任意の適切な組合せが含まれる。本明細書で用いられるコンピュータ可読ストレージ媒体は、無線波または他の自由に伝播する電磁波、ウェーブガイドもしくは他の送信媒体(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通って送られる電気信号など、本質的に一時的な信号であると解釈されるべきではない。
本明細書に述べられたコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体から、それぞれのコンピューティング/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、広域ネットワークもしくはワイヤレス・ネットワークまたはこれらの組合せなどのネットワークを介して、外部のコンピュータもしくは外部のストレージ・デバイスにダウンロードすることが可能である。このネットワークは、銅の送信ケーブル、光送信ファイバ、ワイヤレス送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはこれらの組合せを含んでもよい。それぞれのコンピューティング/処理デバイス中のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、ストレージのため、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体の中に転送する。
本発明のオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令集合アーキテクチャ(ISA:instruction−set−architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(R)、C++もしくは同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの従来式の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードであってよい。このコンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとしてユーザのコンピュータで専ら実行することも、ユーザのコンピュータで部分的に実行することもでき、一部をユーザのコンピュータで一部を遠隔コンピュータで実行することもでき、あるいは遠隔のコンピュータまたはサーバで専ら実行することもできる。後者の場合は、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:widearea network)を含む任意の種類のネットワークを介して、遠隔コンピュータをユーザのコンピュータに接続することもでき、あるいは(例えばインターネット・サービス・プロバイダを使いインターネットを介し)外部のコンピュータへの接続を行うことも可能である。いくつかの実施形態において、例えば、プログラム可能論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、またはプログラム可能論理アレイ(PLA:programmable logic array)を含む電子回路は、本発明の諸態様を実行すべく、該電子回路をパーソナライズするためコンピュータ可読プログラム命令の状態情報を利用することによって、該コンピュータ可読プログラム命令を実行することができる。
本発明の諸態様は、本発明の諸実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら本明細書で説明されている。当然のことながら、フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実装することが可能である。
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、特殊用途コンピュータ、またはマシンを形成する他のプログラム可能データ処理装置のプロセッサに提供し、そのコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行されるこれらの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するための手段を生成するようにすることができる。また、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイスまたはこれらの組合せに対し特定の仕方で機能するよう命令することが可能なこれらのコンピュータ可読プログラム命令を、コンピュータ可読ストレージ媒体に格納し、格納された命令を有するコンピュータ可読ストレージ媒体が、フローチャートもしくはブロック図またはその両方のブロックまたはブロック群中に特定されている機能/動作の諸態様を実装する命令群を包含する製造品を構成するようにすることができる。
さらに、これらコンピュータ可読プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードし、そのコンピュータ上で、他のプログラム可能装置上で、または他のデバイス上で一連のオペレーション・ステップを実施させて、コンピュータ実装のプロセスを作り出し、当該コンピュータ上で、他のプログラム可能装置上でもしくは他のデバイス上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくはブロック群中に特定されている機能群/動作群を実装するためのプロセスを提供するようにすることも可能である。
諸図面中のフローチャートおよびブロック図は、本発明の様々な実施形態による、システム、方法、およびコンピュータ・プログラム製品から可能となる実装のアーキテクチャ、機能性、およびオペレーションを示している。この点に関し、フローチャートまたはブロック図中の各ブロックは、特定の論理機能(群)を実装するための1つ以上の実行可能命令を含む、モジュール、セグメント、または命令の部分を表し得る。一部の別の実装においては、ブロック中に記載された機能が、図面に記載された順序から外れて行われ得る。例えば、連続して示された2つのブロックが、関与する機能性に応じ、実際にはほぼ同時に実行されることがあり、時にはこれらのブロックが逆の順序で実行されることもあり得る。さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方中のブロック群の組合せは、特定の機能または動作を実施する特殊用途ハードウェア・ベースのシステムによって実装でき、または特殊用途ハードウェアとコンピュータ命令との組合せによって実行できることにも留意されたい。
前述の説明から当然のことながら、本発明の本来の趣旨から逸脱することなく、本発明の様々な実施形態に修改および変更を加えることが可能である。本明細書中の記述は、例証のためだけのものであり、限定する意味で解釈されるべきではない。本発明の範囲は、添付の特許請求の範囲の文言によってだけ限定される。

Claims (20)

  1. サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理する方法であって、前記アダプタは、ホスト・コンピューティング・システム上のプロセッサおよびアクセラレータに連結され、前記プロセッサは、対称型マルチプロセッシング用に構成され、前記方法は、
    前記アダプタによって、前記アクセラレータからメモリ・アクセス命令を受信するステップと、
    前記アダプタによって、前記メモリ・アクセス命令に対する実アドレスを読み出すステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記実アドレスが前記LPCメモリを対象としていることを判断するステップであって、前記ベース・アドレス・レジスタが、メモリ・アクセス要求を、前記LPCメモリ位置と前記ホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、前記判断するステップと、
    前記アダプタによって、前記メモリ・アクセス命令および前記実アドレスを、前記LPCメモリに対するメディア・コントローラに送信するステップであって、前記LPCメモリに対する前記メディア・コントローラはメモリ・インターフェースを介して前記アダプタに取付けられている、前記送信するステップと、
    を含む、方法。
  2. 前記プロセッサから、後続のメモリ・アクセス命令を受信するステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記後続のメモリ・アクセス命令が前記LPCメモリを対象としていることを判断するステップと、
    前記アダプタによって、前記後続のメモリ・アクセス命令および前記後続のメモリ・アクセス命令に対する前記実アドレスを、前記LPCメモリに対する前記メディア・コントローラに送信するステップと、
    をさらに含む、請求項1に記載の方法。
  3. 前記アクセラレータから、後続のメモリ・アクセス命令を受信するステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記後続のメモリ・アクセス命令が前記LPCメモリを対象としていないことを判断するステップと、
    前記アダプタによって、前記後続のメモリ・アクセス命令および前記後続のメモリ・アクセス命令に対する前記実アドレスを、前記プロセッサに送信するステップと、
    をさらに含む、請求項1に記載の方法。
  4. 前記アクセラレータから、前記LPCメモリを対象としているメモリ・アクセス命令を受信するステップが、
    前記アダプタによって、前記アクセラレータから、有効アドレスを含む、メモリ・アクセス・オペレーションを開始する要求を受信するステップと、
    前記有効アドレスを前記実アドレスに変換するステップと、
    前記アダプタによって、前記実アドレスに対応する変換タグ(「XTAG」)を前記アクセラレータに提供するステップと、
    前記アダプタによって、前記アクセラレータから前記XTAGを含む前記メモリ・アクセス命令を受信するステップと、
    を含む、請求項1に記載の方法。
  5. 前記他のメモリ位置が、プロセッサ・メモリ、および前記ホスト・コンピューティング・システム上のさらなるアダプタに連結されたメモリを含む、請求項1に記載の方法。
  6. 前記LPCメモリが、前記アクセラレータと前記プロセッサとの間で分割される、請求項1に記載の方法。
  7. 前記メモリ・アクセス命令が、前記アダプタ上のコヒーレンシ・インターフェースを介して、前記アダプタによって受信される、請求項1に記載の方法。
  8. サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するためのアダプタであって、前記アダプタは、ホスト・コンピューティング・システム上のプロセッサおよびアクセラレータに連結され、前記プロセッサは、対称型マルチプロセッシング用に構成され、前記アダプタが、
    前記アダプタによって、前記アクセラレータからメモリ・アクセス命令を受信するステップと、
    前記アダプタによって、前記メモリ・アクセス命令に対する実アドレスを読み出すステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記実アドレスが前記LPCメモリを対象としていることを判断するステップであって、前記ベース・アドレス・レジスタが、メモリ・アクセス要求を、前記LPCメモリ位置と前記ホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、前記判断するステップと、
    前記アダプタによって、前記メモリ・アクセス命令および前記実アドレスを、前記LPCメモリに対するメディア・コントローラに送信するステップであって、前記LPCメモリに対する前記メディア・コントローラはメモリ・インターフェースを介して前記アダプタに取付けられている、前記送信するステップと、
    を実行するように構成される、アダプタ。
  9. 前記ステップ群が、
    前記プロセッサから、後続のメモリ・アクセス命令を受信するステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記後続のメモリ・アクセス命令が前記LPCメモリを対象としていることを判断するステップと、
    前記アダプタによって、前記後続のメモリ・アクセス命令および前記後続のメモリ・アクセス命令に対する前記実アドレスを、前記LPCメモリに対する前記メディア・コントローラに送信するステップと、
    をさらに含む、請求項8に記載のアダプタ。
  10. 前記ステップ群が、
    前記アクセラレータから、後続のメモリ・アクセス命令を受信するステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記後続のメモリ・アクセス命令が前記LPCメモリを対象としていないことを判断するステップと、
    前記アダプタによって、前記後続のメモリ・アクセス命令および前記後続のメモリ・アクセス命令に対する前記実アドレスを、前記プロセッサに送信するステップと、
    をさらに含む、請求項8に記載のアダプタ。
  11. 前記アクセラレータから、前記LPCメモリを対象としているメモリ・アクセス命令を受信するステップが、
    前記アダプタによって、前記アクセラレータから、有効アドレスを含む、メモリ・アクセス・オペレーションを開始する要求を受信するステップと、
    前記有効アドレスを前記実アドレスに変換するステップと、
    前記アダプタによって、前記実アドレスに対応する変換タグ(「XTAG」)を前記アクセラレータに提供するステップと、
    前記アダプタによって、前記アクセラレータから前記XTAGを含む前記メモリ・アクセス命令を受信するステップと、
    を含む、請求項8に記載のアダプタ。
  12. 前記他のメモリ位置が、プロセッサ・メモリ、および前記ホスト・コンピューティング・システム上のさらなるアダプタに連結されたメモリを含む、請求項8に記載のアダプタ。
  13. 前記LPCメモリが、前記アクセラレータと前記プロセッサとの間で分割される、請求項8に記載のアダプタ。
  14. 前記メモリ・アクセス命令が、前記アダプタ上のコヒーレンシ・インターフェースを介して、前記アダプタによって受信される、請求項8に記載のアダプタ。
  15. サービス・レイヤ・アダプタを用いてコヒーレンシの最低点(LPC)メモリを管理するためのコンピュータ・プログラム製品であって、前記アダプタは、ホスト・コンピューティング・システム上のプロセッサおよびアクセラレータに連結され、前記プロセッサは、対称型マルチプロセッシング用に構成され、前記コンピュータ・プログラム製品は、コンピュータ可読媒体上に配置され、前記コンピュータ・プログラム製品は、実行されると、前記アダプタに、
    前記アダプタによって、前記アクセラレータからメモリ・アクセス命令を受信するステップと、
    前記アダプタによって、前記メモリ・アクセス命令に対する実アドレスを読み出すステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記実アドレスが前記LPCメモリを対象としていることを判断するステップであって、前記ベース・アドレス・レジスタが、メモリ・アクセス要求を、前記LPCメモリ位置と、前記ホスト・コンピューティング・システム上の他のメモリ位置との間で振り分ける、前記判断するステップと、
    前記アダプタによって、前記メモリ・アクセス命令および前記実アドレスを、前記LPCメモリに対するメディア・コントローラに送信するステップであって、前記LPCメモリに対する前記メディア・コントローラはメモリ・インターフェースを介して前記アダプタに取付けられている、前記送信するステップと、
    を実行させるコンピュータ・プログラム命令を含む、
    コンピュータ・プログラム製品。
  16. 前記ステップ群が、
    前記プロセッサから、後続のメモリ・アクセス命令を受信するステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記後続のメモリ・アクセス命令が前記LPCメモリを対象としていることを判断するステップと、
    前記アダプタによって、前記後続のメモリ・アクセス命令および前記後続のメモリ・アクセス命令に対する前記実アドレスを、前記LPCメモリに対する前記メディア・コントローラに送信するステップと、
    をさらに含む、請求項15に記載のコンピュータ・プログラム製品。
  17. 前記ステップ群が、
    前記アクセラレータから、後続のメモリ・アクセス命令を受信するステップと、
    前記アダプタ上のベース・アドレス・レジスタを使って、前記後続のメモリ・アクセス命令が前記LPCメモリを対象としていないことを判断するステップと、
    前記アダプタによって、前記後続のメモリ・アクセス命令および前記後続のメモリ・アクセス命令に対する前記実アドレスを、前記プロセッサに送信するステップと、
    をさらに含む、請求項15に記載のコンピュータ・プログラム製品。
  18. 前記アクセラレータから、前記LPCメモリを対象としているメモリ・アクセス命令を受信するステップが、
    前記アダプタによって、前記アクセラレータから、有効アドレスを含む、メモリ・アクセス・オペレーションを開始する要求を受信するステップと、
    前記有効アドレスを前記実アドレスに変換するステップと、
    前記アダプタによって、前記実アドレスに対応する変換タグ(「XTAG」)を前記アクセラレータに提供するステップと、
    前記アダプタによって、前記アクセラレータから前記XTAGを含む前記メモリ・アクセス命令を受信するステップと、
    を含む、請求項15に記載のコンピュータ・プログラム製品。
  19. 前記他のメモリ位置が、プロセッサ・メモリ、および前記ホスト・コンピューティング・システム上のさらなるアダプタに連結されたメモリを含む、請求項15に記載のコンピュータ・プログラム製品。
  20. 前記LPCメモリが、前記アクセラレータと前記プロセッサとの間で分割される、請求項15に記載のコンピュータ・プログラム製品。
JP2019528145A 2016-11-30 2017-11-27 サービス・レイヤ・アダプタを用いる、コヒーレンシの最低点(lpc)メモリの管理方法、アダプタ、プログラム Active JP6982618B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/364,458 US10394711B2 (en) 2016-11-30 2016-11-30 Managing lowest point of coherency (LPC) memory using a service layer adapter
US15/364,458 2016-11-30
PCT/IB2017/057408 WO2018100478A1 (en) 2016-11-30 2017-11-27 Managing lowest point of coherency (lpc) memory using service layer adapter

Publications (2)

Publication Number Publication Date
JP2019537153A true JP2019537153A (ja) 2019-12-19
JP6982618B2 JP6982618B2 (ja) 2021-12-17

Family

ID=62190141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019528145A Active JP6982618B2 (ja) 2016-11-30 2017-11-27 サービス・レイヤ・アダプタを用いる、コヒーレンシの最低点(lpc)メモリの管理方法、アダプタ、プログラム

Country Status (6)

Country Link
US (1) US10394711B2 (ja)
JP (1) JP6982618B2 (ja)
CN (1) CN109964214B (ja)
DE (1) DE112017005063T5 (ja)
GB (1) GB2572287B (ja)
WO (1) WO2018100478A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10394711B2 (en) * 2016-11-30 2019-08-27 International Business Machines Corporation Managing lowest point of coherency (LPC) memory using a service layer adapter
US10846235B2 (en) 2018-04-28 2020-11-24 International Business Machines Corporation Integrated circuit and data processing system supporting attachment of a real address-agnostic accelerator
US11221957B2 (en) * 2018-08-31 2022-01-11 International Business Machines Corporation Promotion of ERAT cache entries
CN110046053B (zh) 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 用以分配任务的处理系统及其访存方法
CN110083387B (zh) 2019-04-19 2021-11-12 上海兆芯集成电路有限公司 使用轮询机制的处理系统及其访存方法
CN110032453B (zh) 2019-04-19 2022-05-03 上海兆芯集成电路有限公司 用以任务调度与分配的处理系统及其加速方法
CN110058931B (zh) 2019-04-19 2022-03-22 上海兆芯集成电路有限公司 用以任务调度的处理系统及其加速方法
US20210173784A1 (en) * 2019-12-06 2021-06-10 Alibaba Group Holding Limited Memory control method and system

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553920A (ja) * 1991-08-26 1993-03-05 Toshiba Corp 構造化アドレス生成装置
US5497494A (en) * 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US5914730A (en) * 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US5933158A (en) * 1997-09-09 1999-08-03 Compaq Computer Corporation Use of a link bit to fetch entries of a graphic address remapping table
US5936640A (en) * 1997-09-30 1999-08-10 Compaq Computer Corporation Accelerated graphics port memory mapped status and control registers
DE19983738T1 (de) * 1998-11-16 2002-03-14 Infineon Technologies Ag Universalressourcenzugriffssteuerung
US6405289B1 (en) 1999-11-09 2002-06-11 International Business Machines Corporation Multiprocessor system in which a cache serving as a highest point of coherency is indicated by a snoop response
US6986052B1 (en) * 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US6750870B2 (en) * 2000-12-06 2004-06-15 Hewlett-Packard Development Company, L.P. Multi-mode graphics address remapping table for an accelerated graphics port device
US6973526B2 (en) * 2002-06-28 2005-12-06 Intel Corporation Method and apparatus to permit external access to internal configuration registers
WO2005116837A1 (en) * 2004-05-26 2005-12-08 Intel Corporation Automatic caching generation in network applications
EP1617335A1 (fr) * 2004-07-12 2006-01-18 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
EP1619589B1 (fr) * 2004-07-23 2007-12-26 Stmicroelectronics SA Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
US7340582B2 (en) * 2004-09-30 2008-03-04 Intel Corporation Fault processing for direct memory access address translation
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
TWI270803B (en) 2004-10-08 2007-01-11 Via Tech Inc Adapter for memory simulator
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7853744B2 (en) * 2007-05-23 2010-12-14 Vmware, Inc. Handling interrupts when virtual machines have direct access to a hardware device
US7925857B2 (en) * 2008-01-24 2011-04-12 International Business Machines Corporation Method for increasing cache directory associativity classes via efficient tag bit reclaimation
US8954685B2 (en) * 2008-06-23 2015-02-10 International Business Machines Corporation Virtualized SAS adapter with logic unit partitioning
US8381032B2 (en) * 2008-08-06 2013-02-19 O'shantel Software L.L.C. System-directed checkpointing implementation using a hypervisor layer
US8131935B2 (en) * 2009-04-07 2012-03-06 International Business Machines Corporation Virtual barrier synchronization cache
US8589600B2 (en) 2009-12-14 2013-11-19 Maxeler Technologies, Ltd. Method of transferring data with offsets
US9081657B2 (en) * 2011-10-13 2015-07-14 Conexant Systems, Inc. Apparatus and method for abstract memory addressing
US9176888B2 (en) 2012-10-04 2015-11-03 International Business Machines Corporation Application-managed translation cache
US9766916B2 (en) 2014-05-05 2017-09-19 International Business Machines Corporation Implementing coherent accelerator function isolation for virtualization
US9842075B1 (en) * 2014-09-12 2017-12-12 Amazon Technologies, Inc. Presenting multiple endpoints from an enhanced PCI express endpoint device
KR102320044B1 (ko) * 2014-10-02 2021-11-01 삼성전자주식회사 Pci 장치, 이를 포함하는 인터페이스 시스템, 및 컴퓨팅 시스템
US9842081B2 (en) 2015-01-27 2017-12-12 International Business Machines Corporation Implementing modal selection of bimodal coherent accelerator
US20160291887A1 (en) * 2015-03-30 2016-10-06 Kabushiki Kaisha Toshiba Solid-state drive with non-volatile random access memory
US10394711B2 (en) * 2016-11-30 2019-08-27 International Business Machines Corporation Managing lowest point of coherency (LPC) memory using a service layer adapter

Also Published As

Publication number Publication date
US10394711B2 (en) 2019-08-27
GB201909219D0 (en) 2019-08-14
GB2572287A (en) 2019-09-25
JP6982618B2 (ja) 2021-12-17
US20180150396A1 (en) 2018-05-31
CN109964214B (zh) 2022-07-29
WO2018100478A1 (en) 2018-06-07
GB2572287A8 (en) 2019-10-09
GB2572287B (en) 2020-03-04
DE112017005063T5 (de) 2019-07-04
CN109964214A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
JP2019537153A (ja) サービス・レイヤ・アダプタを用いる、コヒーレンシの最低点(lpc)メモリの管理方法、アダプタ、プログラム
US10169247B2 (en) Direct memory access between an accelerator and a processor using a coherency adapter
US9880941B2 (en) Sharing an accelerator context across multiple processes
US9417899B2 (en) Memory page de-duplication in a computer system that includes a plurality of virtual machines
TW201546717A (zh) 用於支援經由nvme控制器的、通過網路的用於遠端存放設備的本地快取記憶體的系統和方法
US11068418B2 (en) Determining memory access categories for tasks coded in a computer program
US8650342B2 (en) System and method for distributed address translation in virtualized information handling systems
US10901910B2 (en) Memory access based I/O operations
JP7089333B2 (ja) 仮想マシンの動的アドレス変換のためのコンピュータ実装方法、システム、およびコンピュータ・プログラム
US20150278090A1 (en) Cache Driver Management of Hot Data
US20180074851A1 (en) Determining memory access categories to use to assign tasks to processor cores to execute
US20150261681A1 (en) Host bridge with cache hints
US20160292088A1 (en) Dynamic storage key assignment
US10866895B2 (en) Steering tag support in virtualized environments
US20160217076A1 (en) Speculative cache reading using shared buffer
US9213644B2 (en) Allocating enclosure cache in a computing system
US10671537B2 (en) Reducing translation latency within a memory management unit using external caching structures
US10528399B2 (en) Techniques for faster loading of data for accelerators
US20180300256A1 (en) Maintaining agent inclusivity within a distributed mmu
US11860797B2 (en) Peripheral device protocols in confidential compute architectures
US11221957B2 (en) Promotion of ERAT cache entries
CN112764668A (zh) 扩展gpu存储器的方法、电子设备和计算机程序产品

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190918

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211108

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: 20211116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211119

R150 Certificate of patent or registration of utility model

Ref document number: 6982618

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150