DRAM

 

DRAM

  
  

3管动态RAM基本存储电路

简介

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

工作原理

  动态RAM的工作原理 动态RAM也是由许多基本存储元按照行和列来组成的。
  3管动态RAM的工作原理
  

DRAM数据线

3管动态RAM的基本存储电路如右图所示。在这个电路中,读选择线和写选择线是分开的,读数据线和写数据线也是分开的。
  写操作时,写选择线为"1",所以Q1导通,要写入的数据通过Q1送到Q2的栅极,并通过栅极电容在一定时间内保持信息。让我们看一下动态效果
  读操作时,先通过公用的预充电管Q4使读数据线上的分布电容CD充电,当读选择线为高电平有效时,Q3处于可导通的状态。若原来存有"1",则Q2导通,读数据线的分布电容CD通过Q3、Q2放电,此时读得的信息为"0",正好和原存信息相反;若原存信息为"0",则Q3尽管具备导通条件,但因为Q2截止,所以,CD上的 电压保持不变,因而,读得的信息为"1"。可见,对这样的存储电路,读得的信息和原来存入的信息正好相反,所以要通过读出放大器进行反相在送往 数据总线。

结构

  在半导体科技极为发达的台湾, 内存和显存被统称为 记忆体(Memory),全名是动态随机存取记忆体(Dynamic Random Access Memory,DRAM)。基本原理就是利用电容内存储电荷的多寡来代表0和1,这就是一个二进制位元(bit),内存的最小单位。
  DRAM的结构可谓是简单高效,每一个bit只需要一个 晶体管加一个电容。但是电容不可避免的存在漏电现象,如果电荷不足会导致数据出错,因此电容必须被周期性的 刷新(预充电),这也是DRAM的一大特点。而且电容的充放电需要一个过程,刷新频率不可能无限提升(频障),这就导致DRAM的频率很容易达到上限,即便有先进工艺的支持也收效甚微。

发展过程

  “上古”时代的FP/EDO内存,由于 半导体工艺的限制,频率只有25MHz/50MHz,自SDR以后频率从66MHz一路飙升至133MHz,终于遇到了难以逾越的障碍。此后所诞生的DDR1/2/3系列,它们存储单元官方频率(JEDEC制定)始终在100MHz-200MHz之间徘徊,非官方(超频)频率也顶多在250MHz左右,很难突破300MHz。事实上高频内存的出错率很高、稳定性也得不到保证,除了超频跑简单测试外并无实际应用价值。
  既然存储单元的频率(简称内核频率,也就是电容的刷新频率)不能无限提升,那么就只有在I/O(输入输出)方面做文章,通过改进I/O单元,这就诞生了DDR1/2/3、GDDR1/2/3/4/5等形形色色的内存种类
   在其他领域的应用
  1. DRAM Controller Status Register (Address: 0x7E001000)
  DRAM状态寄存器,这是一个RO寄存器,用于读取DRAM的状态。
  
  

[1]
实际上,读到的有用信息就是Controller Status和Memory width。
  2. DRAM Controller Command Register (Address: 0x7E001004)
  DRAM命令寄存器,设置DRAM的 工作状态
  最开始应该配置为0x4,是处于Configure状态。在配置完所有的DRAM之后,将该寄存器设置为0x0,处于运行状态。
  3. Direct Command Register (Address: 0x7E001008)
  DRAM命令寄存器,用于发送命令到DRAM和访问DRAM中的MRS和EMRS寄存器。
  通过该寄存器初始化DRAM,先设置为NOP模式,然后设置为PrechargeAll进行充电,然后设置EMRS和MRS寄存器,一般是这么一个流程。具体的要参见你所使用的DRAM的datasheet。
  4. Memory Configuration Register (Address: 0x7E00100C)
  DRAM的配置寄存器,这个与需要参照你所使用的DRAM的datasheet。
  该寄存器肯定是要配的,看看DRAM的datasheet就知道了。
