PC_DRAM

news2025/8/16 14:47:35

动态 RAM(DRAM)的刷新

  • 刷新的过程实质上是先将原存信息读出,再由刷新放大器形成原信息并重新写入的再生过程

    • 根据这个特点,可以估计刷新电路执行趟耗费的时间大致和访存时间相当

    • 刷新放大器及读放大器均起此作用

    • 由于存储单元被访问是随机的,有可能某些存储单元长期得不到访问,不进行存储器的读/写操作,其存储单元内的原信息将会慢慢消失。

    • 为此,必须采用定时刷新的方法,它规定在一定的时间内,对动态 RAM 的全部基本单元电路必作一次刷新,一般取 2 ms,这个时间称为刷新周期,又称 再生周期

      • 也就是说,每2ms( 2000 μ s 2000\mu{s} 2000μs)的时间间隔内,至少需要完成一次全单元刷新操作
    • 刷新是 一行行进行的

      • 必须在 刷新周期内,由专用的刷新电路来完成 对基本单元电路的逐行刷新,才能 保证动态RAM内的信息不丢失
      • 同一行的所有单元同时执行刷新
      • 不同行之间则是串行进行刷新
      • 如果某个存储芯片有n行,刷新一行耗时和存取周期一致t=0.5us,那么刷新该芯片耗费时间nt
      • 也就是,2ms=2000(us)的时间间隔内,有nt=0.5n(us)的时间用于刷新,还有(2000-0.5n)us的时间可以用于非刷新目的访存
      • 在上述前提下,不同的访存时机分配方式对应不同的刷新方式
        • 芯片的不同行不一定要连续刷新,只要在2ms内得到刷新即可
  • 刷新操作不依赖于芯片最近是否被访问过(只要DRAM芯片上有数据,就要刷新维护,以便随时取用)

记号

  • 为了便于描述:

    • 将刷新操作记为REF操作(refresh,简称R操作)
    • 将非刷新的操作(读/写/维护)记为M操作
      • DRAM的读是破坏性的读,所以读完数据需要维护(再生)
      • 这个操作必须紧跟在读操作之后,而不是等待统一刷新(来不及)
        • 刷新只能够处理(只负责处理)电容自发掉电的问题
        • 破坏性读出的维护是另外根据访存情况执行的(也认为要耗费一个存取周期.)
  • 通常有三种方式刷新:集中刷新、分散刷新和异步刷新。

集中刷新

  • 集中刷新是在规定的一个 刷新周期内,对 全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

    • 例如,对 128× 128 矩阵的存储芯片A进行刷新时,

      • 若存取周期为 0.5us,刷新周期为 2 ms(占 2 × 1 0 3 μ s 0.5 μ s \frac{2\times{10^3}\mu{s}}{0.5\mu{s}} 0.5μs2×103μs 4 000 个存取周期),
      • 则对 n=128 行集中刷新共需nt=0.5*128= 64 us(占 128 个存取周期),
      • 其余的 1936 us(相当于 3872 个存取周期)用来读/写或维持信息
    • 由于在这 64 us 时间内不能进行读/′写操作,故称为“死时间”,又称访存“死区”,

      • 所占比率为 128/4000 x 100%=3.2%,称为死时间率。
        • t C t_C tC表示存取周期(cycle)
      • 🥰03/06/2022 10:38:38

