久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

扇區(qū) 物理塊 邏輯塊 flash 基礎(chǔ)概念

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年08月18日   【字體:

sector:硬件(磁盤)上的最小的操作單位,是操作系統(tǒng)和塊設(shè)備(硬件、磁盤)之間傳送數(shù)據(jù)的單位

 

block由一個(gè)或多個(gè)sector組成,是軟件(OS、文件系統(tǒng))中最小的操作單位;操作系統(tǒng)的虛擬文件系統(tǒng)從硬件設(shè)備上讀取一個(gè)block,實(shí)際為從硬件設(shè)備讀取一個(gè)或多個(gè)sector.對(duì)于文件管理來說,每個(gè)文件對(duì)應(yīng)的多個(gè)block可能是不連續(xù)的;block最終要映射到sector上,所以block的大小一般是sector的整數(shù)倍。不同的文件系統(tǒng)block可使用不同的大小,操作系統(tǒng)會(huì)在內(nèi)存中開辟內(nèi)存,存放block到所謂的block buffer中。

=======================================================================

扇區(qū)組成物理塊,物理塊對(duì)應(yīng)邏輯塊,邏輯塊與文件相對(duì)應(yīng)。

扇區(qū)是硬件被操作時(shí)軟件使用的最小的操作單元,就是一個(gè)扇區(qū)一個(gè)扇區(qū)進(jìn)行操作(扇區(qū)的大小在存儲(chǔ)設(shè)備生產(chǎn)時(shí)就設(shè)計(jì)好)。

塊是上層軟件中(操作文件時(shí))使用的最小的操作單元,就是(操作文件時(shí))一個(gè)塊一個(gè)塊進(jìn)行操作(塊的大小格式化時(shí)可以設(shè)置【如linux、fatfs等等】)。

如fatfs的格式化函數(shù)(即在存儲(chǔ)設(shè)備上建立文件系統(tǒng))

創(chuàng)建文件系統(tǒng)時(shí),可以指定塊的大小。如果將來在你的文件系統(tǒng)中是一些比較大的文件的話,使用較大的塊大小將得到較好的性能。將ext2文件系統(tǒng)的塊大小調(diào)整為4096byte而不是缺省的1024byte,可以減少文件碎片,加快fsck掃描的速度和文件刪除以及讀操作的速度。另外,在ext2的文件系統(tǒng)中,為根目錄保留了5%的空間,對(duì)一個(gè)大的文件系統(tǒng),除非用作日志文件,5%的比例有些過多?梢允褂妹"# mke2fs -b 4096 -m 1 /dev/hda6"將它改為1%并以塊大小4096byte創(chuàng)建文件系統(tǒng)。 
使用多大的塊大小,需要根據(jù)你的系統(tǒng)綜合考慮,如果系統(tǒng)用作郵件或者新聞服務(wù)器,使用較大的塊大小,雖然性能有所提高,但會(huì)造成磁盤空間較大的浪費(fèi)。比如文件系統(tǒng)中的文件平均大小為2145byte,如果使用4096byte的塊大小,平均每一個(gè)文件就會(huì)浪費(fèi)1951byte空間。如果使用 1024byte 的塊大小,平均每一個(gè)文件會(huì)浪費(fèi)927byte空間。在性能和磁盤的代價(jià)上如何平衡,要看具體應(yīng)用的需要。 
第1組命令: 
mkfs.ext3 -T news /dev/sda5 (指定該分區(qū)文件系統(tǒng)的塊大小為4096) 
mkfs.ext3 -b 4096 /dev/sda5 

norflash有地址線與數(shù)據(jù)線,可以通過芯片對(duì)應(yīng)的手冊(cè)查到該norflash的扇區(qū)的大小。

nandflash使用復(fù)用的接口線,它內(nèi)部有一個(gè)頁寄存器(一個(gè)頁:大小一般為512字節(jié)),nandflash內(nèi)部存儲(chǔ)管理使用的塊大小是多少個(gè)頁。它的扇區(qū)一般為一個(gè)頁的一半大小。

=======================================================================

winhex的使用:

   打開對(duì)應(yīng)磁盤

         

       如上圖所示,為打開一個(gè)磁盤后的數(shù)據(jù),這時(shí)的偏移地址是相對(duì)磁盤的存儲(chǔ)起始地址而言,上圖所示,磁盤有一個(gè)分區(qū)(FAT16),還使用了一個(gè)扇區(qū)。

       在通過KEIL4讀SD卡時(shí),給一個(gè)偏移地址0x11400,讀取到的數(shù)據(jù)就是這個(gè)根目錄下的偏移地址。如果點(diǎn)擊打開Partion 1,那么這是顯示的offset就是相對(duì)Partion 1的偏移地址。 

=======================================================================

我們把Ext2、MinixExt等實(shí)際可使用的文件系統(tǒng)稱為具體文件系統(tǒng)。具體文件系統(tǒng)管理的是一個(gè)邏輯空間,這個(gè)邏輯空間就一個(gè)大的數(shù)組,數(shù)組的每個(gè)元素就是文件系統(tǒng)操作的基本單位——邏輯塊,邏輯塊是從0開始編號(hào)的,而且,邏輯塊是連續(xù)的。與邏輯塊相對(duì)的是物理塊,物理塊是數(shù)據(jù)在磁盤上的存取單位,也就是每進(jìn)行一次I/O操作,最小傳輸?shù)臄?shù)據(jù)大小。我們知道數(shù)據(jù)是存儲(chǔ)在磁盤的扇區(qū)中的,那么扇區(qū)是不是物理塊呢?或者物理塊是多大呢?這涉及到文件系統(tǒng)效率的問題。

如果物理塊定的比較大,比如一個(gè)柱面大小,這時(shí),即使是1個(gè)字節(jié)的文件都要占用整個(gè)一個(gè)柱面,假設(shè)Linux環(huán)境下文件的平均大小為1K,那么分配32K的柱面將浪費(fèi)97%的磁盤空間,也就是說,大的存取單位將帶來嚴(yán)重的磁盤空間浪費(fèi)。另一方面,如果物理塊過小,則意味著對(duì)一個(gè)文件的操作將進(jìn)行更多次的尋道延遲和旋轉(zhuǎn)延遲,因而讀取由小的物理塊組成的文件將非常緩慢!可見,時(shí)間效率和空間效率在本質(zhì)上是相互沖突的。

因此,最優(yōu)的方法是計(jì)算出Linux環(huán)境下文件的平均大小,然后將物理塊大小定為最接近扇區(qū)的整數(shù)大小。在Ext2中,物理塊的大小是可變化的,這取決于你在創(chuàng)建文件系統(tǒng)時(shí)的選擇,之所以不限制大小,也正體現(xiàn)了Ext2的靈活性和可擴(kuò)充性,一是因?yàn)橐m應(yīng)近年來文件的平均長度緩慢增長的趨勢(shì),二是為了適應(yīng)不同的需要。比如,如果一個(gè)文件系統(tǒng)主要用于BBS服務(wù),考慮到BBS上的文章通常短小,所以,物理塊選的小一點(diǎn)是恰當(dāng)?shù)摹Mǔ#?span xml:lang="EN-US">Ext2物理塊占一個(gè)或幾個(gè)連續(xù)的扇區(qū),顯然,物理塊的數(shù)目是由磁盤容量等硬件因素決定的。邏輯塊與物理塊的關(guān)系類似于虛擬內(nèi)存中的頁與物理內(nèi)存中的頁面的關(guān)系。

具體文件系統(tǒng)所操作的基本單位是邏輯塊,只在需要進(jìn)行I/O操作時(shí)才進(jìn)行邏輯塊到物理塊的映射,這顯然避免了大量的I/O操作,因而文件系統(tǒng)能夠變得高效。邏輯塊作為一個(gè)抽象的概念,它必然要映射到具體的物理塊上去,因此,邏輯塊的大小必須是物理塊大小的整數(shù),一般說來,兩者是一樣大的。

