计组期末复习考点 (三) 有需要的请移步上一篇文章:GAN就行了:计组期末复习考点 (二) 考点21 Cache相联映射(重点中的重点)<就是切段段。。。> 相联存储器: 按内容访问的存储器,即在相联存储器中,一个字是通过它的部分内容而不是它的地址进行检索的。适用于快速查询的场合。 主存地址与Cache地址间存在着对应关系,这个关系称为映射函数。 地址映射完全由硬件实现,由于采用硬件,这个地址变换过程很快,软件人员丝毫未感觉到Cache的存在,这种特性称为Cache的透明性。 主存和Cache有三种地址映射方式:直接映射全相联映射组相联映射 Cache的数据块称为行,主存的数据块称为块,行与块是等长的。 主存容量为
块,cache容量为
行,每个字块中含
字。 (m: Memory ,c:Cache,b:block) [直接映射] 特点:是一种多对一的映射关系,主存的第 i 块一定映射到Cache的第 j 行,且
优点:映射方式简单,易实现。缺点:机制不灵活,Cache命中率低。 需将主存第0块与第16块同时复制到Cache中时,由于它们都只能复制到Cache第0行,即使Cache其它行空闲,也有一个主存块不能写入Cache,这样就会产生频繁的Cache装入(是针对一个块的频繁装入)。 (自己画过一遍,印象更深)
直接映射 需要注意的是Cache有目录SRAM(标记+有效位)和数据SRAM(数据行) 举例: 主存4GB (按字节编址), Cache 512KB,块大小16B。读主存ABH的过程(假设Cache空白) 主存划分格式 (1) 求主存地址 主存地址:32位
(2) 主存 块地址 块大小
,又是按字节编址的,所以块内地址:4位 (3) Cache Cache分为:
行(块) Cache行地址: 15位 高位标记: 32-15-4=13位 标记 Cache行(块)地址 块内地址标记 tag行地址 index块内地址13位15位4位0010 0011 0100 0101 1000 1001 [全相联映射] 是多对多的映射关系,对于主存的任何一块均可以映射到Cache的任何一行。 优点:机制灵活,命中率高。 缺点:比较器电路难于设计和实现,因此只适合于小容量的Cache。
全相联映射 举例: 主存4GB (按字节编址), Cache 512KB,块大小16B。 读主存ABH的过程(假设Cache空白) 主存划分格式 AB H : 0010 0011 0100 0101 1000 1001 1010 1011 主存地址: 32位 4GB 的大小 块大小
,又是按字节编址的,所以块内地址:4位 主存大小-> 块内地址 -> 高位标记 tag 高位标记:32-4=28位标记块内地址28 位4位0010 0011 0100 0101 1000 1001 [组相联映射] (这里是对Cache 分组,且主存也进行分组) 特点:将Cache的行分成
组,每组
行。 主存的字块存放到Cache中的固定组,至于映射到该组哪一行是灵活的,即有如下函数关系: 主存的第 i 块映射到Cache的第 j 行
其中
优点:大大增加了映射的灵活性,主存中一块可映射到Cache的
块,提高了命中率。 每次比较只是进行
路比较,r较小时,硬件开销不是很大。 组相联映像通常采用2路、4路和8路比较,即取r=1 r=2 r=3
组相联映射 主存4GB(按字节编址),Cache 512KB,块大小16B。 主存 : 32 位地址 Cache : 9 位 块大小 :
块内地址 4 位 Cache 分为 : 512KB / 16B 即 10+(9-4) =15 行 4行/组 ,cache 分为 :
即
组 4路组相联,读主存ABH的过程(假设Cache 空白)。 主存划分格式 主存地址:32位 块大小
,又是按字节编址的,故块内地址:4位 Cache分为:512KB / 16B=
行(块) 4路组相联,即4块/组,Cache分为:
组 Cache组地址:13位 高位标记: 32-13-4=15位标记Cache 组地址块内地址32-13-4=15 位13 位4 位0010_0011_0100_0101_1000_1001_ 主存地址被划分为 高位标记(tag)+Cache组地址(index)+块内地址(offset)。 考点22 指令系统(整本书核心中的核心) 机器指令:能被计算机硬件识别并执行的0、1代码串。 指令系统:一台计算机中所有机器指令的集合,体现计算机的功能。 普林斯顿结构(冯诺伊曼结构):数据和指令存放在同一个存储器中存储器存储空间利用率高统一的访问接口 哈佛结构:数据和指令存放在不同存储器存储访问效率高有利于流水线执行 条指令须包含的信息 一条指令必须明显或隐含地包含:操作码: 指定操作类型 (操作码长度:固定/可变)源操作数地址: 一个或多个源操作数所在的地址 (操作数来源:主(虚)存/寄存器/I 0端口/指令本身)结果值地址: 产生的结果存放何处 (结果地址:主(虚)存/寄存器/I 0端口)下一条指令地址: 下条指令存放何处 (下条指令地址:主(虚)存) (正常情况隐含在PC中,改变顺序时由指令给出)
指令的构成对于寄存器类型的操作数,地址A指寄存器编号(编号)对于存储器类型的操作数,地址A指存储器单的地址或计算地址的索引(地址)对于立即数类型的操作数,地址A就是立即数本身(本身)
三地址指令
二地址指令
单地址指令
零地址指令 机器指令是用二进制机器字来表示的,表示一条指令的机器字,就称为指令字。 一条指令中所包含的二进制码的位数称为指令字长,不同机器的指令字长不相同。 按指令长度固定与否可以分为:固定指令字长的指令:所有指令的字长均相等般等于机器字长。可变指令字长的指令:指令字长不固定,通常取字节的整数倍。短格式指令:指令字长小于或等于机器字长。长格式指令:指令字长大于机器字长。 指令操作码的扩展 是一种重要的指令优化技术不同地址数的指令可以具有不同长度的操作码能够增加指令字所能表示的操作信息使用频度高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码 举例:
举例 4位操作码,15条三地址指令 8位操作码,15条二地址指令 12位操作码,15条一地址指令 16位操作码,16条零地址指令 寻址方式 (必须掌握) 形式地址:指的是指令的地址码字段A,通常不代表操作数的真实地址 有效地址:指操作数在存储器中的真实地址,记作EA它是由寻址方式和形式地址共同来确定的立即数寻址:Immediate Addressing 操作数在指令的地址码字段 (Data=A)
立即数寻址 取出指令,就立即得到了操作数 直接寻址 Direct Addressing 操作数位于存储器中,操作数所在的存储器单的地址存放在指令的地址字段A中,即 DATA=(EA) EA=A 取出指令,EA,还需要访问主存1次,才可以操作数。
直接寻址 间接寻址 (Indirect Addressing) 操作数位于存储器中,操作数所在的存储器单地址也存放在存储器中,该存储器地址 则存放在指令的地址字段中 DATA=(EA) EA=(A)
间接寻址 取出指令,就得到了EA在主存的地址,还需访问主存2次,才能得到操作数。 直接寻址和间接寻址的比较:
寄存器寻址方式 操作数位于寄存器中,操作数所在的寄存器编号存放在指令的地址字段A中 DATA=(
)
寄存器寻址方式寄存器间接寻址方式 操作数位于存储器中,操作数所在的存储器地址存放在寄存器中, 而该寄存器编号存放在指令的地址字段A中 DATA=(EA) EA=(
)
寄存器间接寻址 两者的比较:
两种寄存器寻址的比较变址寻址 (Indexed Addressing) 操作数位于存储器中,操作数所在的存储器地址EA由变址寄存器RI和指令的地址字段A指出。
变址寻址 变址寻址通常用来对字符串处理,数组运算等成组数据处理 数组运算中,数组首地址(第0个素地址)作为指令的地址码,变址寄存器内容则为素的序号(下标)。基址寻址 (Based Addressing) 操作数位于存储器中,操作数所在的存储器地址EA由基址寄存器Rb和指令的地址字段A指出
基址寻址基址变址寻址 在指令中指定一个基址寄存器和一个变址寄存器,指令中的地址码给出位移量。 有效地址是由基址寄存器中的值、变址寄存器中的值和位移量三者相加而成。
基址变址寻址 相对寻址 (Relative Addressing) 操作数位于存储器中,操作数所在的存储器地址EA由程序计数器PC和指令的地址字段A指出 DATA=(EA) EA=(PC)+A // A 又被称为相对偏移量 DISP主要用于转移指令,指令执行之后,程序将转移到(PC)+偏移量为地址的指令去执行相对转移是以下一条指令地址为基准的偏移量可正、可负,通常用补码表示,可相对PC值向后或向前转移相对导址实现了程序的浮动存储
相对寻址堆栈寻址 (Stack Addressing) 操作数位于存储器中,操作数所在的存储器存储器地址EA由堆栈指针寄存器SP隐含指出,通常用于堆栈指令 DATA=(EA) EA=(SP)
堆栈寻址(上推堆栈) 栈底:第1个放入堆栈的数据所存放的单,栈底是固定不变的。 栈顶:最近放入的数据所存放的单栈顶是随着数据的入栈和出栈在时刻变化栈顶的地址由堆栈指针SP指明堆栈寻址主要用来暂存中断和子程序调用时现数据及返回地址 一般计算机中,堆栈从高地址低地址扩展栈底的地址总是大于或等于栈顶的地址,称为上推堆栈也有少数计算机相反,称为下推堆栈 堆栈指针的管理SP总是指向最后压入的有效数据SP总是指向栈顶的空单 两种操作: 压入,PUSH指令,数据存入堆栈 弹出,POP指令,从堆栈取出数据 堆栈可分为两种:向上生长:(下推堆栈)向高地址方向生长,称为递增堆栈向下生长:(上推堆栈)向低地址方向生长,称为递减堆栈 栈指针指向最后压入的有效数据项,称为满堆栈准(非空位置) 栈指针指向下一个要放入的空位置,称为空堆栈(空位置) 更多408选择题,可看: http://t.csdnimg.cn/MP3XF
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/65365.html