首页 > 其他分享 >计算机组成原理—存储器

计算机组成原理—存储器

时间:2023-04-16 16:13:51浏览次数:40  
标签:缓存 计算机 存储器 扩展 主存 地址 刷新 原理

计算机组成原理—硬件结构

二、存储器

1.概述

存储器是计算机系统中的记忆设备,用来存放程序和数据

1.1存储器的层次结构

image

image

缓存-主存层次主要解决CPU和主存速度不匹配的问题,速度接近缓存

主存-辅存层次主要解决存储系统的容量问题,容量接近与价位接近于主存

2.主存储器

2.1概述

主存与CPU的联系

image

  • 主存中存储单元地址的分配

主存各存储单元的空间是由单元地址号来表示。

字地址使用该地址高位字节的地址来表示,其字地址是4的整数倍,正好用地址码的末两位来区别

image

高地址存高位数据

低地址存低位数据


设地址线24位

若字长8位,按字节寻址的范围是16M(2的24次方)

若字长16位,按字节寻址的范围是8M

若字32位,按字节寻址的范围是4M


  • 主存的计数指标

主要指标是存储容量和存储速度

存储容量:存储单元个数*存储字长(注意单位,是否除以8)

存储速度,分为存取时间和存取周期

存储器带宽:频率*位数(1ns = 1MHz)

3.半导体存储芯片

3.1基本结构

image

3.2译码驱动方式

  • 线选法:在矩阵中每次选一行
  • 重合法:在矩阵中利用X/Y地址译码器找到1位

4.随机存取器

4.1静态RAM(SRAM)

静态RAM是用触发器工作原理存储信息的,存储信息会保持原状态,不需要再生

4.1.1SRAM单元电路

image

4.SRAM的举例

以Intel 2144为例,1k*4(10根地址线,4根数据线)

其内部存储矩阵如下图所示

image

此结构将列分为4个组,每组16列,存取时,正好在每组拿一列,4位输出/输入

4.2动态RAM(DRAM)

常见的动态RAM的基本单元电路有三管式和但管式两种,都是靠电容存储电荷原理来寄存信息。需要刷新,一般间隔2ms(一次存取)

4.2.1三管式

单元电路

image

其中的存储的0/1与原存信息是相反的

1k*1结构示意图

image

4.2.2单管式

单元电路

image

16k*1结构示意图
image

注:此时用了地址线的复用,先行地址,在列地址

4.3刷新

刷新是一行一行的刷新

4.3.1集中刷新

在2ms内选一个时间段进行刷新,会存在"死区"(不能进行任何操作)

4.3.2分散刷新

每行都进行一次集中刷新,无"死区",但会使存取周期变长

4.3.3异步刷新

将上述两种方法结合,在2ms内寻找完成每一行刷新需要的时间间隔,在这个间隔内做一次集中刷新

4.3.4指令译码阶段刷新

不会出现"死区"

4.4静态和动态的比较
动态RAM 静态RAM
集成度
封装性
功耗
价格
速度
刷新 需要 不需要

5.存储器与CPU的连接

5.1存储容量的扩展

  • 位扩展

位扩展是指增加字长,eg:1k * 4的芯片可以变成1k * 8的

image

  • 字扩展

字扩展是指增加存储器字的数量,eg:1k * 8的芯片可以变成2k * 8的

image

  • 字,位扩展

将上面两种扩展结合

5.2存储器和CPU的连接

  • 选择合适的芯片(种类,个数)
  • 数据线
  • 地址线
  • 控制线
  • 片选信号:位扩展:串联(一起选用);字扩展:互斥(只用一个)
5.2.1数据线(2个为例)
  • 位扩展:一个芯片连高位,一个芯片连接低位
  • 字扩展:对应相连即可

image

5.2.2地址线
  • 位扩展:对应相连即可
  • 字扩展:先连低位,如有剩余,则连片选等

image

5.2.3控制
  • 若只有一个读写,则连接MAR
5.2.4片选信号

基本思想:位扩展:串联(一起选用);字扩展:互斥(只用一个)

6.存储器地校验

6.1汉明码地组成

汉明码具有一位纠错能力,默认偶检验(可以改为奇检验)

汉明码 = 信息码 + 校验码

设信息码个数为n,校验码地个数为k,则要满足n + k <= 2^k - 1

image

  • 校验码的存放位置

从低到高位依次为,2^k(k从零开始...)

  • 校验码0/1的选择

若是偶检验,使该位与其校验位的1的个数为偶数;奇检验反之

  • 判断与之对应的校验位

将所有位数的二进制写出,位数由校验码的个数而定,将1作为对应的标准


eg:4位信息码,3位校验码

image

C是校验码,b是信息码

C1的校验位:3、5、7、(9)

C2的校验位:3、6、7、(10)

C3的校验位:5、6、7

(C4的校验位:9、10)


6.2纠错过程

由上述的规则来判断是哪一位的0/1出错

注:有的位置被多个校验码校验,注意检查

7.提高访存速度的措施

7.1单体多字系统

如下图,可以使主存宽带提高4倍,提高了单体存储器的工作速度

image

7.2多体并行系统

  • 高位交叉编址的多体存储器

image

  • 低位交叉编址的多体存储器

image

若存期周期位T,总线传输速率为r

低位:t = T + (n-1) * r

高位:t = n * T

8.高速缓存存储器

8.1概述

image

Cache-主存存储空间的基本结构

