인피니트리얼리티

**인피니트리얼리티**(InfiniteReality)는 1996년부터 2005년까지 실리콘 그래픽스가 개발하고 제조한 3차원 컴퓨터 그래픽스 하드웨어 아키텍처이자 해당 하드웨어 아키텍처를 구현한 그래픽 시스템 제품군을 지칭한다. 인피니트리얼리티는 실리콘 그래픽스의 MIPS/IRIX 플랫폼용 하이엔드 시각화 하드웨어로 포지셔닝되었으며, "그래픽 슈퍼컴퓨터" 또는 "시각화 슈퍼컴퓨터"라고도 불리는 Onyx 시각화 시스템 제품군에 독점적으로 사용되었다. 인피니트리얼리티는 컴퓨터 시뮬레이션, 디지털 콘텐츠 제작, 엔지니어링 및 연구에 관련된 기업 및 대학과 같은 대규모 조직에 판매되고 사용되었다.

## 인피니트리얼리티
인피니트리얼리티는 1996년 초에 출시되었으며 실리콘 그래픽스 Onyx에 사용되었다. 이는 리얼리티엔진의 후속작이지만, 리얼리티엔진은 Onyx의 데스크사이드 "워크스테이션" 구성에서 보급형 옵션으로 인피니트리얼리티와 한동안 공존했다.

인피니트리얼리티 아키텍처는 3세대 설계이며 일종의 소트 미들 아키텍처로 분류된다. 이는 교체된 리얼리티엔진 성능의 약 2~4배인 초당 60프레임으로 복잡한 장면을 고품질로 렌더링하도록 설계되었다. 이 아키텍처는 OpenGL 그래픽스 라이브러리와 함께 사용하기 위해 명시적으로 설계되었으며 OpenGL 파이프라인의 대부분을 하드웨어로 구현한다.

구현은 **지오메트리** (**지오메트리 엔진**이라고도 함), **래스터 메모리** (**래스터 관리자**라고도 함) 및 **디스플레이 생성기** 보드로 분할되며, 각 보드는 아키텍처 파이프라인의 세 가지 주요 단계 중 각 단계에 해당한다. 보드 세트 분할 방식은 실리콘 그래픽스가 리얼리티엔진을 인피니트리얼리티로 쉽게 업그레이드할 수 있도록 원했던 결과로 리얼리티엔진과 동일하다. 각 파이프라인은 하나의 지오메트리 엔진 보드, 한 개, 두 개 또는 네 개의 래스터 관리자 보드 및 하나의 디스플레이 생성기 보드로 구성된다.

이 구현은 세 개의 금속 상호 연결 레이어를 가진 0.5 및 0.35 마이크로미터 공정으로 제작된 12개의 ASIC 설계를 포함한다. 이 ASIC는 3.3V 전원 공급 장치를 필요로 한다. 최대 구성의 인피니트리얼리티 파이프라인에는 2억 5천 1백만 개의 트랜지스터가 포함되어 있다. 인피니트리얼리티는 55명의 엔지니어가 개발했다.

Onyx2 및 Onyx 3000의 특정 모델과 같이 충분한 성능을 가진 시스템이 주어지면 최대 16개의 인피니트리얼리티 파이프라인을 호스팅할 수 있다. 파이프라인은 멀티시트, 멀티디스플레이 및 멀티파이프의 세 가지 모드로 작동할 수 있다. 멀티시트 모드에서는 각 파이프라인이 최대 8명의 동시 사용자를 지원할 수 있으며, 각 사용자에게는 자체적인 별도의 디스플레이, 키보드 및 마우스가 제공된다. 멀티디스플레이 모드에서는 여러 출력이 여러 디스플레이를 구동하며, 이는 가상 현실에 유용하다. 멀티파이프 모드는 두 가지 작동 방식을 가진다. 첫 번째 방식은 여러 파이프라인의 출력을 결합하는 디지털 멀티플렉서(DPLEX) 도터보드를 각 파이프라인에 설치해야 한다. 두 번째 방식은 **몬스터모드** 소프트웨어를 사용하여 프레임을 렌더링하는 데 사용되는 데이터를 여러 파이프라인에 분산한다.

파이프라인을 시스템에 연결하기 위해 Flat Cable Interface(FCI) 케이블을 사용하여 지오메트리 보드의 Host Interface Processor ASIC을 호스트 시스템의 일부인 IO4 보드의 Ibus에 연결한다.

