Bootstrap

超详细!完整版《计算机组成原理》:包含CPU,存储器,指令系统,运算器,总线系统,外围设备等基础知识

计算机组成原理

计算机体系结构的基础

计算机系统概论

  • 计算机的分类
  • 电子模拟计算机:数值由连续量表示,运算过程连续
  • 示波器,通信
  • 电子数字计算机:按位运算,不连续地跳动计算
  • 量子计算机:量子比特Qbit

  • 数字计算机分类:效率,速度,价格,适应性
  • 专用计算机
  • 通用计算机:体积,功耗,性能,数据存储量,指令系统规模,机器价格
  • 单片机:所有部件集中在一块芯片,如儿童手表
  • 微型机(晶体管密度):手机,ipad
  • 大型机:分布系统,多个ATM去操纵一个业务系统

  • 发展简史
  • 计算机发展
  • 电子管计算机:数据处理
  • 晶体管计算机:工业控制
  • 中小规模集成电路计算机:小型计算机
  • 大规模和超大规模(VLSI)集成电路计算机:微型计算机
  • 巨大规模集成电路计算机:单片机

  • 半导体存储器发展:存储密度提升
  • KB, MB, GB, TB, PB, EB, ZB

  • 微处理机的发展
  • 通用16位微处理机 8086
  • x86: 基于8086向后兼容的架构(32位)
  • x64: x86-64位,基于8086向后兼容的架构且拓展至64位存储器(64位)
  • 64位机器可以装32位程序,反之不可

计算机性能指标

  • 吞吐量:单位时间处理的信息量,单位为字节/s  (B/S)
  • 响应时间:微秒10-6s

    ,纳秒10-9s

  • 利用率:给定的时间内系统被实际使用的时间比例
  • 处理机字长:处理机一次能够完成二进制运算的位数
  • 总线宽度:CPU中运运算器与存储器之间互联的内部总线二进制位数
  • 存储器容量:B=8位,1个字节
  • 存储器带宽:存储器速度指标,字节数/秒
  • 主频/时钟周期:心脏跳动般,一时间间隔工作一次,由主时钟控制,它不断产生固定频率的时钟,
  • 频率(f)叫CPU的主频MHz,GHz, 倒数叫做CPU时钟周期T
  • 不与性能直接挂钩
  • CPU执行时间
  • CPI:程序每条指令的平均使用的周期数
  • MIPS: million instructions per second 每秒百万指令 106

  • FLOPS: floating-point opertations per second 浮点操作

  • 例题

  • 计算机的硬件
  • 冯·诺伊曼计算机,五大部件
  • 控制器:按照一定顺序取指令,译码,执行
  • 可区分指令字,数据字
  • 运算器:ALU,arithmetic,logic,unit,算术逻辑单元
  • 存储器:存储数据和程序(指令)
  • 内存ROM, RAM
  • 外存
  • I/O,输入,输出(外设)
  • 适配器:使得被连接的外围设备通过系统总线与主机进行联系,如手机充电,驱动程序等
  • 总线:多个系统部件之间进行数据传送的公共通路,数据流,指令流

  • 计算机的软件

  • 系统软件的发展:操作系统,分布式系统软件
  • 多级组成的计算机系统:计算机是由复杂的硬、软件结合而成的整体
  • 每一级都能进行程序设计
  • 微程序设计级,一一般机器级,操作系统级,汇编语言级,高级语言级

  • 软件与硬件的逻辑等价性:
  • 软件硬化:神经计算器,硬件处理某些特定运算
  • 硬件软化:用软件实现隐秘通信,代替拉光纤
  • 固件:功能上是软件,但形态上是硬件,如BIOS

运算方法和运算器(重点)

  • B二进制(binary), D十进制(decimal), H十六进制(hexadecimal)

纯小数和纯整数表示范围

  • 设机器字长n+1位,规定最高位(第n+1位)为符号位
  • 纯小数最大范围中的可理解为小数部分全为0的“1”,再减去一个最后一位为1的"2-n

    "

  • 数值数据:定点、浮点
  • 定点表示法:
  • 纯整数,纯小数,定点整数,定点小数
  • 小数点位置固定不变

浮点数表示法

符号位S,阶码E,尾数M

IEEE754标准

  • 浮点数规格化表示:尾数的值不为0时,尾数域的最高有效位为1
  • 32位单精度浮点数:符号位S占1位,阶码E占8位(范围),尾数M占23位(精度),基数固定为2

  • IEEE754标准,M隐去1(规定尾数域最高有效位为1(若尾数不为0),无需存储),指数真值e=阶码E-127(32位)  e=E-1023(64位)
  • 特殊规定
  • 表示NaN(阶数全1,尾数不为0),\pm\infin

    (阶数全1,尾数为0),0(阶数尾数都为0),规格化数,非规格化数(阶数为0,尾数不为0)

  • 机器码和真值转换例子

  • 浮点数表示的范围比定点数大
  • 数的机器码表示

真值和机器码

  • 真值: -127 真值的二进制表示  -0111 1111
  • 机器数/机器码:原码、反码、补码、移码
  • 正数的原码反码补码均相同
  • 补码
  • 模modulo, 区间总长
  • 整数模2n

    ,小数模2
  • 负数:固定符号位,补码为取反加1
  • 方便加减运算

