5.1.2 设备控制器

I/O设备一般由机械部件和电子部件两部分组成。通常可以将这两部分分开处理,以提供更加模块化和更加通用的设计。电子部件称作设备控制器(device controller)或适配器(adapter)。在个人计算机上,它经常以主板上的芯片的形式出现,或者以插入(PCI)扩展槽中的印刷电路板的形式出现。机械部件则是设备本身。这一安排如图1-6所示。

控制器卡上通常有一个连接器,通向设备本身的电缆可以插入到这个连接器中。很多控制器可以操作2个、4个甚至8个相同的设备。如果控制器和设备之间采用的是标准接口,无论是官方的ANSI、IEEE或ISO标准还是事实上的标准,各个公司都可以制造各种适合这个接口的控制器或设备。例如,许多公司都生产符合IDE、SATA、SCSI、USB或火线(IEEE 1394)接口的磁盘驱动器。

控制器与设备之间的接口通常是一个很低层次的接口。例如,磁盘可以按每个磁道10 000个扇区,每个扇区512字节进行格式化。然而,实际从驱动器出来的却是一个串行的位(比特)流,它以一个前导符(preamble)开始,接着是一个扇区中的4096位,最后是一个校验和,也称为错误校正码(Error-Correcting Code,ECC)。前导符是在对磁盘进行格式化时写上去的,它包括柱面数和扇区号、扇区大小以及类似的数据,此外还包含同步信息。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

控制器的任务是把串行的位流转换为字节块,并进行必要的错误校正工作。字节块通常首先在控制器内部的一个缓冲区中按位进行组装,然后在对校验和进行校验并证明字节块没有错误后,再将它复制到主存中。

在同样低的层次上,监视器的控制器也是一个位串行设备。它从内存中读入包含待显示字符的字节,并产生用来调制CRT电子束的信号,以便将结果写到屏幕上。该控制器还产生信号使CRT电子束在完成一行扫描后做水平回扫,并且产生信号使CRT电子束在整个屏幕扫描结束后做垂直回扫。如果没有CRT控制器,那么操作系统程序员只能对显像管的模拟扫描直接进行编程。有了控制器,操作系统就可以用几个参数(这些参数包括每行的字符数或像素数、每屏的行数等)对其初始化,并让控制器实际驱动电子束。平板TFT显示器的工作原理与此不同,但是也同样复杂。