1 存储系统
存储系统在计算机系统中的地位非常重要 一般有 Cache和主存组成
Cache
由于在CPU和存储系统间存在数据传送带宽的限制,因此在其中设置了Cache(高速缓冲存储器) 提高效率,但是由于成本更高,所以cache的容量一般要比内存小的多。
(1) Cache 原理 将某一段时间内执行的语句集中于某个局部(局部性原理),Cache将访问集中的内容集中在Cache上,在CPU需要数据时,先找Cache,如果没有 再去寻找内存。
如果Cache的访问命中率为h(失效率为1-h)而Cache的访问周期时间t1,主存储器的访问周期t2,则整个系统的平均访问时间为 t3=h*t1+(1-h)*t2
(2) Cache的映射机制: 当CPU发生访问请求时,会先判断Cache中是否包括,这个判断的过程就是Cache的地址映射,常见的映射方法有:
- 直接映射 多对一 一个主存块只能够复杂到Cache的一个特定位置上。Cache的行号i和主存的块号有函数i=j%m(m为Cache的总行数)
- 全相联映射 将主存中一个块的地址与块的内容一起存于Cache的行中,速度更快,但控制较为复杂
- 组相联映射 前两者的折中方案,先将Cache中的块分成组,然后通过直接映射的方式决定组号,再通过相联映射的方式决定Cache的块号
(3) Cache淘汰算法 常见的有随机淘汰 先进先出(FIFO)淘汰、最近最少使用淘汰法
(4) Cache存储器的写操作 常使用的方法有 写直达 (写Cache的同时写主存)、写回(写Cache时不立即写主存,而是登淘汰时再写回主存)、标记法。
主存(内存)
(1) 主存储器的种类
- RAM:随机存储器 可读写 断电后无法保存,只能暂存数据
- SRAM:静态随机存储器,在不断电是信息能够一直保持
- DRAM :动态随机存储器,需要定时刷新以维持信息不丢失
- ROM :只读存储器,出厂前用掩膜技术写入,常用于存放BIOS和微程序控制
- 闪速存储器:U盘使用类型,可快速写入
EROM、EPROM、PROM
A 即 Access 可读写,O Only 只读、P Programmable,特殊电子设备写入,E Erasable 可擦写 E平方 说明两个E 第二个表示电子
(2)主存储器通常是由一片或多篇存储器配以控制电路构成的。容量为W*B W为存储单位的数量 B为每个word由多少bit组成
(3) 主存储器的编码地址 编制的基础是字节 也可以是字(字是由一个或多个字节组成的)
技术地址位数 首先需要技术编址的字或字节数 然后对2取对数即可
2 可靠性与系统性能测评
(1)可靠性计算
可靠性计算主要涉及3种系统,串联、并联、冗余系统
串联系统的可靠性为每个子系统可靠性的乘积 失效率为各个子系统失效率之和
并联系统 若每个子系统分别用R1 R2 .。。Rn表示 则可靠性为 R=1-(1-R1)*(1-R2)*。。。*(1-Rn)
在并联系统种只有一个子系统是真正需要的,其余n-1个子系统都被称为冗余子系统, 冗余子系统数量越多 无故障时间也会增加
模冗余系统
由m(m=2n+1 为奇数)个相同的子系统和一个表决权组成,经过表决器后,m给子系统中占多数的相同结果可作为系统的输出
(2) 性能性评价
常用方法有
- 时钟频率 即主频 仅可以毕竟相同体系系统结构的机器 主频越高速度就越快
- 指令执行速度 每秒的执行的加法指令速度 单位为KIPS(每秒千条指令) 单位为MIPS(每秒百万条指令)
- 等效指令法:由于单种指令的MIPS值的局限性出现的的吉普森混合指令速度法。即 通过统计各类指令在程序中所占比例进行计算
- 数据处理速率(PDR)法: 采用固定的比例来计算数据处理的速度,同时还仅对CPU和主存的速度进行测量,因此局限性较大
- 核心程序法:把应用程序中用的最频繁的那部分核心程序作为评价计算机性能的标准程序,在不同的机器上运行,测其执行时间,作为评价依据。
目前一致承认的测试性能较好的方法是 基准测试程序,它有多种不同的基准程序用于不同的测试项目。
- 正数测试程序:Dhrystone 是用一个来测试编译器和CPU处理整数指令和控制有效性的基准测试程序。
- 浮点测试程序:在计算机科学和工程应用领域,浮点计算工作量较大,因此有许多此类的基准测试程序:
- =>理论峰值浮点速度:MELOPS,与处理器时钟周期,并行流水线功能部件数相关,是直接计算出的理论值。
- =>Linpack 基础测试程序:综合性测试程序,除浮点操作外,还测试整个计算机和功能调用登性能
- SPEC基准程序:是由几十家世界知名计算机大厂商支持的非营利的合作组织开发认可的标准基准程序
- TPC基准程序:是事务处理委员会编写的基准程序,共包括 TPC-A、TPC-B、TPC-C、TPC-D和TPC-E5种,每一种都有特定的适用范围。
(3) 校验码
为实现数据的自动验错和纠错,引入的校验码。最简单的是奇偶校验码,根据信息码中1的个数来决定校验位的取值,使得填入校验位后,1的个数为奇数(奇校验)或偶数(偶校验)。
- 海明码距 可以在数据代码上添加若干冗余位组成的码字,而将一个码字变成另一个码字时必须改变的最小位数就是码字直接的海明码距,简称 :码距 通过码距可以得出
- =>可查出多少位错误:发现“码距小于等于-1”位的错误
- =>可以纠正多少位的错误 纠正 “小于码距/2”位的错误 如果要纠正n位错,则所需最小的码距应是“2n+1”
- 海明校验码 具体校验规则可查看 https://blog.csdn.net/jiadajing267/article/details/52949441
- CRC校验码 用于计算机网络上的差错控制
- CRC校验码计算 根据原始报文生成的多项式推出被除数,在原始报文后面添加若干0(等于校验码的位数)然后除以生成的被除数得到的余数即为校验码,添加到原始报文后面即可
- CRC错误检查 将需要检查的信息码除以生成多项式,可以整除说明没有问题,否则就是出错了,当CRC检查出错误时,不进行纠错,而是让信息发送方重新发送