{{위키데이터 속성 추적}}
'''텍스처 매핑 유닛'''({{lang|en|texture mapping unit}}, TMU)는 현대 [[그래픽 처리 장치]] (GPU)의 구성 요소이다. TMU는 [[비트맵|비트맵 이미지]]의 회전, 크기 변환, 왜곡을 통해 임의의 [[3차원 모델링|3D 모델]]의 표면에 텍스처를 입히게 해준다. 이 과정은 [[텍스처 매핑|텍스처 매핑]]이라고 불린다. 현대의 그래픽 카드에서 이는 [[그래픽스 파이프라인]]<ref>{{웹 인용|url=http://www.devhardware.com/c/a/Video-Cards/The-Graphics-Pipeline/|제목=Dev Hardware - The Graphics Pipeline|성=|이름=|날짜=|웹사이트=|출판사=|확인날짜=2006년 5월 11일|보존url=https://web.archive.org/web/20060528094615/http://www.devhardware.com/c/a/Video-Cards/The-Graphics-Pipeline/|보존날짜=2006년 5월 28일|url-status=dead}}</ref>의 이산 단계로 구현되며, Voodoo2와 같은 초기 그래픽 카드에서 최초로 별개의 프로세서로 구현되었다.

== 배경과 역사 ==
택스쳐 매핑 유닛은 평면 이미지를 샘플링하고 변환하여 3차원 공간의 알맞은 각도와 구도로 넣기 위한 용도로 개발되었다. 계산 과정은 큰 [[행렬 곱셈|행렬 곱 연산]]을 필요로 하며 초기 팬티엄과 같은 CPU들은 이러한 연산을 수행하기에 알맞지 않았다.

오늘날 (2013)의 텍스처 매핑 유닛들은 셰이더 파이프라인의 일부이며 랜더 아웃풋 파이프라인 (Render Output Pipelines, ROPs)과 분리된다. 예를 들어 AMD의 초기 Cypress 그래픽 처리 장치의 경우 20개의 셰이더 파이프라인 각각은 네개의 텍스처 매핑 유닛을 가지고 있었으며, GPU에는 총 80개의 텍스처 매핑 유닛이 존재했다.

== 텍스처 필레이트 ==
3D 그래픽을 랜더링 하기 위해서 [[폴리곤 메시]] 위에 텍스처가 매핑된다. 이는 텍스처 매핑이라고 불리며, 그래픽 카드 위의 텍스처 매핑 유닛에 의해 수행된다. 텍스처 필레이트는 특정 그래픽 카드가 텍스처 매핑을 수행하는 속도의 측정값이다.

픽셀 셰이더 처리가 중요해져 가곤 있지만, 필레이트 역시 아직까지 중요한 요소이다. X1600 XT의 경우 픽셀 셰이더와 텍스처 매핑 유닛의 비율이 3:1인데, 동시대, 동급의 다른 GPU들(엔비디아의 7600GT와 같은)에 비해 낮은 성능을 보인다{{출처|날짜=2018-05-09}}. 미드레인지 제품에서 이와 같은 현상은 병목 현상과 깊은 연관이 있는데, X1900 XTX와 같은 하이엔드 제품군에서는 같은 3:1의 비율을 가지고 있음에도 불구하고 해상도를 구현하는데 충분한 텍스처 매핑 유닛과 매핑 능력을 가지고 있어 다른 제품에 밀리지 않는다.

== 세부 사항 ==
=== 텍스처 매핑 유닛 (Texture Mapping Units, TMUs) ===
텍스처는 처리되고 필터링 되어야 한다. 이 작업은 [[픽셀 셰이더]], [[버텍스 셰이더]]와 함께 작동하는 텍스처 매핑 유닛에 의해 처리된다. 텍스처 매핑 유닛의 역할은 픽셀들에 텍스처를 입히는 작업을 수행하는 것이다. 그래픽 처리 장치의 텍스처 유닛의 수는 서로 다른 그래픽 카드들의 성능을 비교할 때 쓰이곤 한다. 이는 텍스처 매핑 유닛의 수가 많을수록 텍스처 정보를 처리하는 속도가 빠르기 때문에 합리적인 비교라고 볼 수 있다. 현대의 GPU에서 텍스처 매핑 유닛은 텍스처 어드레스 유닛 (Texture Address Units, TA)와 텍스처 필터링 유닛 (Texture Filtering Units, TF)을 가지고 있다. 텍스처 어드레스 유닛은 텍셀을 픽셀로 매핑하며, 텍스처 어드레싱 모드를 수행할 수 있다. 텍스처 필터링 유닛은 선택적으로 하드웨어 기반 텍스처 필터링을 수행한다.

=== 파이프라인 ===
{{본문|그래픽스 파이프라인}}
파이프 라인은 그래픽 카드의 아키텍처로, 그래픽 프로세서의 컴퓨팅 성능과 관련있다.

파이프라인은 형식적인 기술 용어로 쓰이는 것이 아니다. 그래픽 프로세서에는 각기 다른 파이프라인 들이 존재하며 모두 다른 역할을 수행한다. 과거에 이는 텍스처 매핑 유닛에 연결된 개개의 픽셀 처리장치를 불렀다. 예를 들어 지포스 3의 경우 네개의 픽셀 파이프라인을 가졌으며, 각각은 두개의 텍스처 매핑 유닛을 가졌다. 대부분의 파이프 라인은 깊이 작업이나 블랜딩 작업과 같은 일들을 처리했다.

ATI 라데온 9700은 이런 관습을 깬 첫 그래픽 카드이다. 라데온 9700은 버텍스 셰이더 엔진을 픽셀 셰이더와 독립적으로 배치했다. 라데온 9700에 사용된 R300 GPU는 네개의 전역 버텍스 셰이더를 가졌지만, 랜더링 파이프라인의 대부분을 반으로 나누었다. 이는 후에 듀얼코어로 불리었고, 각각의 코어는 네개의 픽셀 셰이더, 네개의 텍스처 매핑 유닛, 네개의 랜더링 아웃풋 파이프라인을 가졌다.

어떤 유닛들은 다른 유닛들 보다 더 많이 사용되며, R300의 디자이너들은 처리장치의 성능을 늘리기 위해 과도한 실리콘을 사용하지 않으면서도 최적의 효율을 내기 위한 "Sweet Spot"을 찾았다. 이 아키텍처에서 픽셀 파이프라인이라는 이름은 픽셀 처리장치가 더 이상 각각의 텍스처 매핑 유닛에 연결되지 않으면서 그 의미를 잃었다.

버텍스 셰이더는 R300에서부터 시작하여 오랜시간 분리되어있었지만, 픽셀 셰이더가 색깔 데이터 (텍스처 샘플과 같은)를 필요로 함에 따라 텍스처 매핑 유닛에 연결되어야 했다.

버텍스 데이터와 픽셀 데이터를 실행할 수 있게 설계된 셰이더 엔진과 텍스처 매핑 유닛에는 이러한 결합이 아직까지도 유지되고 있다. 하지만 ROP의 저장소와 TMU의 출력 사이에는 크로스바 디스패쳐가 있다.

=== 랜더 아웃풋 파이프라인 (Render output pipelines, ROPs) ===
랜더 아웃풋 파이프라인은 흔히 알려진 랜더 아웃풋 유닛에서 유래된 말이다. 이것의 역할은 무차원 픽셀들의 샘플링을 제어하고 이를 통해 하나 이상의 샘플이 하나의 픽셀로 합쳐질 때 [[앤티에일리어싱|안티에일리어싱]]을 제어하는 것이다. 처리된 모든 데이터는 프레임 버퍼에 쓰여 디스플레이에 송출되기 전에 ROP를 거쳐간다.

따라서 ROP는 GPU의 출력이 비트맵 이미지로서 조합되어 디스플레이에 보내지는 곳이다.

=== GPGPU에서의 사용 ===
[[GPGPU]]에서, 1, 2, 혹은 3차원의 텍스처 맵은 임의의 데이터를 저장하기 위해 쓰인다. [[선형 보간법|보간법]]을 통해 텍스처 매핑 유닛은 임의의 함수를 데이터 테이블로 근사하는 편리한 수단을 제공한다.

== 같이 보기 ==
* [[중앙 처리 장치]]
* [[그래픽 처리 장치]]

== 각주 ==
<references />

== 외부 링크 ==
* [http://www.realitypixels.com/turk/computergraphics/DifferentialMappings.pdf]
* http://www.realitypixels.com/turk/computergraphics/DifferentialMappings.pdf

{{그래픽 처리 장치}}

[[분류:그래픽 하드웨어]]