动态随机存取存储器

本文详细介绍了动态RAM(DRAM)的工作原理,包括其存储元的结构、读写操作过程以及逻辑结构。DRAM的读操作依赖于电容上的电荷状态,而写操作则是通过位线对电容充电或放电实现。此外,文章还阐述了DRAM的刷新机制,包括集中式和分散式刷新,并提到了SDRAM的同步操作、多存储体配置、命令控制和模式寄存器等特点,强调了刷新对于保持数据稳定的重要性。

一.DRAM存储器

动态RAM(DRAM)

因为该存储器必须定时刷新,才能维持其中的信息不变;

DRAM的存储元

由MOS晶体管和电容组成的记忆电路;

电容上的电量来表现存储的信息;

充电—1,放电—0。

结构形式

四管存储元,单管存储元

二.记忆原理

读操作

字线选中存储元;

若存储元中保存数据“0”,即Cs上无电荷;

则位线上无电流,读出0;

若存储元中保存数据“1”,即Cs上无电荷;

则位线上有电流,读出1;

写操作,是通过位线上的电流对Cs的充电(写1)、放电(写0)的过程;

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5LqR5oy65LmW55qE,size_20,color_FFFFFF,t_70,g_se,x_16

 

 三.逻辑结构

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5LqR5oy65LmW55qE,size_20,color_FFFFFF,t_70,g_se,x_16

 

 外部地址引脚比SRAM减少一半;

存储芯片集成度高,体积小;

送地址信息时,分行地址和列地址分别传送;

内部结构:比SRAM复杂

刷新电路

用于存储元上的信息刷新,以行为单位;

刷新计数器的位数与行译码器的输出位数相同;

行、列地址锁存器

用于保存完整的地址信息;

使用行选通信号 和列选通信号 锁存地址;

DRAM控制电路的构成

地址多路开关

刷新时需要提供刷新地址,非刷新时需提供读写地址;

刷新定时器

间隔固定的时间提供一次刷新请求;

刷新地址计数器

刷新按行进行,用于提供对所要刷新的行进行计数;

仲裁电路

对同时产生的来自CPU的访问存储器的请求和来自刷新定时器的刷新请求的优先权进行裁定;

定时发生器

提供行地址选通/RAS、列地址选通/CAS和写信号/WE。

四.读写周期

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5LqR5oy65LmW55qE,size_20,color_FFFFFF,t_70,g_se,x_16

 

 五.DRAM刷新

DRAM的刷新方式

集中式刷新

在一个刷新周期内,利用一段固定时间,依次对存储矩阵的所有行逐一刷新,在此期间停止对存储器的读/写操作;

存在死区时间,会影响CPU的访存操作;

分散式刷新

也称异步式刷新;

在一个刷新周期内,分散地刷新存储器的所有行;

既不会产生明显的读写停顿,也不会延长系统的存取周期;

同步操作:处理器访问SDRAM时,SDRAM的所有输入信号均在系统时钟CLK的上升沿被存储器内部电路锁定SDRAM的所有输出信号均在系统时钟CLK的上升沿被输出。这样做的目的是使SDRAM的操作在系统时钟CLK的控制下,与系统的高速操作严严格同步进行。CKE为时钟使能信号,只有该信号有效时,时钟输入才能作用于SDRAM芯片。

多存储体配置:为了进一步提高存取速度和减少内部操作冲突,SDRAM的存储体被拆分为多个相互独立的存储体(bank)。这种内部组织结构可以支持流水线方式的并行操作。各存储体可同时和独立工作,也可选择顺序工作或交替工作。例如,当一个存储体正在刷新时,另一个存储体可以进行正常的读写操作,从而提高存取速度。通常由片内地址线的最高一位或若干位选择存储体。

命令控制:传统的异步DRAM是根据控制信号的电平组合选择工作方式的,而SDRAM将一组控制信号的电平编码组合为“命令”。例如,RAS、CAS、WE、CS以及特定地址线的不同组合分别代表激活存储体(active,所有存储体在读/写之前都必须被激活)、读、写、预充等不同的命令。

摸式寄存器:在SDRAM加电后必须先对模式寄存器进行设置,控制SDRAM工作在不同的操作模式下。在模式寄存器中可以设置CAS延迟、突发类型、突发长度和测试模式等。和DDAM的功能差异。

### 动态随机存取存储器 (DRAM) 和静态随机存取存储器 (SRAM) 的主要差异 #### 存储原理 - **DRAM** 中的每个存储单元由一个电容和一个晶体管组成。电容用于存储数据的电荷(电荷表示1或0)。然而,由于电容会逐渐放电,存储的数据会丢失。因此,DRAM必须定期刷新以确保数据不丢失[^3]。 - **SRAM** 不依赖于电容器来保存状态;相反,它使用多个晶体管形成锁存电路来保持位的状态。这意味着只要持续供电,SRAM就能永久保留其内容而不需额外维护操作[^1]。 #### 数据持久性和稳定性 - DRAM 是一种易失性记忆体,在电源关闭后无法维持任何信息,并且即使在运行期间也需要频繁地重新加载数据以防丢失。 - SRAM 同样是易失性的,但在正常工作条件下无需刷新即可稳定保存数据直到下一次掉电为止[^2]。 #### 访问速度与延迟时间 - 尽管 DRAM 的读写速率远高于磁盘驱动器和其他外部介质,但它仍然慢于 SRAM。这是因为每次访问 DRAM 前都需要先完成相应的刷新周期。 - 对比之下,SRAM 提供更快捷高效的寻址能力以及更低延时特性,特别适合作为处理器内部的一级缓存或其他对响应敏感的应用场合[^4]。 #### 成本效益分析 - 从单位容量角度来看,DRAM 更具经济实惠的优势,能够提供更大的内存空间给用户选择。这也是为什么大多数个人电脑都会采用 DRAM 来构建主存的原因之一。 - 另一方面,虽然 SRAM 单价较高,但是因为结构简单所以集成度更高,占用面积更小,非常适合应用于嵌入式系统或是作为 CPU 缓冲区等特定领域内。 ```python # Python 示例代码展示两种 RAM 类型的不同属性 class MemoryType: def __init__(self, name, volatile=True, refresh_needed=False, speed="medium", cost_per_bit="low"): self.name = name self.volatile = volatile self.refresh_needed = refresh_needed self.speed = speed self.cost_per_bit = cost_per_bit def describe(self): description = f"{self.name} is {'volatile' if self.volatile else 'non-volatile'}." if self.refresh_needed: description += " It requires periodic refreshing to maintain data integrity." else: description += " No need for periodic refreshing as long as power supply remains stable." description += f"\nIt has {self.speed}-level access speeds and a {self.cost_per_bit}-cost per bit of storage.\n" return description dram = MemoryType('Dynamic RAM', True, True, "fast compared with HDD/CD but slower than SRAM", "lower") sram = MemoryType('Static RAM', True, False, "very fast", "higher") print(dram.describe()) print(sram.describe()) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值