电脑是如何绘制屏幕的?

Jon*_*han 11 cpu assembly screen low-level graphic

计算机如何在最低级别向屏幕绘制任何内容(没有关于外部库,如X11)?是否应该有汇编命令来执行此操作?CPU如何控制屏幕上显示的内容?

jal*_*alf 9

从根本上说,它从硬盘驱动器读取,或播放声音效果.

通过将某些数据写入由存储器控制器映射到所讨论的外部硬件的特定存储器地址(在这些情况下为硬盘驱动器,GPU或声卡).当硬件接收到这些写入时,它会将写入的数据解释为有关执行操作的指令.

CPU实际上与系统的其他部分隔离开来.所有它真正知道的是内存总线.它可以在该总线上读写数据,基本上就是这样.其中一些读/写转到内存,其他读/写可以映射到各种硬件的控制寄存器,或者映射到设备的内存(如果存在),允许CPU与其他设备通信.

现代GPU有自己的专用RAM,可以将数据加载到其中.因此,CPU向GPU发送指令,指定它在主存储器中的哪个位置可以找到用于生成屏幕内容的数据以及如何处理它.然后,GPU将数据从主存储器加载到自己的RAM中,然后执行必要的转换和计算,然后将其写入其缓冲区,监视器不断读取.


Hei*_*bug 5

通常,视频卡中有一个称为帧缓冲区的内存区域.写入值意味着建立像素的颜色值.

您可以将帧缓冲区视为2D阵列,其中每个位代表屏幕上的一个像素.表示颜色使用不同级别的缓冲区.今天,常见的帧缓冲区有24级(每种RGB颜色分量为8级),并允许对2 ^ 24种可能的颜色进行防御.

如今,通常通过GPU发生对帧缓冲区的访问以进行性能问题:即使CPU可能执行此任务,它也非常昂贵.