KR20010101693A - 가상 메모리 시스템에서의 메모리 접근 개선 기술 - Google Patents

가상 메모리 시스템에서의 메모리 접근 개선 기술 Download PDF

Info

Publication number
KR20010101693A
KR20010101693A KR1020017009368A KR20017009368A KR20010101693A KR 20010101693 A KR20010101693 A KR 20010101693A KR 1020017009368 A KR1020017009368 A KR 1020017009368A KR 20017009368 A KR20017009368 A KR 20017009368A KR 20010101693 A KR20010101693 A KR 20010101693A
Authority
KR
South Korea
Prior art keywords
memory
tlb
cache
page
processor
Prior art date
Application number
KR1020017009368A
Other languages
English (en)
Inventor
헨리 스트라코프스키
Original Assignee
마이클 골위저, 호레스트 쉐퍼
인피네온 테크놀로지스 아게
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이클 골위저, 호레스트 쉐퍼, 인피네온 테크놀로지스 아게 filed Critical 마이클 골위저, 호레스트 쉐퍼
Publication of KR20010101693A publication Critical patent/KR20010101693A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

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

본 발명에 따라, 메모리 접근 호출시간을 감소시키기 위한 방법 및 장치가 공개된다. 새 엔트리가 우선 변환 참조 버퍼(110)로 만들어질 때, 새 TLB 엔트리는 메모리(108)의 상응하는 TLB 페이지를 가리킨다. TLB(110)의 갱신과 동시에, TLB 페이지 캐시(114)에 TLB 페이지를 저장함으로서 TLB 페이지는 시간상으로 프로세서(102)에 가깝게 이동한다. TLB 페이지 캐시(114)는 메인 메모리(108)보다 프로세서(102)에 시간상으로 가깝다.

Description

