반응형
flash 메모리의 페이지(page)와 블록(block)
Flash 메모리에서의 "페이지(Page)"와 "블록(Block)"은 데이터 저장 구조의 기본 단위입니다. 이들의 개념을 이해하는 것은 Flash 메모리의 작동 방식과 효율적인 데이터 관리를 이해하는 데 중요합니다. 페이지는 데이터를 읽고 쓰는 기본 단위이며, 블록은 데이터를 지울 때 사용되는 더 큰 단위입니다.
1. 페이지(Page)
정의
- 페이지는 Flash 메모리에서 데이터를 읽고 쓰는 최소 단위입니다. 데이터는 페이지 단위로 쓰여지며, 한 번에 하나의 페이지 정보를 읽을 수 있습니다.
예시
- 페이지 크기: 4KB (페이지당 4,096 바이트)
- 페이지 주소: 0x0001에서 시작하여 0xFFFF까지 할당 가능
- 예를 들어, 4KB의 데이터를 저장하기 위해서는 하나의 페이지가 필요하며, 이 데이터는 예를 들어 0x0001 주소의 페이지에 저장됩니다.
2. 블록(Block)
정의
- 블록은 여러 페이지를 포함하는 더 큰 데이터 저장 단위입니다. Flash 메모리에서는 데이터를 지우는 작업이 블록 단위로 이루어집니다. 즉, 개별 페이지를 지울 수는 없고, 블록에 포함된 모든 페이지를 한 번에 지웁니다.
예시
- 블록 크기: 256KB (한 블록 당 64개의 페이지, 각 페이지 4KB)
- 블록 주소: 0x01에서 시작하여 0xFF까지 할당 가능
- 예를 들어, 한 블록에 256KB의 데이터를 저장할 수 있으며, 이는 64개의 페이지에 걸쳐 저장됩니다. 0x01 블록 주소에 데이터를 저장한다면, 이는 0x0001에서 0x0040(64개 페이지)에 해당하는 주소 범위에 데이터를 저장하는 것과 같습니다.
3. 페이지와 블록 사용 예
- 데이터 저장 예: 8KB의 데이터를 저장해야 한다면, 이는 두 페이지(각각 4KB)가 필요합니다. 이 데이터는 예를 들어 0x0001과 0x0002 주소의 페이지에 나누어 저장됩니다.
- 데이터 삭제 예: 저장된 데이터를 삭제하려면, 해당 데이터가 속한 블록 전체를 지워야 합니다. 예를 들어, 0x0001과 0x0002 주소의 페이지에 데이터가 저장되어 있다면, 이 페이지들을 포함하는 블록(예: 0x01 블록)을 지워야 합니다.
구분 | 단위 | 크기 | 작업 단위 | 주소 예시 | 사용 예시 |
페이지 | 4KB | 데이터 읽기/쓰기 | 페이지 단위 | 0x0001 ~ 0xFFFF | 4KB 데이터 저장 → 0x0001 페이지에 저장 |
블록 | 256KB (64 페이지) | 데이터 삭제 | 블록 단위 | 0x01 ~ 0xFF | 8KB 데이터 저장 → 0x01 블록의 0x0001, 0x0002 페이지에 저장 |
반응형
플래시 메모리 종류 및 특징
플래시 메모리는 비휘발성 저장 매체로, 전원이 꺼져도 데이터를 유지할 수 있습니다. 주로 컴퓨터, 스마트폰, 디지털 카메라 등 다양한 전자 기기에 사용됩니다. 플래시 메모리의 주요 종류로는 NOR 플래시와 NAND 플래시가 있으며, 각각의 특징과 용도가 다릅니다.
NOR 플래시
특징
- 빠른 읽기 속도: NOR 플래시는 빠른 랜덤 액세스 시간을 제공하여, 코드 실행을 위한 읽기에 적합합니다.
- 작은 데이터 쓰기에 용이: 소량의 데이터 쓰기와 삭제에 효율적입니다.
- 높은 비용: NAND 플래시에 비해 비용이 더 높습니다.
- 낮은 저장 밀도: 같은 면적에 NAND 플래시보다 적은 데이터를 저장할 수 있습니다.
- 구조: NOR 플래시는 각 메모리 셀이 개별적으로 게이트에 연결되는 구조를 가집니다. 이는 CPU가 메모리에 직접 액세스할 수 있게 해주어, 실행 인플레이스(XIP)가 가능하게 합니다.
- 셀 구성: 각 셀에는 하나의 트랜지스터가 포함되며, 이는 플로팅 게이트를 사용하여 데이터를 저장합니다. 플로팅 게이트에 전하가 존재하면 '0', 존재하지 않으면 '1'로 인식됩니다.
- 회로 설명: NOR 플래시의 회로는 각 셀이 병렬로 연결되어 있으며, 이로 인해 높은 읽기 속도와 랜덤 액세스 능력을 제공합니다. 하지만, 이 구조는 높은 비용과 낮은 저장 밀도를 가져옵니다.
용도
- 펌웨어 저장, 임베디드 시스템, 부트로더 등 프로그램 코드의 실행을 위해 주로 사용됩니다.
NAND 플래시
특징
- 높은 쓰기 및 삭제 속도: 대량의 데이터 쓰기와 삭제에 최적화되어 있습니다.
- 높은 저장 밀도: 같은 면적에 더 많은 데이터를 저장할 수 있어, 고용량 저장에 적합합니다.
- 낮은 비용: NOR 플래시에 비해 제조 비용이 낮습니다.
- 느린 랜덤 읽기 속도: NOR 플래시에 비해 랜덤 읽기 속도가 느립니다.
- 구조: NAND 플래시는 여러 메모리 셀이 직렬로 연결되는 구조를 가지며, 이는 페이지 단위로 데이터를 읽고 쓸 수 있게 합니다. 이 구조 덕분에 높은 저장 밀도와 낮은 비용을 제공하지만, NOR 플래시에 비해 읽기 속도가 느립니다.
- 셀 구성: NAND 플래시 역시 플로팅 게이트를 사용한 트랜지스터로 구성되지만, 셀이 직렬로 연결되어 있어 한 번에 많은 양의 데이터를 처리할 수 있습니다. 이는 블록 단위의 쓰기 및 삭제 작업을 효율적으로 만듭니다.
- 회로 설명: NAND 플래시의 회로는 직렬 연결된 셀 구조로 인해 블록 단위로 데이터를 관리합니다. 이 때문에 대량의 데이터 쓰기와 삭제가 빠르게 진행되며, 고용량 데이터 저장소로 적합합니다.
용도
- 대용량 데이터 저장이 필요한 USB 드라이브, SSD(Solid State Drive), 스마트폰 등에 주로 사용됩니다.
반응형
'코딩취미 > 프로그램 지식' 카테고리의 다른 글
클린 아키텍처 기반 프로젝트 vs 도메인 주도 설계(DDD) 기반 프로젝트 특징 비교 정리 (0) | 2024.03.21 |
---|---|
오픈소스 라이센스 결합 기본 원칙 및 호환성 이슈 (0) | 2024.02.29 |
[eclipse] ELF Parser vs GNU ELF Parser, GNU PE64 Windows Parser 목적과 특징 비교 (0) | 2024.02.27 |
네임 맹글링(Name Mangling)의 목적과 프로그래밍 언어별 사용 특징 (0) | 2024.01.19 |
xml, json, yaml 의 특징과 사용방법 (0) | 2024.01.17 |