DDR3学习(一)

news2024/11/19 21:23:17

I.MX6U-ALPHA开发板上带有一个256MB/512MB的DDR3内存芯片,一般Cortex-A芯片自带的RAM很小,比如I.MX6U只有128KB 的 OCRAM。
如果要运行Linux的话完全不够用,所以需要外接一片RAM芯片,I.MX6U 支持 LPDDR2、LPDDR3/DDR3,I.MX6U-ALPHA开发板上选择的是 DDR3。

RAM和ROM

RAM:随机存储器,可以随时进行读写操作,速度很快,掉点以后数据会丢失。比如内存条、SRAM、DRAM、DDR等都是RAM。RAM一般用来保存程序数据、中间结果。
比如我们在程序中定义了一个变量 a,然后对这个 a 进行读写操作,示例代码如下:

int a;
a = 10;

a是一个变量,我们需要很方便地对这个变量进行读写操作,方法就是直接“a”进行读写操作,不需要在乎具体的读写过程。我们可以随意的对 RAM 中任何地址的数据进行读写操作,非常方便。

ROM:只读存储器。
比如我们买手机,通常会告诉你这个手机是 4+64 或 6+128 配置,说的就是RAM为4GB或6GB,ROM为64G或128GB。
但是这个 ROM 是 Flash,比如 EMMC 或 UFS 存储器,因为历史原因,很多人还是将Flash 叫做 ROM。但是 EMMC 和 UFS,甚至是 NAND Flash,这些都是可以进行写操作的!

只是写起来比较麻烦,要进行先擦除,然后再发送要写的地址或扇区,最后才是写入的数据。

相比于RAM,向ROM或者Flash里面写入数据要复杂很多,因为速度会变慢,但是ROM和Flash可以将容量做很大,而且掉电后数据不会丢失,适合用来存储资料,比如音乐、图片、视频信息等。

综上所述,RAM速度快,可以直接和CPU进行通信,但是掉点以后数据会丢失,不容易做大。ROM速度虽然慢,但是容量
大、适合存储数据。

对于正点原子的I.MX6U-ALPHA开发板而言,DDR3就是RAM,NANF Flash或EMMC就是ROM。

SRAM简介

static radom access memory,静态随机存储器,这里的“静态”是指只要SRAM上电,那么SRAM里面的数据就会一直保存着,直到SRAM掉电。对于RAM而言需要可以随机的读取任意一个地址空间内的数据,因此采用了地址线和数据线分离的方式。

在这里插入图片描述

  1. 地址线,一共A0~A18,也就是19根地址线,因此可访问的地址大小就是2^19=524288=512KB。
  2. 数据线,16根数据线,一次访问可以访问16bit的数据,也就是2个字节。因此就有高字节和低字节数据之分,其中 IO0~IO7 是低字节数据,IO8~IO15 是高字节数据。
  3. 控制线,SRAM要工作还需要一堆的控制线,CS2和CS1是片选信号,低电平有效,在一个系统中可能会有多片SRAM,这时候就需要CS信号来选择当前使用哪片SRAM。此外,有的SRAM内部其实是由两片SRAM拼接起来的,因此就会提供两个片选信号。
    OE:输出使能信号,低电平有效,主控从SRAM读取数据。
    WE:写使能信号,低电平有效,主控向SRAM写数据。
    UB:低电平时访问高字节。
    LB:低电平时访问低字节。

SRAM价格高,SDRAM比SRAM容量大,但是价格更低。SRAM突出的特点就是无需刷新,读写速度快,所以SRAM通常作为SOC的内容RAM或Cache使用。比如 STM32 内存的 RAM 或 I.MX6U 内部的OCRAM 都是 SRAM。

SDRAM

Synchronous Dynamic Random Access Memory,同步动态随机存储器,“同步”的意思是SDRAM工作需要时钟线,“动态的意思”是SDRAM中的数据需要不断的刷新来保证数据不会丢失,“随机”的意思是可以读写任意地址的数据。

与SRAM相比,SDRAM集成度高,功耗低,成本低,适合做大量存储,但是需要定时刷新来保证数据不会丢失。SDRAM适合用来做内存条,SRAM适合做高速缓存或MCU内部的RAM。

