20151209

1. Future Processor/Memory System Architecture, J. Thomas Pawlowski (slides)
– MICRO 에서 발표된 세 개의 키노트 중에 가장 이해하지 못했음. 그런데 가장 중요했던 것 같다. 교수님께서는 이 키노트 발표가 중요하다고 말씀하셨음. 슬라이드 글자가 너무 작고, 발표자의 전달 방식이 나와 잘 맞지 않았다.
– Key points ([MICRO’15] Future Processor/Memory System Architecture)
future memory key points.PNG
– planar NAND 보다 3D NAND가 더 scalable하다.
– planar NAND and 3D NAND ([MICRO’15] Future Processor/Memory System Architecture)
future memory 3d memory.PNG
– 많은 future memory가 제안되었지만, 느리고, 에너지 소모가 심하고, 대역폭이 부족하고, 에러가 많다. DRAM을 대체하기에는 부족하다.
– DRAM, PCM comparison ([MICRO’15] Future Processor/Memory System Architecture)
future memory PCM.PNG
– 예전에는 메모리를 사용하는 비용이 비싸지 않았으나, 요즘에는 메모리를 사용하는 것이 더 비싸지게 됨. 메모리의 에너지 소모량이 커짐.
– The 3rd Epoch of Processor-Memory Relationship ([MICRO’15] Future Processor/Memory System Architecture)
future memory energy
– 메모리의 에너지 소모가 커짐으로 인해 아키텍쳐도 이에 따라 변화하게 될 것. abstraction layer가 필요하게 된다.
– System Architectures Will Change ([MICRO’15] Future Processor/Memory System Architecture)
future memory architecture change
– Automata processor에 대한 소개를 해 주었음.
– Automata processor ([MICRO’15] Future Processor/Memory System Architecture)
future memory automata processor
future memory automata processor value proposition.PNG



2. CLEAN-ECC: High Reliablity ECC for Adaptive Granularity Memory System
– fine-grained, coarse-grained ..?
– 메모리 보호 기법에 대한 연구인 것 같은데 잘 이해하지 못함.


3. vCache: Architectural Support for Transparent and Isolated Virtual LLCs in Virtualized Environments (paper, slides)
– 가상화의 핵심적인 역할은 워크로드들이 dedicated machine에서 실행되고 있는 환상을 주는 것이다 (실제로는 자원이 공유되고 있음에도 불구하고). 공유 자원에 대한 가상화는 많이 이루어졌지만, LLC에 대한 가상화는 이루어지지 않음. 이 논문에서는 가상 머신들에게 LLC에 대한 transparency와 isolation을 제공하는 vCache를 제안한다. “transparency”, “isolation” 두 가지가 이 논문의 핵심 목적이다. LLC transparency는 가상 머신들이 사용하는 page coloring이 실제로 적용되도록 하겠다는 것이다. LLC isolation은 각 가상 머신이 사용할 수 있는 cache의 양을 어느 정도 수준으로 제한하여, 가상 머신이 사용하는 캐시들을 격리하겠다는 것이다.
– “A key role of virtualization is to give an illusion that a consolidated workload runs on a dedicated machine although the underlying resources are actively shared by multiple workloads.”라는 문장이 마음에 들었다. vCache의 motivation이 되는 것을 한 문장으로 적절히 표현해주고 있기 때문이다. “가상화의 목적은 자원 가상화”-> “자원 가상화가 되지 않는 LLC” -> “vCache”의 연결이 아주 자연스러움.
– Page coloring은 운영체제가 LLC에서의 memory page의 위치를 변경함으로써 고성능을 이루고자 하는 캐시 파티셔닝 기법이다. 하지만 가상화된 환경에서는 GPA->HPA의 변환에서 page color가 유지되지 않는다는 문제점이 있다. 게다가 VM끼리의 LLC isolation을 지원하는 architectural support도 없음.
– 보통 introduction은 현재의 시스템 문제 설명 / 동기 구체화 / 제안 / 간단한 요약 등으로 작성하는데, 이 논문의 introduction은 조금 다른 모습이었던 것 같다. 대안들과 비교해서 왜 좋은지, 그리고 기존의 HW partitioning과 비교해 무엇이 좋은지 등을 소제목으로 나누어 설명하고 있음. 궁금할 법한 내용을 미리 introduction에서 설명해 강점을 이야기한 점, 그리고 소제목으로 나누어 설명한 점이 이해를 도움.
– page coloring이 제대로 적용되지 않는다는 점을 보여주기 위해 Simics에서 실험함. Pollute buffer를 구현하고, 그것이 성능 개선이 시간 흐름에 따라 떨어짐을 보여줌. Xen의 가상 머신 관리 명령어 및 메모리 관리가 fragmentation과 remapping을 일으켜, page coloring이 반영되지 않게 된다. Memory ballooning이 여러 번 발생하면 할수록, pollute buffer가 제 성능을 내지 못한다.
page coloring native.PNG
page coloring virtualization.PNG
page coloring motivation experiment.PNG
– LLC transparency면 충분한 것 같은데 왜 LLC isolation까지 하느냐? LLC 가상화를 이루기 위해서는 transparency 만으로는 부족함. 가상 머신들끼리의 가상 LLC가 격리되어 있어야 진정한 의미에서 가상화이기 때문이다 (dedicated resource를 사용하는 듯한 착각 제공). 이를 위해 isolation 기법까지 연구하는 것.
– vCache에서는 page color를 보존하기 위해 LLC indexing에 GPA를 사용한다(GPA[18:6]). 한편, 동일한 GPA로 인한 aliasing 방지를 위해 tag는 HPA에서 page number 전체를 사용한다(HPA[39:12]). 그리고 LLC가 변경됨으로 인해 TLB도 변경된다. TLB에 color를 기억하는 column을 추가한다. 메모리 접근 시에 color를 추가해 LLC indexing을 수행한다. 공유 영역의 경우에는 HPA로 LLC indexing하며, 이를 구분하기 위해 page status bit을 사용한다.
– vCache에서는 LLC isolation을 위해 way 크기로 VM에 캐시를 제공한다. 이 정보를 기억해두기 위해 vLLC partition table을 사용함. vLLC table은 VMID와 할당하는 캐시 크기를 기록해 둠. Cache를 사용할 때, 원래 지정된 할당량보다 더 많이 캐시를 사용한 VM의 캐시 라인을 빼낸다. 만약에 그런 것이 없으면 traditional LRU를 사용해 캐시 라인을 교체한다.
– LLC 효율을 높이기 위해, 캐시를 잘 사용하지 않는 경우에는 다른 VM이 사용할 수 있도록 한다(work-conserving).
– page coloring을 사용했을 때의 단점은 page recoloring을 하고자 할 때 page copy가 필요하다는 점이다. 하지만 vCache를 사용하면 page copy 없이 page recoloring을 할 수 있다. vCache에서는 page의 이동이 GPA에서만 발생하기 때문이다.


