현대 온라인 서비스 load로 인해 dram 수요 높음. 근데 비싸고 메모리 확장에 불안정. dram capacity와 memory demand 사이 gap의 대안? → SOM은 density 높고 non-volatile이고 selector 기반의 addressing으로 확장성 늘리고 leakage도 적음. 이런 scalable하고 low-latency한 emerging 메모리 잘 써서 demand 대응해야됨. 인메모리 key value 저장 등에 널리 쓰이는 memcached는 웹어플 실행이나 서치 빠르게 해줌. → 메모리가 user 경험에 많은 영향 끼친다.
온라인 서비스는 메모리 access에 locality 있다. 그래서 비싼 DRAM은 hot data의 캐시로 쓰여야한다. 동시에 SOM은 주메모리로 쓰면 capacity를 싸게 늘릴 수 있고 performance도 유지할 수 있다. (hierarchy 측면에서 보면 SOM은 DRAM와 Storage 사이?)
DRAM과 emerging memory 구성에서 Cloud관련 workload와 캐시 miss율 분석했다. DRAM capacity ↔ bandwidth 관계도 분석했고 아래와 같이 모델링 했다.
BW_EM = (BW_DRAM / Cache Block Size) x Miss Rate x Page Size
결국 1TB 정도 메모리 구성할 때 DRAM은 32GB만 있으면 거의 saturation되고, SOM으로 나머지 채우면 된다. SOM은 심지어 flash보다 내구성 좋고 latency도 낮다.
이걸 Datacenter Architecture에서 활용하기에 Challenges도 여전히 있기는 하다.
먼저 캐시 정책임. data movement 최소화 하고 Access 빈도 높은 data가 DRAM에 있어야 됨. 근데 metadata tracking overhead를 고려해야하는데, cache block size 키우면 이건 잘되지만 캐시 정책의 복잡성 증가함. trade-off 잘 고려해야함
다른 문제는 OS의 페이징 정책인데, DRAM과 EM간 data migration의 overhead 엄청 남. HW기반 memory 할당과 direct-access 등을 포함한 새로운 memory management 접근과 비동기식 context 스위칭 등 새로운 access 모델 필요함.
마지막으로 memory access optimization. address 변환에서 일관성을 유지하는 TLB의 shootdowns는 메모리 용량 늘리는데 주요한 보틀넥이었음. 결과적으로 virtual memory translation에 대한 HW↔SW Co-연구 필요함