Quantum computers can (in theory) solve certain problems far faster than a classical computer
running any known classical algorithm. While existing technologies for building quantum
computers are in their infancy it is not too early to consider their scalability and
reliability in the context of the design of large-scale quantum computers. To architect such
systems one must understand what it takes to design and model a balanced fault-tolerant
quantum computer architecture. The goal of this lecture is to provide architectural
abstractions for the design of a quantum computer and to explore the systems-level challenges
in achieving scalable fault-tolerant quantum computation. In this lecture we provide an
engineering-oriented introduction to quantum computation with an overview of the theory behind
key quantum algorithms. Next we look at architectural case studies based upon experimental
data and future projections for quantum computation implemented using trapped ions. While we
focus here on architectures targeted for realization using trapped ions the techniques for
quantum computer architecture design quantum fault-tolerance and compilation described in
this lecture are applicable to many other physical technologies that may be viable candidates
for building a large-scale quantum computing system. We also discuss general issues involved
with programming a quantum computer as well as a discussion of work on quantum architectures
based on quantum teleportation. Finally we consider some of the open issues remaining in the
design of quantum computers. Table of Contents: Introduction Basic Elements for Quantum
Computation Key Quantum Algorithms Building Reliable and Scalable Quantum Architectures
Simulation of Quantum Computation Architectural Elements Case Study: The Quantum Logic
Array Architecture Programming the Quantum Architecture Using the QLA for Quantum
Simulation: The Transverse Ising Model Teleportation-Based Quantum Architectures Concluding
Remarks