Data Tiering in Heterogeneous Memory Systems
Heterogeneous memory architectures coupling DRAM with high capacity, low cost, but also lower performance NVM. couple NVM with a smaller amount of DRAM as cache.
Contributions:
- high performance -> placing some applications data structures in small DRAM
- different memory access patterns (sequential, random, pointer chasing)
- pointer chasing: every operation will occur a cache miss when traveling a list
- X-mem -> map objects to data structures
- automatically placing data-structures in appropriate memory types
- According access pattern and automates the task of mapping memory regions of that data structure to DRAM or NVM to optimize performance
Design (features)
- Using a unique tag (Hash, Tree, Buffer) for each data structures
- Binding NVM and DRAM to NUMA node
- Select the Solution Type
Dependent | Independent | |
---|---|---|
Sequential | NA | Streaming |
Non-sequential | Pointer chasing | Random |
A Write-friendly Hashing Scheme for Non-volatile Memory Systems
This is a naive paper, and the idea is trivial
This paper introduces a newly hash scheme, which reduce frequency of write operation in NVM
Existing Hashing Schemes:
- Chained Hash
- Linear Hash
- 2-choice Hash
- Cuckoo Hash
Hash Scheme Structure
12345678| |---| |---| |---| |---| |---| |---| |---| | Layer-1\ / \ / \ / \ /| |---------| |---------| |---------| | Layer-2\ / \ /\ / \ /| | | | Layer-3........... Layer-L- every two nearly table items share a item in next layer
- cache coherence
- remove some levels in the bottom -> shortening finding path