답변:
최상위 수준에서 GPU는 여러 셰이더 코어로 세분됩니다. 노트북이나 태블릿의 작은 GPU에는 코어가 몇 개 밖에없고 고급 데스크톱 GPU에는 수십 개가있을 수 있습니다.
셰이더 코어 외에도 텍스처 단위도 있습니다. GPU에 따라 셰이더 코어 당 하나의 텍스처 단위 또는 2 개 또는 3 개의 셰이더 코어간에 공유되는 하나의 텍스처 단위와 함께 그룹화 될 수 있습니다.
전체 칩은 단일 L2 캐시를 공유하지만 다른 장치에는 개별 L1 캐시가 있습니다. 텍스쳐 유닛에는 텍스쳐 캐시가 있으며, 셰이더 유닛에는 명령어 및 상수 / 균일에 대한 캐시가 있으며 버퍼로드가 텍스쳐로드와 별도의 경로인지에 따라 버퍼 데이터에 대한 별도의 캐시가있을 수 있습니다 (GPU 아키텍처에 따라 다름).
텍스처 유닛은 셰이더 코어와 독립적으로 비동기 적으로 작동합니다. 셰이더는 텍스처 읽기를 수행 할 때 그들 사이의 작은 버스를 통해 텍스처 유닛에 요청을 보냅니다. 그런 다음 가능한 경우 셰이더가 계속 실행되거나 일시 중단되어 텍스처 읽기가 완료 될 때까지 다른 셰이더 스레드가 실행될 수 있습니다.
텍스쳐 유닛은 많은 요청을 일괄 처리하고 밉 레벨과 이방성을 선택하고 UV를 텍셀 좌표로 변환하고 클램프 / 랩 모드를 적용하는 등의 방식으로 주소 지정 수학을 수행합니다. 필요한 텍셀을 알고 나면 캐시 계층 구조, 메모리 읽기가 CPU에서 작동하는 것과 같은 방식으로 L1을 먼저보고, L2를 먼저 보지 않으면 DRAM을 확인합니다. 많은 보류중인 텍스처 요청이 모두 동일하거나 근처에있는 텍셀을 원한다면 (여기서처럼) 많은 메모리 요청으로 많은 보류중인 요청을 만족시킬 수 있기 때문에 많은 효율성을 얻습니다. 이러한 모든 작업은 파이프 라인이므로 텍스처 단위가 한 배치에서 메모리를 기다리는 동안 다른 배치 요청에 대해 주소 지정 수학을 수행 할 수 있습니다.
데이터가 다시 돌아 오면 텍스처 유닛은 압축 포맷을 디코딩하고 필요에 따라 sRGB 변환 및 필터링을 수행 한 다음 결과를 쉐이더 코어로 다시 반환합니다.