CPU读取主存某字时,有命中和不命中两种

  • 命中:主存块已调入缓存块
  • 不命中:欲访问的主存块没有调入缓存块

有关命中率的计算

命中率 = 命中次数/总访问次数

平均访问时间 = 命中率 * 访问Cache的时间 + 未命中率 * 访问主存的时间

访问效率 = 访问Cache的时间 / 平均访问时间 * 100%

8.2Cache-主存地址映射

计算主存地址时,从右往左算(2的多少次方)

  • 直接映射

每个主存块只与一个缓存块对应

image

字块内地址:判断字字块的存错单元的个数

Cache字块地址:判断Cache的块数

主存块标记:判断主存的块数,并减去上述两个位数的和

  • 全相联映射

每个主存块与任意缓存块对应

image

字块内地址:判断字字块的存错单元的个数

主存块标记:判断主存的块数,并减去上述位数

  • 组相联映射

主存块只与一个缓存组对应,每个主存块与对应缓存组的任意缓存块对应

image

字块内地址:判断字字块的存错单元的个数

组地址:判断Cache的组数

主存块标记:判断主存的块数,并减去上述两个位数的和

标签:缓存,计算机,存储器,扩展,主存,地址,刷新,原理
From: https://www.cnblogs.com/wht-de-bk/p/17323404.html

相关文章

  • 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序怎么办
    去微软官网下载DownloadMicrosoftAccess2010数据库引擎可再发行程序包fromOfficialMicrosoftDownloadCenter下载地址32位下载链接分享链接:https://pan.baidu.com/s/1dLXgBZVUV8_sHBc1dnVfGA?pwd=nvll提取码:nvll--来自百度网盘超级会员V1的分享 64位下载链接分......
  • 【408】计算机统考科目知识整理
    目录一、计算机组成原理&计算机操作系统编码处理器存储总线&I/O进程文件二、数据结构数组&链表栈&队列&矩阵树图查找排序三、算法设计模拟枚举分治搜索(BFS、DFS)动态规划(DP)四、计算机网络物理层数据链路层网络层传输层应用层一、计算机组成原理&计算机操作系统计组......
  • git合并代码原理
    背景:最近在做体测,当我将prod-wmj合并到我新建的test-physical分支上的时候,出现超出我认知范围的现象,所以我认为git的原理我们没有搞懂,还要搞搞。merge的时候红色部分并不是我理解的目标分支的代码,那就让我们来想想吧~操作:1、首先提出来问题,代码更改有几种形式?git又是怎么做的?如果你......
  • 预训练模型-从BERT原理到BERT调包和微调
     一、BERT原理BERT取名来自BidirectionalEncoderRepresentationsfromTransformers。架构为:预训练+fine-tuning(对于特定的任务只需要添加一个输出层)。1、引言      通过预训练语言模型可显著提高NLP下游任务。限制模型潜力的主要原因在于现有模型使用的都是单......
  • JUC之阻塞队列BlockingQueue的实现原理
    1.阻塞队列首先它是一个队列,是队列就会遵循先进先出(FIFO)的原则,又因为它是阻塞的,故与普通的队列有两点区别:A.当一个线程向队列里面添加数据时,如果队列是满的,那么将阻塞该线程,暂停添加数据。B.当一个线程从队列里面取出数据时,如果队列是空的,那么将阻塞该线程,暂停取出数据。2......
  • Linux内核Socket通信原理和实例讲解
    关于对Socket的认识,大致分为下面几个主题,Socket是什么,Socket是如何创建的,Socket是如何连接并收发数据的,Socket套接字的删除等。Socket是什么以及创建过程一个数据包经由应用程序产生,进入到协议栈中进行各种报文头的包装,然后操作系统调用网卡驱动程序指挥硬件,把数据发送到......
  • 深入理解 python 虚拟机:字节码教程(3)——深入剖析循环实现原理
    深入理解python虚拟机:字节码教程(3)——深入剖析循环实现原理在本篇文章当中主要给大家介绍cpython当中跟循环相关的字节码,这部分字节码相比起其他字节码来说相对复杂一点,通过分析这部分字节码我们对程序的执行过程将会有更加深刻的理解。循环普通for循环实现原理我们使......
  • 集成电路IC(4Gbit)IS46TR16256BL-125KBLA1动态随机存取存储器
    IS46TR16256BL-125KBLA14GBitDDR3SDRAM提供紧凑型BGA-96封装的高速SDRAM。IS46TR16256BL具有256Mx16结构,电源电压为1.45V或1.3V,最大时钟频率为800MHz。该SDRAM具有8个内部银行并发操作和8nBit预取架构。IS46TR16256BL是电信和网络、汽车和工业嵌入式计算的理想选择。应用汽车;......
  • 计算机基础和linux安装及帮助
    一、按系列罗列linux的发行版,并描述不同发行版之间的联系与区别   Linux可以分为两种版本:    1、商业版:最常见的如Redhat和centos,是属于商业公司维护的发行版本,其中很多软件都是需要收费的。Redhat系统是属于免费的,服务软件是需要收费的。其中Redhat和Centos内核相......
  • Hashmap实现原理
     HashMap线程不安全loadFacter负载因子,默认值为0.75threshold=数组长度*负载因子loadFactorHashMap默认容量initial_capacity:16HashMap数组部分称为哈希桶当链表长度大于等于8时,链表数据将以红黑树的形式进行存储,当长度降到6时,转成链表输入数据计算方法hash(key......