nandflash读写

nandflash读写
nandflash读写

Nand Flash读写完全解析2010-09-30 22:42NAND Flash 的数据是以bit 的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8 个或者16 个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device 的位宽。这些Line 会再组成Page.

(Nand Flash 有多种结构,我使用的Nand Flash 是K9F1208,下面内容针对三星的K9F1208U0M),每页528Byte,每32 个page 形成一个Block, Sizeof(block)=16kByte 。

1 block="16kbyte",512Mbit=64Mbyte,Numberof(block)=4096 1block=32page, 1page=528byte=512byte(Main Area)+16byte(Spare Area)

Nand flash 以页为单位读写数据,而以块为单位擦除数据。

按照这样的组织方式可以形成所谓的三类地址:

--Block Address -- Page Address --Column Address

对于NAND Flash 来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8 位。

512byte需要9bit来表示,对于528byte系列的NAND,这512byte被分成1st half和2nd half,各自的访问由地址指针命令来选择,A[7:0]就是所谓的column address。

32 个page 需要5bit 来表示,占用A[13:9],即该page 在块内的相对地址。Block的地址是由A14 以上的bit 来表示,例如512Mb 的NAND,共4096block,因此,需要12 个bit 来表示,即A[25:14],如果是1Gbit 的528byte/page的NAND Flash,则block address用A[26:24]表示。而page address就是blcok address|page address in block

NAND Flash 的地址表示为:

Block Address|Page Address in block|halfpage pointer|Column Address

地址传送顺序是Column Address,Page Address,Block Address。

由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。例如,对于512Mbit x8 的NAND flash,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效的。以NAND_ADDR 为例:第1 步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0]上,而halfpage pointer 即bit8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读写。而真正的bit8 的值是don't care 的。第2 步就是将NAND_ADDR 右移9 位,将NAND_ADDR[16:9]传到I/O[7:0]上第3 步将NAND_ADDR[24:17]放到I/O 上第4 步需要将NAND_ADDR[25]放到I/O 上因此,整个地址传递过程需要4 步才能完成,即4-step addressing。如果NAND Flash 的容量是256Mbit 以下,那么,block adress 最高位只到bit24,因此寻址只需要3 步。下面,就x16 的NAND flash 器件稍微进行一下说明。由于一个page 的main area 的容量为256word,仍相当于512byte。但是,这个时候没有所谓的1st halfpage 和2nd halfpage 之分了,所以,bit8就变得没有意义了,也就是这个时候 bit8 完全不用管,地址传递仍然和x8 器件相同。除了,这一点之外,x16 的NAND使用方法和 x8 的使用方法完全相同。

正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的:

1block = 32page

1page = 512bytes(datafield) + 16bytes(oob)

需要注意的是,对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash 的擦写,而擦写则是以一个block为单位的。同时必须提醒的是,512bytes理论上被分为1st half 和2sd half,每个half各占256个字节。

我们讨论的K9F1208U0B总共有4096 个Blocks,故我们可以知道这块flash的容量为4096 *(32 *528)= 69206016 Bytes = 66 MB 但事实上每个Page上的最后16Bytes是用于存贮检验码和其他信息用的,并不能存放实际的数据,所以实际上我们可以操作的芯片容量为4096 *(32 *512) = 67108864 Bytes = 64 MB由上图所示,1个Page总共由528 Bytes组成,这528个字节按顺序由上而下以列为单位进行排列(1列代表一个Byte。第0行为第0 Byte ,第1行为第1 Byte,以此类推,每个行又由8个位组成,每个位表示1个Byte里面的1bit)。这528Bytes按功能分为两大部分,分别是Data Field和Spare Field,其中Spare Field 占528Bytes里的16Bytes,这16Bytes是用于在读写操作的时候存放校验码用的,一般不用做普通数据的存储区,除去这 16Bytes,剩下的512Bytes便是我们用于存放数据用的Data Field,所以一个Page上虽然有528个Bytes,但我们只按512Bytes进行容量的计算。

读命令有两个,分别是 Read1,Read2其中Read1用于读取Data Field的数据,而Read2则是用于读取Spare Field的数据。对于Nand Flash来说,读操作的最小操作单位为Page,也就是说当我们给定了读取的起始位置后,读操作将从该位置开始,连续读取到本Page的最后一个 Byte为止(可以包括Spare Field)

Nand Flash的寻址

Nand Flash的地址寄存器把一个完整的Nand Flash地址分解成Column Address与Page Address.进行寻址。

Column Address: 列地址。Column Address其实就是指定Page上的某个Byte,指定这个Byte 其实也就是指定此页的读写起始地址。

Paage Address:页地址。由于页地址总是以512Bytes对齐的,所以它的低9位总是0。确定读写操作是在Flash上的哪个页进行的。

Read1命令

当我们得到一个Nand Flash地址src_addr时我们可以这样分解出Column Address和Page Address

column_addr=src_addr%512; // column address

page_address=(src_addr>>9); // page address

