计算机组成原理
2021-04-26 16:11:31 366 举报
AI智能生成
计算机组成原理是计算机科学的一门重要分支,主要研究计算机硬件系统的基本结构和功能。它包括了数字逻辑、微处理器设计、存储器结构、输入输出设备、操作系统和网络等方面的知识。通过学习计算机组成原理,我们可以了解计算机是如何执行各种指令的,以及它们是如何协同工作的。此外,我们还可以掌握如何设计和优化计算机系统,以提高其性能和可靠性。总之,计算机组成原理为我们提供了深入了解计算机硬件和软件之间相互作用的基础,是成为一名优秀的计算机工程师所必备的知识。
作者其他创作
大纲/内容
免费克隆,点赞支持一下吧
电子管时代
晶体管时代
中小规模集成电路
大规模、超大规模集成电路
计算机硬件的发展
摩尔定律
微处理器的发展
以连续变化的电流或电压来表示被运算量的电子计算机
电子模拟计算机(一般用于科学研究)
专用(某一方面的性能)
一种超大型电子计算机,高速度和大容量,科学研究
巨型机
大型机使用专用的处理器指令集、操作系统和应用软件,科学研究
大型机
一种中高端的电子计算机
中型机
是指采用精简指令集处理器、性能和价格介于PC服务器和大型主机之间的一种高性能64位计算机
小型机
以微处理器位基础,配以内存储器及输入输出接口电路和相应的辅助电路而构成,例如PC、平板电脑
微型机
一种集成电路芯片,又称为单片微控制器,他不是完成某一个逻辑功能的芯片,而是把计算机系统集成到一个芯片上,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备
单片机
通用
电子数字计算机
电子计算机
按照作用分类
单指令流&单数据流(SISD):冯诺依曼体系结构
单指令流&多数据流(SIMD):阵列处理器、向量处理器
多指令流&单数据流(MISD):实际上并不存在
多指令流&多数据流(MIMD):多处理器、多计算机
按照指令和数据流分类
更微型化、网络化、高性能、多用途发展
微型计算机
更巨型化、超高速、并行处理、智能化发展
计算机的两级分化
计算机的分类和发展方向
计算机发展历程
硬件
软件
计算机系统组成
实线为数据线,虚线为控制线和反馈线
主要负责数据的乘法与除法运算并可保存运算结果
MQ(乘商寄存器)
累加器是一个具有特殊用途的二进制8位寄存器,专门用来存放操作数或运算结果。
ACC(累加器)
执行算术和逻辑运算
ALU(算术逻辑单元)
可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。
X(通用寄存器)
存放状态信息和控制信息
PSW (程序状态字/程序状态寄存器)
分析指令,给出控制信号
Control Unit(控制单元)
指令寄存器的位数取决于指令字长
存放当前执行的指令
Instruction Register(指令寄存器)
存放指令地址,有自动加1的功能
Program Counter(程序计数器)
运算器和控制器组成结构
计算机的工作流程-取数指令
运算器和控制器工作流程
鼠标
键盘
摄像机镜头
输入设备
显示器
输出设备
光盘
硬盘
U盘
辅助存储
I/O设备
多个存储单元只能一个电平为1 所以引入译码器
存储器(主)
主存就是内存,辅寸就是硬盘
计算机系统的组成
管理整个计算机系统,使系统资源得到合理调度
系统软件
完成用户的特定任务,使用系统软件提供的资源接口
应用软件
计算机软件系统
一行一行解释成二进制代码速度快一些,但是没有保存文件,重复代码多次执行
解释程序
多行编译成机器级目标代码文件(可先编译成汇编语言,也可直接编译成机器语言),可对重复代码进行操作
翻译程序
计算机编程语言
拓展
计算机系统的五层结构
计算机系统层次结构
n位地址 -> 2的n次方个存储单元 * bit
容量
机器字长通常与 CPU 的寄存器位数、加法器有关
计算机进行一次整数运算所能处理的二进制数据的位数
机器字长
外部数据总线一次所能并行传送数据的位数,非CPU内部总线
数据通路带宽
机器内部主时钟的频率,代表没秒内执行的时钟周期的个数
主频
在一个时钟周期内,CPU仅完成一个最基本的动作(一个动作可能需要一个或者多个时钟周期)是主频的倒数
时钟周期
主频和CPU时钟周期
执行一条指令所需的时钟周期数
CPI(Clock cycle Per Instruction)
值 = 指令条数/(执行时间 x 10^6)
每秒执行多少百万条指令
MIPS - (Million Instructions Per Second)
值 = 浮点操作次数/(执行时间 x 10^6)
每秒执行多少百万次浮点运算
MFLOPS - (Mega Floating-point Operations Per Second)
值 = 浮点操作次数/(执行时间 x 10^9)
每秒执行多少十亿万次浮点运算
GFLOPS - (Giga Floating-point Operations Per Second)
值 = 浮点操作次数/(执行时间 x 10^12)
每秒执行多少万亿次浮点运算
TFLOPS - (Tera Floating-point Operations Per Second)
图解
速度
计算器性能指标
进位为 2^10
B KB M G T
拓展,计算机单位
1.计算机系统概述
进位计数法
除基取余,倒序
整数部分
乘基取整,正序
小数部分
十进制转换成其他进制
按权相加
其他进制转换成十进制
十进制与其他进制转换
整数部分不够前面补0,小数部分后面补0
n位一组
二进制、四进制、八进制、十六进制的转换
+15
真值
0 1111
机器数
真值和机器数
进制转换
8421码
余3码
2421码
BCD码(Binary-Coded Decimal)
ASCII码
大端模式:将数据的最高有效字节存放在低地址单元中
小端模式:将数据的最高有效字节存放在高地址单元中
大端模式小端模式
字符
码字间的距离:两个码字之间有几个位不同
码距:一个编码方案中,合法码字间的最小距离
若码距=2,有检错能力,若码距>=3,可能还会有纠错能力
校验原理
在信息位的首部或尾部添加一个奇偶校验位
奇校验:这个校验码(信息码和校验位)中 1 的个数为奇数
偶校验:这个校验码(信息码和校验位)中 1 的个数为偶数
奇偶校验
海明码
循环冗余校验码
校验码
数制与编码
n位无符号数表示范围 0 ~ 2^n -1
1001 1100B -> 156D
无符号数
正数和负数的原码不变(正数符号位后补0,负数最后补0)
原码
当一个正数和一个负数相加 可以变成一个正数减去一个正数
10 - 2 = 8
让时针转一圈到 8 就相当于 一次性转一圈 然后再-2
10 + 12-2 = 20 % 12 = 8
分析:时钟上十点怎么调到八点
1 0000 0000 % 1 0000 0000 = 0
而 1111 1111 - 1000 1110 相当于取反
这里 1 0000 0000 = 1 + 1111 1111
0000 1110 + 1 0000 0000 - 1000 1110
那么 0000 1110 + 1000 1110
如果不想改变算数的逻辑 那么可以引入求余的方法
补码的由来
[ X ] -> [ X ] 补 正数不变 ;负数符号位不变 剩下的位置 取反 +1
[ X ] -> [ -X ] 补 连同符号位取反 + 1
补码
正数 与原码相同
负数 符号位不变 数值位按位取反
反码
原,补,反相互转化
移码 和 补码符号位相反
移码
有符号数:原、反、补、移
定点数的表示
逻辑左移时,高位移丢,低位添0;逻辑右移时,低位移丢,高位添0
逻辑移位
算数移位:左移相当于乘以基数,右移相当于乘以基数
左移、右移都补0
左移丢1,运算出错;右移丢1,影响精度。
正数补0 , 负数补1
正数补0 , 负数左移补0 右移补1
空位填补规则
循环移位
移位
符号扩展
原码 1,0001001 真值 -9
真值 + 39
[-B]补 = [B]补连同符号位取反+1
加减运算
加减
发生负溢出
发生正溢出
[ B - C ]补 = font color=\"#cfd0d2\
若C = 124 求[ A+C ]补 [B-C]补
一位符号位
子主题
一位符号位 & 数据位进位
双位符号位
溢出判断
乘数左移
常规算数乘法
这里MQ 的最高位符号位省略没写
符号位和绝对值分开计算 将每步计算结果右移一位
原码一位乘法
补码一位乘法
对比
乘法
除法
乘除
不改变数据内容,改变解释方式。
无符号数与有符号数
高位截断,保留低位。
长整数变短整数
符号扩展。
短整数变长整数
强制类型转换
定点数的运算
定点数的表示和运算
类似于 2.981 * 10^2 就是浮点数
阶符
阶码的数值部分
阶码
数符
尾数的数值部分
尾数
组成
r 阶码的底,通常为2
M 尾数 数值部分的位数n反映浮点数的精度
E 阶码 反映浮点数的表示范围及小数点的实际位置
N = r^E * M
浮点数的真值
未发生精度丢失
发生精度丢失
例子
基本格式
左规:当浮点数运算的结果为非规格化时要进行规格化处理,将尾数左移一位,阶码减1(基数为2时)。
右规:当浮点数运算的结果尾数出现溢出(双符号位为01或10)时,将尾数右移一位,阶码加1(基数为2时)。
规格化
正数为0.1××...×的形式,其最大值表示为0.11...1;最小值表示为0.10...0。尾数的表示范围为1/2≤M≤(1−2−n)。负数为1.1××...×的形式,其最大值表示为1.10...0;最小值表示为1.11...1。尾数的表示范围为−(1−2−n)≤M≤−1/2。
原码规格化后
正数为0.1××...×的形式,其最大值表示为0.11...1;最小值表示为0.10...0。尾数的表示范围为1/2≤M≤(1−2−n)。负数为1.0××...×的形式,其最大值表示为1.01...1;最小值表示为1.00...0。尾数的表示范围为−1≤M≤−(1/2+2−n)。
补码规格化后
表示范围
IEEE 754标准
浮点数的表示
阶码补码: -101 -> 11011
尾数补码: -0.101 -> 11.011 -> 11.01100000
font color=\"#c41230\
5D=101B,1/256=2−8X = -101 ×2^−8= -0.101 ×2^−5=-0.101 ×2^−101
59D=111011B,1/1024=2^−10Y = + 111011 ×2^−10= + 0.111011 ×2^−4=+ 0.111011 ×2^−100
真值到机器数的转换
①求阶差:[ΔE]补=11011+00100=11111,知ΔE=−1
X =-0.0101 ×2^−100
使两个数的阶码相等,小阶向大阶看齐,尾数毎右移一位,阶码加1
对阶
10.110001000
X-Y = X + [-Y]
尾数加减
0”舍“1”入
恒置“1”
无舍入
舍入
常阶码 ,无溢出,结果真值为 2^-3 * (-0.1001111)B
char -> int -> long -> double
float ->double
无损
精度 (全部)
表示范围 (flot->int)
int <->float
浮点数的运算
浮点数的表示与运算
算数逻辑单元
2.数据的表示与运算
高速缓冲存储器(cache)
主存储器(主存、内存)使用DRAM 和 ROM
副主存储器(辅寸、外存)
作用(层次)
易失性:RAM
非易失性
断电后存储信息是否消失
破坏性读出 : DRAM
非破坏性读出
读出时是否破坏信息
信息可保存性
磁芯存储器
磁盘
磁带
磁表面存储器
半导体存储器
光存储器
存储介质
DRAM
SRAM
RAM
随机存取
顺序存取:磁带
直接存取:磁盘
串行访问
存取方式
分类
存储字数*字长
存储容量
每位价格 = 总成本/总容量
单位成本
数据传输率(主存带宽) = 数据带宽/存储周期
存储速度
性能指标
Cache - 主存层次: 硬件实现,解决速度不匹配问题
主存 - 辅寸层次:硬件+操作系统,解决容量问题,逐渐形成虚拟存储系统
层次化结构
基本概念
译码驱动电路
存储矩阵
读写电路
地址线、数据线、片选线、读写控制线
存储器芯片的基本结构
按字节寻址:1K个单元,每个单元1B
按字寻址:256个单元,每个单元4B
按半字寻址:512个单元,每个单元2B
按双字寻址:128个单元,每个单元8B
按字节、字、半字、双字寻址
从低到高
大端方式
从高到低
小端方式
多字节存放:大端方式,小端方式
寻址
存储器的简单模型及寻址的概念
位扩展
线选法
译码器的使用
分析地址空间
译码片选法
字扩展
选择存储器芯片
与CPU进行连接
字位同时扩展
主存与CPU的连接
存取时间
恢复时间
存取周期
冲突处理 : BUSY 信号
双端口RAM
单体多字
高位交叉编址
低位交叉编址
多体并行
多模块存储器
双口RAM和多模块存储器
空间局部性
时间局部性
局部性原理
命中率与失效率
Cache - 主存体系的平均访问时间
性能分析
主存字块标记 | 字块内地址
全相联
主存字块标记 | Cache字块地址 | 字块内地址
直接映射
主存字块标记 | 组地址 | 字块内地址
组相联
有效位、标记位(主存字块标记)
标记项
地址映射方式
随机算法(RAND)
先进先出(FIFO)
最近最少使用(LRU)
最不经常使用(LFU):参考操作系统
替换算法
当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲(write buffer)
全写法(写直通法,write-through)
当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存
写回法(write-back)
命中
把主存中的块调入Cache,在Cache中修改。搭配写回法使用
写分配法(write-allocate)
只写入主存,不调入Cache。搭配全写法使用
非写分配法(not-write-allocate)
不命中
写策略
高速缓冲存储器
虚地址(逻辑地址)
实地址(物理地址)
页式
段式
段页式
类型
快表TLB
慢表 Page
虚实地址转换
虚拟存储器
存储器与CPU的协同工作
由大量相同的位存储单元阵列构成
将来自地址总线的地址信号翻译成对应存储单元的选通信号该信号在读写电路的配合下完成对选中单元的读/写操作
包括独处放大器和写入电路,用来完成读/写操作
决定芯片进行读/写操作
读写控制线
决定哪个存储芯片被选中。可用于容量扩充
片选线
地址线
数据线
地址线数和数据线数共同反应存储芯片容量的大小如 地址线10根 数据线8根 芯片容量为 2^10 * 8 = 8K位
存储芯片的基本结构
触发器存储信息,速度快,成本高,集成度低,常用作高速缓存
电容存储信息,需刷新,速度慢,成本低,集成度高,常用主存(SDRAM)
不需要CPU控制
以行为单位,仅需要行地址
存储器同一行中所有芯片同时刷新
DRAM的刷新:集中刷新、分散刷新、异步刷新
RAM的读写周期
SRAM 和 DRAM 区别图解
SRAM、DRAM的工作原理
结构简单,位密度比RAM高;非易失性,可靠性高
类型:MROM、PROM、EPROM、Flash Memory 、 SSD
特点
ROM的特点和基本类型
3、存储系统
操作码
地址码
定长指令字结构
零地址指令
变长指令字结构
都为8位
定长操作码
可变长度
拓展操作码
四种地址指令
定长操作码和拓展操作码对比
操作码和地址码
LOAD:把存储器中的数据放到寄存器中
STORE: 把寄存器中的数据放到存储器中
1. 数据传送
算数:加减乘除,增1,减1,求补,浮点运算,十进制运算
逻辑:与、或、非、异或、位操作、位清除、位求反
2. 算术逻辑操作
算数移位、逻辑移位、循环移位(带进位和不带进位)
3. 移位操作
无条件转义 JMP
条件转移 JZ:结果为0; JO:结果溢出; JC:结果又进位
调用和返回 CALL和RETURN
陷阱(Trap)与陷阱指令
4. 转移操作
CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)
5. 输入输出操作
操作类型
指令格式
数据存储
顺序寻址
跳跃寻址
指令寻址
数据寻址
指令寻址方式
两种设计方向
CISC 和 RISC
4.指令系统
直接与CPU交换信息
计算机组成原理(C语言) (B站王道2019版本) 2021.7.19目前更新到第四章
收藏
收藏
0 条评论
回复 删除
下一页