- 结构及其变化
控制卡(适配器):通过扩展插槽和主板上的系统总线连接。
总线插槽:地址总线,数据总线和控制线的与扩展设备控制器的标准连接接口。包括ISA,EISA,PCI,AGP,PCIE总线。
随着技术的发展,很多的控制卡功能已经集成的芯片中,同时整个架构都发生了变化。
北桥(MCH):用于CPU,内存,AGP的接口
南桥(ICH):用于管理低速,中速的设备。
随着历史的发展,南北桥将可能统一为一个芯片。Sandy bridge是Intel不久就会推出的新处理器代号名称,将可能会实现南北桥的统一。
- IO寻址和访问控制方式
端口地址的设置方式:独立编址和统一编址
统一编址:把IO控制器中的端口地址归入存储器地址空间访问内。
独立编址:把IO控制器和控制卡的寻址空间单独作为一个独立的地址空间对待。每个端口有一个IO地址与之对应,并且使用专门的IO指令来访问端口。
可以查看/proc/ioports得到相关控制器的IO地址范围。
pc机IO接口数据传输控制方式:程序循环查询,中断处理和DMA传输。
循环查询:
优点:不需要过多的硬件支持,使用和编程简单。
缺点:耗费CPU资源
中断处理:
需要中断控制器的支持,IO设备通过发送中断给CPU,提出处理请求,CPU会暂时中断当前执行的程序,转 而去执行IO中断处理服务过程。涉及到中断描述符表
DMA传输:
用于IO设备和系统内存之间的批量数据传送。使用DMA控制器进行,无需CPU参与,传输过程中也无需软件参与,效率很高。linux的软盘驱动程序就是使用中断和DMA配合的。
- 主存储器,bios,cmos存储器
460K——1M, 0xFFFE0000——0xFFFFFFFF 最后64K. 内存使用如下图:
BIOS:用于自检和建立OS需要的配置表,如中断向量表,硬盘参数表,初始化处理器和系统其余部分,还为某些系统提供了硬件设备接口服务(不可重入,效率不高)linux运行时不使用bios的功能,除了利用bios提供的参数进行初始化。
cmos:存放计算机的实时时钟信息,系统硬件配置信息。
中断控制器:2片级联的8259A可编程中断控制芯片组成
DMA控制器:外部设备和内存直接传输数据,2片8237芯片,8个独立通道,后4个是16位。软盘控制器专门使用使用通道2.使用通道前要设置,包括页面寄存器端口,(偏移)地址寄存器端口,数据计算寄存器端口。
定时/计数器:intel 8253/8254,提供3个独立的16位计时器通道,一般延时是通过循环语句,如果采用8253/8254,延时到后,会发送中断给cpu。
键盘控制器:8048,接通扫描码,断开扫描码,