  Operating on the principles of quantum mechanics, quantum algorithms hold the
promise for solving problems that are beyond the reach of the best-available
classical algorithms. An integral part of realizing such speedup is the
implementation of quantum queries, which read data into forms that quantum
computers can process. Quantum random access memory (QRAM) is a promising
architecture for realizing quantum queries. However, implementing QRAM in
practice poses significant challenges, including query latency, memory capacity
and fault-tolerance.
  In this paper, we propose the first end-to-end system architecture for QRAM.
First, we introduce a novel QRAM that hybridizes two existing implementations
and achieves asymptotically superior scaling in space (qubit number) and time
(circuit depth). Like in classical virtual memory, our construction enables
queries to a virtual address space larger than what is actually available in
hardware. Second, we present a compilation framework to synthesize, map, and
schedule QRAM circuits on realistic hardware. For the first time, we
demonstrate how to embed large-scale QRAM on a 2D Euclidean space, such as a
grid layout, with minimal routing overhead. Third, we show how to leverage the
intrinsic biased-noise resilience of the proposed QRAM for implementation on
either Noisy Intermediate-Scale Quantum (NISQ) or Fault-Tolerant Quantum
Computing (FTQC) hardware. Finally, we validate these results numerically via
both classical simulation and quantum hardware experimentation. Our novel
Feynman-path-based simulator allows for efficient simulation of noisy QRAM
circuits at a larger scale than previously possible. Collectively, our results
outline the set of software and hardware controls needed to implement practical
QRAM.