가상 메모리 시스템에서의 메모리 접근 개선 기술{TECHNIQUES FOR IMPROVING MEMORY ACCESS IN A VIRTUAL MEMORY SYSTEM}
시스템의 메인 메모리가 작은 양의 어드레스 공간만을 처리함에 비해 가상 메모리 시스템은 다량의 메모리를 처리할 수 있다. 가상 메모리 시스템은 메모리 관리 유닛, 특히 페이지나 세그먼트가 가상 메모리 어드레스 및 이에 상응하는 물리적 메모리 어드레스를 가지도록 규정함으로서 이 능력을 제공한다. 특정 가상 메모리 어드레스가 메인 메모리에, 또는 디스크 공간과 같이 더 느린 대안의 메모리에 위치할 수 있다. 가상 어드레스가 데이터의 물리적 어드레스에 매핑될 경우, 정보에 쉽게 접근할 수 있고, 정보를 쉽게 이용할 수 있다. 가상 어드레스에 상응하는 페이지가 대안의 메모리에 위치한다고 물리적 어드레스가 표시할 경우, 이 페이지는 데이터에 접근할 수 있는 메인 메모리로 전환되거나 교환될 수 있다. 이 전환은 새 정보를 위한 공간을 제공하기 위해 메인 메모리로부터 대안의 메모리로 타정보가 교환되는 것을 필요로한다. 이 전환은 하드웨어나 소프트웨어로 메모리 관리 유닛의 제어 하에 실행되는 것이 일반적이다.
가상 메모리 접근의 속도를 증가시키기 위해, 최근에 사용된 데이터와 명령을 저장하는 캐시 메모리가 또한 포함된다. 요청된 정보를 위해 메인 메모리에 접근하기 전에 먼저 이 캐시들에 접근한다. 이 캐시들은 가상적으로 처리되거나 물리적으로 처리될 수 있다. 그러나, 물리적 어드레스에 따라 접근되는 캐시 메모리는 메인 메모리와 캐시를 확인하기 전에 가상에서 물리적으로의(가상-물리적) 접근 변환의 과정을 필요로한다.
페이징 과정, 즉, 페이지 교환 과정은 메모리 페이지에 의해 인덱싱되는 데이터 구조에 의존한다. 이 데이터 구조는 제공되는 가상 어드레스에 따라 접근될 메모리의 물리적 어드레스를 포함한다. 물리적 페이지 어드레스를 포함하는 이 데이터 구조는 가상 페이지 번호, 표 크기, 페이지 수, 가상 메모리 공간에 의해 인덱싱되는 페이지 표의 형태를 취한다. 페이지 표는 메인 메모리에 저장되고 자체적으로 페이징될만큼 매우 크다. 물리적 어드레스를 얻기 위해 한번의 메모리 접근이 필요하고 데이터를 얻기 위해 두 번째 접근이 필요하기 때문에, 이는 모든 메모리 접근이 한번 이상 행하여짐을 의미한다.
접근 시간 댓가의 최소화에 사용되는 한가지 기술은 현 어드레스가 최종 어드레스와 동일한 페이지일 경우 매핑 과정이 생략되도록 실행되는 최종 변환을 절약하는 것이다. 추가적으로, 추가적 시간 절약을 위해, 캐시에 사용되는 지역성 원리가 장점으로 취해진다. 기준이 지역성을 가질 경우, 기준에 대한 어드레스 변환역시 지역성을 가져야 한다. 특정 캐시에서 이 어드레스 변환을 유지함으로서, 메모리 접근은 어드레스 변환을 위해 제 2 접근을 거의 필요로하지 않는다. 이 특정 어드레스 변환 캐시는 우선 변환 참조 버퍼, 또는 TLB라 불린다. TLB 엔트리는 캐시 엔트리와 같다. 즉, 태그 부분이 가상 어드레스 부분을 보지하고, 데이터 부분이 물리적 페이지 프레임 번호, 보호 필드, 이용 비트, 수정 비트를 보지한다. 전형적인 TLB 데이터 구조(100)의 예가 도 1에 도시된다.
가상 메모리로의 접근 속도를 증가시키기 위해 다수의 방법과 기술이 가용하다. 한 방법에서, 보다 과중하게 파이프라인된 메모리 접근이 사용된다. 이때 TLB 접근은 파이프라인 이전 한 단계에서 실행된다. 또다른 접근법은 가상 어드레스를 직접 부합시키는 것이다. 이러한 캐시는 가상 캐시로 불린다. 이는 캐시 히트 접근 상황으로부터 TLB 변환 시간을 제거한다. 그러나 불행하게도 한가지 결점이 있다면, 이 처리과정이 시간을 많이 소요하며 어드레스 지역성에 상관없이 각각의 가상 어드레스에 대해 실행될 필요가 있다는 것이다.
TLB에 대한 추가적인 설명은 David A. Patterson과 John L. Hennessey의 Computer Architecture, A Qualitative Approach Second Edition(Morgan Kaufmann Publishing) 439-457쪽에 공개되어 있다.
본 발명은 컴퓨터 시스템에 관한 것이고, 특히 메모리 관리 시스템에 관한 것이며, 궁극적으로는 가상 메모리 어드레싱을 이용하는 컴퓨터 메모리 시스템에서 우선 변환 참조 버퍼(TLB)를 이용하여 프로세서에 의해 메모리 페이지에 접근하는 것과 관련된 호출 시간을 감소시키기 위한 방법 및 장치에 관한 것이다.
도 1은 TLB 데이터 구조의 도면.
도 2는 발명의 실시예에 따라 분포된 TLB 레지스터를 가지는 가상 메모리 기반의 컴퓨터 시스템의 도면.
도 3은 발명의 실시예에 따른 계급적 메모리 배열의 도면.
도 4는 발명의 실시예에 따라 DRAM 메모리 소자의 어레이 사이에 TLB 페이지가 분포되는 컴퓨터 시스템의 도면.
도 5는 도 4에 도시되는 컴퓨터 시스템을 바탕으로 어드레스 매핑 기법을 나타내는 예의 도면.
도 6은 도 4에 도시되는 DRAM 메모리 소자의 어레이가 고속 정적 버퍼를 포함하는 컴퓨터 시스템의 도면.
도 7은 발명의 실시예에 따라 고속 데이터 상호연결을 통해 메모리 어레이에 연결되는 메모리 제어기에서 TLB 버퍼를 가지는 컴퓨터 시스템의 도면.
도 8은 발명의 실시예에 따라 가상 메모리 기반 시스템의 메모리 접근 호출시간을 감소시키는 과정의 순서도.
본 발명에 따라 가상 메모리 기반의 시스템에서 메모리 접근 호출 시간을 감소시키는 방법이 공개된다.
발명의 한 태양에서, 메인 메모리와 캐시 메모리를 가지는 가상 메모리 기반의 시스템에서 메모리 접근 호출시간을 감소시키는 방법이 공개된다. 한 방법으로, 관련 가상 메모리 어드레스를 가지는 데이터 요청이 프로세서에 의해 발생된다. 그 후, 요청된 가상 메모리 어드레스가 TLB의 관련 TLB 엔트리를 가지는 지가 결정된다. TLB 엔트리는 TLB 페이지 캐시에 포함된 TLB 페이지를 가리킨다. 검색된 데이터가 프로세서에 시간상으로 보다 가깝게 이동하도록 요청된 가상 메모리 어드레스가 TLB의 관련 TLB 엔트리를 가진다고 결정될 때, 요청된 데이터는 TLB 페이지 캐시로부터 검색된다.
선호되는 실시예에서, TLB 페이지는 요청 데이터를 포함한다.
발명의 또다른 태양에서, 가상 메모리 기반의 연산 시스템이 공개된다. 이 시스템은 다수의 실행 명령을 소프트웨어 프로그램 형태로 저장하기 위해 배열되는 조직화 시스템 메모리에 연결되는 실행명령을 실행하도록 적절하게 배열되는 프로세서를 포함한다. 시스템 메모리는 하이레벨 시스템 메모리 성분이 로우레벨 시스템 메모리 성분보다 시간상으로 프로세서에 가깝도록 조직화된다. 시스템 메모리는 메인 메모리, 캐시 메모리, TLB 페이지 캐시를 포함하며, 상기 메인 메모리는 다수의 실행 명령의 중요 부분을 저장하도록 배열되고, 상기 캐시 메모리는 가장 최근에 사용된 실행 명령 세트를 저장하도록 메인 메모리에 연결되며, 캐시 메모리는 메인 메모리에 비해 프로세서에 시간상으로 더 가깝게 위치하고, 상기 TLB 페이지 캐시는 TLB 엔트리에 의해 지시되는 TLB 페이지를 저장하도록 배열되며, TLB 페이지 캐시는 시간상으로 캐시 메모리와 메인 메모리 사이에 위치한다.
가상 메모리 어드레싱 기법을 이용하는 연산 시스템에서 메모리 호출시간을 감소시키기 위해, TLB라고 불리는 우선 변환 참조 버퍼가 사용되어, 가상 메모리 어드레스-물리적 메모리 어드레스 변환의 가장 최근 세트를 식별한다. 기술되는 실시예에서, 연산 시스템은 메인 메모리와 캐시 메모리에 연결되는 (관련 TLB를 가지는) 프로세서를 포함한다. 일반적으로, 캐시 메모리는 (DRAM과 같은) 메인 메모리로부터 이전에 페치된 관련 데이터와, 가장 최근에 사용된 메모리 어드레스를 저장하기 위해 사용된다. (탐색표, LUT 형태를 취하는) TLB에 가장 최근의 가상 메모리-물리적 메모리 변환을 저장함으로서, TLB에 저장된 상기 변환을 위해 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하는 데 소요되는 시간은 간단한 표탐색 동작의 시간으로 감소한다.
어떤 주어진 순간에서도 프로세서는 관련 TLB에 기술되는 것보다 물리적 메모리에 보다 접근할 수 없기 때문에, 오류를 유발하는 메모리 페이지(프로세서의 TLB 내에 포함되지 않았다고 판명되는 메모리 페이지)는 TLB의 실제 갱신과 함께 병렬로 프로세서에 더 가까운 고속 메모리(L1 캐시나 L2 캐시)로 옮겨진다. TLB를 갱신함으로서, TLB가 자주 사용되는 페이지의 캐시이기 때문에, 가상 메모리에서 물리적 메모리로의 변환이 TLB 내에 있지 않다고 결정될 때 메모리 페이지에 대한 공간을 제공하기 위해 TLB로부터, 어떤 수나 종류의 알고리즘에 의해 자주 사용되지 않다고 결정된 페이지는 깨끗이 비워진다.
프로세서 TLB가 검색될 때, 관련 메모리 제어기 내에 이중 사본이 만들어지고 유지된다. 특정 TLB 엔트리로 대체되는 경우에, 메모리 제어기는 새 TLB 엔트리에 의해 지시되는 관련 페이지를 프로세서에 더 가까운 메모리 계급 세그먼트로 개시한다. 여기서 더 가깝다는 것은, 특정 메모리 페이지나 그 일부에 대한 메모리 접근 호출시간이 감소되어 전체 메모리 접근 시간을 개선시킨다는 것을 의미한다. 일부 구현에서, 새로운 TLB 엔트리에 의해 지적되는 전체 메모리 페이지는 프로세서에 더 가깝게 이동하고, 다른 구현의 경우에, 자체적으로 TLB 엔트리 변화를 유발한 어드레스에 상응하는 작은 부분만이 이동한다. 프로세서에 가까운 메모리 계급의 세그먼트로 전환되는 메모리 페이지의 크기는 여러 계급 세그먼트 사이에 상호연결 대역폭에 따라 좌우된다.
일반적으로, 도 2에 도시되는 바와 같이, 발명은 계급적으로 조직화된 시스템 메모리(108)에 접근하기 위해 적절히 배치된 시스템 버스(106)를 통해 메모리 제어기(104)에 연결되는 프로세서(102)를 가지는 컴퓨터 시스템(100)을 들어 설명될 수 있다. 설명되는 실시예에서, 계급적으로 조직화된 시스템 메모리(108)의 여러 성분은 DRAM, SDRAM, SLDRAM, EDO, FPM, RDRAM 등과 같이 여러 형태를 취할 수 있다. 설명되는 실시예에서 시스템 버스(106)는 프로세서(102)에 의해 발생된 메모리 어드레스 요청을 메모리 제어기(104)까지 전송하도록 배열되는 단방향 어드레스 버스(106-1)를 포함한다. 시스템 버스(106)는 메모리 어드레스와 관련된 명령을 어드레스 버스(106-1)와 연계하여 운반하는 단방향 명령 버스(106-2)를 또한 포함한다. 가령, 프로세서(102)가 실행 명령을 필요로할 때, 프로세서는 어드레스 버스(106-1) 상에서 상응하는 메모리 어드레스 요청(시스템 어드레스라 불림)과 동시에 명령 버스(106-2)에 판독 요청(시스템 명령이라 불림)을 출력한다.
설명되는 실시예에서, 컴퓨터 시스템(100)은 가상 메모리 기반의 컴퓨터 시스템으로서, 이때의 메모리 어드레스 요청은 물리적 메모리 어드레스로 변환되어야 하는 가상 메모리 어드레스 요청이다. 이 방법으로, 시스템 메모리(108)에 상응하는 메모리 공간의 적절한 메모리 어드레스에 접근할 수 있다. 컴퓨터 시스템(100)에서, 프로세서(102)는 물리적 메인 메모리에 접근하는 물리적 어드레스에 하드웨어 및 소프트웨어의 조합에 의해 변환되는 가상 어드레스를 생성한다. 가상 어드레스 그룹은 특정 메모리 페이지에 동적으로 할당될 수 있어서, 가상 메모리가 가상 어드레스를 물리적 어드레스로 변환하는 페이지표로 불리는 데이터 구조를 필요로할 수 있다. 어드레스 변환 시간을 감소시키기 위해, 컴퓨터 시스템(100)은 우선 변환 참조 버퍼(TLB)(110)로 앞서 기술된 어드레스 변환 전용의 관련 캐시를 이용한다.
그러나, TLB(110)는 실제로, 특정 컴퓨터 시스템에 대해 가장 적절하다고 시스템 디자이너가 결정한 곳에 위치하여야 한다. 기술되는 실시예에서, TLB(110)는 가장 최근의 가상 메모리 어드레스-물리적 메모리 어드레스 변환을 식별하기 위해 사용되는 탐색표(LUT)의 형태를 취한다. TLB(110)에서 가장 최근의 가상 메모리-물리적 메모리 변환을 저장함으로서, TLB(110)에 저장된 상기 변환에 대해 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환에 소요되는 시간은 가상 메모리-물리적 메모리 변환 작동보다 더 빠른 간단한 표탐색 작동의 값으로 감소한다.
발명의 한 구현에서, 프로세서(102)가 특정 가상 메모리 요청을 발생시킬 때마다, 요청된 메모리 페이지가 TLB(110)의 엔트리에 의해 가리키는 메모리 페이지 중 하나와 관련되는 지를 결정하기 위해 TLB(110)가 질의된다. 앞서 설명한 바와 같이, 지역성의 원칙에 따라, 특정 TLB 엔트리에 의해 가리키는 메모리 페이지의 크기가 커질수록, 더 많은 TLB 히트, 즉, 요청된 가상 메모리 페이지가 관련 TLB 엔트리를 가지고 그래서 변환 작동에 대한 필요성을 제거한다. 그러나, 요청된 메모리 페이지가 TLB 엔트리와 관련되지 않는 경우(즉, 미스)에, 요청된 가상 메모리페이지 어드레스는 변환되어야 하고 종국에는 시스템 메모리로부터 검색되어야 한다.
발명의 한 실시예에서, TLB 레지스터(110)의 사본 형태를 취하는 제어기 TLB(112)가 제어기(104) 내에 포함되어, TLB(110)의 새 엔트리에 상응하는 (일반적으로 로우레벨 에너지에 위치하는) 메모리 페이지를 가리키는 데 사용된다. 일부 구현에서, 새 TLB 엔트리로 나타나는 전체 메모리 페이지는 프로세서(102)에 가깝게 위치하는 TLB 페이지 캐시(114)까지 프로세서에 더 가깝게 이동한다. 또다른 구현에서, TLB 엔트리 변화 자체를 유발한 어드레스에 상응하는 매우 조그만 부분만이 이동한다. 이 상황에서, 데이터 전송의 크기는 TLB 페이지 캐시(114)와 메인 메모리간의 상호연결 대역폭에 의해 결정된다. 이 상황에서, RAMBUS와 SLDARM과 같은 메모리 구조는 보다 기존 방식의 고속 페이지 모드 타입 메모리보다 적절하다.
실제 TLB 검색 메카니즘이 TLB 자체의 위치에 따라 여려 형태를 취할 수 있다. TLB가 프로세서 자체 내에 위치할 경우, TLB에 직접 접근가능하고, 프로세서는 TLB 미스 어드레스를 바탕으로 원하는 데이터를 사전 인출(페치)하도록 메모리 제어기에 통지 플래그를 발급할 수 있다. 일부 경우에, 통지 플래그는 프로세서 상의 전용 제어 핀에 의해, 또는 프로세서 버스 프로토콜의 작은 변화에 의해 구현될 수 있다. 한 실시예에서, 플래그는 TLB 미스가 발생하였음을 나타내고 TLB의 어느 부분이 무효화되었는 지를 나타낸다. 이는 전용 핀 버스에 의해 이루어질 수 있다. 왜냐하면, 가령 펜티엄 II 프로세서가 6개의 표시핀과 1개의 제어 핀만을 가지기 때문이다. 일부 경우에, 프로세서는 프로세서 버스 상에 특정 메시지 사이클을 발급할 수 있다. 이 메시지 사이클은 TLB 엔트리 인덱스뿐 아니라 새 물리적 어드레스도 운반할 수 있어서, 본 발명의 목적을 위해, 제어기 TLB(112)가 프로세서 TLB(110)에 대해 항상 최신식일 것이다.
제어 메카니즘이 메모리 제어기 자체 내에 위치하는 경우에, 메모리 제어기는 메인 메모리에 위치하는 페이지표나 제 2 캐시로의 트래픽을 관측함으로서 TLB 내용을 검색하여야 한다. 제 2 캐시가 감시되는 경우에, 프로세서는 메모리 제어기 내의 스누프 회로에 접근함을 허락하여야 한다. 그러나 제 2 캐시가 스누핑될 수 없거나 프로세서가 TLB 미스 플래그를 표시하지 않을 경우, 메모리 제어기 TLB는 미스 어드레스로의 물리적 어드레스 접근이 발행될 때 갱신되어야 한다.
도 3은 발명의 한 실시예에 따른 시스템 메모리(108)의 특정 구현을 도시한다. 컴퓨터 구조 설계 및 프로그래밍 분야에 공지된 바와 같이, 컴퓨터 시스템(100)과 같은 일반적인 컴퓨터 시스템은 다레벨 계급의 메모리 시스템을 이용한다. 계급적 접근법에서, 상대적으로 고속, 고가, 제한 용량 메모리(레지스터(202))는 계급구조의 최상위 레벨에 위치하고, 이에 비해 느리고 저렴하며 고용량 메모리는 계급 구조의 낮은 레벨에 위치한다. 일반적으로, 메모리 계급 구조는 상호연결 호출시간 감소로 인한 속도 증가(공간적으로 가까움)를 위해 프로세서(102)에 가깝게 위치하거나 프로세서(102) 내에 집적된 캐시 메모리(204)라 불리는 소형 고속 메모리를 포함한다. 다른 크기와 다른 접근 시간을 가지는 여러 다른 레벨의 캐시가 존재할 수 있다. 즉, L1, L2, 등이 있다. 일반적으로, 캐시 메모리(204)는 3-30ns 수준의 전형적인 접근 시간을 가지는 16-512 킬로바이트 수준의 메모리를 저장할 수 있고, 프로세서(102)에 의해 가장 최근에 사용된 데이터 세트(작업 데이터 세트)를 저장할 수 있다.
데이터를 메인 메모리(206)로부터 판독하거나 메인 메모리(206)에 기록할 때, 캐시(204)에서 관련 메인 메모리 어드레스와 함께 사본이 저장된다. 캐시(204)는 필요한 데이터가 이미 캐시에 존재하는 지를 확인하기 위해 차후 판독의 어드레스를 감시한다. 캐시 히트일 경우, 즉시 복귀하고, 메인 메몰 판독이 중단되거나 아예 시작되지 않는다. 데이터가 나타나지 않을 경우, 즉 캐시 미스일 경우, 메인 메모리로부터 인출(페치)되고 캐시에 저장된다.
캐시(204)가 메인 메모리(206)보다 고속의 메모리 칩으로부터 구축되어, 정상 메모리 접근 완료에 소요되는 시간이 캐시 히트의 경우가 훨씬 적다. 캐시는 접근 시간의 추가 감소를 위해 프로세서와 같은 집적 회로에 위치할 수 있다. 이는 제 1 캐시(주캐시)로 알려져 있고, 이 경우에, CPU 칩 외부에 대형, 저속 제 2 캐시가 위치할 수 있다.
캐시의 가장 중요한 특성은 히트 속도이다. 즉, 캐시(204)로부터 만족되는 모든 메모리 접근에서의 비율이다. 이는 캐시 설계에 따라 좌우되나, 메인 메모리에 대한 상대적 크기에 주로 의존한다. 이 크기는 고속 메모리 칩의 비용과, 물리적 크기 제한(보다 중요)에 의해 제한된다.
히트 속도는 작동중인 특정 프로그램의 접근 패턴에 따라 좌우된다. 캐시는 대부분의 프로그램의 접근 패턴의 두가지 성질에 의존한다. 즉, 시간적 지역성: 무언가가 접근하면, 곧이어 다시 접근하게 된다. 공간적 지역성: 한 개의 메모리 위치에 접근하면, 근처의 메모리 위치에 또한 접근하게 된다. 공간적 지역성을 이용하기 위해, 캐시는 "캐시 라인"이나 "캐시 블록"으로 한번에 여러 워드를 작동한다. 메인 메모리는 전체 캐시 라인을 판독하고 기록한다.
프로세서(102)가 메인 메모리(206)에 기록을 원할 때, 프로세서가 이를 즉시 읽을 것이라는 가정 하에 데이터는 캐시(204)에 먼저 기록된다. 여러 다른 방법이 사용된다. 롸이트 쓰루 캐시(write through cash)에서, 데이터는 캐시됨과 동시에 메인 메모리에 기록된다. 롸이트 백 캐시(write back cash)에서, 캐시로부터 나올때만 메인 메모리에 기록된다.
롸이트 쓰루 방식으로 모든 접근이 기록될 경우, 캐시로의 모든 기록은 메인 메모리 기록을 필요로하여, 메인 메모리 속도로 시스템 속도를 낮추어야 한다. 그러나 통계적으로, 대부분의 접근이 판독되고 이 대부분은 캐시로부터 만족될 것이다. 롸이트 쓰루는 롸이트 백보다 간단하다. 왜냐하면, 대체될 엔트리가 메인 메모리에 먼저 복사되기 땜에 캐시에 덮어써질 수 있지만, 롸이트 백은 플러시 엔트리의 메인 메모리 판독을 캐시가 시작하는 것을 필요로하고 이어 메인 메모리 판독이 이어지기 때문이다. 그러나, 메인 메모리 접근없이 엔트리가 캐시에 여러번 기록될 수 있기 때문에 롸이트 백이 보다 효율적이다. 캐시가 충만하고 또다른 데이터 라인을 캐시하고자 할 때, 메인 메모리로 다시 기록하거나 플러시되도록 캐시 엔트리가 선택된다. 새 라인이 제 위치에 놓인다. 플러시되도록 선택되는 엔트리가 "대체 알고리즘"에 의해 결정된다.
특정 구현에서, 시스템 메모리(108)는 TLB(110)나 TLB(112)의 새 엔트리임을표시하는 메모리 페이지를 저장하기 위해 사용되는 TLB 페이지 캐시(114)를 포함한다.
기술되는 실시예에서, 가장 낮은 레벨에서, 테이프 드라이브와 같은 대용량 외부 메모리 저장 장치(210)는 수초에서 수분까지의 평균 접근시간(즉, 호출시간)에서 비교적 무제한적인 저장 용량을 가진다. 다음으로 낮은 레벨에서, 디스크 메모리(또는 동등한 매질)(208)는 약 10ms 수준의 접근 시간으로 기가바이트의 데이터를 저장할 수 있지만, 그 다음 높은 레벨에서, 메인 메모리(206)(일반적으로 DRAM 타입 메모리 소자의 형태를 취함)는 대략 50ns-150ns의 전형적 접근 시간을 가지는 메가바이트 수준의 데이터를 저장할 수 있다. 발명의 한 실시예에서, TLB 페이지 캐시(114)는 메인 메모리 접근의 횟수를 감소시키는 능력을 제공하는 캐시 메모리(204)와 메인 메모리(206) 사이에 계급 방식으로 위치한다. 우선 변환 참조 버퍼(TLB)(110)에 의해 나타나는 메모리 페이지를 저장함으로서, 메인 메모리 접근의 횟수가 동시에 감소한다. 왜냐하면, TLB 히트가 있을 때마다, 요청된 메모리 페이지가 TLB 페이지 캐시(114)로부터 검색될 필요가 있을 뿐, 메인 메모리(206)로부터 검색될 필요는 없고, 그래서 TLB 페이지 캐시(114)없이 달성될 수 있는 전체 시스템 메모리 접근 호출시간을 감소시킨다. 특정 TLB 엔트리에 상응하는 메모리 페이지가 TLB 페이지라 불린다.
도 4는 발명의 한 실시예에 따라 칩 어레이에 위치하는 TLB 페이지를 가지는 컴퓨터 시스템(400)을 도시한다. 기술되는 실시예에서, 시스템 메모리(108)는 다수의 DRAM 타입 메모리 소자로 형성되는 칩 어레이(402)를 포함한다.
작동 시에, 특정 메모리 위치가 판독될 경우, 프로세서(102)는 메모리 어레이(402)의 메모리 위치에 상응하는 어드레스 요청을 발생시킨다. 어레이(402)를 형성하는 DRAM(402-1~402-n) 각각이 저장 셀(404)의 논리 "직사각형"에 그 내용을 유지하기 때문에, 예를 들어 저장 셀(404-1)에 저장된 데이터를 판독하는 것은 메모리 제어기(104)에 의해 제공되는 "로우 어드레스 실렉트"(또는 "로우 어드레스 스트로브"나 "/RAS")로 명명되는 것을 이용하여 행(406)이 활성화되는 것을 필요로한다. 특히, RAS는 관련 어드레스가 행 어드레스임을 나타내는 DRAM에 전송된 신호이다.
일반적으로, /RAS 신호는 프로세서(102)에 의해 제공되는 어드레스 요청의 가장 중요한 부분을 바탕으로 한다. 수신되고 적절히 해독될 때, /RAS 신호는 회복 시간으로 불리는, 안정화를 위해 선택 행에 요구되는 시간 주기 후, 전체 행(406)의 데이터가 감지 증폭기(408)까지 전송되게 한다. 가장 일반적인 DRAM에서, 증폭기 전송을 감지하기 위한 RAS는 30ns 수준이다.
선택된 행이 안정화되고 선택 행의 데이터가 감지 증폭기(408)로 전송되면, 메모리 제어기(104)는, DRAM에 전송될 때 관련 어드레스가 열 어드레스임을 알리는 "컬럼 어드레스 실렉트"(/CAS) 신호로 분리는 것을 형성하는 어드레스 요청을 해독한다. /CAS 신호는 원하는 데이터를 포함하는 감지 증폭기에서 열 선택 회로가 메모리 어레이의 특정 저장 셀(이 경우에 404-1)을 선택하게 한다. 셀(404-1)의 내용은 감지 증폭기(408)로부터 데이터 버스(108)까지 전송되고, 이때 프로세서(102)나 데이터를 요청한 다른 장치는 이를 판독할 수 있다. 대부분의 DRAM에서, DAS는30ns 수준이다.
따라서, 저장 어레이(404-1)로부터 감지 증폭기(408)까지 데이터를 이동시킴으로서, 데이터는 프로세서(102)에 더 가깝게 이동한다. 이는 양적으로 인정된다. 왜냐하면, 바람직한 데이터를 버스(108)까지 이동시키는 CAS 작동의 논리적 및 물리적 프리디세서(predecessor)이기 때문이다.
메모리 어레이(402)에 물리적으로 위치하는 TLB 페이지의 일부가 행 접근의 행위에 의해 감지 증폭기(408) 내로 불려질 수 있는 열에 상응하기 때문에, TLB 페이지는 프로세서(102)에 더 가깝게 이동한다. 따라서, 감지 증폭기 내에 존재하는 새 TLB 엔트리와 연관된 전체 TLB 페이지를 만들기 위해 여러 감지 증폭기를 물리적으로, 또는 논리적으로 연관시키기 위해 성능 관점에서 이득일 수 있다. 이렇게 함으로서, 특정 TLB 페이지로의 접근이 전체 고속 접근 시간에서 이득을 얻는다.
한가지 이러한 배열이 도 5에 도시된다. 도 5는 발명의 한 실시예에 따라 네 개의 DRAM 메모리 칩의 어레이 사이 어드레스 매핑 기법을 보여준다.
도 6에 도시되는 또다른 실시예에서, 메모리 어레이를 형성하는 메모리 칩은 기존 DRAM 메모리 어레이에 추가하여 고속 스태틱 버퍼(602)를 포함한다. 이러한 메모리 칩은 일본 NEC 사의 "Virtual Channel" DRAM 시리즈를 예로 들 수 있다. 이 새 구조는 고속 레지스터에 의해 나타나는 채널 버퍼를 통합함으로서 유연하고 고효율의 데이터 전송을 실현한다. 가상 채널(virtual channel) 메모리는 멀티미디어 PC, 워크스테이션, 인터넷 서버를 지원하는 대용량 DRAM에 사용된다. 이러한 새로운 메모리 핵 기술의 핵심적인 특징은 메모리의 고속 레지스터에 의해 배치되는 채널 버퍼의 통합에 있다. 가상 채널 DRAM은 메모리의 프론트-엔드 처리 과정 외부로부터 채널 버퍼로부터/에 판독/기록 작동을 실행한다. 대안으로, 메모리 셀의 리프레시, 충전, 채널 버퍼와 메모리 셀간의 데이터 전송 중계와 같은 내부 작동이 이 프론트 엔드 처리 과정과 따로 실행된다. 그 결과, 배경 처리는 전면 처리와 병렬로 실행될 수 있다. 병렬 처리에 대한 지지 구조를 생성함으로서, 가상 채널 DRAM은 높은 평균 데이터 전송 속도를 유지하고, 메모리 어레이에 접근하기 위해 고유 리소스로 독립 채널에 접근하는 능력에 기반하여, 가능한 가장 높은 값으로 고유 메모리 성능을 개발한다. 이는 TLB 크기 페이지를 형성하기 위해 여러 링크된 가상 채널이 (물리적이나 논리적으로) 연관될 때와 같이 적절히 배치될 경우 낮은 오버헤드, 낮은 호출시간, 높은 생산량, 향상된 버스 효율을 나타낼 수 있다.
도 7은 발명의 한 실시예에 따라 고속 TLB 페이지 전송을 위해 적절한 고속 인터페이스를 가지는 시스템(700)을 도시한다. 시스템(700)은 컴퓨터 네트워킹, 데이터 네트워킹, 소자 편성, 비디오 처리, 디지털 처리, 또는 고속 메모리 장치 이용의 장점이 바람직한 그외 다른 분야에 폭넓게 사용될 수 있다. 프로세서(102)와 협력하여 작용하는 실행 명령을 저장하기 위해 여러 다른 메모리 기능을 실행하도록 (RAMBUS DRAM) RDRAM(702)이 사용될 수 있다. RDRAM(702)은 데이터 처리, 디지털 이미지 조작 프로그램, 그리고 다량의 데이터에 대한 고속 접근이 필요할 경우 등과 같은 경우에 프로세서(102)에 의해 사용되는 데이터를 저장하기 위해 또한 사용될 수 있다. 시스템(700)은 예일 뿐이고, 발명의 진정한 범위와 사상은 청구범위에 의해 결정될 것이다.
성능 고려로 인해, TLB 페이지 캐시(114)로 가능한 고속의 전송 속도를 가지는 것이 바람직하다. DRAM(702-1~702-4)의 내부 병렬성이 고속 전송을 지원하는 것은 당 분야에 공지된 사실이기 때문에, DRAM(702-1~702-4)은 버퍼(704-1~704-4)로 배열되는 TLB 페이지 캐시(703)에 연계된 TLB 페이지를 제공한다. 그러나, RAMBUS 타입 채널로 나타나는 바와 같이 고속 상호연결의 출현으로, TLB 페이지 캐시(114)의 위치는 고속 버스(708)를 통해 DRAM(702)에 연결될 수 있는 어떤 위치도 포함할 수 있다.
도 8은 발명의 한 실시예에 따라 메모리 페이지를 프로세서에 보다 가깝게 이동시키기 위한 처리 과정(800)을 설명하는 순서도이다. 단계 802에서, 프로세서는 관련 가상 메모리 어드레스를 가지는 데이터 요청을 발생시킨다. 단계 804에서, 요청된 가상 메모리 페이지가 TLB의 관련 TLB 엔트리 내에 있는 지 여부에 관한 결정이 이루어진다. 요청된 메모리 페이지가 관련 TLB 엔트리를 가지지 않는다고 결정될 경우, 단계806에서 가상 메모리 어드레스는 페이지 표를 이용하여 물리적 메모리 어드레스로 변환된다. 동시에 단계 808에서, TLB는 가상 메모리-물리적 메모리 변환에 상응하는 새 TLB 엔트리로 갱신된다. 단계 810에서, 새 TLB 엔트리에 상응하는 TLB 페이지는 프로세서에 더 가깝게 이동한다. 한 실시예에서, TLB 페이지는 메인 메모리와 캐시 메모리 사이에 위치하는 국부 TLB 페이지 캐시로 이동된다.
단계 804에서 요청된 메모리 페이지가 TLB에 관련 TLB 엔트리를 가진다고 결정될 경우, 단계 812에서, 요청된 메모리 페이지가 TLB 페이지 캐시로부터 검색된다. 어느 경우에도, 검색된 페이지에 대한 바람직한 데이터 요소는 처리를 위해 프로세서로 이동된다.

