KR20080063512A - 변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신 - Google Patents
변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신 Download PDFInfo
- Publication number
- KR20080063512A KR20080063512A KR1020087011891A KR20087011891A KR20080063512A KR 20080063512 A KR20080063512 A KR 20080063512A KR 1020087011891 A KR1020087011891 A KR 1020087011891A KR 20087011891 A KR20087011891 A KR 20087011891A KR 20080063512 A KR20080063512 A KR 20080063512A
- Authority
- KR
- South Korea
- Prior art keywords
- tlb
- level tlb
- address
- memory
- address translation
- Prior art date
Links
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
-
- 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
-
- 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/681—Multi-level TLB, e.g. microTLB and main 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/684—TLB miss handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
데이터를 저장하도록 구성되는 메모리, 하위 레벨 TLB, 상위 레벨 TLB, 및 TLB 제어기를 포함하는 장치가 제시된다. 하위 레벨 TLB 및 상위 레벨 TLB는 복수의 엔트리들을 저장하도록 구성되며, 상기 엔트리들 각각은 가상 어드레스가 대응하는 물리적 어드레스로 변환되게 하여 주는 어드레스 변환 정보를 포함한다. TLB 제어기는 메모리 내의 페이지 테이블로부터 요구되는 가상 어드레스에 대한 어드레스 변환 정보를 검색하고, 만일 상기 요구되는 가상 어드레스가 하위 레벨 TLB로부터 그리고 상위 레벨 TLB로부터 TLB 미스를 발생시킨다면, 단일 TLB 기록 명령을 이용하여, TLB 제어기는 페이지 테이블로부터 검색되는, 어드레스 변환 정보를, 상위 레벨 TLB와 함께 하위 레벨 TLB에 기록함으로써 하위 레벨 TLB 및 상위 레벨 TLB 모두를 갱신한다.
Description
본 발명은 변환 색인 버퍼(translation lookaside buffer, TLB)들에 관한 것이다.
페이징(page)된 가상(virtual) 메모리를 지원하는 처리기에서, 데이터는 상기 처리기의 가상 어드레스 공간을 점유하는 가상 어드레스들(또한 "유효(effective)" 또는 "선형(linear)" 어드레스들로도 지칭됨)을 이용하여 특정될 수 있다. 가상 어드레스 공간은 일반적으로 시스템 내의 실제 물리적 메모리의 크기보다 더 클 수 있다. 처리기 내의 운영 체제(operating system)는 페이지(page)들로 불리는 고정 크기 블록들 내의 물리적(physical) 메모리를 관리할 수 있다.
가상 페이지 어드레스들을 물리적 페이지 어드레스들로 변환하기 위해, 처리기는 시스템 메모리에 저장된 페이지 테이블(page table)들을 탐색할 수 있으며, 이는 필요한 어드레스 변환 정보를 포함할 수 있다. 이러한 탐색들(또는 "페이지 테이블 워크(page table walk)들")이 일반적으로 메모리 액세스들을 수반하기 때문에, 상기 페이지 테이블 데이터가 데이터 캐시에 존재하지 않는다면, 이러한 탐색들은 시간-소모적일 수 있다.
그러므로 처리기는 하나 이상의 변환 색인 버퍼(translation lookaside buffer, TLB)들을 이용하여 어드레스 변환을 수행한다. TLB는 어드레스 변환 캐시, 즉 가상 어드레스들로부터 물리적 어드레스들로의 최근의 매핑들을 저장하는 작은 캐시이다. 처리기는 페이지 테이블 탐색 및 어드레스 변환을 수행한 후, TLB 내의 물리적 어드레스를 캐싱(cache)할 수 있다. TLB의 컨텐트들은, 관련된 물리적 페이지 어드레스와 함께, 일반적으로 흔히 참조되는 가상 페이지 어드레스들을 포함할 수 있다. 명령 어드레스들에 대해("명령(instruction)들 TLB" 또는 "I-TLB"로 지칭됨) 그리고 데이터 어드레스들에 대해("데이터-TLB" 또는 "D-TLB"로 지칭됨) 별도의 TLB들이 있을 수 있다.
TLB 액세스들의 효율성을 증가시키기 위해, 메모리 캐시의 다중 레벨들에 대해서와 유사하게, TLB들의 다중 레벨들이 이용 및 구현될 수 있다. 하위 레벨(lower level) TLB는, 하나 이상의 상위 레벨(upper level) TLB들에 비교하여, 일반적으로 더 작고 더 빠를 수 있다. TLB 미스(miss)가 하위 레벨 TLB 및 상위 레벨 TLB 모두에서 발생할 때, 페이지 테이블 워크의 결과로서, 상위 레벨 TLB가 일반적으로 갱신될 수 있다.
일반적으로, 하위 레벨 TLB는 물리적 메모리 내의 페이지 테이블로부터 검색된 어드레스 변환 정보로써 갱신되지 않을 수 있다. 그리고 나서 하위 레벨 TLB에 대한 이후의 참조(reference)가 TLB 미스(miss)를 초래하여, 요구되는 어드레스 변환 정보에 대한 상위레벨 TLB의 탐색을 요구한다. 그러나, 하위 레벨 TLB 및 그 결과적인 상위 레벨 TLB의 탐색에 관련되는, 불필요한 지연(latency)이 있을 수 있 다.
컴퓨터로-읽을 수 있는 매체는 처리기에 대한 컴퓨터로-읽을 수 있는 명령들을 저장한다. 상기 명령들은, 처리기에 의해 판독 및 구현될 때, 상기 처리기로 하여금 물리적 메모리에 액세스하여 하위 레벨 TLB 및 상위 레벨 TLB 모두에 대한 TLB 미스 신호를 발생시키는 가상 어드레스에 대한 어드레스 변환 정보를 검색하게 한다. 또한 상기 명령들은 처리기로 하여금, 상기 메모리로부터 검색된 어드레스 변환 정보를 하위 레벨 TLB 및 상위 레벨 TLB 모두에 기록함으로써, 단일 TLB 기록 명령을 이용하여 하위 레벨 TLB 및 상위 레벨 TLB 모두를 갱신하게 한다.
TLB의 둘 이상의 레벨을 갱신하는 방법은 가상 어드레스에 대한 어드레스 변환 정보를 검색하기 위해 메모리를 액세스하는 단계를 포함한다. 본 방법은, 상기 메모리로부터 검색된 어드레스 변환 정보를 하위 레벨 TLB 및 상위 레벨 TLB 모두에 기록함으로써, 단일 TLB 기록 명령을 이용하여 하위 레벨 TLB 및 상위 레벨 TLB 모두를 갱신하는 단계를 포함한다.
메모리; 하위 레벨 TLB 및 상위 레벨 TLB; 및 TLB 제어기를 포함하는 장치가 제시된다. 하위 레벨 TLB 및 상위 레벨 TLB는 복수의 엔트리(entry)들을 저장하도록 구성되며, 상기 엔트리들 각각은 가상 어드레스가 대응하는 물리적 어드레스로 변환되게 하여주는 어드레스 변환 정보를 포함한다. TLB 제어기는, 요구되는 가상 어드레스가 하위 레벨 TLB로부터 그리고 상위 레벨 TLB로부터 TLB 미스를 발생시킨다면, 상기 요구되는 가상 어드레스에 대한 어드레스 변환 정보를 상기 메모리로부터 검색하도록 구성된다. 추가로 상기 TLB 제어기는, 상기 메모리로부터 검색되는 어드레스 변환 정보를 단일 TLB 기록 명령을 이용하여 하위 레벨 TLB 및 상위 레벨 TLB 모두에 기록함으로써, 단일 TLB 기록 명령을 이용하여 하위 레벨 TLB 및 상위 레벨 TLB 모두를 갱신하도록 구성된다.
도 1은 가상 메모리 시스템에서 동작하는 TLB를 개념적으로 도시한다.
도 2는 상위 레벨 TLB와 하위 레벨 TLB, 및 단일 TLB 기록 동작의 결과로서 TLB의 두 레벨들 모두를 갱신하도록 구성되는 TLB 제어기를 포함하는 어드레스 변환 시스템의 일례의 개념도이다.
도 3은 TLB의 둘 이상의 레벨을 갱신하는 방법을 도시하는 개념 순서도이다.
첨부된 도면들과 함께 이하에 제시되는 실시예는 TLB의 다중 레벨들을 갱신하도록 구성되는 시스템 및 방법의 다양한 실시예들을 기술하고자 하는 것이지만, 가능한 유일한 실시예들을 나타내고자 하는 것은 아니다. 본 실시예는, 기재사항들의 완전한 이해를 달성하기 위해, 특정한 세부사항들을 포함한다. 그러나, 당해 기술분야에서 통상의 지식을 가진 자는, 이러한 특정한 세부사항들이 기재된 실시예들의 일부에 포함되지 않을 수 있음을 분명히 알 것이다. 일부 예시들에서, 공지된 구조들과 구성요소들이, 설명되는 개념들을 더 명확하게 도시하기 위해, 블록도 형태로 도시된다.
도 1은 물리적 메모리(30)에 포함되는 페이지 테이블(20)과 함께, 변환 색인 버퍼(TLB)(10)의 가상 메모리 시스템에서의 동작을 개념적으로 나타낸다. 당해 기술 분야에 공지된 바와 같이, 가상 메모리 시스템들에서 매핑들(또는 변환들)은 일반적으로 가상(또는 "선형") 어드레스 공간(address space)과 물리적 어드레스 공간 사이에서 수행될 수 있다. 가상 어드레스 공간은 일반적으로 처리기에 의해 생성되는 모든 가상 어드레스들(22)의 세트를 지칭한다. 물리적 어드레스 공간은 일반적으로 물리적 메모리(30)에 상주하는 데이터에 대한 모든 물리적 어드레스들, 즉 물리적 메모리(30) 내의 특정 위치에 기록 또는 특정 위치로부터 판독할 메모리 버스 상에 제공될 수 있는 어드레스들의 세트를 지칭한다.
페이징된 가상 메모리 시스템에서, 데이터는 흔히 페이지들(31)로 지칭되는 고정-길이 유닛들로 구성된다고 가정할 수 있다. 상기 가상 어드레스 공간 및 물리적 어드레스 공간은 연속적인 페이지 어드레스들의 블록들로 분할될 수 있으며, 각각의 가상 페이지 어드레스는 가상 페이지 번호(virtual page number)를 제공하며, 각각의 대응하는 물리적 페이지 어드레스는 데이터의 특정 페이지(31)의 메모리(30) 내의 위치를 지시한다. 전형적인 페이지 크기(size)는, 예를 들어, 약 4 킬로바이트(kilobyte)일 수 있지만, 다른 가상 페이징된 메모리 시스템들은 다른 페이지 크기들을 이용할 수 있다. 물리적 메모리(30) 내의 페이지 테이블(20)은 상기 가상 메모리 시스템의 모든 가상 페이지 어드레스들에 대응하는 물리적 페이지 어드레스들을 포함할 수 있다, 즉 상기 가상 어드레스 공간 내의 모든 가상 페이지 어드레스들에 대한, 가상 페이지 어드레스들과 대응하는 물리적 페이지 어드레스들 간의 매핑들을 포함할 수 있다. 일반적으로, 페이지 테이블(20)은 복수의 페이지 테이블 엔트리(page table entry, PTE)들(21)을 포함할 수 있으며, 각각의 PTE(21)는 특정한 가상 어드레스에 대응하는 상기 물리적 메모리(30) 내의 페이지(31)를 지시(point) 한다.
물리적 메모리(30) 내의 페이지 테이블(20)에 저장된 PTE들(21)에 액세스하는 것은 메모리 버스 트랜잭션(transaction)들을 요구할 수 있으며, 이는 처리기 사이클 시간 및 전력 소모의 측면에서 손실이 있을 수 있다. 메모리 버스 트랜잭션들의 횟수는, 물리적 메모리(30) 보다는, TLB(10)를 액세스함으로써 감소될 수 있다. 전술한 바와 같이, TLB(10)는 가상 및 물리적 어드레스들 간의 최근의 매핑들을 저장하는 어드레스 변환 캐시이다. TLB(10)는 일반적으로 페이지 테이블(20)에 저장되는 가상-대-물리(virtual-to-physical) 어드레스 매핑들의 서브셋을 포함한다. TLB(10)는 일반적으로 복수의 TLB 엔트리들(12)을 포함할 수 있다. 각각의 TLB 엔트리(12)는 태그(tag) 필드(14) 및 데이터 필드(16)를 가질 수 있다. 태그 필드(14)는 상기 가상 페이지 어드레스들의 고차(high order) 비트들의 일부를 태그로서 포함할 수 있다. 데이터 필드(16)는 태그된(tagged) 가상 페이지 어드레스에 대응하는 물리적 페이지 어드레스를 지시할 수 있다.
프로그램의 실행 동안, 명령(instruction)이 대응하는 물리적 어드레스로 변환될 필요가 있는 가상 어드레스(22)를 가질 때, TLB(10)는 TLB(10)에 저장된 TLB 엔트리들(12) 중에서 가상 어드레스(22)를 룩 업(look up) 하기 위해 액세스될 수 있다. 상기 가상 어드레스(22)는 일반적으로 가상 페이지 번호(virtual page number)를 포함하며, 이는 TLB(10)에서 대응하는 물리적 페이지 어드레스를 룩 업 하는데 이용될 수 있다.
TLB(10)가, TLB 엔트리들 중에서, 상기 TLB에 제시된(present) 가상 어드레스(22)에 포함되는 가상 페이지 번호에 대응하는 특정한 물리적 페이지 어드레스를 포함한다면, TLB "히트(hit)"가 발생하며, 상기 물리적 페이지 어드레스는 TLB(10)로부터 검색(retrieve)될 수 있다. TLB(10)가 TLB(10)에 제시되는 가상 어드레스(22) 내의 가상 페이지 번호에 대응하는 특정한 물리적 페이지 어드레스를 포함하지 않는다면, TLB "미스(miss)"가 발생하며, 물리적 메모리(30) 내의 페이지 테이블(20)의 룩업(lookup)이 수행되어야 할 수 있다. 물리적 페이지 어드레스가 페이지 테이블(20)로부터 결정되면, 가상 페이지 어드레스에 대응하는 물리적 페이지 어드레스는 TLB(10)에 로드(load)될 수 있으며, TLB(10)는 상기 가상 페이지 어드레스(22)로써 다시 한 번 액세스될 수 있다. 요구되는 물리적 페이지 어드레스가 TLB(10)에 로드되었기 때문에, TLB 액세스는 이번에는 TLB "히트(hit)"를 가져오며, 근래에 로드된 물리적 페이지 어드레스가 TLB(10)의 출력에서 발생될 수 있다.
도 2는 어드레스 변환 시스템(100)의 일례의 기능도이며, 이는 단일 TLB 기록(write) 동작의 결과로서 TLB의 둘 이상의 레벨을 갱신하도록 구성된다. 총괄적으로, 상기 어드레스 변환 시스템(100)은 하위 레벨 TLB(110); 상위 레벨 TLB(115); 및 상기 하위 레벨 TLB(110)와 상위 레벨 TLB(115) 모두의 동작을 제어하는 TLB 제어기(140)를 포함할 수 있다. 상기 어드레스 변환 시스템(100)은 물리적 메모리(130)에 접속될 수 있으며, 이는 페이지 테이블(120)을 포함할 수 있다. TLB 제어기(140)는 처리기 내의 CPU(central processing unit)의 일부일 수 있다. 대안적으로, TLB 제어기(140)는 처리기의 코어 내에, 및/또는 처리기의 CPU 근처에 위치할 수 있다. TLB 제어기(140)는 TLB의 두 레벨들 모두에 대한 액세스들을 제어하는 TLB 관리 소프트웨어를 포함할 수 있다.
메모리 캐시들에서의 예시에 흔히 이용되는 캐시의 다중 레벨들과 유사하게, 어드레스 변환 동작들의 효율성은 상위 레벨 TLB와 함께 하위 레벨 TLB(110)를 이용하여 증가될 수 있다. 하위 레벨 TLB(110)는 일반적으로 상위 레벨 TLB(115)보다 작을 수 있으며, 더 적은 TLB 엔트리들을 포함할 수 있어서, 빈번하게 이용되는 어드레스 데이터에 대한 짧은 액세스 시간을 제공한다. 간소화를 위해 단지 단일한 상위 레벨 TLB(115)가 도 2에 도시될지라도, 복수의 상위 레벨 TLB들이 어드레스 변환 시스템(100)에 포함될 수 있음에 유의하여야 하며, TLB의 각각의 증가된 레벨은 일반적으로 TLB의 이전 레벨보다 더 크고, 점진적으로 증가하는 수의 TLB 엔트리들을 갖는다.
TLB 제어기(130) 내의 TLB 관리(managing) 소프트웨어는 하위 레벨 TLB(110)로 하여금 초기에 액세스 및 탐색되어, 참조 번호 111로써 라벨링된 화살표에 의해 도 2에서 지시되는 바와 같이, 요구되는 가상 어드레스에 대한 어드레스 변환 정보를 탐색하게 할 수 있다. TLB 히트가 하위 레벨 TLB(110)에서 발생하면, TLB 제어기(130) 내의 소프트웨어는, 참조 번호 112로써 라벨링된 화살표가 지시하는 바와 같이, 상기 탐색 결과가 검색(retrieve)되게 할 수 있다. TLB 미스가 하위 레벨 TLB(110)에서 발생한다면, 상기 소프트웨어는 상위 레벨 TLB(115)의 탐색을 실행할 수 있다. 상위 레벨 TLB(115)의 탐색은, 참조 번호 113으로 라벨링된 화살표에 의 해 도 2에서 지시된다. 상위 레벨 TLB(115)는 일반적으로, 하위 레벨 TLB(110)에 비하여, 더욱 많은 TLB 엔트리들을 포함할 수 있다.
상위 레벨 TLB(115)의 탐색이 TLB 히트의 결과를 가지면, 참조 번호 116으로써 라벨링된 화살표에 의해 도 2에 표시된 바와 같이, 상기 탐색의 결과가 검색되어 하위 레벨 TLB에 로드될 수 있다. 그러나, 상기 상위 레벨 TLB(115)의 탐색(113)이 여전히 미스(miss)의 결과를 가져올 수 있으며, 이 경우 TLB 제어기(140) 내의 소프트웨어는, 요구되는 물리적 페이지 어드레스 정보를 검색하기 위해, 상기 물리적 메모리(130) 내의 페이지 테이블(120)의 탐색을 실행할 수 있다. 페이지 테이블(120)의 탐색은 참조 번호 117로 라벨링된 화살표에 의해 도 2에 표시된다.
상기 요구되는 페이지가 상기 물리적 메모리(130)에 존재하지 않는다면, 적절한 어드레스 변환 정보가 페이지 테이블(120)로부터 상위 레벨 TLB(115)로 로드될 수 있다. 이는 상기 요구되는 어드레스 변환 정보(즉, 가상 어드레스와 대응하는 물리적 어드레스 간의 매핑)가, 참조 번호 121로 라벨링된 화살표로써 도 2에서 지시되는 바와 같이, 상위 레벨 TLB(115)에 기록될 수 있음을 의미한다. 요구되는 페이지가 메모리(130)에 존재하지 않는다면, 페이지 결함(fault)이 일어날 수 있으며, 운영 체제는 예외(exception)를 통지받을 수 있다.
상위 레벨 TLB(115)가 갱신되면, TLB 관리 소프트웨어는 TLB 제어기(140)로 하여금 TLB 참조(reference) 프로세스를 반복하게 할 수 있다. 초기에 양 TLB들(110 및 115) 모두에서 미스를 생성한 가상 어드레스를 갖는 명령은 재-인출(re- fetch)될 수 있으며, TLB 참조 프로세스는, 하위 레벨 TLB(110)로써 시작하여, 전부 다시 수행될 수 있다.
하위 레벨 TLB(110)가 갱신되지 않고, 단지 상위 레벨 TLB(120)만이 페이지 테이블(120)로부터 검색된 어드레스 변환 정보로써 갱신된다면, 이후의 TLB 참조 프로세스에서, TLB 미스가 하위 TLB(110)에서 발생할 것이다. 결과적으로, 상위 레벨 TLB(115)의 탐색이, 요구되는 어드레스 변환 정보를 검색하기 위해 필요하게 된다. 바람직하지 않은 지연(latency)이 하위 레벨 TLB(110)에서의 미스와, 그리고 결과적인 상위 레벨 TLB(115)의 탐색에 관련될 것이다.
어드레스 변환 시스템(100)의 제시된 실시예에서, TLB 제어기(140)는 TLB 제어기(140)로 하여금 페이지 테이블(120)로부터 검색되었던 어드레스 변환 정보를 이용하여 하위 레벨 TLB(110) 및 상위 레벨 TLB(115) 모두를 갱신하게 하는 소프트웨어를 포함한다. 특히, TLB 제어기(140) 내의 소프트웨어는, 페이지 테이블(120)로 부터 검색된, 상기 어드레스 변환 정보가, 단일 TLB 기록 명령의 결과로서, 두 레벨들의 TLB 모두에 기록되게 한다. 도 2에서, 하위 레벨 TLB(110)의 갱신이 참조 번호(119)로 라벨링된 화살표로써 지시된다. 도시된 실시예에서, TLB 제어기(140)는, 상위 레벨 TLB(115)의 갱신이 발생할 때마다, 하위 레벨 TLB(110)의 갱신을 허용하도록 구성된다.
상위 레벨 TLB(115)와 더불어 하위 레벨 TLB(110)의 갱신의 결과로, 제 1 레벨 TLB(110)에 대한 액세스가 제 2 시간을 통해(around) 시도될 때, 즉 가상 어드레스(TLB들의 초기 액세스들 동안 TLB의 두 레벨들 모두에서 불명(missing)했던)를 포함하는 명령이 재-인출된 후에, TLB 미스 대신, 이제 TLB 히트가 생길 수 있다. 이 방식으로, 상위 레벨 TLB(115)의 다른 탐색을 수행할 필요성이 방지될 수 있다. 또한, 제 2(반복된) TLB 참조 프로세스 동안의 하위 레벨 TLB(110)에서의 미스에 관련된, 그리고 결과적인 상위 레벨 TLB(120)의 탐색에 관련된 지연이 제거될 수 있다.
도 2에 도시된 바와 같이, TLB 제어기(140)는 구성(configuration) 비트(145)를 갖는 제어기 레지스터(143)를 포함할 수 있다. 상기 구성 비트(145)는 TLB 기록 동작(참조 번호 121로써 표시되는)이 수행되어야 할 것인지 아닌지를 제어할 수 있다. 또한 상기 구성 비트(145)는 TLB의 어느 레벨들에서 상기 단일 TLB 기록 동작이 수행되어야 할 것인지를 선택할 수 있어서, 페이지 테이블로부터 검색된 어드레스 변환 정보로써 TLB의 선택된 레벨들을 갱신할 수 있다.
TLB 제어기(140)의 다른 실시예(미도시)로, 검색된 어드레스 변환 정보가 기록되는 TLB의 레벨들의 선택은 페이지 테이블로부터 기록되는 값에 의해 제어될 수 있다. 달리 말하면, 페이지 테이블로부터 검색되는 값은, 요구되는 어드레스 변환 정보에 추가로, 상기 검색된 어드레스 변환 정보에 대한 TLB 기록 동작이 수행될 TLB의 레벨들의 선택에 관련되는 정보를 포함할 수 있다.
TLB 제어기(140)는 컴퓨터로-읽을 수 있는 명령들을 저장한 컴퓨터로-읽을 수 있는 매체를 포함할 수 있다. 이러한 컴퓨터로-읽을 수 있는 명령들은, 처리기에 의해 판독 및 실행될 때, 상기 처리기로 하여금 하위 레벨 TLB(110) 및 상위 레벨 TLB(115) 모두로부터 TLB 미스를 생성한 가상 어드레스에 대한 어드레스 변환 정보를 검색하기 위해 물리적 메모리(130) 내의 페이지 테이블(120)에 액세스하게 할 수 있다. 상기 컴퓨터로-읽을 수 있는 명령들은 처리기로 하여금 하위 레벨 TLB(110) 및 상위 레벨 TLB(115) 모두에 상기 페이지 테이블(120)로부터 검색되었던 어드레스 변환 정보를 기록하게 하여, 단일 TLB 기록 명령에 응답하여, TLB의 두 레벨들 모두를 갱신할 수 있다.
TLB 제어기(140)는 구성 비트(145)를 갖는 제어 레지스터(143)를 포함할 수 있다. 상기 컴퓨터로-읽을 수 있는 매체는 추가적인 컴퓨터로-읽을 수 있는 명령들을 저장할 수 있으며, 이는, 처리기에 의해 판독(read) 및 구현될 때, 상기 구성 비트(145)로 하여금 상기 검색된 어드레스 변환 정보를 하위 레벨 TLB 및 상위 레벨 TLB에 기록하는 TLB 기록 동작이 일어나야 할 것인지 아닌지를 결정하게 할 수 있다.
상기 컴퓨터로-읽을 수 있는 매체는 추가적인 컴퓨터로-읽을 수 있는 명령들을 포함할 수 있으며, 이는, 처리기에 의해 판독 및 구현될 때, 상기 구성 비트(145)로 하여금, 상기 처리기 내의 복수의 TLB 레벨들로부터, 단일 TLB 기록 명령의 결과로서 갱신되어야 할 TLB의 둘 이상의 레벨들을 선택하게 할 수 있다. 달리 말하면, 이러한 추가적인 컴퓨터로-읽을 수 있는 명령들은 상기 구성 비트로 하여금 페이지 테이블로부터 검색된 어드레스 변환 정보가, 단일 TLB 기록 명령의 결과로서, 기록되어야 하는 TLB의 그러한 레벨들을 선택하게 할 수 있다.
상기 컴퓨터로-읽을 수 있는 매체는 추가적인 컴퓨터로-읽을 수 있는 명령들을 저장할 수 있으며, 이는, 처리기에 의해 판독 및 구현될 때, 상기 처리기로 하 여금, 상기 페이지 테이블로부터 검색된 어드레스 변환 정보로부터, 단일 TLB 기록 명령의 결과로서, 갱신되어야 할 TLB의 둘 이상의 레벨들의 선택에 관련되는 추가적인 정보를 판독하게 할 수 있다. 달리 말하면, 이러한 추가적인 컴퓨터로-읽을 수 있는 명령들은, 처리기에 의해 판독 및 구현될 때, 상기 처리기로 하여금, 상기 검색된 어드레스 변환 정보 자체로부터, 상기 검색된 어드레스 변환 정보가 기록되어야 하는 TLB 레벨들의 선택을 판독하게 할 수 있다.
상기 컴퓨터로-읽을 수 있는 매체는 추가적인 컴퓨터로-읽을 수 있는 명령들을 저장할 수 있으며, 이는, 처리기에 의해 판독 및 구현될 때, 상기 처리기로 하여금 요구되는 가상 어드레스에 대한 어드레스 변환 정보를 탐색하기 위해 초기에 하위 레벨 TLB(110)를 액세스하게 하고, 그리고 요구되는 가상 어드레스에 대한 어드레스 변환 정보가 상기 하위 레벨 TLB(110)로부터 불명(missing)하다면, 즉 상기 요구되는 가상 어드레스가 하위 레벨 TLB(110)에 제시(present)될 때 TLB 미스를 발생시킨다면, 상위 레벨 TLB(115)를 액세스하고 탐색하게 할 수 있다. 상기 추가적인 컴퓨터로-읽을 수 있는 명령들은 추가로, 상기 어드레스 변환 정보가 상기 상위 레벨 TLB(115)로부터 불명하다면, 즉 상기 요구되는 가상 어드레스가 상위 레벨 TLB(115)에 제시될 때 TLB 미스를 발생시킨다면, 상기 처리기로 하여금 상기 요구되는 가상 어드레스에 대한 어드레스 변환 정보를 검색하기 위해 물리적 메모리(130) 내의 페이지 테이블(120)을 액세스하게 할 수 있다.
도 2에 도시된 어드레스 변환 시스템(100)의 실시예가 단지 TLB의 두 레벨들만을 도시한 반면, 어드레스 변환 시스템들의 다른 실시예들(미도시)은 셋 이상의 TLB의 레벨들을 포함할 수 있다. 이러한 어드레스 변환 시스템들은 TLB의 복수의 레벨들을 포함할 수 있으며, 각 레벨의 TLB는 가상 어드레스들에 대한 어드레스 변환 정보를 저장할 수 있는 TLB 엔트리들을 포함한다. 이러한 어드레스 변환 시스템들 내의 TLB 제어기는, 최저 레벨의 TLB로부터 시작하여, 최고 레벨의 TLB에 까지 점진적으로, 차례로 TLB의 다수의 레벨들 각각을 액세스하도록 구성될 수 있다. 상기 TLB 제어기는, 요구되는 가상 어드레스에 대한 어드레스 변환 정보가 복수의 레벨들의 TLB 모두에서 불명하다면, 물리적 메모리 내의 페이지 테이블을 액세스하고, 그리고 상기 물리적 메모리 내의 페이지 테이블로부터 요구되는 가상 어드레스에 대한 어드레스 변환 정보를 검색하도록 구성될 수 있다. TLB 제어기는 추가로 물리적 메모리 내의 페이지 테이블로부터 검색된 어드레스 변환 정보로써 복수의 레벨들의 TLB 모두를 갱신하도록 구성될 수 있다.
도 3은 둘 이상의 레벨의 TLB를 갱신하는 방법(300)의 순서도이다. 본 방법(300)은 단계(302)에서 시작한다. 단계(304)에서, 명령이 인출(fetch)되어 상기 명령의 실행이 시작될 수 있다. 단계(306)에서, 가상 어드레스가 상기 인출된 명령에 대해 발생될 수 있다. 단계(308)에서, TLB 제어기는 하위 레벨 TLB를 액세스하여, 단계(306)에서 발생된 가상 어드레스에 대한 어드레스 변환 정보를 하위 레벨 TLB에서 탐색할 수 있다. 상기 어드레스 변호나 정보가 하위 레벨 TLB에 존재하지 않는다면, 단계(309)에서, TLB 제어기는 상기 어드레스 변환 정보를 하위 레벨 TLB로부터 검색할 수 있다. 요구되는 어드레스 변환 정보가 하위 레벨 TLB에 존재하지 않는다면, TLB 미스가 발생할 수 있다. TLB 제어기는 하위 레벨 TLB로부 터 TLB 미스의 지시(indication)를 수신, 즉 "TLB 미스" 신호를 수신할 수 있다. 그리고 나서 TLB 제어기는 단계(310)에서 상위 레벨 TLB를 체크하도록 진행하여, 요구되는 엔트리가 상위 레벨 TLB에 존재하는지를 결정할 수 있다.
상기 요구되는 어드레스 변환 정보가 상위 레벨 TLB에 존재한다면, 단계(311)에서, TLB 제어기는 상위 레벨 TLB로부터 어드레스 변환 정보를 검색할 수 있다. 요구되는 어드레스 변환 정보가 상위 레벨 TLB에 존재하지 않는다면, TLB 미스가 상위 레벨 TLB에서 발생할 수 있다. TLB 제어기는 상위 레벨 TLB로부터 TLB 미스의 지시를 수신, 즉 상위 레벨 TLB로부터 "TLB 미스" 신호를 수신할 수 있다. 그리고 나서 TLB 제어기는, 단계(312)에서, 물리적 메모리를 액세스하여 요구되는 엔트리에 대한 페이지 테이블을 탐색할 수 있다. 요구되는 어드레스 변환 정보가 상기 페이지 테이블에서 발견된다면, 단계(314)에서, TLB 제어기는 상기 페이지 테이블로부터 상기 정보를 검색할 수 있다. 요구되는 어드레스 변환 정보가 상기 페이지 테이블에서 발견되지 않는다면, 단계(313)에서, TLB 제어기는 페이지 결함(fault)이 발생하게 할 수 있다.
TLB 제어기가 단계(314)에서 상기 페이지 테이블로부터 요구되는 엔트리를 검색한 후에, TLB 제어기는, 단일 TLB 기록 명령을 실행함으로써, 단계(316)에서 하위 레벨 TLB 및 상위 레벨 TLB 모두에 상기 어드레스 변환 정보(상기 페이지 테이블로부터 검색된)를 기록할 수 있다. 달리 말하면, TLB 제어기는 단일 TLB 기록 명령을 실행함으로써 두 레벨들의 TLB 모두를 갱신할 수 있다. 그리고 나서 본 TLB 참조 프로세스는, 상기 명령이 재-인출될 수 있는, 단계(318)로부터 시작하여, 다시 모두 수행될 수 있다. 단계(320)에서, 하위 레벨 TLB는 한 번 더 액세스될 수 있다. 이번에는, 상기 하위 레벨 TLB가 이미 상기 페이지 테이블로부터 검색된 어드레스 변환 정보로써 갱신되었기 때문에, TLB 히트가 발생할 수 있다. 단계(322)에서, TLB 제어기는 상기 하위 레벨 TLB로부터 요구되는 어드레스 변환 정보를 검색할 수 있다.
본 방법(300)은 TLB의 어느 레벨들이 상기 단일 TLB 기록 명령을 이용하여 갱신되어야 할 것인지를 결정하기 위해 TLB 제어기에서 구성 비트를 판독하는 단계(미도시)를 포함할 수 있다. 본 방법(300)은 TLB의 어느 레벨들이 단일 TLB 기록 명령을 이용하여 갱신되어야 할 것인지를 결정하기 위해 상기 페이지 테이블로부터 검색된 값을 판독하는 단계(미도시)를 포함할 수 있다.
도 3에 도시된 방법이 단지 두 레벨들의 TLB를(즉, 하위 레벨 TLB 및 상위 레벨 TLB) 도시한 반면, TLB들을 갱신하는 다른 방법들(미도시)은 세 레벨들 이상의 TLB들을 수반할 수 있다.
요컨대, 명령의 재-인출 동안 발생하는 하위 레벨 TLB에서의 미스에 관련되는 지연을 제거하기 위한 시스템 및 방법이 기재되었으며, 상기 미스는 상위 레벨 TLB가 갱신될 때 갱신되지 않는 하위 레벨 TLB에 의해 야기된다. 하위 레벨 TLB에서의 미스는 상위 레벨 TLB에서의 탐색을 요구하며, 이는 추가적인 지연을 가져온다. 상위 레벨 TLB가 갱신되는 것과 동시에 하위 레벨 TLB를 갱신함으로써, 하위 레벨 TLB에 대한 이후의 참조는 미스 보다는 히트를 생성하여, 상위 레벨 TLB로부터의 엔트리를 가져올 필요성을 미연에 방지한다.
개시된 실시예들에 대한 전술 사항은 당해 기술분야에서 통상의 지식을 가진 자로 하여금 상기 기재된 방법 및 시스템을 제조 및 이용하게 하기 위해 제공된다. 이러한 실시예들에 대한 다양한 변형들이 당해 기술 분야에서 통상의 지식을 가진 자에게 용이하게 명백할 것이며, 여기 정의된 일반 원리들은 기재된 사항들의 사상 또는 범위를 벗어나지 않고 다른 실시예들에 적용될 수 있다. 따라서, 상기 기재된 방법 및 시스템은 여기 제시된 실시예들을 한정하고자 하는 것이 아니라, 청구항들에 일치하는 완전한 범위로 해석되어야 하며, 여기서 단수인 구성요소에 대한 참조는 특정하게 진술되지 않는 한 "하나 또는 단 하나"를 의미하고자 하는 것이 아니라, 오히려 "하나 이상"을 의미하는 것이다. 당해 기술분야에서 통상의 지식을 가진 자에게 공지되거나 이후에 공지되는 본 명세서를 통해 기재된 다양한 실시예들의 구성요소들에 대한 모든 구조적 및 기능적 균등물들은 명시적으로 여기에 참조로서 삽입되며, 청구항들에 의해 포함되는 것이다. 더구나, 여기 개시되지 않은 어떠한 사항들도 그러한 개시사항들이 명시적으로 청구의 범위에 인용되는지 여부를 불문하고 공중에 제공되는 것은 아니다. 어떠한 청구되는 구성요소도, 상기 구성요소가 어구 "수단"을 이용하여 명백히 인용되거나, 또는 방법 청구항의 경우에, 상기 구성요소가 어구 "단계"를 이용하여 인용되지 않는다면, 미합중국 법령 35 §112(35 U.S.C. §112), 제 6 문단의 규정들에 따라 해석되지 않는다.
Claims (13)
- 처리기(processor)에 대한 컴퓨터로-읽을 수 있는(computer-readable) 명령(instruction)들을 저장하는 컴퓨터로-읽을 수 있는 매체로서, 상기 명령들은, 상기 처리기에 의해 판독(read) 및 구현될 때, 상기 처리기로 하여금:하위 레벨(lower level) TLB 및 상위 레벨(upper level) TLB 모두에 대해 TLB 미스(miss) 신호를 발생시키는 가상 어드레스(virtual address)에 대한 어드레스 변환 정보(address translation information)를 검색(retrieve)하기 위해 물리적 메모리(physical memory)를 액세스하고; 그리고상기 메모리로부터 검색된 상기 어드레스 변환 정보를 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB 모두에 기록(write)함으로써, 단일 TLB 기록 명령을 이용하여 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB 모두를 갱신(update)하게 하는, 컴퓨터로-읽을 수 있는 매체.
- 제 1 항에 있어서,상기 컴퓨터로-읽을 수 있는 매체는 상기 처리기에 대한 추가적인 컴퓨터로-읽을 수 있는 명령들을 저장하며, 상기 추가적인 명령들은, 상기 처리기에 의해 판독 및 구현될 때, 상기 처리기로 하여금 가상 어드레스에 대한 어드레스 변환 정보를 탐색하기 위해 상기 하위 레벨 TLB를 초기에 액세스하고, 상기 가상 어드레스가 상기 하위 레벨 TLB로부터 TLB 미스를 발생시킨다면 상위 레벨 TLB를 액세스 및 탐 색하고, 그리고 상기 가상 어드레스가 상기 상위 레벨 TLB로부터 TLB 미스를 발생시킨다면, 상기 요구되는 가상 어드레스에 대한 상기 어드레스 변환 정보를 검색하기 위해 상기 물리적 메모리 내의 페이지 테이블(page table)을 액세스하게 하는, 컴퓨터로-읽을 수 있는 매체.
- 제 1 항에 있어서,상기 처리기는 구성 비트(configuration bit)를 포함하는 제어 레지스터를 포함하며, 상기 컴퓨터로-읽을 수 있는 매체는 상기 처리기에 대한 추가적인 컴퓨터로-읽을 수 있는 명령들을 저장하며, 상기 추가적인 명령들은, 상기 처리기에 의해 판독 및 구현될 때, 상기 구성 비트로 하여금 상기 검색된 어드레스 변환 정보의 TLB 기록 동작이 발생하여야 하는지 여부를 결정하게 하는, 컴퓨터로-읽을 수 있는 매체.
- 제 3 항에 있어서,상기 처리기는 복수의 레벨들의 TLB를 포함하며, 상기 추가적인 명령들은, 상기 처리기에 의해 판독 및 구현될 때, 상기 구성 비트로 하여금, 상기 복수의 레벨들의 TLB로부터, 상기 단일 TLB 기록 명령에 응답하여 갱신될 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB를 선택하게 하는, 컴퓨터로-읽을 수 있는 매체.
- 제 1 항에 있어서,상기 처리기는 복수의 레벨들의 TLB를 포함하며, 상기 컴퓨터로-읽을 수 있는 매체는 상기 처리기에 대한 추가적인 컴퓨터로-읽을 수 있는 명령들을 저장하며, 상기 추가적인 명령들은, 상기 처리기에 의해 판독 및 구현될 때, 상기 처리기로 하여금, 상기 복수의 레벨들의 TLB로부터, 상기 단일 TLB 기록 명령에 응답하여 갱신될 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB를 선택하기 위해 상기 메모리로부터 검색되는 상기 어드레스 변환 정보를 이용하게 하는, 컴퓨터로-읽을 수 있는 매체.
- 두 레벨 이상의 TLB를 갱신하는 방법으로서:가상 어드레스에 대한 어드레스 변환 정보를 검색하기 위해 메모리를 액세스하는 단계; 및상기 메모리로부터 검색되는 상기 어드레스 변환 정보를 하위 레벨 TLB와 상위 레벨 TLB 모두에 기록함으로써, 단일 TLB 기록 명령을 이용하여 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB 모두를 갱신하는 단계를 포함하는 TLB 갱신 방법.
- 제 6 항에 있어서,상기 하위 레벨 TLB로부터 및 상기 상위 레벨 TLB로부터 가상 어드레스에 대한 TLB 미스의 지시(indication)를 수신하는 단계를 더 포함하는 TLB 갱신 방법.
- 제 5 항에 있어서,상기 가상 어드레스에 대한 어드레스 변환 정보를 탐색하기 위해 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB를 액세스하는 단계를 더 포함하며, 상기 어드레스 변환 정보는 상기 가상 어드레스가 물리적 어드레스(physical address)로 변환되게 하여주는, TLB 갱신 방법.
- 제 6 항에 있어서,상기 메모리는 복수의 페이지(page)들에 데이터를 저장하도록 구성되고, 상기 메모리는 상기 복수의 페이지들 각각 하나의 상기 메모리 내의 위치에 대한 정보를 저장하도록 구성되는 페이지 테이블을 포함하며, 상기 어드레스 변환 정보를 검색하기 위해 상기 메모리를 액세스하는 상기 단계는 상기 페이지 테이블로부터 상기 어드레스 변환 정보를 검색하는 단계를 포함하는, TLB 갱신 방법.
- 메모리;하위 레벨 변환 색인 버퍼(translation lookaside buffer, TLB)와 상위 레벨 TLB로서, 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB는 복수의 엔트리(entry)들을 저장하도록 구성되며, 상기 엔트리들 각각은 가상 어드레스가 대응하는 물리적 어드레스로 변환되게 하여주는 어드레스 변환 정보를 포함하는, 하위 레벨 TLB 및 상위 레벨 TLB; 및요구되는 가상 어드레스가 상기 하위 레벨 TLB로부터 및 상기 상위 레벨 TLB로부터 TLB 미스(miss)를 발생시킨다면, 상기 요구되는 가상 어드레스에 대한 어드 레스 변환 정보를 상기 메모리로부터 검색하도록 구성되는 TLB 제어기를 포함하는 장치로서, 상기 TLB 제어기는, 상기 메모리로부터 검색되는 상기 어드레스 변환 정보를 단일 TLB 기록 명령을 이용하여 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB 모두에 기록함으로써, 상기 단일 TLB 기록 명령을 이용하여 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB 모두를 갱신하도록 추가로 구성되는, 장치.
- 제 10 항에 있어서,상기 메모리는 복수의 페이지들에 데이터를 저장하도록 구성되며, 상기 메모리는 상기 복수의 페이지들 각각 하나의 상기 메모리 내의 위치에 대한 정보를 저장하도록 구성되는 페이지 테이블을 포함하는, 장치.
- 제 10 항에 있어서,상기 TLB 제어기는 상기 요구되는 어드레스 변환 정보를 탐색하기 위해 상기 하위 레벨 TLB를 초기에 액세스하고, 상기 요구되는 변환 정보가 상기 하위 레벨 TLB로부터 불명(missing)하다면 상기 상위 레벨 TLB를 액세스 및 탐색하고, 그리고, 상기 요구되는 어드레스 변환 정보가 상기 상위 레벨 TLB로부터 불명하다면, 상기 요구되는 어드레스 변환 정보를 검색하기 위해 상기 메모리를 액세스하도록 추가로 구성되는, 장치.
- 제 10 항에 있어서,상기 TLB 제어기는 구성 비트를 포함하는 제어 레지스터를 포함하며, 상기 구성 비트는, 복수의 레벨들의 TLB로부터, 단일 TLB 기록 명령을 이용하여 갱신될 상기 하위 레벨 TLB 및 상기 상위 레벨 TLB를 선택하도록 구성되는, 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/254,898 US20070094476A1 (en) | 2005-10-20 | 2005-10-20 | Updating multiple levels of translation lookaside buffers (TLBs) field |
US11/254,898 | 2005-10-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080063512A true KR20080063512A (ko) | 2008-07-04 |
Family
ID=37808178
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087011891A KR20080063512A (ko) | 2005-10-20 | 2006-10-20 | 변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20070094476A1 (ko) |
EP (1) | EP1941374A1 (ko) |
JP (1) | JP2009512943A (ko) |
KR (1) | KR20080063512A (ko) |
CN (1) | CN101326499A (ko) |
BR (1) | BRPI0617527A2 (ko) |
IL (1) | IL190972A0 (ko) |
WO (1) | WO2007048134A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101346706B (zh) * | 2005-12-29 | 2011-06-22 | 英特尔公司 | 虚拟转换后备缓冲器 |
US8397049B2 (en) * | 2009-07-13 | 2013-03-12 | Apple Inc. | TLB prefetching |
US8386748B2 (en) * | 2009-10-29 | 2013-02-26 | Apple Inc. | Address translation unit with multiple virtual queues |
CN102792280A (zh) * | 2010-03-09 | 2012-11-21 | 富士通株式会社 | 信息处理装置、信息处理方法以及程序 |
CN102360339A (zh) * | 2011-10-08 | 2012-02-22 | 浙江大学 | 一种提高tlb利用效率的方法 |
CN102866957B (zh) * | 2012-07-31 | 2014-07-30 | 中国人民解放军国防科学技术大学 | 面向多核多线程微处理器的虚拟活跃页缓冲方法及装置 |
CN104239237B (zh) * | 2013-06-20 | 2017-07-14 | 华为技术有限公司 | 一种tlb管理方法及装置 |
US11106596B2 (en) * | 2016-12-23 | 2021-08-31 | Advanced Micro Devices, Inc. | Configurable skewed associativity in a translation lookaside buffer |
US10127159B1 (en) * | 2017-07-13 | 2018-11-13 | International Business Machines Corporation | Link consistency in a hierarchical TLB with concurrent table walks |
CN110941565B (zh) * | 2018-09-25 | 2022-04-15 | 北京算能科技有限公司 | 用于芯片存储访问的内存管理方法和装置 |
US11243891B2 (en) * | 2018-09-25 | 2022-02-08 | Ati Technologies Ulc | External memory based translation lookaside buffer |
CN112631962B (zh) * | 2019-09-24 | 2024-11-01 | 阿里巴巴集团控股有限公司 | 存储管理装置、存储管理方法、处理器和计算机系统 |
CN114281720B (zh) * | 2021-12-14 | 2022-09-02 | 海光信息技术股份有限公司 | 处理器、用于处理器的地址翻译方法、电子设备 |
US20240193097A1 (en) * | 2022-12-09 | 2024-06-13 | Advanced Micro Devices, Inc. | Accessing a Cache Based on an Address Translation Buffer Result |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60150148A (ja) * | 1983-09-22 | 1985-08-07 | デイジタル イクイプメント コ−ポレ−シヨン | 2レベル変換バツフアを用いた仮想アドレスマツピング |
JPH0642213B2 (ja) * | 1986-02-20 | 1994-06-01 | 富士通株式会社 | アドレス変換方式 |
JPH08137756A (ja) * | 1994-11-07 | 1996-05-31 | Fuji Xerox Co Ltd | アドレス変換バッファ機構 |
US6418521B1 (en) * | 1998-12-23 | 2002-07-09 | Intel Corporation | Hierarchical fully-associative-translation lookaside buffer structure |
US6625714B1 (en) * | 1999-12-17 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Parallel distributed function translation lookaside buffer |
US6553477B1 (en) * | 2000-11-06 | 2003-04-22 | Fujitsu Limited | Microprocessor and address translation method for microprocessor |
EP1296237A1 (en) * | 2001-09-25 | 2003-03-26 | Texas Instruments Incorporated | Data transfer controlled by task attributes |
EP1522923A3 (fr) * | 2003-10-08 | 2011-06-22 | STMicroelectronics SA | Architecture de processeur à plusieurs contextes d'exécution simultanés |
US7426626B2 (en) * | 2005-08-23 | 2008-09-16 | Qualcomm Incorporated | TLB lock indicator |
-
2005
- 2005-10-20 US US11/254,898 patent/US20070094476A1/en not_active Abandoned
-
2006
- 2006-10-20 KR KR1020087011891A patent/KR20080063512A/ko not_active Application Discontinuation
- 2006-10-20 BR BRPI0617527-9A patent/BRPI0617527A2/pt not_active IP Right Cessation
- 2006-10-20 JP JP2008536650A patent/JP2009512943A/ja active Pending
- 2006-10-20 WO PCT/US2006/060134 patent/WO2007048134A1/en active Application Filing
- 2006-10-20 EP EP06846129A patent/EP1941374A1/en not_active Withdrawn
- 2006-10-20 CN CNA200680046048XA patent/CN101326499A/zh active Pending
-
2008
- 2008-04-17 IL IL190972A patent/IL190972A0/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP1941374A1 (en) | 2008-07-09 |
US20070094476A1 (en) | 2007-04-26 |
IL190972A0 (en) | 2008-12-29 |
BRPI0617527A2 (pt) | 2011-07-26 |
JP2009512943A (ja) | 2009-03-26 |
WO2007048134A1 (en) | 2007-04-26 |
CN101326499A (zh) | 2008-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20080063512A (ko) | 변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신 | |
US7805588B2 (en) | Caching memory attribute indicators with cached memory data field | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US20180060246A1 (en) | Linear to physical address translation with support for page attributes | |
US8161246B2 (en) | Prefetching of next physically sequential cache line after cache line that includes loaded page table entry | |
US8984254B2 (en) | Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance | |
US20040117587A1 (en) | Hardware managed virtual-to-physical address translation mechanism | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US20160140042A1 (en) | Instruction cache translation management | |
JPH04352256A (ja) | メモリ空間を節約する方法および装置 | |
US20040117588A1 (en) | Access request for a data processing system having no system memory | |
JPH07200399A (ja) | マイクロプロセッサ、およびマイクロプロセッサにおいてメモリにアクセスするための方法 | |
JP2010518519A (ja) | アドレス変換方法及び装置 | |
CN112631962B (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
JP2008545199A (ja) | メモリ内の同じページに対する多数の変換ルックアサイド緩衝器へのアクセスの防止 | |
US7017024B2 (en) | Data processing system having no system memory | |
US7984263B2 (en) | Structure for a memory-centric page table walker | |
US20040117590A1 (en) | Aliasing support for a data processing system having no system memory | |
US20050055528A1 (en) | Data processing system having a physically addressed cache of disk memory | |
JP2022548219A (ja) | 変換ルックアサイドバッファ無効化 | |
US20040117583A1 (en) | Apparatus for influencing process scheduling in a data processing system capable of utilizing a virtual memory processing scheme | |
US20040117589A1 (en) | Interrupt mechanism for a data processing system having hardware managed paging of disk data | |
MX2008005091A (en) | Caching memory attribute indicators with cached memory data | |
CN111198827A (zh) | 页表预取方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |