KR101427409B1 - 분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더 - Google Patents
분산형 레벨 1 캐시 시스템 및 중앙집중형 레벨 2 캐시를 구비한 복합형 쉐이더 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/302—In image processor or graphics adapter
-
- 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/45—Caching of specific data in cache memory
- G06F2212/455—Image or video data
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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/363—Graphics controllers
Abstract
쉐이더 파이프 텍스처 필터는 1차 저장 방법으로 레벨 1 캐시 시스템을 이용하지만, 필요한 경우 레벨 1 캐시 시스템이 레벨 2 캐시 시스템에 대해 판독 및 기입을 행하도록 하는 능력을 가지고 있다. 레벨 1 캐시 시스템이 레벨 2 캐시 시스템과 와이드 채널 메모리 버스를 통해 통신한다. 추가적으로, 레벨 1 캐시 시스템은, 레벨 2 캐시 시스템에 대한 액세스를 유지하면서, 듀얼 쉐이더 파이프 텍스처 필터들을 지원하도록 구성될 수 있다. 1차 저장 방법으로 레벨 1 캐시 시스템을 이용하는 방법이 또한 제공되며, 이 방법은, 필요한 경우 레벨 1 캐시 시스템이 레벨 2 캐시 시스템에 대해 판독 및 기입을 행하도록 하는 능력을 가지고 있다. 추가적으로, 레벨 1 캐시 시스템들은 메모리의 정의된 영역을 다른 리소스들 간에 공유가능하도록 할당할 수 있다.
Description
본 발명은 일반적으로 컴퓨팅 시스템들에서 수행되는 컴퓨팅 동작들에 관한 것으로, 특히 컴퓨팅 시스템들에서 수행되는 그래픽 프로세싱 태스크들에 관한 것이다.
그래픽 프로세시 유닛(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 및 레벨 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 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 단계를 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법. - 제1항에 있어서,
상기 수신하는 단계는 복수의 쉐이더 파이프 필터들로부터 수신하는 것을 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법. - 제1항에 있어서,
상기 쉐이더 파이프 필터는 공유된 레벨 1 캐시 시스템들 중 어느 것 내의 데이터에 액세스하는 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법. - 제1항에 있어서,
상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 단계는 상기 복수의 레벨 1 캐시 시스템들로부터 복수의 레벨 2 캐시 시스템들로의 판독 및 기입 요청들을 관리하는 것을 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법. - 제1항에 있어서,
상기 방법은 하드웨어 기술 언어 명령들을 합성함으로써 수행되는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 방법. - 쉐이더 필터 데이터를 캐시하는 시스템으로서,
프로세서와; 그리고
복수의 프로세싱 명령들을 저장함과 아울러 상기 프로세서와 통신하는 메모리를 포함하여 구성되며,
상기 프로세싱 명령들은 상기 프로세서로 하여금,
복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하도록 하고;
상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하도록 하고;
상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 상기 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하도록 하고; 그리고
상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하게 하도록 구성된 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 제6항에 있어서,
상기 프로세서로 하여금, 복수의 쉐이더 파이프 필터들로부터의 커맨드들을 관리하게 하도록 된 명령들을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 제6항에 있어서,
상기 프로세서로 하여금, 상기 복수의 레벨 1 캐시 시스템들을 관리하게 하도록 된 명령들을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 제6항에 있어서,
상기 프로세서로 하여금, 복수의 레벨 2 캐시 시스템들을 관리하게 하도록 된 명령들을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 쉐이더 필터 데이터를 캐시하는 시스템으로서,
복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하는 수단과;
상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하는 수단과;
상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 상기 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하는 수단과; 그리고
상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 수단을 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 제10항에 있어서,
복수의 쉐이더 파이프 필터들로부터의 커맨드들을 관리하는 수단을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 제10항에 있어서,
상기 복수의 레벨 1 캐시 시스템들을 관리하는 수단을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 제10항에 있어서,
복수의 레벨 2 캐시 시스템들을 관리하는 수단을 더 포함하는 것을 특징으로 하는 쉐이더 필터 데이터를 캐시하는 시스템. - 하나 이상의 명령들로 된 하나 이상의 시퀀스들을 가지고 있는 비 일시적 컴퓨터 판독가능 매체로서, 상기 명령들은 하나 이상의 프로세서 기반의 컴퓨터 시스템들에 의해 실행될 때, 상기 컴퓨터 시스템들로 하여금 쉐이더 필터 데이터를 캐시하는 방법을 수행하도록 하며, 상기 쉐이더 필터 데이터를 캐시하는 방법은,
복수의 레벨 1 캐시 시스템들로의 액세스를 위해 쉐이더 파이프 필터로부터 판독 및 기입 커맨드들을 수신하는 단계와;
상기 쉐이더 파이프 필터로부터의 상기 커맨드들을 실행하는 단계와;
상기 레벨 1 캐시 시스템에서의 메모리의 정의된 영역들을 복수의 레벨 1 캐시 시스템들 간에 공유되도록 할당하는 단계와; 그리고
상기 복수의 레벨 1 캐시 시스템들로부터 레벨 2 캐시 시스템으로의 판독 및 기입 요청들을 관리하는 단계를 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체. - 제14항에 있어서,
상기 방법은 복수의 쉐이더 파이프 필터들로부터의 커맨드들을 관리하는 단계를 더 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체. - 제14항에 있어서,
상기 방법은 상기 복수의 레벨 1 캐시 시스템들을 관리하는 단계를 더 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체. - 제14항에 있어서,
상기 방법은 복수의 레벨 2 캐시 시스템들을 관리하는 단계를 더 포함하는 것을 특징으로 하는 비 일시적 컴퓨터 판독가능 매체. - 삭제
- 삭제
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471943A (zh) * | 2018-05-09 | 2019-11-19 | 北京京东尚科信息技术有限公司 | 实时数据统计装置和方法以及计算机可读存储介质 |
Citations (1)
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)
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 |
-
2009
- 2009-06-01 JP JP2011511651A patent/JP5832284B2/ja active Active
- 2009-06-01 EP EP09755282.2A patent/EP2294571A4/en not_active Ceased
- 2009-06-01 WO PCT/US2009/003317 patent/WO2009145919A1/en active Application Filing
- 2009-06-01 CN CN200980119830.3A patent/CN102047316B/zh active Active
- 2009-06-01 KR KR1020107029825A patent/KR101427409B1/ko active IP Right Grant
Patent Citations (1)
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 |