熊哥保佑你 计算机组成原理复习

移码是符号位取反

.
在这里插入图片描述

.

Cache——主存地址映像:

全相联:块号+字块内地址
直接映射:标记+行号+字块内地址
组相联:标记+组号+字块内地址

一个单元==一个字节

2路组相联:
在这里插入图片描述
全相联:
在这里插入图片描述
直接映射:
在这里插入图片描述

.

CISC 和 RISC:

CISC:

  • 微程序
  • 指令字长不固定
  • 寄存器数量较少
  • 开发时间短
  • 指令更复杂

RISC:

  • 流水技术,在一个周期内完成一条指令
  • 只有 Load / Stroe 指令,指令数、寻址方式少

根据 UP 主的观点:
手机 CPU -> ARM -> RISC(更省电)
电脑 CPU -> X86 -> CISC

.
吞吐比率:指令条数 / 流水线执行时间
加速比:未使用流水线执行时间 / 使用流水线执行时间

在有多个功能段的指令流水线中,流水线的时钟周期为执行时间最长的功能段执行时间。

1ns是10的-9次方秒

主频 f :K=110**3,M=1106,G=1*109
f = 1 / t(周期)

流水线完成:用执行时间最长的功能段时间作为开始和执行周期
流水线连续输入:开头周期该是什么还是什么,完成第一个执行周期后,用执行时间最长的功能段时间作为剩下流水线的执行周期

.
总线带宽(最大数据传输率)=总线宽度 / 总线的时钟周期

.
Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
公式:Cache块大小 / 每次突发传送字节

主存采用 n 体交叉存储方式,存储器总线完成一次读突发传送总线事务所需的时间是多少?
公式:总线时钟周期 + 存储周期 +( n - 1 )* 总线时钟周期 + 总线时钟周期

Cache命中,CPU 访问 4 个时钟周期

.
每传送一个字符,在异步串行通信线上共需传输多少位?
公式:起始位 + 校验位 + 停止位

.
中断响应阶段 CPU 进行:关中断、保存断点、引出中断服务程序

保护现场、执行中断服务程序进行数据传送

恢复现场

.
CPI:指的是每条指令执行所需的时钟周期数,也称为“时钟周期数(Clocks per Instruction)”。

.
冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是:指令周期的不同阶段
在这里插入图片描述
三级和五级流水线的指令周期:
在这里插入图片描述

.
写回法才有修改位,直写法没有修改位

.
SRAM 通常是服务于 RAM(易失,只读存储器)
ROM(非易失,只读存储器)

.

Cache命中率:

h = 命中率 = Cache 的次数 /( Cache 的次数 + 主存的次数 )

不命中时:

  1. 给存储周期:
    平均访问时间 = h * Cache 存储周期 +( 1 - h )* 主存的存储周期
  2. 给存 储/取 时间:
    平均访问时间 = h * Cache 存储时间 +( 1 - h )*( 主存的存 储/取 时间 + Cache 的存 储/取 时间 )

两者的区别:
存储周期要长一些
在这里插入图片描述

效率 = Cache 的时间 / 平均访问时间 * 100%
提高的倍数 = 主存的时间 / 平均访问时间 - 1

.
CRC 循环冗余校验:
案例:
在这里插入图片描述
检验信息的作用:
在这里插入图片描述
检验第几位出错:
在这里插入图片描述

.

TLB、页表、Cache、主存之间的访问关系:

一般用 Page 代表页表
在这里插入图片描述
在这里插入图片描述

.

寄存器:

在这里插入图片描述
案例:
在这里插入图片描述

.

流水线冲突之数据相关,RAW,WAR,WAW:

  1. 先 ADD 再 SUB:写后读
  2. 先 SUB 再 ADD:读后写

这两种情况的结果是不同的

在这里插入图片描述
案例:
在这里插入图片描述
在这里插入图片描述

流水线冲突之结构相关(资源相关)

在这里插入图片描述

总线

在这里插入图片描述

单重中断和多重中断执行流程:

在这里插入图片描述

刷新 存储器容量 / 显存带宽

M = r * c * 帧频
M:刷新 存储器容量 / 显存带宽
r:水平分辨率 * 垂直分辨率
c:颜色位