通常,一個(gè)文件占用的多個(gè)物理塊在磁盤上是不連續(xù)存儲(chǔ)的,因?yàn)槿绻B續(xù)存儲(chǔ),則經(jīng)過頻繁的刪除、建立、移動(dòng)文件等操作,最后磁盤上將形成大量的空洞,很快磁盤上將無空間可供使用。因此,必須提供一種方法將一個(gè)文件占用的多個(gè)邏輯塊映射到對(duì)應(yīng)的非連續(xù)存儲(chǔ)的物理塊上去,Ext2等類文件系統(tǒng)是用索引節(jié)點(diǎn)解決這個(gè)問題的,具體實(shí)現(xiàn)方法后面再予以介紹。

為了更好的說明邏輯塊和物理塊的關(guān)系,我們來看一個(gè)例子。

假設(shè)用戶要對(duì)一個(gè)已有文件進(jìn)行寫操作,用戶進(jìn)程必須先打開這個(gè)文件,file結(jié)構(gòu)記錄了該文件的當(dāng)前位置。然后用戶把一個(gè)指向用戶內(nèi)存區(qū)的指針和請(qǐng)求寫的字節(jié)數(shù)傳送給系統(tǒng),請(qǐng)求寫操作,這時(shí)系統(tǒng)要進(jìn)行兩次映射。

1)一組字節(jié)到邏輯塊的映射。

這個(gè)映射過程就是找到起始字節(jié)到結(jié)束字節(jié)所占用的所有邏輯塊號(hào)。這是因?yàn)樵谶壿嬁臻g,文件傳輸?shù)幕締挝皇沁壿媺K而不是字節(jié)。

2)邏輯塊到物理塊的映射。

這個(gè)過程必須要用到索引節(jié)點(diǎn)結(jié)構(gòu),該結(jié)構(gòu)中有一個(gè)物理塊指針數(shù)組,以邏輯塊號(hào)為索引,通過這些指針找到磁盤上的物理塊,具體實(shí)現(xiàn)將在介紹Ext2索引節(jié)點(diǎn)時(shí)再進(jìn)行介紹。

9.1是由一組請(qǐng)求的字節(jié)到物理塊的映射過程示意圖。

 

 

 有了邏輯塊和物理塊的概念,我們也就知道通常所說的數(shù)據(jù)塊是指邏輯塊,以下沒有特別說明,塊或數(shù)據(jù)塊指的是邏輯塊。

Ext2中,還有一個(gè)重要的概念:片(fragment,它的作用是什么?

每個(gè)文件必然占用整數(shù)個(gè)邏輯塊,除非每個(gè)文件大小都恰好是邏輯塊的整數(shù),否則最后一個(gè)邏輯塊必然有空間未被使用,實(shí)際上,每個(gè)文件的最后一個(gè)邏輯塊平均要浪費(fèi)一半的空間,顯然最終浪費(fèi)的還是物理塊。在一個(gè)有很多文件的系統(tǒng)中,這種浪費(fèi)是很大的。Ext2使用片來解決這個(gè)問題。

片也是一個(gè)邏輯空間中的概念,其大小在1K4K之間,但片的大小總是不大于邏輯塊。假設(shè)邏輯塊大小為4K,片大小為1K,物理塊大小也是1K,當(dāng)你要?jiǎng)?chuàng)建一個(gè)3K大小的文件時(shí),實(shí)際上分配給你了3個(gè)片,而不會(huì)給你一個(gè)邏輯塊,當(dāng)文件大小增加到4K時(shí),文件系統(tǒng)則分配一個(gè)邏輯塊給你,而原來的四個(gè)片被清空。如果文件又增加到5K時(shí),則占用1個(gè)邏輯塊和1個(gè)片。上述三種情況下,所占用的物理塊分別3個(gè)、4個(gè)、5個(gè),如果不采用片,則要用到4個(gè)、4個(gè)、8個(gè)物理塊,可見,使用片,減少了磁盤空間的浪費(fèi)。當(dāng)然,在物理塊和邏輯塊大小一樣時(shí),片就沒有意義了。

