스크린 드라이버는 많은 양의 데이터를 어떻게 처리합니까?


61

방금 빠른 계산을했습니다.

내 맥북에 나는의 해상도가 2560x1440 을 곱한 24 비트 우리가 얻을 색상에 대한 11.05MB을 하나의 그림이나 위해 6백63메가바이트 에서 초당 60 FPS를 .

나는 약간의 압축이 있다고 생각하지만, 예를 들어 터치 패드 위로 세 손가락으로 움직일 때 화면에서 다음에 발생하는 일과 거의 모든 픽셀이 변경됩니다. 거의 모든 다른 상호 작용과 동일합니다.

계산이 잘못되었고이 데이터가 그래픽 카드에서 화면으로 어떻게 전송되는지 설명하십시오. 그래픽 카드와 화면 사이의 버스는 얼마나 넓습니까? 아마도 디스플레이가 픽셀을 저장하는 방법을 간단히 설명 할 수 있습니까? 시프트 레지스터? 은닉처?


7
"어쩌면 디스플레이가 픽셀을 저장하는 방법을 간단히 설명 할 수 있을까요?" 디스플레이는 실제로 픽셀 데이터를 저장하지 않습니다. 픽셀 데이터는 모두 그래픽 카드의 RAM (또는 통합 그래픽의 시스템 RAM)에 의해 처리됩니다. RAM에는 몇 GB / s 대역폭이 있습니다. 프로토콜에 따라 프레임이 디스플레이로 전송되므로 디스플레이에 필요한 데이터를 사용할 수 있습니다.
ks0ze

3
왜 압축이 있다고 생각합니까? 데이터를 압축 할 수 없을 때 어떤 일이 발생한다고 생각하십니까? 디스플레이가 뒤쳐 졌다고 생각하십니까?
Mehrdad

3
@Aresloom : 아, 알겠습니다. 압축 손실이 한 가지 방법 일 것입니다. :) 나는 당신이 무손실을 생각하고 있다고 생각했습니다!
Mehrdad

2
@ ks0ze 일부 최신 패널은 마지막으로 보낸 화면을 저장합니다. 이를 캐싱하면 GPU가 정적 이미지를 초당 60 번 펌핑하는 것보다 적은 전력을 사용합니다. anandtech.com/show/7208/understanding-panel-self-refresh
Dan Neely

2
최신 랩탑 디스플레이는 여전히 LVDS를 사용합니까? 반년 전, GPU 회사는 임베디드 디스플레이 포트를 선호하여 VGA (현재 GPU의 기본 출력에서 ​​나온)와 동시에 GPU를 단계적으로 중단 할 계획이었습니다.
Dan Neely

답변:


70

계산은 본질적으로 정확합니다. 1440p60Hz 신호의 경우, 블랭킹 시간 (이미지 출력에서 ​​보이지 않는 픽셀 경계)을 허용하면 데이터 전송률은 5.8Gbps입니다.

HDMI / DVI의 경우 10 / 8b 인코딩이 사용됩니다. 즉, 픽셀 당 24 비트의 컬러 데이터를 말하지만 데이터가 인코딩되고 프로토콜 제어 단어가 추가 될 때 실제로 30 비트가 전송됩니다. 압축이 전혀 수행되지 않고 원시 데이터가 전송되므로 7.25Gbps 의 데이터 대역폭 이 필요 합니다.

다시 HDMI / DVI를 봅니다. 데이터 전송에 "TDMS"신호 표준을 사용합니다. HDMI V1.2 표준 은 단일 링크 (3 직렬 데이터 라인 + 1 클록 라인)에 대해 최대 4.9Gbps 를 요구 하거나, 듀얼 링크 DVI의 경우 최대 9.8Gbps (6 직렬 데이터 라인)를 요구합니다. ). 따라서 듀얼 링크 DVI를 통해 1440p60을 수행 할 수있는 충분한 대역폭이 있지만 HDMI V1.2를 통하지는 않습니다.

HDMI V1.3 표준 (대부분의 장치는 실제로 1.3과 동일한 대역폭 인 V1.4a로 건너 뛰었습니다)에서 대역폭은 약 10Gbps로 두 배가되어 1440p60을 지원하고 30Hz (2160p30)에서 UHD에 충분한 대역폭입니다.

다른 예로 DisplayPort에는 4 개의 직렬 데이터 스트림이 있으며 각 스트림 당 (V1.1에서) 스트림 당 2.16Gbps (인코딩 설명)를 지원하므로 V1.1 링크를 사용하면 4 개의 스트림 모두에서 1440p60을 쉽게 수행 할 수 있습니다. 또한 새로운 표준 인 V1.2를 릴리스하여 VHD를 60Hz로 지원 하는 4.32Gbps / 스트림으로 두 배로 늘 렸습니다 . 여전히 6.4Gbps / stream 으로 한층 더 발전한 최신 버전이 있습니다 .


