KR20030034224A - 공용 변환 어드레스 캐싱 방법 - Google Patents

공용 변환 어드레스 캐싱 방법 Download PDF

Info

Publication number
KR20030034224A
KR20030034224A KR10-2003-7004443A KR20037004443A KR20030034224A KR 20030034224 A KR20030034224 A KR 20030034224A KR 20037004443 A KR20037004443 A KR 20037004443A KR 20030034224 A KR20030034224 A KR 20030034224A
Authority
KR
South Korea
Prior art keywords
memory
address
graphics
block
controller hub
Prior art date
Application number
KR10-2003-7004443A
Other languages
English (en)
Other versions
KR100571730B1 (ko
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 KR20030034224A publication Critical patent/KR20030034224A/ko
Application granted granted Critical
Publication of KR100571730B1 publication Critical patent/KR100571730B1/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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • 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
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)

Abstract

메모리 컨트롤러 허브는 데이터의 그래픽 연산을 수행하도록 구조된 그래픽 서브 시스템과, 그래픽 서브스템에서 그래픽 데이터를 기억하기 위해 이용 가능하고 메모리 컨트롤러 허브에 연결된 그래픽 컨트롤러에서 그래픽 데이터를 기억하기 위해 이용 가능한 물리 메모리에서의 위치를 기억하도록 구성된 캐시를 포함한다.

Description

