'Embedded Lab/FLASH MEMORY'에 해당되는 글 4건

  1. 2013.06.28 [FTL 기술흐름]
  2. 2012.10.17 [NAND 플래시의 종류]
  3. 2012.09.09 [SSD에서 FTL 관리 기법 - BPLRU]
  4. 2012.09.06 [SSD 개론]

요즘 FTL에 대한 연구를 하고 있는데 그동안 연구되었던 FTL의 기술 발전 흐름을 정리해 보았습니다. 


  • NAND flash의 단점과 FTL의 등장

    NAND flash는 비 휘발성 메모리 저장장치로 사용하기에 적합하다. 그 이유는 용량대비 가격이 저렴하기 때문이고, 대용량 device를 만들기 용이하기 때문이다. 하지만, NAND flash는 태생적인 단점이 몇 가지 있다.

    • Byte 단위의 접근을 허용하지 않는다. Page단위의 Read/Write 만 가능하다. (XIP 불가능)
    • 덮어쓰기가 되지 않는다. Write를 하기 위해서는 Erase후 program해야 한다.
    • Program과 Erase의 단위가 다르다. Program 하는 단위보다 Erase하는 단위가 월등히 크다
    • Program/Erase 할 수 있는 횟수(P/E cycle)가 무한하지 않다.

       

    이러한 문제 때문에 H/W적으로는 NAND interface protocol 이 S/W적으로는 FTL (Flash Translation Layer)이 필요하게 되었다. FTL 논문을 중심으로 FTL기술이 어떻게 발전해 왔는지 알아보기로 한다.

       

       

  • BAST (2002)

    NAND에서 덮어쓰기 동작을 구현하는 가장 간단한 방법은 쓰기 동작시 마다 해당 page가 속한 Block을 통째로 지우고 다시 쓰는 방법을 사용하는 것이다. 하지만, 이 방법은 한 Block내에 속한 page가 update될 때마다 erase되어야 하고 나머지 page들을 copy해 주어야 하기 때문에 성능면이나 NAND의 수명 측면에서 문제가 되었다. 그래서 등장한 것이 Mapping이라는 개념이고 Write cache(log block)라는 개념이다.

       

    031810_0437_FTL1.png

    BAST 는 log block이라는 cache block을 할당하여 write operation을 수행하는 방법을 사용하였다. Log block은 1:1로 연관되는 Data block이 있으며, 해당 Block에 속한 page들을 write한다. In place order로 program해야 하는 Data block과 달리 Log Block은 Out of place order로 write하고 page map을 관리하는 방법을 사용하였다. Log block은 Data block에 비해 매우 작은 숫자이기 때문에 비어 있는 free block이 필요하면 이전에 사용된 Log block의 데이터를 Data block으로 전송하고 erase하는 방법을 사용하였다. 이를 Merge, Migration, Compaction 또는 Garbage collection이라고 한다.

    파일시스템의 write 패턴에 따라 log block이 data block으로 migration되는 방법이 다르다.

    031810_0437_FTL2.png

    유효한 데이터가 Data block과 Log block에 모두 있는 경우에는 Free block에 data block과 Log block에 있는 데이터를 copy한 뒤 Data block과 log block을 erase하여 Free block으로 만든다.(Full merge) 이 때는 2번의 erase, 1Block copy가 발생한다. 유효한 데이터가 Log block에만 있는 경우 Free block에 Log block의 내용을 copy하고 Log block을 erase한다.(Partial merge) 이 때는 1번의 erase와 1 block copy가 일어난다. 마지막으로 log block의 내용이 모두 유효하면서 in place order로 적혔을 때이다. 이 경우는 Log block을 그대로 Data block으로 mapping만 바꿔주면 된다. 이 때는 erase한번만 일어난다.

    Free block을 얻는 목적은 같은데, 시나리오에 따라서 merge하는 비용은 다른 것을 알 수 있다.

    BAST 는 적용이 간단하고 Sequential data의 비중이 많은 응용에서는 높은 성능을 발휘할 수 있어, card나 USB스토리지에서 널리 사용되었다. 하지만, random 패턴에서는 낮은 성능이 문제가 되었다. 또한, page와 Block의 크기가 커지면서 Switch merge의 비중이 줄고 Full merge가 늘면서 복잡한 응용에서의 FTL로는 부족한 점이 많았다.

    하지만, 적은 리소스로 큰 용량의 NAND를 관리할 수 있다는 점과, 초창기 NAND의 한계를 극복할 수 있다는 가능성을 제시한 의미있는 논문이다.

       

  • FAST, Superblock (2006)

    BAST이후 이 분야에 대한 연구도 활발해 졌다. FAST와 Superblock은 BAST를 기본으로 하면서 BAST 의 단점인 Full merge의 비율을 줄이는데 초점을 두었다.

    031810_0437_FTL3.png

    BAST-위 그림의 (a)의 특징은 Update(log) block과 Data block이 1:1로 대응된다는 점이다. 만약 파일시스템의 Write 패턴이 random이면서 그 범위가 다양하다면(여러 Block boundary를 넘나든다면) I/O의 크기에 비해 많은 수의 log block이 필요로 하게 된다. 이는 log block이 다 차기도 전에 migration하는 결과를 가져와 빈번한 merge로 인해 성능효율성이나 write한 용량대비 많은 erase횟수 유발하게 된다. 게다가 이 때 merge는 full merge나 partial merge이 된다.

       

    FAST는 Update block과 Data block 의 연관 관계를 1:1 에서 1:N으로 확장하여 한 Update block에 여러 Data block이 연관 될 수 있게 하였다. 이렇게 되면 한 Update block에 여러 data block의 data를 담을 수 있어 넓은 범위의 random write가 발생하는 경우 BAST 보다는 Update block에 최대한 많은 양의 data를 write할 수 있었다.(공간 이용도가 높아진다). 하지만, N이 커지면 커질 수록 Migration하는 비용이 커지고, mapping 데이터 양이 커지는 단점이 있다. 즉, migration하는 횟수는 줄었지만, 반대로 비용은 커진 것이다.

       

    Superblock 은 FAST의 연장선에서, FAST의 1:N을 유지하면서도 인접한 Data block을 Group으로 묶어 Superblock이라 칭하고 Superblock내에서는 out of place로 관리하여 Migration 비용을 줄이고자 하였다. 장점은 BAST에 비해 Update block의 활용이 많고, superblock내에서는 out of place로 관리하기 때문에 partial merge를 switch merge로 대신할 수 있다는 장점이 있다. 하지만, superblock도 merge를 해야 하기 때문에 full merge시 비용이 큰 단점이 있다. 또한, out of place map을 유지하는 비용도 추가로 필요하다.

       

  • SAST (2007)

    BAST 와 FAST 는 각각 장.단점이 있다. BAST 는 메모리사용량이 적은 반면, random 패턴의 write시 log block활용도가 낮아 잦은 merge가 일어나고, FAST는 Disk 공간 사용도가 높은 반면 garbage collection의 비용이 큰 단점이 있다. 이를 적절하게 조절할 수 있는 N:N+K mapping 알고리즘이 제안되었다.

    031810_0437_FTL4.png

    SAST 는 Log block과 Log block에 연관되는 Data block의 개수를 조절하여 log block의 공간 활용도를 높이면서 log block에 연관되는 data block의 개수를 제한하여 merge 비용을 줄이려고 하였다.

       

  • LAST (2009)

    Data의 write 패턴은 Random 과 Sequential, Hot과 Cold로 구분 할 수 있다. 이러한 패턴을 고려한 mapping방법이 제안되었다.

    031810_0437_FTL5.png

       

    LAST는 기본적으로 FAST를 계승하는 알고리즘이다. Random과 Sequential을 구별하여 Log block을 할당하였고, Random log block중에서도 Hot과 Cold를 구별하였다. LAST 는 Random 패턴을 구별하기 위해 Write 요청 단위(4KB)를 사용하였다. Hot과 Cold는 최초 write요청은 cold로 지정하고 같은 주소의 요청이 반복되면 hot으로 변경한다. hot random write를 따로 관리하기 때문에 merge 횟수를 줄일 수 있다.

       

  • A-SAST, KAST (2009)

    SAST 이후 이 알고리즘들을 보완하거나 FAST, Superblock의 장점을 융합, 발전시키는 알고리즘들이 등장하였다.

    A-SAST는 기본적으로 SAST의 N:K mapping방법을 사용하지만, N과 K를 runtime시 변경할 수 없었던 SAST 를 개량하여 write 패턴에 따라 동적으로 변경하는 방법을 사용하였다.

    031810_0437_FTL6.png

    A-SAST 는 Log block의 공간 활용도가 떨어질 때는, log block과 연관된 Data block을 늘려 공간활용도를 높이고, 반면 log block의 공간 활용도가 증가하면 log block과 data block의 개수를 줄여 merge 횟 수와 비용을 동시에 줄이는 방법을 제안하였다.

    KAST는 FAST를 바탕으로 하되, 하나의 Log block에 N개의 Data block이 연관되었던 것을 최대 K 개로 제한하였다.

    031810_0437_FTL7.png

    또한, Random log block(RLB)과 Sequential log block(SLB)을 구분하여 data의 패턴에 따라 상호 변환이 가능하게 하였다.

    031810_0437_FTL8.png

    조건에 따라 RLB 를 확장하거나 SLB로 전환하는 방법이 제안되었다. 이 방법의 특징은 data padding을 사용하여 RLB를 SLB로 전환하는 알고리즘이다. Log block에서 대부분 in place order로 write될 수 있는 건인데 조금 틀어진 경우도 swap merge를 유도 할 수 있다.

       

  • 결론

    FTL은 BAST 를 시작으로 KAST에 이르기 까지 서로의 장.단점을 계승 보완하여 발전하였다.FTL이 발전되온 과정을 살펴보면 "Merge 횟수 및 비용 최소화"라는 공통적인 목표를 발견할 수 있다. 이 목표는 성능 뿐 아니라 NAND의 수명에도 영향을 미치기 때문에 중요한 요소이다. Merge 횟수와 비용을 줄이려는 노력은 아래와 같은 방법으로 구체화 되었다.

       

    • Log block의 공간 활용도 증대
    • Write 패턴에 최적화된 Log block 운용 (Random / Sequential, Hot / Cold)
    • Log block와 Data block의 연관 관계 다변화 (1:N, N:K)
    • Block mapping 바탕의 부분적인 Page mapping 운용

       

    SSD의 등장으로 고비용 고사양 device의 시대가 열렸다. 또한, NAND의 Block 및 page의 크기가 계속해서 증가할 것이므로 Block mapping에는 한계가 있다. 따라서 Block mapping의 일부분을 Page mapping으로 보완하려는 시도가 좀 더 발전 할 것으로 예상된다.

    또한, 평균 merge비용 뿐 아니라 순간 최고 merge 비용에 대한 연구, NAND의 공정이 미세화 될 수록 점점 특성이 나빠지는 현상을 고려한 연구도 필요할 것으로 생각된다.

