보고서 정보
주관연구기관 |
한국과학기술원 Korea Advanced Institute of Science and Technology |
연구책임자 |
원유집
|
참여연구자 |
남범석
,
반효경
|
보고서유형 | 최종보고서 |
발행국가 | 대한민국 |
언어 |
한국어
|
발행년월 | 2023-02 |
과제시작연도 |
2022 |
주관부처 |
과학기술정보통신부 Ministry of Science and ICT |
연구관리전문기관 |
정보통신기획평가원 Institute of Information&Communications Technology Planning&Evaluation |
등록번호 |
TRKO202400003802 |
과제고유번호 |
1711152635 |
사업명 |
SW컴퓨팅산업원천기술개발 |
DB 구축일자 |
2024-07-10
|
키워드 |
운영체제.매니코어.비휘발성 메모리.확장성.순서보장 입출력.Operating System.Manycore.Non-Volatile Memory (NVRAM).Scalability.Order-preserving I/O.
|
초록
▼
□ 연구개발 목표 및 내용
◼ 최종 목표
본 연구에서는 딥러닝, IoT,자율주행차등 새로이 등장하는 소프트웨어 요구사항을 효율적으로 만족시키고, 급진적으로 발전하는 하드웨어에 적합하게 설계된 운영체제요소기술을 개발하는 것이 목표이다. 본 과제에서는 운영체제의 역할을 CPU 관리, 메모리 관리(Huge Memory Management), 파일 및 입출력 관리의 세가지 주제로 규정하고, 각 주제별로 최신 하드웨어 동향과 미래 응용 수요에 적합한 핵심 요소기술을 개발한다. CPU관리의 핵심 주제는 CPU/GPU 매니코어 확장성
□ 연구개발 목표 및 내용
◼ 최종 목표
본 연구에서는 딥러닝, IoT,자율주행차등 새로이 등장하는 소프트웨어 요구사항을 효율적으로 만족시키고, 급진적으로 발전하는 하드웨어에 적합하게 설계된 운영체제요소기술을 개발하는 것이 목표이다. 본 과제에서는 운영체제의 역할을 CPU 관리, 메모리 관리(Huge Memory Management), 파일 및 입출력 관리의 세가지 주제로 규정하고, 각 주제별로 최신 하드웨어 동향과 미래 응용 수요에 적합한 핵심 요소기술을 개발한다. CPU관리의 핵심 주제는 CPU/GPU 매니코어 확장성(Manycore Scalability) 지원이다. 두 번째 메모리 관리의 핵심 주제는 대용량 주소공간의 효율적 관리를 위한 페이징 기법, 그리고 대용량 페이지 실현을 위한 NVRAM기반 주소공간의 개발이다. 세 번째, 입출력 관리부에서의 핵심주제는 쓰기순서 보장 오버헤드의 개선과 저지연 고성능 저장장치를 위한 파일시스템 개발이다.
◼ 전체 내용
CPU, 메모리, 입출력 주제에 대한 구체적인 연구내용은 다음과 같다.
◾ 매니코어 CPU/GPU용 운영체제 확장성
매니코어 CPU/GPU를 위한 운영체제 확장성 지원 기술에서는 다음 세가지 이슈를 다룬다. 첫 번째, CPU/GPU를 위한 선점형 우선순위 역전 방지 스케쥴링 개발, 두 번째, 매니코어 CPU를 위한 동적 시 분할 스케줄링 기법과 병렬 가속기용 가상메모리 스왑 기법 개발, 세 번째, 프로세스간의 경쟁이 없는 물리페이지의 참조 카운터 관리기법 개발이다. 전역락은 매니코어 환경에서 경쟁 오버헤드가 매우 크다. 본 연구에서는 각 커널객체의 사용행태를 분석하여 이에 적합한 확장성이 담보된 락 메커니즘을 개발한다.
◾ 대용량/NVRAM용 메모리 관리
본 연구에서는 메모리 대형화를 위해 선결되어야 하는 네가지 이슈를 다룬다. 첫째, 대형 물리 페이지(Transparenet Huge Page)에 최적화된 페이지 할당/해제, 단편화 방지기법 개발, 둘째, NVRAM으로 구성된 대용량 페이지의 효율적 관리를 위한 Slotted 페이징기술 개발, 셋째, 물리 주소 관리를 위한 확장형 Lock-Free 자료구조 개발, 넷째, NVRAM용 Log-Structured Merge Tree 기법 개발이다. 매니코어 환경에 적합한 새로운 형태의 주소공간 관리 자료구조를 개발한다.
◾ 초고속 저지연 입출력 서브시스템
본 연구에서는 저지연 고성능 저장장치에 적합한 블록계층과 파일 시스템을 개발한다. 첫 번째, 순서보장형 블록계층에 적합한 파일 시스템과 입출력 계층을 총체적으로 개발한다. 두 번째, 파일 시스템 저널링 성능 개선을 위한 병행저널링 기법을 개발한다. 세 번째, 순서 보장과 영속성 보장을 분리하고, 순서보장형 입출력 스텍에서 새로이 정의된 두 개의 시스템 컬을 이용하여 고비용의 fsync() 연산을 저비용의 순서보장용 시스템컬로 대체한다.
◼ 1차년도
❏ 목표
- GPU용 선점형 스케쥴링 개발
- 확장형 페이지 캐시 관리기법 개발
- 순서보장 기반 파일 시스템 저널링 개발
❏ 내용
- GPU용 선점형 스케쥴링 개발: GPU가 큐의 작업을 FIFO 방식으로 처리하는 기존 방식 대신 CPU 우선순위를 승계하는 선점형(preemptive) 스케줄링 기술을 개발한다. GPU는 CPU와 달리 레지스터의 수가 많고 문맥전환 비용이 크므로, 이를 고려한 문맥저장 및 복원 기술을 연구한다.
- 확장형 페이지 캐시 관리기법 개발: 페이지 캐시 참조 카운트 지연 동기화 기법 개발을 개발하여, 여러 프로세스가 하나의 페이지 접근 시 참조 카운트 전역 변수로 인해 발생하는 성능 병목을 해결한다. 각 프로세스는 페이지 접근 시 페이지 테이블 엔트리에 로컬 참조 비트를 두어 사용하고, 글로벌 참조 카운트의 갱신은 kswapd가 담당하도록 한다. 본 참조카운트 기법은 TLB shootdown 문제를 Network-on-chip (NoC)와는 별도의 계층인 페이지 캐시 관리 계층에서 해결하는 기법으로서, NoC와 통합되어 함께 사용될 수 있다.
- 순서보장 기반 파일 시스템 저널링 개발: 파일 시스템 저널링 과정에서 발생하는 플러시 오버헤드를 제거한다. 트랜잭션 처리과 정의 직렬화를 해소하기 위해 다중 저널 트랜잭션을 두어 다수의 응용 프로그램에서 전달한 저널링 요청을을 병렬 처리할 수 있도록 한다.
◼ 2차년도
❏ 목표
- 동적 코어 할당 기법 개발
- Slotted-Page기반 가상메모리 관리기법 개발
- 순서보장 시스템컬 표준화
❏ 내용
- 동적 코어 할당 기법 개발: 응용별 전담 코어의 수와 문맥전환의 빈도를 고려한 최적의 동적 코어 할당 기술을 개발한다. 이를 위해 병렬가속기 환경의 문맥전환 오버헤드를 분석하고 작업별 특성을 고려한 할당 코어 조절 기법을 개발한다. 너무 많은 요청이 병렬가속기에 동시 할당될 경우 성능 저하 혹은 메모리 과부하가 발생하므로 이를 막기 위한 수용제어 정책을 연구한다.
- Slotted-Page기반 가상메모리 관리기법 개발: 대용량 NVRAM 메모리 환경에서 페이지 테이블 관리 오버헤드를 줄일 수 있는 새로운 Slotted-Page 기반 가상 메모리 관리 기법을 설계한다. 페이지 크기를 고정하지 않고 워크로드의 특성에 따라 조절하여 메모리 주소 변환 오버헤드를 줄이면서 메모리 보호를 가능하게 하고자 한다.
- 순서보장 시스템컬 표준화: XFS, BtrFS, F2FS에 베리어 기반 순서 보장 모델 (fbarrier() / fdatabarrier())을 개발한다. 각 파일시스템의 저널링, 체크포인트 동작에서 플러시 명령을 베리어 명령으로 대체함으로써 파일시스템 일관성을 보장하도록 한다.
◼ 3차년도
❏ 목표
- GPU전용 동적 시분할 스케쥴링 기법 개발
- NVRAM용 LSM 기법 개발
- 베리어 전용 멀티 큐 블록 디바이스 계층 개발
❏ 내용
- GPU전용 동적 시분할 스케쥴링 기법 개발: GPU 작업부하 중 스트리밍 방식이나 주기적 반복 수행성을 띄는 데몬형 병렬 응용을 탐지한다. 이들에 의해 불필요한 문맥전환이 발생하지 않도록, 시분할 단위(Time Quantum)의 적합성 모니터링 및 그에 기반한 동적 시분할 스케쥴링 기법을 연구한다.
- NVRAM용 LSM 기법 개발: LSM Tree에서 MemTable과 SSTable 모두 NVRAM에 저장하는 기법을 개발한다. MemTable이 가득찬 경우, MemTable을 가리키는 포인터들만을 수정하는 방식으로 SSTable을 만들고 관리하여 불필요한 쓰기 증폭(Write amplification)을 줄이고, 작은 페이지들을 동적으로 병합하여 수퍼페이지를 생성하는 기법을 개발한다.
- 베리어 전용 멀티 큐 블록 디바이스 계층 개발: 멀티 큐 블록 디바이스 계층(blk-mq)은 CPU core 개수만큼의 디스패치 큐를 지원하여 입출력 요청의 병렬성 있는 처리를 가능하게 하고 있다. 이러한 입출력 요청의 처리 방식 변경에 대응하여 베리어 명령을 통한 입출력 요청 순서를 보장해주는 입출력 스케줄링 기법을 개발한다. 기존 싱글 큐 용 베리어 스케줄링을 대체하는 멀티 커맨드 큐 용 베리어 커맨드 스케줄링 알고리즘과 호스트가 알고 있는 명령어 간의 순서 보장 의존성 여부를 스토리지 FTL에 전달하는 알고리즘을 제안하고 개발한다.
◼ 4차년도
❏ 목표
- 병렬가속기용 스와핑 개발
- 페이지의 내부/외부 단편화 최소화 기법 개발
- 경량 메모리 관리기법 개발
- 순서보장형 가상머신 호스팅 기법 개발
❏ 내용
- 병렬가속기용 스와핑 개발: 병렬가속기 메모리에 대한 2단계 스와핑(Upper Swap과 Lower Swap)을 통한 가속기 메모리의 가상 확장 기술을 개발한다. 가속기 응용의 특성상 입출력 스와핑 시간을 최소화해야 한다. 이를 위해 고속 저장장치 기반의 호스트 메모리의 후방 장치, 공격적인 스왑 데몬과 응용의 패턴을 감안한 대용량 스왑(Bulky Swap) 등을 연구한다.
- 페이지의 내부/외부 단편화 최소화 기법 개발: 프로세서가 요청한 페이지의 크기가 미리 설정해 둔 Threshold 값 이상 일 때 대형 페이지를 할당하거나, 프로세서의 물리 메모리 사용량을 고려하여 대형 페이지 할당여부를 결정한다.
- 경량 메모리 관리기법 개발: 매니코어 시스템 및 GPU 가속기 활용을 고려한 메모리 관리 경량화 기법을 개발한다. 코-프로세서 환경에 불필요한 기존 코드들을 제거한 경량 OS를 개발한다. TensorFlow 혹은 MxNet과 같은 딥러닝 프레임워크를 GPU 상에서 수행하면서 발생하는 OS 메모리 관리 및 스케줄링 문제를 분석하고, OS 스케줄러와 GPU 스케줄러를 조율하는 스케줄링 기술을 개발한다.
- 순서보장형 가상머신 호스팅 기법 개발: 게스트 OS와 호스트 OS간의 플러시 증폭문제를 해결한다. 순서보장 시스템 컬(fbarrier())를 사용한 새로운 VM호스트 파일 시스템을 개발한다.
◼ 5차년도
❏ 목표
- 호스트-가속기 인지형 메모리 관리
- 록 프리 Read기법 개발
- 대형 페이지 기반 스왑 알고리즘 개발
❏ 내용
- 호스트-가속기 인지형 메모리 관리: 기존의 GPU는 스토리지와의 직접적인 연동 없이 호스트 메모리를 통한 데이터 입출력만을 고려한다. 본 연구에서는 데이터 입출력 경로상의 반입 비용을 고려한 GPU 메모리 관리 기술을 연구한다. 다중 가속기 플랫폼에서는 가속기 간에 별도의 상호연결망을 제공하므로, 기반입된 주변 가속기 메모리를 통한 반입이 호스트 메모리를 통한 반입보다 오버헤드가 적다. 이를 위해 호스트 페이지 정보 유지 기법을 연구하고, 선반입(Prefetch) 및 스크래치패드용 읽기 전용 메모리에 대한 최적화를 연구한다.
- 록 프리 Read기법 개발: 1-4차년도에 개발한 메모리 관리자 및 OS 스케줄러 등 커널의 여러 모듈에 존재하는 자료구조들을 분석하고, 2차년도 주제인 RB-Tree 자료구조 이외의 기타 OS 자료구조들을 업데이트할 때 사용하는 Lock 들을 분석하여 불필요한 Read Lock들을 제거하고, OS를 경량화하여 매니코어 환경에서 확장성을 높인다.
- 대형 페이지 기반 스왑 알고리즘 개발: 대형 페이지의 할당 고속화를 위해, 단일 kswapd로 처리하던 Dirty 페이지 작업을 다수의 kswapd로 분산한다. 대형 페이지를 동시에 순회하여 더티 페이지들을 Dirty Queue에 삽입하는 여러 개의 victim-select-kswapd과 Dirty-queue 내부의 더티 페이지를 디스크 영역으로 flush하는 한 개의 dirty-kswapd로 나누어 대형 페이지 처리시간을 개선한다.
□ 연구개발성과
매니코어 및 초대용량 메모리용 순서 보장 운영체제의 학술적 프로토타입 개발
□ 연구개발성과 활용계획 및 기대 효과
◾ 연구개발 성과물
• 논문 30건, 특허 30건, 소프트웨어 등록 7건, 기술문서 12건
• 매니코어 및 초대용량 메모리용 순서 보장 운영체제 소프트웨어
◾ 예상되는 연구개발성과 유형
◾ 활용계획
• 리눅스 커널 용으로 개발된 모든 코드들을 오픈소스화한다. 생태계구축을 도모한다.
• 개발된 입출력 스택에 최적화된 저장장치 개발에 참여한다. 순서보장용 입출력 스택에 최적화된 FTL개발을 위해 관련기업에 기술 이전, 자문, 제품개발에 참여들을 수행한다.
• 국내 인터넷 서비스 업체에 기술이전하여, 해당 업체의 국제경쟁력 강화에 일조한다.
◾ 기대효과
• 지적 재산권 확보
• 미래 운영체제 핵심 원천 기술 확보를 통한 소프트웨어 산업경쟁력 강화
• 하드웨어 기술과의 시너지 효과 창출을 통한 국가 기술 경쟁력 제고
• 관련 분야의 전문가 네트워크 기반 구축 및 기술의 대표 거점 확보
(출처 : 요약문 4p)
목차 Contents
- 표지 ... 1
- 최종보고서 ... 2
- 요 약 문 ... 4
- 목차 ... 8
- 1. 연구개발과제의 개요 ... 9
- 2. 연구개발과제의 수행 과정 및 수행 내용 ... 14
- 2.1. 매니코어 CPU/GPU 용 운영체제 확장성 ... 14
- 2.2. 대용량 NVRAM용 메모리 관리 ... 33
- 2.3. 초고속 저지연 입출력 서브시스템 ... 46
- 3. 연구개발과제의 수행 결과 및 목표 달성 정도 ... 63
- 1) 연구수행 결과 ... 63
- 2) 목표 달성 수준 ... 68
- 4. 목표 미달 또는 미흡한 사항에 대한 원인분석 ... 69
- 1) 목표 미달 또는 미흡한 연구결과에 대한 원인(사유) 자체분석 내용 ... 69
- 2) 미달 또는 미흡한 결과물에 대한 보완 활동 ... 69
- 3) 연구개발 과정의 성실성 ... 69
- 5. 연구개발성과의 관련 분야에 대한 기여 정도 ... 70
- 6. 연구개발성과의 관리 및 활용 계획 ... 71
- 1) 향후 5년간 성과활용·확산 활용방안 및 계획(활동계획) ... 71
- 2) 주요 성과활용 (기대)성과목표 ... 72
- 7. 연구개발성과에 대한 후속연구 및 추가 개발 계획 ... 72
- 8. 연구개발비 사용실적 ... 73
- 참고문헌 ... 76
- 끝페이지 ... 77
※ AI-Helper는 부적절한 답변을 할 수 있습니다.