计算机组成原理——考试知识点梳理

计算机组成原理

  • 第一章 计算机系统概论
    • 1.1 计算机发展历程
    • 1.2 计算机硬件基本组成
    • 1.3 各个硬件部件
    • 1.4 计算机系统的层次结构
    • 1.5 计算机的性能指标
    • 1.6 软件分类与工作过程
  • 第二章 运算方法和运算器
    • 2.1 数值与编码
    • 2.2 定点数的表示和运算
    • 2.3 浮点数的表示和运算
    • 2.4 算术逻辑单元ALU
  • 第三章 存储系统
    • 3.1 存储系统的基本概念
    • 3.2 半导体随机存储器
    • 3.3 主存储器和CPU的连接
    • 3.4 高速缓冲存储器
  • 第四章 指令系统
  • 第五章 中央处理器
  • 第六章 总线系统
  • 第七章 外围设备
  • 第八章 输入输出系统

第一章 计算机系统概论

1.1 计算机发展历程

1.1.1 什么是计算机系统
硬件+软件

1.1.2 硬件的发展
第一代:电子管时代
第二代:晶体管时代
第三代:中小规模集成电路时代
第四代:大规模、超大规模集成电路时代

1.1.3 软件的发展

1.1.4 目前的发展趋势

  • 更微型、多用途
  • 更巨型、超高速

1.2 计算机硬件基本组成

1.2.1五大部分

  • 输入设备:将信息转换成机器能识别的形式
  • 输出设备:将结果转换成人们熟悉的形式
  • 主存储器:存放数据和程序
  • 运算器:算术运算、逻辑运算
  • 控制器:指挥各部件、使程序运行

1.2.2 冯·若依曼计算机
存储程序概念:将指令以二进制代码的形式事先输入计算机的主存储器,按位顺序执行。
冯·诺依曼型计算机的设计思想:存储程序并按地址顺序执行。
在计算机系统中软硬逻辑等效。
冯机特点:
①五部分组成:I/O、存储器、运算器、控制器
②指令与数据以同等地位存于存储器,可按地址寻访
③指令、数据都是二进制表示
④指令由操作码和地址码组成
⑤存储程序
⑥以运算器为中心,IO通过运算器与存储器相连

1.2.3 现代计算机的结构
以存储器为中心
CPU=运算器+控制器

1.3 各个硬件部件

1.3.1 主存

  • 存储体
    存储单元:存储体有多个单元,每个存储单元存放一串二进制代码
    存储字:存储单元中二进制代码的组合
    存储字长:单元中二进制代码位数
    存储元:存储二进制的电子元件(电容),每个可存1bit。
  • MAR
    地址寄存器:用于指明要读/写哪个存储单元。
    其位数反映存储单元数量
  • MDR
    数据寄存器:用于暂存要读/写的数据
    其位数=存储字长

1.3.2 运算器

  • ACC
    累加计数器:存放操作数、运算结果
  • MQ
    乘商寄存器:进行乘、除法时用到的
  • X
    通用寄存器:存放操作数
  • ALU
    算数逻辑单元:用电路实现各种算术运算、逻辑运算

1.3.3 控制器

  • PC
    程序计数器:存放下一条指令的地址
  • IR
    指令寄存器:存放当前执行的指令
  • CU
    控制单元:分析指令,给出控制信号

1.4 计算机系统的层次结构

1.4.1 五层
M4:高级语言机器
编译程序翻译汇编语言
M3:汇编语言机器
汇编程序翻译
M2:操作系统机器
向上提供广义指令“系统调用”
M1:传统机器
执行二进制指令
M0:微程序机器
硬件执行微指令

1.4.2 三个级别语言

  • 高级语言、汇编语言、机器语言

  • 编译程序——将高级语言一次翻译为汇编语言,或直接翻译为机器语言

  • 汇编程序——将汇编语言翻译为机器语言

  • 解释程序——高级语言翻译为机器语言(翻译一句执行一句)

