Làm thế nào để trình điều khiển màn hình của tôi xử lý rất nhiều dữ liệu?


61

Tôi vừa làm một số tính toán nhanh:

Trên MacBook của tôi, tôi có độ phân giải 2560x1440 nhân với 24 Bit cho màu sắc, chúng tôi nhận được 11,05 MB cho một hình ảnh hoặc 663 MB mỗi giây ở tốc độ 60 khung hình / giây .

Tôi đoán có một số nén, nhưng ví dụ khi tôi di chuyển bằng ba ngón tay trên bàn phím cảm ứng khá ngẫu nhiên, điều xảy ra tiếp theo trên màn hình và hầu như mọi pixel đều thay đổi. Tương tự như với hầu hết các tương tác khác.

Vui lòng giải thích nếu tính toán của tôi sai và dữ liệu này được vận chuyển từ card đồ họa đến màn hình của tôi như thế nào? Làm thế nào rộng là xe buýt giữa card đồ họa của tôi và màn hình của tôi? Có lẽ giải thích một cách ngắn gọn cách một màn hình lưu trữ pixel? Đăng ký thay đổi? Bộ nhớ cache?


7
"Có lẽ giải thích một cách ngắn gọn cách một màn hình lưu trữ pixel?" Màn hình không thực sự lưu trữ dữ liệu pixel, tất cả đều được xử lý bởi RAM trên card đồ họa (hoặc RAM hệ thống cho đồ họa tích hợp). RAM dễ dàng có băng thông vài GB / s. Các khung được gửi đến màn hình theo một giao thức, vì vậy dữ liệu có sẵn vì nó được yêu cầu để hiển thị.
ks0ze

3
Tại sao bạn nghĩ có nén? Bạn nghĩ điều gì xảy ra khi dữ liệu không thể nén được? Bạn có nghĩ rằng màn hình rơi phía sau?
Mehrdad

3
@Aresloom: À, tôi hiểu rồi. Nén mất mát sẽ là một cách, yeah. :) Tôi nghĩ rằng bạn đã nghĩ về lossless!
Mehrdad

2
@ ks0ze một số bảng mới hơn lưu trữ màn hình cuối cùng mà chúng được gửi. Bộ nhớ đệm ở đó sử dụng ít năng lượng hơn GPU bơm hình ảnh tĩnh ra 60 lần một giây. anandtech.com/show/7208/under Hiểu -panel
Dan Neely

2
Màn hình laptop hiện đại vẫn sử dụng LVDS? Một nửa chục năm trước, các công ty GPU đã lên kế hoạch loại bỏ nó cùng lúc với VGA (vốn xuất phát từ thế hệ đầu ra GPU hiện tại) có lợi cho màn hình hiển thị nhúng.
Dan Neely

Câu trả lời:


70

Tính toán của bạn là chính xác về bản chất. Đối với tín hiệu 1440p60Hz, bạn có tốc độ dữ liệu là 5,8Gb / giây khi bạn cũng cho phép thời gian trống (đường viền pixel không nhìn thấy trong đầu ra hình ảnh).

Đối với HDMI / DVI, mã hóa 10 / 8b được sử dụng, có nghĩa là hiệu quả mặc dù bạn đã nói 24bit dữ liệu màu trên mỗi pixel, thực tế 30 bit được gửi khi dữ liệu được mã hóa và thêm từ điều khiển giao thức. Không có nén được thực hiện, dữ liệu thô được gửi, do đó có nghĩa là bạn cần 7,25Gbps băng thông dữ liệu.

Một lần nữa nhìn vào HDMI / DVI. Nó sử dụng chuẩn báo hiệu "TDMS" để truyền dữ liệu. Chuẩn HDMI V1.2 bắt buộc tối đa 4,9Gbps cho Liên kết đơn (3 dòng dữ liệu nối tiếp + 1 dòng đồng hồ) hoặc trong trường hợp Dual-Link DVI tối đa 9,8Gbps (6 dòng dữ liệu nối tiếp, tôi nghĩ vậy ). Vì vậy, có quá nhiều băng thông đủ để thực hiện 1440p60 thông qua Dual-Link DVI, nhưng không thông qua HDMI V1.2.