'Embedded Lab > FLASH MEMORY' 카테고리의 다른 글

[NAND 플래시의 종류]  (0) 2012.10.17
[SSD에서 FTL 관리 기법 - BPLRU]  (0) 2012.09.09
[SSD 개론]  (0) 2012.09.06
Posted by cyj4369
,

1. Raw NAND(PureNAND) : Original NAND 메모리를 부를때 이렇게 부릅니다. 어떠한 부가적인 처리를 추가한 NAND가 아닌 순수한 NAND 메모리 자체입니다. 보통 TSOP Package에 담겨져 출하가 되고 있으며, 경우에 따라 BGA Package에 담겨 팔리기도 합니다. NAND의 진화에 따라 Small Block NAND(SB) 및 Large Block NAND(LB)라고도 부르며, Cell에 대한 저장 방식에따라 Single level Cell (SLC) 및 Multi Level Cell(MLC) NAND 라고도 부릅니다. 보통 우리가 지칭하는 NAND라고 보시면 됩니다.

 

2. OneNAND : 삼성 반도체에서 출하한 응용 메모리 입니다. SLC의 RawNAND를 기반으로 응용 회로를 가미하여 만든 메모리로 몸통은 NAND이지만 외부와의 통신은 NOR로 하는 제품입니다. 이전에 설명한 PSRAM과 마찬가지로 몸통은 NOR와 다르나 마치 NOR처럼 작동하는 제품으로 보시면 됩니다.외부 I/F가 NOR이기 때문에 Data와 Address가 따로 분리되어 있습니다.(일반 NAND는 MUX 되어 있음). 특히 Read시에는 동기 Clock에 맞추어 Burst Read를 하기 때문에 상당히 좋은 성능이 나옵니다. Write시에는 NAND의 물리적 한계 때문에 빠른 속도를 구가하기 어렵습니다만, NAND 전용 Controller를 내장 Raw NAND 대비 빠른 성능을 보여 줍니다.사실 Fusion Memory의 핵심은 이러한 NAND 전용 Controller에 달려 있습니다. Controller가 하는 주된일은 FTL(Flash Translation Layer) 작업 + ECC 으로, NAND를 원할히 사용할 수 있도록 도와주는 일을 합니다. FTL에는 Wear leveling,Bad Block Management,Garbage Collection,physical/logical Address mapping등의 기능이 포함되어 있습니다. 이부분에 대한 설명은 NAND의 동작 강좌에서 진행하도록 하겠습니다.

 

 

3. LBA NAND - TOSHIBA에서 출시한 Fusion Memory입니다. 이 메모리는 점점 복잡해 지는 MLC NAND의 사용을 쉽게해줄 목적으로 개발 되었습니다. 최신 공정의 MLC NAND의 경우 아주 복잡한 FTL 및 ECC를 요하게 됩니다. 그러나 일반 USER의 Application Chip 및 CPU는 MLC NAND의 최신 공정을 따라가지 못합니다. 이러한 문제를 해결하기 위해 나온 메모리가 LBA NAND입니다. 기존의 NAND I/F는 유지하면서 FTL 및 ECC를 메모리 내부에서 전부 해결하기 때문에 USER는 복잡한 FTL + ECC를 고려하지 않고도 편안히 최신 공정의 MLC NAND를 사용할 수 있습니다. 구조는 위의 OneNAND와 유사하나 I/F가 NAND라고 생각하시면 됩니다.

 

4. BA NAND - Micron에서 출시한 Fusion Memory 입니다. LBA NAND와 유사한 개념이며 USER가 편안히 최신 공정의 MLC NAND를 사용하도록 하는게 목적인 메모리입니다. 또한 이러한 류의 제품을 ECC Free NAND라고도 부릅니다.

 

5. eMMC - eMMC는 JEDEC에서 표준으로 정한 휴대용 카드 I/F 규약입니다. 휴대용 카드가 아닌 내장형으로 만들어서 e(embeded)를 MMC 앞에 붙여두었습니다. 대부분의 메모리 업체에서 생산 중이며 삼성의 경우 MoviNAND라고도 부릅니다. eMMC는 8bit 시리얼 통신을 하므로 성능이 뛰어나며 차후 Boot기능까지 추가할 예정으로 기존 NAND 메모리 사용영역을 대체할 강력한 Fusion Memory입니다. 현재 32GB까지 용량이 라인업되어 있으며 eMMC Version은 4.4가 준비되고 있습니다. 이역시 Raw NAND를 응용한 메모리입니다. Datasheet는 JEDEC에서 검색하시면 얻을실 수 있습니다.

 

