JP2020529683A - ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法 - Google Patents

ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法 Download PDF

Info

Publication number
JP2020529683A
JP2020529683A JP2020506774A JP2020506774A JP2020529683A JP 2020529683 A JP2020529683 A JP 2020529683A JP 2020506774 A JP2020506774 A JP 2020506774A JP 2020506774 A JP2020506774 A JP 2020506774A JP 2020529683 A JP2020529683 A JP 2020529683A
Authority
JP
Japan
Prior art keywords
conversion
input
integrated circuit
translation
inputs
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
JP2020506774A
Other languages
English (en)
Other versions
JP2020529683A5 (ja
JP7287947B2 (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 JP2020529683A publication Critical patent/JP2020529683A/ja
Publication of JP2020529683A5 publication Critical patent/JP2020529683A5/ja
Application granted granted Critical
Publication of JP7287947B2 publication Critical patent/JP7287947B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • G06F11/2635Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers using a storage for the test inputs, e.g. test ROM, script files
    • 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
    • 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
    • G06F13/287Multiplexed DMA
    • 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
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

【課題】リンク処理ユニットなどの集積回路におけるアドレス変換の効率的なストレス・テストを行う回路および方法を提供する。【解決手段】ランダムDMAモード(RDM)回路が、実メモリ・アドレスを生成するのに使用される変換バリデーション・テーブル(TVT)への索引付けをするためにランダム入力を提供する。RDM回路により、どのバス・エージェントがリンク処理ユニットに接続されているのかにかかわらず、TVTのすべての入力、したがって、すべてのDMAモードをテストすることが可能になる。RDM回路は、ランタイム入力と、ランダム・ビット発生器によって提供されるランダム・テスト入力とから選択するのにマルチプレクサを使用することができる。リンク処理ユニットがテスト・モードにあるとき、ランダム・テスト入力を選択するためにモード選択ビットがアサートされる。【選択図】図3

Description

本開示は、一般にダイレクト・メモリ・アドレス変換をテストすることに関し、より詳しくは、集積回路における、例えば1つまたは複数のプロセッサとグラフィックス処理ユニットとの間の高速通信リンクにおけるダイレクト・メモリ・アクセス変換の効率的なテストに関する。
集積回路テスト・ツールは、集積回路のための最も徹底的でストレスのかかるテスト・ケースを生成しようとする。理論的には、生成されたテスト・ケースは、最大のテスト網羅率を提供するはずであり、集積回路に対する様々なタイミング・シナリオおよび動作にストレスを加えることができるはずである。テストは、開発および生産時に実施することができる。複雑な集積回路を徹底的にテストするテスト・ケースを構築することは、時間および資源において極めて費用のかかることであり得る。効率的なテスト・コードを構築することは、集積回路テストの重要な目標である。
ダイレクト・メモリ・アクセス(DMA)とは、ハードウェア・サブシステムが中央処理装置(CPU)から独立したメイン・システム・メモリにアクセスすることが可能になるコンピュータ・システムの特徴のことである。ある高速システムにおいて、リンク処理ユニットが、メモリ・コヒーレンシを確実にしながら、チップ間またはチップの部分間を相互接続して、チップ間にDMAを提供するのに使用される。このリンク処理ユニットの使用例は、CPUチップをグラフィックス処理ユニット(GPU)チップのクラスタに接続することであろう。CPUおよびGPUクラスタは、互いのメモリをコヒーレントに読み書きする能力を有する。GPUは、GPUメモリとCPUメモリとの間の高帯域幅データ移動に非キャッシュ(DMA)読取りおよび書込みを使用することができる。
ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法を提供する。
回路および方法が、リンク処理ユニットなどの集積回路における効率的なストレス・テスト・アドレス変換を提供する。ランダムDMAモード(RDM)回路が、実メモリ・アドレスを生成するのに使用される変換バリデーション・テーブル(TVT)への索引付けをするためにランダム入力を提供する。例示した例において、テーブルへの入力は、通常、システムに接続された具体的なバス・エージェントに対応するパーティション化可能なエンドポイント番号(PE#)である。RDM回路により、どのバス・エージェントがリンク処理ユニットに接続されているのかにかかわらず、TVTのすべての入力、したがって、すべてのDMAモードをテストすることが可能になる。RDM回路は、ランタイム入力と、ランダム・ビット発生器によって提供されるランダム・テスト入力とから選択するのにマルチプレクサを使用することができる。リンク処理ユニットがテスト・モードにあるとき、ランダム・テスト入力を選択するためにモード選択ビットがアサートされる。
前述のおよび他の特徴および利点は、添付の図面に示すように、以下のより詳細な説明から明らかであろう。
本開示は、添付の図面と併せて説明し、その場合、同じ指示は同じ要素を表す。
集積回路に対するDMAアドレス変換の効率的なテストのためのランダムDMAモード回路を有するリンク処理ユニットを用いるシステムのブロック図である。 DMAアドレス変換の効率的なテストのためのランダムDMAモード回路を有するリンク処理ユニットのブロック図である。 図2に示すATSブロックの一部分と、DMAアドレス変換の効率的なテストのためのランダムDMAモード回路の具体的な例との簡略化されたブロック図である。 図1〜3に示すランダムDMAモード(RDM)回路の一実装例の簡略化されたブロック図である。 集積回路に対するDMAアドレス変換の効率的なテストのための方法のフロー図である。 図5におけるステップ520の具体的な方法のフロー図である。
本明細書における本開示および特許請求の範囲は、リンク処理ユニットなどの集積回路におけるアドレス変換の効率的なストレス・テストのための回路および方法に関する。ランダムDMAモード(RDM)回路が、実メモリ・アドレスを生成するのに使用される変換バリデーション・テーブル(TVT)への索引付けをするためにランダム入力を提供する。例示する例において、テーブルへの入力は、通常、システムに接続された具体的なバス・エージェントに対応するパーティション化可能なエンドポイント番号(PE#)である。RDM回路により、どのバス・エージェントがリンク処理ユニットに接続されているのかにかかわらず、TVTのすべての入力、したがって、すべてのDMAモードをテストすることが可能になる。RDM回路は、ランタイム入力と、ランダム・ビット発生器によって提供されるランダム・テスト入力とから選択するのにマルチプレクサを使用することができる。リンク処理ユニットがテスト・モードにあるとき、ランダム・テスト入力を選択するためにモード選択ビットがアサートされる。
図1は、本明細書において特許請求されるように、DMAアクセスモードを使用してDMAアドレス変換の効率的なテストのためのランダムDMAモード(RDM)回路110を有するリンク処理ユニット(LPU)120を用いるシステム100のブロック図である。リンク処理ユニット120は、1つまたは複数の中央処理装置(CPU)をGPUのクラスタに接続するために高速接続を提供する。例示する例において、単一のCPU114が、GPUまたはGPU130とまとめて呼ばれる2つのGPU130A、130Bにリンクされる。この例において、LPU120とCPU114とは一体化され、プロセッサ・チップ112上に常駐する。GPU130は、この例において、別個のチップ上に常駐する。代替案として、GPU130は、プロセッサ・チップ112上に常駐することができる。例示する例は、テスト・ソフトウェア118がロードされたメモリ116を含む。メモリ116は、図示するようにプロセッサ・チップ112上に配置することができ、またはチップ外に配置することができる。テスト・ソフトウェア118は、先行技術において周知であるように、変換テーブルをロードすることができる。以下にさらに説明するように、どのエージェントが接続されているのかにかかわらず、テスト・ソフトウェアはメモリをテストし、その一方で、RDM回路110は、テストにおいてDMAアクセスモードをランダム化する。
LPU120の例は、International Business Machines Corporationによって開発されたPower9(P9)NVリンク処理ユニット(NPU)である。本明細書における例において、LPU120は、本明細書に説明するように、RDM回路110を除いてNPUと同様である。P9NV−リンク処理ユニット(NPU)は、中央処理装置(CPU)チップ112をGPUチップ130のクラスタに接続するためにNVリンク(TM)インターコネクトを使用する。NVリンク(TM)(以下NVリンク)は、NVIDIA Corporationによって所有される高速インターコネクト・アーキテクチャである。NVリンクは、超高データ帯域幅においてチップ間にメモリ・キャッシュ・コヒーレンスを提供する。CPUおよびGPUクラスタは、互いのメモリをコヒーレントに読み書きする能力を有する。GPUは、GPUメモリとCPUメモリとの間の高帯域幅データ移動に非キャッシュ(DMA)読取りおよび書込みを使用することができる。NPUは、プロセッサのNVリンクにトランザクション層機能を提供する。この機能は、NVリンク・データリンク・ロジックからのコマンドを受理すること、それらをバス・コマンドのシーケンスに変換すること、次いで、バス・コマンドの結果に基づいて応答を生成することを含む。応答は、データリンク・ロジックを通じてNVリンクに送り返される。サポートされるコマンドは、読取り、書込み、プローブおよびフラッシュを含む。アップグレードおよびダウングレード・コマンドだけでなく、同じタイプのコマンドもNPUによってNVリンクを介してGPUクラスタに送ることができる。
図2は、図1で紹介したリンク処理ユニット(LPU)120の簡略化されたブロック図である。LPU120の大きなブロックは、3つのNPU共通キュー・ブロック(NPCQ)210A、210B、210Cと、6つのNVリンク・トランザクション層ブロック(NTL)212A〜212Fと、拡張変換サービス・ブロック(XTS)214と、アドレス変換ブロック(ATS)216とを含む。上記に紹介したように、LPU120は、DMAアクセスモードの効率的なテストのためのランダムDMAモード(RDM)回路110を含む。この例において、RDM110は、アドレス変換ブロック(ATS)216に組み込まれる。ATS216は、非変換アドレスがGPUからのコマンドに使用されたとき、アドレス再配置およびバリデーションを提供する。RDM回路110およびATS216の機能は、図3を参照して以下にさらに説明する。
図2を再度参照すると、LPU120は、NTLブロック212とまとめて呼ばれる、6つのNVリンク・トランザクション層ブロック(NTL)212A〜212Fを含む。NTLブロック212のそれぞれは、ブリックと呼ばれるユニットを備える。各ブリックは、NVリンクへのコマンドの別個のストリームを提供し、各ブリックは、1つまたは複数の外部チップに接続することができる。すべての順序付け要求は、各ブリックに対して独立して実行される。LPU120は、NPCQ210とまとめて呼ばれる、3つのNPU共通キュー・ブロック(NPCQ)210A、210B、210Cをさらに含む。NPCQは、218A、218Bおよび218Cとして図2に示す、3つのPowerBusユニット・インターフェースを提供する。PowerBusインターフェースのそれぞれは、2つのNVリンク・ブリック(NTLブロック212)をサポートする。
図2を再度参照すると、LPU120は、拡張変換サービス・ブロック(XTS)214をさらに含む。XTS214は、NVリンクのアドレス変換サービス動作をサポートするのに使用される。このブロックは、GPUからのアドレス変換要求を受理し、必要な変換文脈を探索し、P9の変換要求を作成する。変換文脈は、XTSユニットにおけるテーブルに保持される。ネストMMUが変換要求に応答したとき、XTSブロックは、NVリンクを介してGPUに送られるアドレス変換応答を作成する。XTSブロックは、先行技術において周知であるように、PowerBusに対するTLBie動作のスヌーピングに基づいてアドレス・シュートダウン要求も生成する。
図3は、図2で紹介したアドレス変換ブロック(ATS)216の一部分の簡略化されたブロック図である。この例において、RDM回路110は、アドレス変換ブロック(ATS)216に組み込まれる。ATS216は、非変換アドレスがGPUからのコマンドに使用されたとき、アドレス再配置およびバリデーションを提供する。再配置およびバリデーションのその他の詳細は、OpenPOWER Foundationによって所有される、IOデバイス・アーキテクチャ、バージョン2(IODA2)の仕様書に説明される。ATS216の変換プロセスは、図3の底部のバス・デバイス機能(BDF)310およびDMAアドレス312から開始し、頂部に進んで、システム実アドレス314を作成する。ATS216におけるアドレス変換は、3つの基本ステップを有する。ステップ1において、パーティション化可能なエンドポイント番号(PE#)318が、バス・デバイス機能310を有するエージェント(GPUまたはCPU)から受け取ったDMAアドレス312の各アドレス変換動作に割り当てられる。RDM回路110は、以下にさらに説明するように、ステップ1において機能する。ステップ2および3は、先行技術と同様のやり方で動作する。ステップ2において、PE#318は、変換バリデーション入力(TVE)を見つけるために変換バリデーション・テーブル(TVT)320への索引付けをするのに使用される。ステップ3において、実アドレス314が、DMAアドレス312からのTVEおよびビット334を使用し、TCEテーブル330からの情報を使用して決定される。これらのステップのそれぞれを以下にさらに説明する。
図3を再度参照すると、アドレスを変換するプロセスのステップ1は、パーティション化可能なエンドポイント番号(PE#)を各DMA動作に割り当てることである。通常、同じPE#が、バス・デバイス機能(BDF)に関連したすべてのDMA動作に割り当てられる。各DMA動作は、関連したエージェントまたは複数のエージェント(GPUまたはCPU)を有する。バス・デバイス機能(BDF)310は、現在のメモリ・アドレス変換動作に対応するエージェントまたは複数のエージェントの同一性を示す。BDF310によって表されるデバイスの同一性は、典型的には、システムをブートしたときのハードウェア検出段階におけるエージェントに割り当てられる。BDF310は、PE#構成テーブル(PCT)316からTVT320にアクセスするのに使用されるパーティション化可能なエンドポイント番号(PE#)を選択するのに使用される。一例において、BDF310のビットは、PCTテーブル316への索引付けをするのに使用される4ビット・インデックスを形成するために排他的OR動作を用いてハッシュされる。PCT316は、幅が4ビットであり、16の入力を有する。PCTの各入力は、BDFに関連したPE#を含み、DMAコマンドは、そのBDFから受け取られたものである。PCT316は、4ビットのPE#318Aを出力する。通常動作モードにおいて、このPE#318Aは、以下に説明するように、PE#318BとしてRDM回路110を通過され、ステップ2のためにTVTに提供される。テスト・モードにおいて、RDM回路110は、以下にさらに説明するように、PE#318Bをランダムに変更する。
図3を再度参照すると、アドレスを変換するプロセスのステップ2は、変換バリデーション入力(TVE)322を見つけるために変換バリデーション・テーブル(TVT)320への索引付けをするのにPE#318Bの信号を使用する。この具体的な例において、TVT320は、各PE#に対して1つの入力を有する16の入力テーブルである。TVTへの入力は、上記に説明したRDM回路110からの4ビットのPE#318Bの信号である。TVT320の出力は、変換バリデーション入力(TVE)322である。TVEは、以下に説明するように、変換制御入力(TCE)テーブル330へのポインタを含む。本明細書に説明する例において、TVT320におけるポインタ情報は、変換テーブル・アドレス(TTA)と、変換制御入力(TCE)ツリーの深さと、TCEテーブル・サイズと、I/Oページ・サイズとを含む。TVE322のこれらのフィールドは、以下にさらに説明するように、TCEテーブルへの索引付けをするのに使用される。
プロセスのステップ2は、以下のように継続する。TVE322を復号した結果は、TVE322が無効であるか、またはTVE322が有効でありかであり得る。TVE322が有効である場合、状態は、変換が無効にされているかどうか、または有効にされているかどうか、およびDMAアドレスが、TCEテーブル範囲の外側または内側に含まれるかどうかを含む。TVEにおけるビットは、上記の状態のそれぞれを示す。TVE322は、バリデート・アドレス・ブロック324に送られる。TVE322は、DMAアドレスが所定の範囲内に含まれるかどうかを検証するためにバリデート・アドレス・ブロック324によって使用される。DMAアドレスがこの範囲の外側にある場合、変換動作は不合格である。範囲テストに合格した場合、TVEは、「非変換」モード326を指定することができる。この場合、DMAアドレスは、システム・メモリ・アドレスとして使用される。「変換」モードが指定された場合、TVEは、変換プロセスのステップ3に使用されるTCEテーブル330のベース・アドレスを提供する。TVEは、ステップ3において使用するI/Oページ・サイズも指定する。
図3を再度参照すると、アドレス変換のプロセスのステップ3が、TVEからのベース・アドレスとDMAアドレス312からのビット334とを使用して、変換制御入力(TCE)テーブル330から取得した情報から実メモリ・アドレス314を作成する。使用されるDMAアドレス312のビット334は、I/Oページ・サイズに依存する。TCEテーブル330は、各変換に対する変換制御入力(TCE)を含む。TCEテーブル330におけるTCE入力は、実メモリ・アドレス314を形成するために、I/Oページ・サイズに基づいて上位DMAアドレス・ビットに取って代わる実ページ番号ビットを指定する。TCEテーブル入力は、アドレスに許可されているアクセス型(読取りまたは書込みあるいはその両方)も指定する。他の変換モード情報は、先行技術において周知であるように、TCEに記憶することもできる。ATS216は、TCE332のキャッシュをさらに含み、キャッシュ・ミスが起きたときテーブル検索動作を実施する。
本明細書では、変換モード情報とは、記憶されている、DMAアドレスを変換するのに使用される情報のことである。例示する例において、変換モード情報は、上記に説明したように、TCEテーブル330における情報と、TVT320におけるポインタ情報とを含む。変換モード情報を使用して、LPU120(図1)のテスト中にDMAアドレス変換のすべてのモードをテストすることが望ましい。LPU120(図1)のテスト・モードの間、TCEテーブル330は、アドレス変換のすべてのモードをテストするために変換モード情報をロードすることができる。RDM回路110により、以下にさらに説明するように、TVTの入力をランダムに選択することによってTVT320の16のすべての入力に対してすべてのモードのテストが可能になる。TVT320は、上記に説明したように、TCEテーブル330への索引付けをするためにポインタを提供する。モード情報は、LPU120をテストするために、先行技術において周知のやり方でソフトウェアによってTCEテーブル330にロードされる。例えば、TCEテーブル330は、CPUのオペレーティング・システムによって、アプリケーションまたはある他のテスト・ソフトウェアによってロードすることができる。次いで、LPUに接続された単一のGPUが、本明細書において説明するように、変換されるアドレスを有するメモリへのアクセスを要求したとき、デバイス変換のテストを行うことができる。正しい変換の検証の方法は、先行技術において周知であるように適切なやり方で行うことができる。これは、オン・チップ・エラー検出またはテスト・ソフトウェア検出を含むことができ得る。
図4は、ランダムDMAモード(RDM)回路110の簡略化されたブロック図である。RDM回路110は、上記に説明したように、実アドレス314を作成するのに使用されるTVT320への索引付けをするためにPE#318Bを出力する。図4は、この動作を提供する回路例を示す。この例において、RDM回路110は、通常動作モードとテスト動作モードとから選択するためにモード・ビット412を有するマルチプレクサ410を使用する。通常動作モードにおいて、マルチプレクサ410のモード・ビット412は、PCT316(図3)から提供されたPE#318Aの入力を選択する。動作のテスト・モードにおいて、モード・ビット412は、ランダム4ビット信号発生器414の出力を選択する。リンク処理ユニットがテスト・モードにあるとき、ランダム4ビット信号発生器414からの入力を選択して、信号PE#318Bとして示されるマルチプレクサ410の出力に加えるためにモード・ビット412がアサートされる。したがって、RDM回路110により、どのバス・エージェントがリンク処理ユニットに接続されているのかにかかわらず、TVTのすべての入力をテストすることが可能になり、その場合、TVTへの入力がランダム4ビット発生器414によって提供される。モード・ビットは、適当な手段によってテスト・モードに設定することができる。例えば、モード・ビット412は、集積回路のブート処理中に基本入出力システム(BIOS)によって設定することができる。
図5を参照すると、方法500が、リンク処理ユニットなどの集積回路におけるアドレス変換の効率的なストレス・テストのための1つの適切な例を示す。方法500は、好ましくは図1におけるLPU120および図4に示すランダム・モード回路110によって、および図1に示すテスト・ソフトウェア118によって実施される。まず、すべてのエージェントのすべての変換モードに対する変換情報を有する変換入力を変換テーブルにロードする(ステップ510)。次いで、単一のエージェント(GPU)を使用して、どのエージェントが接続されているかにかかわらず変換テーブルの入力をランダムに選択することによってすべての変換入力をテストし、その一方で、DMA変換をテストする(ステップ520)。そこで方法が完了する。
図6は、リンク処理ユニットなどの集積回路におけるテストDMA変換に対する変換型をランダムに選択するための方法の1つの適切な例を示す。したがって、方法600は、方法500においてステップ520を実施するための適切なステップを示す。まず、ランダム信号をマルチプレクサへの入力に提供する(ステップ610)。マルチプレクサの選択入力(select input)を使用して、マルチプレクサから出力するランダム信号を選択する(ステップ620)。テスト中に、変換テーブルの入力をランダムに選択するためにマルチプレクサからのランダム信号を変換テーブルに提供する(ステップ630)。そこで方法が完了する。
本明細書における本開示および特許請求の範囲は、変換バリデーション・テーブルへの索引付けをするためにランダム入力を提供するランダムDMAモード(RDM)回路を有する集積回路におけるアドレス変換の効率的なストレス・テストのための回路および方法を説明する。RDM回路により、集積回路をより効率的にテストするために、どのバス・エージェントが接続されているかにかかわらず、変換バリデーション・テーブルのすべての入力、したがって、すべてのDMAモードをテストすることが可能となる。
特許請求の範囲内で多くの変形が可能であることを当業者は理解するであろう。したがって、本開示が上記に詳細に示され、説明されたが、特許請求の範囲の主旨および範囲から逸脱することなく、形態および詳細におけるこれらのおよび他の変更を加えることができることが当業者によって理解されよう。

Claims (20)

  1. 集積回路であって、
    複数の変換入力を含む第1の変換テーブルであって、前記複数の変換入力のそれぞれが、前記集積回路に接続された複数のエージェントのうちの1つに対するダイレクト・メモリ・アクセス(DMA)アドレスを変換する変換情報を含む、前記第1の変換テーブルと、
    前記変換制御入力テーブルにおけるすべての前記複数の入力を選択するためにテスト・モード中に前記第1の変換テーブルにおける変換制御入力をランダムに選択するランダムDMAモード(RDM)回路と
    を備える、集積回路。
  2. 前記集積回路に接続された単一のエージェントだけがあるとき、前記RDM回路が、前記第1の変換テーブルにおけるすべての前記変換からランダムに選択する、請求項1に記載の集積回路。
  3. 前記RDM回路が、
    マルチプレクサの指定された入力に接続されたランダム発生器信号と、
    前記指定された入力を選択する前記マルチプレクサの選択入力と、
    テスト中に前記変換テーブルの入力をランダムに選択するために前記テスト・モード中に前記ランダム発生器信号を前記変換テーブルに提供する前記マルチプレクサの出力と
    を備える、請求項1に記載の集積回路。
  4. 前記第1の変換テーブルが、変換制御入力テーブルを指し示す前記複数のエージェントのそれぞれに対する変換バリデーショ入力を含む変換バリデーション・テーブルであり、前記RDM回路が、前記変換制御入力テーブルにおける変換制御入力を指し示す変換バリデーショ入力をランダムに選択する、請求項1に記載の集積回路。
  5. 前記RDMが、変換バリデーショ入力をランダムに選択することによって前記変換制御入力をランダムに選択する、請求項4に記載の集積回路。
  6. 前記第1の変換テーブルの各入力におけるDMAアドレスを変換する前記情報が、変換テーブル・アドレスと、変換制御入力ツリーの深さと、変換制御入力テーブル・サイズと、入出力ページ・サイズとを含む、請求項5に記載の集積回路。
  7. 前記エージェントが、中央処理装置と、少なくとも1つのグラフィックス処理ユニットとを備える、請求項1に記載の集積回路。
  8. 前記集積回路が、リンク処理ユニットの一部である、請求項1に記載の集積回路。
  9. 前記リンク処理ユニットが、中央処理装置を有する前記集積回路上に作製される、請求項8に記載の集積回路。
  10. 集積回路をテストするコンピュータ実装方法であって、
    第1の変換テーブルに複数の変換入力をロードすることであって、前記複数の変換入力のそれぞれが、前記集積回路に接続された複数のエージェントのうちの1つに対するダイレクト・メモリ・アクセス(DMA)アドレスを変換する変換情報を含む、前記ロードすることと、
    単一のエージェントを使用してアドレス変換の複数の連続テストを実行するために、変換情報を有する前記テーブルの入力をランダムに選択することによって前記変換テーブルにおけるすべての前記変換入力をテストするべくテスト・モードにおいて前記集積回路に接続された前記単一のエージェントを使用することと
    を含む、方法。
  11. マルチプレクサの入力にランダム信号を提供することと、
    前記マルチプレクサへの選択入力を使用して前記ランダム信号を選択することと、
    前記テスト・モード中に前記変換制御入力テーブルの入力をランダムに選択するために前記マルチプレクサから前記変換テーブルに前記ランダム信号を提供することと
    をさらに含む、請求項10に記載の方法。
  12. 前記ランダム信号が4ビットであり、前記変換テーブルが16の入力を含む、請求項11に記載の方法。
  13. 前記第1の変換テーブルが、変換制御入力テーブルを指し示す前記複数のエージェントのそれぞれに対する変換バリデーショ入力を含む変換バリデーション・テーブル(TVT)である、請求項10に記載の方法。
  14. 前記変換バリデーショ入力が、変換テーブル・アドレス(TTA)と、変換制御入力ツリーの深さと、変換制御入力テーブル・サイズと、入出力ページ・サイズとを含む、請求項13に記載の方法。
  15. 前記エージェントが、中央処理装置と、少なくとも1つのグラフィックス処理ユニットとを備える、請求項10に記載の方法。
  16. 集積回路上のリンク処理ユニットの一部として実施される、請求項10に記載の方法。
  17. 前記リンク処理ユニットが、中央処理装置を有する前記集積回路上に作製される、請求項16に記載の方法。
  18. 集積回路上のリンク処理ユニットをテストするコンピュータ実装方法であって、
    第1の変換テーブルに複数の変換入力をロードすることであって、前記複数の変換入力のそれぞれが、前記集積回路に接続された複数のエージェントのうちの1つに対するダイレクト・メモリ・アクセス(DMA)アドレスを変換する変換情報を含み、前記エージェントが、中央処理装置と、少なくとも1つのグラフィックス処理ユニットとを備える、前記ロードすることと、
    単一のエージェントを使用してアドレス変換の複数の連続テストを実行するために、変換情報を有する前記テーブルの入力をランダムに選択することによって前記変換テーブルにおけるすべての前記変換入力をテストするべくテスト・モードにおいて前記集積回路に接続された前記単一のエージェントを使用することと、
    マルチプレクサの入力にランダム信号を提供することと、
    前記マルチプレクサへの選択入力を使用して前記ランダム信号を選択することと、
    前記テスト・モード中に前記変換制御入力テーブルの入力をランダムに選択するために前記マルチプレクサから前記変換テーブルに前記ランダム信号を提供することと
    を含む、方法。
  19. 前記変換テーブルが、前記複数のエージェントのそれぞれに対する変換バリデーショ入力を含む変換バリデーション・テーブル(TVT)である、請求項18に記載の方法。
  20. 前記TVTの各入力における前記モードのDMAアドレスを変換する前記情報が、変換テーブル・アドレス(TTA)と、変換制御入力ツリーの深さと、変換制御入力テーブル・サイズと、入出力ページ・サイズとを含む、請求項19に記載の方法。
JP2020506774A 2017-08-12 2018-08-06 ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法 Active JP7287947B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/675,717 US10169185B1 (en) 2017-08-12 2017-08-12 Efficient testing of direct memory address translation
US15/675,717 2017-08-12
PCT/IB2018/055908 WO2019034960A1 (en) 2017-08-12 2018-08-06 EFFECTIVE TEST OF DIRECT MEMORY ADDRESS TRANSLATION

Publications (3)

Publication Number Publication Date
JP2020529683A true JP2020529683A (ja) 2020-10-08
JP2020529683A5 JP2020529683A5 (ja) 2021-02-12
JP7287947B2 JP7287947B2 (ja) 2023-06-06

Family

ID=64739683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020506774A Active JP7287947B2 (ja) 2017-08-12 2018-08-06 ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法

Country Status (6)

Country Link
US (4) US10169185B1 (ja)
JP (1) JP7287947B2 (ja)
CN (1) CN110945485B (ja)
DE (1) DE112018004144T5 (ja)
GB (1) GB2578412B (ja)
WO (1) WO2019034960A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169185B1 (en) * 2017-08-12 2019-01-01 International Business Machines Corporation Efficient testing of direct memory address translation
US11074194B2 (en) 2019-02-21 2021-07-27 International Business Machines Corporation Managing direct memory access

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302341A (ja) * 1991-03-29 1992-10-26 Advantest Corp アドレス発生装置
JP2013539098A (ja) * 2010-08-04 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション I/oメッセージの影響を受ける1つ又は複数個のパーティション化可能なエンドポイントを決定するデータ処理システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US7444493B2 (en) 2004-09-30 2008-10-28 Intel Corporation Address translation for input/output devices using hierarchical translation tables
US20060284876A1 (en) * 2005-06-15 2006-12-21 Low Yun S Method and apparatus for programming an input/output device over a serial bus
US20080168208A1 (en) * 2007-01-09 2008-07-10 International Business Machines Corporation I/O Adapter LPAR Isolation In A Hypertransport Environment With Assigned Memory Space Indexing a TVT Via Unit IDs
JP2010244165A (ja) * 2009-04-02 2010-10-28 Renesas Electronics Corp 半導体集積回路、及び半導体集積回路の制御方法
US8386747B2 (en) * 2009-06-11 2013-02-26 Freescale Semiconductor, Inc. Processor and method for dynamic and selective alteration of address translation
JP5782740B2 (ja) * 2011-02-21 2015-09-24 富士電機株式会社 スイッチング電源の制御用半導体装置
US8386679B2 (en) * 2011-04-12 2013-02-26 International Business Machines Corporation Dynamic allocation of a direct memory address window
US9378150B2 (en) * 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
US9811472B2 (en) 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9600419B2 (en) 2012-10-08 2017-03-21 International Business Machines Corporation Selectable address translation mechanisms
US9792222B2 (en) 2014-06-27 2017-10-17 Intel Corporation Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure
US10026500B2 (en) * 2015-11-13 2018-07-17 International Business Machines Corporation Address translation stimuli generation for post-silicon functional validation
US10169185B1 (en) * 2017-08-12 2019-01-01 International Business Machines Corporation Efficient testing of direct memory address translation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04302341A (ja) * 1991-03-29 1992-10-26 Advantest Corp アドレス発生装置
JP2013539098A (ja) * 2010-08-04 2013-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション I/oメッセージの影響を受ける1つ又は複数個のパーティション化可能なエンドポイントを決定するデータ処理システム

Also Published As

Publication number Publication date
US10169185B1 (en) 2019-01-01
DE112018004144T5 (de) 2020-04-23
US10481991B2 (en) 2019-11-19
CN110945485A (zh) 2020-03-31
US20190050314A1 (en) 2019-02-14
WO2019034960A1 (en) 2019-02-21
CN110945485B (zh) 2023-08-29
US10489261B2 (en) 2019-11-26
US20190050315A1 (en) 2019-02-14
GB202002808D0 (en) 2020-04-15
GB2578412A (en) 2020-05-06
JP7287947B2 (ja) 2023-06-06
US10169186B1 (en) 2019-01-01
GB2578412B (en) 2020-11-11

Similar Documents

Publication Publication Date Title
US7469273B2 (en) Multi-processor system verification circuitry
US7992059B2 (en) System and method for testing a large memory area during processor design verification and validation
US7840780B2 (en) Shared resources in a chip multiprocessor
US20070245289A1 (en) Memory re-implementation for field programmable gate arrays
US7797650B2 (en) System and method for testing SLB and TLB cells during processor design verification and validation
CN114546405A (zh) 统一中间表示
RU2417412C2 (ru) Стандартный аналоговый интерфейс для многоядерных процессоров
US8918568B2 (en) PCI express SR-IOV/MR-IOV virtual function clusters
US8099559B2 (en) System and method for generating fast instruction and data interrupts for processor design verification and validation
US20090271601A1 (en) Method, device, and system for pre-memory symmetric multiprocessing flow
US20090049235A1 (en) Enabling parallel access volumes in virtual machine environments
JP7287947B2 (ja) ダイレクト・メモリ・アドレス変換の効率的なテストのための集積回路、およびコンピュータ実装方法
JP5473438B2 (ja) テスト・ケース生成のための方法、情報処理システムおよびコンピュータ・プログラム
CN114691037A (zh) 卸载卡命名空间管理、输入输出请求处理系统和方法
US11561779B1 (en) Applications for hardware accelerators in computing systems
US20140032792A1 (en) Low pin count controller
US7765362B2 (en) Efficient system bootstrap loading
JPH02232736A (ja) システムモジュール間のdram制御信号のエラー検査を行なう方法及び手段
CN111666104A (zh) 一种支持从RapidO启动的DSP处理器设计方法
JP2021529373A (ja) システムオンチップにおけるプログラマブル論理マスタのためのハードウェアベースの仮想−物理アドレス変換
US20240004750A1 (en) Remote scalable machine check architecture
Strunk et al. Run-time reconfiguration for hypertransport coupled FPGAs using ACCFS
US20230244461A1 (en) Configurable Access to a Reconfigurable Processor by a Virtual Function
CN116820860A (zh) 处理器及其测试方法
KR20140113175A (ko) 버스 프로토콜 검사기, 이를 포함하는 시스템 온 칩 및 버스 프로토콜 검사 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220329

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230525

R150 Certificate of patent or registration of utility model

Ref document number: 7287947

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150