처음에는 이러한 수치가 거대하게 들리지만 실제로 USB 3.0을 고려할 때 그리 많지는 않습니다. 단 하나의 케이블 (실제로는 2 개, TX 용 1 개, RX 용 1 개, 난파선)을 통해 5Gbps의 데이터 속도로 출시되었습니다. 오늘날 내부적으로 그래픽 카드가 사용하는 PCIe는 단일 차동 쌍을 통해 최대 8Gbps로 실행되므로 외부 데이터 인터페이스가 따라 잡는 것은 놀라운 일이 아닙니다.


그러나 문제는 여전히 남아 있습니다. 어떻게 이루어 집니까? VGA를 생각하면 아날로그 형식으로 전송되는 R, G 및 B 데이터 용 단일 와이어로 구성됩니다. 우리가 알고있는 아날로그는 잡음에 매우 민감하고 DAC / ADC의 처리량도 제한되어 있으므로이를 통과 할 수있는 대상을 크게 제한합니다 ( 행운이 있다면 VGA보다 1440p60Hz를 거의 할 수 없다고 말함).

그러나 현대 표준에서는 노이즈에 훨씬 더 강한 디지털 표준을 사용하며 (사이의 모든 값보다 높거나 낮게 만 구별하면 됨) 아날로그와 디지털 간 변환이 필요 없습니다.

또한 단일 종단에 비해 차동 표준을 사용함으로써 단일 와이어를 일부 임계 값과 비교하는 대신 두 와이어 사이의 값 (+ ve 차이 = 1, -ve 차이 = 0)을 비교하므로 크게 도움이됩니다. 이것은 감쇠가 두 와이어 모두에 동일하게 영향을 미치며 중간 점 전압까지 감쇠하기 때문에 감쇠가 문제가되지 않음을 의미합니다. "눈"(전압 차이)은 작아 지지만 여전히 + ve 또는 -ve인지 알 수 있습니다 100mV 이하인 경우. 신호가 감쇠되면 단일 종단 신호가 임계 값 아래로 떨어지고 여전히 1V 이상의 진폭을 가지고 있어도 구분할 수 없게됩니다.

병렬 링크를 통해 직렬 링크를 사용하면 왜곡이 문제가되지 않기 때문에 더 빠른 데이터 속도로 이동할 수 있습니다. 32 비트 폭의 병렬 버스에서는 신호가 서로 위상이 바뀌지 않도록하기 위해 32 케이블의 길이와 전파 특성을 완벽하게 일치시켜야합니다 (비뚤어 짐). 직렬 링크에는 케이블이 하나뿐이므로 비뚤어 질 수 없습니다.


TL; DR 데이터는 압축없이 계산 한 전체 비트 전송률 (몇 Gbps)로 전송됩니다. 차동 쌍을 통한 직렬화 된 디지털 링크의 최신 신호 기술이이를 가능하게합니다.


또한 일부 HDMI 디스플레이는 2 개의 HDMI 1.2v 링크를 사용하여 이미지를 가져 와서 효과적으로 화면을 2로 분할했다고 생각합니다. 이는 본질적으로 9.8Gbps의 결합 대역폭을 제공합니다.
Ismael Miguel

5
@Aresloom 5GHz는 많은 수의 트랜지스터가 동시에 스위칭하고 엄청난 양의 열을 생성하기 때문에 거의 모든 CPU 가 녹기 시작 하는 지점 입니다. 그것은 5GHz가 모든 것에서 가장 높은 클럭을 의미하는 것은 아니며 열로 귀결됩니다 (사용하는 재료-실리콘이 항상 최고는 아닙니다). 내가 생각할 수있는 가장 좋은 예는 키 사이트 인피니 엄 DSAX96204Q인데, 여기에는 4 개의 프런트 엔드 각각에 80GHz에서 작동하는 인듐 포 스포이드 샘플러가 있습니다 ! 그러나이 샘플러에는 수십 개의 트랜지스터 만 있고 몇 와트를 소비합니다 (현대 CPU는 수십억 달러 )
Sam

4
@Aresloom 340MHz는 클럭 속도이고, 데이터 속도는 직렬화되어 (예를 들어 TDMS에서) 각 클럭 사이클에서 케이블에 10 비트가 전송되므로 340MHz 클럭은 3.4Gbps가됩니다. 직렬 데이터 속도로 실행되는 비디오 IC 주변의 케이블 및 직렬화 (SERDES) 하드웨어 만 있습니다. SERDES 하드웨어 이후에는 내부적으로 낮은 클럭 속도로 병렬 버스가 다시 작동합니다. SERDES 블록은 매우 빠르게 실행될 수 있습니다. PCIe는 레인 당 8Gbps이므로 SERDES 블록은 4GHz에서 실행됩니다 (비트에 대해 두 클럭 에지 사용-DDR).
Tom Carpenter

1
8b / 10b는 빠른 신호 상태 보다 전이를 더 쉽게 감지 할 수 있기 때문에 오류 제거를 개선합니다 . 이 인코딩은 너무 긴 연속 1 또는 0의 실행이 없도록 보장합니다.
pjc50

