本系列文章为408考研计算机组成原理知识点整理仅涉及到一些重要的考研知识点并不是完全系统全面的知识,参考书目和视频资料:唐朔飞 计算机组成原理(第二版),袁春风 计算机组成与系统结构(第二版)王道考研计算机组成原理,B站王道考研计算机组成原理视频课。
7.1 I/O接口
I/O接口(IO控制器):是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。主机和外设具有各自的工作特点,它们在信息形式和工作速度上有很大的差异,接口正是为了解决这些差异而设置的。
7.1.1 I/O接口的主要功能
实现主机和外设的通信联络控制:解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间的信息交换,以保证整个计算机系统能统一,协调地工作
进行地址译码和设备选择:CPU送来外设的地址码后,接口必须对地址进行译码以产生设备选择信息,使主机能和指定外设交换信息
实现数据缓冲:CPU与外设之间的速度往往不匹配,为了消除速度差异,接口必须设置数据缓冲寄存器,用于数据的暂存,以避免速度不一致而丢失数据
信号格式的转换:外设与主机两者的电平,数据格式都可能存在差异,接口应提供计算机与外设的信号格式的转换功能,如电平转换,并/串或串/并转换,模/数或数/模转换等等
传送控制命令和状态信息:CPU要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令;外设准备就绪时,则将“准备好状态信息送回接口中的状态寄存器,并反馈给CPU。外设向CPU提出中断请求,CPU也有相应的响应信号反馈给外设
7.1.2 I/O接口基本结构
内部接口:与系统总线相连,实质上是与内存、CPU相连。数据的传输只能是并行传输(早期计算机的确是靠并行,但现在趋势是从并行转向串行)
外部接口:通过接口电缆与外设相连,外接口的数据传输可能是串行方式,因此I/O接口需要具有串/并转换功能
对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为I/O指令,I/O指令只能在操作系统内核的底层I/O软件中使用,它们是一种特权指令。
I/O接口的工作原理:
发命令:CPU发送命令字(控制字)到I/O控制寄存器中,向设备发送命令(此过程需要驱动程序的协助),然后在I/O控制逻辑的控制下对设备发出相应命令
读状态:CPU从状态寄存器中读取状态字,获得设备或I/O控制器的状态信息
读写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换
7.1.3 I/O端口及其编址
I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口,状态端口和控制端口,若干端口加上相应的控制逻辑电路组成接口。通常,CPU能对数据端口进行读写操作,但对状态端口只能进行读操作,对控制端口只能进行写操作
I/O端口及其编址:I/O端口要想能够被CPU访问,就必须要对各个端口进行编号,每个端口对应一个端口地址,编址方式有统一编址和独立编址两种
统一编址:又称存储器映射方式,是把I/O端口当作存储器的单元进行地址分配,这种方式CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口
优点:不需要专门的输入输出指令,可使CPU访问I/O操作更加灵活、方便,还可以使端口有较大的编址空间
缺点:端口占用存储器地址,使内存容量变小,而且利用存储器编址的I/O设备进行数据输入输出操作,执行速度较慢
独立编址:又称I/O映射方式,I/O端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的I/O指令来访问I/O端口
优点:输入输出指令与存储器指令有明显区别,程序编制清晰,便于理解
缺点:输入输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读写,I/O设置读写两组控制信号,增加了控制的复杂性
7.2 I/O方式
7.2.1 程序查询方式
程序查询方式:信息交换的控制完全由主机程序实现,程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行I/O操作时,先发出询问信号,读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传送还是等待.
特点:CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序。因此有“踏步”等待现象,CPU与I/O串行工作
优点:接口设计简单,设备量少
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而目在一段时间内只能和一台外设交换信息,效率大大降低
7.2.2 程序中断方式
中断判优:由于许多中断源提出中断请求的时间都是随机的,因此当多个中断源同时提出请求时,需要通过中断判优逻辑确定响应哪一个中断源的请求,中断系统在任一瞬间只能响应一个中断源的请求
用硬件实现中断判优依靠硬件排队器
中断会按照优先级排布,当较高优先级发出中断时通过逻辑与非结果会使较低优先级的中断请求信号输出为0,以此完成判优,计算机大多采用硬件判优
不同中断有不同的优先级,这些优先级是规定好的
硬件中断属于最高级,其次是软件中断
非屏蔽中断优于可屏蔽中断
DMA请求优于I/O设备传送的中断请求
高速设备优于低速设备
输入设备优于输出设备
实时设备优于普通设备
中断响应:CPU响应中断满足的三个条件
(1)中断源有中断清求
(2)CPU允许中断及开中断
(3)一条指令执行完毕,且没有更紧迫的任务
中断隐指令:CPU响应中断后,经过某些操作,就会转去执行中断服务程序,这些操作是由硬件直接实现的,称其为中断隐指令
中断隐指令并不是指令系统中的一条真正的指令,它没有操作码,所以中断隐指令是一种不允许也不可能为用户使用的特殊指令,其完成的操作如下
(1)关中断:在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)不被新的中断所打断,必须关中断,以此保证被中断的程序在中断服务程序执行完毕后能继续正确地执行
(2)保存断点:为保证在中断服务程序执行完毕后能正确地返回原来的程序,必须将原来程序的断点(即PC的内容)保存起来。
(3)引出中断服务程序:其实质是取出中断服务程序的入口地址并传送给程序计数器PC
其中,确定中断服务程序的入口地址共有如下两种方法
软件查询法:CPU必须找到中断服务程序的入口地址,称之为中断向量。系统中的全部中断向量会集中存放到存储器的某个区域内,这个存放中断向量的存储器称之为中断向量表,也即服务程序入口地址表
中断向量可以理解为函数的指针;中断向量地址就是指向函数指针的指针
硬件向量法:依靠排队器,每一个中断服务被响应后会有其对应的输入,由中断向量地址形成部件映射后便会形成独特的向量,最终会由向量地址找到对应的入口地址
单重中断:CPU在执行中断服务程序的过程中,又出现了新的更高优先级的中断请求,而CPU对新的中断请求不予响应
多重中断:CPU在执行中断服务程序的过程中,又出现了新的更高优先级的中断请求,若CPU暂停现行的中断服务程序,转去执行新的中断请求
中断屏蔽技术:多重中断虽然支持暂停一个中断服务程序然后再响应另一个中断,但不是所有中断都会响应,像键盘这些低速设备优先级并不高,所以就需要一个屏蔽字,指明接下来哪些中断信号应该被忽视
中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,需要满足下列条件:
在中断服务程序中提前设置开中断指令
优先级别高的中断源有权中断优先级低的中断原
每个中断源都有一个屏蔽触发器,表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字
7.2.3 DMA方式
DMA方式:DMA方式是一种完全由硬件进行成组信息传送的控制方式,它具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作。DMA方式在外设与内存之间开辟一条“直接数据通道'”,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式。由于数据传送不需要经过CPU,也就不需要保护,恢复CPU现场等繁琐操作。此种方式适用于磁盘机、磁带机等高速设备大批量数据的传送,它的硬件开销较大
DMA控制器的组成
主存地址寄存器:简称AR,存放要交换数据的主存地址
传送长度计数器:简称WC,记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号
数据缓冲寄存器:暂存每次传送的数据
DMA请求触发器:每当I/O设备准备好数据,给出一个控制信号,使DMA请求触发器置位
控制状态逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA请求信号和CPU相应信号进行协调和同步
中断机构:当一个数据块传送完毕之后触发中断机构,向CPU提出中断请求
注意:在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用,而当DMA传送结束之后,将恢复CPU的一切权利并开始执行其操作,由比可见,DA控制器必须具有控制系统总线的能力
DMA传送过程
预处理:由CPU完成一些必要的准备工作。首先,CPU执行几条IO指令,用以测试I/O设备状态,再向DMA控制器的有关寄存器置初值、设置传送方向,启动该设备等等。然后℃PU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接受的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求,用以传输数据
数据传送:DMA的数据传输可以单字节(或字)为基本单位,也可以数据块为基本单位。对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由DMA控制器而非通过CPU执行程序实现的,即数据传送阶段完全由DMA(硬件)控制
后处理:DMA控制器向CPU发出中断请求:CPU执行中断服务程序做DMA结束处理,包话校验送入主存的数据是否正确,测试传送过程中是否出错(如果出错则转入诊断程序)以及决定是否继续使用DMA传送其他数据块等等
主存和DMA接口之间有一条“直接数据通路”,由于DMA方式传送数据不需要经过CPU,因此不必中断线性程序,I/O和主机并行工作,程序和传送并行工作
它使主存与CPU的固定联系脱钩,主存既可以被CPU问,又可以被外设访问
在数据块传送时,主存地址的确定、传送数据的计数都有硬件电路直接实现
主存开辟专门的数据缓冲区,及时供给和接受外设的数据
DMA传送速度快,CPU和外设并行工作,提高了系统效率
DMA在传送开始前要通过程序进行预处理,结束之后要通过中断方式进行后处理
DMA传送方式
DMA传送方式:主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但是当I/O设备和CPU同时问主存时,可能发生冲突,为了有效地使用主存,DMA控制器和CPU通常采用以下三种方法使用主存
停止CPU访问主存:这种方式是当外设需要传送成组数据时,由DMA接口向CPU发送一个信号,要求CPU放弃地址线、数据线和有关控制线的使用权,DMA接口获得总线控制权后,开始进行数据传送。数据传送结束后,DMA接口通知CPU可以使用主存,并把总线控制权交还给CPU。在这种传送过程中,CPU基本处于不工作状态或保持原始状态
DMA和CPU交替访问主存:DMA与CPU交替访存,这种方式适用于CPU的工作周期比主存存取周期长的情况。例如,若CPU的工作周期是1.2μS,主存的存取周期小于0.6us,则可将一个CPU周期分为C1和C2两个周期,其中C1专供DMA访存,C2专供CPU访存。这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过C1和C2分时控制的
周期挪用(周期窃取):这种方式是前面两种的折中操作。当I/O设备没有DMA请求时,CPU按程序的要求访问主存,一旦I/O设备有了DMA请求,就会有以下三种情况
CPU不再访存:因此I/O的访存请求与CPU未发生冲突
CPU正在访存:此时必须等待存取周期结束后,CPU再将总线占有权让出
I/O和CPU同时请求访存,出现访存冲突:比时CPU要暂时让出总线占有权,由I/O设备挪用一个或多个存取周期
Comments NOTHING