也可以这么认为,一个Nand Flash地址的A0~A7是它的column_addr,A9~A25是它的Page Address。(注意地址位A8并没有出现,也就是A8被忽略,在下面你将了解到这是什么原因) Read1 命令的操作分为4个Cycle,发送完读命令00h或01h(00h与01h的区别请见下文描述)之后将分4个Cycle发送参数,1st.Cycle是发送Column Address。2nd.Cycle ,3rd.Cycle 和4th.Cycle则是指定Page Address(每次向地址寄存器发送的数据只能是8位,所以17位的Page Address必须分成3次进行发送

Read1的命令里面出现了两个命令选项,分别是00h和01h。这里出现了两个读命是否令你意识到什么呢?是的,00h是用于读写1st half的命令,而01h是用于读取2nd half的命令。现在我可以结合上图给你说明为什么K9F1208U0B的DataField被分为2个half了。

如上文我所提及的,Read1的1st.Cycle是发送Column Address,假设我现在指定的Column Address是0,那么读操作将从此页的第0号Byte开始一直读取到此页的最后一个Byte(包括Spare Field),如果我指定的Column Address是127,情况也与前面一样,但不知道你发

现没有,用于传递Column Address的数据线有8条(I/O0~I/O7,对应A0~A7,这也是A8为什么不出现在我们传递的地址位中),也就是说我们能够指定的 Column Address范围为0~255,但不要忘了,1个Page的DataField是由512个Byte组成的,假设现在我要指定读命令从第256个字节处开始读取此页,那将会发生什么情景?我必须把Column Address设置为256,但Column Address最大只能是255,这就造成数据溢出。。。正是因为这个原因我们才把Data Field分为两个半区,当要读取的起始地址(Column Address)在0~255内时我们用00h命令,当读取的起始地址是在256~511时,则使用01h命令.假设现在我要指定从第256个byte开始读取此页,那么我将这样发送命令串

column_addr=256;

NF_CMD=0x01; ? 从2nd half开始读取

NF_ADDR=column_addr&0xff; 1st Cycle

NF_ADDR=page_address&0xff; 2nd.Cycle

NF_ADDR=(page_address>>8)&0xff; 3rd.Cycle

NF_ADDR=(page_address>>16)&0xff; 4th.Cycle

其中NF_CMD和NF_ADDR分别是NandFlash的命令寄存器和地址寄存器的地址解引用,我一般这样定义它们,

#define rNFCMD (*(volatile unsigned char *)0x4e000004) //NADD Flash command

#define rNFADDR (*(volatile unsigned char *)0x4e000008) //NAND Flash address

事实上,当NF_CMD=0x01时,地址寄存器中的第8位(A8)将被设置为1(如上文分析,A8位不在我们传递的地址中,这个位其实就是硬件电路根据 01h或是00h这两个命令来置高位或是置低位),这样我们传递column_addr的值256随然由于数据溢出变为1,但A8位已经由于NF_CMD =0x01的关系被置为1了,所以我们传到地址寄存器里的值变成了

A0 A1 A2 A3 A4 A5 A6 A7 A8

1 0 0 0 0 0 0 0 1

这8个位所表示的正好是256,这样读操作将从此页的第256号byte(2nd half的第0号byte)开始读取数据。 nand_flash.c中包含3个函数

void nf_reset(void);

void nf_init(void);

void nf_read(unsigned int src_addr,unsigned char *desc_addr,int size);

nf_reset()将被nf_init()调用。nf_init()是nand_flash的初始化函数,在对nand flash 进行任何操作之前,nf_init()必须被调用。

nf_read(unsigned int src_addr,unsigned char *desc_addr,int size);为读函数,src_addr是nand flash上的地址,desc_addr是内存地址,size是读取文件的长度。

在nf_reset和nf_read函数中存在两个宏

NF_nFCE_L();

NF_nFCE_H();

你可以看到当每次对Nand Flash进行操作之前NF_nFCE_L()必定被调用,操作结束之时NF_nFCE_H()必定被调用。这两个宏用于启动和关闭Flash芯片的工作(片选/取消片选)。至于nf_reset()中的

rNFCONF=(1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<

0);

这一行代码是对NandFlash的控制寄存器进行初始化配置,rNFCONF是Nand Flash的配置寄存器,各个位的具体功能请参阅s3c2410数据手册。

现在举一个例子,假设我要从Nand Flash中的第5000字节处开始读取1024个字节到内存的0x30000000处,我们这样调用read函数

nf_read(5000, 0x30000000,1024);

我们来分析5000这个src_addr.

根据

column_addr=src_addr%512;

page_address=(src_addr>>9);

我们可得出column_addr=5000%512=392

page_address=(5000>>9)=9

于是我们可以知道5000这个地址是在第9页的第392个字节处,于是我们的nf_read函数将这样发送命令和参数

column_addr=5000%512;

>page_address=(5000>>9);

NF_CMD=0x01; 从2nd half开始读取

NF_ADDR= column_addr &0xff; 1st Cycle

NF_ADDR=page_address&0xff; 2nd.Cycle

NF_ADDR=(page_address>>8)&0xff; 3rd.Cycle

NF_ADDR=(page_address>>16)&0xff; 4th.Cycle

向NandFlash的命令寄存器和地址寄存器发送完以上命令和参数之后,我们就可以从rNFDATA 寄存器(NandFlash数据寄存器)读取数据了.

我用下面的代码进行数据的读取.

for(i=column_addr;i<512;i++)

{

*buf++=NF_RDDATA();

}

每当读取完一个Page之后,数据指针会落在下一个Page的0号Column(0号Byte).

下面是源代码:

/*

https://www.360docs.net/doc/9f1966853.html,

author: caiyuqing

本代码只属于交流学习,不得用于商业开发

*/

#include "s3c2410.h"

#include "nand_flash.h"

static unsigned char seBuf[16]={0xff};

//--------------------------------------------------------------------------------------

unsigned short nf_checkId(void)

{

int i;

unsigned short id;

NF_nFCE_L(); //chip enable

NF_CMD(0x90); //Read ID

NF_ADDR(0x0);

for(i=0;i<10;i++); //wait tWB(100ns)

id="NF"_RDDATA()<<8; // Maker code(K9S1208V:0xec)

id|=NF_RDDATA(); // Devide code(K9S1208V:0x76)

NF_nFCE_H(); //chip enable

return id;

}

//------------------------------------------------------------------------------

--------

static void nf_reset(void)

{

int i;

NF_nFCE_L(); //chip enable

NF_CMD(0xFF); //reset command

for(i=0;i<10;i++); //tWB = 100ns.

NF_WAITRB(); //wait 200~500us;

NF_nFCE_H(); //chip disable

}

//------------------------------------------------------------------------------

--------

void nf_init(void)

{

rNFCONF=(1<<15)|(1<<14)|(1<<13)|(1<<12)|(1<<11)|(TACLS<<8)|(TWRPH0<<4)|(TWRPH1<<

0);

// 1 1 1 1 1 xxx r xxx, r xxx // En r r ECCR nFCE="H" tACLS tWRPH0 tWRPH1

nf_reset();

}

//------------------------------------------------------------------------------

--------

void nf_read(unsigned int src_addr,unsigned char *desc_addr,int size)

{

int i;

unsigned int column_addr = src_addr % 512; // column address

unsigned int page_address = (src_addr >> 9); // page addrress

unsigned char *buf = desc_addr;

while((unsigned int)buf < (unsigned int)(desc_addr) + size)

{

NF_nFCE_L(); // enable chip

/*NF_ADDR和NF_CMD为nand_flash的地址和命令寄存器的解引用*/

if(column_addr > 255) // 2end halft

NF_CMD(0x01); // Read2 command. cmd 0x01: Read command(start from 2end half page)

else

NF_CMD(0x00); // 1st halft?

NF_ADDR(column_addr & 0xff); // Column Address

NF_ADDR(page_address & 0xff); // Page Address

NF_ADDR((page_address >> 8) & 0xff); // ...

NF_ADDR((page_address >> 16) & 0xff); // ..

for(i = 0; i < 10; i++); // wait tWB(100ns)/////??????

NF_WAITRB(); // Wait tR(max 12us)

// Read from main area

for(i = column_addr; i < 512; i++)

{

*buf++= NF_RDDATA();

}

NF_nFCE_H(); // disable chip

column_addr = 0;

page_address++;

}

return ;

}

转至:忘了从哪了。

解读海恩法则

解读海恩法则 一、海恩法则的定义 海恩法则:任何不安全事故都是可以预防的。 海恩法则是德国飞机涡轮机的发明者德国人帕布斯·海恩提出的一个在航空界关于飞行安全的法则。海恩法则指出: 每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。 虽然这一分析会随着飞行器的安全系数增加和飞行器的总量变化而发生变化,但它确实说明了飞行安全与事故隐患之间的必然联系。当然,这种联系不仅仅表现在飞行领域,在其他领域也同样发生着潜在的作用。 按照海恩法则分析,当一起重大事故发生后,我们在处理事故本身的同时,还要及时对同类问题的“事故征兆”和“事故苗头”进行排查处理,以此防止类似问题的重复发生,及时解决再次发生重大事故的隐患,把问题解决在萌芽状态。 二、海恩法则的精髓 海恩法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。 三、海恩法则的启示 (一)必须以预防为主 假如人们在安全事故发生之前,预先防范事故征兆、事故苗头,预先采取积极有效的防范措施,那么,事故苗头、事故征兆、事故本身就会被减少到最低限度,安全工作水平也就提高了。由此推断,要制服事故,重在防范,要保证安全,必须以预防为主。 要在安全工作中做到以预防为主,必须坚持“六要六不要”: 1.要充分准备,不要仓促上阵。充分准备就是不仅熟知工作内容,而且熟悉工作过程的每一细节,特别是对工作中可能发生的异常情况,所有这些都必须在事前搞得清清楚楚; 2.要有应变措施,不要进退失据。应变措施就是针对事故苗头、事故征兆甚至安全事故可能发生所预定的对策与办法; 3.要见微知著,不要掉以轻心。有些微小异常现象是事故苗头、事故征兆的反映,必须及时抓住它,正确加以判断和处理,千万不能视若无睹,置之不理,遗下隐患;

NandFlash简介

NandFlash简介 分类:Linux2013-03-06 14:34 2945人阅读评论(0) 收藏举报 Flash Memory中文名字叫闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器。 从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。 FLASH的分类:功能特性分为两种:一种是NOR型闪存,以编码应用为主,其功能多与运算相关;另一种为NAND型闪存,主要功能是存储资料,如数码相机中所用的记忆卡。 NOR FLASH和NAND FLASH NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM 一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结结,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。 NOR的读速度比NAND稍快一些。 NAND的写入速度比NOR快很多。 NAND的4ms擦除速度远比NOR的5s快。 大多数写入操作需要先进行擦除操作。 NAND的擦除单元更小,相应的擦除电路更少 在NOR Flash中, 所有的存储区域都保证是完好的, 同时也拥有相同的耐久性。在硬模中专门制成了一个相当容量的扩展存储单元—他们被用来修补存储阵列中那些坏的部分,这也是为了保证生产出来的产品全部拥有完好的存储区域。为了增加产量和降低生产成本, NAND Flash 器件中存在一些随机bad block 。为了防止数据存储到这些坏的单元中, bad block 在IC烧录前必须先识别。在一些出版物中, 有人称bad block 为“bad block”, 也有人称bad block 为“invalid block”。其实他们拥有相同的含义, 指相同的东西。 从实际的应用上来说, NOR Flash与NAND Flash主要的区别在于接口。NOR Flash拥有完整的存取-映射访问接口, 它拥有专门的地址线和数据线, 类似与EPROM。然而在NAND Flash中没有专门的地址线。它发送指令,地址和数据都通过8/16位宽的总线(I/O接口)到内部的寄存器。 SLC/MLC基本原理

深度解读海恩法则

深度解读海恩法 、海恩法则的定义 海恩法则:任何不安全事故都是可以预防的 海恩法则是德国飞机涡轮机的发明者德国人帕布斯海恩提出的一个在航空界关于飞行安全的法则。海恩法则指出: 每一起严重事故的背后,必然有29 次轻微事故和300起未遂先兆以及1000 起事故隐患。 虽然这一分析会随着飞行器的安全系数增加和飞行器的总量变化而发生变化,但它确实说明了飞行安全与 事故隐患之间的必然联系。当然,这种联系不仅仅表现在飞行领域,在其他领域也同样发生着潜在的作用。 按照海恩法则分析,当一起重大事故发生后,我们在处理事故本身的同时,还要及时对同类问题的征兆”和“事故苗 事故头”进行排查处理,以此防止类似问题的重复发生,及时解决再次发生重大事故的隐患,把问题解决在萌芽状态。 、海恩法则的精髓 海恩法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。 三、海恩法则的启示 (一)必须以预防为主 假如人们在安全事故发生之前,预先防范事故征兆、事故苗头,预先采取积极有效的防范措施,那么,事故苗头、事故征兆、事故本身就会被减少到最低限度,安全工作水平也就提高了。由此推断,要制服事故,重在防范,要保证安全,必须以预防为主。 1.要充分准备,不要仓促上阵。充分准备就是不仅熟知工作内容,而且熟悉工作过程的每一细节,特别是对工作中可能发生的异常情况,所有这些都必须在事前搞得清清楚楚;

2.要有应变措施,不要进退失据。应变措施就是针对事故苗头、事故征兆甚至安全事故可能发生所预定的对策与办法; 3.要见微知着,不要掉以轻心。有些微小异常现象是事故苗头、事故征兆的反映,必须及时抓住它,正确加以判断和处理,千万不能视若无睹,置之不理,遗下隐患; 4.要鉴以前车,不要孤行己见。要吸取别人、别单位安全问题上的经验教训,作为本单位本人安全工作的借鉴。传达安全事故通报,进行安全整顿时,要把重点放在查找事故苗头、事故征兆及其原因上,并且提出切实可行的防范措施; 5.要举一反三,不要固步自封。对于本人、本单位安全生产上的事例,不论是正面的还是反面的事例,只要具有典型性,就可以举一反三,推此及彼,进行深刻分析和生动教育,以求安全工作的提高和进步。绝不可以安于现状,不求上进; 6.要亡羊补牢,不要一错再错。发生了安全事故,正确的态度和做法就是要吸取教训,以免重蹈覆辙。绝不能对存在的安全隐患听之任之,以免错上加错。 (二)要有“小中见大”的敏锐眼光。 任何细小问题,都可能是导致安全事故发生的“导火索”,甚至是“定时炸弹”。比如一个烟头可能会引发一场火灾,一块劣质的钢筋可能会使一座大楼坍塌,一件质量不合格的刹车片可能会导致一起车祸,等等。所以,抓安全工作不能忽视小问题,要坚持从细小问题入手,以“小中见大”的敏锐眼光和“见微知着”的警觉意识,善于从各种征兆中发现苗头、从苗头中排除隐患。特别要善于发现和解决那些掩盖在成绩荣誉光环之下、隐匿在“歌舞升平”的表象之下、躲藏在司空见惯、见怪不怪的视线之下的各类细小问题,从中透过现象看本质、以小见大抓预防。

海力士NANDFlash选型

Q1’2011 DATABOOK Rev 0.1

NAND Flash –SLC / MLC / TLC AND Flash N NAND Flash SLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark HY27US08281A 90nm 128Mb 16KB Mono 3.3v/X8TSOP/USOP Now HY27US08561A 90nm 256Mb 16KB Mono 3.3v/X8TSOP/USOP/FBGA Now HY27US08121B 70nm 512Mb 16KB Mono 3.3v/X8TSOP/USOP/FBGA Now H27U518S2C 57nm 512Mb 16KB Mono 3.3v/X8TSOP Now HY27US081G1M 70nm 1Gb 16KB Mono 3.3v/X8USOP Now HY27UF081G2A 70nm 1Gb 128KB Mono 3.3v/X8TSOP/USOP/FBGA Now HY27US081G2A 70nm 1Gb 128KB Mono 1.8v/X8FBGA Now H27U1G8F2B 48nm 1Gb 128KB Mono 3.3v/X8TSOP,FBGA Now H27U1G8F2B 48nm 1Gb 128KB Mono 1.8v/X8FBGA Now H27U1G8F2CTR 32nm 1Gb 128KB Mono 1.8v/X8TSOP Q4 '11H27U1G8F2CFR 32nm 1Gb 128KB Mono 1.8v/X8FBGA Q4 '11HY27UF082G2B 57nm 2Gb 128KB Mono 3.3v/X8TSOP,FBGA, LGA Now H27U2G8F2C 41nm 2Gb 128KB Mono 3.3v/X8TSOP Now HY27UF084G2B 57nm 4Gb 128KB Mono 3.3v/X8TSOP Now H27U4G8F2D 41nm 4Gb 128KB Mono 3.3v/X8TSOP Now HY27UG088G5(D)B 57nm 8Gb 128KB DDP 3.3v/X8TSOP Now 2CE/Dual CH.H27U8G8G5D 41nm 8Gb 128KB Mono 3.3v/X8TSOP Now H27QBG8GDAIR-BCB 32nm 32Gb 512KB DDP 1.8v/x8VFBGA Now 2CE/Dual CH.H27QCG8HEAIR-BCB 32nm 64Gb 512KB QDP 1.8v/x8VFBGA Now 4CE/Dual CH.H27QDG8JEAJR-BCB 32nm 128Gb 512KB ODP 1.8v/x8 JFBGA Feb. '11 4CE/Dual CH.NAND Flash MLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark H27U8G8T2B 48nm 8Gb 512KB Mono 3.3v/X8TSOP Now H27UAG8T2M 48nm 16Gb 512KB(4KB Page)Mono 3.3v/X8TSOP/VLGA Now H27UAG8T2A 41nm 16Gb 512KB(4KB Page)Mono 3.3v/X8TSOP Now H27UBG8U5A 41nm 32Gb 512KB(4KB Page)DDP 3.3v/X8TSOP Now H27UBG8T2M 41nm 32Gb 512KB(4KB Page)Mono 3.3v/X8VLGA Now H27UBG8T2A 32nm 32Gb 2MB(8KB Page)SDP 3.3v/x8TSOP / VLGA Now H27UCG8VFA 41nm 64Gb 512KB(4KB Page)QDP 3.3v/X8TSOP Now H27UCG8UDM 41nm 64Gb 512KB(4KB Page)DDP 3.3v/X8VLGA Now Dual CH.H27UCG8U5(D)A 32nm 64Gb 2MB(8KB Page)DDP 3.3v/x8TSOP / VLGA Now Dual CH. LGA H27UCG8T2M 26nm 64Gb 2MB(8KB Page)SDP 3.3v/x8VLGA Now H27UDG8VEM 41nm 128Gb 512KB(4KB Page)QDP 3.3v/X8VLGA Now 4CE,Dual CH.H27UDG8V5(E)A 32nm 128Gb 2MB(8KB Page)QDP 3.3v/x8TSOP / VLGA Now 4CE,Dual CH.H27UEG8YEA 32nm 256Gb 2MB(8KB Page)ODP 3.3v/x8VLGA Now 4CE,Dual CH.H27UAG8T2B 32nm 16Gb 2MB(8KB Page)SDP 3.3v/x8TSOP Now H27UBG8T2B 26nm 32Gb 2MB(8KB Page)SDP 3.3v/x8TSOP Now Legacy H27UCG8U2B 26nm 64Gb 2MB(8KB Page)DDP 3.3v/x8TSOP Jan. '11Legacy H27UDG8V2B 26nm 128Gb 2MB(8KB Page)QDP 3.3v/x8FBGA-100Feb. '11HS(ONFi2.2)H27UEG8Y2B 26nm 256Gb 2MB(8KB Page) ODP 3.3v/x8 FBGA-100 Mar. '11 HS(ONFi2.2)NAND Flash TLC COMPONENT Product Tech Density Block Size Stack Vcc/Org Package Availability Remark H27UAG8M2M 41nm 16Gb 768KB (4KB page)SDP 3.3V/x8VLGA Now H27UBG8M2A 32nm 32Gb 1MB (4KB page) SDP 3.3V/x8 VLGA Now

深度解读海恩法则简易版

In Order To Simplify The Management Process And Improve The Management Efficiency, It Is Necessary To Make Effective Use Of Production Resources And Carry Out Production Activities. 编订:XXXXXXXX 20XX年XX月XX日 深度解读海恩法则简易版

深度解读海恩法则简易版 温馨提示:本安全管理文件应用在平时合理组织的生产过程中,有效利用生产资源,经济合理地进行生产活动,以达到实现简化管理过程,提高管理效率,实现预期的生产目标。文档下载完成后可以直接编辑,请根据自己的需求进行套用。 一、海恩法则的定义 海恩法则:任何不安全事故都是可以预防 的。 海恩法则是德国飞机涡轮机的发明者德国 人帕布斯?海恩提出的一个在航空界关于飞行 安全的法则。海恩法则指出: 每一起严重事故 的背后,必然有29次轻微事故和300起未遂先 兆以及1000起事故隐患。 虽然这一分析会随着飞行器的安全系数增 加和飞行器的总量变化而发生变化,但它确实 说明了飞行安全与事故隐患之间的必然联系。 当然,这种联系不仅仅表现在飞行领域,在其

他领域也同样发生着潜在的作用。 按照海恩法则分析,当一起重大事故发生后,我们在处理事故本身的同时,还要及时对同类问题的“事故征兆”和“事故苗头”进行排查处理,以此防止类似问题的重复发生,及时解决再次发生重大事故的隐患,把问题解决在萌芽状态。 二、海恩法则的精髓 海恩法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。 三、海恩法则的启示 (一)必须以预防为主 假如人们在安全事故发生之前,预先防范

NandFlash的基础知识

NAND FLASH的基础知识 NAND Flash 的数据是以bit 的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8 个或者16 个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device 的位宽。这些Line 会再组成Page,(Nand Flash 有多种结构,我使用的Nand Flash 是K9F1208,下面内容针对三星的K9F1208U0M),每页528Byte,每32 个page 形成一个Block, Sizeof(block)=16kByte = 32 page = 32 * 528 byte Numberof(block)=64Mbyte/16kbyte=4096 1page=528byte=512byte(Main Area)+16byte(Spare Area) Nand flash 以页为单位读写数据,而以块为单位擦除数据。按照这样的组织方式可以形成所谓的三类地址: --Block Address -- Page Address --Column Address 对于NAND Flash 来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8 位。 512byte需要9bit来表示,对于528byte系列的NAND,这512byte被分成1st half和2nd half,各自的访问由地址指针命令来选择,A[7:0]就是所谓的column address。32 个page 需要5bit 来表示,占用A[13:9],即该page 在块内的相对地址。Block的地址是由A14 以上的bit 来表示,例如512Mbit的NAND,共4096block,因此,需要12 个bit 来表示,即A[25:14],如果是1Gbit 的528byte/page的NAND Flash,则block address用A[26:24]表示。而page address就是blcok address|page address in block NAND Flash 的地址表示为:Block Address|Page Address in block|halfpage pointer|Column Address 地址传送顺序是Column Address,Page Address,Block Address。由于地址只能在I/O[7:0]上传递,因此,必须采用移位的方式进行。例如,对于512Mbit x8 的NAND flash,地址范围是0~0x3FF_FFFF,只要是这个范围内的数值表示的地址都是有效的。以NAND_ADDR 为例: ◆第1 步是传递column address,就是NAND_ADDR[7:0],不需移位即可传递到I/O[7:0] 上,而halfpage pointer 即bit8 是由操作指令决定的,即指令决定在哪个halfpage 上进行读写。而真正的bit8 的值是don't care 的。 ◆第2 步就是将NAND_ADDR 右移9 位,将NAND_ADDR[16:9]传到I/O[7:0]上 ◆第3 步将NAND_ADDR[24:17]放到I/O 上 ◆第4 步需要将NAND_ADDR[25]放到I/O 上因此,整个地址传递过程需要4 步才能 完成,即4-step addressing。 如果NAND Flash 的容量是256Mbit 以下,那么,block adress 最高位只到bit24,因此寻址只需要3 步。下面,就x16 的NAND flash 器件稍微进行一下说明。由于一个page 的main area 的容量为256word,仍相当于512byte。但是,这个时候没有所谓的1st halfpage 和2nd halfpage 之分了,所以,bit8就变得没有意义了,也就是这个时候bit8 完全不用管,地址传递仍然和x8 器件相同。除了,这一点之外,x16 的NAND使用方法和x8 的使用方法完全相同。 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的

Nand Flash存储结构及控制方法

Nand Flash存储结构及控制方法(K9F1G08) 2011-02-26 15:05:59| 分类:默认分类 | 标签: mini2440nandflash k9f1g08 |字号订阅 一、NAND Flash介绍和NAND Flash控制器的使用 NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘 常见的Flash有NOR Flash和NAND Flash,NOR Flash上进行读取的效率非常高,但是擦除和写操作的效率很低,容量一般比较小;NAND Flash进行擦除和写操作的效率更高,并且容量更大。一般NOR Flash用于存储程序,NAND Flash 用于存储数据。 1)NAND Flash的物理结构 笔者用的开发板上NAND Flash型号是K9F1G08,大小为128M,下图为它的封装和外部引脚 I/O0-I/O7 数据输入/输出 CLE 命令锁存使能 ALE 地址锁存使能 CE 芯片使能 RE 读使能 WE 写使能 WP 写保护 R/B 就绪/忙输出信号 Vcc 电源 Vss 地 N.C 不接 K9F1G08功能结构图如下

