Lectures 25-28 Homework

Lec. 25 (friction & leakage) homework

Note exercise #2 from the previous homework partly had to do with validating adiabatic friction.
  1. [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.
  2. [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.
  3. [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.
  4. [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

  1. [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.
  2. [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.
  3. [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.
  4. [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.
  5. [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

  1. [2 points each] Simple adiabatic design.  Show how CNOT, CCNOT, and the Fredkin gate can be implemented in SCRL.
  2. [2 points] Prove that the set of all 1-bit and 2-bit classical reversible gates is not a universal gate set.
  3. [1 point] Show how to build an expanding reversible OR gate out of Toffoli gates and extra constant inputs.
  4. [2 points] Show how to build a Fredkin gate out of Toffoli gates.
  5. [2 points] Show how to build a Toffoli gate out of Fredkin gates.
  6. [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

  1. [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.
  2. [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.
  3. [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.)
  4. [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!)
  5. [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.
  6. [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.