nand flash 原理簡(jiǎn)介【轉(zhuǎn)】Fisrt part : NAND flash和NOR flash的不同NOR flash采用位讀寫,因?yàn)樗哂衧ram的接口,有足夠的引腳來尋址,可以很容易的存取其內(nèi)部的每一個(gè)字節(jié)。
NAND flash使用復(fù)雜的I/O口來穿行地存取數(shù)據(jù)。8個(gè)引腳用來傳送控制、地址和數(shù)據(jù)信息。
NAND的讀和寫單位為512Byte的頁,擦寫單位為32頁的塊。 ● NOR的讀速度比NAND稍快一些。
● NAND的寫入速度比NOR快很多。 ● NAND的4ms擦除速度遠(yuǎn)比NOR的5s快。
● 大多數(shù)寫入操作需要先進(jìn)行擦除操作。 ● NAND的擦除單元更小,相應(yīng)的擦除電路更少。
在NOR器件上運(yùn)行代碼不需要任何的軟件支持,在NAND器件上進(jìn)行同樣操作時(shí),通常需要驅(qū)動(dòng)程序,也就是內(nèi)存技術(shù)驅(qū)動(dòng)程序(MTD),NAND和NOR器件在進(jìn)行寫入和擦除操作時(shí)都需要MTD。 ---------摘抄自網(wǎng)上流傳很廣的《NAND 和 NOR flash的區(qū)別》Second part: NAND Flash結(jié)構(gòu)與驅(qū)動(dòng)分析一、NAND flash的物理組成 NAND Flash 的數(shù)據(jù)是以bit的方式保存在memory cell,一般來說,一個(gè)cell 中只能存儲(chǔ)一個(gè)bit。
這些cell 以8個(gè)或者16個(gè)為單位,連成bit line,形成所謂的byte(x8)/word(x16),這就是NAND Device的位寬。這些Line會(huì)再組成Page,(NAND Flash 有多種結(jié)構(gòu),我使用的NAND Flash 是K9F1208,下面內(nèi)容針對(duì)三星的K9F1208U0M),每頁528Bytes(512byte(Main Area)+16byte(Spare Area)),每32個(gè)page形成一個(gè)Block(32*528B)。
具體一片flash上有多少個(gè)Block視需要所定。我所使用的三星k9f1208U0M具有4096個(gè)block,故總?cè)萘繛?096*(32*528B)=66MB,但是其中的2MB是用來保存ECC校驗(yàn)碼等額外數(shù)據(jù)的,故實(shí)際中可使用的為64MB。
NAND flash以頁為單位讀寫數(shù)據(jù),而以塊為單位擦除數(shù)據(jù)。按照這樣的組織方式可以形成所謂的三類地址: Column Address:Starting Address of the Register. 翻成中文為列地址,地址的低8位 Page Address :頁地址 Block Address :塊地址 對(duì)于NAND Flash來講,地址和命令只能在I/O[7:0]上傳遞,數(shù)據(jù)寬度是8位。
二、NAND Flash地址的表示 512byte需要9bit來表示,對(duì)于528byte系列的NAND,這512byte被分成1st half Page Register和2nd half Page Register,各自的訪問由地址指針命令來選擇,A[7:0]就是所謂的column address(列地址),在進(jìn)行擦除操作時(shí)不需要它,why?因?yàn)橐詨K為單位擦除。32個(gè)page需要5bit來表示,占用A[13:9],即該page在塊內(nèi)的相對(duì)地址。
A8這一位地址被用來設(shè)置512byte的1st half page還是2nd half page,0表示1st,1表示2nd。Block的地址是由A14以上的bit來表示。
例如64MB(512Mb)的NAND flash(實(shí)際中由于存在spare area,故都大于這個(gè)值),共4096block,因此,需要12個(gè)bit來表示,即A[25:14],如果是128MB(1Gbit) 的528byte/page的NAND Flash,則block address用A[26:14]表示。而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]上傳遞,因此,必須采用移位的方式進(jìn)行。 例如,對(duì)于512Mbit x8的NAND flash,地址范圍是0~0x3FF_FFFF,只要是這個(gè)范圍內(nèi)的數(shù)值表示的地址都是有效的。
以NAND_ADDR 為例: 第1 步是傳遞column address,就是NAND_ADDR[7:0],不需移位即可傳遞到I/O[7:0]上,而halfpage pointer即A8 是由操作指令決定的,即指令決定在哪個(gè)halfpage 上進(jìn)行讀 寫,而真正的A8 的值是不需程序員關(guān)心的。 第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上; 因此,整個(gè)地址傳遞過程需要4 步才能完成,即4-step addressing。
如果NAND Flash 的容量是32MB(256Mbit)以下,那么,block adress最高位只到bit24,因此尋址只需要3步。 下面,就x16 的NAND flash 器件稍微進(jìn)行一下說明。
由于一個(gè)page 的main area 的容量為256word,仍相當(dāng)于512byte。但是,這個(gè)時(shí)候沒有所謂的1st halfpage 和2nd halfpage 之分了,所以,bit8就變得沒有意義了,也就是這個(gè)時(shí)候 A8 完全不用管,地址傳遞仍然和x8 器件相同。
除了,這一點(diǎn)之外,x16 的NAND使用方法和 x8 的使用方法完全相同。三、NAND flash驅(qū)動(dòng)解讀 以前由于做移植多一些,那些工作很簡(jiǎn)單(現(xiàn)在看來),從來都不用去關(guān)心驅(qū)動(dòng)里面到底怎么實(shí)現(xiàn)的,這幾次面試才發(fā)現(xiàn)真的是學(xué)的太淺了,似乎我還在學(xué)習(xí)仰泳而那些牛人基本都屬于潛水級(jí)的了,潛的不知有多深。
我對(duì)照著開發(fā)板所帶的NAND flash驅(qū)動(dòng)和k9f1208的芯片資料把這些代碼通讀了一遍,終于明白了NAND flash的讀寫過程是如何實(shí)現(xiàn)的了。我所參考的驅(qū)動(dòng)是mizi公司為三星芯片所寫的,我看看了,大概和官方2.4.18內(nèi)核的nand.c差不多。
在s3c2410處理器中有專門的NAND flash控制器,他們位于SFR區(qū),具體可以參看s3c2410用戶手冊(cè)。以下的這些代碼均可以在vivi或者kernel里面找到,文中會(huì)標(biāo)明程序出自何處。
在vivi中。
什么是Flash Memory?FLASH存儲(chǔ)器又稱閃存(快閃存儲(chǔ)器),是一種電可擦可編程只讀存儲(chǔ)器(EEPROM)的形式,允許在操作中被多次擦或?qū)懀珽EPROM與高速RAM成為當(dāng)前最常用且發(fā)展最快的兩種存儲(chǔ)技術(shù)。
計(jì)算機(jī)的BIOS 、數(shù)字照相機(jī)等的存儲(chǔ)卡中都使用閃存。 不同的是,EEPROM是以字節(jié)為單位進(jìn)行數(shù)據(jù)更新,而閃存則以塊為單位。
由于閃存可以比 EEPROM具有更小的電路,這使其能夠達(dá)到更高的集成度,有利于降低價(jià)格。 FLASH結(jié)合了ROM和RAM的長(zhǎng)處,不僅具備電子可擦除可編程(EEPROM)的性能,還不會(huì)斷電丟失數(shù)據(jù)同時(shí)可以快速讀取數(shù)據(jù)(NVRAM的優(yōu)勢(shì)),U盤和MP3里用的就是這種存儲(chǔ)器。
在過去的20年里,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲(chǔ)設(shè)備,近年來Flash全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位,用作存儲(chǔ)BootLoader以及操作系統(tǒng)或者程序代碼或者直接當(dāng)硬盤使用(U盤)。閃存卡(Flash Card)是利用閃存(Flash Memory)技術(shù)達(dá)到存儲(chǔ)電子信息的存儲(chǔ)器。
目前市場(chǎng)上主要的閃存或者多媒體卡主要為:TF卡、SM卡、CF卡、MicroDrive、MemoryStick、MemoryStick PRO, MMC卡、Micro SD Card、MiniSD卡、SD卡、SDHC卡和xD卡。 我們常見的FLASH Memory有儲(chǔ)存卡與U盤。
TF卡(TransFLash卡)、SD卡(Secure Digital Memory Card)、CF卡(Compact Flash卡)等。 CF卡(Compact Flash)是1994年由SanDisk最先推出的一種閃存卡,它革命性的使用了閃存技術(shù),對(duì)所保存的數(shù)據(jù)來說,CF卡比傳統(tǒng)的磁盤驅(qū)動(dòng)器安全性和保護(hù)性都更高。
90年代末至21世紀(jì)初出現(xiàn)了SD、MMC、SDHC、MS、xD圖像卡等等記憶卡制式,它們將占據(jù)各種數(shù)碼產(chǎn)品及移動(dòng)存儲(chǔ)。路由器、交換器等大多數(shù)的網(wǎng)絡(luò)及電信設(shè)備及數(shù)碼相機(jī)仍以CF卡為主要的外部?jī)?chǔ)存裝置。
SM卡(Smart Media)是由東芝公司在1995年11月退出的Flash Memory存貯卡,三星公司在1996年購買了生產(chǎn)和銷售許可,這兩家公司成為主要的SM卡廠商。SmartMedia卡是市場(chǎng)上常見的微存貯卡(但是最大容量只有128MB),一度在MP3播放器上非常的流行。
SmartMedia卡被視為軟磁盤的替代者,曾是數(shù)碼相機(jī)普遍支持的存儲(chǔ)格式,如今已是沒落消亡之勢(shì)。這一格式相比其他而言最大的好處是通過一個(gè)名為FlashPath的轉(zhuǎn)換器,可以在標(biāo)準(zhǔn)的3.5英寸軟盤驅(qū)動(dòng)器內(nèi)使用任何容量的SM卡。
MMC卡(MultiMedia Card)卡由西門子公司和首推CF的SanDisk公司于1997年聯(lián)合推出,號(hào)稱是目前世界上最小的Flash Memory存貯卡。 近年MMC卡技術(shù)已差不多完全被SD卡所代替,但由于MMC卡仍可被兼容SD卡的設(shè)備所讀取,因此仍有其作用。
少數(shù)一些公司,最著名的如諾基亞,仍然全部地支持MMC。MS卡(Memory Stick)通常稱為記憶棒,是Sony公司研發(fā)并于1998年10月推出市場(chǎng)的,采用了Sony自己的外型、協(xié)議、物理格式和版權(quán)保護(hù)的一種閃存卡。
MS卡的規(guī)格和同一時(shí)間上市的MMC很相似。 SD卡(Security Digital Memory Card,譯成安全數(shù)碼卡)由松下、東芝和SanDisk聯(lián)合推出,1999年8月才首次發(fā)布,大小如一張郵票。
一般SD卡也能夠向下兼容MMC卡。容量4GB以上稱為microSDHC(Secure Digital High Capacity),更大的容量就必須使用microSDXC(Secure Digital eXtended Capacity)規(guī)格。
SD卡是東芝在MMC卡技術(shù)中加入加密技術(shù)硬件而成,SD/MMC卡已經(jīng)替代東芝開發(fā)的SM卡,成為了便攜式數(shù)碼相機(jī)使用最廣泛的數(shù)字存儲(chǔ)卡格式。之前仍然在堅(jiān)持使用自己的專利格式的三大主要廠商:奧林巴斯和富士(xD卡),索尼(Memory Stick),也開始轉(zhuǎn)而使用SD卡(或提供雙卡支持)。
SD讀卡器對(duì)計(jì)算機(jī)來說類似一個(gè)USB的軟驅(qū)的作用,插上SD卡后的讀卡器跟U盤功能是一樣的,大小也和普通U盤類似。讀卡器與電腦主機(jī)之間的連接都是采用USB接口,這種產(chǎn)品是配合數(shù)碼相機(jī)而產(chǎn)生的。
有外接式和內(nèi)置式兩種,不少新的個(gè)人電腦都已經(jīng)內(nèi)置了多功能的讀卡器。 TF卡(TransFlash)由SanDisk(閃迪)公司發(fā)明創(chuàng)立,是一種主要用于手機(jī)的極細(xì)小的快閃存儲(chǔ)器卡,2004年重命名為MicroSD(顧名思義,就是小SD卡)。
幾乎只有一片指甲蓋的大小,主流臺(tái)式機(jī)、筆記本上均沒有直接插槽,通過SD式讀卡器連接后可以讀寫數(shù)據(jù)。 xD卡(eXtreme Digital-Picture Card)是一種專門于數(shù)碼相機(jī)的閃存存儲(chǔ)卡,由富士膠卷與奧林巴斯聯(lián)合于2002年7月發(fā)布,用于取代SM卡(SmartMedia Card)。
miniSD是閃迪2003年發(fā)布的極細(xì)小型規(guī)格標(biāo)準(zhǔn)SD卡,特別設(shè)計(jì)于移動(dòng)電話上,并隨卡附上minSD轉(zhuǎn)接器,令它能夠兼容所有配置了標(biāo)準(zhǔn)SD卡插槽的設(shè)備中。 微硬盤MD(Microdrive)最早是由IBM公司開發(fā)并于1999年上市的一款體積非常微小的硬盤式數(shù)據(jù)存儲(chǔ)設(shè)備,用來對(duì)抗市面上主流的閃存產(chǎn)品。
IBM將旗下硬盤部門賣給了日立(Hitachi)公司,因此自2003年起MicroDrive的技術(shù)與專利是由日立公司擁有。微型硬盤具有記憶容量大、讀寫速率高有點(diǎn),缺點(diǎn)是較為耗電、容易發(fā)熱、使用壽限較短和抗震性能差。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時(shí)間:2.832秒