KR101427409B1 - 분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더 - Google Patents

분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더 Download PDF

Info

Publication number
KR101427409B1
KR101427409B1 KR1020107029825A KR20107029825A KR101427409B1 KR 101427409 B1 KR101427409 B1 KR 101427409B1 KR 1020107029825 A KR1020107029825 A KR 1020107029825A KR 20107029825 A KR20107029825 A KR 20107029825A KR 101427409 B1 KR101427409 B1 KR 101427409B1
Authority
KR
South Korea
Prior art keywords
level
cache
shader
systems
cache system
Prior art date
Application number
KR1020107029825A
Other languages
English (en)
Other versions
KR20110015034A (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 KR20110015034A publication Critical patent/KR20110015034A/ko
Application granted granted Critical
Publication of KR101427409B1 publication Critical patent/KR101427409B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared 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
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • 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/121Frame memory handling using a cache memory
    • 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

Abstract

쉐이더 파이프 텍스처 필터는 1차 저장 방법으로 레벨 1 캐시 시스템을 이용하지만, 필요한 경우 레벨 1 캐시 시스템이 레벨 2 캐시 시스템에 대해 판독 및 기입을 행하도록 하는 능력을 가지고 있다. 레벨 1 캐시 시스템이 레벨 2 캐시 시스템과 와이드 채널 메모리 버스를 통해 통신한다. 추가적으로, 레벨 1 캐시 시스템은, 레벨 2 캐시 시스템에 대한 액세스를 유지하면서, 듀얼 쉐이더 파이프 텍스처 필터들을 지원하도록 구성될 수 있다. 1차 저장 방법으로 레벨 1 캐시 시스템을 이용하는 방법이 또한 제공되며, 이 방법은, 필요한 경우 레벨 1 캐시 시스템이 레벨 2 캐시 시스템에 대해 판독 및 기입을 행하도록 하는 능력을 가지고 있다. 추가적으로, 레벨 1 캐시 시스템들은 메모리의 정의된 영역을 다른 리소스들 간에 공유가능하도록 할당할 수 있다.

Description

분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더{SHADER COMPLEX WITH DISTRIBUTED LEVEL ONE CACHE SYSTEM AND CENTRALIZED LEVEL TWO CACHE}
본 발명은 일반적으로 컴퓨팅 시스템들에서 수행되는 컴퓨팅 동작들에 관한 것으로, 특히 컴퓨팅 시스템들에서 수행되는 그래픽 프로세싱 태스크들에 관한 것이다.
그래픽 프로세시 유닛(Graphics Processing Unit, GPU)은, 그래픽 프로세싱 태스크들을 수행하도록 특별히 설계된 복합 집적 회로이다. 예를 들어, GPU는, 비디오 게임 애플리케이션과 같은, 최종 사용자 애플리케이션에 의해 요구되는 그래픽 프로세싱 태스크들을 실행한다. 이러한 예에서, 최종 사용자 애플리케이션과 GPU 간에는 수 개의 소프트웨어 층들이 있다.
최종 사용자 애플리케이션은 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)와 통신한다. API는 GPU에 의존하는 포맷이 아닌 표준화된 포맷으로 그래픽 데이터 및 커맨드들을 출력할 수 있게 한다. 마이크로소프트사(Microsoft Corp.)에 의해 개발된 다이렉트X(DirectX®) 및 실리콘 그래픽사(Silicon Graphics, Inc.)에 의해 개발된 오픈GL(OpenGL®)을 포함하는 수가지 타입의 API들이 상업적으로 이용가능하다. API는 드라이버와 통신한다. 드라이버는 API로부터 수신된 표준 코드를 GPU가 이해하는 명령들의 네이티브 포맷(native format)으로 변환한다. 드라이버는 전형적으로 GPU의 제조자에 의해 기입된다. 그 다음, GPU는 드라이버로부터의 명령들을 실행한다.
GPU는, 렌더링(rendering)으로서 알려진 프로세스에서, 이미지를 형성하는 픽셀들을, 이미지의 컴포넌트들의 고레벨 기술(description)로부터 생성한다. GPU는 전형적으로, 픽셀(pixel), 텍스처(texture), 및 기하학적 데이터(geometric data)를 프로세싱하기 위해 파이프라인(pipeline)들을 사용함으로써 연속적 렌더링의 개념을 이용한다. 이러한 파이프라인들은 종종, 쉐이더 파이프들 혹은 쉐이더 파이프라인들에서 달성될 수 있는, 래스터라이저(rasterizer)들, 셋업 엔진(setup engine)들, 컬러 블렌더(color blender)들, 하이어래틱컬 깊이(hieratical depth), 텍스처 맵핑(texture mapping) 및 프로그래밍가능 스테이지(programmable stage)들과 같은, 고정된 기능의 특수 목적 파이프라인들의 집합체로서 언급되며, 여기서 "쉐이더(shader)"는 주로 렌더링 효과를 수행하기 위해 그래픽 리소스에 의해 사용되는 소프트웨어 명령들의 세트를 말하는 컴퓨터 그래픽 용어이다. 추가적으로, GPU는 또한, 더 큰 쓰루풋(throughput)을 얻기 위해 병렬 프로세싱 방식으로 복수의 프로그래밍가능 파이프라인들을 사용할 수 있다. 복수의 쉐이더 파이프라인들은 또한 쉐이더 파이프 어레이(shader pipe array)로서 언급될 수 있다.
추가적으로, GPU들은 또한 텍스처 맵핑(texture mapping)으로 알려진 개념을 지원한다. 텍스처 맵핑은, 이웃 텍스처의 픽셀들, 혹은 텍셀(texel)들의 컬러의 사용을 통해 텍스처 맵핑된 픽셀에 대한 텍스처 컬러를 결정하기 위해 사용되는 프로세스이다. 이 프로세스는 또한 텍스처 스무딩(texture smoothing) 혹은 텍스처 인터폴레이션(texture interpolation)으로 언급된다. 그러나, 높은 이미지 품질의 텍스처 맵핑은 큰 연산 복잡도를 요구한다.
추가적으로, 통합된 쉐이더(Unified Shader)를 구비한 GPU들은 또한, 픽셀, 버텍스(vertex), 프리미티브(primitive), 서피스(surface)로부터 여러 타입의 쉐이더 프로세싱을 동시에 지원하고, 그리고 범용화된 컴퓨팅은 더 높은 성능의 범용화된 메모리 액세스 능력에 대한 요구를 증가시키고 있다.
텍스처 필터들은 픽셀 데이터를 위해서 로컬 캐시 메모리로의 고속 액세스를 필요로 한다. 그러나, 텍스처 필터들을 위한 전용의 로컬 캐시 메모리를 사용하는 것은 전형적으로 더 많은 범용의 공유된 메모리를 사용하지 못하게 한다. 범용의 공유된 메모리가 더 많이 조절가능하게 되는 경우, 이것은 전형적으로 응답 시간을 더 느리게 하여 성능을 떨어뜨린다.
새로운 소프트웨어 애플리케이션의 복잡도가 계속 증가하기 때문에, 효율적이고 고품질의 렌더링, 텍스처 필터링, 및 에러 정정을 제공하는 GPU에 대한 요구가 또한 증가하고 있다.
따라서, 필요한 것은 앞서 언급된 결점들을 완화시키는 시스템 및/또는 방법이다. 특히, 필요한 것은, 중앙집중형의 공유가능한 레벨 2 캐시 시스템과 결합된 각각의 텍스처 필터에 대한 분산형 레벨 1 캐시 시스템이다.
이 섹션의 목적은 본 발명의 일부 실시형태를 개괄하는 것과 그리고 일부 바람직한 실시예들을 간략하게 소개하는 것이다. 이 섹션의 목적이 모호하게 되지 않도록 하기 위해 설명은 간략하게 제공되거나 생략되어 제공된다. 이러한 간략한 설명 혹은 생략된 설명이 본 발명의 범위를 제한하려는 것은 아니다. 본 명세서에서 구체화되고 넓게 설명되는 본 발명의 원리와 일관되는 것으로서, 본 발명은 방법 및 장치를 포함하는바, 이것에 의해, 쉐이더 파이프 텍스처 필터는 1차 저장 방법으로 레벨 1 캐시 시스템을 이용하지만, 필요한 경우 레벨 1 캐시 시스템이 레벨 2 캐시 시스템에 대해 판독 및 기입을 행하도록 하는 능력을 가지고 있다. 각각의 레벨 1 캐시 시스템이 특정 쉐이더 파이프 텍스처 필터와 관련되어 있는 반면, 레벨 2 캐시 메모리는 이러한 관련을 갖지 않으며, 따라서 모든 레벨 1 캐시 시스템들에 대해 이용가능하다. 추가적으로, 레벨 1 캐시 시스템들은 메모리의 정의된 영역을 다른 리소스들 간에 공유가능하도록 할당할 수 있다.
본 발명의 실시예에서, 레벨 1 캐시 시스템은 듀얼 액세스(dual access)를 갖도록 구성되어, 두 개의 쉐이더 파이프 텍스처 필터들이 단일의 레벨 1 캐시 시스템에 액세스한다.
또 다른 실시예에서, 하나 이상의 레벨 2 캐시 시스템들이 각각의 레벨 1 캐시 시스템들에 의해 액세스가능하도록 구성된다.
또 다른 실시예에서, 레벨 1 캐시 시스템과 레벨 2 캐시 시스템들 간의 통신이 하나 이상의 메모리 채널을 사용하고, 그럼으로써 데이터 쓰루풋(data throughput)이 더 커지게 된다.
또 다른 실시예에서, 하나 이상의 레벨 1 캐시 시스템들이, 메모리의 정의된 영역들을, 다른 레벨 1 캐시 시스템들을 포함하는 다른 리소스들 간에 공유될 수 있도록 할당할 수 있다. 어떤 경우에, 이 방법은 텍셀 데이터의 보다 빠른 페치 시간을 가능하게 하는바, 이 경우, 요구된 데이터는 레벨 2 캐시 시스템으로부터 레벨 1 캐시 시스템으로 이미 이동되어 있다.
본 발명의 추가적 특징 및 장점 그리고 본 발명의 다양항 실시예들의 구조 및 동작은, 첨부되는 도면을 참조하여 아래에서 상세히 설명된다. 본 발명이 본 명세서에서 설명되는 특정 실시예에만 한정되는 것이 아님에 주목해야 한다. 이러한 실시예들은 단지 예시적 목적으로 본 명세서에 제공된다. 추가적인 실시예들이 본 명세서에 포함된 가르침에 근거하여 관련 기술분야에서 숙련된 자들에게는 명백하게 될 것이다.
본 명세서의 일부를 구성함과 아울러 본 명세서에 통합되는 첨부되는 도면은, 본 발명의 실시예들을 나타내고, 위에서 제공된 일반적인 설명 및 아래에서 제공되는 상세한 설명과 함께, 본 발명의 원리를 설명하는 역할을 한다.
도 1은 단일의 레벨 2 캐시 시스템을 갖는 단일의 레벨 1 캐시 시스템의 실시예를 나타낸 시스템도이다.
도 2는 복수의 레벨 1 및 레벨 2 캐시 시스템들의 실시예를 도시한 시스템도이다.
도 3은 듀얼 포트 레벨 1 캐시 시스템들 및 복수의 레벨 2 캐시 시스템들의 실시예를 나타낸 시스템이다.
도 4는 쉐이더 필터 캐시 시스템을 위한 방법의 실시예를 나타낸 흐름도이다.
본 발명의 특징 및 장점은 도면과 연계될 때 아래에서 설명되는 상세한 설명으로부터 명백하게 될 것이고, 도면에서 동일한 참조 부호는 도면 전체에 걸쳐 대응하는 요소를 나타낸다. 도면에서, 동일한 참조 번호는 일반적으로, 동일한, 기능적으로 유사한, 그리고/또는 구조적으로 유사한 요소들을 표시한다. 해당하는 구성요소가 처음 나오는 도면은, 그 대응하는 참조 번호에서 가장 왼편에 있는 숫자로 표시된다.
본 발명은, 본 발명의 다양한 "실시예들"의 다음의 설명으로부터 더 잘 이해될 수 있다. 따라서, 특정 "실시예들"은 본 발명의 개관들이고, 하지만 그 각각이 본 발명이 전체는 아니다. 이러한 점에서 본 발명은, 본 발명은 중앙집중형 레벨 2 캐시 시스템을 갖는 분산형 레벨 1 캐시 시스템에 관한 것이다. 각각의 쉐이더 파이프 텍스처 필터는 레벨 1 캐시 시스템 내에 포함된 텍셀 데이터에 대한 판독 및 기입 액세스를 제공하도록 구성된 전용의 레벨 1 캐시 시스템을 가지고 있다. 추가적으로, 쉐이더 파이프 텍스처 필터에 대해 전용으로 사용되지 않고 레벨 1 캐시 시스템들 모두에 의해 이처럼 액세스가능한 하나 이상의 레벨 2 캐시 시스템들이 존재한다.
특정 구성, 정렬, 및 단계들이 설명되지만, 이것은 단지 예시적 목적으로 설명되는 것임을 이해해야만 한다. 관련 기술분야에서 숙련된 자라면, 다른 구성, 정렬, 및 단계들이 본 발명의 사상 및 범위를 벗어남이 없이 사용될 수 있음을 알 수 있을 것이다. 본 발명이 다양한 다른 애플리케이션에서도 또한 사용될 수 있음이 관련 기술분야에서 숙련된 자에게는 명백할 것이다.
본 명세서에서 언급되는 "일 실시예", "실시예", "예시적 실시예" 등이 나타내는 바는, 설명되는 실시예가 특정된 특징, 구조, 혹은 특성을 포함할 수 있지만, 모든 실시예가 그 특정된 특징, 구조 혹은 특성을 반드시 포함할 필요는 없음을 나타낸다는 것에 주의해야 한다. 더욱이, 이러한 어구가 반드시 동일한 실시예를 말하는 것은 아니다. 더욱이, 특정된 특징, 구조, 혹은 특성이 실시예와 함께 설명될 때, 명시적으로 설명되고 있든 그렇지 않든 상관없이, 이러한 특징, 구조, 혹은 특성을 다른 실시예들과 결합하여 통합하는 것은 본 발명의 기술분야에서 숙련된 자의 인식 범위 내에 있는 것이다.
본 발명이 본 명세서에서 특정 애플리케이션에 대해 예시적 실시예들을 참조하여 설명되지만, 본 발명이 이러한 것에만 한정되는 것은 아님을 이해해야만 한다. 본 명세서에서 제공되는 가르침에 액세스할 수 있는 본 발명의 기술분야에서 숙련된 자들은 본 발명의 범위 내에서 추가적인 수정, 응용, 및 실시예를 인식할 수 있을 것이고, 그리고 본 발명의 효용도가 크게 드러날 수 있는 추가적인 분야도 인식할 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 단일의 레벨 1 캐시 시스템 및 단일의 레벨 2 캐시 시스템을 포함하는 시스템(100)을 나타낸 도면이다. 이 시스템(100)은 단일의 쉐이더 파이프 텍스처 필터(110)를 포함하고, 이 단일의 쉐이더 파이프 텍스처 필터(110)는 관련된 레벨 1 캐시 시스템(120)을 가지며, 이 레벨 1 캐시 시스템(120)은 와이드 채널 메모리 버스(wide channel memory bus)(125)를 사용하여 레벨 2 캐시 시스템과 통신하도록 구성된다.
도 1에 제시된 실시예에서, 쉐이더 파이프 텍스처 필터(110)는 특정 픽셀의 컬러를 결정하기 위해 바이리니어 필터링(bilinear filtering)의 개념을 사용한다. 바이리니어 필터링 동안, 쉐이더 파이프 텍스처 필터(110)는 해당 픽셀에 가장 가까이 있는 네 개의 픽셀들에 대한 텍셀 데이터를 분석한다. 네 개의 텍셀들에 대한 텍셀 데이터는 이후, 원하는 결과를 계산하기 위해 거리에 따른 가중된 평균에 의해 결합된다. 해당 텍셀 데이터는, 현재 쉐이더 파이프 텍스처 필터(110)와 관련된 레벨 1 캐시 시스템(120)으로부터 검색된다.
그러나, 만약 원하는 텍셀 데이터가 레벨 1 캐시 시스템(120)에 원하는 시간에 있지 않다면, 레벨 1 캐시 시스템(120)은 원하는 텍셀 데이터에 대해 레벨 2 캐시 시스템(130)에 판독 요청을 발행한다. 이러한 경우, 요구된 데이터가 레벨 2 캐시 시스템(130)으로부터 레벨 1 캐시 시스템(120)으로 복사되어, 쉐이더 파이프 텍스처 필터(110)에 의해 분석 및 프로세싱되게 된다.
도 2는 본 발명의 실시예에 따른, 복수의 쉐이더 파이프 텍스처 필터들을, 관련된 레벨 1 캐시들 및 복수의 레벨 2 캐시 시스템들과 함께 나타낸 도면이다. 시스템(200)은 하나 이상의 쉐이더 파이프 텍스처 필터들을 포함하고, 여기서는 쉐이더 파이프 텍스처 필터 1 내지 쉐이더 파이프 텍스처 필터 N으로 제시되어 있고, 도면부호 110-1 내지 110-N으로 표기되어 있으며, 여기서 "N"은 일보다 큰 양의 정수를 나타낸다. 시스템(200)은 또한 각각의 쉐이더 파이프 텍스처 필터와 관련된 레벨 1 캐시 시스템들을 포함하고, 여기서는 L1-1 캐시 시스템 내지 L1-N 캐시 시스템으로 제시되어 있고, 도면부호 120-1 내지 120-N으로 표기되어 있으며, 여기서 "N"은 일보다 큰 양의 정수를 나타낸다. 레벨 1 캐시 시스템들(120-1 내지 120-N)을 레벨 2 캐시 시스템들의 세트에 링크시키는 와이드 캐시 메모리 버스(125)가 또한 포함된다. 이 실시예에서, 레벨 2 캐시 시스템은 하나 이상의 레벨 2 캐시 시스템들을 포함하며, 여기서는 L2-1 캐시 시스템 내지 L2-M 캐시 시스템으로 제시되어 있고, 여기서 "M"은 일보다 큰 정수이지만, 레벨 1 캐시 시스템들의 개수인 N과 반드시 동일할 필요는 없다.
도 2의 실시예에서, 쉐이더 파이프 텍스처 필터들(110-1 내지 110-N) 각각은 특정 픽셀의 컬러를 결정하기 위해 바이리니어 필터링의 개념을 사용한다. 앞서 설명된 바와 같이, 각각의 쉐이더 파이프 텍스처 필터(110-1 내지 110-N)는, 해당 픽셀에 가장 가까이 있는 네 개의 픽셀들에 대한 텍셀 데이터를 분석할 필요가 있다. 따라서, 각각의 쉐이더 파이프 텍스처 필터에 대한 해당 텍셀 데이터가 그 관련된 레벨 1 캐시 시스템으로부터 검색된다. 이와 같이, 쉐이더 파이프 텍스처 필터 1(110-1)은 L1-1 캐시 시스템(120-1)에 텍셀 데이터 요청을 발행한다. 나머지 쉐이더 파이프 텍스처 필터들도 유사한 방식으로 텍셀 데이터 요청들을 발행한다.
그러나, 만약 임의의 특정 쉐이더 파이프 텍스처 필터에 대한 원하는 텍셀 데이터가 그 관련된 레벨 1 캐시 시스템(120)에 존재하지 않는다면, 레벨 1 캐시 시스템은 이 원하는 텍셀 데이터를 위해 레벨 2 캐시 시스템(130)에 판독 요청을 발행할 수 있다. 도 2의 실시예에서, 복수의 레벨 2 캐시 시스템들이 있고, 이 중 하나 이상이 레벨 1 캐시 시스템의 텍셀 데이터 요청에 응답할 수 있다. 그러나, 또 다른 실시예에서, 복수의 쉐이더 파이프 텍스처 필터 및 관련 레벨 1 캐시 시스템들을 가진 단일의 레벨 2 캐시 시스템이 존재할 수 있다.
도 2에 관한 또 다른 실시예에서, 레벨 1 캐시 시스템들 중 하나 이상이, 메모리의 정의된 영역들을, 다른 레벨 1 캐시 시스템들을 포함하는 다른 리소스들 간에 공유되도록 할당할 수 있다. 어떤 경우에, 이 방법은 텍셀 데이터의 보다 빠른 페치 시간을 가능하게 하는바, 이 경우, 요구된 데이터는 레벨 2 캐시 시스템으로부터 레벨 1 캐시 시스템으로 이미 이동되어 있다.
도 3은 본 발명의 실시예에 따른, 복수의 쉐이더 파이프 텍스처 필터들을, 관련 듀얼 포트 레벨 1 캐시들 및 복수의 레벨 2 캐시 시스템들과 함께 나타낸 도면이다. 시스템(300)은 하나 이상의 듀얼 포트 레벨 1 캐시 시스템들을 포함하고, 이들 각각은 최대 두 개의 쉐이더 파이프 텍스처 필터들과, 그리고 레벨 2 캐시 시스템을 지원한다. 이 실시예에서, 레벨 1 캐시 시스템은 최대 두 개의 쉐이더 파이프 텍스처 필터들을, 이들의 텍셀 데이터 요청을 위해, 지원한다. 이 실시예에서, 하나 이상의 레벨 1 캐시 시스템들이 존재하고, 이들은 L1-1 내지 L1-N으로 제시되어 있으며, 여기서 "N"은 양의 정수이고, 그리고 도면부호 320-1 내지 320-N으로 표기되어 있다. 여기서, 각각의 레벨 1 캐시는 두 개의 쉐이더 파이프 텍스처 필터들을, 예시된 바와 같이, 쉐이더 파이프 텍스처 필터 A(310) 및 쉐이더 파이프 텍스처 필터 B(312)로서, 지원한다. 추가적으로, 레벨 1 캐시들(320-1 내지 320-N)은 와이드 채널 메모리 버스(125)를 통해 L2-1 내지 L2-N(N은 양의 정수)으로 표시된 레벨 2 캐시 시스템에 액세스한다.
도 3에 관한 또 다른 실시예에서, 레벨 1 캐시 시스템들 중 하나 이상은, 메모리의 정의된 영역들을, 다른 레벨 1 캐시 시스템들을 포함하는 다른 리소스들 간에 공유되도록 할당할 수 있다. 어떤 경우에, 이 방법은 텍셀 데이터의 보다 빠른 페치 시간을 가능하게 하는바, 이 경우, 요구된 데이터는 레벨 2 캐시 시스템으로부터 레벨 1 캐시 시스템으로 이미 이동되어 있다.
도 4는 방법(400)을 도시한 흐름도이고, 이 방법(400)에 의해서, 쉐이더 파이프 텍스처 필터는 1차 저장 방법으로서 레벨 1 캐시 시스템을 이용하고, 필요한 경우 레벨 2 캐시에 액세스하는 능력을 가지고 있다. 방법(400)은 단계(402)에서 시작한다. 단계(404)에서, 각각의 레벨 1 캐시 시스템은 메모리의 정의된 영역들을 다른 리소스들 간에 공유가능하도록 할당할 수 있다. 단계(406)에서, 쉐이더 파이프 텍스처 필터는, 그 관련된 레벨 1 캐시 시스템에 판독 혹은 기입 커맨드를 발행한다. 단계(408)에서, 이 관련된 레벨 1 캐시 시스템이 텍셀 데이터를 적절하게 검색 혹은 기입한다. 단계(410)에서, 각각의 레벨 1 캐시 시스템은 레벨 2 캐시 시스템에 판독 및 기입 요청들을 발행할 수 있다. 방법(400)은 단계(412)에서 종료된다.
도 1, 도 2, 도 3, 및 도 4에서 설명된 기능들, 프로세스들, 시스템들, 방법들은 소프트웨어, 펌웨어, 혹은 하드웨어로 구현될 수 있거나, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 만약 프로그래밍가능 로직이 사용된다면, 이러한 로직은 상업적으로 입수가능한 프로세싱 플랫폼 혹은 특수 목적 디바이스 상에 실행될 수 있다.
관련 기술분야에 숙련된 자에게는 명백한 바와 같이, 본 명세서에서의 설명에 근거하여, 본 발명의 실시예들은, 하드웨어 기술 언어(Hardware Description Language, HDL), 예를 들어, 베리로그(Verilog) 혹은 VHDL과 같은 언어를 사용하여 소프트웨어로 설계될 수 있다. HDL-설계는 전자 시스템의 동작을 모델링할 수 있고, 이 경우 이러한 설계는 합성될 수 있으며, 궁극적으로 하드웨어 디바이스로 제조될 수 있다. 추가적으로 HDL-설계는 컴퓨터물에 저장될 수 있고, 그리고 하드웨어 제조 이전에 컴퓨터 시스템에 로딩될 수 있다.
개요 및 요약서 부분이 아닌 발명의 상세한 설명 부분이 특허청구범위를 해석하는데 사용되도록 의도된 부분임을 이해해야 한다. 개요 및 요약서 부분은, 본 발명의 발명자(들)에 의해 고려된 바와 같이, 본 발명의 하나 이상의 예시적 실시예들을 설명할 수는 있지만, 모든 예시적 실시예들을 설명하는 것은 아니고, 따라서 본 발명 및 첨부되는 청구항들을 어떠한 식으로든 한정하도록 의도되지 않았다.
본 발명은, 특정된 기능들 및 이들의 관계의 구현을 나타내는 기능적 빌딩 블럭들의 도움을 받아 앞서 설명되었다. 이러한 기능적 빌딩 블럭들의 경계는 설명의 편의를 위해 본 명세서에서 임의적으로 정의되었다. 이 특정된 기능들 및 이들의 관계가 적절하게 수행되는 한 다른 경계들이 정의될 수 있다.
특정 실시예들의 앞서의 설명은 본 발명의 전반적 성질을 완전히 밝히고 있으며, 이것은 본 발명의 기술분야에서 숙련된 기술 범위 내의 정보를 적용함으로써, 과도한 실험 없이, 그리고 본 발명의 전반적 개념을 벗어남이 없이, 다른 사람들이 이러한 특정된 실시예들의 다양한 애플리케이션들을 위해 쉽게 수정 및/또는 조작할 수 있게 한다. 따라서, 이러한 조작 및 수정은, 본 명세서에서 제시되는 가르침 및 안내에 근거하여, 이 개시되는 실시예들과 등가의 의미 및 범위 내에 있는 것으로 고려될 수 있다. 본 명세서의 어구 혹은 용어는 한정의 의미로 사용된 것이 아니고 설명의 목적으로 사용되었고 따라서 본 명세서의 용어 혹은 어구는 그 가르침 및 안내의 견지에서 볼 때 숙련된 기술자들에 의해 해석돼야 함을 이해해야 한다.
본 발명의 다양한 실시예들이 앞서 설명되었지만, 이들은 한정적 의미를 갖지 않으며, 단지 예시적으로 제공되었음을 이해해야만 한다. 관련 기술 분야에서의 숙련된 자들에게는 명백한 것으로서, 본 발명의 사상 및 범위를 벗어남이 없이 그 형태 및 세부적 사항에 있어 다양한 변경이 행해질 수 있다. 따라서, 본 발명의 범위 및 영역은 앞서 설명된 예시적 실시예들 중 어떠한 것에 의해서도 제한돼서는 안 되고, 단지 다음의 특허청구범위 및 그 등가물에 따라서만 정의돼야만 한다.

