Vga và GPU khác nhau như thế nào

Hướng dẫn phát triển hệ điều hành xác định chính xác việc tiếp cận dữ liệu màn hình bằng cách ghi trực tiếp vào VGA hoặc EGA hoặc Super VGA, nhưng điều tôi không nhận được là sự khác biệt thực sự giữa việc ghi vào một địa chỉ cố định để hiển thị và ghi trực tiếp vào thẻ video hoặc có thể tháo rời? Tôi chỉ muốn làm rõ cơ bản về sự nhầm lẫn của tôi về vấn đề này

Và vì nó không phải là một trường hợp đơn giản với các biến trong thẻ, giao diện liên kết, xe buýt, kiến ​​trúc, hệ thống trên chip, hệ thống nhúng, v.v., tôi thấy khó có thể tìm ra cách để hiểu ý tưởng đằng sau 100% này . Các địa chỉ cố định có khác nhau từ GPU cao cấp so với GPU cấp thấp không? Tại sao và tại sao không?

Đó là một trong những mục tiêu của tôi trong lập trình để lưu trữ kernel và tạo ra một hệ điều hành, và một giấc mơ xa vời thực sự. Không hiểu thuật ngữ này không chỉ cản trở tôi trong một số lĩnh vực, mà còn khiến tôi có vẻ ngu ngốc về các chủ đề của phần cứng.

EXTRA: Một số câu trả lời hiện tại nói về việc sử dụng bộ nhớ có thể định địa chỉ tối đa của bộ xử lý trong các chi tiết cụ thể trên 16 bit. Vấn đề là một số trong những vấn đề phát sinh khác:

1. Còn bộ nhớ của thẻ thì sao? Điều đó sẽ không cần RAM hệ thống cho chính dữ liệu màn hình.

2. Điều gì về chế độ bit cao hơn? Và bạn không thể bỏ qua BIOS ở chế độ thực (x86) và vẫn giải quyết bộ nhớ thông qua AL?

3.Làm thế nào để khái niệm ghi vào một địa chỉ cố định sẽ không thay đổi trên GPU với vô số các thanh ghi và hiệu suất ở hoặc trên bộ vi xử lý thực tế?

Về mặt kỹ thuật VGA là viết tắt của Video Graphics Array , một tiêu chuẩn video 640x480 được giới thiệu vào năm 1987. Vào thời điểm đó có độ phân giải tương đối cao, đặc biệt là cho màn hình màu.

Trước khi VGA được giới thiệu, chúng tôi đã có một vài tiêu chuẩn đồ họa khác, chẳng hạn như hercules hiển thị văn bản (80 dòng 25 ký tự) hoặc cho đồ họa đơn sắc độ phân giải cao tương đối (ở 720x348 pixel).

Các tiêu chuẩn khác tại thời điểm đó là CGA ( Bộ điều hợp đồ họa màu ), cũng cho phép tối đa 16 màu ở độ phân giải lên tới 640x200 pixel. Kết quả của nó sẽ trông như thế này:

Vga và GPU khác nhau như thế nào

Cuối cùng, một tiêu chuẩn PC đáng chú ý là bộ điều hợp đồ họa Nâng cao (EGA), cho phép độ phân giải lên tới 640 × 350 với 64 màu.

(Tôi đang bỏ qua các tiêu chuẩn không phải là PC để duy trì sự tương đối ngắn này. Nếu tôi bắt đầu thêm các tiêu chuẩn Atari hoặc Amiga - lên tới 4096 màu vào thời điểm đó! - thì điều này sẽ khá lâu.)

Sau đó, vào năm 1987, IBM đã giới thiệu máy tính PS2. Nó có một số khác biệt đáng chú ý so với các phiên bản trước, bao gồm các cổng mới cho chuột và bàn phím (Trước đây chuột sử dụng cổng nối tiếp 25 chân hoặc cổng nối tiếp 9 chân, nếu bạn có chuột); ổ đĩa 3 inch tiêu chuẩn và bộ chuyển đổi đồ họa mới với cả độ phân giải cao và nhiều màu sắc.

