现在的位置: 首页 > 综合 > 正文

QEMU VGA 分析(0) – 显卡组件剖析

2014年08月17日 ⁄ 综合 ⁄ 共 792字 ⁄ 字号 评论关闭

显卡的基本功能就是允许 CPU 操作显卡的内存(显存), 然后在对存储在这些 内存中的信息进行一些变换, 产生可以供显示器使用的信号.

VGA_Overview

Frame Buffer

Frame Buffer 存储了显示器需要显示的像素, 是显卡的核心部件. 几乎所有的操作都是使用里面存储的数据. Frame Buffer 以内存的形式存在的, 或者, 有的显卡会实用 VRAM 来做显存. 显存的大小决定了显卡所能支持的最大分 辨率, Frame Buffer 被映射到 CPU 的地址空间上, 应用程序就可以像访问普通内存 一样的访问它.

The Sequencer

Sequencer 的主要作用是把显存的数据转换成像素的 color index, DAC 会用 这些信息进行数模转换等操作.

Graphics Controller

GC 是操纵 frame buffer 的接口, 是显卡芯片最主要的部分之一. 它可以让 CPU 操作 frame buffer. 允许执行一些标准的显卡操作, 例如在加速 芯片里面的画线, 填充区域, 颜色转换, 3D加速渲染等, 这些操作有效的降低了 CPU 的负荷.

各组件如何工作

流程是这样的: 把数据从 frame Buffer 里面取出来, 把像素从数字信号转 换为显示器需要的模拟信号. 首先从显存中顺序地读取像素数据, 然后通过 一个调色表 (palette look-up table)转换成模拟信号. 同时, CRT 控制器 发射定时信号, 使得显示器显示模拟的颜色信息.

例如, sequencer 首先从 frame buffer 中读取数据, 然后转化为像素颜色数据, 读的同时给 CRT 控制器发送定时信号, 使得 CRT 控制器能提供显示器需要的定时信号. 被转换的颜色数据被传送到 attribute controller 进行格式化为 DAC 识别的格式. DAC 通过 查询 palette table, 把这些数据转换为模拟信号, 然后随着定时信号, 输出到 显示器上.

原文地址:http://mathslinux.org/?p=286

抱歉!评论已关闭.