第五章 设备管理-8课时.ppt

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

(四)设备组成 I/O设备一般由机械和电子两部分组成, 把这两部分分开处理,以提供更加模块化、更加通用的设计。 机械部分是设备本身(物理装置) 电子部分是设备控制器或适配器—— 在小型和微型机中,它常采用印刷电路卡插入计算机中(接口)的方式,完成设备与主机间的连接和通讯。 设备通过设备控制器与CPU进行通信。 设备中含有与设备控制器间的接口,它通常是一个标准接口,符合ANSI、IEEE或ISO等国际标准。接口包含三种类型的信号线:数据信号线、控制信号线、状态信号线。 (五)设备控制器 1、设备控制器的组成 1)控制器与处理机间的接口 包含:数据线、地址线和控制线。 2)控制器与设备间的接口 一个控制器可以连接一个或多个设备,于是相应包含一个或多个设备接口,一个接口连接一台设备。 控制器与设备之间的接口常常是一个低级的串行接口。例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化。然而,实际从驱动器出来的却是一连串的位流,以一个头标(preamble)开始,然后是一个扇区的4096位(512×8),最后是检查和或错误校验码(Error—C一C:ECC)。头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据。 3)I/O逻辑电路 对CPU发来的I/O命令进行译码。 2、设备控制器的功能 1)接收和识别命令 2)数据交换 3)标识和报告设备的状态 4)地址识别 5)数据缓冲 6)差错控制 3、设备控制器如何工作 操作系统将命令写入控制器寄存器中,以实现输入/输出 例如:IBM PC的软盘控制器可接收15条命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以带参数。它们被一起送入控制器的寄存器中。 控制器接受一条命令后,可独立于CPU完成指定操作,CPU可以转去执行其它运算。命令完成时,控制器产生一个中断,CPU响应中断,控制转给操作系统。CPU通过读控制器寄存器中的信息,获得操作结果和设备状态。 控制器需要把从设备接口接收到的串行位流转换为字节,并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到主存中。 4、内存映射I/O 每个控制器有几个寄存器用来与CPU进行通信。 控制器中的寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。除了控制寄存器以外,许多设备还有一个操作系统可以读写的数据缓冲区。例如在屏幕上显示像素的常规方法是使用一个视频RAM,这一RAM就是一个数据缓冲区,可供程序或操作系统写入数据。 通过写入这些寄存器,操作系统可以命令设备发送数据、接收数据、开启或关闭。 通过读取这些寄存器,操作系统可以了解设备的状态,是否准备好接收一个新的命令等。 问题:CPU如何与设备的控制寄存器和数据缓冲区进行通信? 存在两种可选的方法。 CPU对外设I/O端口物理地址的编址方式有两种:一种是I/O映射方式(I/O-mapped),另一种是内存映射方式(Memory-mapped)。而具体采用哪一种则取决于CPU的体系结构。 第一种方法:每个控制寄存器分配一个I/O端口号(一个8位或16位的整数),所有I/O端口号形成I/O端口空间(I/O port space),并且受到保护使得普通的用户程序不能对其进行访问(只有操作系统可以访问),使用一条特殊的I/O指令。 例如IN REG ,PORT; CPU可以读取控制寄存器PORT的内容并将结果存入到CPU寄存器REG中。 类似地使用OUT PORT,REG; CPU可以将REG的内容写入到控制寄存器中。 大多数早期计算机,包括几乎所有大型机,如IBM360系列机及其所有后续机型,都以这种方式工作。 在这一方案中,内存地址空间和I/O地址空间是不同的,如上图所示。指令IN R0,4和MOV R0,4是完全不同的。 第二种方法:它将所有控制寄存器映射到内存空间中,如上图所示,每个控制寄存器被分配唯一的一个内存地址,并且不会有内存被分配这一地址。这样的系统内存映射I/O( Memory-mapped I/O )。通常分配给控制寄存器的地址位于地址空间的顶端。这种方案被PDP-11引入. 另外还有一种混合方案,如上图所示,这一方案具有内存映射I/O的数据缓冲区,控制器具有单独的I/O端口。Pentiun处理器使用的就是这一体系结构。 这两种方法也可以看作是两种寻址控制器的方案。 内存映射I/O的优点和缺点 优点: 对于内存映射I/O, I/O设备驱动程序可以完全用C语言编写。如果不使用内存映射I/O,就要用到某些汇编代码。 对于内存映射I/O

文档评论(0)

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

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

1亿VIP精品文档

相关文档