Tiêu chuẩn đồ họa này được gọi là Video Graphics Array . Nó đã sử dụng đầu nối 3 hàng, 15 chân để truyền tín hiệu analog sang màn hình. Kết nối này được kéo dài cho đến một vài năm trước, khi nó được thay thế bởi các tiêu chuẩn kỹ thuật số cao cấp như DVI và cổng hiển thị.

Sau VGA

Tiến độ không dừng lại với các tiêu chuẩn VGA. Ngay sau khi giới thiệu VGA, các tiêu chuẩn mới đã xuất hiện, chẳng hạn như VGA uper 800x600 S (SVGA), sử dụng cùng một đầu nối. (Hercules, CGA, EGA, v.v ... đều có đầu nối riêng. Bạn không thể kết nối màn hình CGA với thẻ VGA, ngay cả khi bạn đã cố hiển thị độ phân giải đủ thấp).

Kể từ đó, chúng tôi đã chuyển sang màn hình độ phân giải cao hơn nhiều, nhưng tên thường được sử dụng nhất vẫn là VGA. Mặc dù tên chính xác sẽ là SVGA, XVGA, UXGA, v.v.

Vga và GPU khác nhau như thế nào

(Lịch sự của Wikipedia)


Một thứ khác được gọi là 'VGA' là đầu nối DE15 được sử dụng với thẻ VGA gốc. Đầu nối thường màu xanh này không phải là cách duy nhất để truyền tín hiệu 'VGA' tương tự sang màn hình, nhưng nó là cách phổ biến nhất.

Trái: DB5HD Phải: Đầu nối VGA thay thế, thường được sử dụng để có chất lượng tốt hơn)

Vga và GPU khác nhau như thế nào

Cách thứ ba 'VGA' được sử dụng là để mô tả một card đồ họa, mặc dù card đó có thể tạo ra độ phân giải hoàn toàn khác so với VGA. Việc sử dụng sai về mặt kỹ thuật, hoặc ít nhất nên là 'Thẻ tương thích VGA', nhưng lời nói thông thường không tạo ra sự khác biệt đó.


Điều đó để lại cho VGA

Điều này xuất phát từ cách bộ nhớ trên IBM XT bị lệch. CPU có thể truy cập bộ nhớ lên tới 1MiB (1024KiB). 512KiB dưới cùng được dành riêng cho RAM, 512 KiB trên cho thẻ bổ trợ, ROM, v.v.

Khu vực phía trên này là nơi bộ nhớ thẻ VGA được ánh xạ tới. Bạn có thể trực tiếp viết thư cho nó và kết quả sẽ hiển thị trên màn hình.

Điều này không chỉ được sử dụng cho VGA, mà còn cho các lựa chọn thay thế cùng thế hệ. G = RAM chế độ đồ họa M = RAM đơn sắc Chế độ văn bản RAM C = Màu chế độ văn bản RAM video V = ROM ROM BIOS (sẽ là "a" trong PS / 2) a = ROM bo mạch điều hợp và RAM chuyên dụng (không gian UMA miễn phí) r = BIOS ROM bo mạch chủ PS / 2 bổ sung (UMA miễn phí trong các hệ thống không phải PS / 2) R = BIOS ROM bo mạch chủ b = ROM IBM Cassette BASIC (sẽ là "R" trong phần tương thích của IBM) h = Vùng nhớ cao (HMA), nếu HIMEM.SYS được tải. Bộ nhớ thông thường (cơ sở): 512KB đầu tiên (hoặc 8 khối 64KiB). Vùng nhớ trên (UMA): 0A0000: GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 0B0000: MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 0C0000: VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0D0000: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0E0000: rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 0F0000: RRRRRRRRRRRRRRRRRRRRRRRRbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbRRRRRRRRR

( Nguồn bản đồ ASCII).

Bằng văn bản cho một "địa chỉ cố định" đã được chủ yếu bằng văn bản cho một card màn hình trực tiếp. Tất cả các thẻ video ISA video (CGA, EGA, VGA) về cơ bản đều có một số RAM (và các thanh ghi) được ánh xạ trực tiếp vào bộ nhớ CPU và không gian I / O.

Vì vậy, khi bạn viết một byte đến một vị trí bộ nhớ nhất định, ký tự đó (ở chế độ văn bản) sẽ xuất hiện ngay trên màn hình, vì thực tế bạn đã ghi vào bộ nhớ nằm trên thẻ video và thẻ video chỉ sử dụng bộ nhớ đó.

Tất cả điều này có vẻ rất khó hiểu ngày nay, đặc biệt khi xem xét rằng các thẻ video ngày nay đôi khi được gọi là VGA (và chúng có sự tương đồng với thẻ VGA "thật" từ những năm 1990). Tuy nhiên, ngay cả các thẻ hiện đại cũng mô phỏng một số chức năng của các thiết kế cũ này (bạn có thể khởi động DOS trên hầu hết các PC hiện đại và sử dụng các chương trình DOS ghi trực tiếp vào bộ nhớ video). Tất nhiên, ngày nay tất cả đều được mô phỏng trong phần sụn của card màn hình.

Thực sự không có sự khác biệt: nếu bạn ghi vào địa chỉ của bộ nhớ video, thì phần cứng sẽ định tuyến nó đến thẻ video.

Nếu bạn đang viết hệ điều hành của riêng mình, có lẽ bạn sẽ phải thực hiện rất nhiều công việc trong việc lấy card đồ họa để ánh xạ bộ nhớ theo cách bạn muốn, bắt đầu bằng cách quét bus PCI để tìm thẻ.

Cho đến nay các câu trả lời đã giải thích rằng các thẻ video cũ hoạt động bằng cách có bộ nhớ video được ánh xạ vào không gian địa chỉ của bộ xử lý. Đây là bộ nhớ riêng của thẻ. Cầu bắc biết chuyển hướng yêu cầu cho bộ nhớ được ánh xạ này sang thiết bị VGA.

Sau đó, trên đó có các bản mở rộng amny và các chế độ mới cho thẻ tương thích VGA. Điều này dẫn đến việc tạo ra Phần mở rộng BIOS VESA (VBE), hoạt động thông qua int 10h. Điều này hỗ trợ tăng tốc 2D cơ bản (BitBlt), con trỏ phần cứng, bộ đệm đôi / bộ ba, v.v ... Đây là phương pháp cơ bản để hiển thị đầy đủ màu sắc ở bất kỳ độ phân giải được hỗ trợ nào (bao gồm cả độ phân giải cao). Điều này thường được sử dụng bên trong bộ nhớ cho thẻ, với cầu bắc thực hiện chuyển hướng như với VGA cổ điển. Đây là cách đơn giản nhất để sử dụng đồ họa collor / độ phân giải đầy đủ.

Tiếp theo, chúng tôi một số phương pháp truy cập GPU trực tiếp mà không cần sử dụng bios, cung cấp quyền truy cập vào các tính năng tương tự như VBE và có thể là các tính năng bổ sung. Sự hiểu biết của tôi là khá mờ nhạt ở đây. Tôi nghĩ giao diện này là thiết bị cụ thể, nhưng tôi không chắc chắn về điều đó.

Sau đó, có giao diện GPU có thể hỗ trợ tính toán 3D / GP-GPU, v.v. Điều này chắc chắn yêu cầu nhà sản xuất cung cấp trình điều khiển hoặc thông số kỹ thuật để sử dụng đầy đủ và thường có sự khác biệt về tài chính ngay cả giữa các thiết bị của cùng một nhà sản xuất.

Video liên quan