在这里插入图片描述

  1. 控制线:
    CLK:时钟线,SDRAM是同步动态随机存储器,“同步”的意思是时钟,因此需要一根额外的时钟线,这和SRAM最大不同,SRAM没有时钟线。
    CKE:时钟线使能信号线。
    CS:片选信号
    RAS:行选通信号,低电平有效,SDRAM和SRAM寻址方式不同,SDRAM按照行、列来确定某个具体的存储区域。因此就有行地址和列地址之分,行地址和列地址共同复用同一组地址线,要访问某一个地址区域,必须要发送行地址和列地址,指定要访问哪一行?哪一列?RAS是行选通信号,表示要发送行地址。
    在这里插入图片描述
    CAS:列选通信号,和RAS类似,低电平有效,选中以后就可以发送列地址了。
    WE:写使能信号,低电平有效。
  2. A10地址线,不仅是地址线,A10还控制着Auto-precharge,也就是 预充电,SDRAM芯片内部会分为多个BANK,SDRAM在读写完成以后,如果要对同一个BANK中的另一行进行寻址操作就必须将原来有效的行关闭,然后发送新的行/列地址,关闭现在工作的行,准备打开新行的操作就叫做预充电。一般SDRAM都支持自动预充电功能。
  3. A0~A12 包含了行地址和列地址。不同的 SDRAM 芯
    片,根据其位宽、容量等的不同,行列地址数是不同的,这个在 SDRAM 的数据手册里面会也清楚的。比如 W9825G6KH 的 A0~A8 是列地址,一共 9 位列地址,A0~A12 是行地址,一共 13位,因此可寻址范围为:29*213=4194304B=4MB,W9825G6KH 为 16 位宽(2 个字节),因此还需要对 4MB 进行乘 2 处理,得到 4*2=8MB,但是 W9825G6KH 是一个 32MB 的 SDRAM 啊,为什么算出来只有 8MB,仅仅为实际容量的 1/4。不要急,这个就是我们接下来要讲的 BANK,8MB 只是一个 BANK 的容量,W9825G6KH 一共有 4 个 BANK。
  4. BANK选择线:BS0和BS1是BANK选择信号线,在一片SDRAM中因为技术,成本等原因,不可能做一个全容量的 BANK。而且,因为 SDRAM 的工作原理,单一的 BANK 会带来严重的寻址冲突,减低内存访问效率。为此,人们在一片 SDRAM 中分割出多块 BANK,一般都是 2 的 n 次方,比如 2,4,8 等。图 23.1.1.2 中的⑤就是 W9825G6KH 的 4 个 BANK 示意图,每个 SDRAM数据手册里面都会写清楚自己是几 BANK。前面我们已经计算出来了一个 BANK 的大小为 8MB,那么四个 BANK 的总容量就是 8MB*4=32MB。
  5. BANK区域
  6. 数据线
  7. 高低字节选择

DDR

Double Data Rate SDRAM,双倍速率SDRAM,看名字就知道 DDR 的速率(数据传输速率)比 SDRAM 高 1 倍!这 1 倍的速度不是简简单单的将 CLK 提高 1 倍,
这1倍的速度不是简简单单的将CLK提高1倍,SDRAM在一个CLK周期传输一次数据,DDR在一个CLK周期传输两次数据,也就是在上升沿和下降沿各传输一次数据,这个概念叫做预取(prefetch),相当于DDR的预取为2bit。

DDR2 在 DDR 基础上进一步增加预取(prefetch),增加到了 4bit,相当于比 DDR 多读取一倍的数据,因此 DDR2 的数据传输速率就是 533~800MT/s,这个也就是大家常说的 DDR2 533、DDR2 800。当然了,DDR2 还有其他速度,这里只是说最常见的几种。

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

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

相关文章

互联网陪诊系统功能方案

互联网陪诊系统是一款为用户提供陪同患者到医院就医全程陪同,排队约号,排队检查,排队缴费,取送结果,代办买药,代办问诊等。 业务线上预约平台,让客户享受到最为专业的医院助医服务. 功能介绍 专…

卫星下行链路预算模型(未完待续)

