JP6434168B2 - スイッチへのアドレスキャッシュ - Google Patents
スイッチへのアドレスキャッシュ Download PDFInfo
- Publication number
- JP6434168B2 JP6434168B2 JP2017556872A JP2017556872A JP6434168B2 JP 6434168 B2 JP6434168 B2 JP 6434168B2 JP 2017556872 A JP2017556872 A JP 2017556872A JP 2017556872 A JP2017556872 A JP 2017556872A JP 6434168 B2 JP6434168 B2 JP 6434168B2
- Authority
- JP
- Japan
- Prior art keywords
- switch
- address
- physical address
- memory
- mapping
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims description 177
- 238000013507 mapping Methods 0.000 claims description 124
- 230000004044 response Effects 0.000 claims description 91
- 238000013519 translation Methods 0.000 claims description 71
- 238000000034 method Methods 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 29
- 238000012790 confirmation Methods 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 32
- 238000006243 chemical reaction Methods 0.000 description 23
- 238000004590 computer program Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/1425—Protection 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 physical, e.g. cell, word, block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/154—Networked environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/264—Remote server
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/604—Details relating to cache allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/682—Multiprocessor TLB consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本明細書は、スイッチ、たとえばスイッチチップに関する。
バス、たとえばPCIまたは周辺コンポーネント相互接続エクスプレス(PCIe)バスに対して使用されるスイッチチップは、変換されたアドレスを受信し、この変換されたアドレスを使用して、当該スイッチチップによって少なくとも一部が管理される上記バスに接続されているデバイスからのメモリアクセス要求が有効であるか否かを検査する。たとえば、スイッチチップは、ページテーブルをキャッシュに格納し、または、仮想アドレスから物理アドレスへのマッピングを変換ルックアサイドバッファ(TLB)に格納し、このページテーブルまたはTLBからのアドレスを用いることにより、当該スイッチチップによって少なくとも一部が管理される上記バスに接続されているデバイスからの変換要求に応じるか、これらのデバイスからのアクセス要求を検査するか、またはこれら双方を行なう。簡略化のために、本明細書では、「スイッチチップに接続されている」デバイスと言う場合、これは、メモリ要求およびアドレス変換要求が少なくとも一部スイッチチップによって制御または管理される、バスへの接続、または、ポイント・ツー・ポイント接続を意味すると理解される。
詳細な説明
概観
いくつかの実装例において、スイッチチップ、たとえば周辺コンポーネント相互接続エクスプレス(PCIe)スイッチチップは、当該スイッチチップが管理するバスに接続されているデバイスに代わってアドレス変換サービス(ATS)変換をキャッシュする。たとえば、あるデバイスが、周辺コンポーネント相互接続(PCI)読出または書込要求を、バス上に出力した場合、スイッチチップは、この要求に含まれている仮想アドレスを求めて、当該スイッチチップに含まれている変換ルックアサイドバッファ(TLB)を調べ、ヒットした場合はこの仮想アドレスを変換して物理アドレスを求める。当該スイッチチップは、この物理アドレスを上記デバイスに与える、または、この物理アドレスを上記要求に含めてこの要求をたとえばサービスのために別のデバイスに転送することができる。
図1は、仮想アドレスから物理アドレスへのマッピングをスイッチチップA 102aが格納する環境100の一例である。いくつかの実装例において、スイッチチップA 102aは、スイッチチップA 102aがマッピングを格納するTLB104を含む。
図2は、変換要求に応答するプロセス200のフロー図である。たとえば、プロセス200は、環境100のスイッチA 102aによって使用されてもよい。
図3は、物理アドレスがメモリに格納されているか否かを判断するためのプロセス300のフロー図である。たとえば、プロセス300は、環境100のスイッチチップA 102aまたはコントローラ110によって使用されてもよい。
いくつかの実装例において、スイッチチップは、デバイスごとにアドレスマッピングを格納しデバイスごとにTLBを含んでいてもよく、たとえば、スイッチチップが管理するバスにデバイスが接続できるようにする各ポートであってそのためにスイッチチップがアドレスマッピングを格納する各ポートについて、TLBを含んでいてもよい。スイッチチップは、ポート情報を用いることにより、どのTLBにアクセスすべきかを判断してもよく、たとえば、特定のデバイス用のアドレスマッピングを求めてもよく、または、特定のデバイスのメモリアクセス要求を検証してもよい。スイッチチップは、適切な方法を用いることにより、特定のデバイスのためにどのTLBにアクセスするかを判断してもよい。
本明細書に記載の主題および機能的動作の実施形態は、デジタル電子回路において、有形に実現されたコンピュータソフトウェアまたはファームウェアにおいて、本明細書に開示されている構造およびそれらの構造的均等物を含むコンピュータハードウェアにおいて、または、これらのうちの1つ以上を組合わせたものにおいて、実現することができる。本明細書に記載の主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置によって実行されるかまたはデータ処理装置の動作を制御するための有形の非一時的なプログラムキャリア上で符号化されているコンピュータプログラム命令の1つ以上のモジュールとして、実現することができる。コンピュータ記憶媒体は、機械読取可能な記憶装置、機械読取可能な記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、または、これらのうちの1つ以上を組合わせたものであってもよい。
Claims (24)
- バスに接続された1つ以上のデバイスからパケットを受信し前記1つ以上のデバイスにパケットを渡すスイッチを備え、前記スイッチと前記1つ以上のデバイスの各々との間における前記バス上にコンポーネントは存在しておらず、
前記スイッチに組込まれ仮想アドレスから物理アドレスへのマッピングを格納するためのメモリと、
前記スイッチに組込まれ前記スイッチによって実行可能な命令を格納する非一時的なコンピュータ読取可能な記憶媒体とを備え、前記命令は実行されると前記スイッチに複数の動作を実行させ、前記複数の動作は、
前記スイッチが、前記バスによって前記スイッチに接続されているデバイスのためのアドレス変換要求に対する応答を受信することを含み、前記応答は、仮想アドレスから物理アドレスへのマッピングを含み、前記複数の動作は、
前記デバイスのための前記アドレス変換要求に対する前記応答を受信したことに応じて、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記メモリに格納することと、
特定の物理アドレスを含むメモリアクセス要求を前記デバイスから受信することと、
前記特定の物理アドレスは前記メモリに格納されていると判断することと、
前記特定の物理アドレスは前記メモリに格納されていると判断したことに応じて、前記メモリアクセス要求をサービスのために別のデバイスに転送することとを含む、システム。 - 前記スイッチに組込まれIOMMUメモリを含む入出力メモリ管理ユニット(IOMMU)を備え、
前記メモリは前記IOMMUメモリを含み、
前記スイッチが、前記デバイスのためのアドレス変換要求に対する応答を受信することは、前記スイッチが、前記デバイスのためのページテーブルの一部を受信することを含み、
前記仮想アドレスから前記物理アドレスへの前記マッピングを前記メモリに格納することは、前記ページテーブルの前記一部を前記IOMMUに格納することを含む、請求項1に記載のシステム。 - 前記メモリは変換ルックアサイドバッファ(TLB)を含み、
前記仮想アドレスから前記物理アドレスへの前記マッピングを前記メモリに格納することは、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記TLBに格納することを含む、請求項1に記載のシステム。 - 前記スイッチのための予め定められた数のポートを備え、前記ポートは各々、特定のデバイスに対応し、前記スイッチは、前記特定のデバイスに対して1つのTLBを含む、請求項3に記載のシステム。
- 前記複数の動作は、
前記デバイスのための前記アドレス変換要求に対する前記応答を受信したことに応じて、前記TLBは空の場所を含まないと判断することと、
前記TLB内の場所からエントリを削除することと、
前記TLB内の前記場所に、前記仮想アドレスを前記物理アドレスにマッピングする新たなエントリを格納することとを含む、請求項3に記載のシステム。 - 前記複数の動作は、
仮想アドレスから物理アドレスへのマッピングを前記デバイスが前記デバイスのTLBに現在格納していることを前記デバイスに固有の設定が示すと判断することと、
仮想アドレスから物理アドレスへのマッピングを前記デバイスが前記デバイスのTLBに現在格納していることを前記デバイスに固有の設定が示すと判断したことに応じて、前記デバイスのTLBからエントリを削除することを前記デバイスに指示するメッセージを前記デバイスに送信することと、
仮想アドレスから物理アドレスへのマッピングを前記デバイスが前記デバイスのTLBに現在格納していることを前記デバイスに固有の設定が示すと判断したことに応じて、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記デバイスに与えることとを含む、請求項3に記載のシステム。 - 前記複数の動作は、前記デバイスが前記デバイスのTLBから前記エントリを削除したという確認を、前記デバイスから受信することを含み、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記デバイスに与えることは、前記デバイスが前記デバイスのTLBから前記エントリを削除したという確認を受信したことに応じて、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記デバイスに与えることを含む、請求項6に記載のシステム。
- 前記スイッチは、前記デバイスを含む2つ以上のデバイスからパケットを受信し前記2つ以上のデバイスにパケットを渡し、前記2つ以上のデバイスは各々バスに接続されており、前記スイッチと前記2つ以上のデバイス各々との間における前記バス上にコンポーネントは存在しておらず、
前記メモリは、前記デバイスに固有のメモリであり、前記バスによって前記スイッチに接続され前記2つ以上のデバイスに含まれるその他のデバイスのための仮想アドレスから物理アドレスへのマッピングを含まず、
前記システムは、1つ以上の追加のメモリを備え、前記1つ以上の追加のメモリは各々、
a)前記デバイス以外の前記2つ以上のデバイスのうちの特定のデバイスに固有であり、
b)前記バスによって前記スイッチに接続され前記2つ以上のデバイスに含まれるその他のデバイスのための仮想アドレスから物理アドレスへのマッピングを含まない、請求項1に記載のシステム。 - 前記スイッチに組込まれている1つ以上の追加のメモリを備え、前記追加のメモリ各々と、特定のデバイスに固有の前記メモリとは、前記バスによって前記スイッチに接続されており、
前記特定の物理アドレスが前記メモリに格納されていると判断することは、
前記スイッチにおける特定のポートが前記メモリアクセス要求を受信したと判断することと、
前記メモリと前記追加のメモリとを含む群から、前記特定のポートを用いて前記デバイスのための前記メモリを選択することと、
前記特定のポートを用いて前記デバイスのための前記メモリを選択したことに応じて、前記特定の物理アドレスが前記メモリに格納されていると判断することとを含む、請求項1に記載のシステム。 - 中央処理装置と、
キャッシュとを備え、
前記デバイスのためのアドレス変換要求に対する応答を受信することは、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記キャッシュから受信することを含み、
前記メモリアクセス要求をサービスのために別のデバイスに転送することは、前記メモリアクセス要求を前記中央処理装置に転送することを含む、請求項1に記載のシステム。 - 第2のバス上のコントローラを備え、前記コントローラは、前記第2のバスを介して、前記スイッチを、前記中央処理装置および前記キャッシュに接続し、前記スイッチと前記中央処理装置および前記キャッシュとの間でやり取りされる応答および要求を、前記第2のバスを用いてルーティングする、請求項10に記載のシステム。
- 前記コントローラはルートコンプレックスを含む、請求項11に記載のシステム。
- 前記スイッチを含む複数のスイッチと、
第2のバス上のコントローラとを備え、前記コントローラは、前記第2のバスを介して、前記複数のスイッチ各々を、前記中央処理装置および前記キャッシュに接続し、前記複数のスイッチ各々と前記中央処理装置および前記キャッシュとの間でやり取りされる応答および要求を、前記第2のバスを用いてルーティングする、請求項10に記載のシステム。 - マザーボードと、
前記マザーボードに組込まれている前記バスとを備え、前記マザーボードに対し、前記スイッチは、ソースデバイスからの要求を宛先デバイスにルーティングすることにより、周辺装置が前記マザーボードに接続することを可能にするように構成されている、請求項1に記載のシステム。 - バスに接続された1つ以上のデバイスからパケットを受信し前記1つ以上のデバイスにパケットを渡すスイッチを備え、前記スイッチと前記1つ以上のデバイス各々との間における前記バス上にコンポーネントは存在しておらず、
前記スイッチに組込まれ仮想アドレスから物理アドレスへのマッピングを格納するためのメモリと、
前記スイッチに組込まれ前記スイッチによって実行可能な命令を格納する非一時的なコンピュータ読取可能な記憶媒体とを備え、前記命令は実行されると前記スイッチに複数の動作を実行させ、前記複数の動作は、
前記スイッチが、前記バスによって前記スイッチに接続されているデバイスのためのアドレス変換要求に対する応答を受信することを含み、前記応答は、仮想アドレスから物理アドレスへのマッピングを含み、
前記デバイスのための前記アドレス変換要求に対する前記応答を受信したことに応じて、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記メモリに格納することと、
特定の物理アドレスを含むメモリアクセス要求を前記デバイスから受信することと、
前記仮想アドレスから前記物理アドレスへの前記マッピングを含む前記メモリからのデータを用いて、前記デバイスは前記特定の物理アドレスによって特定される記憶場所にアクセスすることを許可されないと判断することと、
前記デバイスは前記特定の物理アドレスによって特定される記憶場所にアクセスすることを許可されないと判断したことに応じて、前記メモリアクセス要求を破棄することと、
前記デバイスは前記特定の物理アドレスによって特定される記憶場所にアクセスすることを許可されないと判断したことに応じて、前記デバイスをリセットすることとを含む、システム。 - 前記複数の動作は、
前記スイッチが、前記デバイスから、前記仮想アドレスを含む前記アドレス変換要求を受信することと、
前記仮想アドレスは前記メモリに格納されていないと判断することと、
前記仮想アドレスから前記物理アドレスへの前記マッピングを要求することとを含み、前記スイッチが、前記デバイスのためのアドレス変換要求に対する応答を受信することは、前記仮想アドレスから前記物理アドレスへの前記マッピングを要求したことに応じて、前記応答を受信することを含む、請求項1に記載のシステム。 - 前記複数の動作は、
前記仮想アドレスから前記物理アドレスへの前記マッピングを用いて、前記仮想アドレスに対応する物理アドレスを求めることと、
前記対応する物理アドレスを含む、前記アドレス変換要求に対する第2の応答を、前記デバイスに与えることとを含む、請求項16に記載のシステム。 - 前記複数の動作は、前記仮想アドレスから前記物理アドレスへの前記マッピングを要求するのと同時に、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記メモリが含むか否かを判断することを含む、請求項16に記載のシステム。
- 前記仮想アドレスから前記物理アドレスへの前記マッピングを要求することは、前記仮想アドレスから前記物理アドレスへの前記マッピングを中央処理装置に要求することを含む、請求項16に記載のシステム。
- 前記仮想アドレスから前記物理アドレスへの前記マッピングを要求することは、前記仮想アドレスから前記物理アドレスへの前記マッピングをメモリに要求することを含む、請求項16に記載のシステム。
- 前記仮想アドレスから前記物理アドレスへの前記マッピングを要求することは、前記仮想アドレスから前記物理アドレスへの前記マッピングを入出力メモリ管理ユニット(IOMMU)に要求することを含む、請求項16に記載のシステム。
- 前記スイッチに組込まれた予め定められた数のポートを備え、前記ポートは各々、特定のデバイスに対応し、前記特定のデバイスに対し、前記メモリは、仮想アドレスから物理アドレスへの対応するマッピングを格納するように構成され、前記メモリのサイズは前記予め定められた数のポートに対応する、請求項1に記載のシステム。
- コンピュータによって実現される方法であって、
スイッチが、バスによって前記スイッチに接続されているデバイスのためのアドレス変換要求に対する応答を受信するステップを含み、前記スイッチは、前記バスに接続された1つ以上のデバイスからパケットを受信し前記1つ以上のデバイスにパケットを渡し、前記スイッチと前記1つ以上のデバイス各々との間における前記バス上にコンポーネントは存在しておらず、前記応答は、仮想アドレスから特定の物理アドレスへのマッピングを含み、
前記デバイスのための前記アドレス変換要求に対する前記応答を受信したことに応じて、前記スイッチに組込まれ仮想アドレスから物理アドレスへのマッピングを格納するためのメモリに、前記仮想アドレスから前記物理アドレスへのマッピングを格納するステップと、
仮想アドレスから物理アドレスへのマッピングを前記デバイスが前記デバイスの変換ルックアサイドバッファ(TLB)に現在格納していることを、前記デバイスに固有の前記スイッチの設定が示すと判断するステップとを含み、前記スイッチの設定は前記スイッチに組み込まれたメモリに格納されており、
仮想アドレスから物理アドレスへのマッピングを前記デバイスが前記デバイスの変換ルックアサイドバッファ(TLB)に現在格納していることを、前記デバイスに固有の前記スイッチの設定が示すと判断したことに応じて、前記デバイスのTLBからエントリを削除することを前記デバイスに指示するメッセージを前記デバイスに送信するステップと、
仮想アドレスから物理アドレスへのマッピングを前記デバイスが前記デバイスの変換ルックアサイドバッファ(TLB)に現在格納していることを、前記デバイスに固有の前記スイッチの設定が示すと判断したことに応じて、前記仮想アドレスから前記物理アドレスへの前記マッピングを前記デバイスに与えるステップとを含む、方法。 - 前記デバイスは前記特定の物理アドレスによって特定される記憶場所にアクセスすることを許可されないと判断することは、前記特定の物理アドレスは前記メモリに格納されていないと判断することを含む、請求項15に記載のシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018209836A JP6913663B2 (ja) | 2015-07-27 | 2018-11-07 | スイッチへのアドレスキャッシュ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/810,062 US9626300B2 (en) | 2015-07-27 | 2015-07-27 | Address caching in switches |
US14/810,062 | 2015-07-27 | ||
PCT/US2016/039333 WO2017019216A1 (en) | 2015-07-27 | 2016-06-24 | Address caching in switches |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018209836A Division JP6913663B2 (ja) | 2015-07-27 | 2018-11-07 | スイッチへのアドレスキャッシュ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018526696A JP2018526696A (ja) | 2018-09-13 |
JP6434168B2 true JP6434168B2 (ja) | 2018-12-05 |
Family
ID=56373146
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017556872A Active JP6434168B2 (ja) | 2015-07-27 | 2016-06-24 | スイッチへのアドレスキャッシュ |
JP2018209836A Active JP6913663B2 (ja) | 2015-07-27 | 2018-11-07 | スイッチへのアドレスキャッシュ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018209836A Active JP6913663B2 (ja) | 2015-07-27 | 2018-11-07 | スイッチへのアドレスキャッシュ |
Country Status (10)
Country | Link |
---|---|
US (2) | US9626300B2 (ja) |
EP (3) | EP4131013A1 (ja) |
JP (2) | JP6434168B2 (ja) |
KR (2) | KR101885185B1 (ja) |
CN (2) | CN111522755B (ja) |
DE (2) | DE112016002006B4 (ja) |
DK (1) | DK3329378T3 (ja) |
GB (1) | GB2556458B (ja) |
HK (1) | HK1253044A1 (ja) |
WO (1) | WO2017019216A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007435B2 (en) * | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
US9626300B2 (en) * | 2015-07-27 | 2017-04-18 | Google Inc. | Address caching in switches |
US10678702B2 (en) * | 2016-05-27 | 2020-06-09 | Advanced Micro Devices, Inc. | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations |
KR102482516B1 (ko) | 2016-11-29 | 2022-12-29 | 에이알엠 리미티드 | 메모리 어드레스 변환 |
US11082523B2 (en) * | 2017-02-09 | 2021-08-03 | International Business Machines Corporation | System, method and computer program product for a distributed virtual address space |
US20190044227A1 (en) * | 2017-08-01 | 2019-02-07 | Bby Solutions, Inc. | Active Antenna |
US10866904B2 (en) * | 2017-11-22 | 2020-12-15 | Arm Limited | Data storage for multiple data types |
US10831673B2 (en) | 2017-11-22 | 2020-11-10 | Arm Limited | Memory address translation |
US10929308B2 (en) | 2017-11-22 | 2021-02-23 | Arm Limited | Performing maintenance operations |
US10990554B2 (en) | 2018-03-02 | 2021-04-27 | Samsung Electronics Co., Ltd. | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
US10635609B2 (en) * | 2018-03-02 | 2020-04-28 | Samsung Electronics Co., Ltd. | Method for supporting erasure code data protection with embedded PCIE switch inside FPGA+SSD |
US10929310B2 (en) * | 2019-03-01 | 2021-02-23 | Cisco Technology, Inc. | Adaptive address translation caches |
JP7080863B2 (ja) * | 2019-08-02 | 2022-06-06 | 株式会社日立製作所 | ストレージ装置 |
CN110716886B (zh) * | 2019-09-29 | 2022-12-13 | 惠州市仲恺Tcl智融科技小额贷款股份有限公司 | 数据处理的方法、装置、存储介质以及终端 |
CN111988394B (zh) * | 2020-08-18 | 2022-11-01 | 北京金山云网络技术有限公司 | 一种虚拟化环境中优化p2p数据传输的方法、装置及设备 |
CN115525596A (zh) * | 2021-06-25 | 2022-12-27 | 许继电气股份有限公司 | 多主交换式高速互联背板总线及其控制方法、处理系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04308953A (ja) * | 1991-04-05 | 1992-10-30 | Kyocera Corp | 仮想アドレス計算機装置 |
JPH06187286A (ja) * | 1992-12-15 | 1994-07-08 | Hitachi Ltd | バス変換アダプタ |
JP3296240B2 (ja) * | 1997-03-28 | 2002-06-24 | 日本電気株式会社 | バス接続装置 |
US7457897B1 (en) | 2004-03-17 | 2008-11-25 | Suoer Talent Electronics, Inc. | PCI express-compatible controller and interface for flash memory |
US20010049732A1 (en) * | 2000-06-01 | 2001-12-06 | Raciborski Nathan F. | Content exchange apparatus |
US7487327B1 (en) | 2005-06-01 | 2009-02-03 | Sun Microsystems, Inc. | Processor and method for device-specific memory address translation |
US7917723B2 (en) | 2005-12-01 | 2011-03-29 | Microsoft Corporation | Address translation table synchronization |
US7779197B1 (en) | 2006-05-09 | 2010-08-17 | Integrated Device Technology, Inc. | Device and method for address matching with post matching limit check and nullification |
US7707383B2 (en) * | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
WO2008120325A1 (ja) * | 2007-03-28 | 2008-10-09 | Fujitsu Limited | スイッチ、情報処理装置およびアドレス変換方法 |
JP5116497B2 (ja) * | 2008-01-31 | 2013-01-09 | 株式会社日立製作所 | 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法 |
JP2009199420A (ja) * | 2008-02-22 | 2009-09-03 | Panasonic Corp | メモリ制御装置 |
CN102111459B (zh) | 2009-12-28 | 2013-11-06 | 中兴通讯股份有限公司 | Ip语音设备主备切换中的通话维护方法及装置 |
US8639976B2 (en) * | 2011-02-15 | 2014-01-28 | Coraid, Inc. | Power failure management in components of storage area network |
US8930715B2 (en) | 2011-05-26 | 2015-01-06 | International Business Machines Corporation | Address translation unit, device and method for remote direct memory access of a memory |
US8631212B2 (en) | 2011-09-25 | 2014-01-14 | Advanced Micro Devices, Inc. | Input/output memory management unit with protection mode for preventing memory access by I/O devices |
US9110830B2 (en) * | 2012-01-18 | 2015-08-18 | Qualcomm Incorporated | Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods |
US8837476B2 (en) * | 2012-09-07 | 2014-09-16 | International Business Machines Corporation | Overlay network capable of supporting storage area network (SAN) traffic |
CN103931144B (zh) * | 2013-07-08 | 2015-11-25 | 华为技术有限公司 | 一种在虚拟域中通信的方法、设备和系统 |
US9626300B2 (en) * | 2015-07-27 | 2017-04-18 | Google Inc. | Address caching in switches |
-
2015
- 2015-07-27 US US14/810,062 patent/US9626300B2/en active Active
-
2016
- 2016-06-24 CN CN202010138874.9A patent/CN111522755B/zh active Active
- 2016-06-24 WO PCT/US2016/039333 patent/WO2017019216A1/en active Application Filing
- 2016-06-24 EP EP22190860.1A patent/EP4131013A1/en active Pending
- 2016-06-24 CN CN201680028182.0A patent/CN107949833B/zh active Active
- 2016-06-24 EP EP21188542.1A patent/EP3923145A1/en active Pending
- 2016-06-24 EP EP16736686.3A patent/EP3329378B1/en active Active
- 2016-06-24 KR KR1020177031683A patent/KR101885185B1/ko active IP Right Grant
- 2016-06-24 JP JP2017556872A patent/JP6434168B2/ja active Active
- 2016-06-24 DE DE112016002006.6T patent/DE112016002006B4/de active Active
- 2016-06-24 DK DK16736686.3T patent/DK3329378T3/da active
- 2016-06-24 GB GB1717591.0A patent/GB2556458B/en active Active
- 2016-06-24 DE DE202016107024.4U patent/DE202016107024U1/de active Active
- 2016-06-24 KR KR1020187021861A patent/KR102015077B1/ko active IP Right Grant
-
2017
- 2017-03-08 US US15/453,179 patent/US9747241B2/en active Active
-
2018
- 2018-09-27 HK HK18112424.1A patent/HK1253044A1/zh unknown
- 2018-11-07 JP JP2018209836A patent/JP6913663B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP3923145A1 (en) | 2021-12-15 |
KR20170130609A (ko) | 2017-11-28 |
DE112016002006B4 (de) | 2023-10-12 |
JP2018526696A (ja) | 2018-09-13 |
DE112016002006T5 (de) | 2018-03-01 |
WO2017019216A1 (en) | 2017-02-02 |
US9626300B2 (en) | 2017-04-18 |
KR101885185B1 (ko) | 2018-08-03 |
KR20180088525A (ko) | 2018-08-03 |
CN107949833B (zh) | 2020-03-24 |
DK3329378T3 (da) | 2021-12-06 |
CN107949833A (zh) | 2018-04-20 |
HK1253044A1 (zh) | 2019-06-06 |
US20170031835A1 (en) | 2017-02-02 |
DE202016107024U1 (de) | 2017-01-30 |
EP3329378B1 (en) | 2021-09-08 |
US20170177532A1 (en) | 2017-06-22 |
JP6913663B2 (ja) | 2021-08-04 |
EP3329378A1 (en) | 2018-06-06 |
GB2556458A (en) | 2018-05-30 |
GB2556458B (en) | 2021-11-24 |
CN111522755A (zh) | 2020-08-11 |
EP4131013A1 (en) | 2023-02-08 |
US9747241B2 (en) | 2017-08-29 |
CN111522755B (zh) | 2022-05-13 |
JP2019071064A (ja) | 2019-05-09 |
GB201717591D0 (en) | 2017-12-13 |
KR102015077B1 (ko) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6434168B2 (ja) | スイッチへのアドレスキャッシュ | |
US10031857B2 (en) | Address translation services for direct accessing of local memory over a network fabric | |
JP5573829B2 (ja) | 情報処理装置およびメモリアクセス方法 | |
US10853277B2 (en) | Systems and methods for isolating input/output computing resources | |
JP5841255B2 (ja) | 仮想化入力/出力のためのプロセッサローカルコヒーレンシを有するコンピュータシステム | |
EP2472412B1 (en) | Explicitly regioned memory organization in a network element | |
US10810133B1 (en) | Address translation and address translation memory for storage class memory | |
US10310759B2 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
US10762137B1 (en) | Page table search engine | |
US20140244965A1 (en) | Method and system for simplified address translation support for static infiniband host channel adaptor structures | |
JP2014160502A (ja) | 情報処理装置およびメモリアクセス方法 | |
JP6890131B2 (ja) | ソリッドステート装置のための多重アドレスレジスタ用の装置および方法 | |
US10754789B1 (en) | Address translation for storage class memory in a system that includes virtual machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180612 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180612 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180612 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20180622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180626 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180926 |
|
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: 20181009 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181107 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6434168 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |