输入输出系统

本文参考《计算机组成原理(第2版)》(唐朔飞)

目录

I/O 系统基本概念

输入输出(I/O)系统

  • 外设:输入 / 输出设备是外部设备,简称外设。计算机与外设之间的信息交换称为输入和输出

I/O 系统发展概况

  • 早期阶段:I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU
    输入输出系统
    • 分散连接:每个 I/O 设备都必须配有一套独立的逻辑电路与 CPU 相连,用来实现 I/O 设备与主机之间的信息交换,因此线路十分散乱、庞杂
    • CPU 和 I/O 串行工作 (程序查询方式),当I/O设备与主机交换信息时,CPU 不得不停止各种运算
  • 接口模块和DMA阶段:I/O设备通过接口模块与主机连接,计算机系统采用了总线结构
    输入输出系统
    • CPU 和 I/O 并行工作: 中断 / DMA
  • 具有通道结构的阶段
    • 在小型和微型计算机中,采用DMA方式可实现高速I/O设备与主机之间成组数据的交换,但在大中型计算机中,I/O设备配置繁多,如果每台I/O设备都配置专用的DMA接口,不仅增加了硬件成本,而且为了解决众多DMA接口同时访问主存的冲突问题,会使控制变得十分复杂,CPU需对众多的DMA接口进行管理,同样会占用CPU的工作时间,而且因频繁地进入周期挪用阶段,也会直接影响CPU的整体工作效率
    • 因此在大中型计算机系统中,采用I/O通道的方式来进行数据交换
      输入输出系统
    • 通道是用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,可以视为从属于CPU的一个专用处理器。通道有专用的通道指令,能独立地执行用通道指令所编写的输入输出程序,同时依据CPU的I/O指令进行启动、停止或改变工作状念。依赖通道管理的I/O设备在与主机交换信息时,CPU不直接参与管理,故提高了CPU的资源利用率
  • 具有I/O处理机的阶段:I/O处理机又称为外围处理机, 它基本独立于主机工作,既可完成I/O通道要完成的I/O控制,又可完成码制变换、格式处理、数据块检错、纠错… 因此,具有I/O处理机的输入输出系统与CPU工作的并行性更高

I/O 接口(I/O 控制器)

输入输出系统

  • I/O 接口:指 主机(CPU和存储器)和 外设 的交接部分,在主机与外设之间的逻辑部件;不同的 I/O 设备都有其相应的设备控制器,而它们往往都是通过 I/O 接口与主机取得联系的
  • I/O 接口位于 系统总线 (I/O 总线) 和 外设 之间
    • I/O 总线:多层次总线结构中专门负责 I/O 操作的总线,命令字、状态字和中断类型号全部通过数据总线传输
  • 作用:控制并实现主机与外部设备之间的数据传送

接口分类

数据传送格式划分

  • 并行接口接口与系统总线、接口与外设均按并行方式传送数据,适用于设备本身并行工作,距主机较近的场合
  • 串行接口接口与系统总线并行传送,接口与外设串行传送
    • 由于接口与主机之间是按字节或字并行传送,因此对串行接口而言,其内部还必须设有串-并转换装置
    • 适用于设备本身串行工作,或距主机较远,或需减少传送线的情况

时序控制方式划分

  • 同步接口接口与系统总线的信息传送由统一时序信号控制
    • 同步工作要求I/O设备与CPU的工作速度完全同步
    • 例如,在数据采集过程中,若外部数据以 2400 bps的速率传送至接口,则CPU也必须以1/2400s的速率接收每一位数
  • 异步接口:接口与系统总线的信息传送采用异步应答方式
    • 当 I/O 设备与主机工作速度不匹配时,通常采用异步工作方式
    • 这种方式在交换信息前, I/O 设备与CPU各自完成自身的任务,采用应答信号联络;一旦出现联络信号, 彼此才准备交换信息
      输入输出系统
    • 如上图所示,当 CPU 将数据输出到 I/O 接口后,接门立即向 I/O 设备发出一个 Ready 信号,告诉 I/O 设备可以从接口内取数据, I/O 设备收 Ready 信号后,通常便立即从接口中取出数据,接着向接口同发一个 Strobe 信号,并让接口转告 CPU, 接口中的数据已被取走,CPU 还可继续向此接口送数据
    • 同理,倘若 I/O 设备需向 CPU 传送数据,则先由 I/O 设备向接口送数据,并向接口发 Strobe 信号,表明数据已送出。接口接到联络信号后通知 CPU 可以取数,一且数据被取走,接口便向 I/O 设备发 Ready 信号,通知 I/O 设备,数据已被取走尚可继续送数据

数据传送控制方式划分

  • 程序控制接口
  • 中断接口
  • 直接存储器存取(DMA)接口 (用于连接高速 I/O 设备)
  • 通道控制

I/O 接口的主要功能

  • 寻址
    • 接收 CPU 送来的地址码 (设备号),进行地址译码,实现 I/O 设备的选择
    • 选择接口中的不同端口(寄存器)供 CPU 访问
  • 缓存:对主机与外设交换的数据进行缓冲和锁存,实现主机与外设的速度匹配
  • 状态:对外设或接口的就绪、忙等状态信息实现保存、应变和传送
  • 控制:通过指令指定设备或端口的操作
  • 中断:需要时可进行中断的功能
  • 转换:提供信号格式转换电平转换等支持

I/O 接口的基本结构

  • CPU 和外设之间通常传递的信息:数据、状态、控制
  • 组成:控制逻辑电路、主机与接口和接口与I/O设备之间的信号联接线,即地址线、数据线、控制状态线
    输入输出系统
    • 数据线是 I/O 设备与主机之间数据的传送线,其根数一般等于存储字长的位数或字符的位数,它通常是双向
    • 设备选择线 / 地址线:用来传送设备码,它的根数取决于 I/O 指令中设备码的位数
    • 命令线:传输 CPU 向设备发出的各种命令信号, 如启动、清除、屏蔽、读、写等。它是一组单向总线,其根数命令信号多少有关
    • 状念线:将 I/O 设备的状态向主机报告的信号线,例如,设备是否准备就绪,是否向 CPU 发出中断请求等,它也是一组单向总线

I/O 端口 与 编址方式

I/O 端口

  • 为使 CPU 能选择设备并进行数据传送,接口中通常都具有多个可由 CPU 进行读或写操作的寄存器或电路
  • CPU 与 I/O 接口传递信息的类型主要有数据、状态和控制信号,对应传送它们的端口分别为数据端口(I/O)、状态端口(I)和控制端口(O)

