KR20170130609A - 스위치들 내의 어드레스 캐싱 - Google Patents
스위치들 내의 어드레스 캐싱 Download PDFInfo
- Publication number
- KR20170130609A KR20170130609A KR1020177031683A KR20177031683A KR20170130609A KR 20170130609 A KR20170130609 A KR 20170130609A KR 1020177031683 A KR1020177031683 A KR 1020177031683A KR 20177031683 A KR20177031683 A KR 20177031683A KR 20170130609 A KR20170130609 A KR 20170130609A
- Authority
- KR
- South Korea
- Prior art keywords
- switch
- memory
- address
- physical address
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
Abstract
Description
[0022] 도 2는 변환 요청에 응답하기 위한 프로세스의 흐름도이다.
[0023] 도 3은 물리적 어드레스가 메모리에 저장되는지를 결정하기 위한 프로세스의 흐름도이다.
[0024] 다양한 도면들에서의 동일한 참조 번호들 및 표기들은 동일한 엘리먼트들을 표시한다.
Claims (25)
- 시스템으로서,
버스에 연결된 하나 이상의 디바이스들 각각과 스위치 간에 상기 버스 상의 어떠한 컴포넌트들도 없이, 상기 디바이스들로부터 패킷들을 수신하고, 패킷들을 상기 디바이스들로 전달하는 스위치;
물리적 어드레스들로(physical addresses)의 가상 어드레스들(virtual addresses)의 맵핑을 저장하기 위해 상기 스위치에 통합된 메모리; 및
상기 스위치에 통합되고, 상기 스위치에 의해 실행 가능한 명령들을 저장하는 비일시적인 컴퓨터 판독 가능 저장 매체를 포함하고, 상기 명령들은 그러한 실행 시에 상기 스위치로 하여금 동작들을 수행하게 하고, 상기 동작들은,
상기 버스에 의해 상기 스위치에 연결된 디바이스에 대한 어드레스 변환 요청(address translation request)에 대한 응답을 상기 스위치에 의해 수신하는 동작 ― 상기 응답은 물리적 어드레스로의 가상 어드레스의 맵핑을 포함함 ― ; 및
상기 디바이스에 대한 상기 어드레스 변환 요청에 대한 응답을 수신하는 동작에 대한 응답으로, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 메모리에 저장하는 동작을 포함하는,
시스템. - 제 1 항에 있어서,
상기 시스템은,
상기 스위치에 통합되고 IOMMU(input/output memory management unit) 메모리를 포함하는 IOMMU를 포함하고,
상기 메모리는 상기 IOMMU 메모리를 포함하고,
상기 디바이스에 대한 상기 어드레스 변환 요청에 대한 응답을 상기 스위치에 의해 수신하는 동작은, 상기 디바이스에 대한 페이지 테이블(page table)의 부분을 상기 스위치에 의해 수신하는 동작을 포함하고,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 메모리에 저장하는 동작은 상기 페이지 테이블의 부분을 상기 IOMMU에 저장하는 동작을 포함하는,
시스템. - 제 1 항에 있어서,
상기 메모리는 TLB(translation lookaside buffer)를 포함하고,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 메모리에 저장하는 동작은, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 TLB에 저장하는 동작을 포함하는,
시스템. - 제 3 항에 있어서,
상기 시스템은 상기 스위치에 대한 미리 결정된 수의 포트들을 포함하고, 상기 포트들 각각은 특정 디바이스에 대응하고, 상기 특정 디바이스에 대해 상기 스위치는 단일 TLB를 포함하는,
시스템. - 제 3 항에 있어서,
상기 동작들은,
상기 디바이스에 대한 어드레스 변환 요청에 대한 응답을 수신하는 동작에 대한 응답으로, 상기 TLB가 빈(empty) 위치를 포함하지 않는다고 결정하는 동작;
상기 TLB 내의 위치로부터 엔트리를 제거하는 동작; 및
상기 가상 어드레스를 상기 물리적 어드레스로 맵핑하는 새로운 엔트리를 상기 TLB 내의 위치에 저장하는 동작을 포함하는,
시스템. - 제 3 항에 있어서,
상기 동작들은,
상기 디바이스가 TLB를 포함하고, 상기 디바이스가 가상 어드레스-물리적 어드레스 맵핑들을 상기 디바이스의 TLB에 현재 저장하고 있다는 것을 상기 디바이스에 대한 설정이 표시한다고 결정하는 동작;
상기 디바이스가 TLB를 포함하고, 상기 디바이스가 가상 어드레스-물리적 어드레스 맵핑들을 상기 디바이스의 TLB에 현재 저장하고 있다는 것을 상기 디바이스에 대한 설정이 표시한다고 결정하는 동작에 대한 응답으로, 상기 디바이스의 TLB로부터 엔트리를 제거하도록 상기 디바이스에 지시하는 메시지를 상기 디바이스로 전송하는 동작; 및
상기 디바이스가 TLB를 포함하고, 상기 디바이스가 가상 어드레스-물리적 어드레스 맵핑들을 상기 디바이스의 TLB에 현재 저장하고 있다는 것을 상기 디바이스에 대한 설정이 표시한다고 결정하는 동작에 대한 응답으로, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 디바이스에 제공하는 동작을 포함하는,
시스템. - 제 6 항에 있어서,
상기 동작들은,
상기 디바이스가 상기 디바이스의 TLB로부터 엔트리를 제거하였다는 확인(confirmation)을 상기 디바이스로부터 수신하는 동작을 포함하고, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 디바이스에 제공하는 동작은, 상기 디바이스가 상기 디바이스의 TLB로부터 엔트리를 제거하였다는 확인을 수신하는 동작에 대한 응답으로, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 상기 디바이스에 제공하는 동작을 포함하는,
시스템. - 제 1 항에 있어서,
상기 동작들은,
특정 물리적 어드레스를 포함하는 메모리 액세스 요청을 상기 디바이스로부터 수신하는 동작;
상기 특정 물리적 어드레스가 상기 메모리에 저장된다고 결정하는 동작; 및
상기 특정 물리적 어드레스가 상기 메모리에 저장된다고 결정하는 동작에 대한 응답으로, 서비싱을 위해 상기 메모리 액세스 요청을 다른 디바이스로 포워딩하는 동작을 포함하는,
시스템. - 제 8 항에 있어서,
상기 메모리는 상기 디바이스에 대해 특정하고, 상기 버스에 의해 상기 스위치에 연결된 다른 디바이스들에 대한 임의의 가상 어드레스-물리적 어드레스 맵핑들을 포함하지 않는,
시스템. - 제 8 항에 있어서,
상기 시스템은,
상기 스위치에 통합된 하나 이상의 부가적인 메모리를 포함하고, 상기 부가적인 메모리들 각각 및 상기 메모리는 상기 버스에 의해 상기 스위치에 연결된 특정 디바이스에 대해 특정하고, 상기 특정 물리적 어드레스가 상기 메모리에 저장된다고 결정하는 동작은,
상기 스위치 내의 특정 포트가 상기 메모리 액세스 요청을 수신하였다고 결정하는 동작;
상기 특정 포트를 사용하여 상기 디바이스에 대한 메모리를 선택하는 동작; 및
상기 특정 포트를 사용하여 상기 디바이스에 대한 메모리를 선택하는 동작에 대한 응답으로, 상기 특정 물리적 어드레스가 상기 메모리에 저장된다고 결정하는 동작을 포함하는,
시스템. - 제 8 항에 있어서,
상기 시스템은,
중앙 프로세싱 유닛; 및
캐시를 포함하고,
상기 디바이스에 대한 어드레스 변환 요청에 대한 응답을 수신하는 동작은 상기 캐시로부터 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 수신하는 동작을 포함하고, 그리고
서비싱을 위해 상기 메모리 액세스 요청을 다른 디바이스로 포워딩하는 동작은, 상기 메모리 액세스 요청을 상기 중앙 프로세싱 유닛으로 포워딩하는 동작을 포함하는,
시스템. - 제 11 항에 있어서,
상기 스위치를 제 2 버스를 통해 상기 중앙 프로세싱 유닛 및 상기 캐시에 연결하고, 상기 제 2 버스를 사용하여 상기 스위치 및 상기 중앙 프로세싱 유닛 및 상기 캐시로 그리고 이들로부터 응답들 및 요청들을 라우팅하는 상기 제 2 버스 상의 제어기를 포함하는,
시스템. - 제 12 항에 있어서,
상기 제어기는 루트 컴플렉스(root complex)를 포함하는,
시스템. - 제 11 항에 있어서,
상기 스위치를 포함하는 복수의 스위치들; 및
상기 복수의 스위치들 각각을 제 2 버스를 통해 상기 중앙 프로세싱 유닛 및 상기 캐시에 연결하고, 상기 제 2 버스를 사용하여 상기 복수의 스위치들 각각 및 상기 중앙 프로세싱 유닛 및 상기 캐시로 그리고 이들로부터 응답들 및 요청들을 라우팅하는 상기 제 2 버스 상의 제어기를 포함하는,
시스템. - 제 1 항에 있어서,
상기 시스템은,
마더보드; 및
상기 마더보드에 통합된 버스를 포함하고, 상기 마더보드에 대한 상기 스위치는 주변 디바이스들이 상기 마더보드에 연결되도록 허용하기 위한 요청들을 소스 디바이스로부터 목적지 디바이스로 라우팅하도록 구성되는,
시스템. - 제 1 항에 있어서,
상기 동작들은,
특정 물리적 어드레스를 포함하는 메모리 액세스 요청을 상기 디바이스로부터 수신하는 동작;
상기 디바이스가 상기 특정 물리적 어드레스에 의해 식별된 메모리 위치를 액세스하도록 허용되지 않는다고 결정하는 동작; 및
상기 디바이스가 상기 특정 물리적 어드레스에 의해 식별된 메모리 위치를 액세스하도록 허용되지 않는다고 결정하는 동작에 대한 응답으로, 상기 메모리 액세스 요청을 폐기하는 동작을 포함하는,
시스템. - 제 16 항에 있어서,
상기 동작들은,
상기 특정 물리적 어드레스가 상기 메모리에 저장되지 않는다고 결정하는 동작에 대한 응답으로 상기 디바이스를 재설정하는 동작을 포함하는,
시스템. - 제 1 항에 있어서,
상기 동작들은,
상기 가상 어드레스를 포함하는 어드레스 변환 요청을 상기 디바이스로부터 상기 스위치에 의해 수신하는 동작;
상기 가상 어드레스가 상기 메모리에 저장되지 않는다고 결정하는 동작; 및
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 요청하는 동작을 포함하고,
상기 디바이스에 대한 어드레스 변환 요청에 대한 응답을 상기 스위치에 의해 수신하는 동작은, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 요청하는 동작에 응답하여 상기 응답을 수신하는 동작을 포함하는,
시스템. - 제 18 항에 있어서,
상기 동작들은,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 사용하여 상기 가상 어드레스에 대한 대응하는 물리적 어드레스를 결정하는 동작; 및
상기 대응하는 물리적 어드레스를 포함하는 변환 요청에 대한 응답을 상기 디바이스에 제공하는 동작을 포함하는,
시스템. - 제 18 항에 있어서,
상기 동작들은,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 요청하는 동작과 동시에, 상기 메모리가 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 포함하는지를 결정하는 동작을 포함하는,
시스템. - 제 18 항에 있어서,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 요청하는 동작은, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 중앙 프로세싱 유닛으로부터 요청하는 동작을 포함하는,
시스템. - 제 18 항에 있어서,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 요청하는 동작은, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 메모리로부터 요청하는 동작을 포함하는,
시스템. - 제 18 항에 있어서,
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 요청하는 동작은, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 IOMMU(input/output memory management unit)로부터 요청하는 동작을 포함하는,
시스템. - 제 1 항에 있어서,
상기 시스템은 상기 스위치에 통합된 미리 결정된 수의 포트들을 포함하고,
상기 포트들 각각은 특정 디바이스에 대응하고, 상기 특정 디바이스에 대해 상기 메모리는 대응하는 물리적 어드레스로의 가상 어드레스의 맵핑을 저장하도록 구성되고, 상기 메모리의 크기는 상기 미리 결정된 수의 포트들에 대응하는,
시스템. - 컴퓨터-구현 방법으로서,
버스에 연결된 하나 이상의 디바이스들 각각과 스위치 간에 상기 버스 상의 어떠한 컴포넌트들도 없이, 상기 디바이스들로부터 패킷들을 수신하고, 패킷들을 상기 디바이스들로 전달하는 스위치에 의해, 상기 버스에 의해 상기 스위치에 연결된 디바이스에 대한 어드레스 변환 요청에 대한 응답을 수신하는 단계 ― 상기 응답은 물리적 어드레스로의 가상 어드레스의 맵핑을 포함함 ― ; 및
상기 물리적 어드레스로의 가상 어드레스의 맵핑을 저장하기 위해 상기 스위치에 통합된 메모리에, 상기 디바이스에 대한 상기 어드레스 변환 요청에 대한 응답을 수신하는 단계에 대한 응답으로, 상기 물리적 어드레스로의 가상 어드레스의 맵핑을 저장하는 단계를 포함하는,
컴퓨터-구현 방법.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/810,062 | 2015-07-27 | ||
| US14/810,062 US9626300B2 (en) | 2015-07-27 | 2015-07-27 | Address caching in switches |
| 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 |
|---|---|---|---|
| KR1020187021861A Division KR102015077B1 (ko) | 2015-07-27 | 2016-06-24 | 스위치들 내의 어드레스 캐싱 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR20170130609A true KR20170130609A (ko) | 2017-11-28 |
| KR101885185B1 KR101885185B1 (ko) | 2018-08-03 |
Family
ID=56373146
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020177031683A Active KR101885185B1 (ko) | 2015-07-27 | 2016-06-24 | 스위치들 내의 어드레스 캐싱 |
| KR1020187021861A Active KR102015077B1 (ko) | 2015-07-27 | 2016-06-24 | 스위치들 내의 어드레스 캐싱 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1020187021861A Active KR102015077B1 (ko) | 2015-07-27 | 2016-06-24 | 스위치들 내의 어드레스 캐싱 |
Country Status (10)
| Country | Link |
|---|---|
| US (2) | US9626300B2 (ko) |
| EP (3) | EP3923145B1 (ko) |
| JP (2) | JP6434168B2 (ko) |
| KR (2) | KR101885185B1 (ko) |
| CN (2) | CN107949833B (ko) |
| DE (2) | DE112016002006B4 (ko) |
| DK (3) | DK4131013T3 (ko) |
| FI (2) | FI3923145T3 (ko) |
| GB (1) | GB2556458B (ko) |
| WO (1) | WO2017019216A1 (ko) |
Families Citing this family (23)
| 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 |
| WO2018100363A1 (en) | 2016-11-29 | 2018-06-07 | Arm Limited | Memory address translation |
| 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 |
| US10929308B2 (en) | 2017-11-22 | 2021-02-23 | Arm Limited | Performing maintenance operations |
| US10831673B2 (en) | 2017-11-22 | 2020-11-10 | Arm Limited | Memory address translation |
| US10866904B2 (en) * | 2017-11-22 | 2020-12-15 | Arm Limited | Data storage for multiple data types |
| 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 |
| US12481612B2 (en) | 2018-03-02 | 2025-11-25 | Samsung Electronics Co., Ltd. | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
| US12505053B2 (en) * | 2018-03-02 | 2025-12-23 | Samsung Electronics Co., Ltd. | Method for supporting erasure code data protection with embedded PCIe switch inside FPGA+SSD |
| US10990554B2 (en) | 2018-03-02 | 2021-04-27 | Samsung Electronics Co., Ltd. | Mechanism to identify FPGA and SSD pairing in a multi-device environment |
| 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 | 许继电气股份有限公司 | 多主交换式高速互联背板总线及其控制方法、处理系统 |
| WO2023019537A1 (en) * | 2021-08-20 | 2023-02-23 | Intel Corporation | Apparatuses, methods, and systems for device translation lookaside buffer pre-translation instruction and extensions to input/output memory management unit protocols |
| CN114553797B (zh) * | 2022-02-25 | 2023-05-09 | 星宸科技股份有限公司 | 具有命令转发机制的多芯片系统及地址产生方法 |
| CN114817081A (zh) * | 2022-03-02 | 2022-07-29 | 阿里巴巴(中国)有限公司 | 内存访问方法、装置和输入输出内存管理单元 |
| GB202309776D0 (en) * | 2023-06-28 | 2023-08-09 | Prevayl Innovations Ltd | Communication system |
| CN119341984B (zh) * | 2024-12-20 | 2025-03-18 | 云合智网(上海)技术有限公司 | 一种跨设备流量处理方法、装置、设备及存储介质 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090327645A1 (en) * | 2007-03-28 | 2009-12-31 | Fujitsu Limited | Switch, information processing apparatus, and address translation method |
| US20130080726A1 (en) * | 2011-09-25 | 2013-03-28 | Andrew G. Kegel | Input/output memory management unit with protection mode for preventing memory access by i/o devices |
Family Cites Families (22)
| 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 |
| US7225287B2 (en) * | 2005-06-01 | 2007-05-29 | Microsoft Corporation | Scalable DMA remapping on a computer bus |
| 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 |
| US7506084B2 (en) * | 2006-10-17 | 2009-03-17 | International Business Machines Corporation | Method for communicating with an I/O adapter using cached address translations |
| US7707383B2 (en) * | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
| JP5116497B2 (ja) * | 2008-01-31 | 2013-01-09 | 株式会社日立製作所 | 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法 |
| JP2009199420A (ja) * | 2008-02-22 | 2009-09-03 | Panasonic Corp | メモリ制御装置 |
| US9535849B2 (en) * | 2009-07-24 | 2017-01-03 | Advanced Micro Devices, Inc. | IOMMU using two-level address translation for I/O and computation offload devices on a peripheral interconnect |
| 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 |
| 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 |
| JP6099458B2 (ja) * | 2013-03-29 | 2017-03-22 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 特定の仮想マシンに関連するトレース・データを得るためのコンピュータ実装方法、プログラム、トレーサ・ノード |
| WO2015003295A1 (zh) * | 2013-07-08 | 2015-01-15 | 华为技术有限公司 | 一种在虚拟域中通信的方法、设备和系统 |
| 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 EP EP21188542.1A patent/EP3923145B1/en active Active
- 2016-06-24 CN CN201680028182.0A patent/CN107949833B/zh active Active
- 2016-06-24 DK DK22190860.1T patent/DK4131013T3/da active
- 2016-06-24 DE DE112016002006.6T patent/DE112016002006B4/de active Active
- 2016-06-24 EP EP16736686.3A patent/EP3329378B1/en active Active
- 2016-06-24 FI FIEP21188542.1T patent/FI3923145T3/fi active
- 2016-06-24 FI FIEP22190860.1T patent/FI4131013T3/fi active
- 2016-06-24 GB GB1717591.0A patent/GB2556458B/en active Active
- 2016-06-24 JP JP2017556872A patent/JP6434168B2/ja active Active
- 2016-06-24 DE DE202016107024.4U patent/DE202016107024U1/de active Active
- 2016-06-24 WO PCT/US2016/039333 patent/WO2017019216A1/en not_active Ceased
- 2016-06-24 DK DK16736686.3T patent/DK3329378T3/da active
- 2016-06-24 CN CN202010138874.9A patent/CN111522755B/zh active Active
- 2016-06-24 KR KR1020177031683A patent/KR101885185B1/ko active Active
- 2016-06-24 EP EP22190860.1A patent/EP4131013B1/en active Active
- 2016-06-24 DK DK21188542.1T patent/DK3923145T3/da active
- 2016-06-24 KR KR1020187021861A patent/KR102015077B1/ko active Active
-
2017
- 2017-03-08 US US15/453,179 patent/US9747241B2/en active Active
-
2018
- 2018-11-07 JP JP2018209836A patent/JP6913663B2/ja active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20090327645A1 (en) * | 2007-03-28 | 2009-12-31 | Fujitsu Limited | Switch, information processing apparatus, and address translation method |
| US20130080726A1 (en) * | 2011-09-25 | 2013-03-28 | Andrew G. Kegel | Input/output memory management unit with protection mode for preventing memory access by i/o devices |
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101885185B1 (ko) | 스위치들 내의 어드레스 캐싱 | |
| US10853277B2 (en) | Systems and methods for isolating input/output computing resources | |
| CN106201646B (zh) | 用于安全虚拟机间共享存储器通信的设备和方法 | |
| US9336158B2 (en) | Method and system for simplified address translation support for static infiniband host channel adaptor structures | |
| US9424155B1 (en) | Use efficiency of platform memory resources through firmware managed I/O translation table paging | |
| US10762137B1 (en) | Page table search engine | |
| US10810133B1 (en) | Address translation and address translation memory for storage class memory | |
| US20130054896A1 (en) | System memory controller having a cache | |
| US10754789B1 (en) | Address translation for storage class memory in a system that includes virtual machines | |
| HK40088267B (en) | Address caching in switches | |
| HK40088267A (en) | Address caching in switches | |
| US9678887B2 (en) | Flexible I/O DMA address allocation in virtualized systems | |
| HK40035512A (en) | Address caching in switches | |
| HK40035512B (en) | Address caching in switches | |
| HK1253044B (zh) | 交换机中的地址缓存 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0105 | International application |
St.27 status event code: A-0-1-A10-A15-nap-PA0105 |
|
| A201 | Request for examination | ||
| A302 | Request for accelerated examination | ||
| E13-X000 | Pre-grant limitation requested |
St.27 status event code: A-2-3-E10-E13-lim-X000 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| PA0201 | Request for examination |
St.27 status event code: A-1-2-D10-D11-exm-PA0201 |
|
| PA0302 | Request for accelerated examination |
St.27 status event code: A-1-2-D10-D17-exm-PA0302 St.27 status event code: A-1-2-D10-D16-exm-PA0302 |
|
| PG1501 | Laying open of application |
St.27 status event code: A-1-1-Q10-Q12-nap-PG1501 |
|
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
St.27 status event code: A-1-2-D10-D21-exm-PE0902 |
|
| P11-X000 | Amendment of application requested |
St.27 status event code: A-2-2-P10-P11-nap-X000 |
|
| P13-X000 | Application amended |
St.27 status event code: A-2-2-P10-P13-nap-X000 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
St.27 status event code: A-1-2-D10-D22-exm-PE0701 |
|
| A107 | Divisional application of patent | ||
| PA0104 | Divisional application for international application |
St.27 status event code: A-0-1-A10-A18-div-PA0104 St.27 status event code: A-0-1-A10-A16-div-PA0104 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
St.27 status event code: A-2-4-F10-F11-exm-PR0701 |
|
| PR1002 | Payment of registration fee |
St.27 status event code: A-2-2-U10-U12-oth-PR1002 Fee payment year number: 1 |
|
| PG1601 | Publication of registration |
St.27 status event code: A-4-4-Q10-Q13-nap-PG1601 |
|
| FPAY | Annual fee payment |
Payment date: 20210715 Year of fee payment: 4 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 4 |
|
| FPAY | Annual fee payment |
Payment date: 20220714 Year of fee payment: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 5 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 6 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 7 |
|
| PR1001 | Payment of annual fee |
St.27 status event code: A-4-4-U10-U11-oth-PR1001 Fee payment year number: 8 |
|
| U11 | Full renewal or maintenance fee paid |
Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE) Year of fee payment: 8 |
|
| R17 | Change to representative recorded |
Free format text: ST27 STATUS EVENT CODE: A-5-5-R10-R17-OTH-X000 (AS PROVIDED BY THE NATIONAL OFFICE) |
|
| R17-X000 | Change to representative recorded |
St.27 status event code: A-5-5-R10-R17-oth-X000 |