您的位置 首页 FPGA

SDRAM知多少?

SDRAMSDRAM:SynchronousDynamicRandomAccessMemory,同步动态随机存储器,同步是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态

  SDRAM

  SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指内存作业需求同步时钟,内部的指令的发送与数据的传输都以它为基准;动态是指存储阵列需求不断的改写来确保数据不丢掉;随机是指数据不是线性顺次存储,而是自在指定地址进行数据读写。

  所谓的影响功能是并不是指SDRAM的带宽,频率与位宽固定后,带宽也就不行更改了。但这是抱负的状况,在内存的作业周期内,不行能总处于数据传输的状况,由于要有指令、寻址等必要的进程。但这些操作占用的时刻越短,内存作业的功率越高,功能也就越好。

  非数据传输时刻的首要组成部分便是各种推迟与潜伏期。经过上文的叙述,咱们应该很明显看出有三个参数对内存的功能影响至关重要,它们是tRCD、CL和tRP。每条正规的内存模组都会在标识上注明这三个参数值,可见它们对功能的敏感性。

  以内存最首要的操作——读取为例。tRCD决议了行寻址(有用)至列寻址(读/写指令)之间的距离,CL决议了列寻址到数据进行真正被读取所花费的时刻,tRP则决议了相同L-Bank中不同作业行转化的速度。现在能够幻想一下读取时或许遇到的几种状况(剖析写入操作时不必考虑CL即可):

  1.要寻址的行与L-Bank是闲暇的。也便是说该L-Bank的一切行是封闭的,此刻可直接发送别有用指令,数据读取前的总耗时为tRCD+CL,这种状况咱们称之为页射中(PH,Page Hit)。

  2.要寻址的行正好是前一个操作的作业行,也便是说要寻址的行现已处于选通有用状况,此刻可直接发送列寻址指令,数据读取前的总耗时仅为CL,这便是所谓的背靠背(Back to Back)寻址,咱们称之为页快速射中(PFH,Page Fast Hit)或页直接射中(PDH,Page Direct Hit)。

  3.要寻址的行地点的L-Bank中现已有一个行处于活动状况(未封闭),这种现象就被称作寻址抵触,此刻就必需求进行预充电来封闭作业行,再对新行发送别有用指令。成果,总耗时便是tRP+tRCD+CL,这种状况咱们称之为页失去(PM,Page Miss)。

  SDRAM基础知识总结

  明显,PFH是最抱负的寻址状况,PM则是最糟糕的寻址状况。上述三种状况产生的机率各自简称为PHR——PH Rate、PFHR——PFH Rate、PMR——PM Rate。因而,体系规划人员(包含内存与北桥芯片)都尽量想进步PHR与PFHR,一同削减PMR,以到达进步内存作业功率的意图。

  SDRAM 根本知识

  SDRAM只需一组地址线,一组数据线,其间地址线分为行地址和列地址,它经过RAS行地址锁存器和CAS列地址锁存器来完结队伍。很多人或许会跟我相同,算一下它的容量不符合自己板子,下面便是核算容量的公式。这也是公司比较正规的表明办法:

  2,097,152-WORDS X 4BANKS X 16-Bits

  4,194,304-WORDS X 4BANKS X 8-Bits

  8,388,608-WORDS X 4BANKS X 4-Bits

  SDRAM即同步动态RAM :一切输入信号均在时钟上升沿被采样,需求动态改写坚持数据

  1、重要的衔接信号:

  a、 RAS:行地址锁存

  b、 CAS:列地址锁存

  c、 WE:写使能

  d、 DQ0-DQ15:数据总线

  e、 DQML、DQMH:数据I/O屏蔽,读形式下屏蔽输出缓冲,写形式下屏蔽输入缓冲,DQML操控DQ0-DQ7,DQMH操控DQ8—DQ15

  f、 A10衔接主动放电

  2、扩展方法:

  运用双片级联,将16位数据线扩展为32位,然后与32位CPU匹配,优化SDRAM功能。扩展后一个地址对应32位,然后一个地址单元以4Byte进行数据拜访时,内存会疏忽A0和A1,故SDRAM的A0接CPU数据线的A2。假如需求拜访地址偏移为01的单个字节,经过DQML和DQMH信号进行协助。

  3、SDRAM的burst mode:

  一种运用内部列地址产生器来作业的高速读写形式,只需设置最开端的列地址,后边的地址就能够经过内部的列地址产生器来主动生成。

  4、SDRAM的初始化:

  SDRAM上电后运用前必需求经过一段初始化操作才能够运用。这个操作进程是规范的进程。这个进程如下:

  a、 放电(precharge):封闭存储单元,使存储单元无效。

  b、 主动改写(auto-refresh)

  c、 加载形式寄存器(Load Mode Register)

  d、 正常读写

  SDRAM基础知识总结

  在输入precharge指令后,由于有必要是对一切BANK进行Precharge,所以A10这个管脚要设置成高,因而在Precharge后边要做一个读的操作,这个操作最首要的是在SDRAM的寻址空间里设置的地址有必要是A10是高的。在输入Auto-refresh指令后,一般要跟几句空操作或许读什么之类的,反正要到达推迟的意图,以使得SDRAM有时刻来完结refresh。之后便是要设置SDRAM的形式寄存器,这个寄存器里一般设置了burst长度,CAS,burst类型,操作形式,还有是设置SDRAM是作业在单个读写操作仍是burst操作下。而这个寄存器的设置也是经过地址线来设置的,所以在宣布Load Mode Register指令后要做一个操作但是使得在SDRAM的地址线上出线的值便是你要设置的值。这儿很有必要提示的一下的是,这个操作是8位的操作。设置完形式寄存器后就进入正常操作形式。

  5、根本的读写操作:

  SDRAM的根本读操作需求操控线和地址线相配合地宣布一系列指令来完结。先宣布BANK激活指令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活指令后有必要等候大于tRCD(SDRAM的RAS到CAS的推迟目标)时刻后,宣布读指令字。CL(CAS推迟值)个作业时钟后,读出数据顺次出现在数据总线上。

  在读操作的最终,要向SDRAM宣布预充电(PRECHARGE)指令,以封闭现已激活的页。等候tRP时刻(PRECHARGE)指令,以封闭现已激活的页。等候tRP时刻(PRECHAREG指令后,相隔tRP时刻,才可再次拜访该行)后,能够开端下一次的读、写操作。SDRAM的读操作只需突发形式(Burst Mode),突发长度为1、2、4、8可选。SDRAM的根本写操作也需求操控线和地址线相配合地宣布一系列指令来完结。先宣布BANK激活指令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。

  BANK激活指令后有必要等候大于tRCD的时刻后,宣布写指令字。写指令能够当即写入,需写入数据顺次送到DQ(数据线)上。在最终一个数据写入后推迟tWR时刻。宣布预充电指令,封闭现已激活的页。等候tRP时刻后,能够翻开下一次操作。写操作能够有突发写和非突发写两种。突发长度同读操作。

  6、AT91sam9260 SDRAM

  类型MT48LC16M16A2,为4MB*4*16bit=32MB,选用双片级联构成32位64MB的SDRAM。SDRAM选用地址信号线复用。行寻址运用A0-A12,寻址规模8K字节;列寻址运用A0-A8,寻址规模512字节;bank寻址运用BA0-BA1,寻址四个bank。运用额定的四根信号线衔接两片SDRAM的BA[1:0]。

  AT91SAM9260运用SDRAMC初始化SDRAM初始化次序如下:

  a、 设置装备寄存器SDRAMC_CR,填入寄存器中的值单位均为时钟周期:

  NC: Number of Column Bits,9

  NR: Number of Row Bits,13

  NB: Number of banks,4

  CAS: CAS Latency,2-3

  DBW:数据位宽32位

  tWR:Write Recover TIme,14ns

  tRC: Row Cycle Delay, 默认值7

  tRP: Row Precharge Delay,默认值3

  tRCD:Row To Column Delay,15-20ns

  tRAS:AcTIve To Precharge Delay,37-44ns

  tXSR:Exit Self Refresh To Active Delay,67-75ns

  b、 在存储设备寄存器(SDRAMC_MDR)中设置存储类型为SDRAM

  c、 供给200us的推迟

  d、 向SDRAM设备宣布NOP指令:设置SDRAM 形式寄存器中设置形式为1,向SDRAM恣意地址履行写操作。

  e、 向SDRAM设备宣布放电指令:设置SDRAM 形式寄存器中设置形式为2,向SDRAM恣意地址履行写操作。

  f、 供给8个主动改写周期:设置SDRAM 形式寄存器中设置形式为4,向SDRAM恣意地址履行写操作。

  g、 宣布形式寄存器设置周期,装备SDRAM形式寄存器参数,尤其是CAS Latency和burst length。程序有必要设置形式寄存器为形式3,对SDRAM履行写拜访,地址中BA[1:0]有必要为0

  h、 进入正常形式:设置SDRAM 形式寄存器中设置形式为0,向SDRAM恣意地址履行写操作。

  在SDRAMC Rfresh Timer寄存器的count字段中写入改写率,改写率为改写周期间的推迟,主动改写周期

  7.81us*100MHz=781

  SDRAM(Synchronous DRAM),由于Synchronous,所以一切信号都是和时钟信号同步。能够把SDRAM看成是EXCEL电子表格,经过行地址和列地址就仅有的确定了一个单元格的内容,一般的SDRAM都有2个或许两个以上的Bank,就像一个EXCEL文档有2个或许两个以上的sheet,每个sheet又由行号和列号确定单元格内容。

  在实践作业中,bank地址和行地址一同宣布,这个指令叫做行激活(Row Active),尔后列地址和操作指令(读或写)也一同宣布,这两组信号之间有个推迟。依据行业规范,界说此刻刻为从行有用到读/写指令宣布之间的距离tRCD,即RAS to CAS Delay(RAS至CAS推迟,RAS便是行地址选通脉冲,CAS便是列地址选通脉冲)。这是SDRAM一个很重要时序参数,Uboot初始化时分要装备。在列地址被选中后,数据传输进程被触发,但在这之前有个数据准备时刻,即CL(CAS Latency),它也是一个重要的SDRAM参数,但该时刻仅仅针对读操作,写操作没有这一时延。

  SDRAM的数据传输根本上都是接连的,所以SDRAM中有突发传输的概念,突发(Burst)是指在同一行中相邻的存储单元接连进行数据传输的方法,接连传输的周期数便是突发长度(Burst Lengths,简称BL),在初始化之前要经过寄存器界说。 在进行突发传输时,只需指定开端列地址与突发长度,SDRAM就会顺次地主动对后边相应数量的存储单元进行读/写操作而不再需求操控器接连地供给列地址这样,除了第一笔数据的传输需求若干个周期(首要是之前的推迟,一般的是tRCD+CL)外,这以后每个数据只需一个周期的即可取得。

  在数据读取完之后,为了腾出读出放大器以供同一L-Bank内其他行的寻址并传输数据,SDRAM芯片将进行预充电(precharge)的操作来封闭当前作业行。从开端封闭现有的作业行,到能够翻开新的作业行之间的距离便是tRP(Row Precharge command Period,行预充电有用周期)。

  咱们能够核算一下,三个标准的容量都是128M,咱们能够参照一下。(由于队伍复用,所以地址线的数目一般是算双倍)

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/160384.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部