6. eSD  - eSD는 SD Card I/F를 가진 메모리이며, 휴대용 카드가 아닌 내장형으로 만들어서 e(embeded)를 SD 앞에 붙여두었습니다. eMMC와 매우 유사하나 SD Forum에서 운영하는 규약이기때문에 SD Forum에 가입되어 있지 않으면 로얄티를 지불해야 합니다. 대표적인 제품으로는 TOSHIBA의 GB-NAND와 SANDISK의 INAND가 있습니다. 기존의 SD Card를 많이 사용하던 제품에 수정 없이 바로 적용이 가능하다는 장점이 있습니다. 현재 32GB까지 용량이 라인업 되어 있습니다.

 

7. Flex- OneNAND - 삼성 반도체의 Fusion Memory입니다. 기존 OneNAND와 동일한 구성을 가지고 있으나 가장큰 차이점은 내부의 RawNAND가 MLC라는 점입니다. 또한 신뢰성이 필요한 동작을 보장하기위해 RawNAND의 일부를 SLC로 설정, 신뢰성 보장을 하는 기능이 내장되어 있습니다.기존 OneNAND가 SLC 전용으로 사용되어 용량이 작은 반면, MLC를 응용하는 Flex-OneNAND의 경우 대용량을 지원하는 장점이 있습니다.

 

 

