160 likes | 181 Views
This invention proposes a system architecture to enhance the performance and management of data stored in Flash Memory by introducing a virtual mapping system. It allows direct access to Flash Memory through virtual addresses, improving efficiency in read, write, and transfer operations.
E N D
Flash File System Ban ,A. 1995. US Patent 5,404,485 한국외국어대학교 컴퓨터및정보통신공학과 2006.02.19 박 성 환
목 차 • Background of the invention • Summary of the invention • System Architecture • Zone & Unit • Unit Format • How the computer generated addresses • Operation • Read • Write • Transfer • Two-level Mapping See like hacker's eyes
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 프로그램 개발이 필요함 See like hacker's eyes
Summary of the invention • Virtual mapping system은 이전 OS 프로그램이 Flash Memory를 직접 물리적 주소로 Read/Write 하는 것을 가능하게 함 • Virtual map은 RAM에 Virtual Number를 저장 • OS에서 Read/Write를 하면 Virtual Map을 통해서 실제 물리 주소를 알아내서 연산함 • 실제 물리 Memory는 접근 불가 See like hacker's eyes
System Architecture • Processor는 Flash control을 통해서만 I/O를 할 수 있음 • 효율적인 I/O를 위해 RAM에 Mapping table을 저장하여 사용함 See like hacker's eyes
Zone & Unit • Zone • 하나 또는 물리적으로 연속된 Flash Memory Area • Unit • 각 Unit은 여러 Block들을 포함함 • 하나 혹은 복수개의 Zone으로 구성 • Ex)그림에서는 2개의 Zone으로 구성 See like hacker's eyes
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 See like hacker's eyes
How the computer generated addresses See like hacker's eyes
How the computer generated addresses • Computer는 Block number와 Offset으로 이루어진 Address를 생성 • Controller가 이를 Virtual Address로 변환 • Virtual Map은 Virtual Address Space와 Physical Address Space간의 변환에 이용됨 • Virtual Map을 이용해 Logical Unit Number을 알아내어 Logical Address를 얻어냄 • 이때 Block Offset은 그대로 유지해서 가져옴 • Logical Block Address와 Block Offset을 통해 Block Offset in Unit을 알아냄 • Logical Unit Number를 Physical Unit Number로 변환하여 Physical Address를 얻음 • 이때 Block Offset in Unit은 그대로 유지해서 가져옴 See like hacker's eyes
Read Operation • Virtual Address로 Logical Address를 알아냄 • Logical Address로 Physical Address를 알아냄 • Physical Address에서 Data를 읽음 See like hacker's eyes
Write Operation • Virtual Address로 Logical Unit Address를 알아냄 • Unit Allocatation Table을 검사함 • Logical Address가 Free인가? • Free이면 • Unit Address를 Physical Address로 변환 • 해당 Physical Address에 Data기록 • Operation을 끝냄 See like hacker's eyes
Write Operation • Free가 아니라면 • Unit Allocation Table에 Free한 공간을 찾음 • Logical Address는 새로운 Physical Address에 Mapping됨 • 해당 Physical Address에 Data가 기록됨 • Unit Allocation Table에 이전 Logical Address는 “deleted and not writable”로 갱신함 • Unit Allocation Table에 Logical Address는 Data를 기록한 새로 할당된 Physical Block으로 기록 See like hacker's eyes
Transfer Unit • 제한없이 Read/Write Operation을 하기 위해 주기적으로 Flash Memory 공간을 재생시켜야 함 • Free한 Block들만 가지는 Transfer Unit을 항상 꼭 하나 제공함 • Ex) See like hacker's eyes
Transfer Operation • Transfer를 위해 Unit을 선택함 • 선택된 Unit내의 모든 Active한 Block들을 읽음 • Transfer unit에 위치를 지켜서 저장함 • Flash는 선택된 Unit을 Erase함 • Logical to Physical Address Map을 갱신해 줌 See like hacker's eyes
Virtual Map의 크기 • 80 Mbytes의 Flash Memory • 640 Kbytes의 Virtual Map • Two-level Mapping • Primary Map은 Flash Memory상에 유지 • Secondary Map은 Main Memory에 유지 Flash Memory RAM Primary Map Secondary Map Primary Map Primary Map Primary Map See like hacker's eyes
Two-level Mapping • Processor가 Virtual Address를 Page Number로 변환 • Page Number를 이용해 Flash에 있는 Primary Virtual Map(PVM)을 찾기 위해 RAM에 있는 Secondary Virtual Map(SVM)을 사용함 • 찾아낸 SVM을 RAM에 읽어들임 • SVM에서 Physical Address를 찾아서 Read/Write 연산을 함 • 단, Write연산은 앞에서와 같이 SVM을 갱신함 • 이전에 Page Block을 Virtual Map에서 Deleted처리함 • 새로운 Map에 대한 Pointer를 Virtual Map에 저장함 See like hacker's eyes