K9F1G08内部结构有下面一些功能部件 ①X-Buffers Latches & Decoders:用于行地址 ②Y-Buffers Latches & Decoders:用于列地址 ③Command Register:用于命令字 ④Control Logic & High Voltage Generator:控制逻辑及产生Flash所需高压 ⑤Nand Flash Array:存储部件 ⑥Data Register & S/A:数据寄存器,读、写页时,数据存放此寄存器 ⑦Y-Gating ⑧I/O Buffers & Latches ⑨Global Buffers ⑩Output Driver

2014《公共基础知识》试题及答案

2014年事业单位考试《公共基础知识》模拟试题及答案 一、单项选择题(在下列选项中选择最恰当的一项,本大题共有30小题,每小题1分,共30分。) 1、我国实行省级管理体制始于( )。 A. 秦朝 B. 唐朝 C. 元朝 D. 清朝 参考答案:C 解析:C 【解析】元朝各行省设平章政事,总揽一省军事、民政、财政诸大权,行省成为地方最高行政区划。故选C。 2、社会主义民主政治的本质是( )。 A. 人民当家作主 B. 人民民主专政 C. 人民代表大会制度 D. 人民参与国家管理 参考答案:A 解析:A 【解析】在我国,人民民主专政是国体,人民代表大会是政体,人民参与国家管理是人民当家作主的一项重要内容,故选A。 3、社会主义民主政治的本质和核心是( )。 A. 党的领导 B. 人民当家作主 C. 依法治国 D. 坚持和完善人民代表大会制度 参考答案:B 解析:B 【解析】十七大报告指出:“人民当家作主是社会主义民主政治的本质和核心。”故选B。 4、夏、商、周时期的重要制度不包括( )。 A. 世袭制 B. 宗法制 C. 分封制 D. 郡县制参考答案:D 解析:D 【解析】郡县制盛行于秦汉,是古代中央集权制在地方政权上的体现,它形成于战国时期。故选D。5错误的社会意识之所以错误,主要是由于( )。 A. 它纯粹是主观臆断,其内容与社会存在无关 B. 它落后于客观实际,不适合时代发展的需要 C. 它脱离多数人的觉悟程度,不能被多数人接受 D. 它是对社会存

