2. Flash Translation Layer (FTL)

map logical pages to physical blocks and pages

direct mapped - write logical 0(a),10(b),20(c) --> physical 0,10,20

  FTL   0:0, 10:10, 20:20
  Block 0          1          2
  Page  0000000000 1111111111 2222222222
        0123456789 0123456789 0123456789
  State vEEEEEEEEE vEEEEEEEEE vEEEEEEEEE
  Data  a          b          c
  Live  +          +          +
To rewrite logical page 20: erase block 2, write page 20

log-structured - write logical 0(a),10(b),20(c) --> physical 0,1,2

  FTL   0:0, 10:1, 20:2
  Block 0          1          2
  Page  0000000000 1111111111 2222222222
        0123456789 0123456789 0123456789
  State vvvEEEEEEE iiiiiiiiii iiiiiiiiii
  Data  abc
  Live  +++
To rewrite logical page 20(d): remap to free page:
  FTL   0:0, 10:1, 20:3
  Block 0          1          2
  Page  0000000000 1111111111 2222222222
        0123456789 0123456789 0123456789
  State vvvvEEEEEE iiiiiiiiii iiiiiiiiii
  Data  abcd
  Live  ++ +