s3c2440,s3c6410,s5p6450地址空间和连线

首先我们要明确几个概念:  rom,ram,sram,sdram,norflash,nandflash   


先是这几个概念的分类:1.ROM类    2.RAM类,包括SRAM和SDRAM   3.flash类,norflash和nandflash


ROM类:

        只读内存,英文为Read-only-memory,只能读取,用来存储和保存永久数据。ROM不能随意更新,但是在任何时候都可以读取,断电可以保留数据。一般在rom出厂前注入信息,没有特殊情况不会更改内容。 PROM是可编程的,一次性的,早期的产品;EPROM是通过紫外光的照射擦出原先的程序;EEPROM是通过电子擦除。


RAM类:

        RAM(random access memory随机存取存储器,主要的作用就是存储代码和数据,供cpu在需要的时候调用。RAM分为SRAM和DRAM。

       SRAM,即Static RAM,静态随机存取访问存储器,“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。“随机访问“-是指存储器的内容可以用任意的顺序访问。SRAM是目前读写最快的存储设备,但是非常的昂贵,所以只在对速度有严格要求的地方,例如CPU的一级缓存,二级缓存。

       DRAM,即Dynamic RAM,DRAM保留数据的时间很短,DRAM需要周期性的刷新操作,速度比SRAM慢,但是还是比任何的ROM都要快,价格上DRAM比SRAM便宜很多,典型的应用就是计算机的内存,显卡的显存,嵌入式系统的内存。DRAM分为很多种,常见的主要是SDRAM(sync DRAM),DDR SDRAM等,其中DDR可以在一个时钟读写两次数据。

      SRAM比DRAM访问速度快的另外一个原因就是SRAM可以一次接受所有地址位,而DRAM则使用行地址和列地址复用的结构。SRAM和SDRAM不要相互混淆,SDRAM代表的是同步的DRAM(Synchronous DRAM),和SRAM完全不同,SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。

        一个SRAM单元通常由4-6只晶体管组成,当这个SRAM被赋值0或1时,他会保持这个状态直到下一次赋值或者断电之后才会改变状态或者消失。SRAM的速度相对比较快,而且比较省电,但是存储1bit的信息需要4-6只晶体管制造成本很高。DRAM只要1只晶体管。

       早期的SRAM芯片采用了20线双列直插(DIP:dual inline package)封装技术,需要很多针脚:1)每个地址线都需要一根信号线;2)一根数据输入线和一根数据输出线;3)部分控制线(write enable,chip select);4)地线和电源线



上图是一个SRAM芯片,下面是另外一个16kx1bit的SRAM芯片针脚图


地址线有A0-A13,14条,共能寻址2的14次方16384,即16k bits空间,芯片大小也是16kbit,所以是一对一进行寻址,只有一个输出线Dout和一条输出Din,所以每次读取一bit的数据。

      DRAM相对于SRAM更加复杂,因为DRAM存储数据的过程中需要对于存储的信息不停的刷新,而且地址线是行列复用的


   上图的芯片是一个最简单的最早的DRAM芯片,intel在1979年发布的2188,封装是16K x1DRAM 18线DIP。”16Kx1“是指这个芯片拥有16384个bit数据,在同一个时期可以同时进行1bit的读取或者写入操作。

    对比SRAM和DRAM,首先是地址线从14根变为7根,DRAM通过把接口把地址分为行地址和列地址,然后利用两个连续的时钟周期传输数据,这样就达到了使用一半的针脚实现同SRAM同样的功能的目的,这种技术成为多路技术(multiplexing)

    DRAM利用这一技术,成功减少了地址线的数目,从而减少针脚数,这样就提高了芯片生产的成本和功耗。所以对于现在的大容量DRAM芯片,多路寻址技术已经是必不可少的了。

    在内存类接口IC里面,SRAM(很少用)和norflash用的是和容量一直的地址线数目,而DRAM(DDR-SDRAM ,SDRAM)就是行列地址复用(即多路寻址技术)。

     DRAM需要需要使用刷新技术来存储介质,一般行的数目比列的数目少,因为行越少用户刷新的时间就会越少


FLASH类

           flash存储器又称为闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM),在过去的20年里,嵌入式系统一直使用ROM(EEPROM)作为他们的存储设备,然而近年来flash全面代替了ROM(EEPROM)在嵌入式系统中的地位,用做存储bootloader以及操作系统或者程序代码或者直接当硬盘(U盘)使用。

         flash目前分为norflash和nandflash。

         norflash带有SRAM接口,需要足够的地址引脚来寻址  ,读写和我们常见的SRAM的读写是一样的,另外用户可以直接运行装载在norflash里面的代码,被称作芯片内执行(XIP,eXecute In Place),不必再把代码读到系统RAM中(cpu中的sram,缓存),这样可以减少SRAM的容量从节约了成本 。

         nand flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512字节(块,block),采用这种技术的nandflash比较廉价。用户不能直接运行nandflash上的代码,因此好多使用nandflash的开发板除了使用nandflash以外,还做了一块小的norflash来运行启动代码,比如常见的2410,2440开发板(2440也可以直接使用nandflash的前4k来映射uboot启动代码的前4K),后来的6410开发板又开始支持从sd卡启动(emmc,sd本质上也是flash),往后的开发板完全不推荐使用norflash启动,但是仍提供这一功能,由此可见norflash也和EEPROM一样,慢慢会退出历史舞台。

      两种flash的对比总结:

