计算机组成原理考研笔记
本文最后更新于:2024年12月27日 下午
IEEE754
注意这个m是原码!!举例m为00100000(后面都是0)
则尾数是(1.0010)(二进制),化成十进制就是1.125
刷新
DRAM是电容存储所以需要刷新,刷新方式有集中刷新,分散刷新和异步刷新
Cache写回策略
写直达法:是指每次写操作数既写入内存也写入Cache
写回法:写Cache时不写入主存,而当Cache数据被替换出去时才写回主存。为了识别cache数据是否与主存一致,要加一个记录信息状态位,写Cache时设置,Cache数据写回主存时清除。
微指令相关
- 在微程序控制器中,执行指令微程序的首条微指令地址是通过指令操作码映射得到的。
- 直接控制:有几位最多就能控制几位;字段直接编码控制:12位想控制3段,必须要不相容,然后分成3段,每段4位,去除一个不用最多有45种状态。
- 断定方式确定下一条微指令地址:由微指令的下地址字段直接指出后续微指令地址
磁盘相关
非格式化容量是指一个盘片上可以记录的二进制位的总数量,而格式化容量(完成划分磁道和扇区,设置文件目录区等操作后的磁盘)通常是指用户可用空间的二进制位的总数量,前者比后者要大。
将长度超过一个磁道容量的文件记录在同一柱面是合理的,因为不需要重新寻找磁道,省去了极慢的寻道操作,这样数据读/写速度快。
地址格式:磁盘号/柱面号/盘面号/扇区号,直接寻址的最小单位是扇区
读出一个扇区的数据所用的时间为:平均寻道+平均寻扇区时间+磁头扫过一个扇区的时间
中断
内中断
注意这个中断图的画法,先是按照设定的来,再按照真正的来。
计算相关
浮点数
- short转int要在前面加1
总线带宽
时钟周期=1/时钟频率(1MHZ即0.1us时钟周期),一个总线周期传输的信号量/总线周期时间
RAM最高地址
32KB的RAM最高地址怎么算?32KB为2^15B所以需要15根地址线,15个1就是7FFFH,如果首地址变了记得要加!
Cache组相联映射的组号计算
比如Cache有16块,采用2路相连映射,即分为8组,那么n号单元所在主存块就按照模8来分配
流水线相关
加速比:原本时间 / 加速后时间
实际吞吐率:一个流水周期中一条的指令书 / 一个流水周期的时间
Cache块号格式和计算
主存地址包含3个部分:标记(Tag),组号(Index),块内地址(Offset)
先将主存地址由十六进制变为二进制,最后4位为块内地址,中间10位为组号,剩下的是标记
指令流水线
包含瓶颈段的流水线,设共有k段,且需要执行n调指令,则总的执行时间为
$$
t_1+……t_k+(n-1)*max(t_1,……,t_k)
$$
单个的要背的错题知识点
间址周期
CPI为每条指令所需要的时钟周期数,根具体时钟周期的长短无关(然后时钟频率和时钟周期互为倒数,所以也无关)
总线宽度又称为总线位宽,它是总线上能够同时传输的数据位数,同时是指数据总线的根数;总线的传输速率等于中心宽度 * 工作频率
指令总是从根据PC从主存中读出
中断优先级最高的就是全1,然后依次往下面加0
还没搞懂的内容
数据冒险
新考点
补码加减运算器
补码加:按位加就可以了
补码减:先把减数取反,然后末尾加1,得到-Y,然后再加(最高位的结果丢弃)
无符号和有符号判断溢出的方法不一样,要用标志位
标志位
PSW里面会用这些标志位
OF(Overflow Flag)
溢出就是1,否则就是0,只有在有符号数加减才有意义,无符号数就算OF是1也不代表溢出了
计算方法:最高位产生的进位与次高位产生的进位异或
SF (Sign Flag)
符号位,取最高位本位,1代表负数,0代表正数,同样也只对无符号数
ZF(Zero Flag)
运算结果为0时ZF为1,否则为0
CF(Carry Flag)
进位为1,否则为0,最高位产生的进位和sub异或(sub即那个是加还是减的信号,加法sub为0,减法sub为1),对有符号数没意义
乘法电路基本结构
用一个例子理解结构并且记忆溢出之类的
有符号数会多一个辅助位
除法电路基本结构
多处理器基本概念
选择题概率很高
SISD
计组中学的都是这个,不能数据级并行,可以指令流水线
SIMD
把数据块分割然后分开到不同的局部存储器,很适合循环操作,因为每一块都是一样的,某些显卡就是这样干的(感觉matlab也是这样呀)这样一条命令就可以控制多个局部存储器,不同执行单元执行同一指令,但是不同数据
向量处理机:也是数量级并行,SIMD思想的进阶应用
MISD
同一数据不同指令,逆天,现实中不存在
MIMD
现实很多都是这样
线程级并行,甚至是进程级并行
多计算机系统不同用load store直接访问内存,必须用消息传递,所以也成为消息传递系统