%
% origami.bib - References related directly to Computational Origami
%
% Assembled by Robert French at MIT
%	rfrench at athena.mit.edu (BibTeX doesn't like at signs :-)
%

@article{huang84,
author = "Alan Huang",
title = "Architectural Considerations Involved in the Design of an
Optical Digital Computer",
journal = "Proceedings of the IEEE",
month = jul, year = 1984,
volume = 72, number = 7, pages = "780-786",
status = "copy"
}

@booklet{huang-patent87,
author = "Alan Huang",
title = "Computational Origami",
howpublished = "Patent application",
month = jul, year = 1987,
status = "copy"
}

@mastersthesis{lu88,
author = "{Haw-minn} Lu",
title = "Computational Origami: A Geometric Approach to Regular
Multiprocessing",
school = "MIT Department of Electrical Engineering and Computer
Science",
month = may, year = 1988,
status = "copy"
}

@unpublished{chuang88,
author = "Isaac L. Chuang",
title = "Computational Origami",
month = aug, year = 1988,
status = "copy",

abstract = "Computational Origami is a non-von Neumann computer
architecture based on data flow networks which have patterns of nodes
interconnected in a tessellible structure.  An Origami machine is
MIMD, and allows the designer arbitrary division between throughput
and cost of hardware.  By using N-dimensional networks, an Origami
machine can be built which has the same latency but much higher
throughput than a randomly interconnected circuit for the same
purpose.  An algorithm is introduced for automatically generating data
transform networks which will map into Origami machines, possibly to
produce high throughput inner product or FFT engines.  Principles for
a method to construct Origami machines from computer programs are
given.  Implementation of an Origami machine is feasible with current
electronics technology, but the advent of digital optics may allow
operation with magnitudes faster throughput."
}

@unpublished{french88,
author = "Robert S. French",
title = "A Simple Placement and Routing Algorithm for a 2-Dimensional
Origami Architecture",
month = dec, year = 1988,
status = "author",

abstract = "Computational origami is a parallel-processing concept in
which an array of processors can be folded along any dimension so that
it can be simulated by a smaller number of processors.  The problem of
assigning functions to each of the processors is very much like the
generalized electrical circuit layout problem.  This paper presents a
simple, polynomial time algorithm for placing and routing functions in
an origami architecture.  Empirical results are analyzed and
optimizations are suggested."
}

@unpublished{chuang-french88,
author = "Isaac L. Chuang and Robert S. French",
title = "Karma {I}: An Origami Architecture Computer",
month = dec, year = 1988,
status = "author",

abstract = "Karma is the first hardware implementation of a parallel
processing architecture known as Computational Origami.  This recently
developed MIMD architecture concept combines the ideas of programmable
hardware and tessellible networks to realize a powerful dataflow like
computational model.  We demonstrate the practical application of
origami to the design and construction of a working test-bed computer,
using off the shelf components and interconnection technology.
Critical issues which we discuss include Karma's system
configuration, compiler design, the processor array, algorithms for
using origami processors, and applications for our computer.  Though
Karma itself is not a useful machine, it represents a significant
theoretical and practical development."
}

@unpublished{chuang89,
author = "Isaac L. Chuang",
title = "An Introduction to the Application of Computational Origami",
month = feb, year = 1989,
status = "copy",

abstract = "Computational origami is a MIMD architecture concept which
combines the ideas of programmable hardware and tessellible networks
to realize a powerful, dataflow like computational model.  Arrays of
regularly interconnected processing elements arranged with sets of
delay lines form the heart of an origami architecture computer.
Theoretically, an origami processor array can be expanded at will.
Unfortunately, design and implementation of these arrays is
complicated by the need to reconfigure delay lines.  Other key issues
such as network topology, processor functionality, and instruction
stream supply may also limit the applicability of computational
origami theories in practice.  These topics are discussed, and
concrete examples are given from an actual hardware implementation."
}

@inproceedings{french89,
author = "Robert S. French",
title = "A Simple Placement and Routing Algorithm for a Two-Dimensional
Computational Origami Architecture",
booktitle = "Papers of the MIT-ACM Undergraduate Computer Science Conference",
month = apr, year = 1989,
status = "author",

abstract = "Computational origami is a parallel-processing concept in
which a regular array of processors can be folded along any dimension
so that it can be simulated by a smaller number of processors.  The
problem of assigning functions to each of the processors is very much
like the generalized electrical circuit layout problem.  This paper
presents a simple, polynomial time algorithm for placing and routing
functions in an origami architecture.  Empirical results are analyzed
and optimizations suggested."
}

@techreport{houh89,
author = "H. H. Houh and N. A. Whitaker, Jr. and I. L. Chuang",
title = "Implementation of an Arbitrary Finite State Machine Using a
Handful of Logic Gates",
institution = "AT\&T Bell Laboratories",
month = nov, year = 1989,
status = "copy",

abstract = "Assuming that only a small number of ultrafast pipelined
optical logic gates are available, this paper shows how an arbitrary
finite sate machine can be implemented making use of delay line
memory.  A small three-function processor is designed which cna be
time-multiplexed using {\em computational origami\/} to produce the
desired output stream, as well as reset itself to receive additional
inputs.  An example of a two-bit counter is given."
}

@inproceedings{huang89,
author = "Alan Huang",
title = "Computational Origami - The Folding of Circuits and Systems",
booktitle = "Proceedings of the 1989 Optical Computing Conference",
month = feb, year = 1989,
note = "To appear",
status = "copy",

abstract = "A technique which regularizes and folds circuits and
systems to match the parallelism of optics is presented."
}

@techreport{chuang90,
author = "Isaac L. Chuang",
title = "A Computational Origami Architecture Time Slot Interchanger",
institution = "AT\&T Bell Laboratories",
month = feb, year = 1990,
status = "copy",

abstract = "A Time Slot Interchanger is designed using computational
origami.  Implementation of this architecture requires only a handful
of logic elements, provided that the origami processor's cycle time
can be made fast enough compared to the packet time.  A bound for the
minimum processor speed is given, as well as details on the machine's
operation."
}