8. ONFI(Open NAND Flash Interface) 규약 - Samsung,Toshiba를 제외한 NAND 업체들이 만든 규약으로 Fusion NAND라고 보기는 좀 어렵습니다만, 기존의 NAND I/F가 아닌 SDR/DDR I/F을 사용하는 고속의 NAND 메모리입니다. 성능도 좋고 Open 규약이라 아주 좋은 메모리 입니다만, 위에서 언급했듯이 시장 1,2위가 참가를 안하고 있는것이 가장 큰 문제점 입니다. 즉 확산이 거의 안되고 있는 상황이죠. 규약 및 성능 제품에 관한 안내는 아래 사이트에서 확인 할 수 있습니다.

http://onfi.org

'Embedded Lab > FLASH MEMORY' 카테고리의 다른 글

[FTL 기술흐름]  (0) 2013.06.28
[SSD에서 FTL 관리 기법 - BPLRU]  (0) 2012.09.09
[SSD 개론]  (0) 2012.09.06
Posted by cyj4369
,

BPLRU
 

\"사용자
 연속적인 읽기와 쓰기 요구에 대해 SSD는 하드디스크와 비슷하거나 더 좋은 performance를 가지고 있지만 random writes에서는 더 안좋은 performance가 나타난다. 이런 SSD의 poor performance는 데스크탑이나 서버 시스템에 크게 영향을 미칠수 있다. BPLRU는 flash storage의 이런 random write performance를 향상시키기 위한 새로운 write buffer management sheme이다. 이는 세가지 핵심기술(Block-level LRU, Page padding, and LRU compensation)을 사용한다.
1. Block-level LRU

  Block-level LRU는 FTL에서 merge operations의 수를 최소화 하기위해 erasable block의 크기를 고려하여 LRU list를 경신한다.
사용자 삽입 이미지
  8개의 sector는 the write buffer에 있다. 그리고 각각의 블록은 4개의 sector를 포함한다. sector 15가 다시 기록될 때, 전체 블록은 LRU list의 head로 이동한다. sector 12는 최근에 access되지 않았더라도 LRU list의 앞에 있다. free space가 필요할때, 최근에 가적 적게 사용된 블록이 victim block으로 선택된다. 그리고 victim block내의 모든 sector는 순간 cache로부터 flushed 된다. block 1은 victim block로 선택되고 sectors 5와 6은 flushed 된다.
2. Page padding

  Page padding은 the buffer flushing cost를 줄이기 위해 fragmented write patterns을 sequential write patterns로 바꿔준다.
  BPLRU는 victim block에 없는 몇 개의 page를 읽는다.그리고 순차적으로 블록 범위내의 모든 sector를 기록한다. Page padding은 불필요한 reads와 writes를 하는 것처럼 보일 수 있지만 그것은 비싼 full merge를 효율적인 switch merge로 바꿀 수 있기 때문에 더 효과적이다.
사용자 삽입 이미지
  The victim block은 오직 두 개의 sectors(12 and 15)를 가지고 있다. 그리고 BPLRU는 page padding을 위해 sectors 13과 14를 읽는다. 그러면, sectors 12-16은 순차적으로 기록된다. Log-block FTL에서, log block은 the writes 할당된다. 그리고, the log block은 현재의 데이터 블록을 복구시킨다. 로그블록은 블록내의 모든 sector에 순차적으로 기록되기 때문이다. 즉, switch merge가 발생한다.
3. LRU compensation

  LRU compensation은 random writes를 더 효과적으로 하여 RAM을 사용하기 위해 the LRU list를 조절한다.
사용자 삽입 이미지
  BPLRU block 2가 전체적으로 순차적으로 기록되는 것을 인지하고, 그것을 LRU list의 끝으로 이동시킨다. 나중에 더 많은 공간이 필요해지면 그 블록은 victim block으로 선택되고 flushed 될 것이다.

'Embedded Lab > FLASH MEMORY' 카테고리의 다른 글

[FTL 기술흐름]  (0) 2013.06.28
[NAND 플래시의 종류]  (0) 2012.10.17
[SSD 개론]  (0) 2012.09.06
Posted by cyj4369
,

SSD 기술소개
  ㆍ Solid State Drive (SSD)이란 하드디스크처럼 사용할 수 있도록 된 저장장치이다. 팍스디스크는 국내 최초로 SSD 를 개발한 이력을 보유하고 있다.
  ㆍ NAND Flash SSD란 본질적으로 플래시 메모리칩의 배열로, HDD와 호환성을 가지도록 에뮬레이션을 하는 컨트롤러를 가지고 있다.
  ㆍ 팍스디스크의 핵심 기술은 자체적으로 SSD 컨트롤러를 보유하고 있으며, SSD 시스템을 개발-생산-계측 시스템을 모두 보유하고 있다. 
       특히, 단일컨트롤러로 세계 최대용량을 지원하는 핵심 기술과 클라우드 컴퓨팅용 서버등을 위한 고객사등에 적용시키고 있다.  

■ Flash Memory의 물리적 특징
  ㆍ 전원이 끊겨도 저장된 내용이 삭제되지 않는 메모리 (c.f. ROM)
  ㆍ 읽기/쓰기가 자유로운 메모리 (c.f. DRAM/SRAM)
  ㆍ SSD (Solid state Drive) : 회전운동을 하는 하드 디스크와 달리 고정된 반도체 메모리 방식으로 무소음 작동
  ㆍ 모터 회전에 따라 자기 데이터를 읽는 하드디스크보다 몇배이상 빠르게 작동
  ㆍ 작동온도 범위도 플래시 메모리는 더 저온과 고온에서 작동이 가능
■ Flash Memory의 기술적 특징
  ㆍ 데이터를 쓰기전에 반드시 지워야 한다.
  ㆍ read/write의 단위와 지우기의 단위가 다르다 - Read/Write: page (보통 2-8kB) Erase: block (128 page)
  ㆍ read, write, erase에 소요되는 시간이 서로 다르다. - Read(0.025ms)〈 Write(0.2ms)〈 Erase(1.5ms)
  ㆍ 데이터의 신뢰성이 다른 메모리에 비해 극히 좋지 않기 때문에 오류 정정기술(ECC)이 없으면 사실상 사용이 불가능하다. 
  ㆍ 따라서 메모리셀은 지우기를 할때마다 닳아서 손상되며 수명이 제한되어 있다.
■ NOR vs. NAND 구조 비교
* NOR Flash
  ㆍ Random, direct access interface
  ㆍ Random 읽기 속도가 빠르다.
  ㆍ 늦은 지우기와 쓰기이지만, 데이터 신뢰성이 높다. (ECC 불요)
  ㆍ 프로그램 저장에 주로 사용된다
