I/O体系结构和设备驱动程序(一)

本文介绍了I/O体系结构,包括I/O端口、接口和设备控制器。I/O端口通过地址总线进行寻址,设备控制器解释并执行命令。文章还提到了设备驱动程序模型,特别是sysfs文件系统如何表示设备驱动程序模型的层次关系。
摘要由CSDN通过智能技术生成

1、I/O体系结构

为确保计算机能够正常工作,必须提供数据通路,让信息在连接到计算机的CPU、RAM、和I/O设备之间流动,这些数据通路总称为总线,担当计算机内部主通信通道的作用。

 

所有计算机都拥有一条系统总线,它连接大部分内部硬件设备,一种典型的系统总线是PCI(Peripheral Component Interconnect)总线。目前使用其他类型的总线也很多,例如:ISA、EISA、MCA、SCSI和USB。典型的情况是,一台计算机包括几种不同类型的总线,它们通过被称作"桥"的硬件设备连接在一起。两条高速总线用于在内存芯片上来回传送数据:前端总线将CPU连接到RAM控制器上,而后端总线将CPU连接到外部硬件的高速缓存上。主机上的桥将系统总线和前端总线连接在一起。

 

任何I/O设备有且仅能连接一条总线。总线的类型影响I/O设备的内部设计,也影响着内核如何处理设备。

 

CPU和I/O设备之间的数据通路通常称为I/O总线。80x86微处理器使用16位的地址总线对I/O设备进行寻址,而使用8位、16位或32位数据总线传递数据,每个I/O设备依次连接到I/O总线上,这种连接使用了包含3个元素的硬件组织层次:I/O端口、接口和设备控制器。


1.1、I/O端口

每个连接到I/O总线上的设备都有自己的I/O地址集,通常称为I/O端口,在IBM PC体系结构中,I/O地址空间一共提供了65536个8位的I/O端口,正好对应16位的端口地址。可以把两个连续的8位端口看成一个16位端口,但是这必须从偶数地址开始。同理,也可以把两个连续的16位端口看成一个32位端口,但是这必须是从4的整数倍地址开始。有4条专用的汇编语言指令可以允许CPU对I/O端口进行读写,它们是in、ins、out和outs。在执行其中的一条指令时,CPU使用地址总线选择所请求的I/O端口,使用数据总线在CPU寄存器和端口之间传送数据。

 

I/O端口既可以使用独立的I/O地址空间,也可以被映射到物理地址空间(处理器和I/O设备之间的通信就可以使用对内存直接进行操作的汇编指令,现代的硬件设备更倾向于映射I/O,因为这样处理速度较快,并可以和DMA结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值