计算机组成原理第10章输入输出结构_第1页
计算机组成原理第10章输入输出结构_第2页
计算机组成原理第10章输入输出结构_第3页
计算机组成原理第10章输入输出结构_第4页
计算机组成原理第10章输入输出结构_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第十章输入输出结构10.1异步数据传输10.2可编程I/O10.3中断10.4直接存储器访问10.5I/O处理器10.6串行通信10.7实例:串行通信标准同济大学软件学院2

输入/输出设备通过系统的地址总线、数据总线、控制总线和CPU相连(如图10.1)图10.1CPU与I/O设备的连接10.1异步数据传输31.I/O接口的基本功能实现主机和外设之间的数据传送控制。如同步控制、设备选择、中断控制和DMA控制(2)实现数据缓冲,以达到主机与外设之间的速度匹配。(3)接受主机的命令,提供设备接口的状态,并按照主机的命令控制设备。42.I/O接口类型(1)按照数据传送的宽度可分为

并行接口和串行接口(2)按照数据传送的控制方式可分为

直接程序控制、程序中断、DMA

通道、外围处理机(3)按照时序控制方式可分为

同步接口和异步接口53.

根据是源还是目的设备启动传送以及是否用握手,异步数据传送可分为四种◆不带握手的源启动数据传送◆不带握手的目的启动数据传送◆带握手的源启动数据传送◆带握手的目的启动数据传送610.1.1不带握手的源启动数据传送源设备输出数据选通一个控制信号并维持一段时间目的设备读入数据源设备使控制信号和数据无效图10.2不带握手的源启动数据传送(a)时序7实现源数据传送更新LED的电路如图10.2(b)

图10.2不带握手的源启动数据传送:(b)实现810.1.2不带握手的目的启动的数据传送目的设备传输选通信号给源设备一段时间后源设备使数据有效,并将数据稳定一段时间目的设备读入数据后置数据选通信号无效源设备停止传输有效数据图10.3不带握手的目的启动数据传送(a)时序9实现目的数据传送更新LED的电路如图10.3(b)

图10.3不带握手的目的启动数据传送:(b)实现1010.1.3握手不带握手的数据传送无需确认数据收到, 适合于在规定的时间内传送。当每次传送所花费的时间不同时,设备可 采用握手方式来协调数据传送。11◆带握手的源启动数据传送源设备置数据请求信号为高,然后使有效数据可用数据稳定后,目的设备读取此数据目的设备读完数据,就发送一个数据确认信号给源设备源设备停止传输有效数据,目的设备复位数据确认信号图10.4带握手的源启动数据传送(a)时序12图10.4带握手的源启动数据传送:(b)实现13◆带握手的目的启动数据传送目的设备传输一个数据选通信号,源设备使有效数据可用数据稳定后,目的设备读取此数据目的设备读完数据,就发送一个数据准备就绪信号给源设备源设备停止传输有效数据,目的设备复位数据准备就绪信号图10.5带握手的目的启动数据传送(a)时序14图10.5带握手的目的启动数据传送:(a)时序和(b)实现数据请求数据准备就绪15◆可编程I/O(programmedI/O) 用指令编程来控制CPU输入或输出数据。◆可编程I/O的特点10.2可编程I/O

何时何地进行输入/输出完全受CPU控制;数据的输入输出都要经过CPU;用于连接低速外围设备。16

独立编址有专门的指令访问I/O端口。

存储器编址

把I/O端口视为存储器的一个单元,采用存储器存取指令即可访问它们。

◆可编程I/O的编址方式17

相对简单CPU,其结构不能采用独立的I/O方式,但可利用存储器编址I/O方式。例:执行指令LDACFFFF

为了实现此I/O端口,设计硬件如图10.6。图10.6地址为FFFFH的输入端口当地址总线上的值为FFFFH,控制信号READ=1时,三态缓冲器才选通

18修改相对简单CPU以支持独立的I/O方式:◆必须在CPU指令集中增加输入、输出指令;◆产生必要的新控制信号;◆在状态图中增加新状态;◆开发RTL代码支持新状态;◆修改寄存器、ALU和控制单元硬件来支持新的指令。19

1.增加两条新指令

一条输入数据一条输出数据指令指令码操作INPT00100000ΓAC←输入端口ΓOTPT00100001Γ输出端口Γ←AC表10.1相对简单CPU的独立I/O指令20

2.增加一个新控制信号IO

IO=1时为I/O操作,IO=0时为存储器操作

3.新状态与RTL代码图10.8实现INPT指令执行周期的状态INPT1:DR←M,PC←PC+1,

AR←AR+1INPT2:TR←DR,DR←M,