4. Efficient Persist Barriers for Multicores (paper, slides)
– Figure: background ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier background.PNG
– Non-volatile memory가 등장함. 이러한 NVRAM은 access latency가 DRAM보다는 느리지만 storage보다는 빠르고, byte addressable하다. 그리고 non-volatile하다는 특징이 있다. NVRAM을 쓸 때에는 persistency를 보장해주기 위해, cache의 내용을 주기적으로 NVRAM에 flush해주는 것이 필요하다. Persist barrier가 이러한 일을 해주는데, 이러한 barrier가 critical path에 있어서 성능 저하의 원인이 된다. 이 논문에서는 효율적인 persist barrier를 제안한다. Critical path에 있는 cache line flush 수를 줄임으로써 성능 향상하고자 한다.
– Persist barrier로 현재 존재하는 clflush, mfence등을 사용할 수 있으나, 이것은 visibility와 persistence가 강하게 결합하여 성능을 떨어뜨린다. Lazy Barrier (LB)는 visibility와 persistence를 decoupling하여 성능을 향상한다. LB에서는 epoch conflict가 발생할 때에만 cache flush를 하는데, 여전히 성능 향상의 여지가 있다. 이 논문에서는 Inter-thread Dependence Tracking (IDT), Proactive Flushing (PF)을 적용한 LB ++를 제안한다. 이를 통해 critical path 상에서의 cache flush 횟수를 줄일 수 있으며, 성능 향상을 할 수 있다.
– Strict persistency는 memory persistency를 memory consistency와 결합해 다룬다. Epoch persistency는 epoch 단위로 persistency를 보장한다. Buffered epoch persistency는 epoch conflict가 발생하는 시점에서 epoch 단위로 persistency를 보장한다.
– Figure: epoch persistence ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier epoch persistence.PNG
– Figure: lazy barrier ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier LB.PNG
– Epoch conflict에는 inter-thread conflict와 intra-thread conflict가 있다.
– Figure: inter-thread conflict ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier inter-thread conflict.PNG
– Figure: intra-thread conflict ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier intra-thread conflict.PNG
– 각각을 줄이기 위한 기법으로 inter-thread dependence tracking (IDT)와
proactive flushing (PF)를 제안한다. 우선 PF는 epoch conflict가 발생할 때까지 cache flush를 지연시키지 않고, proactive하게 flush해주는 것이다. 이렇게 함으로써 intra-thread conflict를 줄일 수 있고, 더불어 inter-thread conflict도 줄일 수 있다.
– Figure: proactive flush ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier intra-thread conflict.PNG
efficient barrier proactive flush.PNG
– IDT는 inter-thread conflict가 발생한 상황에서 persist operation을 기다리지 않음으로써 성능 향상을 도모한다. 기존의 LB에서는 inter-thread conflict가 발생하면 persist operation이 끝날 때까지 기다린 다음에 진행한다. LB++에서는 inter-thread conflict가 발생하면, inter-thread dependency만 기록해두고 우선은 계속 진행한다. 그리고 동시에 inter-thread dependency에 위배되지 않도록 persist operation을 진행한다.
– Figure: inter-thread dependency tracking ([MICRO’15] Efficient Persist Barriers for Multicores)
efficient barrier inter-thread conflict.PNG
efficient barrier inter-thread dependency tracking.PNG


5. ThyNVM: Enabling Software-Transparent Crash Consistency in Persistent Memory Systems (paper, slides)
– 이해가 쉬운 듯 하면서도 이해하기 어려운 논문이다. 아이디어가 복잡해서 그런 것 같다. Nonvolatile memory가 새롭게 등장하고 있는데, 이러한 메모리들은 persistent하다는 특징을 갖는다. 하지만 crash에 consistent하지는 못하다. 이러한 consistency를 보장하기 위한 연구들이 많이 있었으나, 프로그래머에 지나치게 의존했다. 이 논문에서는 프로그래머의 도움 없이 crash consistency를 보장하기 위한 Transparent Hybrid NVM (ThyNVM)을 제안한다. Crash consistency를 보장하기 위한 방법으로 checkpointing을 사용하고 있으며, checkpointing을 여러 단위의 granularity로 한다.
ThyNVM motivation.PNG
ThyNVM summary.PNG
– 많은 종류의 NVM이 제안되고 있으며, NVM은 persistent하다. 하지만 persistent memory는 crash consistency를 보장하기 힘들다는 문제가 있음. 선행 연구에서는 crash consistency를 프로그래머의 몫으로 넘김. 하지만 프로그래머에게 모든 몫을 넘기는 것은 비현실적이고, 에러가 발생하기 쉬움.
– 이 연구에서는 software-transparent한 방식으로 crash consistency를 보장하는 방법인 ThyNVM을 제안한다.
– crash consistency를 보장하는 방법에는 SW 기법, logging, CoW, checkpointing 등이 있음. SW 기법은 프로그래머의 부담이 크고, logging은 용량 소모가 크다는 문제가 있음. CoW는 복사 비용이 크다는 문제가 있음. Checkpointing이 가장 적합하다.
– Checkpointing을 했을 때 발생할 수 있는 문제로는 latency와 metadata overhead의 두 가지 문제가 있음. Latency는 working set이 DRAM에 있느냐, NVM에 있느냐에 따라 달라짐. Checkpointing은 checkpoint를 NVM을 저장해 수행하게 되는데, DRAM에 있으면 NVM에 쓰기까지의 latency가 발생하지만 NVM은 block remapping만으로 수행 가능함. 한편, metadata overhead는 어느 단위로 checkpointing하느냐에 따라 다름. Cache block 단위로 checkpointing한다면 metadata overhead는 커짐. 반면에 page 단위로 checkpointing한다면 metadata overhead는 작아짐.
– working set의 위치와 checkpointing의 granularity를 갖고 총 네 개의 경우가 나오는데, 각각의 장단점이 있음. partially efficient의 조합을 경우에 따라 적용하고자 함.
ThyNVM observation.PNG
– high spatial locality를 갖는 dense write에 대해서는 page writeback을 사용하고, random write에 대해서는 block remapping을 사용한다.
ThyNVM block remappingThyNVM page writeback
– 몇 가지 optimization 기법과 상세 구현에 대해 논문에서 이야기하고 있음.
– NVM에서 crash consistency를 보장하기 위한 기법들에 대한 이해가 부족해서 읽기 어려웠음. 그리고 왜 NVM을 이야기하면서 hybrid memory system을 가정하고 이야기하는지 이해하기 어려웠음.


6. Coherence Domain Restriction on Large Scale Systems


7. Cross-Architecture Performance Prediction (XAPP) Using CPU Code to Predict GPU Performance

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

누적 방문자 수
  • 103,476 hits
%d bloggers like this: