计算机组成原理
(视频教程点这里)
文章目录
一、计算机概述
1)计算机硬件
- 计算机硬件组成
(实际上,MAR和MDR都被做在CPU里)
- 计算机硬件结构图
2)计算机工作过程
3)计算机系统体系结构
4)计算机三种级别语言
5)计算机性能指标
- CPU性能指标
- 系统整体性能指标
-
电脑性能问答
6)计算机中的编码
- ASCII码
-
汉字编码(有多种,这里以GB 2312-80为例)
二、存储系统
1)存储器芯片基本结构
(以主存储器中的半导体存储芯片为例)
2)存储器分类
-
按材料分:
- 磁表面存储器:磁盘(直接存取)、磁带(顺序存取)
- 磁芯存储器
- 半导体存储器:随机存取,便于与CPU交互,如RAM、ROM
- 光存储器
-
按读写性能分:
-
读写存储器:可读可写(下面分类按照存取方式细分)
-
随机存取存储器(RAM):要访问哪个位置直接定位,不需要挨个找
- 静态随机存取存储器(SRAM)
- 动态随机存取存储器(DRAM)
- 半导体随机存取存储器 SRAM 和 DRAM 的对比
-
串行访问存储器:读写某个存储单元的时间与物理存储地址有关
- 顺序存取存储器(SAM):按照存储物理顺序挨个读写,可读可写,如磁带
- 直接存取存储器(DAM):(结合了RAM和SAM的存取特点)先定位到某个磁道,再按照存储物理顺序挨个读写,可读可写
-
相联存储器:按检索内容找到位置读写,主要用于虚拟存储器中存放分段表、页表和块表,在告诉缓冲存储器中作为存放cache的行地址使用
-
-
只读存储器(ROM):只可读不可写,或者写的速度很慢(下面分类按照读写特点细分)
-
MROM:掩膜式只读存储器,厂商一次性写入,无法修改
-
PROM:一次可编程只读存储器,用户一次性写入,无法修改
-
EPROM:可擦除可编程只读存储器(UVEPROM紫外线擦除、EEPROM电擦除),修改次数有限,写入速度很慢
-
Flash Memory:闪速存储器(U盘、内存与辅存之间也可以放一个闪存),EEPROM的变种,写入速度加快,读速度还是慢,因此无法替代RAM
-
Solid State Drives:固态硬盘,由控制单元和FLASH芯片构成,读速度加快,但是依然没有办法替代RAM,其研究目标是不断向RAM靠近,从而不担心没保存会丢失的问题
-
-
3)主存、辅存
-
主存(内存):主存储器,可以直接与CPU通信
- RAM:主要用DRAM动态随机存取存储器,可读可写,具有易失性,断电则信息丢失
- 双端口RAM:连接2个CPU芯片,使用特殊的存储器管理结构,提高存储器工作速度
- 多模块存储器:多体并行存储器,多个普通存储器构成,它们既能并行工作,又能交叉工作,有高位交叉编址(仅仅是扩容,速度提升并不大)、低位交叉编址(速度提升大)
- ROM:可读不可写,具有非易失性,断电不会丢失信息;容量小,用来存储一些关键信息,如指出操作系统在辅存中的存储地址,把系统通过I/O接口输送到RAM中
-
辅存(外存):辅助存储器,不能与CPU直接通信,需要I/O接口与CPU连接;属于串行访问存储器,可读可写
4)高速缓冲存储器
- Cache缓存:
- Cache缓存介于主存和CPU之间,可以直接与CPU通信,容量大多为主存的几百分之一,通过其非常快的读写速度和预读取功能,提高整个存储系统的工作速度
- Cache-主存层次由硬件直接实现,对操作系统透明
- Cache缓存主要使用SRAM静态随机存储器,其中存放行地址的存储器可以使用相联存储器
- 组成结构:
- Cache-主存地址映射变换机构(完成地址映射)
- Cache存储体(存储标记+数据)
- Cache替换机构(可以通过Cache存储体与主存之间的直接通路进行数据快速替换)
- 地址映射方式和所需标记:
- 全相联映射方式(随机存):主存字块标记、字块内地址
- 直接映射方式(顺序存):主存字块标记、Cache字块地址、字块内地址
- 组相连映射方式(顺序加随机):主存字块标记、组地址、字块内地址
- 缓存的替换算法:
- 随机算法(RAND)
- 先进先出算法(FIFO)
- 近期最少使用算法(LRU)
- 最不经常使用算法(LFU)
- 写策略:
- write-back写回法(当CPU对Cache写命中时,只修改Cache内容,只有此块被替换出去时才写回内存,需要增加脏位标记)
- write-through全写法(写命中时必须把数据同时写入Cache和主存,一般需要增加写缓存)
- write-allocate写分配法(未命中时把主存中的块调入Cache,在Cache中修改,搭配写回法使用)
- not-write-allocate非写分配法(不调入Cache,直接写内存,搭配全写法使用)
- 多级Cache:第一级与第二级之间使用全写法,第二级与主存之间使用写回法,速度离CPU越远越慢,容量离CPU越远越小
5)虚拟存储器
- 作用:逻辑模型,由硬件和软件配合实现,通过虚地址(逻辑地址)与实地址(物理地址)间的映射,把主存与外存统一成一个整体,使应用程序认为它拥有连续的可用内存,而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换,即匀出一部分硬盘空间来充当内存使用,很方便地提高了存储系统的容量
- 页式虚拟存储器:页表存储实页号+装入位(表明现实页号指向的数据已经在主存中了还是在外存中,如果在外存中,则要调入主存,之后再进行虚拟地址和实际地址之间的映射),虚地址=虚页号+页内地址,实际地址=实页号+业内地址
- 段式虚拟存储器:段按照程序逻辑结构划分,各个段是长度因程序而异
- 段页式虚拟存储器:段号+段内页号+页内地址
- 慢表(Page):放在主存中的页表
- 快表(TLB):放在高速缓冲存储器中的页表
三、指令系统
1)指令格式
-
指令:又称机器指令,是一组有意义的二进制代码,包括操作码字段和地址码字段两部分,是计算机执行某种操作的命令,计算机运行的最小功能单位,一台计算机只能执行自己指令系统中的指令
-
指令格式:操作码+地址码
-
操作码:定长操作码(一般使用在操作码较长的机器上)、扩展操作码(不定长操作码的一种,最常见的变长操作码)(一般使用在操作码较短的机器上)
- 扩展操作码的设计:
- 设计扩展操作码时的注意点:
- 操作类型:
-
三个字长
- 机器字长:CPU一次能处理的二进制数据的位数
- 指令字长:一个指令字中包含二进制代码的位数(单字长指令长度=机器字长)
- 存储字长:一个存储单元存储二进制代码的长度(若想要一次取一个指令,一次处理一个指令,一次取一个数据:采取边界对齐的存储方式)
2)指令寻址
- 指令寻址:下一条欲执行指令的指令地址
- 寻址方式:顺序寻址、跳跃寻址(由转移指令指出,转移指令的操作码表示当前是一个转移指令,操作数是标明当前要跳转到的指令的位置)
3)数据寻址
-
操作数类型:地址(无符号数)、数字)(定点数、浮点数、十进制数)、字符(ASCII码)、逻辑数(对字符进行逻辑运算)
-
数据寻址:确定本条指令的操作数地址
-
寻址方式:隐含寻址(0000)、立即寻址(0001)、直接寻址(0002)、间接寻址(0011)、寄存器寻址(0100)、寄存器间接寻址(0101)、相对寻址(0110)、基址寻址(0111)、变址寻址(1000)、堆栈寻址(1001)
- 立即寻址:形式地址就是操作数本身,又称立即数,一般采用补码形式
- 直接寻址:指令字中的形式地址就是操作数的真实地址
- 间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址所在存储单元的地址(这是一次间址,还有多次寻址)(可扩大寻址范围可方便子程序返回)
- 寄存器寻址:就是直接寻址的操作数被存在寄存器里,寄存器被做在CPU里,不需要访问主存,且寄存器很小,寻址快且地址码短,不过寄存器贵,计算机里寄存器也很少
- 寄存器间接寻址:与寄存器寻址的区别是寄存器中存的不是操作数,而是操作数所在主存单元的地址
- 隐含寻址:不是明显地给出操作数的地址,而是在指令的操作码中隐含着操作数的地址,如累加操作码字段指出累加操作的另一个操作数(上一次累加的结果)存在于ACC累加寄存器中
- 偏移寻址:将CPU中基址寄存器(专用寄存器BR、通用寄存器(用时需要将其编号填入指令字的一个字段用来指示))的内容加上指令格式中的形式地址,形成操作数的有效地址
- 基址寻址:面向操作系统,其内容由操作系统或管理程序确定,基地址(寄存器内容)不变,偏移量(形式地址)可变,有利于多道程序设计,以及可用于编制浮动程序
- 变址寻址:面向用户,基地址(形式地址)不变,偏移量(寄存器内容)可变,还可以提供自增自减的功能,特别适合处理数组中任一数据的地址或编制一些循环程序
- 相对寻址:操作的是指令的地址,程序计数器(PC)的内容作为基地址,指令中的形式地址作为偏移量,操作数的地址不是固定的,随PC值的变化而变化,并且与指令地址之间总是相差一个固定值,便于程序内部的浮动,广泛应用于转移指令
- 变址寻址与基址寻址配合使用:既能实现循环程序,又能实现该程序在主存当中的浮动
- 变址寻址与间接寻址配合使用:如先变址后间址,先间址后变址
- 堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址
- 硬堆栈:CPU中的寄存器实现堆栈的功能
- 软堆栈:划分主存中一块区域实现堆栈的功能
-
各种指令结构
- 一地址指令:操作码+寻址特征(寻址方式)+形式地址(用于根据寻址特征求出操作数的真实地址)
- 二地址指令:操作码+寻址特征+形式地址1+寻址特征+形式地址2
- …
4)指令系统设计方向
- CISC:Complex Instruction Set Computer(复杂、庞大)
- 设计思路:一条指令完成一个复杂的基本功能
- 特点:指令数目多;指令字长不固定;中间结果少,且留给通用寄存器的空间也少,因此通用寄存器数量较少;绝大多数为微程序控制,指令流水线可以通过一定的方式实现,但是比较难,目标代码也难以优化编译成高效的目标代码程序。
- 代表:x86架构,主要用于笔记本、台式机等
- 减小系统硬件复杂度:采用“存储程序”的设计思想,由一个比较通用的电路配合一些存储部件完成一条指令,存储部件不是指的主存,而是为了配合复杂程序设计,在CPU中专门设置了一个小的存储部件,这种设计模式叫做微程序设计模式
- RICS:Reduced Instruction Set Computer(简单、精简)
- 设计思路:一条指令完成一个基本动作,多条指令组合完成一个复杂的基本功能
- 特点:指令数目少;指令字长固定;中间结果多,且留给通用寄存器的空间也多,因此通用寄存器数量多;绝大多数为组合逻辑控制,指令流水线很容易实现且必须实现,目标代码也容易采用优化的编译程序生成较为高效的代码。
- 代表:ARM架构,主要用于手机、平板等
- 提高系统效率:“并行”、“流水线”
四、中央处理器
1)CPU的功能和结构
-
CPU的功能:
- 运算器功能:
- 数据加工:对数据进行算术和逻辑运算
- 控制器功能:
- 指令控制(完成取指令、分析指令和执行指令的操作,即程序的顺序控制)
- 操作指令(CPU管理并产生由内存取出的每条指令的操作信号,送往相应的部件,从而控制这些部件按指令的要求进行动作)
- 时间控制(为每条指令按时间顺序提供应有的控制信号)
- 中断处理(对计算机运行过程中的异常情况和特殊请求进行处理)
- 运算器功能:
-
CPU的基本结构:
-
运算器结构:
- 算术逻辑单元
- 通用寄存器组(存放操作数)
- 暂存寄存器(可以暂存从主存读来的数据和计算结果数据,可以增加移位、累加功能)
- 累加寄存器(暂时存放ALU运算的结果信息,用于实现加法运算)
- 程序状态字寄存器:保存溢出标志、符号标志、零标志、进位标志等
- 移位器:对运算结果进行移位运算
- 计数器:控制乘除运算的操作步数
-
控制器结构:
- 程序计数器:指出下一条指令在主存的地址
- 指令寄存器:存放现在要执行的指令
- 指令译码器:仅对操作码字段进行译码,向控制器提供特定的操作信号
- 微操作信号发生器:承接译码器的初步结果,根据这些结果及时序系统提供的时序信号,再加上目前系统的状态(运算器中的程序状态字寄存器提供),外加来自外部的反馈信号,产生一系列控制信号,发送到需要相应控制信号的地方
- 存储器地址寄存器:用于存放所要访问的主存单元的地址
- 存储器数据寄存器:用于存放从主存中读取的信息或向主存写入的信息
-
CPU总结构:
-
2)指令周期
- 指令周期:若干机器周期(CPU周期)组成,CPU周期由若干个时钟周期组成
- 取址周期
- 间址周期
- 执行周期:任务是根据IR中的指令字的操作码和操作数产生执行结果,不同指令的执行周期操作不同,没有统一的数据流向
- 中断周期
- 指令执行方案
- 单指令周期:对所有指令都选用相同执行时间来完成,指令之间串行执行,指令周期都统一成最长的指令执行时间,需要程序计数器
- 多指令周期:对不同类型的指令执行时间不同,指令之间串行执行,需要更复杂的硬件设计
- 流水线方案:每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中,指令之间并行执行
3)CPU内部数据通路
- 功能
- 数据在功能部件之间传送的路径
- 由控制部件产生的控制信号建立数据通路
- 基本结构
- CPU内部单总线方式
- CPU内部多总线方式:基本操作模式与单总线是一样的,只不过比如单总线时ALU需要配合暂存器,而多总线时,就可以同时将数据输送至ALU,这样ALU就不用加暂存器了
- 专用数据通路(以取址周期为例)
4)控制器
-
控制器的功能
- 从主存中取出一条指令,并指出下一条指令在主存中的位置
- 对指令进行译码或测试,产生相应的操作控制信号,以便启动规定操作
- 指挥并控制CPU、主存、输入和输出设备之间的数据流动方向
-
控制单元CU
-
控制器的分类和设计
-
控制器的分类
-
硬布线控制器:组合逻辑+触发器(微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序即时产生)
-
分析一条指令中每个指令周期(取址周期、间址周期、执行周期、中断周期)的微操作序列,确定一个机器周期的节拍数(时钟周期数)
-
选择CPU的控制方式:同步控制方式(整个系统所有的控制信号均来自一个统一的时钟信号)、异步控制方式(不存在基准时标信号,各部件按自身固有的速度工作,通过应答方式进行联络)、联合控制方式(大多数采用同步控制,小部分异步控制)
-
安排每个指令周期的微操作时序:微操作先后顺序不得随意更改;没有先后顺序要求的微操作尽量往前放;被控对象不同的微操作、没有相关性的微操作尽量在一个节拍内完成;占用时间较短的微操作尽量安排在一个节拍内完成。如取址周期的微操作时序:
-
对每个指令周期的每一个微操作(以M(MAR)->MDR为例)进行电路设计:列出操作时间表 -> 写出微操作命令逻辑表达式的最简表达式 -> 画出逻辑图
(执行周期的一些指令)(列操作时间表(指各个指令需不需要各个微操作,1代表需要,0代表不需要) 、写微操作命令逻辑表达式的最简表达式)(画出逻辑图)
-
-
微程序控制器:
- 微程序控制器工作原理:将一条指令中每一个指令周期编写成一个微程序,存储在控制存储器CM(可用ROM)中,微程序由一系列微指令组成,每条微指令是一串二进制数字,由微操作码(其中一位对应一种微操作是否执行,1代表执行,0代表不执行,这是水平型微命令中的直接编码方式)和微地址码(指出下一条微指令的地址)组成,用寻址用户程序机器指令的办法来寻址每个微程序中的微指令
- 微程序控制器基本结构:公共微程序有取址周期微程序、间址周期微程序、中断周期微程序等
- 微指令格式
- 微指令编码方式
- 微指令地址形成方式
- 微程序控制器中微指令地址跳转、微程序间地址跳转
-
微程序设计步骤:分析每个指令周期(取址周期、间址周期、执行周期、中断周期)的微操作序列 -> 写出每个指令周期指令(以取址周期为例)的微操作命令及节拍安排 -> 确定微指令格式 -> 编写微指令码点
-
5)指令流水线
-
流水线的作用:在前面能够完整工作的整个系统基础上,能够提升系统的工作速度
-
指令流水方式
-
流水线表示方法
-
流水线性能指标:
- 吞吐率(理想:平均每个微程序执行时间的倒数)
- 加速比(理想:微程序的个数)
- 效率(理想:1)
-
流水线影响因素和解决办法(需要使用缓存部件):
- 结构相关(资源冲突),解决办法:
- 后一相关指令暂停一周期
- 资源重复配置(数据存储器+指令存储器)
- 数据相关(数据冲突RAW读后写、WAR写后读、WAW写后写三种类型),解决办法:
- 后相关指令暂停一到几个周期(硬件阻塞法stall、软件插入”NOP“法)
- 数据旁路技术
- 通过编译器调整指令顺序来优化
- 控制相关(控制冲突,由转移指令造成),解决办法:
- 尽早判断转移是否发生,尽早生产目标转移地址
- 预取转移成功和不成功两个控制方向上的目标指令
- 预取时提高转移方向的精准率
- 加快和提前形成条件码
- 结构相关(资源冲突),解决办法:
-
流水线分类
- 根据流水线使用的级别不同:
- 部件功能级(将复杂的算术运算组成流水线工作方式)
- 处理机级(把一条指令分为多个子过程,如取指、译码、执行、访存等)
- 处理机间级(每一个处理机完成某一专门任务)
- 按流水线可以完成的功能:
- 单功能流水线(只能实现一种固定的专门功能的流水线)
- 多功能流水线(各段间的不同连接方式可以同时或不同时地实现多种功能的流水线)
- 按同一时间内各段之间连接方式不同:
- 静态流水线(同一时间内流水线各段只能按同一种功能的连接方式工作)
- 动态流水线(同一时间内,当某些段正在实现某种运算时,另一段却正在进行另一种运算)
- 按各功能段之间是否有反馈信号
- 线性流水线(各功能段间不存在反馈回路)
- 非线性流水线(存在反馈回路,适合线性递归运算)
- 根据流水线使用的级别不同:
-
流水线的多发技术
- 超标量技术(每个时钟周期可并发多条独立指令,要配置多个功能部件,不能调整指令的顺序,通过编译优化技术,把可执行的命令搭配起来,在c语言转换为汇编语言时就将可以并行的命令放在一起)
- 超流水技术(在一个时钟周期内再分段,不能调整指令顺序,靠编译器解决优化问题,同一个功能部件在同一时钟周期内被使用多次,和普通的再分段技术不同的是,不需要设置缓存部件,而是需要一些技术使其可以被多次使用)
- 超长指令字(由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条,形成具有多个操作码字段的可达几百位的超长指令字,需要配置多个功能部件)
五、总线
1)总线特性和性能指标
- 特性
- 机械特性:尺寸形状
- 电气特性:传输方向、电平有效范围
- 功能特性:传输数据、传输地址、传输控制信号
- 时间特性:信号和时序关系
- 性能指标
- 总线的传输周期:一次总线操作所需时间(包括申请阶段、寻址阶段、传输阶段和结束阶段)通常由不到一个、一个或多个总线时钟周期构成
- 总线的时钟周期:即机器的时钟周期(计算机统一的时钟周期)
- 总线的工作频率:总线周期的倒数(一秒内有多少个总线周期)
- 总线的时钟频率:时钟周期的倒数(一秒内有多少个时钟周期)
- 总线宽度:又称总线位宽,通常指数据总线的根数
- 总线带宽:总线数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量(单位B/s)
- 总线复用:指一种信号线在不同的时间传输不同的信息,可以使用较少的线传输更多的信息,从而节省了空间和成本
- 信号线数:地址总线、数据总线和控制总线3种总线数的总和
2)总线的分类
- 按数据传输格式
- 串行总线:远距离传输成本低,计算机内部节省布线空间;但在数据发送和接收的时候要进行拆卸和装配,要考虑串行-并行转换的问题
- 并行总线:总线逻辑时序比较简单,电路实现起来比较容易;但远距离传输成本高,工作频率较高时并行信号线之间干扰严重,所以工作频率不能太高,因此不一定且通常不比串行总线的速度快
- 按总线功能
- 片内总线(芯片内部的总线):CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线
- 系统总线:计算机系统各功能部件(CPU、主存、I/O接口)之间相互连接的总线
- 控制总线:CPU送出的控制命令,内存或外设返回给CPU的反馈信号(其根数与控制信号的多少有关)(控制线中每一条线的方向是不同的,有入有出)
- 地址总线:内存储器、输入设备和输出设备从地址总线接收地址信息;控制器部件送出指令地址到地址总线(其位数(根数)与主存地址空间大小及设备数量有关)(单向)
- 数据总线:内存储器、输入设备和输出设备通过数据总线与其他部件传送数据;运算器通过数据总线与内存储器、输入设备和输出设备传送数据;控制器部件从数据总线接收指令信息(其位数(根数)与机器字长、存储字长有关)(双向)
- 通信总线:用于计算机系统之间、计算机系统与其他系统(如远程通信设备、测试设备)之间的信息传送总线,也称外部总线
- 按时序控制方式
- 同步总线
- 异步总线
3)系统总线的结构
- 单总线结构
- 双总线结构
- 三总线结构
- 四总线结构
4)系统总线的仲裁方式
- 概念:总线作为一种共享设备,不可避免地会出现同一时刻有多个设备竞争总线的问题,而同一时刻只能有一个设备控制总线传输操作,可以有一个或多个设备从总线接收数据,这就需要总线仲裁,以某种方式选择一个主设备优先获得总线控制权。
- 总线仲裁方式分类
- 集中仲裁方式:由总线控制器(做在CPU里)集中判定正在发出请求的设备获得总线控制权的优先级
- 链式查询方式
- 计数器定时查询方式
- 独立请求方式
- 分布仲裁方式
- 集中仲裁方式:由总线控制器(做在CPU里)集中判定正在发出请求的设备获得总线控制权的优先级
5)系统总线操作和定时
-
总线传输(总线周期)的四个阶段
- 申请分配阶段:传输请求、总线仲裁
- 寻址阶段:获得总线使用权的主模块通过总线发出本次要访问的从模块的地址及有关命令
- 传输阶段:主模块和从模块进行数据交换,可单向可双向
- 结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权
-
总线定时:实质上是一种协议或规则
- 同步通信(同步定时方式):由统一时钟控制数据传送,总线周期长度不变;控制简单传输速率快,但不能及时进行数据通信的有效性检验,可靠性较差;适用于总线长度较短,总线所接部件存取时间比较接近的系统
- 异步通信(异步定时方式):采用应答方式,总线周期长度可变,没有公共时钟标准;能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,但比同步控制方式稍微复杂一些,速度比同步定时方式慢;有不互锁、半互锁、全互锁方式
- 半同步通信:同步、异步结合
- 分离式通信:充分挖掘系统总线每瞬间的潜力,把通信过程中总线空闲的时间充分利用起来
6)总线标准
- 总线标准的概念:国际上公布或推荐的互连各个模块的标准,易于实现系统的模块化设计
- 总线标准:系统总线标准(ISA、EISA、VESA、PCI、PCI-Express)、设备总线标准(IDE、AGP、RS-232C、USB、SATA、SCSI、PCMCIA)、局部总线标准(在ISA总线和CPU总线之间增加的一级总线或管理层,如PCI、PCI-E、VESA、AGP等,可以节省系统的总带宽)
- 视频线标准:
- 即插即用(Plug-and-Play):总线提供的一种功能,自动配置计算机底层板卡等部件,需要总线提供存储驱动程序并简单处理驱动程序的硬件
- 热拔插(hot-plugging或Hot Swap):允许用户不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件
- 桥接器:分隔不同标准的总线,具有数据缓冲、转换和控制的功能
- 不同总线标准合用:
六、IO系统
1)I/O系统概述
- I/O系统的演变过程
- I/O系统基本组成
- I/O方式(其中程序中断方式和DMA方式的区别是DMA方式街道请求后不是指令周期结束后中断保护现场,而是当前存取周期结束后暂停一下访存,不需要从程序中切出来)
2)外部设备
-
输入设备:向计算机系统输入命令和文本、数据等信息的部件,如鼠标、键盘
-
输出设备:将计算机系统中的信息输出到计算机外部进行显示、交换等的部件,如显示器、打印机
-
外存储器:除计算机内存及CPU缓存等以外的存储器,如机械硬磁盘、光盘、固态硬盘
-
机械硬磁盘
-
指标
-
地址和工作过程
-
磁盘阵列
-
-
光盘
-
固态硬盘(与U盘的区别是用的闪存芯片比较多,并用特殊算法进行管理,一方面速度较快,另一方面可靠性较高)
-
3)I/O接口
-
主要功能
- 设备选址(设备选择电路)
- 传送命令(命令寄存器、命令译码器)
- 传送数据(可实现数据格式转换的数据缓冲寄存器)
- 反映I/O设备的工作状态(设备状态标记:完成触发器D、工作触发器B、中断请求触发器INTR、屏蔽触发器MASK)
-
基本结构、工作过程
-
I/O端口及编址
- 接口与端口
- 端口编址方式
-
I/O接口的类型
4)I/O方式
-
程序查询方式
- 流程图
- 接口结构
-
中断方式
-
中断的概念:针对某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,转去对异常情况和特殊请求进行处理,处理完毕后又自动返回到现行程序断点处继续执行
-
中断的分类
-
内中断(陷入、故障、终止)
-
自愿中断:指令中断(系统调用时使用的访管指令,又叫陷入指令、trap指令)
-
强迫中断:硬件故障(如缺页)、软件中断(如整数除0)
-
-
外中断(狭义的中断)
-
外设请求:比如I/O操作完成发出的中断信号
-
人工干预:比如用户强行终止一个进程
-
-
-
中断系统的工作流程
- 中断请求:每个中断源的中断请求标记触发器可以集成为中断请求标记寄存器在CPU里,也可以分散在各个中断源中
- 中断响应:CPU在每条指令执行阶段结束前发中断查询信号,也可以在执行时间很长的指令执行过程中设置很多查询断点,并且CPU响应中断是有条件的,如一条指令执行完毕且没有更紧迫的任务,而且要对同时接到的中断请求进行判优
- 执行中断隐指令:保存断点(即程序计数器PC的值),并引入中断服务程序(即将中断服务程序的入口地址送入程序计数器PC,此过程也叫送中断向量)
- 执行中断服务程序:保护现场(保存被中断的进程的CPU环境,如PSW、各种通用寄存器的值)、执行服务、恢复现场(恢复被中断的进程的CPU环境)
- 中断返回:进入被中断的程序继续执行
-
中断优先级、判优
-
多重中断
- 多重中断与单重中断的区别
- 中断屏蔽技术
-
-
DMA方式
- 特点:当I/O设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送请求,若总线空闲CPU将就会响应让出系统总线,由DMA控制器接管总线进行数据传送
- DMA控制器
- 功能
- 结构
- 传送过程
- 访存争用问题解决方式
-
DMA方式与中断方式的对比(DMA方式占用CPU的时间百分比大约为中断方式的几百分之一)