공용 변환 어드레스 캐싱 방법{SHARED TRANSLATION ADDRESS CACHING}
마이크로컴퓨터 시스템은 대개 컴퓨터 시스템 메모리와, 중앙 처리 장치(CPU) 및 주변 장치간의 데이터 전송을 제어하고 조정하는 하나 이상의 메모리 컨트롤러를 포함한다. 그래픽 애플리케이션은 그래픽 컨트롤러로서 알려진 주변 장치에 의해 지원되고, 그래픽 컨트롤러는 이 그래픽 컨트롤러와 시스템 메모리 및 CPU 사이에서 데이터를 전송하기 위해 메모리 컨트롤러 허브를 필요로 한다.
마이크로컴퓨터 시스템에 연관된 설계 사항으로서 2차원(2D), 3차원(3D) 및 비디오 이미지(이하에서 총괄하여 "그래픽"이라고 부름) 처리시의 화질이 중요하다. 고성능의 그래픽 처리는 프로세서 위주의 계산과 대량 데이터의 고속 처리를 필요로 한다. 전체 시스템의 비용을 절감하고 컴퓨터 시스템의 용량의 업그레이드가 가능하면서 고성능의 그래픽 처리를 달성하기 위해 여러가지 설계를 실시하고 있다.
본 발명은 메모리 컨트롤러 허브에서의 캐싱 방법에 관한 것이다.
도 1은 컴퓨터 시스템의 개략적인 블록도이다.
도 2는 그래픽 컨트롤러 허브의 개략적인 블록도이다.
도 3과 도 4는 그래픽 메모리 컨트롤러 허브의 가속 그래픽 포트(AGP) 기능에 대한 개략적인 블록도이다.
컴퓨터 시스템은 그래픽 데이터를 기억하는 지역 메모리에 연결된 그래픽 컨트롤러를 포함할 수 있어, 그래픽 컨트롤러와 시스템 메모리 및/또는 CPU 사이에전송되어야 하는 데이터양이 감소된다. 그래픽 컨트롤러가 이용할 수 있는 지역 메모리의 양이 증대하면 그래픽 성능은 향상되겠지만, 지역 그래픽 메모리가 비교적 고가이기 때문에 컴퓨터 시스템의 비용 역시 증가한다. 그러나, 전용 버스, 예컨대 AGP(Accelerated Graphics Port)를 이용하여 컨트롤러와 메모리 컨트롤러 허브를 연결하면 더 적은 지역 메모리로 동일한 그래픽 성능을 달성할 수 있다. AGP를 이용함으로써, 시스템 메모리의 일부를 전용 지역 그래픽 메모리로서 사용하여, 요구되는 지역 메모리의 양을 줄이고 전체 시스템 비용도 절감할 수 있다.
주변 그래픽 컨트롤러를 제거하고 그 기능을 메모리 컨트롤러 허브에 통합함으로써, 또한 컴퓨터 시스템 비용을 줄일 수 있다. 이러한 구성에 있어서, 메모리 컨트롤러 허브는 메모리 제어 및 전송 기능과 함께 그래픽 처리 기능을 수행하기 때문에, 그래픽/메모리 컨트롤러 허브로서 우수하게 평가된다. 또한, 메모리 컨트롤러 허브는 음극선관(CRT)과 플랫 패널(flat panel) 모니터 등의 외부 장치에 그래픽 신호를 전송하기 위해 하나 이상의 출력 포트를 포함한다. 그래픽/메모리 컨트롤러 허브는 그래픽 데이터를 기억하는 지역 메모리에 연결될 수 있다.
컴퓨터 시스템에서, 메모리 컨트롤러 허브는 내부 그래픽 컨트롤러와 통합될 수 있고 AGP 포트를 통해 외부 그래픽 장치와 인터페이스할 수 있다. 메모리 컨트롤러 허브는 그래픽과 메모리 기능을 모두 제어하기 때문에, 그래픽/메모리 컨트롤러 허브(GMCH)라고 부른다. GMCH는 AGP 인터페이스를 통해 내부 그래픽 처리와 가변(scalable) 그래픽 성능 모두를 제공한다.
GMCH는 2개의 상호 배타적인 모드, 즉 GMCH가 외부 그래픽 컨트롤러와 인터페이스하는 능력을 사용하고 내부 그래픽 기능은 불능되는 경우인 AGP 모드와, GMCH가 내부 그래픽 능력을 사용하고 외부 그래픽 컨트롤러와 인터페이스하는 능력은 불능되는 경우인 Gfx 모드 중 하나로 이용될 수 있다. Gfx 모드에서, GMCH는 AGP 포트를 통해 지역 메모리 모듈과 여전히 인터페이스하여 내부 그래픽에 사용되는 추가 그래픽 메모리를 제공한다. GMCH가 AGP 모드 또는 Gfx 모드 중 어느 모드에서 동작할 것인지는 컴퓨터의 스타트업 순서 중에 자동적으로 결정되어 설정될 수 있다.
도 1은 GMCH를 구현할 수 있는 예시적인 컴퓨터 시스템(1)을 도시하고 있다. 컴퓨터 시스템(1)은 시스템 메모리 컨트롤러 허브를 내장한 GMCH(3)에 연결된 마이크로프로세서(예컨대, CPU)(2)를 포함한다. GMCH(3)를 "칩셋" 또는 "핵심 로직"이라고 부르기도 한다. GMCH(3)는 CPU(2)와 시스템 메모리(4)간에, CPU(2)와 버스, 예컨대 PCI(peripheral component interconnect) 또는 HublinkTM버스(5)간에 인터페이스를 제공한다. 다양한 입출력(I/O) 장치(6)가 PCI 버스(5)에 연결되고, 이PCI 버스는 입출력 컨트롤러 허브(ICH)를 통해 GMCH(3)에 연결된다. 컴퓨터 시스템(1)은 또한 그래픽 장치(7)를 포함할 수 있으며, 이 그래픽 장치는 지역 메모리(8)에 연결된 그래픽 컨트롤러일 수 있거나, GMCH(3)의 내부 그래픽 기능을 위해 외부의 지역 메모리를 제공하는 AGP 인라인 메모리 모듈(AIMM)일 수 있다. 공용 AGP/지역 메모리 인터페이스(9)는 GMCH(3)와 그래픽 장치(7) 사이에 전용 인터페이스 버스를 제공한다. 그래픽 및 비디오 신호는, 컴퓨터 시스템 안에 그래픽 장치가 있다면 그래픽 장치(7)로부터 디스플레이 장치(10)에 전달될 수 있고, 그래픽 장치(7)가 없다면 GMCH(3)로부터 디스플레이 장치(10)에 전달될 수 있다.
도 2는 AGP 인터페이스(21)에 연결된 CPU 인터페이스(20), 지역 메모리 인터페이스(22), 입출력(I/O) 허브 인터페이스(23) 및 시스템 메모리 인터페이스(24)를 포함하는, GMCH(3)의 기타 세부 사항을 도시하고 있다. 그래픽 기능은, 내부 그래픽 구성 요소(25)에 의해 수행될 수 있으며, 이 내부 그래픽 구성 요소는 데이터의 흐름을 관리하는 데이트 스트림 및 디스패치 컨트롤러(26)와 데이터의 그래픽 연산을 수행하는 다양한 그래픽 엔진(27)을 포함한다.
도 3과 도 4를 참조하면, AGP 트랜잭션은 시스템 메모리(4)로의 데이터 전송 요청 또는 시스템 메모리(4)로부터의 데이터 전송 요청이 데이터 전송 자체로부터 적시에 접속되지 않는 분할 트랜잭션 방식으로 운영된다. AGP 호환(complaint) 그래픽 장치(버스 마스터)(7a)는 액세스 요청에 의해 트랜잭션을 시작한다. AGP 인터페이스(21)가 대응하는 데이터 전송을 나중에 지시함으로써 그 요청에 응답하므로, 발생할 데이터 전송을 대기하는 동안 AGP 그래픽 장치(7a)는 여러 액세스 요청을파이프라인으로 처리할 수 있다. 파이프라인 처리의 결과에 의해, 여러 판독 및/또는 기록 액세스 요청이 요청 큐(100)에서 동시에 대기 중일 수 있다. 액세스 요청은 AGP(9)의 어드레스/데이터 버스(AD 버스)(105, 107)를 통해 파이프라인 처리되거나 AGP(9)의 사이드밴드 어드레스 라인(107)를 통해 전송되어 요청큐(100)에 의해 수신될 수 있다.
스케쥴러(102)는 요청 큐(100)에 있는 액세스 요청을 처리한다. 판독 데이터는 시스템 메모리(4)로부터 입수되어 판독 데이터 반환 큐(104)를 통해 AGP(9)의 AD 버스(105)를 거쳐 스케쥴러(102)의 개시시에 반환된다. 기록 데이터는 기록 데이터 큐(108)의 공간을 이용할 수 있을 때 AGP 호환 그래픽 컨트롤러(7)에 의해 스케쥴러(102)의 방향으로 제공된다. 따라서, AGP 트랜잭션은 일반적으로 삽입된 액세스 요청과 데이터 전송을 포함한다.
그래픽 데이터는, GMCH(3)가 AGP 모드에서 외부의 AGP 호환 그래픽 컨트롤러(7a)와 함께 동작할 때나, GMCH(3)가 Gfx 모드에서 내부 그래픽 기능을 이용하여 동작할 때 시스템 메모리(4)에 저장될 수 있다. 시스템 메모리(4)를 이용해서 그래픽 데이터를 저장할 경우, GMCH(3)는 가상 메모리 어드레싱 방식을 이용해서 그래픽 데이터를 액세스한다. AGP 모드에서, 물리 시스템 메모리(4)의 어드레스가 그래픽 컨트롤러(7a)에 의해 액세스될 수 있는 32 MB 또는 64 MB의 그래픽 어퍼처(graphic aperture)가 정의된다. 그래픽 어퍼처는 AGP 그래픽 컨트롤러(7a)가 사용하도록 할당된 물리 시스템 메모리의 어드레스가 연속적이지 않을지라도, 그래픽 컨트롤러(7a)에게는 32 MB 또는 64 MB의 연속 블록의 선형 메모리로서 간주된다.그래픽 어퍼처에서 메모리 어드레스의 연속 블록에 의해 그래픽 컨트롤러(7a)는 가상 메모리에서 단일 개체와 같이, 텍스처 비트맵(통상 1 KB 내지 128 KB)과 같은 대형 데이터 구조에 신속하게 액세스할 수 있다.
그래픽 컨트롤러(7a)로부터의 액세스 요청은 어퍼처 범위내에서 가상 메모리를 어드레싱하고, 이어서, GMCH(3)는 그 어퍼처 내에서 액세스 요청을 물리 시스템 메모리(4)에 포워드한다. 그래픽 컨트롤러(7a)에서 보낸 최초 발행된 어드레스는 그래픽 어드레스 리맵핑 스트림(GART)을 이용해서 데이터 스트림 컨트롤러(26)내에서 변환된다. GART는 어퍼처 범위에 있는 가상 메모리 어드레스를 대응하는 물리 메모리 어드레스에 매칭시키는 테이블이다. GART는 GMCH(3)에게 알려진 위치에서 시스템 메모리에 저장되는데 그 위치가 GMCH(3)내의 레지스터 안에 기억되기 때문이다. 어드레스는 4 KB 페이지마다 그래픽 어퍼처로부터 시스템 메모리에 매핑되고, GART의 각 엔트리는 하나의 4 KB 페이지를 변환한다. 따라서, 액세스 요청이 그래픽 컨트롤러(7a)로부터 그래픽 어퍼처에 수신될 때, 그 요청은 적절한 GART 엔트리가 시스템 메모리(4)로부터 페치되는 동안 순간적으로 지연된다. 그래픽 어퍼처내에서 액세스 요청의 어드레스는 페치된 변환 테이블 엔트리를 이용해서 변환되고 그 요청은 페치된 GART 엔트리에 의해 식별된 시스템 메모리(4)의 물리 어드레스에 포워드된다.
AGP 그래픽 컨트롤러(7a)로부터 시스템 메모리(4)로의 메모리 액세스 요청을 고속으로 처리하기 위해, GMCH(3)에 GART 엔트리 캐시(28)를 설치하여 GART로부터 최대 4개의 엔트리를 지역적으로 기억시킨다. GART 엔트리 캐시(28)를 변환 색인버퍼(TLB)라고도 한다. 먼저 시스템 메모리(4)에 있는 GART로부터 GART 엔트리를 검색하여 가상 어드레스를 물리 어드레스로 변환할 경우, 그 엔트리는 데이터 스트림 컨트롤러(26)에 상주하는 TLB(28)에 저장될 수 있다. 다음 번에 그래픽 컨트롤러(7a)로부터 어드레스 요청이 동일한 GART 엔트리를 이용할 필요가 있다면, 이격 위치한 시스템 메모리(4)에 있는 GART보다 지역 TLB(28)로부터 그 엔트리를 검색할 수 있다. GART 엔트리를 TLB(28)에 저장할 수 있고 각 GART 엔트리가 4 KB 페이지의 메모리 어드레스로의 액세스를 제공하기 때문에, 신규 GART 엔트리를 시스템 메모리(4)로부터 검색하기 전에, TLB(28)에 지역적으로 저장된 GRAT 엔트리를 이용해서 그래픽 컨트롤러(7A)로부터 최대 16 KB의 액세스 요청을 변환할 수 있다. 데이터 스트림 컨트롤러(26)가 TLB(28)에 지역적으로 저장되지 않은 GART 엔트리를 이용해야 한다면, 시스템 메모리(4)로부터 필요한 엔트리를 검색한 후 추후 사용을 위해 TLB(28)에 저장함으로써, 이전에 TLB(28)에 기억된 엔트리를 교체할 수 있다.
도 2를 다시 참조하면, Gfx 모드에서, GMCH(3)의 내부 그래픽 엔진(27)은 물리 시스템 메모리(4)나 AIMM의 어드레스가 내부 그래픽 엔진(27)에 의해 액세스될 수 있는 64 MB의 논리 어드레스 공간을 정의한다. 논리 어드레스 공간은 물리 시스템 메모리(4)의 어드레스나, 내부 그래픽 엔진(27)이 사용하도록 할당된 AIMM의 어드레스가 연속적이지 않아도, 그래픽 컨트롤러(7a)에게는 32 MB 또는 64 MB의 연속 블록의 선형 메모리로서 간주된다. AGP 모드에 이용되는 그래픽 어퍼처와 같이, 논리 어드레스 공간에서 연속 블록의 메모리 어드레스에 의해 내부 그래픽 엔진(27)은 가상 메모리에서 대형 데이터 구조를 단일 개체처럼 신속하게 액세스할 수 있다.
내부 그래픽 엔진(27)으로부터의 액세스 요청은 그래픽 변환 테이블(GTT)을 이용해서 데이터 스트림 컨트롤러(26)내에서 변환되며, 이 테이블은 GMCH(3)내에 있는 레지스터안에서 GMCH(3)가 기억하는 위치로 시스템 메모리에 저장된다. 논리 어드레스 공간내의 어드레스는 4 KB 페이지마다 시스템 메모리 또는 AIMM에 매핑되고 GTT의 각 엔트리는 하나의 4 KB 페이지를 변환한다. GTT 엔트리는, AIMM 카드가 있다면, 액세스 요청이 시스템 메모리(4) 또는 AIMM 메모리에 매핑되는 지의 여부를 추가로 결정한다. GART 엔트리를 캐싱하기 위해 GMCH(3)에서 사용되는 것과 동일한 TLB(28)를, 물리 메모리로의 액세스를 고속화하기 위해 GTT로부터 지역적으로 최대 4개의 엔트리를 저장하는데 사용할 수 있다. TLB(28)에 저장될 수 있는 GART 엔트리나 GTT 엔트리 수가 TLB의 물리적 다이 영역 크기에 따라 제한되기 때문에, AGP 모드에서 동일한 TLB를 사용하여 GART 엔트리를 저장하고 Gfx 모드에서 GTT 엔트리를 저장하면, TLB에 저장될 수 있는 GART나 GTT 엔트리의 수는 GART와 GTT 엔트리마다 개별 TLB를 사용할 때 저장할 수 있는 수와 비교해서 사실상 2배가 된다. 또한, 동일한 TLB를 사용하여 AGP 모드에서 GART 엔트리를 저장하고 Gfx 모드에서 GTT 엔트리를 저장하면 단일 논리로 TLB의 양쪽 기능을 지원하기 때문에 GMCH(3)의 내부 논리가 간단해진다.
다른 실시예들도 첨부하는 청구범위내에 포함된다.

