검색 : [ author: Young Ik Eom ] (29)

이중 쓰기 버퍼를 활용한 SSD의 성능 향상 및 수명 연장 기법

한세준, 강동현, 엄영익

http://doi.org/

본 논문에서는 NVRAM과 DRAM으로 구성된 SSD의 쓰기 버퍼 구조 및 제안된 쓰기 버퍼구조에 적합한 이중 쓰기 버퍼 알고리즘을 제안한다. 읽기/쓰기 작업이 혼합된 일반적인 워크로드에서 저장 장치의 성능을 향상시키기 위해서 읽기 작업에 의해 참조되는 페이지 또한 고려하였다. 그리고, NVRAM에 저장되는 쓰기 작업에 의해 참조된 페이지를 효율적으로 관리하여 낸드 플래시 메모리에서 발생하는 삭제 연산의 횟수를 감소시켜 SSD의 수명을 연장하였다. 우리는 실험을 통해 제안하는 쓰기 버퍼 알고리즘이 버퍼 적중률을 최대 116.51% 향상시켰으며, 낸드 플래시 메모리에서의 삭제 연산의 횟수를 최대 56.66% 감소시킬 수 있었다.

다중 큐 SSD 기반 I/O 가상화 프레임워크의 성능 향상 기법

김태용, 강동현, 엄영익

http://doi.org/

오늘날 가상화 기술은 가장 유용하게 사용되는 컴퓨팅 기술 중 하나이며 모든 컴퓨팅 환경에서 널리 활용되고 있다. 그러나 가상화 환경의 I/O 계층들은 호스트 머신의 I/O 동작 방식을 인지하지 못하도록 설계되어 있기 때문에 I/O 확장성 문제는 여전히 해결해야 할 문제로 남아 있다. 특히, 다중 큐 SSD가 보조 기억 장치로 사용될 경우, 증가한 잠금 경쟁과 제한된 I/O 병렬화 문제로 가상 머신은 다중큐 SSD의 공인된 성능을 활용하지 못하는 문제가 발생한다. 이러한 성능 문제를 해결하기 위해 본 논문에서는 가상 CPU마다 전용 큐와 I/O 스레드를 할당하는 새로운 기법을 제안한다. 제안 기법은 성능 저하의 주요한 원인 중 하나인 잠금 경쟁을 효율적으로 분산시키고 또 다른 원인인 Virtio-blk-data-plane의 병렬화 문제를 해소한다. 제안 기법을 평가한 결과 최신 QEMU 보다 IOPS가 최대 155% 향상되는 것을 확인하였다.

모바일 애플리케이션의 특성을 이용한 하이브리드 메모리 기반 버퍼 캐시 정책

오찬수, 강동현, 이민호, 엄영익

http://doi.org/

모바일 디바이스는 데스크톱이나 서버 등 일반 컴퓨터 시스템과 마찬가지로 주기억장치와 스토리지와의 성능 차이를 완화시키기 위해 버퍼 캐시를 사용한다. 그러나 DRAM 은 저장된 데이터를 유지하기 위해 주기적인 refresh 연산을 수행함으로써 제한된 크기의 배터리 소모를 가속화하는 문제점을 가지고 있다. 본 논문에서는 모바일 디바이스 환경에서 배터리의 수명을 연장하기 위해 DRAM과 비휘발성 메모리인 PCM으로 구성된 하이브리드 메인 메모리 구조기반의 버퍼캐시 정책을 소개한다. 또한, PCM의 성능 및 내구성 특성을 최적화시키기 위해 프로세스 상태 기반의 새로운 버퍼 캐시 정책을 제안한다. 제안 기법은 포그라운드 및 백그라운드 애플리케이션이 사용하는 페이지를 서로 다른 방법으로 배치함으로써 소량의 DRAM 으로도 포그라운드 애플리케이션의 빠른 응답성을 보장한다. 실험 결과, 제안 기법은 포그라운드 애플리케이션의 총 수행시간을 평균 58% 감소시켰으며 전력 소비량도 평균 23% 감소시키는 것을 확인하였다.

