Sie sind auf Seite 1von 31

Rejuvenator:AStaticWearLeveling AlgorithmforNANDFlashMemorywith MinimizedOverhead

MuthukumarMuruganandDavidH.C.Du

Agenda

NANDflashmemory Background Wearleveling Background Motivation Rejuvenator Design AdaptabilityinRejuvenator Evaluation Conclusion

Background:NANDFlashMemory
Anarrayofflashblocks Read/writeinpageunits Typicalblock =128K; page =2Kor 4K Musteraseblock beforewrite Read =25 microseconds Write =200 microseconds Erase =1500microseconds Limitednumberoferases perblock
100K forSLC 10K forMLC
LBA LBA Wear Read

Address Write Mapping

Leveling

Flash Translation Layer


Page Write

GarbageRead Collection
Page Block Page

Page

Block Erase

Background:WearLeveling
Frequentlywrittenblocks wearoutfaster Needtobalancewearin blocks Issue Cold data remains stale in a Dynamic Wear: leveling : blocks Writehotdatafew toblocks ! thathavelessererasecounts Writecolddatatoblocks thathavehighererasecounts

Background:StaticWearLeveling
Staticwearleveling Movesstalecolddataaroundperiodically
Cold Data

Can we improve lifetime of flash memory with minimum impact on performance ?


Least worn blocks Most worn blocks

Rejuvenator Staticwearlevelingalgorithm ComprehensivedesignWL,GCandFTLcomponents


5

Motivation
Generalwearlevelinggoals: Improvelifetime offlashmemory Reducevariance inerasecountsofblocks Rejuvenatorgoals: Preventasingleblockfromreachingitslifetime fasterthanotherblocks Reducewriteamplificationduetostaticcolddata migration Dostaticcolddatamigrationjudiciously! Adapt tochangingworkloadsandrateofincreaseinerase counts
6

Existingwearlevelingalgorithms TrueFFS:
Virtualerase unitsmapped tochainofphysical Observation : High variance in erase counts eraseunits Foldingchangesmappingtoonephysicaleraseunit Staticwearlevelingdoneperiodically Validdatainthechaincopiedtoonephysicaleraseunit

Existingwearlevelingalgorithms DualPool:
Twopools ofblocks:: hotand cold Observation More than necessary migrations Hotness ofblockdata based onerasecount due to constant threshold Coarsegrainedcontrolofblocks Thresholdbasedstaticwearleveling Swapdatabetweenoldestandyoungestblocks Noexplicithotdataidentification

Can we control variance in erase counts with just enough cold data migrations ?

Rejuvenator Design

10

Rejuvenator:Overview
Maintainlistsofblocksbased onerasecount Initiallyallblocksassociated withlist0
Lists Blocks

11

Rejuvenator:Overview
Maintainlistsofblocksbased onerasecount Initiallyallblocksassociated withlist0 Asblocksareerasedtheyget associatedtohigherlists Differencebetweenminimum andmaximumerasecountis
Lists Blocks

min_wear

min_wear + (m-1)

max_wear

diff=max_wear min_wear diff1


12

....

....

Rejuvenator:Mapping
Lists Blocks

0 Hot data, Page Level Mapping m lower numbered lists

min_wear

min_wear + (m-1)

(-m) higher numbered lists Cold data, Block Level Mapping

max_wear

100K

13

....

....

....

....

Rejuvenator:HotdataIdentification
Accountforrecencyand frequency LRU listwithreferencecounts Windowsize:1024 Hot:Mostfrequentlywritten LBAs AnyLBAhavingref.count >Averagereferencecountishot
LBA Ref. Count MRU

LRU

Evicted LBA

14

Rejuvenator: HandlingWrites
LBA Write

Yes

Has Page Level Map ?

No

Yes
Hot?

No

Yes

Hot?

No

Write to lower lists, Update page map

Write to higher lists, Update block map

Write to lower lists, Update page map

Write to higher lists, Update block map

15

