第三章 系统总线
3.1总线的基本概念
1、为什么要用总线
计算机系统的五大部件之间的互联方式有两种,一种是各个部件之间单独使用连线,称为分散连接,另一种是将各个部件连接到一组公共信息传输线上,称为总线连接。
2、什么是总线
3、总线上信息的传送
串行:一条数据线
并行:多条数据线,传输距离比较短,不然会产生线间干扰
4、总线结构的计算机举例
1、单总线结构
问题:总线争用现象严重,总线比较长,时延比较大
2、面向CPU的双总线结构
2、面向CPU的双总线结构
问题:从主存到I/O设备要打断CPU的计算
3、以存储器位中心的双总线结构
3.2总线的分类
分类标准
3.2.1片内总线
芯片内部的总线
eg:CPU芯片内部,寄存器与寄存器之间、寄存器与ALU之间等
3.2.2系统总线
计算机各个部件之间的信息传输线(CPU、主存、I/O设备各大部件之间)
1、数据总线:双向 与机器字长、存储字长相关
2、地址总线:单向 与存储地址、I/O地址有关(通常情况地址总线的的个数和地址单元的个数相关)
3、控制总线 有出,有入
3.2.3通信总线
用于计算机系统之间或者计算机系统与其它系统(如控制仪表、移动通信等)之间的通信
传输方式:串行通信总线、并行通信总线。
3.3总线特性及性能指标
3.3.1总线特性
1、总线物理实现
2、总线特性
- 机械特性:插头和插座的标准,形状,引脚个数、排列顺序、接头处的可靠接触等。
- 电气特性:传输防线?电平范围?
- 功能特性:每根传输线的功能:地址?数据?控制?
- 时间特性:信号的时序关系
3.3.2总线性能指标
- 总线宽度:数据线的根数
- 总线带宽:数据传输零,总线带宽=总线工作频率*总线宽度
- 标准传输率:每秒传输的最大字节数(eg.MBps)
- 时钟同步/异步
- 总线复用:地址线与数据线复用
- 信号线数:地址线、数据线和控制线的总和
- 总线控制方式:突发、自动、仲裁、逻辑、计数
- 其他指标:负载能力、电源电压、总线是否能扩展等
3.3.3总线标准
根据总线在计算机系统中的位置,可以分为
- 系统总线:与CPU直接相连,用于连接CPU与北桥芯片、或CPU与主存等
- 局部总线:不直接与CPU连接,通常是连接高速的北桥芯片,用于连接很多重要的硬件部件(如显卡、声卡)
- 设备总线、通信总线:通常由南桥芯片控制,用于连接计算机与计算机,或连接计算机与外部I/O设备
3.4总线结构
3.4.1 单总线结构
总线成为了系统的瓶颈
3.4.2 多总线结构
1、双总线结构
(1)以CPU为中心
(2)以存储器为中心
(3)
2、三总线结构
DMA:直接存储器访问
另一种三总线结构
问题:扩展总线上的外设有高速设备有低速设备,运行速度会被拖累
4、四总线结构
实现了高速设备和低速设备的分离
3.4.3总线结构举例
1、传统微型机总线结构
2、VL-BUS局部总线结构
实现了高速设备和低速设备的分离
3、PCI总线结构
若PCI总线驱动能力不足,可以扩展成多层PCI总线结构
3.5总线控制🧐
3.5.1总线判优控制
1、基本概念
- 主设备(模块):对总线有控制权
- 从设备(模块):响应从主设备发来的总线命令
- 总线判优控制:①集中式:A链式查询,B计数器定时查询,C独立请求方式、②分布式
2、链式查询方式
各个I/O设备的优先级是按电路的排列顺序有关的;对电路故障特别敏感;结构简单;增删设备容易;可靠设计容易实现;但是速度比较慢;因此用在一些微型计算机或者小的嵌入式系统中。
3、计数器定时查询方式
总线控制部件里面有一个计数器,这个计数器的值通过设备地址线向外逐个输出到各个I/O接口(检测是否发出了总线占用请求,如果没有,计数器加一传到下一个I/O接口)
优点:优先级次序确定灵活(可以设置时钟的初值,就可以控制优先级次序)
缺点:增加了控制线的条数 log2n
4、独立请求方式
不是顺序检测哪个I/O接口发出请求了,而是每个接口独立的发出请求,然后由排队器统一计算出的优先级选择一个I/O接口进行响应
需要的线数很多 2n
3.5.2总线通信控制(总线操作和定时)
1、目的
解决通信双方协调配合问题
总线周期:完成一 次总线操作的时间。
2、总线传输周期
(1)概念:是指主设备和从设备之间完成一次可靠的完整的通信所需要的时间
(2)四个阶段:
①申请分配阶段:主模块申请,总线仲裁决定
②寻址阶段:主模块向从模块给出地址和命令
③传数阶段:主模块和从模块交换数据
④结束阶段:主模块撤销有关信息
3、总线通信的四种方式
(1)同步通信:由统一的时标控制数据的传送
①同步式数据输入
总线传输周期是四个时钟信号;在第一个时钟信号上升沿要给出地址信号(主设备给出,egCPU),第二个时钟周期上升沿要给出命令信号,第三个时钟周期上升沿要给出数据信号(通过数据总线),在第四个时钟周期上升沿命令信号和数据信号可以撤销,第四个时钟周期结束的时候地址信号也可以撤销了。
同步式的数据输入一定要由定宽定距的时钟信号,并且在给定的时间点上要给出指定的信号。
②同步式数据输出
在同步通信中,主从模块用的是同一个时钟,因此主从模块是强制同步的,那对于速度不同的主从模块,必须要选择速度最慢的模块作为统一的时标来进行设计。因此应用在总线长度比较短(总线长度长了很难做到等长,到达设备后可能就不同步了),各个模块的速度相差不大的情况下使用。
(2)异步通信:采用应答的方式,没有公共的时钟标准
三次握手
(3)半同步通信:同步、异步相结合
同步:发送方用系统时钟前沿发信号,接收方用系统时钟后沿判断、识别
异步:允许不同速度的模块和谐工作,增加一条等待响应信号
eg.输入数据为例的半同步通信时序
同步、异步、半同步通信的共同点:
在一个总线传输周期(以输入数据为例)
- 主模块发地址、命令 占用总线
- 从模块准备数据 不占用总线,总线空闲,浪费!!!
- 从模块向主模块发数据 占用总线
(4)分离式通信:充分挖掘系统总线每个瞬间的潜力,解决了总线空闲的问题
一个总线传输周期中
分离式通信的特点:
- 各模块有权申请占用总线
- 采用同步方式通信,不等对方回答
- 各模块准备数据时不占用总线
- 总线被占用时,无空闲
数据传输率(波特率):单位时间内传送二进制数据的位数,单位bps
有效数据传输率(比特率):单位时间内传送的有效数据的位数,单位bps
第四章 存储器
4.1概述
4.1.1存储器分类
1、按存储介质分类
- 半导体存储器:TTL(晶体管):集成度低、功耗高、速度快,MOS(金属氧化物半导体):集成度高,功耗低(现代一般用MOS);易失
- 磁表面存储器:磁头,磁载体;原理是磁化;通常一个扇区512字节
- 磁芯存储器:core memory,根据磁场的方向保存0,1;磁芯流过电流被磁化,有特定的方向。需要硬磁材料。环状元件。
- 光盘存储器:激光、磁光材料
2、按存取方式分类
(1)存取时间与物理地址无关(随机访问)
- 随机存储器RAM:可读可写
- 只读存储器ROM:程序执行过程中只读
- 顺序存取存储器 磁带
- 直接存取存储器 磁盘
①主存储器
- RAM:又分为静态RAM、动态RAM
- ROM:又分为MROM、PROM、EPROM、EEPROM
③高速缓冲存储器(Cache):一般用静态RAM来做,速度比主存还快,可以用来作为主存和CPU之间的缓冲。
④辅助存储器:磁带磁盘光盘等
4.1.2存储器的层次结构
1、存储器三个主要特性的关系
速度、容量、价格(/位)
需要 高速度、大容量、低价格。要把多种存储介质用软件、硬件或者软硬件相结合的形式结合起来,以求达到高速度,大容量,低价格的整体特点。
2、缓存-主存层次和主存-辅存层次🤐操作系统虚拟存储器章节!
缓存-主存:硬件方法连接成一个整体,解决速度问题(缓存Cache:程序的局部性原理)
主存-辅存:软硬件(OS操作系统)相结合连接成一个整体,解决容量问题
4.2主存储器
4.2.1概述
1、主存的基本组成
2、主存和CPU之间的联系
3、主存中存储单元地址的分配
假设存储字长是32位,主存的编址单位是字节(一个字节是8位),每一个字节都有一个地址,下面的那个数据一共是32位(16进制的8位是2进制的32位),正好保存在一个存储单元当中。这个数据在存储单元中的保存方式如下
一个字包含了四个字节,一个字节占一个字节地址。这个字有32位,所以是4个字节为一个字
如果两个计算机所用的存储方式不一样,那么要在进行通信的时候进行调整。
若存储器有24位地址线,按字节寻址,224=16MB;若存储字长是16位,按字寻址,寻址范围是8MW(W是Word,指字,16位);若字长是32位,按字寻址,寻址范围是4MB
4、主存的技术指标
(1)存储容量:主存存放二进制代码的总位数
存储容量=存储单元数*存储字长 (也可以用字节来表示,只要除以8即可)
(2)存储速度
- 存取时间:从存储器给出地址到得到稳定的数据输出/输入的时间(即访问时间),因此还可以分成读出时间,写入时间
- 存取周期:连续两次独立的存储器操作(读或写)所需的最小的时间间隔。还可以分为读周期/写周期
- 存储器的带宽 位/秒
4.2.2半导体存储芯片简介
1、基本结构
半导体芯片的<stron>一般有两种,(芯片选择信号,低电平有效),(芯片使能信号,低电平有效) </stron>
片选线的作用:芯片扩展
此时片选信号可以让某一个芯片/某一组芯片被选中,同时进行工作
读/写控制线:①一条控制线 (低电平有效,低电平写,高电平读)
②两条控制线(低电平有效,允许写)、(低电平有效,允许读)
2、译码驱动方式
- 线选法
- 重合法
有行地址,列地址;eg.还是1M的存储单元,行地址10位,列地址10位,加起来只有2*1010=2k条线。大大减少了线的数量
4.2.3 随机存取存储器RAM
- 保存0、1的原理?
- 基本单元电路(存储一位0、1的电路)的构成?
- 对单元电路如何读入写出?
- 典型芯片的结构?
1、静态RAM(SRAM)
保存0、1的原理是双稳态触发器;基本单元电路的构成是6个触发器;典型芯片结如2114
(1)静态RAM基本单元电路
(2)读操作
(3)写操作P77
(4)静态RAM芯片举例
①Intel2114
实现了一下选中四列,给出一个列地址,其中的四列会被同时选中;布局成了64*64的阵列,包括64行,64列。每一个列选信号控制4列,64列分成四组,每一组中的相同数字列是被同时控制的。
2、动态RAM(DRAM)
保存0、1的原理是电容Cg,有电荷为1,否则是0
(1)动态RAM基本单元电路
①三管 ②单管
①三管:读出与原存信息相反,写入与输入信息相同。三极管栅极高电平(1)有效,即导通
②单管:读出时数据线有电流为“1”,无电流为“0”;写入时Cs充电为1,放电为0
(2)动态RAM芯片举例
①三管动态RAM芯片(Intel 1103)
刷新放大器的作用:防止电容漏电导致的信息消失,用刷新放大器可以重现信息;每经过一段时间,都要对给定的存储单元上的信息进行刷新
②单管动态RAM4116(16K1位)
RAS:行选通信号;CAS:列选通信号;WE:读写控制信号
7根地址线分两次进行输入,第一次输入的7位作为列地址放入列地址缓存器;第二次输入的7位作为行地址放入行地址缓冲器。
读放大器是一个跷跷板电路,左右两侧0,1相反;对于读操作:0-63行的存储单元,电容有电读出是0,没电读出是1;64-128行的存储单元,有电读出是1,没电读出是0;对于写操作:0-63行的存储单元,写入0是电容充电,写入1是电容放电;64-128行的存储单元,写入0是电容放电,写入1是电容充电
(3)动态RAM时序
(4)动态RAM刷新
刷新与行地址有关,每一次刷新刷新一行的数据,而不是某一个存储单元的数据
①集中刷新(假设存取周期为0.5us)以128*128矩阵为例
把刷新的时间称为“死区”,为0.5us*64us;“死时间率”为 128/4000=3.2%
②分散刷新(存取周期为1us)以128*128矩阵为例
③分散刷新与集中刷新相结合(异步刷新)以128*128的存储芯片为例(存取周期为0.5us)若每隔15.6us刷新一行
每行每隔2ms刷新一次,死区为0.5us,但如果将刷新安排在指令译码阶段,则不会出现死区。
3、动态RAM和静态RAM的比较
| SRAM(常用于做Cache) | DRAM(常用于做主存) |
存储原理 | 触发器 | 电容 |
集成度 | 低 | 高 |
芯片引脚 | 多 | 少 |
功耗 | 大 | 小 |
价格 | 高 | 低 |
速度 | 快 | 慢 |
刷新 | 无 | 有 |
4.2.4只读存储器ROM
早期的只读存储器:只能用不能改,厂家写好了内容
改进1----用户可以自己写---一次性
改进2---可以多次写---要能对信息进行擦除
改进3---电可擦写---特定设备
改进4---电可擦写---直接连接到计算机即可
1、掩膜ROM(MROM)
行列交叉处有MOS管为1,没有为0
2、PROM(一次性编程)
熔丝断为0,未断为1
3、EPROM(多次性编程)
N型沟道浮动栅MOS电路
紫外线全部擦洗
价格便宜,集成度高
4、EEPROM(多次性编程)
电可擦写的可编程的ROM,可以局部擦写
5、Flash Memory(闪存型存储器)
很快,已经具备RAM的一些功能
4.2.5存储器与CPU的连接😀
1、存储器容量的扩展
(1)位扩展(增加存储字长)
把两个芯片当成一个芯片来用,因此片选CS和读写控制信号WE必须连在一起
(2)字扩展(增加存储字的数量)
两个芯片不同时工作,用片选线CS来区分。
(3)字、位同时扩展
eg.用8片1K*4位的存储芯片构成4K*8位的存储器
2、存储器与CPU的连接
(1)基本方法
①地址线的连接
②数据线的连接
③读/写命令线的链接
④片选线的连接(重点、灵活)
⑤合理的选择存储芯片
⑥其他:时序,负载
(2)举例
eg4.1
eg4.2
重点:CPU的地址线一定要全部用上,要么输入到存储芯片的地址线上,要么一定要出现在片选的输入端,不要忘了MREQ也必须输入。用户程序区用RAM,系统程序区用ROM
4.2.6存储器的校验
- 为什么要对存储器的信息进行校验?
- 为了能够校验出信息是否正确,如何进行编码?
- 纠错能力或检错能力与什么因素有关?
- 校验出信息出错后是如何进行纠错?
- 除了教材上的校验码,还有那些容错编码?原来是啥?
1、合法代码集合
冗余码
编码的检测能力和纠错能力和什么有关呢?和任意两组合法代码之间二进制位的最少差异数有关。把这个最少差异数定义为编码的最小距离L。
L-1=D+C
L---编码最小距离;D-----检测错误的位数;C-----纠正错误的位数;一般D>=C
校验位应该放在2n的地方;得到的二进制的数值对应的十进制数字就是出错的位置
2、汉明码的组成
汉明码采用分组的奇偶校验;汉明码的分组是一种非划分的方式,组和组之间是有重叠的。
分组的规律:
汉明码的组成需要增添跟组数相同数量位检测位 2k>=n+k+1
检测位的位置应该放在2n
检测为的取值(偶校验):出错为1,没错为0
eg.C1检测的g1小组包含第1,3,5,7,9,11,...位置的二进制编码为X...XXX1
C2检测的g2小组包含第2,3,6,7,10,11,...位置的二进制编码为X...XX1X
C4检测的g3小组包含第4,5,6,7,12,13,...位置的二进制编码为X...X1XX
C8检测的g4小组包含第8,9,10,11,12,13,...位置的二进制编码为X...1XXX
gi小组独占一个位置 2i-1,这个位置放校验位
每两个小组共同独占一个位置,每三个小组共同独占一位...
3、汉明码的纠错过程
形成新的检测位Pi P4P2P1:检测每个位置代表的小组奇偶数量是否合法
校验位的错误可以不纠正
汉明编码的最小编码距离是3
4.2.7提高访存速度的措施
存储墙,是影响CPU的速度的重要因素
- 采用高速器件
- 采用层次结构 Cache-主存
- 调整主存结构
1、单体多字系统
增加存储器的带宽
2、多体并行系统
(1)高位交叉 顺序编址
问题:程序是顺序存放的,所以会造成一个存储体很繁忙,其他的存储体空闲;只适用于存储体容量扩展,不适用于带宽的增大。
(2)低位交叉
轮流的对四个地址块进行存取,可以有效提高存储器的带宽,相当于以流水的方式来访问不同的存储体
在不改变存取周期的前提下,增加存储器的带宽
eg例题
高位交叉主要用于存储器容量的扩展;低位交叉用于存储器带宽的增加。
3、高性能存储芯片
(1)SDRAM(同步DRAM)
在系统时钟的控制下进行读出和写入:CPU无须等待
(2)RDRAM
主要解决存储器带宽的问题
(3)带Cache的DRAM
4.3高速缓冲存储器
4.3.1概述
1、问题的提出
CPU的速度和主存的速度相差太大。解决CPU“空等”的现象;依靠程序访问的局部性原理。分为时间的局部性:当前正在使用的指令和数据在不久的将来很可能要再用到;空间的局部性:现在正在使用的指令和数据相邻的指令和数据在不久的将来跟可能会用到。
2、Cache的工作原理
(1)主存和缓存的编址
主存和Cache按块存储,块的大小相同,B为块的长度;主存的容量要远远大于缓存的容量,即M>>C两者之间的信息交换以块为单位,块内地址完全相同,不需要任何转换;
(2)命中与不命中
主存中只有部分的块调入了缓存中。
①命中:主存块调入缓存,主存块与缓存块建立了对应的关系;用标记记录与某缓存块建立了对应关系的主存块号。
②未命中:主存块未调入缓存,主存块与缓存块未建立对应关系
(3)命中率:CPU欲访问的信息在Cache中的比率
命中率与Cache的容量与块长有关,容量大,块长较长,命中率比较高
一般每块可取4-8个字;块长取一个存取周期内从主存调出的信息长度。
(4)Cache--主存系统的效率
效率e与命中率有关
设Cache命中率是h,访问Cache的时间为tc,访问主存的时间为tm
最小值是tc/tm,最大值是1,上式是CPU可以同时访问内存和Cache的情况下得到的平均访问时间,若是每次都先访问Cache,只有当Cache没有找到信息之后再去访问内存,那么所需要的平均访问时间是tc+(1-h)*tm
3、Cache的基本结构
地址的映射和变换:
①映射机构:给出了主存的块可以放到Cache的哪些块当中
②变换机构:主存的地址(块号)转换成Cache的地址(块号)
4、Cache的读写操作
(1)读
(2)写:Cache和主存的一致性
①写直达法(写通过Write through)
写数据时既写入Cache又写入主存
写操作时间就是访问主存的时间,Cache块退出时不需要对主存执行写操作,更新策略比较容易实现
问题:可能会导致CPU对一个主存块进行反复的读写操作,浪费时间,降低速度
②写回法(write back)
写操作时只把数据写入Cache而不写入内存
当Cache数据被替换出去时才写回主存
写操作时间就是访问Cache的时间,Cache块退出时,被替换的块需要写回主存,增加了Cache的复杂性。
问题:并行的计算机系统缓存内容不一致
5、Cache的改进
(1)增加Cache的级数
片载(片内)Cache、片外Cache
(2)统一缓存和分立缓存
分成指令Cache和数据Cache
与指令执行的控制方式有关,是否流水
当采用超前控制或流水线控制方式时,一般都采用分立缓存
4.3.2Cache--主存的地址映射(重点)
1、直接映射
CPU给出一个要访问的主存的地址,这个地址分成区号(对应主存字块标记)、块号(对应Cache字块地址)、块内偏移地址(对应字块内地址)
在CPU对Cache进行访存时,给出主存的地址,只要跟Cache中对应的字块地址对比其主存字块标记是否一致就可以判断是否命中。
这种映射使每个缓存块i可以与多个主存块对应,而每个主存块j只能和一个缓存块对应;因此Cache的利用率比较低
2、全相联映射
主存储器的字块可以放到Cache的任何一个字块当中
这种方法提高了Cache的利用率,但是在CPU要对Cache进行访存时,要将给出的主存地址的主存字块标记与Cache的所有标记位进行对比,电路复杂,速度比较慢。参与比较的位数也比较长(除了块内地址都是标记位)
3、组相联映射
把Cache中若干块(2,4,8)分成一组,把主存储器也分区,主存储器每个区包含的块数与Cache的组数相同。每个区的第零块可以放到Cache的第零组的任意块中,每个区的第一块可以放到Cache的第一组...以此类推
这种方法使得内存中的每个块有多个Cache中的块可以映射,且根据主存的地址只要确定他在哪个区的多少块,根据这个字块标记比较对应的Cache的组中的块比较就行。
这个映射用取模来实现;某一主存块j按模Q映射到缓存Cache的第i组中的任意一块(这实际上是一种直接映射和全相联的结合) i=j mod Q
这种方法电路结构比较简单,速度也比较快,Cache的利用率也比较高。
当把Cache中每一块单独分成一组,则组相联退化成直接相联(直接映射),当把Cache中的所有块看成一组,则是全相联
靠近CPU:要求速度快,用直接映射或者路数比较少的组相联
中间一些层次:组相联
距离CPU最远:对速度要求低,对Cache利用率要求高,用全相联或路数多的组相联
直接相联(直接映射) | 某一主存块只能固定映射到某一缓存块 | 不灵活,Cache利用率低,速度快 |
全相联 | 某一主存块可以映射到任意存储块 | 成本高,Cache利用率高,速度慢 |
组相联 | 某一存储块可以映射到一缓存组存储块 | 比较灵活,Cache利用率比较高,速度比较快 |
4.3.3替换算法
当Cache已经被占用了的时候,哪个Cache块要退出?
1、先进先出(FIFO)算法
2、近期最少使用(LRU)算法
4.4辅助存储器(非重点)
4.4.1概述
1、特点
2、磁表面存储器的技术指标
(1)记录密度 道密度 位密度
(2)存储容量
(3)平均寻址时间:寻道时间+等待时间
辅存的速度:包括寻址时间和磁头读写时间
(4)数据传输率
(5)误码率
4.4.2磁记录原理和记录方式
1、磁记录原理
磁化方向不同
2、磁记录方式
4.4.3硬磁盘存储器
1、硬磁盘存储器的类型
(1)固定磁头和移动磁头
(2)可换盘和固定盘
2、应磁盘存储器结构
(1)磁盘驱动器
(2)磁盘控制器:实质上是主机与磁盘驱动器之间的接口,对主机通过总线进行连接,对硬盘实现直接控制
(3)盘片:由硬质铝合金材料制成
4.4.4软磁盘存储器
1、概述
| 硬盘 | 软盘 |
速度 | 高 | 低 |
价格 | 高 | 低 |
磁头 | 固定/活动;浮动 | 活动;接触盘片 |
盘片 | 固定盘、盘组大部分不可更换 | 可换盘片 |
环境要求 | 苛刻 | 不苛刻 |
4.4.5光盘存储器
1、概述
采用光存储技术 第一代采用非磁性介质,不可擦鞋,第二代采用磁性介质,可擦写
2、光盘的存储原理
只读型和只写一次型 热作用
可擦写光盘 热磁效应
第五章 输入输出系统
5.1 概述
5.1.1 输入输出系统的发展概况
1、早期
外部设备是分散连接
CPU和I/O设备 串行工作,程序查询方式
2、接口模块和DMA阶段
总线连接
CPU和I/O设备并行工作:①中断方式②DMA方式
接口不仅可以实现数据的缓冲,还可以完成串/并转换,还可以使多台I/O设备分时占用总线,使I/O设备也能并行工作,还有接口可以满足中断请求处理的要求
3、具有通道结构的阶段
4、具有I/O处理机的阶段(相当于一个处理器了)
5.1.2 输入输出系统的组成
1、I/O软件(OS学具体的)
(1)I/O指令:是CPU指令的一部分
操作码 | 命令码 | 设备码 |
(2)通道指令:通道自身的指令
指出首地址、传输字数、操作命令
通道下面还可以连接多个子通道
通道程序提前编制好放在主存中,在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列的通道指令,代替CPU对I/O设备进行管理。
2、I/O硬件
(1)设备 I/O接口
(2)采用通道方式:设备 设备控制器 通道(设备控制器连接子通道,子通道连接通道)
5.1.3 I/O设备与主机的联系方式
1、I/O端口编址方式
I/O端口是指接口电路中可被CPU直接访问的寄存器,主要有数据端口、状态端口和控制端口;通常CPU对数据端口可以执行读写操作,但对状态端口只能执行读,对控制端口只能执行写。
(1)统一编制(又叫存储器映射方式) 地址码和内存统一 (内存空间比较大的时候统一编址)
优点:直接用取数、存数指令,不需要专门的I/O指令,程序设计灵活性高;端口有较大的编制空间,读写控制逻辑电路简单
缺点:占用了内存地址空间,使主存地址空间变小;外设的寻址时间长(地址线位数多,地址译码慢)
(2)不统一编址(单独编址、独立编址) 有专门的I/O指令(eg.Intel就有IN、OUT的专门I/O指令)
优点:使用专用I/O指令,程序可读性好;I/O地址位数少,地址译码速度快;I/O端口的地址不占用主存地址空间;
缺点:I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差;需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性
2、设备选址
用设备选择电路识别是否被选中
3、传送方式
(1)串行(USB)
(2)并行
4、联络方式
(1)立即响应
(2)异步工作采用应答信号
①并行
②并行
(3)同步工作采用同步时标
5、I/O设备与主机的连接方式
(1)辐射式连接(分散连接)
每台设备都配由一套控制线路和一组信号线
不利于增删设备,不便于设备的移植
(2)总线连接
便于增删设备
5.1.4 I/O设备与主机信息传送的控制方式
1、程序查询方式
CPU和I/O串行工作,I/O未准备好时CPU原地踏步
CPU在中间,一边连接I/O设备一边连接内存;在读入数据的时候,先读入CPU,再由CPU传输到内存
可以用于一些慢速的外设
程序查询也可以分为两种形式,一种是定时查询:eg每秒对鼠标进行30次查询,查询外的时间CPU还可以干自己的事情(但要保证数据不会丢失的前提,即查询的频率不能低);另一种是独占查询,即CPU100%的时间都用来等待外设的状态好。
2、程序中断方式
I/O工作:①自身准备(CPU不查询)②与主机交换信息(CPU暂停现行程序)
没有踏步等待现象,而是中断现行的程序
CPU和I/O部分的并行工作(因为传输过程中还需要CPU,而且中断程序要保护现场,恢复现场,消耗CPU资源)
CPU在中间,一边连接I/O设备一边连接内存;在读入数据的时候,先读入CPU,再由CPU传输到内存
3、DMA方式
在内存和I/O之间有一条直接数据通路
周期窃取(周期挪用),CPU把系统总线的使用权(一个存取周期或几个存取周期)放给DMA,由DMA直接进行I/O设备和内存之间的数据交换;在这一个存取周期中,CPU不能占用总线(不能访存),但别的运算都可以做
CPU和I/O并行工作
4、通道方式
5、I/O处理机方式
4&5自己看计算机体系结构
I/O系统的自治力越来越强
5.2 I/O设备(书上多多多多多,只学了点简介)
5.2.1概述
大概分为3类
1、人机交互设备
键盘鼠标打印机显示器
2、计算机信息存储设备
磁盘光盘磁带
3、机-机通信设备
5.2.2输入设备
1、键盘
判断哪个键按下,将此翻译成ASCII码(编码键盘法)
2、鼠标
3、触摸屏
5.2.3输出设备
1、显示器
(1)字符显示(字符发生器) (2)图形显示(主观图象) (3)图像显示(客观图像)
(2)显示存储器(即显存)(重点):也叫刷新存储器,VRAM
VRAM的容量=分辨率*灰度级的位数
VRAM的带宽=VRAM的容量*刷新频率(即,每秒钟能存的数据量的大小)
现代计算机的VRAM一般要比上述的最小容量&带宽要大很多,因为显存除了作为当前显示帧的缓存,还会用于保存即将渲染的图像数据。
集成显卡计算机中,通常分配一片内存作为显存
(3)阴极射线管CRT显示器
①字符显示器
显示字符的方法以点阵为基础,有字符的显示码,字形码。先把字符的机内码存放在显存VRAM中(eg英文字符等就是ASCII码),对应字形码存放在字符发生器的ROM中,再让阴极射线管在相应的点阵打出需要的字符。
②图形显示器:通常是矢量图形
分为光栅扫描显示器、随即扫描显示器
③图象显示器
(4)LCD显示器
(5)LED显示器
2、打印机
(1)按印字原理分
①击打式(针式打印机、点阵式、逐字/逐行 eg发票的打印)
设备成本低、印字质量好,噪声大,速度慢,防伪性好
②非击打式(喷墨、激光)
速度快,噪声小
(2)按工作方式分
①针式打印机
擅长多层复写打印,如上击打式的特点
②喷墨式打印机
打印噪声小,可以实现高质量彩色打印,速度快,但防水性差
③激光打印机
打印质量高、速度快、噪声小、贵,只想要求高
5.2.4 外存储器(王道补充)
主要使用磁表面存储器:读取和写入数据的时候,每次只能传送1bit,只能串行传输;
磁表面存储器的优点:
①存储容量大,位价格低
②记录介质可以重复使用
③记录信息可以长期保存而不丢失,甚至可以脱机存档
④非破坏性读出,读出时不需要再生
缺点:
①存取速度慢
②机械结构复杂
③对工作环境要求高
外存储器既可以作为输入也可以作为输出
1、磁盘存储器
(1)磁盘设备的组成
①存储区域:一块硬盘含有若干个记录面,每个记录面划分为若干条磁道,而每条磁道又划分为若干个扇区,扇区(也叫做块)是最小的数据传送单位
②硬盘存储器
(2)磁盘的性能指标
①磁盘的容量:一个磁盘所能存储的字节总数;有非格式化容量和格式化容量之分。非格式化容量要比格式化容量大。
②记录密度:指盘片单位面积上记录的二进制的信息量
- 道密度:沿磁盘半径方向上单位长度上的磁道数
- 位密度:一条磁道单位长度上能记录的二进制代码数
- 面密度:道密度和位密度的乘积
注意:磁盘所有磁道记录的信息量一定是相等的,并不是圆越大信息越多,所以每个磁道的位密度都不同。
一个磁盘可能有多个盘面,盘面可以是双面的
③平均存取时间(重点)
平均存取时间=寻道时间(磁头移动到目的磁道)+旋转延迟时间(磁头定位到所在扇区)传输时间(传输数据所花费的时间)
寻道时间一般会给,旋转延迟时间可以取转半圈的时间(是一个数学期望),传输时间用转速来算一下就行;有的时候还要求加上磁盘控制器的延时时间。
④数据传输率
磁盘存储器在单位时间内向主机传送数据的字节数
假设磁盘的转速为r(转/秒),每条磁道容量为N个字节,则数据传输率Dr=rN
(3)磁盘地址
主机向磁盘控制器发送寻址信息,磁盘的地址如下
(4)磁盘的工作过程
磁盘的主要操作是寻址、读盘、写盘。每个操作都对应一个控制字(就是I/O指令中的命令码)硬盘取控制字,执行控制字
硬盘属于机械式部件,读写操作是串行的,所以必须加并串转换电路。
2、磁盘冗余阵列RAID(看王道)
将多个独立的物理磁盘组成一个独立的逻辑盘(类似第三章低位交叉编址的多体存储器)提高存取速度。
RAID数越多,可靠性越高;RAID0没有容错能力,RAID1有容错能力但容量减少一半
3、光盘存储器
存储密度高,携带方便,成本低,容量大,存储期限长,容易保存等。
光盘类型 CD-ROM:只读;CD-R:只可写入一次;CD-RW:可读可写光盘,重复读写;DVD-ROM:高容量的CD-ROM;
4、固态硬盘
用Flash Memory,右E2PROM发展而来
5.2.5其他
1、A/D、D/A转换
2、终端 由键盘和显示器组成
3、汉字处理
5.2.6多媒体设备
关键技术是数据压缩解压缩,编码技术,图象语音等的识别。
5.3 I/O接口
5.3.1概述
又叫做I/O控制器设备控制器。负责协调主机于外部设备之间的数据传输
1、设置接口的目的
(1)实现设备选择
(2)数据缓冲达到速度匹配
(3)串并转换
(4)实现电平转换
(5)传送控制命令
(6)反应设备的状态(“忙、就绪、中断请求)
接口和主机之间并行传输,外部设备与接口之间有可能是串行传输的
5.3.2接口的功能和组成
1、总线连接方式的I/O接口电路
包括:设备选择线、数据线、命令线、状态线
2、接口的功能和组成
功能 | 组成 |
选址 | 设备选择电路 |
传送命令字(也成为控制字) | 命令寄存器、命令译码器 |
传送数据 | 数据缓冲寄存器 |
反应设备状态 | 设备状态标记 |
需要的触发器和功能
触发器 功能 完成触发器D 是否准备完成 D=1准备工作完成 工作触发器B 外部设备是否忙 B=1在忙 中断请求触发器INTR
屏蔽触发器MASK MASK=1为不能发出中断请求
把I/O接口中的各种寄存器称为I/O端口
3、I/O接口的基本组成
袁春风版本的I/O接口组成(更符合近些年的考题)
5.3.3接口类型
1、按数据传送方式分类
并行接口、串行接口
2、按功能选择的灵活性分类
可编程接口、不可编程接口
3、按通用性分类
通用接口、专用接口
4、按数据传送的控制方式分类
中断接口(又叫程序型接口、连接速度较慢的I/O设备)、DMA接口
5.4 程序查询方式
5.4.1程序查询方式的流程
1、查询流程
2、程序流程
(1)保存寄存器内容
5.4.2程序查询方式的接口电路
5.5程序中断方式
5.5.1 中断的概念
关中断指令和开中断指令可以帮助实现原子操作;
非屏蔽中断:关中断时也会被相应(如:掉电)
可屏蔽中断:关中断时不会被响应
每个中断源向CPU发出中断请求的时间是随机的,为了记录中断事件并区分不同的中断源,中断系统需要对每个中断源设置中断请求标记触发器INTR,为1时表示发出中断请求;这些触发器可以组成中断请求标记寄存器,该寄存器可以集中在CPU中,也可以分散在各个中断源中。
5.5.2 I/O中断的产生
5.5.3 程序中断方式的接口电路
1、配置中断请求触发器INTR和中断屏蔽触发器MASK
(1)INTR=1,有中断请求;MASK(Q端输出)=1,屏蔽所有的中断请求
(2)要进行数据传输时,发出中断请求(即D=1)
2、排队器(优先级、中断判优)
既可以硬件实现,也可以软件实现
优先级设置:
- 硬件故障中断属于最高级,其次是软件中断
- 非屏蔽中断优于可屏蔽中断
- DMA请求优于I/O设备传送的中断请求
- 高速设备优于低速设备
- 输入设备优于输出设备
- 实时设备优于普通设备
(1)硬件实现排队:排队电路
①链式排队器
此时在有中断请求的所有的INTP中中断请求最高的(即应该被识别成发出中断的)是INTPn'中一连串的1中的最后一个;
再筛选出这个中断请求的I/O设备(与原来的INTRn与非再取非)只有当中断请求输出和中断请求都是1的时候,才是发出了有效的中断请求
(2)软件实现:查表(第八章)程序查询,很慢
3、中断向量地址形成部件(找到中断服务程序的入口地址)
寻找中断服务程序的入口地址
(1)软件产生(第八章)
(2)硬件向量法:由硬件产生向量地址,再由向量地址找到入口地址
①中断号:中断的编号
②中断向量:可以生成中断服务程序的入口地址;有的时候也可以指程序状态字
③向量地址(也叫做中断类型号):中断向量保存的内存单元的地址
向量地址指出了中断向量的主存地址,中断向量指出了中断服务程序的入口地址
排队器输出只有一位是高电平,其他都是低电平,有多少中断源,(或者说有多少中断服务程序)就对应了排队器有多少根输出的线;
向量地址指出了中断服务程序的入口地址,或者可以跳转到中断服务程序的跳转指令的地址;所以向量地址和中断服务程序地址不是一个概念,需要加以区分。
4、程序中断方式接口电路的基本组成
5.5.4 I/O中断处理过程
1、CPU响应中断的条件和时间
(1)条件
允许中断触发器EINT=1;可以用开中断指令将EINT置为1,关中断指令将EINT置为0,或者硬件自动复位。
(2)时间
当D=1(随机)且MASK=0时,在每条指令执行阶段的结束前,CPU发出中断查询信号(将INTR置1)
2、I/O中断处理过程(可以看看网课,注意理解)
5.5.5 中断服务程序流程
1、中断服务程序的服务程序流程
(1)保护现场
①程序断点的保护(保护指令的地址):中断隐指令(其实是由硬件完成的,不是真正的指令,是在中断服务程序执行之前执行的)
- 中断隐指令的主要任务:关中断、保存断点、引出中断服务程序
②寄存器内容的保护:进栈指令;(也可以保存在内存中,或者转存到空的寄存器中,只要可以恢复就可以)
(2)中断服务
对不同的I/O设备具有不同内容的设备服务
(3)恢复现场
若保护时是用的进栈指令,那恢复就用出栈指令;若存在内存之类的,要用取数等指令
(4)中断返回
返回到原来的断点
2、单重中断和多重中断
单重中断:在执行中断服务程序的时候,不能再执行别的中断服务程序
多重中断:中断嵌套
3、单重中断和多重中断的服务程序流程
屏蔽字:应该让高速设备的中断不能被低速设备的中断而中断;在每个中断源都加一个屏蔽触发器,一般用1表示屏蔽,0表示正常申请,每个屏蔽字至少有一个1(至少能屏蔽自己的中断)
4、主程序和中断服务程序抢占CPU
在宏观上,CPU和I/O设备实现了并行的工作;
在微观上,CPU要暂停当前的主程序的运行来响应I/O中断
5.6 DMA方式
DMA:direct memory access 直接存储器访问
5.6.1 DMA方式的特点
1、DMA和程序中断两种方式的数据通路
表现在:程序中断方式还是需要CPU为中介来进行内存和I/O设备之间的数据交换,而DMA方式不需要CPU而是可以直接在内存和I/O设备之间进行数据交换
2、DMA与主存交换数据的三种方式
(1)停止CPU访问主存
CPU完全放弃总线的控制权,I/O和内存进行数据传输
控制简单,但CPU处于不工作状态(无法从内存中取出指令)或保持状态(有一部分指令在Cache中了,可以先执行);
未充分发挥CPU对主存的利用率:I/O设备和主存之间一个字一个字的传送数据,传输的间隔会比较大,这个间隔很可能会超过一个存取周期。
(2)周期挪用(周期窃取):这里的周期指的是内存访存周期(两次连续存取之间的间隔)DMA窃取一个或几个主存周期
DMA访问主存有三种可能
- CPU此时不访存:总线控制权直接交给DMA
- CPU正在访存:DMA等待,不能抢占
- CPU和DMA同时请求访存:此时CPU将总线控制权让给DMA(因为DMA上连接的都是高速设备,不响应的话有可能会造成数据丢失)
(3)DMA与CPU交替访问内存(实用性不强)
适用于CPU的工作周期比主存存取周期长的情况
把CPU工作周期分为C1和C2,其中C1专供DMA访存,C2专供CPU访存;不需要申请建立和归还总线的使用权
5.6.2 DMA接口的功能和组成
1、DMA接口功能
(1)向CPU申请DMA传送
(2)处理总线控制权的转交
(3)管理系统总线,控制数据传输
(4)确定数据传送的首地址和长度、修正传输过程中数据的地址和长度
(5)DMA传送结束时,给出操作完成信号
2、DMA接口组成
5.6.3 DMA的工作过程
1、DMA传送过程
预处理、数据传送、后处理
(1)预处理
通过几条输入输出指令预置如下的信息
- 通知DMA控制逻辑的传输方向(入/出)
- 设备地址→DMA的DAR
- 主存地址→DMA的AR
- 传送字数→DMA的WC
(3)数据传送过程(输入)
(4)数据传送过程(输出)
(5)后处理(由中断服务程序完成)
校验送入主存的数是否正确
是否继续用DMA
测试传送过程是否正确,错则转诊断程序
2、DMA接口与系统的连接方式(类似于总线连接方式!可以类比来学!)
(1)具有公共请求线的DMA请求(类似于总线的串接连接方式!)
所有DMA采用串接的方式,越靠近CPU的DMA优先级越高。需要的总线数目少,但对硬件容错性差。
(2)独立的DMA请求(类似于总线的独立请求方式!)
(3)类比总线还有计数器查询方式
3、DMA方式与程序中断方式的比较
| 中断方式 | DMA方式 |
数据传送 | 程序 程序的切换→保护和恢复现场 | 硬件 CPU只需要进行预处理和后处理 |
响应时间 | 指令执行结束 | 存取周期结束 |
处理异常情况 | 能 | 不能 |
中断请求 | 传送数据 | 后处理 |
优先级 | 低 | 高 |
5.6.4 DMA接口的类型
1、选择型
在物理上连接多个设备,但在逻辑上只允许连接一个设备
适用于数据传送率很高的设备
2、多路型
在物理上连接多个设备,在逻辑上也允许连接多个设备同时工作;但是只是数据处理(准备)阶段,DMA进行数据传送时也只有一个设备可以进行数据传送。
适用于同时为多个数据传输率不十分高的设备服务