Claims (16)

  1. 메모리 컨트롤러 허브에 있어서,
    데이터의 그래픽 연산을 수행하도록 구성된 그래픽 서브시스템과,
    상기 그래픽 서브시스템에서 그래픽 데이터를 기억하기 위해 사용 가능하고 상기 메모리 컨트롤러 허브에 연결된 그래픽 컨트롤러에서 그래픽 데이터를 기억하기 위해 사용 가능한 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 캐시를 포함하는 메모리 컨트롤러 허브.
  2. 제1항에 있어서, 상기 그래픽 컨트롤러와 상기 메모리 컨트롤러 허브를 연결하는 전용 버스 인터페이스를 더 포함하는 메모리 컨트롤러 허브.
  3. 제2항에 있어서, 상기 전용 버스 인터페이스는 가속 그래픽 포트(AGP)를 포함하는 것인 메모리 컨트롤러 허브.
  4. 제1항에 있어서, 상기 그래픽 서브시스템에서 사용하는 선형 구조의 가상 메모리 어드레스 블록을 제공하도록 구성되어 있으며, 상기 캐시는 상기 선형 구조의 가상 메모리 어드레스 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 것인 메모리 컨트롤러 허브.
  5. 제1항에 있어서, 상기 그래픽 컨트롤러에서 사용하는 선형 구조의 가상 메모리 어드레스 블록을 제공하도록 구성되어 있으며, 상기 캐시는 상기 선형 구조의 가상 메모리 어드레스 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 것인 메모리 컨트롤러 허브.
  6. 제1항에 있어서, 상기 그래픽 컨트롤러에서 사용하는 선형 구조의 가상 메모리 어드레스의 제1 블록 및 상기 그래픽 서브시스템에서 사용하는 선형 구조의 가상 메모리 어드레스의 제2 블록을 제공하도록 구성되며, 상기 캐시는 상기 선형 구조의 가상 메모리 어드레스의 제1 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스 및 상기 선형 구조의 가상 메모리 어드레스의 제2 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 것인 메모리 컨트롤러 허브.
  7. CPU와,
    디스플레이 장치와,
    비디오 데이터와 비디오가 아닌 데이터를 기억하도록 구성된 시스템 메모리와,
    상기 CPU와 연결되고 상기 시스템 메모리에 연결되는 메모리 컨트롤러 허브를 포함하고, 상기 메모리 컨트롤러 허브는,
    그래픽 데이터의 그래픽 연산을 수행하도록 구성된 그래픽 서브시스템과,
    상기 그래픽 서브시스템에서 그래픽 데이터를 기억하기 위해 이용 가능하고 상기 메모리 컨트롤러 허브에 연결된 그래픽 컨트롤러에서 그래픽 데이터를 기억하기 위해 이용 가능한 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 캐시를 포함하는 것인 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 그래픽 컨트롤러와 상기 메모리 컨트롤러 허브를 연결하는 전용 버스 인터페이스를 더 포함하는 것인 컴퓨터 시스템.
  9. 제8항에 있어서, 상기 전용 버스 인터페이스는 가속 그래픽 포트(AGP)를 포함하는 것인 컴퓨터 시스템.
  10. 제7항에 있어서, 상기 메모리 컨트롤러 허브는 상기 그래픽 서브시스템에서 사용하는 상기 선형 구조의 가상 메모리 어드레스 블록을 제공하도록 구성되고,
    상기 캐시는 상기 선형 구조의 가상 메모리 어드레스 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 것인 컴퓨터 시스템.
  11. 제7항에 있어서, 상기 메모리 컨트롤러 허브는 상기 그래픽 컨트롤러에서 사용하는 상기 선형 구조의 가상 메모리 어드레스 블록을 제공하도록 구성되고,
    상기 캐시는 상기 선형 구조의 가상 메모리 어드레스 블록내의 어드레스에대응하는 물리 메모리에서의 위치 어드레스를 기억하도록 구성된 것인 컴퓨터 시스템.
  12. 제7항에 있어서, 상기 메모리 컨트롤러 허브는 상기 그래픽 컨트롤러에서 사용하는 선형 구조의 가상 메모리 어드레스의 제1 블록 및 상기 그래픽 서브 시스템에서 사용하는 선형 구조의 가상 메모리 어드레스의 제2 블록을 제공하도록 구성되며,
    상기 캐시는 상기 선형 구조의 가상 메모리 어드레스의 제1 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스 및 상기 선형 구조의 가상 메모리 어드레스의 제2 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 데이터를 기억하도록 구성된 것인 컴퓨터 시스템.
  13. 메모리 컨트롤러 허브 캐시에 위치의 어드레스를 물리적으로 저장하는 방법으로서, 물리 메모리에서의 위치가 상기 메모리 컨트롤러 허브에 연결된 그래픽 컨트롤러에서 사용 가능하거나 상기 메모리 컨트롤러 허브의 그래픽 서브시스템에서 사용 가능하게 하는 위치 어드레스 저장 방법.
  14. 제13항에 있어서,
    상기 그래픽 서브시스템에서 사용하도록 선형 구조의 가상 메모리 어드레스 블록을 상기 메모리 컨트롤러 허브에 제공하는 단계와, 상기 선형 구조의 가상 메모리 어드레스의 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 캐시에 저장하는 단계를 더 포함하는 것인 위치 어드레스 저장 방법.
  15. 제13항에 있어서,
    상기 그래픽 컨트롤러에서 사용하도록 선형 구조의 가상 메모리 어드레스 블록을 상기 메모리 컨트롤러 허브에 제공하는 단계와,
    상기 선형 구조의 가상 메모리 어드레스의 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 캐시에 저장하는 단계를 더 포함하는 것인 위치 어드레스 저장 방법.
  16. 제13항에 있어서,
    상기 그래픽 컨트롤러에서 사용하도록 선형 구조의 가상 메모리 어드레스의 블록을 상기 메모리 컨트롤러 허브에 제공하는 단계와, 상기 선형 구조의 가상 메모리 어드레스의 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 캐시에 저장하는 단계; 또는
    상기 그래픽 서브시스템에서 사용하도록 선형 구조의 가상 메모리 어드레스의 블록을 상기 메모리 컨트롤러 허브에 제공하는 단계와, 상기 선형 구조의 가상 메모리 어드레스 블록내의 어드레스에 대응하는 물리 메모리에서의 위치 어드레스를 캐시에 저장하는 단계를 더 포함하는 것인 위치 어드레스 저장 방법.
