While the compute part keeping scaling for decades, it becomes more and more difficult for the memory part to catch up. This mismatch raises two grand challenges. One is referred to as the "Memory Wall", in which case the memory latency and bandwidth turn to be the bottleneck, slowing down the system no matter how computing resource improves. The other one is referred to as the ``Power Wall'', which demands high power efficiency due to a limited power budget, whereas the energy spent on the memory accesses dominates the total energy consumption.To address those challenges, this dissertation focuses on designing memory-centric architectures to bridge the gap between compute and memory. Two types of memory-centric architecture have been inves...