Linux操作系统分析11.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux操作系统分析11

Linux OS Analysis Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512 xlanchen@ustc.edu.cn 助教:裴建国、冯晓静 Autumn 2008 管理I/O设备 中国科学技术大学计算机系 陈香兰(0512 xlanchen@ustc.edu.cn 助教:裴建国、冯晓静 Autumn 2008 I/O体系结构 总线:PC的CPU、RAM、I/O设备之间需要某些数据通路来保证信息的流动 总类: ISA、 EISA、 VESA、PCI以及MCA等等 三种基本类型 数据总线(pentium,64位) 地址总线(pentium,32位) 控制总线 当总线用于CPU与I/O设备之间的连接时,成为I/O总线 在x86处理器中,只使用了32位地址总线中的16位对I/O设备进行寻址 寻址范围? 使用64位数据总线中的8、16、32位传送数据 I/O设备与CPU之间的连接层次为: CPU?I/O端口?I/O接口?设备控制器 PC的I/O体系结构 I/O端口(I/O port) 每个I/O端口8位,由于只使用16位地址总线访问,因此I/O地址空间一共提供65536个I/O端口 在端口地址对齐的情况下,连续的I/O端口可以看成16位/32位端口 特定的指令用来访问I/O端口:in,ins,out,outs I/O端口的另外一种访问方法 直接映射到物理地址空间 可以使用存储器操作指令,如mov,and,or等等 I/O端口中的寄存器 Linux中访问I/O端口的操作 inb、inw、inl inb_p、inw_p、inl_p outb、outw、outl outb_p、outw_p、outl_p insb、insw、insl outsb、outsw、outsl I/O端口的分配 不同的设备使用各自不同的端口 内核使用资源信息来记录端口分配信息 相关的操作 I/O接口 I/O接口是处于一组I/O端口和对应的设备控制器之间的一种硬件电路 I/O端口?设备:将I/O端口中的值转换成设备所需要的命令和数据 设备?I/O端口:检测设备状态的变化,更新端口中相应的状态寄存器 连接到PIC上,代表设备发出中断请求 专用I/O接口和通用I/O接口 专用I/O接口 专用于一个特定的硬件设备 键盘接口 图形接口 磁盘接口 总线鼠标接口 网络接口 通用I/O接口 现代PC都包含连接很多外部设备的几个通用I/O接口 并口:传输单位1个字节 串口:逐位传送 USB口 PCMCIA接口 SCSI接口 设备控制器 复杂的设备需要一个设备控制器(device controller)来驱动 作用 对I/O接口接收到的高级命令进行解释,并控制设备执行特定的操作 对从设备接收到的电信号进行解释和转换,并修改状态寄存器 典型的设备控制器,例如磁盘控制器 I/O共享存储器 很多硬件设备都有自己的存储器,通常称之为I/O共享存储器(I/O Shared Memory),如显存 映射I/O共享存储器的地址 根据设备和总线类型的不同,可以在三个不同的物理地址范围之间进行映射 对于连接到ISA总线上的大多数设备 0xa0000~0xfffff 对于使用VESA局部总线的一些老设备(图形卡) 0xe00000~0xffffff(现在基本不生产) 对于连接到PCI总线的设备 映射到RAM物理地址的顶端 关于图形加速端口AGP(Accelerated Graphics Port)标准 是高性能图形卡的PCI增强版 不仅有I/O共享存储器,还能通过图形地址再映射表GART(Graphics Address Remapping Table)直接对主板的RAM部分进行寻址 I/O共享存储器的访问 对于物理地址1M之内的I/O共享存储器访问 直接访问3G以上的对应线性区间 addr+3G 对于高端I/O共享存储器访问 没有直接映射在3G以上的线性区间 需要为其创建一块非连续线性区,并将其映射到高端I/O共享存储器的物理地址上 ioremap/iounmap io_mem=ioremap(某个物理起始地址,长度) 访问io_mem+相对于起始地址的偏移处 DMA(直接存储器访问,Direct Memory Access) 所有的PC都包含一个DMAC(DMA控制器) 一种辅助处理器 用来控制在RAM和I/O设备之间传送数据 设置并激活DMAC DMAC自行传送数据 数据传送结束后,DMAC发出一个中断请求 当CPU和DMAC并发访问同一个存储单元时,通过存储器仲裁器解决冲突 使用者:慢速设备 如,磁盘驱动器 设备文件 Unix类操作系统都是基于文件概念的 文件是以字符序列而构成的信息载体,因此一个I/O设备也可以当作文件来处

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档