KR100857657B1 - 화상 처리 장치 및 그 방법 - Google Patents

화상 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR100857657B1
KR100857657B1 KR1020037010543A KR20037010543A KR100857657B1 KR 100857657 B1 KR100857657 B1 KR 100857657B1 KR 1020037010543 A KR1020037010543 A KR 1020037010543A KR 20037010543 A KR20037010543 A KR 20037010543A KR 100857657 B1 KR100857657 B1 KR 100857657B1
Authority
KR
South Korea
Prior art keywords
local
module
global
data
cache
Prior art date
Application number
KR1020037010543A
Other languages
English (en)
Other versions
KR20040080920A (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 KR20040080920A publication Critical patent/KR20040080920A/ko
Application granted granted Critical
Publication of KR100857657B1 publication Critical patent/KR100857657B1/ko

Links

Images

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
    • 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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

중복 액세스를 저감할 수 있어, 크로스바가 불필요하고, 설계가 용이하며, 배선 비용, 배선 지연을 저감할 수 있는 화상 처리 장치 및 방법으로서, 글로벌 모듈(12)은, 글로벌 캐시(121)를 갖고, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시에 있는 요구에 따른 데이터를 해당 리퀘스트를 송출한 로컬 모듈로 출력하고, 복수의 로컬 모듈(13-0∼13-3)은 메모리 모듈과, 로컬 캐시와, 연산용 파라미터 및 로컬 캐시의 처리 데이터에 근거하여 담당하는 처리를 수행하는 처리 유닛을 갖고, 처리에 필요한 처리 데이터가 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하여, 리퀘스트에 따라서 전송되어진 데이터로 로컬 캐시를 갱신한다.
화상 처리 장치, 글로벌 모듈, 글로벌 캐시, 로컬 모듈, 글로벌 인터페이스

Description

화상 처리 장치 및 그 방법{IMAGE PROCESSING APPARATUS AND METHOD THEREOF}
본 발명은 복수의 연산 처리 장치가 처리 데이터를 공유하여 병렬 처리를 수행하는 화상 처리 장치 및 그 방법에 관한 것이다.
최근, 3차원 컴퓨터 그래픽스(3D Computer Graphics)를 하드웨어로 고속 실행하는 그래픽스 LSI의 보급이 현저하며, 특히 게임기와 퍼스널 컴퓨터(PC)에서는 이 같은 그래픽스 LSI를 표준으로 탑재하는 것이 많다.
또한, 그래픽스 LSI에서의 기술적 진보는 빠르며, 「DirectX」에서 채용된 「Vertex Shader」와 「Pixel Shader」로 대표되는 기능면에서의 확장이 계속됨과 함께, CPU를 상회하는 페이스로 성능이 향상되고 있다.
그래픽스 LSI의 성능을 향상시키려면 LSI의 동작 주파수를 상승시키는 것 뿐만 아니라, 병렬 처리 기법을 이용하는 것이 유효하다. 병렬 처리 기법을 크게 구분하면 이하와 같다.
첫째는 영역 분할에 의한 병렬처리법이고, 둘째는 프리미티브 레벨에서의 병렬처리법이며, 세째는 픽셀 레벨에서의 병렬처리법이다.
상기 분류는 병렬 처리의 입도(粒度)에 근거하며, 영역 분할 병렬 처리의 입 도가 가장 성기고, 픽셀 레벨 병렬 처리의 입도가 가장 미세하다. 각각의 기법의 개요를 이하에 기술한다.
영역 분할에 따른 병렬 처리
화면을 복수의 구형 영역으로 분할하고, 복수의 처리 유닛 각각이 담당하는 영역을 할당하면서 병렬 처리하는 기법이다.
프리미티브 레벨에서의 병렬 처리
복수의 처리 유닛에 별도의 프리미티브(예를 들어, 삼각형)을 부여하여 병렬 동작시키는 기법이다.
프리미티브 레벨에서의 병렬화 처리에 대해 개념적으로 나타낸 것을 도 1에 도시한다.
도 1에 있어서, PM0∼PMn-1이 각각 다른 프리미티브를 나타내고, PU0∼PUn-1이 처리 유닛, MM0∼MMn-1이 메모리 모듈을 각각 나타낸다.
각 처리 유닛(PU0∼PUn-1)에 비교적 균등한 크기의 프리미티브(PM0∼PMn-1)가 부여되어 있을 때에는, 각 처리 유닛(PU0∼PUn-1)에 대한 부하의 균형이 이루어져, 효율적 병렬 처리가 이루어진다.
픽셀 레벨에서의 병렬 처리
가장 입도가 미세한 병렬 처리 기법이다.
도 2는 픽셀 레벨에서의 병렬 처리 기법에 근거한 프리미티브 레벨에서의 병렬화 처리에 대해 개념적으로 나타낸 도면이다.
도 2에 도시한 바와 같이, 픽셀 레벨에서의 병렬 처리 기법에서는 삼각형을 래스터화 할 때에, 2×8의 매트릭스상으로 배열된 픽셀로 이루어지는 픽셀 스탬프(Pixel Stamp) PS로 불리는 구형 영역 단위로 픽셀이 생성된다.
도 2의 예에서는, 픽셀 스템프 PS0에서 픽셀 스탬프 PS7까지 합계 8개의 픽셀 스탬프가 생성되어 있다. 이들 픽셀 스탬프 PS0∼PS7에 포함되는 최대 16개의 픽셀이 동시에 처리된다.
이 기법은 다른 기법에 비해 입도가 미세한 만큼 병렬 처리 효율이 좋다.
그러나, 상술한 분할 영역에 따른 병렬 처리의 경우, 각 처리 유닛을 효율적으로 병렬 동작시키기 위해서는, 각 영역에 묘화되어야 할 오브젝트를 미리 분류할 필요가 있으므로, 씬 데이터 해석의 부하가 크다.
또한, 1프레임분의 씬 데이터가 모두 갖추어진 다음 묘화(描畵)을 개시하지 않고, 오브젝트 데이터가 부여되면, 즉시 묘화을 개시하는 이른바 이미디에이트 모드에서의 묘화을 행할 때에는 병렬성을 유도해 낼 수 없다.
또한, 프리미티브 레벨에서의 병렬 처리의 경우, 실제로는 오브젝트를 구성하는 프리미티브(PM0∼PMn-1)의 크기에는 편차가 있으므로, 처리 유닛(PU0∼PUn-1)마다 하나의 프리미티브를 처리하는 시간에 차가 생긴다. 이같은 차가 커졌을 때에는 처리 유닛이 묘화하는 영역도 크게 다르며, 데이터의 로컬리티가 손실되므로, 메모리 모듈을 구성하는 예를 들면, DRAM의 페이지 미스가 빈발하여 성능이 저하된다.
또한, 이 같은 기법의 경우에는 배선 비용이 높다는 문제점도 있다. 일반적으로 그래픽스 처리를 수행하는 하드웨어에서는 메모리 밴드폭을 확장하기 위해, 복수 메모리 모듈을 이용하여 메모리 인터리브를 수행한다.
그 때, 도 1에 도시한 바와 같이, 처리 유닛(PU0∼PUn-1)과 각 내장 메모리 모듈(MM0∼MMn-1)을 모두 연결할 필요가 있다.
또한, 픽셀 레벨에서의 병렬 처리의 경우, 그래픽스로 처리되는 프리미티브의 크기는 작아지는 경향이 있으므로, 픽셀 스탬프의 사이즈를 크게하더라도 무효한 픽셀이 증가할 뿐 실행 효율이 향상되지 않는다.
따라서, 이 같은 기법에 따라 병렬 처리할 수 있는 픽셀의 수에는 한계가 있다.
그러므로, 상술한 각 병렬 처리 기법의 특성에 근거하여, 이하와 같은 병렬 처리 기법을 취할 수 있다.
즉, 병렬 처리 입도라는 관점에서는 픽셀 레벨의 병렬 처리를 채용한다.
단, 픽셀 레벨의 병렬 처리에서는 병렬도에 한계가 있으므로, 복수의 프리미티브를 동시 처리한다.
또한, 처리 유닛과 메모리 모듈을 직결할 수 있는 처리 분배로 하여, 배선 비용을 절감한다.
도 3은 픽셀 레벨의 병렬 처리를 채용하여, 복수의 프리미티브를 동시 처리하고, 처리 유닛과 메모리 모듈을 직결할 수 있는 처리 분배로 하는 상기 화상 처리 장치의 구성을 개념적으로 나타낸 도면이다.
화상 처리 장치(1)는, 도 3에 도시한 바와 같이, 스트림 데이터 콘트롤러(Streaming Data Controller : SDC)(2), 및 SDC(2)에 대해서 병렬로 접속 된 n개의 모듈(3-0∼3-n-1)을 갖고 있다.
각 모듈(3-0∼3-n-1)은 각각 처리 유닛(PU(0∼n-1)) 및 메모리 모듈(MM(0∼n-1))을 포함한다.
도 3에 있어서, 각 메모리 모듈(MM0∼MMn-1)은 인터리브되어 있는 것으로 한다.
또한, SDC(2)는 CPU와 외부 메모리와의 데이터의 송수신을 담당함과 동시에, 처리 유닛(PU0∼PUn-1)에서의 래스터화에 필요한 파라미터를 생성한다. 이들 파라미터는 전체 처리 유닛(PU0∼PUn-1)에 대해서 공급된다.
각 처리 유닛(PU0∼PUn-1)은 미리 대응하는 메모리 인터리브가 결정되어 있으며, 각각 담당하는 픽셀만을 생성한다.
도 4는 도 3의 화상 처리 장치에서의 픽셀 생성에 대해 설명하기 위한 도면이다.
도 4의 예에서는 메모리가 4×4의 구형(矩形) 영역단위로 인터리브되어 있다. 각각의 구형 영역을 Lstamp(Large stamp)로 부르기로 한다. 여기에서는 도 3에서 도시한 처리 유닛 PU와 메모리 모듈 MM으로 구성되는 모듈의 수는 4개(3-0∼3-3)를 상정한다. 또한, 모듈의 번호와 도 4에서의 구형 영역에 부여한 번호가 대응되어 있다.
따라서, 도 4에 도시한 삼각형의 경우, 모듈 3-0은 2개의 Lstamp, 모듈 3-1 내지 3-3은 각각 3개의 Lstamp를 담당하고 있다.
도 4에서도 알수 있는 바와 같이, Lstamp 내에는 많은 무효 픽셀이 포함되어 있다. 따라서, 도 3의 화상 처리 장치(1)에 있어서, Lstamp를 2×2의 구형 영역 4개로 더 분할하고(스몰 스탬프 : Small stamp : Sstamp), 유효 픽셀을 포함하는 스몰 스탬프(Sstamp)만 후단에서 처리함으로써 연산 리소스를 유효하게 이용할 수도 있다.
상술한 도 3의 병렬화 기법에 따라, 그래픽스 처리의 묘화계에 관해서는 처리 유닛과 메모리 모듈을 직결할 수 있는 처리 분배가 가능하며, 배선 비용을 저감할 수 있다.
그러나, 텍스쳐 리드계의 메모리 액세스는 묘화계의 메모리 액세스와는 다르므로, 다른 모듈에 속하는 메모리로부터의 판독이 필요하게 된다.
따라서, 텍스쳐 리드계의 메모리 액세서에 관해서는 임의의 크로스바와 같은 배선을 필요로하나, 그것을 실현할 때에는 이하의 중복 액세스, 및 범위성(scalability)의 각 과제를 해결해야만 한다
중복 액세스
일반적으로 스크린상의 구형 영역을 텍스쳐 공간에 투영하면 형상과 크기가 다른 영역을 점유한다.
도 5A, 도 5B는 스크린상의 구형 영역을 텍스쳐 공간에 투영하는 모습을 개념적으로 나타낸 도면이다.
여기에서 텍스쳐 데이터는 프레임 버퍼와 Z버퍼의 데이터와 마찬가지로, 인터리브된 메모리에 균등하게 저장되어 있는 것으로 한다.
즉, 4×4의 구형 영역은 부여된 번호에 대응하는 모듈내의 메모리에 저장된 다. 도면에서는 도 5A에 도시한 스크린 공간(Screen Space)상에서 인접하는 4×4의 구형 영역 4개가 도 5B에 도시한 텍스쳐 공간(Texture Space)상에 투영되어 있는 모습을 나타낸다. 예를 들어, 도 5B에 있어서 「모듈 3-0의 영역(Region for Module 3-0)」으로 기재된 영역은 모듈 3-0이 담당하는 스크린 공간상에서 4×4의 구형 영역에 대해서 맵핑되는 텍스쳐 데이터를 나타낸다.
이 경우, 도 5A, 도 5B에 도시한 바와 같이, 임의의 모듈내에 저장되어 있는 텍스쳐 데이터에 대해서 다른 복수의 모듈이 액세스를 행한다. 또한, 액세스하는 타이밍은 각각 달라지게 된다.
따라서, 모듈간의 전송 단위가 4×4 텍셀 단위라고 하면, 도 5B의 텍스쳐 공간에서 파선 블록으로 나타낸 데이터는 4회 전송되게 된다.
이와 같이, 동일 데이터를 복수회 전송하는 것은 전기적, 물리적 조건으로 제약되는 메모리 밴드폭을 낭비하고, 성능 저하를 초래한다.
범위성(scalability)
도 6은 복수의 처리 유닛으로 병렬 처리를 수행하는 시스템에 있어서, 텍스쳐 리드계의 메모리 액세스에 요구되는 크로스바를 가장 직접적인 형태로 실현한 예를 나타낸 도면이다.
도 6에 있어서, GAB로 나타낸 글로벌 액세스 버스(Global Access Bus)가 텍스쳐 액세스용의 크로스바에 상당한다.
하나의 메모리 모듈로부터 판독되는 데이터의 비트수를 M비트, 병렬 처리하는 모듈의 수를 n개로 하면, 텍스쳐 액세스에 필요한 데이터 배선수는 M×n개이다.
도 6에 도시한 시스템을 LSI화할 때에는 상기 개수(M×n개)의 데이터선이 전모듈에 걸쳐 횡방향으로 배선될 뿐 아니라, 각 처리 유닛에 인입하기 위한 종방향의 배선도 필요하게 된다.
이와 같은 형태에서의 크로스바는 범위성을 실현하는 다음 이하의 처리 유닛의 인터페이스, 배선 비용, 및 배선 지연과 같은 불이익을 초래한다.
처리 유닛 인터페이스
도 6에 있어서 파선의 타원으로 나타낸 바와 같이, 각 모듈(3-0∼3-n-1)에서의 처리 유닛(PU-0∼PUn-1)은 n개의 메모리 모듈(MM0∼MMn-1)로부터 판독된 데이터를 받아서, 필요한 데이터를 선택하기 위한 인터페이스를 필요로 한다.
이 같은 인터페이스는, 집적되는 모듈의 개수에 의존하므로, 병렬도를 바꿀때 마다 재설계해야만 한다.
배선 비용
전술한 중복 액세스와 필터링 처리에 기인하는 밴드폭 증대를 고려하지 않고, 판독된 텍스쳐 데이터가 100% 유효하게 이용되는 이상적 상태에 있어서, 최저한 필요하게 되는 글로벌 액세스 버스(GAB)의 배선수를 산출해 본다.
여기에서 각 처리 유닛에서는 1사이클당 4픽셀의 처리를 수행하여, 4개의 텍스쳐를 동시 액세스할 수 있도록 한다.
이 때, 1픽셀당 평균하여 1텍셀밖에 필요로 하지 않는 상태에서도, 1모듈당 4×4×32=512 비트의 밴드폭을 필요로 한다. 따라서, n개의 모듈을 집적한 시스템 의 경우의 글로벌 액세스 버스(GAB)의 배선 폭 WB은 이하와 같이 구해진다.
WB = (512×N×Wp)/NL
여기에서, Wp는 배선 피치, NL은 배선에 사용하는 레이어수이다. 예를 들면, 상정하는 0.07μ 프로세스에서의 참고치로서, Wp = 0.9μ, NL = 2를 적용하면, 모듈수를 변경했을 때의 배선폭은 이하와 같다.
4 모듈 : 0.9㎜,
8 모듈 : 1.8㎜,
16 모듈 : 3.6㎜
칩 사이즈가 10㎜각이라고 하면, 8모듈인 경우에 칩 사이즈의 20%를 글로벌 액세스(GAB)의 가로 배선만으로 사용하게 된다.
또한, 이들 값은 이상 상태에서의 최저한 필요한 배선을 가정한 것이며, 실제로는 그 배이상이 되지 않으면 실행 성능이 구현되지 않는다.
배선 지연
프로세스가 미세화하고, 동작 주파수도 높아지면, 배선에 의한 지연이 지배적이된다. 예를 들면, 1GHz 동작의 경우, 배선할 수 있는 길이는 1㎜에서 2㎜ 정도로 하고 있다.
따라서, 도 6에 도시한 바와 같은 글로벌 액세스 버스(GAB)의 경우, 버스의 단에서 단까지가 10㎜를 넘는 경우도 있다. 그 결과, 배선에 파이프 라인 레지스터를 필요로하고, 판독 지연이 증대된다.
또한, 처리 유닛과 메모리 모듈의 조합에 따라 배선 길이가 다르므로, 조합마다 타이밍 최적화를 수행해야만 하며, 설계하기 어렵다는 문제도 있다.
본 발명의 목적은 복수의 처리 장치가 처리 데이터를 공유하여 병렬 처리할 때에, 중복 액세스를 저감할 수 있어, 배선수가 많은 크로스바가 불필요하며, 설계가 용이하며, 배선 비용, 배선 지연을 저감할 수 있는 화상 처리 장치 및 그 방법을 제공하는데 있다.
상기 목적을 달성하기 위해, 본 발명의 제1 관점은, 복수의 모듈이 처리 데이터를 공유하여 병렬 처리를 수행하는 화상 처리 장치로서, 글로벌 모듈과 복수의 로컬 모듈을 포함하고, 상기 글로벌 모듈은 상기 복수의 로컬 모듈이 병렬로 접속되고, 상기 로컬 모듈에서 필요한 처리 데이터가 기억되는 글로벌 캐시를 갖고, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 상기 글로벌 캐시에 있는 요구에 따른 데이터를 해당 리퀘스트를 보내 온 로컬 모듈로 출력하고, 상기 복수의 로컬 모듈은 화상에 관한 데이터가 기억되는 메모리 모듈과, 적어도 상기 처리 데이터를 기억하는 로컬 캐시와, 연산용 파라미터 및 상기 로컬 캐시에 기억되어 있는 처리 데이터에 근거하여 미리 대응하는 메모리 인터리브로 정해진 담당하는 처리를 수행하는 유닛을 갖고, 처리에 필요한 처리데이터가 상기 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하고, 해당 리퀘스트에 따라서 전송되어진 데이터로 상기 로컬 캐시를 갱신한다.
본 발명의 제2 관점은 복수의 모듈이 처리 데이터를 공유하여 병렬 처리를 수행하는 화상 처리 장치로서, 글로벌 모듈과, 복수의 로컬 모듈을 포함하는 복수의 클러스터를 갖고, 상기 각 클러스터의 상기 글로벌 모듈은, 상기 복수의 로컬 모듈이 병렬로 접속되고, 상기 로컬 모듈에서 필요한 처리 데이터가 기억되는 글로벌 캐시를 갖고, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 상기 글로벌 캐시에 있는 요구에 따른 데이터를 해당 리퀘스트를 송출한 로컬 모듈로 출력하고, 상기 복수의 로컬 모듈은 화상에 관한 데이터가 기억되는 메모리 모듈과, 적어도 상기 처리 데이터를 기억하는 로컬 캐시와, 연산용 파라미터 및 상기 로컬 캐시에 기억되어 있는 처리 데이터에 근거하여 미리 대응하는 메모리 인터리브로 정해진 담당하는 처리를 수행하는 처리 유닛을 갖고, 처리에 필요한 처리 데이터가 상기 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하고, 해당 리퀘스트에 따라 전송되어진 데이터로 상기 로컬 캐시를 갱신하고, 각 클러스터의 글로벌 모듈이 서로 데이터의 송수신을 행한다.
또한, 본 발명의 제2의 관점은, 상기 복수의 클러스터는 매트릭스상으로 배열되고, 각 클러스터의 글로벌 모듈은 링 형상으로 접속되어 있다.
본 발명의 제1 또는 제2의 관점에서는, 상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하고, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 보내온 로컬 모듈로 송출한다.
본 발명의 제1 또는 제2 관점에서는, 상기 로컬 모듈은 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고, 상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하고, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후, 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 해당 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 송출한 로컬 모듈에 대해서 송출한다.
본 발명의 제1 또는 제2 관점에서는 상기 로컬 모듈은, 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고, 상기 글로벌 모듈은, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하고, 엔트리가 있는 경우에는, 요구된 글로벌 데이터를 판독하여, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하고, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 송출하고, 그 후, 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 동시에, 해당 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출한다.
바람직하게는, 상기 연산용 파라미터를 생성하는 콘트롤러를 갖고, 상기 글로벌 모듈은 상기 콘트롤러로 생성된 연산용 파라미터를 상기 복수의 로컬 모듈로 공급한다.
본 발명의 제1 또는 제2의 관점에서는, 상기 글로벌 모듈은 각 로컬 모듈 대응으로 형성된 복수의 채널 블록을 갖고, 상기 복수의 채널 블록은 대응하는 로컬 모듈과 로컬 캐시필 리퀘스트 및 데이터의 송수신을 행한다.
바람직하게는, 상기 복수의 로컬 모듈은 상기 글로벌 모듈을 중심으로 하여, 해당 글로벌 모듈의 주변 근방에 배치되어 있다.
또한, 바람직하게는 상기 복수의 로컬 모듈은 상기 글로벌 모듈을 중심으로 하여, 당해 글로벌 모듈의 주변 근방에, 또한, 대응하는 채널 블록의 근방에 각각 배치되어 있다.
본 발명의 제1 또는 제2 관점에서는, 상기 글로벌 모듈은 각 로컬 모듈 대응으로 형성된 복수의 채널 블록을 갖고, 상기 복수의 채널 블록은 대응하는 로컬 모듈과 로컬 캐시필 리퀘스트, 글로벌 캐시필 리퀘스트 및 데이터의 송수신을 행한다.
바람직하게는, 상기 병렬 처리는 픽셀 레벨에서의 병렬 처리이다.
또한, 상기 병렬 처리는 텍스쳐에 관한 처리이다.
본 발명의 제3 관점은 복수의 모듈이 처리 데이터를 공유하여 병렬 처리를 수행하는 화상 처리 방법으로서, 하나의 글로벌 모듈에 대해서 복수의 로컬 모듈을 병렬로 접속하고, 캐시 계층으로서 복수의 로컬 모듈이 공유하는 글로벌 캐시와, 각 로컬 모듈이 로컬로 갖는 로컬 캐시의 2계층으로 하고, 글로벌 모듈에 있어서, 글로벌 캐시에 로컬 모듈에서 필요한 처리 데이터를 기억하여, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 상기 글로벌 캐시에 있는 요구에 따른 데이터를 해당 리퀘스트를 송출한 로컬 모듈로 출력하고, 상기 복수의 로컬 모듈에 있어서, 상기 로컬 캐시에 적어도 상기 처리 데이터를 기억하여, 연산용 파라미터 및 로컬 캐 시에 기억되어 있는 처리 데이터에 근거하여 미리 대응하는 메모리 인터리브로 정해진 담당하는 처리를 행하며, 처리에 필요한 처리 데이터가 상기 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하고, 해당 리퀘스트에 따라서 전송되어진 데이터로 상기 로컬 캐시를 갱신한다.
본 발명의 제3 관점에서는, 상기 글로벌 모듈이 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 에디터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출한다.
본 발명의 제3 관점에서는 상기 로컬 모듈이 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고, 상기 글로벌 모듈이 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하고, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 동시에, 해당 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내온 로컬 모듈에 대해서 송출한다.
본 발명의 제3 관점에서는 상기 로컬 모듈이 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고, 상기 글로벌 모듈이 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하고, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 송출하고, 그 후, 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 동시에, 해당 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 송출한 로컬 모듈에 대해서 송출한다.
본 발명에 의하면, 예를 들면, 텍스쳐계의 처리인 경우에는, 콘트롤러에 있어서 연산용 파라미터가 생성되고, 생성된 파라미터는 예를 들면, 글로벌 모듈을 통하여 로컬 모듈로 브로드캐스트된다.
각 로컬 모듈에서는 처리 유닛에 있어서, 예를 들면, 이하의 처리가 이루어진다.
즉, 처리 유닛에서는, 브로드캐스트된 파라미터를 받으면, 그 삼각형이 자신이 담당하는 영역, 예를 들면, 4×4 픽셀의 구형 영역 단위로 인터리브된 영역에 속하는지의 여부가 판단된다. 그 결과, 속하는 경우에는, 각종 데이터(Z, 텍스쳐 좌표, 컬러 등)가 래스터화된다.
이어서, LOD(Level of Detail)계산에 따른 밉맵(MipMap) 레벨의 산출과, 텍스쳐 액세스를 위한 (u,v)어드레스 계산이 이루어진다 .
그리고, 이어서 텍스쳐 판독이 이루어진다.
이 경우, 각 로컬 모듈의 처리 유닛에서는 텍스쳐 리드시에, 우선, 로컬 캐시의 엔트리가 체크된다.
그 결과, 엔트리가 있는 경우에는 필요한 텍스쳐 데이터가 판독된다.
필요로 하는 텍스쳐 데이터가 로컬 캐시내에 없는 경우에는, 각 처리 유닛에 서는 글로벌 모듈에 대해서 로컬 캐시필 리퀘스트가 송출된다.
글로벌 모듈에 있어서는, 요구된 블록 데이터가 글로벌 캐시에 있으면, 대응하는 글로벌 캐시의 어드레스로부터 판독되어 채널을 통하여 리퀘스트를 송출한 로컬 모듈로 복귀된다.
한편, 요구된 블록 데이터가 글로벌 캐시에 없으면, 해당 블록을 유지하는 로컬 모듈에 대해서 글로벌 캐시 필 리퀘스트가 송출된다.
글로벌 캐시필 리퀘스트를 받은 로컬 모듈에 있어서는, 메모리로부터 해당하는블록 데이터가 판독되어, 글로벌 인터페이스를 통하여 글로벌 모듈로 송출된다.
그 후, 글로벌 모듈에서는, 블록 데이터가 원하는 글로벌 캐시에 채워짐과 동시에, 리퀘스트를 보내 온 로컬 모듈에 대해서 원하는 채널로부터 데이터가 송출된다.
글로벌 모듈로부터 요구한 블록 데이터가 전송되어지면, 해당하는 로컬 모듈에서는, 로컬 캐시가 갱신되고, 처리 유닛에 의해 블록 데이터가 판독된다.
이어서, 로컬 모듈에서는 판독된 텍스쳐 데이터와, (u,v)어드레스를 산출시에 얻은 소수부를 사용하여 4근방 보간 등의 필터링 처리가 이루어진다.
이어서, 필터링 후의 텍스쳐 데이터와, 래스터화 후의 각종 데이터를 이용하여, 픽셀 단위의 연산이 이루어진다.
그리고, 픽셀 레벨의 처리에서의 각종 테스트를 거친 픽셀 데이터는, 메모리 모듈, 예를 들면, 내장 DRAM 메모리상의 프레임 버퍼 및 Z 버퍼에 기록된다.
도 1은 프리미티브 레벨에서의 병렬화 처리에 대해서 개념적으로 나타낸 도면이다.
도 2는 픽셀 레벨에서의 병렬 처리의 기법에 근거하는 프리미티브 레벨에서의 병렬화 처리에 대해서 개념적으로 나타내는 도면이다.
도 3은 픽셀 레벨의 병렬 처리를 채용하여, 복수의 프리미티브를 동시 처리하고, 처리 유닛과 메모리·모듈을 직결할 수 있는 처리 분배로 하는 화상 처리 장치의 구성을 개념적으로 나타내는 도면이다.
도 4는 도 3의 화상 처리 장치에서의 픽셀 생성에 대해서 설명하기 위한 도면이다.
도 5A 및 도 5B는 스크린상의 구형 영역을 텍스쳐 공간에 투영하는 모습을 개념적으로 나타낸 도면이다.
도 6은 복수의 처리 유닛으로 병렬 처리를 수행하는 시스템에 있어서, 텍스쳐 리드계의 메모리 액세스에 요구되는 크로스바를 가장 직접적인 형태로 실현한 예를 나타낸 도면이다.
도 7은 본발명에 따른 화상 처리 장치의 일실시 형태를 나타낸 블록 구성도이다.
도 8은 본 실시 형태에 따른 스트림 데이터 콘트롤러(SDC)의 주요 처리를 설명하기 위한 플로우차트이다.
도 9는 본 실시 형태에 따른 글로벌 모듈의 기능을 설명하기 위한 플로우차트이다.
도 10은 도 7의 글로벌 모듈의 구체적인 구성예를 나타낸 회로도이다.
도 11은 본 실시 형태에 따른 로컬 모듈에서의 처리 유닛의 주요 처리를 설명하기 위한 도면이다.
도 12는 본 실시 형태에 따른 텍스쳐 리드시의 로컬 모듈의 동작을 설명하기 위한 플로우차트이다.
도 13은 본 실시 형태에 따른 로컬 모듈에서의 로컬 캐시의 구성예를 나타낸 블록도이다.
도 14는 본 실시 형태에 따른 로컬 캐시의 리드 온리 캐시의 구성예를 나타낸 블록도이다.
도 15는 본 실시 형태에 따른 로컬 캐시의 메모리 콘트롤러의 구성예를 나타낸 블록도이다.
도 16A∼도 16E는 본 실시 형태에 따른 뱅크의 인터리브에 관한 어드레싱에 대해 설명하기 위한 도면이다.
도 17A∼도 17D는 본 실시 형태에 따른 뱅크의 인터리브에 관한 어드레싱에 대해 설명하기 위한 도면이다.
도 18은 본 발명에 따른 화상 처리 장치의 다른 실시 형태를 나타내는 블록 구성도이다.
도 7은 본 발명에 따른 화상 처리 장치의 일실시 형태를 나타낸 블록 구성도이다.
본 실시 형태에 따른 화상 처리 장치(10)는 도 7에 도시한 바와 같이, 스트림 데이터 콘트롤러(SDC, 11), 글로벌 모듈(12), 및 로컬 모듈(13-0∼13-3)을 갖고 있다.
본 화상 처리 장치(10)에서는 SDC(11)와 글로벌 모듈(12)이 데이터의 송수신을 행하며, 하나의 글로벌 모듈(12)에 대해서 복수개, 본 실시 형태에서는 4개의 로컬 모듈(13-0∼13-3)이 병렬로 접속되어, 복수의 로컬 모듈(13-0∼13-3)에서 처리 데이터를 공유하여 병렬로 처리한다.
그리고, 텍스쳐 리드계에 관해서는, 다른 로컬 모듈에 대한 메모리 액세스를 필요로 하는데, 글로벌 액세스 버스의 형태를 취하는 대신에, 라우터로서의 기능을 갖는 하나의 글로벌 모듈(12)을 통하여 액세스를 행한다.
또한, 이하에서 상세히 설명하는 바와 같이, 글로벌 모듈(12)은 글로벌 캐시를 갖고, 각 로컬 모듈(13-0∼13-3)은 로컬 캐시를 각각 갖는다.
즉, 본 화상 처리 장치(10)는 캐시의 계층으로서, 예를 들면, 4개의 로컬 모듈(13-0∼13-3)이 공유하는 글로벌 캐시와, 각 로컬 모듈이 로컬로 갖는 로컬 캐시의 2계층을 갖는다.
이하에 각 구성 요소의 구성 및 기능에 대해, 도면과 연관하여 순서대로 설명한다.
SDC(11)는 CPU와 외부 메모리와의 데이터의 송수신, 및 글로벌 모듈(12)과의 데이터의 송수신을 담당함과 동시에, 정점 데이터에 데한 연산, 각 로컬 모듈(13-0∼13-3)의 처리 유닛에서의 래스터화에 필요한 파라미터의 생성 등의 처리를 행한 다.
SDC(11)에서의 구체적인 처리 내용은 이하와 같다. 또한, SDC(11)의 처리 수순을 도 8에 도시한다.
SDC(11)는 우선 데이터가 입력되면(ST1), Per-Vertex 오퍼레이션을 수행한다(ST2).
이 처리에 있어서는, 3차원 좌표, 법선 벡터, 텍스쳐 좌표의 각 정점 데이터가 입력되면, 정점 데이터에 대한 연산이 이루어진다. 대표적인 연산으로서는 물체의 변형과 스크린으로의 투영 등을 행하는 좌표 변환의 연산 처리, 라이팅(Lighting)의 연산 처리, 클리핑(Clipping)의 연산 처리가 있다.
여기에서 수행되는 처리는, 이른바 Vertex Shaher의 실행에 상당한다.
이어서, DDA(Digital Differential Analyzer) 파라미터를 계산한다(ST3).
이 같은 처리에서는, 래스터화(Rasterization)에 필요한 각종 데이터(Z,텍스쳐 좌표, 컬러 등)의 기울기 등의 DDA 파라미터를 산출한다.
이어서, 산출한 DDA 파라미터를 글로벌 모듈(12)을 통하여 전체 로컬 모듈(13-0∼13-3)에 브로드캐스트한다(ST4).
이 같은 처리에 있어서, 브로드캐스트된 파라미터는 후술하는 캐시필과는 다른 채널을 이용하여, 글로벌 모듈(12)을 통하여 각 로컬 모듈(13-0∼13-3)에 전달된다. 단, 글로벌 캐시의 내용에는 영향을 주지 않는다.
글로벌 모듈(12)은, 라우터 기능 및 전체 로컬 모듈로 공용하는 글로벌 캐시 (121)을 갖는다.
글로벌 모듈(12)은 SDC(11)에 의한 DDA 파라미터를 병렬로 접속된 전체 로컬 모듈(13-0∼13-3)에 브로드캐스트한다.
또한, 글로벌 모듈(12)은 임의의 로컬 모듈로부터 로컬 캐시필 LCF(Local Cache Fill)의 리퀘스트를 받으면, 도 9에 도시한 바와 같이, 글로벌 캐시의 엔트리를 체크하여(ST11), 엔트리가 있는 경우에는(ST12), 요구된 블록 데이터를 판독하고(ST13), 판독한 데이터를 리퀘스트를 송출한 로컬 모듈에 송출하고(ST14), 엔트리가 없는 경우에는(ST12), 해당 블록 데이터를 보유하는 타켓의 로컬 모듈에 대해서 글로벌 캐시필 GCF(Global Cache Fill)의 리퀘스트를 송출하고(ST15), 그 후, 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 동시에(ST16, ST17), 블록 데이터를 판독하고(ST13), 판독한 데이터를 로컬 캐시필(LDF)의 리퀘스트를 보내 온 로컬 모듈에 대해서 송출한다(ST14).
도 10은 도 7의 글로벌 모듈의 구체적인 구성예를 도시한 회로도이다.
본 글로벌 모듈(12)은 주로 로컬 모듈 13-0과의 데이터의 송수신을 행하는 채널 블록 CBLK0과, 주로 로컬 모듈 13-1과의 데이터의 송수신을 행하는 채널 블록 CBLK1과, 주로 로컬 모듈 13-2와의 데이터의 송수신을 행하는 채널 블록 CBLK2와, 주로 로컬 모듈 13-3과의 데이터의 송수신을 행하는 채널 블록 CBLK3을 갖는다.
그리고, 본 실시 형태에 있어서는, 각 채널 블록(CBLK0∼CBLK3)에 각각 소정 용량의 글로벌 캐시(121-0∼121-3)가 배치되어 있다.
채널 블록 CBLK0은 글로벌 캐시 121-0에 더하여 로컬 캐시필용 채널 1201-0, 글로벌 캐시필용 채널 1202-0, 셀렉터 1203-0, 태그 회로(Tag) 1204-0, 아비터(Arbiter) 1205-0, 및 예를 들어 FIFO(First-In First-Out)로 이루어지는 큐(Queue)레지스터 1206-0∼1210-0를 갖고 있다.
마찬가지로, 채널 블록 CBLK1은 글로벌 캐시 121-1에 더하여 로컬 캐시필용 채널 1201-1, 글로벌 캐시필용 채널 1202-1, 셀렉터 1203-1, 태그 회로(Tag) 1204-1, 아비터(Arbitor) 1205-1, 및 큐레지스터 1206-1∼1210-1를 갖고 있다.
채널 블록 CBLK2는 글로벌 캐시 121-2에 더하여 로컬 캐시필용 채널 1201-2, 글로벌 캐시필용 채널 1202-2, 셀렉터 1203-2, 태그 회로 1204-2, 아비터 1205-2, 및 큐레지스터 1206-2∼1210-2를 갖고 있다.
채널 블록 CBLK3는 글로벌 캐시 121-3에 더하여 로컬 캐시필용 채널 1201-3, 글로벌 캐시필용 채널 1202-3, 셀렉터 1203-3, 태그 회로 1204-3, 아비터 1205-3, 및 큐레지스터 1206-3∼1210-3을 갖고 있다.
채널 블록 CBLK0에서의 로컬 캐시필용 채널 1201-0은 리퀘스트용 큐레지스터 12011-0 및 데이터용 큐레지스터 12012-0을 갖고 있다.
리퀘스트용 큐레지스터 12011-0은 로컬 모듈 13-0으로부터 전송된 로컬 캐시필(LCF)의 리퀘스트를 입력하여, 큐레지스터 1206-0 및 채널 블록 CBLK1의 큐레지스터 1206-1, 채널 블록 CBLK2의 큐레지스터 1206-2, 및 채널 블록 CBLK3의 큐레지스터 1206-3으로 출력한다.
데이터용 큐레지스터 12012-0는 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3로부터 판독되어, 셀렉터 1203-0에서 선택된 블록 데이터를 받아서, 로컬 모듈 13-0로 출력한다.
채널 블록 CBLK0에서의 글로벌 캐시필용 채널 1202-0는 리퀘스트용 큐레지스터 12021-0 및 데이터용 큐레지스터 12022-0를 갖고 있다.
리퀘스트용 큐레지스터 12021-0는 태그 회로 1204-0에 의한 글로벌 캐시필(GCF)의 리퀘스트를 받아서, 요구하는 블록 데이터를 보유하는 타겟의 로컬 모듈 13-0으로 출력한다.
데이터용 큐레지스터 12022-0는 글로벌 캐시필 리퀘스트를 받은 타겟의 로컬 모듈 13-0으로부터 전송된 블록 데이터를 받아서, 글로벌 캐시 121-0으로 공급한다.
채널 블록 CBLK0에서의 셀렉터 1203-0은 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독된 블록 데이터를 도시하지 않은 제어계의 지시에 따라서 선택하고, 로컬 캐시필용 채널 1201-0의 데이터용 큐레지스터 12012-0으로 공급한다.
채널 블록 CBLK0에서의 태그 회로 1204-0은 글로벌 캐시 121-0에 기억되어 있는 글로벌 데이터의 어드레스 태그를 기억하는 메모리를 갖고, 큐레지스터 1206-0∼1209-0에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트 가운데에서 아비터 1205-0에 의해 선택된 리퀘스트가 요구하는 블록 데이터의 어드레스와 상기 태그 회로 1204-0내에 기억된 어드레스 태그를 비교하여, 일치하는 것이 있으면, 해당 어드레스 태그에 대응하는 글로벌 캐시 121-0의 데이터가 판독되고, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3에 공급된다.
이 때, 로컬 캐시필 리퀘스트를 보내온 로컬 모듈과 데이터의 송수신을 행하는 채널 블록의 셀렉터에 있어서 채널 블록 CBLK0의 글로벌 캐시 121-0으로부터 판독된 데이터를 선택하도록, 도시하지 않은 제어계에 의해 지시된다.
한편, 태그 회로 1204-0은 어드레스 태그와의 비교 결과, 글로벌 캐시 121-0에 로컬 모듈 13-0∼12-3 중 어느 하나로부터 요구된 블록 데이터가 기억되어 있지 않음이 판명된 경우에는, 글로벌 캐시 121-0의 어떤 어드레스에 데이터가 있는지를 나타내는 플래그를 셋팅하고, 그 어드레스를 큐레지스터 1210-0에 셋팅함과 동시에, 글로벌 캐시필 리퀘스트를 글로벌 캐시용 채널 1202-0의 리퀘스트용 큐레지스터 12021-0으로 공급한다. 글로벌 캐시 121-0에 있어서는, 글로벌 캐시용 채널 1202-0용 큐레지스터 12022-0에 로컬 모듈 13-0으로부터 요구한 데이터가 전송되어지면, 큐레지스터 1210-0에 세트된 어드레스에 근거하여 해당 데이터로 글로벌 캐시 121-0의 내용을 갱신함과 동시에, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3으로 로컬 캐시필 리퀘스트에서 요구되어진 데이터를 공급한다.
채널 블록 CBLK0의 아비터 1205-0은 큐레지스터 1206-0∼1209-0에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트를 받아서 조정 작업을 수행하고, 글로벌 캐시 121-0으로부터 동시 판독가능한 블록 데이터 수에 따라서 리퀘스트를 선택하여, 태그 회로 1204-0으로 출력한다.
채널 블록 CBLK0의 큐레지스터 1206-0은 채널 1201-0을 통한 로컬 모듈 13-0에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-0의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1207-0은 채널 블록 CBLK1의 채널 1201-1을 통한 로컬 모듈 13-1에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-0의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1208-0은 채널 블록 CBLK2의 채널 1201-2를 통한 로컬 모듈 13-2에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-0의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1209-0은 채널 블록 CBLK3의 채널 1201-3을 통한 로컬 모듈 13-3에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-0의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
채널 블록 CBLK1에서의 로컬 캐시필용 채널 1201-1은 리퀘스트용 큐레지스터 12011-1 및 데이터용 큐레지스터 12012-1을 갖고 있다.
리퀘스트용 큐레지스터 12011-1은 로컬 모듈 13-1로부터 전송된 로컬 캐시필(LCF)의 리퀘스트를 입력하여, 큐레지스터 1207-1 및 채널 블록 CBLK0의 큐레지스터 1207-0, 채널 블록 CBLK2의 큐레지스터 1207-2, 및 채널 블록 CBLK3의 큐레지스터 1207-3으로 출력한다.
데이터용 큐레지스터 12012-1은 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독되어, 셀렉터 1203-1에서 선택된 블록 데이터를 받아서, 로컬 모듈 13-1로 출력한다.
채널 블록 CBLK1에서의 글로벌 캐시필용 채널 1202-1은 리퀘스트용 큐레지스 터 12021-1 및 데이터용 큐레지스터 12022-1을 갖고 있다.
리퀘스트용 큐레지스터 12021-1은 태그 회로 1204-1에 의한 글로벌 캐시필(GCF)의 리퀘스트를 받아서, 요구하는 블록 데이터를 보존하는 타겟의 로컬 모듈 13-1로 출력한다.
데이터용 큐레지스터 12022-1은 글로벌 캐시필 리퀘스트를 받은 타겟의 로컬 모듈 13-1로부터 전송된 블록 데이터를 받아서, 글로벌 캐시 121-1로 공급한다.
채널 블록 CBLK1에서의 셀렉터 1203-1은 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독된 블록 데이터를 도시하지 않은 제어계의 지시에 따라서 선택하고, 로컬 캐시필용 채널 1201-1의 데이터용 큐레지스터 12012-1로 공급한다.
채널 블록 CBLK1에서의 태그 회로 1204-1은 글로벌 캐시 121-1에 기억되어 있는 글로벌 데이터의 어드레스 태그를 기억하는 메모리를 갖고, 큐레지스터 1206-1∼1209-1에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트 가운데에서 아비터 1205-1에 의해 선택된 리퀘스트가 요구하는 블록 데이터의 어드레스와 상기 태그 회로 1204-1내에 기억된 어드레스 태그를 비교하여, 일치하는 것이 있으면, 해당 어드레스 태그에 대응하는 글로벌 캐시 121-1의 데이터가 판독되고, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3에 공급된다.
이 때, 로컬 캐시필 리퀘스트를 보내온 로컬 모듈과 데이터의 송수신을 행하는 채널 블록의 셀렉터에 있어서 채널 블록 CBLK1의 글로벌 캐시 121-1으로부터 판독된 데이터를 선택하도록, 도시하지 않은 제어계에 의해 지시된다.
한편, 태그 회로 1204-1은 어드레스 태그와의 비교 결과, 글로벌 캐시 121-1에 로컬 모듈 13-0∼12-3 중 어느 것으로부터 요구된 블록 데이터가 기억되어 있지 않음이 판명된 경우에는, 글로벌 캐시 121-1의 어떤 어드레스에 데이터가 있는지를 나타내는 플래그를 셋팅하고, 그 어드레스를 큐레지스터 1210-1에 셋팅함과 동시에, 글로벌 캐시필 리퀘스트를 글로벌 캐시용 채널 1202-1의 리퀘스트용 큐레지스터 12021-1로 공급한다. 글로벌 캐시 121-1에 있어서는, 글로벌 캐시용 채널 1202-1용 큐레지스터 12022-1에 로컬 모듈 13-0으로부터 요구한 데이터가 전송되어지면, 큐레지스터 1210-1에 세트된 어드레스에 근거하여 해당 데이터로 글로벌 캐시 121-1의 내용을 갱신함과 동시에, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3으로 로컬 캐시필 리퀘스트에서 요구되어진 데이터를 공급한다.
채널 블록 CBLK1의 아비터 1205-1은 큐레지스터 1206-1∼1209-1에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트를 받아서 조정 작업을 수행하고, 글로벌 캐시 121-1로부터 동시 판독가능한 블록 데이터의 수에 따라서 리퀘스트를 선택하여, 태그 회로 1204-1로 출력한다.
채널 블록 CBLK1의 큐레지스터 1206-1은 채널 블록 CBLK0의 채널 1201-0을 통한 로컬 모듈 13-0에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-1의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1207-1은 채널 블록 CBLK1의 채널 1201-1을 통한 로컬 모듈 13-1에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-1의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1208-1은 채널 블록 CBLK2의 채널 1201-2를 통한 로컬 모듈 13-2에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-1의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1209-1은 채널 블록 CBLK3의 채널 1201-3을 통한 로컬 모듈 13-3에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-1의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
채널 블록 CBLK2에서의 로컬 캐시필용 채널 1201-2는 리퀘스트용 큐레지스터 12011-2 및 데이터용 큐레지스터 12012-2를 갖고 있다.
리퀘스트용 큐레지스터 12011-2는 로컬 모듈 13-2로부터 전송된 로컬 캐시필(LCF)의 리퀘스트를 입력하여, 큐레지스터 1208-2 및 채널 블록 CBLK0의 큐레지스터 1208-0, 채널 블록 CBLK1의 큐레지스터 1208-1, 및 채널 블록 CBLK3의 큐레지스터 1208-3으로 출력한다.
데이터용 큐레지스터 12012-2는 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독되어 셀렉터 1203-2에서 선택된 블록 데이터를 받아서, 로컬 모듈 13-2로 출력한다.
채널 블록 CBLK2에서의 글로벌 캐시필용 채널 1202-2는 리퀘스트용 큐레지스터 12021-2 및 데이터용 큐레지스터 12022-2를 갖고 있다.
리퀘스트용 큐레지스터 12021-2는 태그 회로 1204-2에 의한 글로벌 캐시필(GCF)의 리퀘스트를 받아서, 요구하는 블록 데이터를 보존하는 타겟의 로컬 모듈 13-2로 출력한다.
데이터용 큐레지스터 12022-2는 글로벌 캐시필 리퀘스트를 받은 타겟의 로컬 모듈 13-2로부터 전송된 블록 데이터를 받아서, 글로벌 캐시 121-2로 공급한다.
채널 블록 CBLK2에서의 셀렉터 1203-2는 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독된 블록 데이터를 도시하지 않은 제어계의 지시에 따라서 선택하고, 로컬 캐시필용 채널 1201-2의 데이터용 큐레지스터 12012-2로 공급한다.
채널 블록 CBLK2에서의 태그 회로 1204-2는 글로벌 캐시 121-2에 기억되어 있는 글로벌 데이터의 어드레스 태그를 기억하는 메모리를 갖고, 큐레지스터 1206-2∼1209-2에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트 가운데에서 아비터 1205-2에 의해 선택된 리퀘스트가 요구하는 블록 데이터의 어드레스와 상기 태그 회로 1204-2내에 기억된 어드레스 태그를 비교하여, 일치하는 것이 있으면, 해당 어드레스 태그에 대응하는 글로벌 캐시 121-2의 데이터가 판독되고, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3에 공급된다.
이 때, 로컬 캐시필 리퀘스트를 보내온 로컬 모듈과 데이터의 송수신을 행하는 채널 블록의 셀렉터에 있어서 채널 블록 CBLK2의 글로벌 캐시 121-2로부터 판독된 데이터를 선택하도록, 도시하지 않은 제어계에 의해 지시된다.
한편, 태그 회로 1204-2는 어드레스 태그와의 비교 결과, 글로벌 캐시 121-2에, 로컬 모듈 13-0∼12-3 중 어느 것으로부터 요구된 블록 데이터가 기억되어 있지 않음이 판명된 경우에는, 글로벌 캐시 121-2의 어떤 어드레스에 데이터가 있는 지를 나타내는 플래그를 셋팅하고, 그 어드레스를 큐레지스터 1210-2에 셋팅함과 동시에, 글로벌 캐시필 리퀘스트를 글로벌 캐시용 채널 1202-2의 리퀘스트용 큐레지스터 12021-2로 공급한다. 글로벌 캐시 121-2에 있어서는, 글로벌 캐시용 채널 1202-2용 큐레지스터 12022-2에 로컬 모듈 13-0으로부터 요구한 데이터가 전송되어지면, 큐레지스터 1210-2에 세트된 어드레스에 근거하여 해당 데이터로 글로벌 캐시 121-2의 내용을 갱신함과 동시에, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3으로 로컬 캐시필 리퀘스트에서 요구되어진 데이터를 공급한다.
채널 블록 CBLK2의 아비터 1205-2는 큐레지스터 1206-2∼1209-2에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트를 받아서 조정 작업을 수행하고, 글로벌 캐시 121-2로부터 동시 판독가능한 블록 데이터의 수에 따라서 리퀘스트를 선택하여, 태그 회로 1204-2로 출력한다.
채널 블록 CBLK2의 큐레지스터 1206-2는 채널 블록 CBLK0의 채널 1201-0을 통한 로컬 모듈 13-0에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-2의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1207-2는 채널 블록 CBLK1의 채널 1201-1을 통한 로컬 모듈 13-1에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-2의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1208-2는 채널 블록 CBLK2의 채널 1201-2를 통한 로컬 모듈 13-2에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-2의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1209-2는 채널 블록 CBLK3의 채널 1201-3을 통한 로컬 모듈 13-3에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-2의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
채널 블록 CBLK3에서의 로컬 캐시필용 채널 1201-3은 리퀘스트용 큐레지스터 12011-3 및 데이터용 큐레지스터 12012-3를 갖고 있다.
리퀘스트용 큐레지스터 12011-3은 로컬 모듈 13-3로부터 전송된 로컬 캐시필(LCF)의 리퀘스트를 입력하여, 큐레지스터 1209-3 및 채널 블록 CBLK0의 큐레지스터 1209-0, 채널 블록 CBLK1의 큐레지스터 1209-1, 및 채널 블록 CBLK2의 큐레지스터 1209-2로 출력한다.
데이터용 큐레지스터 12012-3는 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독되어 셀렉터 1203-3에서 선택된 블록 데이터를 받아서, 로컬 모듈 13-3으로 출력한다.
채널 블록 CBLK3에서의 글로벌 캐시필용 채널 1202-3은 리퀘스트용 큐레지스터 12021-3 및 데이터용 큐레지스터 12022-3을 갖고 있다.
리퀘스트용 큐레지스터 12021-3은 태그 회로 1204-3에 의한 글로벌 캐시필(GCF)의 리퀘스트를 받아서, 요구하는 블록 데이터를 보존하는 타겟의 로컬 모듈 13-3으로 출력한다.
데이터용 큐레지스터 12022-3은 글로벌 캐시필 리퀘스트를 받은 타겟의 로컬 모듈 13-3으로부터 전송된 블록 데이터를 받아서, 글로벌 캐시 121-3으로 공급한 다.
채널 블록 CBLK3에서의 셀렉터 1203-3은 글로벌 캐시 121-0, 121-1, 121-2, 또는 121-3으로부터 판독된 블록 데이터를 도시하지 않은 제어계의 지시에 따라서 선택하고, 로컬 캐시필용 채널 1201-3의 데이터용 큐레지스터 12012-3으로 공급한다.
채널 블록 CBLK3에서의 태그 회로 1204-3은 글로벌 캐시 121-3에 기억되어 있는 글로벌 데이터의 어드레스 태그를 기억하는 메모리를 갖고, 큐레지스터 1206-3∼1209-3에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈 13-0∼13-3에 의한 로컬 캐시필 리퀘스트 가운데에서 아비터 1205-3에 의해 선택된 리퀘스트가 요구하는 블록 데이터의 어드레스와 상기 태그 회로 1204-3내에 기억된 어드레스 태그를 비교하여, 일치하는 것이 있으면, 당해 어드레스 태그에 대응하는 글로벌 캐시 121-2의 데이터가 판독되고, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3에 공급된다.
이 때, 로컬 캐시필 리퀘스트를 보내온 로컬 모듈과 데이터의 송수신을 행하는 채널 블록의 셀렉터에 있어서 채널 블록 CBLK3의 글로벌 캐시 121-3으로부터 판독된 데이터를 선택하도록, 도시하지 않은 제어계에 의해 지시된다.
한편, 태그 회로 1204-3은 어드레스 태그와의 비교 결과, 글로벌 캐시 121-3에 로컬 모듈 13-0∼12-3 중 어느 것으로부터 요구된 블록 데이터가 기억되어 있지 않음이 판명된 경우에는, 글로벌 캐시 121-3의 어떤 어드레스에 데이터가 있는지를 나타내는 플래그를 셋팅하고, 그 어드레스를 큐레지스터 1210-3에 셋팅함과 동시 에, 글로벌 캐시필 리퀘스트를 글로벌 캐시용 채널 1202-3의 리퀘스트용 큐레지스터 12021-3으로 공급한다. 글로벌 캐시 121-3에 있어서는, 글로벌 캐시용 채널 1202-3용 큐레지스터 12022-3에 로컬 모듈 13-0으로부터 요구한 데이터가 전송되어지면, 큐레지스터 1210-3에 세트된 어드레스에 근거하여 해당 데이터로 글로벌 캐시 121-3의 내용을 갱신함과 동시에, 각 채널 블록 CBLK0∼CBLK3의 셀렉터 1203-0∼1203-3으로 로컬 캐시필 리퀘스트에서 요구되어진 데이터를 공급한다.
채널 블록 CBLK3의 아비터 1205-3은 큐레지스터 1206-3∼1209-3에 보존되어 있는 각 채널 블록 CBLK0∼CBLK3을 통한 각 로컬 모듈(13-0∼13-3)에 의한 로컬 캐시필 리퀘스트 조정 작업을 수행하여, 글로벌 캐시 121-3으로부터 동시 판독가능한 블록 데이터 수에 따라서 리퀘스트를 선택하여, 태그 회로 1204-3으로 출력한다.
채널 블록 CBLK3의 큐레지스터 1206-3는 채널 블록 CBLK0의 채널 1201-0을 통한 로컬 모듈 13-0에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-3의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1207-3은 채널 블록 CBLK1의 채널 1201-1을 통한 로컬 모듈 13-1에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-3의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1208-3은 채널 블록 CBLK2의 채널 1201-2를 통한 로컬 모듈 13-2에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-3의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
큐레지스터 1209-3은 채널 블록 CBLK3의 채널 1201-3을 통한 로컬 모듈 13-3 에 의한 로컬 캐시필 리퀘스트 중, 로컬 모듈 13-3의 메모리 모듈에 기억되어 있는 것으로 판단된 리퀘스트를 보존한다.
또한, 도 10의 구성은 일예이며, 글로벌 캐시 121을 각 채널 블록마다 각각 배치한 구성 대신에, 하나의 캐시를 형성하여 각 채널 블록으로부터 액세스하는 등, 다양한 태양이 가능하다.
로컬 모듈 13-0은 처리 유닛 131-0, 예를 들어 DRAM으로 이루어지는 메모리 모듈 132-0, 모듈 고유의 로컬 캐시 133-0, 및 글로벌 모듈(12)의 채널 블록 CBLK0과의 인터페이스를 담당하는 글로벌 인터페이스 GAIF(Global Access Interface) 134-0을 갖고 있다.
마찬가지로, 로컬 모듈 13-1은 처리 유닛 131-1, 예를 들면, DRAM으로 이루어지는 메모리 모듈 132-1, 모듈 고유의 로컬 캐시 133-1, 및 글로벌 모듈 12의 채널 블록 CBLK1과의 인터페이스를 담당하는 글로벌 인터페이스(GAIF; 134-1)을 갖고 있다.
로컬 모듈 13-2는 처리 유닛 131-2, 예를 들면, DRAM으로 이루어지는 메모리 모듈 132-2, 모듈 고유의 로컬 캐시 133-2, 및 글로벌 모듈 12의 채널 블록 CBLK2와의 인터페이스를 담당하는 글로벌 인터페이스 134-2를 갖고 있다.
로컬 모듈 13-3은 처리 유닛 131-3, 예를 들면, DRAM으로 이루어지는 메모리 모듈 132-3, 모듈 고유의 로컬 캐시 133-3, 및 글로벌 모듈 12의 채널 블록 CBLK3와의 인터페이스를 담당하는 글로벌 인터페이스 134-3을 갖고 있다.
각 로컬 모듈(13-0∼13-3)은 메모리 모듈(132-0∼132-3)이 소정의 크기, 예 를 들면, 4×4의 구형 영역 단위로 인터리브되어 있으며, 메모리 모듈 132-0과 처리 유닛 131-0, 메모리 도듈 132-1과 처리 유닛 131-1, 메모리 모듈 132-2와 처리 유닛 131-2, 및 메모리 모듈 132-3과 처리 유닛 131-3은 담당 영역은 1대1로 대응되어 있으며, 묘화계에 대해서는 다른 로컬 모듈에 대한 메모리 액세스가 발생하지 않는다.
한편, 각 로컬 모듈 13-0∼13-3은 텍스쳐 리드계에 관해서는, 다른 로컬 모듈에 대한 메모리 액세스를 필요로 하지만, 이 경우, 글로벌 모듈 12를 통하여 액세스를 행한다.
각 로컬 모듈(13-0∼13-3)의 처리 유닛(131-0∼131-3)은 각각 이하의 처리를 수행한다. 또한, 처리 유닛(131-0∼131-3)의 처리 수순을 도 11에 도시한다.
처리 유닛 131은 브로드캐스트된 파라미터가 입력되면(ST21), 삼각형이 자신이 담당하는 영역인지의 여부를 판단하고(ST22), 담당 영역인 경우에는, 래스터화를 수행한다(ST23).
즉, 브로드캐스트된 파라미터를 받으면, 그 삼각형이 자신이 담당하는 영역, 예를 들면, 4×4 픽셀의 구형 영역 단위로 인터리브된 영역에 속해있는지의 여부를 판단하고, 속해있는 경우에는, 각종 데이터(Z, 텍스쳐 좌표, 컬러 등)를 래스터화한다. 이 경우, 생성 단위는 1로컬 모듈당 1사이클로 2×2 픽셀이다.
이어서, 텍스쳐 좌표의 원근법 보정(Perspective Correction)을 행한다 (ST24). 또한, 이 같은 처리 스테이지에는 LOD(Level of Detail)계산에 의한 밉맵 (Mip Map) 레벨의 산출과, 텍스쳐 액세스를 위한 (u, v)어드레스 계산도 포함된다.
이어서, 텍스쳐의 판독을 수행한다(ST25).
이 경우, 각 로컬 모듈(13-0∼13-3)의 처리 유닛(131-0∼131-3)은 도 12에 도시한 바와 같이, 텍스쳐 리드시에, 우선 로컬 캐시(133-0∼133-3)의 엔트리를 체크하고(ST31), 엔트리가 있는 경우에는(ST32), 필요한 텍스쳐 데이터를 판독한다 (ST33).
필요로 하는 텍스쳐 데이터가 로컬 캐시(133-0∼133-3)내에 없는 경우에는, 각 처리 유닛(131-0∼131-3)은 글로벌 인터페이스(134-0∼134-3)를 통하여, 글로벌 모듈 12에 대해서 로컬 캐시필의 리퀘스트를 보낸다(ST34).
그리고, 글로벌 모듈(12)은 요구된 블록 데이터를 리퀘스트를 송출한 로컬 모듈로 돌려 보내는데, 해당하는 블록 데이터가 없는 경우에는 상술한 바와 같이(도 9에 관련하여 설명), 당해 블록 데이터를 보유하는 로컬 모듈에 대해서 글로벌 캐시필의 리퀘스트를 보낸다. 그 후, 블록 데이터를 글로벌 캐시에 필함과 동시에, 리퀘스트를 보내 온 로컬 모듈에 대해서 데이터를 송출한다.
글로벌 모듈 12로부터 요구한 블록 데이터가 전송되어지면, 해당하는 로컬 모듈은 로컬 캐시를 갱신하고(ST35, ST36), 처리 유닛은 블록 데이터를 판독한다(ST33).
또한, 여기에서는 최대 4텍스쳐의 동시 처리를 상정하고 있으며, 판독하는 텍스쳐 데이터의 수는 1픽셀에 대해 16텍셀이다.
이어서, 텍스쳐 필터링(Texture Filtering)을 수행한다(ST26).
이 경우, 처리 유닛(131-0∼131-3)은 판독된 텍스쳐 데이터와, (u,v)어드레 스를 산출시에 얻은 소수부를 사용하여 4근방 보간 등의 필터링 처리를 행한다.
이어서, 픽셀 레벨의 처리(Per-Pixel Operation)를 행한다(ST27).
이 같은 처리에 있어서는, 필터링 후의 텍스쳐 데이터와, 래스터화 후의 각종 데이터를 이용하여 픽셀 단위의 연산이 이루어진다. 여기에서 수행되는 처리는, 픽셀 레벨에서의 라이팅(Per-Pixel Lighting) 등 이른바 Pixel Shader에 상당한다. 또한, 그 이외에도 이하의 처리가 포함된다.
즉, 알파 테스트, 시저링, Z버퍼 테스트, 스텐실 테스트, 알파 블렌딩, 로지컬 오페레이션, 디더링의 각 처리이다.
그리고, 픽셀 레벨의 처리에서의 각종 테스트를 거친 픽셀 데이터를, 메모리 모듈(132-0∼132-3), 예를 들면 내장 DRAM 메모리상의 프레임 버퍼 및 Z버퍼에 기록한다(ST28: Memory Write).
각 로컬 모듈(13-0∼13-3)의 로컬 캐시(133-0∼133-3)는 처리 유닛 (131-0∼131-3)의 처리에 필요한 묘화 데이터와 텍스쳐 데이터를 저장하고, 처리 유닛(131-0∼131-3)과의 데이터의 송수신, 및 메모리 모듈(132-0∼132-3)과의 데이터의 송수신(기록, 판독)를 수행한다.
도 13은 각 로컬 모듈(13-0∼13-3)의 로컬 캐시(133-0∼133-3)의 구성예를 나타내는 블록이다.
로컬 캐시 133은 도 13에 도시한 바와 같이, 리드 온리 캐시(1331), 리드 라이트 캐시(1332), 리오더 버퍼(Reorder Buffer; 1333), 메모리 콘트롤러(1334)를 포함한다.
리드 온리 캐시(1331)는 텍스쳐계 데이터의 기억에 이용되고, 리드 라이트 캐시(1332)는 묘화계 데이터의 기억에 이용된다.
또한, 도 14는 텍스쳐계에 이용되는 리드 온리 캐시(1331)의 구성예를 나타낸 도면이다.
도 14에 도시한 바와 같이, 이 리드 온리 캐시(1331)는 하나의 로컬 모듈로 4개의 텍스쳐를 처리하므로, 이에 대응하여 4개의 캐시(CSH0∼CSH3)가 설치되어 있다.
또한, 각 캐시(CSH0∼CSH3)에는 4근방 보간 등의 필터링 처리를 행하기 위해, 픽셀마다 4개의 데이터를 필요로 하므로, 각각 4개의 메모리 뱅크(BK0∼BK3)가 설치되어 있다.
리오더 버퍼(1333)는 이른바 대기 버퍼(wait buffer)이며, 로컬 캐시가 필요한 데이터가 없는 경우, 로컬 캐시필의 리퀘스트를 보냈을 때, 글로벌 모듈 12가 전송되어지는 데이터의 순번이 다를 경우가 있으므로, 이 같은 순번을 준수하여, 처리 유닛(131-0∼131-3)에 요구순으로 복귀하도록 데이터의 순번을 조정한다.
또한, 도 15는 메모리 콘트롤러(1334)의 텍스쳐계의 구성예를 나타낸 블록도이다.
이 같은 메모리 콘트롤러(1334)는 도 15에 도시한 바와 같이, 4개의 캐시( CSH0∼CSH3)에 대응하는 캐시 콘트롤러(13340∼13343)와, 각 캐시 콘트롤러(13340∼13343)로부터 출력되는 로컬 캐시필 리퀘스트를 조정한 글로벌 인터페이스(134{-0∼3})로 출력하는 아비터(13344)와, 글로벌 인터페이스(134{- 0∼3})를 통하여 입력한 글로벌 캐시필 리퀘스트를 받아서, 데이터 전송 제어를 행하는 메모리 인터페이스(13345)를 포함한다.
또한, 캐시 콘트롤러(13340∼13343)는 4개의 픽셀(PX0∼PX3) 각각에 대응하는 데이터에 대해서 4근방 보간을 행할 때에 필요한 각 데이터의 2차원 어드레스 COuv00∼COuv03, COuv10∼COuv13, COuv20∼COuv23, COuv30∼COuv33을 받아서 어드레스의 경합을 체크하여 분배하는 컨플릭트 체커(CC10)와, 컨플릭트 체커(CC10)에서 분배된 어드레스를 체크하여 리드 온리 캐시(1331)에 어드레스로 나타내어진 데이터가 존재하는지의 여부를 판단하는 태그 회로(TAG10)와, 큐레지스터(QR10)를 갖고 있다.
태그 회로(TAG10)내에는 후술하는 뱅크의 인터리브에 관한 어드레싱에 대응하는 4개의 태그 메모리(BK10∼BK13)를 갖고, 리드 온리 캐시(1331)에 기억되어 있다.
블록 데이터의 어드레스 태그를 보존하는 컨플릭트 체커(CC10)에서 분배된 어드레스와 상기 어드레스 태그를 비교하여, 일치하는지의 여부를 나타내는 플래그와 상기 어드레스를 큐레지스터(QR10)에 셋팅함과 동시에, 일치하지 않은 경우에는 상기 어드레스를 아비터(13344)로 송출한다.
아비터(13344)는 캐시 콘트롤러(13340∼13343)로부터 송출되는 어드레스를 받아서 조정 작업을 수행하고, 글로벌 인터페이스(GAIF; 134)를 통하여 동시에 송출할 수 있는 리퀘스트의 수에 따라서 어드레스를 선택하여, 로컬 캐시필 리퀘스트로서 글로벌 인터페이스(134)로 출력한다.
글로벌 인터페이스(134)를 통하여 송출된 로컬 캐시필 리퀘스트에 대응하여 글로벌 캐시 12로부터 데이터가 전송되어지면, 리오더 버퍼(1333)에 셋팅된다.
캐시 콘트롤러(13340∼13343)는 큐레지스터(QRL0)의 선두에 있는 플래그를 체크하고, 일치함을 나타내는 플래그가 셋팅되어 있는 경우에는, 큐레지스터(QRL0)의 선두에 있는 어드레스에 근거하여, 리드 온리 캐시(1331)의 데이터를 판독하고, 처리 유닛 131에 공급한다. 한편, 일치했음을 나타내는 플래그가 셋팅되어 있지 않은 경우에는, 대응하는 데이터가 리오더 버퍼(1333)에 셋팅된 시점에서 리오더 버퍼(1333)로부터 판독하고, 큐레지스터(QRL0)의 어드레스에 근거하여 해당 블록 데이터로 리드 온리 리드 온리 캐시(1331)를 갱신함과 동시에, 처리 유닛 131로 출력한다.
이어서, 본 실시 형태에 따른 뱅크의 인터리브에 관한 어드레싱에 대해서, 도 16A∼도 16E 및 도 17A∼도 17D에 관련시켜 설명한다(문헌: Stanford University「Prefetching in a Texture Cashe Architecture」참조).
이 경우, 도 16A에 도시한 바와 같이, 2차원 화상 데이터를 예를 들면, 4×4의 매트릭스로서 도면 중 종방향을 Vsuper, 횡방향을 Usuper로 한다.
그리고, 하나의 블록을 도 16B에 도시한 바와 같이, 8×8의 캐시 사이즈의 슈퍼 블록의 매트릭스로서, 도중 종방향을 Vblock, 횡방향을 UVblock으로 한다.
이 같은 슈퍼 블록에, 도 16C에 도시한 바와 같이, 4근방의 블록에 0∼3이 번호를 부여한다.
또한, 슈퍼 블록의 하나를 도 16D에 도시한 바와 같이, 4×4인 블록이 매트 릭스로서, 도면 중 종방향을 Voffset, 횡방향을 Uoffset으로 한다.
이 같은 블록에, 도 16E를 도시한 바와 같이, 4근방의 블록에 0∼3의 번호를 부여한다.
그리고, 도 17A에 도시한 바와 같은 V방향에 관한 Vsuper, Vblock, 및 Voffset과, U방향에 관한 Usuper, Ublock, 및 Uoffset을 합체하여, 도 17B에 도시한 바와 같이, 각 0 필드에 후속하여, Vsuper 필드, Usuper 필드, Vblock 필드, Ublock 필드, Voffset 필드, Uoffset 필드가 되도록 소트한다.
또한, 도 17C에 도시한 바와 같은 0 필드∼Ublock 필드에 대응하는 영역을 베이스 어드레스 필드와 합체하여, 도 17D에 도시한 바와 같이, 태그 필드, 블록 인덱스 필드, 블록 오프셋 필드로 이루어지는 어드레스가 생성된다.
이어서, 메모리 모듈로서의 DRAM과, 로컬 캐시와, 글로벌 캐시의 메모리 용량에 대해서 설명한다.
메모리 용량의 관계는 당연히 DRAM>글로벌 캐시>로컬 캐시이지만, 그 비율에 대해서는 어플리케이션에 의존한다.
캐시 블록 사이즈는 캐시필시에 하위 계층의 메모리로부터 판독하는 데이터 사이즈에 상당한다.
DRAM의 특성으로서 랜덤 액세스시에는 성능이 저하되나, 동일 행(ROW)에 속하는 데이터의 연속 액세스는 빠르다는 점을 들 수 있다.
글로벌 캐시는 DRAM으로부터 데이터를 판독하는 관계상, 상기 연속 액세스를 행하는 편이 성능상 바람직하다.
따라서, 캐시 블록의 사이즈를 크게 설정한다.
예를 들면, 글로벌 캐시의 캐시 블록 사이즈는 DRAM 매그로의 1행분 (8292bit)을 블록 사이즈로 할 수 있다.
한편, 로컬 캐시의 경우에는 블록 사이즈를 크게하면, 캐시에 입력하더라도, 사용되지 않는 데이터의 비율이 증가하는 것과, 하위 계층이 글로벌 캐시로 DRAM이 아니며 연속 액세스의 필요성이 없기 때문에, 블록 사이즈는 작게 설정한다.
로컬 캐시의 블록 사이즈로서는, 메모리 인터리브의 구형(矩形) 영역 사이즈에 가까운 값이 적당하며, 본 실시 형태의 경우, 4×4 픽셀분, 즉, 512비트로 한다.
이어서, 텍스쳐 압축에 대해 설명한다.
1픽셀 처리를 수행하는데 복수의 텍스쳐 데이터를 필요로 하므로, 텍스쳐 판독 밴드폭이 병목 현상이 발생하는 경우가 많으나, 이를 경감하기 위해 텍스쳐를 압축하는 방법이 자주 채용된다.
압축 방법에는 여러가지가 있으나, 4×4 픽셀과 같이 작은 구형 영역 단위로 압축/신장할 수 있는 방법의 경우에는, 글로벌 캐시에는 압축된 상태의 데이터를 두고, 로컬 캐시에는 신장 후의 데이터를 두는 것이 바람직하다.
또한, 글로벌 모듈 12와 각 로컬 모듈(13-0∼13-3)과의 배치 관계로서는, 도 7에 도시한 바와 같이, 글로벌 모듈 12를 중심으로 하여, 각 로컬 모듈(13-0∼13-3)을 그 주변 근방에 배치하는 것이 바람직하다.
구체적으로는, 글로벌 모듈 12의 채널 블록 CBLK0의 근방에 채널 블록 CBLK0 과 데이터의 송수신을 행하는 로컬 모듈 13-0를 배치하고, 글로벌 모듈 12의 채널 블록 CBLK1의 근방에 채널 블록 CBLK1과 데이터의 송수신을 행하는 로컬 모듈 13-1을 배치하고, 글로벌 모듈 12의 채널 블록 CBLK2의 근방에 채널 블록 CBLK2와 데이터의 송수신을 행하는 로컬 모듈 13-2를 배치하고, 글로벌 모듈 12의 채널 블록 CBLK3의 근방에 채널 블록 CBLK3과 데이터의 송수신을 행하는 로컬 모듈 13-3을 배치한다.
이에 따라, 각 대응하는 채널 블록과 로컬 모듈까지의 거리를 균일하게 유지할 수 있고, 배선 영역을 정연하게 배열할 수 있으며, 평균 배선 길이를 짧게 할 수 있다. 따라서, 배선 지연과 배선 비용을 저감할 수 있으며, 처리 속도 향상을 도모할 수 있다.
이어서, 상기 구성에 따른 동작을 설명한다.
여기에서는 텍스쳐계의 처리에 대해 설명한다.
우선, SDC11에 있어서, 3차원 좌표, 법선 벡터, 텍스쳐 좌표의 정점 데이터가 입력되면, 정점 데이터에 대한 연산이 수행된다.
이어서, 래스터화에 필요한 각종 데이터(Z, 텍스쳐 좌표, 컬러 등)의 기울기 등의 DDA 파라미터가 산출된다.
그리고, SDC11에 있어서는, 산출한 DDA 파라미터가 글로벌 모듈 12를 통하여 전체 로컬 모듈(13-0∼13-3)에 브로드캐스트된다.
이 같은 처리에 있어서, 브로드캐스트된 파라미터는 후술하는 캐시필과는 다른 채널을 이용하여, 글로벌 모듈 12를 통하여 각 로컬 모듈(13-0∼13-3)에 전달된 다. 단, 글로벌 캐시의 내용에는 영향을 주지 않는다.
각 로컬 모듈(13-0∼13-3)에서는 처리 유닛(131-0∼131-3)에 있어서 이하의 처리가 이루어진다.
즉, 처리 유닛(131-0∼131-3)에 있어서는, 브로드캐스트된 파라미터를 받으면, 그 삼각형이 자신이 담당하는 영역, 예를 들면, 4×4 픽셀의 구형 영역 단위로 인터리브된 영역에 속해있는지의 여부가 판단된다. 그 결과, 속해있는 경우에는, 각종 데이터(Z, 텍스쳐 좌표, 컬러 등)가 래스터화된다.
이어서, LOD 계산에 의한 밉맵 레벨의 산출과, 텍스쳐 액세스를 위한 (u,v)어드레스 계산이 수행된다.
그리고, 이어서, 텍스쳐의 판독이 이루어진다.
이 경우, 각 로컬 모듈(13-0∼13-3)의 처리 유닛(131-0∼131-3)에서는 텍스쳐 리드시에, 우선 로컬 캐시(133-0∼133-3)의 엔트리가 체크된다.
그 결과, 엔트리가 있는 경우에는, 필요한 텍스쳐 데이터가 판독된다.
필요로 하는 텍스쳐 데이터가 로컬 캐시(133-0∼133-3)내에 없는 경우에는, 각 처리 유닛(131-0∼131-3)에서는 글로벌 인터페이스(134-0∼134-3)를 통하여, 글로벌 모듈 12에 대해서 로컬 캐시필의 리퀘스트가 송출된다.
글로벌 모듈 12에 있어서는, 요구된 블록 데이터가 글로벌 캐시(121-0∼ 121-3) 중 어느 것에 있는 것으로 각 채널 블록(CBLK0∼CBLK3)의 태그 회로(1204-0∼1204-3) 중 어느 것에서 판단되면, 대응하는 글로벌 캐시(121-0∼121-3)중 어느 것으로부터 판독되어 채널(1201-0∼1201-3)을 통하여 리퀘스트를 송출한 로컬 모듈 로 반송된다.
한편, 요구된 블록 데이터가 글로벌 캐시(121-0∼121-3)중 어느 것에도 없는 것으로 각 채널 블록(CBLK0∼CBLK3)의 태그 회로(1204-0∼1204-3)에서 판단되면, 원하는 채널(1202-0∼1202-3)중 어느 것으로부터 해당 블록을 보존하는 로컬 모듈에 대해서 글로벌 캐시필의 리퀘스트가 전송된다.
글로벌 캐시필의 리퀘스트를 받은 로컬 모듈에 있어서는, 메모리로부터 해당하는 블록 데이터가 판독되어, 글로벌 인터페이스를 통하여 글로벌 모듈 12로 송출된다.
그 후, 글로벌 모듈 12에서는, 블록 데이터가 원하는 글로벌 캐시에 채워짐과 동시에, 리퀘스트를 보내 온 로컬 모듈에 대해서 원하는 채널로부터 데이터가 송출된다.
글로벌 모듈 12로부터 요구한 블록 데이터가 전송되어지면, 해당하는 로컬 모듈에서는, 로컬 캐시가 갱신되고, 처리 유닛에 의해 블록 데이터가 판독된다.
이어서, 로컬 모듈(13-0∼13-3)에서는 판독된 텍스쳐와, (u,v)어드레스는 산출시에 얻은 소수부를 사용하여 4근방 보간 등의 필터링 처리가 이루어진다.
이어서, 필터링 후의 텍스쳐 데이터와, 래스터화 이후의 각종 데이터를 이용하여, 픽셀 단위의 연산이 수행된다.
그리고, 픽셀 레벨의 처리에서의 각종 테스트를 거친 픽셀 데이터를, 메모리 모듈(132-0∼132-3), 예를 들면 내장 DRAM 메모리 상의 프레임 버퍼 및 Z 버퍼에 기록한다.
이상 설명한 바와 같이, 본 실시 형태에 의하면, SDC(11)와 글로벌 모듈 12 가 데이터의 송수신을 수행하고, 하나의 글로벌 모듈 12에 대해서 복수개(본 실시 형태에서는 4개)의 로컬 모듈(13-0∼13-3)이 병렬로 접속되어, 복수의 로컬 모듈(13-0∼13-3)에서 처리 데이터를 공유하여 병렬로 처리하고, 글로벌 모듈 12는 글로벌 캐시를 갖고, 각 로컬 모듈(13-0∼13-3)은 로컬 캐시를 각각 갖고, 캐시의 계층으로서, 4개의 로컬 모듈(13-0∼13-3)이 공유하는 글로벌 캐시와, 각 로컬 모듈이 로컬로 갖는 로컬 캐시의 2계층을 가지므로, 복수의 처리 장치가 처리 데이터를 공유하여 병렬 처리할 때에, 중복 액세스를 저감할 수 있어, 배선 수가 많은 크로스바가 불필요하게 된다. 그 결과, 설계가 용이하고, 배선 비용, 배선 지연을 저감할 수 있는 화상 처리장치를 실현할 수 있는 이점이 있다.
또한, 본 실시 형태에 의하면, 글로벌 모듈 12와 각 로컬 모듈(13-0∼13-3)과의 배치 관계로서는, 도 7에 도시한 바와 같이, 글로벌 모듈 12를 중심으로 하여 각 로컬 모듈(13-0∼13-3)을 그 주변 근방에 배치하므로, 각 대응하는 채널 블록과 로컬 모듈까지의 거리를 균일하게 유지할 수 있어, 배선 영역을 정연하게 배열할 수 있으며, 평균 배선 길이를 짧게 할 수 있다. 따라서, 배선 지연과 배선 비용을 저감할 수 있으며, 처리 속도의 향상을 도모할 수 있는 이점이 있다.
또한, 본 실시 형태에 있어서는, 텍스쳐 데이터가 내장 DRAM상에 있는 경우를 예로 설명했으나, 다른 예로서 내장 DRAM에는 컬러 데이터 및 z데이터만이 위치하고, 텍스쳐 데이터는 외부 메모리에 위치할 수도 있다. 이 경우에는 글로벌 캐시에서 미스가 발생하면, 외부 DRAM에 대해서 캐시필 요구가 송출되게 된다.
또한, 상술한 설명에서는 도 7의 구성, 즉, 하나의 글로벌 모듈 12에 대해서 복수개(본 실시 형태에서는 4개)의 로컬 모듈(13-0∼13-3)이 병렬로 접속한 화상 처리 장치(10)를 예로 병렬 처리를 수행하는 경우로 특화한 형태로 되어 있으나, 도 7의 구성의 하나의 클러스터 CLST로서, 예를 들면, 도 18에 도시한 바와 같이, 4개의 클러스터(CLST0∼CLST4)를 매트릭스상으로 배치하여, 각 클러스터 (CLST0∼CLST4)의 글로벌 모듈(12-0∼12-3) 사이에서 데이터의 송수신을 행하도록 구성할 수도 있다.
도 18의 예에서는, 클러스터 CLST0의 글로벌 모듈 12-0과 클러스터 CLST1의 글로벌 모듈 12-1을 접속하고, 클러스터 CLST1의 글로벌 모듈 12-1과 클러스터 CLST3의 글로벌 모듈 12-3을 접속하고, 클러스터 CLST3의 글로벌 모듈 12-3과 클러스터 CLST2의 글로벌 모듈 12-2을 접속하고, 클러스터 CLST2의 글로벌 모듈 12-2와 클러스터 CLST0의 글로벌 모듈 12-0을 접속하고 있다.
즉, 복수의 클래스터(CLST0∼CLST4)의 글로벌 모듈(12-0∼12-3)을 링 형상으로 접속하고 있다.
또한, 도 18의 구성의 경우에는, 하나의 SDC로부터 파라미터가 각 클러스터(CLST0∼CLST4)의 글로벌 모듈(12-0∼12-3)에 브로드캐스트되도록 구성할 수 있다.
이와 같은 구성을 채용함으로써, 보다 정도 높은 화상 처리를 실현할 수 있으며, 또한, 클러스터간의 배선도 단순하게 쌍방향으로 하여 단일 계통으로 접속하므로, 각 클러스터간의 부하를 균일하게 유지할 수 있고, 배선 영역을 정연하게 배 열할 수 있으며, 평균 배선 길이를 짧게할 수 있다. 따라서, 배선 지연과 배선 비용을 저감할 수 있으며, 처리 속도 향상을 도모할 수 있게 된다.
이상 설명한 바와 같이, 본 발명의 화상 처리 장치 및 방법은, 복수의 처리 장치가 처리 데이터를 공유하여 병렬 처리할 때에, 중복 액세스를 저감할 수 있어, 배선수가 많은 크로스바가 불필요하게 되며, 그 결과, 설계가 용이하고, 배선 비용, 배선 지연을 저감할 수 있으므로, 예를 들면, 복수의 연산 장치가 처리 데이터를 공유하여 병렬 처리를 수행하는 화상 처리 시스템 등에 적용 가능하다.

Claims (31)

  1. 복수의 모듈이 처리 데이터를 공유하여 병렬 처리를 행하는 화상 처리 장치에 있어서,
    글로벌 모듈과, 복수의 로컬 모듈을 포함하고,
    상기 글로벌 모듈은,
    상기 복수의 로컬 모듈이 병렬로 접속되고, 상기 로컬 모듈에서 필요한 처리 데이터가 기억되는 글로벌 캐시를 갖고, 로컬 모듈로부터 로컬 캐시필 리퀘스트(Local Cache Fill Request)를 받으면, 상기 글로벌 캐시에 있는 요구에 따른 데이터를 당해 리퀘스트를 송출한 로컬 모듈로 출력하고,
    상기 복수의 로컬 모듈은,
    화상에 관한 데이터가 기억되는 메모리 모듈과,
    적어도 상기 처리 데이터를 기억하는 로컬 캐시와,
    연산용 파라미터 및 상기 로컬 캐시에 기억되어 있는 처리 데이터에 근거하여 미리 대응하는 메모리 인터리브에 의해 정해진 처리를 수행하는 처리 유닛을 갖고,
    처리에 필요한 처리 데이터가 상기 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하고, 당해 리퀘스트에 따라서 전송되어진 데이터로 상기 로컬 캐시를 갱신하는 것을 특징으로 하는 화상 처리 장치.
  2. 제1항에 있어서, 상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하는 것을 특징으로 하는 화상 처리 장치.
  3. 제1항에 있어서, 상기 로컬 모듈은 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고,
    상기 글로벌 모듈은, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 당해 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출하는 것을 특징으로 하는 화상 처리 장치.
  4. 제1항에 있어서, 상기 로컬 모듈은 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고,
    상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하며, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 당해 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출하는 것을 특징으로 하는 화상 처리 장치.
  5. 제1항에 있어서, 상기 연산용 파라미터를 생성하는 콘트롤러를 갖고,
    상기 글로벌 모듈은 상기 콘트롤러에서 생성된 연산용 파라미터를 상기 복수의 로컬 모듈에 공급하는 것을 특징으로 하는 화상 처리 장치.
  6. 제1항에 있어서, 상기 글로벌 모듈은 각 로컬 모듈에 대응하여 형성된 복수의 채널 블록을 갖고,
    상기 복수의 채널 블록은 대응하는 로컬 모듈과 로컬 캐시필 리퀘스트 및 데이터의 송수신을 행하는 것을 특징으로 하는 화상 처리 장치.
  7. 삭제
  8. 삭제
  9. 제4항에 있어서, 상기 글로벌 모듈은 각 로컬 모듈에 대응하여 형성된 복수의 채널 블록을 갖고,
    상기 복수의 채널 블록은 대응하는 로컬 모듈과 로컬 캐시필 리퀘스트, 글로벌 캐시필 리퀘스트 및 데이터의 송수신을 행하는 것을 특징으로 하는 화상 처리 장치.
  10. 삭제
  11. 삭제
  12. 제1항에 있어서, 상기 병렬 처리는 픽셀 레벨에서의 병렬 처리인 것을 특징으로 하는 화상 처리 장치.
  13. 제1항에 있어서, 상기 병렬 처리는 텍스쳐에 관한 처리인 것을 특징으로 하 는 화상 처리 장치.
  14. 복수의 모듈이 처리 데이터를 공유하여 병렬 처리를 행하는 화상 처리 장치에 있어서,
    글로벌 모듈과, 복수의 로컬 모듈을 포함하는 복수의 클러스터를 갖고,
    상기 각 클러스터의 상기 글로벌 모듈은,
    상기 복수의 로컬 모듈이 병렬로 접속되고, 상기 로컬 모듈에서 필요한 처리 데이터가 기억되는 글로벌 캐시를 갖고, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 상기 글로벌 캐시에 있는 요구에 따른 데이터를 당해 리퀘스트를 송출한 로컬 모듈로 출력하고,
    상기 복수의 로컬 모듈은,
    화상에 관한 데이터가 기억되는 메모리 모듈과,
    적어도 상기 처리 데이터를 기억하는 로컬 캐시와,
    연산용 파라미터 및 상기 로컬 캐시에 기억되어 있는 처리 데이터에 근거하여 미리 대응하는 메모리 인터리브에 의해 정해진 처리를 수행하는 처리 유닛을 갖고,
    처리에 필요한 처리 데이터가 상기 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하고, 당해 리퀘스트에 따라서 전송되어진 데이터로 상기 로컬 캐시를 갱신하고,
    각 클러스터의 글로벌 모듈이 서로 데이터의 송수신을 행하는 것을 특징으로 하는 화상 처리 장치.
  15. 제14항에 있어서, 상기 복수의 클러스터는 매트릭스상으로 배치되고, 각 클러스터의 글로벌 모듈은 링 형상으로 접속되어 있는 것을 특징으로 하는 화상 처리 장치.
  16. 제14항에 있어서, 상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하는 것을 특징으로 하는 화상 처리 장치.
  17. 제14항에 있어서, 상기 로컬 모듈은 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고,
    상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 당해 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출하는 것을 특징으로 하는 화상 처리 장치.
  18. 제14항에 있어서, 상기 로컬 모듈은 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고,
    상기 글로벌 모듈은 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글러벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하고, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 당해 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출하는 것을 특징으로 하는 화상 처리 장치.
  19. 제1항에 있어서, 상기 연산용 파라미터를 생성하는 콘트롤러를 갖고,
    상기 글로벌 모듈은 상기 콘트롤러에서 생성된 연산용 파라미터를 상기 복수의 로컬 모듈에 공급하는 것을 특징으로 하는 화상 처리 장치.
  20. 제14항에 있어서, 상기 글로벌 모듈은 각 로컬 모듈에 대응하여 형성된 복수의 채널 블록을 갖고,
    상기 복수의 채널 블록은 대응하는 로컬 모듈과 로컬 캐시필 리퀘스트 및 데이터의 송수신을 행하는 것을 특징으로 하는 화상 처리 장치.
  21. 삭제
  22. 삭제
  23. 제18항에 있어서, 상기 글로벌 모듈은 각 로컬 모듈에 대응하여 형성된 복수의 채널 블록을 갖고,
    상기 복수의 채널 블록은 대응하는 로컬 모듈과 로컬 캐시필 리퀘스트, 글로벌 캐시필 리퀘스트 및 데이터의 송수신을 행하는 것을 특징으로 하는 화상 처리 장치.
  24. 삭제
  25. 삭제
  26. 제14항에 있어서, 상기 병렬 처리는 픽셀 레벨에서의 병렬 처리인 것을 특징으로 하는 화상 처리 장치.
  27. 제14항에 있어서, 상기 병렬 처리는 텍스쳐에 관한 처리인 것을 특징으로 하는 화상 처리 장치.
  28. 복수의 모듈이 처리 데이터를 공유하여 병렬 처리를 행하는 화상 처리 방법에 있어서,
    하나의 글로벌 모듈에 대해서 복수의 로컬 모듈을 병렬로 접속하고,
    캐시의 계층으로서, 복수의 로컬 모듈이 공유하는 글로벌 캐시와, 각 로컬 모듈이 로컬로 갖는 로컬 캐시의 2계층으로 하고,
    글로벌 모듈에 있어서,
    글로벌 캐시에 로컬 모듈에서 필요한 처리 데이터를 기억하여, 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 상기 글로벌 캐시에 있는 요구에 따른 데이터를 당해 리퀘스트를 송출한 로컬 모듈로 출력하고,
    상기 복수의 로컬 모듈에 있어서,
    상기 로컬 캐시에 적어도 상기 처리 데이터를 기억하여, 연산용 파라미터 및 로컬 캐시에 기억되어 있는 처리 데이터에 근거하여 미리 대응하는 메모리 인터리브에 의해 정해진 처리를 수행하고,
    처리에 필요한 처리 데이터가 상기 로컬 캐시에 없는 경우에는, 필요한 데이터를 요구하는 로컬 캐시필 리퀘스트를 출력하여, 당해 리퀘스트에 따라 전송되어진 데이터로 상기 로컬 캐시를 갱신하는 것을 특징으로 하는 화상 처리 방법.
  29. 제28항에 있어서, 상기 글로벌 모듈이 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하는 것을 특징으로 하는 화상 처리 방법.
  30. 제28항에 있어서, 상기 로컬 모듈이 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고,
    상기 글로벌 모듈이 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 당해 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출하는 것을 특징으로 하는 화상 처리 방법.
  31. 제28항에 있어서, 상기 로컬 모듈이 글로벌 캐시필 리퀘스트를 받으면, 요구된 블록 데이터를 상기 글로벌 모듈로 출력하고,
    상기 글로벌 모듈이 로컬 모듈로부터 로컬 캐시필 리퀘스트를 받으면, 글로벌 캐시의 엔트리를 체크하여, 엔트리가 있는 경우에는, 요구된 블록 데이터를 판독하고, 판독한 데이터를 리퀘스트를 송출한 로컬 모듈로 송출하고, 엔트리가 없는 경우에는, 요구된 블록 데이터를 보유하는 타겟의 로컬 모듈에 대해서 글로벌 캐시필 리퀘스트를 보내고, 그 후 타겟의 로컬 모듈로부터 전송되어진 블록 데이터로 글로벌 캐시를 갱신함과 함께, 당해 블록 데이터를 판독하고, 판독한 데이터를 로컬 캐시필 리퀘스트를 보내 온 로컬 모듈에 대해서 송출하는 것을 특징으로 하는 화상 처리 방법.
KR1020037010543A 2001-12-12 2002-12-11 화상 처리 장치 및 그 방법 KR100857657B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001379350A JP3840966B2 (ja) 2001-12-12 2001-12-12 画像処理装置およびその方法
JPJP-P-2001-00379350 2001-12-12
PCT/JP2002/012965 WO2003050759A1 (fr) 2001-12-12 2002-12-11 Appareil de traitement d'images et procede associe

Publications (2)

Publication Number Publication Date
KR20040080920A KR20040080920A (ko) 2004-09-20
KR100857657B1 true KR100857657B1 (ko) 2008-09-08

Family

ID=19186758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037010543A KR100857657B1 (ko) 2001-12-12 2002-12-11 화상 처리 장치 및 그 방법

Country Status (7)

Country Link
US (1) US7333115B2 (ko)
EP (1) EP1460581B1 (ko)
JP (1) JP3840966B2 (ko)
KR (1) KR100857657B1 (ko)
CN (1) CN1297939C (ko)
DE (1) DE60222175T2 (ko)
WO (1) WO2003050759A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937244B2 (en) * 2003-09-23 2005-08-30 Zhou (Mike) Hong Apparatus and method for reducing the memory traffic of a graphics rendering system
JP4030519B2 (ja) * 2004-04-15 2008-01-09 株式会社東芝 画像処理装置および画像処理システム
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US7750914B2 (en) 2004-08-26 2010-07-06 Intel Corporation Subdividing geometry images in graphics hardware
KR100868396B1 (ko) * 2004-08-26 2008-11-11 인텔 코오퍼레이션 기하 이미지 분할을 위한 그래픽 처리 시스템 및 방법
US8624906B2 (en) 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8725990B1 (en) 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
KR100880982B1 (ko) * 2004-11-15 2009-02-03 엔비디아 코포레이션 비디오 처리
JP2006202211A (ja) * 2005-01-24 2006-08-03 Fujitsu Ltd 画像描画装置および画像描画方法
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8228328B1 (en) 2006-11-03 2012-07-24 Nvidia Corporation Early Z testing for multiple render targets
US8265169B2 (en) 2006-12-29 2012-09-11 Intel Corporation Video block memory read request translation and tagging
CN100533485C (zh) * 2007-01-17 2009-08-26 威盛电子股份有限公司 影像描绘方法
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US9064333B2 (en) 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
EP2294571A4 (en) * 2008-05-30 2014-04-23 Advanced Micro Devices Inc COMPLEX NUANCE COMPRESSOR WITH DISTRIBUTED LEVEL 1 CACHE SYSTEM AND CENTRALIZED LEVEL 2 COVER MEMORY
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US7924860B1 (en) * 2008-12-23 2011-04-12 Juniper Networks, Inc. Maintaining data unit order in a network switching device
US8314949B2 (en) * 2008-12-23 2012-11-20 Infoprint Solutions Company Llc Distributed global object cache
JP5404433B2 (ja) * 2010-01-08 2014-01-29 株式会社東芝 マルチコアシステム
CN103080981B (zh) * 2010-08-27 2016-03-02 矽锂铬艺术有限公司 选择纹理映射水平的方法及利用该方法的材质贴图系统
AU2010241218B2 (en) * 2010-11-03 2013-10-31 Canon Kabushiki Kaisha Method, apparatus and system for associating an intermediate fill with a plurality of objects
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
CN102542525B (zh) * 2010-12-13 2014-02-12 联想(北京)有限公司 一种信息处理设备以及信息处理方法
US20130007369A1 (en) * 2011-06-29 2013-01-03 International Business Machines Corporation Transparent Cache for Mobile Users
CN103034465B (zh) * 2011-09-29 2016-04-27 腾讯科技(深圳)有限公司 图像浏览方法及浏览系统
US10181176B2 (en) * 2016-03-04 2019-01-15 Samsung Electronics Co., Ltd. Efficient low-power texture cache architecture

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903908A (en) 1994-01-04 1999-05-11 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5882357A (ja) * 1981-11-11 1983-05-17 Hitachi Ltd プロセツサ間通信方式
JPH0348979A (ja) * 1989-07-17 1991-03-01 Nec Corp 並列画像処理装置
KR0140674B1 (ko) * 1993-04-12 1998-06-15 모리시다 요이치 영상신호처리장치 및 처리방법
CN1081368C (zh) * 1997-06-27 2002-03-20 清华大学 实现邻域图象数据并行存取的方法及邻域图象帧存储体
US6662173B1 (en) * 1998-12-31 2003-12-09 Intel Corporation Access control of a resource shared between components
JP2001273191A (ja) * 2000-03-24 2001-10-05 Seiko Epson Corp コンピュータシステム
US6904499B2 (en) * 2001-03-30 2005-06-07 Intel Corporation Controlling cache memory in external chipset using processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903908A (en) 1994-01-04 1999-05-11 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories

Also Published As

Publication number Publication date
CN1297939C (zh) 2007-01-31
EP1460581B1 (en) 2007-08-29
CN1491401A (zh) 2004-04-21
DE60222175T2 (de) 2008-05-21
EP1460581A1 (en) 2004-09-22
JP2003178294A (ja) 2003-06-27
DE60222175D1 (de) 2007-10-11
KR20040080920A (ko) 2004-09-20
JP3840966B2 (ja) 2006-11-01
WO2003050759A1 (fr) 2003-06-19
US7333115B2 (en) 2008-02-19
US20040111489A1 (en) 2004-06-10
EP1460581A4 (en) 2006-07-12

Similar Documents

Publication Publication Date Title
KR100857657B1 (ko) 화상 처리 장치 및 그 방법
US6591347B2 (en) Dynamic replacement technique in a shared cache
US10515011B2 (en) Compression status bit cache and backing store
US7042448B2 (en) Image processing unit, image processing system using the same, and image processing method
US8941653B2 (en) Order-preserving distributed rasterizer
US7664922B2 (en) Data transfer arbitration apparatus and data transfer arbitration method
US6564304B1 (en) Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
JP4691493B2 (ja) マルチプロセッサ・グラフィックス処理システムの適応型負荷分散
US9214007B2 (en) Graphics processor having unified cache system
US6831653B2 (en) Graphics pixel packing for improved fill rate performance
US7050063B1 (en) 3-D rendering texture caching scheme
US20060095672A1 (en) System and method for parallel execution of data generation tasks
US7649538B1 (en) Reconfigurable high performance texture pipeline with advanced filtering
US8810592B2 (en) Vertex attribute buffer for inline immediate attributes and constants
US7245302B1 (en) Processing high numbers of independent textures in a 3-D graphics pipeline
US8217954B2 (en) Reconfigurable dual texture pipeline with shared texture cache
US8862823B1 (en) Compression status caching
EP1604286B1 (en) Data processing system with cache optimised for processing dataflow applications
EP1308899A2 (en) Image processing apparatus
US9536341B1 (en) Distributing primitives to multiple rasterizers
US8874844B1 (en) Padding buffer requests to avoid reads of invalid data

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120827

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130823

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140822

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee