Lectures 25-28 Homework
Lec. 25 (friction & leakage) homework
Note exercise #2 from the previous homework partly had to do with validating
adiabatic friction.
-
[7 points] Short paper suggestion. Do some literature research
on energy dissipation and quickness of logic or switching operations in
some proposed future device technolog(y/ies) of interest to you.
Calculate the entropy coefficient and energy coefficient per device of
each technology you study. Compare the entropy coefficients to those
for the six technologies listed in lecture.
-
[10 points] Computer-based project. Using SPICE MOSFET models
of a high enough level to incorporate subthreshold conduction and/or other
leakage effects, build some simple fully-adiabatic circuits (as in exercise
#2 from the previous HW), and measure the off-state leakage currents.
Calculate from your experiments on exercise #2 of the previous HW what
the energy coefficient of your device is. Calculate from the formula
given in lecture what the minimum energy per operation should be, and optimal
time per operation. Validate this prediction using the SPICE simulation.
-
[7 points] Short paper suggestion. Do some literature research
on leakage power models for either future MOSFET technology generations
or some alternative future technology. Calculate the leakage power
and the spontaneous entropy generation rate per device.
-
[7 points] Short paper suggestion. Using figures obtained
from exercises 1 & 3 (or Roff/Ron figures you find for some real technology),
calculate the minimum energy per op, optimal cycle time, and maximum Q
for that technology.
Lec. 26 (power supplies) homework
-
[7 points] Short paper suggestion. Find an adiabatic logic
style not based on CMOS, for example, the parametric quantron, adiabatic
quantum-dot cellular automaton, adiabatic mechanical logics of Merkle &
Drexler, etc. Summarize the working of the technique you study, and
show how its global timing scheme fits one of the paradigms discussed back
in Lecture 22.
-
[20 points] Computer-based project. Simulate a simple inductors-and-switches
adiabatic power supply. At what frequency does it have the highest
Q? Write a report on it.
-
[15 points] Computer-based experiment. Simulate a stepwise-charging
power supply. Use large tank capacitors as the intermediate voltage
sources. Show that their levels converge to the right levels after
several cycles. Write a report.
-
[100 points] Original power electronics work. Using an analog
design & modeling tool, design a ladder-style LC filter network that
produces good trapezoidal adiabatic waveforms. Using discrete components
is OK.
-
[100 points] Original MEMS design work. Using a mechanical
modeling & simulation design tool (Pro/E? something...), design an
electromechanical power supply resonator that produces good adiabatic voltage
waveforms, like the one discussed in lecture.
If you have any other good ideas for adiabatic power supplies, that would
be worth a lot of points as well. Any of the 100 point problems here
could result in a publication.
Lec. 27 (reversible logic models) homework
-
[2 points each] Simple adiabatic design. Show how CNOT, CCNOT,
and the Fredkin gate can be implemented in SCRL.
-
[2 points] Prove that the set of all 1-bit and 2-bit classical reversible
gates is not a universal gate set.
-
[1 point] Show how to build an expanding reversible OR gate out of Toffoli
gates and extra constant inputs.
-
[2 points] Show how to build a Fredkin gate out of Toffoli gates.
-
[2 points] Show how to build a Toffoli gate out of Fredkin gates.
-
[1 point] Consider implementing an input-consuming NAND gate that only
copies 1 of its inputs. Of course this gate must be irreversible
if all 4 inputs are possible. Suppose all 4 input patterns
are equally likely, but only 1 of the input patterns triggers energy dissipation.
What is the minimum possible energy dissipation in this case (in terms
of kT)?
Lec. 28 (emulating irreversible machines) homework
-
[5 points] Small programming project. Write a program that
takes n and k as input and simulates the Bennett '89 algorithm.
To implement the "steps" of the algorithm, just print out messages like
"Doing segment #x", "Saving checkpoint #y" and "Undoing segment #x", "Unsaving
checkpoint #y". Or (prettier and easier to check), print out the
triangle diagram shown in lecture, using slashes and backslashes for the
sides of the triangles, and vertical bars to represent the stored checkpoints.
-
[10 points] Small design effort. Describe in detail how the
Bennett '89 algorithm, for any n and k, could be implemented in hardware,
for simulating k^n steps of an arbitrary irreversible Boolean circuit
(with assumed unit delay per gate), by substituting a split-level retractile
gate for each irreversible gate, and substituting a stack of n layers of
static adiabatic RAM cells (such as shown last week) for each logic node.
Show a detailed diagram of all timing signals for a small example such
as k=2, n=2, and show a 2LAL shift register with appropriate taps to generate
all these signals. For an extra 20 points, implement & simulate
your scheme.
-
[20 points] Medium programming project. Implement the Lange-McKenzie-Tapp
algorithm, as follows. Assume your technique takes as input an IrreversibleMachineConfiguration
object (a Java interface) that supports the following methods: final()
returns true if it's a final state. size() returns the size of the
configuration in bits. successor() returns the successor configuration.
nPredecessors() returns the number of predecessor configurations, predecessor(i)
returns the ith predecessor configuration. Implement LMT as an iterative
reversible algorithm that uses only a small constant number of IrreversibleMachineConfiguration
variables. It should take an initial configuration as input and return
the final state. Write your algorithm in pseudocode, but in a reversible
language; e.g., instead of using assignment, use syntax like "var <-
val" to store a computed value to an empty variable, and "var -> val" to
unstore an identical computed value from that variable, making it empty.
(If this doesn't make sense yet, just wait; we'll learn more about reversible
languages later.)
-
[100 points] Large programming project. Using the Bennett
'73 algorithm with the translation method described in lecture, implement
a tool that will accept an arbitrary sequential logic circuit (made of
Boolean gates with assumed unit delay) as input, and output an equivalent
mostly-adiabatic circuit that does only 1 irreversible operation per N
steps of each gate. For an extra 50 points, implement Bennett
'89 also! (Publication city!)
-
[100 points] Theoretical simplification. Read and understand
the Frank-Ammer proof, and come up with an alternative, much simpler, but
still rigorous version of it.
-
[1000 points] Theoretical breakthrough. Find an algorithm
to simulate an arbitrary irreversible machine reversibly using the same
asymptotic spacetime complexity, or prove conclusively that none exists.