I 和 O 是相对 CPU 而言的


I/O 端口的编址

  • I/O 端口与存储器统一编址:把一个外设端口看作存储器的一个单元,占用存储器的地址空间。利用对存储器的读写操作完成数据的输入和输出
    • 例如,在 64K 地址的存储空间中,划出 8K 地址作为 I/O 设备的地址,凡是在这 8K 地址范围内的访问,就是对 I/O 设备的访问
    • 优点:不需要专门的输入输出指令; 可使用全部对存储器操作的指令,指令数量多;端口数量多
    • 缺点:占用存储器空间;寻址地址线数多,译码电路复杂
  • I/O 端口独立编址:计算机单独给外设端口编址,I/O 端口具有独立的地址空间。计算机需用控制信号区分存储器空间和 I/O 端口空间
    • 优点:I/O 空间较存储器空间小,地址线少,译码电路简单。不占用存储器空间
    • 缺点:要有专用的输入输出指令,寻址方式少,不灵活

I/O 数据传送控制方式

  • 程序查询方式、中断方式、DMA 方式、I/O 通道控制方式

程序直接控制传送方式

  • CPU 执行一段 I/O 程序实现与外设之间数据传送。该方式是进行数据交换的最简单的控制方法
    • 无条件传送:只有在外设总处于准备好状态采用
    • 程序查询方式
  • 优点:较好协调主机与外设之间的时间差异,所用硬件少
  • 缺点:主机与外设只能串行工作;主机一个时间段只能与一个外设进行通讯;CPU效率低

工作流程

输入输出系统

  • CPU 执行初始化程序,预置传送参数
    • 由于这种方式传送数据时要占用 CPU 中的寄存器,故首先需将寄存器原内容保护起来
    • 由于传送往往是一批数据,因此需先设置 I/O 设备与主机交换数据的计数值和欲传送数据在主存缓冲区的首地址
    • CPU 启动 I/O 设备
  • 从外设接口读取状态;当准备就绪时,可进行传送
    • 对输入而言,准备就绪意味着接口电路中的数据缓冲寄存器已装满欲传送的数据,称为输入缓冲满,CPU 即可取走数据
    • 对输出而言,准备就绪意味着接口电路中的数据已被设备取走,故称为输出缓冲空,这样 CPU 可再次将数据送到接口,设备可再次从接口接收数据
  • 传送一次数据 (一个字一个字地进行传送)
    • CPU 执行 I/O 指令,或从 I/O 接口的数据缓冲寄存器中读出一个数据,或把一个数据写入 I/O 接口中的数据缓冲寄存器内,同时将接口中的状态标志复位
  • 修改主存地址和计数参数,判断结束
    • 若原设置计数值为原码,则依次减1;若原设置计数值为负数的补码,则依次加1。若计数值不为0, 表示一批数据尚未传送完,重新启动外设继续传送;否则结束 I/O 传送,继续执行现行程序


在程序查询方式的输入输出系统中,假设不考虑处理时间,每次查询操作需要 100 个时钟周期,CPU 的时钟频率为 50 MHz。现有鼠标和硬盘两个设备,而且 CPU 必须每秒对鼠标进行 30 次查询,硬盘以 32 位字长为单位传输数据,即每 32 位被 CPU 查询一次,传输率为 2 MBps。求 CPU 对这两个设备查询所花费的时间比率,由此可得出什么结论?

  1. CPU 每秒对鼠标进行 30 次查询,所需的时钟周期数为
    100 × 30 = 3000 100\times 30 = 3000 100×30=3000CPU 的时钟频率为 50 MHz,即每秒 50 × 1 0 6 50 \times 10^6 50×106 个时钟周期,故对鼠标的查询占用CPU的时间比率为
    [ 3000 / ( 50 × 1 0 6 ) ] = 0.006 % [3000/(50 \times 10^6)]=0.006\% [3000/(50×106)]=0.006%可见,对鼠标的查询基本不影响 CPU 的性能
  2. 对于硬盘,每 32 位被 CPU 查询一次,故每秒查询
    2 M B / 4 B = 512 K 次 2 MB/4 B=512 K次 2MB/4B=512K次则每秒查询的时钟周期数为
    100 × 512 × 1024 = 52.4 × 1 0 6 100 \times 512 \times 1 024 = 52.4\times 10^6 100×512×1024=52.4×106故对磁盘的查询占用 CPU 的时间比率为
    [ ( 52.4 × 1 0 6 ) / ( 50 × 1 0 6 ) ] = 105 % [(52.4\times 10^6)/(50\times 10^6)]= 105\% [(52.4×106)/(50×106)]=105%可见,即使 CPU 将全部时间都用于对硬盘的查询也不能满足磁盘传输的要求,因此 CPU 一般不采用程序查询方式与磁盘交换信息

程序中断方式

  • 中断: 计算机在执行程序的过程中当出现异常情况或特殊请求时,停止现行程序的运行,转向对这些异常情况或特殊请求的处埋,处理结束后再返回到现行程序的间断处,继续执行原程序
  • 中断源:引起中断产生的事件或发生中断请求的来源
  • 实质:程序切换
    • 方法:保存断点,保护现场;恢复现场,返回断点
    • 时间:一条指令结束时切换。保证程序的完整性

中断分类

  • 硬件中断 (由硬件请求信号引发中断) 与软中断 (由软中断指令引发中断)
  • 内中断 (中断源来自主机内部) 与 外中断 (中断源来自主机外部)
  • 可屏蔽中断 (可通过屏蔽字屏蔽该类请求;关中断时不响应该类请求) 与 非屏蔽中断硬件中断)(该类请求与屏蔽字无关;请求的响应与开/关中断无关)

向量中断 与 非向量中断

获得中断服务程序的入口地址的两种方法

向量中断

  • 在向量中断方式中,中断服务程序入口地址称为中断向量;存放所有中断向量的一段内存区域称为中断向量表;访问中断向量表的地址称为中断向量地址
  • 向量中断 就是利用硬件产生向量地址 (中断向量地址形成部件),再由向量地址找到中断服务程序的入口地址
    输入输出系统

也可以在向量地址内存放一条无条件转移指令,CPU响应中断时,只需将向量地址送至 PC, 执行这条指令,便可无条件转向中断服务程序的入口地址

软件查询法

  • 用软件寻找中断服务程序入口地址。CPU 响应中断时只产生一个固定的地址,由此读取中断查询程序的入口地址,通过软件查询程序方式确定被批准的中断源中断服务程序地址

