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