导读:计算机组成原理—硬件结构.二、存储器.1.概述.存储器是计算机系统中的记忆设备,用来存放程序和数据.1.1存储器的层次结构.缓存-主存层次主要解决CPU和主存速度 不匹配的问题,速度接近缓存.主存-辅存层次主要解决存储系统的容量 问题,容量接近与价位接近于辅存.2.主存储器.2.
存储器是计算机系统中的记忆设备,用来存放程序和数据
缓存-主存层次主要解决CPU和主存速度 不匹配的问题,速度接近缓存
主存-辅存层次主要解决存储系统的容量 问题,容量接近与价位接近于辅存
主存与CPU的联系
主存各存储单元的空间是由单元地址号来表示。
字地址使用该地址高位字节的地址来表示,其字地址是4的整数倍,正好用地址码的末两位来区别
高地址存高位数据
低地址存低位数据
设地址线24位
若字长8位,按字节寻址的范围是16M(2的24次方)
若字长16位,按字节寻址的范围是8M
若字32位,按字节寻址的范围是4M
主要指标是存储容量和存储速度
存储容量:存储单元个数*存储字长(注意单位,是否除以8)
存储速度,分为存取时间和存取周期
存储器带宽:频率*位数(1us = 1MHz)
静态RAM是用触发器工作原理存储信息的,存储信息会保持原状态,不需要再生
以Intel 2144为例,1k*4(10根地址线,4根数据线)
其内部存储矩阵如下图所示
此结构将列分为4个组,每组16列,存取时,正好在每组拿一列,4位输出/输入
常见的动态RAM的基本单元电路有三管式和但管式两种,都是靠电容 存储电荷原理来寄存信息。需要刷新 ,一般间隔2ms(一次存取)
单元电路
其中的存储的0/1与原存信息是相反的
1k*1结构示意图
单元电路
16k*1结构示意图
注:此时用了地址线的复用,先行地址,在列地址
刷新是一行一行 的刷新
在2ms内选一个时间段进行刷新,会存在”死区”(不能进行任何操作)
每行都进行一次集中刷新,无”死区”,但会使存取周期变长
将上述两种方法结合,在2ms内寻找完成每一行刷新需要的时间间隔,在这个间隔内做一次集中刷新
不会出现”死区”
| 动态RAM | 静态RAM
集成度 | 高 | 低 |
封装性 | 低 | 高 |
功耗 | 低 | 高 |
价格 | 低 | 高 |
速度 | 低 | 高 |
刷新 | 需要 | 不需要 |
位扩展是指增加字长,eg:1k * 4的芯片可以变成1k * 8的
字扩展是指增加存储器字的数量,eg:1k * 8的芯片可以变成2k * 8的
将上面两种扩展结合
基本思想:位扩展:串联(一起选用);字扩展:互斥(只用一个)
汉明码具有一位纠错能力,默认偶检验(可以改为奇检验)
汉明码 = 信息码 + 校验码
设信息码个数为n,校验码地个数为k,则要满足n + k <= 2^k - 1
从低到高位依次为,2^k(k从零开始…)
若是偶检验,使该位与其校验位的1的个数为偶数;奇检验反之
将所有位数的二进制写出,位数由校验码的个数而定,将1作为对应的标准
eg:4位信息码,3位校验码
C是校验码,b是信息码
C1的校验位:3、5、7、(9)
C2的校验位:3、6、7、(10)
C3的校验位:5、6、7
(C4的校验位:9、10)
由上述的规则来判断是哪一位的0/1出错
注:有的位置被多个校验码校验,注意检查
如下图,可以使主存宽带提高4倍,提高了单体存储器的工作速度
若存期周期位T,总线传输速率为r
低位:t = T + (n-1) * r
高位:t = n * T
Cache-主存存储空间的基本结构
CPU读取主存某字时,有命中和不命中两种
有关命中率 的计算
命中率 = 命中次数/总访问次数
平均访问时间 = 命中率 * 访问Cache的时间 + 未命中率 * 访问主存的时间
访问效率 = 访问Cache的时间 / 平均访问时间 * 100%
计算主存地址时,从右往左算(2的多少次方)
每个主存块只与一个缓存块对应
字块内地址:判断字字块的存错单元的个数
Cache字块地址:判断Cache的块数
主存块标记:判断主存的块数,并减去上述两个位数的和
每个主存块与任意缓存块对应
字块内地址:判断字字块的存错单元的个数
主存块标记:判断主存的块数,并减去上述位数
主存块只与一个缓存组对应,每个主存块与对应缓存组的任意缓存块对应
字块内地址:判断字字块的存错单元的个数
组地址:判断Cache的组数
主存块标记:判断主存的块数,并减去上述两个位数的和
上一篇:读发布!设计与部署稳定的分布式系
下一篇:大厂标配的Redis,很多人却不