中断的作用和功能

  • CPU、I/O 设备并行工作,提高CPU工作效率
    • I/O 中断: 只有当 I/O 设备准备就绪向 CPU 提出请求后,再暂时中断 CPU 现行程序转入 I/O 服务程序
      输入输出系统
  • 利用中断来处理故障,提高机器的可靠性
  • 人机联系
  • 实现多道程序和分时操作:多道程序的切换运行需要借助于中断系统,也可以通过分配每道程序一个固定时间片,利用时钟定时发中断进行程序切换
  • 实现实时处理
  • 实现应用程序和操作系统的联系:可以在用户程序中安排一条Trap指令进入操作系统,称之为软中断
  • 多处理机系统各处理机间的联系

  • 从宏观上分析,程序中断方式克服了程序查询方式中的 CPU “踏步” 现象,实现了 CPU 与 I/O 的并行工作,提高了 CPU 的资源利用率
  • 但从微观操作分析,发现 CPU 在处理中断服务程序时仍需暂停原程序的正常运行, 尤其是当高速 I/O 设备或辅助存储器频繁地、成批地与主存交换信息时,需不断地打断 CPU 执行主桯序而执行中断服务程序

CPU 响应中断必须满足的条件

  • 中断源有中断请求 (中断请求触发器 置“1”),且未被屏蔽
    • 每个中断源都设置了一个中断屏蔽触发器来屏蔽该设备的中断请求。置“1’则对应的设备*;置“0”,允许中断请求得到响应
  • CPU 允许接受中断请求,即开中断 (中断允许触发器 IF=1 STI)
  • 一条指令执行完毕后 CPU 才能响应中断,并且当前执行的不是停机指令。在指令执行周期结束后,若有中断,CPU 则进入中断周期;若无中断,则进入下一条指令的取指周期
  • 无故障、DMA 等优先权更高的请求
    输入输出系统

中断过程

  • 中断请求INTR
    • 中断源向 CPU 发中断请求信号 (设备欲提出中断请求时,其设备本身必须准备就绪),并将中断允许触发器置位,以保持请求状态\
    • CPU 在任何瞬间只能接受一个中断源的请求。所以,当多个中断源同时提出请求时,CPU 必须对各中断源的请求进行排队,且只能接受级别最高的中断源的请求,不允许级别低的中断源中断正在运行的中断服务程序。这样,在 I/O 接口中需设置一个屏蔽触发器 MASK, 当其为 1 时,表示被屏蔽,即*其中断源的请求.因此,中断请求触发器和中断屏蔽触发器在 I/O 接口中是成对出现的
  • 中断响应INTA
    • 中断响应条件满足时,CPU 就响应中断,停止现行程序的运行,准备进入中断处理阶段
    • 执行中断隐指令 (中断隐指令,即在机器指令系统中没有的指令,它是 CPU 在中断周期内由硬件自动完成的一条指令)
      • CPU 响应中断后,即进入中断周期。在中断周期内, CPU 要自动完成一系列操作保护程序断点寻找中断服务程序的入口地址关中断 (确保 CPU 响应中断后所需做的一系列操作不至于受新的中断请求的干扰,因此在中断周期内必须自动关中断)
      • 上述保护断点、寻找入口地址、关中断都是在中断周期内由一条中断隐指令完成
  • 中断处理

中断处理

输入输出系统

  • 关中断:由硬件自动实现,因为接下去要保存断点,保存现场。在保存现场过程中,即使有更高级的中断源申请中断,CPU也不应该响应。否则,如果现场保存不完整,在中断服务程序结束之后,也就不能正确地恢复现场并继续执行现行程序
  • 保护现场应该包括保护程序断点保护CPU内部各寄存器内容
    • 程序断点 ( P C PC PC) 的现场由中断隐指令完成
    • 寄存器内的现场可在中断服务程序中由用户(或系统)用机器指令编程实现
  • 判别中断源,转向中断服务程序:在多个中断源同时请求中断的情况下,实际响应的是优先权最高的那个中断源
  • 开中断:将允许更高级中断请求得到响应
  • 执行中断服务程序
  • 退出中断:在退出时,先关中断,恢复现场,然后开中断、恢复断点返回原程序执行
    • 恢复现场是指在中断返回前,必须将寄存器内容恢复到中断处理前的状态,由中断服务程序完成

中断源优先级判别

  • 任何一个中断系统,在任一时刻,只能响应一个中断源的请求。当某一时刻有多个中断源提出中断请求时,中断系统必须按其优先顺序予以响应,这称为中断判优

软件查询

  • 由测试程序按一定优先排队次序检查各个设备的“中断触发器”,查询的次序即为中断源优先级的顺序
  • 灵活、但转入服务程序时间较长
    输入输出系统

串行排队链法

  • 由硬件确定中断源;如下图中, I N T R 1 、 I N T R 2 、 I N T R 3 、 I N T R 4 INTR_1 、INTR_2 、INTR_3 、INTR_4 INTR1​、INTR2​、INTR3​、INTR4​ 优先级按降序排列
    输入输出系统
  • 断优先级的响应次序由硬件排队线路决定。一旦设计完成,系统的优先级别就决定了,缺乏改变优先权级别的灵活性

中断判优的三种方式

  • I R IR IR:中断请求输入线; I G IG IG:中断许可输出线
    输入输出系统

多重中断

  • 单级中断:在执行中断服务程序的过程中,如果只能为本次中断服务,不允许打断该服务程序。只有在服务程序完成后,才能响应新的中断请求
  • 多重中断:指多个中断源的计算机系统中,每一个中断源分配给一个优先级,按照各自的优先权并以嵌套方式工作的中断
    • 在处理某一个中断的过程中又发生了新的更高级中断源的中断申请,且CUP又处于开中断状态下,CPU就要中断该服务程序的执行,在保存断点和现场后,转去响应优先级更高的中断请求,并执行新的中断服务程序
      输入输出系统
    • 关键:提前设置开中断指令 (中断隐指令会自动关中断)、 优先级别高的中断源有权中断优先级别低的中断源 (可采用屏蔽技术)
      输入输出系统

