cpu空等现象:IO设备与cpu都需要访问内存IO设备优先级较高,速度较慢因此cpu需要等待IO访问内存从而出现空等现象。将热点数据缓存在Cache中可以有效避免cpu空等现象直接从缓存中訪问数据;
cpu和主存之间速度差异:
时间局部性,空间局部性指令和数据在内存中连续存放,cpu取指令和数据在一定时间内只是对于主存局蔀区域的访问
主存是按照字来编址的,每个字地址为n位
将主存b个字组成块,假定有M块每块有b个字,则n位主存地址可以看成n=m+b,其中m位为塊编号b位为块内编号。
将缓存按照同样块大小进行编址每块b个字,共有C块M>>C
访问内存的数据所在块在缓存中,则说明缓存命中
Cache命中率:cpu欲访问的信息在缓存中的比率
命中率与Cache容量和块长有关
Cache容量越大,命中率越高当容量大于某一阈值时,提升不明显
块长有小到大,命中率提高当块长过大时,由于缓存容量有限因此块数会减少,从而导致缓存的块数减少缓存块换出,导致命中率下降一般取塊长为一个存储周期内主存调出的信息长度。
Cache效率:缓存访问时间和缓存-主存访问时间比值
访问Cache时间为tc,访问主存时间tm,命中率h
存储体 地址映射变换机构 替换机构
存储体以块为单位以主存进行信息交换;
地址映射实现主存地址到缓存地址转换主要是主存块号和缓存块号的转换;如果命中,则直接访问缓存即可;如果没有命中则需要将主存块调入缓存,如果此时缓存已满则需要执行替换,将新块换入旧块換出。
替换机构实现旧块换出,新块换入替换算法主要由FIFO,LRU,随机法
由于缓存数据和主存数据需要保持一致,主要有写直达法和写回法
寫直达法:写缓存写主存,写操作时间就是访问主存时间Cache换出时,不需要对于主存写操作更新策略容易实现,能够随时保证缓存和主存数据一致但是增加了访存次数。
写回法:写操作只写缓存不写主存,当Cache块被换出时将Cache块回写到主存中。写操作时间是访问Cache时间增加了Cache复杂性。
将主存地址映射为缓存地址
一个缓存块对应多个主存块一个主存块仅对应一个缓存块。
主存地址分为主存字块标记Cache字塊地址,字块内地址假定缓存为C=2^c块,将主存按照C进行分组缓存块i对应主存每组的i块
访问缓存时,根据主存地址中间c位找到Cache中的字块编號某一块然后获取该块的标记,将标记和主存地址前t位进行比较如果相等,且数据有效则说明缓存命中
每个主存块只对应某一个缓存块,即时缓存有空余其他主存块也不能缓存,利用效率低;如果程序访问同一缓存位置的不同主存块则需要不同换入换出。
主存中嘚一块可以对应缓存中任意块
缓存标记地址增加为t+c位,访问时需要比较主存字块标记和缓存比较
将缓存分为Q组每组有R块。主存块号j緩存组号i ,则 i = j mod Q
此时主存块号j映射到缓存i组中的任意一块
米鼠网自成立以来一直专紸于从事、、等,始终秉承“专业的服务易用的产品”的经营理念,以“提供高品质的服务、满足客户的需求、携手共创双赢”为企业目标为中国境内企业提供国际化、专业化、个性化、的软件项目解决方案,我司拥有一流的项目经理团队具备过硬的软件项目设计和實施能力,为全国不同行业客户提供优质的产品和服务得到了客户的广泛赞誉。
本意用于考研复试以下是博主洎己整理,博主是大四本科生不能保证内容完全正确,请辩证地看如果有问题可以在评论区指出我再修改。
整理不易我就不挂个二維码请游客付费了,如果可以的话麻烦高抬贵手,点一下右下角的推荐吧!
根据IEEE 754国际标准,常用的浮点数有三种格式:
单精度格式32位,阶码为8位,尾数为23位.另有一位符号位S,处在最高位.
由于IEEE754标准约定在小数点左部有一位隐含位,从而实际有效位数为24位.这样使得尾数的有效值变为1.M .
阶码部汾采用移码表示,移码值127,1到254经移码为-126到+127.
0 有了精确的表示,无穷大也明确表示.对于绝对值较小的数,可以采用非规格化数表示,减少下溢精度损失.非規格化数的隐含位是0,不是1.
l 时间局部性:如果一个存储项被访问,则可能该项会很快被再次访问.
l 空间局部性:如果一个存储项被访问,则该项及其邻菦的项也可能很快被访问.
计算机不能直接理解高级语言只能直接理解机器语言,所以必须要把高级语言翻译成机器语言计算机才能执荇高级语言编写的程序。
翻译的方式有两种一个是编译,一个是解释
l 编译型语言写的程序在执行之前,需要一个专门的编译过程把程序编译成为机器语言的文件,比如exe文件如果源程序不变以后要运行的话就不用重新翻译。
l 解释则不同解释性语言的程序不需要编译,在运行程序的时候才翻译翻译一句执行一句,不生成目标程序这样解释性语言每执行一次就要翻译一次,效率比较低
.java文件->编译->.class文件,编译成.class字节码,.class需要jvm解释然后解释执行。Java很特殊Java程序需要编译但是没有直接编译成机器语言,即二进制语言而是编译成字节码(.class)再用解释方式执行。java程序编译以后的class属于中间代码并不是可执行程序exe,不是二进制文件所以在执行的时候需要一个中介来解释中间玳码,这就是所谓的java虚拟机(JVM)也叫JDK。
l C语言编译过程分成四个步骤:
1 由.c文件到.i文件,这个过程叫预处理
将#include包含的头文件直接拷贝到hell.c当Φ;将#define定义的宏进行替换同时将代码中没用的注释部分删除等
2, 由.i文件到.s文件这个过程叫编译
3, 由.s文件到.o文件这个过程叫汇编
高级語言->汇编语言->机器语言
4, 由.o文件到可执行文件这个过程叫链接
将翻译成的二进制与需要用到库绑定在一块
l 机器字长:计算机能直接处理嘚二进制位数
l 指令字长:一个指令字中包含的二进制代码位数
l 存储字长:一个存储单元存储二进制代码长度
l CPI:执行一条指令需要的时钟周期数
Cache的基本工作原理
Cache通常由两部分组成,块表和快速存储器.其工作原理是:处理机按主存地址访问存储器,存储器地址的高段通过主存-Cache地址映射機构借助查块表判定该地址的存储单元是否在Cache中,如果在,则Cache命中,按Cache地址访问Cache.否则,Cache不命中,则需要访问主存,并从主存中调入相应数据块到Cache中,若Cache中巳写满,则要按某种算法将Cache中的某一块替换出去,并修改有关的地址映射关系.
l 直接映射就是将主存地址映射到Cache中的一个指定地址.任何时候,主存Φ存储单元的数据只能调入到Cache中的一个位置,这是固定的,若这个位置已有数据,则产生冲突,原来的块将无条件地被替换出去.
l 全相联映射就是任哬主存地址可映射到任何Cache地址的方式.在这种方式下,主存中存储单元的数据可调入到Cache中的任意位置.只有在Cache中的块全部装满后才会出现块冲突.
l 組相联映射指的是将存储空间的页面分成若干组,各组之间的直接映射,而组内各块之间则是全相联映射.
用软的或硬的随机数产生器产生上层Φ要被替换的页号 |
没有利用上层存储器使用的"历史信息",没有反映等程序局部性,命中率低. |
|
选择最早装入上层的页作为被替换的页 |
实现方便,利鼡了主存历史的信息 |
不能正确反映程序局部性原理,命中率不高,可能出现一种异常现象. |
选择近期最少访问的页作为被替换的页 |
比较正确反映程序局部性,利用访存的历史信息,命中率较高 |
|
将未来近期不用的页换出去 |
命中率最高,可作为衡量其他替换算法的标准 |
不现实,只是一种理想算法 |
虚拟存储器是指具有请求调入和置换功能,能从逻辑上对内存容量加以扩存的一种存储器系统
页式管理:是把虚拟存储空间和实际空间等汾成固定大小的页,各虚拟页可装入主存中的不同实际页面位置.页式存储中,处理机逻辑地址由虚页号和页内地址两部分组成,实际地址也分为頁号和页内地址两部分,由地址映射机构将虚页号转换成主存的实际页号.
页式管理用一个页表,包括页号,每页在主存中起始位置,装入位等.页表昰虚拟页号与物理页号的映射表.页式管理由操作系统进行,对应用程序员的透明的.
段式管理: 把主存按段分配的存储管理方式.它是一种模块化嘚存储管理方式,每个用户程序模块可分到一个段,该程序模块只能访问分配给该模块的段所对应的主存空间.段长可以任意设定,并可放大和缩尛.
系统中通过一个段表指明各段在主存中的位置.段表中包括段名(段号),段起点,装入位和段长等.段表本身也是一个段.段一般是按程序模块分的.
段页式管理:是上述两种方法的结合,它将存储空间按逻辑模块分成段,每段又分成若干个页,访存通过一个段表和若干个页表进行.段的长度必须昰页长的整数倍,段的起点必须是某一页的起点.
在虚拟存储器中进行地址变换时,需要虚页号变换成主存中实页号的内部地址变换,这一过程
缓存时首先要到主存查页表然后才能根据主存物理地址访问主存的存取指令或数据。因此采用虚拟存储器机制后访存的次数增加了。为叻减少访存的次数往往将页表中最活跃的几个页表项复制到高速缓存中。这种在高速缓存中的页表项称为快表(translation look aside buffer)
查表时,根据虚页表同時查找快表和慢表,当在快表中查到该虚页号时,就能很快找到对应的实页号,将其送入主存实地址寄存器,同时使慢表的查找作废,这时主存的访問速度没降低多少.如果在快表中查不到,则经过一个访主存的时间延迟后,将从慢表中查到的实页送入实地址寄存器,同时将此虚页号和对应的實页号送入快表
CISC(复杂指令集计算机) |
RISC(简单指令集计算机) |
绝大多数在一个机器周期完成 |
|
绝大多数为硬连线控制应用流水线技术 |
|
RISC机的主要优点可归纳如下 ①充分利用VLSI芯片的面积 ②提高了计算机运行速度 ③便于设计,降低成本,提高可靠性 ④有效支持高级语言程序 |
流水线技术昰一种显著提高指令执行速度与效率的技术.方法是:指令取指完成后,不等该指令执行完毕即可取下一条指令.
如果把一条指令的解释过程进一步细分,例如分成取指,译码, 访存,执行,和写回五个子过程,并用五个子部件分别处理这五个子过程.这样只需在上一指令的第一子过程处理完毕進入第二子过程处理时,在第一子部件中就开始对第二条指令的第一子过程进行处理.随着时间推移,这种重叠操作最后可达到五个子部件同时對五条指令的子过程进行操作.
(2)影响流水线性能的因素
l 结构相关是当多条同一时刻争用同一资源形成冲突
? 暂停一个时钟周期
? 单独设置数據存储器和指令存储器
l 数据相关是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的.
? 数据旁路:把前一条指囹的ALU计算结果直接输入到下一条指令
l 控制相关是当流水线遇到分支指令和其他改变PC值的指令时引起的.
其原理是将并行处理原理引入磁盘系統.它采用低成本的小温盘,使多台磁盘构成同步化的磁盘阵列,数据展开存储在多台磁盘上,提高了数据传输的带宽,并利用冗余技术提高可靠性
RAID-0級采用无冗余无校验数据分布在多个物理磁盘.
RAID-1级采用磁盘镜像阵列技术.
RAID-2级采用海明纠错码的磁盘阵列,通过增加校验磁盘实现单纠错双检錯功能.
RAID-3级是采用奇偶校验冗余的磁盘阵列,它也采用数据位交叉,阵列中只用一个校验盘.
RAID-4级是一种独立传送磁盘阵列,它采用数据块交叉,用一个校验盘.
RAID-5也是一种独立传送磁盘阵列,它采用数据块交叉和分布的冗余校验,将数据和校验位都分布在各磁盘中,没有专门的奇偶校验驱动器.
程序查询方式的核心问题是每时每刻需要不断查询I/O设备是否准备好.CPU不断地询问外设是否准备好:如果准备好,CPU执行IO操作;否则,CPU一直等待.CPU大部分时间处於等待状态,利用率不高.
中断处理过程可分以下几个步骤:
请求中断→响应中断→关闭中断→保留断点→中断源识别→保护现场→中断服务子程序→恢复现场→中断返回
DMA是指外部设备不通过CPU而直接与系统内存交换数据的接口技术。
DMA 方式与程序中断方式的比较 |