在虚构的、歪曲的反映 参考答案:D 解析:D 【解析】意识是人脑对客观物质世界的反映,意识可分为正确的意识和错误的意识。意识之所以错误,是因为没有能够正确地反映客观存在。故选D。 6、《刑法》规定,犯罪主体对其实施的危害社会的行为及其所造成的危害结果所持的心理态度,称为( )。 A. 犯罪的主体 B. 犯罪的主观方面 C. 犯罪的客体 D. 犯罪的客观方面 参考答案:B 解析:B 【解析】犯罪主观方面,亦称犯罪主观要件或者罪过,是指行为人对自己的危害社会的行为及其危害社会的结果所持的故意或者过失的心理态度。人在实施犯罪时的心理状态是十分复杂的,概括起来有故意和过失这两种基本形式以及犯罪目的和犯罪动机这两种心理要素。故选8。 7、为贬低他人而取绰号的行为侵犯了公民的( )。 A. 隐私权 B. 名誉权 C. 肖像权 D. 健康权 参考答案:B 解析:B 【解析】名誉权是指公民和法人对其应有的社会评价所享有的不受他人侵害的权利,包括保护自己的社会良好评价或改善、改变不好评价的权利和维护名誉权不受侵害的权利。为贬低他人而取绰号的行为侵犯了公民的名誉权。故选B。 8、根据《立法法》的规定,法律议案审议的结果不可能是( )。 A. 签署公布 B. 终止审议 C. 进一步审议 D. 提请表决 参考答案:A 解析:A 【解析】根据我国《立法法》的相关规定,法律议案审议通过后,可以提请表决;仍有重大问题需要进一步研究的,交付有关部门进一步审议;存在较大意见分歧或因暂不付表决经过两年没有再次列入议程审议的,终止审议。法律议案经表决后通过的,由国家主席签署主席令予以公布。故选A。