中断屏蔽

  • 中断屏蔽:给每个中断源配置一位屏蔽触发器,置1表示阻止该中断源的请求,并将所有的触发器组成一个中断屏蔽寄存器,屏蔽寄存器的内容称为屏蔽字;通过指令可对其设置和修改
    • 在有优先级中断屏蔽码(字)控制的条件下,可以不改变系统排队线路,灵活设置优先级,实现多重中断;因此屏蔽码可看成中断处理过程中的软排队器
      • 多重中断方式中,当CPU响应某个中断请求后送出一个新的屏蔽字,以禁止与该请求同一优先级或更低级优先级的其它请求。只允许比该请求优先级高的其它中断请求提出申请
      • 动态地修改优先级:硬件排优逻辑所分配的优先级是固定的,有时要临时动态的修改优先顺序,可利用屏蔽字来临时调整
        输入输出系统
  • 屏蔽技术可改变优先等级
    • 优先级包含响应优先级处理优先级,响应优先级指 CPU 响应各中断源请求的优先次序,这种次序往往是硬件线路设置的,不便改动。处理优先级是指 CPU 实际对各中断源请求的处理优先次序
    • 如果不采用屏蔽技术,响应的优先次序就是处理的优先次序
    • 采用了屏蔽技术后,可以在不改变 CPU 响应中断的次序下,通过改变屏蔽字来改变 CPU 处理中断的次序。例如,下表中将 A , B , C , D A,B,C,D A,B,C,D 的响应次序改为 A , D , C , B A,D,C,B A,D,C,B
      输入输出系统


设某机有 4 个中断源, 其硬件排队优先次序按 1,2,3,4 降序排列,各中断源的眼务程序中所对应的屏蔽字如下表所示
输入输出系统

  • 若 4 个中断源同时有中断请求,画出 CPU 执行程序的轨迹

  • 当 4 个中断源同时有中断请求时,由于硬件排队的优先次序是 1,2,3,4, 故 CPU 先响应 1 的请求,执行 1 的服务程序
  • 由于在该服务程序中设置了屏蔽字 1101, 故开中断指令后转去执行 3 的服务程序,且 3 的服务程序执行结束后又回到 1 的服务程序
  • 1 的服务程序结束后,CPU 还有 2、4 两个中断源请求未响应。由于 2 的响应优先级高于 4, 故 CPU 先响应 2 的请求,执行 2 的服务程序;在 2 的服务程序中由于设置了屏蔽字 0100, 因此在开中断指令之后转去执行 4 的服务程序, 4 的服务程序执行结束后又回到 2 的服务程序的断点处,继续执行 2 的服务程序,直至该程序执行结束
    输入输出系统


假设某机有设备4个外设中断源,每个中断源具有不同的优先权。设其中断源1~4号的优先级别 (硬件排队优先级) 从高到低分别为1→2→3→4的顺序。每级对应1个屏蔽码。下表列出中断响应优先级与屏蔽级一致情况下的屏蔽码
输入输出系统
输入输出系统

  • 开始同时出现设备2和3中断请求。按排队线路,2的优先级高于3而先响应2
  • 执行设备2的中断服务程序并保护现场和原屏蔽字后,将2级程序的屏蔽码0111置入各接口屏蔽寄存器,它屏蔽3和4的中断请求。此时,4级又提出中断请求,CPU暂不予理睬
  • 执行完2级服务程序后恢复原屏蔽码,返回主程序后再响应3的请求。3级中断程序执行完后再响应4级的中断
  • 假若CPU再次执行2级中断服务程序时,出现了1级中断请求,由于其屏蔽字0111已置入屏蔽寄存器,对1级中断是开放的。又因1优先级高于2,则CPU暂停对2级中断服务程序的执行,转去执行第1级中断服务程序。待第1级中断服务程序执行完后,再去执行第2级中断服务程序


某计算机有4个中断源,可设为4个优先级,其硬件排队优先级从高到低的顺序为 L 0 → L 1 → L 2 → L 3 L_0→L_1→L_2→L_3 L0​→L1​→L2​→L3​,对应的中断屏蔽字为 M 3 M 2 M 1 M 0 M_3M_2M_1M_0 M3​M2​M1​M0​, M i = 1 ( 0 ≤ i ≤ 3 ) M_i=1(0≤i≤3) Mi​=1(0≤i≤3)表示对 L i L_i Li​ 级中断进行屏蔽。现要求将中断处理从高到低的优先级顺序改为 L 3 → L 2 → L 0 → L 1 L_3→L_2→L_0→L_1 L3​→L2​→L0​→L1​
(1) 每个中断源优先级顺序未改变前对应的中断屏蔽字,以及中断处理程序中需设置的新中断屏蔽字各是什么?
(2) 若4个中断源同时有中断请求,请画出CPU执行程序的轨迹示意图

输入输出系统

DMA 方式

  • DMAl/O 设备与主存储器之间由硬件组成的直接数据通路,DMA 传送过程不需要 CPU 的干预
    • 专用硬件 DMA 控制器控制下,生成当前正在传送的数据的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束。在主存中要开辟连续地址的专用缓冲器,用来提供或接收传送的数据。在数据传送之前和结束后要通过程序或中断方式对缓冲器和 DMA 控制器进行预处理和后处理

输入输出系统

  • 由上图可见,由于主存和 DMA 接口之间有一条数据通路,因此主存和设备交换信息时,不通过 CPU, 也不需要 CPU 暂停现行程序为设备服务,省去了保护现场和恢复现场,因此工作速度比程序中断方式的工作速度高
  • 主要用于高速 I/O 设备与主存之间的成批数据传送;因为高速 I/O 设备若每次申请与主机交换信息时,都要等待 CPU 做出中断响应后再进行,很可能因此使数据丢失

与程序中断方式的比较

  • **从数据传送看,程序中断方式靠程序传送,DMA 方式靠硬件传送
  • 从 CPU 响应时间看,程序中断方式是在一条指令执行结束时响应, 而 DMA 方式可发生在每个机器周期的结束
    输入输出系统
  • **程序中断方式有处理异常事件的能力,DMA 方式没有这种能力,主要用于大批数据的传送
  • **程序中断方式需要中断现行程序,故需保护现场;DMA 方式不中断现行程序,无须保护现场
  • **DMA 的优先级比程序中断的优先级高

DMA 三种工作方式

  • 在 DMA 方式中,由于 DMA 接口与 CPU 共享主存,这就有可能出现两者争用主存的冲突。为了有效地分时使用主存,通常 DMA 与主存交换数据时采用如下三种方法

独占总线

  • 主机响应 DMA 请求后让出总线,从传送首字开始直到成组数据传送完毕, DMA 控制器掌控总线不放
  • 该方式也称为成组连续传送方式,它可减少系统总线控制权的交换次数,有利于提高输入输出速度。适用于高速外设或单用户状态下的个人计算机
  • 缺点是 DMA 接口在访问主存时,CPU 基本处于不工作状态或保持原状态。CPU 对主存的利用率并没得到充分的发挥
    • 因此,采用这种工作方式的 I/O 设备,在其接口中一般设置有存取速度较快的小容量存储器。 I/O 设备与小容量存储器先交换数据,然后小容量存储器再与主机交换数据,这样可减少DMA传送占用存储总线的时间,也即减少 CPU 暂停工作时间

