BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #2269同步于 2008/11/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

嵌入式硬件知识-------存储器2

fzylijun886
2008/11/4镜像同步8 回复
在上一个帖子中,我介绍了存储器的基本知识以及常用的几种存储器的优缺点。下面进一步介绍一下,现在存储器的几种流行技术,以便大家在见到不同器件时能够快速理解他们的性能和用途。 1.SDRAM(同步DRAM) 一、阵列SDRAM 异步接口的逻辑相对比较简单,但面对飞速发展的通信要求,异步通信的速率往往不能满足要求,换句话说,异步接口的RAM将成为整个系统的性能瓶颈,这样SDRAM的发展就迫在眉睫。最早的SDRAM可以看成是异步DRAM的改进版,即在异步DRAM外面加了一个同步芯片如下图: 从图中可以看出,SDRAM就是采用了一个DRAM的阵列(2个或4个),使多个块可以分别独立的工作,并通过最外面的同步接口交叉存取。这样不仅解决了异步通信的瓶颈问题,还大大提高了器件的整体带宽(就是速度快了),大家可以联想流水线的原理,通过多个DRAM的使用,将异步逻辑的延时也利用了起来,这就是最早的SDRAM的想法。 二、双倍速DRAM 所谓双倍速就是工作速率比传统的的速度快了一倍,那么如何做到呢?显而易见,通过提高时钟的利用率即可。传统的SDRAM仅仅是上升沿触发,那么如果我们将其改造成双边沿触发的话,带宽就可以翻倍,这样性能也几乎可以翻倍。这种做法并不提升时钟频率,而是提高了数据传输速率,我们称之为DDR(SDR是单速率)。原理图如下: 实际上,这种双倍速的技术采用了两相时钟。也就是说,内部还是按照上升沿触发来的,只是用了一个和原始时钟相差180度的另一个时钟信号来完成原始信号下降沿触发的功能。这样就需要加一些数据选通的逻辑和译码逻辑。具体的实现细节我们没有必要了解,只需要知道这种技术即可。实际上,这种技术就是我们用的DDR333,至于DDR2的667就是四相时钟了。 2.SSRAM(同步SRAM) 和SDRAM一样,SSRAM也过度到同步接口来提升自己的性能。它主要也有两种类型: 一、流通过 流通过有点像组合电路,它在获取地址信号后,立刻返回所读数据(可以联想vhdl里面的信号赋值与变量赋值的区别) 二、流水线 流水线就有点像vhdl中的信号赋值了,在process执行后,统一赋值。也就是说,采用流水线的方法,SSRAM会在获取地址信息后等到下一个时钟上升沿才输出所读数据。这种方式可以运行在更高的频率上。时序图如下: 注:SSRAM可以理解成CACHE,确实有这么用的。
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
fzylijun886机器人#1 · 2008/11/4
3.DDR和QDR 前面已经说过了DDR的原理,实际上SSRAM也可以利用相同原理实现DDR接口,且它是完全的流水线结构,地址控制接口也并不复杂。这样很容易得到较好的性能。 QDR可以理解为DDR的改进版,注意这不是DDR2,它没有采用四相时钟,而是采用了双重数据接口,相当于利用两相时钟是速率翻倍一次,再利用双重接口再让速率翻倍一次。 存储器的使用 上图给出了一个简单的计算机系统,速率仅有1MHz。这个系统中使用了一块RAM和一块ROM,通过一个16位的地址线来实现一个字节数据的读写操作。地址线的高两位用来选通外围电路,确定当前使用ROM还是RAM还是I/O口。可以看出通过2bit信息会有四种译码结果,足以应对三种外围电路的选通任务。12:0的13根线用来做存储器(ROM或RAM)的行地址数据(8K=13bit),3:0可以选通16个I/O端口,就是这么简单。 地址的分段 经常提到的一个事情就是处理器的地址空间,这个地址空间往往受制于它的总线宽度。但随着需求的快速提高,仅仅提供总线宽度的地址空间是远远不够的。所以,我们采用了地址分段的方法来扩展处理器的寻址空间。 假设一个应用需要1MB的存储空间,但是MCU却只有64KB的寻址能力(8位处理器),那么我们就可以通过地址分段的方法,让他每次访问1MB的一个部分,这样就可以寻址1MB了。 如上图所示,地址的高16KB可以扩展访问众多分段存储页中的一个,且每个都是16KB。右边的图给出了更加详细的解释。4MB的空间被分成了256个16KB的页,通过一个段寄存器的辅助,可以完成22bit的地址空间寻址。8bit=256,14bit=16KB。 DMA传输 所谓的DMA传输,其实并不是提高了传输的速率,而是简化了传输的握手协议。如果没有DMA传输,当有大量数据时,由于微处理器一次传输的数据有限,就只能通过多次传输来完成。然而,多次传输的时候,处理器还需要花费一定的时间来进行指令的取址和译码过程,这样就大大的降低了效率。因此,人们就为大数据量的传输(经常有)专门开发了一种技术就是DMA技术。原理就是将这个译码取址的操作专门提取出来,实现了一个专门的DMA控制器,并将DMA控制器挂载在总线上。这样就大大减轻了CPU的工作,而将处理器闲置下来。结构图如下: 注:DMA传输并没有提高数据传送速率,而只是提高了数据传送效率,期缩短的时间仅仅是CPU完成取址译码等操作的时间,取而代之的是DMA的控制逻辑时间。
bewithyou机器人#2 · 2008/11/4
技术贴,赶紧sf
hobby机器人#3 · 2008/11/5
强大啊,LZ的资料都是哪儿来的,还挺全面的说 DDR2是四相时钟? 咋弄呢?
lester98机器人#4 · 2008/11/5
good~~
fzylijun886机器人#5 · 2008/11/5
图是从所讲知识领域内更专业的书中截取,或者自己画的,为的是让大家快速提高自己的水平和对嵌入式的了解。如果想看这些书,我觉得比较耗时间,如果想入门,图书馆有本早年写的嵌入式开发圣经(铁道出版社),好像是,可以借来看看。 ps:四相就是每个相差90度,也就成了133M×4=533M,166M×4=667M, 200M×4=800M 【 在 hobby 的大作中提到: 】 : 强大啊,LZ的资料都是哪儿来的,还挺全面的说 : DDR2是四相时钟? : 咋弄呢?
ninadw机器人#6 · 2008/11/5
太酷了,赞楼主!
sweetfly机器人#7 · 2008/11/5
相当不错啊~~:-) 来顶下
doudou02机器人#8 · 2008/11/5
赞楼主 长期关注中。。。 o(∩_∩)o...