由上面分析也可看出:

物理塊大小<=片大小<=邏輯塊大小

=========================================================================

NANDFLASH是FLASH存儲(chǔ)器的一種,與NOR FLASH相比,NANDFLASH具有更高的存儲(chǔ)密度,單片F(xiàn)LASH的存儲(chǔ)容量大大增加,也使得NANDFLASH的價(jià)格遠(yuǎn)遠(yuǎn)低于NOR FLASH。NANDFLASH采用命令方式實(shí)現(xiàn)讀寫和擦除,只需要8或16根數(shù)據(jù)線及相關(guān)的控制線,而且目前相同類型的NANDFLASH芯片都做到了管腳兼容,使得NANDFLASH在不變更電路板的條件下更容易增加或減少容量。另外NANDFLASH還具有讀寫速度快的特點(diǎn)。NANDFLASH具有以上特點(diǎn),才使得它得到了廣泛的應(yīng)用。 
NANDFLASH存儲(chǔ)按頁(page)的方式,根據(jù)頁的大小不同,NANDFALSH可分為大頁(每頁2048+64字節(jié))和小頁(每頁512+16字節(jié))兩種。目前使用最多最廣泛的為大頁的FLASH,本文檔中如不做特殊說明,則指的是大頁的NANDFLASH。 
      NANDFLASH有2048個(gè)塊(塊為擦除的最小單位),每個(gè)塊包含64個(gè)頁,每頁有2048+64個(gè)字節(jié)。數(shù)據(jù)地址分為行地址和列地址兩種,行地址(Row)為頁地址,即頁的偏移量;列地址(Column)為頁內(nèi)地址,即每個(gè)字節(jié)的頁內(nèi)偏移量。頁內(nèi)的前2048字節(jié)一般用于數(shù)據(jù)存儲(chǔ),通常被程為data區(qū);后64字節(jié)一般用于存儲(chǔ)校驗(yàn)數(shù)據(jù)和文件系統(tǒng)的參數(shù)信息,這后64字節(jié)通常被稱為spare區(qū),而這些字節(jié)常被稱為冗余字節(jié)。NANDFLASH里通常集成了ECC發(fā)生器,用于產(chǎn)生ECC校驗(yàn)碼。ECC在寫操作時(shí)產(chǎn)生,寫入spare區(qū),讀操作時(shí)將spare區(qū)內(nèi)的ECC與讀數(shù)據(jù)時(shí)產(chǎn)生的ECC比對(duì),來決定讀出的數(shù)據(jù)是否正確。另外ECC還具有糾錯(cuò)能力,根據(jù)ECC字節(jié)的長度不同,糾錯(cuò)位數(shù)也有所不同。一般4字節(jié)的ECC,可以糾1個(gè)BIT的錯(cuò)誤;7字節(jié)的ECC,可以糾2—3個(gè)BIT的錯(cuò)誤。由于NANDFLASH的制造工藝決定了NANDFLASH的所有存儲(chǔ)單元不可能都是好的,對(duì)于那些壞的存儲(chǔ)單元所在的塊,需要在spare區(qū)里標(biāo)記為壞塊;在進(jìn)行寫操作時(shí),程序要對(duì)這些壞塊進(jìn)行判斷以避開這些塊。 
對(duì)于三星平臺(tái),直接使用NANDFLASH作為手機(jī)內(nèi)的存儲(chǔ)器,一個(gè)分了7個(gè)區(qū)(bootloader、nk、systemdata、Userdata、DBData、DBBack、RegData),其中bootloader、nk分區(qū)無文件系統(tǒng),存放的是bootloader和nk程序;其他分區(qū)均有文件系統(tǒng),供wince啟動(dòng)之后是用。對(duì)于TI和FREECALE平臺(tái),使用mdoc作為手機(jī)內(nèi)的存儲(chǔ)器。 
FMD層提供的接口有: 
FMD_Deinit:驅(qū)動(dòng)卸載時(shí)調(diào)用,主要用于關(guān)閉初始化函數(shù)里打開的句柄; 
FMD_Init:驅(qū)動(dòng)加載時(shí)調(diào)用,為設(shè)備初始化函數(shù); 
FMD_GetInfo:獲得該分區(qū)的基本信息; 
FMD_GetBlockStatus:獲得指定塊的狀態(tài)信息; 
FMD_OEMIoControl:提供給OEM廠家直接調(diào)用的接口; 
FMD_PowerUp:驅(qū)動(dòng)喚醒時(shí)調(diào)用的接口; 
FMD_PowerDown:驅(qū)動(dòng)進(jìn)入待機(jī)狀態(tài)時(shí)調(diào)用的接口; 
FMD_ReadSector:按扇區(qū)讀取NANDFLASH里的數(shù)據(jù); 
FMD_WriteSector:按扇區(qū)向NANDFLASH里寫入數(shù)據(jù); 
FMD_SetBlockStatus:設(shè)定指定塊的狀態(tài); 
FMD_EraseBlock:擦除指定的塊; 

=========================================================================

 

  在過去的20年里,嵌入式系統(tǒng)一直使用ROM(EPROM)作為它們的存儲(chǔ)設(shè)備。然而近年來Flash 全面代替了ROM(EPROM)在嵌入式系統(tǒng)中的地位。因?yàn)橄噍^ROM而言,F(xiàn)lash有成本低,容易改寫等優(yōu)點(diǎn)。

  目前Flash主要有兩種 NOR Flash 和 NADN Flash 它們?cè)趹?yīng)用上有所不同因此也用于不同的場(chǎng)合。

  讀取NOR Flash和讀取我們常見的SDRAM是一樣的。它的所有地址都是可見的,你可以讀取它任意隨機(jī)地址的值。同時(shí)它和SDRAM一樣你可以直接運(yùn)行裝載在NOR FLASH里面的代碼,這就是作謂的XIP(Execute-In-Place)技術(shù)。因?yàn)镹OR Flash有這種特性,所以它非常適用于小型嵌入式系統(tǒng)。你可以把你的代碼裝載到Flash中,在系統(tǒng)啟動(dòng)的時(shí)候直接運(yùn)行它,而減少SRAM的容量從而節(jié)約了成本。

  從這種意義上來說,NOR FLASH已經(jīng)可以代替原先我們一直使用的標(biāo)準(zhǔn)的ROM。并且還具有ROM所沒有的特性。

  目前市面上的FLASH 主要來自Intel,AMD,F(xiàn)ujitsu,和Toshiba。常用的容量一般在128K到64M之間。

  NAND Flash 沒有采取內(nèi)存的隨機(jī)讀取技術(shù)。它的讀取是以一次讀取一塊的形式來進(jìn)行的,通常是一次讀取512個(gè)字節(jié)。采用這種技術(shù)的Flash比較廉價(jià)。但是和所有塊設(shè)備一樣,NAND Flash 比較容易出現(xiàn)壞位。這需要我們采用軟件來避免使用這些位。這樣以來就增加了軟件的復(fù)雜度。你不能直接運(yùn)行NAND Flash上的代碼。因此好多使用NAND Flash的開發(fā)板除了使用NAND Flah以外,還加上了一塊小的NOR Flash來運(yùn)行啟動(dòng)代碼。這樣做會(huì)增加系統(tǒng)的復(fù)雜度。不過最近這種現(xiàn)象有所改觀。三星最近生產(chǎn)的一批采用ARM Core的CPU,采用了一個(gè)內(nèi)部的緩沖來存放NAND Flash里讀取的東西。以此來直接運(yùn)行NAND FLASH里面啟動(dòng)代碼。比如基于Arm920T和新的S3c2410芯片。

  另外,我們最常見的NAND FLASH的應(yīng)用是嵌入式系統(tǒng)采用的DOC(Disk On Chip)和我們通常用的“閃盤”。

  目前生產(chǎn)NAND Flash的主要廠家有Samsung 和Toshiba。最大容量已經(jīng)突破了1G位。寫Flash和寫SRAM截然不同。它是通過一系列指令才能完成一個(gè)寫操作的。而我們用的RAM直接寫入即可。無論是NOR Flash 還是NAND Flash都有一個(gè)“扇區(qū)”的概念。這個(gè)“扇區(qū)”從8K到256K不等。在寫操作中它將作為一個(gè)整體來操作。要向某個(gè)地址里面寫如一個(gè)值得先看一下這個(gè)地址原先的值是不是全為“1“。如果全為“1”,那么通過一系列指令可以將這個(gè)值寫入。反之,則先要進(jìn)行擦除使其全部變?yōu)?ldquo;1”。擦除操作是不能用一個(gè)地址來操作的。擦除必須一次擦除一個(gè)“扇區(qū)“。把這個(gè)“扇區(qū)”所有的值都變?yōu)?ldquo;1”,然后才能進(jìn)行寫操作。

  不同型號(hào)的Flash的操作指令不同。具體操作的時(shí)候需要仔細(xì)閱讀所使用產(chǎn)品的產(chǎn)品說明書。

