MMU없는 내장형 시스템의 메모리 사용량을 줄이기 위한 주 정적 공유 라이브러리 기법
Quasi-Static Shared Library Scheme for Memory Footprint Reduction in MMU-less Embedded Systems
0
조회
0
다운로드
0
인용
0
참고문헌
키워드
초록
내장형 시스템들은 통상 자원의 극심한 제약을 받는데 이것이 개발자에게 심각한 어려움이 되고 있다. 최근 반도체 집적 기술이 발달하여 메모리 장치의 가격이 급격히 하락하였음에도 불구하고 시스템 메모리는 휴대 전화와 같은 내장형 시스템에 있어 여전히 매우 귀한 자원의 하나이다. 공유 라이브러리 기법은 이러한 시스템 메모리의 사용량을 효과적으로 줄일 수 있는 대표적인 기술이다. 그런데 기존의 공유 라이브러리 기법들이 MMU의 지원을 필요로 하는데 반해서, 많은 내장형 시스템에는 MMU가 장착되어 있지 않다. 본 논문에서는 MMU가 없는 내장형 시스템에서 공유 라이브러리를 지원하기 위한 새로운 기법을 제안한다. 이 기법은 준 정적 공유 라이브러리라고 불리는데, 이의 가장 큰 특징은 전역 심볼들이 링킹 시에는 논리 주소에 바인딩되고, 적재 시에 실제 물리 주소가 바인딩된다는 점이다. 이 기법을 구현하기 위해서 우리는 데이터 영역 베이스 레지스터와 데이터 영역 베이스 테이블을 고안하고, 이들과 함께 컴파일러를 확장하여 MMU의 메모리 사상 기능을 소프트웨어적으로 구현하였다. 제시된 준 정적 공유 라이브러리 기법은 동작 시에 시간과 메모리를 많이 차지하는 심볼 테이블을 필요로 하지 않는다. 본 논문에서 제안된 기법은 MMU가 없는 uClinux 기반의 내장형 시스템에 적용되었다. 우리는 이 시스템 위에서 메모리 사용량과 성능 변화를 측정하기 위한 다수의 실험을 수행하여, 제안된 기법이 메모리 사용량을 줄이는 데 매우 효과적임을 보였다. 실험의 결과로 준 정적 공유 라이브러리를 사용하면 플래시 메모리 사용량이 약 35% 감소하며, RAM 사용량은 약 10% 가량 감소한다. 이에 비해 구현된 기법은 단지 4% 미만의 성능 저하를 초래한다.
Abstract
Embedded systems are quite often subject to severe resource constraints, and this presents extreme design challenges for developers. Despite a rapid decrease in the price of solid state memory devices, system memory is still a very precious resource in such systems. The use of shared libraries is known to be effective in significantly reducing memory usage. Unfortunately, many resource-constrained embedded systems lack MMU, making it extremely difficult to support these techniques. To address this problem, we propose a novel shared library scheme called the quasi-static shared library. In quasi-static shared libraries, global symbols are bound to pseudo-addresses at linking time and the actual physical addresses are bound at loading time. This scheme is made possible by emulating MMU’s memory mapping feature with a Data Section Base Register (DSBR) and a Data Section Base Table (DSBT). Quasistatic shared libraries do not require symbol tables which take up time and space at runtime. We have implemented the proposed scheme in a MMU-less embedded system. We measured its memory usage and evaluated its performance overhead by conducting a series of experiments. These experiments clearly demonstrate the effectiveness of our scheme in reducing the memory usage. The result is drastic: a 35% reduction in flash memory usage and a 10% reduction in RAM usage. These results were achieved with only a negligible performance penalty of less than 4%.
참고문헌 (13)
- "''Linkers & Loaders" (2000), '' Morgan Kaufmann
- "''ARM Architecture Reference Manual"
- "''The ARM-THUMB Procedure Call Standard"
- "''Executable and Linkable Format version 1.2" (1995)
- "''Issues in shard library design.''", pp.11~23
- "Shared Libraries in SunOS" (1987)
- "''Shared libraries on UNIX System V.''" (1986)
- "The Inside Story on Shared Libraries and Dynamic Loading", oct.2001, pp.3(5), 90~97
- "eXecute-In-Place", 1991.0304, ~
- "Distributed Multimedia", pp.144~ (1996), Addison Wesley, ACM Press
- "The Multics System :An Examination of Its Structure." (1972), MIT Press
- "Storage Organization and Management in TENEX" (1972)
- "System V Application Binary Interface. Upper Saddle River" (1990), UNIX Press[DOI]