NANDFLASH 常见问题汇总

NAND flash常见问题汇总 掉程序(这里专指使用NAND flash的主板掉程序),这是一个让工程师浑身发毛的问题,特别是用着用着程序就没有了,往往这个时候很多工程师都无法下手,问题出现的时候你可能根本不在旁边,无法看到问题现象,而且通过测量信号也很难发现问题的原因,这个时候很多工程师可能会采用更换主板器件的方式,用排除法来定位问题,基本上换一个NAND flash就可以解决问题了。这个时候很多工程师可能就会表示NAND flash有问题,需要换厂商,换品牌。但其实还可以更加深入的去了解问题的原因,这里我总结一下我遇到过得NAND flash掉程序的情况及原因。 1.电源电压不稳导致的NAND flash程序错误 很多时候,产品在客户手中出现了问题,工程师把产品拿回来,重新烧录程序产品可以上电启动,反复测试并不会出现掉程序的情况。如果这种产品是带有电池的产品,就可以考虑一下是否在客户实际使用中是用电池的情况,当电池的电量比较低,或者在极端情况下,程序对于电池电量的检测阈值较低,这个时候主控就有可能刚刚可以启动,但是很快电量不够,NAND flash内的程序乱掉,从而无法正常启动。 解决方法可以在程序中加入或者提高电池电量检测的阈值,保证所有芯片在这个阈值上均可以正常工作。 2.DRAM工作状态不正常导致的NAND flash程序错误 主控, DRAM和NAND flash基本构成了一个产品的最小系统。当系统中的任何一环出现问题,整个系统就可能出现问题。但是当DRAM出现问题时,有可能反映出来的是NAND flash 出错,掉程序或者查明NAND flash坏块过多。对于这种情况,处理起来就会复杂一些。如果直接重新烧录程序,系统又能正常工作,则说明之前存储在NAND flash中的程序确实乱了,但是NAND flash的功能正常,特别是SLC规格的1bit ECC 的NAND flash,出错概率非常小。因为对于NAND flash来说,只有当写数据或者擦除数据时,数据可能产生坏块,当程序只是读取的状态时,由于不涉及电荷的改变,所以NAND flash一般不会出现问题。但从程序的调试端口读到NAND flash坏块很多时,看是否有更深入的调试工具,例如JTAG等调试工具,可以深入调试NAND flash的情况。有些时候,因为一些程序误操作,导致将原本good block的标志位标记成了bad block。用过JTAG调试工具可以修改标志位,并且重新打标,重新烧录一遍程序,有可能主板又能重新启动了。 3.坏块管理未做好 因为NAND flash都面临着可能出现坏块的问题,所以必须应该对于坏块进行管理,在规格书中可以看到,坏块产生的三种情况,在编程的时候,在擦出的时候,在读取的时候。对于这几种情况下,程序应该怎么操作,规格书中也有流程图来说明,在读取和擦除中,如果出现失败情况,就需要重新坏一个块进行目标块的转移,并且对于当前块进行标识,在坏块表中进行更新。通过对于坏块表的维护,达到程序避免写入坏块中的情况。在读取程序时,也需要对于ECC进行校验,保证读取的程度是真实可靠的。但是很多工程师可能由于对于坏块管理做的不够仔细,导致产品在实际使用中,会出现掉程序的问题。工程师也应该从程序方面着手,分析一下程序对于坏块部分管理是否完善。 从上面三种类型只是部分说明了关于掉程序这个问题的一些原因。特别是对于1bit ECC 的SLC NAND flash大部分适用,工程师们可以进行参考。