Claims (10)

  1. 메인 메모리와 캐시 메모리를 가지는 가상 메모리 기반 시스템에서 메모리 접근 호출시간을 감소시키는 방법으로서, 상기 방법은,
    - 프로세서에 의해 관련 가상 메모리 어드레스를 가지는 데이터 요청을 발생시키고,
    - 요청된 가상 메모리 어드레스가 TLB에 관련 TLB 엔트리를 가지는 지를 결정하며, 이때 TLB 엔트리는 TLB 페이지 캐시에 포함된 TLB 페이지를 가리키고, TLB 페이지는 요청 데이터를 포함하며,
    - 요청된 가상 메모리 어드레스가 TLB에서 관련 TLB 엔트리를 가진다고 결정될 때, TLB 페이지 캐시로부터 요청 데이터를 검색하고, 그래서 검색된 데이터가 프로세서에 시간적으로 가깝게 이동하는, 이상의 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 상기 방법은,
    - 요청된 메모리 페이지가 관련 TLB 엔트리를 가지지 않는다고 결정될 경우 가상 메모리 어드레스를 물리적 메모리 어드레스로 변환하고,
    - 가상 메모리-물리적 메모리 변환에 상응하는 새 TLB 엔트리로 TLB를 갱신하며,
    - 갱신과 동시에, 또는 갱신 후 가능한 빨리, 프로세서에 시간적으로 가깝게새 TLB 엔트리에 상응하는 TLB 페이지를 이동시키는, 이상의 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서, 변환이 페이지 표를 이용하여 실행되는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, TLB 페이지 캐시는 메인 메모리와 캐시 메모리 사이에 수직구조로 위치하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서, 새 TLB 페이지가 TLB 미스 이벤트와 연계될 때, 새 TLB 페이지가 TLB 페이지 캐시로 이동하는 것을 특징으로 하는 방법.
  6. 가상 메모리 기반 연산 시스템으로서,
    상기 시스템은 프로세서와 수직 구조의 시스템 메모리를 포함하며,
    상기 프로세서는 실행 명령을 실행하기 위해 적절히 배치되고,
    상기 시스템 메모리는 소프트웨어 프로그램 형태로 다수의 실행 명령을 저장하기 위해 프로세서에 연결되며, 높은 레벨의 시스템 메모리 성분이 낮은 레벨의 시스템 메모리 성분보다 프로세서에 시간상으로 가깝도록 상기 시스템 메모리가 조직화되고,
    상기 시스템 메모리는 메인 메모리, 캐시 메모리, TLB 페이지 캐시를 포함하며,
    상기 메인 메모리는 다수의 실행 명령의 중요부를 저장하도록 적절하게 배열되고,
    상기 캐시 메모리는 가장 최근 사용된 실행 명령 세트를 저장하기 위해 메인 메모리에 연결되며, 캐시 메모리는 메인 메모리에 비해 프로세서에 시간상으로 가깝고,
    상기 TLB 페이지 캐시는 TLB 엔트리에 의해 지정되는 TLB 페이지를 저장하도록 배열되고, 이때 TLB 페이지 캐시는 시간상으로 캐시 메모리와 메인 메모리 사이에 위치하는 것을 특징으로 하는 가상 메모리 기반 연산 시스템.
  7. 제 6 항에 있어서, 상기 시스템은 메모리 제어기를 추가로 포함하고, 상기 메모리 제어기는 시스템 메모리와 프로세서간 트래픽을 제어하기 위해 시스템 메모리에 프로세서를 연결하는 것을 특징으로 하는 시스템.
  8. 제 7 항에 있어서, 프로세서에 포함된 우선 변환 참조 버퍼(TLB)는 가장 최근에 변환된 가상 어드레스-물리적 어드레스 세트를 저장하기 위해 적절히 배열되고, 이때 특정 가상 어드레스-물리적 어드레스 변환은 TLB 엔트리 형태를 취하는 것을 특징으로 하는 시스템.
  9. 제 7 항에 있어서, 메모리 제어기에 포함된 우선 변환 참조 버퍼(TLB)는 가장 최근에 변환된 가상 어드레스-물리적 어드레스 세트를 저장하도록 적절히 배열되고, 이때 특정 가상 어드레스-물리적 어드레스 변환은 TLB 엔트리 형태를 취하는 것을 특징으로 하는 시스템.
  10. 제 7 항에 있어서, TLB 페이지는 TLB 페이지 캐시와 같은 크기인 것을 특징으로 하는 시스템.