CPU 周期挪用

  • 每当 I/O 设备发出 DMA 请求, I/O 设备便挪用或窃取总线占用权一个或几个主存周期 (窃取的时间一般为一个存取周期) 来传送一个,而 DMA 不请求时,CPU 仍继续访问主存
  • I/O 设备请求 DMA 传送会遇到三种情况
    • 一种是 CPU 此时不需要访问主存,故 I/O 设备与 CPU 不发生冲突
    • 第二种情况是 CPU 正在访问主存,此时必须待存取周期结束 CPU 才能将总线占有权让出
    • 第三种情况是 I/O 设备要求访间问主存时,CPU 也要求访问主存;这就出现了访问冲突。此刻, I/O 访存优先于 CPU 访问主存,因为 I/O 不立即访问主存就可能丢失数据,这时 I/O 要窃取一、二个存取周期,意味着 CPU 在执行访问主存指令过程中插入了 DMA 请求,并挪用了一、二个存取周期,使 CPU 延缓了一、二个存取周期再访问主存
  • 与 CPU 暂停访存的方式相比,这种方式既实现了 I/O 传送,又较好地发挥了主存与 CPU 的效率
  • 该方式也称为单字传送方式

**I/O 设备每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制权。因此,尽管传送一个字对主存而言只占用一个主存周期,但对 DMA 接口而言, 实质上要占 2~5 个主存周期。因此周期挪用的方法比较适合于 I/O 设备的读写周期大于主存周期的情况

交替方式

  • 直接访问存储器工作方式,与 CPU 轮流使用一个时间片,不需要申请、建立和释放手续,其总线控制权的转移几乎不需要什么时间,具有很高的 DMA 传送速率
  • 这是标准的 DMA 工作方式。如传送数据时 CPU 正好不占用总线,则对 CPU 不产生任何影响。如同时需要访问总线,则 DMA 的优先级高于 CPU

DMA 控制器的组成

  • 利用 DMA 方式传送数据时,数据的传输过程完全由 DMA 接口电路控制,故 DMA 接口 称为 DMA 控制器

输入输出系统

  • 主存地址寄存器 ( A R AR AR)
    • A R AR AR 用于存放要交换数据的内存地址。该寄存器初始值为主存在缓冲区的首地址,在传送前要由程序送入。主存缓冲区地址是连续的,在 DMA 传送期间,每交换一个字由硬件逻辑将其自动加 1而成为下一次数据传送的主存地址
  • 请求寄存器:存放 I/O 设备的 DMA 请求标志(触发),能接收并记忆;它在启动传送的同时复位,为下一请求做准备
  • 字计数器 ( W C WC WC)
    • W C WC WC 用于记录传送数据的总字数。在 DMA 传送过程中,每传送一个字,字计数器自动减1, 直到计数器为0,表示该批数据传送完毕 ,于是 DMA 接口向 CPU 发中断请求信号

**若交换字数以补码值预置,则每传送一个字,字计数器加1, 直到计数器为0时,表示该批数据传送结束

  • 数据缓冲寄存器 ( B R BR BR)
    • B R BR BR 用于暂存 I/O 设备与主存传送的数据。通常 DMA 接口与主存之间采用字传送,而 DMA 与设备之间可能是字节或位传送。因此 DMA 接口中还可能包括有装配或拆卸字信息的硬件逻辑,如数据移位缓冲寄存器、字节计数器等
  • 控制与状态寄存器( C S R CSR CSR):用来存放控制字和状态字
    • 各寄存器均有自己的总线地址,它们是主存的指定单元或 I/O 设备号,CPU 可对这些寄存器进行读/写
  • 中断控制逻辑:负责申请 CPU 对 DMA 进行预处理和后处理。向 CPU 报告一组数据交换结束 (当字计数器全0 时,表示一批数据交换完毕)
  • 控制/状态逻辑:一般包括设备码选择电路;DMA 优先排队电路,产生 DMA 请求的线路等;在 DMA 取得总线控制权后控制主存和设备之间的数据传送(修改两个计数器、指定传送功能、协调应答信号的配合与同步)

DMA 传送过程

  • 预处理、数据传送、后处理
    输入输出系统


一个 DMA 接口可采用周期窃取方式把字符传送到存储器,它支持的最大批量为 400 个字节。若存取周期为 100 n s 100ns 100ns,每处理一次中断需 5 μ s 5μs 5μs, 现有的字符设备的传输率为 9600 b p s 9 600bps 9600bps, 假设字符之间的传输是无间隙的,若忽略预处理所需的时间,试问采用 DMA 方式每秒因数据传输需占用处理器多少时间?如果完全采用中断方式,又需占用处理器多少时间?

根据字符设备的传输率为 9600 b p s 9 600bps 9600bps, 则每秒能传输
9600 / 8 = 1200 B 9 600/8 = 1200 B 9600/8=1200B若采用 DMA 方式,传送 1200 个字符共需 1200 个存取周期,考虑到每传 400 个字符需中断处理一次,因此 DMA 方式每秒因数据传输占用处理器的时间是
0.1 μ s × 1200 + 5 μ s × ( 1200 / 400 ) = 135 μ s 0.1μs \times1200 + 5μs \times (1 200 / 400) =135μs 0.1μs×1200+5μs×(1200/400)=135μs若采用中断方式,每传送一个字符要申请一次中断请求,每秒因数据传输占用处理器的时间是
5 μ s × 1200 = 6000 μ s 5μs \times1 200 = 6 000μs 5μs×1200=6000μs

I/O 通道控制方式

基本概念

  • I/O 通道是具有输入/输出处理器控制的输入/输出部件,是计算机系统中代替CPU管理控制外设的独立部件,它是一种能执行有限 I/O 指令集合,即通道命令的 I/O 处理机。能够根据程序控制多个外部设备并提供 DMA 共享的功能
    • 通道指令是对具有通道的I/O系统专门设置的指令,属于通道自身的指令,用来执行I/O操作,可以由管理程序存放在主存的任何地方,由通道从主存中取出并执行
    • 而I/O指令是CPU指令系统的一部分,是CPU用来控制输入输出操作的指令,由CPU译码后执行。在具有通道结构的计算机中,I/O指令不实现I/O数据传送,主要完成启停I/O设备,查询通道和I/O设备的状态及控制通道所做的其他操作,一旦CPU执行了启动I/O设备的指令,就由通道来代替CPU对I/O设备的管理
  • 通道是一种通过执行通道程序管理 I/O 操作的控制器,它使主机与 I/O 操作之间达到更高的并行程度。由于它的任务是管理实现输入/输出操作,提供一种传送通道,所以将这种控制部件称作通道