KR1020037004443A 2000-09-29 2001-09-26 공용 변환 어드레스 캐싱 방법 KR100571730B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/676,844 US6859208B1 (en) 2000-09-29 2000-09-29 Shared translation address caching
US09/676,844 2000-09-29
PCT/US2001/030362 WO2002027499A2 (en) 2000-09-29 2001-09-26 Shared translation address caching

Publications (2)

Publication Number Publication Date
KR20030034224A true KR20030034224A (ko) 2003-05-01
KR100571730B1 KR100571730B1 (ko) 2006-04-18

Family

ID=24716246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037004443A KR100571730B1 (ko) 2000-09-29 2001-09-26 공용 변환 어드레스 캐싱 방법

Country Status (11)

Country Link
US (2) US6859208B1 (ko)
EP (1) EP1325417B1 (ko)
JP (1) JP3810736B2 (ko)
KR (1) KR100571730B1 (ko)
CN (1) CN1503945B (ko)
AU (1) AU2001294840A1 (ko)
DE (1) DE60142841D1 (ko)
HK (1) HK1053716A1 (ko)
SG (1) SG129307A1 (ko)
TW (1) TW576967B (ko)
WO (1) WO2002027499A2 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859208B1 (en) * 2000-09-29 2005-02-22 Intel Corporation Shared translation address caching
TW512277B (en) * 2001-06-22 2002-12-01 Silicon Integrated Sys Corp Core logic of a computer system and control method of the same
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
US7073041B2 (en) * 2002-10-30 2006-07-04 Motorola, Inc. Virtual memory translation unit for multimedia accelerators
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7444637B2 (en) * 2003-02-18 2008-10-28 Microsoft Corporation Systems and methods for scheduling coprocessor resources in a computing system
US7421694B2 (en) * 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
US6947051B2 (en) * 2003-02-18 2005-09-20 Microsoft Corporation Video memory management
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
TW200634532A (en) * 2005-03-23 2006-10-01 Realtek Semiconductor Corp Apparatus and method of utilizing interface to load program code
US7616218B1 (en) * 2005-12-05 2009-11-10 Nvidia Corporation Apparatus, system, and method for clipping graphics primitives
JP5076317B2 (ja) * 2005-12-27 2012-11-21 ソニー株式会社 情報処理装置、情報処理方法及びそのプログラム
JP5111797B2 (ja) * 2006-06-29 2013-01-09 株式会社東芝 情報処理装置及び情報処理方法
US8594441B1 (en) 2006-09-12 2013-11-26 Nvidia Corporation Compressing image-based data using luminance
US8601223B1 (en) 2006-09-19 2013-12-03 Nvidia Corporation Techniques for servicing fetch requests utilizing coalesing page table entries
US8347064B1 (en) 2006-09-19 2013-01-01 Nvidia Corporation Memory access techniques in an aperture mapped memory space
US8352709B1 (en) 2006-09-19 2013-01-08 Nvidia Corporation Direct memory access techniques that include caching segmentation data
US8543792B1 (en) 2006-09-19 2013-09-24 Nvidia Corporation Memory access techniques including coalesing page table entries
US8700883B1 (en) 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8347065B1 (en) 2006-11-01 2013-01-01 Glasco David B System and method for concurrently managing memory access requests
US8607008B1 (en) * 2006-11-01 2013-12-10 Nvidia Corporation System and method for independent invalidation on a per engine basis
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
US8706975B1 (en) 2006-11-01 2014-04-22 Nvidia Corporation Memory access management block bind system and method
US8533425B1 (en) 2006-11-01 2013-09-10 Nvidia Corporation Age based miss replay system and method
US8724895B2 (en) 2007-07-23 2014-05-13 Nvidia Corporation Techniques for reducing color artifacts in digital images
US8373718B2 (en) 2008-12-10 2013-02-12 Nvidia Corporation Method and system for color enhancement with color volume adjustment and variable shift along luminance axis
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
US10241810B2 (en) 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
US20160139806A1 (en) * 2014-11-13 2016-05-19 Cavium, Inc. Independent Ordering Of Independent Transactions
US10013385B2 (en) 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests
US9569362B2 (en) 2014-11-13 2017-02-14 Cavium, Inc. Programmable ordering and prefetch
US10872458B1 (en) * 2019-09-06 2020-12-22 Apple Inc. Graphics surface addressing

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01191914A (ja) 1988-01-27 1989-08-02 Toshiba Corp コンピュータシステム
US5793996A (en) 1995-05-03 1998-08-11 Apple Computer, Inc. Bridge for interconnecting a computer system bus, an expansion bus and a video frame buffer
JPH0997214A (ja) 1995-09-29 1997-04-08 Internatl Business Mach Corp <Ibm> 補助プロセッサのためのアドレス変換を含む情報処理システム
US6104417A (en) * 1996-09-13 2000-08-15 Silicon Graphics, Inc. Unified memory computer architecture with dynamic graphics memory allocation
KR19980054412A (ko) 1996-12-27 1998-09-25 문정환 단일 메모리 구조의 병목현상을 개선한 그래픽 시스템
US5941968A (en) 1997-04-14 1999-08-24 Advanced Micro Devices, Inc. Computer system for concurrent data transferring between graphic controller and unified system memory and between CPU and expansion bus device
US6069638A (en) 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
US6052133A (en) * 1997-06-27 2000-04-18 S3 Incorporated Multi-function controller and method for a computer graphics display system
US5914730A (en) 1997-09-09 1999-06-22 Compaq Computer Corp. System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
WO1999028893A1 (en) 1997-12-01 1999-06-10 Mediaq, Inc. High performance, highly integrated computer architecture with extendible embedded memory
JP4022369B2 (ja) 1997-12-30 2007-12-19 マイクロン テクノロジー,インコーポレイテッド マルチメモリコントローラコンピュータシステム用加速グラフィックスポート
US6097402A (en) 1998-02-10 2000-08-01 Intel Corporation System and method for placement of operands in system memory
US6304244B1 (en) 1998-04-24 2001-10-16 International Business Machines Corporation Method and system for dynamically selecting video controllers present within a computer system
US6532019B1 (en) 1998-06-17 2003-03-11 Advanced Micro Devices, Inc. Input/output integrated circuit hub incorporating a RAMDAC
US6148357A (en) 1998-06-17 2000-11-14 Advanced Micro Devices, Inc. Integrated CPU and memory controller utilizing a communication link having isochronous and asynchronous priority modes
US6591347B2 (en) * 1998-10-09 2003-07-08 National Semiconductor Corporation Dynamic replacement technique in a shared cache
US6477623B2 (en) 1998-10-23 2002-11-05 Micron Technology, Inc. Method for providing graphics controller embedded in a core logic unit
GB9825107D0 (en) 1998-11-16 1999-01-13 Checkout Computer Systems Limi Multiple screen pc based systems
US6513099B1 (en) * 1998-12-22 2003-01-28 Silicon Graphics Incorporated Enhanced graphics cache memory
US6208273B1 (en) 1999-01-29 2001-03-27 Interactive Silicon, Inc. System and method for performing scalable embedded parallel data compression
US6275240B1 (en) 1999-05-27 2001-08-14 Intel Corporation Method and apparatus for maintaining load balance on a graphics bus when an upgrade device is installed
TW436694B (en) 1999-08-24 2001-05-28 Via Tech Inc System control chip and computer system having a multiplexed graphic bus architecture
US6374317B1 (en) * 1999-10-07 2002-04-16 Intel Corporation Method and apparatus for initializing a computer interface
US6667745B1 (en) * 1999-12-22 2003-12-23 Microsoft Corporation System and method for linearly mapping a tiled image buffer
US6496193B1 (en) * 1999-12-30 2002-12-17 Intel Corporation Method and apparatus for fast loading of texture data into a tiled memory
US6714957B1 (en) * 2000-01-04 2004-03-30 National Semiconductor Corporation System and method for efficient processing of denormal results as hardware exceptions
US6480200B1 (en) * 2000-06-09 2002-11-12 Hewlett-Packard Company Method and apparatus for deferred texture validation on a multi-tasking computer
US6859208B1 (en) 2000-09-29 2005-02-22 Intel Corporation Shared translation address caching

