문맥 (context)
반도체 메모리 장치는 데이터를 저장하기 위해 사용된다. 반도체 메모리 장치는 크게 휘발성(volatile) 메모리 장치와 불휘발성(nonvolatile) 메모리 장치로 구분된다. 휘발성 메모리 장치에 저장된 데이터는 전원 공급이 중단되면 소멸된다. 반면에, 불휘발성 메모리 장치에 저장된 데이터는 전원 공급이 중단된 경우에도 유지된다.
불휘발성 메모리 장치의 일종으로 플래시 메모리가 있다. 컴퓨터 시스템이 모바일 영역으로 이동함에 따라 플래시 메모리에 대한 요구가 증가하고 있다. 플래시 메모리는 낮은 소비 전력, 고 집적도, 작은 크기 및 경량화의 장점을 가진다. 최근 들어서는, 휴대폰, PDA, 디지털 카메라 등과 같은 휴대용 정보 기기의 사용이 급증함에 따라, 하드 디스크 대신 플래시 메모리가 저장 장치로서 널리 사용되고 있다.
그러나, 플래시 메모리는 하드 디스크와 달리, 데이터 덮어쓰기(overwrite)를 지원하지 않는다. 즉, 기존의 데이터의 일부만을 갱신하는 것이 불가능하다. 따라서, 플래시 메모리에 데이터를 프로그램하기 위해서는 소거 동작이 선행되어야 한다. 이를 프로그램 전 소거 동작(erase-before-program)이라 한다. 즉, 데이터를 프로그램하기 전에, 플래시 메모리는 초기 상태 또는 소거 상태로 되돌려져야 한다.
플래시 메모리의 소거 동작에는 일반적으로 프로그램 동작에 비해 매우 긴 시간이 소요된다. 또한, 플래시 메모리의 소거 단위(블록)는 프로그램 단위(페이지)보다 훨씬 크기 때문에, 소거되지 않아도 되는 부분까지 함께 지워지는 결과가 초래될 수 있다. 원치않게 지워진 부분은 다시 프로그램 동작을 통해 복원되어야 한다.
플래시 변환 계층(FTL; Flash Translation Layer)은 플래시 메모리의 이러한 단점들을 극복하고, 플래시 메모리를 효율적으로 관리하기 위한 소프트웨어이다. 플래시 변환 계층(FTL)은 파일 시스템(File System)으로부터 논리 어드레스(LA; Logical Address)를 입력받고, 이를 물리 어드레스(PA; Physical Address)로 변환한다. 이를 어드레스 맵핑(Address Mapping)이라 한다. 여기에서, 논리 어드레스(LA)는 파일 시스템에서 바라본 어드레스이고, 물리 어드레스(PA)는 실제 플래시 메모리에서 사용되는 어드레스이다.
플래시 변환 계층(FTL)은 위와 같은 어드레스 맵핑 동작을 관리하기 위해 어드레스 맵핑 테이블(Address Mapping Table)을 가지고 있다. 어드레스 맵핑 테이블은 주로 랜덤 액세스 메모리(RAM)에 상에서 구동된다. 어드레스 맵핑 테이블에는 논리 어드레스(Logical Address) 및 이에 대응하는 물리 어드레스(Physical Address)가 기록되어 있다. 맵핑 단위에 따라 어드레스 맵핑 테이블의 크기 및 맵핑 방법이 달라질 수 있다. 어드레스 맵핑에 의해 호스트는 플래시 메모리를 하드 디스크 드라이브와 유사한 장치로 인식하고, 하드 디스크 드라이브와 동일한 방식으로 플래시 메모리를 액세스한다.
대표적인 맵핑 방법으로, 페이지 맵핑 방법(page mapping method), 블록 맵핑 방법(block mapping method), 그리고 혼합 맵핑 방법(hybrid mapping method) 등이 있다.
페이지 맵핑 방법에는 페이지 맵핑 테이블이 사용된다. 페이지 맵핑 테이블은 페이지 단위로 맵핑 동작을 수행하기 위한 것이며, 논리 페이지 및 이에 대응하는 물리 페이지를 저장한다. 블록 맵핑 방법에는 블록 맵핑 테이블이 사용된다. 블록 맵핑 테이블은 블록 단위로 맵핑 동작을 수행하기 위한 것이며, 논리 블록 및 이에 대응하는 물리 블록을 저장한다. 혼합 맵핑 방법은 페이지 맵핑 방법과 블록 맵핑 방법을 동시에 사용하는 방법이다.
일반적으로 하나의 메모리 블록은 수십 또는 수백 개의 페이지로 구성된다. 따라서 페이지 맵핑 방법을 사용할 경우에, 맵핑 테이블의 크기는 블록 맵핑 방법을 사용할 때보다 수십 배 또는 수백 배 증가하게 된다. 즉, 페이지 맵핑 방법은 맵핑 테이블을 사용하는 데 너무 많은 메모리 공간을 필요로 한다는 단점을 갖는다.
반면, 블록 맵핑 방법은 블록 단위로 맵핑 동작을 수행하기 때문에, 페이지 맵핑 방법에 비해 맵핑 테이블의 크기를 줄일 수 있는 장점을 갖는다. 그러나 블록 맵핑 방법에 의하면, 블록 내에 쓰일 페이지의 위치가 고정되기 때문에, 많은 병합(merge) 연산을 수행해야 한다는 단점을 갖는다.
혼합 맵핑 방법은 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다. 혼합 맵핑 방법은 두 가지 맵핑 방법을 모두 사용함으로써 맵핑 테이블의 크기를 줄임과 동시에, 병합 연산의 횟수를 줄일 수 있다.
혼합 맵핑 방법에서의 쓰기 동작 시에, 데이터 블록에 저장될 페이지 데이터는 먼저 로그 블록에 저장되고, 데이터 블록의 기존 데이터는 무효(invalid)한 것으로 표시된다. 쓰기 동작이 수행됨에 따라 무효 영역이 증가한다. 무효 영역에는 데이터가 저장될 수 없기 때문에 플래시 메모리의 용량이 감소한다. 플래시 메모리의 용량을 늘리기 위해, 유효 페이지들(valid pages)을 모아 새로운 데이터 블록에 저장하고, 무효 페이지들(invalid pages)을 소거하는데 이를 병합 동작이라 한다.
병합 동작은 복수의 페이지 프로그램 동작들과 복수의 블록 소거 동작들을 포함하기 때문에 상당히 긴 시간 동안 수행된다. 결국, 메모리 시스템의 성능이 저하된다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
혼합 맵핑 방법(hybrid mapping method)에서 로그 블록(log block)과 데이터 블록(data block)은 각각 어떤 맵핑 방법을 사용하여 관리되는가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation혼합 맵핑 방법 내에서 로그 블록과 데이터 블록에 적용되는 각각의 맵핑 방식 관계를 파악해야 한다.
-
2정보 추출
information_extraction혼합 맵핑 방법의 구성 요소인 로그 블록과 데이터 블록에 대한 설명을 추출한다.
- 혼합 맵핑 방법은 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다.
-
3근거 선택
evidence_selection로그 블록과 데이터 블록에 할당된 구체적인 맵핑 방법을 선별한다.
- 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다.
-
4논리 통합
logical_integration두 구성 요소와 각각의 맵핑 방법 간의 대응 관계를 정리한다.
-
5결론 도출
conclusion_formulation로그 블록은 페이지 맵핑, 데이터 블록은 블록 맵핑을 사용한다는 결론을 도출한다.
- 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다.
-
6답변 생성
answer_generation질문에 대해 명확하게 대응하는 답변을 작성한다.
- 로그 블록(log block)에 대해서는 페이지 맵핑 방법을 사용하고, 데이터 블록(data block)에 대해서는 블록 맵핑 방법을 사용한다.
최종 답변 (final_answer)
혼합 맵핑 방법에서 로그 블록(log block)은 페이지 맵핑 방법을 사용하며, 데이터 블록(data block)은 블록 맵핑 방법을 사용한다.
핵심 해석 (core_interpretation)
혼합 맵핑 방법은 로그 블록에 대해서는 페이지 맵핑 방법을 사용하고 데이터 블록에 대해서는 블록 맵핑 방법을 사용하여 관리한다.