=========================================================================

 

NandFlash系列之一:NorFlash與NandFlash對(duì)比

作者:劉洪濤,華清遠(yuǎn)見嵌入式學(xué)院高級(jí)講師。

FLASH存儲(chǔ)器又稱閃存,主要有兩種:NorFlash和NandFlash,下面我們從多個(gè)角度來對(duì)比介紹一下。在實(shí)際開發(fā)中,設(shè)計(jì)者可以根據(jù)產(chǎn)品需求來進(jìn)行閃存的合理選擇。

1、接口對(duì)比

NorFlash帶有通用的SRAM接口,可以輕松地掛接在CPU的地址、數(shù)據(jù)總線上,對(duì)CPU的接口要求低。NorFlash的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP,eXecute In Place),這樣應(yīng)用程序可以直接在flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。如uboot中的ro段可以直接在NorFlash上運(yùn)行,只需要把rw和zi段拷貝到RAM中運(yùn)行即可。

NandFlash器件使用復(fù)雜的I/O口來串行地存取數(shù)據(jù),8個(gè)引腳用來傳送控制、地址和數(shù)據(jù)信息。由于時(shí)序較為復(fù)雜,所以一般CPU最好集成NAND控制器。另外由于NandFlash沒有掛接在地址總線上,所以如果想用NandFlash作為系統(tǒng)的啟動(dòng)盤,就需要CPU具備特殊的功能,如s3c2410在被選擇為NandFlash啟動(dòng)方式時(shí)會(huì)在上電時(shí)自動(dòng)讀取NandFlash的4k數(shù)據(jù)到地址0的SRAM中。如果CPU不具備這種特殊功能,用戶不能直接運(yùn)行NandFlash上的代碼,那可以采取其他方式,比如好多使用NandFlash的開發(fā)板除了使用NandFlash以外,還用上了一塊小的NorFlash來運(yùn)行啟動(dòng)代碼。

2、容量和成本對(duì)比

相比起NandFlash來說,NorFlash的容量要小,一般在1~16MByte左右,一些新工藝采用了芯片疊加技術(shù)可以把NorFlash的容量做得大一些。在價(jià)格方面,NorFlash相比NandFlash來說較高,如目前市場(chǎng)上一片4Mbyte的AM29lv320 NorFlash零售價(jià)在20元左右,而一片128MByte的k9f1g08 NandFlash零售價(jià)在30元左右。

NandFlash生產(chǎn)過程更為簡單,NAND結(jié)構(gòu)可以在給定的模具尺寸內(nèi)提供更高的容量,這樣也就相應(yīng)地降低了價(jià)格。

3、可靠性性對(duì)比