汇编、编译、解释程序统称翻译程序

1.5 计算机的性能指标

1.5.1 存储器的容量
MAR的位数反映存储单元数量
MDR 每个存储单元大小

1.5.2 CPU
时钟周期:CPU最小单位时间
主频:1/时钟周期,Hz
CPI:执行一条指令所用周期数
CPU执行时间:运行一个程序所花时间=(指令条数IC*CPI)/主频
MIPS:每秒执行多少百万条指令=主频/平均CPI
MFOPS:每秒执行多少百万次浮点运算

1.5.3 其他
吞吐量:系统在单位时间内处理请求的数量,取决于主存存取周期
响应时间:发送请求得到结果的时间差,含CPU时间和等待时间

1.6 软件分类与工作过程

1.6.1 软件分类

  • 系统软件
    OS,语言处理,服务程序,数据库管理系统
    用来提高使用效率,发挥和扩大计算机功能和用途的程序。

  • 应用软件
    工程设计,数据处理,自动控制,企业管理
    用户用来解决某些问题而编制的程序。

1.6.2 工作过程

  • 程序与数据转入主存,程序从起始地址开始执行
  • 从起始地址取出第一条指令,译码执行并计算下一条指令
  • 取出下一条指令,再取值,译码,循环往复,直到结束

第二章 运算方法和运算器

2.1 数值与编码

2.1.1 进位计数制

2.1.2 真值和机器数
真值:机器数所表示的实际值

2.1.3 BCD码

  • 8421码
    每四个二进制对应一个十进制,8421对应每一位权值
    0000~1001 分别对应 0~9
    若进行加法后溢出,需要+0110修正(强制进位)
  • 余3码
    即8421码+(0011)3
  • 2421码
    2421对应权值
    0~4 最高位为0,5~9 最高位为1

2.1.4 字符与字符串

  • ASCII码
    7位二进制表示字符代码,最高位做奇偶校验位
    以一字节存入一个字符,但多余一位最高位为0
    共128字符,0~31、127 为控制/通信字符;32~126 为可印刷字符

  • 汉字表示与编码
    区位码:一个四位十进制数,前两位为区,后两位为位
    国际码:区位码+2020H
    机内码:国际码+8080H

  • 字符串
    从低地址到高地址逐个字符存储,常采用 ‘\0’ 作为结束标志
    对于多字节数据(汉字),可采取大/小端存储模式
    大端模式:将数据最高有效字节存放在低地址单元
    小端模式:将数据最高有效字节存放在高地址单元

2.1.5 校验码

  • 奇偶校验码
    码字:由若干代码组成的一个字
    码距:各合法码字间的最小距离

  • 海明码

  • 循环冗余校验码

2.2 定点数的表示和运算

原码除法:
1.恢复余数法
实现方法:
ACC 存储 被除数/余数
ALU实现运算
MQ 存取 商 初试默认全零 每次默认商1
X通用寄存器 存储 除数
过程:每次都商1 即被除数-除数负值的补码 若结果符号位为负,就加正值补码恢复原来的被除数/余数 重新商0 再做减法,逻辑左移 循环结束

2.加减交替法
硬件存放与1相同
过程:若新余数为负 则商0,余数左移并+除数正值补码 ,若为正值,则商1余数左移并+余数负值补码(等价余数左移-除数),最后若余数为负,需商0并+正值补码得到正确的余数。

补码除法:
加减交替法:
判断被除数和除数是否同号 ,若同号 商1减去除数 ,反之商0 加上除数
下轮余数判断相同

强制类型转换
1.无符号数与有符号数转化,不改变内容,改变解释方式
2.长整数变短整数,高位截断,低位保留
3.短整数变长整数,符号扩展有符号数符号位为1,前面补1;无符号数补位补0