通道工作过程

  • 启动通道
  • 数据传输
  • 结束处理
  • 这样,每完成一次输入/输出工作,CPU 只需两次调用管理程序,大大减少了对用户程序的打扰

通道与 DMA 方式的区别

  • DMA 控制器完全借助于专门的硬件控制逻辑实现数据传送;而通道则是具有特殊功能的处理器,通过执行通道程序硬件一起完成数据传送。通道具有更强的独立处理数据输入/输出的功能
  • DMA 控制器只能控制一台或少数几台同类设备;而通道则可以同时控制许多台同类或不同类的设备

通道的类型

字节多路通道

  • 字节方式轮流为多台字符类低速和中速外设服务的通道
    • 简单的共享通道,要求每种设备分时占用一个很短的时间片,不同的设备在各自分得的时间片内与通道建立传输连接,实现数据的传送

选择通道

  • 成块方式逐个为优先级高的多台高速外围设备服务 (选择通道能连接多个但同时只选择其中一个 I/O 设备)
    • 每次只能从所连接的设备中选择一台I/O设备的通道程序。此刻该通道程序独占了整个通道。当它与主存交换完数据后,才能转去执行另一个设备的通道程序,为另一台设备服务。因此,连接在选择通道上的若干设备,只能依次使用通道与主存传送数据
    • 数据传送是以数据块方式进行,每次传送一个数据块,传送速率很高。

数组多路通道

  • 成组方式工作的高速多路通道。连接多台高速外设,每次为一台传送一个数据块,并轮流为它们服务。在为一台高速外设传送数据的同时,可以有多台在定位或找扇区
    • 把字节多路通道和选择通道的特点结合起来。它有多个子通道,既可以执行多路通道程序,像字节多路通道那样,所有子通道分时共享总通道;又可以用选择通道那样的方式传送数据
    • 具有多路并行操作能力,又具有很高的数据传送速率,赢得了吞吐率的较大提高
    • 缺点是增加了控制的复杂性

通道的基本功能

  • 接受 CPU 的 I/O 指令
    • 选择某一指定外设与系统相连,向该外设发出操作命令,并进行初始化
  • 读取并执行通道程序
  • 控制外设与主存之间的数据传送
  • 读取外设的状态信息,并形成和保存通道本身的状态信息,以便提供给 CPU
  • 向 CPU 发中断请求

  • 通道除了承担 DMA 的全部功能外,还承担了设备控制器的初始化工作,并包括了低速外设单个字符传送的程序中断功能,因此它分担了计算机系统中全部或大部分I/O功能,提高了计算机系统功能分散化程度

通道结构的发展

  • 通道技术的进一步发展,出现了独立性与功能更强的输入/输出处理机(IOP)和外围处理机(PPU)
    • 通道结构的 IOP:不是一*立的计算机,而是计算机系统中的一个部件。IOP 可以和 CPU 并行工作,提供高速的 DMA 处理能力,实现数据的高速传送。有些 IOP 还提供数据的变换、搜索和字装配/分拆等能力,有较多的I/O指令集。 IOP方式是通道方式的进一步的发展,大多应用在中、大型计算机
    • 外围处理机(PPU):基本上独立于主处理机工作,结构更接近于一般处理机,或者就是选用已有的通用机。有自己的指令系统,可完成算术/逻辑运算、读/写主存、与外设交换信息等。应用于大型高效率的计算机系统中。在巨型机中,常采用多台外围处理机

I/O 设备

  • 外围设备:*处理器和主存构成了主机, 除主机外的大部分硬件设备都可称为 I/O 设备或外围设备简称外设
    • 辅助(外)存储器也属于外设
      输入输出系统
  • I/O 设备大致可分为三类
    • 人机交互设备
    • 存储设备
    • 通信设备

输入设备

键盘

  • 按结构原理分:
    • 触点式:利用机械触点的分离与闭合判断电路的通断,由于磨损、氧化等易产生接触不良等故障
    • 无触点式:通过按键上下运动使电容的电量发生变化,达到检测开关的通断,不存在磨损和接触不良等问题,且密封组装有防尘特性
  • 按与主机通信信息分:
    • 编码键盘:当某个键被按下后,能够提供一个与之相对应的的编码信息和一个选通脉冲,可作为CPU的中断请求信号。功能全部由硬件完成
      • 例如,下图中的6位计数器经两个八选一的译码器对键盘扫描,若键未按下,则扫描将随着计数器的循环计数反复进行, 一旦扫描发现某键被按下,则键盘通过一个单稳电路产生一个脉冲信号。 该信号一方面使计数器停止计数,用以终止扫描,此刻计数器的值便与所按键的位置相对应、该值可作为 ROM 的输入地址,而该地址中的内容即为所按键的ASCII码。另一方面,此脉冲经中断请求触发器向CPU发中断请求,CPU响应请求后便转入中断服务程序,在中断服务程序的执行过程中, CPU通过执行读入指令将计数器所对应的ROM地址中的内容,即所按键对应的ASCII码送入CPU;经一段延迟后清除中断请求触发器,重新启动计数器开始扫描
        输入输出系统
    • 非编码键盘:将按键排列成行、列矩阵,按键只是使相应接点接通或断开。是用较为简单的硬件,在程序配合下来识别被按键的位置,提供一个与位置相对应的中间代码(扫描码),然后通过专用软件将其转换成规定的编码。即功能由软件完成

计算机键盘常采用电容式无触点键盘,由83~110个键组成,排列成16行×8列的长方矩阵,内部由单片机控制


键盘的工作原理

  • 线性键盘
    • 每个键对应 I/O 端口的一位,没有按键闭合时,各位均处于高电位;当某键被按下时,对应位与地接通,则为低电位。因此,CPU 通过读入 I/O 端口数据并判断哪一位为“0”,即可知哪一个键被按下,从而转到相应功能的处理程序去执行
    • 注意按键抖动问题;需要进行软件去抖
      输入输出系统