.

寄存器间接寻址

指令系统最多有多少条指令?
即有多少种指令,也就是操作码数( op )有几位,就是 2 的几次方种。

计算机最多有多少个通用寄存器?
看 Ms / Md 寄存器直接寻址方式有几个位,就有 2 的几次方个通用寄存器

存储器数据寄存器(MDR)至少需要多少位?
等于计算机字长位数

存储器地址寄存器(MAR)至少需要多少位?
等于主存地址空间大小 / 计算机字长 的位数(即2的几次方)

转移指令的目标地址范围:即计算机字长(PC)的范围

CPU速度指标

在这里插入图片描述

IEEE754

对32位:数符1位 阶符8位 尾数23位
对64位:数符1位 阶符11位 尾数52位
也就是:符号位 + 指数位 + 尾数位

二进制和十进制的相互转化:
这个过程也叫规格化
在这里插入图片描述
二进制转十进制:尾数位的最高位被称为“隐藏位”,为:1加小数点

随机存取、直接存取、顺序存取

直接存取:也叫半顺序存储器、先随机访问一个区,再顺序访问完这个区
磁盘

顺序存取:磁带、光盘

随机存取:半导体存储器

只读存储器(ROM):三种都有
EPROM:半导体存储器 -> 随机存储器
CD-ROM:光盘存储器 -> 顺序存取

随机读写存储器(RAM):半导体存储器 -> 随机存取 易失

操作数寻址方式

数据寻址

在这里插入图片描述

立即寻址

在这里插入图片描述

直接寻址

在这里插入图片描述
EA = A 即有效地址等于形式地址

隐含寻址

在这里插入图片描述

间接寻址

在这里插入图片描述

寄存器 直接、间接寻址

在这里插入图片描述

基址寻址

基址寻址在多道程序中极为有用
EA = A + (BR)
BR:偏移地址
BR 不变,A 变
在这里插入图片描述
左边是隐式,右边是显式

变址寻址

A 不变
IX 变,常用于数组循环
在这里插入图片描述
左边是隐式,右边是显式
在这里插入图片描述

相对寻址

在这里插入图片描述

堆栈寻址

在这里插入图片描述
进栈、出栈解析:
在这里插入图片描述

逻辑表达式转移条件

进位/借位标志CF:1为有结尾,0为无借位
零标志ZF:1为结果是零(即两数相等),0为结果不是零(两数不相等)
符号标志位SF:0为正数,1为负数
溢出标志位OF:1为溢出,0为未溢出

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是我为您编写的Java程序,它利用了接口Runnable来实现线程程序,模拟学生从教室的前后门进入教室,并统计前后门进入的学生人数: ```java public class Classroom implements Runnable { private int count = 0; // 进入教室的学生人数 private String entrance = ""; // 学生进入教室的门 public void run() { // 模拟随机进入教室的学生 for (int i = 0; i < 55; i++) { int num = (int) (Math.random() * 2); if (num == 0) { entrance = "前门"; } else { entrance = "后门"; } System.out.println("学生从" + entrance + "进入教室"); count++; try { Thread.sleep(100); // 暂停0.1秒钟 } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println("共有" + count + "名学生进入教室,其中" + (int) (Math.random() * count) + "名学生从前门进入," + (count - (int) (Math.random() * count)) + "名学生从后门进入"); } public static void main(String[] args) { Classroom classroom = new Classroom(); Thread thread = new Thread(classroom); thread.start(); } } ``` 在该程序中,我们定义了一个实现了接口Runnable的Classroom类,并实现了run()方法。在run()方法中,我们模拟了随机进入教室的学生,并用一个计数器count来统计进入教室的学生人数,用entrance来记录学生进入教室的门。最后,我们输出了进入教室的学生总数,并随机指定了从前门进入的学生人数和从后门进入的学生人数。 在main()方法中,我们创建了一个Classroom对象并将其传递给一个Thread对象,最后调用start()方法来启动线程。 当您运行该程序时,它将模拟随机进入教室的学生,并输出进入教室的学生总数以及从前门进入的学生人数和从后门进入的学生人数。希望这可以回答您的问题,如果您还有其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亖嘁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值