하이브리드 메인 메모리와 스토리지의 특성을 고려한 버퍼 캐시 교체 정책

강동현, 엄영익

http://doi.org/

PRAM은 바이트 단위의 쓰기와 비휘발성의 특징을 모두 가지고 있으며, DRAM보다 높은 밀집도가 기대되기 때문에 DRAM을 대체할 수 있을 것으로 예상된다. 이에, PRAM 기반의 버퍼 캐시 교체 정책에 대한 연구가 활발하게 진행되고 있다. 그러나 대부분의 기존 연구는 PRAM의 수명 및 느린 쓰기 성능에만 집중함으로써 PRAM의 바이트 단위의 쓰기 성능을 제한적으로 이용한다. 이에, 본 논문에서는 PRAM의 바이트 단위의 쓰기 성능과 스토리지의 성능을 모두 고려한 새로운 버퍼 캐시 교체 정책을 제안한다. 제안 기법은 바이트 단위의 쓰기 성능을 이용하기 위해 작은 크기의 쓰기 요청이 빈번한 페이지를 PRAM에 유지시키며 DRAM과 PRAM사이의 선택적 페이지 이동을 통해 PRAM의 쓰기 횟수를 감소시킨다. 실험 결과, 제안 기법은 CLOCK 알고리즘에 비해 최고 92%까지 PRAM의 쓰기 횟수를 감소시키고 PRAM 테스트 보드에서 최대 62%까지 수행시간을 향상시키는 것을 확인하였다.

가상화 환경 IoT 게이트웨이의 성능 향상을 위한 SSD 캐시 기법

이동우, 엄영익

http://doi.org/

스토리지는 응용 프로그램의 성능에 가장 큰 영향을 주므로 가상화된 IoT 게이트웨이를 사용한 홈 클라우드 환경에서 매우 중요하다. 스토리지의 성능 향상을 위해 SSD와 같은 고성능의 디스크를 캐시로 사용해 왔으나 취약한 쓰기 성능과 제한된 셀 수명 문제로 인해 주로 읽기 전용 캐시로 사용하였다. 그러나 사용자 응용의 성능 향상을 위해서는 읽기 작업뿐만 아니라 쓰기 작업의 성능도 매우 중요하다. 본 논문은 이러한 환경에서 읽기 및 쓰기에 모두 사용 가능한 새로운 SSD 캐시 기법을 제안한다. 실험을 통해 본 캐시 기법이 응용 프로그램의 임의 쓰기 작업을 순차적 동작으로 변환시켜 성능 향상을 이룰 수 있음을 확인하였다.

스토리지 클래스 메모리를 위한 롤백-복구 방식의 데이터 일관성 유지 기법

이현구, 김정훈, 강동현, 엄영익

http://doi.org/

스토리지 클래스 메모리(SCM)는 메모리와 스토리지의 장점을 동시에 가지고 있기 때문에 기존의 스토리지를 대체할 차세대 스토리지로 주목 받고 있다. 하지만 현재까지 제안된 SCM 전용 파일시스템은 데이터 일관성을 충분히 보장하지 않거나 혹은 보장될 경우, 과도한 일관성 유지 비용을 발생시키는 문제점을 지니고 있다. 본 논문에서는 보편적으로 사용하는 WAL(Write Ahead Logging) 방식의 일관성 유지 기법 대신 롤백-복구 방식을 이용하여, 블록내의 변경되는 데이터의 비율에 따라 로그 데이터 기록방식을 변경하는 데이터 일관성 유지 기법을 제안한다. 본 기법은 데이터 일관성 손실 없이 로그 데이터의 크기를 줄여 데이터 쓰기 및 동기화 비용을 최소화시킬 수 있다. 제안한 기법을 평가하기 위해 리눅스 3.10.2 상에 구현하여 성능을 측정한 결과, 다른 일관성 유지기법에 비해 평균적으로 9배 정도의 데이터 쓰기 성능이 향상됨을 볼 수 있었다.

반환 지향 프로그래밍 공격에 대한 효율적인 방어 기법 설계 및 구현

김지홍, 김인혁, 민창우, 엄영익

http://doi.org/

