【linux内核分析与应用-陈莉君】IO空间管理

本文详细探讨了设备控制器的作用,I/O空间管理和访问,包括I/O端口、内存资源的访问方式,以及如何查看和管理机器上的I/O资源,适合理解计算机I/O系统的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

1.设备控制器

2.I/O空间的管理

3.I/O端口及I/O内存和I/O端口的访问

4.I/O内存资源的访问

5.I/O端口的访问

6.查看机器上的I/O端口

7.I/O资源管理

8.管理I/O区域资源

9.管理I/O内存资源

10.小结,参考书与思考问题


1.设备控制器

什么是设备控制器呢?
它是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备和处理器之间的数据交换.
它是CPU与I/O设备之间的接口,它通过控制总线接收从CPU发来的命令并去控制I/O设备工作.控制器相当于
CPU与外设打交道的一个助理,让处理器从繁杂的设备控制事务中解放出来.

2.I/O空间的管理

设备通常会提供一组寄存器来控制设备,读写设备以及获取设备的状态,这些寄存器就是
控制寄存器,数据寄存器和状态进村器,它们位于控制器中.
从编址方式来说:
如果IO空间与内存在一起编址,对应的内存空间被称为IO内存,如图左边所示;
如果IO空间单独编址,就位于IO空间,通常被称为IO端口,如图右边所示.

3.I/O端口及I/O内存和I/O端口的访问

什么是I/O端口?
设备驱动程序要直接访问外设或者其接口卡上的物理电路,通常以寄存器的形式出现访问.
外设寄存器也称为I/O端口,通常包括控制寄存器,状态寄存器和数据寄存器.

如何访问I/O内存和I/O端口?
访问I/O内存的方式一般是通过访问一般内存的指令就可以访问I/O内存;
访问I/O端口的方式一般是通过外设寄存器的读写专门设置的指令来进行访问.

4.I/O内存资源的访问

用于I/O指令的地址空间相对来说是很小的,自从P3(??)总线出现后,无论是CPU的设计是采用
I/O端口方式还是I/O内存方式,都必须将外设卡上的存储器映射到内存空间,实际上就是采用
了虚拟内存的手段,这样的映射是通过为ioremap()这个专门的函数来建立的,该函数如图所示,
其中的参数含义也如图.

5.I/O端口的访问

在读写I/O端口的时候需要注意的一点就是大多数平台区分8位,16位和32位端口,
其中port参数指定端口空间中的端口地址,在大多数平台上,它都是无符号的短整型,
其他的平台上是无符号的整型,显然端口地址的类型是由端口空间的大小来决定的.

6.查看机器上的I/O端口

7.I/O资源管理

8.管理I/O区域资源

9.管理I/O内存资源

10.小结,参考书与思考问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值