Also Published As

Publication number Publication date
SG129307A1 (en) 2007-02-26
HK1053716A1 (en) 2003-10-31
JP3810736B2 (ja) 2006-08-16
AU2001294840A1 (en) 2002-04-08
WO2002027499A3 (en) 2003-03-13
US6859208B1 (en) 2005-02-22
WO2002027499A2 (en) 2002-04-04
TW576967B (en) 2004-02-21
JP2004510250A (ja) 2004-04-02
CN1503945B (zh) 2010-04-28
DE60142841D1 (de) 2010-09-30
CN1503945A (zh) 2004-06-09
US20050122340A1 (en) 2005-06-09
US7145568B2 (en) 2006-12-05
KR100571730B1 (ko) 2006-04-18
EP1325417B1 (en) 2010-08-18
EP1325417A2 (en) 2003-07-09

Similar Documents

Publication Publication Date Title
KR100571730B1 (ko) 공용 변환 어드레스 캐싱 방법
US6618770B2 (en) Graphics address relocation table (GART) stored entirely in a local memory of an input/output expansion bridge for input/output (I/O) address translation
US6658531B1 (en) Method and apparatus for accessing graphics cache memory
US5914730A (en) System and method for invalidating and updating individual GART table entries for accelerated graphics port transaction requests
US5999198A (en) Graphics address remapping table entry feature flags for customizing the operation of memory pages associated with an accelerated graphics port device
US6195734B1 (en) System for implementing a graphic address remapping table as a virtual register file in system memory
US6750870B2 (en) Multi-mode graphics address remapping table for an accelerated graphics port device
USRE41413E1 (en) Computer system controller having internal memory and external memory control
KR101593107B1 (ko) 메모리 요청들을 처리하기 위한 시스템들 및 방법들
US20090307406A1 (en) Memory Device for Providing Data in a Graphics System and Method and Apparatus Thereof
US20080028181A1 (en) Dedicated mechanism for page mapping in a gpu
US6085292A (en) Apparatus and method for providing non-blocking pipelined cache
US5933158A (en) Use of a link bit to fetch entries of a graphic address remapping table
WO2005086096A2 (en) Embedded system with 3d graphics core and local pixel buffer
US6167498A (en) Circuits systems and methods for managing data requests between memory subsystems operating in response to multiple address formats
US20020171649A1 (en) Computer system controller having internal memory and external memory control
US11257278B2 (en) Graphics surface addressing
US6192457B1 (en) Method for implementing a graphic address remapping table as a virtual register file in system memory
US8700865B1 (en) Compressed data access system and method
US6067581A (en) Method for identifying the orignal source device in a transaction request initiated from address translator to memory control module and directly performing the transaction therebetween
US6301648B1 (en) Method and apparatus for processing memory accesses utilizing a TLB
US20010042183A1 (en) System for issuing device requests by proxy

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee