시스템 소프트웨어 특강 수업은 2007년 1학기에 수강했던 과목으로서 주로 플래시 메모리의 FTL(Flash Transport Layer)에 대해서 공부 했다.
FTL 의 기본기능은 주소변환이라고 하겠다. 논리주소를 플래시 메모리에 대한 물리적 주소로 변환해주는 역할을 한다.

수업 자료 목록

파일은 ftl.zip 에서 다운로드 받을 수 있다. 자료의 순서는 파일명의 숫자로 구분한다.
역시 수업에서 발표했던 전체 PPT 파일은 에서 다운로드 받을 수 있다.

제목 파일명
플래시 메모리 기반 시스템 소프트웨어 FlashMemory_intro.pdf
NAND Operation - Detail's NAND_Operation.pdf
FTL - Introduction FTL_intro.pdf
M-Systems Msystem.pdf
Mitsubish Mitsubishi.pdf
Moving sectors within a block of information in a flash memory mass storage architecture lexar.pdf
A SPACE-EFFICIENT FALSH TRANSLATION LAYER FOR COMPACTFLASH SYSTEM A_SPACE_EFFICIENT_FALSH_TRANSLATION_LAYER_FOR_COMPACTFLASH_SYSTEM.pdf
A Log Buffer-Based Flash Translation Layer Using Fully-Associative Sector Translation A_Log_Buffer_Based_Flash_Translation_Layer_Using_Fully_Associative_Sector_Translation.ppt
Method of Driving Remapping in Flash Memory and Flash Memory Architecture suitable Therefor SSR.pdf
A Log Buffer-Based Flash Translation Layer Using Fully-Associative Sector Translation A_Log_Buffer_Based_Flash_Translation_Layer_Using_Fully_Associative_Sector_Translation.ppt
A Space-Efficient Caching Mechanism for Flash-Memory Address Translation caching_Mech.pdf
Configurable NAND Flash Translation Layer Configurable_NAND_Flash_Translation_Layer.ppt
A Log-based Flash Translation Layer for Large NAND flash memory log_based_FTL_for_large_nand_flash_memory.pdf
FLASH MEMORY WEAR LEVELING SYSTEM AND METHOD FLASH_MEMORY_WEAR_LEVELING_SYSTEM_AND_METHOD_.ppt
Wear Leveling of Static Areas in Flash Memory 손형서_Wear_Leveling_of_Static_Areas_in_Flash_Memory.ppt
A Flash-Memory Based File System A_Flash_Memory_Based_File_System.ppt
An Efficient log-structured flash file system for micro sensor nodes An_Efficient_Log_Structured_Flash_File_System_for_Micro_Sensor_Nodes.pdf
A Fast Start-Up Technique for Flash Memory Based Computing Systems Fast_Start_Up_Technique.ppt
Portable Electronic Device Having A Log-Structured File System In Flash Memory Portable_Electronic_Device_Having_A_Log_Structured_File_System_In_Flash_Memory.pdf
Design of a Reliable NAND Flash Software for Mobile Device Design_of_a_Reliable_NAND_Flash_Software_for_Mobile_Device_김형진.pdf
A Transactional Flash File System for Microcontrollers A_Transactional_Flash_File_System_for_Microcontrollers_1.ppt
PicoDBMS_Scaling down Database Techniques for the Smartcard PicoDBMS_Scaling_down_Database_Tecchniques_for_the_Smartcard_system.ppt
PoLiDBMS Design and prototype Implementation of a DBMS for portable Devices PoLiDBMS_Design_and_prototype_Implementation_of_a_DBMS_for_portable_Devices.ppt
An Efficient B-Tree Layer for Flash-Memory Storage Systems BFTL_유종선.pdf
An Efficient NAND Flash File System for Flash Memory Storage An_Efficient_NAND_Flash_File_System.ppt
FAB: Flash-Aware Buffer Management Policy for Portable Media Players FAB__2007505625_전제민_.ppt
Design of Flash-based DBMS :An In-Page Logging Approach Design_of_Flash_based_DBMS_An_in_page_Logging_Approach.pdf
An Efficient Management Scheme for Large-Scale Flash-Memory Storage System An_Efficient_Management_Scheme_for_Large_Scale_Flash_Memory_Storage_System.ppt
MicroHash: An Efficient Index Structure for Flash-Based Sensor Devices MicroHash.ppt
Algorithms and Data Structures for Flash Memories 2007601288_장경현.ppt
Managing Flash Memory In Personnal Communication Devices Managing_Flash_Memory_In_Personnal_Communication_Devices.ppt
STAFF: State Transition Applied Fast Flash Translation Layer STAFF_2007505368_고상원.pdf
Efficient Data Management on Lightweight Computing Devices Efficient_Data_Management_on_Lightweight_Computing_Devices.ppt

NAND FLASH 의 특징

  1. No In-place Update = Erase-before-write Arch(1 → 0 : OK, 0 → 1 : NO)
  2. Operation unit : read / write(program) : page 단위로 이루어짐/ erase : block 단위
  3. Asymmetric Cost : read(10us) / write(200us) / erase(2ms)

부분적인(partial) read/write 가 가능하다, 하지만, erase 는 block 단위로 이루어진다.

타입 단점 장점
SLC(single level cell) cell 에 전자가 하나이기 때문에, 0 과 1 밖에 표현할 수 없다 속도가 빠르다(에러체크)
MLC(multi level cell) 에러체크에 경우, 복잡하다 cell 에 전자가 2 개 이상이기 때문에, 여러가지 상태를 표현할 수 있음, 집적도가 높음(대용량에 적합)

Mitsubishi

LASAR

렉사(LASAR) 방식의 가장 큰 특징이라 한다면, 여러가지 플래그를 사용한다는 것이다. 플래그는 각각 move, used, old, defect 로 나뉘어져 있다.
동작 순서는 다음과 같다.

  1. spare 영역의 구조체에는 각각의 플래그가 선언되어 있다.
  2. 초기화시에는 모든 플래그가 0 으로 설정된다.
  3. write 시에는 빈 블럭에 데이터를 저장하고, used 플래그를 1로 설정한다.
  4. 만일 다음에 같은 주소에 write 할 시에는, used 플래그를 보고, 다른 블럭에 저장한다. 그리고 이전의 저장된 데이터 블럭은 old 플래그와 defect 플래그를 1 로 설정한다.
  5. 현재 블럭이 다 차면, 새로운 블럭을 하나 할당한다. 여기서 저장되는 것들은 move 플래그를 1 로 설정한다.
  6. 두개의 블럭 모두 다 차면, merge 가 일어나면서 새로운 블럭에 used 플래그만 있는 데이터를 옮겨와 저장한다.

SSR

현재까지 알아본 FTL 알고리즘 중에서 가장 성능이 안 좋은 방법이다.
기존의 방법과는 달리 INPLACE 영역이 없다. Mitsubishi 의 경우에는 1/2 를 INPLACE 영역으로 할당했지만, 여기서는 그럴 필요가 없다.
이 방법이 성능이 안좋은 결정적인 이유는 기존의 블럭이 모두 차서(FULL) 새로운 블럭을 할당할 때, 기존의 번지에 값이 이미 write 되어 있다면, 비록 다른 번지에 빈 공간이 있다고 하더라고 새로운 블럭을 할당한다.

BAST

현재까지의 FTL 알고리즘 중에서 가장 성능이 좋은 방법이다.
한 블럭의 모든 데이터가 invalid 하면 switch 를 시키고, 하나라도 valid 하면 merge 시킨다.
로그 블럭을 선언하고, ftl_write(), merge(), switch() 함수를 수정하여 구현한다.
실험시에는 로그 블럭의 숫자(2,4,8,16,32)를 달리 하여 테스트한다.

FAST

BAST 알고리즘과 로그블럭 갯수를 같이 증가 시켜 비교 한다. 이때, SSR 과 LEXAR 방법은 비교가 곤란하므로 테스트에서 제외시킨다.
FAST 는 랜덤 로그 블럭이 여러 개이고, 시퀀셜 로그 블럭이 1 개이다.

  • computer/rtcclab/시스템_소프트웨어_특강.txt
  • Last modified: 4 years ago
  • by likewind