408-机组一些小知识点

2024-1-6更新

因为很多人都有看到这篇文章,所以这里建议在你对机组有一定理解的情况下,再来看可能会理解的更好一些,不建议学习初期就直接看,可能有些地方比较模糊。还有一点就是,这些知识点可能需要你们自己去理解了,因为我已经一年多没有接触408的知识了,虽然当时机组考的还可以,但确实机组很多细节就是学了就忘,比较晦涩,所以解答这方面可能比较抱歉。


机组难度很大,机组决定了你的上限,所以如果想考高分的话,需要多花时间去理解"里面"的东西。这里我按照408给的大纲自己备考过程中的进行一些总结,笔记的话可以私聊我,这里不好给。

1、计算机系统概述

性能指标

这一章是408必考的知识点,年年考,分值占的比例很大,大题涉及,选择涉及,所以一定要好好掌握

2、数据的表示和运算

第二章的知识点难理解,涉及到数据的一些表示,这里不介绍数据的具体框架知识点,只介绍一些容易忽视的地方

小知识点
1、对于位数相同的定点数和浮点数,可表示的数据个数应该是一样多的。编码位数一定,编码出来的数据个数就是一定的。
2、补码的一位乘法和原码的除法,其中补码乘法需要做n+1次加,而原码的除法根据第n次余数是否与被除数同号,非同号需要n+1次加
3、正数原码、补码以及反码是一样的,负数的补码等于反码加一,负数的反码等于原码除符号位取反
4、C语言中类型转化方向:char—>int—>long—>double
5、基数越大精度越低,进制越大<span style='color:red;>精度越高。(比如某些10进制小数不能用2进制表示,但是所有二进制小数都可以用10进制表示,这样就很容易理解10进制精度更高)
6.原码表示时,正数规格化形式为0.1xxx,负数格式化形式为1.1xxx
7.注意⚠️IEEE745一定要记住,阶码计算是通过二进制算出来的值E,再减127,而不是128,即1001 0011算出来的阶码应该是20(128+16+2+1-127=20)。其中E的取值为1~254,所以阶码单位为-126~127
8.采用规格化的浮点数最主要是为了增加数据的表示精度。
9.对于无符号整数乘法,若乘积高n位全为0,即使第n位全为1也正好是2^32-1,不溢出,否则溢出
10.CF=count异或sub count为最高位的进位,sub为加减控制信号,加法0,减法1
11.OF=次高进位异或最高进位
12.乘法溢出判断
在这里插入图片描述

3、存储系统

小知识点
1.主存和cache之间的数据调动是由硬件自动完成的,对所有程序员均是透明的;而主存和辅存之间的数据调动,则是由硬件和操作系统共同完成的,对应用程序员是透明的(CPU与Cache之间的数据交换是以字为单位,Cache与主存是以块为单位)
2.DRAM的刷新是由硬件自动完成的
3.高速缓冲存储器是从系统结构上进行改造,使得速度变快
4.虚拟存储管理系统的基础是程序访问的局部性原理, 此理论的基本含义是 在程序的执行过程中, 程序对主存的访问是不均匀的
5.虚拟存储器采用的是全相联映射,因为关键是提高命中率,所以还是采用的是回写法
Cache

这一块得区分一下,细节的地方比较多,并且OS也涉及到了

映射方式

1.直接映射

  • Cache行的字段是:标记➕数据(这里的标记是,主存块号➖Cache总行数所占的位数)
  • 直接映射的地址结构是:标记➕Cache行号➕块内地址(可以看出来,其实就是主存的访问地址,只是先通过这个地址去Cache中找。标记➕Cache行号对应的就是主存块的地址,再加块内地址,找到具体位置)

2.全相联映射

  • Cache行的字段是:标记➕数据(这里的标记是就主存块号,所以全相联映射慢,需要和相联存储器一起用)
  • 地址结构:标记➕块内地址(因为是随机的,所以标记就是主存块号)

3.组相联映射

  • Cache行的字段是:标记➕数据(这里的标记是,主存块号位数➖Cache总组数所占的位数(可以和直接映射对比一下),比如主存块号位数是11,Cache有8组,也就是占3位,那么标记占了11 - 3 = 8位)
  • 地址结构:标记➕组号➕块内地址

其中直接映射和组相联映射都是先查找行号/组号找到对应的Cache行/组,然后再和标记进行对比,再检查有效位。

需要注意的点

直接上图

在这里插入图片描述