《安全管理》之深度解读海恩法则

深度解读海恩法则 一、海恩法则的定义 海恩法则:任何不安全事故都是可以预防的。 海恩法则是德国飞机涡轮机的发明者德国人帕布斯?海恩提出的一个在航空界关于飞行安全的法则。海恩法则指出: 每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆以及1000起事故隐患。 虽然这一分析会随着飞行器的安全系数增加和飞行器的总量变化而发生变化,但它确实说明了飞行安全与事故隐患之间的必然联系。当然,这种联系不仅仅表现在飞行领域,在其他领域也同样发生着潜在的作用。 按照海恩法则分析,当一起重大事故发生后,我们在处理事故本身的同时,还要及时对同类问题的“事故征兆”和“事故苗头”进行排查处理,以此防止类似问题的重复发生,及时解决再次发生重大事故的隐患,把问题解决在萌芽状态。 二、海恩法则的精髓 海恩法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。 三、海恩法则的启示 (一)必须以预防为主 假如人们在安全事故发生之前,预先防范事故征兆、事故苗头,预先采取积极有效的防范措施,那么,事故苗头、事故征兆、事故本身就会被减少到最低限度,安全工作水平也就提高了。由此推断,要制服事故,重在防范,要保证安全,必须以预防为主。 要在安全工作中做到以预防为主,必须坚持“六要六不要”: 1.要充分准备,不要仓促上阵。充分准备就是不仅熟知工作内容,而且熟悉工