Claims (19)

  1. 쉐이더 필터 데이터를 캐시하는 방법으로서,
    복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하는 단계와;
    상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하는 단계와;
    상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 상기 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하는 단계와; 그리고
    상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 단계를 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법.
  2. 제1항에 있어서,
    상기 수신하는 단계는 복수의 쉐이더 파이프 필터들로부터 수신하는 것을 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법.
  3. 제1항에 있어서,
    상기 쉐이더 파이프 필터는 공유된 레벨 1 캐시 시스템들 중 어느 것 내의 데이터에 액세스하는 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법.
  4. 제1항에 있어서,
    상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 단계는 상기 복수의 레벨 1 캐시 시스템들로부터 복수의 레벨 2 캐시 시스템들로의 판독 및 기입 요청들을 관리하는 것을 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법.
  5. 제1항에 있어서,
    상기 방법은 하드웨어 기술 언어 명령들을 합성함으로써 수행되는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법.
  6. 쉐이더 필터 데이터를 캐시하는 시스템으로서,
    프로세서와; 그리고
    복수의 프로세싱 명령들을 저장함과 아울러 상기 프로세서와 통신하는 메모리를 포함하여 구성되며,
    상기 프로세싱 명령들은 상기 프로세서로 하여금,
    복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하도록 하고;
    상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하도록 하고;
    상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 상기 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하도록 하고; 그리고
    상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하게 하도록 구성된 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  7. 제6항에 있어서,
    상기 프로세서로 하여금, 복수의 쉐이더 파이프 필터들로부터의 커맨드들을 관리하게 하도록 된 명령들을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  8. 제6항에 있어서,
    상기 프로세서로 하여금, 상기 복수의 레벨 1 캐시 시스템들을 관리하게 하도록 된 명령들을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  9. 제6항에 있어서,
    상기 프로세서로 하여금, 복수의 레벨 2 캐시 시스템들을 관리하게 하도록 된 명령들을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  10. 쉐이더 필터 데이터를 캐시하는 시스템으로서,
    복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하는 수단과;
    상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하는 수단과;
    상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 상기 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하는 수단과; 그리고
    상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 수단을 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  11. 제10항에 있어서,
    복수의 쉐이더 파이프 필터들로부터의 커맨드들을 관리하는 수단을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  12. 제10항에 있어서,
    상기 복수의 레벨 1 캐시 시스템들을 관리하는 수단을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  13. 제10항에 있어서,
    복수의 레벨 2 캐시 시스템들을 관리하는 수단을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템.
  14. 하나 이상의 명령들로 된 하나 이상의 시퀀스들을 가지고 있는 비 일시적 컴퓨터 판독가능 매체로서, 상기 명령들은 하나 이상의 프로세서 기반의 컴퓨터 시스템들에 의해 실행될 때, 상기 컴퓨터 시스템들로 하여금 쉐이더 필터 데이터를 캐시하는 방법을 수행하도록 하며, 상기 쉐이더 필터 데이터를 캐시하는 방법은,
    복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하는 단계와;
    상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하는 단계와;
    상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하는 단계와; 그리고
    상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 단계를 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체.
  15. 제14항에 있어서,
    상기 방법은 복수의 쉐이더 파이프 필터들로부터의 커맨드들을 관리하는 단계를 더 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체.
  16. 제14항에 있어서,
    상기 방법은 상기 복수의 레벨 1 캐시 시스템들을 관리하는 단계를 더 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체.
  17. 제14항에 있어서,
    상기 방법은 복수의 레벨 2 캐시 시스템들을 관리하는 단계를 더 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체.
  18. 삭제
  19. 삭제