KR1020017009368A 1999-01-28 2000-01-27 가상 메모리 시스템에서의 메모리 접근 개선 기술 KR20010101693A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11788699P 1999-01-28 1999-01-28
US60/117,886 1999-01-28
PCT/US2000/002403 WO2000045271A1 (en) 1999-01-28 2000-01-27 Techniques for improving memory access in a virtual memory system

Publications (1)

Publication Number Publication Date
KR20010101693A true KR20010101693A (ko) 2001-11-14

Family

ID=22375347

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020017009368A KR20010101693A (ko) 1999-01-28 2000-01-27 가상 메모리 시스템에서의 메모리 접근 개선 기술
KR1020017009370A KR20010101695A (ko) 1999-01-28 2000-01-27 가상 메모리 시스템에서의 메모리 접근 개선 기술
KR1020017009369A KR20010101694A (ko) 1999-01-28 2000-01-27 가상 메모리 시스템에서의 메모리 접근 개선 기술

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020017009370A KR20010101695A (ko) 1999-01-28 2000-01-27 가상 메모리 시스템에서의 메모리 접근 개선 기술
KR1020017009369A KR20010101694A (ko) 1999-01-28 2000-01-27 가상 메모리 시스템에서의 메모리 접근 개선 기술

Country Status (7)