NAND器件中的壞塊是隨機(jī)分布的,以前也曾有過消除壞塊的努力,但發(fā)現(xiàn)成品率太低,代價(jià)太高,根本不劃算。NAND器件需要對(duì)介質(zhì)進(jìn)行初始化掃描以發(fā)現(xiàn)壞塊,并將壞塊標(biāo)記為不可用。在已制成的器件中,如果通過可靠的方法不能進(jìn)行這項(xiàng)處理,將導(dǎo)致高故障率。而壞塊問題在NorFlash上是不存在的。 
在Flash的位翻轉(zhuǎn)(一個(gè)bit位發(fā)生翻轉(zhuǎn))現(xiàn)象上,NAND的出現(xiàn)幾率要比NorFlash大得多。這個(gè)問題在Flash存儲(chǔ)關(guān)鍵文件時(shí)是致命的,所以在使用NandFlash時(shí)建議同時(shí)使用EDC/ECC等校驗(yàn)算法。

4、壽命對(duì)比

在NAND閃存中每個(gè)塊的最大擦寫次數(shù)是一百萬次,而NOR的擦寫次數(shù)是十萬次。閃存的使用壽命同時(shí)和文件系統(tǒng)的機(jī)制也有關(guān),要求文件系統(tǒng)具有損耗平衡功能。

5、升級(jí)對(duì)比

NorFlash的升級(jí)較為麻煩,因?yàn)椴煌萘康腘orFlash的地址線需求不一樣,所以在更換不同容量的NorFlash芯片時(shí)不方便。通常我們會(huì)通過在電路板的地址線上做一些跳接電阻來解決這樣的問題,針對(duì)不同容量的NorFlash。

而不同容量的NandFlash的接口是固定的,所以升級(jí)簡單。

6、讀寫性能對(duì)比

寫操作:任何flash器件的寫入操作都只能在空或已擦除的單元內(nèi)進(jìn)行。NAND器件執(zhí)行擦除操作是十分簡單的,而NOR則要求在進(jìn)行擦除前先要將目標(biāo)塊內(nèi)所有的位都寫為1。擦除NOR器件時(shí)是以64~128KB的塊進(jìn)行的,執(zhí)行一個(gè)擦除/寫入操作的時(shí)間約為5s。擦除NAND器件是以8~32KB的塊進(jìn)行的,執(zhí)行一個(gè)擦除/寫入操作最多只需要4ms。

讀操作:NOR的讀速度比NAND稍快一些。

7、文件系統(tǒng)比較

Linux系統(tǒng)中采用MTD來管理不同類型的Flash芯片,包括NandFlash和NorFlash。支持在Flash上運(yùn)行的常用文件系統(tǒng)有cramfs、jffs、jffs2、yaffs、yaffs2等。cramfs文件系統(tǒng)是只讀文件系統(tǒng)。如果想在Flash上實(shí)現(xiàn)讀寫操作,通常在NorFlash上我們會(huì)選取jffs及jffs2文件系統(tǒng),在NandFlash上選用yaffs或yaffs2文件系統(tǒng)。Yaffs2文件系統(tǒng)支持大頁(大于512字節(jié)/頁)的NandFlash存儲(chǔ)器。

參考文章:《NAND和NORFLASH技術(shù)設(shè)計(jì)師在使用閃存時(shí)需要慎重選擇》M-Systems公司 Arie TAL 

