20150402

1. 영어 기사 읽기
1) Surprise! Green energy surged despite cheap oil, CNN
2) You Can Now Use Your Cellphone As A 3D Modeling Tool, TechCrunch


2. 실험 환경 구축
– MARSS 이미지 checkpoint 생성함
– cacloud에 소스 코드 및 MARSS 이미지 복사
– util.cfg 수정
– Machine configuration 확인
– 실험 시작


3. Computer Architecture 청강
System virtualization이 메모리에 미치는 영향을 보자.
– Guest Virtual Address(GVA) -> Guest Physical Address(GPA) -> Machine Address(MA)로 translation이 필요하다. CPU는 GVA의 명령어를 실행한다. Guest OS가 guest page table(GPT)를 사용해 GVA에서 GPA로의 변환한다. Hypervisor는 nested page table(NPT)을 사용해 GPA를 MA로 변환한다. Virtualized system에서는 TLB도 GVA를 입력으로 받아 MA를 반환해야 한다. 기존의 x86 아키텍쳐는 CR3가 페이지 테이블의 주소를 담고 있으며, 페이지 테이블은 HW walker가 탐색한다. Virtualized system에서는 두 개의 테이블을 읽어야 하는데 문제가 됨. 이를 해결하기 위한 방법에 세 가지가 있음.
1) Brute Force: 페이지 테이블의 수정/읽기 권한이 guest OS에 주어지지 않음. Hypervisor에 의해서만 쓰일 수 있다. 느리다.
2) Shadow Paging: GVA – GPA – MA 순서로 바뀌기 위해서는 두 개의 페이지 테이블을 거쳐야 하는데, shadow page table을 사용해 한 번만 translation한다. GPT는 가상 프로세스의 수만큼 존재하고, NPT는 가상머신의 수만큼 존재해야 한다. 그렇다면 shadow page table은 얼마나 있어야 하나? 가상 프로세스 수만큼 존재해야 한다. 모든 context switching마다 hypervisor가 간섭해야 한다. NPT는 hypervisor가 관리해 잘 바뀌지 않지만, GPT는 자주 업데이트 된다. 이를 반영하기 위해서는 hypervisor가 잘 보고 업데이트해야 한다 (매우 큰 오버헤드).
3) HW-based 2D Page Walk: HW가 nested page table을 walking할 수 있도록 한다. gCR3와 nCR3를 둔다. guest CR3는 guest process의 page table pointer를 담는다. nCR3는 nested page pointer for VM을 담는다.
Revisiting Hardware-Assisted Page Walks for Virtualized Systems
– GPT, NPT 모두에서 multilevel (4-level) page table을 사용한다. GPT에서 다음 레벨의 page table에 접근하기 위해서는 NPT에 또다시 접근해야 한다. 그 다음 GPT, NPT 모두 4-level인 경우에 24번의 page walk이 필요하다.
– Observations
1) # of virtual machine < # of processes
2) physical address space < guest virtual address space
3) VM use much of the guest physical memory
– NPT에서는 multilevel page table을 사용할 필요가 없다.
– 속도를 더 높이기 위해 inverted shadow table을 사용해 speculative하게 진행한다. 틀렸으면 flat nested page walk을 사용한다.
– TLB가 64개의 entry를 저장할 수 있고, page size가 4KB라 하자. TLB reach는 256KB. L2가 2MB이면? L2 cache에 있어도 TLB miss가 발생하는 상황이 발생할 수 있음. TLB miss를 줄이거나 TLB miss penalty를 줄이는 방법이 있음.
– TLB miss를 줄이려면 superpaging을 사용할 수 있음. 4KB page 아닌 2MB page 사용하면? 128MB를 cover할 수 있음. TLB miss penalty를 줄이는 방법으로 page table을 caching할 수 있음. TLB miss가 발생하면 memory 아닌 cache에 접근하면 되므로 괜찮음. 또는 page table walk 중간 단계를 caching할 수 있음.
Superpaging
– x86은 4KB, 2MB, 1GB의 page size 지원. Nested page table을 사용하는데, 각 레벨에서 cover하는 크기가 4KB, 2MB, 1GB이기 때문이다. Itanium은 4KB에서 4GB까지 두 배의 page size 지원한다.
– 하지만 superpaging을 사용하면 TLB는 주어진 VA가 어떤 크기의 page인지 모른다는 문제가 있다. TLB 탐색이 복잡해진다. 이를 해결하고자 일부 x86은 page size별로 TLB를 따로 둔다. 한편 OS에서는 page size를 어떻게 결정할 것인가의 문제가 발생함. 페이지 크기가 크면 fragmentation이 발생하고, 작으면 TLB miss가 증가한다.


4. SIGOPS ([ATC’14] The TURBO Diaries: Application-controlled Frequency Scaling Explained)
교수님과 미팅이 있어서 세미나에 늦게 들어감. 프로세서에서 boosting 기능을 제공하는데, 현재 구현은 어플리케이션 및 운영체제의 정보 없이 그 기능을 활성화한다. 하지만 실제로는 어플리케이션 또는 운영체제에서 fine-tuning하는 것이 성능 향상에 도움이 된다는 내용이다. 자세한 내용은 모름.

Advertisements
Tagged with: , , , , , , , , , , , , ,
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 96,190 hits
%d bloggers like this: