您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 嵌入式系统中的nandflash文件系统
TheIntroductiontoEmbeddedNandFlashFilesysBladebladesatan@gmail.com∼mlPoweredbyLATEXandProsper.USTCEmbeddedSystemDevelopConference2005–p.1SomethingaboutFlash!!Nor—Flash1988IntelincReplaceEPROMEEPROMXIP(executeinplace)Nand—Flash1989ToshibaincSuitableforfilestorage(512bytes/page)HighperformanceLowcostUSTCEmbeddedSystemDevelopConference2005–p.2SummaryNorNandCapacity128M1GAccessTime70ns50nsProgramSpeed4.1ms(512Byte)200μs(512Byte)Erasespeed700ms/(Blockmain64KB)2ms/(Block16KB)Prog+Erase1.23s/(Blockmain64KB)33.6ms/(64Kb)USTCEmbeddedSystemDevelopConference2005–p.3NandFlashDisadvantageBadBlockManManagementLifeTime:Nandflashtechgenerallyguarantees1000Kprogram/erasecyclesforeachphysicaleraseunitRandomBadBlockMapslogicalsectortophysicalsectorMusthaveEccsupportWearLevelingTreatmentExtendsthelifetimeofflashdevicesbecauseitensurethatevenifanapplicationwritestothesamelogicalsectoroverandoveragain,theproguam/erasecyclesaredistributedevenlyacrossthemediaUSTCEmbeddedSystemDevelopConference2005–p.4Wear-LevelingalgorithmDynamicmappingofanylogicalsectortoanyphysicalsector.Agarbagecollectionprocessforspacereclamation.Anoptimizedgarbage-collectionalgorithmtoreduceerasecycles.ExpectedLifetime=MediaSize∗NumOfEraseCycles∗0.75BytesWrittenPerDayUSTCEmbeddedSystemDevelopConference2005–p.5FlowofReadProc USTCEmbeddedSystemDevelopConference2005–p.6FlowofProgram/EraseProcS t a r t B l o c k N o = 1 C h e c k B a d B l o c k + 1 B l o c k N o + = 1 c h e c k e r a s e d P r o g r a m E r a s e E n d L a s t B l o c k ? F a i l P a s s F a i l P a s s P a s s F a i l USTCEmbeddedSystemDevelopConference2005–p.7FlowofRealProgPrcoU n P r o g P r o g 1 6 K B USTCEmbeddedSystemDevelopConference2005–p.8FlowofRealProgPrcoU n P r o g P r o g 1 6 K B c o p y d a t a t o m e m USTCEmbeddedSystemDevelopConference2005–p.8FlowofRealProgPrcoU n P r o g P r o g 1 6 K B E r a s e a l l B l o c k E r a s e d USTCEmbeddedSystemDevelopConference2005–p.8FlowofRealProgPrcoU n P r o g P r o g 1 6 K B E r a s e d i n j e c t r e a l p r o g d a t a USTCEmbeddedSystemDevelopConference2005–p.8FlowofRealProgPrcoU n P r o g P r o g 1 6 K B E r a s e d P r o g a l l d a t a b a c k USTCEmbeddedSystemDevelopConference2005–p.8In-Place-UpdateWrite(){Ifnewwrite{allocateafreeblock;Writeoutdataintothefreeblock;}elseIn-place-update();}In-place-update(){Readalldatainthesegmentintoasystembuf;Updatedatainthesystembuf;Erasethesegment;writebackalldata;}USTCEmbeddedSystemDevelopConference2005–p.9Non-In-Place-UpdateWrite(){Ifnewwrite{Allocateafreeblock;Writeoutdataintothefreeblock;}elseNon-in-place-update();}Non-in-place-update(){Markthebosoleteblockasinvalidinper-block;Allocateafreeblock;Writeoutdataintothefreeblock;}Cleaning(){Selectavictimsegmentforcleaning;Copyoutvaliddatatoaothercleaflashmemspace;Erasethevictimsegment;}USTCEmbeddedSystemDevelopConference2005–p.10SegmentManagementFreeSegmentListActiveSegmentRead-onlysegmentListColdsegmentListHotsegmentListUSTCEmbeddedSystemDevelopConference2005–p.11CommicalProductTrueFFS ! # $USTCEmbeddedSystemDevelopConference2005–p.12GPLProjectMTDCharDeviceBlockDeviceNTFLDoc2000Jffs2YaffsUSTCEmbeddedSystemDevelopConference2005–p.13Yaffs%&’’()*+,-.//01210234*+5,6USTCEmbeddedSystemDevelopConference2005–p.14EmbeddedLinuxNeedImagebootloaderkernel.imageroot.crmffile.yaffsUSTCEmbeddedSystemDevelopConference2005–p.15AcknowledgementMikefallskkqqjameszhangDjandVolunteersUSTCEmbeddedSystemDevelopConference2005–p.16Thanks!Questions?USTCEmbeddedSystemDevelopConference2005–p.17l17-1
本文标题:嵌入式系统中的nandflash文件系统
链接地址:https://www.777doc.com/doc-3181956 .html