KR101705581B1 - 데이터 처리 장치 및 방법 - Google Patents
데이터 처리 장치 및 방법 Download PDFInfo
- Publication number
- KR101705581B1 KR101705581B1 KR1020100095178A KR20100095178A KR101705581B1 KR 101705581 B1 KR101705581 B1 KR 101705581B1 KR 1020100095178 A KR1020100095178 A KR 1020100095178A KR 20100095178 A KR20100095178 A KR 20100095178A KR 101705581 B1 KR101705581 B1 KR 101705581B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- input light
- cache
- stored
- shuffle
- 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/06—Ray-tracing
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
데이터 처리 장치가 제공된다. 상기 데이터 처리 장치는 버퍼 메모리부 및 제어부를 포함할 수 있다. 상기 버퍼 메모리부는, 래이 트래이싱 기법의 영상 렌더링을 위한 입력 광선 데이터에 대응하는 섀이프 데이터를 캐시로부터 수신하는 동안 상기 입력 광선 데이터를 저장한다. 그러면, 상기 제어부는, 상기 캐시로부터 수신된 상기 섀이프 데이터를 상기 입력 광선 데이터와 함께 연산 장치로 출력한다.
Description
광선 추적 기법이라고도 하는 래이 트래이싱(Ray tracing) 기법의 영상 렌더링에 연관되며, 보다 특정하게는 가속 구조 탐색 및 광선과 프리미티브 간의 교차검사에 있어서 캐시와 연산장치 간의 파이프라인 중단(pipeline stall)을 방지하는 데이터 처리 장치 및 방법에 연관된다.
3D 렌더링(3-Dimensional Rendering)은 3차원 객체(object) 데이터를 주어진 카메라 시점(View point)에서 보이는 영상으로 합성(synthesis)해주는 영상 처리이다.
렌더링 방법은 3차원 객체를 화면에 투영(projection) 하면서 영상을 생성하는 래스터화(rasterization) 방법과 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 래이 트래이싱(ray tracing) 등이 있다.
이 중 래이 트래이싱은 빛의 물리적 성질(반사, 굴절, 투과 등)을 렌더링 결과에 반영하므로 고품질 영상을 생성할 수 있다는 장점이 있으나, 상대적으로 연산량이 방대하여 고속으로 렌더링 하는 데에 어려움이 있다.
래이 트래이싱의 성능에 있어서 연산량이 많이 요구되는 요소는 렌더링 대상이 되는 신 오브젝트(scene object)들을 공간적으로 분할한 가속 구조 (Acceleration Structure, 이하에서는 'AS'라고도 한다)의 생성 및 탐색(Traversal, 이하에서는 'TRV'라고도 한다)과, 광선과 프리미티브 사이의 교차 검사 (Intersection Test, 이하에서는 'IST'라고도 한다)이다.
한편, TRV 또는 IST를 수행하는 연산장치와 외부 메모리(external memory) 사이에 위치하는 캐시에서, 캐시 미스(cache miss)가 발생하여 외부 메모리에 액세스하는 과정에서 발생하는 지연(latency)은 전체 연산 속도를 저하하는 요인이 된다.
가속구조 탐색(TRV) 또는 교차검사(IST) 등의 연산장치에 있어서, 캐시 미스로 인한 메모리 액세스 지연시간을 효율적으로 사용함으로써, 메모리 액세스 지연을 은폐(hide latency)하는 데이터 처리 장치 및 방법이 제공된다.
광선의 일관성(coherency)을 이용하여 메모리 액세스를 최소화하고, 하드웨어 리소스를 효율적으로 활용하는 데이터 처리 장치 및 방법이 제공된다.
단일 광선(single ray)의 처리에서부터 SIMD(Single Instruction Multiple Data) 방식이나 패킷(packet) 광선 처리에까지 제약 없이 적용 가능한 데이터 처리 장치 및 방법이 제공된다.
본 발명의 일측에 따르면, 래이 트래이싱 기법의 영상 렌더링을 위한 제1 입력 광선 데이터를 저장하는 버퍼 메모리부, 및 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터를 캐시로부터 수신하여 상기 제1 입력 광선 데이터와 함께 연산 장치로 출력하는 제어부를 포함하는, 데이터 처리 장치가 제공된다.
상기 제어부는, 상기 제1 섀이프 데이터가 상기 캐시 내에 저장되어 있지 않은 경우, 상기 제1 섀이프 데이터가 외부 메모리로부터 상기 캐시에 패치되는 동안, 새로운 제2 입력 광선 데이터를 입력 받을 수 있다.
이 경우, 상기 제2 입력 광선 데이터에 대응하는 제2 섀이프 데이터가 상기 제1 섀이프 데이터와 동일한 캐시 주소를 갖는다면, 상기 제어부는 상기 버퍼 메모리 내에서 상기 제1 입력 광선 데이터가 저장된 행과 동일한 로우(row)에 상기 제2 입력 광선 데이터를 저장한다.
한편, 상기 제어부는, 상기 제1 섀이프 데이터가 이미 상기 버퍼 메모리부에 저장되어 있는 경우, 상기 캐시에 상기 제1 섀이프 데이터를 요청하지 않고 상기 버퍼 메모리부에 저장된 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 상기 연산 장치로 출력할 수 있다.
본 발명의 일실시예에 따르면, 상기 버퍼 메모리부는, 상기 제1 입력 광선 데이터를 저장하는 광선 저장 컬럼 영역, 상기 제1 섀이프 데이터의 캐시 주소를 저장하는 캐시 주소 저장 컬럼 영역, 상기 제1 섀이프 데이터를 저장하는 캐시 데이터 저장 컬럼 영역, 상기 광선 저장 컬럼 영역에 저장된 광선의 수를 식별하는 점유 카운터 저장 컬럼 영역, 및 상기 광선 저장 컬럼 영역에 저장된 상기 제1 입력 광선 데이터가 상기 연산 장치로 출력되었는지의 여부를 식별하는 유효 식별 비트를 저장하는 유효 식별 비트 저장 컬럼 영역을 포함한다.
한편, 상기 제어부는, 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터를 캐시로부터 수신하여 상기 제1 입력 광선 데이터와 함께 광선 탐색(TRV) 연산 장치로 출력할 수 있다.
또한, 상기 제어부는, 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터를 캐시로부터 수신하여 상기 제1 입력 광선 데이터와 함께 광선 교차 검사(IST) 연산 장치로 출력할 수도 있다.
본 발명의 다른 일측에 따르면, 데이터 처리 장치의 제어부가, 래이 트래이싱 기법의 영상 렌더링을 위한 제1 입력 광선 데이터를 입력 받는 단계, 상기 제어부가 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터가 상기 데이터 처리 장치의 버퍼 메모리부에 저장되어 있는지의 여부를 판단하는 단계, 및 상기 제1 섀이프 데이터가 상기 데이터 처리 장치의 버퍼 메모리부에 저장되어 있지 않은 경우, 상기 제어부가 상기 제1 섀이프 데이터를 캐시에 요청하는 단계를 포함하는, 데이터 처리 방법이 제공된다.
상기 데이터 처리 방법은, 상기 제1 섀이프 데이터가 상기 캐시로부터 수신되기 전에, 상기 제어부가 상기 제1 입력 광선을 상기 버퍼 메모리부에 저장하는 단계를 더 포함할 수 있다.
한편, 상기 데이터 처리 방법은, 상기 제1 섀이프 데이터가 상기 캐시로부터 수신되기 전에, 상기 제어부가 새로운 제2 입력 광선을 수신하여, 상기 제2 입력 광선에 대응하는 제2 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있는지의 여부를 판단하는 단계, 및 상기 제2 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있지 않은 경우, 상기 제어부가 상기 제2 섀이프 데이터를 상기 캐시에 요청하는 단계를 더 포함할 수도 있다.
또한, 상기 데이터 처리 방법은, 상기 제2 섀이프 데이터가 상기 캐시로부터 수신되기 전에, 상기 제어부가 상기 제2 입력 광선을 상기 버퍼 메모리부에 저장하는 단계를 더 포함할 수 있다.
이 경우, 상기 제2 섀이프 데이터가 상기 제1 섀이프 데이터와 동일한 캐시 주소를 갖는 경우, 상기 제어부는 상기 버퍼 메모리 내에서 상기 제1 입력 광선 데이터가 저장된 행과 동일한 로우(row)에 상기 제2 입력 광선 데이터를 저장할 수 있다.
본 발명의 일실시예에 따르면, 상기 데이터 처리 방법은, 상기 제1 섀이프 데이터를 상기 캐시로부터 수신하는 경우, 상기 제어부가 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 연산 장치로 출력하는 단계를 더 포함한다.
캐시 미스로 인한 메모리 액세스 지연시간(latency)을 은폐하고, 연산 자원을 효율적으로 사용할 수 있다.
광선의 일관성(coherency)을 이용하여 메모리 액세스를 최소화할 수 있어, 래이 트래이싱에 의한 영상 처리 속도가 향상된다.
단일 광선(single ray)의 처리에서부터 SIMD(Single Instruction Multiple Data) 방식이나 패킷(packet) 광선 처리에까지 제약 없이 적응적으로 적용이 가능하다.
도 1은 본 발명의 일실시예에 따른 데이터 처리 장치를 도시한다.
도 2는 본 발명의 일실시예에 따른 데이터 처리 장치의 버퍼 메모리부에 저장되는 데이터를 도시한 개념도이다.
도 3은 본 발명의 일실시예에 따라 데이터 처리 장치에 의해 처리되는 광선 데이터를 설명하기 위한 개념도이다.
도 4는 본 발명의 일실시예에 따라 데이터 처리 장치의 버퍼 메모리부에 저장되는 섀이프 데이터를 설명하기 위한 개념도이다.
도 5는 본 발명의 일실시예에 따른 데이터 처리 방법을 도시하는 흐름도이다.
도 6은 본 발명의 일실시예에 따른 데이터 처리 장치를 포함하는 전체 래이 트래이싱 과정을 도시하는 개념적 블록도이다.
도 2는 본 발명의 일실시예에 따른 데이터 처리 장치의 버퍼 메모리부에 저장되는 데이터를 도시한 개념도이다.
도 3은 본 발명의 일실시예에 따라 데이터 처리 장치에 의해 처리되는 광선 데이터를 설명하기 위한 개념도이다.
도 4는 본 발명의 일실시예에 따라 데이터 처리 장치의 버퍼 메모리부에 저장되는 섀이프 데이터를 설명하기 위한 개념도이다.
도 5는 본 발명의 일실시예에 따른 데이터 처리 방법을 도시하는 흐름도이다.
도 6은 본 발명의 일실시예에 따른 데이터 처리 장치를 포함하는 전체 래이 트래이싱 과정을 도시하는 개념적 블록도이다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 데이터 처리 장치(100)를 도시한다.
본 발명의 일실시예에 따르면, 데이터 처리 장치(100)는 래이 트래이싱 기법의 영상 렌더링을 위해 입력 버퍼(101)로부터 광선(ray) 데이터를 수신한다.
래이 트래이싱 기법의 영상 렌더링에 있어서, 연산 장치(104)는 렌더링 대상이 되는 오브젝트(scene object)들을 공간적으로 분할한 가속 구조 (Acceleration Structure, 이하에서 'AS'라고도 함)의 탐색(TRV)과 광선-프리미티브 사이의 교차 검사 (Intersection Test, IST) 등을 수행한다.
연산 장치(104)가 이러한 TRV나 IST 등의 연산을 수행하는 동안, 캐시(102)는 외부 메모리(103)에 저장된 광선 데이터에 대응하는 섀이프 데이터(shape data)의 적어도 일부를 미리 저장(fetch)해 두어, 연산의 속도를 높인다.
그런데, 종래의 래이 트래이싱 장치의 구성에서는 입력 버퍼(101)로부터 제공되는 입력 광선 데이터에 대응하는 섀이프 데이터를 얻기 위해, 연산 장치(104)가 직접 캐시(102)에 상기 섀이프 데이터를 요청하게 된다.
이 때, 상기 입력 광선 데이터에 대응하는 섀이프 데이터가 캐시(102)에 존재하는 경우를 캐시 히트(cache hit)라고 하며, 캐시 히트가 발생하는 경우에는 연산 장치(104)가 캐시(102)로부터 상기 섀이프 데이터를 바로 수신하여 TRV 또는 IST 등의 연산을 수행한다.
그러나 상기 입력 광선 데이터에 대응하는 섀이프 데이터가 캐시(102)에 존재하지 않아서 외부 메모리(103)로부터 패치(fetch)해야 하는 캐시 미스(cache miss)의 경우에는, 외부 메모리(103)의 액세스로 인해 발생하는 지연(latency)으로 인해 연산 장치(104)는 전체 연산 속도 저하를 겪게 된다.
래이 트래이싱을 위한 연산 과정이 파이프라인화 되어 있는 경우, 상기 캐시 미스 패널티(cache miss penalty)로 인한 외부 메모리(103) 지연은 전체 파이프라인 스톨(pipeline stall)의 원인이 된다.
따라서, 본 발명의 일실시예에 따르면, 임의의 제1 입력 광선에 대응하는 제1 섀이프 데이터가 캐시(102)에 저장되지 않는 캐시 미스의 경우, 상기 제1 섀이프 데이터가 패치되는 동안, 데이터 처리 장치(100)는 입력 버퍼(101)로부터 새로운 제2 입력 광선 데이터를 수신하여 상기 제2 입력 광선 데이터를 처리함으로써 외부 메모리(103) 액세스 지연(memory access latency)을 은폐(hiding)한다.
데이터 처리 장치(102)는 섀이프 데이터의 패치를 기다리는 입력 광선 데이터들을 버퍼 메모리부(120)에 저장하여 대기시키고, 섀이프 데이터가 캐시(102)로부터 수신된 입력 광선에 대해서는 연산 장치(104)로 전달해 주는 광선 누적 버퍼(ray accumulation buffer)의 역할을 하는 것이다.
이러한 일련의 역할은 제어부(110)에 의해 제어되며, 버퍼 메모리부(120)는 임의의 메모리 장치로 구현되나, 읽기 속도가 빠른 특성을 갖는 것이 바람직하다.
또한, 본 발명의 일실시예에 따르면, 데이터 처리 장치(100)의 제어부(110)는 버퍼 메모리부(120) 내에 제1 입력 광선 데이터를 저장하는 경우, 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터를 저장해 두고 이를 다시 활용하는 캐싱(caching)을 수행하여, 일정 부분 캐시(102)의 역할을 분담하기도 한다.
이를 테면, 다음에 상기 제1 섀이프 데이터와 동일한 캐시 주소(cache address)를 갖는 제2 섀이프 데이터에 대응하는 새로운 제2 입력 광선이 수신되는 경우, 제어부(110)는 상기 제2 섀이프 데이터를 캐시(102)에 요청하는 대신, 이미 저장되었던 제1 섀이프 데이터를 상기 새로운 제2 입력 광선 데이터와 함께 연산 장치(104)로 제공함으로써 일정 부분은 캐시(102)의 역할을 수행하는 것이다.
또한, 이 경우, 데이터 처리 장치(100)의 제어부(110)는 버퍼 메모리부(120) 내에 상기 제2 입력 광선을 저장함에 있어서, 상기 제1 입력 광선과 동일한 로우(row)에 저장해서, 추후에 광선 연관성(ray coherency)를 이용하여 처리 속도를 높일 수 있다. 이러한 실시예들에 대해서는, 도 2 이하를 참조하여 보다 상세히 후술한다.
도 2는 본 발명의 일실시예에 따른 데이터 처리 장치(100)의 버퍼 메모리부(120)에 저장되는 데이터를 도시한 개념도이다.
버퍼 메모리부(120)는, 입력 광선 데이터를 저장하는 광선 저장 컬럼 영역(210), 섀이프 데이터의 캐시 주소를 저장하는 캐시 주소 저장 컬럼 영역(220), 광선 데이터에 대응하는 섀이프 데이터를 저장하는 캐시 데이터 저장 컬럼 영역(230), 상기 광선 저장 컬럼 영역에 저장된 광선의 수를 식별하는 점유 카운터 저장 컬럼 영역(240), 및 상기 광선 저장 컬럼 영역에 저장된 입력 광선 데이터가 이미 연산 장치(104)로 출력되었는지의 여부를 식별하는 유효 식별 비트를 저장하는 유효 식별 비트 저장 컬럼 영역(250) 등을 포함할 수 있다.
그리고, 본 발명의 일실시예에 따르면, 버퍼 메모리부(120)에는 복수 개의 로우(row)들(201 내지 204)이 포함되는데, 각 로우 내에는 동일한 캐시 블록(cache block)의 캐시 주소에 대응하는 섀이프 데이터의 패치(fetch)를 기다리는 복수 개의 광선들의 광선 데이터가 저장된다.
이를 테면, 로우(201)에 저장된 네 개의 광선 R1, R2, R3 및 R4는 모두 동일한 캐시 주소인 28의 캐시 블록에 저장된 섀이프 데이터에 대응하는 광선들이다.
캐시(102)로부터 전달되는 섀이프 데이터는 블록 단위로 읽어질 수 있으므로, 한 번 상기 섀이프 데이터가 블록 단위로 패치 되어 전달되면, 광선 R1, R2, R3 및 R4는 모두 섀이프 데이터를 얻게 된다.
이렇게 동일한 캐시 주소를 갖는 섀이프 데이터를 위해 대기하고 있는 광선들(R1 내지 R4)을 동일한 로우(row)에 저장해 둠으로써, 광선간의 연관(ray coherency)를 최대한 활용할 수 있다.
이러한 실시예에 따르면, 래이 트래이싱 연산에 있어서, 시간적 인접성(time locality)를 갖는 광선들은 공간적 인접성(spatial locality)를 가질 확률도 높은 점에 착안하여, 광선 coherency 를 최대한 이용하므로 불필요한 패치를 크게 줄일 수 있다.
즉, 동일한 로우(row)의 광선 저장 컬럼 영역(210)에는 동일한 캐시 블록에 저장되는 섀이프 데이터의 패치를 기다리는 광선들의 그룹이 저장되며, 상기 캐시 블록의 캐시 주소는 캐시 주소 저장 컬럼 영역(220)에 저장된다.
그리고, 상기 캐시 블록의 섀이프 데이터가 패치되어 수신되는 경우, 동일한 로우의 캐시 데이터 저장 컬럼 영역(230)에 캐시 블록이 저장된다.
또한, 이렇게 저장된 광선의 수는 점유 카운터 저장 컬럼 영역(240)에 저장된다.
한편, 특정 로우에 저장된 광선들에 대해 캐시 데이터 저장 컬럼 영역(230)에 저장된 섀이프 데이터가 제공되어, 상기 광선들은 연산 장치(104)로 출력된 경우라도, 유효 식별 비트 저장 컬럼 영역(250)의 식별 비트를 invalid 비트, 이를테면 0으로 바꿀 뿐, 상기 섀이프 데이터는 바로 삭제되지 않고 나중에 재활용할 수 있도록 하는데, 이는 erase policy의 한 예이다.
입력 버퍼(101)로부터 새로운 입력 광선 데이터가 수신되는 경우, 데이터 처리 장치(100)의 제어부(110)는 상기 새로운 입력 광선 데이터에 대응하는 섀이프 데이터의 캐시 주소가 버퍼 메모리부(120)의 캐시 주소 저장 영역(220)에 저장되어 있는지를 판단한다.
상기 새로운 입력 광선 데이터에 대응하는 섀이프 데이터의 캐시 주소가 캐시 주소 저장 컬럼 영역(220)에 저장되어 있다면, 제어부(110)는 상기 캐시 주소가 저장된 로우와 동일한 로우의 캐시 데이터 저장 컬럼 영역(230)의 섀이프 데이터를 상기 새로운 입력 광선 데이터와 함께 연산 장치(104)로 출력한다.
이 경우는 캐시(102)에 대하여 섀이프 데이터를 요청하지 않으며, 따라서 캐시(102)에서 캐시 히트나 미스 여부가 판단될 필요도 없고, 패치(fetch)가 필요하지도 않다. 즉, 이 경우에는 데이터 처리 장치(100) 자체가 캐시(102)의 역할을 수행한다.
한편, 상기 판단 결과, 상기 새로운 입력 광선 데이터에 대응하는 섀이프 데이터의 캐시 주소가 캐시 주소 저장 컬럼 영역(220)에 저장되어 있지 않다면, 제어부(110)는 캐시(102)에 상기 섀이프 데이터의 캐시 주소를 전달하여 섀이프 데이터를 요청한다.
그러면, 캐시(102) 내에 상기 요청된 캐시 주소의 섀이프 데이터가 존재하는 지의 여부(cache hit or miss)가 판단된다.
캐시 히트(cache hit)의 경우에는, 캐시(102)가 상기 섀이프 데이터를 블록 단위로 데이터 처리 장치(100)에 제공한다. 그리고 제어부(110)는, 이 섀이프 데이터를 상기 캐시 데이터 저장 컬럼 영역(230)에 저장하는 한편, 상기 새로운 입력 광선과 함께 연산 장치(104)로 출력한다.
반면, 캐시 미스(cache miss)의 경우에는, 외부 메모리(103)로부터 상기 섀이프 데이터를 캐시(102)에 패치 해야 하고, 이 경우 메모리 액세스 지연으로 인해 시간이 소요되므로, 제어부(110)는 상기 새로운 입력 광선을 광선 저장 컬럼 영역(210)에 저장하여 패치를 기다리게 한다.
이렇게 패치를 기다리는 광선이 광선 저장 컬럼 영역(210)에 저장되어 있는 경우에는, 상기 점유 카운터 저장 컬럼 영역(240)의 카운터 값은 1 증가하고, 유효 식별 비트 저장 컬럼 영역(250)의 식별 비트는 valid 비트, 이를테면 1로 바뀐다.
유효 식별 비트 저장 컬럼 영역(250)의 식별 비트가 valid 비트 1인 경우는, 해당 로우에 패치를 기다리며 패치 후에는 출력되어야 할 광선이 존재한다는 것이다.
도 3은 본 발명의 일실시예에 따라 데이터 처리 장치에 의해 처리되는 광선 데이터를 설명하기 위한 개념도이다.
입력 버퍼(101)로부터 광선 데이터(211)이 데이터 처리 장치(100)로 입력된다.
이 경우, 광선 데이터(211)에는 광선의 타입(primary ray, shadow ray 등), 시작점, 방향벡터, 역방향벡터, t의 구간 값(tmin, tmax), 교차점 정보(교차 여부, t, u, v, 교차한 프리미티브의 인덱스), 스택 포인터, 셰이딩시 픽셀 위치, 연산 장치(탐색/리스트/교차 검사 등)에서 필요한 섀이프 데이터(shape data), 광선의 현재 재귀 깊이, 광선의 컬러 별 weight값, 노드 포인터와 같은 shape address(연산에 필요한shape data가 저장된 메모리 주소) 등이 저장이 된다. 또한, 그 외의 값이 더 저장될 수 있다.
도 4는 본 발명의 일실시예에 따라 데이터 처리 장치의 버퍼 메모리부(120)에 저장되는 섀이프 데이터를 설명하기 위한 개념도이다.
섀이프 데이터(shape data)는 연산 장치(104)의 종류에 따라 다르며, 이를테면 가속 구조의 데이터(kd-tree의 노드, BVH의 노드, 프리미티브의 리스트 데이터 등)와 지오메트리 정보의 데이터(삼각형 등)일 수 있다.
Kd-tree 노드나 BVH 등의 가속구조(AS)에 대응하는 섀이프 데이터인 경우, 섀이프 데이터(231)를 구성하는 영역들(410 내지 440)에는 각각 flag, split value, node/list Point, number of prims. 등의 값이 저장된다.
그리고, 공간 분할 방식의 가속 구조, 이를테면 List data에 대응하는 섀이프 데이터인 경우, 섀이프 데이터(231)를 구성하는 영역들(410 내지 440)에는 primitive point 등이 저장될 수 있다.
그리고, IST 등의 연산을 위해 프리미티브 값들, 이를테면 Triangle data가 섀이프 데이터인 경우, 영역들(410) 내지 440)에는 vertex 0, vertex 1 및 vertex 3 등의 다각형 정보가 저장될 수 있다.
도 5는 본 발명의 일실시예에 따른 데이터 처리 방법을 도시하는 흐름도이다.
단계(510)에서, 입력 버퍼(101)로부터 새로운 입력 광선 데이터가 수신되는 경우, 데이터 처리 장치(100)의 제어부(110)는 단계(520)에서, 상기 새로운 입력 광선 데이터에 대응하는 섀이프 데이터의 캐시 주소가 버퍼 메모리부(120)의 캐시 주소 저장 영역(220)에 저장되어 있는지를 판단한다.
상기 새로운 입력 광선 데이터에 대응하는 섀이프 데이터의 캐시 주소가 캐시 주소 저장 컬럼 영역(220)에 저장되어 있다면, 제어부(110)는 단계(550)으로 가서, 상기 캐시 주소가 저장된 로우와 동일한 로우의 캐시 데이터 저장 컬럼 영역(230)의 섀이프 데이터를 상기 새로운 입력 광선 데이터와 함께 연산 장치(104)로 출력한다.
이 경우는 데이터 처리 장치(100) 자체가 캐시(102)의 역할을 수행하는 점은 상기한 바와 같다.
한편, 단계(520)의 판단 결과, 상기 새로운 입력 광선 데이터에 대응하는 섀이프 데이터의 캐시 주소가 캐시 주소 저장 컬럼 영역(220)에 저장되어 있지 않다면, 제어부(110)는 단계(530)에서 캐시(102)에 상기 섀이프 데이터의 캐시 주소를 전달하여 섀이프 데이터를 요청한다.
그러면, 단계(540)에서 캐시(102) 내에 상기 요청된 캐시 주소의 섀이프 데이터가 존재하는 지의 여부(cache hit or miss)가 판단된다.
단계(540)의 판단 결과, 캐시 히트(cache hit)인 경우에는, 캐시(102)가 상기 섀이프 데이터를 블록 단위로 데이터 처리 장치(100)에 제공한다.
그리고 제어부(110)는, 단계(550)에서, 상기 제공된 섀이프 데이터를 상기 캐시 데이터 저장 컬럼 영역(230)에 저장하는 한편, 상기 새로운 입력 광선과 함께 연산 장치(104)로 출력한다.
그러나, 상기 단계(540)의 판단 결과, 캐시 미스(cache miss)의 경우에는, 외부 메모리(103)로부터 상기 섀이프 데이터를 캐시(102)에 패치 해야 하고, 이 경우 메모리 액세스 지연으로 인해 시간이 소요되므로, 제어부(110)는 단계(560)에서 상기 새로운 입력 광선을 광선 저장 컬럼 영역(210)에 저장하여 패치를 기다리게 한다.
이 경우에는 제어부(110)가 단계(560)에서 점유 카운터 저장 컬럼 영역(240)의 카운터 값을 1 증가시키고, 유효 식별 비트 저장 컬럼 영역(250)의 식별 비트를 valid 비트, 이를테면 1로 바꾸는 등, 버퍼 메모리부(120)의 갱신을 수행한다.
이러한 과정에 의해서, 입력된 광선 데이터에 대해 바로 연산 장치(104)로 출력 하거나 또는 버퍼 메모리부(120)에서 대기시키는 등의 처리가 완료되면, 제어부(120)는 입력 버퍼(101)에 처리되어야 할 광선이 존재하는 지를 판단(단계 570)하여 존재한다면 단계(510) 이하를 반복한다.
그리고, 존재하지 않는다면, 버퍼 메모리부(120)의 유효 식별 비트 저장 컬럼 영역(250)의 식별 비트가 valid 비트(1)인 로우들에 저장된 광선들에 대해, 섀이프 데이터 패치 및 전달이 완료되는 순서대로 출력을 할 수 있도록 대기한다(단계 580).
도 6은 본 발명의 일실시예에 따른 데이터 처리 장치를 포함하는 전체 래이 트래이싱 과정을 도시하는 개념적 블록도(600)이다.
래이 트래이싱의 전처리(pre processing) 과정으로서, 공간 가속 구조(AS)의 생성(601)이 수행되면, 생성된 공간 가속 구조(AS) 및 각 프리미티브 데이터가 DRAM과 같은 외부 메모리에 저장(602)된다.
그리고, 광선이 생성되면(603), 상기 광선에 대하여 상기 공간 가속 구조(AS) 내의 어느 리프 노드(leaf node)에 연관되는지 탐색(TRV)가 수행된다(604).
이 과정에서 공간 가속 구조(AS)중 적어도 일부가 AS 캐시(612)에 패치(fetch)되어 활용된다.
그리고 본 발명의 일실시예에 다른 데이터 처리 장치(610)는 이 AS 캐시(612)와 입력 버퍼(611), 및 연산 장치(613) 사이에서, 상기 도1 내지 도 5를 참조하여 상술한 실시예들에 따라 TRV 연산을 위한 광선 누적 버퍼, 또는 상위 캐시(higher layer cache to AS cache 612)로서의 역할을 수행한다.
다음은, 특정 리프 노드 내의 복수 개의 프리미티브, 이를테면 삼각형들에 대해 상기 광선과의 교차 검사(IST)가 수행되는데, 프리미티브 캐시(622)에 교차 검사(IST) 대상이 되는 프리미티브 데이터가 패치되어 활용된다.
그리고 본 발명의 다른 일실시예에 다른 데이터 처리 장치(620)는 이 프리미티브 캐시(622)와 입력 버퍼(621), 및 연산 장치(623) 사이에서, 상기 도1 내지 도 5를 참조하여 상술한 실시예들에 따라 IST 연산을 위한 광선 누적 버퍼, 또는 상위 캐시(higher layer cache to Primitive cache 622)로서의 역할을 수행한다.
이렇게 IST 연산까지 종료되면, 그 결과는 출력 버퍼(624)에 저장되고, 래이 트래이싱 장치의 셰이더(shader)는 상기 결과를 이용하여 칼라 값의 셰이딩(shading)(240)을 수행한다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 데이터 처리 장치
110: 제어부
120: 버퍼 메모리부
101: 입력 버퍼
102: 캐시
103: 외부 메모리
104: 연산 장치
110: 제어부
120: 버퍼 메모리부
101: 입력 버퍼
102: 캐시
103: 외부 메모리
104: 연산 장치
Claims (16)
- 영상 렌더링을 하기 위한 데이터 처리 장치에 있어서,
래이 트래이싱 기법의 영상 렌더링을 위한 제1 입력 광선 데이터 및 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터 중 적어도 하나를 저장하는 버퍼 메모리부; 및
상기 제1 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있지 않은 경우, 캐시에 상기 제1 섀이프 데이터를 요청하고, 상기 제1 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있는 경우, 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 연산 장치로 출력하는 제어부
를 포함하며,
상기 제어부는,
상기 제1 섀이프 데이터가 상기 캐시 내에 저장되어 있지 않은 경우, 상기 제1 섀이프 데이터가 외부 메모리로부터 상기 캐시에 패치되는 동안, 상기 버퍼 메모리부가 새로운 제2 입력 광선 데이터를 입력 받도록 하는 데이터 처리 장치.
- 삭제
- 제1항에 있어서,
상기 제어부는,
상기 제2 입력 광선 데이터에 대응하는 제2 섀이프 데이터가 상기 제1 섀이프 데이터와 동일한 캐시 주소를 갖는 경우, 상기 버퍼 메모리 내에서 상기 제1 입력 광선 데이터가 저장된 행과 동일한 로우(row)에 상기 제2 입력 광선 데이터를 저장하는, 데이터 처리 장치. - 제1항에 있어서,
상기 제어부는,
상기 제1 섀이프 데이터가 이미 상기 버퍼 메모리부에 저장되어 있는 경우, 상기 캐시에 상기 제1 섀이프 데이터를 요청하지 않고 상기 버퍼 메모리부에 저장된 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 상기 연산 장치로 출력하는, 데이터 처리 장치. - 제1항에 있어서,
상기 버퍼 메모리부는,
상기 제1 입력 광선 데이터를 저장하는 광선 저장 컬럼 영역;
상기 제1 섀이프 데이터의 캐시 주소를 저장하는 캐시 주소 저장 컬럼 영역;
상기 제1 섀이프 데이터를 저장하는 캐시 데이터 저장 컬럼 영역;
상기 광선 저장 컬럼 영역에 저장된 광선의 수를 식별하는 점유 카운터 저장 컬럼 영역; 및
상기 광선 저장 컬럼 영역에 저장된 상기 제1 입력 광선 데이터가 상기 연산 장치로 출력되었는지의 여부를 식별하는 유효 식별 비트를 저장하는 유효 식별 비트 저장 컬럼 영역
을 포함하는, 데이터 처리 장치. - 제1항에 있어서,
상기 제어부는, 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터를 상기 캐시로부터 수신하여 상기 제1 입력 광선 데이터와 함께 광선 탐색(TRV) 연산 장치로 출력하는, 데이터 처리 장치. - 제1항에 있어서,
상기 제어부는, 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터를 상기 캐시로부터 수신하여 상기 제1 입력 광선 데이터와 함께 광선 교차 검사(IST) 연산 장치로 출력하는, 데이터 처리 장치. - 영상 렌더링을 하기 위한 데이터 처리 방법에 있어서,
데이터 처리 장치의 제어부가, 래이 트래이싱 기법의 영상 렌더링을 위한 제1 입력 광선 데이터를 입력 받는 단계;
상기 제어부가 상기 제1 입력 광선 데이터에 대응하는 제1 섀이프 데이터가 상기 데이터 처리 장치의 버퍼 메모리부에 저장되어 있는지의 여부를 판단하는 단계;
상기 제1 섀이프 데이터가 상기 데이터 처리 장치의 버퍼 메모리부에 저장되어 있지 않은 경우, 상기 제어부가 상기 제1 섀이프 데이터를 캐시에 요청하는 단계;
상기 제1 섀이프 데이터가 상기 캐시 내에 저장되어 있지 않은 경우, 상기 제어부가 새로운 제2 입력 광선을 수신하여, 상기 제2 입력 광선에 대응하는 제2 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있는지의 여부를 판단하는 단계;
상기 제2 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있지 않은 경우, 상기 제어부가 상기 제2 입력 광선을 상기 버퍼 메모리부에 저장하는 단계; 및
상기 제1 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있는 경우, 상기 제어부가 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 연산 장치로 출력하는 단계
를 포함하는, 데이터 처리 방법. - 제8항에 있어서,
상기 제1 섀이프 데이터가 상기 캐시로부터 수신되기 전에, 상기 제어부가 상기 제1 입력 광선을 상기 버퍼 메모리부에 저장하는 단계
를 더 포함하는, 데이터 처리 방법. - 제8항에 있어서,
상기 제2 섀이프 데이터가 상기 버퍼 메모리부에 저장되어 있지 않은 경우, 상기 제어부가 상기 제2 섀이프 데이터를 상기 캐시에 요청하는 단계
를 더 포함하는, 데이터 처리 방법 - 삭제
- 제8항에 있어서,
상기 제2 섀이프 데이터가 상기 제1 섀이프 데이터와 동일한 캐시 주소를 갖는 경우, 상기 제어부는 상기 버퍼 메모리 내에서 상기 제1 입력 광선 데이터가 저장된 행과 동일한 로우(row)에 상기 제2 입력 광선 데이터를 저장하는, 데이터 처리 방법. - 제8항에 있어서,
상기 제1 섀이프 데이터를 상기 캐시로부터 수신하는 경우, 상기 제어부가 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 연산 장치로 출력하는 단계
를 더 포함하는, 데이터 처리 방법. - 제13항에 있어서,
상기 출력하는 단계는,
상기 제어부가 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 광선 탐색(TRV) 연산 장치로 출력하는, 데이터 처리 방법. - 제13항에 있어서,
상기 출력하는 단계는,
상기 제어부가 상기 제1 섀이프 데이터를 상기 제1 입력 광선 데이터와 함께 광선 교차 검사(IST) 연산 장치로 출력하는, 데이터 처리 방법. - 제8항 내지 제10항, 및 제12항 내지 제15항 중 어느 한 항의 데이터 처리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100095178A KR101705581B1 (ko) | 2010-09-30 | 2010-09-30 | 데이터 처리 장치 및 방법 |
US13/067,531 US9342919B2 (en) | 2010-09-30 | 2011-06-07 | Image rendering apparatus and method for preventing pipeline stall using a buffer memory unit and a processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100095178A KR101705581B1 (ko) | 2010-09-30 | 2010-09-30 | 데이터 처리 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120033585A KR20120033585A (ko) | 2012-04-09 |
KR101705581B1 true KR101705581B1 (ko) | 2017-02-22 |
Family
ID=45889371
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100095178A KR101705581B1 (ko) | 2010-09-30 | 2010-09-30 | 데이터 처리 장치 및 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9342919B2 (ko) |
KR (1) | KR101705581B1 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183667B2 (en) * | 2011-07-15 | 2015-11-10 | Kirill Garanzha | Out-of-core ray tracing with memory-efficient page generation |
US9384711B2 (en) | 2012-02-15 | 2016-07-05 | Microsoft Technology Licensing, Llc | Speculative render ahead and caching in multiple passes |
US9235925B2 (en) | 2012-05-31 | 2016-01-12 | Microsoft Technology Licensing, Llc | Virtual surface rendering |
US9177533B2 (en) * | 2012-05-31 | 2015-11-03 | Microsoft Technology Licensing, Llc | Virtual surface compaction |
US9230517B2 (en) | 2012-05-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Virtual surface gutters |
US9286122B2 (en) | 2012-05-31 | 2016-03-15 | Microsoft Technology Licensing, Llc | Display techniques using virtual surface allocation |
KR102042539B1 (ko) * | 2012-07-24 | 2019-11-08 | 삼성전자주식회사 | 레이 트레이싱 방법 및 장치 |
KR20140023615A (ko) * | 2012-08-16 | 2014-02-27 | 삼성전자주식회사 | 병렬 파이프라인을 사용하는 그래픽 처리 방법 및 장치 |
KR102072515B1 (ko) * | 2012-10-16 | 2020-02-03 | 삼성전자주식회사 | 영상 처리 장치 및 방법 |
GB2546019B (en) | 2012-11-02 | 2017-08-30 | Imagination Tech Ltd | Geometry processing method for 3-D rendering |
KR101993835B1 (ko) | 2013-02-25 | 2019-06-27 | 삼성전자주식회사 | 스택 관리를 위한 방법 및 장치 |
US9307007B2 (en) | 2013-06-14 | 2016-04-05 | Microsoft Technology Licensing, Llc | Content pre-render and pre-fetch techniques |
KR102116981B1 (ko) | 2013-10-02 | 2020-05-29 | 삼성전자 주식회사 | 광선 추적 가속 방법 및 장치 |
KR102164541B1 (ko) * | 2013-10-22 | 2020-10-12 | 삼성전자 주식회사 | 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법 |
KR102193684B1 (ko) * | 2013-11-04 | 2020-12-21 | 삼성전자주식회사 | 레이 트레이싱 처리 장치 및 방법 |
WO2015167159A1 (en) | 2014-05-02 | 2015-11-05 | Samsung Electronics Co., Ltd. | Rendering system and method for generating ray |
KR20160011485A (ko) * | 2014-07-22 | 2016-02-01 | 삼성전자주식회사 | 데이터 프로세싱 방법 및 장치 |
KR20160071774A (ko) * | 2014-12-12 | 2016-06-22 | 삼성전자주식회사 | 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체 |
KR102365112B1 (ko) * | 2015-03-25 | 2022-02-18 | 삼성전자주식회사 | 레이 트레이싱 장치 및 방법 |
KR20160125172A (ko) * | 2015-04-21 | 2016-10-31 | 삼성전자주식회사 | 레이 트레이싱 장치 및 방법 |
US10332303B2 (en) | 2016-04-26 | 2019-06-25 | Imagination Technologies Limited | Dedicated ray memory for ray tracing in graphics systems |
KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
KR102712155B1 (ko) * | 2016-12-15 | 2024-09-30 | 삼성전자주식회사 | 가속 구조를 생성하는 방법 및 장치 |
CN107464207B (zh) * | 2017-07-17 | 2020-06-02 | 南京华磊易晶微电子有限公司 | 基于可重构数据流系统芯片阵列的3d图学渲染加速系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090265514A1 (en) * | 2008-04-17 | 2009-10-22 | Arm Limited | Efficiency of cache memory operations |
US20090262132A1 (en) * | 2006-09-19 | 2009-10-22 | Caustic Graphics, Inc. | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341347B1 (en) | 1999-05-11 | 2002-01-22 | Sun Microsystems, Inc. | Thread switch logic in a multiple-thread processor |
EP1264281A4 (en) * | 2000-02-25 | 2007-07-11 | Univ New York State Res Found | ARRANGEMENT AND METHOD FOR PROCESSING AND PLAYING A VOLUME |
DE10239672B4 (de) | 2002-08-26 | 2005-08-11 | Universität des Saarlandes | Verfahren und Vorrichtung zur Erzeugung einer zweidimensionalen Abbildung einer dreidimensionalen Struktur |
US7012604B1 (en) | 2002-09-12 | 2006-03-14 | Advanced Micro Devices, Inc. | System architecture for high speed ray tracing |
US7594095B1 (en) | 2005-11-29 | 2009-09-22 | Nvidia Corporation | Multithreaded SIMD parallel processor with launching of groups of threads |
US20080024489A1 (en) | 2006-07-28 | 2008-01-31 | Robert Allen Shearer | Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements |
KR100894136B1 (ko) | 2006-08-31 | 2009-04-20 | 세종대학교산학협력단 | 광선 추적을 위한 비 스택 방식의 케이디 트리 탐색알고리즘을 적용한 영상검출 장치 및 방법 |
US7969434B2 (en) | 2006-09-19 | 2011-06-28 | Caustic Graphics, Inc. | Method, apparatus, and computer readable medium for accelerating intersection testing in ray-tracing rendering |
US8018457B2 (en) | 2006-09-19 | 2011-09-13 | Caustic Graphics, Inc. | Ray tracing system architectures and methods |
US7688320B2 (en) | 2006-09-27 | 2010-03-30 | International Business Machines Corporation | Methods and systems for texture prefetching based on a most recently hit primitive algorithm |
US7782318B2 (en) | 2006-11-22 | 2010-08-24 | International Business Machines Corporation | Method for reducing network bandwidth by delaying shadow ray generation |
KR100889602B1 (ko) * | 2006-12-05 | 2009-03-20 | 한국전자통신연구원 | 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치 |
US8063902B2 (en) | 2007-10-12 | 2011-11-22 | Caustic Graphics, Inc. | Method and apparatus for increasing efficiency of transmission and/or storage of rays for parallelized ray intersection testing |
US8237711B2 (en) * | 2007-11-19 | 2012-08-07 | Caustic Graphics, Inc. | Tracing of shader-generated ray groups using coupled intersection testing |
KR100939212B1 (ko) | 2007-12-15 | 2010-01-28 | 한국전자통신연구원 | 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템 |
KR101475779B1 (ko) | 2008-06-02 | 2014-12-23 | 삼성전자주식회사 | 3d 영상 처리 방법 |
US8421801B2 (en) * | 2008-09-09 | 2013-04-16 | Caustic Graphics, Inc. | Ray tracing using ray-specific clipping |
KR101610194B1 (ko) | 2008-10-15 | 2016-04-07 | 삼성전자주식회사 | 영상처리를 위한 데이터 처리 장치 및 방법 |
KR101511281B1 (ko) | 2008-12-29 | 2015-04-13 | 삼성전자주식회사 | 레이 트레이싱 고속화 방법 및 장치 |
-
2010
- 2010-09-30 KR KR1020100095178A patent/KR101705581B1/ko active IP Right Grant
-
2011
- 2011-06-07 US US13/067,531 patent/US9342919B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090262132A1 (en) * | 2006-09-19 | 2009-10-22 | Caustic Graphics, Inc. | Architectures for parallelized intersection testing and shading for ray-tracing rendering |
US20090265514A1 (en) * | 2008-04-17 | 2009-10-22 | Arm Limited | Efficiency of cache memory operations |
Also Published As
Publication number | Publication date |
---|---|
US20120081368A1 (en) | 2012-04-05 |
KR20120033585A (ko) | 2012-04-09 |
US9342919B2 (en) | 2016-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101705581B1 (ko) | 데이터 처리 장치 및 방법 | |
US11069124B2 (en) | Systems and methods for reducing rendering latency | |
US11107266B2 (en) | Method and apparatus for the proper ordering and enumeration of multiple successive ray-surface intersections within a ray tracing architecture | |
US11200724B2 (en) | Texture processor based ray tracing acceleration method and system | |
US9311097B2 (en) | Managing per-tile event count reports in a tile-based architecture | |
JP4954005B2 (ja) | メモリ・キャッシュ内のデータを無効化する方法、コンピュータ可読媒体及びイメージ処理システム | |
US7782318B2 (en) | Method for reducing network bandwidth by delaying shadow ray generation | |
US9355491B2 (en) | Ray tracing apparatus and method | |
CN113808241B (zh) | 共享顶点的射线追踪图元的硬件加速 | |
US7688320B2 (en) | Methods and systems for texture prefetching based on a most recently hit primitive algorithm | |
US8797322B2 (en) | Systems and methods of defining rays for ray tracing rendering | |
US20140049539A1 (en) | Method and apparatus for graphic processing using parallel pipeline | |
US20130271465A1 (en) | Sort-Based Tiled Deferred Shading Architecture for Decoupled Sampling | |
KR20160011485A (ko) | 데이터 프로세싱 방법 및 장치 | |
US20080024489A1 (en) | Cache Utilization Optimized Ray Traversal Algorithm with Minimized Memory Bandwidth Requirements | |
EP3147867A1 (en) | Apparatus for and method of traversing tree | |
CN113781624A (zh) | 具有可选的世界空间变换的光线跟踪硬件加速 | |
US20090049452A1 (en) | Spawned Message State Determination | |
KR101705072B1 (ko) | 영상 처리 장치 및 방법 | |
US20190318528A1 (en) | Computer-Graphics Based on Hierarchical Ray Casting | |
CN109978977A (zh) | 使用预取的图形数据执行基于图块的渲染的装置和方法 | |
US9779537B2 (en) | Method and apparatus for ray tracing | |
CN117726496A (zh) | 使用光线剪裁减少假阳性光线遍历 | |
KR102072515B1 (ko) | 영상 처리 장치 및 방법 | |
US11928770B2 (en) | BVH node ordering for efficient ray tracing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200120 Year of fee payment: 4 |