性能比较:
       FLASH闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程.任何FLASH器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除.NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0.
       由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms.
    执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行.这样,当选择存储解决方案时,设计师必须权衡以下的各项因素.

    l NOR的读速度比NAND稍快一些.


    2 NAND的写入速度比NOR快很多.


    3 NAND的4ms擦除速度远比NOR的5s快.


    4 大多数写入操作需要先进行擦除操作.


    5 NAND的擦除单元更小,相应的擦除电路更少.


接口差别:

    NOR FLASH带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节.

    NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同.8个引脚用来传送控制、地址和数据信息.

    NAND读和写操作采用512字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的存储器就可以取代硬盘或其他块设备.


容量和成本:
    NAND FLASH的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可以在给定的模具尺寸内提供更高的容量,也就相应地降低了价格.
    NOR FLASH占据了容量为1~16MB闪存市场的大部分,而NAND FLASH只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFLASH、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大.


可靠性和耐用性
    采用flahs介质时一个需要重点考虑的问题是可靠性.对于需要扩展MTBF的系统来说,FLASH是非常合适的存储方案.可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性.

寿命(耐用性)
    在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次.NAND存储器除了具有10比1的块擦除周期优势,典型的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一些.


    分清楚上面几个概念以后,我们来看s3c2440,s3c6410和s5p6450的内存分布和接口

首先是s3c2440的地址分布:


      由上图可以看出,s3c2440的地址空间分为8个bank,每个bank128MB,通过片选来定位bank,所以至多需要寻址128M的空间即可,地址线需要27根即可(2^27次方=128M寻址空间),所以查看2440的手册,会发现ADDRx的引脚最多到ADDR26,。

       其中bank0-5是留给SROM使用的,注释里面解释SROM是指ROM或SRAM类型的memory,所以这几个bank应该外接EEPROM,SRAM或者norflash。而bank6/7则是srom和sdram都可以使用,能够外接sdram内存,可见2440留给内存的空间还是十分小的,在arm9的那个年代,这个容量的内存是足够使用了。

      RAM类接口的接线和芯片的数据位宽有关,所谓数据位宽,是指芯片实际上输出几个数据引脚,有的芯片通过配置可以使用8bit,16bit,32bit等的数据位宽。使用8bit数据位宽的时候,由于每一个地址位对应一个8bit数据,所以2440地址线和芯片的管脚是一一对应的;使用16bit数据位宽的时候,这个16bit位宽可以是单芯片,也可以是多个芯片拼凑组成的,由于一个地址寻址2byte数据,所以每两个地址对于芯片来说是要取到同样的数据的,所以要错开一位接线,A1~A0,A2~A1……;同理,对于32位的数据位宽,就需要错开两位,因为32位数据线一次可以传送4个字节的数据。(rom,sram,sdram的接线都是同样的道理,只是sdram需要的地址线较少)







下图是mini2440的norflash接线图,可以看到,一共使用了1~22,22根地址线,而且由于16位宽的数据,连线要错开一位地址线,总共能寻址2^22 x 16 =4Mbits x 16 = 8MB的空间,所以这个norflash也是8M。另外,片选接的是nGCS0,所以使用的是bank0


下图是mini2440的SDRAM接线,有两片16位数据位宽的SDRAM组成,由于是行列地址复用,所以地址线没有norflash的需求那么多,两块芯片拼成一块32bits位宽的芯片,地址开始的接线要错开两位。


   由于在s3c2440中没有专门的dram控制器,所以使用sdram的时候就是同rom,sram一样的内存控制器来读写,这就需要我们接线对应数据位宽,但是发展到s3c6410,已经出现了专门的dram controller控制器和sromcontroller,由于在2440上面我们就已经淘汰了类似sram和eeprom的芯片,实际上我们只是使用sdram和norflash需要统一的地址总线,在s3c6410上面已经有专用sromcontroller,能够支持高达128M的空间,支持各种sram,rom和nor flash,但是在s3c6410上面norflash也已经算是淘汰了。有了专门的dram controller我们使用sdram的时候就不用在意怎样错开地址线,因为专门的控制器已经帮我们处理好了。

    来看s3c6410的内存分布图:


      我们惊喜的看到,由于技术的进步,对内存的需求在飞速增加,所以6410增加了sdram的空间,现在一共可以支持两片256MB的DDR SDRAM,上面地址的SROMC Bank0~Bank5是为了支持SROM而存在的,而且这两部分的地址空间都有专门的控制器来协助,事实上,可以把这两部分的地址空间看成分配给控制器的地址空间。现在我们来进行内存和norflash的接线,就不必考虑是否要错开地址线的问题了。下面看mini6410的ddr内存接线图:


从图上我们可以看出,由于使用了专门的sdram内存控制器,所以已经不需要错开地址线,而且由于是两个16bits拼成一个32bits的内存,所以地址线是共用的,还是采用了行列地址复用,片选选择的是DMC0端口,由于是两块拼成一块,所以片选脚位设置是一样的,需要同时被选中,因为每一个dmc控制器端口片选引脚有两个,所以6410还支持同一端口两块16bits的芯片不是同时选中的状态,所以就是也支持16bits位宽的ddr。


     再往后,我们来看s5p6450的内存分布图,我们能够看到,6450基本上已经不支持srom了,只给了srom控制器一个256b的空间,和2440对比很明显,但是对内存ddr的支持已经到了1GB,我们能从地址映射图看出技术的发展方向


      6450DMC的用法类似6410,只是功能更强大,比如支持8bank的ddr之类,在此不再赘述

     由此看出,随着技术的进步,硬件电路上面的接线已经越来越简单,取而代之的是芯片内部结构的复杂化,芯片集成度的提高,以后软件在嵌入式开发中所占的比重将会越来越多。


参考:http://blog.163.com/stm32f103vct6@126/blog/static/1667434792010614690538/

            http://www.docin.com/p-302387207.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值