Country Link
US (1) US6442666B1 (ko)
EP (3) EP1196850B1 (ko)
JP (3) JP2002536715A (ko)
KR (3) KR20010101693A (ko)
CN (3) CN1352771A (ko)
AU (3) AU3693800A (ko)
WO (2) WO2000045267A1 (ko)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674441B1 (en) * 2000-07-26 2004-01-06 Ati International, Srl Method and apparatus for improving performance of an accelerated graphics port (AGP) device
SE0003398D0 (sv) * 2000-09-22 2000-09-22 Ericsson Telefon Ab L M Optimization of a pipelined processor system
US7203730B1 (en) 2001-02-13 2007-04-10 Network Appliance, Inc. Method and apparatus for identifying storage devices
DE60237583D1 (de) * 2001-02-13 2010-10-21 Candera Inc Failover-verarbeitung in einem speicherungssystem
US6622211B2 (en) * 2001-08-15 2003-09-16 Ip-First, L.L.C. Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
US7032136B1 (en) 2001-09-07 2006-04-18 Network Appliance, Inc. Auto regression test for network-based storage virtualization system
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US7112884B2 (en) * 2002-08-23 2006-09-26 Ati Technologies, Inc. Integrated circuit having memory disposed thereon and method of making thereof
US7062610B2 (en) * 2002-09-30 2006-06-13 Advanced Micro Devices, Inc. Method and apparatus for reducing overhead in a data processing system with a cache
US6986016B2 (en) * 2002-09-30 2006-01-10 International Business Machines Corporation Contiguous physical memory allocation
US7089396B2 (en) * 2002-10-10 2006-08-08 International Business Machines Corporation Method and profiling cache for management of virtual memory
US7752294B2 (en) * 2002-10-28 2010-07-06 Netapp, Inc. Method and system for dynamic expansion and contraction of nodes in a storage area network
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
CN1311366C (zh) * 2003-05-22 2007-04-18 群联电子股份有限公司 快闪存储器的平行双轨使用方法
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US7171514B2 (en) * 2003-11-20 2007-01-30 International Business Machines Corporation Apparatus and method to control access to logical volumes using parallel access volumes
US7117337B2 (en) * 2004-02-19 2006-10-03 International Business Machines Corporation Apparatus and method for providing pre-translated segments for page translations in segmented operating systems
CN100414518C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 改进的虚拟地址变换方法及其装置
CN100414519C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 一种从虚拟地址向物理地址变换的方法及其装置
EP1872229A4 (en) * 2005-04-07 2017-08-02 Insightful Corporation Method and system for handling large data sets in a statistical language
EP1717708B1 (en) * 2005-04-29 2010-09-01 STMicroelectronics Srl An improved cache memory system
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US7805588B2 (en) * 2005-10-20 2010-09-28 Qualcomm Incorporated Caching memory attribute indicators with cached memory data field
US8909946B2 (en) 2005-11-15 2014-12-09 Microsoft Corporation Efficient power management of a system with virtual machines
US20080282055A1 (en) * 2005-12-29 2008-11-13 Rongzhen Yang Virtual Translation Lookaside Buffer
CN100462941C (zh) * 2006-01-26 2009-02-18 深圳艾科创新微电子有限公司 一种实现可配置risc cpu中的存储器空间的方法
US8615643B2 (en) 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
US8694712B2 (en) * 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
US8185716B2 (en) * 2007-10-22 2012-05-22 Qimonda Ag Memory system and method for using a memory system with virtual address translation capabilities
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
CN102110282A (zh) * 2011-03-14 2011-06-29 北京播思软件技术有限公司 一种嵌入式设备的屏幕绘图方法及系统
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
CN103116556B (zh) * 2013-03-11 2015-05-06 无锡江南计算技术研究所 内存静态划分虚拟化方法
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
KR101821633B1 (ko) 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US20160103766A1 (en) * 2013-07-01 2016-04-14 Hewlett-Packard Development Company, L.P. Lookup of a data structure containing a mapping between a virtual address space and a physical address space
JP6088951B2 (ja) * 2013-09-20 2017-03-01 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
WO2016122585A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Modifying characteristics of a memory segment
CN105373456B (zh) * 2015-11-19 2018-06-29 英业达科技有限公司 降低缓存命中率的内存测试方法
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
US10847196B2 (en) 2016-10-31 2020-11-24 Rambus Inc. Hybrid memory module
WO2019074743A1 (en) 2017-10-12 2019-04-18 Rambus Inc. NON-VOLATILE PHYSICAL MEMORY WITH DRAM CACHE MEMORY
KR20200123912A (ko) * 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
EP0471462B1 (en) * 1990-08-06 1998-04-15 NCR International, Inc. Computer memory operating method and system
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5630097A (en) * 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JP3135795B2 (ja) * 1994-09-22 2001-02-19 東芝マイクロエレクトロニクス株式会社 ダイナミック型メモリ
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US5933593A (en) * 1997-01-22 1999-08-03 Oracle Corporation Method for writing modified data from a main memory of a computer back to a database
US5996055A (en) 1997-11-26 1999-11-30 Digital Equipment Corporation Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space