Trong chuẩn HDMI V1.3 (hầu hết các thiết bị thực sự bị bỏ qua đến V1.4a có cùng băng thông với 1.3), băng thông được tăng gấp đôi lên khoảng 10Gbps, hỗ trợ 1440p60 và cũng đủ băng thông cho UHD ở 30Hz (2160p30).

DisplayPort như một ví dụ khác có 4 luồng dữ liệu nối tiếp, mỗi luồng có khả năng (trong V1.1) là 2.16Gbps trên mỗi luồng (chiếm mã hóa), do đó, với liên kết V1.1, bạn có thể dễ dàng thực hiện 1440p60 với cả 4 luồng. Họ cũng đã phát hành một tiêu chuẩn mới hơn, V1.2, tăng gấp đôi lên 4,32Gbps / luồng cho phép UHD @ 60Hz. Vẫn còn một phiên bản mới hơn mà họ đã đẩy mạnh hơn nữa lên tới 6.4Gbps / luồng .


Ban đầu những con số này nghe có vẻ to lớn, nhưng thực tế không quá nhiều khi bạn xem xét USB 3.0. Điều đó đã được phát hành với tốc độ dữ liệu 5Gbps chỉ qua một cáp (thực tế là hai, một cho TX, một cho RX, nhưng tôi lạc đề). PCIe, thứ mà card đồ họa của bạn sử dụng hiện nay chạy ở tốc độ lên tới 8Gbps thông qua một cặp vi sai duy nhất, do đó, không có gì đáng ngạc nhiên khi các giao diện dữ liệu bên ngoài đang bắt kịp.


Nhưng câu hỏi vẫn còn, làm thế nào được thực hiện? Khi bạn nghĩ về VGA, nó bao gồm các dây đơn cho dữ liệu R, G và B được gửi ở định dạng tương tự. Tương tự như chúng ta biết rất dễ bị nhiễu và thông lượng của DAC / ADC cũng bị hạn chế, do đó hạn chế ồ ạt những gì bạn có thể đẩy qua chúng (đã nói rằng bạn hầu như không thể thực hiện 1440p60Hz qua VGA nếu bạn may mắn).

Tuy nhiên, với các tiêu chuẩn hiện đại, chúng tôi sử dụng các tiêu chuẩn kỹ thuật số miễn nhiễm với tiếng ồn hơn nhiều (bạn chỉ cần phân biệt cao hay thấp thay vì mọi giá trị ở giữa) và bạn cũng loại bỏ nhu cầu chuyển đổi giữa analog và kỹ thuật số.

Hơn nữa, việc sử dụng các tiêu chuẩn khác biệt so với kết thúc đơn giúp ích đáng kể vì hiện tại bạn đang so sánh giá trị giữa hai dây (+ ve chênh lệch = 1, chênh lệch = 0) thay vì so sánh một dây với một số ngưỡng. Điều này có nghĩa là sự suy giảm ít xảy ra sự cố vì nó ảnh hưởng đến cả hai dây bằng nhau và suy giảm xuống điện áp giữa - "mắt" (chênh lệch điện áp) trở nên nhỏ hơn, nhưng bạn vẫn có thể biết liệu nó có hay không nếu nó chỉ 100mV trở xuống. Tín hiệu kết thúc đơn khi tín hiệu suy giảm, nó có thể giảm xuống dưới ngưỡng của bạn và không thể phân biệt được ngay cả khi nó vẫn có biên độ 1V hoặc lớn hơn.

Bằng cách sử dụng một liên kết nối tiếp qua một liên kết song song, chúng ta cũng có thể đạt tốc độ dữ liệu nhanh hơn vì không còn là một vấn đề. Trong một bus song song, rộng 32 bit, bạn cần kết hợp hoàn hảo các đặc điểm độ dài và lan truyền của 32 cáp để các tín hiệu không bị lệch pha với nhau (lệch). Trong một liên kết nối tiếp, bạn chỉ có một cáp duy nhất, vì vậy không thể xảy ra sai lệch.


