关于Flash的知识(NAND+NOR)
作者:ShorminHsu 转自:http://www.voidcn.com/article/p-ppconrol-bem.html Flash RAM: 在过去的20年里,嵌入式系统一直使用ROM(EPROM) 作为它们的存储设备。然而近年来Flash?全面代替了ROM(EPROM)在嵌入式系统中的地位。因为相较ROM而言,Flash有成本低,可*,容易改写等优点。目前Flash主要有两种?NOR Flash?和?NADN Flash?它们在应用上有所不同因此也用于不同的场合。 读取NOR Flash和读取我们常见的SDRAM是一样的。它的所有地址都是可见的,你可以读取它任意随机地址的值。同时它和SDRAM一样你可以直接运行装载在NOR FLASH里面的代码,这就是作谓的XIP(Execute-In-Place)技术。因为NOR Flash有这种特性,所以它非常适用于小型嵌入式系统。你可以把你的代码装载到Flash中,在系统启动的时候直接运行它,而减少SRAM的容量从而节约了成本。 从这种意义上来说,NOR FLASH已经可以代替原先我们一直使用的标准的ROM。并且还具有ROM所没有的特性。 目前市面上的FLASH?主要来自Intel,AMD,Fujitsu,和Toshiba。常用的容量一般在128K到64M之间。?NAND Flash?没有采取内存的随机读取技术。它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节。采用这种技术的Flash比较廉价。但是和所有块设备一样,NAND Flash?比较容易出现怀位。这需要我们采用软件来避免使用这些位。这样以来就增加了软件的复杂度。你不能直接运行NAND Flash上的代码。因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。这样作会增加系统的复杂度。不过最近这种现象有所改观。三星最近生产的一批采用ARM Core的CPU,采用了一个内部的缓冲来存放NAND Flash里读取的东西。以此来直接运行NAND FLASH里面启动代码。比如基于Arm920T和新的S3c2410芯片。 另外,我们最常见的NAND FLASH的应用是嵌入式系统采用的DOC(Disk On Chip)和我们通常用的“闪盘”。 目前生产NAND Flash的主要厂家有Samsung?和Toshiba。最大容量已经突破了1G位。写Flash和写SRAM截然不同。它是通过一系列指令才能完成一个写操作的。而我们同用的RAM直接写入即可。无论是NOR Flash?还是NAND Flash都有一个“扇区”的概念。这个“扇区”从8K到256K不等。在写操作中它将作为一个整体来操作。 要向某个地址里面写如一个值得先看一下这个地址原先的值是不是全为“1“。如果全为“1”,那么通过一系列指令可以将这个值写如。反之,则先要进行擦除使其全部变为“1”。擦除操作是不能用一个地址来操作的。擦除必须一次擦除一个“扇区“。把这个“扇区”所有的值都变为“1”,然后才能进行写操作。 不同型号的Flash的操作指令不同。具体操作的时候需要自习阅读你所使用产品的产品说明书。关于Flash的话题还有很多,但是本文着重谈论Flash在uClinux系统中的应用。对Flash本身感兴趣的读者可以自行阅读其他相关资料 ? NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。? NOR ? Flash是一种类型的Flash,程序可以在里面运行,而不需要拷贝到RAM中再运行。还有一种是Nand ? Flash。你用的是ARM处理器,你的开发环境是ADS1.2。一般ARM上电以后,会从0x0地址开始执行程序,你的硬件片选0,也就是CS0一般对应的地址就是0x0。CS0一般都会接一个NOR ? Flash,这样将里面烧入程序,一上电,ARM就会从NOR ? Flash里面的0x0地址开始执行程序,这因该就是NOR ? Flash启动方式。 ? SRAM or DRAM? EEPROM or flash? What will you use in your next design? Many types of memory devices are available for use in modern computer systems. As an embedded software engineer,you must be aware of the differences between them and understand how to use each type effectively. In our discussion,we will approach these devices from the software developer's perspective. Keep in mind that the development of these devices took several decades and that their underlying hardware differs significantly. The names of the memory types frequently reflect the historical nature of the development process and are often more confusing than insightful. Figure 1 classifies the memory devices we'll discuss as RAM,ROM,or a hybrid of the two. Figure 1. Common memory types in embedded systems Types of RAM The RAM family includes two important memory devices:?static RAM (SRAM) and dynamic RAM (DRAM). The primary difference between them is the lifetime of the data they store.?SRAM?retains its contents as long as electrical power is applied to the chip. If the power is turned off or lost temporarily,its contents will be lost forever.?DRAM,on the other hand,has an extremely short data lifetime-typically about four milliseconds. This is true even when power is applied constantly. In short,SRAM has all the properties of the memory you think of when you hear the word RAM. Compared to that,DRAM seems kind of useless. By itself,it is. However,a simple piece of hardware called a?DRAM controller?can be used to make DRAM behave more like SRAM. The job of the DRAM controller is to periodically refresh the data stored in the DRAM. By refreshing the data before it expires,the contents of memory can be kept alive for as long as they are needed. So DRAM is as useful as SRAM after all. When deciding which type of RAM to use,a system designer must consider access time and cost. SRAM devices offer extremely fast access times (approximately four times faster than DRAM) but are much more expensive to produce. Generally,SRAM is used only where access speed is extremely important. A lower cost-per-byte makes DRAM attractive whenever large amounts of RAM are required. Manyembedded systems?include both types: a small block of SRAM (a few kilobytes) along a critical data path and a much larger block of DRAM (perhaps even Megabytes) for everything else. Types of ROM Memories in the ROM family are distinguished by the methods used to write new data to them (usually called programming),and the number of times they can be rewritten. This classification reflects the evolution of ROM devices from hardwired to programmable to erasable-and-programmable. A common feature of all these devices is their ability to retain data and programs forever,even during a power failure. The very first ROMs were hardwired devices that contained a preprogrammed set of data or instructions. The contents of the ROM had to be specified before chip production,so the actual data could be used to arrange the transistors inside the chip. Hardwired memories are still used,though they are now called?masked ROMs?to distinguish them from other types of ROM. The primary advantage of a masked ROM is its low production cost. Unfortunately,the cost is low only when large quantities of the same ROM are required. One step up from the masked ROM is the?PROM?(programmable ROM),which is purchased in an unprogrammed state. If you were to look at the contents of an unprogrammed PROM,you would see that the data is made up entirely of 1's. The process of writing your data to the PROM involves a special piece of equipment called a?device programmer. The device programmer writes data to the device one word at a time by applying an electrical charge to the input pins of the chip. Once a PROM has been programmed in this way,its contents can never be changed. If the code or data stored in the PROM must be changed,the current device must be discarded. As a result,PROMs are also known as one-time programmable (OTP) devices. An?EPROM?(erasable-and-programmable ROM)?is programmed in exactly the same manner as a PROM. However,?EPROMs can be erased and reprogrammed repeatedly. To erase an EPROM,you simply expose the device to a strong source of ultraviolet light. (A window in the top of the device allows the light to reach the silicon.) By doing this,you essentially reset the entire chip to its initial--unprogrammed--state. Though more expensive than PROMs,their ability to be reprogrammed makes EPROMs an essential part of the software development and testing process. Hybrids As memory technology has matured in recent years,the line between RAM and ROM has blurred. Now,several types of memory combine features of both. These devices do not belong to either group and can be collectively referred to as hybrid memory devices. Hybrid memories can be read and written as desired,like RAM,but maintain their contents without electrical power,just like ROM. Two of the hybrid devices,?EEPROM?and?flash,are descendants of ROM devices. These are typically used to store code. The third hybrid,?NVRAM,is a modified version of SRAM. NVRAM usually holds persistent data. EEPROMs are electrically-erasable-and-programmable. Internally,they are similar to EPROMs,but the erase operation is accomplished electrically,rather than by exposure to ultraviolet light. Any byte within an EEPROM may be erased and rewritten. Once written,the new data will remain in the device forever--or at least until it is electrically erased. The primary tradeoff for this improved functionality is higher cost,though write cycles are also significantly longer than writes to a RAM. So you wouldn't want to use an EEPROM for your main system memory. Flash memory combines the best features of the memory devices described thus far.?Flash memory devices are high density,low cost,nonvolatile,fast (to read,but not to write),and electrically reprogrammable. These advantages are overwhelming and,as a direct result,the use of flash memory has increased dramatically in embedded systems. From a software viewpoint,flash and EEPROM technologies are very similar. The major difference is that flash devices can only be erased one sector at a time,not byte-by-byte. Typical sector sizes are in the range 256 bytes to 16KB. Despite this disadvantage,flash is much more popular than EEPROM and is rapidly displacing many of the ROM devices as well. The third member of the hybrid memory class is NVRAM (non-volatile RAM). Nonvolatility is also a characteristic of the ROM and hybrid memories discussed previously. However,an NVRAM is physically very different from those devices.?An NVRAM is usually just an SRAM with a battery backup. When the power is turned on,the NVRAM operates just like any other SRAM. When the power is turned off,the NVRAM draws just enough power from the battery to retain its data. NVRAM is fairly common in embedded systems. However,it is expensive--even more expensive than SRAM,because of the battery--so its applications are typically limited to the storage of a few hundred bytes of system-critical information that can't be stored in any better way. Table 1 summarizes the features of each type of memory discussed here,but keep in mind that different memory types serve different purposes. Each memory type has its strengths and weaknesses. Side-by-side comparisons are not always effective.
Table 1. Characteristics of the various memory types (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 生成 XML 文档时出错。使用 XmlInclude 或 SoapI
- c# – 如何在不必为每个成员指定的情况下对Objec
- [RN] React Native 使用开源库 react-native-ima
- 使用PostgreSQL在WITH(CTE)中创建
- ajax – 隐藏字段“ufprt”被添加到Razor Umbrac
- jQuery+Ajax实现限制查询间隔的方法
- ios – AFNetworking 2.0和单元测试
- ruby-on-rails – 如何在Ruby on Rails中创建可用
- c# – 使用转换器将Window Title绑定到属性
- objective-c – 在捆绑NSBundle中找不到名为“Ma