鼠标

  • 鼠标:PS/2接口、USB 接口…
  • 分类:
    • 机电式:一个外涂橡胶的钢球,两对发光、光电管和栅轮组成,进行代表 X 、 Y X、Y X、Y 方向的定位和测距
    • 光电式:没有机械滚动部分,代之以两对互为直角的光电探测器,分别代表 X 、 Y X、Y X、Y 方向进行定位
  • 指标 :分辨率、轨迹速度…
    • 分辨率:单位 dpi(像素点/英寸),鼠标移动 1 英寸所经历的像素点数

输出设备

显示器

  • CRT-阴极射线管 (Cathode Ray Tube) 显示器
  • LCD-液晶显示器 (Liquid Crystal Display)
    • 特点:低工作电压、微功耗、体轻薄,易于实现大画面显示,显示色彩优良等
    • 原理:由图像信号电压直接控制薄膜晶体管,再间接控制液晶分子的光学特性实现图像的显示
    • 组成:电源、光源、控制逻辑和液晶屏(薄膜晶体管和液晶)等
  • PDP-等离子显示器 (Plasma Display Panel)

  • 刷新 Refresh:为了使人眼能看到稳定的图像,就必须在图像消失之前使电子束不断地重复扫描整个屏幕
  • 刷新频率

VRAM

  • 为了不断地刷新必须把瞬时图像保存在存储器中,这种存储器称为 刷新存储器 又称 帧存储器视频存储器(VRAM)
  • VRAM 的容量由 图像分辨率灰度等级 决定
    • 例如,分辨率为 512 × 512 512\times512 512×512 像素,灰度等级为 256 的图像,其刷新存储器的容量需达 512 × 512 × 8 b 512\times512\times8 b 512×512×8b, 即为 256 K B 256 KB 256KB
  • 刷新存储器的存取周期必须与刷新频率相匹配

显示器的性能指标

  • 分辨率:一帧像素总数,即宽、高的像素乘积,如 1280×1024
  • 灰度级:单色显示器用于表现显示内容的层次感,如 256级(8位)
  • 颜色深度:彩色显示器用于表示颜色种类,以二进制位数表示。通常一个像素以 8、16、24 位或更多位描述其显示属性
  • 颜色数:彩色显示器每个像素点可显示的颜色数

字符显示器

  • 以字符为显示单位,对应于每个字符窗口,所需显示字符的 ASCll 码被存放在视频存储器(VRAM)中,对于在屏幕上能显示 25 行 80 列的显示器,应有 2000 个单元存放字符信息,VRAM 容量为 25 × 80 × 8 25\times80\times8 25×80×8 bit
  • 水平地址计数器对一行的显示进行控制。送出当前要显示的这一行字符的 VRAM 地址。每行有效显示 80 个字符
  • 垂直(帧)地址计数器控制一屏幕 25 行字符的显示,与水平回扫类似,当光栅到达屏幕底部时,需要回到屏幕顶部这一过程称为垂直回扫,垂直回扫需要一行的显示时间。即:25+1 (屏幕上下失真空一行)
  • 字符发生器:荧光屏上的字符由光点组成,而显示存储器中存放的是 ASCII 码,字符发生器 将每个 ASCII 字符码转变为一组光点矩阵信息。它实质是一个 ROM
    输入输出系统
    • 字符发生器内部以 ASCII 码为 ROM 的高地址 (列地址),光栅计数器为低地址 (行地址) 扫描屏幕;例如下图中显示 9 × 7 9\times7 9×7 的一个字符,每个 ROM 有 9 个单元,分别对应 9 行,ASCII 码作为列地址选择一个 ROM,然后由光栅计数器选择显示 9 行
      输入输出系统

值得注意的是,扫描方式是不一个字符一个字符地扫描,而是每次对一排字符中所有字符的同一行进行扫描,并显示亮点。例如,某排字符为 WELCOME, 其显示次序是先从显示存储器中读出W,送至字符发生器,并从字符发生器中扫描选出 W 的第一行光点代码,于是屏幕上显示出 W 第一行的7个光点代码;再从显示存储器中读出 E 并送至字符发生器,又选出 E 的第一行7个光点代码…直到最后一个字符 E 的第一行1个光点代码显示完毕. 接着进行每个字符点阵的第二行7个光点代码的扫描…直到该排每个字符的第 9 行光点代码扫描完毕,则屏幕上完整地显示出 WELCOME

  • 图形显示器
    • 以像素为显示单位,又称位图显示器。在显示存储器中为每个像素点存储一个影像。根据灰度级的不同决定使用几个bit来表示
      输入输出系统

打印机

