Abstract
Slowly, but surely, we are seeing the emergence of a variety of embedded systems that are employing Storage Class RAM (SCRAM) such as FeRAM, MRAM and PRAM, SCRAM not only has DRAM-characteristic, that is, random byte-unit access capability, but also Disk-characteristic, that is, non-volatility. In this paper, we propose a new software architecture that allows SCRAM to be used both for main memory and for secondary storage simultaneously- The proposed software architecture has two core modules, one is a SCRAM driver and the other is a SCRAM manager. The SCRAM driver takes care of SCRAM directly and exports low level interfaces required for upper layer software modules including traditional file systems, buddy systems and our SCRAM manager. The SCRAM manager treats file objects and memory objects as a single object and deals with them in a unified way so that they can be interchanged without copy overheads. Experiments conducted on real embedded board with FeRAM have shown that the SCRAM driver indeed supports both the traditional F AT file system and buddy system seamlessly. The results also have revealed that the SCRAM manager makes effective use of both characteristics of SCRAM and performs an order of magnitude better than the traditional file system and buddy system.
바이트 단위 임의 접근이라는 램 특성과, 비휘발성이라는 디스크의 특성을 동시에 제공하는 FeRAM, MRAM, PRAM등의 스토리지 클래스 램(Storage Class Random Access Memory, SCRAM)이 소형 임베디드 시스템을 중심으로 점차 그 활용범위를 넓혀가고 있다. 본 논문에서는 SCRAM을 주기억 장치 및 보조 기억 장치로서 동시에 사용할 수 있는 차세대 통합 소프트웨어 구조를 제안한다. 제안된 구조는 크게 스토리지 클래스 램 드라이버(SCRAM Driver)와 스토리지 클래스 램 관리자(SCRAM Manager)로 구성된다. SCRAM Driver는 SCRAM을 직접 관리하며, FAT이나 Ext2와 같은 전통적인 파일 시스템이나 버디 할당자와 같은 전통적인 메모리 관리자, 혹은 SCRAM Manager 등의 상위 소프트웨어 계층에 저수준 인터페이스를 제공한다. SCRAM Manager는 파일 객체와 메모리 객체를 통합하여 관리함으로써 이들 간에 부가적인 비용이 없는 변환을 가능케 한다. 제안된 기법은 FeRAM이 장착된 실제 시스템에서 실험되었으며, 실험 결과를 통해 SCRAM Driver가 효율적으로 전통적인 파일시스템과 메모리 관리자가 요구하는 기능을 제공할 수 있음을 보였다. 또한 기존의 파일 시스템과 메모리 관리자를 통해 각각 SCRAM을 접하는 경우보다 SCRAM Manager가 수십 배 빠른 성능을 보임을 확인할 수 있었다.