728x90

임베디드 시스템

- 부피/전력이 큰 하드디스크 대신 플래시 메모리 사용

- 하드디스크를 가상으로 구현하고 파일시스템을 만든것 -> 플래시 파일시시스템

 

플래시 시스템

- 플래시 메모리 특성에 최적화

- 데이터 읽기는 블록과 관계없이 바이트 단위로 자유롭게 읽음

- 데이터 변경시 블록 단위로 처리

- 쓰기 수명이 있어 메모리 수명고려

- 모든 블럭에 골고루 쓰기하여 수명을 최대한 늘여야한다.

 

(1) 플래시 파일 시스템

1) 플래시 메모리 구조

2) 플래시 파일 시스템

3) JFFS

4) YAFFS

 

1) 플래시 메모리 구조

플래시 메모리

- 저비용 불활성 메모리

- In-system rewritable eprom

- nor형 : 셀 크기가 크지만, 고속 랜덤 액세스 가능

- nand 형 :셀 크기가 작고, 고속의 burst 액세스 가능

 

                       NOR형     NAND형

- 프로그램 속도    느림         빠름

- 직접도              낮음         높음

- 액세스 단위 속도  높음        낮음

                            x     임베디드시스템에서 주로사용

* 데이터 액세스 속도가 느리므로 대부분 프로그램은 플래시메모리 내용을 메인메모리에 복사하여 실행

 

2) 플래시 파일 시스템

플래시 파일 시스템

- 플래시 메모리상에 구현된 전용파일 시스템

- 아래의 이유로  ext2 파일 시스템 구현 힘듬

 ->블록 크기차이 : 플래시 메모리 - 64k ~256k / ext2 - 1 ~ 8k

 -> 플래시 메모리 삭제 및 횟수 제한

- 비용부담 -> 파일 시스템 크기 축소하기위해 파일시스템 이미지 합축

- 파일시스템 신뢰도향상 -> 저널링 사용

 

플래시 메모리의 XIP(Excutable in place) 기능

- 플래시 메모리에 저장된 내용을 RAM에 복사하지 않고 플래시 상에 직접 실행하는 독작모드

- 파일시스템 압축 -> XIP 구현힘듬

- XIP 기능 사용 -> writabe 파일시스템 구현 힘듬

 

MTD(Memory technology device)

- 리눅스에서 제공하는 플래시 메모리 추상화 계층

- 다양한 플래시 메모리에 대해 동일한 API 사용

- MMC, SD, CF 지원하지 않음

- /dev/mtd0, /dev/mtd1 를 통해 데이터 입출력

- ioctl() 함수를 사용하여 MTD 정보 참조

 

FTL(Flash Translation Layer)

- 플래시 메모리를 블록 디바이스로 추상화

- 리눅스에서 플래시 메모리를 블록디바이스로 처리가능 -> 파일시스템 구현 가능

 

3)JFFS

JFFS

- Journaling Flash File System

- 디스크 없는 임베디드 시스템에서 NOR 플래시 메모리를 사용한 저널링 파일 시스템

- MTD 통해접근, 순환로그를 사용해 플래시 메모리 수명 늘림

 

JFFS2

- JFFS의 NAND 플래시용 파일 시스템

- 압축을 통한 성능향상

- 하드링크 지원

 

(2)임베디드 시스템의 플래시 메모리 활용

1) 플래시 메모리 활용

2) 플래시 메모리 맵

3) 플래시 메모리 퓨징

4) 플래시 메모리 퓨징 실시 예

 

1) 플래시 메모리 활용

임베디드 시스템의 플래시 메모리 활용

 1. 부트로더, 커널이미지, 램디스크 이미지 저장공간으로 사용

 - 초기 부팅과정에서 모두 메인메모리로 압축해제된 형태로 복사되어 실행

 - 응용프로그램 실행과정에서 데이터 저장이 필요한 경우 플래시 메모리 특정공간을 할당해서 직접 써넣음

2.. JFFS, YAFFS 플래시 파일 시스템을 사용하여 하드처럼 사용

 

2) 플래시 메모리 맵

- 플래시 메모리의 분할 구조

- 플래시 메모리를 블록단위로 나누어 그 용도를 사전에 정의

- 임베디드 소프트웨어 컴포넌트들이 저장되는 위치들로 맵을 구성

 

플래시 메모리 맵 예시

- 램디스크들의 물리적 위치가 사전에 정의

3) 플래시 메모리 퓨징

- 퓨징 : 프로그램 또는 데이터를 플래시 메모리 맵에 따라 써넣는것

  ->퓨징의 주체에따라 호스트 컴퓨터 퓨징, 타겟보드 퓨징

 

호스트 컴퓨터 퓨징

-호스트 컴퓨터에서 타겟 보드 플래시 메모리를 직접 퓨징

- 호스트 병렬 프린텉 포트와 타겟보드의 JTAG 인터페이스 연결하여 퓨징

- 타겟 보드에 초기화 프로그램(부트로더)가 설치안된경우 초기화 프로그램을 퓨징할때 사용

 

타겟보드 퓨징

- 초기화 프로그램(부트로더)에서 TFTP를사용

- 소프트웨어 컴포넌트를 타겟보드의 RAM에 다운로드

- 부트로더의 퓨징 명령어 사용

- 플래시 메모리 퓨징

-> 초기화 프로그램을 제외한 나머지 컴포넌트를 퓨징할때 사용

 

300x250

+ Recent posts