移码

  • x=2n+x

     ,移码和补码尾数相同,符号位相反
  • x为真值,右式为移码(机器码)
  • 意思就是真值的二进制表示后最高位多添一个1
  • 偏移值常数可以任意,如IEEE754标准为127,非2的幂次
  • 方便指数大小对比,通常用于表示浮点数的阶码

  • 字符与字符串表示方法
  • ASCII码:最高位为0,余下7位表示128个编码
  • 字符串:连续的一串字符,占用主存中连续的多字节,每个字节存放一个字符

  • 汉字表示方法
  • 输入码
  • 数字编码:国标区位码,二维数组
  • 拼音码:输入重码率重
  • 字形编码:五笔
  • 汉字内码,用于存储,采用两字节表示,最高位均为1
  • 字模码(输出):字模矩阵,汉字库,存储空间大
  • 校验码
  • 奇偶校验码:检查出奇数位错,且不能纠正错误,奇数个1异或结果为1
  • 奇校验:使得最后异或结果为1,奇数个1
  • 偶检验:使得最后异或结果为0,偶数个1

  • 二维码:校验码,纠错码

定点加法、减法运算

  • 如果结果为负数,从补码转为二进制真值的时候记得求一次补
  • 补码规则:

  • 证明

  • 补码减法规则

  • 从该数补码求其相反数补码方法:

溢出

  • 正溢,负溢

异或结果为1说明产生溢出

  • 双符号位判断法:
  • sf1,sf2分别是高符号位(始终正确)和低符号位(可能变化)

  • 单符号位判断法:
  • cf,c0分别是符号位产生的进位最高有效位产生的进位
  • 符号位产生进位而最高有效位没有产生进位,负溢
  • 最高有效位产生进位而符号位没有产生进位,正溢

  • 例题
  • 移位过程中,符号位不变
  • 补码右移是算术右移,补1

门电路图形符号

全加器FA

  • 全加器Full Adder (FA),行波进位加法器(串行)

  • 并行加法器

定点数乘法运算

不带符号的阵列乘法器

  • 符号数单独处理,异或得到结果
  • 并行
  • 被加数产生部件:m*n个与门直接算得
  • 被加数求和部件:求和每列被加数

  • 被加数矩阵
  • 同列幂次相同
  • 每行有左移效果

  • 被加数求和部件:全加器实现

带符号的阵列乘法器

  • 2求补器
  • E为控制信号,为0代表操作数为正数,为1则是负数
  • 求补方法:从右往左找出第一个"1",自己和右边的数位不变,以左的每一个数位取反

  • 逻辑:算前求补-不带符号乘法-算后求补

定点数除法运算

如果是小数除法:被除数的绝对值应小于除数的绝对值(要求商始终小于1)

符号位单独处理,异或运算

恢复余数法

  • 基于补码进行加减法和移位

移位规则

  • 符号位不变
  • "1."代表符号位

  • 补码是算术右移

  • 例子演算
  • 减y (就是加上[-y]的补码),看余数正负
  • 不够减商0并恢复余数,够减直接商1
  • 余数左移,重复第一步
  • 商做了五次运算,首位为0,商小于1,即说明被除数是小于除数的,合法

加减交替法(不恢复余数法)

  • 推演

  • 例子演算
  • 余数为正,商1,下次余数左移做减法
  • 余数为负,商0,下次余数左移做加法
  • 商计算5次,首位为0,即商小于1,说明被除数小于除数,合法

  • 数值位为n位时,只做n+1步操作,对最后余数要处理(恢复余数,反正此时商0,结果正确的),其真实值还要算上位移量

可控加法/减法单元CAS

CAS controllable adder subtractor

  • 从右往左算,进位也是从右往左进位
  • 可控做加法还是做减法,那么就可做由加减交替法实现的定点数除法运算了

阵列除法器

  • 阵列除法器:加减交替法的并行实现
  • q4=0

    是因为规定被除数小于除数,商小于1,不够除
  • 每行最左边的CAS存放的是被除数和除数补码符号位的加减法(记录最高位的进位情况,即Ci+1

  • 模拟阵列除法器运行例子
  • 加减交替法 + 除数右移
  • 商跟除数位数相同,次数是位数加1

定点计算器的组成

  • 逻辑运算
  • 逻辑非:按位求反
  • 逻辑加:按位求或
  • 逻辑乘:按位求与
  • 逻辑异:按位加,按位异或

多功能算术/逻辑运算单元ALU

  • 先行进位公式
  • 规律:g3 -> g2p3 -> g1p2p3 -> g0p1p2p3 -> p0p1p2p3Cn
  • 从左往右g下标不断减小,然后右边填上p下标从大到小,最后g没有的时候补上Cn

  • ALU的逻辑结构
  • 一个ALU由多片FA和函数发生器组合而成,来支持多位二进制位数
  • i:一片电路(一片ALU,多个FA和函数发生器组成)的二进制位数
  • n:多片ALU时,每片电路的进位输入

  • ALU逻辑表达式
  • 由真值表知Yi = XiYi

  • 先行进位公式
  • 进位发生输出G

  • 进位传送输出P

  • 最高位进位输出Cn+4

;