PC←PC+1INPT3:AR←DR,TRINPT4:DR←输入端口INPT5:AC←DR214.硬件的修改

(1)修改寄存器 (2)修改ALU

(3)修改控制单元

图10.9产生INPT执行周期的状态信号的硬件22◆计数器控制信号修改

INC=(INC原有值)∨INPT1∨INPT2∨INPT3∨INPT4 CLR=(CLR原有值)∨INPT5◆组合INPT1状态所需进行的修改

DRLOAD=(DRLOAD原有值)∨INPT1MEMBUS=(MEMBUS原有值)∨INPT1PCINC=(PCINC原有值)∨INPT1ARINC=(ARINC原有值)∨INPT1◆设定为IO=INPT4

存储器读=READ∧IO23直接程序控制方式可分为两种传送方式:(1)直接传送方式

CPU在控制与外设之间的数据传送之前,不需了解外设的工作状态,即可直接执行I/0指令,实现数据传送。直接传送方式无需查询设备的任何状态,也无需考虑同步问题。也称为无条件传送方式。多用于I/0操作时间固定且已知的情况下。24(2)程序查询方式◆

CPU向I/O设备发传送数据的请求信号。◆

I/O设备处理该请求,当其准备传送数据时,就置位设备准备就绪信号。◆

CPU通过另一个I/O地址读此信号并检查其值。如果信号置位,CPU执行数据传送。如果未置位,则循环等待,继续读取并检查设备准备就绪信号的值。

25例:考察相对简单CPU的一个输入设备(1)输入/输出指令

INPT(AC←INPUTPORTГ)

OTPT(OUTPORTГ←AC)

(2)设备有三个I/O端口:两个输入、一个输出。

输出端口:1001H中输出01H值,启动一个请求。输入端口:1002H(查询该端口直至其最低位置1)

1000H(从中读取数据)26图10.10采用查询方式实现I/O端口的硬件输出端口:1001H中输出01H值,启动一个请求。输入端口:1002H(查询该端口直至其最低位置1)

1000H(从中读取数据)27CLACINAC (AC←1)MOVR (R←1)OTPT1001H (01H→address1001H)LOOP:INPT1002H (Checkwhetherthedeviceisready)AND (AC=1andZ=0ifdeviceisready)JMPZLOOP

(Ifdevicenotready,AC=0andZ=1,loopback)INPT1000H (Deviceisready,inputdata)28◆中断 中断是由I/O设备或其他非预期的急需处 理的事件引起的,它使CPU暂时中断现在正在 执行的程序,而转至另一服务程序去处理这 些事件。处理完后再返回原程序。10.3中断10.3.1CPU和I/O设备之间的数据传送1.解决I/O设备变化延迟◆查询29(5)实现实时处理;(6)实现应用程序和操作系统的联系;(7)多处理机系统各处理机间的联系。2.中断输入输出方式的特点

(1)CPU与I/O并行工作;

(2)硬件故障处理;

(3)实现人机对话;

(4)实现多道程序和分时操作;

3010.3.2中断类型◆外部中断

CPU采用外部中断与输入/输出设备进行交互。◆内部中断

内部中断完全发生在CPU内部,没有任何输入/输出设备介入。◆软中断

由CPU指令集中的特定中断指令产生。3110.3.3中断处理

1.中断源 引起中断的事件或者发出中断请求的来源。

2.中断源如何提出请求?

(1)中断请求信号的建立

◆中断触发器每个中断源对应有一个中断触发器。◆多个中断触发器构成中断寄存器,其内容称为中断字或中断码。

32(2)中断请求信号的传送

三种方案:◆单独设置中断请求线

快速响应、中断请求线数目有限◆一根公共中断请求线◆兼有公共请求线与独立请求线

将中断源分级或分组(3)中断响应信号333.中断的优先级设计中断系统时,应将全部中断源按中断性质和处理的轻重缓急进行排队并给以优先级。

(1)

优先级

指多个中断发生时,对中断响应的次序。

(2)判优的实现◆软件查询◆中断排队逻辑344.中断的允许与禁止◆中断允许中断源有中断请求信号就可使其对应的中断触发器置“1”状态或参加排队判优。◆中断禁止中断源即使有中断请求信号也不能使其对应中断触发器置“1”状态或不允许参加排队判优。5.中断服务程序:处理中断工作的服务软件。356.中断处理过程(中断响应与中断处理)从某一个中断源发出中断服务请求,到这个请求全部处理完成所经过的主要过程。

(1)

中断查询

CPU在一条指令周期内要查询一次是否有中断产生。

(2)

中断响应◆

关中断◆保存断点◆转入中断服务程序36

获取中断服务程序地址:

向量中断