=====================================================================================

 

 

 

 以鎂光MT29F4G08BxB Nand Flash為例,這款Flash(如上圖)以4個(gè)扇區(qū)(sector)組成1個(gè)頁(page),64個(gè)頁(page)組成1個(gè)塊(block),4096個(gè)塊(block)構(gòu)成整個(gè)Flash存儲(chǔ)器;由于每個(gè)扇區(qū)的容量是512 字節(jié)(bytes),整個(gè)Flash容量為4224M Bit(相當(dāng)于528M字節(jié)),去掉備用區(qū)域用于存放ECC數(shù)據(jù)校驗(yàn)16M(虛線部分),就是這個(gè)片子的容量512M字節(jié)。其他型號(hào)的Flash也是同樣由扇區(qū)組成頁、由頁組成塊、塊組成整個(gè)存儲(chǔ)設(shè)備,只是扇區(qū)、頁、塊的數(shù)量多少有區(qū)別而已。

      在Flash的生產(chǎn)制造過程中,由于生產(chǎn)工藝的缺陷,很容易在Flash中產(chǎn)生不能使用的壞區(qū)域,如果在U盤中要使用這樣的Flash,就必須使用所謂的“量產(chǎn)工具”;U盤量產(chǎn)工具其實(shí)就是一種集壞區(qū)域掃描和Flash管理系統(tǒng)裝載于一身的工具。常規(guī)U盤主控的掃描是以塊為單位,掃描即往每一個(gè)塊里寫入數(shù)據(jù),然后將讀出的數(shù)據(jù)與寫入的數(shù)據(jù)比較,如果數(shù)據(jù)有誤則把該塊標(biāo)為“壞塊”。掃描完成后就是將Flash管理系統(tǒng)裝載到Flash里面,F(xiàn)lash管理系統(tǒng)就會(huì)利用掃描產(chǎn)生的壞塊表對(duì)整個(gè)Flash進(jìn)行讀寫管理,這樣就完成了整個(gè)量產(chǎn)動(dòng)作,U盤也就可以正常使用了。所以U盤顯示的容量與實(shí)際所用的Flash容量差異來源于不能存儲(chǔ)信息的壞塊和Flash管理系統(tǒng)的占用塊。壞塊越多,做出的U盤容量越低;而Flash管理系統(tǒng)占用的塊是沒有辦法避免,就像我們的電腦安裝操作系統(tǒng)要占用硬盤空間一樣。

      當(dāng)然這里還涉及到一個(gè)ECC糾錯(cuò)能力的問題,假設(shè)對(duì)這個(gè)Flash進(jìn)行掃描的定義的ECC糾錯(cuò)能力為1bit,只有數(shù)據(jù)出現(xiàn)超過1bit錯(cuò)誤的塊才會(huì)被標(biāo)記為壞塊。這個(gè)時(shí)候需要區(qū)分塊糾錯(cuò)和扇區(qū)糾錯(cuò)的差別,假設(shè)任何一個(gè)塊里有任何一個(gè)扇區(qū)(512bytes)存在超出1bit的錯(cuò)誤,常規(guī)主控在掃描的時(shí)候就會(huì)判斷整個(gè)塊為壞區(qū)域,這樣將損失整個(gè)塊128Kbytes的容量;但是當(dāng)使用扇區(qū)糾錯(cuò)的主控時(shí),同樣1bit ECC糾錯(cuò),他會(huì)直接去判斷這個(gè)塊里哪些是超出1bit錯(cuò)誤的扇區(qū),從而將其剔除,損失的只是每個(gè)真正有錯(cuò)誤扇區(qū)的512bytes容量,從而保留了其余沒有錯(cuò)誤的扇區(qū),這樣Flash的利用率可以得到極大的提高。

關(guān)閉窗口
主站蜘蛛池模板: 91精品一区| 欧美激情一区二区 | 国产精品亚洲一区二区三区在线观看 | 国产乱码精品一区二区三区中文 | 一级片成人 | 一区二区免费高清视频 | 日日日干干干 | 天天综合网7799精品 | 天堂久久天堂综合色 | 欧美国产日韩一区二区三区 | 色播久久 | aaa在线观看 | 成年人在线观看视频 | 国产乱码精品1区2区3区 | 亚洲精品在线视频 | 综合激情网 | 精品区| 亚洲一区视频 | 国产精品九九九 | 羞羞视频在线观看 | 国产天堂 | 久热电影 | 亚洲一区二区三区免费视频 | 狠狠操狠狠干 | 亚洲一区二区三区四区av | 精品久久久久香蕉网 | 黑人久久 | 亚洲精品视频在线播放 | 不卡一区 | 在线欧美一区二区 | 91精品国产一区二区三区 | 欧美在线一区二区三区 | 国产亚洲精品美女久久久久久久久久 | 欧美精品第三页 | 国产成人99久久亚洲综合精品 | www.天天干.com| 日韩在线视频播放 | 久久久99国产精品免费 | 福利视频1000 | 亚洲精品乱码久久久久久蜜桃91 | 91精品国产乱码久久久久久久久 |