表格
1.有效位:为说明Cache行中的信息是否有效,每一个Cache行需要一个有效位
2.LRU位:替换算法如果采用LRU(最近最少使用算法),位数与Cache组的大小有关系,需要注意2路占一位LRU位,4路占两位LRU位;Clock算法还有访问位(不过用于操作系统)
3.修改位:回写法需要注意增加一个修改位(脏位)
4.失页率的计算要包括全部缺页
5.Cache缺失由CPU硬件实现,缺页处理由软件来完成
在这里插入图片描述
6.Cache对所有程序员都透明,而虚存对应用程序员透明,系统程序员不透明。
7.注意⚠️TLB路数并不能决定虚拟地址中标记要留多少位给组,而是根据TLB组数来决定标记留几位。
Cache总位数的计算

注意⚠️组相联和直接映射的区别,组相联和直接映射在计算Cache位数算的都是Cache总行数,组相联计算的不是总组数!

例题

在这里插入图片描述

答案

在这里插入图片描述

芯片引脚

芯片引脚408考得不深,大概就是SRAM和DRAM最少数目之类的,最多往年没有考过,所以记住即可。

SRAM

SRAM最小数考虑CS(片选信号线)➕读写信号线

例题

在这里插入图片描述

答案

在这里插入图片描述
DRAM

DRAM最小数考虑读写信号线➕行通选和列通选信号线(一共两根),并且DRAM采用地址复用,地址线减少一半

例题

在这里插入图片描述

答案

在这里插入图片描述

4、指令系统

无,指令系统因为本科阶段打比赛汇编学得比较多,所以当时这一部分学起来不是很困难。

5、中央处理器

这章知识点很多,容易漏的知识点也比较多,所以需要多总结多思考

小知识点
1.中断响应是CPU在每条指令执行结束前检查的,如果有,就进入中断周期,并且保存断点
2.理解什么是超标量流水线技术,超流水线技术
3.转移指令,PC并不总是修改为转移指令的目标地址,在转移指令时,需判别是否转移成功,成功则是目标地址,失败则是PC➕1
4.间址周期结束时,MDR中存放是的操作数的地址,而具体的操作数,需要到执行周期去取
5.按字节编制的时候需要注意,若题目又说按字边界对齐存放,此时MAR(或者有关的位数)就是主存空间/(字长/8)------16年统考选
6.指令字长一般取字节或者存储字长的整数倍,而不一定都和存储字长一样大
7.取指操作是自动进行的,控制器不需要得到相应的指令
8.空操作指令会导致PC增加,而不是寄存器都不变。并且空指令会进行访存,自己想想为什么?-------因为空指令,会在取指阶段去内存取这条空指令,所以会访存🤣
9.计算机基本上可以分为两大类:控制部件和执行部件。控制部件主要就是控制器,执行部件包括运算器,存储器,外围设备
10.CPU检测到异常事件后所做的处理和检测到中断请求后所做的处理完全相同(❌) 应该是基本相同的,而不是完全相同的
11.超线程技术是一个在CPU中,提供两套线程处理单元,让单个处理机实现线程级并行。采用超线程技术可以同时执行两个线程,但当两个线程同时需要某个资源的时候,其中一个线程必须挂起
12.中断向量是地址,异常或中断处理程序的首地址称为中断向量。而中断向量地址,指的是存放在中断向量表中的中断向量的地址
13.中断处理结束是可能引起进程调度程序执行。这是因为在时间轮转调度算法中,中断处理结束后,系统会检测当前进程的时间片是否用完,用完将其设为就绪态
14.在进程处于临界区时不能进行处理机调度。这种说法是不对的,处于系统临界区以及IO这种不能进行处理机调度。一些不破坏临界资源使用规则的可以调度
15.时间片轮转是绝对可抢占的,优先级有分抢占式和非抢占式
16.可重入代码(Reentry code)也叫纯代码(Pure code)是一种允许多个进程同时访问的代码。
17.异步总线一次通信往往会交换多位而非一位数据,DMA请求是每次传输一块数据(容易模糊,记混),但是这里要注意,题目可能要求的是采取窃取周期的方式进行DMA传输,这时DMA每次传输的是一个字的数据(真题考过两次DMA窃取周期方式)
18.什么叫断定方式?(P232);什么是数据旁路技术?
19.注意访存阶段是将结果写入存储器,而写回阶段是将结果写入寄存器
20.一个寄存器机器指令(即指令)对应一个微程序,一个微程序对应一段微指令,一个微指令对应若干微命令,一个微命令也就是一个微操作
21.一个指令周期对应若干机器周期,一个机器周期对应若干时钟周期(时钟周期倒数也就是频率),一个指令周期对应至少一个总线周期(思考原因,这是因为一个指令周期至少需要访存一次,即取指令),一个指令周期对应若干存取周期
在这里插入图片描述
22.注意理解多核处理器、多处理器、硬件多线程技术(多线程技术)

6、总线

无,408总线这一块考得知识点很少,也不会考很深。