KR1020107029825A 2008-05-30 2009-06-01 분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더 KR101427409B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US5749208P 2008-05-30 2008-05-30
US61/057,492 2008-05-30
PCT/US2009/003317 WO2009145919A1 (en) 2008-05-30 2009-06-01 Shader complex with distributed level one cache system and centralized level two cache

Publications (2)

Publication Number Publication Date
KR20110015034A KR20110015034A (ko) 2011-02-14
KR101427409B1 true KR101427409B1 (ko) 2014-08-07

Family

ID=41377446

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107029825A KR101427409B1 (ko) 2008-05-30 2009-06-01 분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더

Country Status (5)

Country Link
EP (1) EP2294571A4 (ko)
JP (1) JP5832284B2 (ko)
KR (1) KR101427409B1 (ko)
CN (1) CN102047316B (ko)
WO (1) WO2009145919A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110471943A (zh) * 2018-05-09 2019-11-19 北京京东尚科信息技术有限公司 实时数据统计装置和方法以及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080094407A1 (en) 2006-06-20 2008-04-24 Via Technologies, Inc. Systems and Methods for Storing Texture Map Data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232825A (ja) * 1997-02-20 1998-09-02 Nec Ibaraki Ltd キャッシュメモリ制御方式
US6629188B1 (en) * 2000-11-13 2003-09-30 Nvidia Corporation Circuit and method for prefetching data for a texture cache
JP3620473B2 (ja) * 2001-06-14 2005-02-16 日本電気株式会社 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US7248585B2 (en) * 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
JP3840966B2 (ja) * 2001-12-12 2006-11-01 ソニー株式会社 画像処理装置およびその方法
US6871264B2 (en) * 2002-03-06 2005-03-22 Hewlett-Packard Development Company, L.P. System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
US7069387B2 (en) 2003-03-31 2006-06-27 Sun Microsystems, Inc. Optimized cache structure for multi-texturing
US6862027B2 (en) * 2003-06-30 2005-03-01 Microsoft Corp. System and method for parallel execution of data generation tasks
US7103720B1 (en) 2003-10-29 2006-09-05 Nvidia Corporation Shader cache using a coherency protocol
US7336284B2 (en) 2004-04-08 2008-02-26 Ati Technologies Inc. Two level cache memory architecture
JP4451717B2 (ja) * 2004-05-31 2010-04-14 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
US7280107B2 (en) * 2005-06-29 2007-10-09 Microsoft Corporation Procedural graphics architectures and techniques
CN100451952C (zh) * 2005-12-19 2009-01-14 威盛电子股份有限公司 多阶层加速器架构的处理器系统及其操作方法
WO2007099643A1 (ja) * 2006-03-03 2007-09-07 Fujitsu Limited マルチプロセッサシステム及びマルチプロセッサシステムの動作方法
US20070211070A1 (en) * 2006-03-13 2007-09-13 Sony Computer Entertainment Inc. Texture unit for multi processor environment
US20080094408A1 (en) 2006-10-24 2008-04-24 Xiaoqin Yin System and Method for Geometry Graphics Processing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080094407A1 (en) 2006-06-20 2008-04-24 Via Technologies, Inc. Systems and Methods for Storing Texture Map Data