### 지오메트리 보드
지오메트리 보드는 지오메트리 및 이미지 처리를 담당하며, 각 단계는 별도의 장치로 구현되는 네 단계로 나뉜다. 첫 번째 단계는 **호스트 인터페이스**이다. 인피니트리얼리티는 두 가지 매우 다른 플랫폼, 즉 POWERpath-2 버스를 사용하는 기존의 공유 메모리 버스 기반 Onyx와 분산 공유 메모리 네트워크 기반 NUMAlink2 인터커넥트를 사용하는 Onyx2를 위해 설계되었기 때문에, 인피니트리얼리티는 들어오는 대역폭(각각 200MB/s 대 400MB/s)에서 큰 차이가 있는 두 플랫폼 모두에서 유사한 성능을 제공할 수 있는 인터페이스를 가져야 했다.

이를 위해 임베디드 RISC 코어인 **호스트 인터페이스 프로세서**가 직접 메모리 접근(DMA)을 사용하여 디스플레이 목록 개체를 가져오는 데 사용된다. 호스트 인터페이스 프로세서에는 16MB의 동기식 동적 랜덤 액세스 메모리(SDRAM)가 함께 제공되며, 이 중 15MB는 디스플레이 리프 개체를 캐싱하는 데 사용된다. 캐시는 다음 단계로 300MB/s 이상의 속도로 데이터를 전달할 수 있다. 다음 단계는 **지오메트리 분배기**로, 호스트 인터페이스 프로세서에서 개별 지오메트리 엔진으로 데이터와 명령어를 전송한다.

다음 단계는 지오메트리 및 이미지 처리이다. 이 목적을 위해 **지오메트리 엔진**이 사용되며, 각 지오메트리 보드에는 최대 4개의 지오메트리 엔진이 다중 명령어 다중 데이터(MIMD) 방식으로 작동한다. 지오메트리 엔진은 3개의 부동소수점 코어를 포함하는 단일 명령어 다중 데이터(SIMD) 파이프라인을 가진 반주문형 ASIC으로, 각 코어에는 산술 논리 장치(ALU), 곱셈기 및 2개의 읽기 포트와 2개의 쓰기 포트를 가진 32비트 32개 항목 레지스터 파일이 포함되어 있다. 이 코어에는 OpenGL 상태 요소를 저장하고 스크래치패드 스토리지를 제공하는 32비트 2,560개 항목 메모리가 제공된다. 각 코어에는 부동소수점 값을 정수 형태로 변환하는 **float-to-fix 컨버터**도 있다. 지오메트리 엔진은 주기당 3개의 명령어를 완료할 수 있으며, 4개의 장치를 가진 각 지오메트리 보드는 주기당 12개의 명령어를 완료할 수 있다. 지오메트리 엔진은 195비트 마이크로명령어를 사용하며, 크기와 대역폭 사용량을 줄이기 위해 압축되지만 성능은 약간 저하된다.

지오메트리 엔진 프로세서는 90MHz로 작동하며, 최대 이론 성능은 540MFLOPS이다. GE12-4 또는 GE14-4 보드에 이러한 프로세서가 4개 있으므로, 최대 이론 성능은 2.16GFLOPS이다. 따라서 16개 파이프라인 시스템은 최대 이론 성능 34.56GFLOPS를 달성한다.

네 번째 단계는 **지오메트리-래스터 FIFO**로, 4개의 지오메트리 엔진의 출력을 하나로 병합하고 발행된 순서대로 출력을 재조립하는 선입 선출(FIFO) 버퍼이다. FIFO는 SDRAM으로 구성되어 있으며 4MB 용량을 가진다. 65,536개의 정점을 저장할 수 있을 만큼 충분히 크다. 변환된 정점은 이 FIFO에서 삼각형 재조립 및 설정을 위해 400MB/s의 대역폭을 가진 삼각형 버스(버텍스 버스라고도 함)를 통해 래스터 관리자 보드로 이동된다.

### 래스터 메모리 보드
래스터 메모리 보드의 기능은 래스터화를 수행하는 것이다. 또한 텍스처 메모리와 래스터 메모리(일반적으로 프레임버퍼로 알려져 있음)도 포함한다. 래스터화는 **[[프래그먼트 (컴퓨터 그래픽스)|프래그먼트 생성기]]**와 80개의 **이미지 엔진**에서 수행된다. 프래그먼트 생성기는 4개의 ASIC 설계로 구성된다: **스캔 컨버터**(SC) ASIC, **텍셀 주소 계산기**(TA) ASIC, **텍스처 메모리 컨트롤러**(TM) ASIC 및 **텍스처 프래그먼트**(TF) ASIC이다.

