当前位置: 首页 > ai >正文

计算机组成原理-主存储器

概述

1、主存的基本组成:

2、主存和CPU之间的联系:

3、主存中存储单元地址的分配:

  • 将高位字节的地址作为存储字的地址
  • 将低位字节的地址作为存储字的地址

 

  • 按字寻址:字是由若干个字节组成的单位,一根地址线指向一个字,其中为了定位到字中的字节位置,需要分出地址线用于指向字中的字节具体位置。(如果有4根地址线,按字寻址,字长为16位,16位就是2个字节,所以需要分出一根地址线,剩余三根地址线,能够指向2^3=8个字,对应的内存大小就是8*16b)
  • 按字节寻址:一根地址线表示的状态与一个字节地址相对应,1根地址线对应2个字节地址,也就是2B,16b的内存大小

4、主存的技术指标:

  1. 存储容量:主存存放二进制代码的总位数
  2. 存储速度:存取时间(存储器的访问时间分为读出时间和写入时间),存取周期(连续两次独立的存储器操作所需的最小时间间隔)
  3. 存储器的带宽

半导体芯片简介

半导体存储芯片的基本结构

 

片选线:决定是对哪个存储芯片进行操作,可以用于拓展芯片:对一组芯片同一地址的数据线进行同时访问和操作:

读写控制线:表示对芯片做读操作还是写操作 

半导体存储芯片的译码驱动方式

(1)线选法:

地址译码器:枚举输入线的各种状态,如图输入4根线,能够表示16种状态,输出0-15的地址索引。其中只有一根线表示有效状态

缺点:容量大的芯片经过地址译码器后会产生大量地址线,不利于芯片集成

(2)重合法:

 

随机存取存储器(RAM)

静态RAM(SRAM)

基本电路:

T1~T4是双稳态触发器

动态RAM(DRAM)

基本电路:

用电容Cg是否有电标识0或1

使用动态RAM,地址译码器输出的信号线将会被分成读选择线和写选择线,是之前信号线数量的两倍

动态RAM刷新

因为电容容易漏电,所以要定期对每一行进行刷新;

分为集中刷新(存取周期为0.5微秒,以128*128矩阵举例):

 

在刷新时不能与任何元器件进行通信,被称为死区。

这个集中刷新的死区为 0.5 微妙*128 = 64微妙,死时间率为 128/4000 = 3.2%

分散刷新(存取周期为1微秒,以128*128矩阵举例):

每次读写操作过后立即执行刷新,将芯片读写周期延长为原来的两倍,但是没有死区

分散刷新与集中刷新相结合(异步刷新):

对于128*128,每隔2毫秒/128 = 15.6微秒刷新一行。

对于每行来说,每隔刷新时间2毫秒就会被刷新一次,“死区”为每15.6微妙出现0.5微妙死区

如果将刷新安排在指令译码的阶段,就不会出现死区

只读存储器(ROM)

掩模ROM(MROM)

厂家写了信息在芯片内,用户不可进行修改

行列选择线交叉处有MOS管为“1”

行列选择线交叉处无MOS管为“0”

PROM(一次性编程)

EPROM(多次编程) 

N型沟道浮动栅MOS电路

D端加正电压形成浮动栅,S和D不导通为“0”

D端不加正电压不形成浮动栅,S和D导通为“1”

需要通过照射紫外线擦除编程记录

EEPROM(多次性编程)

电可擦写,局部擦写,全部擦写

FlashMemory(闪速型存储器)

存储器与CPU的连接

存储器容量的扩展

位扩展

eg:用2片1K*4位存储芯片组成1K*8位的存储器

使用同一根片选线链接两个芯片,使两个芯片能够同时工作

字扩展

用2片1K*8位存储芯片组成2K*8位的存储器

 

利用片选线作为芯片的第11根地址线,用于选择对哪个芯片进行操作

字、位扩展

用8片1K*4位存储芯片组成4K*8位的存储器 

CPU与存储器连接

  1. 地址线的连接
  2. 数据线的连接
  3. 读/写命令线的连接
  4. 片选线的连接
  5. 芯片的选择

存储器的校验

合法代码集合

 1、{000,001,010,011,100,101,110,111}完全不能检错和纠错

