历史上的今天
返回首页

历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2018年10月14日 | Exynos4412裸机SDRAM工作原理及时序分析

2018-10-14 来源:eefocus

下一节准备将代码重定位到DDR SDRAM,所以本节先对一些基础知识进行学习一下。

DDR出身自SDRAM,严格的说应该叫DDR SDRAM,DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思,所以,有很大一部分,两者是一样的,理解SDRAM,然后再来理解DDR。在SDRAM上的改进,效果应该更好一些,本文参考大神Tekkaman Ninja的博客中介绍的,并加入了一些自己的讲解。

先上一张SDRAM的结构图,如下图所示

SDRAM结构图

SDRAM结构图

下面上一张简易的SDRAM工作流程图

SDRAM的内部是一个存储阵列,阵列就如同表格一样,将数据“填”进去。在数据读写时和表格的检索原理一样,先指定一个行(ROW),在指定一个列(COL),我们就可以准确的找到所需要的单元格,这就是内存芯片寻址的基本原理。这个单元格(存储阵列)就叫做逻辑BANK(简称L-Bank)。

SDRAM是多Bank结构,例如在一个具有两个Bank的SDRAM的模组中,其中一个Bank在进行预充电期间,另一个Bank却马上可以被读取,这样当进行一次读取后,又马上去读取已经预充电Bank的数据时,就无需等待而是可以直接读取了,这也就大大提高了存储器的访问速度。

为了实现这个功能,SDRAM需要增加对多个Bank的管理,实现控制其中的Bank进行预充电。在一个具有2个以上Bank的SDRAM中,一般会多一根叫做BAn的引脚,用来实现在多个Bank之间的选择。另外它们的行、列地址线共用,由行地址选通((CAS)、列地址选通(RAS)信号分时控制。

 

SDRAM简易工作流程图

SDRAM简易工作流程图

图中用红色标明的就是我们需要找的几个主要时间,现在开始看图说话

1、芯片初始化

SDRAM 芯片内部有一个逻辑控制单元,并且有一个模式寄存器为其提供控制参数。因此,每次开机时都要先对这个控制逻辑核心进行初始化。

2、行有效 

初始化完成后,要想对一个 L-Bank 中的阵列进行寻址,首先就要确定行(Row),使之处于活动状态(Active),然后再确定列。简单点理解就先传行地址过来。

3、列读写

行地址确定之后,就要对列地址进行寻址了。读写的信号和列地址是同时发过来的,读写的操作取决于WE#引脚,当他使能则为写,否则为读。

在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为 tRCD,即RAS to CAS Delay(RAS 至 CAS 延迟),大家也可以理解为行选通周期,简单点理解就是说,在发完行地址后,再发列地址和读写信号时,需要延迟一下,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。

广义的 tRCD 以时钟周期(tCK,Clock Time)数为单位,比如 tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,对于PC100 SDRAM,tRCD=2,代表1000/100 * 2 = 20ns 的延迟,下图是tRCD=3的时序图。

SDRAM 时序图 tRCD说明

SDRAM 时序图 tRCD说明

4、数据输出(读)

在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据 I/O 通道(DQ)输出到内存总线上了。

但是在CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为 CL(CAS Latency,CAS潜伏期)。由于CL只在读取时出现,所以 CL 又被称为读取潜伏期(RL,Read Latency),下图是CL=2的示意图。

SDRAM 时序图 CL说明

SDRAM 时序图 CL说明

5、数据输入(写)

数据写入的操作也是在 tRCD 之后进行,但此时没有了 CL(记住,CL 只出现在读取操作中),行寻址与列寻址的时序图和上文一样,只是在列寻址时,WE#为有效状态。 为了保证数据的可靠写入,都会留出足够的写入/校正时间(tWR,Write Recovery Time),这个操作也被称作写回(Write Back)。tWR 至少占用一个时钟周期或再多一点(时钟频率越高,tWR 占用周期越多)

6、突发长度--(Burst Lengths)

突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称 BL)。 只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是 tRCD+CL)外,其后每个数据只需一个周期的即可获得。

7、预充电

由于 SDRAM 的寻址具体独占性,所以在进行完读写操作后,如果要对同一个Bank的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列地址。Bank 关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。 在发出预充电命令之后,要经过一段时间才能允许发送 RAS 行有效命令打开新的工作行,这个间隔被称为tRP(Precharge command Period,预充电有效周期)。和 tRCD、CL 一样,tRP 的单位也是时钟周期数,具体值视时钟频率而定。

8、刷新

之所以称为 DRAM,就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是 DRAM 最重要的操作。刷新操作与预充电中重写的操作一样,都是用 S-AMP 先读再写。 但为什么有预充电操作还要进行刷新呢?因为预充电是对一个或所有L-Bank 中的工作行操作,并且是不定期的,而刷新则是有固定的周期,依次对所有行进行操作,以保留那些久久没经历重写的存储体中的数据。但与所有 L-Bank 预充电不同的是,这里的行是指所有 L-Bank 中地址相同的行,而预充电中各 L-Bank 中的工作行地址并不是一定是相同的。比如我有四片,刷新是我依次刷新四片内存中的某个地址,然后再刷下一个;而预充电的工作行地址可以不同。

那么要隔多长时间重复一次刷新呢?目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000 秒),也就是说每一行刷新的循环周期是 64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到 4096 RefreshCycles/64ms 或 8192RefreshCycles/64ms 的标识,这里的 4096 与 8192 就代表这个芯片中每个 L-Bank 的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096 行时为 15.625μs(微秒,1/1000 毫秒),8192 行时就为 7.8125μs。

刷新操作分为两种:自动刷新(Auto Refresh,简称 AR)与自刷新(Self Refresh,简称 SR)。

SR 则主要用于休眠模式低功耗状态下的数据保存,这方面最著名的应用就是 STR(Suspend to RAM,休眠挂起于内存)。在发出 AR 命令时,将 CKE 置于无效状态,就进入了 SR 模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在 SR 期间除了 CKE 之外的所有外部信号都是无效的(无需外部提供刷新指令),只有重新使 CKE 有效才能退出自刷新模式并进入正常操作状态。


推荐阅读

史海拾趣

Endicott Research Group Inc (ERG)公司的发展小趣事

随着医疗、工业和军事市场对电源设备的需求不断增长,ERG凭借其深厚的技术积累和创新能力,逐渐在这些领域获得了广泛的认可。他们的产品以其高性能和稳定性赢得了众多客户的信赖。特别是在医疗设备领域,ERG的电源产品为诊断和治疗设备提供了可靠的动力支持,为医疗行业的发展做出了重要贡献。

ALSC [Alliance Semiconductor Corporation]公司的发展小趣事

ALSC深知品质是企业的生命线。因此,公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重品牌建设,通过广告宣传、参加展会等方式提升品牌知名度和美誉度。这些举措使得ALSC在客户心中树立了良好的品牌形象。

Atlantic Microwave Ltd公司的发展小趣事

随着国内市场的饱和,Atlantic Microwave Ltd公司开始将目光投向了更广阔的国际市场。公司组织了一支专业的国际营销团队,深入调研不同国家和地区的市场需求和文化习惯,制定了针对性的市场推广策略。同时,公司还积极参与国际电子展会和技术交流活动,展示公司的最新产品和技术实力,成功打开了多个国际市场的大门。

FINECHIPS公司的发展小趣事

随着全球对环保和可持续发展的重视,FINECHIPS公司积极响应号召,将环保理念融入企业发展中。公司采用先进的生产工艺和设备,减少生产过程中的能源消耗和废弃物排放。同时,FINECHIPS还致力于研发环保型电子元器件,为客户提供更加绿色、可持续的解决方案。这些努力不仅提升了公司的社会形象,还为公司赢得了更多关注环保的客户的支持。

AXTAL公司的发展小趣事

随着业务的不断发展,AXTAL公司开始在全球范围内进行布局和扩展。公司的设施位于德国南部的“水晶谷”地区,靠近海德堡。这一地区以其丰富的石英资源和技术优势而闻名,为AXTAL提供了得天独厚的条件。此外,公司还积极拓展海外市场,与全球多家知名企业建立了紧密的合作关系,进一步提升了公司的国际影响力。

ELANTEC (Renesas )公司的发展小趣事

近年来,随着全球半导体市场的不断变化和技术的快速发展,Renesas也面临着一些挑战。为了应对这些挑战并保持竞争力,Renesas开始进行战略转型和结构调整。公司加强了与客户的合作和沟通,深入了解市场需求和趋势;同时,Renesas还加大了对新技术和新产品的研发投入,不断提升自身的技术实力和创新能力。此外,Renesas还注重人才培养和引进,打造了一支高素质、专业化的团队。这些措施的实施使Renesas在应对挑战和转型过程中取得了积极的成效。

问答坊 | AI 解惑

WIFI如何设置静态IP

目前使用动态IP能连接上无线路由并上网,请问如何设置静态IP,是用WINCE的API还是只要把IP写入到注册表指定位置,系统自己处理?如果用API,需要哪些API?如果写注册表,具体写到哪,写哪些数据? …

查看全部问答>

请问是不是所有的MCU都可以用hex或者bin两种文件作为下载文件

是否大部分MCU都可以用这两种文件作为烧写文件,除了个别厂家自己搞得一些其他格式文件 还有,我如何知道这个MCU是支持哪种文件的烧写格式的? 另:除了HEX是16进制文件,BIN是二进制文件这个区别外,两者在使用上还有其他的不同吗? 望高手指点 ...…

查看全部问答>

请问如何在WinCE中得到当前的函数调用堆栈

请问如何在WinCE操作系统下,在程序中得到当前的函数调用堆栈?谢谢! 开发环境 EVC,PlatformBuilder 微处理器 Renesas SH-4 …

查看全部问答>

冯诺依曼结构与哈佛结构区别

请问冯诺依曼结构与哈佛结构的区别? 通过Google查询,有人如下解释: 区别是地址空间和数据空间分开与否 冯诺依曼结构数据空间和地址空间不分开 哈佛结构数据空间和地址空间是分开的 一般DSP都是采用改进型哈佛结构,就是分开的数据空间和地址空 ...…

查看全部问答>

XSCALE pxa270的dma采集图像的问题,请帮忙解答

一个9HZ的摄像头通过并口输出一个14bit灰度图像,请问如何通过Xscale PXA270 的DMA 把数据放到内存里呢??…

查看全部问答>

各位在使用MDK11时有没有发现什么问题?

我在使用MDK11开发STR912的片子时,常出现仿真时c语言环境下执行顺序乱跳,根本没有按照设计者的顺序执行程序,这是怎么回事?以前使用MDK的早期版本开发NXP的片子时可从来没出现过这样的问题啊。…

查看全部问答>

电子竞赛TI杯

对于即将到来的TI杯,大伙来讨论讨论吧....…

查看全部问答>

新手报到

本人最近开始学习单片机,感觉挺有意思的。希望得到大家的帮助,不胜感激。 最近有一个问题,就是单片机烧写进程序后蜂鸣器一直响,感觉引脚定义没错的,怎么回事呢?…

查看全部问答>