中断向量:中断服务程序的入口地址以及程序状态字的合称。程序状态字PSW:用来表征处理机运行程序的状态。一般应包含如下内容:程序屏蔽码程序运行状态条件码中断码指令计数器37编码38◆

非向量中断

CPU在响应中断时只产生一个固定的地址,该地址是中断查询程序的入口地址,CPU转去执行查询程序,通过软件查询确定中断源,然后执行相应的中断服务程序。

查询程序:又称中断总服务程序。39(3)

执行中断服务程序◆保存现场◆开CPU中断◆执行中断服务程序◆关CPU中断◆恢复现场◆恢复屏蔽码◆恢复PSW、PC◆开CPU中断◆返回断点4010.3.4中断硬件和优先级

1.单个设备的简单系统◆非向量中断图10.11单个设备的非向量中断(a)硬件(b)时序41◆向量中断图10.12单个设备的向量中断(a)硬件(b)时序42图10.13多个非向量中断的硬件每个设备均有自己的IRQ和IACK信号他们的优先级是预定的,IRQn优先级最高CPU首先响应和服务优先级最高的中断2.多个设备的系统◆非向量中断43◆向量中断菊花链:用于多中断优先权排队的一种方法。图10.14菊花链简单易实现便于扩充延迟大44并行优先权排队

通过一个优先权编码器采用并行优先权排队(parallelpriority)方式实现向量中断,减少延迟。扩展困难。

菊花链将引起硬件延迟,特别是当链较长时,延迟就更大。45图10.15并行方式实现优先级中断防止干扰信号4610.3.5多重中断处理多重中断是指在处理某一中断过程中又发生了新的中断,从而中断该服务程序的执行,又转去进行新的中断处理。这种重叠处理中断的现象又称中断嵌套。◆中断响应次序与中断处理次序中断响应次序是由硬件排队判优线路决定的,不能改变,而中断处理次序可由屏蔽码决定,是可以改变的。中断处理次序可以不同于中断响应次序。47k+1l+1m+1klm目的程序三级中断处理程序二级中断处理程序一级中断处理程序48例如:某计算机的中断系统有4级中断优先级,每级对应一个屏蔽码,下表为程序级别和屏蔽码的关系,中断响应次序和处理次序一致,均为:

1→2→3→449程序级别第1级第2级第3级第4级1级2级3级4级屏蔽码011100110001000050

按照这一次序可以看到CPU运动的轨迹,如下图。正常程序中断服务程序123121443251程序级别第1级第2级第3级第4级1级2级3级4级屏蔽码0111000001000110中断处理次序改为:1→4→3→252正常程序中断服务程序11234234215310.3.6CPU内部实现中断例:相对简单CPU处理中断的过程◆添加一个IRQ输入引脚,其响应信号传至

IACK输出引脚◆添加新指令◆识别中断并访问此中断处理的状态◆访问中断服务程序IE:中断允许触发器IP:中断触发器54指令指令码操作LDSP10000000ΓSP←ΓCALL10000010ΓSP←SP-1;M[SP]←PC[15..8],SP←SP-1;M[SP]←PC[7..0],PC←ΓRET10000011PC[7..0]←M[SP],SP←SP+1;PC[15..8]←M[SP],SP←SP+1PUSHAC10000100SP←SP-1;M[SP]←ACPOPAC10000101AC←M[SP],SP←SP+1PUSHR10000110SP←SP-1;M[SP]←RPOPR10000111R←M[SP],SP←SP+1IESET01000000IE←1IERST01000001IE←0IPRST01000010IP←0表10.3相对简单CPU的新指令551.识别中断并访问此中断处理的状态方法一方法二图10.16两种访问中断服务程序的方法(b)修改FETCH1支持中断(a)采用分离的FETCH1状态和INT1状态(IE′∨IP′)∧FETCH1IE∧IP∧FETCH1562.访问中断服务程序(部分)INT1:AR←SPINT2:DR←PC[15..8],SP←SP-1INT3:M←DR,AR←AR-1,SP←SP-1INT4:DR←PC[7..0]INT5:M←DRINT6:DR←(数据总线来的向量)INT7:PC←1111,DR,0000,IP←0返回地址压入堆栈57

DMA是高速I/O设备与主存之间由硬件组成的直接数据通路,能成组传送数据。数据传送是在DMAC控制下进行的,在数据传送前和结束后要通过程序或中断方式进行预处理和后处理。10.4.1将直接存储器访问DMA纳入计算机系统10.4直接存储器访问58图10.17带有DMA的计算机系统59DMA控制器CPU置BR=1,

发送总线请求置BG=1,

发送总线允许601.DMA内部结构

图10.18DMA控制器的内部结构612.DMA控制器内的寄存器组

