운체_w6

네코·2022년 4월 6일
0

운영체제

목록 보기
4/6

Flash memory

작고 빠름
최소 유닛 : page (디스크의 섹터와 같음), 디스크는 블록 디바이스로 무조건 섹터 단위로만 읽어야함, 특정 크기로만 접근해야하는 디바이스를 블록 디바이스 <=> 반대로 character device, 바이트 단위로 전송 가능한 디바이스(ex keyboard)
플래쉬 메모리도 블록 디바이스(페이지 단위), 일반적인 page 크기 512바이트

4개의 페이지 = erase unit, 보통 128kb, 256page
전체는 페이지로 나뉘지만 관리는 erase unit으로

특성

  • erase before write
    이미 페이지에 데이터가 저장되어 있으면 그냥 새로운 데이터를 저장할 순 없음
    해당 페이지 있는 erase unit 전체를 지우고 해당 페이지에 데이터 저장, 즉 지우고 저장(2.2마이크로세컨) => 이문제를 해결해서 write 시간을 단축하는 방법 뒤에 나옴
    여기서 알아야 할건 똑같은 페이지에 데이터 저장하려면 지웠다가 해야한다는 것
  • 한 블록당 지울 수 있는 횟수는 100,000번(블록 = erase unit)

flash file sytem 구조

기존 파일시스템과의 호환성을 가장 고려 => flash translation layer 플래쉬 메모리가 마치 하드디스크인것처럼 동작하는 interface를 제공해줌

log structured file system (LFS)

디스크를 세그먼트 단위로 나눔, 메모리도 세그먼트 단위로 잡음
변경된 데이터를 세그먼트 단위만큼 축적함, 변경 데이터들을 모아두다가 세그먼트 단위가 꽉 차면 그 때 디스크에 저장함.
디스크에 저장될 시 예전 데이터들은 무효화됨. 무효화된 데이터의 공간들은 빈 상태로 남게됨. 새 세그먼트 공간을 디스크에 확보하기 위해 garbage collection이 해결, 이 garbage collection 동작 떄문에 LFS의 속도가 떨어질 수 있으나 write속도 자체가 너무 빠르기 때문에 Flash memory에서도 사용함

이번엔 flash memory에서 동작
1. 블록 레벨 write, 단 erase를 최소화시켜서
문제점 : 변경되지 않은 page들까지 다른 블록에 저장됨, 즉 불필요한 copy를 요구하기 때문에 부하 증가
garbage collection으로 write 속도 저하

  1. page-level write
    erase를 최소화해서 write 성능 최대로
    하나씩 업데이트함(페이지 하나씩)
    garbage collection 발생함
    page-mapping FTL: 섹터번호와 페이지 번호와 대응관계 저장하는 테이블

solid state device

플래쉬 메모리를 확장한 것, 반도체
장점: read,write속도 빠름,가격 낮다, 파워 소비 작다(디스크는 모터로 구동되기 때문에 전력 소모 큼), no moving parts

SSD structure

플래쉬 패키지: 한블록(256kb라 가정), 64개의 페이지
플래인: 1플레인(512mb):2048 blocks + register
die : 4planes(2gb)
8 bit serial IO bus
페이지를 각 플레인에 하나씩 저장함, 이렇게 퍼뜨려서 저장하면 8개 페이지가 병렬적으로 레지스터로 올라가서 읽는 속도가 빨라짐.

0개의 댓글