Rejuvenator:Data Migrations
diff = - 1 Sliding window size Window movement restricted at - Top : Cold data accumulation in lower lists
Cold data

min_wear

min_wear + m . . . max_wear

16

Rejuvenator:Data Migrations
diff = - 1 Sliding window size Hot/Cold Window movement restricted data at - Bottom: Invalid blocks accumulate in list min_wear +(-1) min_wear min_wear + 1 . . . min_wear + (m-1)

Very Rare !

17

Rejuvenator:Garbage Collection
Garbagecollection Copyvalidpagesofblockselsewhere Erasecurrentblock
No.ofcleanandinvalidpages CleaningEfficiency=_________________________ Enable efficient GC via ofblock TotalNumber of pages

intelligent wear leveling Garbagecollectionstartsinlowernumberedlists Intuitively: Lowernumberedlistshavelessererasecounts Containmoreinvalidpagesandhencebettercleaning efficiency


18

Adaptability

19

Impact ofthevalueof
Largervalueof Largevarianceinerasecounts Smallervalueof Staticcolddatamigrationisdonemoreoften Goal: Strikeabalancebetweenthetwo Adaptthevalueofdependingonlifetimeofflash memory Tightentheconstraintsonvarianceoferasecounts gradually

20

Adapting thevalueof
Thevalueofisverylarge inthebeginning Astheblocksgetolderthe valueofisreduced gradually Decreasein life_diff
life_diff=100K max_wear

Decreasing Linear Nonlinear

21

Adapting thevalueofm
Valueofmcontrolsproportionofblocks storinghotdata Adaptingtoworkloadpatternchanges Increasemwhenhotdataflowismore Decreasemwhencolddataflowismore

22

Evaluation

23

OverheadsinRejuvenator
Memoryforthelists: 4bytesperblockaddress 1TBflash(2KBpage,128KBblock)requires ~32MBofmemory Memoryformappingtables: <10%hotdata(pagelevelmapping) atmost250MBofmemoryfor1TBofflash O(1)timeforlistassociationofblocks Noblockcopyforhotwrites

24

Simulation Environment
SimulatorwritteninC++ TakesLBAsfromtraceasinput ConsidersmallportionofSSD Maximumerasecountofblocks:2K Tracesused:Financial,Exchange,Cello Synthetictraces: A:Randomwrites B:50%sequential

25

Lifetime
5 4.5

No. of write requests serviced (A hundred million write requests)

4 3.5 3 2.5 2 1.5 1 0.5 0 Financial Exchange Cello Trace A Trace B Dual Pool TFFS Rejuvenator(Linear) Rejuvenator (Non-linear)

Trace Used

25% Improvement on the average


26

StandardDeviationinErasecounts
16 14

Standard Deviation

12 10 8 6 4 2 0 Financial Exchange Cello Trace A Trace B Dual Pool Rejuvenator(Linear) Rejuvenator (Non-linear)

Trace Used

Better control of variance in erase counts


27

StandardDeviationinErasecounts Trend

Tighter constraints only in the end


28

StaticColdDataMigrations Trend
100 90 80

% of cold data migrations

70 60 50 Rejuvenator(Linear) 40 30 20 10 0 175 150 125 100 75 50 25 10 Rejuvenator(Non-Linear)

Value of

Tighter constraints only in the end


29

WearLevelingBlockEraseOverhead
25

20

Overhead Incurred

15 Dual Pool 10 TFFS Rejuvenator(Linear) Rejuvenator (Non-linear) 5

0 Financial Exchange Cello Trace A Trace B

Trace Used

Reduced by 15-18 times

30

Conclusion
Rejuvenator managesvarianceinerasecountswithjustenough staticcolddatamigrations improveslifetimeofflashmemory managesdataaccordingtodegreeofhotness dealswithperformance lifetimetradeoff Rejuvenatoradaptstochangesinworkloadpatterns AcaseforintegratedwearlevelingandGCoperations

31

Das könnte Ihnen auch gefallen