硬拷贝设备:可以产生永久性记录的设备

  • 打印机的分类
    • 印字原理:击打式/非击打式;机械化的击打式 → 电子化的非击打式设备
      • 击打式-“打印机”
        • 原理:利用机械作用使印字机构与色带和纸相撞击而打印字符
        • 成本低,缺点是噪音大,速度慢
      • 非击打式-“印字机”
        • 原理:采用电、磁、光、喷墨等物理、化学方法印刷字符,如激光印字机喷墨印字机
        • 速度快,噪音低,印字质量高,但价格较贵,有的设备还需要专用纸张
    • 工作方式:串行打印机 (逐字打印) / 行式打印机 (逐行打印,速度更快)
    • 图形/图像打印机,黑白/彩色打印机
  • 点阵针式打印机 (击打式打印机)
    • 特点:结构与原理简单、体积小、价格低,耗材(色带)便宜; 但打印分辨率和打印速度不够高
    • 组成:打印头、横移机构、走纸机构、色带机构 和控制电路等
    • 原理:其印字方法是由打印针印出 n × m n×m n×m 点阵组成字符或图形,点越多、越密,印字质量越高;色带机构负责供给色源,钢针撞在色带上,就可以把颜色印在纸上,色带机构可使色带不断移动,以改变受击打的位置,避免色带的破损
      • 可“多层复写打印”,实现各种票据或蜡纸等打印
    • 印字过程:在联机状态下,主机发打印命令,经接口、检测和控制电路,间歇驱动纵向送纸打印头横向移动,同时驱动打印针间歇冲击色带,在纸上打出所需内容
      (对一个字符一列一列的打印,每根针可单独驱动,例如打印 E,先打印第一列7个点,再打印第二列3个点… 如果要组成行式点阵打印机,则可以将多恨打印针沿横向排成一行)
      输入输出系统
  • 激光打印机
    • 印字原理:激光技术电子照相技术结合
      • 激光打印机组成:
        • 激光扫描系统、电子照相部分、走纸机构和控制电路等
        • 感光鼓 / 字形鼓 / 硒鼓 是电子照相系统的核心部件,鼓面上涂有一展具有光敏特性的感光材料,主要成分为硒
      • 字形发生器将二进制字符编码转换成字符点阵脉冲信号,激光扫描系统受字符点阵脉冲信号的控制,能输出很细的激光束,该激光束对做圆周运动的感光鼓进行轴向(垂直于纸面)扫描,由鼓面的左边缘向右边缘移动,当光束扫过鼓面时,半导体激光器中激光管不断地开通或关断:光束扫到要打印点的地方时,激光管开通;光束扫到非打印点的地方时(即空白处),激光管关断。激光扫描系统使激光束激光束扫完一行后,感光鼓旋转一个步距,同时,激光束又回到鼓面的左边缘,开始新的一行扫描,使鼓面开始接受新的一行载有信息的激光束。感光鼓在未被激光扫描之前,先在黑暗中充电,使鼓表曲均匀地沉积一层电荷,扫描时激光束对鼓表面有选择地曝光,被曝光的部分产生放电现象,未被曝光的部分仍保留充电时的电荷,这就形成了 “潜像”。随心鼓的圆周运动,“潜像” 部分通过装有碳粉盒的显像系统,使 “潜像” 部分(实际上是具有字符信息的区域)吸附上碳粉,达到“显影”的目的。当鼓上的字符信息区和打印纸接触时,由纸的背面施以反向的静电电荷,则鼓面上的碳粉就会被吸附到纸面上,这就是“转印”或“转写” 过程。最后经过定影系统就将碳粉永久性地粘在纸上。转印后的鼓面还留有残余的碳粉,故先要除去鼓面上的电荷,经清扫系统将残余碳粉全部消除,然后重复上述充电、曝光、显形、转印,定影等一系列过程
      • 印字过程:带电照相(曝光)、显影 (显像)、转印定影清除残像
        输入输出系统
    • 激光打印机性能
      • 输出速度快、噪音小,印字质量高
      • 激光打印机是非击打式硬拷贝输出设备,逐页输出
        • 页式输出设备的输出速度用每分钟输出的页数来表示(pages per minute,简称PPM)
      • 印字分辨率用每英寸像素点个数表示:(Dots per Inch, DPI)
  • 喷墨打印机 (串行非击打式打印机)
    • 主要组成:喷头、墨盒、清洁机构、字车、走纸机构、控制电路等
    • 印字原理:
      • 喷墨头后部的压电陶瓷受振荡脉冲激励,使喷墨头喷出具有一定速度的一串不连续、不带电的墨水滴。墨水滴通过充电电极时被充上电荷,其电荷量的大小由字符发生器控制。字符发生器可将字符编码转换成字符点阵信息。 由于各点的位置不同,充电电极所加的电压也不同,电压越高,充电电荷越多,墨滴经偏转电极后偏移的距离也越大,最后墨滴落在印字纸上。图中只有一对垂直方向的偏转电极,若垂直线段上某处不需喷点(对应字符在此处无点阵信息),则相应墨滴不充电,在偏转电场中不发生偏转, 而射入回收器中
        输入输出系统
      • 随机式喷墨打印机中,系统供给的墨滴只在需要印字时才喷出,不需要墨水循环系统,省去了墨水泵和收集槽等
      • 产生墨滴的机构,可采用压电式和热电式技术
      • 彩色喷墨打印基于三基色原理,分别喷射三种颜色墨滴,按一定比例混合出所要求的色彩
    • 特点
      • 噪音小,速度较快,喷墨机构简单、价廉,可靠性高
      • 防水性差,高质量打印需专用打印纸

终端设备

  • 显示终端:由显示器和键盘组成的独立完整的输入/输出设备,可通过标准通信接口接到远离主机的地方使用,终端的结构比显示器复杂,它能完成显示控制与存储键盘管理及通信控制等,还可完成简单的编辑操作

汉字处理设备

区位码

  • 在汉字的编码中,通常用两个字节表示一个汉字
  • 区位码将国标码中的字符按其位置划分成 94 个区每个区中 94 个字符,编入一个 94 × 94 94\times94 94×94 的二维表 (行就是“区”;列就是“位”),每个汉字都由区、位唯一定位,因此称为区位码
    • 例如:“万” 在 45 区 82 行,因此它的区位码为: 4582 4582 4582
      输入输出系统

国标码 (GB2312-80)

  • 国标码将区位码的“区”和“位”都分别加上 32: 国 标 码 = 区 位 码 + 2020 H 国标码=区位码+2020H 国标码=区位码+2020H
    • 例如:“万” 的区位码为 ( 45 , 28 ) (45,28) (45,28),国标码为 ( 45 + 32 , 82 + 32 ) = ( 77 , 114 ) = ( 4 D H , 72 H ) = 4 D 72 H (45+32,82+32)=(77,114)=(4DH,72H)=4D72H (45+32,82+32)=(77,114)=(4DH,72H)=4D72H

为什么要加上 32? -> GB2321 沿用了 ASCII 码中的前32个控制字符,因此需要把汉字编码向后偏移 32

汉字内码

  • 因为汉字编码通常采用两个字节,因此为了与西文字符编码相区别(西文的ASCII码的最高一位编码值为 0),表示一个汉字时,把两个字节的最高一位的编码值设定均为 1,则该编码集的最多编码数量为 128 × 128 128 × 128 128×128
  • 因此,国标码还不能直接在计算机上使用,需要每个字节都加上 128 128 128 ( 80 H 80H 80H),形成汉字内码,内码是用于汉字信息的存储、交换、检索等操作的机内代码;即
    机 内 码 = 国 标 码 + 8080 H = 区 位 码 + A 0 A 0 H 机内码=国标码+8080H=区位码+A0A0H 机内码=国标码+8080H=区位码+A0A0H
    • 例如,“万” 的汉字内码为 4 D 72 H + 8080 H = C D F 2 H 4D72H+8080H=CDF2H 4D72H+8080H=CDF2H

汉字输入编码

  • 输入编码是为了使用西文标准键盘把汉字输入到计算机中,其编码方法主要有数字编码、字音编码和字型编码等

汉字字模编码 (字形码)

  • 字模编码:以点阵方式描述汉字字型的代码,是汉字的输出形式
  • 字模点阵的信息量很大,需要占的存储空间大,点阵只能用来构成字库,而不能用于机内存储。字库中存储每个汉字的点阵代码,当显示输出时才检索字库,输出字模点阵,得到字形

  • 汉字显示输出过程:输入码→机内码→字形码→ 显示器
上一篇:STM32H743中的DCMI无法进入行中断和场中断问题


下一篇:基于ZYNQ的petalinux 2019.2 DMA驱动的移植