分散刷新

  • 分散刷新:把对每行的刷新分散到各个工作周期中。

  • 这样,一个存储器的系统工作周期(分为两部分:

    • 前半部分用于正常读、写或保持(M操作);
    • 后半部分用于刷新某一行(R操作)
    • 更直白的说,每个时间间隔 t C t_C tC内的后半部分事件总是要执行刷新操作,无论前半部分做了什么
  • 这种刷新方式增加了系统的 存取周期,如存储芯片存取周期为 0.5us,则系统的存取周期为 1us。

  • 分散刷新的优点是没有死区;

  • 缺点是加长了 系统的存取周期,降低了整机的速度

    • 本例中,分散刷新每隔127us,就可以对所有存储单元完成一遍刷新
    • 这个频率高于我们的最低要求2ms(2000us内可以被刷新了15次左右,而实际上我们只需要刷新一次即可)
    • 多刷新的十几遍,造成了效率低下,为了解决这个问题,使用异步刷新来改善
  • 🥰03/06/2022 10:42:56

  • t c = t M + t R t_{c}=t_{M}+t_{R} tc=tM+tR

  • t c 表 示 新 的 系 统 存 取 周 期 ; t M 表 示 读 写 或 维 护 操 作 时 间 ; t R 表 示 刷 新 操 作 时 间 t_{c}表示新的系统存取周期;t_{M}表示读写或维护操作时间;t_{R}表示刷新操作时间 tc;tM;tR

异步刷新

  • 异步刷新是前两种方法的结合,它既可缩短“死时间”,又能充分利用最大刷新间隔为 2ms 的特点。

  • 具体做法是将刷新周期2000us除以存储芯片A的行数n

    • 得到的值就是两次刷新操作之间的时间间隔 t
    • 利用逻辑电路每隔时间 t 产生一次刷新请求。
  • 这样可以避免使 CPU 连续等待过长的时间,而且减少了刷新次数,从根本上提高了整机的工作效率。

  • 异步刷新是前两种方式的结合,它既可缩短“死时间”,又充分利用最大刷新间隔为 2 ms 的特点

    • 例如,对于存取周期为 0.5us,排列成 128×128 的存储芯片,采取在 2 ms 内对 128 行单元各刷新一遍(且仅一遍),即每隔 15.6 us(2 000 us / 128us=15.6 us)刷新一行,这样2000us后恰好能够对所有行完成一遍刷新
    • 每行刷新的所需时间仍为 0.5 us
    • 我们也可以称, t L = t R t c t_L=\frac{t_R}{t_c} tL=tctR刷新周期(其中 t R t_R tR是芯片所有行完成刷新的时间)
  • 这样,刷新一行只停止一个存取周期,但 对每行来说,刷新间隔时间仍 2ms.而死时间缩短为 0.5 us。

  • 🥰03/06/2022 10:54:39

summary

DRAM 的刷新需注意以下问题:

  • 刷新 对CPU是透明的,即刷新 不依赖于外部的访问(刷新不占用 cpu 资源,但是会在 DRAM 刷新的时候阻碍 cpu 对存储的访问);

  • 动态 RAM 的刷新单位是行,因此刷新操作时仅需要行地址;

  • 刷新操作类似于读操作,但又有所不同。

    • 刷新操作仅给栅极电容补充电荷,不需要信息输出。
  • 刷新时不需要选片,即整个存储器中的所有芯片同时被刷新

DRAM的读写周期

相关缩写:(Principles of operation )

  • An asynchronous DRAM chip has power connections,

    • some number of address inputs (typically 12),
    • and a few (typically one or four) bidirectional data lines.
  • There are four active-low (有效低电平)control signals:

    • RAS, the Row Address Strobe.

      • The address inputs are captured on the falling edge of RAS, and select a row to open.
      • The row is held open as long as RAS is low.
    • CAS, the Column Address Strobe.

      • The address inputs are captured on the falling edge of CAS,
      • and select a column from the currently open row to read or write.
    • WE, Write Enable.

      • This signal determines whether a given falling edge of CAS is a read (if high) or write (if low).
      • If low, the data inputs are also captured on the falling edge of CAS.
    • OE, Output Enable.

      • This is an additional signal that controls output to the data I/O pins.
      • The data pins are driven by the DRAM chip if RAS and CAS are low, WE is high, and OE is low.
      • In many applications, OE can be permanently connected low (output always enabled)
        • but switching OE can be useful when connecting multiple memory chips in parallel.
  • This interface provides direct control of internal timing.

  • When RAS is driven low, a CAS cycle must not be attempted until the sense amplifiers have sensed the memory state, and RAS must not be returned high until the storage cells have been refreshed.

  • When RAS is driven high, it must be held high long enough for precharging to complete.

  • Although the DRAM is asynchronous, the signals are typically generated by a clocked memory controller, which limits their timing to multiples of the controller’s clock cycle.(限制为控制器时钟周期的倍数)

R A S ‾ \overline{RAS} RAS

  • R A S ‾ \overline{RAS} RAS(行地址选通,低电平有效)

C A S ‾ \overline{CAS} CAS

  • C A S ‾ \overline{CAS} CAS列地址选通,低电平有效

W E ‾ \overline{WE} WE

  • W E ‾ \overline{WE} WE写允许信号

周期解释

  • 在读周期中,为了使得DRAM芯片能够正确接收行地址和列地址
    • R A S ‾ \overline{RAS} RAS有效前,将行地址送到芯片的地址引脚
    • C A S ‾ \overline{CAS} CAS滞后 R A S ‾ \overline{RAS} RAS一段时间,类似的,
      • C A S ‾ \overline{CAS} CAS有效前,将列地址送到芯片的地址引脚
    • R A S ‾ \overline{RAS} RAS C A S ‾ \overline{CAS} CAS至少保持 t R A S 和 t C A S t_{RAS}和t_{CAS} tRAStCAS的时间
    • 在读周期中, W E ‾ \overline{WE} WE为高电平,并在 C A S ‾ \overline{CAS} CAS有效前建立

存储芯片的架构

存储芯片的内部结构

  • 存储芯片有由一下几个部分组成
    • 存储体(存储矩阵)
      • 是存储单元的集合
      • 有行选线X和列选线Y来选择所访问的单元
      • 存储体相同行/列上的位被同时读出/写入
    • 读写控制电路(I/O)
      • 用以控制被选中的单元的读出/写入,具有放大信息的作用
    • 地址译码器
      • 将地址转换为译码输出线上的高电平,以便驱动相应的读写电路
    • 控制电路
      • 片选控制信号
        • 由于单个存储芯片的容量往往不够
        • 需要用一定数量的芯片进行存储器扩展
          • 在访问某个字的时候,必须选该字所在存储芯片
          • 同时,其他芯片不被选中
      • 读/写控制信号
        • 根据CPU给出的读命令/写命令(读写控制信号,通过控制线传递给读写控制电路),控制被片选中单元进行读/写
      • 数据线的宽度和MDR相同
        • 例如,64位的数据线,在按字节编址方式下,每次最多可以存取64bit(8个字节(8个存储单元))的内容
      • 地址线的宽度和MAR相同
        • 决定了主存地址空间的最大可寻址范围
        • 例如,36位地址的最大可寻址地址范围为 0 ∼ 2 36 − 1 , 共 有 2 36 个 不 同 地 址 0\sim{2^{36}-1},共有2^{36}个不同地址 02361,236

地址引脚复用技术

  • 为了减少芯片的地址引脚,采用地址引脚复用技术,行地址和列地址通过相同的引脚分先后两次输入
  • 地址引脚数可以减少一般

存储体容量

  • 数据线位数m和地址线位数n共同反映存储体容量大小
    • 最大为 2 n ⋅ m 2^{n}\cdot{m} 2nm

ROM

  • ROM和RAM都是可以随机存取的存储器
  • ROM结构简单,具有更高的位密度
  • 具有非易失性,可靠性较高

ROM类型

  • 掩模式只读存储器MROM
    • 写入内容后无法改变
    • 由半导体制造商更加客户要求写入
  • 一次可编程只读存储器PROM
    • 可以一次性编程
    • 用写入设备写入一次后,内容无法改变
    • 由用户用专门的设备写入
  • 可擦除可编程只读存储器EPROM
    • 这里的只读已经不是真的只读
    • EPROM即可读又可写
      • 但是写的次数和写入速度不如RAM
  • Flash存储器
    • 在EPROM和EEPROM( E 2 P R O M E^2PROM E2PROM)的基础上发展而来
    • Flash价格便宜,集成度高,擦除重写速度快
  • 固态硬盘SSD
    • 固态电子存储芯片阵列制成的硬盘
    • 由控制单元和存储单元(Flash芯片)组成
    • 具有长期保存信息,快速擦除与重写的特性
    • 速度快,功耗低
    • 价格高

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

  • 半导体存储芯片采用超大规模集成电路制造工艺,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路和读/写电路等

  • 译码驱动能把 地址总线送来的 地址信号翻译成 对应存储单元的选择信号,该信号 在读/写电路的配合下完成对被选中单元的读/写操作

  • 读/写电路包括读出放大器和写入电路,用来完成读/写操作。

    • 存储芯片通过 地址总线数据总线控制总线与外部连接。
  • 数据线的位数与芯片容量 有关,地址线和数据线的位数 共同反映存储芯片的容量。

    • 地址线是单向输入的,其 位数与芯片容量 有关
    • 数据线是双向的(有的芯片可用 成对出现的数据线分别作为输入或输出),
    • 位数与芯片可读出或写入的数据位数有关
    • 例如,地址线为 10 根,数据线为 4 根,则芯片容量为 2 10 × 4 2^{10}\times4 210×4 K 位;
    • 如地址线为 14 根,数据线为 1 根,则其容量为 2 14 = 2 4 × 2 10 = 16 k 2^{14}=2^{4}\times2^{10}=16k 214=24×210=16k位。
  • 控制线

    • 主要有 读/写控制线片选线,两种
    • 读/写控制线决定芯片进行读/写操作,片选线用来选择存储芯片。
    • 不同存储芯片的读/写控制线和片选线可以不同。
      • 有的芯片的 读/写控制线共用 1 根(如芯片2114) ,有的分用两根(如 6264) ;
      • 有的芯片的 片选线用1根(如芯片2114) ,有的用 2 根(如 6264)。
    • 由于半导体存储器是由许多芯片组成的,为此需用片选信号来确定哪个芯片被选中。
    • 例如,一个 64K×8 位的存储器可由 32 片 16 Kx1 位的存储芯片组成
    • 但每次读出一个存储字时,只需选中 8 片。
    • 🥰03/06/2022 12:30:50

多模块存储器

  • 多模块存储器是一种空间并行技术
    • cpu的速度比存储器快,如果同时从存储器中读取n条指令,可以更充分利用cpu资源
    • 利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率
    • 常用的方式有2种
  • 将地址分为两部分低地址
    • 高地址
    • 低地址

单体多字存储器

  • 一个存储体的每个存储单元包含m个字(总线宽度也为m字)
  • 一次并行读出m个字
    • 前提: 地址必须顺序排列并且处于同一个存储单元
    • 在一个存取周期内,从同一地址取出m条指令,然后逐送至cpu
      • 相当于, 1 m \frac{1}{m} m1个存取周期cpu就可以取得一条指令

多体并行存储器

  • 此处将存储体芯片也称为模块

    • 每个模块具有相同的容量和速度
    • 假设存储器有m个模块,分别记为 M 0 ∼ M n − 1 M_0\sim{M_{n-1}} M0Mn1
    • 每个模块具有k个存储单元
  • 高位交叉编址

    • 这种方式依然是串行存取,不能提高存储器的吞吐率
  • 低位交叉编址

    • 高地址为存储体的体内地址
    • 低地址为存储体的体号
    • 每个模块按照 m o d    m \mod{m} modm交叉编址
      • 模 块 号 i = 单 元 地 址 / m 模块号i=单元地址/m i=/m

        • KaTeX parse error: Undefined control sequence: \set at position 5: i\in\̲s̲e̲t̲{0,1,\cdots{m-1…
      • 地址为 0 , m , ⋯ ( k − 1 ) m 0,m,\cdots{(k-1)m} 0,m,(k1)m(等差数列)的存储单元位于同一个模块 M 0 M_0 M0

流水

  • cpu每次访问一个存储体(多模块中的一个)

  • 从开始访问到结束对某个模块的访问需要的时间为存取周期 T c , 简 记 为 T T_c,简记为T Tc,T

  • 而将访问到的数据通过数据总线从存储器传输到cpu(MDR)中需要的时间,即传输周期为 T r , 简 称 为 r T_r,简称为r Tr,r

  • 假设

    • T=200ns;(每个存储体的存取周期)

    • r=50ns,(cpu经过时间r的延迟后,启动下个模块的访问)

      • 从各个存储模块返回读取结果的角度看

      • 它们间隔不能够比总线传输周期r小(总线的分时特性)

      • 同时由于每个存储体的性能一样(存取周期一样)

        • 所以对应于它们的启动时间,间隔也是至少为r
      • 又考虑到cpu可能对同一个模块的多次访问,那么第二次访问到来之前必须保证前一次的访问任务结束

      • 也就是说,第二次访问同一个模块 M i M_i Mi的时间距离第一次的时间间隔至少为存取周期 T c T_c Tc

    • 模块字长等于数据总线的宽度

    • cpu对m=4体交叉存储器的访问可以是流水的

    • 假设访问第一个存储体的时间点是0

    • cpu将它要读取的单元告诉给存储器后,有存储器的控制电路将数据传输给CPU

      • 花费的主要时间在于存储器内部的工作电路上,这部分时间cpu无法为其加速
      • 多体交叉存储器的每个芯片模块都具有独立的控制电路
    • 时间过了200+50ns,cpu取得第一个数据(包括传输时间)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OceanBase 4.0 all-in-one 版本如何离线升级 obd

今天遇到了一个问题,现象是这样的。 问题出现的原因: 在测试 ob 4.0 allinone 版本时,我用了自动部署的方式(autodeploy),发现部署完的集群无法启动,错误原因可以参考这里:https:/…

three.js之缓冲类型几何体顶点

文章目录简介构成代码顶点构成图形核心代码顶点的位置与颜色BufferAttribute颜色差值法向量不设置法向量顶点索引不复用顶点复用顶点专栏目录请点击 简介 顶点一般使我们在创建模型的时候使用的,他一般对应buffer类型的几何体,使用BufferGeometry创建 点…

有效备考浙大MEM的五个好习惯建议

作为去年上岸浙大mem项目的学长,很多身边计划备考的朋友都在咨询如何才能一年上岸,我在去年拿到了203分的成绩,在不影响工作和生活的前提下,自己认为有效备考浙大mem项目要基本做到五大好习惯,特别针对我们在职人群&am…

软件测试面试题及答案 这个可以免费白嫖的题库不要错过了

对于很多新手软件测试人来说,除了掌握扎实的专业技能之外,你还需要一份个互联网软件测试工程师面试题库才能在万千面试者中杀出重围,成功拿下offer。 一般软件测试的面试分为三轮:笔试,HR面试,技术面试。前…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java社区疫情防控管理系统nt4k1

最近发现近年来越来越多的人开始追求毕设题目的设创、和新颖性。以往的xx管理系统、xx校园系统都过时了。大多数人都不愿意做这类的系统了,确实,从有毕设开始就有人做了。但是很多人又不知道哪些毕设题目才算是新颖、创意。太老土的不想做,创…

HTML学生个人网站作业设计:宠物网站设计——宠物网站带会员登陆表单验证功能7页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 |宠物网页设计 | 保护动物网页 | 鲸鱼海豚主题 | 保护大象 | 等网站的设计与制作 | HTML宠物网页设计 | HTML期末大学生网页设计作业,Web大学…

怎么裁剪视频时长?建议收藏这些方法

我们经常会在业余的时间,观看一些视频来放松自己。小伙伴们平时有没有喜欢看的视频呢?有时视频中会出现一些比较精彩的片段,如果我们想要将这些精彩片段分享给好友,还需要跟他们说跳转到视频的哪个位置,在操作上有些麻…

量化交易进行回测时有哪些有意义的统计指标?

做量化少不了要做回测,因为回测做好了才能进行梯度研究分析,但是回测报中,需要包含哪些指标呢?下面分享一下,小编觉得还比较有意义的统计指标,以及参照分析的原则与意义。 策略收益率:这部份没得…

2022Q3母婴行业三大热门赛道总结

本篇我们将继续来分析22年Q3季度中母婴行业的高增长概念。 在母婴行业中,我们发现了3个高增长品类,分别是:果泥、辅食料理机、婴儿湿巾。 一、营养辅食类高增长概念——果泥 在婴幼儿阶段,除了母乳和婴幼儿奶粉之外,后…

[打卡笔记]-RK3399平台开发入门到精通系列视频-Linux 设备树

14天学习训练营导师课程: 内核笔记《RK3399平台开发入门到精通系列视频》 14天学习训练营导师课程:周贺贺《ARMv8/ARMv9架构-快速入门》 前言 学习了一下雪松老师的视频课程,然后做出本文笔记。 如果您也想baipiao,开通学习会员&…

计算机网络复习——第五章传输层

Today, ready to go home,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 《计算机网络》(谢希仁)内容总结 (javaguide.cn) 重点知识: Today, at home,啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 进程(process&…

Python字符串及正则表达式

一: 字符串可以用单引号或双引号来创建,也可以用三引号来创建多行字符串。 String_1 加快发展 String_2 "促进生产" String_3 """吾家吾国, 吾家吾国, 吾家吾国, 吾家吾国。""…

JDBC在IDEA中配置mysql过程及编程详解

目录 jdbc编程简介 1.导入jar包 2.建立数据库连接 2.1 创建数据源,描述数据库服务器在哪 2.2 实现一个mysql客户端,通过网络和服务器进行通信 3.使用代码操作数据库 3.1 增删改操作 增加操作 更新操作 删除操作 3.2 查询操作 4.断开连接,释放资源 jdbc编程简介 J…

关联规则之 Apriori 算法实现

一、数据预览 Apriori 算法是电商数据挖掘中的经典算法,用于发现商品之间的关联规则,例如买了 A 和 B 的情况下是否还会买 C,通过计算商品组合之间的支持度和置信度来实现。首先我们来看一张订单表,包含订单编号,和商…

数据可视化之雷达图:自助数据集处理,完美演绎球员数据可视化

数据可视化,不只应用于工作或者财务报告,在某些场合通过使用图表展示数据,进行信息可视化表达,不仅可以省去繁冗的文字,还能更为清晰直观地展示,化平庸为神奇,让任何人有认真看的欲望。 当今世…

Thinkpad X201i笔记本电脑开机Fan Error

Thinkpad X201i笔记本电脑开机Fan Error1 背景2 现象3 更换风扇3.1 准备工具3.2 开始拆机1 背景 家里的老笔记本电脑,thinkpad X201i笔记本电脑,一直在使用,之前给风扇清过会,添加过硬盘,基本上也是拆了卸&#xff0c…

Logger.error还不知道怎么传参打印?看完这个你就明白了

Logger.error方法打印出堆栈信息,非常重要,可以使我们快速定位出相关问题,提高效率。 但是Logger.error有多个重载方法,不同的传参,打印结果各不一样。 下面,来看一个示例, 一、代码示例 impor…

WordPress Mixed Content混合内容警告:4 种简单的修复方法

如果您在 WordPress 网站上看到混合内容警告,请不要惊慌,它是一个常见警告。即使您安装了 SSL(安全套接字层)证书,也可能在任何网站上发生这种情况。 WordPress Mixed Content混合内容警告不会阻止您的网站在页面上显示…

[附源码]java毕业设计医学季节性疾病筛查系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

学生Dreamweaver静态网页设计 基于HTML+CSS+JavaScript制作简食餐厅美食网站制作

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…