数据存储与排列
大小端模式
大端方式:低位地址存高位更方便人类阅读
小端方式:低位地址存低位更方便机器处理

边界对齐
字=存储字长
半字=1/2字
1字节=8bit
每次访存只能读/写1个字
边界对齐空间换时间,空间填充

2.3 浮点数的表示和运算

浮点数表示
阶码和尾数
阶码包括阶符和阶码的数值部分
尾数包括数符和尾数的数值部分
浮点数的真值:N=r^E*M
r阶码的底一般为2
阶码E反映浮点数的表示范围以及小数点实际位置
尾数M数值部分位数n反映浮点数的精度

尾数规格化
尾数最高位为0:尾数算数左移一位,阶码-1,直到尾数最高位是有效值(左规)
右规:当浮点数运算结果尾数出现溢出时,将尾数算数右移一位,阶码+1

原码尾数规格化
正数为0.1xxxx… 其最大值为0.1111…1;最小值为0.10…0。
表示范围为:1/2<=M<=1-2^-n.
负数为1.1xxxx… 其最大值为1.100…0;最小值为1.11…1。
表示范围为:-(1-2^-n)<=M<=1/2

补码尾数规格化
正数为0.1xxxx… 其最大值为0.1111…1;最小值为0.10…0。
表示范围为:1/2<=M<=1-2^-n.
负数为1.0xxxx… 其最大值为1.011…1;最小值为1.00…0。
表示范围为:-1 <= M <= -(1/2+2^-n)

IEEE 754
移码:补码基础将符号位取反
移码定义为:移码=真值+偏置值
偏置值=2^(n-1) 此时真值取0,移码为1000 0000
偏置值=2^(n-1) -1 此时真值取1,移码为1000 0000

标准:数符 阶码,移码表示 尾数数值,原码表示(隐藏表示最高位1,表示1.M)

2.4 算术逻辑单元ALU

第三章 存储系统

3.1 存储系统的基本概念

3.1.1 层次结构

  • 高速缓存(cache)
  • 主存储器(主存、内存)
  • 辅助存储器(辅存、外存)
  • 主存——辅存:实现了虚拟存储系统,解决存储容量不够的问题
  • cache——主存:解决了主存与CPU速度不匹配的问题

3.1.2 分类

  • 按层次结构
  • 按存储介质
    半导体存储器、磁表面存储器、光存储器
  • 按存取方式
    随机存取存储器RAM(如内存)、顺序存取存储器SAM(如磁带)、直接存取存储器DAM(如磁盘)、相联存储器CAM(可按内容访问,如快表)
  • 按信息可更改性
    读/写存储器、只读存储器ROM
  • 断电信息是否消失
    易失性存储器(如内存、cache)、非易失性存储器(如磁盘、光盘)
  • 信息读出后是否被破坏
    破坏性读出(如DRAM芯片)、非破坏性读出(如SRAM芯片、磁盘)

3.1.3 存储性能指标

  • 存储容量=存储字长*字长
  • 单位成本=总成本/总容量
  • 数据传输率(主存带宽)=数据的宽度/存储周期
  • 存取周期=存储时间+恢复时间

3.2 半导体随机存储器

3.2.1 半导体存储芯片

  • 存储矩阵:大量相同的位存储单元组成
  • 译码驱动:地址信号翻译成对应的存储单元的选通信号
  • 读写电路:完成读写操作
  • 读/写控制线:决定芯片是R/W
  • 片选线:确定哪个芯片被选中
  • 地址线:单项输入,位数与存储字的个数有关
  • 数据线:双向,位数与读出或写入的数据位数有关
  • 数据线数与地址线数共同反映存储芯片容量大小
  • 半导体随机存储器根据存储原理不同分为SRAM高速缓存与DRAM主存

3.2.2 SRAM与DRAM

SRAM

  • 使用双稳态触发器MOS记忆信息
  • 非破坏性读出、易失性存储器
  • 存取速度快、集成度低、功耗大、成本高、常用来组成高速缓存
  • 同时送行列地址