DMA地址寄存器 存贮数据传输过程中需用到的存储器地址◆

DMA计数寄存器 保存传输数据的字节数◆

DMA控制寄存器

从CPU中接受命令◆状态寄存器

向CPU提供信息623.DMA控制逻辑◆

完成DMA的初始化◆

接收设备送来的DMA请求信号◆

向设备控制器回答DMA允许信号◆向系统申请总线

控制总线实现DMA传输控制◆

中断控制逻辑6310.4.2DMA传输方式◆突发方式

在突发方式中,整个数据块连续传输。控制简单,适合高速外设的成批数据传送

CPU较长时间不能访存CPU使用内存DMA使用内存内存工作时间CPUCPUDMA操作64◆周期窃取方式 连续地获取和放弃系统总线控制权来传输。充分发挥CPU和I/O设备的利用率判优操作和总线切换操作频繁,花费的时间开销大。CPU使用内存DMA使用内存内存工作时间CPUDMACPUCPUDMACPUCPUDMA65◆透明方式

DMA利用空闲时间传输数据。CPU使用内存DMA使用内存内存工作时间CPUCPUDMACPUCPUDMACPU不停止执行程序系统总线的硬件复杂、昂贵

CPUDMACPU不需要访存6610.4.3DMA控制方式下的数据传送过程

三个阶段

DMA传送前预处理◆数据传送◆

传送后处理

1.DMA传送前预处理在进行DMA数据传送之前要用程序做一些必要的准备工作。

67DMA控制器初始化I/O设备控制器初始化启动设备2.数据传送

DMA控制器控制完成数据传送工作,传送结束向CPU发中断请求信号。3.传送后处理

CPU响应中断,转去执行中断服务程序,进行结束处理工作。

6810.4.4修改CPU使其与DMA共处

1.为了使CPU能与DMA控制器共同工作◆增加控制输入信号BR和控制输出信号BG◆产生BG的逻辑电路

2.CPU允许在以下状态接受DMA的请求取指令后、译码后、取操作数后、指令执行完后、结果保存后693.修改相对简单CPU

在取指令周期开始处理DMA请求

(1)对BG的操作

BR∧FETCH1:BG←1BR’∧FETCH1:BG←0,(FETCH1的微操作)

两条合并:

FETCH1:BG←BRBR′∧FETCH1:(FETCH1的微操作)

(2)实现BG的硬件

(3)状态图所需的修改70图10.19BG的硬件实现图10.20修改状态图接纳BR和BG71I/O处理器

与CPU交互,处理由I/O设备读出后数据 可连接多个I/O设备

I/O设备连接至I/O总线上,而不是系统总线上

10.5I/O处理器72图10.21带I/O处理器的系统结构73

CPU向I/O处理器发送一系列I/O指令,而不象处理DMA那样将值存于寄存器中,指令分为三类:

块传送命令2.执行算术、逻辑、和分支操作的命令3.控制命令

传输数据块,类似于DMA数据块传输有助于处理数据以便使数据能为CPU所用

通常是硬件相关并对计算机系统功能的正确发挥十分关键74一个I/O处理器的系列命令能执行许多连续的I/O传送,考虑以下任务:1、从端口地址9000H的磁盘驱动器处读取247字节的数据,写入起始地址为1000H的存储器中;2、从地址为9001H的输入端口读取1字节数据写入CPU的累加器中;3、将内存单元2000H至207FH的内容写至I/O地址为9002H的打印机上。

带DMA控制器而没有I/O处理器的系统首先将数据写入DMA控制器的寄存器中,并启动传输,等待它完成。然后它从地址为9001H的I/O端口输入1字节数据。最后为打印数据块启动第二个DMA传送。 而在带I/O处理器的系统中,CPU将执行三个任务所需的命令写入存储器的一个连续块中,并将块的指针给I/O处理器,从而减少了建立传输的开销。75并行通信:同一时间内传输多位数据

DMA控制器和I/O处理器都采用并行通信串行通信:在给定的时间内不能传输多位数 据,传输数据要通过并串转换

打印机、MODEM等通过串口与CPU通信异步串行通信:连接的设备不共用同一时钟并且需同时传输数据

同步串行传输

:以帧(frame)的形式传输数据块,帧中包括传输信息头、数据和传输信息尾10.6串行通信7610.6.1串行通信原理

两个设备采用异步串行传输通信时,他们不共用同一时钟。必须采用许多措施同步数据流因而事先就一些传输参数达成一致

速度:比特/秒-----每秒位数奇偶校验位

起始位停止位

一些基本参数77

图10.22显示了传输两字节数据及其传输间隔中传输线的值,此系统采用许多调制解调器传输时的典型设置N81:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论