SC ASIC과 TA ASIC은 들어오는 데이터에 대한 스캔 변환, 색상 및 깊이 보간, 원근 보정 텍스처 좌표 보간 및 세부 수준 계산을 수행하며, 결과는 텍셀 접근에 최적화된 특수 메모리 컨트롤러인 8개의 TM ASIC으로 전달된다. 각 TM ASIC은 텍스처 메모리의 8분의 1을 구성하는 4개의 SDRAM을 제어한다. 사용되는 SDRAM은 16비트 폭이며 별도의 주소 및 데이터 버스를 가진다. 4Mb 용량의 SDRAM은 16MB 텍스처 메모리를 가진 래스터 관리자 보드에서 사용되며, 16Mb SDRAM은 64MB 텍스처 메모리를 가진 래스터 관리자 보드에서 사용된다. TM ASIC은 TA ASIC에서 발행한 텍셀 주소에 따라 SDRAM에서 텍셀 조회를 수행한다. TM ASIC에서 온 텍셀은 적절한 TF ASIC으로 전달되어 텍스처 필터링, 보간된 색상과의 텍스처 환경 조합 및 안개 적용이 수행된다. 각 SDRAM은 텍스처 메모리의 일부를 보유하므로, 모든 32개의 SDRAM은 80개의 이미지 엔진 모두에 연결되어야 한다. 이를 위해 TM 및 TF ASIC은 2계층 오메가 네트워크를 구현하여 32개에서 80개로 정렬하는 데 필요한 개별 경로 수를 줄이면서 동일한 기능을 유지한다.

80개의 이미지 엔진은 여러 기능을 가진다. 첫째, 각 이미지 엔진은 래스터 메모리의 일부를 제어하는데, 인피니트리얼리티의 경우 262,144 x 32비트 워드로 구성된 1MB SGRAM이다. 둘째, 다음 OpenGL 조각별 작업은 이미지 엔진에서 수행된다: 픽셀 소유권 테스트, 스텐실 테스트, 깊이 버퍼 테스트, 블렌딩, 디더링 및 논리 연산. 마지막으로 이미지 엔진은 안티앨리어싱 및 누적 버퍼 작업을 수행한다. 디스플레이를 위한 픽셀 데이터를 전달하기 위해 각 이미지 엔진은 디스플레이 생성기 보드에 2비트 직렬 버스를 가진다. 파이프라인에 하나의 래스터 관리자 보드가 있는 경우 이미지 엔진은 버스의 전체 너비를 사용하고, 두 개 이상의 래스터 관리자 보드가 있는 경우 이미지 엔진은 버스의 절반을 사용한다. 각 직렬 버스는 실제로는 1.2GB/s의 대역폭을 가진 비디오 버스의 일부이다. 이미지 엔진 ASIC에는 4개의 이미지 엔진 "코어"가 포함되어 있으며, 0.35 마이크로미터 공정으로 VLSI 기술에 의해 제작된 42mm2 (6.5 x 6.5mm) 다이에 약 488,000개의 로직 게이트, 즉 195만 개의 트랜지스터로 구성되어 있다.

인피니트리얼리티는 **RM6-16** 또는 **RM6-64** 래스터 관리자를 사용한다. 각 파이프라인은 각각 1개, 2개 또는 4개의 래스터 관리자 보드가 있는 경우 262만, 524만 또는 1048만 픽셀의 디스플레이 해상도를 지원할 수 있다. 래스터 메모리는 픽셀당 256, 512 또는 1024비트를 사용하도록 구성할 수 있다. 320MB는 각 픽셀에 512비트의 정보를 포함하는 2560 x 2048 픽셀 해상도를 지원한다. 4개의 래스터 관리자가 있는 구성에서 텍스처 메모리는 15.36GB/s의 대역폭을 가지며, 래스터 메모리는 72.8GB/s의 대역폭을 가진다.

