计算机组成原理笔记
计算机组成概述
1.1 计算机的基本组成
硬件、软件
- 计算机的功能
Data Processing数据处理 - 运算器
Data Storage数据存储 - 存储器
Data Movement书籍移动交换 - IO设备
Control控制 - 控制器
运算器:实现数据处理的部件datapath
ALU算数逻辑单元+Registers寄存器
运算器与机器字长
运算器与机器性能指标 MIPS每秒平均运行百万条指令 CPI执行一条指令的时钟周期
存储器:实现数据存储的部件
存储体+控制电路
存储体->多个存储单元->存储字(存储的二进制代码)
存储字长:每个存储单元存放的二进制代码的位数
存储容量=存储单元个数*存储字长 单位:bit、Byte、word
控制器:实现控制功能的部件
提供各部件工作所需的控制信号,控制计算机其他部件协同工作
指令部件(Instruction Register ,Instruction Decoder)
指令顺序控制(Program Counter)
时序逻辑部件(Clock,Timer ,Sequencing Logic)
控制信号生成部件(Control Signal Generator or Control Memory)
Datapath运算器 +Control控制器 =CPU
输入输出:实现数据交换的部件
实现计算机内部与外界(其他系统或人类)的信息交换
实现数据交换的设备:输入设备、输出设备
接口标准与接口部件
1.2 计算机系统层次结构
- 机器语言 实际机器M1 机器语言程序
- 汇编语言 虚拟机器M2 汇编语言程序
- 高级语言 虚拟机器M3 高级语言程序
ISA指令集架构 定义了计算机硬件所能执行的所有指令集,是计算机软硬件的分界线
1.3 计算机总线结构
- 总线:符合一定标准的一组公共信息通道
- 系统总线构成:地址总线、数据总线、控制总线
- 总线举例: QPI/HT, PCI/PCI-E,SCSI
- 单总线结构、多总线结构
冯诺依曼:分散结构
早期PC内部结构:单总线结构 总线可能成为性能瓶颈,不同资源相互拖累
普通PC的内部结构:多总线结构 通过南北桥芯片进行协议的转换和信息的交换
Sun SPARCstation20(RISC):多总线结构
计算机中数的表示
- 计算机的基本功能:对数据进行操作
- 实现功能的基本前提:能够对数字表述
计算机的基本约束:采用二进制,只有0和1
- 不同编码规则表示的含义不同
- 数的表示要解决的问题
- 数的符号:正、负、零
- 数的形态:整数、小数、定点、浮点
- 数的绝对值
无符号数和有符号数
-
无符号数
- 数的编码中所有位均为数值位,没有符号位
- 只能表示 >=0 的正整数
- 一般在全部是正数运算且不出现负值结果的场合下,可使用无符号数表示,例如 地址运算
16位无符号数的表示范围: 0 ~ 65535
-
有符号数
-
机器数表示
数的正负问题:设符号位,- “0”表示“正”,“1”表示“负”,固定为编码的最高位。
- 机器数和真值
- 真值0怎么办:正零,负零
小数点怎么办:固定小数点 (即 定点数)
- 定点小数:绝对值小于1 , 如: 0 ^1100000
- 定点整数:没有小数部分, 如: 0 1100000^
带有整数和小数部分的数怎么办:浮点数,
- 按2为基的科学表示方法表示(浮点数)
-
- 原码、反码、补码
- 原码:符号位+真值
- 反码:符号位不变,真值取反
- 补码:符号位不变,每位取反后加1
原码 | 反码 | 补码 |
---|---|---|
容易理解 | 很少使用 | |
0的表示不唯一 | 0的表示唯一 | |
符号位需单独处理 | 符号位不需单独处理 | |
加减运算不统一 | 加减运算统一 |
- 浮点数表示
进制转化:十进制的小数转二进制
- 小数部分:乘2取整,倒序排列
- 整数部分:除2取余,正序排列
规格化:将小数点移动到第一个非零数字之后,尾数保证第一位为1,此时阶码与小数点移动的位数有关
-
浮点数的溢出问题
- 上溢、下溢
-
IEEE754标准
符号、阶码和尾数表示
- 浮点数表示公式
- 单精度浮点数
(-1)S * 1.m * 2E-127 - 双精度浮点数
(-1)S * 1.m * 2E-1023
- 单精度浮点数
- 单精度浮点数
- 1位符号位
- 8位指数位
- 23位尾数位
- 双精度浮点数
- 1位符号位
- 11位指数位
- 52位尾数位
- 非数值数据表示
逻辑数据编码、字符编码、汉字编码、数据的检错/纠错
计算机的基本工作过程
计算机的工作过程
- 机器指令
算机硬件可以执行的表示一种基本操作的
二进制代码。- 指令格式:操作码 + 操作数(操作数地址)
- 操作码:指明指令的操作性质
- 操作数(地址):指令操作数的位置(或操作数本身)
- 程序
在此特指一段机器指令序列。- 完成一定的功能,采用某种算法,具备一定的流程;
- 计算机按照程序所规定的流程和指令顺序,一条一条地执行指令,达到完成程序所规定的功能的目的。
- 计算机采用程序计数器(Program Counter)来决定指令执行的顺序。
- 微操作
计算机可以完成的最基本的操作,一条机器指令的执行
可以解释为一系列的微操作的执行- 操作性质:对数据进行某种处理
- 操作对象
- 操作的时间与条件
组合逻辑
逻辑代数基础
- 逻辑代数的基本概念
逻辑、逻辑运算和布尔代数
布尔代数(Bollean Algebra)又叫开关代数或逻辑代数 - 逻辑代数:逻辑代数L是一个封闭的代数系统,它由一个
逻辑变量集K,常量0和1,以及“或”、“与”、“非”
三种基本运算所构成,记为- 逻辑变量:在逻辑运算中值会发生改变的量,由字母或字母加数字来表示,原变量()、反变量()
- 与运算(合取)
- 或运算(析取)
- 非运算(否定)
- 异或运算
- 同或运算
异或逻辑与同或逻辑是互非关系:
- 逻辑运算的优先级
- 逻辑电路的符号表示
逻辑代数的基本定理
- 逻辑代数的五条公理
逻辑代数的基本定律
交换律、结合律、分配律、0·1律、互补律
逻辑代数基本定理
- 重叠律
- 吸收律
- 还原律
- 反演律(德摩根定律)
- 包含律
逻辑代数的规则
- 代入规则
- 反演规则 与、或互换,0、1互换,原变量与反变量互换
- 对偶规则 与、或互换,0、1互换,原变量与反变量不换
逻辑函数的表达式
- 逻辑函数
- 逻辑函数的常用表达式
与或式、或与式、与或非式…… - 逻辑函数的标准表达式
- 最小项表达式:全部由最小项构成的 与或式(积之和式)
- 最大项表达式:全部由最大项构成的 或与式(和之积式)
- 最小项
- 定义:由n个变量组成的 “与” 项中,每个变量以原变量或反变量的形式出现且仅出现一次,则这个与项称为最小项。n个变量有个最小项
为书写方便,把最小项记做。
下标i的取值规则:按照变量顺序将最小项中的原变量用1表示、反变量用0表示,得到一个二进制数,与其对应的十进制数,即该最小项的编号i。
- 最小项性质
- 对于任何一个最小项,只有对应的一组变量取值,使其值为1,其余情况下均为0;
- 全体最小项之和为1 ;
- 任意两个最小项的乘积为0;
- 相邻最小项:除一个变量互为相反外,其余变量都分别相同的两个最小项。
具有相邻性的两个最小项之和,可以合并为一个乘积项,消去一个以原变量和反变量形式出现的变量,保留由没有变化的变量构成的乘积项。
- 最小项表达式
全部由最小项构成的与或式,也称标准与或式,可由最小项推导法直接从真值表中导出。
最小项推导法: 从真值表推出逻辑函数表达式的一种方法 。把输出为1的输入组合写成乘积项的形式,其中取值为 1 的输入用原变量表示,取值为 0 的输入用反变量表示,然后把这些乘积项加起来
- 最大项
- 定义:由n个变量组成的 “或” 项中,每个变量以原变量或反变量的形式出现且仅出现一次,则这个或项称为最大项。n个变量有2n个最大项
为书写方便,把最大项记做Mi。
下标i的取值规则:按照变量顺序将最大项中的原变量用0表示、反变量用1表示,得到一个二进制数,与其对应的十进制数,即该最大项的编号i。
-
最大项性质
- 对于任何一个最大项,只有对应的一组变量取值,使其值为0,其余情况下均为1;
- 全体最大项之积为0 ;
- 任意两个最大项的加和为1;
- 相邻最大项:除一个变量互为相反外,其余变量都分别相同的两个最大项。
具有相邻性的两个最大项之积,可以合并为一个和项,消去一个以原变量和反变量形式出现的变量,保留由没有变化的变量构成的和项。
-
最大项表达式
全部由最大项构成的或与式,也称标准或与式,可由
最大项推导法直接从真值表中导出。
最大项推导法: 从真值表推出逻辑函数表达式的一种方法 。把输出为0的输入组合写成和项的形式,其中取值为 0 的输入用原变量表示,取值为 1 的输入用反变量表示,然后把这些和项乘起来
逻辑函数化简
- 代数法
- 合并乘积项法 ——利用互补律消去1个变量
- 吸收项法 ——利用吸收律和包含律减少“与”项
- 配项法 ——利用互补律,配在乘积项上
- 卡诺图化简
- 卡诺图化简法
- 将真值表中的1填入卡诺图相应位置;
- 找出相邻的1,并圈出最小项,注意圈1的个数只能是2的n次方(n为变量个数);
- 将圈出的1对应的乘积项相加,得到化简后的逻辑函数表达式。
- 卡诺图化简规则
同一卡诺图内,相邻的1可以合并为一个乘积项,同时消去取值不同的一个变量
- 卡诺图化简法
注意:卡诺图边角是循环连续的,即边角只有一个值不同,也是相邻的。