Also Published As

Publication number Publication date
JP2002536717A (ja) 2002-10-29
JP2002536716A (ja) 2002-10-29
EP1181644A1 (en) 2002-02-27
US6442666B1 (en) 2002-08-27
EP1157335A1 (en) 2001-11-28
AU3352800A (en) 2000-08-18
WO2000045271A1 (en) 2000-08-03
AU3693800A (en) 2000-08-18
CN1160631C (zh) 2004-08-04
KR20010101694A (ko) 2001-11-14
CN1158607C (zh) 2004-07-21
WO2000045271A9 (en) 2001-10-04
CN1347526A (zh) 2002-05-01
JP2002536715A (ja) 2002-10-29
WO2000045270A2 (en) 2000-08-03
EP1157335A4 (en) 2004-05-26
KR20010101695A (ko) 2001-11-14
EP1196850A4 (en) 2004-05-26
WO2000045267A1 (en) 2000-08-03
EP1181644A4 (en) 2004-05-19
CN1352772A (zh) 2002-06-05
AU3693900A (en) 2000-08-18
EP1196850A1 (en) 2002-04-17
CN1352771A (zh) 2002-06-05
EP1196850B1 (en) 2016-08-24
WO2000045270A8 (en) 2001-03-15

Similar Documents

Publication Publication Date Title
KR20010101693A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US6006312A (en) Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
EP0780769B1 (en) Hybrid numa coma caching system and methods for selecting between the caching modes
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US6782453B2 (en) Storing data in memory
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US5751990A (en) Abridged virtual address cache directory
US20020099913A1 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
US8037281B2 (en) Miss-under-miss processing and cache flushing
US6243791B1 (en) Method and architecture for data coherency in set-associative caches including heterogeneous cache sets having different characteristics
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JP3449487B2 (ja) 変換索引緩衝機構
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
JP3262519B2 (ja) 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム
JP3431878B2 (ja) マルチスレッド・プロセッサの命令キャッシュ
JPH08314802A (ja) キャッシュシステム、キャッシュメモリアドレスユニット、およびキャッシュメモリを動作させる方法
WO2000045270A1 (en) Techniques for improving memory access in a virtual memory system
KR20040047398A (ko) 캐쉬 메모리를 이용한 데이터 억세스 방법
JPH0793220A (ja) 仮想記憶管理方式
JPH11296432A (ja) 情報処理装置とメモリ管理方式

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid