MINIX:操作系统设计与实现
PC I/O控制器
|
I/O控制器 |
I/O地址 |
硬件中断号 |
中断向量 |
|
时钟 |
040-043 |
0 |
8 |
|
键盘 |
060-063 |
1 |
9 |
|
硬盘 |
1f0-1f7 |
14 |
118 |
|
第2个RS232接口 |
2f8-2ff |
3 |
11 |
|
打印机 |
3f8-37f |
7 |
15 |
|
软盘 |
3f0-3f7 |
6 |
14 |
|
第1个RS232接口 |
3f8-3ff |
4 |
12 |
操作系统通过向控制器寄存器写命令字来执行I/O功能。例如,IBM PC的软盘控制器可以接收15条命令,包括读,写,格式化重新校准等。其中许多命令带有参数,这些参数也要装入控制器的寄存器中。某设备控制器接收到一条命令后,CPU可以转向其他工作,而让该设备控制器自行完成具体的I/O操作。当命令执行完毕后,控制器发出一个中断信号,以便使操作系统重新获得CPU的控制权并检查执行结果。CPU仍旧是通过从控制寄存器中读取若干字节信息来获得执行结果和设备的状态信息。
存储器直接存取(DMA)
当数据被CPU或控制器从控制器传送到内存时,下一个扇区正好通过磁头下面,同时扇区上存储的信息正在送入控制器。简单的控制器不具有同时输入和输出功能。因此,当进行内存传送时,当前通过磁头下的那个扇区的数据将丢失。
不采用交叉遍址 单交叉遍址 双交叉遍址
并非所有的计算机都使用DMA。反对意见认为CPU比DMA控制器快得多,完全可以更快的完成这件工作。(当I/O不构成瓶颈时)。如果CPU无事可做,而又被迫等待慢速的DMA控制器,这是完全没有意义的。同时,省去DMA控制器,也能节约一些成本。

回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}