반환 지향 프로그래밍 공격(ROP)은 프로그램에 존재하는 반환 명령어로 끝나는 코드 조각들을 조합하여 가젯을 만들고, 연속적으로 실행하여 스택의 내용을 조작함으로써 프로그램의 제어권을 가져오는 공격이다. 이에 대한 기존 방어기법은 높은 실행 오버헤드와 바이너리 증가 오버헤드를 갖거나, 적용범위의 제한이 있는 문제점이 있다. 본 논문에서는 기존 기법의 문제점을 갖지 않으면서 성능 및 바이너리 크기 증가 측면에서 효율적인 방어 기법인 zero-sum defender를 제안한다. 반환 지향 프로그래밍 공격은 정상적인 프로그램의 흐름과 다르게, 함수 호출 명령어가 실행되지 않고 여러 반환 명령어가 실행되는 실행 특성을 가진다. 제안 기법은 이러한 특성을 이용하여 프로그램 실행 흐름이 반환 지향 프로그래밍 공격에 의해 오용되는지 모니터링하여 방어 기능을 수행한다. 실제 공격 모델에 대한 실험을 통해 방어 기법의 효용성을 확인하였고, 벤치마크 실험을 통해 약 2%의 성능 오버헤드와 약 1%의 바이너리 크기 증가만으로 방어가 이루어짐을 확인하였다.

경량 동적 코드 변환 기법을 이용한 동적 인스트루멘테이션 기법 설계 및 구현

김지홍, 이동우, 김인혁, 엄영익

http://doi.org/

동적 인스트루멘테이션 기법은 동적 코드 변환 기법을 사용하여 프로그램의 수행 흐름을 흐트러뜨리지 않으면서 분석 코드를 삽입하는 구현 기법으로 사용되고 있다. 기존의 동적 코드 변환 기법은 머신 코드 스트림을 중간 코드 형태로 파싱하고, 이를 일반적인 컴파일러 기법에 적용함으로써 코드를 변환한다. 이러한 방식의 코드 변환 과정에서 수반되는 높은 변환 오버헤드는 응답성이 높은 사용자 프로그램에 적용을 어렵게 한다. 본 논문에서는 변환 과정의 경량화를 통해 변환 오버헤드를 줄임으로써, 높은 동적 코드 변환 성능을 가지는 경량 동적 코드 변환 기법을 제안하고, 이를 기반으로 하는 동적 인스트루멘테이션 프레임워크를 제안한다. 제안 기법은 테이블 기반의 새로운 동적 주소 변환 기법으로 코드를 변환하고, 더불어 자주 실행되는 라이브러리 함수에 대해 변환 과정에 대해서는 주소 변환만을 함으로써 변환 오버헤드를 줄이는 변환 우회 기법을 이용한다. 기존 동적 코드 변환 기법과의 비교를 통해 2%~65%의 성능 향상을 확인하였다.

가상화 환경의 고성능 I/O를 위한 반가상화 라이브러리

이동우, 조영중, 엄영익

http://doi.org/

현재 가상화 기술은 많은 연구를 통해 다양한 분야에서 널리 쓰이고 있다. 그러나 여전히 I/O 워크로드는 가상화로 인한 성능 저하로 인하여 가상화 분야에 적용되지 못하고 있다. 이전의 많은 연구에서 가상화 I/O 과정의 모드전환과 중복된 I/O 스택을 이러한 성능 저하의 원인으로 파악하고, 이를 해결하기 위한 기법을 제안하였으나 여전히 가상화 되지 않은 환경의 물리장치에 비해 낮은 성능을 보여주었다. 본 논문에서는 가상화 라이브러리를 사용하는 새로운 I/O 가상화 기법을 제안한다. 본 제안기법은 가상화 I/O 과정에서 발생하는 모드 전환을 완전히 제거하고 게스트 운영체제의 I/O 스택을 우회함으로써 I/O 성능을 향상 시킨다. 네트워크 환경을 위한 프로토타입 구현을 통해 본 제안기법은 네트워크 처리량을 169% 향상시키며 네트워크 지연을 38% 감소시킴을 확인하였다.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

사무국

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr