  We provide modular circuit-level implementations and resource estimates for
several methods of block-encoding a dense $N\times N$ matrix of classical data
to precision $\epsilon$; the minimal-depth method achieves a $T$-depth of
$\mathcal{O}{(\log (N/\epsilon))},$ while the minimal-count method achieves a
$T$-count of $\mathcal{O}{(N\log(1/\epsilon))}$. We examine resource tradeoffs
between the different approaches, and we explore implementations of two
separate models of quantum random access memory (QRAM). As part of this
analysis, we provide a novel state preparation routine with $T$-depth
$\mathcal{O}{(\log (N/\epsilon))}$, improving on previous constructions with
scaling $\mathcal{O}{(\log^2 (N/\epsilon))}$. Our results go beyond simple
query complexity and provide a clear picture into the resource costs when large
amounts of classical data are assumed to be accessible to quantum algorithms.
