ISLab Flash Team Flash File System Ban A
ISLab Flash Team Flash File System Ban , A. 1995. US Patent 5, 404, 485 한국외국어대학교 컴퓨터및정보통신공학과 2006. 02. 19 박성환
목차 1. Background of the invention 2. Summary of the invention 3. System Architecture 4. Zone & Unit 5. Unit Format 6. How the computer generated addresses 7. Operation 1. Read 2. Write 3. Transfer 8. Two-level Mapping ISLab Flash Team See like hacker's eyes 2 Made By Hackereyes
Background of the invention • Field of the invention – Flash Memory의 저장 성능을 향상시키고, Flash Memory에 저장되는 Data를 잘 관리해보고자 개발을 함 • Description of the Prior Art – Disk와 같은 저장장치를 위해 Design된 이전 OS 프로그램은 Flash Memory와는 맞지 않음 – Flash Memory의 특성을 고려한 OS 프로그램 개발이 필요함 ISLab Flash Team See like hacker's eyes 3 Made By Hackereyes
Summary of the invention • Virtual mapping system은 이전 OS 프로그램이 Flash Memory를 직접 물리적 주소로 Read/Write 하는 것을 가능하게 함 • Virtual map은 RAM에 Virtual Number를 저장 • OS에서 Read/Write를 하면 Virtual Map을 통해서 실제 물리 주소를 알아내서 연산함 – 실제 물리 Memory는 접근 불가 ISLab Flash Team See like hacker's eyes 4 Made By Hackereyes
System Architecture • Processor는 Flash control을 통해서만 I/O를 할 수 있음 • 효율적인 I/O를 위해 RAM에 Mapping table을 저장하여 사용함 ISLab Flash Team See like hacker's eyes 5 Made By Hackereyes
Zone & Unit • Zone – 하나 또는 물리적으로 연속된 Flash Memory Area • Unit – 각 Unit은 여러 Block들을 포 함함 – 하나 혹은 복수개의 Zone으 로 구성 – Ex)그림에서는 2개의 Zone으 로 구성 ISLab Flash Team See like hacker's eyes 6 Made By Hackereyes
Unit Format • 21: 여러 Block들을 소유 – Block number와 Offset으로 접근가능 • Unit Header – Format Identifier – Unit의 Logical unit number – System-wide information도 가질 수 있음 • Block Allocation Map – Unit안에 Block 정보 • Allocate status – Free and writable – Deleted and not writable – Allocated and contains user data • Offset • Block의 Virtual Address – Back pointer ISLab Flash Team See like hacker's eyes 7 Made By Hackereyes
How the computer generated addresses ISLab Flash Team See like hacker's eyes 8 Made By Hackereyes
How the computer generated addresses 1. Computer는 Block number와 Offset으로 이루어진 Address를 생성 2. Controller가 이를 Virtual Address로 변환 1. Virtual Map은 Virtual Address Space와 Physical Address Space간의 변환에 이용됨 3. Virtual Map을 이용해 Logical Unit Number을 알아내어 Logical Address를 얻어냄 1. 이때 Block Offset은 그대로 유지해서 가져옴 2. Logical Block Address와 Block Offset을 통해 Block Offset in Unit을 알아냄 4. Logical Unit Number를 Physical Unit Number로 변환하여 Physical Address를 얻음 1. 이때 Block Offset in Unit은 그대로 유지해서 가져옴 ISLab Flash Team See like hacker's eyes 9 Made By Hackereyes
Read Operation 1. Virtual Address로 Logical Address를 알아냄 2. Logical Address로 Physical Address를 알아냄 3. Physical Address에서 Data를 읽음 ISLab Flash Team See like hacker's eyes 10 Made By Hackereyes
Write Operation 1. Virtual Address로 Logical Unit Address 를 알아냄 2. Unit Allocatation Table을 검사함 3. Logical Address가 Free인가? 4. Free이면 1. Unit Address를 Physical Address로 변환 2. 해당 Physical Address에 Data기록 3. Operation을 끝냄 ISLab Flash Team See like hacker's eyes 11 Made By Hackereyes
Write Operation 4. Free가 아니라면 1. Unit Allocation Table에 Free한 공간 을 찾음 2. Logical Address는 새로운 Physical Address에 Mapping됨 3. 해당 Physical Address에 Data가 기록 됨 4. Unit Allocation Table에 이전 Logical Address는 “deleted and not writable”로 갱신함 5. Unit Allocation Table에 Logical Address는 Data를 기록한 새로 할당 된 Physical Block으로 기록 ISLab Flash Team See like hacker's eyes 12 Made By Hackereyes
Transfer Unit • 제한없이 Read/Write Operation을 하기 위해 주기적으로 Flash Memory 공간을 재생시켜야 함 • Free한 Block들만 가지는 Transfer Unit을 항상 꼭 하나 제공함 • Ex) ISLab Flash Team See like hacker's eyes 13 Made By Hackereyes
Transfer Operation 1. Transfer를 위해 Unit을 선택함 2. 선택된 Unit내의 모든 Active한 Block들을 읽음 3. Transfer unit에 위치를 지켜서 저장함 4. Flash는 선택된 Unit을 Erase함 5. Logical to Physical Address Map을 갱신해 줌 ISLab Flash Team See like hacker's eyes 14 Made By Hackereyes
Virtual Map의 크기 • 80 Mbytes의 Flash Memory – 640 Kbytes의 Virtual Map • Two-level Mapping – Primary Map은 Flash Memory상에 유지 – Secondary Map은 Main Memory에 유지 Primary Map Secondary Map Primary Map RAM Flash Memory ISLab Flash Team See like hacker's eyes 15 Made By Hackereyes
Two-level Mapping 1. Processor가 Virtual Address를 Page Number로 변환 2. Page Number를 이용해 Flash에 있는 Primary Virtual Map(PVM)을 찾기 위해 RAM에 있는 Secondary Virtual Map(SVM)을 사용함 3. 찾아낸 SVM을 RAM에 읽어들임 4. SVM에서 Physical Address를 찾아서 Read/Write 연 산을 함 1. 단, Write연산은 앞에서와 같이 SVM을 갱신함 2. 이전에 Page Block을 Virtual Map에서 Deleted처리함 3. 새로운 Map에 대한 Pointer를 Virtual Map에 저장함 ISLab Flash Team See like hacker's eyes 16 Made By Hackereyes
- Slides: 16