资源描述
1第十章 输入输出结构10.1 10.1 异步数据传输异步数据传输10.2 10.2 可编程可编程I/OI/O10.3 10.3 中断中断10.4 10.4 直接存储器访问直接存储器访问10.5 I/O10.5 I/O处理器处理器10.6 10.6 串行通信串行通信10.7 10.7 实例:串行通信标准实例:串行通信标准同济大学 软件学院2 输入输入/输出设备通过系统的地址总线、数据总输出设备通过系统的地址总线、数据总线、控制总线和线、控制总线和CPUCPU相连(如图相连(如图10.110.1)图图10.1 CPU与与I/O设备的连接设备的连接10.1 异步数据传输31.I/O接口的基本功能(1)(1)实现主机和外设之间的数据传送控制。实现主机和外设之间的数据传送控制。如同步控制、设备选择、中断控制和如同步控制、设备选择、中断控制和DMADMA控制控制 (2)(2)实现数据缓冲,以达到主机与外设之间的速实现数据缓冲,以达到主机与外设之间的速 度匹配。度匹配。(3)(3)接受主机的命令,提供设备接口的状态,并接受主机的命令,提供设备接口的状态,并 按照主机的命令控制设备。按照主机的命令控制设备。42.I/O接口类型(1 1)按照数据传送的宽度可分为)按照数据传送的宽度可分为 并行接口和串行接口并行接口和串行接口(2 2)按照数据传送的控制方式可分为)按照数据传送的控制方式可分为 直接程序控制、程序中断、直接程序控制、程序中断、DMADMA 通道、外围处理机通道、外围处理机(3 3)按照时序控制方式可分为)按照时序控制方式可分为 同步接口和异步接口同步接口和异步接口53.根据是源还是目的设备启动传送以及是否用 握手,异步数据传送可分为四种 不带握手的源启动数据传送不带握手的源启动数据传送 不带握手的目的启动数据传送不带握手的目的启动数据传送 带握手的源启动数据传送带握手的源启动数据传送 带握手的目的启动数据传送带握手的目的启动数据传送610.1.1 不带握手的源启动数据传送源设备源设备输出数输出数据据选通一个控选通一个控制信号并维制信号并维持一段时间持一段时间目的设目的设备读入备读入数据数据源设备使控源设备使控制信号和数制信号和数据无效据无效图图10.2 不带握手的源启动数据传送不带握手的源启动数据传送(a)时序)时序7实现源数据传送更新实现源数据传送更新LEDLED的电路如图的电路如图10.210.2(b b)图图10.2 不带握手的源启动数据传送不带握手的源启动数据传送:(b)实现)实现810.1.2 不带握手的目的启动的数据传送目的设备目的设备传输选通传输选通信号给源信号给源设备设备一段时间后源设一段时间后源设备使数据有效,备使数据有效,并将数据稳定一并将数据稳定一段时间段时间目的设备目的设备读入数据读入数据后置数据后置数据选通信号选通信号无效无效源设备源设备停止传停止传输有效输有效数据数据图图10.3 不带握手的目的启动数据传送不带握手的目的启动数据传送(a)时序)时序9实现目的数据传送更新实现目的数据传送更新LEDLED的电路如图的电路如图10.310.3(b b)图图10.3 不带握手的目的启动数据传送:(不带握手的目的启动数据传送:(b)实现)实现1010.1.3 握 手l不带握手的数据传送无需确认数据收到,不带握手的数据传送无需确认数据收到,适合于在规定的时间内传送。适合于在规定的时间内传送。l当每次传送所花费的时间不同时,设备可当每次传送所花费的时间不同时,设备可 采用握手方式来协调数据传送。采用握手方式来协调数据传送。11 带握手的源启动数据传送带握手的源启动数据传送源设备置数源设备置数据请求信号据请求信号为高,然后为高,然后使有效数据使有效数据可用可用 数据稳定数据稳定后,目的后,目的设备读取设备读取此数据此数据 目的设备读目的设备读完数据,就完数据,就发送一个数发送一个数据确认信号据确认信号给源设备给源设备源设备停止传源设备停止传输有效数据,输有效数据,目的设备复位目的设备复位数据确认信号数据确认信号图图10.4 带握手的源启动数据传送带握手的源启动数据传送(a)时序)时序12图图10.4 10.4 带握手的源启动数据传送:(带握手的源启动数据传送:(b b)实现)实现13 带握手的目的启动数据传送带握手的目的启动数据传送目的设备传目的设备传输一个数据输一个数据选通信号,选通信号,源设备使有源设备使有效数据可用效数据可用 数据稳定数据稳定后,目的后,目的设备读取设备读取此数据此数据 目的设备读目的设备读完数据,就完数据,就发送一个数发送一个数据准备就绪据准备就绪信号给源设信号给源设备备源设备停止传源设备停止传输有效数据,输有效数据,目的设备复位目的设备复位数据准备就绪数据准备就绪信号信号图图10.5 带握手的目的启动数据传送带握手的目的启动数据传送(a)时序)时序14图图10.5 10.5 带握手的目的启动数据传送:(带握手的目的启动数据传送:(a a)时序和()时序和(b b)实现)实现数据请求数据准备就绪15 可编程可编程I/OI/O(programmed I/Oprogrammed I/O)用指令编程来控制用指令编程来控制CPUCPU输入或输出数据。输入或输出数据。可编程可编程I/OI/O的特点的特点10.2 可编程I/O 何时何地进行输入何时何地进行输入/输出完全受输出完全受CPUCPU控制;控制;数据的输入输出都要经过数据的输入输出都要经过CPUCPU;用于连接低速外围设备。用于连接低速外围设备。16l 独立编址独立编址 有专门的指令访问有专门的指令访问I/OI/O端口。端口。l 存储器编址存储器编址 把把I/OI/O端口视为存储器的一个单元,采用端口视为存储器的一个单元,采用 存储器存取指令即可访问它们。存储器存取指令即可访问它们。可编程可编程I/OI/O的编址方式的编址方式 17 相对简单相对简单CPUCPU,其结构不能采用独立的,其结构不能采用独立的I/OI/O方式,方式,但可利用存储器编址但可利用存储器编址I/OI/O方式。方式。例:执行指令例:执行指令LDAC FFFFLDAC FFFF 为了实现此为了实现此I/OI/O端口,设计硬件如图端口,设计硬件如图10.610.6。图图10.6 地址为地址为FFFFH的输入端口的输入端口当地址总线上的值为当地址总线上的值为FFFFH,控制信号,控制信号READ=1时,三态缓冲器才选通时,三态缓冲器才选通 18修改相对简单CPU以支持独立的I/O方式:必须在必须在CPUCPU指令集中增加输入、输出指令;指令集中增加输入、输出指令;产生必要的新控制信号;产生必要的新控制信号;在状态图中增加新状态;在状态图中增加新状态;开发开发RTLRTL代码支持新状态;代码支持新状态;修改寄存器、修改寄存器、ALUALU和控制单元硬件来支持新的指令。和控制单元硬件来支持新的指令。191.增加两条新指令 一条输入数据一条输入数据 一条输出数据一条输出数据指令指令指令码指令码操作操作INPTINPT0010 00000010 0000ACAC输入端口输入端口OTPTOTPT0010 00010010 0001输出端口输出端口ACAC表表10.1 相对简单相对简单CPU的独立的独立I/O指令指令202.增加一个新控制信号IO IO=1IO=1时为时为I/OI/O操作,操作,IO=0IO=0时为存储器操作时为存储器操作 3.新状态与RTL代码图图10.8 实现实现INPT指令执行周期的状态指令执行周期的状态INPT1INPT1:DRMDRM,PCPC+1PCPC+1,ARAR+1ARAR+1INPT2INPT2:TRDRTRDR,DRMDRM,PCPC+1PCPC+1INPT3INPT3:ARDRARDR,TRTRINPT4INPT4:DRDR输入端口输入端口INPT5INPT5:ACDR ACDR 214.硬件的修改 (1 1)修改寄存器)修改寄存器(2 2)修改)修改ALUALU(3 3)修改控制单元修改控制单元 图图10.9 产生产生INPT执行周期的状态信号的硬件执行周期的状态信号的硬件22 计数器控制信号修改计数器控制信号修改 INC=INC=(INCINC原有值)原有值)INPT1 INPT2 INPT1 INPT2 INPT3 INPT4 INPT3 INPT4 CLR=CLR=(CLRCLR原有值)原有值)INPT5 INPT5 组合组合INPT1INPT1状态所需进行的修改状态所需进行的修改 DRLOAD=DRLOAD=(DRLOADDRLOAD原有值)原有值)INPT1INPT1 MEMBUS=MEMBUS=(MEMBUSMEMBUS原有值)原有值)INPT1INPT1 PCINC=PCINC=(PCINCPCINC原有值)原有值)INPT1INPT1 ARINC=ARINC=(ARINCARINC原有值)原有值)INPT1INPT1 设定为设定为IO=INPT4IO=INPT4 存储器存储器读读=READ IO=READ IO23直接程序控制方式可分为两种传送方式:(1 1)直接传送方式)直接传送方式 CPUCPU在控制与外设之间的数据传送之前,不需了解在控制与外设之间的数据传送之前,不需了解外设的工作状态,即可直接执行外设的工作状态,即可直接执行I/0I/0指令,实现数据传指令,实现数据传送。送。直接传送方式无需查询设备的任何状态,也无需考直接传送方式无需查询设备的任何状态,也无需考虑同步问题。也称为无条件传送方式。多用于虑同步问题。也称为无条件传送方式。多用于I/0I/0操作操作时间固定且已知的情况下。时间固定且已知的情况下。24(2 2)程序查询方式)程序查询方式 CPUCPU向向I/OI/O设备发传送数据的请求信号。设备发传送数据的请求信号。I/OI/O设备处理该请求,当其准备传送数据时,设备处理该请求,当其准备传送数据时,就置位设备准备就绪信号。就置位设备准备就绪信号。CPUCPU通过另一个通过另一个I/OI/O地址读此信号并检查其值。地址读此信号并检查其值。如果信号置位,如果信号置位,CPUCPU执行数据传送。如果未置执行数据传送。如果未置 位,则循环等待,继续读取并检查设备准备就位,则循环等待,继续读取并检查设备准备就 绪信号的值。绪信号的值。25例:例:考察考察相对简单相对简单CPUCPU的一个输入设备的一个输入设备 (1 1)输入输入/输出指令输出指令 INPTINPT(ACINPUT PORT ACINPUT PORT)OTPTOTPT(OUT PORT ACOUT PORT AC)(2 2)设备有三个)设备有三个I/OI/O端口:两个输入、一个输出。端口:两个输入、一个输出。输出端口:输出端口:1001H1001H中输出中输出01H01H值,启动一个请求。值,启动一个请求。输入端口:输入端口:1002H1002H(查询该端口直至其最低位置(查询该端口直至其最低位置1 1)1000H1000H(从中读取数据)(从中读取数据)26图图10.10 10.10 采用查询方式实现采用查询方式实现I/OI/O端口的硬件端口的硬件 输出端口:输出端口:1001H1001H中输出中输出01H01H值,启动一个请求。值,启动一个请求。输入端口:输入端口:1002H1002H(查询该端口直至其最低位置(查询该端口直至其最低位置1 1)1000H1000H(从中读取数据)(从中读取数据)27 CLAC INAC (AC1)MOVR (R1)OTPT 1001H(01H address 1001H)LOOP:INPT 1002H(Check whether the device is ready)AND(AC=1 and Z=0 if device is ready)JMPZ LOOP (If device not ready,AC=0 and Z=1,loop back)INPT 1000H(Device is ready,input data)28 中断中断 中断是由中断是由I/OI/O设备或其他非预期的急需处设备或其他非预期的急需处 理的事件引起的,它使理的事件引起的,它使CPUCPU暂时中断现在正在暂时中断现在正在 执行的程序,而转至另一服务程序去处理这执行的程序,而转至另一服务程序去处理这 些事件。处理完后再返回原程序。些事件。处理完后再返回原程序。10.3 中 断10.3.1 CPU和I/O设备之间的数据传送1.解决I/O设备变化延迟 查询查询29(5)(5)实现实时处理;实现实时处理;(6)(6)实现应用程序和操作系统的联系;实现应用程序和操作系统的联系;(7)(7)多处理机系统各处理机间的联系。多处理机系统各处理机间的联系。2.2.中断输入输出方式的特点 (1)CPU(1)CPU与与I/OI/O并行工作;并行工作;(2)(2)硬件故障处理;硬件故障处理;(3)(3)实现人机对话;实现人机对话;(4)(4)实现多道程序和分时操作;实现多道程序和分时操作;3010.3.2 中断类型 外部中断外部中断 CPUCPU采用外部中断与输入采用外部中断与输入/输出设备进行交互。输出设备进行交互。内部中断内部中断 内部中断完全发生在内部中断完全发生在CPUCPU内部,没有任何内部,没有任何 输入输入/输出设备介入。输出设备介入。软中断软中断 由由CPUCPU指令集中的特定中断指令产生。指令集中的特定中断指令产生。3110.3.3 中断处理 1.中断源 引起中断的事件或者发出中断请求的来源。引起中断的事件或者发出中断请求的来源。2.中断源如何提出请求?(1)(1)中断请求信号的建立中断请求信号的建立 中断触发器中断触发器 每个中断源对应有一个中断触发器。每个中断源对应有一个中断触发器。多个中断触发器构成中断寄存器,其内容称多个中断触发器构成中断寄存器,其内容称 为为中断字或中断码中断字或中断码。32(2)(2)中断请求信号的传送中断请求信号的传送 三种方案:三种方案:单独设置中断请求线单独设置中断请求线 快速响应、中断请求线数目有限快速响应、中断请求线数目有限 一根公共中断请求线一根公共中断请求线 兼有公共请求线与独立请求线兼有公共请求线与独立请求线 将中断源分级或分组将中断源分级或分组(3)(3)中断响应信号中断响应信号333.中断的优先级 设计中断系统时,应将全部中断源按中断设计中断系统时,应将全部中断源按中断 性质和处理的轻重缓急进行排队并给以优先性质和处理的轻重缓急进行排队并给以优先级级。(1)(1)优先优先级级 指多个中断发生时,对中断响应的次序。指多个中断发生时,对中断响应的次序。(2)(2)判优的实现判优的实现 软件查询软件查询 中断排队逻辑中断排队逻辑344.中断的允许与禁止 中断允许中断允许 中断源有中断请求信号就可使其对应的中断源有中断请求信号就可使其对应的 中断触发器置中断触发器置“1”1”状态或参加排队判优。状态或参加排队判优。中断禁止中断禁止 中断源即使有中断请求信号也不能使其中断源即使有中断请求信号也不能使其 对应中断触发器置对应中断触发器置“1”1”状态或不允许参加排状态或不允许参加排 队判优。队判优。5.中断服务程序:处理中断工作的服务软件。356.中断处理过程(中断响应与中断处理)从某一个中断源发出中断服务请求,到这个从某一个中断源发出中断服务请求,到这个 请求全部处理完成所经过的主要过程。请求全部处理完成所经过的主要过程。(1)(1)中断查询中断查询 CPUCPU在一条指令周期内要查询一次是否有中在一条指令周期内要查询一次是否有中 断产生。断产生。(2)(2)中断响应中断响应 关中断关中断 保存断点保存断点 转入中断服务程序转入中断服务程序36 获取中断服务程序地址:获取中断服务程序地址:向量中断向量中断 中断向量:中断向量:中断服务程序的入口地址以及中断服务程序的入口地址以及 程序状态字的合称。程序状态字的合称。程序状态字程序状态字PSWPSW:用来表征处理机运行程序的状态。用来表征处理机运行程序的状态。一般应包含如下内容:一般应包含如下内容:程序屏蔽码 程序运行状态 条件码 中断码 指令计数器37编编 码码38 非向量中断非向量中断 CPU在响应中断时只产生一个固定的地址,该在响应中断时只产生一个固定的地址,该 地址是中断查询程序的入口地址,地址是中断查询程序的入口地址,CPU转去执行查转去执行查 询程序,通过软件查询确定中断源,然后执行相应询程序,通过软件查询确定中断源,然后执行相应 的中断服务程序。的中断服务程序。查询程序:查询程序:又称中断总服务程序。又称中断总服务程序。39(3)(3)执行中断服务程序执行中断服务程序 保存现场保存现场 开开CPUCPU中断中断 执行中断服务程序执行中断服务程序 关关CPUCPU中断中断 恢复现场恢复现场 恢复屏蔽码恢复屏蔽码 恢复恢复PSWPSW、PCPC 开开CPUCPU中断中断 返回断点返回断点4010.3.4 中断硬件和优先级 1.单个设备的简单系统 非向量中断非向量中断图图10.11 10.11 单个设备单个设备的非向量中断的非向量中断(a a)硬件)硬件 (b b)时序)时序41 向量中断向量中断图图10.12 10.12 单个设备的单个设备的向量中断向量中断(a a)硬件)硬件 (b b)时序)时序42图图10.13 10.13 多个非向量中断的硬件多个非向量中断的硬件l每个设备均有自每个设备均有自己的己的IRQIRQ和和IACKIACK信信号号 l他们的优先级是他们的优先级是预定的预定的 ,IRQnIRQn优优先级最高先级最高lCPUCPU首先响应和服首先响应和服务优先级最高的务优先级最高的中断中断2.多个设备的系统 非向量中断非向量中断43 向量中断向量中断 菊花链:菊花链:用于多中断优先权排队的一种方法。用于多中断优先权排队的一种方法。图图10.14 10.14 菊花链菊花链l简单易实现简单易实现l便于扩充便于扩充l延迟大延迟大44并行优先权排队并行优先权排队 通过一个优先权编码器采用并行优先权排通过一个优先权编码器采用并行优先权排队(队(parallel priorityparallel priority)方式实现向量中断)方式实现向量中断,减少延迟。减少延迟。扩展困难。扩展困难。菊花链将引起硬件延迟,特别是当链较长菊花链将引起硬件延迟,特别是当链较长时,延迟就更大。时,延迟就更大。45图图10.15 10.15 并行方式实现优先级中断并行方式实现优先级中断防止干防止干扰信号扰信号4610.3.5 多重中断处理 多重中断多重中断是指在处理某一中断过程中又发生了是指在处理某一中断过程中又发生了新的中断,从而中断该服务程序的执行,又转去进新的中断,从而中断该服务程序的执行,又转去进行新的中断处理。这种重叠处理中断的现象又称行新的中断处理。这种重叠处理中断的现象又称中中断嵌套断嵌套。中断响应次序与中断处理次序中断响应次序与中断处理次序 中断响应次序是由硬件排队判优线路决定的,中断响应次序是由硬件排队判优线路决定的,不能改变,而中断处理次序可由屏蔽码决定,是可不能改变,而中断处理次序可由屏蔽码决定,是可以改变的。以改变的。中断处理次序中断处理次序可以不同于可以不同于中断响应次序。中断响应次序。47k+1l+1m+1klm目的程序三级中断处理程序二级中断处理程序一级中断处理程序48例如:例如:某计算机的中断系统有某计算机的中断系统有4 4级中断优先级,每级中断优先级,每级对应一个屏蔽码,下表为程序级别和屏蔽码的关级对应一个屏蔽码,下表为程序级别和屏蔽码的关系,中断响应次序和处理次序一致,均为:系,中断响应次序和处理次序一致,均为:1 1 2 3 42 3 449程序级别第1级第2级第3级第4级1级2级3级4级屏蔽码011100110001000050 按照这一次序可以看到按照这一次序可以看到CPUCPU运动的轨迹,如下图。运动的轨迹,如下图。正常程序中断服务程序123121443251程序级别第1级第2级第3级第4级1级2级3级4级屏蔽码0111000001000110中断处理次序改为:中断处理次序改为:1 1 4 3 24 3 252正常程序中断服务程序11234234215310.3.6 CPU内部实现中断例:例:相对简单相对简单CPU CPU 处理中断的过程处理中断的过程 添加一个添加一个IRQIRQ输入引脚,其响应信号传至输入引脚,其响应信号传至 IACKIACK输出引脚输出引脚 添加新指令添加新指令 识别中断并访问此中断处理的状态识别中断并访问此中断处理的状态 访问中断服务程序访问中断服务程序IEIE:中断允许触发器:中断允许触发器IPIP:中断触发器:中断触发器54指令指令码操作LDSP10000000SPCALL10000010SPSP-1;MSPPC15.8,SPSP-1;MSPPC7.0,PCRET10000011PC7.0MSP,SPSP+1;PC15.8MSP,SPSP+1PUSHAC10000100SPSP-1;MSPACPOPAC10000101ACMSP,SPSP+1PUSHR10000110SPSP-1;MSPRPOPR10000111RMSP,SPSP+1IESET0100 0000IE1IERST0100 0001IE0IPRST0100 0010IP0表表10.3 相对简单相对简单CPU的新指令的新指令551.识别中断并访问此中断处理的状态方法一方法一方法二方法二图图10.16 两种访问中断服务程序的方法(两种访问中断服务程序的方法(b)修改)修改FETCH1支持中断支持中断(a)采用分离的)采用分离的FETCH1状态和状态和INT1状态状态(IEIP)FETCH1 IEIPFETCH1562.访问中断服务程序(部分)INT1:ARSPINT2:DRPC15.8,SPSP-1INT3:MDR,ARAR-1,SPSP-1INT4:DRPC7.0INT5:MDRINT6:DR(数据总线来的向量)(数据总线来的向量)INT7:PC1111,DR,0000,IP0返回地址压入堆栈返回地址压入堆栈57 DMADMA是高速是高速I/OI/O设备与主存之间由硬件组成的直设备与主存之间由硬件组成的直接数据通路,能成组传送数据。接数据通路,能成组传送数据。数据传送是在数据传送是在DMACDMAC控制下进行的,在数据传送控制下进行的,在数据传送前和结束后要通过程序或中断方式进行预处理和后前和结束后要通过程序或中断方式进行预处理和后处理。处理。10.4.1 将直接存储器访问DMA纳入计算机系统10.4 直接存储器访问58图图10.17 带有带有DMA的计算机系统的计算机系统59DMA控制器控制器CPU置置BR=1,发送总线请求发送总线请求置置BG=1,发送总线允许发送总线允许601.DMA内部结构 图图10.18 DMA控制器的内部结构控制器的内部结构612.DMA控制器内的寄存器组 DMADMA地址寄存器地址寄存器 存贮数据传输过程中需用到的存储器地址存贮数据传输过程中需用到的存储器地址 DMADMA计数寄存器计数寄存器 保存传输数据的字节数保存传输数据的字节数 DMADMA控制寄存器控制寄存器 从从CPUCPU中接受命令中接受命令 状态寄存器状态寄存器 向向CPUCPU提供信息提供信息 623.DMA控制逻辑 完成完成DMADMA的初始化的初始化 接收设备送来的接收设备送来的DMADMA请求信号请求信号 向设备控制器回答向设备控制器回答DMADMA允许信号允许信号 向系统申请总线向系统申请总线 控制总线实现控制总线实现DMADMA传输控制传输控制 中断控制逻辑中断控制逻辑6310.4.2 DMA传输方式 突发方式突发方式 在突发方式中,整个数据块连续传输。在突发方式中,整个数据块连续传输。l 控制简单,适合高速外设的成批数据传送控制简单,适合高速外设的成批数据传送l CPUCPU较长时间不能访存较长时间不能访存CPUCPU使用内存使用内存DMADMA使用内存使用内存内存工作时间内存工作时间CPUCPUCPUCPUDMADMA操作操作64 周期窃取方式周期窃取方式连续地获取和放弃系统总线控制权来传输。连续地获取和放弃系统总线控制权来传输。l 充分发挥充分发挥CPUCPU和和I/OI/O设备的利用率设备的利用率l 判优操作和总线切换操作频繁,判优操作和总线切换操作频繁,花费的时间开销大。花费的时间开销大。CPUCPU使用内存使用内存DMADMA使用内存使用内存内存工作时间内存工作时间CPUCPUDMADMACPUCPUCPUCPUDMADMACPUCPUCPUCPUDMADMA65 透明方式透明方式 DMADMA利用空闲时间传输数据。利用空闲时间传输数据。CPUCPU使用内存使用内存DMADMA使用内存使用内存内存工作时间内存工作时间CPUCPUCPUCPUDMADMACPUCPUCPUCPUDMADMAl CPU CPU不停止执行程序不停止执行程序l 系统总线的硬件复杂、昂贵系统总线的硬件复杂、昂贵 CPUCPUDMADMACPUCPU不需要访存不需要访存6610.4.3 DMA控制方式下的数据传送过程 三个阶段 DMADMA传送前预处理传送前预处理 数据传送数据传送 传送后处理传送后处理 1.DMA传送前预处理 在进行在进行DMADMA数据传送之前要用程序做一些数据传送之前要用程序做一些 必要的准备工作。必要的准备工作。67lDMADMA控制器初始化控制器初始化lI/OI/O设备控制器初始化设备控制器初始化l启动设备启动设备2.数据传送 DMADMA控制器控制完成数据传送工作,控制器控制完成数据传送工作,传送传送 结束向结束向CPU发中断请求信号。发中断请求信号。3.传送后处理 CPUCPU响应中断,转去执行中断服务程序,响应中断,转去执行中断服务程序,进行结束处理工作。进行结束处理工作。6810.4.4 修改CPU使其与DMA共处 1.为了使CPU能与DMA控制器共同工作 增加控制输入信号增加控制输入信号BRBR和控制输出信号和控制输出信号BGBG 产生产生BGBG的逻辑电路的逻辑电路 2.CPU允许在以下状态接受DMA的请求 取指令后、译码后、取操作数后、取指令后、译码后、取操作数后、指令执行完后、结果保存后指令执行完后、结果保存后 693.修改相对简单CPU 在取指令周期开始处理在取指令周期开始处理DMADMA请求请求 (1)(1)对对BGBG的操作的操作 BRFETCH1BRFETCH1:BGBG1 1 BRFETCH1 BRFETCH1:BG0BG0,(,(FETCH1FETCH1的微操作)的微操作)两条合并:两条合并:FETCH1FETCH1:BGBRBGBR BRFETCH1 BRFETCH1:(FETCH1FETCH1的微操作)的微操作)(2)(2)实现实现BGBG的硬件的硬件 (3)(3)状态图所需的修改状态图所需的修改70图图10.1910.19 BG BG的硬件实现的硬件实现图图10.20 10.20 修改状态图接纳修改状态图接纳BRBR和和BGBG71I/O处理器处理器 与与CPU交互,处理由交互,处理由I/O设备读出后数据设备读出后数据可连接多个可连接多个I/O设备设备 I/O设备连接至设备连接至I/O总线上,而不是系统总总线上,而不是系统总线上线上 10.5 I/O处理器72图图10.21 带带I/O处理器的系统结构处理器的系统结构73CPU向向I/O处理器发送一系列处理器发送一系列I/O指令,而不指令,而不象处理象处理DMA那样将值存于寄存器中,指令分那样将值存于寄存器中,指令分为三类:为三类:1.块传送命令块传送命令 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:即没有奇偶位、即没有奇偶位、八位数据位八位数据位和一位和一位停止位停止位 图图10.22 两字节数据的传输实例两字节数据的传输实例1 2 3 4 5 6 7 8开销达到整个传输的开销达到整个传输的20%78字符数据如需按位操字符数据如需按位操,必须将每个字符编码,必须将每个字符编码美国信息交换标准码美国信息交换标准码(128字符)字符)前前32个字符为个字符为控制代码控制代码 剩下的字符为剩下的字符为打印字母打印字母、数字和符号数字和符号 扩展扩展ASCII Unicode 79同步传输同步传输 通过减少开销来改善传输性能。它不给通过减少开销来改善传输性能。它不给每个数据送起始位和停止位,而是将几每个数据送起始位和停止位,而是将几个数据合成一个数据块,并在此数据块个数据合成一个数据块,并在此数据块前和尾添加适当信息以形成一帧数据前和尾添加适当信息以形成一帧数据 高级数据链路控制高级数据链路控制 图图10.23 高级数据链路控制的帧格式高级数据链路控制的帧格式检查传输中错误检查传输中错误8010.6.2通用异步收发器(通用异步收发器(UART)通用异步收发器通用异步收发器 10.24 带带UART的计算机系统的计算机系统81图图10.25 UART的内部结构的内部结构82第十章第十章 输入输出结构输入输出结构10.1 异步数据传输10.2 可编程I/O10.3 中断10.4 直接存储器访问10.5 I/O处理器10.6 串行通信10.7 实例:串行通信标准实例:串行通信标准8310.7.1 RS-232-C标准标准传输速度可达传输速度可达115,200bps,包括,包括9个信号如下个信号如下 l 请求发送请求发送l 清除发送清除发送l 发送数据发送数据l 数据终端准备就绪数据终端准备就绪l 数据设备准备就绪数据设备准备就绪l 接收数据接收数据l 载波检测载波检测l 振铃指示振铃指示l 接地接地8410.7.2通用串行总线标准通用串行总线标准USB四种类型包四种类型包记号包记号包:指明传输方(或帧产生者)的地址:指明传输方(或帧产生者)的地址和端点和端点数据包数据包:包括传输到设备或从设备来的数据:包括传输到设备或从设备来的数据握手包握手包:传递用于协调数据传输的信息:传递用于协调数据传输的信息专用包专用包:还有一些具有许多不同功能的:还有一些具有许多不同功能的85图图10.26 USB包格式:(包格式:(a)记号包,()记号包,(b)数据包,()数据包,(c)握手包)握手包86l 计算机可采用计算机可采用带握手或不带握手带握手或不带握手、源或目的启动的源或目的启动的异步数据传输异步数据传输执行交互。计算机也可用执行交互。计算机也可用存储器编址存储器编址方式方式或或独立编址方式独立编址方式的可编程的可编程I/O与与I/O设备通信。设备通信。这些方式中,这些方式中,CPU必须有逻辑电路去访问必须有逻辑电路去访问I/O设备设备和处理指令集中的和处理指令集中的I/O指令。指令。l 中断中断是计算机用于与是计算机用于与I/O设备交互的有效方法。系设备交互的有效方法。系统可以有多个中断,多个中断可采用统可以有多个中断,多个中断可采用菊花链菊花链或或并行并行优先权优先权硬件进行优先级排队。硬件进行优先级排队。l 直接存储器访问可提高存储器与直接存储器访问可提高存储器与I/O设备之间的数设备之间的数据传输速度据传输速度 l 串行通信用于在计算机与外部设备之间每次传输一串行通信用于在计算机与外部设备之间每次传输一位数据位数据
展开阅读全文