什么是内存?存储器是计算机组成结构中非常重要的一部分。存储器是用来存储程序和数据的部件于计算机来说,只有有了存储器,才能有记忆功能,保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,如硬盘、软盘、磁带,CD可以长期保存信息,不依赖电源保存信息,但由机械部件驱动,速度和速度CPU比起来慢很多。内存是指主板上的存储部件CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。
内存用于存储当前使用的数据和程序(即执行)。我们通常提到的计算机内存是指动态内存(即DRAM),动态内存中所谓的动态是指当我们将数据写入时DRAM一段时间后,数据将丢失,因此需要额外的内存刷新电路。
具体工作流程如下:一个DRAM存储单元存储0或1取决于电容器是否有电荷,电荷代表1,无电荷代表0。但随着时间的推移,代表1的电容器会放电,代表0的电容器会吸收电荷,这就是数据丢失的原因;刷新操作时,定期检查电容器。如果电量大于满电量的1/2,则认为它代表1并充满电量;如果电量小于1/2,则认为它代表0并放电电容器以保持数据的连续性。
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者的区别在于,PROM它是一次性的,即软件灌入后,无法修改。这是早期产品,现在不可能使用,但是EPROM它是一种通用的存储器,通过紫外线照射擦拭原始程序。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。
从一台计算机开始,就有内存。从最早的技术改进开始,内存的发展也经历了许多次。DRAM一直到FPMDRAM、EDODRAM、SDRAM等等,内存的速度一直在提高,容量也在增加。
1)ROM是Read Only Memory的缩写 它是一种半导体内存,其特征是一旦存储数据就不能再改变或删除。它通常用于电子或计算机系统,不需要频繁更改数据,数据不会因为电源关闭而消失。 固态半导体存储器只能读取事先存储的数据。英文简称ROM。ROM所有数据通常在装载到整机之前提前编写,只能在整机工作过程中读取,而不是像随机存储器那样快速方便地重写。ROM数据稳定 ,断电后存储的数据不会改变;结构简单,读取方便,常用于存储各种固定程序和数据。除了少数品种的只读存储器(如字符发生器)可以通用外,不同用户只需要阅读存储器。 为便于使 用和大批 量 生产 ,可编程只读存储器的进一步发展(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM)。EPROM需要长时间照射紫外线才能擦除,使用非常不方便。20世纪 80 年代制出的 EEPROM ,克服了EPROM但集成度不高 ,价格较贵。因此,开发了一种新的存储单元结构 EPROM 类似的快闪存储器 。集成度高,功耗低 、体积小 ,可在线快速擦除 ,因而获得飞速发展,并有可能取代现行的硬盘和软盘而成为主要的大容量存储媒体。大多数只读存储金属-氧化物-半导体(MOS)控制场效。
2)RAM是Random Access Memory的缩写。 又称随机访问存储器;存储单元的内容可以根据需要随意取出或存储,访问速度与存储单元的位置无关。该存储器在断电时会丢失其存储内容,因此主要用于存储短期程序。
简单地说,在计算机中,RAM 、ROM都是数据存储器。RAM 它是一种随机存取存储器,其特点是易挥发性,即失失忆。ROM 它通常指固化存储器的特点和特点(一次写入,反复读取)RAM 相反。ROM又分一次性固化、光擦除和电擦除重写两种类型。
ROM当系统停止供电时,数据仍然可以保持,RAM数据通常在断电后丢失,这是典型的RAM是计算机内存。
一种叫静态RAM(Static RAM/SRAM),SRAM速度很快,是目前读写最快的存储设备,但也很贵,只在要求很高的地方使用,比如CPU一级缓冲,二级缓冲。
2)另一种叫动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,但还是比任何人都好。ROM都要快,但从价格上来说,DRAM相比SRAM要便宜得多,计算机内存就是DRAM的。
DRAM有很多种,主要是常见的FPRAM/FastPage、EDORAM、SDRAM、DDR RAM、RDRAM、SGRAM以及WRAM等等,这里介绍一个DDR RAM。
DDR RAM(Date-Rate RAM)也称作DDR SDRAM,这种改进型RAM和SDRAM它基本上是一样的。不同之处在于,它可以在一个时钟内读写两次数据,使数据传输速度加倍。这是目前计算机中使用最多的内存,它具有成本优势,实际上已经被击败了Intel另一个内存标准-Rambus DRAM。许多高端显卡也配备了高速显卡DDR RAM为了提高带宽,可以大大提高3D加速卡的像素渲染能力。
例如,手机软件通常被放置EEPROM中,我们打电话,有些最后拨打的号码,暂时是存在SRAM通过记录不会立即写入(保存在通话记录)EEPROM中),因为当时有很重要的工作(通话)要做,如果写下来,用户无法忍受漫长的等待。 FLASH存储器也被称为闪存,它在一起ROM和RAM它不仅具有电子可擦除可编程的优点(EEPROM)性能不会断电丢失数据,数据可以快速读取(NVRAM的优势),U盘和MP这种存储器用于三里。嵌入式系统在过去的20年里一直在使用ROM(EPROM)然而,作为他们的存储设备,近年来Flash全面代替了ROM(EPROM)嵌入式系统中的位置用作存储Bootloader操作系统或程序代码或直接作为硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash。
NOR Flash阅读和我们一样常见SDRAM读取是一样的,用户可以直接操作和装载NOR FLASH里面的代码可以减少SRAM从而节约成本。
NAND Flash没有内存的随机读取技术,其读取是以一次读取一块的形式进行的,通常是一次读取512个字节,使用该技术Flash比较廉价。用户不能直接运行NAND Flash上面的代码,所以很多使用NAND Flash除了使用开发板NAND Flah除此之外,还做了一个小块NOR Flash运行启动代码。
一般小容量使用NOR Flash,由于读取速度快,多用于存储操作系统等重要信息,大容量使用NAND FLASH,最常见的NAND FLASH嵌入式系统采用应用DOC(Disk On Chip)我们通常使用的闪盘可以在线擦除。目前市场上的FLASH 主要来自Intel,AMD,Fujitsu和Toshiba,而生产NAND Flash主要厂家有Samsung和Toshiba。
答:名词解释如下 DRAM--------动态即时访问器需要不断刷新才能保存数据,并且是行列地址的重复使用。许多都有页面模式 SRAM--------静态随机存储器,加电,不需要刷新,数据不会丢失,一般不重复使用行列地址 SDRAM-------同步的DRAM,即数据的读写需要时钟同步
答:这是由RAM由设计类型决定,DRAM用一个T和一个RC电路导致电容泄漏和放电缓慢,因此需要经常刷新以保存数据
答:内存(即随机存储器)RAM)可分为静态随机存储器SRAM,动态随机存储器DRAM两个。我们常说 内存”是指DRAM。而SRAM但是大家接触的很少。
答: 1)制造相同容量的原因SRAM比DRAM正因为如此,其发展才受到限制。因此,目前的成本要高得多。SRAM基本上只用于CPU内部一级缓存和内置二级缓存。只能使用少量的网络服务器和路由器SRAM。
2)不同的存储单元结构导致不同的容量:一个DRAM存储单元需要一个晶体管和一个电容(不) 包括行读出放大器等。SRAM存储单元需要大约六个晶体管。DRAM和SDRAM由于工艺问题的实现,容量 较SRAM但是读写速度不如大,SRAM。
答: 1)DRAM需要定期刷新期刷新操作SRAM只读存储器(ROM)和Flash Memory因为SRAM它是一种易失性存储器,只有在电源保持连续供应时才能保持数据。随机访问是指无论上次访问的位置如何,存储器的内容都可以按任何顺序访问。
2)DRAM和SDRAM由于工艺问题的实现,容量较大SRAM但是读写速度不如。SRAM,但是现在,SDRAM速度也很快,时钟似乎已经150兆的了。那么就是读写周期小于10ns了。
3)SDRAM虽然工作频率高,但是实际吞吐率要打折扣。以PC133为例,它的时钟周期是7.5ns,当CAS latency=2 时,它需要12个周期完成8个突发读操作,10个周期完成8个突发写操作。不过,如果以交替方式访问Bank,SDRAM可以在每个周期完成一个读写操作(当然除去刷新操作)。
4)其实现在的主流高速存储器是SSRAM(同步SRAM)和SDRAM(同步DRAM)。目前可以方便买到的SSRAM最大容量是8Mb/片,最大工作速度是166MHz;可以方便买到的SDRAM最大容量是128Mb/片,最大工作速度是133MHz。
答: 1)SRAM是静态的,DRAM或SDRAM是动态的,静态的是用的双稳态触发器来保存信息,而动态的是用电子,要不时的刷新来保持。SRAM是Static Random Access Memory的缩写,中文含义为静态随机访问存储器,它是一种类型的半导体存储器。“静态”是指只要不掉电,存储在SRAM中的数据就不会丢失。
2)SRAM其实是一种非常重要的存储器,它的用途广泛。SRAM的速度非常快,在快速读取和刷新时能够保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。所以SRAM的电路结构非常复杂。
3)从晶体管的类型分,SRAM可以分为双极性与CMOS两种。从功能上分,SRAM可以分为异步SRAM和同步SRAM(SSRAM)。异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。同步SRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。
最后要说明的一点: SRAM不应该与SDRAM相混淆,SDRAM代表的是同步DRAM(Synchronous DRAM),这与SRAM是完全不同的。SRAM也不应该与PSRAM相混淆,PSRAM是一种伪装成SRAM的DRAM。
关于Nor和Nand的介绍和区别,在网络上有很多,如果不是经常用的话,还真的无法说出个所以然来。我也是转帖网络上的,目的是经常能看看。
NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
NOR的特点是芯片内执行(XIP, execute In Place),这样应用程序可以接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。
flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。
执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。
● NOR的读速度比NAND稍快一些。 ● NAND的写入速度比NOR快很多。 ● NAND的4ms擦除速度远比NOR的5s快。 ● 大多数写入操作需要先进行擦除操作。 ● 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存储器块在给定的时间内的删除次数要少一些。
所有flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能导致系统停机。如果只是报告有问题,多读几次就可能解决了。
当然,如果这个位真的改变了,就必须采用错误探测/错误更正(EDC/ECC)算法。位反转的问题更多见于NAND闪存,NAND的供应商建议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储操作系统、配置文件或其他敏感信息时,必须使用EDC/ECC系统以确保可靠性。
NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制成的器件中,如果通过可靠的方法不能进行这项处理,将导致高故障率。 易于使用可以非常直接地使用基于NOR的闪存,可以像其他存储器那样连接,并可以在上面直接运行代码。
由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写入信息需要相当的技巧,因为设计师绝不能向坏块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。
当讨论软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和闪存管理算法的软件,包括性能优化。
在NOR器件上运行代码不需要任何的软件支持,在NAND器件上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软件,这其中包括M-System的TrueFFS驱动,该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和损耗。
ram和rom: rom:制作是写入 prom:可写一次 eprom/eeprom:可写多次 flash rom:闪存(Flash Memory) 非易失闪存技术:NOR flash、NAND flash
RAM: RAM有两大类,一种称为静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲cache。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的。
ROM: 手机的ROM和传统的ROM(Read Only Memory)又有些不一样,它分为两部分,一部分是用于系统,另外一部分是用作用户存储数据。而存储卡则很好理解了,常用的有tf卡,用于存储用户数据。 在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储 Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。
NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的, 通常是一次读取 512 个字节,采用这种技术的 Flash 比较廉价。用户 不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的开发板除了使用 NAND Flah 以外,还作上了 一块小的 NOR Flash 来运行启动代码。 NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。 NOR flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128MB的产品当中,这也说明NOR主要应用在代码存储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和MMC(多媒体存储卡Multi Media Card)存储卡市场上所占份额最大。
在手机市场中NOR FLASH是当之无愧的领导者,目前大部分手机使用的是NOR+PSRAM的XiP存储架构,其中NOR FLASH用来存储代码和数据,PSRAM作为MCU和 DSP执行运算时的数据缓存。随着手机功能的日益丰富,需要更大的代码和数据存储空间,这时如果选择大容量的NOR FLASH,成本将非常昂贵,因此,一些高端手机 中开始加入NAND来作为多媒体数据的一个存储载体。从性价比来看,NOR FLASH的最大存储容量不能超过1GB,否则就没有竞争优势了;并且,以PSRAM的结构和特性,它的容量很难超过256MB,这种组合将成 为多媒体手机的一个限制。造成这个问题的原因主要是早期手机基带等IC技术掌握在欧美公司手中,他们对于成本考量并不是非常关注,而今,国内IC厂商的崛 起和手机市场的激烈竞争,使得所有的设计师开始考虑如何降低BOM COST。 和大部分手机采用的存储结构对比。XiP架构是现在使用最多的,而新的高速处理平台正在向代码映射存储器架构发展,也就是NAND+SDRAM方式。 虽然NAND闪存有一些应用问题,但是NAND闪存单位bit成本加上其缺点导致的额外成本仍然要比NOR闪存的单位bit成本低。
RAM的容量又分标称容量、实际容量和可用容量三种,标称容量即我们看手机参数的容量,即1G、2G这些。实际容量会比标称容量少一些,这其除了一些小量 的损耗(算法、颗粒的不同)之外,部分手机还会被GPU占用一部分RAM,所以一些2G的手机看到的实际容量会是1.7G~1.8G。而可用容量又会比实际容量再少 一些,是由于系统占用以及后台程序的占用的原因,一般2G的手机刚开机的时候可用RAM会有1.3G左右,而1G的手机可用有400M左右。
存储卡的标称容量和实际容量比较接近,例如16G的存储卡可用容量都会达到14G甚至15G。
查看了实际应用中小米手机,是使用的NAND+SDRAM方式,小米手机2:2GB DDR2 533运行内存(RAM)+ 闪迪出品16G储存芯片(ROM); 三星S3C2440A开发板: 启动代码是系统上电或者复位后运行的第一段代码 他的作用是在用户程序运行之前 对系统的硬件与软件运行环境进行必要的初始化 并在最后使程序跳转到用户程序 他直接面对ARM处理器内核以及硬件控制器进行编程。
S3C2440 支持从 NOR flash 或者 NAND Flash中启动。NOR Flash 的特点是 程序可以直接在芯片内执行 不必将程序读取到RAM中运行 NOR FLASH虽有这个优点 但是它的性价比远低于NAND FLASH 因为很多系统选择从NAND FLASH 启动,从NAND FLASH中启动需要先把程序拷贝到RAM中去运行。
NOR FLASH --》映射到 nGCD0 其地址被映射为0x00000000 S3C2440内部自带一块容量为4K的bootSRAM(叫做起步阶石“Steppingstone”)映射到nGCS0 其地址被映射为0x00000000,但系统上电或启动后 程序会从0地址处开始执行 因此我们需要把启动代码放在0地址处 程序可以在FLASH芯片中 直接被CPU执行 没有什么太多说的了 上电或复位后 0地址处为bootSRAM 启动前他里面是空的 启动后S3C2440 先通过硬件机制将NANDFLASH的前4K内容拷贝他里面去 然后再从0地址处开始执行 在这种情况下,我们需要保证将启动代码存放在NANDFLASH开始的位置并且启动代码的大小要小于4K。
如果系统的所有程序编译链接后大小小于4K 那么系统的启动代码中无需考虑将程序从NANDFLASH 搬运到SDRAM 中去执行这个问题 因为所有的程序在启动时既全部由NANDFLASH 拷贝到了bootSRAM中执行了 如果系统中所编的程序编译后大于4K 那么系统的启动代码中需要包含一段将系统的全部程序从NANDFLASH 搬运到SDRAM的代码 系统启动时 只将NANDFLASH 的前4K 拷贝到了BootSRAM中,还有部分程序保存在NAND FLASH中 是无法内执行的 所以前4K被拷贝到BootSRAM中需要有能将程序拷贝到SDRAM中的代码。
因此从NAND FLASH中启动 牵涉到两次拷贝 1:nandflash前4K --> BootSAM 自动 无需人为干扰 2:从nandflash中搬运系统到SDRAM 需要程序员 控制
//这一个真正的全裸代码。具体原理是这样的: //首先是设置到NAND Flash 启动。当ARM 上电后,会自动读取NAND Flash // 0x0000000地址处执行代码。我们将代码编译联接地址也设为0x0000000 //然后,用Jflash 烧写时,烧写到NAND Flash的0x0000000。那么上电后就会 //执行你的代码。 1:交叉环境的建立 按照 mini2440用户手册,175页成功设置好 . 2:连上开发板与PC上的JTAG线.开发板接上电源, 设置从NAND FLASH启动.(一定要确定是NAND FLASH启动) 否则烧写的时候不成功。 开启开发板电源.
编译u-boot,把编译生成的新的u-boot.bin烧写到NorFlash中。开发板上电启动后,则在超级终端(或类似的软件)中显示的结果为: U-Boot 2011.06 (Jul 30 2011 - 23:40:44) DRAM: 64 MiB Flash: 2 MiB NAND: raise: Signal # 8 caught raise: Signal # 8 caught raise: Signal # 8 caught raise: Signal # 8 caught raise: Signal # 8 caught raise: Signal # 8 caught No NAND device found!!! 0 MiB *** Warning - bad CRC, using defaultenvironment
In: serial Out: serial Err: serial Net: CS8900-0 ZHAOCJ2440 #
从上述显示的内容可以看出本开发板的一些基本的信息,如DRAM为64M,NorFlash为2M,由于我没有设置NandFlash,因此系统没有检测到NandFlash,命令提示符也已经修改为“ZHAOCJ2440 # ”。