TL; DR Dữ liệu được gửi ở tốc độ bit đầy đủ mà bạn đã tính (vài Gbps), không nén. Các kỹ thuật báo hiệu hiện đại của các liên kết kỹ thuật số nối tiếp trên các cặp vi sai làm cho điều này trở nên khả thi.


Ngoài ra, tôi nghĩ rằng một số màn hình HDMI đã sử dụng 2 liên kết HDMI 1.2v để có được hình ảnh, có hiệu quả khi chia màn hình thành 2. Điều đó sẽ cho băng thông kết hợp về cơ bản là 9,8Gbps.
Ismael Miguel

5
@Aresloom 5GHz là điểm mà hầu hết các CPU bắt đầu tan chảy do số lượng bóng bán dẫn chuyển đổi đồng thời và tạo ra một lượng nhiệt lớn. Điều đó không có nghĩa là 5GHz là xung nhịp cao nhất cho mọi thứ , nó giảm nhiệt (và vật liệu bạn sử dụng - silicon không phải lúc nào cũng tốt nhất). Ví dụ tốt nhất tôi có thể nghĩ đến là Keysight Infinnium DSAX96204Q, trong đó mỗi bốn mặt trước có một bộ lấy mẫu Indium Phosphide đánh dấu ở tốc độ 80 GHz! Nhưng bộ lấy mẫu đó chỉ có vài chục bóng bán dẫn trong đó và nó đốt cháy vài watt (CPU hiện đại có hàng tỷ )
Sam

4
@Aresloom 340 MHz sẽ là tốc độ xung nhịp, tốc độ dữ liệu được tuần tự hóa sao cho (ví dụ trong TDMS) 10 bit được gửi trên cáp trong mỗi chu kỳ xung nhịp - vì vậy đồng hồ 340 MHz sẽ mang lại tốc độ 3,4Gbps. Đó chỉ là cáp và phần cứng (de) serialization (SERDES) ở ngoại vi của các IC video chạy ở tốc độ dữ liệu nối tiếp đó. Sau phần cứng SERDES, bên trong có một bus song song lại chạy xuống ở tốc độ xung nhịp thấp hơn. Các khối SERDES có thể chạy rất nhanh - PCIe là 8Gbps mỗi làn, do đó, các khối SERDES chạy ở tốc độ 4GHz (sử dụng cả hai cạnh xung nhịp cho bit - DDR).
Tom Carpenter

1
8b / 10b cải thiện khả năng loại bỏ lỗi vì dễ dàng phát hiện chuyển đổi hơn trạng thái trong tín hiệu nhanh. Mã hóa đó đảm bảo rằng sẽ không có quá nhiều lần chạy liên tiếp hoặc số không.
pjc50

1
@cquildannii Đó là một chu kỳ thú vị phải không. Đầu tiên, chúng tôi bắt đầu với serial (ví dụ UART) quá chậm (giả sử tối đa 115kbps). Sau đó, chúng tôi đã đi đến các xe buýt song song như IDE, đứng đầu với tốc độ khoảng 66 MHz @ 16 bit, vì vậy 1Gbps hoặc hơn. Sau đó, chúng tôi quay trở lại nối tiếp vì hóa ra chúng tôi có thể đi rất nhanh với xe buýt vi sai. Nhưng bây giờ nối tiếp không đủ nhanh nữa, vì vậy chúng tôi đi theo một loại nối tiếp song song - nhiều làn xe buýt nối tiếp riêng lẻ có thể được xử lý hoàn toàn riêng biệt và sau đó bất kỳ làn đường nào sang làn đường đều được sửa chữa bằng FIFO.
Tom Carpenter

19

Máy tính hiện đại nhanh đáng ngạc nhiên. Mọi người sẽ vui vẻ tải lên các video HD 30 khung hình / giây đầy đủ mà không nhận ra rằng điều đó liên quan đến hàng tỷ hoạt động số học mỗi giây. Các game thủ có xu hướng nhận thức rõ hơn một chút về điều này; GTX 1060 sẽ cung cấp cho bạn 4,4 TFLOPS ( hoạt động nghìn tỷ điểm trôi nổi mỗi giây).

Vui lòng giải thích nếu tính toán của tôi sai và dữ liệu này được vận chuyển từ card đồ họa đến màn hình của tôi như thế nào?