### 디스플레이 생성기 보드
**DG4-2** 디스플레이 생성기 보드에는 최대 2개의 비디오 출력을 구동하는 하드웨어가 포함되어 있으며, 선택적 도터보드를 사용하면 8개의 비디오 출력으로 확장할 수 있는데, 이 구성은 **DG4-8**로 알려져 있다. 출력은 독립적이며 각 출력에는 비디오 타이밍 생성, 비디오 크기 조정, 감마 보정, 젠록 및 디지털-아날로그 변환을 위한 하드웨어가 있다. 디지털-아날로그 변환은 최대 220MHz의 픽셀 클럭 주파수를 지원하는 8비트 디지털-아날로그 변환기에 의해 제공된다.

비디오 출력 데이터는 160비트 스트림을 10비트 구성 요소 RGBA, 12비트 구성 요소 RBGA, L16, 스테레오 필드 시퀀셜(FS) 또는 색상 인덱스로 역직렬화하고 역인터리빙하는 4개의 ASIC에 의해 제공된다. 이 하드웨어는 이 단계에서 커서도 통합한다. 32,768개 항목의 색상 인덱스 맵을 사용할 수 있다.

### 기능 및 성능
인피니트리얼리티는 여러 고급 기능을 갖추고 있다:

* 8 x 8 멀티샘플 안티앨리어싱
* 최대 48비트 RGBA 색상 깊이
* 16개의 오버레이 플레인
* 24비트 부동소수점 Z-버퍼
* 각 픽셀은 256에서 1,048비트의 데이터로 구성됨
* 스테레오 뷰잉이 지원되었으며 쿼드 버퍼링됨

인피니트리얼리티의 성능은 다음과 같다:

* 초당 1,100만 개의 비조명, 깊이 버퍼링, 안티앨리어싱, 삼각형 스트립(각 40픽셀)
* 초당 830만 개의 텍스처링, 깊이 버퍼링, 안티앨리어싱, 삼각형 스트립(각 50픽셀)
* 초당 700만 개 이상의 조명, 텍스처링 및 안티앨리어싱 삼각형
* 초당 8억 개의 3선형 밉맵핑, 텍스처링, 16비트 텍셀, 깊이 버퍼링 픽셀
* 초당 7억 5천만 개의 3선형 밉맵핑, 텍스처링, 16비트 텍셀, 4 x 4 서브샘플 안티앨리어싱, 깊이 버퍼링 픽셀
* 초당 7억 1천만 개 이상의 텍스처링 및 안티앨리어싱 픽셀
* 1개에서 8개 출력으로 분산된 초당 3억 개의 디스플레이 픽셀

## 인피니트리얼리티2
인피니트리얼리티2는 hinv(시스템에 있는 하드웨어를 나열하는 IRIX 유틸리티)가 Onyx2에 사용되는 인피니트리얼리티를 지칭하는 방식이다. 그러나 인피니트리얼리티2는 여전히 인피니트리얼리티로 판매되었다. 이는 인피니트리얼리티 아키텍처의 두 번째 구현으로 1996년 후반에 출시되었다. 아키텍처적으로는 인피니트리얼리티와 동일하지만, Onyx2의 Origin 2000 기반 카드 케이지가 Onyx의 챌린지 기반 카드 케이지와 다르기 때문에 기계적으로 차이가 있다.

인피니트리얼리티2에 의해 도입된 것은 랙마운트 Onyx2 또는 이후 시스템에 사용되는 인터페이스 방식이다. FCI 케이블을 통해 호스트 시스템에 연결하는 대신, 보드 세트는 두 개의 파이프라인을 지원할 수 있는 미드플레인 후면에 연결된다. 미드플레인에는 11개의 슬롯이 있다. 슬롯 6부터 슬롯 11까지는 첫 번째 파이프라인용이며, 1개에서 4개의 래스터 관리자 보드를 포함할 수 있다. 슬롯 1부터 슬롯 4까지는 두 번째 파이프라인용이며, 슬롯 수 때문에 1개 또는 2개의 래스터 관리자 보드를 포함할 수 있다. 이 때문에 최대 구성된 Onyx 시스템은 16개의 파이프라인 중 절반을 최대 2개의 래스터 관리자 보드로 제한하는 것을 피하기 위해 각 파이프라인에 대해 하나의 미드플레인을 사용한다. 슬롯 5에는 미드플레인이 Origin 2000 기반 시스템(Onyx2)에 사용되는 경우 Ktown 보드가, Origin 3000 기반 시스템(Onyx 3000)에 사용되는 경우 Ktown2 보드가 포함된다. 이 보드들의 목적은 호스트 시스템의 XIO 링크를 지오메트리 보드의 Host Interface Processor ASIC에 연결하는 것이다. 이 보드들에는 이 목적을 위해 두 개의 XIO 포트가 있으며, 상단 XIO 포트는 오른쪽 파이프라인에 연결되고 하단 XIO 포트는 왼쪽 파이프라인에 연결된다.

