以下完全为个人总结——若发现问题请下方评论,定回
I/O
- 主机主频 50MHz (50M个时钟周期)/s
- CPI m (m个时钟周期)/每执行一条指令
- MIPS 50M/m (主机每秒执行的指令数)
- 外设数据传输率 nB/s
- 总线带宽 32位或以32位传输 即每传输32位的数据请求一次
- (nB/s)/4B=n/4 (每秒发出的请求次数)--4B即上面的32位
- 交换块16B或数据16B,则传输一次需 16/n s,那么一秒钟传输n/16次
- 求占cpu时间百分比时,若用时钟周期来求,则分母可由cpu主频得知50M个时钟周期,分子具体情况具体求。
- 关于终端屏蔽,根据屏蔽字得到的优先级,在运行过程中起作用,而计算机的实际启动顺序仍按照硬件优先次序进行(即中断响应优先级),只不过启动后各中断会根据屏蔽字优先级进行抢占处理(即中断处理优先级)。
- 程序查询方式-中断方式-DMA方式比较
DMA方式对CPU的占用最少,即对CPU的影响是最小的,其次中断方式,次之程序查询 - 中断处理流程
(中断隐指令部分,硬件直接实现,并非指令无操作码)
关中断-保存断点-引出中断服务程序(取出终端程序入口地址送至pc)
(中断服务程序内部)
保存现场和屏蔽字-开中断-执行中断服务程序-关中断-恢复现场和屏蔽字-中断返回,开中断 - VRAM容量(显存容量)
VRAM容量=分辨率 * 灰度级 * 帧频 ,例如 1280 * 1080 * 24bit * 85(Hz) - 颜色数 256=2^8 即8位灰度级
-
磁盘结构
存储容量=磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
数据传输率Dr=磁盘转数r/s * 每条磁道容量 N个字节 即 Dr=r * N;
面密度=位密度(单位磁道长度记录二进制代码位数)* 道密度(半径方向单位长度的磁道数);
- 若磁盘 120r/s 则 平均查询扇区时间为(1/120)/2 (存取一个扇区的平均延迟)即旋转半周的时间;
- 读一个扇区中数据所用时间=找磁道的时间+找扇区的时间+磁头扫过一个扇区的时间;
找磁道的时间:一般选磁头在磁盘半径方向移动1/2个半径所用的时间的平均值;
找扇区时间:一般选用磁盘旋转半周所用的时间为平均值;
磁头扫过一个扇区时间:磁盘转一圈的时间/磁盘的扇区数; - 磁盘阵列 -通过同时使用多个磁盘提高传输率,通过并行存储提高数据吞吐量,通过镜像提高安全性,通过数据校验提供容错能力
总线
- 半同步通信总线(拥有同步通信及异步通信的特点)
异步总线中引入时钟信号,其就绪及应答信号皆在时钟的上升沿或下降沿有效,不受其他时间的信号干扰;例如 PCI总线; - 分类: 时序上 同步/异步 数据传输格式 并行/串行
- 通信总线也称外部总线
- 猝发传送(突发传送)
一个总线周期内,传送存储地址连续的多个数据字; - 单总线 双总线 三总线
单总线并不是只有一根信号线可分为(地址、数据、控制)
-系统总线
-主存总线、I/O总线
-主存总线、I/O总线、DMA总线 - 总线带宽=总线频率*总线宽度;
- 总线频率=总线时钟频率/(一个总线周期中的时钟周期数);
- 总线宽度 - 总线位宽,通常指数据总线的根数
- 总线时钟周期=1/总线时钟频率;
- 总线仲裁 -集中/分布式
链式 - 三根控制线 BS BR BG
计数器定时查询 - n个设备需要 (ceil)logn+2 根设备地址线
独立请求 - 2n+1控制线
分布式即自己分别处理自己的模块,最后通过博弈选出最终模块 - 同步定时 - 统一的时钟信号
- 异步定时 - 无统一时钟 用握手信号实现定时与控制
不互锁、半互锁、全互锁
区分:发出信号后是否必须等待回应才能继续; - 总线标准
ISA EISA VESA PCI PCI-Express
USB(Universal Serial Bus)总线 (通用串行总线)
AGP(加速图形接口)
局部总线 -VESA PCI AGP
CPU
- 运算器 - 数据加工处理的中心
ALU、暂存寄存器、ACC、通用寄存器、PSW、移位器、计数器(CT) - 控制器
PC、IR、MAR、MDR、指令译码器、时序系统、微操作信号发生器 - IR MAR MDR对用户透明
- 机器字长 - CPU一次能处理数据的位数
- PC的位数 - 取决于存储器容量
计算机内存容量大小 由地址总线决定
MAR位数和PC相同 - 指令周期 - 取出一条指令并执行完的全部时间
取指周期 + 间址周期+执行周期+中断周期 (并不是每个指令周期都有中断周期)
对应四个机器周期 - 一个指令周期 - n个机器周期(也称cpu周期) - n * m个时钟周期
- 时钟周期 - 计算机运行的最基本的时序单位
- 指令 即机器指令(完成一个独立的算术运算或逻辑运算操作);
- 机器周期通常由存取周期确定 (即计算机完成一个基本操作的时间)
- 存储器进行一次读或写为存储器访问时间,连续两次独立的读或写所需最短时间为存取周期(主存周期)
- 指令字长一般为存储字长的整数倍(即n * 存储字长),n=1 时则等于机器周期
- 指令字长与机器字长没关系,它取决于操作码长度,操作数地址长度,和操作数地址的个数;
- 中断周期中的入栈操作是sp-1,向低地址增加;
- 单指令周期/多指令周期/流水线
单 - 串行 固定时钟周期
多 - 串行 不固定时钟周期
流 - 一种并行方案 - 硬布线控制器 - 组合逻辑控制器 执行速度快但不可修改
- CPU数据通路结构三种 (CPU内部(各寄存器及运算部件之间)与系统总线(计算机内各功能部件)不同)
CPU内部单总线、CPU内部三总线、专用数据通路 - 单总线CPU中ALU仅有一个输入端与总线相连,另一输入端通过暂存器与总线相连
- CU - 控制单元
其输出结果受到 IR、时序系统、执行单元反馈标志 影响 - 三态门 -控制其所在通路的连接与断开
基本的微操作
取指周期
PC->MAR //pc中取地址送入MAR
1->R //主存读操作
M(MAR)->MDR //主存将读取到数据(指令)送入MDR
MDR->IR //MDR将指令送入IR
OP(IR)->CU //操作码译码后送入控制单元
PC+1->PC //PC自增
微程序中需增加
Ad(CMDR)->CMAR
OP(IR)->CMAR
间址周期(即从得到的位地址的数据进行求值例如((X))的值)
Ad(IR)->MAR
1->R
M(MAR)->MDR
执行部分视情况而定
结束后得到的结果有两种情况
1-送入主存
ACC->MDR
**MDR->M(MAR)**
2-送入累加器
(R2)->ACC //左边作为数据送入寄存器时都要加()
- 通过ALU进行+1操作的PC
要考虑总线的占用问题,且使所用时钟周期最少
PC->MAR 1->R PC->R1
M(MAR)->MDR R1+1->R2
MDR->IR OP(IR)->CU
R2->PC
- 微程序控制器 - 存储逻辑实现 - 易于扩充修改但执行慢
- 一条机器指令 - 一个微程序 - n个微指令 - n * m微操作(微命令与微操作一一对应是其控制信号)
- 一条微指令 - n微命令
- 操作控制字段即操作控制信号
- 顺序控制字段 下条微指令地址
- 微周期类似指令周期读取微指令并执行完所需的时间
- 主存 - 存数据及程序,CPU外部,RAM实现;
- 控存 - 存微程序,CPU内部,ROM实现;
- 微程序结构及功能对程序员透明
- 微程序入口地址由机器指令操作码字段形成
- 微指令编码方式
直接编码/字段直接编码/字段间接编码方式 - 微指令格式 - 水平型/垂直型
水平 - 操作控制字段+判断测试字段+后继地址段
微程序短 执行速度快,但微指令长 编写麻烦
垂直 - 微操作码+目的地址+源地址
微指令短,便于编写,但微程序长执行慢,工作效率低 - μPC与PC 不同 一个是微程序中的,一个是外部的寄存器中的不可取代
- 指令流水线
注意:并非流水段越多,指令执行越快, 流水段缓冲的开销及流水段间逻辑控制会随着增多而变复杂,
1)顺序执行 (n为指令数,前三个把段数作为3来算的)
T=3nt
2)一次重叠
T=(1+2n)t
3)二次重叠
T=(2+n)t
4)。。。
。。。。(n个指令 n-1重叠)
T=(k+n-1)t (k为指令的段数) - 相关的问题
结构相关(资源冲突)
解决方案: 暂停一个时钟周期 / 令设置存储器执行
数据相关(数据冲突)
解决方案:暂停几个时钟周期 / (不通过寄存器直接用ALU数据为输入计算)数据旁路 / 编译器调整指令顺序
控制相关(控制冲突)
解决方案:动态预测 / 加快提前形成条件码 / 提高转移方向的猜准率 - 流水线吞吐率
TP=n/(n+k-1)t; - 流水线加速比
S=T0/Tk=knt/(k+n-1)t; - 流水线效率
E=T0/Tk=(1/k) * S; - 超标量流水线
每个时钟周期并发多条独立指令,并行操作,不能调整执行顺序
例如: 采用度为4的超标量流水线处理机,执行20条指令,直接当作度为一执行20/4条指令来算 - 超流水线
一个时钟周期一个功能部件使用多次 - 超长指令字
超长的指令字,需要多个处理部件; - IF ID EX WB
取指 译码 执行 写回
在流水线中 上一条的IF没执行完下一条指令不可以进行IF - 数据相关几种具体情况
RAR (read after read) 没什么影响
RAW(read after write)
指的是 应该上一条指令对该变量的写结束后下一条指令才能对其进行读,不然独到的数据就是错的,发生了数据相关,即冲突;
WAR(write after read)
指的是 应该会上条指令写操作之后在进行读,不然读到的是错误的信息
WAW(write after write)
指令系统
- 指令 (机器指令)- 计算机运行的最小功能单位,计算机的语言系统
- 指令字长一般为存储字长的整数倍(即n * 存储字长),n=1 时则等于机器周期
- 指令字长与机器字长没关系,它取决于操作码长度,操作数地址长度,和操作数地址的个数
- 单字长、半字长、双字长指令
指的是指令长度与机器字长的长度程倍数关系时的叫法 - 定长指令结构/变长指令结构
- 指令基本格式 - 操作码字段 | 地址码字段
0地址 OP
一地址 OP+A1(既为源也为目的)
也可为隐含约定目的地址 即有两个操作数,另一个操作数来自ACC
二地址 OP+A1(源操作数)+A2(目的操作数-(保存结果))
三地址 OP+A1(源操作数)+A2(目的操作数)+A3(保存结果)
四地址 OP+A1(源操作数)+A2(目的操作数)+A3(保存结果)+A4(下址-下条指令地址) - 定长操作码指令格式
n位操作码 最大能表示2^n条指令 -
扩展操作码指令格式
Point:
不允许短码是长码的前缀
各指令操作码不重复
一般使用频率高的分配短码,使用频率低的分配长码,减少指令译码分析时间
一言难尽,上图
- 寻址方式
指令寻址/数据寻址
指令寻址
1)顺序寻址 - 即PC+1方式
2)跳跃寻址 - JMP类指令直接修改PC下一跳地址 -受PSW及操作数控制,且目的地址分绝对地址/相对地址
数据寻址
指令格式 - 操作码 + 寻址特征 + 形式地址A (以下用#来指代寻址特征的位置,A形式地址,EA有效地址)
寻址特征指明属于哪种寻址方式
1)隐含寻址
ADD+#+A
主存中A地址中操作数送入ALU,同时ACC中的作为第二操作数也送入ALU
优点:有利于缩短指令字长; 缺点:需增加存储操作数或隐含地址硬件;
2)立即(数)寻址
则A即为操作数本身,称为立即数(补码存放)
优点:执行阶段不访问主存;缺点:A的位数限制立即数的范围;
3)直接寻址
OP+#+A
A=EA
优点:简单,一次访存,缺点:A的位数决定了寻址范围,且不易修改;
4)间接寻址
OP+#+A, A->EA(第一次读得到A的有效地址) ,Get(EA)(从有效地址中取得操作数)(一次间址,两次访存)
OP+#+A1,A1->A2,A2->EA Get(EA)(两次间址)
优点: 可扩大寻址范围;缺点:要进行多次访存;
5)寄存器寻址
OP+#+Ri
EA=Ri
优点:不访存,地址码长度小,速度快,支持向量矩阵运算;缺点:寄存器数量有限,价格贵;
6)寄存器间接寻址
OP+#+Ri ,EA=(Ri),Get(EA)
特点:比间接寻址快,但需要访存,从Ri得到EA,后从主存取操作数;
7)相对寻址
OP+#+A,EA=PC+A
优点:操作数地址不固定随PC变化,便于程序浮动,广泛用于转移指令;
JMP A 若CPU从存储器中取出nB指令则PC+n+A;
8)基址寻址(面向操作系统)
OP+#+A,BR+A->EA
OP+#+R0+A,R0+A->EA
BR(专用寄存器,基址)
R0(通用寄存器,基址)
基址不变,A变化
优点:可扩大寻址范围,利于多道程序设计,数据分配存储空间,编制浮动程序;
9)变址寻址(用户设计)
OP+#+A,IX+A->EA
IX(变址寄存器)
A不变,IX改变
优点:可扩大寻址范围,适合编制循环程序,处理数组问题;
10)堆栈寻址
存储区中读/写单元地址,由特定寄存器给出SP(堆栈指针);
硬堆栈 - 寄存器堆栈
软堆栈 - 主存中划出的区域
此种形式指令大多为无操作数指令,隐含使用了SP;
16位补码表示范围 - 指令操作数的地址制定方式 - 大端方式/小端方式
即给出的地址为操作数的最高/最低有效字节地址 - 数据或指令的存放方式
边界对其/边界不对齐
边界对其相对边界不对其是一种空间换时间的思想 - CISC/RISC
CISC(Complex Instruction-Set computer)
指令系统复杂,庞大,数目多200以上
指令长度、格式、寻址方式、使用频度、执行时间 不固定
大多数需要多个时钟周期
大多为微程序控制器
RISC(Reduced Instruction-Set Computer)
使用使用频率高的简单指令,复杂的通过简单进行组合
指令长度固定,格式种类及寻址方式少
只有Load/Store指令访存
CPU中通用寄存器多
采用流水线技术,大部分一个时钟周期内完成,
硬布线为主
Compare CISC/RISC
1)CISC大多采用微程序控制,控存占CPU50%以上
RISC采用组合逻辑控制,硬布线逻辑占CPU10%左右
2)RISC 更能提高运算速度,指令数、寻址方式、指令格式种类少,流水线技术,通用寄存器多,运行速度快
3)RISC便于设计简单快速可靠性高
4)有利于编译程序代码优化
存储系统
- 层次分类 - 主存(内存) - 辅存(外存) - Cache(高速缓冲存储器 - 于CPU与主存间)
注意:CD-ROM不属于ROM,顺序访问方式 - RAM(随机存储器 易失性存储器)
读写方便,使用灵活,主要用于主存、Cache (分静态 - 触发器原理 ,动态 - 电容充电原理),断电后信息丢失 - ROM(只读存储器 非易失性存储器)
只读,可与RAM共同作为主存一部分,断电后信息仍存在 - 串行访问存储器
需按照物理位置的先后顺序进行寻址,存取速度慢 - 存储器容量
存储字数(存储器的地址空间大小) * 字长(一次存取操作的数据量)
存储速度(带宽):数据传输率=数据的宽度/存储周期 - 多级存储结构
CPU - Cache - 主存 - 辅存(磁盘 - 磁带/光盘) - 主存与Cache间数据调动由硬件自动完成,对所有程序员透明
- 主存辅存间数据调动对应用程序员透明,由硬件与操作系统共同完成
- 半导体随机存储器
- 74138译码器又称为3/8译码器
- 存储元 - 存放一个二进制位的物理器件 - 存储器的最基本构件
- SRAM(Static -RAM - 易失性半导体存储器)
存取速度快、继承地功耗大,一般组成Cache - DRAM(Dynamic - RAM,易失性,需要刷新)
易集成,价位低,容量大,功耗低,速度慢,一般用来组成大容量主存
读出时为破坏性读出 ,采用传两次地址策略,所以计算时地址线复用即需要除二 - DRAM刷新方式
集中刷新: 一个刷新周期内,一段时间专门来刷新,为访存死区;
优点:读写操作不受刷新影响,系统存取速度较高;
缺点:死区不能访问存储器
分散刷新:把每行的刷新分散到各个工作周期中;
优点:无死区;
缺点:增加了存取周期长度,降低了整体速度;
异步刷新: 利用逻辑电路的请求间隔;
特点:前两种方法结合,即可缩短死时间,有充分利用最大刷新间隔为2ms的特点;
注意:刷新对CP透明 ,刷新单位为行,只需要行地址,无需输出,不需选片,所有芯片同时被刷新 - 存储器读写周期
point:读周期与读出时间不同,读周期总是大于读出时间
读操作时(WE|)为高电平;
写操作时 片选信号(CS|) (WE|)为低电平;(取反符号不会打,把杠打在边上了) - 只读存储器(ROM)
结构简单,位密度比可读写存储器高,有非易失性,可靠性高;
类型:
MROM - 不可修改出厂定好
PROM - 一次可编程只读
EPRPM - 可擦除可编程(擦除时全部擦除,再编程)
E²PROM - 电擦除
Flash Memory - 价格便宜集成度高,擦除重写速度快,且写比读要慢
SSD - 读写快,低功耗,价格贵