Also Published As

Publication number Publication date
JP5832284B2 (ja) 2015-12-16
EP2294571A4 (en) 2014-04-23
EP2294571A1 (en) 2011-03-16
KR20110015034A (ko) 2011-02-14
CN102047316B (zh) 2016-08-24
JP2011523745A (ja) 2011-08-18
CN102047316A (zh) 2011-05-04
WO2009145919A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
US8195882B2 (en) Shader complex with distributed level one cache system and centralized level two cache
US9177351B2 (en) Multi-primitive graphics rendering pipeline
US20140267259A1 (en) Tile-based rendering
US10049486B2 (en) Sparse rasterization
US10733785B2 (en) Graphics processing
US9811875B2 (en) Texture state cache
KR20090079241A (ko) 공유된 산술 논리 유닛을 구비한 그래픽 처리 유닛
TW201126450A (en) Texture sampling
KR101427408B1 (ko) 스케일링가능하고 통합된 컴퓨팅 시스템
JP2011522322A (ja) ジオメトリシェーダを用いる平面充填エンジンのためのシステム、方法及びコンピュータプログラム製品
CN114782599A (zh) 图形纹理映射
US9530237B2 (en) Interpolation circuitry and techniques for graphics processing
US10192348B2 (en) Method and apparatus for processing texture
US10192349B2 (en) Texture sampling techniques
KR101427409B1 (ko) 분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더
US20210225060A1 (en) Hybrid binning
US11880924B2 (en) Synchronization free cross pass binning through subpass interleaving
JP2008299852A (ja) プログラム可能なオフセット位置を用いてテクスチャサンプルを処理するための方法及びシステム
WO2022266851A1 (zh) 一种图形处理方法及装置
EP4128167A1 (en) Sampling for partially resident textures

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190627

Year of fee payment: 6