卫星下行链路预算模型 1. 接收端天线模型 简单一些,考虑地球同步卫星多波束通信系统,波束指向固定。波束数量为 N b N_b Nb​. 波束中心在地面的位置可以用经度向量和纬度向量表示: P ⃗ l g [ l 1 , l 2 , . . . , l N b ] P ⃗ l a [ a 1 , a 2 …

Three.js教程:访问几何体对象的数据

推荐:将 NSDT场景编辑器 加入你的3D工具链 其他系列工具: NSDT简石数字孪生 访问几何体对象的数据 实际开发项目的时候,可能会加载外部模型,有些时候需要获取模型几何体的顶点数据,如果想获取几何体的顶点数据首先要熟…

C++拷贝构造函数---理解(配图文代码)

序: 说实话,博主卡了一天,哎,老了。。。。理解能力不行。有时候还想着先跳过把,结果下班后,还在纠结是不是自己打开的方式不对,这不,刚理解了点,回来写下笔记&#xff0c…

Vue+TS开发定长虚拟列表

1.定长虚拟列表 定义:虚拟列表也有叫无限滚动的,创建一个滚动列表来渲染大量数据 使用场景有大量数据需要渲染时。 **解决了什么问题?**大量数据需要渲染,例如Vue传统使用V-for遍历会创建大量Node节点,对于内存和渲染…

【AI 导航网站】为了更好的收集 AI 资源,我开发了一个 AI 导航网站

AI 导航网站 目前 AI 应用正呈迸发式增长,然而一个人获取资源的途径有限,对于目前存在的AI工具不能很好的收集总结,所以基于此,我开发了这个一个AI导航网站,希望通过它,收集出目前存在的热门的AI应用&…

(一)Springcloud-OpenFeign原理之集成改造原生Openfeign与简单使用

文章目录 1.和原生Openfeign的关系2.Springcloud-Openfeign的改造2.1 改造目标2.2 改造内容2.2.1 集成到Spring2.2.2 替换构造组件 2.3 初步集成使用2.4 支持的扩展点 文章将会介绍Springcloud-Openfeign对原生Openfeign的改造原因及方式,最后提供简单的使用案例及扩…

实验一 进程管理与进程同步

实验一 进程管理与进程同步 实验目的: 了解进程管理的实现方法,理解和掌握处理进程同步问题的方法。 实验内容: 实现银行家算法、进程调度过程的模拟、读者-写者问题的写者优先算法。 实验步骤: 1.银行家算法流程图 &…

Springboot +Flowable,任务认领和回退(一)

一.简介 有的时候,一个任务节点会存在多个候选人,例如:张三提交一个任务,这个任务即可以由李四处理,又可以由王五处理,那么针对这种多个任务候选人的情况,该如何处理? 二.绘制流程…

Java线程池及其实现原理

线程池概述 线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。 线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机…

Spark任务提交流程

1. yarn-client Driver在任务提交的本地机器上运行,Driver启动后会和ResourceManager通讯,申请启动ApplicationMaster; 随后ResourceManager分配Container,在合适的NodeManager上启动ApplicationMaster,此时的ApplicationMaster的…

华为网络设备+WinRadius 实现用户统一管理设备

一、直接贴配置 ###配置VTY用户界面所支持的协议、验证方式 user-interface vty 0 4 protocol inbound telnet authentication-mode aaa quit ###配置RADIUS认证 ###(1)配置RADIUS服务器模板,指定服务器的IP地址与端口号、共享密钥 radius-s…

Supervisor离线安装(python3.7.8)

Background supervisor是用Python语言开发的一套通用的进程管理程序,可以将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时可以自动拉起;可在大多数unix系统上使用,不能在windows上运行;目…

学Python常逛的10个网站

这里写目录标题 一、Python官方文档二、牛客网三、Github四、w3school五、Chatgpt六、kaggle七、realpython八、medium九、stackoverflow十、geeksforgeeks 一、Python官方文档 最全面的Python学习网站非官方文档莫属,它不仅提供了下载安装教程、基础语法教程、标准…

编写UDP版本的客户-服务器程序(echo server 和 echo client)

目录 前言概要 关于数据报流的关键方法签名 UDP协议传输案例 服务端(接收端) 服务端完整代码 客户端(发送端) 客户端完整代码 创作不易多多支持😶‍🌫️😘 前言概要 我们首先来了解一下, 什么是网络编程. 网络编程…

认识系统总线

目录 一、总线的基本概念 1.总线的定义 二、总线的分类 1.片内总线 2.系统总线 2.1数据总线 2.2地址总线 2.3控制总线 3.通信总线(通信总线) 三、总线特性及性能指标 1.总线特征 2.性能标准 2.1总线的传输周期(总线周期) 2.2总线时钟周期 2.3总线的工作频率 2.4…

vim编辑器命令模式——撤销与时间旅行

Vi介绍 Vi 编辑器是所有 Unix 及 Linux 系统下标准的编辑器,类似于 windows 系统下的 notepad (记事本)编辑器,由于在 Unix 及 Linux 系统的任何版本,Vi 编辑器是完全相同的,因此可以在其他任何介绍 vi 的地…

小红书数据,如何在垂类赛道中脱颖而出!

导语 近年来,泛娱乐内容在小红书平台盛行,面临流量见顶的情况。这时候,垂类账号的优势就显现出来,不仅可以规避激烈的竞争,还能去获取更精准的流量。 作为一个经久不衰的创作方向,美食赛道分化出教程、测…

webpack plugin原理以及自定义plugin

通过插件我们可以拓展webpack,加入自定义的构建行为,使webpack可以执行更广泛的任务。 plugin工作原理: webpack工作就像是生产流水线,要通过一系列处理流程后才能将源文件转为输出结果,在不同阶段做不同的事&#x…

核磁机器学习 | 基于机器学习的fMRI分类

导读 本文通过提取最显著的特征,将大脑图像分类为正常和异常,并对大脑各种状态的磁共振成像(MRI)进行了研究。本文描述了一种基于小波变换的方法,首先对图像进行分解,然后使用各种特征选择算法从MRI图像中提取最显著的大脑特征。…