Tôi sẽ cố gắng làm rõ "voodoo" đằng sau tất cả những điều này, bằng cách giải thích cách phần cứng cũ hoạt động. Các GPU hiện đại không hoạt động như thế này nhưng chúng mô phỏng giao diện CPU-đồ họa-card.
tl; dr
Các chip / thẻ đồ họa trong thập niên 80 và đầu thập niên 90 phải tạo ra đầu ra cực kỳ nhanh (liên quan đến tốc độ xung nhịp) để chúng không thực hiện các hướng dẫn mà thay vào đó là các mạch cố định. Họ chỉ hút dữ liệu ra khỏi RAM khi họ đi, vì vậy CPU chỉ cần đổ dữ liệu vào RAM đúng chỗ, và chip đồ họa sẽ nhặt nó lên và ném lên màn hình. CPU cũng có thể đặt các biến cấu hình khác nhau trên chip đồ họa.
Chi tiết:
Vào những năm 80, máy tính gia đình có một con chip đồ họa thực sự "ngu ngốc" có một vài hành vi cố định. Nó sẽ có ý nghĩa nhất nếu tôi đi qua đường ống ngược.
Màn hình CRT
Những màn hình cần đầu vào tương tự. Nói cách khác, điện áp cao hơn = đầu ra sáng hơn. Màn hình màu có 3 kênh (Đỏ, Xanh lục và Xanh lam (hoặc, ví dụ: YUV hoặc YIQ ) ). Những điện áp này điều chỉnh cường độ của chùm electron. Thứ đơn giản.
CRT theo dõi theo nghĩa đen được sử dụng nam châm điện để làm lệch chùm tia điện tử từ trái sang phải, sau đó bắt đầu lại thấp hơn một chút và đi từ trái sang phải, và cứ thế từ trên xuống dưới. Sau đó trở lại đầu trang và lặp lại.
Bộ giải mã
Các chip đồ họa có bộ chuyển đổi "kỹ thuật số sang tương tự" (một thành phần điện rất phổ biến ). Điều này đã chuyển đổi các giá trị kỹ thuật số (ví dụ 2, 4 hoặc 8 bit) thành điện áp có thể được cung cấp cho màn hình.
Quét
Các chip đồ họa đã phải "theo kịp" với chùm electron, gửi giá trị phù hợp tới DAC để nó có thể tạo ra điện áp tương ứng vào đúng thời điểm. (Đồng hồ đã được sử dụng cho việc này mà tôi sẽ không tham gia.) Không có thời gian để thực hiện các hướng dẫn ở đây. Mọi thứ đều cứng cáp và mất một số chu kỳ đồng hồ nhỏ, cố định.
Chế độ video
Những con chip ban đầu không nhanh lắm và có RAM hạn chế. Do đó, họ có xu hướng cho phép lựa chọn các chế độ khác nhau và các tham số cấu hình khác, ví dụ như màu nền, lựa chọn phông chữ, vị trí và kích thước con trỏ, chọn bảng màu và họa tiết. Hầu hết cung cấp chế độ "chỉ ký tự" độ phân giải cao và chế độ pixel theo pixel độ phân giải thấp hơn.
Ba chế độ VGA đáng chú ý là:
- 16 (ish) màu chế độ văn bản 80x25 (về cơ bản là màn hình tải BIOS trông như thế nào)
- Chế độ độ phân giải cao 16 màu 640x480
- Chế độ cao 256 màu 320x200
Vẽ pixel
Rất đại khái, tùy thuộc vào hệ thống đồ họa, đường ống trông giống như thế này:
Vị trí pixel hiện tại Xử lý dữ liệu ký tự / phông chữ / sprite / pixel / config values Giá trị pixel ⇒ Bảng màu ⇒ DAC
Đó là bước thứ 2 cần đọc từ một vài vị trí RAM. Chẳng hạn, ở Chế độ văn bản, một ký tự 1 byte sẽ được tra cứu. Điều này sẽ tạo thành một chỉ mục vào một bảng phông chữ. Một chút sẽ được nhìn lên từ bảng này, cho biết pixel đó nên là màu nền trước hay màu nền. Một byte thứ ba sẽ được tìm nạp để có được màu nền trước / nền đó. Tất cả trong tất cả, 3 byte đọc từ RAM.
Nhưng "dòng chảy" này gần như là một tập hợp các mạch cố định đơn giản được sắp xếp chính xác như dòng chảy được mô tả.
Giao diện bus bộ nhớ
CPU Intel có thứ di sản gây phiền nhiễu này được gọi là bus IO nhưng nó không quan trọng nên tôi sẽ giả vờ nó không có ở đó.
CPU truy cập RAM bằng cách truyền phát yêu cầu ĐỌC hoặc VIẾT và địa chỉ trên bus bộ nhớ. Mặc dù hầu hết các địa chỉ hợp lệ đều gợi ra phản hồi từ RAM, nhưng một số phạm vi nhất định được xử lý bởi các thiết bị thay thế. Chẳng hạn, việc đọc từ một địa chỉ cụ thể có thể cung cấp cho bạn thông tin về các phím bấm trên bàn phím.
Bằng cách viết vào đúng phần của "phạm vi đồ họa", bạn có thể viết cả nội dung màn hình và cũng có thể đặt các tham số cấu hình card đồ họa. Chip đồ họa "ngu ngốc" không thực hiện bất kỳ hướng dẫn nào. Nó chỉ tiếp tục chạy theo, có một vài byte chảy qua các mạch của nó và xuất ra điện áp.
Với VGA, thực sự có RAM trên card đồ họa, bởi vì bạn có thể định cấu hình card đồ họa thành dữ liệu được xử lý trước trước khi ghi vào RAM đồ họa, để tăng hiệu suất trong một số trường hợp.
VESA
Card đồ họa sau VGA cung cấp độ phân giải cao hơn và độ sâu màu tốt nhưng hoạt động với các nguyên tắc tương tự. Nhiều card đồ họa hiện đại vẫn cung cấp khả năng tương thích với điều này để cho phép độ phân giải cao hơn trong quá trình khởi động. Nhưng VGA là thiết bị "hoàn hảo" mà thực tế mọi thẻ sẽ mô phỏng.