* NAND Flash
  ㆍ Block단위로 I/O 접근을 한다
  ㆍ 고밀도 저장, 저렴한 가격
  ㆍ 지우기와 쓰기가 뛰어나지만, 데이터 신뢰성이 낮다. (ECC필요)
  ㆍ 주로 (연속된) 데이터 자정에 사용된다.
■ SLC vs. MLC
  ㆍ SLC 와 MLC NAND Flash 칩은 각각 하나의 비트와 두개의 비트를 메모리셀마다 가지고 있다.

  ㆍ SLC가 MLC와 비교해 신뢰성이 높아 10만회까지 읽고/쓰기가 가능하지만 단가가 비싸다.
  ㆍ MLC는 SLC에 비해 신뢰성이 떨어져 수천회까지만 읽고/쓰기가 가능하지만 단가가 저렴하여 양산제품에 많이 사용되고 있다.
  ㆍ 대용량제품에서는 MLC를 중심으로 생산되며,산업용, 방산용 제품에서는 SLC 중심으로 생산된다.
■ NAND Flash 물리적 구조
  ㆍ 읽기는 대단히 빠르지만, 쓰기는 상대적으로 느려 SSD 컨트롤러가 버퍼를 활용하는등 모아쓰기 기법을 사용하게 된다.
  ㆍ 지우는 시간이 오래 걸려, 컨트롤러가 전체 성능에 영향을 주지 않도록 한꺼번에 지우는 작업을 백그라운드로 수행하게 된다.

■ NAND Flash Memory의 논리적 구조
  ㆍ NAND Flash는 Block과 그 하부구조인 Page 단위로만 접근이 가능하며, 단 하나의 비트만을 쓰더라도 1page 전부를 사용하게 된다.

■ SSD Architecture
Controller는 일종의 SoC(system on chip)로 Host(컴퓨터)와 독립적으로 플래시메모리를 컨트롤 하여 
안정적인 드라이브 성능을 제공하게 된다. 팍스디스크는 SSD 에 필요한 모든 IP 를 자체 보유하고 있어 맞춤형으로 설계가 가능하다.
특히, SATA 6Gbps, Multi-Port 형 초고속 LPDDR Controller 를 자체 기술로 보유하고 있고, 세계 최소형 28bit BCH-ECC 기술을 사용하고 있다. . 

■ FTL(Flash Translation Layer)
  ㆍ 플래시 메모리의 동작 특성을 숨김.
  ㆍ 일반적인 파일 시스템의 인터페이스 제공
  ㆍ 플래시 메모리를 마치 디스크 드라이브처럼 보이도록 컨트롤러에 내장된 소프트웨어

FTL은 file system의 논리적 주소를 Flash memory의 실제 물리적 주소로 상호 변환시켜줄뿐 아니라, 
Flash memory특성상 쓰기동작이 지연되는 경우, 이를 숨기거나 보완하는등 핵심적인 역할을 하는 소프트웨어이다.
■ NAND Flash SSD구조

SSD에서는 Flash memory의 수명연장이나 신뢰성 제고를 위해 다양한 기술적 요소가 필요하다.

  ㆍ Garbage Collection은 마치 PC의 디스크조각 모음과 유사한 기능을 구현하며,
  ㆍ ECC는 데이터와 별도의 Spare Array 영역에 저장해 둔 코드를 활용해서 자동으로 복구하도록 도와주며,
  ㆍ Bad block관리는 HDD가 low level포맷을 통해 사용가능영역을 확정하는것과 비슷한 역할을 백그라운드로 수행하며,
  ㆍ Wear leveling은 일정영역에 계속 쓰기를 반복하면 Flash memory의 셀이 손상되므로
  ㆍ 이를 전영역에 고르게 쓰도록 하는 쓰기균등화 기능을 자동으로 수행한다.

'Embedded Lab > FLASH MEMORY' 카테고리의 다른 글

[FTL 기술흐름]  (0) 2013.06.28
[NAND 플래시의 종류]  (0) 2012.10.17
[SSD에서 FTL 관리 기법 - BPLRU]  (0) 2012.09.09
Posted by cyj4369
,