Làm thế nào rộng là xe buýt giữa card đồ họa của tôi và màn hình của tôi?

Một câu trả lời khác đã giải quyết tính chất đa gigabit của HDMI, DisplayLink, v.v.

Có lẽ giải thích một cách ngắn gọn cách một màn hình lưu trữ pixel? Đăng ký thay đổi? Bộ nhớ cache?

Màn hình tự lưu trữ, theo lý thuyết, không có dữ liệu hình ảnh.

(Một số màn hình, đặc biệt là TV, lưu trữ một hoặc hai khung hình để áp dụng xử lý hình ảnh. Điều này làm tăng độ trễ và không phổ biến với các game thủ.)

Hệ thống con đồ họa của máy tính lưu trữ pixel trong DRAM thông thường. Nó thường không vẽ lại toàn bộ mọi thứ từ bộ xử lý mỗi khung hình, nhưng chuyển một số chức năng cho các hệ thống con chuyên dụng và một bộ tổng hợp . Một nhà soạn nhạc sẽ cho phép ví dụ, mỗi cửa sổ trên màn hình nền được lưu trữ dưới dạng một tập hợp pixel riêng biệt, sau đó có thể được di chuyển, cuộn hoặc phóng to bằng phần cứng chuyên dụng. Điều này trở nên khá rõ ràng với việc cuộn trên các thiết bị di động - bạn có thể đi một đoạn ngắn cho đến khi bạn hết các pixel được tính toán trước "ngoài màn hình" và phần mềm phải dừng lại và hiển thị thêm một số bộ đệm của nhà soạn nhạc.

Các trò chơi được vẽ lại mọi khung hình, và có rất nhiều tài liệu về cách xây dựng một cảnh. Điều này được tích hợp vào bộ đệm khung trên card đồ họa sau đó được truyền đi trong khi khung tiếp theo được vẽ vào một bộ đệm khác.

Giải mã video cũng thường được trao cho phần cứng chuyên dụng, đặc biệt là H.264.


11

Liên kết giữa card màn hình và màn hình LCD được truyền qua một số cặp vi sai tốc độ cao bằng cách sử dụng tín hiệu TMDS , thường được gọi là "làn đường". Thông thường bốn làn đường được sử dụng, vì vậy người ta có thể nói rằng xe buýt rộng 4 bit. Đối với một số chi tiết có một câu trả lời stackhexchange .

Mỗi mô hình bảng LCD thường được sản xuất với một số hóa thân giao diện, vì vậy người ta cần cẩn thận và xem xét các hậu tố khi cố gắng thay thế một bảng điều khiển bị hỏng. Hầu hết các liên kết kỹ thuật số hiện đại (HDMI 1.4) có 10,2 Gbps, hoặc chỉ 2,5 Gbps mỗi làn. Trong tính toán của bạn (663 MBps), tổng cộng là 1,2 Gbps trên mỗi làn (giả sử là 4 làn), con số này không nhiều (ví dụ: SATA3 có 6Gbps).

BỔ SUNG trên màn hình LCD. LCD ma trận hoạt động thực sự cố gắng lưu trữ hình ảnh khung (dữ liệu pixel) trong các tụ điện được liên kết với "Tế bào hình xoắn" (cái điều khiển phân cực phim). Vấn đề là kích thước của các nắp lưu trữ tương tự phải là sự đánh đổi giữa thời gian lưu trữ và tốc độ chuyển đổi pixel. Vì vậy, nó không thể được làm cho lớn, mất tiềm năng lưu trữ nhanh chóng, và do đó đòi hỏi phải làm mới định kỳ . Mỗi ô pixel được kết nối với các dòng dữ liệu và địa chỉ thông qua một bóng bán dẫn (yếu tố "hoạt động"), xem bài viết Tomshardware này . Trình điều khiển màn hình LCD điều khiển các dòng dữ liệu và địa chỉ theo kiểu từng dòng một để duy trì hình ảnh được hiển thị. Hình ảnh được lưu trữ trong bộ đệm khung (RAM) bên trong bộ điều khiển đồ họa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.