计算机组成原理_计算机组成原理4章计算题计算机组成原理第5章计算 - CSDN
计算机组成原理 订阅
《计算机组成原理》是由蒋本珊编著,2004年清华大学出版社出版的21世纪大学本科计算机专业系列教材。该书可作为高等院校计算机及相关专业“计算机组成原理”课程的教材,也可供从事计算机工作的工程技术人员参考。该书介绍了计算机的基本组成原理和内部工作机制。全书共分8章,主要内容分成两个部分:第1、2章介绍了计算机的基础知识;第3-8章介绍了计算机的各子系统(包括运算器、存储器、控制器、外部设备和输入输出子系统等)的基本组成原理、设计方法、相互关系以及各子系统互相连接构成整机系统的技术。 [1] 展开全文
《计算机组成原理》是由蒋本珊编著,2004年清华大学出版社出版的21世纪大学本科计算机专业系列教材。该书可作为高等院校计算机及相关专业“计算机组成原理”课程的教材,也可供从事计算机工作的工程技术人员参考。该书介绍了计算机的基本组成原理和内部工作机制。全书共分8章,主要内容分成两个部分:第1、2章介绍了计算机的基础知识;第3-8章介绍了计算机的各子系统(包括运算器、存储器、控制器、外部设备和输入输出子系统等)的基本组成原理、设计方法、相互关系以及各子系统互相连接构成整机系统的技术。 [1]
信息
页    数
346页
作    者
蒋本珊
类    别
21世纪大学本科计算机专业系列教材
装    帧
平装
书    名
计算机组成原理
出版时间
2004年3月1日
开    本
16开
出版社
清华大学出版社
ISBN
9787302081081
计算机组成原理成书过程
该书是中国计算机学会和清华大学出版社共同规划的面向全国高等院校计算机专业本科生的“21世纪大学本科计算机专业系列教材”之一。该教材由蒋本珊编著,在该书编写过程中得到了“21世纪大学本科计算机专业系列教材”编委会的指导和建议。重庆大学计算机系袁开榜教授审阅了该书的全部内容,提出了修改意见。该教材于2004年3月1日由清华大学出版社出版。 [2] 
收起全文
精华内容
参与话题
  • 【超详细】计算机组成原理总结及思维导图

    万次阅读 多人点赞 2020-08-09 23:37:49
    计算机组成 第一章 计算机系统概论 冯诺依曼型计算机特点 1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成 2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。...

    计算机组成

    第一章 计算机系统概论

    冯诺依曼型计算机特点

    • 1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成
    • 2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。
    • 3.指令由操作码和地址码组成
    • 4.指令在存储器中按执行顺序存放,由指令计数器(即程序计数器PC)指明要执行的指令所在的储存单元地址,一般按顺序递增,但可按运算结果或外界条件而改变
    • 5.机器以运算器为中心,输入输出设备与存储器间的数据传送都通过运算器

    区别以运算器为中心的计算机还是存储器的方法

    • 看输入设备能否直接与存储器相连,是的话就是以存储器为中心

    计算机系统

    • 硬件
      • 结构
        • 主机
          • cpu
            • ALU运算器
            • CU控制器
          • 存储器
            • 主存
            • 辅存
        • I/O
          • 输入设备
          • 输出设备
      • 主要技术指标
        • 机器字长
          • CPU一次能处理的数据位数
        • 存储容量
          • 存储容量=存储单元个数×存储字长
        • 运算速度
          • 单位时间执行指令的平均条数,MIPS
    • 软件
      • 系统软件
        • 用来管理整个计算机系统
          • 语言处理程序
          • 操作系统
          • 服务性程序
          • 数据库管理系统
          • 网络软件
      • 应用软件
        • 按任务需要编制成的各种程序

    第三章 运算方法和运算部件

    数据的表示方法和转换

    • 机器数正0负1
      • 符号数值化的带符号二进制数,称为机器数。
    • 真值:符号位加绝对值
    • 余三码:在8421码的基础上,把每个编码都加上0011
      • 当两个余三码想加不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位,本位加0011
    • 格雷码:任何两个相邻编码只有1个二进制位不同,而其余3个二进制位相同
    • 8421码
      • 权值从高到低为8、4、2、1
        • 算术运算时,需对运算结果进行修正。 方法:如果小于、等于(1001)2,不需要修正;否则加6修正

    带符号的二进制数据在计算机中的表示方法及加减法运算

    • 原码
      • 定义
        • 最高位为符号位0/1+数值的绝对值形式
      • 特点
        • (1)值+0,-0的原码分别为00000、10000,形式不唯一;
        • (2)正数的原码码值随着真值增长而增长
          •  负数的原码码值随着真值增长而减少
            
        • (3)n+1位原码表示定点整数范围-(2n-1)——2n-1
          •  n+1位原码表示定点小数范围 -(1-2-n)——1-2-n
            
      • 运算
        • 绝对值相加减,由数值大小决定运算结果符号
    • 补码
      • 定义,特点和运算
        • 运算:
          结果不超过机器所能表示范围时,[X+Y]补=[X]补+[Y]补
          减法运算:
          [X–Y]补=[X+(–Y)]补=[X]补+[–Y]补
        • 结论
          • 负数的补数=模+负数
          • 互为补数的绝对值相加=模
          • 在补数中,减法运算即加法运算
        • 定义
          • 定义法,即[X]补=2·符号位+X (MOD 2)
          • X为正数,则符号0+X的绝对值;X为负数,则X的绝对值取反+1。
        • 特点
          • 数值零的补码表示唯一
          • 正数补码码值随着真值增大而增大,负数补码码值随着真值增大而增大
          • n+1位补码所表示定点整数范围- 2n——2n-1,n+1位补码所表示定点小数范围-1——1-2-n
      • 加法运算逻辑事例
        • 过程
        • 加减法运算的溢出处理
          • 溢出定义
            • 当运算结果超出机器数所能表示的范围
          • 加减中,可能产生溢出的情况
            • 可能出现溢出
              • 同号数相加
              • 异号数相减
            • 不可能出现溢出
              • 异号数相加
              • 同号数相减
          • 判断溢出的方法
            • 法一:当符号相同两数相加,结果符号和加数(或被加数)不相同,则溢出
              • fa,fb表示两操作数(A,B)的符号位,fs为结果的符号位
            • 法二:任意符号相加,如果C=Cf,则结果正确,否则溢出;
              • C为数值最高位的进位,Cf为符号位的进位
            • 法三:采用双符号相加,如果fs1=fs2,则结果正确,否则溢出;
              • 运算结果的符号位为fs2;
              • 多符号位的补码,叫做变形补码;
              • 如果采用双符号位,当数为小数时,模m=4;当数为整数时,模m=2的n+2次方
    • 反码
      • 定义
        • a.定义法,即[X]反=(2-2-n)·符号位+X (MOD 2-2-n)
        • b.X是正数,[X]反=[X]原;X是负数,符号+数值取反。
      • 特点
        • 数值零的反码表示不唯一
        • 正数反码码值随着真值增大而增大,负数反码码值随着真值增大而增大
        • n+1位反码所表示定点整数范围- (2n-1)——2n-1,n+1位反码所表示定点小数范围-(1-2-n)——1-2-n
      • 加减运算特点
        • 在机器数范围内,反码运算满足[X+Y]反=[X]反+[Y]反
          ,[X-Y]反=[X]反+[-Y]反
      • 反码运算在最高位有进位时,要在最低位+1,此时要多进行一次加法运算,增加了复杂性,又影响了速度,因此很少采用
      • 由于反码运算是以2-2的-次方为模,所以,当最高位有进位而丢掉进位(即2)时,要在最低位+/-1
    • 移码
      • 由来及窍门
        • 为了从码值直接判断对应真值的大小,所以引进移码
        • [X]补的符号位取反,即得[X]移
      • 特点
        • 最高位是符号位,1表示正,0表示负
        • 数据0有唯一的编码
        • 移码码值随着真值增大而增大
        • n+1位移码所表示定点整数范围- 2n——2n-1, n+1位移码所表示定点小数范围-1——1-2-n
        • 计算机中,移码常用于表示阶码,故只执行加、减运算
        • 计算机中,移码运算公式需要对结果进行修正
      • 浮点数的阶码运算
        • 移码定义:[X]移=2的n次方+X
        • 补码定义:[X]补=2的n+1次方+Y
        • 阶码求和公式
          • [X]移+[Y]补=[X+Y]移 mod2的n+1次方
          • [X]移+[-Y]补=[X-Y]移
          • 判溢方法
            • 双符号位参加运算,最高符号位恒置0
            • 当结果最高符号位=1则溢出
              • 低位符号=0,则上溢;低位符号=1,则下溢;
            • 当结果最高符号位=0则未溢出
              • 低位符号=0,负数;低位符号=1,正数
          • 说明:如果阶码运算的结果溢出,上述条件不成立。此时,使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用0参加加减运算,则溢出条件是结果的最高符号位为1。此时低位符号为0时,表明结果上溢;为1时,表明结果下溢。当最高符号位为0时,表明没有溢出,低位符号位为1,表明结果为正;为0时表明结果为负。
    • 补,反,原,移码的相互转换
      • 反码-》原码
        • 方法:符号位不变,正数不变,负数数值部分取反。
      • 补码-》原码
        • 方法1:正数不变,负数数值部分求反加1。
        • 方法2:串行转换
          • 从最后开始数,遇到第一个“1”,除第一个“1”不变,前面数字分别取反
      • 移码-》原码
        • 方法:移码转换为补码,再转换为原码
    • 数据从补码和反码表示形式转换成原码
      • 自低位开始转换,从低位向高位,在遇到第一个1之前,保存各位的0不变,第一个1也不变,以后得各位按位取反,最后保持符号位不变,经历一遍后,即可得到补码
    • 定点数和浮点数
      • 定点数
        • 小数点固定在某个位置上的数据
          • 32位定点小数、定点整数补码的范围
            • 32位定点小数-1~1-2-31
            • 32位定点整数-231~231-1
      • 浮点数
        • 根据IEEE754国际标准,常用的浮点数有两种格式
          • Nmax=Mmax2的Emax
            Nmin=Mmin
            2的Emax
          • 单精度(32位)=8位阶码+24位尾数
            • 单精度浮点数(32位),阶码8位(含一位符号位),尾数24(含一位符号位),取值范围:-2的127次方~(1-2的-23次方)*2的127次方
          • 双精度(64位)=11位阶码+53位尾数
            • 双精度浮点数(64位),阶码11位(含一位符号位),尾数53位(含一位符号位),取值范围:-2的1023次方~(1-2的-52次方)*2的1023次方
        • 为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值应大于或等于(0.5)10
          • 左规
          • 右规
        • 小数点位置可以浮动的数据。
        • 表示形式:N = M · RE
        • 计算机中存储形式
          • Ms+Es+E(n位)+M(m位)
            • 阶码E,一般为整数,用补码或者移码表示;
            • 尾数M,一般为规格化的定点小数,用补码表示;

    二进制乘法运算

    • 定点原码一位乘法
      • 两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积
        • [X·Y]原=[X]原·[Y]原=(X0⊕Y0)|(X1X2…Xn) · (Y1Y2…Yn)
      • 几点结论
        • 从低到高根据乘数每位0、1决定相加被乘数还是0;
        • 相加数每次左移,最后一起求积;
        • 符号由异或决定
      • 表达式
      • 电路框架
      • 修正
        • 1.在机器内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每每求得一个相加数,就与上次部分积相加
        • 2.人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(或被乘数)的两倍,如按此算法在机器中运算,加法器也需增到两倍。观察计算过程很容易发现,在求本次部分积时,前一次部分积的最低位不再参与运算,因此可将其右移一位,相加数可直送而不必偏移,于是用N位加法器就可实现两个N位数相乘
        • 部分积右移时,乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接受部分积右移出来的一位,因此,完成乘法运算后,A寄存器中保存乘积的高位部分,乘数寄存器中保存乘积低位部分
      • 例题
      • 控制流程图
    • 定点补码一位乘法
      • 表达式
      • [X·Y]补=[X]补·(-Y0+Y1·2-1+….Yn·2-n)
      • 注意:此处为双符号位,当最后乘积高位为负数时,需要补充加上[-|x|]补的操作

    二进制除法

    • 加减交替法
      • 当余数为正时,商上1,求下一位商的办法是,余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法是,余数左移一位,再加上除数。此方法不用恢复余数,所以又叫不恢复余数法。但若最后一次上商为0而又需得到正确余数,则在这最后扔需恢复余数

    浮点数的运算方法

    • 浮点数的加减法运算
      • 1.对阶操作
        • 求出△E,再对小的进行移位
      • 2.尾数的加减运算
      • 3.规格化操作
        • 规则简化是符号位和数值最高位不同,即00.1xxxx或11.0xxxx
      • 4.舍入
        • 超出表示范围的高位为1舍入
      • 5.检查阶码是否溢出
    • 浮点数的乘除法运算
      • 1.浮点数阶码运算(移码)
        • 牢记公式
          • [X+Y]移=[X]移+[Y]补
          • [X–Y]移=[X]移+[–Y]补
      • 2.按照一位乘或加减交替除运算
        • 先确定符号,在列式子计算

    运算部件

    • ABC寄存器作业
    • 定点运算部件
    • 浮点运算部件
      • 由阶码运算部件和尾数运算部件组成

    数据校验码

    • 码距
      • 任意两个合法码之间不相同的二进制位数的最小值
        • 要具有差错能力,则码距>1
        • 合理增大码距,就能提高发现错误的能力
    • 鉴定方法
      • 有无差错能力
      • 是否能合理增大码距
    • 奇偶校验码
      • 能发现数据代码中一位或奇数个位出错情况的编码
      • 实现原理是使码距由1增加到2
        • 步骤1:在字节高位补充一位,即校验位
        • 步骤2:依据图3.10电路形成原始数据D8…D1的校验位值
        • 步骤3:将9位数据写入主存
        • 步骤4:读出该数据时,读取数据D8…D1通过图3.10判定合法性
      • 电路图
      • 结论
        • (1)奇偶校验码只能发现一位或奇位错,且不能确定出错位置
        • (2)奇偶校验码的码距=2
    • 海明校验码
      • 海明码位号和校验位位号的关系
        • Pi的位置在2的i-1次方,但是除了最高位
      • 笔记
        • 3,5,7||3,6,7||5,6,7
      • 电路图
      • 海明码码距为4
      • 纠一位错,查一位错
        • 2∧r≥k+r+1
      • 纠一位错,查两位错
        • 2∧(r–1)≥k+r
    • 循环冗余校验码(CRC)
      • CRC码可以发现并纠正信息存储或传送过程中连续出现的多位错误
      • CRC码一般是指k位信息码之后拼接r位校验码
      • 模2运算
        • 模2加减
        • 模2乘除
        • 异或逻辑
      • CRC的译码与纠错
        • 更换不同的待测码字可以证明:余数与出错位的对应关系是不变,只与码制和生成多项式有关

    第四章 主存储器

    主存储器处于全机中心低位

    辅助存储器或称为外存储器,通常用来存放主存的副本和当前不在运行的程序和数据

    主存储器的类型

    • 随机存储器RAM
    • 非易失性存储器

    主存储器的主要技术指标

    • 主存容量
      • 64×8等等
      • 计算机可寻址的最小信息单元是一个存储字
      • 主存储器存储单元的总数
    • 存取速度
      • 由存储器存取时间和存储周期表示
    • 存储器存取时间
      • 启动一次存储器操作(读/写)到完成该操作所经历的时间
    • 存储周期
      • 连续启动两次独立的存储器操作所间隔的最小时间

    主存储器的基本操作

    • CPU通过使用AR(地址寄存器)和DR(数据寄存器)和主存进行数据传送
    • 若AR为K位字长,DR为n位字长,则允许主存包含2∧k个可寻址单元
    • CPU与主存采取异步工作方式,以ready信号表示一次访存操作的结束

    读/写存储器

    • 随机存储器(RAM)按存储元件在运行中能否长时间保存信息分为静态存储器和动态存储器
    • 静态存储器,利用触发器保存信息,只要不断电,信息就不会丢失
      • 电路简图
      • MOS静态存储结构图
    • 动态存储器,利用MOS电容存储电荷来保存信息,需要不断给电容充电才能使信息来保存信息
      • 电路简图
      • 16K×1位动态存储器框图
      • 再生
        • 集中式
        • 分散式
        • 时间小于或等于2ms
        • 行读出再生

    非易失性半导体存储器

    • 只读存储器ROM
      • 只读不能写
    • 可编程序的只读存储器PROM
      • 一次性写入
    • 可擦可编程序的只读存储器EPROM
      • 可多次写入、读出
    • 可电擦可编程序只读存储器E2PROM
      • 可多次读出但写入次数有限
    • 快擦除读写存储器Flash Memory
      • 重复写入、读出

    存储器的组成与控制

    • 存储器容量扩展
      • 位扩展:用多个存储器芯片对字长进行扩充
      • 字扩展:增加存储器中字的数量,提高存储器的寻址范围
      • 字位扩展,假设一个存储器的容量为M×N位,若使用L×K位存储器芯片,那么,这个存储器共需要(M/L)×(N/K)个存储器芯片

    多体交叉存储器

    • 提高访存速度的方式
      • 采用高速器件
      • 采用层次结构
      • 调整主存结构
    • 计算机中大容量的主存可由多个存储体组成,每个存储体都具有自己的读写线路,地址寄存器和数据寄存器,称为"存储模块"。这种多模块存储器可以实现重叠与交叉存取
    • 第i个模块M的地址编号应按下式给出:M×j+i
    • 连续地址分布在相邻的不同模块内,而同一模块内的地址都是不连续的

    第五章:指令系统

    指令系统的发展

    • 20世纪70年代末人们提出了便于VLSI实现的精简指令系统计算机,简称RISC,同时将指令系统越来越复杂的计算机称为复杂指令系统计算机,简称CISC

    指令格式

    • 结构(操作码+地址码)
      • 操作码
      • 操作数的地址
      • 操作结果的存储地址
      • 下一条指令的地址
    • 地址码
      • 零地址指令
      • 一地址指令
        • 寻址范围 224 = 16 M
          • 2次访存
      • 二地址指令
        • 寻址范围 212 = 4 K
          • 4 次访存
      • 三地址指令
        • 寻址范围 28 = 256
          • 4 次访存
      • 多地址指令
        • 寻址范围 26 = 64
          • 4 次访存
    • 指令字长
      • 取决因素
        • 操作码的长度
        • 操作数地址的长度
        • 操作数地址的个数
      • 指令字长 固定
        • 指令字长 = 存储字长
      • 指令字长 可变
        • 按字节的倍数变化
      • 对准边界存放
        • 不连续存放数据
        • 按字节编址
          • a.半字地址最低位恒为0
          • b.字地址最低两位恒为0
          • c.双字地址的最低三位恒为0
        • 减少访存次数,浪费存储空间
      • 不 对 准 边 界 存 放
        • 连续存放数据
        • 节约存储器空间,但增加访存次数,对多字节数据存在调整高 低字节位置的问题
    • 寻址方式
      • 确定本条指令的数据地址
      • 下一条要执行的指令地址的方法
    • 指令操作码的扩展技术
      • 指令操作码的长度决定了指令系统中完成不同操作的指令数
      • 若某机器的操作码长度固定为K位,则它最多只能有2^K条不同指令
      • 指令操作码两种格式
        • 固定格式
          • 优点:对于简化硬件设计,减少指令译码时间非常有利
          • 缺点:指令少,浪费地址
        • 可变格式(分散地放在字的不同字段)
          • 优点:指令多,缩短指令平均长度,减少程序总位数,增加指令字所能表示的操作信息
          • 缺点:译码复杂,控制器的设计难度增大
      • 拓展方法的一个重要原则
        • 使用频度(即指令在程序中出现概率)高的指令应分配短的操作码,使用频度低的指令相应地分配较长的操作码
    • 指令系统的兼容性
      • 保持系统向上兼容

    精简指令系统计算机(RISC)——用于小型机

    复杂指令系统计算机(CISC)——用于大型机

    第六章:中央处理器

    计算机工作过程

    • 加电——》产生reset信号——》执行程序——》停机——》停电
    • 产生reset信号的任务
      • 任务一:使计算机处于初始状态
      • 任务二:从PC中取出指令地址
    • 控制器作用是协调并控制计算机各部件执行程序的指令序列

    控制器的组成

    • 控制器的功能
      • 取指令
        • 发出指令地址,取出指令的内容
      • 分析指令
        • (1)对操作码译码产生操作相应部件的控制信号
        • (2)根据寻址方式形成操作数地址
      • 执行指令
        • (1)根据分析指令后产生控制信号、操作数地址信号序列,通过CPU及输入输出设备的执行实现每条指令的功能
        • (2)结果回送存储器
        • (3)形成下条指令的地址
      • 控制程序和数据的输入和结果输出
      • 对异常情况和某些请求的处理
        • 异常情况的处理:例如算术运算的溢出、数据传送奇偶错
        • 某些请求的处理
          • “中断请求”信号
          • DMA请求信号
    • 控制器的组成
      • 程序计数器(PC)
        • 即地址寄存器,用来存放当前正在执行的指令地址或即将要执行的下一条指令地址
      • 指令寄存器(IR)
        • 用以存放当前正在执行的指令,以便在指令执行过程中控制完成一条指令的全部功能
      • 指令译码器或操作码译码器
        • 对指令寄存器中的操作码进行分析解释,产生相应的控制信号
      • 脉冲源及启停线路
        • 脉冲源参数一定评率的脉冲作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(reset)
      • 时序控制信号形成部件
        • 当程序启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控制功能部件的反馈信号调整时序控制信号
          • 控制存储器
          • 微指令寄存器
            • 控制字段+下址
      • 周期概念
        • 指令周期
          • 完成一条指令所需的时间,包括取指令、分析指令、执行指令
        • 机器周期
          • 也称为CPU周期,是CPU从内存中读取一个指令的时间,通常等于取指周期
        • 时钟周期
          • 称为节拍脉冲或T周期,是基准脉冲信号
      • 三条假设
        • 程序是存放在主存中的,当执行完一条指令后才从主存中取下一条指令(非流水线)
        • 指令的长度是固定的,并限制了寻址方式的多样化
        • 在程序运行前,程序和数据都已存在主存中
    • 指令执行过程(运算器和控制器配合)
      • 组成控制器的基本电路
        • 具有记忆功能的触发器以及由它组成的寄存器,计数器和存储单元
        • 没有记忆功能的门电路及由它组成的加法器,算术逻辑运算单元(ALU)和各种逻辑电路
      • 举例
        • 加法
          • 取指令——》计算操作数地址——》取操作数——》执行结果并运算送结果
        • 要能看懂时序图
          • 哪些指令在对应的时间有效
        • 条件转移指令
          • 取指令——》计算地址
      • 控制器的功能就是按每一条指令的要求产生所需的控制信号
      • 产生控制信号的方法
        • 微程序控制
        • 硬布线控制

    微程序控制计算机的基本工作原理

    • 基本概念
      • 微指令
        • 在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作
      • 微命令
        • 将指令分为若干条微指令,按次序执行这些微指令。组成微指令的操作即微命令
      • 微程序
        • 计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序
      • 控制存储器
        • 微程序一般是存放在专门的存储器中的,由于该存储器主要存放控制命令(信号)与下一条执行的微指令地址(简称下址)
        • 存储单元内容
          • (1)微指令的控制信号——控制位
          • (2)下条微指令的地址——下址字段
        • 存储芯片:ROM
      • 执行一条指令实际上就是执行一段存放在控制存储器中的微程序
    • 实现微程序控制的基本原理
      • 控制信号(23条)
      • 书上P123页为加法的过程
      • 微指令格式:控制字段+下址字段
      • 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计数器的某条线路有效
        • 缺点
          • 微程序转移不灵活,使得微程序在控存中的物理空间分配有困难
      • 多路转移方式
        • 一条微指令存在多个转移分支的情况称为多路转移
      • 微中断
        • 1.微中断请求信号是由程序中断请求信号引起的
        • 2.在完成现行指令的微程序后响应该微中断请求
        • 3.由硬件产生对应微中断处理程序在控存中的入口地址
    • 如何提高微程序的执行速度
    • 微指令格式
      • 水平型微指令——直接控制,字段编译(直接、间接)
        • 特点:在一条微指令中定义并并行执行多个微命令
      • 垂直型微指令
        • 特点:不强调实现微指令的并行控制功能
        • 定义:采用微操作码编译法,由操作码规定微指令的功能
    • 微程序控制存储器
      • 一般采用ROM存储器
      • 也可采用RAM,为防止断电后内容消失,则必须开机后将外存中存放的微程序调入控存RAM,然后才能执行程序。
      • 当前为了能不断扩展指令系统,通常采用ROM+RAM
    • 动态微程序设计
      • 定义:能根据用户要求改变微程序
      • 优点:是计算机能更灵活、有效的适应于各种不同的应用目标
    • 控制存储器的操作(P136)
      • 串行方式
      • 并行方式——比串行多了微指令寄存器
        • 微周期=max(取微指令时间,执行微指令时间)
        • 由于取微指令、执行微指令同时进行,故对于某些后继微地址的产生根据处理结果而定的微指令,则延迟一个微周期再取微指令

    硬布线控制的计算机(RISC)——特点快

    • 形成操作控制信号的逻辑框图(P141)
    • 操作控制信号的产生
      • 取值周期cy1所产生的信号对所有指令都是相同的,即与当前执行的指令无关,逻辑式得到最简单的形式
      • 通常,同一个控制控制信号在若干条指令的某些周期(或再加上一些条件)中都需要,为此需要把它们组合起来
      • 同种类型的指令所需要的控制信号大部分是相同的,仅有少量区别
      • 在确定指令的操作码时(即对具体指令赋予二进制操作码),为了便于逻辑表达式的化简以减少逻辑电路数量,往往给予特别关注
    • 设计组合逻辑电路从而产生需要的控制信号的步骤
      • 1.实际逻辑问题2.真值表3.公式化简4.逻辑电路图
    • 设计目标
      • 使用最少的电路元件达到最高的操作速度

    流水线工作原理

    • 几点结论
      • 每条指令的执行时间不变
      • 每条指令处理结果的时间缩短
      • 流水线处理速率最高时=流水线处于满载的稳定状态
      • 流水线处理速率最低时=流水线未满载状态
      • 为了满足在重叠时间段不同指令的机器周期能够完成指定的操作,将时间段=操作完成的最长时间
      • 为了保证一个周期内流水线的输入信号不变,相邻时间段之间必须设置锁存器或寄存器
      • 除了指令执行流水线,还有运算操作流水线
    • 相关问题
      • 流水线阻塞(P163-6.15)
        • 数据相关产生
          • 假设第二条指令需要的操作数是第一条指令运算的结果,那么出现了数据相关
        • 指令执行时间不同产生
        • 程序转移的影响
        • 异常情况响应中断

    第七章:存储系统

    存储系统的层次结构

    • 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
    • 误码率
    • 价格

    硬磁盘存储器的类型

    • (1) 固定磁头和移动磁头
    • (2) 可换盘和固定盘

    磁盘存储器

    • 温彻斯特磁盘简称温盘
    • 磁盘存储器由驱动器(HDD),控制器(HDC)和盘片组成
    • 最外面的同心圆叫0磁道,最里面的同心圆假设称为n磁道
    • 驱动器的定位驱动系统实现快速精准的磁头定位
    • 主轴系统的作用是带动盘片按额定转速稳定旋转
    • 数据控制系统的作用是控制数据的写入和读出,包括寻址,磁头旋转,写电流控制,读出放大,数据分离
    • 磁盘控制器有两个方向的接口
      • 与主机的接口
      • 与驱动器(设备)的接口

    光盘

    • 采用光存储技术
      • 利用激光写入和读出
      • 第一代光存储技术
        • 采用非磁性介质
          • 不可擦写
      • 第二代光存储技术
        • 采用磁性介质
          • 可擦写
    • 光盘的存储原理
      • 只读型和只写一次型
        • 热作用(物理或化学变化)
      • 可擦写光盘
        • 热磁效应

    第九/十章:输出输出(I/O)设备/系统

    设备控制器(I/O)的基本功能

    • 实现主机和外部设备之间的数据传送
    • 实现数据缓冲,以达到主机同外部设备之间的速度匹配
    • 接受主机的命令,提供设备接口的设备,并按照主机的命令控制设备

    I/O 编址方式

    • (1) 统一编址:用取数、存数指令
    • (2) 不统一编址:有专门的 I/O 指令

    I/O 与主机的连接方式

    • 辐射式连接
      • 每台设备都配有一套
      • 控制线路和一组信号线
      • 不便于增删设备
    • 总线连接
      • 便于增删设备

    I/O设备

    • 人机交互设备
      • 键盘、鼠标等
    • 计算机信息的驻留设备
      • 硬盘、光盘等
    • 机——机通信设备
      • MODEN等

    为什么要设置接口?

      1. 实现设备的选择
      1. 实现数据缓冲达到速度匹配
      1. 实现数据串 并格式转换
      1. 实现电平转换
      1. 传送控制命令
      1. 反映设备的状态
      • (“忙”、“就绪”、“中断请求”)

    中断服务程序的流程

    • (1) 保护现场
      • 程序断点的保护
      • 寄存器内容的保护
    • (2) 中断服务
      • 对不同的 I/O 设备具有不同内容的设备服务
    • (3) 恢复现场
      • 出栈指令
    • (4) 中断返回
      • 中断返回指令

    单重中断和多重中断

    • 单重 中断
      • 不允许中断 现行的 中断服务程序
    • 多重 中断
      • 允许级别更高 的中断源
      • 中断 现行的 中断服务程序

    DMA 方式

    • 主存和 I/O 之间有一条直接数据通道
    • CPU 和 I/O 并行工作
    • DMA 的三种工作方式
      • (1) CPU暂停方式
      • (2) CPU周期窃取方式
      • (3)直接访问存储器
    • DMA 接口功能
      • (1) 向 CPU 申请 DMA 传送
      • (2) 处理总线 控制权的转交
      • (3) 管理 系统总线、控制 数据传送
      • (4) 确定 数据传送的 首地址和长度,修正 传送过程中的数据地址和长度
      • (5) DMA 传送结束时,给出操作完成信号
    • DMA 传送过程
      • 预处理、数据传送、后处理

    外设接口

    • 设备与主机相连时,必须按照规定的物理互连特性、电气特性等进行连接,这些特性的技术规范称为接口标准

    计算机组成原理思维导图图片

    思维导图下载地址

    github:希望大家可以给一个star,谢谢支持

    码云:希望大家可以给一个star,谢谢支持

    展开全文
  • 计算机组成原理期末复习【超实用】

    万次阅读 多人点赞 2020-04-26 19:07:51
    计算机组成原理(第二版)唐朔飞 编著(课本有些地方还不错,可以下载电子版看看) 五道解答题30‘=9’(9个知识点)+6’+6’+4’+5’ 我依据老师的考题范围手动整理,有什么问题or想添加的知识点请在评论下方留言...

    计算机组成原理(第二版)唐朔飞  编著(课本有些地方还不错,可以下载电子版看看)

    b站2小时讲解链接 https://www.bilibili.com/video/BV1x4411q7Fz/

    五道解答题30‘=9’(9个知识点)+6’+6’+4’+5’ 

    我依据老师的考题范围手动整理,有什么问题or想添加的知识点请在评论下方留言!实时更新,助诸位共进步!

    一、解答题

    1. 影响流水线性能的因素主要有哪几种?请简要加以说明。P348

        结构相关:是当多条指令进入流水线后,硬件资源满足不了指令重叠执行的要求时产生的。不同指令争用同一功能部件产生资源冲突。

        数据相关:是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的。可能改变对操作数的读写访问顺序。

        控制相关:是当流水线遇到分支指令和其它改变PC值的指令时引起的。

    2. 为了保证DRAM的存储信息不遭破坏,必须在电荷漏掉前就进行充电,称为刷新。常见的刷新方式有哪三种,试分析它们间的区别。P86

        集中刷新:是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

        分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。

        异步刷新:是前两种方式的结合,既可缩短“死时间”,又充分利用最大刷新间隔2ms的特点。

    3. 说明计算机九大寻址方式及有效地址EA计算方法。P311

        立即寻址:无需寻址        隐含寻址:无需寻址       直接寻址:EA=A        间接寻址:EA=(A)         相对寻址:EA=(PC)+A

        基址寻址:EA=(BR)+A    变址寻址:EA=(IX)+A    寄存器寻址:EA=Rj    寄存器间接寻址:EA=(Rj)

    4. 按传输信息的不同,系统总线可分为哪几类?并加以简单描述。P43

        数据总线:用来传输各种功能部件间的数据信息,是双向传输总线,其位数与机器字长、存储字长有关,一般为8/16/32位。

        地址总线:主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。

        控制总线:用来发送各种控制信号的传输线,通常对任意控制线而言,它的传输是单向的。

    5. 试说明具有Cache-主存结构的计算机,CPU在访问存储器时的工作流程。P110

        CPU欲读取主存某字时,有两种可能:一种是所需要的字已经在缓存中,即可直接访问Cache;另一种是所需的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传输)。当Cache未满时,主存块可被调入缓存块中,称该主存块与缓存块建立了联系。当Cache已满时,无法接收来自主存块的信息,就由Cache内的替换机构按一定的算法从Cache内移除哪块返回主存,并把新的主存块调入Cache中。

    6. 在写操作时,要考虑Cache和主存的数据一致性的问题,试说明写回法和写直达法的区别。P113

        写回法(拷回法):写操作时只把数据写入Cache而不写入主存(减少了主存的写操作次数),写操作时间=访Cache时间。但当(读操作且Cache已满时)Cache数据被替换出来时才写回主存,增加了Cache复杂性。

         写直达法(存直达法):写操作时数据既写入Cache又写入主存,写操作时间=访存时间,它能随时保证主存与Cache的数据始终一致,但增加了访存次数。(读操作时不涉及对主存的写操作,更新策划较容易实现。)

    7. 说明补码定点加减运算,判断溢出的两种方法。P239-240

         一位符号位判断溢出:参加操作的两个数(减法时即为被减数和“求补”后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。

         两位符号位判断溢出:若结果双符号位相同,则未溢出;若双符号位不同,则溢出。最高符号位为真结果符号。

    8. 说明Cache-主存的地址映像有哪三种方式,说明他们的基本映像原理。P117

        直接映射:将主存空间按Cache的尺寸分区,每区内相同的块号映像到Cache中相同的块位置。优:实现简单;缺:不够灵活

        全相连映射:主存中的每一个字块可映射到Cache任何一个字块位置上,当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较以确认是否命中。

        组相连映射:是直接映射和全相连映射的一种折中方案,这种方案将存储空间分为若干组,各组间是直接映射,而组内各块间是全相连映射。

    9. 试说明指令周期,机器周期,时钟周期之间的关系。P386

         一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。

    10. 试说明单译码方式(线选法)和双译码方式(重合法)的区别。P75

          存储芯片内的地址译码器有两种方式:一种是线选法,适用于地址线较少的芯片。地址信号只需经过一个方向的译码器就可以选中某一存储单元的所有位,结构较简单。

          另一种是重合法,适用于地址线较多的芯片。地址线分为两组,分别经行地址译码器和列地址译码器,通过两者“与”选中存储单元才能进行读/写。

    11. 分别说明一下名词MAR,MDR,CU,IR,PC的中文名称及该器件的主要功能。P14-16

         MAR是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数。

         MDR是存储器数据寄存器,用来存放从存储体某单元取出or存入的代码,其位数与存储字长相等。

    如4K × 8位的存储芯片,有log2(4K)=12条地址线,8条数据线

         CU是控制单元,用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。

         IR是指令寄存器,用来存放当前指令,IR的内容来自MDR。

         PC是程序计数器,用来存放当前欲执行指令的地址,它与主存的MAR间有一条直接通道且具有自动加1功能,即可自动形成下一条指令的地址。

    12. 计算机的五大基本组成是什么?P9

          运算器:用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器里。

          存储器:用来存放数据和程序。

          控制器:用来控制、指挥程序和数据的输入、运行以及处理运算的结果。

          输入设备:用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。

          输出设备:可将机器运算结果转换为人们熟悉的信息形式,如打印机输出等。

    13. 设某计算机采用微程序控制器,试说明微程序控制器的基本工作原理(即CPU执行指令时的操作过程)。P405

          首先将用户程序的首地址送到PC,然后进入

          取指阶段:①将取指周期微程序首地址M→CMAR

                            ②取微指令:将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,记为CM(CMAR)→CMDR

                            ③产生微操作指令:第一条微指令的操作控制字段中为“1”的各位发出控制信号,如PC→MAR、I→R,命令主存    接收程序首地址并进行读操作。

                            ④形成下一条微指令的地址:此微指令的顺序控制字段指出了下一条微指令的地址为M+1,将M+1送至CMAR,即Ad(CMDR)→CMAR

                            ⑤取下一条微指令:将对应控存M+1地址单元中的第二条微指令读到CMDR中,即CM(CMAR)→CMDR

                            ⑥产生微操作指令:由第二条微指令的操作控制字段中对应“1”的各位发出控制信号,如M(MAR)→MDR使对应主存2000H地址单元中的第一条机器指令从主存中读出,送至MDR中。

                            ⑦形成下一条微指令地址:将第二条微指令下地址字段指出的地址M+2送至CMAR,即Ad(CMDR)→CMAR

          执行阶段:①取数指令微程序首地址的形成:当取数指令存入IR后,其操作码OP(IR)直接送到微地址形成部件,该部件的输出即为取数指令微程序的首地址P,且将P送至CMAR,记作OP(IR)→微地址形成部件→CMAR

                            ②取微指令:将对应控存P地址单元中的微指令读到CMDR中,记为CM(CMAR)→CMDR

                            ③产生为操作命令:由微指令操作控制字段中对应“1”的各位发出控制信号,如Ad(IR)→MAR、I→R,命令主存读操作数。

                            ④形成下一条微指令地址:将此条微指令下地址字段指出的P+1送至CMAR,即Ad(CMDR)→CMAR

    14. 试说明汉明码的校验原理(即如何生成汉明码,以及汉明码的检验原理),默认偶校验。P110

         汉明码的生成步骤:①确定校验位的位数 2^k ≥ n + k +1

                                         ②确定校验位的位置

                                         ③分组

                                         ④生成校验位的值

                                         ⑤得出结论

          检验原理:将已知的汉明码按照前三步正常进行,到第四步时,用H接收P和D一起异或,然后把H倒序排列,若都为0,即无错。否则,该序列对应的二进制位置出错。

    15. 试说明循环冗余校验码的校验原理。P144

           循环冗余校验码的生成步骤:①确定校验位的位数 r

                                                          ②写出信息多项式 M(x)

                                                          ③将信息多项式左移 r 位,得到 M(x)·x^r

                                                          ④用 M(x)·x^r 除以生成多项式 G(x),得到 r 位校验位

                                                          ⑤M(x)·x^r+R(x) 得到CRC码

         检验原理:根据余数判出错位,取反纠错。

    二、计算题

    第6章  运算方法和运算部件

    定点原码一位乘:符号位单独计算,运算数取绝对值参与计算。

    定点原码两位乘:提高了乘法速度,但仍基于重复相加和移位的思想,且随着乘数位数的↗,重复次数↗,仍影响乘法速度。计算较复杂,不常考,自行看书!

    并行阵列乘法器:可大大提升乘法速度。(拓展)

    定点补码一位乘:分校正法比较法(Booth法)。校正法中被乘数符号任意,乘数分正、负两种情况。若乘数为正,则按原码一位乘的算法计算,符号位不用另外计算,被乘数的符号位参与计算若乘数为负,则按原码一位乘的算法计算,被乘数和乘数取绝对值参与计算,最后加上 [-x]补 校正。虽然可将乘数和被乘数互换,使乘数保持+,不必校正,但当两数均为-时必须校正。∵Booth的运算规则不受乘数符号的约束 ∴控制线路较简明,在计算机中普遍使用,常考!

    定点补码两位乘:自行看书!

    区别:补码乘法中,乘积得符号位是在运算过程中自然形成的。而原码乘法中,符号位与数值部分分开计算。

    困扰作者得问题是:被乘数和乘数互换位置的其它情况在此不一 一列举,以上三个例子,两个源于书本,同一组数据,书上的校正法却不能全部适用。望指点!

    较复杂,不怎么考,在此不赘述!

    第四章  主存储器

            

    第七章  指令系统

    教材P324

    第3篇  中央处理器

    教材P384

    看下方!!

        ←参考P412例10.6,上题改正为

    已确定是对的!

    第四章  存储系统

    书上P122原题!

    鉴于我用公式写易误导大家,我上传书上原解如下:

    4.4  辅助存储器

    1. 若某磁盘有两个记录面,每面80个磁道,每磁道18扇区,每扇区存512字节,计算该磁盘的容量是多少?

    解:         18×512×80×2B=1440KB

    举个栗子( o=^•ェ•)o

    如果对你有帮助,可以给点小赏。记得关注我呦!

    展开全文
  • 计算机组成原理知识点

    万次阅读 多人点赞 2017-09-25 11:18:11
    计算机组成原理(Computer Organization)是依据计算机体系结构,在确定且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这...

    计算机体系结构(Computer Architecture)主要研究硬件和软件功能的划分,确定硬件和软件的界面,哪部分功能由硬件系统来完成,哪部分功能由软件系统来完成。

    计算机组成原理(Computer Organization)是依据计算机体系结构,在确定且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这点上说计算机组成原理是计算机体系结构的逻辑实现。

    计算机实现(Computer Implementation)是计算机组成的物理实现,包括中央处理器、主存储器、输入输出接口和设备的物理结构,所选用的半导体器件的集成度和速度,器件、模块、插件、底板的划分,电源、冷却、装配等技术,生产工艺和系统调试等各种问题。总之,就是将完成逻辑设计的计算机组成方案转换成真实的计算机,也就是将满足设计、运行、价格等各项要求的计算机系统真正地制作并调试出来。

    计算机组成原理

    【考查目标】        

    1. 理解单处理器计算机系统中各部件的内部工作原理,组成结构以及相互连接方式,具有完整的计算机系统的整机概念.

    2. 理解计算机系统层次化结构概念,熟悉硬件与软件间的界面,掌握指令集体系结构的基本知识和基本实现方法

    3. 能够运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问题进行计算,分析,并能对一些基本部件进行简单设计.

    一, 计算机系统概述

    (一) 计算机发展历程

    第一台电子计算机ENIAC诞生于1946年美国宾夕法尼亚大学.ENIAC用了18000电子管,1500继电器,重30吨,占地170m2,耗电140kw,每秒计算5000次加法.冯•诺依曼(VanNeumann)首次提出存储程序概念,将数据和程序一起放在存储器,使编程更加方便.50年来,虽然对冯•诺依曼机进行很多改革,但结构变化不大,仍称冯•诺依曼机.

    一般把计算机的发展分为五个阶段:

    发展阶段

    时间

    硬件技术

    速度/(次/秒)

    第一代

    1946-1957

    电子管计算机时代

    40 000

    第二代

    1958-1964

    晶体管计算机时代

    200 000

    第三代

    1965-1971

    中小规模集成电路计算机时代

    1 000 000

    第四代

    1972-1977

    大规模集成电路计算机时代

    10 000 000

    第五代

    1978-现在

    超大规模集成电路计算机时代

    100 000 000

       ENIAC(Electronic Numerical IntegratorAnd Computer)电子数字积分机和计算机

      EDVAC(Electronic Discrete Variable Automatic Computer)电子离散变量计算机  

    组成原理是讲硬件结构的 系统结构是讲结构设计的

    摩尔定律    微芯片上的集成管数目每3年翻两番.处理器的处理速度每18个月增长一倍.

      每代芯片的成本大约为前一代芯片成本的两倍

      新摩尔定律  全球入网量每6个月翻一番.

      数学家冯·诺依曼(von Neumann)在研究EDVAC机时提出了“储存程序”的概念.以此为基础的各类计算机通称为冯·诺依曼机.它有如下特点:

    ①计算机由运算器,控制器,存储器,输入和输出五部分组成

    ②指令和数据以同等的地位存放于存储器内,并可按地址寻访

    ③指令和数据均用二进制数表示

    ④指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置

    ⑤指令在存储器内按顺序存放

    ⑥机器以运算器为中心,输入输出设备与存储器间的数据传送通过运算器完成

    图中各部件的功能

    ·运算器用来完成算术运算和逻辑运算并将的中间结果暂存在运算器内

    ·存储器用来存放数据和程序

    ·控制器用来控制,指挥程序和数据的输入,运行以及处理运行结果

    ·输入设备用来将人们熟悉的信息转换为机器识别的信息

    ·输出设备将机器运算结果转为人熟悉的信息形式

     

     

    运算器最少包括3个寄存器(现代计算机内部往往设有通用寄存器)和一个算术逻辑单元(ALU Arithmetic Logic Unit).其中ACC(Accumulator)为累加器,MQ(Multiplier-QuotientRegister)为乘商寄存器,X为操作数寄存器,这3个寄存器在完成不同运算时,说存放的操作数类别也各不相同.

    计算机的主要硬件指标

    (4.a) 主机完成一条指令的过程——以取数指令为例

    (4.b) 主机完成一条指令的过程——以存数指令为例

    (二) 计算机系统层次结构

    1. 计算机硬件的基本组成

    计算机硬件主要指计算机的实体部分,通常有运算器,控制器,存储器,输入和输出五部分.

    CPU是指将运算器和控制器集成到一个电路芯片中.

    2. 计算机软件的分类

    计算机软件按照面向对象的不同可分两类:

    系统软件:用于管理整个计算机系统,合理分配系统资源,确保计算机正常高效地运行,这类软件面向系统.(包括:标准程序库,语言处理程序,OS,服务程序,数据库管理系统,网络软件)

    应用软件:是面向用户根据用户的特殊要求编制的应用程序,这类软件通常实现用户的某类要求.

    3. 计算机的工作过程

    (1)计算机的工作过程就是执行指令的过程

        指令由操作码和操作数组成:

    操作码

    地址码

      操作码指明本指令完成的操作

    地址码指明本指令的操作对象

    (2)指令的存储     指令按照存储器的地址顺序连续的存放在存储器中.

    (3)指令的读取    为了纪录程序的执行过程,需要一个记录读取指令地址的寄存器,称为指令地址寄存器,或者程序计数器.指令的读取就可以根据程序计数器所指出的指令地址来决定读取的指令,由于指令通常按照地址增加的顺序存放,故此,每次读取一条指令之后,程序计数器加一就为读取下一条指令做好准备.

    (4)执行指令的过程   在控制器的控制下,完成以下三个阶段任务:

    1)取指令阶段      按照程序计数器取出指令,程序计数器加一

    2)指令译码阶段    分析操作码,决定操作内容,并准备操作数

    3)指令执行阶段    执行操作码所指定内容

    (三) 计算机性能指标

    1. 吞吐量,响应时间

    (1) 吞吐量:单位时间内的数据输出数量.

    (2) 响应时间:从事件开始到事件结束的时间,也称执行时间.

    2. CPU时钟周期,主频,CPI,CPU执行时间

    (1) CPU时钟周期:机器主频的倒数,TC

    (2)主频:CPU工作主时钟的频率,机器主频Rc

    (3)CPI:执行一条指令所需要的平均时钟周期

    (4)CPU执行时间:

    TCPU=In×CPI×TC

       In执行程序中指令的总数

       CPI执行每条指令所需的平均时钟周期数

       TC时钟周期时间的长度

    3. MIPS,MFLOPS

    (1)MIPS:(Million Instructions Per Second)

    2)不同数制间的数据转换

    (1)二,八,十六进制数转换成十进制数

     利用上面讲到的公式: (N)2=∑Di•2i ,(N)8=∑Di•8i, (N)16=∑Di•16i,进行计算.

    (2)十进制数转换成二进制数

    通常要对一个数的整数部分和小数部分分别进行处理,各自得出结果后再合并.

    对整数部分,一般采用除2取余数法,其规则如下:

    将十进制数除以2,所得余数(0或1)即为对应二进制数最低位的值.然后对上次所得商除以2,所得余数即为二进制数次低位的值,如此进行下去,直到商等于0为止,最后得的余数是所求二进制数最高位的值.

    对小数部分,一般用乘2取整数法,其规则如下:

    将十进制数乘以2,所得乘积的整数部分即为对应二进制小数最高位的值,然后对所余数的小数部分部分乘以2,所得乘积的整数部分为次高位的值,如此进行下去,直到乘积的小数部分为0,或结果已满足所需精度要求为止.

    (3)二进制数,八进制数和十六进制数之间的转换

    八进制数和十六进制数是从二进制数演变而来的:

    由3位二进制数组成1位八进制数;

    由4位二进制数组成1位十六进制数.

    对一个兼有整数和小数部分的数以小数点为界,小数点前后的数分别分组进行处理,不足的位数用0补足.

    对整数部分将0补在数的左侧,对小数部分将0补在数的右侧.这样数值不会发生差错.

    2. 真值和机器数

    真值:数据的数值通常以正(+)负(-)号后跟绝对值来表示,称之为“真值”.    

    机器数:在计算机中正负号也需要数字化,一般用0表示正号,1表示负号.把符号数字化的数成为机器数.

    3. BCD码(Binary Coded Decimal以二进制编码的十进制码)

    在计算机中采用4位二进制码对每个十进制数位进行编码.4位二进制码有16种不同的组合,从中选出10种来表示十进制数位的0~9,用0000,0001,…,1001分别表示0,1,…,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(binary coded decima1,简称BCD)码”.

    在计算机内部实现BCD码算术运算,要对运算结果进行修正,对加法运算的修正规则是:

      如果两个一位BCD码相加之和小于或等于(1001)2,即(9)10,不需要修正;

      如相加之和大于或等于(1010)2,或者产生进位,要进行加6修正,如果有进位,要向高位进位.

    4. 字符与字符串

    在计算机中要对字符进行识别和处理,必须通过编码的方法,按照一定的规则将字符用一组二进制数编码表示.字符的编码方式有多种,常见的编码有ASCII码,EBCDIC码等.

    1)ASCII码(American StandardCode for Information Interchange 美国信息交换标准码)

    ASCII码用7位二进制表示一个字符,总共128个字符元素,包括10个十进制数字(0-9),52个英文字母(A-Z和a-z),34专用符号和32控制符号.

    2)EBCDIC码为Extended Binary CodedDecimal Interchange Code的简称,它采用8位来表示一个字符.

    3)字符串的存放

    向量存储法:字符串存储时,字符串中的所有元素在物理上是邻接的.

    串表存储法:字符串的每个字符代码后面设置一个链接字,用于指出下一个字符的存储单元的地址.

    5. 校验码CheckDigit

    数据校验码是一种常用的带有发现某些错误或自动改错能力的数据编码方法.其实现原理,是加进一些冗余码,使合法数据编码出现某些错误时,就成为非法编码.

        这样,可以通过检测编码的合法性来达到发现错误的目的.合理地安排非法编码数量和编码规则,可以提高发现错误的能力,或达到自动改正错误的目的.

    码距:码距根据任意两个合法码之间至少有几个二进制位不相同而确定的,仅有一位不同,称其码距为1.

    1)奇偶校验码(Parity Bit)WIKI

        (开销最小,能发现数据代码中一位出错情况的编码,常用于存储器读写检查或ASCII字符或其它类型的信息传输的检查)P216

    它的实现原理,是使码距由1增加到2.若编码中有1位二进制数出错了,即由1变成0,或者由0变成1.这样出错的编码就成为非法编码,就可以知道出现了错误.在原有的编码之上再增加一位校验位,原编码n位,形成新的编码为n+1 位.增加的方法有2种:

       奇校验:增加位的0或1要保证整个编码中1的个数为奇数个.

       偶校验:增加位的0或1要保证整个编码中1的个数为偶数个.

    2)海明校验码(Hamming Code)P100

    实现原理,在数据中加入几个校验位,并把数据的每一个二进制位分配在几个奇偶校验组中.当某一位出错就会引起有关的几个校验组的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为自动纠错提供了依据.

      假设校验位的个数为r,则它能表示2r个信息,用其中的一个信息指出“没有错误”,其余2r-1个信息指出错误发生在哪一位.然而错误也可能发生在校验位,因此只有

    k=2r-1-r个信息能用于纠正被传送数据的位数,也就是说要满足关系:

    2r k+r+1

    3)CRC校验码(Cyclic Redundancy Check 循环冗余校验)P144

    CRC校验码一般是指k位信息之后拼接r位校验码.关键问题是如何从k位信息方便地得到r位校验码,以如何从位k+r信息码判断是否出错.

      将带编码的k位有效信息位组表达为多项式:

     

    式Ci中为0或1.

    若将信息位左移r位,则可表示为多项式M(x).xr.这样就可以空出r位,以便拼接r位校验位.

      CRC码是用多项式M(x).xr除以生成多项式G(x)所得的余数作为校验码的.为了得到r位余数,G(x)必须是r+1位.

    设所得的余数表达式为R(x),商为Q(x).将余数拼接在信息位组左移r位空出的r位上,就构成了CRC码,这个码的可用多项式表达为:

    M(x)·xr+R(x)=[Q(x)·G(x)+R(x)]+R(x)

                  =[Q(x)·G(x)]+[R(x)+R(x)]

                  =Q(x)·G(x)

    因此,所得CRC码可被G(x)表示的数码除尽.

    将收到的CRC码用约定的生成多项式G(x)去除,如果无错,余数应为0,有某一位出错,余数不为0. 

    (二) 定点数的表示和运算

    1. 定点数的表示

    1)无符号数的表示

        无符号数就是指正整数,机器字长的全部位数均用来表示数值的大小,相当于数的绝对值.

        对于字长为n+1位的无符号数的表示范围为: 0 -1

    2)带符号数的表示 (真值范围-n-1 n)

        带符号数是指在计算机中将数的符号数码化.在计算机中,一般规定二进制的最高位为符号位,最高位为“0”表示该数为正,为“1”表示该数为负.这种在机器中使用符号位也被数码化的数称为机器数.

        根据符号位和数值位的编码方法不同,机器数分为原码,补码和反码.

    (1)原码表示法

    机器数的最高位为符号位,0表示正数,1表示负数,数值跟随其后,并以绝对值形式给出.这是与真值最接近的一种表示形式.

          原码的定义:

    (2)补码表示法

    机器数的最高位为符号位,0表示正数,1表示负数,其定义如下:

    (3)反码表示法

     机器数的最高位为符号,0表示正数,1表示负数.反码的定义:

     

     

    原码

    补码

    反码

    整数

                 (mod )

                     (mod( ))

    小数

                 (mod 2)

                     (mod(2- ))

    0

    =0.0000 =1.0000

    =0.0000

    =0.0000 =1.1111

     

     

    负数原码求反+1

    负数每位求反

    移码   移码表示中零也是唯一的

    真值的移码和补码仅差一个符号位.若将补码的符号位由0改为1或从1改为0即可得到真值的移码

    乘法运算可用移码和加法来实现,两个n位数相乘,总共要进行n次加法运算和n次移位运算

    三种机器数的特点可以归纳为:

    ·三种机器数的最高位均为符号位.符号位和数值位之间可用“.”(对于小数)或“,”(对于整数)隔开

    ·当真值为正时,原码,补码和反码的表示形式均相同,即符号位用“0”表示,数值部分与真值部分相同

    ·当真值为负时,原码,补码和反码的表示形式不同,其它符号位都用“1”表示,而数值部分有这样的关系,即补码是原码的“求反加1”,反码是原码的“每位求反”.

    2. 定点数的运算

    1)定点数的位移运算

    左移,绝对值扩大;右移,绝对值缩小.

    算术移位规则

    符号位不变

     

    码制

    添补代码

    正数

     

    0

    负数

    0

    右移添0

    左移添1

    1

    算术移位和逻辑移位的区别:

    算术移位:带符号数移位;

    逻辑移位:无符号数移位;

    2)原码定点数的加/减运算;

    对原码表示的两个操作数进行加减运算时,计算机的实际操作是加还是减,不仅取决指令中的操作码,还取决于两个操作数的符号.而且运算结果的符号判断也较复杂.

    例如,加法指令指示做(+A)+(-B)由于一操作数为负,实际操作是做减法(+A)-(+B),结果符号与绝对值大的符号相同.同理,在减法指令中指示做(+A)-(-B)实际操作做加法(+A)+(+B),结果与被减数符号相同.由于原码加减法比较繁琐,相应地需要由复杂的硬件逻辑才能实现,因此在计算机中很少被采用.

    3)补码定点数的加/减运算;

    (1) 加法

    整数 [A] + [B]= [A+B](mod2n+1)

    小数 [A] + [B]= [A+B](mod2)

    (2) 减法

    整数 [A] - [B]= [A+(-B)]=[A]+ [-B](mod2n+1)

    小数 [A] - [B]= [A+(-B)]=[A] + [-B](mod2)

    无需符号判定,连同符号位一起相加,符号位产生的进位自然丢掉

    4)定点数的乘/除运算

    (1)一位乘法

    <1>原码定点一位乘法  

    两个原码数相乘,其乘积的符号为相乘两数的异或值,数值两数绝对值之积.

    设    [X]=X0 X1 X2 …Xn

         [Y]=Y0 Y1 Y2 …Yn

         [X·Y]=[X]·[Y]= (X0⊕Y0)∣(X1 X2 …Xn)·(Y1 Y2 …Yn)

    符号∣表示把符号位和数值邻接起来.

    原码两位乘和原码一位乘比较

     

    原码一位乘

    原码两位乘

    符号位

    操作数

    绝对值

    绝对值的补码

    移位

    逻辑右移

    算术右移

    移位次数

    n

    最多加法次数

    n

    <2>定点补码一位乘法

    有的机器为方便加减法运算,数据以补码形式存放.乘法直接用补码进行,减少转换次数.具体规则如下:

      [X·Y]=[X](-Y0 + 0. Y1 Y2… Yn )

    <3>布斯法

    “布斯公式”: 在乘数Yn后添加Yn+1=0.按照Yn+1 ,Yn相邻两位的三种情况,其运算规则如下:

    (1) Yn+1 ,Yn =0( Yn+1 Yn =00或11),部分积加0,右移1位;

    (2) Yn+1 ,Yn =1( Yn+1 Yn =10),部分积加[X],右移1位;

    (3) Yn+1 ,Yn =-1( Yn+1 Yn =01),部分积加[-X],右移1位             最后一步不移位.

    (2)两位乘法

    <1>原码两位乘法,因此实际操作用Yi-1,Yi,C三位来控制,运算规则如下

    Yi-1  Yi    C

    操作

    0     0    0

    0     0    1

    0     1    0

    0     1    1

    1     0    0

    1     0    1

    1     1    0

    1     1    1

            +0,  右移2位           0→C 

            +X,  右移2位           0→C 

            +X,  右移2位           0→C 

            +2X, 右移2位           0→C 

            +2X, 右移2位           0→C 

            -X,  右移2位           1→C 

            -X,  右移2位           1→C 

            +0,  右移2位           1→C 

     

     

     

     

    <2>补码两位乘法

    根据前述的布斯算法,将两步合并成一步,即可推导出补码两位乘的公式.

    Yn-i-1  Yn-i    Yn-i+1

    [Pi+2]

        0       0       0

        0       0       1

        0       1       0

        0       1       1

        1       0       0

        1       0       1

        1       1       0

        1       1       1

             +0,    右移2位           

            +[X],  右移2位      

            +[X],  右移2位      

            +2[X], 右移2位      

            -2[X], 右移2位      

            -[X],  右移2位      

            -[X],  右移2位      

             +0,    右移2位          

    求部分积的次数和右移操作的控制问题.

        当乘数由1位符号位和以n(奇数)位数据位组成时,求部分积的次数为(1+n)/2,而且最后一次的右移操作只右移一位.

       若数值位本身为偶数n,可采用下述两种方法之一:

    ①可在乘数的最后一位补一个0,乘数的数据位就成为奇数,而且其值不变,求部分积的次数为1+(n+l)/2,即n/2+1,最后一次右移操作也只右移一位.

    ②乘数增加一位符号位,使总位数仍为偶数,此时求部分积的次数为n/2+1,而且最后一次不再执行右移操作.

    (3)补码除法

    笔算除法和机器除法的比较

    笔算除法

    机器除法

    商符单独处理

    符号位异或形成

    心算上商

    余数 不动 低位补“0”

    减右移一位 的除数

    余数 左移一位 低位补“0”

    减 除数

    2 倍字长加法器

    1 倍字长加法器

    上商位置 不固定

    在寄存器 最末位上商

    <1>定点原码一位除法

    1>恢复余数法

    被除数(余数)减去除数,如果为0或者为正值时,上商为1,不恢复余数;如果结果为负,上商为0,再将除数加到余数中,恢复余数.余数左移1位.

    2>加减交替法

    当余数为正时,商上1,求下一位商的办法,余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法,余数左移一位,再加上除数.

    <2>定点补码一位除法(加减交替法)

    1〉如果被除数与除数同号,用被除数减去除数;若两数异号,被除数加上除数.如果所得余数与除数同号商上1,否则,商上0,该商为结果的符号位.

    2〉求商的数值部分.如果上次商上1,将除数左移一位后减去除数;如果上次商上0,将余数左移一位后加除数.然后判断本次操作后的余数,如果余数与除数同号商上1,如果余数与除数异号商上0.如此重复执行n-1次(设数值部分n位).

    3〉商的最后一位一般采用恒置1的办法,并省略了最低+1的操作.此时最大的误差为2-n.

    5)溢出概念和判别方法

    当运算结果超出机器数所能表示的范围时,称为溢出.显然,两个异号数相加或两个同号数相减,其结果是不会溢出的.仅当两个同号数相加或者两个异号数相减时,才有可能发溢出的情况,一旦溢出,运算结果就不正确了,因此必须将溢出的情况检查出来.判别方法有三种:

    1〉当符号相同的两数相加时,如果结果的符号与加数(或被加数)不相同,则为溢出.

    2〉当任意符号两数相加时,如果C=Cf,运算结果正确,其中C为数值最高位的进位,Cf为符号位的进位.如果C≠Cf ,则为溢出,所以溢出条件=C⊕Cf .

    3〉采用双符号fs2fs1.正数的双符号位为00,负数的双符号位为11.符号位参与运算,当结果的两个符号位甲和乙不相同时,为溢出.所以溢出条件= fs2⊕fs1 ,或者溢出条件= fs2fs1 + fs2fs1

    (三) 浮点数的表示和运算

    1. 浮点数的表示

    1)浮点数的表示范围;

    浮点数是指小数点位置可浮动的数据,通常以下式表示:

             N=M×RE

    其中,N为浮点数,M(Mantissa)为尾数(可正可负),E(Exponent)为阶码(可正可负),R(Radix)称为“阶的基数(底)”,而且R为一常数,一般为2,8或16.在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来.因此,浮点数的机内表示一般采用以下形式:

    浮点数的机内表示一般采用以下形式:

    Ms

    E

    M

              1位           n+1位             m位

    Ms是尾数的符号位,设置在最高位上.

    E为阶码(移码),有n+1位,一般为整数,其中有一位符号位,设置在E的最高位上,用来表正阶或负阶.

    M为尾数(原码),有m位,由Ms和M组成一个定点小数.Ms=0,表示正号,Ms=1,表示负.为了保证数据精度属数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值大于或等于(0.5)10.对非规格化浮点数,通过将尾数左移或右移,并修改阶码值使之满足规格化要求.

    浮点数的表示范围以通式N=M×RE设浮点数阶码的数值位取m位,尾数的数值位取n位

    2)IEEE754标准(Institute of Electrical andElectronics Engineers美国电气和电子工程协会)

    S

    阶码(含阶符)

    尾    数

    数符             小数点位置

    根据IEEE 754国际标准,常用的浮点数有三种格式:

     

    符号位S

    阶码

    尾数

    总位数

    短实数

    1

    8

    23

    32

    长实数

    1

    11

    52

    64

    临时实数

    1

    15

    64

    80

    单精度格式32位,阶码为8位,尾数为23位.另有一位符号位S,处在最高位.

    由于IEEE754标准约定在小数点左部有一位隐含位,从而实际有效位数为24位.这样使得尾数的有效值变为1.M .

    例如,最小为x1.0…0,,最大为x1.1…1.规格化表示.故小数点左边的位横为1,可省去.  

    阶码部分采用移码表示,移码值127,1到254经移码为-126到+127.

    S(1位)

    E(8位)

    M(23位)

    N(共32位)

    符号位

    0

    0

    0

    符号位

    0

    不等于0

    (-1)S·2-126·(0.M) 为非规格化数

    符号位

    1到254之间

    -

    (-1)S·2E-127·(1.M) 为规格化数

    符号位

    255

    不等于0

    NaN(非数值)

    符号位

    255

    0

    无穷大

    0 有了精确的表示,无穷大也明确表示.对于绝对值较小的数,可以采用非规格化数表示,减少下溢精度损失.非规格化数的隐含位是0,不是1.

    2. 浮点数的加/减运算

    加减法执行下述五步完成运算:

    1)“对阶”操作    比较两浮点数阶码的大小,求出其差ΔE,保留其大值E,E=max(Ex, Ey).当ΔE≠0时,将阶码小的尾数右移ΔE位,并将其阶码加上ΔE,使两数的阶码值相等.

    2)尾数加减运算     执行对阶之后,两尾数进行加减操作.

    3)规格化操作       规格化的目的是使得尾数部分的绝对值尽可能以最大值的形式出现.

    4)舍入            在执行右规或者对阶时,尾数的低位会被移掉,使数值的精度受到影响,常用“0”舍“1”入法.当移掉的部分最高位为1时,在尾数的末尾加1,如果加1后又使得尾数溢  出,则要再进行一次右规.

    5)检查阶码是否溢出 阶码溢出表示浮点数溢出.在规格化和舍入时都可能发生溢出,若阶码正常,加/减运算正常结束.若阶码下溢,则设置机器运算结果为机器零,若上溢,则设置溢出标志.

    定点数和浮点数可从如下几个方面进行比较

    ①当浮点机和定点机中的位数相同时,浮点数的表示范围比定点数大得多

    ②当浮点数位规格化数时,其相对绝对远比定点数高

    ③浮点数运算要分阶码部分和尾数部分,而且运算结果都要求规格化,故浮点运算步骤比定点运算的步骤多,运算速度比定点运算的低,运算线路比定点运算的复杂

    ④在溢出的判断方法上,浮点数是对规格化的阶码进行判断,而定点数是对数值本身进行判断

    总之,浮点数在数的表示范围,数的精度,溢出处理和程序编程方面(不取比例因子)均优于定点数.但在运算规则即硬件成本方面又不如定点数

     

     

    (四) 算术逻辑单元ALU

    1.  串行加法器和并行加法器

    1)串行进位加法器

    并行加法器可以同时对数据的各位进行相加,一般用n个全加器来实现2个操作数的各位同时向加.其操作数的各位是同时提供的,由于进位是逐位形成,低位运算所产生的进位会影响高位的运算结果.

    串行进位(也称波形进位)加法器,逻辑电路比较简单,但是最高位的加法运算,一定要等到所有低位的加法完成之后才能进行,低位的进位要逐步的传递到高位,逐级产生进位,因此运算速度比较慢.

    2)并行进位加法器

    为了提高运算速度,减少延迟时间,可以采用并行进位法,也叫提前进位或先行进位.

    全加器中,输入Ai ,Bi,Ci-1,输出:

    Si = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1

    Ci = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 = Ai Bi+ (Ai+Bi)Ci-1

    进位产生函数:Gi = Ai Bi

    进位传递函数:Pi = Ai+Bi

    Ci = Gi + Pi Ci-1

    C4 = G4 + P4G3 + P4P3G2 +P4P3P2G1 + P4P3P2P1C0

    并行进位加法器的运算速度很快,形成最高进位输出的延迟时间很短,但是以增加硬件逻辑线路为代价.对于长字长的加法器,往往将加法器分成若干组,在组内采用并行进位,组间则采用串行进位或并行进位,由此形成多种进位结构.

    (1)单级先行进位

    单级先行进位方式将n位字长分为若干组,每组内采用并行进位方式,组与组之间册采用串行进位方式.

    (2)多级先行进位

    多级先行进位在组内和组间都采用先行进位方式.

    16位单级先行进位加法器

    2. 算术逻辑单元ALU的功能和机构

    ALU部件是运算器中的主要组成部分,又称多功能函数发生器,主要用于完成各种算术运算和逻辑运算.

    ALU的算术运算部件包含加法器,减法器,乘法器,除法器,增量器(+1),减量器(-1),BCD码运算器等组件.

    ALU的主要工作是根据CPU指令要求执行各种指定运算,如加法,减法,乘法,除法,比较,逻辑移位等操作.

    通用寄存器组是一组存取速度最快的存储器,用于保存参加运算的操作数和中间结果.访问寄存器无需高速缓存,也不需要运行总线周期,因此指令的执行速度很快.几乎所有的指令都要将寄存器指定为一个操作数,有些指令还要求将操作数存放在专用的寄存器中.

    专用寄存器通常用于表示CPU所处于某种系统状态,ALU中有两个重要的状态寄存器:指令指针寄存器IP(即程序计数器PC)和标志寄存器FLAGS.

     

    三, 存储器层次机构

    (一) 存储器的分类


    提高存储器带宽

    1缩短储存周期

    2增加存储字长,使每个周期可读/写更多的二进制数

    3增加存储体

    内存

    地址线n,数据线数k

    芯片的容量为2k×k位

    20位的地址可以访问1MB的存储空间,32位的地址可以访问4GB的内存空间,64位可以访问1800万TB


    静态RAM和动态RAM之间的比较。目前,动态RAM的应用比静态RAM要广泛的多:

    ①   同样大小的芯片中,动态的RAM的集成度远高于静态RAM,DRAM的基本单元电路为一个MOS管,SRAM的基本单元电路可为4~6个MOS管

    ②   DRAM行、列按先后顺序输送,减少了芯片引脚,封装尺寸也减少

    ③   DRAM的功耗比SRAM小

    ④   DRAM的价格比SRAM的价格便宜

    DRAM也有缺点

    ①   由于使用动态元件(电容),因此它的速度比SRAM低

    ②   DRAM需再生,需配置再生电路,也消耗一部分功率.通常容量不大的Cache大多用SRAM实现存储器与CPU连接

    对比项目

    SRAM

    DRAM

    储存信息

    触发器

    电容

    破坏性读出

    需要刷新

    行列地址

    同时送

    分两次

    运行速度

    集成度

    发热量

    存储成本

     (二) 存储器的层次化结构

    存储器有3个重要的指标:速度,容量和每位价格,一般来说,速度越快,位价越高;容量越大,位价越低,容量大,速度就越低.上述三者的关系用下图表示:

    存储系统层次结构主要体现在缓存-主存-辅存这两个存储层次上,如下图所示:

     

    缓存-主存层次主要解决CPU和主存速度不匹配的问题  

    主存-辅存层次主要解决存储系统的容量问题

    从CPU角度来看缓存-主存层次的速度接近于缓存,高于主存;其容量和价位却接近于主存,这就从速度和成本的矛盾中获得了理想的解决办法.
    主存-辅存层次从整体分析,其速度接近于主存,容量接近于辅存,平均价位也接近于低速的、廉价的存储价位,这又解决了速度、容量、成本这三者之间的矛盾.

    现代计算机系统几乎都具有这两个存储层次,构成了缓存、主存、辅存三级存储系统.

     (三) 半导体随机存取存储器

    1. SRAM存储器的工作原理

    SRAM静态存储单元的每个存储位需要四到六个晶体管组成.比较典型的是六管存储单元,即一个存储单元存储一位信息"0"或"1".静态存储单元保存的信息比较稳定,信息为非破坏性读出,故不需要重写或者刷新操作;另一方面,其结构简单,可靠性高,速度较快,但其占用元件较多,占硅片面积大,且功耗大,所以集成度不高.

    静态随机存储单元

    2. DRAM存储器的工作原理

    常见的DRAM存储单元有三管式和单管式两种,它们的共特点是靠电容存储电荷的原理来寄存信息.若电容上存有足够的电荷表示“”,电容上无电荷表示"0".电容上的电荷一般只能维持1-2ms,因此即使电源不掉电,电容上的电荷会自动消失.因此,为保证信息的不丢失,必须在2ms之内就要对存储单元进行一次恢复操作,这个过程称为再生或者刷新.与SRAM相比,DRAM具有集成度更高,功耗低等特点,目前被各类计算机广泛使用.

     

     

     

     

     

    (四) 只读存储器

    前面介绍的DRAM和SRAM均为可任意读/写的随机存储器,当掉电时,所存储的内容消失,所以是易失性存储器.只读存储器,即使停电,存储内容也不丢失.根据半导体制造工艺不同,分为ROM,PROM,EPROM,E2ROM和Flash Memory

    1. 只读存储器(ROM)

        掩模式ROM由芯片制造商在制造时写入内容,以后只能读而不能再写入.其基本存储原理是以元件的“有/无”来表示该存储单元的信息(“1”或“0”),可以用二极管或晶体管作为元件,显而易见,其存储内容是不会改变的.

    2. 可编程序的只读存储器(PROM)

        PROM可由用户根据自己的需要来确定ROM中的内容,常见的熔丝式PROM是以熔丝的通和断开来表示所存的信息为“1”或“0”.刚出厂的产品,其熔丝是全部接通的.根据需要断开某些单元的熔丝(写入).显而易见,断开后的熔丝是不能再接通了,因而一次性写入的存储器.掉电后不会影响其所存储的内容.

    3. 可擦可编程序的只读存储器(EPROM)

    为了能修改ROM中的内容,出现了EPROM.利用浮动栅MOS电路保存信息,信息改写用紫外线照射即可擦除.

    4. 可电擦可编程序只读存储器(E2PROM)

        E2PROM的编程序原理与EPROM相同,擦除原理完全不同,重复改写次数有限制(因氧化层被磨损),一般10万次.

        其读写操作可按每个位或每个字节进行,类似SRAM,但每字节的写入周期要几毫秒,比SRAM长得多.E2PROM每个存储单元采则2个晶体管.其栅极氧化层比EPROM薄,因此具有电擦除功能.

    5. 快除读写存储器(Flash  Memory) F1ash Memory是在EPROM与E2PROM基础上发展起来的,其读写过程和E2PROM不同,F1ash Memory的读写操作一般是以块为单位.

    (五) 主存储器与CPU的连接

    1个存储器的芯片的容量是有限的,它在字数或字长方面与实际存储器的要求都有很大差距,所以需要在字向和位向进行扩充才能满足需要.根据存储器所需的存储容量和所提供的芯片的实际容量,可以计算出总的芯片数.一个存储器的容量为M×N位,若使用L×K位存储器芯片,那么,这个存储器共需要M/L×N/K存储器芯片.

    1.位扩展

        位扩展指的是用多个存储器器件对字长进行扩充.位扩展的连接方式是将多片存储器的地址,片选己,读写控制端R/W可相应并联,数据端分别引出.

    2)字扩展

        字扩展指的是增加存储器中字的数量.

        静态存储器进行字扩展时,将各芯片的地址线,数据线,读写控制线相应并联,而由片选信号来区分各芯片的地址范围.

    3)字位扩展

         实际存储器往往需要字向和位向同时扩充.

    (六) 双口RAM和多模块存储器

    1.双端口存储器

    双端口存储器是一种具有两个单独的读/写端口及控制电路的存储器,通过增加一个读/写端口,双端口存储器扩展了存储器的的信息交换能力.

    2.多模块存储器

    为了解决CPU与主存储器之间的速度匹配问题,在高速存储器中,普遍采用并行主存系统.即利用类似存储器扩展(位扩展,字扩展,字位扩展)的方法,将n个字长为W位的存储器并行连接,构建一个更大的存储器.并行主存有单体多字方式,多体并行方式和多体交叉方式.

    (七) 高速缓冲存储器(Cache实际上,这是来自法文的一个单词,意思是隐蔽之所或藏东西的地方)

    概述

    1. 问题的提出

    避免 CPU “空等” 现象

    CPU 和主存(DRAM)的速度差异

    1. 程序访问的局部性

    从大量的统计中得到的一个规律是,程序中对于存储空间90%的访问局限于存储空间的10%的区域中,而另外10%的访问则分布在存储空间的其余90%的区域中.这就是通常说的局部性原理.访存的局部性规律包括两个方面:

    时间局部性:如果一个存储项被访问,则可能该项会很快被再次访问.

    空间局部性:如果一个存储项被访问,则该项及其邻近的项也可能很快被访问.

    2. Cache的基本工作原理

     

    Cache通常由两部分组成,块表和快速存储器.其工作原理是:处理机按主存地址访问存储器,存储器地址的高段通过主存-Cache地址映象机构借助查表判定该地址的存储单元是否在Cache中,如果在,则Cache命中,按Cache地址访问Cache.否则,Cache不命中,则需要访问主存,并从主存中调入相应数据块到Cache中,若Cache中已写满,则要按某种算法将Cache中的某一块替换出去,并修改有关的地址映象关系.

    从这个工作原理我们可以看出,它已经涉及到了两个问题.首先是定位,然后是替换的问题.

    Cache的存在对程序员是透明的.其地址变换和数据块的替换算法均由硬件实现.通常Cache被集成到CPU内以提高访问速度.

    3. Cache和主存之间的映射方式

    因为处理机访问都是按主存地址访问的,而Cache的空间远小于主存,如何知道这一次的访问内容是不是在Cache中,在Cache中的哪一个位置呢? 这就需要地址映象,即把主存中的地址映射成Cache中的地址.让Cache中一个存储块(空间)与主存中若干块相对应,如此,访问一个主存地址时,就可以对应地知道在cache中哪一个地址了.地址映象的方法有三种:直接映象,全相联映象和组相联映象.

    直接映象就是将主存地址映象到Cache中的一个指定地址.任何时候,主存中存储单元的数据只能调入到Cache中的一个位置,这是固定的,若这个位置已有数据,则产生冲突,原来的块将无条件地被替换出去.

    全相联映象就是任何主存地址可映象到任何Cache地址的方式.在这种方式下,主存中存储单元的数据可调入到Cache中的任意位置.只有在Cache中的块全部装满后才会出现块冲突.

    组相联映象指的是将存储空间的页面分成若干组,各组之间的直接映象,而组内各块之间则是全相联映象.

    4. Cache中主存块的替换算法

    在直接映象方式下,不存在块替换的算法,因为每一块的位置映象是固定的,需要哪一块数据就可直接确定地将该块数据调入上层确定位置.而其他两种映象就存在替换策略的问题,就是要选择替换到哪一个Cache块.即替换算法.

     

    思想

    优点

    缺点

    随机算法RAND

    用软的或硬的随机数产生器产生上层中要被替换的页号

    简单,易于实现

    没有利用上层存储器使用的"历史信息",没有反映等程序局部性,命中率低.

    先进先出FIFO

    选择最早装入上层的页作为被替换的页

    实现方便,利用了主存历史的信息

    不能正确反映程序局部性原理,命中率不高,可能出现一种异常现象.

    近期最少使用法LRU

    选择近期最少访问的页作为被替换的页

    比较正确反映程序局部性,利用访存的历史信息,命中率较高

    实现较复杂

    优化替换算法OPT

    将未来近期不用的页换出去

    命中率最高,可作为衡量其他替换算法的标准

    不现实,只是一种理想算法

    5. Cache写策略

    对Cache的写操作,情况比读操作要复杂一些.由于写入Cache时,并没有写入主存,因此就出现Cache和主存数据不一致的情况.如何处理Cache和主存不一致的方法就称为更新策略.

    更新策略

    思想

    优点

    缺点

    写回法

    是指在CPU执行写操作时,信息只写入Cache中,仅当需要替换时,才将改写过的Cache块先送回主存(写回),然后再调块(设置dirty位)

    有利于省去许多将中间结果写入主存的无谓开销.

    需设修改位增加Cache的复杂性

    全写法(写直达法)

    在写操作时,将数据同时写入Cache和主存

    实现开销小,简单

    为了写中间结果浪费了不少时间

    另外,当写不命中时(也就是写Cache块时,这块早被人替换出去而在Cache中找不到时)是不是要把这块再取回Cache中,有两个解决方法:

    u 不按写分配法,就是直接写到主存里,不再把该地址对应的块调回Cache中.

    u 按写分配法,就是写到主存,而且把这一块从主存中调入到Cache.

    一般写回法用按写分配法,全写法则采用不按写分配.

    (八) 虚拟存储器

    1. 虚拟存储器的基本概念

    虚拟存储器是主存的扩展,虚拟存储器的空间大小取决于计算机的访存能力而不是实际外存的大小,实际存储空间可以小于虚拟地址空间.从程序员的角度看,外存被看作逻辑存储空间,访问的地址是一个逻辑地址(虚地址),虚拟存储器使存储系统既具有相当于外存的容量又有接近于主存的访问速度.

    虚拟存储器的访问也涉及到虚地址与实地址的映象,替换算法等,这与Cache中的类似,前面我们讲的地址映象以块为单位,而在虚拟存储器中,地址映象以页为单位.设计虚拟存储系统需考虑的指标是主存空间利用率和主存的命中率.

    虚拟存储器与Cache存储器的管理方法有许多相同之处,它们都需要地址映象表和地址变换机构.但是二者也是不同的.

    虚拟存储器的三种不同管理方式:按存储映象算法,分为段式,页式和段页式等,这些管理方式的基本原理是类似的.

    2. 页式虚拟存储器

    页式管理:是把虚拟存储空间和实际空间等分成固定大小的页,各虚拟页可装入主存中的不同实际页面位置.页式存储中,处理机逻辑地址由虚页号和页内地址两部分组成,实际地址也分为页号和页内地址两部分,由地址映象机构将虚页号转换成主存的实际页号.

    页式管理用一个页表,包括页号,每页在主存中起始位置,装入位等.页表是虚拟页号与物理页号的映射表.页式管理由操作系统进行,对应用程序员的透明的.

    3. 段式虚拟存储器

    段式管理: 把主存按段分配的存储管理方式.它是一种模块化的存储管理方式,每个用户程序模块可分到一个段,该程序模块只能访问分配给该模块的段所对应的主存空间.段长可以任意设定,并可放大和缩小.

    系统中通过一个段表指明各段在主存中的位置.段表中包括段名(段号),段起点,装入位和段长等.段表本身也是一个段.段一般是按程序模块分的.

    4. 段页式虚拟存储器

    段页式管理:是上述两种方法的结合,它将存储空间按逻辑模块分成段,每段又分成若干个页,访存通过一个段表和若干个页表进行.段的长度必须是页长的整数倍,段的起点必须是某一页的起点.

    5. TLB(快表)

    在虚拟存储器中进行地址变换时,需要虚页号变换成主存中实页号的内部地址变换,这一般通过查内页表实现.当表中该页对应的装入位为真时,表示该页在主存中,可按主存地址问主存;如果装入位为假时,表示该页不在存储器中,就产生页失效中断,需从外存调入页.

    中断处理时先通过外部地址变换,一般通过查外页表,将虚地址变换为外存中的实际地址,到外存中去选页,然后通过I/0通道调入内存.当外存页面调入主存中时还存在一个页面替换略的问题.

    提高页表的访问速度是提高地址变换速度的关键.因为,每次访存都要读页表,如果页存放在主存中,就意味着访存时间至少是两次访问主存的时间,这样查表的代价大大.只有内部地址变换速度提高到使访问主存的速度接近于不采用虚拟存储器时的访主存速度时,虚拟存储器才能实用.

    根据访存的局部性,表内各项的使用的概率不是均匀分布的.在一段时间内,可能只用表中的很少几项,因此应重点提高使用概率高的这部分页表的访问速度,可用快速硬件构成全表小得多的部分表格,而将整个表格放在主存中,这就引出了快表和慢表的概念和技术.这样,虚地址到实地址的变换方法如后图所示.

    查表时,根据虚页表同时查找快表和慢表,当在快表中查到该虚页号时,就能很快找到对应的实页号,将其送入主存实地址寄存器,同时使慢表的查找作废,这时主存的访问速度没降低多少.

    如果在快表中查不到,则经过一个访主存的时间延迟后,将从慢表中查到的实页送入实地址寄存器,同时将此虚页号和对应的实页号送入快表,这里也涉及到用一个替换算法从快表中替换出一行.

    快表的存在对所有的程序员都是透明的.

    软磁盘存储器

     

    硬盘

    软盘

    速度

    磁头

    固定、活动、浮动

    活动、接触盘片

    盘片

    固定盘、盘组大部分不可换

    可换盘片

    价格

    环境

    苛刻

     

     

    四, 指令系统

    人们习惯把每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统

    指令的执行过程

             读取指令

                   指令地址(在PC中)送到地址寄存器                       

                   读主存,读出内容(指令代码)送入指令寄存器IR

     

             分析指令

                                                           形成下一条指令的地址并送到PC中

             执行指令

                   用一到几个执行步骤,完成指令的运算、操作功能,

                   不同的指令操作步骤和具体运算、操作功能各不相同        

             减产有无中断请求

                   无中断请求、进入下一条指令的执行过程

     (一) 指令格式

    1. 指令的基本格式

    计算机是通过执行指令来处理各种数据的.为了指出数据的来源,操作结果的去向及所执行的操作,一条指令必须包含下列信息:

        (1)操作码,具体说明了操作的性质及功能.

        (2)操作数的地址.

        (3)操作结果的存储地址.

        (4)下一条指令的地址.

    从上述分析可知,一条指令实际上包括两种信息即操作码和地址码.

    操作码(operation code)用来表示该指令所要完成的操作(如加,减,乘,除,数据传送等),其长度取决于指令系统中的指令条数.如操作码占7位,则该机器最多包含27=128条指令.

    地址码用来描述该指令的操作对象,或直接给出操作数或指出操作数的存储器地址或寄存器地址(即寄存器名).

    操作码的长度不固定会增加指令译码和分析难度,使控制器的设计复杂.

    操作码

    寻址地址

    形式地址A

    形式地址  指令字中的地址

    有效地址  操作数的真实地址

    约定  指令字长=存储字长=机器字长

    2. 定长操作码指令格式

    1)零地址指令

    OP

    格式:

    OP——操作码

    指令中只有操作码,而没有操作数或没有操作数地址.这种指令有两种可能:

    (1)无需任何操作数,如空操作指令,停机指令等.

    (2)所需的操作数是默认的.如堆栈结构计算机的运算指令,所需的操作数默认在堆栈中,由堆栈指针SP隐含指出,操作结果仍然放回堆栈中.又如Intel 8086的字符串处理指令,源,目的操作数分别默认在源变址寄存器SI和目的变址寄存器DI所指定的存储器单元中.

    2)一地址指令

    格式:

    OP——操作码

    A——操作数的存储器地址或寄存器名

    指令中只给出一个地址,该地址既是操作数的地址,又是操作结果的存储地址.如加1,减1和移位等单操作数指令均采用这种格式,对这一地址所指定的操作数执行相应的操作后,产生的结果又存回该地址中.

    在某些字长较短的微型机中(如早期的Z80,Intel8080,MC6800等),大多数算术逻辑指令也采用这种格式,第一个源操作数由地址码A给出,第二个源操作数在一个默认的寄存器中,运算结果仍送回到这个寄存器中,替换了原寄存器内容,通常把这个寄存器称累加器.

    3)二地址指令

    格式:

    OP——操作码

      A1——第一个源操作数的存储器地址或寄存器地址.

      A2——第二个源操作数和存放操作结果的存储器地址或寄存器地址.

    这是最常见的指令格式,两个地址指出两个源操作数地址,其中一个还是存放结果的目的地址.对两个源操作数进行操作码所规定的操作后,将结果存入目的地址,在本例中即为A2指定的地址

    4)三地址指令

    格式:

    OP——操作码

         A1——第一个源操作数的存储器地址或寄存器地址

         A2——第二个源操作数的存储器地址或寄存器地址

         A3——操作结果的存储器地址或寄存器地址

    其操作是对A1,A2指出的两个源操作数进行操作码(OP)所指定的操作,结果存入A3中.

    6)多地址指令

    在某些性能较好的大,中型机甚至高档小型机中,往往设置一些功能很强的,用于处理成批数据的指令,如字符串处理指令,向量,矩阵运算指令等.

    为了描述一批数据,指令中需要多个地址来指出数据存放的首地址,长度和下标等信息

    3. 扩展操作码指令格式

    设某机器的指令长度为16位,包括4位基本操作码字段和三个4位地址字段,其格式下:

    OP(4)

    A1(4)

    A2(4)

    A3(4)

    4位基本操作码有16个码点(即有16种组合),若全部用于表示三地址指令,则只有16条.但,若三地址指令仅需15条,两地址指令需15条,一地址指令需15条,零地址指令需16条,共61条指令,应如何安排操作码?

    显然,只有4位基本操作码是不够的,必须将操作码的长度向地址码字段扩展才行.

    一种可供扩展的方法和步骤如下:

    (1)15条三地址指令的操作码由4位基本操作码从0000~1110给出,剩下一个码点1111用于把操作码扩展到A1,即4位扩展到8位;

    (2)15条二地址指令的操作码由8位操作码从11110000~11111110给出,剩下一个码点11111111用于把操作码扩展到A2,即从8位扩展到12位;

    (3)15条一地址指令的操作码由12位操作码从111111110000~111111111110给出,剩下的一个码点111111111111用于把操作码扩展到A3,即从12位扩展到16位;

    (4)16条零地址指令的操作码由16位操作码从1111111111110000~1111111111111111给出.

    指令字长取决于操作码的长度操作数地址的长度操作数地址的个数.为了提高指令的运行速度和节省存储空间,通常尽可能的吧常用的指令(如数据传输指令、算逻运算指令等)设计成单字长或短字长格式的指令.

    操作数类型

    地址

    地址实际也可以看做是一种数据,在许多情况下要计算操作数的地址.这时地址可看作无符号的整数

    数字

    计算机中常见的数字有定点数、浮点数和十进制数字

    字符

    在应用计算机时,文本或者字符串也是一种常见的数据类型

    逻辑数据

    计算机除了做算术运算外,有时还做逻辑运算,此时n个0和1的组合不是被看做算术数字而被看做逻辑数

    奔腾Pentium处理器的数据类型有逻辑数、有符号数(补码)、无符号数、压缩和未压缩的BCD码、地址指针、位串以及浮点数(符合IEEE754标准)等

     

    指令操作类型

    1.数据传送

    数据传送包括寄存器与寄存器,寄存器与存储单元,存储单元与存储单元之间的传送

    2.算术逻辑操作

    这操作可实现算术运算(加,减,乘,除,增1,减1,取负即求补)逻辑运算(与,或,非,异或)

    3.移位

    移位可分为算术移位,逻辑移位和循环移位三种

    4.转移

    无条件转移

    不受任何约束条件直接把程序转移到下一条需执行指令的地址

    条件转移

    根据当前指令的执行结果决定是否需要转移

    调用与返回

    l   子程序可在多处被调用

    l   子程序调用可出现在子程序中,即允许子程序嵌套

    l   每个CALL指令都对应一条RETURN指令

    CPU必须记住返回地址,使子程序能准确返回,返回地址存放在以下3处

    l   寄存器内.机器内设有专用寄存器,专用于存放返回地址

    l   子程序的入口地址内

    l   栈顶内.现代计算机都设有堆栈,执行RETURN指令后,便可自动从堆栈内取出应返回的地址

    陷阱(Trap)与陷阱指令

    其实是一种意外事故的中断,一般不提供给用户使用,作为隐指令,再出现故障时,由CPU自动产生并执行

    5.输入输出

    对于I/O单独编址的计算机而言,通常设有输入输出指令,他完成从外设中的寄存器读入一个数据到CPU寄存器内,或将数据从CPU的寄存器输出至某外设的寄存器中

    6.其它

    包括等待指令、停机指令、空操作指令、开中断指令、关中断指令、置条件码指令等

    备注

    有些大型或巨型机还设有向量指令,可对整个向量或矩阵进行求和求积运算

    (二) 指令的寻址方式

    1. 有效地址的概念

    操作数的真实地址称为有效地址,记做EA,它是寻址方式和形式地址共同来决定的.

    2. 数据寻址和指令寻址

    寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令的地址,与硬件结构密切相关,寻址方式分为指令寻址和数据寻址两大类

    指令寻址分为顺序寻址和跳跃寻址两种.

    顺序寻址可以通过程序计数器PC加1自动形成下一条指令的地址,跳跃寻址则通过转移类指令实现,是通过对PC的运算得到新的下一条指令的地址.

    3. 常见寻址方式

    1)立即寻址

    所需的操作数由指令的地址码部分直接给出,就称为立即数(或直接数)寻址方式.这种方式的特点是取指时,操作码和一个操作数同时被取出,不必再次访问存储器,提高了指令的执行速度.但是由于这一操作数是指令的一部分,不能修改,而一般情况下,指令所处理的数据都是在不断变化的(如上条指令的执行结果作为下条指令的操作数),故这种方式只能适用于操作数固定的情况.通常用于给某一寄存器或存储器单元赋初值或提供一个常数等.(图中“#”表示立即寻址的标记,A的位数限制了这类指令所能表述的立即数的范围)

    2)直接寻址

    指令的地址码部分给出操作数在存储器中的地址.

    3)隐含寻址

    操作数的地址隐含在操作码或者某个寄存器中.

    4)间接寻址

      在寻址时,有时根据指令的地址码所取出的内容既不是操作数,也不是下一条要执行的指令,而是操作数的地址或指令的地址,这种方式称为间接寻址或间址.

    5)寄存器寻址

    计算机的中央处理器一般设置有一定数量的通用寄存器,用以存放操作数,操作数的地址或中间结果.假如指令地址码部分给出某一通用寄存器地址,而且所需的操作数就在这一寄存器中,则称为寄存器寻址.通用寄存器的数量一般在几个至几十个之间,比存储单元少很多,因此地址码短,而且从寄存器中存取数据比从存储器中存取快得多,所以这种方式可以缩短指令长度,节省存储空间,提高指令的执行速度,在计算机中得到广泛应用.

    6)寄存器间接寻址                                    EA = ( Ri)有效地址在寄存器中

    寄存器中给出的是操作数的地址,因此还需要访问一次存储器才能得到操作数.

    7)基址寻址

    在计算机中设置一个专用的基址寄存器,或由指令指定一个通用寄存器为基址寄存器.操作数的地址由基址寄存器的内容和指令的地址码A相加得到

    8)变址寻址

    指令地址码部分给出的地址A和指定的变址寄存器X的内容通过加法器相加,所得的和作为地址从存储器中读出所需的操作数.这是几乎所有计算机都采用的一种寻址方式.

    9)相对寻址

    把程序计数器PC的内容(即当前执行指令的地址)与指令的地址码部分给出的位移量(disp)之和作为操作数的地址或转移地址,称为相对寻址.

     主要用于转移指令,执行本条指令后,将转移到(PC)+disp,(PC)为程序计数器的内容.相对寻址有两个特点:

      1〉转移地址不是固定的,它随着PC值的变化而变化,并且总是与PC相差一个固定值disp,因此无论程序装人存储器的任何地方,均能正确运行,对浮动程序很适用.

      2〉位移量可正,可负,通常用补码表示.如果位移量为n位,则这种方式的寻址范围在

          (PC)-2n-1 ~(PC)+2n-1-1之间

      计算机的程序和数据一般是分开存放的,程序区在程序执行过程中不允许修改.在程序与数据分区存放的情况下,不用相对寻址方式来确定操作数地址.

     

    10)堆栈寻址

    在一般计算机中,堆栈主要用来暂存中断和子程序调用时现场数据及返回地址,用于访问堆栈的指令只有压入(即进栈)和弹出(即退栈)两种,它们实际上是一种特殊的数据传送指令:

    压入指令(PUSH)是把指定的操作数送入堆栈的栈顶;

    弹出指令(POP)的操作刚好相反,是把栈顶的数据取出,送到指令所指定的目的地.

    一般的计算机中,堆栈从高地址向低地址扩展,即栈底的地址总是大于或等于栈顶的地址(也有少数计算机刚好相反)当执行压入操作时,首先把堆栈指针(SP)减量(减量的多少取决于压入数据的字节数,若压入一个字节,则减1;若压入两个字节,则减2,以此类推),然后把数据送人SP所指定的单元;当执行弹出操作时,首先把sp所指定的单元(即栈顶)的数据取出,然后根据数据的大小(即所占的字节数)对SP增量.

    设计指令格式应考虑的各种因素

    指令系统集中反映了机器的性能,又是程序员编程的依据,高档机必须能兼容低档机的程序运行,称之为“向上兼容”.

    指令格式集中体现了指令系统的功能.为此,在确定指令系统时,必须从以下几个方面综合考虑.

    ①   操作类型:包括指令数及操作的难易程度

    ②   数据类型:确定哪些数据类型可以参加操作

    ③   指令格式:包括指令字长、操作码位数、地址码位数、地址个数、寻址方式类型、以及指令字长和操作码位数是否可变等.

    ④   寻址方式:包括指令和操作数具体有哪些寻址方式.

    ⑤  寄存器个数:寄存器的多少直接影响指令的执行时间.

     

    寻址方式

    详情

    指令寻址

    顺序寻址

    顺序寻址可通过程序计数器PC加1自动形成下一条指令的地址

    跳跃寻址

    跳跃寻址则通过转移类指令实现

    数据寻址

    1.立即寻址

    操作数本身设在指令字内,即形式地址A不是操作数地址而是操作数本身

    l   指令执行阶段不访存

    l   A的位数限制了这类指令所能表述的立即数的范围

    2.直接寻址

    指令中的形式地址A就是操作数的真实地址EA,即EA=A

    l   执行阶段访问一次存储器

    l   缺点在于A的位数限制了操作数的寻址范围而且必须修改A的值才能修改操作数的地址

    3.隐含寻址

    指令字中不明显给出操作数的地址,其操作数的地址隐含在操作码或某个寄存器中

    l   由于隐含寻址在指令字中少了一个地址,因此,这种寻址方式的指令有利于缩短指令字长

    4.间接寻址

    倘若指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元的地址,也就是说,有效地址是由形式地址间接提供的,即为间接地址,即EA=(A)

    优点

    1.   与直接寻址相比,扩大了操作数的寻址范围,因为A的位数通常小于指令字长,而存储字长可与指令字长相等

    2.   它便于编制程序

    缺点

    l   指令的执行阶段需要访存两次(一次间接寻址)或多次(多次间接寻址),致使指令执行时间延长

    5.寄存器寻址

    在寄存器寻址的指令字中,地址码字段直接指出了寄存器的编号,即EA=R

    l   由于地址字段只需指明寄存器编号(计算机中寄存器数有限)故指令字

    l   较短,节省了存储空间,因此寄存器寻址在计算机中得到广泛应用

    l   执行阶段不访存,只访问寄存器,执行速度快

    l   寄存器个数有限,可缩短指令字长

    6.寄存器间接寻址

    有效地址EA+=(Ri),因有效地址

    l   有效地址在寄存器中, 操作数在存储器中,执行阶段访存

    l   便于编制循环程序

    7.基址寻址

    基址寻址需设有基址寄存器BR,其操作数的有效地址EA等于指令字中的形式地址与基址寄存器中的内容(称为基地址)相加,即EA=A+(BR)

    采用专用寄存器作基址寄存器

    l   可扩大寻址范围

    l   有利于多道程序

    l   BR内容由操作系统或管理程序确定

    l   在程序的执行过程中 BR 内容不变,形式地址 A 可变

    采用通用寄存器作基址寄存器

    l   由用户指定哪个通用寄存器作为基址寄存器

    l   基址寄存器的内容由操作系统确定

    l   在程序的执行过程中 R内容不变,形式地址 A 可变

    8.变址寻址

    变址寻址与基址寻址极为相似.其有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA=A+(IX)

    l   可扩大寻址范围

    l   IX 的内容由用户给定

    l   在程序的执行过程中 IX 内容可变,形式地址 A 不变

    l   便于处理数组问题

    9.相对寻址

    ~的有效地址是将PC的内容(即当前指令地址)与指令字中的形式地址A(A 是相对于当前指令的位移量(可正可负,补码)相加而成,即EA=(PC)+A

    l   A 的位数决定操作数的寻址范围

    l   程序浮动

    l   广泛应用于转移指令

    10.堆栈寻址

    要求计算机中设有堆栈.堆栈既可用寄存器组(称为硬堆栈)来实现,也可利用主存的一部分空间作堆栈(称为软堆栈)

    l   硬堆栈 多个寄存器

    l   软堆栈 制定的存储空间

     (三) CISC和RISC的基本概念

    1.CISC(复杂指令集计算机)

    随着VLSI技术的发展,计算机的硬件成本不断下降,软件成本不断提高,使得人们热衷于在指令系统中增加更多的指令和复杂的指令,来提高操作系统的效率,并尽量缩短指令系统与高级语言的语义差别,以便于高级语言的编译和降低软件成本.

        另外,为了做到程序兼容,同一系列计算机的新机器和高档机的指令系统只能扩充而不能减去任意一条,因此,促使指令系统越来越复杂,某些计算机的指令多达几百条.例如,DEC公司的VAX 11/780计算机有303条指令,18种寻址方式,我们称这些计算机为复杂指令系统计算机(complex instruction  set  computer,简称CISC).Intel公司的180X86微处理器,IBM公司的大,中计算机均为CISC.

    2.RISC(简单指令集计算机)

    (1)RISC的产生

        1975年IBM公司开始研究指令的合理性问题,IBM的John cocke 提出了RISC的想法.      对CISC的测试表明:

    最长使用的是一些简单指令,占指令总数的20%,但在程序中出现的频率却占80%.     而占20%的复杂指令,为实现其功能而设计的微程序代码却占总代码的80%.CISC研制时间长,成本高,难于实现流水线;因此出现了RIC技术.

    计算机执行程序所需的时间P可用下式表述:

    P=I×C×T

    其中,I是高级语言程序编译后在机器上运行的机器指令数;C为执行每条机器指令所需的平均机器周期;T是每个机器周期的执行时间.

    (2)RISC的特点

    1)优先选取使用频率最高的一些简单指令;

    选用使用频度较高的一些 简单指令,复杂指令的功能由简单指令来组合

    2)指令长度固定;

    指令 长度固定、指令格式种类少、寻址方式少

    3)只有取数/存数指令(load/store)访问内存;

    只有 LOAD / STORE 指令访存

    4)CPU中的寄存器数量很多;

    CPU 中有多个 通用 寄存器

    5)大部分指令在一个或小于一个机器周期完成;

    采用 流水技术  一个时钟周期 内完成一条指令

    6)硬布线控制逻辑为主,不用或少用微码控制;

    采用 组合逻辑 实现控制器

    7)一般用高级语言编程,特别重视编译优化,以减少程序执行时间.

    采用 优化 的 编译 程序

    (3)RISC的发展

        1983年,一些中小型公司开始推出RISC产品,由于其高性能价格比,市场占有率不断提高.1987年SUN公司用SPARC芯片构成工作站;目前一些大公司,IBM,DEC,Intel,Motorola以将部分力量转移到RISC方面.

    (4)CISC机与RISC机的主要特征对比

     

    CISC

    RISC

    指令系统

    指令数

    指令格式

    指令字长

    寻址方式

    可访问指令

    各种指令使用频率

    各种指令执行时间

    复杂,庞大

    一般大于200

    一般大于4

    一般大于4

    不固定

    不加限制

    相差很大

    相差很大

    简单,精简

    一般小于100

    一般小于4

    一般小于4

    固定32位

    只有LOAD/STORE指令

    相差不大

    绝大多数在一个机器周期完成

    优化编译实现

    很难

    较容易

    程序源代码长度

    较短

    较长

    控制逻辑实现方式

    绝大多数为微程序控制

    绝大多数为硬连线控制

    RISC机的主要优点可归纳如下

    ①充分利用VLSI芯片的面积

    ②提高了计算机运行速度

    ③便于设计,降低成本,提高可靠性

    ④有效支持高级语言程序

     

    五, 中央处理器(CPU)

    (一) CPU的功能和基本结构

    CPU主要是由运算器和控制器组成,由于运算器(实现算术运算和逻辑运算)部分在第二部分介绍过,所以本节主要介绍控制器的组成和工作原理.

    1.控制器的功能

    计算机对信息进行处理(或计算)是通过程序的执行而实现的,程序是完成某个确定算法的指令序列,要预先存放在存储器中.控制器的作用是控制程序的执行,它必须具有以下基本功能:

    1).取指令

    2).分析指令

    3).执行指令

    计算机不断重复顺序执行上述三种基本操作:取指,分析,执行;再取指,再分析,再执行,如此循环,直到遇到停机指令或外来的干预为止.

    4).控制程序和数据的输入与结果输出

    根据程序的安排或人的干预,在适当的时候向输入输出设备发出一些相应的命令来完成I/O功能,这实际上也是通过执行程序来完成的.

    5).对异常情况和某些请求的处理

    当机器出现某些异常情况,诸如算术运算的溢出和数据传送的奇偶错等;或者某些外来请求,诸如磁盘上的成批数据需送存储器或程序员从键盘送入命令等,此时由这些部件或设备发出: 

    (1)“中断请求”信号.

    (2)DMA请求信号.

    2.控制器的组成

    根据对控制器功能分析,得出控制器的基本组成如下:

    1).程序计数器(PC)

    即指令地址寄存器.在某些计算机中用来存放当前正在执行的指令地址;而在另一些计算机中则用来存放即将要执行的下一条指令地址;而在有指令预取功能的计算机中,一般还需要增加一个程序计数器用来存放下一条要取出的指令地址.

    有两种途径来形成指令地址,其一是顺序执行的情况,通过程序计数器加“1”形成下一条指令地址(如存储器按字节编址,而指令长度为4个字节,则加“4”).其二是遇到需要改变顺序执行程序的情况,一般由转移类指令形成转移地址送往程序计数器,作为下一条指令的地址.

    2).指令寄存器(IR)

    用以存放当前正在执行的指令,以便在指令执行过程中,控制完成一条指令的全部功能.

    3). 指令译码器或操作码译码器

    对指令寄存器中的操作码进行分析解释,产生相应的控制信号.

    在执行指令过程中,需要形成有一定时序关系的操作控制信号序列,为此还需要下述组成部分.

    4).脉冲源及启停线路

    脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(reset).启停线路保证可靠地送出或封锁时钟脉冲,控制时序信号的发生或停止,从而启动机器工作或使之停机.

    5).时序控制信号形成部件

    当机器启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控功能部件的反馈信号调整时序控制信号.例如,当执行加法指令时,若产生运算溢出的异常情况,一般不再执行将结果送入目的寄存器(或存储单元)的操作,而发出中断请求信号,转入中断处理;又如执行条件转移指令时,根据不同的条件产生不同的控制信号,从而进入适当的程序分支.

    (二) 指令执行过程

    1.指令执行的时序

        计算机工作的过程是取指令,分析指令,执行指令三个基本动作的重复.考虑到所有的器件中(寄存器,存储器)存储器的速度最慢,因此,取最慢的器件工作时间(周期)作为整个工作的最长同步标准.

        计算机的工作时序是按照存储器的工作周期划分的.每个存储器工作周期又称为机器周期.因此,每个机器周期至少完成一个基本操作.一般最长的操作是访问存储器(读/写),这个时间也用于访问外设接口(寄存器).如果,某个操作,比如利用运算器执行一次运算,如果不访问存储器,即使占用的时间很短,但是,也必须为其划分一个机器周期.因此,机器周期是计算时序划分的最大单位.

    现在我们为计算机的执行时间进行最基本的划分:由于计算机不断地重复执行每个指令,所以,我们将执行的时间划分为一条一条指令执行所占用的时间,如下:

    执行指令1

    执行指令2

    执行指令3

    执行指令4

    执行指令5

        我们将每指令占用的时间称为指令周期.由于每条指令的功能不一样,因此执行的时间也不同,指令周期长短不一样.

        而每条指令的执行,又可以是取指令,分析指令,执行指令.由于取指令必须访问存储器,所以占用一个机器周期.分析指令是由指令译码电路完成的,所占用的时间极短,无需分配一个完整的机器周期.一般是在取指周期后期(结束之前的很短时间内)就可以完成.指令的执行较为复杂:可能不访问存储器;访问一次存储器;访问两次存储器等.因此,可能是一个机器周期到几个机器周期.

    因此,每条指令的执行过程如下:

    取指周期

    执行周期1

    执行周期2

    执行周期3

    执行周期4

        第一个机器周期总是取指周期,而指令的地址总是从PC中获得,当发出读取存储器命令后,指令总是从数据总线DB送回,CPU接受到指令之后,将指令放在指令寄存器IR之中.指令在IR中一直保留到取下一条指令为止.

        第二个机器周期开始,根据指令有所不同:

        执行一次ALU运算:分配一个机器周期.

        执行访问一次存储器:分配一个机器周期.

        所以,根据指令执行的不同情况,将会得到不同指令执行所占用的机器周期.

        根据每个机器周期完成的任务不同,我们将每个机器周期按照任务命名.如同用取指周期命名第一个机器周期一样.

    2.指令执行过程举例

    假设指令格式如下:

    操作码

    rs,rd

    rs1

    imm(Disp)

         rs,rd,rsl为通用寄存器地址;imm(或disp)为立即数(或位移量).

          加法指令功能:将寄存器(rs)中的一个数与存储器中的一个数(其地址为(rsl)+disp)相加,结果放在寄存器rd中,rs与rd为同一寄存器.

    加法指令完成以下操作:

    ①取指周期

    从存储器取指令,送入指令寄存器,并进行操作码译码(分析指令).

        程序计数器加1,为下一条指令作好准备.

        控制器发出的控制信号:PC→AB,W/R=0,M/IO=1;DB→IR;PC+1.

    ②计算地址周期

    计算数据地址,将计算得到的有效地址送地址寄存器AR.

        控制器发出的控制信号:rsl→GR,(rsl)→ALU,disp→ALU(将rsl的内容与disp送ALU);“+”(加法命令送ALU);ALU→AR(有效地址送地址寄存器).

    ③取数周期

    到存储器取数.

        控制器发出的控制信号:AR→AB,W/R=0,M/IO=1;DB→DR(将地址寄存器内容送地址总线,同时发访存读命令,存储器读出数据送数据总线后,打入数据寄存器).

    ④执行周期

    进行加法运算,结果送寄存器,并根据运算结果置状态位N,Z,V,C.

        控制器送出的控制信号:rs,rd→GR,  (rs)→ALU,DR→ALU(两个源操作数送ALU);

    ALU→rd(运算结果送寄存器rd)

    (三) 数据通路的功能和基本结构

    CPU的数据通路是连接CPU内部各个部件以及和CPU外部个部件之间的数据和控制信号的连接关系图.

    数据通路的基本结构:

    (四) 控制器的功能和工作原理

    1. 硬布线控制器

    控制器控制信号的产生是采用逻辑电路,也称组合逻辑电路控制方式. “时序控制信号形成部件”是由硬逻辑布线完成的.实际设计中,需要几十~几百条指令,确定每条指令所需的机器周期,将情况相同的指令归并在一起,列出表达式,画出逻辑图.

    (1)时序与节拍

    每一步由一个机器周期来完成,假设采用4个机器周期,总之,需要4个不同的信号输出,代表4个不同的周期.

    (2)操作码译码器

      指令的操作码部分指出本指令将执行什么指令,如加法,减法等.对于不同的指令,采用不同的代码表示.

    (3)操作控制信号的产生

      以加法指令为例,加法指令的完成是由4个机器周期cy1,cy2,cy3,cy4组成,分别是取指,计算地址,取数,计算4个机器周期.

    将所有的机器周期的操作控制信号的逻辑表达式全部写出来,就会得到各个操作控制信号的所有表达式,再将这些表达式安每个操作控制信号组合起来,就得到某个操作控制信号的表达式.

    取指周期需要产生的操作控制信号如下:

      PC→AB=cy1        ;将PC送地址总线

      ADS=cy1·T1        ;存储器地质有效

      M/IO=cy1           ;存储器操作

      W/R=cy1            ;读操作

      DB→IR=cy1        ;将读出的结果送IR

      PC+1=cy1           ;将程序计数器加1

    计算地址周期cy2需要完成有效地址((rs1)+Disp)的计算.产生的操作控制信号如下:

      rs1→GR=加法指令·cy2       ;送通用寄存器地址

     (rs1)→ALU=加法指令·cy2     ;通用寄存器送ALU

      Disp→ALU=加法指令·cy2     ;偏移量送ALU

      “+”=加法指令·cy2         ;ALU执行加法操作

      ALU→AR=加法指令·cy2       ;运算结果送地址总线

    例如,“+”操作控制信号在加法指令的cy2(计算有效地址)和cy4(操作数相加)时需要;减法指令的cy2(计算有效地址)时需要;转移指令的cy2(计算有效地址)时需要;….

      所以,“+”操作控制信号的逻辑表达式如下:

      “+”=加法指令·(cy2+cy4)+减法指令·cy2+转移指令·cy2+…

      设机器有7位操作码(OP0~OP6),假设加法指令的操作码为0001100,形成的加法指令信号的逻辑表达式为:

      加法指令= OP0OP1OP2OP3OP4OP5OP6

    如,某机器128条指令,用7位操作码(OP0~OP6),如果其中有16条算术逻辑运算指令,可以将这些指令的3位操作码都设计相同的编码,如OP0OP1OP2= 001,而其他位OP3~OP6编码表示16个不同的指令.

      设命令A是所有算术逻辑运算在cy2周期需要产生的,逻辑表达式:

      A=加法指令·cy2+减法指令·cy2+逻辑加指令·cy2+…

       =(加法指令·+减法指令+逻辑加指令+…)·cy2

       = OP0·OP1·OP2·cy2

      只需要一个与门,就可实现命令A.

    2. 微程序控制器

    (1)微程序,微指令和微命令

    在计算机中,一条指令的功能是通过按一定次序执行一系列基本操作完成的,这些基本操作称为微操作.例如,前面讲到的加法指令,分成四步(取指令,计算地址,取数,加法运算)完成,每一步实现若干个微操作.实现这些微操作的控制命令就是微命令.

    微操作是指最基本的,不可再分的操作,如前面提到的:

         PC→AB; W/R=0; DB→IR等.

    PC→AB等就是微命令.

    微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作称为微指令,所以微指令就是把同时发出的控制信号的有关信息汇集起来而形成的.将一条指令分成若干条微指令,按次序执行这些微指令,就可以实现指令的功能.组成微指令的微操作又称微命令.

    微程序:计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序.

    (2)微指令的编码方式;

    1)直接控制法

    在微指令的控制字段中,每一位代表一个微命令,在设计微指令时,是否发出某个微命令,只要将控制字段中相应位置成“1”或“0”,这样就可打开或关闭某个控制门,这就是直接控制法.

    2)字段直接编译法

    在计算机中的各个控制门,在任一微周期内,不可能同时被打开,而且大部分是关闭的(相应的控制位为“0”).所谓微周期,指的是一条微指令所需的执行时间.如果有若干个(一组)微命令,在每次选择使用它们的微周期内,只有一个微命令起作用,那么这若干个微命令是互斥的.

    选出互斥的微命令,并将这些微命令编成一组,成为微指令字的一个字段,用二进制编码来表示, 就是字段直接编译法.

    3)字段间接编译法

    字段间接编译法是在字段直接编译法的基础上,进一步缩短微指令字长的一种编译法.      如果在字段直接编译法中,还规定一个字段的某些微命令,要兼由另一字段中的某些微命令来解释,称为字段间接编译法. 

    (3)微地址的形式方式.

    1)微程序入口地址的形成

    <1>一级转移方式

      当操作码的位数与位置固定时,可直接使操作码与入口地址的部分位对应.

    <2>多级转移方式

        先按照指令类型标志转移到某条微指令,以区分出是哪一大类,然后可以进一步按指令操作码转移,区分出是该指令中的哪一类具体操作.

    2)微程序后继地址的形成

    <1>以增量方式产生后继微地址.

        在顺序执行微指令时,后继微地址由现行微地址加上一个增量(通常为1)形成的;而在非顺序执行时则要产生一个转移微地址.

    <2>增量与下址字段结合产生后继微地址

        将微指令的下址字段分成两部分:转移控制字段BCF和转移地址字段BAF,当微程序实现转移时,将BAF送µPC,否则顺序执行下一条微指令(µPC+1).

    (五) 指令流水线

    1. 指令流水线的基本概念

    (1)流水线基本原理

    流水线技术是一种显著提高指令执行速度与效率的技术.方法是:指令取指完成后,不等该指令执行完毕即可取下一条指令.

    如果把一条指令的解释过程进一步细分,例如,把分析,执行两个过程分成取指,译码,执行,访存和写回寄存器五个子过程,并用五个子部件分别处理这五个子过程.

      这样只需在上一指令的第一子过程处理完毕进入第二子过程处理时,在第一子部件中就开始对第二条指令的第一子过程进行处理.随着时间推移,这种重叠操作最后可达到五个子部件同时对五条指令的子过程进行操作.


    指令六级流水时序

    (2)影响流水线性能的因素

    在流水线中会出现三种相关,影响流水线的畅通流动,这三种相关是结构相关,数据相关和控制相关.

    结构相关是当多条指令进人流水线后,硬件资源满足不了指令重叠执行的要求时产生的.

    数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的.

    控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的.

    (3)流水线性能

    流水线的性能通常用吞吐率,加速比和效率3项指标来衡量.

    1)吞吐率

       在指令流水线中,吞吐率是指单位时间内流水线所完成的指令或输出结果的数量.

    2)加速比

       流水线的加速比是指m段流水线的速度与等功能的非流水线的速度之比.

    3)效率

    效率是指流水线中个功能段的利用率.

    2. 超标量和动态流水线的基本概念

    (1) 超标量

    在超标量的处理器结构中,整数和浮点数运算,装入,存储以及条件转移等普通操作指令可以同时启动并独立执行.

    超标量流水CPU是指集成了多条流水线结构的CPU,当流水线满载时,每个时钟周期可以完成一条以上的指令.

    (2) 动态流水线

    流水线按功能可分成单功能流水线和多功能流水线两种.

        单功能流水线只完成一种功能.如浮点加法或乘法流水线.

        多功能流水线则可完成多种功能,它允许在不同时间,甚至同一时间内在流水线内连接不同功能段的子集来实现不同功能.

    流水线按工作方式可分为静态流水线和动态流水线两种.

        在静态流水线中,同一时间内它只能以一种功能方式工作.它可以是单功能的,也可以是多功能的.当是多功能流水线时,则从一种功能方式变为另一种功能方式时,必须先排空流水线,然后为另一种功能设置初始条件后方可使用.显然,不希望这种功能的转换频繁的发生,否则将严重影响流水线的处理效率.

         动态流水线则允许在同一时间内将不同的功能段连接成不同的功能子集(前提条件是功能部件的使用不发生冲突),以完成不同的运算功能.显然,动态流水线必是多功能流水线,而单功能流水线则必是静态的.

     

     

    六, 总线

    (一) 总线概述

    1. 总线的基本概念

    总线是连接各个部件的信息传输线,是各个部件共享的传输介质,总线上信息的传送分为串行并行传输

    同步通信

    通信双方由统一时标控制数据传送称为同步通信

    一般用于总线长度较短,各部件存取时间比较一致的场合

    异步通信

    异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地.
    (1)不互锁方式.主模块发出请求信号后,不等待接到从模块的回答信号,而是经过一段时间.确认从模块已收到请求信号后,便撤消其请求信号;从设备接到请求信号后,在条件允许时发出回答信号,并经过一段时间,确认主设备已收到回答信号后,自动撤消回答信号.可见通信双方并无互锁关系.
    (2)半互锁方式.主模块发出请求信号,待接到从模块的回答信号后再撤消其请求信号,存在着简单的互锁关系:而从模块发出回答信号后,不等待主模块回答,在一段时间后便撤消其回答信号,无互锁关系.故称半互锁方式.
    (3)全互锁方式.主模块发出请求信号,待从模块回答后再撤其请求信号;从模块发出回答信号,待主模块获知后,再撤消其回答信号.故称全互锁方式.

    半同步通信

    半同步通信集同步与异步通信之优点,既保留了同步通信的基本特点,如所有的地址,命令,数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别.同时又像异步通信那样,允许不同速度的模块和谐地工作.为此增设了一条“等待”( )响应信号线.
    半同步通信适用于系统工作速度不高,但又包含了许多工作速度差异较大的各类设备的简单系统.半同步通信控制方式比异步通信简单,在全系统内各模块又在统一的系统时钟控制下同步工作,可靠性较高,同步结构较方便.其缺点是对系统时钟频率不能要求太高,故从整体上来看,系统工作的速度还是不很高.

    分离式通信

    分离式通信的基本思想是将一个传输周期(或总线周期)分解为两个子周期
    这种方式控制比较复杂,一般在普通微机系统很少采用

    按照系统总线传输信息的不同

    数据总线

    双向传输

       高电平为1低电平为0

    地址总线

    单向传输

    地址线位数n与存储单元N数之间的关系   N=2n

    控制总线

    读写控制线

    片选线

    每根都是单向的

    总体输入输出

    用来发出各种控制信号的传输线

     

    通信总线

    串行总线

    近距离 小于30米

    并行总线

    远距离 几米到数公里

     

    2. 总线的分类

    1)片内总线:芯片内部的总线

    2)系统总线:计算机各部件之间 的信息传输线

    数据总线:双向  与机器字长,存储字长有关

    地址总线:单向  与存储地址, I/O地址有关

    控制总线:部分出部分入 控制器控制所有部件

    3)通信总线:用于 计算机系统之间 或 计算机系统,与其他系统(如控制仪表,移动通信等)之间的通信

    传输方式:串行通信总线和并行通信总线

    3. 总线的组成及性能指标

    总线的结构通常分为单总线结构和多总线结构.

    单总线结构是将CPU,主存,I/O设备(通过I/O接口)都挂在一组总线上.

    多总线结构的特点是将速度较低的I/O设备从单总线上分离出来,形成主总线与I/O设备总线分开的结构.

    总线的性能指标

    1)总线宽度:数据总线的根数

    2)总线带宽:数据传输率

    3)时钟同步/异步:总线上的数据与时钟同步的称为同步总线,与时钟不同步的称为异步总线

    4)总线复用:一条信号线上分时传送两种信号.

    5)信号线数:地址总线,数据总线和控制总线三种总线数的总和.

    6)总线控制方式:包括突发工作,自动配置,总裁方式,逻辑方式,技术方式等.

    7)其他指标:负载能力,电源电压,总线宽度能否扩展等.

    (二) 总线仲裁

    由于总线上连接着多个部件,何时由哪个部件发送信息,如何定时,如何防止信息丢失,如何避免多个设备同时发送,如何规定接收部件等一系列问题都需要总线控制器统一管理,主要包括总线的判优控制(仲裁逻辑)和通信控制.

    总线仲裁逻辑可分为集中式和分布式两种,前者将控制逻辑集中在一处(如在CPU中),后者将控制逻辑分散在总线的各个部件之上.

    1. 集中仲裁方式

    集中仲裁方式有三种:

    (1)链式查询


    当一个或多个设备同时发出总线使用请求信号BR时,中央仲裁器发出的总线授权信号BG沿着菊花链串行的从一个设备依次传送到下一个设备,到达离出发点最近的发出总线请求的设备之后就不再往下传.

    (2)计数器定时查询


    总线上个设备通过总线请求信号BR,发出请求,中央仲裁器接收到请求信号后,在总线忙信号BS为“0”的情况下,让计数器开始计数,计数值通过一组地址线发往各设备.每个设备有一个地址判别电路,如果地址线上的计数值与总线请求设备地址一致,则该设备对BS线置“1”,表示该设备获得了总线使用权,同时中止计数查询.

    (3)独立请求方式


    每个连接到总线的设备都有一组单独的总线请求信号BRi与总线授权信号BGi.每个设备请求使用总线时,它们各自发出自己的总线请求信号.中央仲裁器中设置了一个专门的排队电路,由它根据一定的优先次序决定优先响应哪个设备的请求,然后给该设备总线授权信号BGi

    2. 分布仲裁方式

    同集中式仲裁相比,分布式仲裁不需要中央仲裁器,而是让各个主设备功能模块都有自己的仲裁号和仲裁电路.需要使用总线时,各个设备的功能模块将自己唯一的仲裁号发送到共享的总线上,各自的仲裁电路再将从仲裁总线上获得的仲裁号和自己的仲裁号相对比,获胜的仲裁号将保留在仲裁总线上,相应设备的总线请求获得响应.

    (三) 总线操作和定时

    目前在总线上的操作主要有以下几种:

    1)读和写

      读是将从设备(如存储器)中的数据读出并经总线传输到主设备(如CPU);写是主设备到从设备的数据传输过程.

    2)块传送

      主设备给出要传输的数据块的起始地址后,就可以利用总线对固定长度的数据一个接一个的读出或写入.

    3)写后读或读后写

      主设备给出地址一次,就可以进行先写后读或者先读后写操作,先读后写往往用于校验数据的正确性,先写后读往往用于多道程序的对共享存储资源的保护.

    4)广播和广集

      主设备同时向多个从设备传输数据的操作模式称为广播.广集操作和广播操作正好相反,它将从多个从设备的数据在总线上完成AND或OR操作,常用于检测多个中断源.

    所谓定时,是指事件出现在总线上的时间关系.总线常用的定时协议有同步定时方式和异步定时方式

    1. 同步定时方式

    同步定时方式要求所有的模块由统一的始终脉冲进行操作的控制,各模块的所有动作均在时钟周期的开始产生,并且多数动作在一个时钟周期内完成.

    2. 异步定时方式

    异步定时方式是一种应答方式或者互锁机制的定时方式.对于异步操作,操作的发生由主设备或从设备的的特定信号来确定.总线上一个事件的发生取决于前一个事件的发生,双方互相提供联络信号.

    (四) 总线标准

    总线标准就是系统与各模块,模块与模块之间的一个互连的标准界面.

    目前流行的总线标准有以下几种:

    1.系统总线

    1)ISA----工业标准体系(Industry Standard Architecture),它是最早出现的微型计算机总线标准,应用在IBM的AT机上.直到现在,微型计算机主板或工作站主板上还保留有少量的ISA扩展槽.

    2)EISA----扩展工业标准体系(Extended Industry Standard Architecture),主要用于286微机.EISA对ISA完全兼容.

    3)VESA----视频电子标准协会(Video Electronic Standard Association),是按照局部总线标准设计的一种开放总线,只适合于486的一种过渡标准,已淘汰.

    4)PCI----外围设备互联(Peripheral Component Interconnection),PCI局部总线是高性能的32位或64位总线,它是专门为高集成度的外围部件,扩充插板和处理器/存储器系统而设计的互连机制.

    5)AGP----是一种新型的视频接口的技术标准,专用于连接主存和图形存储器.AGP总线宽32位,时钟频率66MHz,能以133MHz工作,最高的传输速率可达533Mbps.

    2.设备总线

    1)IDE----集成驱动电子设备(Integrated Drive Electronics),它是一种在主机处理器和磁盘驱动器之间广泛使用的集成总线.绝大部分PC的硬盘和相当数量的CD-ROM驱动器都是通过这种接口和主机连接的.

    2)SCSI----小型计算机系统接口(Small Computer System Interface),现在这种接口不再局限于将各种设备与小型计算机直接连接起来,它已经成为各种计算机(包括工作站,小型机,甚至大型机)的系统接口.

    3)RS-232----(Recommended Standard-232C),是由美国电子工业协会EIA(Electronic Industries Association)推荐的一种串行通信总线标准.

    4) USB----USB(Universal Serial Bus)接口基于通用的连接技术,可实现外设的简单快速连接,已达到方便用户,降低成本,扩展微机连接外设范围的目的.

    七, 输入输出(I/O)系统

    (一) I/O系统基本概念

    除了CPU存储器两大模块之外,计算机硬件系统的第三个关键部分就是输入输出模块,也称输入输出系统.输入输出系统的发展概况

    1)早期                      分散连接,CPU 和 I/O设备  串行 工作,程序查询方式

    2)接口模块和 DMA 阶段       总线连接,CPU 和 I/O设备  并行 工作,中断方式和DMA 方式

    3)具有通道结构的阶段

    4)具有 I/O 处理机的阶段

    输入输出系统应该由I/O软件和I/O硬件两部分组成

    I/O软件

    (1) I/O 指令  CPU 指令的一部分

    (2) 通道指令 通道自身的指令

    指出数组的首地址、传送字数、操作命令

    如 IBM/370 通道指令为 64 位

    2. I/O 硬件

    设备 I/O 接口

    设备 设备控制器  通道

    输入输出系统软件的主要任务是:

    ①何将用户编制的程序(或数据)输入至主机内;

    ②如何将运算结果输送给用户;

    ③如何实现I/O系统与主机工作的协调等.

    I/O设备与主机的联系方式

    1.I/O编址方式

    通常将I/O设备码视为地址码,对I/O地址码的编址可采用两种方式:

    统一编址    用取数、存数指令

    就是将I/O地址看作是存储器地址的一部分.如在64K地址的存储空间中,划出8K地址作为I/O的地址,.凡是在这8K地址范围内的访问,就是对 I/O的访问,所用的指令与访存指令相似.

    不统一编址  有专门的I/O 指令

    就是指I/O地址和存储器地址是分开的,所有对I/O的访问必须有专用的I/O指令.

    显然统一编址占用了存储空间,减少了主存容量,但无需专用的I/O指令.不统一编址由于不占用主存空间,故不影响主存容量,但需设 I/O专用指令.因此,设计机器时,需根据实际情况权衡考虑选取何种编址方式.

    2.设备寻址 用设备选择电路识别是否被选中

    由于每台设备都赋予一个设备号,因此,当要启动某一设备时,可由I/O指令的设备码字段直接指出该设备的设备号. 通过接口电路中的设备选择电路,便可选中要交换信息的设备.

    3.传送方式

    并行传送

    串行传送

    4.联络方式  三种联络方式

    (1)立即响应方式

    (2)异步工作采用应答信号联络

    (3)同步工作采用同步时标联络

    5.I/O与主机的连接方式

    I/O设备与主机的连接方式通常有两种:辐射式和总线式.

    采用辐射式连接方式时,要求每台 I/O设备都有一套控制线路和一组信号线,因此所用的器件和连线较多,对 I/O设备的增删都比较困难.这种连接方式大多出现在计算机发展的初期阶段.

    图5.2所示的是总线连接方式,通过一组总线(包括地址线,数据线,控制线等),将所有的I/O设备与主机连接.这种连接方式是现代大多数计算机系统所采用的方式.

    为了进一步提高CPU的工作效率,又出现了DMA(Direct Memory Access)技术,其特点是I/O 与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,使CPU 在I/O与主存交换信息时,能继续完成自身的工作,故其资源利用率得到了进一步的提高.

    (二) 外部设备

    1. 输入设备:键盘,鼠标

    (1)键盘

    键盘是目前应用最普遍的一种输入设备,与CRT显示器组成终端设备.

    键盘是由一组排列成阵列形式的按键开关组成的,每按下一个键,产生一个相应的字符代码(每个按键的位置码),然后将它转换成ASCII码或其他码,送主机.目前常用的标准键盘有101个键,它除了提供通常的ASCII字符以外,还有多个功能键(由软件系统定义功能),光标控制键(上,下,左,右移动等)与编辑键(插入或消去字符)等.

    (2)鼠标

    机械式: 金属球 电位器,

    光电式: 光电转换器

    2. 输出设备:显示器,打印机

    (1)显示器

    显示器分类:

    按器件分:CRT显示器;       Cathode Ray Tube阴极射线管

           LED显示器;       Light Emitting Diode发光二极管

           等离子体显示器   PDP Plasma Display Panel,中文叫等离子显示器

    按显示内容分:字符显示器;字符发生器 通过字符发生器在CRT上显示字符.

                 图形显示器;主观图像  用点,线(直线和曲线),面(平面和曲面)组合成平面或立体图形的显示设备.主要用于计算机辅助设计和计算机辅助制造等.

                 图像显示器; 客观图像  图像显示器所显示的图像(如遥感图形,医学图像,自然景物,新闻图片等)通常来自客观世界,又被称为客观图像.图像显示器是把由计算机处理后的图像(数字图像)以点阵的形式显示出来,通常以光栅扫描方式,其分别率可达256x256像素,或者512x512像素,也可以与图形显示器兼容,其分别率可达到1024x1024像素,灰度等级可达64至256级.

    按设备功能分:普通显示器;仅供显示,也称监视器.

                   显示终端;显示器和键盘组成的输入输出设备.

     (2)打印机

    打印机分类

    印字原理

    打击式

    点阵式打印机

    点阵针式打印机的印字原理是由打印针(钢针)印出nxm个点阵组成字符或图形.西文字符点阵有5x7,7x7,7x9,9x9几种,汉字点阵有16x16,24x24,32x32,48x48几种.

    打印头中的钢针数与打印机的型号有关,有7针,9针,也有双列14(2x7)针或双列24(2x12)针.

    非打击式

    激光

    激光打印机采用激光技术和照相技术,印字质量最好,各个计算机系统中被广泛采用.

    激光打印机完成打印操作的基本工作过程大致是:充电→曝光→显影→转印→分离→定影→放电,清洁.

    静电

    静电打印机(Electrostatic Printer),(基于静电成像原理(像许多复印机一样)的打印设备.静电打印机将充电版材上或是喷嘴中释放的色粉树脂或是染料传递到承印材料上,然後对它进行热固化处理.

    喷墨

    喷墨打印机是串行非打击式打印机,印字原理是将墨水喷射到普通打印纸上.若采用红,绿,蓝三色喷墨头,便可实现彩色打印.

    喷墨打印机按照喷墨方式分为连续式和随机式两大类.连续喷射方式是给墨水加压,使墨水流通过喷嘴连续喷射而粒子化.随机式是指墨水只有在打印需要时才喷射,所以又称为按需打印式.目前,随机式喷墨打印机采用的喷墨技术主要有压电式和气泡式.

    工作方式

    串行打印机,逐字打印

    行式打印机,逐行打印

    3. 外存储器:硬盘存储器,磁盘阵列,光盘存储器

    (1)硬盘存储器

    1)性能指标

    <1>存储密度

    道密度 Dt,位密度 Db

    <2>存储容量

    C = n × k × s

    <3>寻址时间

    寻道时间 + 等待时间

    辅存的速度=寻址时间+磁头读写时间

    <4>数据传输率

    Dr  = D V

    <5>误码率

    出错信息位数与读出信息的总位数之比

    外存设备的主要技术指标

    <1>存储密度

    <2>存储容量

    <3>寻址时间

    <4>数据传输率

    <5>误码率

    <6>价格

    2)硬磁盘存储器的类型

    <1> 固定磁头和移动磁头

        固定磁头的磁盘存储器,其磁头位置固定不动,磁盘上的每一个磁道都对应着一个磁头,盘片也不可更换,其特点是省去了磁头沿着盘片径向运动所需的寻道时间,存取速度快,只要磁头进入工作状态即可以进行读写操作.

    移动磁头的磁盘存储器在存取数据时,磁头在盘面上作径向运动,这类存储器可以由一个盘片组成,也可以由多个盘片装在一个同心的主轴上,每个纪录面各有一个磁头.

    <2> 可换盘和固定盘

    可换盘磁盘存储器是指盘片可脱机保存,这种磁盘可在互为兼容的磁盘存储器间交换数据,便于扩大存储容量.

    固定盘磁盘存储器是指磁盘不能从驱动器上取下,更换时要把整个头盘组合体一起更换.

    3)硬磁盘存储器的磁道记录格式

    一个具有n个盘片的磁盘组,可将n个面上的同一半径的磁道看成一个圆柱面,这些磁道存储的信息称为柱面信息.盘面又分为若干个扇区,每条磁道有被分割为若干个扇段,数据在盘片上的布局如图所示:

    因此,寻制用的磁盘地址应该由头号,磁道号,盘面号,扇段号等字段组成,也可将扇段号用扇区号代替.

    (2)磁盘阵列

    1)廉价冗余磁盘阵列(RAID-Redundant  Arrays of Inexpensive  Disk)

        其原理是将并行处理原理引入磁盘系统.它采用低成本的小温盘,使多台磁盘构成同步化的磁盘阵列,数据展开存储在多台磁盘上,提高了数据传输的带宽,并利用冗余技术提高可靠性,类似于存储器中的多体交叉技术.

        磁盘阵列还具有容量大,数据传输速率高,功耗低,体积小,成本低和便于维护等优点,其发展前途十分光明.同步磁盘阵列的关键技术是对多台磁盘机进行同步控制,包括采用缓冲器使数据同步.

     

     

    2)RAID分类

    工业界公认的标准有6级别,分别为RAID0~RAID5:

    RAID-0级采用无冗余无校验的数据分块技术.

    RAID-1级采用磁盘镜像阵列技术.

    RAID-2级采用海明纠错码的磁盘阵列,通过增加校验磁盘实现单纠错双检错功能.

    RAID-3级是采用奇偶校验冗余的磁盘阵列,它也采用数据位交叉,阵列中只用一个校验盘.

    RAID-4级是一种独立传送磁盘阵列,它采用数据块交叉,用一个校验盘.

    RAID-5也是一种独立传送磁盘阵列,它采用数据块交叉和分布的冗余校验,将数据和校验位都分布在各磁盘中,没有专门的奇偶校验驱动器.

     

     

    (3)光盘存储器

    (1)光盘存储器

    光盘存储器利用激光束在介质表面烧蚀凹坑存储信息.根据激光束及其反射光的强弱不同,完成信息的读和写.

    光盘存储器称光盘,是目前广泛使用的一种外存储器,更是多媒体计算机不可缺少的设备.它以介质材料的光学性质(如反射率,偏振方向)的变化来表示所存储信息的“1”和“0”.其突出的优点是,激光束可以聚焦到1μm以下,记录密度可达645Mb/i2.

    光盘的种类根据光盘的可读写性分为只读光盘,写一次/多次读光盘和可重写光盘.

    (2)CD-ROM光盘

    <1>光盘的信息记录方式

    光盘的信息记录方式以凹坑方式永久性存储.当激光束聚焦点照射在两个凹坑之间的盘面上时大部分光将返回,而照在凹坑上时将发生衍射,反射率低,将反射光的光强变化在转换成电信号,即可读出记录信息.

    <2>光盘的扇区数据结构

    光道上划分出一个个的扇区,这是光盘最小的可寻址单元.扇区结构如图所示:

    00

    FF(x10)

    00

    MN

    SC

    MD

    数据

    校验

    SYNC

    (12字节)

    ID

    (4字节)

    数据

    (2048字节)

    校验区

    (288字节)

     扇区

    (2352字节)

    光盘扇区结构

    由图可见,光盘扇区分为4个区域.2个全0字节和10个全1字节组成的同步(SYNC)区,标志着扇区的开始.4字节的扇区标示(ID)区用于说明此扇区的地址和工作模式.光盘的扇区标志地址以分(MN),秒(SC)和分数秒(FR,1/75s)时间值为地址.

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

    1. I/O接口的功能和基本结构

    1)I/O接口的基本功能是:

    (1)实现设备的选择

    (2)实现数据缓冲达到速度匹配

    (3)实现数据串并格式转换

    (4)实现电平转换

    (5)传送控制命令

    (6)反映设备的状态(“忙”,“就绪”,“中断请求”)

    2)接口的基本组成

    2. I/O端口及其编址

    CPU采用2种方法访问I/O设备,也称2种不同的I/O端口编址方法:

    (1)专门的I/O指令

    例如,指令:IN完成输入,指令OUT完成输出操作.指令的地址码字段指出输入输出设备的设备代码.

       由相应的控制信号(如M/IO#)来区分CPU执行的是什么指令.

    (2)利用访问存储器指令完成I/O功能

        从主存的地址空间中分出一部分地址码作为I/O的设备代码,当访问到这些地址时,表示被访的不是主存储器,而是I/O设备端口.没有控制信号区分存储器和端口,采用的是将该段地址译码输出连接到外设的端口.

    (四) I/O方式(I/O设备与主机信息传送的控制方式)

    1. 程序查询方式

    程序查询方式的核心问题是每时每刻需要不断查询I/O设备是否准备好.CPU不断地询问外设是否准备好:如果准备好,CPU执行IO操作;否则,CPU一直等待.CPU大部分时间处于等待状态,利用率不高.

    2. 程序中断方式

    (1)中断的基本概念

    计算机在执行程序的过程中,当出现异常情况或者特殊情况时,CPU停止当前程序的运行,转向对这些异常情况或者特殊情况的处理,处理结束之后再返回到现行程序的间断处继续运行,该过程就是中断.

    (2)中断响应过程

    当多个中断源向CPU提出中断请求时,CPU在任何一个时刻只能接受一个中断源的请求,所以,当多个中断源同时请求时,CPU必须对各个中断源的请求进行排队,且只能接受级别最高的中断源的请求,不允许低级别的中断源中断正在运行的中断服务程序.

    每个设备都配备一个中断请求触发器和中断屏蔽触发器,当中断请求触发器为“1”时,表示该设备向CPU提出中断请求,如果中断屏蔽触发器为“1”时,表示该设备被屏蔽,即封锁其中断源的请求.

    当多个中断源同时向CPU提出请求,CPU需要对这些中断源的请求进行排队,也称中断判优,有两种判优的方法:

    1)查询法

    由测试程序按一定优先排队次序检查各个设备的“中断触发器”(或称为中断标志),当遇到第一个“1”标志时,即找到了优先进行处理的中断源,通常取出其设备码,根据设备码转入相应的中断服务程序.

    2)串行排队链法

    由硬件组成一个串行的优先链,称作排队链.

    一旦CPU确定接受某个中断源的请求,就需要执行该设备的中断服务程序,因此需要找到中断服务程序的入口地址.入口地址的寻找可以用软件或硬件的方法实现.硬件向量法就是通过向量地址来寻找设备的中断服务程序的入口地址.中断向量地址形成部件可以通过向接受请求的中断源发送中断响应信号,然后由被响应的设备回送设备码,根据设备码来产生中断向量地址.

    (3)中断处理过程

    中断处理过程可分以下几个步骤:

    1)关中断

    进入不可再次响应中断的状态,由硬件自动实现.因为接下去要保存断点,保存现场.在保存现场过程中,即使有更高级的中断源申请中断,CPU也不应该响应;否则,如果现场保存不完整,在中断服务程序结束之后,也就不能正确地恢复现场并 继续执行现行程序.

    2)保存断点和现场.

    为了在中断处理结束后能正确地返回到中断点,在响应中断时,必须把当前的程序计数器PC中的内容(即断点)保存起来.

    现场信息一般指的是程序状态字,中断屏蔽寄存器和CPU中各寄存器的内容.

    3)判别中断源,转向中断服务程序.

    在多个中断源同时请求中断的情况下,本次实际响应的只能是优先权最高的那个中断源.所以,需进一步判别中断源,并转入相应的中断服务程序入口.

    4)开中断.

    因为接下去就要执行中断服务程序,开中断将允许更高级中断请求得到响应,实现中断嵌套.

    5)执行中’断服务程序.

    不同中断源的中断服务程序是不同的,实际有效的中断处理工作是在此程序段中实现的.

    6)退出中断.

    在退出时,又应进入不可中断状态,即关中断,恢复现场,恢复断点,然后开中断,返回原程序执行.

    (4)多重中断和中断屏蔽的概念.

    多重中断是指在处理某一个中断过程又发生了新的中断请求,从而中断该服务程序的执行,又转去进行新的中断处理.这种重叠处理中断的现象又称为中断嵌套.

    中断屏蔽

    当产生中断请求后,用程序方式有选择地封锁部分中断,而允许其余部分中断仍得到响立,称为中断屏蔽.

    实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求.具体说,用程序方法将该触发器置“1”,则对应的设备中断被封锁,若将其置“0”,才允许该设备的中断请求得到响应.由各设备的中断屏蔽触发器组成中断屏蔽寄存器.

    3. DMA方式

    DMA是I/O设备与主存储器之间由硬件组成的直接数据通路,用于高速I/O设备与主存之间的成组数据传送.

    数据传送是在DMA控制器控制下进行的,由DMA控制器给出当前正在传送的数据字的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束.在主存中要开辟连续地址的专用缓冲器,用来提供或接收传送的数据.在数据传送前和结束后要通过程序或中断方式对缓冲器和DMA控制器进行预处理和后处理.

    3.DMA 方式与程序中断方式的比较

     

    中断方式

    DMA方式

    (1) 数据传送

    程序

    硬件

    (2) 响应时间

    指令执行结束     

    存取周期结束

    (3) 处理异常情况

    不能

    (4) 中断请求

    传送数据             

    后处理

    (5) 优先级

    (1)DMA控制器的组成;

    1)主存地址寄存器(MAR)       寄存器初始值为主存缓冲区的首地址.

    2)外围设备地址寄存器(ADR )   该寄存器存放I/O设备的设备码,具体内容取决于I/O设备的数据格式和地址字编址方式.

    3)字数计数器(WC)            该计数器对传送数据的总字数进行统计.

    4)控制与状态寄存器(CSR)     该寄存器用来存放控制字和状态字.

    5)数据缓冲寄存器(DBR)       该寄存器用来暂存I/O设备与主存传送的数据.

    6)中断机构                   当字计数器溢出(全“0”)时,表示一批数据交换完成,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA操作后处理.

    (2)DMA传送过程.

    1)DMA预处理

    在进行DMA数据传送之前要用程序做一些必要的准备工作.先由CPU执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备地址并启动设备,在主存地址寄存器中送入交换数据的主存起始地址,在数据字数寄存器中送入交换的数据个数.在这些工作完成之后,CPU继续执行原来的程序.

    2)DMA控制I/O设备与主存之间的数据交换

    I/O设备启动后,若为输入数据,则要进行以下操作:

    <1>从输入介质读入一个字到数据缓冲寄存器DBR中.

    <2>向CPU发DMA请求,在取得总线控制权后,将DBR中的数据送人主存的数据寄存器.

    <3>将DMA中的MAR内容送主存的地址寄存器,启动写操作,将数据写入主存.

    <4>将WC内容减1,将MAR的内容加1,给出下一个字的地址.

    <5>判断WC是否为“0”,若不是,说明还有数据需要传送,检查无错后准备下一字的输入.若WC为0,表明一组数据已传送完毕,此时应置结束标志,向CPU发中断请求.

    3) CPU中断原程序进行后处理

    若需继续交换数据,则又要对DMA控制器进行初始化;若不需交换数据,则停止外设;若为出错,则转错误诊断及处理程序.

    三种方式的CPU工作效率比较

     (3)DMA三种工作方式:

    1)CPU暂停方式

    主机响应DMA请求后,让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给CPU

    2)CPU周期窃取方式

    DMA控制器与主存储器之间传送一个数据,占用(窃取)一个或几个CPU周期,即CPU暂停工作一个或几个周期,然后继续执行程序

    3)CPU和DMA交替工作方式

    当CPU的工作周期比主存访问时间长时,使用这种方式.这种方式不需要总线使用权的申请,建立和归还过程.将CPU周期分成C1和C2两个周期,其中C1专门用于给DMA访问主存,C2提供给CPU访问主存.总线使用权通过C1和C2分别控制.CPU和DMA各自有自己的访问地址寄存器,数据寄存器和读写信号

    4. 通道方式

    I/O通道是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合——通道命令的I/O处理机.

      在通道控制方式下,一个主机可以连接几个通道.每个通道又可连接多台I/O设备,这些设备可具有不同速度,可以是不同种类.这种输入输出系统增强了主机与通道操作的并行能力以及各通道之间,同一通道的各设备之间的并行操作能力.同时也为用户提供了增减外围设备的灵活性.

      采用通道方式组织输入输出系统,多使用主机—通道—设备控制器— I/0设备四级连接方式.通道通过执行通道程序实施对I/O系统的统一管理和控制,因此,它是完成输入输出操作的主要部件.在CPU启动通道后,通道自动地去内存取出通道指令并执行指令.直到数据交换过程结束向CPU发出中断请求,进行通道结束处理工作.

    I/O通道的种类:     

    根据多台设备共享通道的不同情况,可将通道分为三类:字节多路通道,选择通道和数组多路通道.

    (1)字节多路通道(低速,分时)

    字节多路通道(multiplexor  channel)是一种简单的共享通道,在时间分割的基础上,服务于多台低速和中速面向字符的外围设备.

    字节多路通道包括多个子通道,每个子通道服务于一个设备控制器,可以独立地执行通直指令.每个子通道都需要有字符缓冲寄存器,I/O请求标志/控制寄存器,主存地址寄存器和字节计数寄存器.而所有子通道的控制部分是公共的,由所有子通道所共享.通常,每个通道的有关指令和参量存放在主存固定单元中.当通道在逻辑上与某一设备连通时,将这些指令和参量取出来,送入公共控制部分的寄存器中使用.

    字节多路通道要求每种设备分时占用一个很短的时间片,不同的设备在各自分得的时间片内与通道建立传输连接,实现数据的传送.

    (2)选择通道(高速,独占)

    选择通道每次只能从所连接的设备中选择一台I/O设备的通道程序,此刻该通道程序独占了整个通道.当它与主存交换完数据后,才能转去执行另一个设备的通道程序,为另一台设备服务.因此,连接在选择通道上的若干设备,只能依次使用通道与主存传送数据.数据传送是以成组(数据块)方式进行,每次传送一个数据块,因此,传送速率很高.选择通道多适合于快速设备(磁盘),这些设备相邻字之间的传送空闲时间极短.

    (3)数组多路通道(综合)

    数组多路通道把字节多路通道和选择通道的特点结合起来.它有多个子通道,既可以执行多路通道程序,像字节多路通道那样,所有子通道分时共享总通道;又可以用选择通道那样的方式传送数据.

    数组多路通道具有多路并行操作能力,又具有很高的数据传送速率,赢得了吞吐率的较大提高.它的缺点是增加了控制的复杂性.

    展开全文
  • 计算机组成原理----思维导图

    万次阅读 多人点赞 2019-01-12 15:58:25
    一、绪论 二、数据信息的表示

    一、绪论

    在这里插入图片描述

    二、数据信息的表示

    在这里插入图片描述

    三、运算方法与运算器

    在这里插入图片描述

    四、存储器

    在这里插入图片描述

    五、指令系统

    在这里插入图片描述

    六、控制系统与CPU

    在这里插入图片描述

    七、总线技术

    在这里插入图片描述

    八、I/O设备

    九、I/O系统组成

    在这里插入图片描述

    展开全文
  • 计算机组成原理核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2020-06-13 19:52:06
    作为一名计算机专业的学生,计算机组成原理、计算机网络、操作系统这三门课程可以说是专业核心基础课,是至关重要的,其内容是一名合格的coder所必备的知识集;非科班出身的程序员要是想要有所提升,也需要认真学习...
  • 计算机组成原理-面试题

    万次阅读 多人点赞 2019-03-26 22:49:41
    第1章:计算机系统概论 1、计算机系统由哪两部分组成计算机系统性能取决于什么? 计算机系统是由“硬件”和“软件”组成。衡量一台计算机性能的优劣是根据多项技术指标综合确定的,既包括硬件的各种性能指标,...
  • 计算机组成原理

    2020-07-30 23:30:03
    计算机组成原理,吉林大学刘子良,讲的特别清楚,很好的资料推荐给大家,这个是百度网盘的资料
  • 计算机组成原理 第二版 课后答案 (唐朔飞) 1~8章

    万次阅读 多人点赞 2019-09-16 13:27:45
    计算机系统:由计算机硬件系统和软件系统组成的综合体。 计算机硬件:指计算机中的电子线路和物理装置。 计算机软件:计算机运行所需的程序及相关资料。 硬件和软件在计算机系统中相互依存,缺一不可,因此同样...
  • 计算机组成原理基础知识总结

    万次阅读 多人点赞 2018-08-15 10:17:57
    计算机概述 计算机的基本组成: 存储器: 实现记忆功能的部件用来存放计算程序及参与运算的各种数据 运算器: 负责数据的算术运算和逻辑运算即数据的加工处理 控制器: 负责对程序规定的控制信息进行分析,控制并...
  • 写在前面: 恰逢期末复习,用了几天时间结合老师勾画的重点以及课件教材等,将全书重要内容做了个大整合。... 《计算机组成原理》第五版(唐朔飞考研版) 全书知识梳理 《数据结构》C语言版 (清华严...
  • 1、计算机组成原理相关书籍(1)  2、计算机组成原理相关书籍(2) 作者:henryWang 链接:https://www.zhihu.com/question/48076244/answer/108975256 来源:知乎 著作权归作者所有。商业转载请联系...
  • 408计算机组成原理(王道版)

    千次阅读 2020-07-01 17:06:21
    第一章 计算机系统概述 1.1 计算机发展历程 1.2 计算机系统层次结构 1.3 计算机性能指标 第二章 数据的表示与运算 2.1 数制与编码 2.2 定点数的表示和运算 2.3 浮点数的表示与运算 2.4 算数逻辑单元...
  • 计算机组成原理知识点梳理(一)

    万次阅读 多人点赞 2017-09-14 10:10:15
    注:所学教材为《计算机组成原理(第二版)》 唐朔飞 编著 ; 本次梳理涵盖内容为: 第一章 计算机系统概论 1.1 计算机系统简介 1.2 计算机的基本组成 参考内容以及图片来源为书本和csdn博文 第一章 ...
  • 计算机组成原理知识点总结

    万次阅读 2017-12-25 17:05:43
    快考试了,计算机组成原理这门课学的真不咋地,自己从头看书也感觉看不下去,于是找了哈工大的慕课来学习,在这里记记重点 ------------------------------------------------------------------------------------...
  • 计算机组成原理-微程序和微指令

    万次阅读 2017-12-06 14:52:22
    1.一条机器指令就是一个微程序,机器指令需要几个cpu周期就包含几个微指令,微指令包含若干微命令,微命令发送给部件执行微操作。
  • 计算机组成原理(唐朔飞)

    万次阅读 2017-06-08 16:09:21
    计算机组成原理(唐朔飞)存储器存储器分类存储介质分类 半导体存储器 磁表面存储器 磁芯存储器(淘汰) 存储方式存储结构存储器容量 地址总线:CPU能访问的地址宽度,32地址线表示能访问2的32次方个存储单元地址。 数据...
  • 计算机组成原理 14个指令缩写

    千次阅读 多人点赞 2018-08-07 17:29:27
    CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS  解:全面的回答应分英文全称、中文名、中文解释三部分。  CPU——Central Processing Unit,中央处理机(器),见7题; ...
  • 2021考研王道计算机408(王道计算机组成原理+王道操作系统+王道计算机网络+王道数据结构) 链接:https://pan.baidu.com/s/1aqx7YEzj9F-A41NRHrgS8A 提取码:7w2z 链接:...
  • 组成原理是让你从整体上精略地让你了解计算机是怎么工作的,内容上侧重于计算机的几大组成(运算器,控制器,存储器,输入设备,输出设备与总线结构),具体来说,是具体一条指令在cpu中是如何执行的,计算机的储存...
  • 计算机组成原理——数据通路实验

    千次阅读 2018-06-27 23:15:40
    实验电路如下: 数据通路实验:为程序控制方式 数据通路实验:为独立控制方式第1步:将“控制转换”开关拨到中间位置既“独立”灯亮,双端口存储器实验;【操作模式1110】,拨动编程开关到正常位置。...
1 2 3 4 5 ... 20
收藏数 176,558
精华内容 70,623
关键字:

计算机组成原理