### 리얼리티
리얼리티는 인피니트리얼리티2의 비용 절감 버전으로 유사한 성능을 제공하기 위한 것이었다. 리얼리티는 GE14-4 지오메트리 엔진 보드와 RM7-16 또는 RM7-64 래스터 관리자 보드 대신 **GE14-2** 지오메트리 엔진 보드와 **RM8-16** 또는 **RM8-64** 래스터 관리자 보드를 사용했다. GE14-2는 다른 모델과 달리 4개가 아닌 2개의 지오메트리 엔진 프로세서를 가지고 있다. RM8-16 및 RM864는 각각 16MB 또는 64MB의 텍스처 메모리와 40MB의 래스터 메모리를 가지고 있다. 리얼리티는 또한 지원할 수 있는 래스터 관리자 보드의 수(1개 또는 2개)에 제한이 있었다. 두 개의 RM8-64 래스터 관리자 보드로 최대 구성되었을 때, 리얼리티 파이프라인은 80MB의 래스터 메모리를 가진다.

### 인피니트리얼리티2E
인피니트리얼리티2E는 1998년에 출시된 인피니트리얼리티의 업그레이드 버전으로, 인피니트리얼리티2로 판매되었다. 이는 인피니트리얼리티 보드 세트의 후속작이었으며, 2000년에 인피니트리얼리티3으로 대체되었지만, 2001년 4월 10일까지 단종되지 않았다.

GE14-4 지오메트리 엔진 보드를 **GE16-4** 지오메트리 엔진 보드로, RM7-16 또는 RM7-64 래스터 관리자 보드를 **RM9-64** 래스터 관리자 보드로 교체하여 인피니트리얼리티를 개선했다. 새로운 지오메트리 엔진 보드는 112MHz로 작동하여 지오메트리 및 이미지 처리 성능을 향상시켰다. 새로운 래스터 관리자 보드는 72MHz로 작동하여 안티앨리어싱 픽셀 채우기 성능을 향상시켰다.

## 인피니트리얼리티3
인피니트리얼리티3는 2000년에 Onyx 3000과 함께 출시되어 인피니트리얼리티2를 대체했다. 이는 Onyx2 및 Onyx 3000 시각화 시스템에 사용되었다. 이전 구현에 비해 유일한 개선점은 RM9-64 래스터 관리자를 **RM10-256** 래스터 관리자로 교체한 것으로, 이는 이전 래스터 관리자의 4배인 256MB의 텍스처 메모리를 가지고 있다. 4개의 래스터 관리자로 최대로 구성되었을 때, 인피니트리얼리티3 파이프라인은 320MB의 래스터 메모리를 제공한다.

## 인피니트리얼리티4
인피니트리얼리티4는 2002년에 인피니트리얼리티3을 대체하기 위해 출시되었다. Onyx2, Onyx 3000 및 Onyx 350에 사용되었다. 이는 인피니트리얼리티 제품군의 마지막 멤버이며, Onyx4에 사용된 ATI FireGL 기반 UltimateVision으로 대체되었다. 이전 구현에 비해 유일한 개선점은 RM10-256 래스터 관리자를 성능이 향상된 **RM11-1024** 래스터 관리자로 교체한 것으로, 이는 이전 래스터 관리자의 각각 4배와 32배인 1GB의 텍스처 메모리와 2.5GB의 래스터 메모리를 가지고 있다. 4개의 래스터 관리자로 최대로 구성되었을 때, 인피니트리얼리티4 파이프라인은 10GB의 래스터 메모리를 가진다. 16개의 파이프라인을 가진 최대 구성에서 인피니트리얼리티4는 16GB의 텍스처 메모리와 160GB의 래스터 메모리를 포함했다.

## 비교
표에 제시된 수치는 최소 1개 파이프라인 및 최대 16개 파이프라인 구성에 대한 것이며, 단일 파이프라인 작동으로 제한된 리얼리티는 예외이다.

### 하드웨어

### 성능

;내용주

## 각주

분류:그래픽스 칩