08-27
DRAM动态随机存取存储器)是一种广泛用于计算机系统的主存储器技术,其核心原理基于电容存储电荷的状态来表示数据。DRAM 的基本存储单元是一个晶体管和一个电容器组成的电路,电容器的充电状态(高电平或低电平)表示二进制数据“1”或“0”。由于电容器会随时间放电,因此 DRAM 需要周期性刷新以维持数据的完整性。这一刷新机制是 DRAM 的关键特征之一。 ### DRAM 的内存架构 在 DRAM 芯片内部,存储单元被组织成二维阵列结构,称为 **bank**。每个 bank 由多个行和列组成,数据的访问通过行地址和列地址的组合实现。随着内存密度的提升,bank 的数量也随之增加。例如,在 DDR5 x4/x8 设备中,16Gb 内存芯片可以包含多达 32 个 bank。这些 bank 可以独立进行读写操作,从而实现并行处理不同的内存请求。这种设计显著提升了内存的整体性能,尤其是在多任务处理场景中,不同任务的数据可以分别在不同的 bank 中读写,避免了单一 bank 的访问瓶颈。 ### DRAM工作原理 DRAM 的数据访问过程通常包括以下几个步骤: 1. **行激活(Row Activation)**:首先通过行地址选择一个特定的行,并激活该行,将该行的数据加载到行缓冲区(sense amplifier)中。 2. **列选择(Column Selection)**:在行被激活后,通过列地址选择特定的列,从而从行缓冲区中读取或写入数据。 3. **数据传输(Data Transfer)**:数据通过数据总线传输到外部设备(读取)或从外部设备传输到 DRAM(写入)。 4. **刷新操作(Refresh Operation)**:由于电容器的电荷会逐渐泄漏,DRAM 需要定期执行刷新操作,以维持数据的正确性。 ### DRAM 的常见问题 尽管 DRAM 具有较高的存储密度和较低的成本,但在实际应用中也存在一些常见问题: 1. **延迟问题**:DRAM 的访问速度相对较慢,尤其是在需要频繁切换行地址的情况下,行激活和列选择的延迟会影响整体性能。 2. **刷新开销**:由于需要周期性刷新,DRAM 的功耗较高,且刷新操作会占用一部分内存带宽。 3. **容量限制**:虽然 DRAM 的容量在不断提升,但在某些高性能计算场景中,其容量仍然无法满足需求。 4. **数据保持问题**:如果刷新操作未能及时执行,电容器中的电荷可能会完全泄漏,导致数据丢失。 ### DRAM 的优化技术 为了克服上述问题,DRAM 技术中引入了许多优化措施: 1. **多 bank 架构**:通过增加 bank 的数量,DRAM 可以实现更高的并行性,从而提高内存带宽。 2. **预取技术(Prefetch)**:现代 DRAM(如 DDR SDRAM)采用预取技术,通过一次性读取多个数据来减少访问延迟。 3. **异步刷新(Asynchronous Refresh)**:某些 DRAM 技术允许在不中断数据访问的情况下执行刷新操作,从而减少刷新带来的性能损失。 4. **低功耗模式(Low Power Modes)**:为了降低功耗,DRAM 支持多种低功耗模式,如自刷新(Self-Refresh)和深度掉电模式(Deep Power-Down)。 ### 示例代码:DRAM 的基本访问操作 以下是一个简单的示例代码,展示了如何通过行地址和列地址访问 DRAM 中的数据: ```c #include <stdio.h> // 模拟 DRAM 的基本访问操作 void dram_access(int row_address, int col_address, int data_in, int *data_out) { // 模拟行激活操作 printf("Activating row %d\n", row_address); // 模拟列选择操作 printf("Selecting column %d\n", col_address); // 模拟数据写入操作 printf("Writing data %d to row %d, column %d\n", data_in, row_address, col_address); // 模拟数据读取操作 *data_out = data_in; printf("Reading data %d from row %d, column %d\n", *data_out, row_address, col_address); } int main() { int row = 0x123; // 行地址 int col = 0x45; // 列地址 int data_in = 0xABCD; // 写入的数据 int data_out; // 读取的数据 dram_access(row, col, data_in, &data_out); return 0; } ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值