计算机组成原理 第四章 存储器 Part2 RAM

1.半导体存储芯片

1.存储矩阵:由大量相同的位存储单元阵列构成。

2.译码驱动:将来自地址总线的地址信号翻译成对应存储单元的选通信号,该信号在读写电路的配合下完成对被选中单元的读/写操作。

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

4.读/写控制线:决定芯片进行读/写操作。

5.片选线:确定哪个存储芯片被选中。可用于容量扩充。

6.地址线:是单向输入的,其位数与存储字的个数有关。

7.数据线:是双向的,其位数与读出或写入的数据位数有关。

8.数据线数和地址线数共同反映存储芯片容量的大小。如地址线10根,数据线8根,则芯片容量=210×8=8K位。
用 16K × 1位 的存储芯片组成 64K × 8位 的存储器

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

1.线选法

这种方法对容量稍微大点的芯片来说是非常不合适的

线选法对存储单元进行布局的时候,我们实际上是把它布局成了线性的数组

2.重合法

重合法进行布局的时候我们把所有存储单元布局成了一个二维的矩阵

3.随机存取存储器(RAM)

随机存取存储器(英语:Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。

RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。它与ROM的最大区别是数据的易失性,即一旦断电所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。

1.静态RAM(SRAM)

下图中,

T1-T4解决了用什么样的电路存放'0'和'1'这个问题

T5-T6解决了如何对存储元件进行'读'或者'写'这样的操作

T7-T8是这一列共用的开关,这个开关叫做'列开关'

"静态",是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器(DRAM)里面所储存的数据就需要周期性地更新。然而,当电力供应停止时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。

举例

静态 RAM(2114)读 时序

2.动态RAM(DRAM)

动态随机存取存储器,最为常见的系统内存,即DRAM。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。 关机就会丢失数据。
单管动态 RAM 芯片举例

时序特性:

行、列地址分开传送

动态 RAM 刷新

为什么要对动态RAM进行刷新?

动态RAM是利用电容存储电荷的方式来保存信息,但是它的电容做的很小,很容易会发生漏电。在一段时间之内,如果我们不对电容再次进行通电(原来保存的'1'就会变成'0'),电容内的信息就会丢失。
刷新与行地址有关------按行刷新
即每一次的刷新刷新的是一行的数据,而不是某一个存储单元的数据

集中刷新(存取周期为0.5μs)

分散刷新(存取周期为1μs)

分散刷新与集中刷新相结合

对于 128 × 128 的存储芯片(存取周期为 0.5μs)
若每隔 2 ms 集中刷新一次 死区为 64 μs

若每隔 15.6 μs 刷新一行
而且每行每隔 2 ms 刷新一次 "死区" 为 0.5 μs
将刷新安排在指令译码阶段,则完全不会出现死区

3.动态 RAM 和静态 RAM 的比较

相关推荐
孤飞7 小时前
zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线
算法
技术专家8 小时前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
m0_488913018 小时前
万字长文带你梳理Llama开源家族:从Llama-1到Llama-3,看这一篇就够了!
人工智能·学习·机器学习·大模型·产品经理·llama·uml
csdn_aspnet8 小时前
C# (QuickSort using Random Pivoting)使用随机枢轴的快速排序
数据结构·算法·c#·排序算法
以神为界8 小时前
Python入门实操:基础语法+爬虫入门+模块使用全指南
开发语言·网络·爬虫·python·安全·web
鹿角片ljp8 小时前
最长回文子串(LeetCode 5)详解
算法·leetcode·职场和发展
数厘9 小时前
2.1SQL 学习:先懂数据库概念再学 SQL
数据库·sql·学习
逻辑驱动的ken9 小时前
Java高频面试题:03
java·开发语言·面试·求职招聘·春招
噜噜大王_9 小时前
深入理解 C 语言内存操作函数:memcpy、memmove、memset、memcmp
c语言·开发语言
YoseZang9 小时前
【机器学习】【手工】Streaming Machine Learning 流数据学习 – 应对变化的机器学习方法(一)
人工智能·学习·机器学习