作过程的每一细节,特别是对工作中可能发生的异常情况,所有这些都必须在事前搞得清清楚楚; 2.要有应变措施,不要进退失据。应变措施就是针对事故苗头、事故征兆甚至安全事故可能发生所预定的对策与办法; 3.要见微知著,不要掉以轻心。有些微小异常现象是事故苗头、事故征兆的反映,必须及时抓住它,正确加以判断和处理,千万不能视若无睹,置之不理,遗下隐患; 4.要鉴以前车,不要孤行己见。要吸取别人、别单位安全问题上的经验教训,作为本单位本人安全工作的借鉴。传达安全事故通报,进行安全整顿时,要把重点放在查找事故苗头、事故征兆及其原因上,并且提出切实可行的防范措施; 5.要举一反三,不要固步自封。对于本人、本单位安全生产上的事例,不论是正面的还是反面的事例,只要具有典型性,就可以举一反三,推此及彼,进行深刻分析和生动教育,以求安全工作的提高和进步。绝不可以安于现状,不求上进; 6.要亡羊补牢,不要一错再错。发生了安全事故,正确的态度和做法就是要吸取教训,以免重蹈覆辙。绝不能对存在的安全隐患听之任之,以免错上加错。 (二)要有“小中见大”的敏锐眼光。 任何细小问题,都可能是导致安全事故发生的“导火索”,甚至是“定时炸弹”。比如一个烟头可能会引发一场火灾,一块劣质的钢筋可能会使一座大楼坍塌,一件质量不合格的刹车片可能会导致一起车祸,等等。所以,抓安全工作不能忽视小问题,要坚持从细小问题入手,以“小中见大”的敏锐眼光和“见微知著”的警觉意识,善于从各种征兆中发现苗头、从苗头中排除隐患。特别要善于发现和解决那些掩盖在成绩荣誉光环之下、隐匿在“歌舞升平”的表象之下、躲藏在司空见惯、见怪不怪的视线之下的各类细小问题,从中透过现象看本质、以小见大抓预防。 四、海恩法则的警示意义 实践也证明,只要安全工作做得扎实、管理到位,作业者的安全意识、技能和防范能力到位,大多数安全事故是可以有效预防和避免的。“海恩法则”实际上告诉了我们这样一个道理,要消除一起严重事故,必须提前防控1000起事故隐患。在

nandflash时序

三星系列的NAND FLASH芯片容量从8MB到256MB(最近听说有1G容量的了),对于需要大容量数据存储的嵌入式系统是一个很好的选择,尤其是其接近1MB/元的高性价比,更是普通nor flash 无法比拟的。本文以K9F2808U0C为例,采用AVR芯片连接,进行了初步的读写试验,完成了芯片的ID读出功能。 电路连接如下图: 左边是所使用的AVR芯片ATmega16L的局部电路,右边是K9F2808芯片的连接图,数据/地址总线使用ATmega16的PORTB端口连接,其它全部所需信号线使用IO连接,组成了IO模拟方式。 K9F2808芯片的全部命令字如下: 其中,Read1读取的是普通数据存储区域的数据,Read2读取的是每页存储器附加的16Bytes区域的数据;Page Program可以编程一页最大528Bytes的数据,Block Erase擦除指定页面数据,Read Status可以读取芯片状态。 芯片的整个读写时序可以分解为4个基本步骤,即1、命令写入,2、数据写入,3、数据读出,4、地址写入。 1、命令写入时序如下:

对应函数为: void WriteCmd(unsigned char cmd) { nandPortD = 0xFF; ClsLine(nandSPortO,nandALE); ClsLine(nandSPortO,nandnCE); SetLine(nandSPortO,nandCLE); ClsLine(nandSPortO,nandnWE); nandPortO = cmd; SetLine(nandSPortO,nandnWE); ClsLine(nandSPortO,nandCLE); SetLine(nandSPortO,nandALE); } 2、数据写入时序如下: 对应函数为:

Nand Flash的读写操作

NandFlash的读写操作 正如硬盘的盘片被分为磁道,每个磁道又分为若干扇区,一块nand flash也分为若干block,每个block分为如干page。一般而言,block、page之间的关系随着芯片的不同而不同,典型的分配是这样的: 1block = 32page 1 page = 512bytes(datafield) + 16bytes(oob) 需要注意的是,对于flash的读写都是以一个page开始的,但是在读写之前必须进行flash 的擦写,而擦写则是以一个block为单位的。同时必须提醒的是,512bytes理论上被分为1st half 和2sd half,每个half各占256个字节。 我们讨论的K9F1208U0B总共有4096 个Blocks,故我们可以知道这块flash的容量为4096 *(32 *528)= 69206016 Bytes = 66 MB 但事实上每个Page上的最后16Bytes是用于存贮检验码和其他信息用的,并不能存放实际的数据,所以实际上我们可以操作的芯片容量为4096 *(32 *512) = 67108864 Bytes = 64 MB 由上图所示,1个Page总共由528 Bytes组成,这528个字节按顺序由上而下以列为单位进行排列(1列代表一个Byte。第0行为第0 Byte ,第1行为第1 Byte,以此类推,每个行又由8个位组成,每个位表示1个Byte里面的1bit)。这528Bytes按功能分为两大部分,分别是Data Field和Spare Field,其中Spare Field占528Bytes里的16Bytes,这16Bytes是用于在读写操作的时候存放校验码用的,一般不用做普通数据的存储区,除去这16Bytes,剩下的512Bytes便是我们用于存放数据用的Data Field,所以一个Page上虽然有528个Bytes,