2、{000,011,101,110}(1的个数必须是偶数),能够检测1位错,不能纠错

3、{000,111}(三倍冗余,用000表示0,111表示1),因为1位错的概率比多位错的概率大很多,所以能检1位错,纠1位错

4、{0000,1111}(四倍冗余)能检2位错,纠1位错

5、{00000,11111}(5倍冗余)能检2位错,纠2位错

编码的最小距离:任意两组合法代码之间二进制位数的最少差异(几倍冗余)

L - 1 = D + C(D>=C)

L-编码的最小距离,D-检测错误位数,C-纠正错误的位数

汉明码

汉明码是一种分组的奇偶校验

基本的分组奇偶校验:

校验位:对应编码范围种1的个数

汉明码的分组是一种非划分方式

第一组:xxxx1

第二组:xxx1x

第三组:xx1xx

第四组:x1xxx

eg:为0101配置偶校验汉明码,需要存储4位,我们可以用3位汉明码校验位来实现,

第一位校验码C1:位置2的0次方:第一位,处理的位置是二进制以1结尾的位置:1,3,5,7

第二位校验码C2:位置2的1次方:第二位,处理的位置是二进制XX1X的位置:2,3,6,7

第三位校验码C3:位置2的2次方:第四位,处理的位置是二进制X1XX的位置:4,5,6,7

将0101放入剩余位置:3,5,6,7

所以C1要使得1,3,5,7位的一的个数为偶数,故为0;C2为1,C3为0

最后的汉明码为0100101

eg:接收到按配偶原则配置的汉明码为0100111尝试纠错

汉明码C1,C2,C3为1,2,4位,为0,1,0

控制位置分别为:1,3,5,7;2,3,6,7;4,5,6,7(原理同上)

所以C1正确,C2错误,C3错误,所以最后结果因为C1是正确的XXX1的位置没错,假设只有一位错误的情况下,导致C2,C3均有错误的只有第6位,所以正确信息可能是0100101

提高访存速度的措施

采用高速器件;采用层次结构Cache—主存;

调整主存结构

单体多字系统

增加存储器的带宽,虽然每个单个存储字中存了多个机器字,单导致这多个机器字需要共同存取,可能导致一系列问题

多体并行系统

高位交叉,顺序编址

将地址的前两位作为存储体的编号,后续地址为存储体内地址,单个存储体由于局部性原理,可能被多次访问,而其他存储体可能在此期间一直处于空闲状态

地位交叉,各个体轮流编址 

 

图片来源于网络 

http://www.xdnf.cn/news/13696.html

相关文章:

  • RedHat主机配置日志留存策略:从4周延长至6个月
  • 预训练模型适应下游任务?模型参数Freezing 与 微调 !
  • 基于Jenkins与Kubernetes的系统化变更管理实践
  • 《前端面试题:call、apply、bind 区别》
  • 1.sql连接语句
  • 软件测试相关问题
  • 柑橘检测模型
  • 直白话 OAuth 2 流程
  • langchain runnables 概念指南
  • 2025年硬件实习/秋招面试准备
  • 小熊派开发板显示图片
  • 机器人导航中的高程图 vs 高度筛选障碍物点云投影 —— 如何高效处理避障问题?
  • Oracle 条件索引 case when 报错解决方案(APP)
  • HTTP 网络协议演进过程
  • 【Docker基础】Docker核心概念:容器(Container)与镜像(Image)的区别与联系
  • Vue3 计算属性 computed
  • 装饰器模式(Decorator Pattern)
  • 【深尚想】M74VHC1GT08DTT1G逻辑芯片安森美ON 工业/物联网首选 电子元器件解析
  • 第29节 Node.js Query Strings
  • Kotlin 中的继承/实现
  • 2025-06-13【api】阿里百炼api调用方法
  • HarmonysOS 模块化设计理念
  • Jsoup解析商品详情时,有哪些常见的标签和属性?
  • 网络安全之CTF专题赛RE题解
  • Python训练营打卡Day49
  • 在QtCreator中使用GitHubCopilot
  • UML和模式应用(软件分析设计与建模期末复习)
  • 华为:eSight网管平台使用snmp纳管交换机
  • 利用Snowflake与SNP Glue揭示数据集成新潜力
  • Ozon欧亚仓网战略解析与中国卖家机遇