목록Software Engineering (80)
Pure Software Engineer :)
NoHype 에 대한 prototype 제시 (on Intel Nehalem quad-core processor) VM의 life time을 creation, bootup, execution, shutdown 으로 보고 아래의 4가지 단계로 prototype을 나눠서 design 함 1. VM Creation - pre-allocation (CPU, memory) Dom0는 Core 0번에 고정 CPU : pin a VM to a set of cores memory : pre-setting Extended Page Table(EPT) - virtualized I/O device (여기서는 NIC 만) PCI pass through mechanism(?)을 통해... -> Xen에서 지원된다는데... 2...
cache replacement algorithm은 보통 LRU 를 사용한다. 하지만 LRU는 cache size 보다 큰 working set 을 가지는 memory intensive workload 들에 의한 thrashing 에 안좋은 성능을 보이는 단점이 있다. 이 논문의 아이디어는 이러한 thrashing 이 발생하는 경우, working set의 일부분이라도 cache에 유지시켜 그 부분에 대해서는 hit 이 날 수 있도록 하고, 나머지 부분에서는 thrashing 발생하도록 하면 어떨까 하는 것이다. 3가지 방법을 제안했다. LIP(LRU Insertion Policy) 를 통해 새로운 line을 MRU position 대신 LRU position 에 넣어 만약 다시 reference 되지 ..
CMP 환경에서 multi-threads의 경우 각 thread 별로 page를 참조하는 영역이나 패턴이 비슷할 것이다. 그래서 관찰해보니 대부분 core의 TLB miss가 같은 addresses에 의한 miss인 경우나(redundant), 특정 패턴(stride)가 있다는 것을 발견하였다. (PARSEC의 data-parallel, pipeline workloads 들을 통해 real system에서 돌려보고 simics simulation을 통해서도 input을 줄여서 실험 함.) 이러한 현상을 바탕으로 앞으로 HW/SW TLB를 design하는데 있어 hierarchy, shared, stride를 prediction 해서 TLB performance를 향상시키는 방향으로 나아가야함을 주장함. ..
Adaptive Insertion Policies for High Performance Caching[ISCA 2007] 의 확장판. [ISCA 2007] 에서는 private cache 환경에서 DIP(Dynamic Insertion Policy) 를 제안. DIP는 LRU(Least Recently Used) 와 BIP(Bimodal Insertion Policy) 둘중에 하나를 어플리케이션 실행중에 dynamic 하게 선택하는 알고리즘이다. LRU가 새로운 line을 MRU에 Insertion 하는것인 반면 BIP는 기본적으로 LRU 위치에 Insertion 하고 일정확률로 MRU 위치에 insertion 하는 방법이다. 여기서도 Set Dueling 을 통해서 32개의 set을 각각 LRU, BI..
cache miss 는 일반적으로 3가지 분류(cold miss, capacity miss, conflict miss) 로 나뉜다. 하지만 CMP 환경에서는 이러한 분류가 적합하지 않다고 주장하고 새로운 관점으로 cache miss를 분류한다. CII(cold miss, inter-processor miss, intra processor miss). cold miss 는 말그대로 compulsory miss를 뜻하고, 어떤 cache blcok 이 처음 processor A 에 의해 cache 에 올라왔다고 했을때 processor A 의 다른 reference 에 의해 eviction 된 경우를 intra-processor miss라고 하고 processor B 의 reference 에 의해 evict..
CMP 환경에서 LLC(여기서는 L2 cache) 를 private 로 하면 complexity, isolation 등의 장점을 가진다. 반면, shared 로 하면 cache resources를 좀 더 효율적으로 사용할 수 있다. Cooperative caching 은 이러한 private, shared cache의 장점을 살려 off-chip memory access를 줄여 average memory latency를 줄이고자 하는 방법을 제안한다. 기본적으로 private L2 cache를 사용하되, local 에서 eviction 시켜야 할경우 전체 cache 에서 eviction 하는게 아니라, 다른 processor의 cache에 여유가 있다면 그곳으로 옮겨 놓는 방식으로 나중에 referenc..
LRU 를 사용하는 shared cache에서는 cache를 많이 요구하는 application 에게 더 많은 cache 를 사용하게 되는 demand based 방식이라 할 수 있다. 하지만 cache를 demand 에 따라 많이 할당하는것이 그에 따라 얻을 수 있는 이익과 correlation이 있다고 볼 수 는 없다. (e.g. streaming application). 이 논문은 demand based 가 아니라 cache를 더 줬을때 많이 이익을 보는 application 에게 cache를 더 할당하자는(utility-based) 방식을 제안한다. ATD(Auxiliary Tag Directory)를 사용하여 LRU 알고리즘의 stack property를 사용하여 MRC를 구하고 utility ..
기존의 cache partitioning algorithm들은 모두 LRU를 쓴다고 가정하고 LRU의 특징(stack property, ...) 을 사용한다. 하지만 실제로 LRU를 그대로 구현하기에는 cost가 너무커서 pseudo-LRU(NRU(not recently used) or BT(binary tree))를 구현하는데 이 알고리즘들은 LRU와 달라서 기존의 cache partitioning algorithm을 그대로 적용시킬 수 없다. 그래서 이 paper는 partitioning 할 way를 결정하는 profiling logic을 pseudo-LRU에 적용할수 있도록 하는데...