Reconfigurable Hardware & It's
Software Interface
An Annotated Bibliography
By: Steven Stanek & Robert
El-Soudani
Paper: John R. Hauser and John Wawrzyneck, "Garp: A MIPS
Processor with a Reconfigurable Coprocessor", Proceedings of the IEEE Symposium on
Field-Programmable Custom Computing Machines (FCCM '97, April
16-18, 1997) pp. 24-33.
Description: This paper
describes GARP, a specific implementation of an integrated FPGA &
MIPS II CPU. The paper discusses hardware design, programming and
testing details but deals only with simulated results; no hardware was
built at the time of publication.
Paper: John R. Hauser, "The
GARP Architecture"
Description: A more thorough
specification of the GARP Architecture than in "Garp: A MIPS Processor
with a Reconfigurable Coprocessor".
Paper: Timothy John Callahan,
"Automatic Compilation of C for Hybrid Reconfigurable Architectures",
PhD Thesis, University of California, Berkeley, 2002
Description: This paper deals
specifically with compiling C to the GARP architecture but techniques
described many be applied to more general languages and architectures.
Paper: Eylon Caspi, Michael
Chu, Randy Huang, Joseph Yeh, Yury Markovskiy, John Wawrzynek, and
André DeHon, "Stream Computations Organized for Reconfigurable
Execution (SCORE): Introduction and Tutorial", extended version of the
paper appearing in Conference on
Field Programmable Logic and Applications, August 28--30, 2000
Description: Deals with a
"stream based computer model which virtualizes reconfigurable computing
resources (compute, storage, and communication) by dividing a
computation up into fixed-size ``pages'' and time-multiplexing the
virtual pages on available physical hardware".
Paper: Andre Hon, "DPGA-Coupled
Microprocessors: Commodity ICs for the Early 21st Century", Proceedings
of the IEEE Workshop on FPGAs for Custom Computing Machines, April
1994, pp 31-39
Description: Discusses trends
leading toward FPGA integration on processors, limitations of current
schemes and the possible applications that could benefit from
integrated programmable logic.
Paper: Micheal J Wirthlin and
Brad L. Hutchings, "A dynamic instruction set computer", Symposium on
FPGAs for Custom Computing Machines, April 1995, pp 99-107
Description: Discusses the
architecture and ramifications of treating instructions as "removable
modules" which can be loaded when need into a FPGA and unloaded when
not in use. In effect, the FPGA is treated as a cache for the most
needed instructions, paging them in and out as needed.
Paper: J. Davidson, "FPGA
implementation of a reconfigurable microprocessor", Proceedings of the IEEE 1993 Custom
Integrated Circuits Conference, pages 3.2.1-3.2.4, 1993.
Description: Briefly
discusses the implementation of an entire microprocessor in an FPGA
with the belief that the it can be reconfigured to application specific
tasks.
Paper:
A. Wolfe and J.P. Shen. "Flexible processors: a promising application
specific processor design approach". Proceedings
of the 21st Annual Workshop on Microprogramming and Microarchitecture -
Micro '21 p 30-39.
Paper: David Andrews, Douglas
Niehaus, et al. "Programming Models for Hybrid FPGA-CPU Computational
Components: A Missing Link", IEEE
Micro Vol 24, No. 4, p 42-53.
Description: Discusses
programming techniques for FPGA-CPU hybrids such as languages used,
multithreading and operating system design including time keeping,
interrupt processing and mutual exclusion.
Paper: S. Baldacci, V. Zolesi
et at. "SEU Tolerant Controls for a Space Application based on
Dynamically Reconfigurable FPGA". MAPLD 2003 Paper C2.
The papers in the section I
believe are probably important and relevant, but I have been unable to
find their full text.
Paper (Haven't been able to find):
T. G. Rauscher and A. K. Agrawala, "Dynamic problem-oriented
redefinition of computer architecture via microprogramming", IEEE Transactions on Computers,
C-27(11):1006-1014, November 1978.
Book: John Hennessey and David
Patterson, Computer Architecture A
Quantitative Approach, 3rd edition, Morgan Kaufmann, 2003
Description: Hennessey and
Patterson contains a large quantity of information on instruction level
parallelism (ILP) techniques, metrics for evaluating performance and
discussions of die space issues, all of which we intend to address in
our project.
Paper: Micheal J. Flynn, "Very
High Speed Computing Systems", Proceedings
of IEEE, vol 54, no. 12, December 1966
Description: This classical
paper introduces many of the common notions of multiple issue machines:
SISD, SIMD, MIMD, MISD. We will constrast the notions of programmable
logic devices to these various classic schemes.
Paper: R. Ramakrishna Rau and
Joseph A. Fisher, "Instruction Level Parallel Processing: History,
Overview & Perspective" (I couldn't find what it was originally
published in, but it's in Readings
in Computer Architecture)
Description: Gives a thorough
overview of past and present instruction level parallelism designs and
techniques.