计算机组成原理是计算机专业本科教学中的重要课程,它可以帮助我们系统地理解计算机硬件系统的组织结构和工作原理、掌握计算机硬件系统的基本分析与设计方法以及建立计算机系统的整体概念,为进一步学习计算机设计实践课程、培养系统开发、调试以及设计创新能力奠定良好的基础。计组是考研的最重最难点,在408计算机学科专业基础综合考试中占有45分。以下为我在学习过程中所做的笔记,可供参考。
计算机系统概述
计算机系统的多层次结构
- 硬件:
- 微程序机器层M0(微指令系统),由硬件直接执行微指令
- 传统机器M1(机器语言机器),用微程序解释机器指令
- 软件:
- 虚拟机器M2(操作系统机器),用机器语言解释操作系统
- 汇编语言M3(汇编语言机器),用汇编程序翻译成机器语言程序
- 虚拟机器M4(高级语言机器),用编译程序翻译成汇编语言程序
冯·诺依曼机
- 基本工作方式:控制流驱动方式
- 最根本的特征:采用存储程序原理,即按地址访问并顺序执行指令
- 指令和数据均以二进制形式存放在存储器中
- CPU区分依据是:指令周期的不同阶段
- 冯·诺依曼计算机:以运算器为中心
- 现代的计算器:以存储器为中心
- 5大部件:存储器、运算器、控制器、输入设备、输出设备(适配器)
三大部分:CPU(运算器、控制器)、I/O设备(输入设备、输出设备)、主存储器
哈佛结构:将指令和数据放在两个独立的存储器,允许在一个机器周期内同时获得指令和操作数,提高了执行速度
计算机性能指标
机器字长:
- CPU一次能处理数据的位数,通常与CPU的寄存器位数有关,字长越长,精度越高
- 机器的字长也会影响机器的运算速度:字长较短,运算位数多,可能需要多次运算才能完成
- 对硬件造价有影响:直接影响ALU、数据总线以及存储字长的位数
存储容量:主存容量、辅存容量
运算速度:
- 吞吐量和响应时间
- 主频和CPU时钟周期
- CPI:执行一条指令所需的时钟周期数
- CPU执行时间:指运行一个程序所花费的时间。取决于:主频、CPI、指令条数
- MIPS:每秒执行多少百万条指令
- MFLOPS:每秒执行多少百万次浮点运算(标志系统性能最有用参数)
- GFLOPS:每秒执行多少十亿次浮点运算
- TFLOPS:每秒执行多少万亿次浮点运算
数据的表示和运算
汉字的编码
- 输入码(外码):区位码、国际码、拼音码、电报码、表形码等
- 内码:0、1(机器码)
- 输出码:汉字字形码
- 汉字编码包括汉字的输入编码、汉字内码、汉字字形。用两个字节表示一个汉字,每个字节用七位码。区位码是4位十进制数,前2位是区码,后2位是位码
- 国标码是将十进制的区位码转换为十六进制后,再在每个字节上加上20H。为了方便计算机区分中文字符和英文字符,将国标码两个字节的最高位都改为“1”,这就是汉字内码(十六进制)
字符串的存放
- 小端模式:按先存储低位字节、后存储高位字节的顺序存放字符串的内容
- 大端模式:按先存储高位字节、后存储低位字节的顺序存放字符串的内容
校验码
- 奇偶校验码:只能检出一位错误,不能确定出错的位置;只能检验处奇数位错误,不能检测出偶数位错误。
- 奇校验码:整个校验码中“1”的个数为奇数。
- 偶校验码:整个校验码中“1”的个数为偶数。
- 海明(汉明)检验码:可检出错位位置
- 循环冗余校验(CRC)码:可检出错误位置(通过除法运算)
原码、反码、补码、移码
- 原码、补码、反码三种机器数的最高位均是符号位
- 当真值为正时,原码、补码、反码的表示形式均相同,即符号位用“0”表示,数值部分与真值相同
- 当真值为负时,原码、补码、反码的表示形式不同,但其符号位都用“1”表示,而数值部分补码是原码的“求反加1”,反码是原码的“每位求反”。
- 同一个真值的移码和补码仅差一个符号位。
- 4、不同机器数表示±0时,其形式不同。
- [+0]原≠[-0]原, [+0]反≠[-0]反,[+0]补=[-0]补,[+0]移=[-0]移
- 当机器字长确定后,补码比原码、反码能多表示一个负数
- 移码只能表示整数,用它表示浮点数的阶码时,能方便地判断阶码的大小
补码定点数的加/减运算
- 基本公式:(将符号位和数值部分一起参加运算,并且将符号位产生的进位自然丢掉即可)
- 加法:[A]补+[B]补=[A+B]补
- 减法:[A-B]补=[A]补+[-B]补([-B]补由[B]补连同符号位在内,每位取反,末尾加1)
溢出判断
- 用一位符号判断溢出:实际参加操作的两个数符号相同,结果又与原操作数的符号不同,即为溢出
- 用两位符号位判断溢出:当2位符号位不同时,表示溢出,否则,无溢出。不论是否发生溢出,高位(第1位)符号永远代表真正的符号。(变形补码,运算时多一位)
- 01正溢出(上溢);10负溢出(下溢)
- 采用一位符号位根据数据位的进位情况判断溢出。如果符号位的进位与最高数位的进位不同,则表示结果溢出
浮点数的加/减运算
- 对阶:两个数的小数点位置对齐(使阶码相等),两个数的阶码相减求阶差,使小阶的尾数向右移位,每右移一位,阶码加1
- 尾数求和:将对阶后的两个尾数按定点加(减)运算规则进行运算
- 规格化:补码规格化形式为[S]补 00.1××××;[S]补 11.0××××
- 左规:尾数出现00.0××××或11.1××××时,需左规。尾数左移一位,阶码减1
- 右规:尾数出现01.××××或10.××××时,表示尾数溢出,但在浮点运算中不算溢出,可通过右规处理。尾数右移一位,阶码加1
- 舍入:在对阶和右规的过程中,可能会将尾数的低位丢失,引起误差,影响精度,用舍入法来提高尾数的精度
- “0舍1入”法:被移去的最高位数值位为0,则舍去;被移去的最高数值位为1,则在尾数的末位加1。又溢出时,再右规……
- “恒置1”法:不论丢掉的最高数位是“1”还是“0”,都使尾数末位恒置“1”。
- 两种方法同样都有使尾数变大和变小两种可能
- 溢出判断(是否溢出由阶码的符号决定)
- 上溢:阶码[j]补=01,×××,作溢出处理
- 下溢:阶码[j]补=10,×××,按机器零处理
浮点数的表示范围
上溢:当浮点数阶码大于最大阶码时,上溢,机器停止运算,进行中断溢出处理。
下溢:当浮点数阶码小于最小阶码时,下溢,溢出的数绝对值很小,通常将位数各位强制为0,按机器零处理,机器可以继续运行。
8位二进制整数范围
- 原码、反码:-127—+127
- 补码、移码:-128—+127
标准IEEE 754标准
- 现代计算机中,浮点数一般采用IEEE制定的国际标准:
- 常用的浮点数有三种:阶码用移码表示
短实数、长实数、临时实数的偏移量用十六进制数表示分别为7FH(127)、3FFH、3FFFH
尾数部分通常是用原码、规格化表示,即非“0”的有效位最高位总是“1”,但在IEEE标准中,有效位呈如下形式:1▲ff…ffff
- 其中▲表示假想的二进制小数点。在实际表示中,对短实数和长实数,这个整数位的1省略,称隐藏位;对于临时实数不采用隐藏位方案
存储器层次结构
存储器的层次化结构
- 存储器主要性能指标:速度、容量、每位价格(位价)
一般来说,速度越高,位价越高;容量越大,位价越低;容量越大,速度越低。
层次结构主要体现在缓存-主存和主存-辅存这两个层次上。
- 缓存-主存:主要解决CPU和主存速度不匹配问题(由硬件自动完成)数据调动对任何程序员透明。
- 主存-辅存:主要解决存储系统的容量问题(由硬件和操作系统共同完成)数据调动对应用程序员透明
动态RAM的刷新
- 一般取2ms,对动态RAM的全部基本单元电路必作一次刷新,称为刷新周期,又称再生周期。刷新的单位是行,仅需要行地址。
- 集中刷新:在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作,称“死时间”或“死区”。(全部一起刷)
- 分散刷新:对每行存储单元的刷新分到每个存取周期内完成。优点:没有死区。缺点:存取周期加长,整个系统速度降低。(一个个刷)
- 异步刷新:是前两种方式的结合,既缩短“死时间”,又充分利用最大刷新时间间隔为2ms的特点。(一行行刷)
- 一行行刷的平均刷新时间
- 行数 = 芯片容量 / 每行存储单元个数
- 平均刷新时间 = 间隔最长 / 行数
存储容量的扩展
- 位扩展
- 增加存储字长
- 例如:2片1K4位的存储芯片可组成1K8位的存储器。
- 注意:其中一片的数据线作为高4位D7-D4,另一片的数据线作为低4位D3-D0。
- 字扩展
- 增加存储器字的数量
- 例如:2片1K8位的存储芯片可组成一个2K8位的存储器。
- 注意:两片都连地址线A0-A9。(从低位连起)
- 字、位扩展
- 既增加存储字的数量又增加存储字长。
双口RAM和多模块存储器
- 为了提高CPU访问存储器的速度,可以采用双端口存储器(空间并行)、多模块存储器(时间并行)等技术,都属于并行技术。
多模块存储器
- 为了提高访存速度(CPU速度比存储器快,同时从存储器中取出n条指令,可以充分利用CPU资源,提高运行速度)
- 单体多字系统
- 在一个存取周期内,从同一地址取出n条指令,然后逐条将指令送至CPU执行,即每隔1/n存取周期,主存向CPU送一条指令,增大了存储器的带宽,提高了存储器的工作速度。
- 例如:从同一地址取出4条指令,为单体四字结构,每字W位。按地址在一个存取周期内可读出4*W位的指令或数据,使主存带宽提高到4倍。
- 缺点:指令和数据在主存内必须是连续存放的,一旦遇到转移指令,或者操作数不能连续存放,这种方法的效果就不明显。
- 多体并行系统
- 采用多提模块组成的存储器。每个模块可以并行工作,也可以交叉工作。
- 低位交叉编址
- 程序连续存放在相邻体中(交叉存储)。低位地址表示体号,高位地址表示体内地址。
地址的低n为片选。 - 优点:相邻地址单元的数据放在不同组,各组可以并行工作,能较好提高存储器的带宽。
- 缺点:某一组出现故障,会影响整个存储器的正常工作。
- 程序连续存放在相邻体中(交叉存储)。低位地址表示体号,高位地址表示体内地址。
- 高位交叉编址
- 按体内地址顺序存放(顺序存储)。高位地址表示体号,低位地址表示体内地址。
- 地址的高n位片选。
- 优点: 某一组的故障不影响其他组,且容易通过添加模块来扩充容量。
- 缺点:相邻地址单元的数据放在同一组存储单元,各组间串行工作,不利于提升存储器的带宽。
- 低位交叉编址
Cache中主存块之间的映射方式
- 由主存地址映射到Cache地址称为地址映射
- 直接映射
- 主存数据只能装入Cache中的唯一位置。若这个位置已有内容,则产生块冲突,原来的块将无条件地被替换出去(无需使用替换算法)。
- 优点:实现简单,只需利用主存地址的某些位直接判断,即可确定所需字块是否在缓存中。
- 缺点:不够灵活,降低命中率。
- 全相联映射
- 允许主存中每一字块映射到Cache中的任何一块位置上。可以从已被占满的Cache中替换出任一旧字块。
- 通常采用昂贵的“按内容寻址”的相联存储器来完成。
- 优点:灵活,命中率高,缩小了块冲突率,空间利用率高。
- 缺点:地址变换速度慢,实现成本高
- 组相联映射(上述两种映射的折中)
- 将Cache空间分成大小相同的组,主存的一个数据块可以装入到一组内的任何一个位置(组间采取直接映射,组内采取全相联映射)。
Cache中主存块的替换算法
- 先进先出(First-In-First-Out,FIFO)算法
- 近期最少使用(Least Recently Used,LRU)算法
- 随机法
磁盘存储器
- 磁盘寻址的最小单位是扇区。
- 道密度:沿磁盘半径方向单位长度的磁道数。
- 位密度:单位长度磁道上记录二进制的位数。
- 平均寻道时间:从一个磁道转移到另一个磁道的平均时间。(全部寻道时间的一半)
- 平均等待时间:旋转等待的平均时间。(转一周时间的一半)
- 一扇区的传送时间:T=1 / (转速×扇区数)
- 存取一个扇区的时间:T=每个扇区位数 / (转速×扇区数)
- 平均存取时间=平均寻道时间 + 平均等待时间 + 传输时间
- 每个记录面的磁道数:K=[(外直径-内直径)/2]*磁道密度
- 盘组格式化容量:C = 记录面数 K 每个扇区字节数 * 扇区数
- 盘组非格式化容量:CN = 记录面数 K 最内圈磁道周长 * 内层位密度
- WE 为写允许信号:低电平0为写,高电平1为读
- CS为片选信号:低电平0有效
- 借位/进位C:1=结果的最高位发生了进位,0=结果的最高位未发生进位
- 溢出标志位V:1=溢出,0=没有溢出
指令系统
指令的寻址方式
- 寻址模式是大多数中央处理器 (CPU)设计中的指令集架构的一个方面
- 在给定指令集架构中定义的各种寻址模式决定了该架构中的机器语言指令如何识别每个指令的操作数
- 寻址模式指定如何通过使用寄存器中保存的信息和/或机器指令中包含的常量或其他地方包含的常量来计算操作数的有效存储器地址。
CISC和RISE
- 从硬件角度来看CISC处理的是不等长指令集,它必须对不等长指令进行分割,因此在执行单一指令的时候需要进行较多的处理工作。而RISC执行的是等长精简指令集,CPU在执行指令的时候速度较快且性能稳定。因此在并行处理方面RISC明显优于CISC,RISC可同时执行多条指令,它可将一条指令分割成若干个进程或线程,交由多个处理器同时执行。由于RISC执行的是精简指令集,所以它的制造工艺简单且成本低廉。
- 从软件角度来看,CISC运行的则是我们所熟识的DOS、Windows操作系统。而且它拥有大量的应用程序。因为全世界有65%以上的软件厂商都理为基于CISC体系结构的PC及其兼容机服务的,象赫赫有名的Microsoft就是其中的一家。而RISC在此方面却显得有些势单力薄。虽然在RISC上也可运行DOS、Windows,但是需要一个翻译过程,所以运行速度要慢许多。
地址指令操作数物理位置的三种形式
- 寄存器——寄存器型(RR型);
- 寄存器——存储器型指令(RS型);
- 存储器——存储器型(SS型)。
中央处理器
计算机工作过程
- 加电——》产生reset信号——》执行程序——》停机——》停电
- 产生reset信号的任务
- 任务一:使计算机处于初始状态
- 任务二:从PC中取出指令地址
- 控制器作用是协调并控制计算机各部件执行程序的指令序列
控制器的组成
- 控制器的功能
- 取指令:发出指令地址,取出指令的内容
- 分析指令
- 对操作码译码产生操作相应部件的控制信号
- 根据寻址方式形成操作数地址
- 执行指令
- 根据分析指令后产生控制信号、操作数地址信号序列,通过CPU及输入输出设备的执行实现每条指令的功能
- 结果回送存储器
- 形成下条指令的地址
- 控制程序和数据的输入和结果输出
- 对异常情况和某些请求的处理
- 异常情况的处理:例如算术运算的溢出、数据传送奇偶错
- 某些请求的处理
- “中断请求”信号
- DMA请求信号
- 控制器的组成
- 程序计数器(PC):即地址寄存器,用来存放当前正在执行的指令地址或即将要执行的下一条指令地址
- 指令寄存器(IR):用以存放当前正在执行的指令,以便在指令执行过程中控制完成一条指令的全部功能
- 指令译码器或操作码译码器:对指令寄存器中的操作码进行分析解释,产生相应的控制信号
- 脉冲源及启停线路:脉冲源参数一定评率的脉冲作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(reset)
- 时序控制信号形成部件:当程序启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控制功能部件的反馈信号调整时序控制信号
- 控制存储器
- 微指令寄存器:控制字段+下址
- 周期概念
- 指令周期:完成一条指令所需的时间,包括取指令、分析指令、执行指令
- 机器周期:也称为CPU周期,是CPU从内存中读取一个指令的时间,通常等于取指周期
- 时钟周期:称为节拍脉冲或T周期,是基准脉冲信号
- 三条假设
- 程序是存放在主存中的,当执行完一条指令后才从主存中取下一条指令(非流水线)
- 指令的长度是固定的,并限制了寻址方式的多样化
- 在程序运行前,程序和数据都已存在主存中
- 指令执行过程(运算器和控制器配合)
- 组成控制器的基本电路
- 具有记忆功能的触发器以及由它组成的寄存器,计数器和存储单元
- 没有记忆功能的门电路及由它组成的加法器,算术逻辑运算单元(ALU)和各种逻辑电路
- 控制器的功能就是按每一条指令的要求产生所需的控制信号
- 产生控制信号的方法
- 微程序控制
- 硬布线控制
微程序控制计算机的基本工作原理
- 微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作
- 微命令:将指令分为若干条微指令,按次序执行这些微指令。组成微指令的操作即微命令
- 微程序:计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序
- 控制存储器
- 微程序一般是存放在专门的存储器中的,由于该存储器主要存放控制命令(信号)与下一条执行的微指令地址(简称下址)
- 存储单元内容
- 微指令的控制信号——控制位
- 下条微指令的地址——下址字段
- 存储芯片:ROM
- 执行一条指令实际上就是执行一段存放在控制存储器中的微程序
- 实现微程序控制的基本原理
- 控制信号(23条)
- 加法的过程
- 微指令格式:控制字段+下址字段
- 23个控制位,12个下址位——》容量为4K
- 取址微指令的操作对所有指令都是相同的,所以是一条公用的微指令,其下址由操作码译码产生
- 微程序控制器
- 时序信号及工作脉冲的形成
- 停机和停电的区别
- 停机:电压稳定、存放内容保持、重启PC内容为断点指令地址
- 停电:电压消失、RAM的内容消失、重启PC内容为第一条指令地址
微程序设计技术
- 如何缩短微指令字长
- 直接控制法(容量太小)
- 编译方法:每一位代表一个控制信号,直接送往相应的控制点
- 优点:控制简单
- 缺点:微指令字长过大
- 字段直接编译法
- 选出互斥的微指令
- 每个字段都要留出一个代码,表示本段不发出任何指令(000)
- 优点:节省微指令的字长
- 缺点:增加了额外的硬件开销
- 字段间接编译法
- 指令之间相互联系的情况
- 举例:A为0-7,B为0-3,如果是直接编译——3+2=5,如果是间接编译——3+1=4
- 编码方法:在字段直接编译法中,译码输出端要兼由另一字段中的某些微命令配合解释
- 优点:减少了微指令长度
- 缺点:可能削弱微指令的并行控制能力,同时增加硬件开销
- 常熟源字段E
- 直接控制法(容量太小)
- 如何减少微指令长度
- 现行微指令/微地址
- 现行微指令:当前正在执行的指令
- 现行微地址:存放现行微指令的控制器存储单元
- 后继微指令/微地址
- 后继微指令:下一条要执行的微指令
- 后继微地址:存放后继微指令的控制器存储单元
- 增量与下址字段结合产生后继微指令的方法
- 下址字段分成:转移控制字段BCF和转移地址字段BAF
- BCF:控制微程序的转移情况
- BAF:转移后的微指令所在地址
- BAF有两种情况
- 与uPC的位数相等——转移灵活,但增加微指令长度
- 比uPC短——转移地址收到限制,但可缩短微指令长度
- 优点:微指令的下址字段很短,仅用于选择输入uPC计数器的某条线路有效
- 缺点:微程序转移不灵活,使得微程序在控存中的物理空间分配有困难
- 下址字段分成:转移控制字段BCF和转移地址字段BAF
- 多路转移方式:一条微指令存在多个转移分支的情况称为多路转移
- 微中断
- 微中断请求信号是由程序中断请求信号引起的
- 在完成现行指令的微程序后响应该微中断请求
- 由硬件产生对应微中断处理程序在控存中的入口地址
- 现行微指令/微地址
- 如何提高微程序的执行速度
- 微指令格式
- 水平型微指令——直接控制,字段编译(直接、间接)
- 特点:在一条微指令中定义并并行执行多个微命令
- 垂直型微指令
- 特点:不强调实现微指令的并行控制功能
- 定义:采用微操作码编译法,由操作码规定微指令的功能
- 微程序控制存储器
- 一般采用ROM存储器
- 也可采用RAM,为防止断电后内容消失,则必须开机后将外存中存放的微程序调入控存RAM,然后才能执行程序。
- 当前为了能不断扩展指令系统,通常采用ROM+RAM
- 动态微程序设计
- 定义:能根据用户要求改变微程序
- 优点:是计算机能更灵活、有效的适应于各种不同的应用目标
- 控制存储器的操作
- 串行方式
- 并行方式——比串行多了微指令寄存器
- 微周期=max(取微指令时间,执行微指令时间)
- 由于取微指令、执行微指令同时进行,故对于某些后继微地址的产生根据处理结果而定的微指令,则延迟一个微周期再取微指令
硬布线控制的计算机(RISC)——特点快
- 形成操作控制信号的逻辑框图
- 操作控制信号的产生
- 取值周期cy1所产生的信号对所有指令都是相同的,即与当前执行的指令无关,逻辑式得到最简单的形式
- 通常,同一个控制控制信号在若干条指令的某些周期(或再加上一些条件)中都需要,为此需要把它们组合起来
- 同种类型的指令所需要的控制信号大部分是相同的,仅有少量区别
- 在确定指令的操作码时(即对具体指令赋予二进制操作码),为了便于逻辑表达式的化简以减少逻辑电路数量,往往给予特别关注
- 设计组合逻辑电路从而产生需要的控制信号的步骤
- 实际逻辑问题
- 真值表
- 公式化简
- 逻辑电路图
- 设计目标:使用最少的电路元件达到最高的操作速度
流水线工作原理
- 每条指令的执行时间不变
- 每条指令处理结果的时间缩短
- 流水线处理速率最高时=流水线处于满载的稳定状态
- 流水线处理速率最低时=流水线未满载状态
- 为了满足在重叠时间段不同指令的机器周期能够完成指定的操作,将时间段=操作完成的最长时间
- 为了保证一个周期内流水线的输入信号不变,相邻时间段之间必须设置锁存器或寄存器
- 除了指令执行流水线,还有运算操作流水线
- 流水线阻塞
- 数据相关产生
- 假设第二条指令需要的操作数是第一条指令运算的结果,那么出现了数据相关
- 指令执行时间不同产生
- 程序转移的影响
- 异常情况响应中断
存储系统
存储系统的层次结构
- cache->主存->辅存
高速缓冲存储器
- cache的工作原理
- 局部性原理
- 主存地址和cache地址(P166 图7.2)
- 块长:块长一般取一个主存周期所能调出的信息长度(一般为16个字)
- cache的容量和块的大小是影响cache的效率的重要因素
- 命中率:CPU所要访问的信息是否在cache中的比率,而将所要访问的信息不在cache中的比率称为失败率
- 一致性策略
- 标志交换方式(写回法)
- 通过式写入(写通法)
- 写操作直接对主存进行,而不写入cache
- cache的平均存取时间=h*tc+(1-h)(tc+tm)
- 最好替换策略:按照被替换的字块是下一段时间最少使用的,由替换部件实现
- cache组织地址映像
- 直接映像
- cache中许多空的位置被浪费
- 主存地址:主存字块标记+cache字块地址+字块内地址
- 全相联映像
- 成本太高而不能采用
- 主存地址:主存字块标记+字块内地址
- 优点
- 方式灵活,缩小了块发生冲突的概率
- 缺点
- 增加了标识位位数
- 增加了寻找主存块在cache中对应块的时间
- 组相联映像
- 直接映像和全相联映像的折衷
- 主存地址:主存字块标记+组地址+块内地址
- 直接映像
虚拟存储器
- 存储管理部件(MMU)
- 现代计算机一般都有辅助存储器,但具有辅存的存储系统不一定是虚拟存储系统
- 虚拟存储系统的特点
- 允许用户程序用比主存大的多的空间来访问主存
- 每次访存都要进行虚实地址的转换
辅助存储器
- 半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器
辅助存储器的种类
- 磁表面存储器
- 数字式磁记录:硬盘、软盘和磁带
- 模拟式磁记录:录音、录像设备
- 光存储器:光盘
串行存储器
- 顺序存取存储器
- 直接存取存储器
辅助存储器的技术指标
- 存储密度:单位长度或单位面积磁层表面磁层所存储的二进制信息量
- 道密度:沿磁盘半径方向单位长度的磁道数称为道密度,单位为道/英寸tpi或道/毫米tpmm
- 位密度或线密度:单位长度磁道所能记录二进制信息的位数叫位密度或线密度,单位为位/英寸bpi或位/毫米bpmm
- 每个磁道所存储的信息量是一样的
- 存储容量:C = n × k × s
- 寻址时间:平均寻址时间Ta=平均找道时间Ts+平均等待时间Tw
- 数据传输率:Dr = D × V
- 误码率
- 价格
硬磁盘存储器的类型
- 固定磁头和移动磁头
- 可换盘和固定盘
磁盘存储器
- 温彻斯特磁盘简称温盘
- 磁盘存储器由驱动器(HDD),控制器(HDC)和盘片组成
- 最外面的同心圆叫0磁道,最里面的同心圆假设称为n磁道
- 驱动器的定位驱动系统实现快速精准的磁头定位
- 主轴系统的作用是带动盘片按额定转速稳定旋转
- 数据控制系统的作用是控制数据的写入和读出,包括寻址,磁头旋转,写电流控制,读出放大,数据分离
- 磁盘控制器有两个方向的接口
- 与主机的接口
- 与驱动器(设备)的接口
光盘
- 采用光存储技术
- 利用激光写入和读出
- 第一代光存储技术采用非磁性介质,不可擦写
- 第二代光存储技术,采用磁性介质,可擦写
- 光盘的存储原理
- 只读型和只写一次型:热作用(物理或化学变化)
- 可擦写光盘:热磁效应
输出输出(I/O)设备/系统
设备控制器(I/O)的基本功能
- 实现主机和外部设备之间的数据传送
- 实现数据缓冲,以达到主机同外部设备之间的速度匹配
- 接受主机的命令,提供设备接口的设备,并按照主机的命令控制设备
I/O 编址方式
- 统一编址:用取数、存数指令
- 不统一编址:有专门的 I/O 指令
I/O 与主机的连接方式
- 辐射式连接
- 每台设备都配有一套
- 控制线路和一组信号线
- 不便于增删设备
- 总线连接
- 便于增删设备
I/O设备
- 人机交互设备:键盘、鼠标等
- 计算机信息的驻留设备:硬盘、光盘等
- 机——机通信设备:MODEN等
为什么要设置接口?
- 实现设备的选择
- 实现数据缓冲达到速度匹配
- 实现数据串 并格式转换
- 实现电平转换
- 传送控制命令
- 反映设备的状态(“忙”、“就绪”、“中断请求”)
中断服务程序的流程
- 保护现场
- 程序断点的保护
- 寄存器内容的保护
- 中断服务
- 对不同的 I/O 设备具有不同内容的设备服务
- 恢复现场:出栈指令
- 中断返回:中断返回指令
单重中断和多重中断
- 单重中断:不允许中断 现行的 中断服务程序
- 多重中断:允许级别更高 的中断源(现行的 中断服务程序)
DMA 方式
- 主存和 I/O 之间有一条直接数据通道
- CPU 和 I/O 并行工作
- DMA 的三种工作方式
- CPU暂停方式
- CPU周期窃取方式
- 直接访问存储器
- DMA 接口功能
- 向 CPU 申请 DMA 传送
- 处理总线 控制权的转交
- 管理 系统总线、控制 数据传送
- 确定 数据传送的 首地址和长度,修正 传送过程中的数据地址和长度
- DMA 传送结束时,给出操作完成信号
- DMA 传送过程:预处理、数据传送、后处理
外设接口
- 设备与主机相连时,必须按照规定的物理互连特性、电气特性等进行连接,这些特性的技术规范称为接口标准