7、输入输出系统

小知识点
1.什么是中断请求标志寄存器,屏蔽字寄存器(中断屏蔽触发器)、中断允许触发器
在这里插入图片描述
在这里插入图片描述
2.程序查询方式,程序中断方式每次都是读一个字,而DMA读写可以以单字节(或字)为基本单位,也可以以数据块为基本单位
3.对中断请求的响应只能发生在每条指令执行完毕时(即执行周期后),而DMA请求的响应可以发生在每个机器周期结束(取指周期、间址周期、执行周期)
4.DMA除了预处理和后处理阶段,数据传输阶段是不需要CPU控制的,是完全由DMA控制器(硬件)控制的
5.DMA包括主存地址的确定、传送数据的计数,以及发出中断请求信号都是自动的。
6.DMA开始前通过程序进行预处理,结束后通过中断方式进行后处理,都需要CPU参与
7.程序中断方式中,由硬件完成的是,保存断点(PSW和PC)以及中断服务程序寻址(将寻址后的地址存入PC)
8.IO端口在统一编址的方式下,区分存储单元和I/O设备是靠地址码区分的
9.IO指令只能在操作系统内核使用,是一种特权指令
10.注意⚠️:接口中控制线主要用于传送读写信号、一些仲裁信号以及握手信号。至于和对外设管理的控制是由I/O控制逻辑来完成的,所以I/O接口的指令字,状态字以及中断类型号都是在数据线上传输的
11.IO接口中,CPU可以直接访问的寄存器是I/O端口,包括数据端口、控制端口以及状态端口
12.通用寄存器和I/O端口之间的数据传送通常由I/O指令实现的,而I/O端口和I/O设备之间的数据传送是由指令字实现的。
13.中断返回指令和转移指令不一样,转移指令只需要修改PC的值,而中断返回指令不仅需要修改PC的值,而且需要恢复CPU中断前的环境(通用寄存器、PSW…)
14.DMA传送过程中,设备设备发出DMA请求,而DMA控制器向CPU发出总线请求
15.注意⚠️,用户的输入输出,一定是访管中断,不要学了IO以后,认为输入输出是IO中断
16.在中断响应周期中,由中断隐指令将允许中断触发器置0
17.DMA要等存取周期(机器周期)结束时才可以进行周期窃取,而不是指令周期、总线周期
18.存取周期是对于主存来说的,是主存的性能指标。存取周期是对内存进行一次读/写操作从得到地址到完成读/写操作以及下一次读/写操作开始前的总时间;总线周期是对于总线来说的,是总线的性能指标。总线周期又称为总线的传输周期,包括申请阶段,寻址阶段,传输阶段和结束阶段,一般来说,总线周期是由多个总线时钟周期构成的。
19.DMA的优先级比外中断(非屏蔽中断、可屏蔽中断)要高,这里的非屏蔽中断不包括故障,如果包括故障的话,非屏蔽中断>内部异常>可屏蔽中断
20.单位时间内I/O请求数量比中断处理的多,数据就会丢失(大题需要注意)

总结点

1.各个部件由什么构成
  • 1.控制存储器CM—ROM
  • 2.Cache—SRAM
  • 3.主存—DRAM、ROM
2.由硬件进行的操作
  • 1.DMA数据传输阶段
  • 2.程序中断方式中断点保存(即中断隐指令)以及中断程序寻址
  • 3.主存和cache之间的数据调动是由硬件自动完成的,主存和辅存之间的数据调动,则是由硬件和操作系统共同完成的。
  • 4.微程序控制器中微指令设计中,第一条微指令地址(用专门的硬件记录取指周期微程序首地址)和 中断周期微程序的首地址 都是由硬件产生
  • 5.DRAM的刷新是由硬件自动完成的
3.用户可见寄存器/不可见寄存器

在CPU中,IR,MAR和MDR对各类程序员都是透明的,但通用寄存器组、程序状态寄存器对程序员是可见的。

用户可见的寄存器

  • 通用寄存器组
  • 程序状态字寄存器【PSW】
  • 程序计数器【PC】
  • 累加寄存器【ACC】
  • 中断字寄存器

用户不可见的寄存器

  • 指令寄存器【IR】
  • 暂存寄存器【DR】
  • 存储器地址寄存器【MAR】
  • 存储器数据寄存器【MDR】
  • 主存和cache之间的数据调动是由硬件自动完成的,,对所有程序员均是透明的;主存和辅存之间的数据调动,则是由硬件和操作系统共同完成的,对应用程序员是透明的。
  • 指令缓冲器、移位器、乘法器、先行进位链
  • 等等,除去上面的用户可见寄存器,其他的基本上都不可见,比如移位寄存。。。
  • 10
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 33
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值