深度解读海恩法则参考文本

深度解读海恩法则参考文 本 In The Actual Work Production Management, In Order To Ensure The Smooth Progress Of The Process, And Consider The Relationship Between Each Link, The Specific Requirements Of Each Link To Achieve Risk Control And Planning 某某管理中心 XX年XX月

深度解读海恩法则参考文本 使用指引:此安全管理资料应用在实际工作生产管理中为了保障过程顺利推进,同时考虑各个环节之间的关系,每个环节实现的具体要求而进行的风险控制与规划,并将危害降低到最小,文档经过下载可进行自定义修改,请根据实际需求进行调整与使用。 一、海恩法则的定义 海恩法则:任何不安全事故都是可以预防的。 海恩法则是德国飞机涡轮机的发明者德国人帕布斯?海 恩提出的一个在航空界关于飞行安全的法则。海恩法则指 出: 每一起严重事故的背后,必然有29次轻微事故和300 起未遂先兆以及1000起事故隐患。 虽然这一分析会随着飞行器的安全系数增加和飞行器 的总量变化而发生变化,但它确实说明了飞行安全与事故 隐患之间的必然联系。当然,这种联系不仅仅表现在飞行 领域,在其他领域也同样发生着潜在的作用。 按照海恩法则分析,当一起重大事故发生后,我们在 处理事故本身的同时,还要及时对同类问题的“事故征

兆”和“事故苗头”进行排查处理,以此防止类似问题的重复发生,及时解决再次发生重大事故的隐患,把问题解决在萌芽状态。 二、海恩法则的精髓 海恩法则强调两点:一是事故的发生是量的积累的结果;二是再好的技术,再完美的规章,在实际操作层面,也无法取代人自身的素质和责任心。 三、海恩法则的启示 (一)必须以预防为主 假如人们在安全事故发生之前,预先防范事故征兆、事故苗头,预先采取积极有效的防范措施,那么,事故苗头、事故征兆、事故本身就会被减少到最低限度,安全工作水平也就提高了。由此推断,要制服事故,重在防范,要保证安全,必须以预防为主。 要在安全工作中做到以预防为主,必须坚持“六要六

NAND flash详解

NAND flash和NOR flash的区别详解 [导读]我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,很多人都 不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的这二种存储. 关键词:NOR flashNand flashFlaSh 我们使用的智能手机除了有一个可用的空间(如苹果8G、16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的。这二种存储设备我们都统称为“FLASH”,FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通地过程序可以修改数据,即平时所 说的“闪存”。Flash又分为NAND flash和NOR flash二种。U盘和MP3里用的就是这种存储器。 相“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。NOR Flash 的读取和我们常见的 SDRAM 的读取是一样,用户 可以直接运行装载在 NOR FLASH 里面的代码,这样可以减少 SRAM 的容量从而节约了成本。 NAND Flash 没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取 512 个字节, 采用这种技术的 Flash 比较廉价。用户不能直接运行 NAND Flash 上的代码,因此好多使用 NAND Flash 的 开发板除了使用 NAND Flah以外,还作上了一块小的 NOR Flash 来运行启动代码。 NOR flash是intel公司1988年开发出了NOR flash技术。NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。 Nand-flash内存是flash内存的一种,1989年,东芝公司发表了NAND flash结构。其内部采用非线性宏单元 模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快 等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、

nandflash命名规则大全(三星,海力士,美光)

NAND Flash Code Information(1/3)
Last Updated : August 2009
K9XXXXXXXX - XXXXXXX
1
1. Memory (K) 2. NAND Flash : 9 3. Small Classification (SLC : Single Level Cell, MLC : Multi Level Cell, SM : SmartMedia, S/B : Small Block) 1 : SLC 1 Chip XD Card 2 : SLC 2 Chip XD Card 3 : 4bit MLC Mono 4 : SLC 4 Chip XD Card 5 : MLC 1 Chip XD Card 6 : MLC 2 Chip XD Card 7 : SLC moviNAND 8 : MLC moviNAND 9 : 4bit MLC ODP A : 3bit MLC MONO B : 3bit MLC DDP C : 3bit MLC QDP F : SLC Normal G : MLC Normal H : MLC QDP K : SLC Die Stack L : MLC DDP M : MLC DSP N : SLC DSP O : 3bit MLC ODP P : MLC ODP Q : SLC ODP R : MLC 12-die stack S : MLC 6 Die Stack T : SLC SINGLE (S/B) U : MLC 16 Die Stack W : SLC 4 Die Stack 4~5. Density 12 : 512M 32 : 32M 64 : 64M 2G : 2G AG : 16G DG : 128G GG : 384G NG : 96G
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18
6. Technology 0 : Normal (x8) C : Catridge SIP M : moviNAND P : moviMCP Z : SSD 7. Organization 0 : NONE 6 : x16
1 : Normal (x16) D : DDR N : moviNAND FAB T : Premium eSSD
8 : x8
8. Vcc A : 1.65V~3.6V B : 2.7V (2.5V~2.9V) C : 5.0V (4.5V~5.5V) D : 2.65V (2.4V ~ 2.9V) E : 2.3V~3.6V R : 1.8V (1.65V~1.95V) Q : 1.8V (1.7V ~ 1.95V) T : 2.4V~3.0V S : 3.3V (3V~3.6V/ VccQ1.8V (1.65V~1.95V) U : 2.7V~3.6V V : 3.3V (3.0V~3.6V) W : 2.7V~5.5V, 3.0V~5.5V 0 : NONE 9. Mode 0 : Normal 1 : Dual nCE & Dual R/nB 3 : Tri /CE & Tri R/B 4 : Quad nCE & Single R/nB 5 : Quad nCE & Quad R/nB 6 : 6 nCE & 2 RnB 7 : 8 nCE & 4 RnB 8 : 8 nCE & 2 RnB 9 : 1st block OTP A : Mask Option 1 L : Low grade 10. Generation M : 1st Generation A : 2nd Generation B : 3rd Generation C : 4th Generation D : 5th Generation E : 6th Generation Y : 25th Generation Z : 26th Generation
16 : 16M 40 : 4M 80 : 8M 4G : 4G BG : 32G EG : 256G HG : 512G ZG : 48G
28 : 128M 56 : 256M 1G : 1G 8G : 8G CG : 64G FG : 256G LG : 24G 00 : NONE
-1-
Part Number Decoder

相关文档
最新文档