DRAM

  • 利用电荷存储信息

  • 破坏性读出、易失性存储器

  • 存取速度慢、集成度高、功耗低、容量大、成本低,常用来组成主存

  • 分两次送行列地址(地址线复用)

  • 刷新方法 DRAM特有
    ①刷新单位是行
    ②集中刷新
    刷新时间固定 存在死区
    读写不受刷新影响,存取速度快
    死区不能访问存储器
    ③分散刷新
    将每行刷新分散到各个工作周期
    没有死区
    存取周期长,降低整机速度
    ④异步刷新
    集中与分散的结合
    缩短死时间、又提高整机速度
    ⑤透明刷新
    刷新安排在译码阶段,不存在死亡时间

  • 存储器的读写周期
    RAM读周期:两次连续读操作必须间隔时间
    RAM写周期:数据总线的信息能可靠的写入存储器

3.2.3 只读存储器ROM

ROM特点

  • 随机存储、非易失性存储器
  • 结构简单、位密度比可读写存储器高

ROM类型

  • 掩膜式只读存储器MROM:真只读,不可重写
    可靠性高、集成度高、价格便宜、灵活性差

  • 可编程只读存储器PROM:写一次不可修改

  • 可擦除可编程只读寄存器:EPROM:可以多次重写
    紫外线擦除所有信息UVEPROM
    电擦除特定信息EEPROM

  • 闪速存储器Flash Memory:可以多次快速擦除重写(U盘、SD卡)
    可长期保存信息、可重写
    价格便宜、集成度高
    擦写速度快

  • 固态硬盘SSD:可以多次快速擦除重写

3.3 主存储器和CPU的连接

主存容量的扩展:

  • 字扩展:多个存储芯片串联 4片16K8位 = 64K8位
  • 位扩展:多个存储芯片并联 8片8K1位 = 64K8位
  • 字位扩展:增加存储字数量,增加存储字长

存储器与CPU连接

  • 地址线选择:芯片容量不同地址线不同,CPU低位直接相连,高位做扩充芯片
  • 数据线连接:CPU线数与存储器线数相同直接连接,不同就位扩展
  • 读写线连接:高电平为读,低电平为写
  • 片选线连接:决定哪一片存储芯片被选中

3.4 高速缓冲存储器

空间局部性原理:将要使用的信息是空间附近的信息
时间局部性原理:将要使用的信息是现在使用的信息

3.4.1 cache与主存映射方式

  • 全相联映射
    主存数据可以任意存放
    增加一个有效位

  • 直接映射
    每个主存块 只能放到一个特定的位置
    cache块号=主存块号%cache块数
    标记+行号/主存块号 块长
    空间利用不充分,命中率降低

  • 组相联映射
    分若干组,可以放到组内任意位置
    组号=主存块号%组数
    标记+组号/主存块号 块长

3.4.2 cache 替换算法

直接映射直接替换,不需算法,算法以全相联为例

  • 随机算法RAND:随机确定替换的cache块
    实现简单、但没有局部性原理,命中率低
  • 先进先出算法FIFO:替换最早进入的
    容易实现、但没有局部性原理,命中率低
  • 近期最少使用LRU:设置一个计数器记录多久没有访问,替换计数器最大的
    需要注意的是当命中时,命中行的计数器清零,且比其低的计数器加1,其余不变
  • 最不经常使用算法LFU:替换计数器记录访问次数最少的
    不符合局部性原理(一段时间一直使用将次数升高,但后续不再使用却因权值太高不好替换)不如LRU

3.4.3 cache 写策略
写命中
写不命中
多级cache(通常分为三级)

第四章 指令系统

第五章 中央处理器

第六章 总线系统

第七章 外围设备

第八章 输入输出系统

你可能感兴趣的:(其他,经验分享)