storage architecture and software support for slc/mlc

17
Storage Architecture and Software Support for SLC/MLC Combined Flash Memory 세미나 발표 : 최 현 경 (2009-08-11) ACM SAC 2009 : Soojun Im and Dongkun Shin Sungkyunkwan University

Upload: flashdomain

Post on 06-Jul-2015

326 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Storage Architecture and Software Support for SLC/MLC

Storage Architecture and Software

Support for SLC/MLC Combined

Flash Memory

세미나 발표 : 최 현 경

(2009-08-11)

ACM SAC 2009 : Soojun Im and Dongkun ShinSungkyunkwan University

Page 2: Storage Architecture and Software Support for SLC/MLC

Introduction Flash memory

erase-before-write architecture Different unit sizes : erase(block), write(page) page writing (programming) within a block should be done Sequentially

=SOP(Sequentiality of Programming)

FTL required Block level mapping

needs a small-sized block-level mapping table high page migration cost

Page level mapping mapping table size is large

Hybrid mappping Log block based FTL scheme lower page migration cost compared to the block-level mapping requires a smaller-sized mapping table compared to the page-level mapping

Page 3: Storage Architecture and Software Support for SLC/MLC

In this paper, reliability of MLC can be improved with an error correcting

controller and the read performance of MLC area is similar to the SLC area

use the SLC area as write buffer for the frequently-updated data

FTL : hybrid mapping SLC flash block as a log

buffer of MLC flash block The main two techniques

Garbage collection bypassing

Page 4: Storage Architecture and Software Support for SLC/MLC

STORAGE ARCHITECTURE SLC area(log buffer):managed by the page-level mapping MLCarea(data block):managed by the block-level mapping A sequential large data:bypasses the SLC area (generally

write-once data) garbage collector makes free spaces by reclaiming the

space occupied by invalid pages or by sending cold data to the MLC area

Page 5: Storage Architecture and Software Support for SLC/MLC

Garbage Collection current log buffer-based FTL

all the valid pages of a victim log block are moved into the data block by block merge operation (= block-level merge)

Considering the slow write performance of MLC area page-level merge If a page is frequently-updated, it is better to keep the page at the log buffer the garbage collector transfers only the cold pages into the MLC area, hot pages

remain in the SLC area Considering the page migration cost

the garbage collector selects the page to be sent to MLC area considering the number of valid pages in the corresponding MLC data block to be merged with the page

The garbage collection is composed of three steps data block classification migration to data block migration within log buffer

Page 6: Storage Architecture and Software Support for SLC/MLC

Garbage Collection-Data Block Classification

All the pages in SLC log block hot page : update count of a page after the last garbage

collection is large than the specified threshold value Phot

cold page : not accessed during more than Pcold number of garbage collections

warm page : other pages

MLC data blocks associated with the log blocks cold block : more than Bcold number of pages corresponding

page in log buffer is cold hot block : more than Bhot number of pages corresponding

page in log buffer is hot and the data block is not cold block warm block : other blocks

Page 7: Storage Architecture and Software Support for SLC/MLC

Garbage Collection-Data Block Classification

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

24

25

26

27

28

29

30

31

16

17

18

19

20

21

22

23

32

33

34

35

36

37

38

39

MB0 MB1 MB2 MB3 MB4 MB5 MB6

0

10

1

2

27

28

10

20

4

20

6

26

3

21

22

11

26

27

12

13

28

29

SB0 SB1 SB2 SB3 SB4 SB5

Log Buffer (SLC Region) Data Block (MLC Region)

warm warmcold hotEstimate #(hot, warm, cold)

Hot page : 10, 20, 26, 27, 28Warm page : 0, 1, 2, 3, 4, 6, 21, 22, 29Cold page : 11, 12, 13

(0,6,0)

(1,0,3)

(1,2,0)

(3,1,0)

Invalid page

Bhot=2, Bcold=2

The aim ofthis classification is to perform the page-level merge with only the

cold block and the warm block

Page 8: Storage Architecture and Software Support for SLC/MLC

Garbage Collection-Migration to Data Block Cold block : move all the log pages associated data blocks

are cold Warm block : estimate the number of valid pages number of valid pages > θ : not merge If θ = 4, select MB0 merge target

8

9

10

11

12

13

14

15

0

1

2

3

4

5

6

7

24

25

26

27

28

29

30

31

16

17

18

19

20

21

22

23

32

33

34

35

36

37

38

39

MB0 MB1 MB2 MB3 MB4 MB5 MB6

warm warmcold hot

0

10

1

2

27

28

10

20

4

20

6

26

3

21

22

11

26

27

12

13

28

29

SB0 SB1 SB2 SB3 SB4 SB5

Target blocks

0

1

2

3

4

5

6

7

8

9

11

12

13

14

15

0

10

1

2

27

28

10

20

4

20

6

26

3

21

22

11

26

27

12

13

28

29

SB0 SB1 SB2 SB3 SB4 SB5

# of valid pages : SB0(0), SB1(0), SB2(2), SB3(1), SB4(2)

10

Page 9: Storage Architecture and Software Support for SLC/MLC

Garbage Collection-Migration within Log Buffer

all the pages are invalid : erase the block and make it clean to be reused

both valid pages and invalid pages estimate the number of valid pages in each log block number of valid pages < δ : move all the valid pages of the log

block into another log block If δ = 2, copied into the SB5

0

10

1

2

27

28

10

20

4

20

6

26

3

21

22

11

26

27

12

13

28

29

SB0 SB1 SB2 SB3 SB4 SB5

3

21

22

11

26

27

12

13

28

29

SB0 SB1 SB2 SB3 SB4 SB5

Erased blocks

20

Page 10: Storage Architecture and Software Support for SLC/MLC

Bypassing the log buffer Generally, large and sequential data has a low temporal locality large data to bypass the SLC log buffer sector length of a write request > threshold α, the FTL sends it directly to

the MLC area to reduce the page copy cost, use the ‘update block’

Page 11: Storage Architecture and Software Support for SLC/MLC

Bypassing the log buffer Bypassing throttling L:request data length, O:page offset from the last update page L ≥ α and O ≤ β adjust the values of α and β to limit the number of write requests

on SLC SLC blocks are worn out too quickly => decrease α and increase β MLC blocks are worn out too quickly or the write requests for

the MLC block are too many => increase α and decrease β >> balance the number of program/erase cycles of SLC blocks and

MLC blocks

Page 12: Storage Architecture and Software Support for SLC/MLC

EXPERIMENTS workloads extracted from Microsoft Windows XP-based

desktop PC, running several applications, (documents editors, music players, web browsers and games)

collected the trace from both FAT32 and NTFS file systems

collected other traces running IOzone and Postmark benchmarks

Page 13: Storage Architecture and Software Support for SLC/MLC

effects of variables related to the hot/coldseparation (Phot, Pcold, Bhot and Bcold)

the best values of Phot, Bhot

= 0 decrease the values of

Bcold,Pcold

number of page migration to MLC area increases

Bhot decrease number of hot page

migration to MLC area decreases

Best values in FAT32 Pcold=25, Bhot=0,

Bcold=12, δ = 40

Page 14: Storage Architecture and Software Support for SLC/MLC

effects of θ(warm block, # of valid pages) θ = 0

none of the pages associated with the warm blocks migrates to MLC blocks

θ > 64 performance

degradations

NTFS similar pattern result but smaller value

Page 15: Storage Architecture and Software Support for SLC/MLC

Normalized execution time varyingthe size of SLC area

NSLC increases, execution time

decreases since the garbage collector is invoked infrequently

FAT32 trace: high temporal locality Postmark : little temporal locality

garbage collection is invoked frequently if the SLC size is small

Page 16: Storage Architecture and Software Support for SLC/MLC

Comparison with previous FTL schemes

bypassing technique improved up to 7% α =64KB, number of accesses

on the SLC area is significantly reduced

the MLC area : increased due to the update block management overhead.

Page 17: Storage Architecture and Software Support for SLC/MLC

CONCLUSION The proposed scheme is based on the hybrid mapping FTL and

utilizes the SLC area as a log buffer The garbage collection algorithm

moves the pages in the SLC area into the MLC area selectively considering their localities and the migration costs

The bypassing algorithm sends a large sequential data into the MLC area to use the log buffer

effectively several parameters in the algorithm should be carefully determined

considering the workload pattern As a future work, study an adaptation scheme which adjusts the

parameters used in the proposed scheme observing the workload pattern