《程序是怎样跑起来的》读书笔记——第十一章 硬件控制方法

1 应用和硬件无关?

在用 C 语言等高级编程语言开发的 Windows 应用中,大家很少能 接触到直接控制硬件的指令。这是因为硬件的控制是由 Windows 全权负责的。

不过,Windows 提供了通过应用来间接控制硬件的方法。 利用操作系统提供的 系统调用功能就可以实现对硬件的控制。

2 支撑硬件输入输出的 IN 指令和 OUT 指令

Window 控制硬件时借助的是输入输出指令。其中具有代表性的 两个输入输出指令就是 IN 和 OUT。这些指令也是汇编语言的助 记符。

IN指令通过指定端口号的 端口输入数据,并将其存储在 CPU 内部的寄存器中。 OUT指令则是把CPU 寄存器中存储的数据,输出到指定端口号的端口。

计算机主机中, 附带了用来连接显示器及键盘等外围设备的连接器。而各连接器的内 部,都连接有用来交换计算机主机同外围设备之间电流特性的 IC。这 些IC,统称为 I/O 控制

I/O 是 Input/Output 的缩写。显示器、键盘等外围设备都有各自专 用的 I/O 控制器。I/O 控制器中有用于临时保存输入输出数据的内存。 这个内存就是 端口在实现 I/O 控制器功能的 IC 中,会有多个端口。由于计算机中连 接着很多外围设备,所以就会有多个 I/O 控制器,当然也会有多个端口。一个 I/O 控制器既可以控制一个外围设备,也可以控制多个外围 设备。各端口之间通过 端口号进行区分。端口号也称为I/O 地址

3 外围设备的中断请求

IRQ 是用来暂停当前正在运行的程序,并跳转到其他程序运行的必要机制。该机制称为 中断处理


为了进行区分,外围设备的中断请求会使用不同于 I/O 端口的其他编号,该编号称为 中断编号

假如同时有多个外围设备进行中断请求的话,CPU 也会为难。为 此,我们可以在 I/O 控制器和 CPU 中间加入名为 中断控制器 的 IC 来进 行缓冲。


4 DMA 可以实现短时间内传送大量数据

在了解 I/O 输入输出及中断处理的同时,还希望大家记住另外一个机 制,这就是DMA(Direct Memory Access)。 DMA 是指在不通过 CPU 的 情况下,外围设备直接和主内存进行数据传送。磁盘等都用到了这个 DMA 机制。通过利用 DMA,大量数据就可以在短时间内转送到主内存。

5 文字及图片的显示机制

显示器中显示的信息 一直存储在某内存中。该内存称为 VRAM(Video RAM)。在现在的计算机中, 显 等专用硬件中一般都配置有与主内存相 独立的VRAM和 GPU(Graphics Processing Unit,图形处理器,也称 为图形芯片)。这

posted @ 2017-02-12 15:22  佳佳牛  阅读(385)  评论(0编辑  收藏  举报