1
@curiousdannii 그것은 흥미로운 사이클이 아닙니다. 먼저 직렬 (예 : UART)로 너무 느리게 시작했습니다 (최대 115kbps라고 함). 그런 다음 IDE와 같은 병렬 버스를 사용하여 16bit에서 약 66MHz로 1Gbps 정도를 차지했습니다. 그런 다음 차동 버스로 매우 빠르게 갈 수 있기 때문에 직렬로 돌아갔습니다. 그러나 이제 직렬은 다시 충분히 빠르지 않으므로 일종의 병렬 직렬을 사용합니다. 개별 직렬 버스의 다중 레인은 본질적으로 완전히 개별적으로 처리되고 모든 레인 대 레인 스큐는 FIFO로 수정됩니다.
Tom Carpenter

19

현대 컴퓨터는 놀라 울 정도로 빠릅니다. 사람들은 초당 수십억 개의 산술 연산이 필요하다는 사실을 깨닫지 않고 풀 HD 30fps 비디오를 행복하게로드 할 것입니다. 게이머는 이것을 조금 더 잘 알고 있습니다. GTX 1060은 4.4 TFLOPS ( 초당 1 조 개의 부동 소수점 연산)를 제공합니다.

계산이 잘못되었고이 데이터가 그래픽 카드에서 화면으로 어떻게 전송되는지 설명하십시오.

그래픽 카드와 화면 사이의 버스는 얼마나 넓습니까?

또 다른 답변은 HDMI, DisplayLink 등의 멀티 기가비트 특성을 다루었습니다.

아마도 디스플레이가 픽셀을 저장하는 방법을 간단히 설명 할 수 있습니까? 시프트 레지스터? 은닉처?

디스플레이 자체는 이론적으로 이미지 데이터를 저장하지 않습니다.

(일부 디스플레이, 특히 텔레비전의 경우 이미지 처리를 적용하기 위해 프레임을 2 ~ 2 개 저장합니다. 지연 시간이 길어지고 게이머에게는 인기가 없습니다.)

컴퓨터의 그래픽 서브 시스템은 픽셀을 일반 DRAM에 저장합니다. 일반적으로 매 프레임마다 프로세서에서 모든 것을 다시 그리지는 않지만 일부 기능을 전용 하위 시스템과 컴포 지터에 넘겨 줍니다. 컴포 지터는 예를 들어 데스크탑의 각 창을 고유 한 픽셀 세트로 저장 한 다음 전용 하드웨어로 이동, 스크롤 또는 확대 / 축소 할 수 있습니다. 이는 모바일 장치에서 스크롤 할 때 매우 분명해집니다. 사전 계산 된 "오프 스크린"픽셀이 부족할 때까지 소프트웨어를 중지하고 컴포 지터의 버퍼로 더 렌더링해야 할 때까지 갈 수 있습니다.

매 프레임마다 게임 다시 그려지고 장면이 어떻게 구성되는지에 대한 많은 문헌이 있습니다. 그래픽 카드의 프레임 버퍼에 내장되어 다음 프레임이 다른 버퍼에 그려지는 동안 전송됩니다.

비디오 디코딩은 일반적으로 전용 하드웨어, 특히 H.264에도 제공됩니다.


11

디스플레이 카드와 LCD 패널 사이의 링크는 일반적으로 "레인"이라고 하는 TMDS 신호를 사용하여 여러 고속 차동 쌍을 통해 전달 됩니다. 일반적으로 4 개의 레인이 사용되므로 버스가 4 비트 폭이라고 말할 수 있습니다. 더 자세한 내용은 stackhexchange 답변이 있습니다.

각 LCD 패널 모델은 일반적으로 여러 인터페이스 구현으로 제작되므로 깨진 패널을 교체 할 때 조심하고 접미사를 살펴 봐야합니다. 대부분의 최신 디지털 링크 (HDMI 1.4)에는 레인 당 10.2Gbps 또는 2.5Gbps가 있습니다. 계산에서 (663MBps) 레인 당 총 1.2Gbps (레인 당 4 개로 가정)로 계산됩니다.

LCD 패널에 추가. 액티브 매트릭스 LCD는 실제로 "트위스트 네마 틱 셀 (Twisted Nematic Cells)"(필름 분극을 제어하는)과 관련된 커패시터에 프레임 이미지 (픽셀 데이터)를 저장하려고합니다. 문제는 아날로그 스토리지 캡의 크기가 스토리지 시간과 픽셀 스위치 속도 간의 균형을 유지해야한다는 것입니다. 따라서 크게 만들 수 없으며 저장된 잠재력을 빠르게 잃어 버리므로 주기적으로 새로 고침 해야합니다 . 각 픽셀 셀은 트랜지스터 ( "active"요소)를 통해 데이터 및 주소 라인과 연결됩니다 . 이 Tomshardware 기사를 참조하십시오 . LCD 드라이버 컨트롤러는 데이터 및 주소 라인을 라인 단위로 다중화하여 표시된 이미지를 유지합니다. 이미지 자체는 그래픽 컨트롤러 내부의 프레임 버퍼 (RAM)에 저장됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.