Expand description
R6 — the Tier-5 Silicon ISA emitter. The register-VM opcode set becomes the native ISA; each
stencil family maps to a functional unit. This lowers a
CompiledProgram to LOGOS Silicon ISA assembly — the SAME opcodes the interpreter/VM/JIT/AOT
run, now as the chip’s instruction set.
Every emitted instruction carries its RevClass — the adiabatic datapath contract:
• Bijection instructions run backward with ZERO garbage (the charge-recovery core);
• Journaled instructions push a minimal Bennett delta;
• Effectful instructions hit the effect log / a named irreversibility barrier;
• Control instructions reverse on the recorded trace.
Because the classifier reversibility is TOTAL over the ISA (no NonReversible, enforced by
reverse_op_lock), the emitter can never lower an unclassified — hence non-reversible-by-omission —
instruction. The isa_aot_lock test pins that: every op emits, and every emission is classified.
Structs§
- Adiabatic
Schedule - The adiabatic cell budget of a program — the count of each
CellClassits Silicon datapath needs. Thecharge_recoveryfraction is the adiabatic (zero-erasure) share; a program with no ancilla or effect cells is FULLY ADIABATIC — its Landauer floor is 0, since no cell can erase a bit.
Enums§
- Cell
Class - The physical cell a Silicon-ISA instruction maps to — the structured (machine-checkable) form of
the
rev_tagannotation, one perRevClass. This is the datapath’s adiabatic contract:ChargeRecoverycells recycle their charge (zero erased bits);AncillaWritecells write a Bennett history bit (the only genuine erased-bit source); the rest carry no erased data. - Silicon
Status - Where each ISA op lives in silicon — the FULL-SURFACE map. Every op has a home, so the WHOLE
language is silicon-implementable: the realized reversible datapath, the ALU/value datapath (the
build frontier), the instruction sequencer, the load/store + structured-memory unit, or an
off-core coprocessor (runtime services). This is an EXHAUSTIVE match with no wildcard — a new
Opcannot compile until it declares its silicon home, so the chip can never silently fail to cover a language feature.CoreDatapathis a monotone floor that RISES as datapath ops are realized in RTL and proven ≡ VM by our certified SAT (thesilicon_op_support_ratchetlock).
Functions§
- adiabatic_
schedule - Compute the
AdiabaticSchedule— the per-CellClasscell budget — for a program. - cell_
class - The cell an op maps to — derived from the TOTAL
reversibilityclassifier, so it is exhaustive by construction (the censusNonReversibleis provably empty, mapped conservatively to an ancilla cell). Keep in lockstep withrev_tag. - coprocessor_
realized - The concurrency/coprocessor ops realized as on-core services in
soft_core.v: the FIFO-channel NoC (a fixed ring buffer on the heap), proven by the ≡VM differential (buffered send/receive is byte-identical to the VM’s deterministic pipe) + iverilog, decoded at theirbinisawire opcodes. - emit_
isa - Emit
progas LOGOS Silicon ISA assembly text, every instruction annotated with its reversibility class. Totality is guaranteed by the classifier: an unclassified op cannot compile the crate. - load_
store_ realized - The load-store ops realized in the soft-core’s heap unit (
soft_core.v’sdmem/hp+ therun_soft_coremodel): sequence construction, push, indexed read, and length. Proven by thethe_soft_core_runs_logos_programs_identically_to_the_vmdifferential (heap ≡ VMRuntimeValue::List) and decoded at theirbinisawire opcodes by thesoft_core_decodes_the_wire_opcodeslock. - rev_tag
- The reversibility-contract tag for one ISA instruction — the adiabatic annotation the Silicon backend reads to decide whether an instruction charge-recovers (Bijection) or needs a history cell.
- silicon_
realized - Whether an op is REALIZED in synthesizable silicon TODAY — it has emitted RTL AND its operation is
proven correct by our own certified SAT (not merely classified). This is the ratchet’s PROGRESS
metric; it grows as
Datapathops are turned into verified hardware. Two realized units: the reversible charge-recovery core (rev_alu_core.v; each op proven a bijection/injective) and the general integer ALU (codegen_sva::rtl::emit_alu_datapath_verilog; arithmetic/bitwise/signed- comparison ops proven correct by the our-SAT identity batterythe_general_alu_datapath_is_proven _correct_by_our_sat). RAISESILICON_REALIZED_FLOORas ops graduate — never lower it. - silicon_
status - The silicon home of an op — EXHAUSTIVE (no wildcard), so the full ISA is provably mapped to
hardware and a new op must declare its home. Keep the
CoreDatapatharm in lockstep with the realizedrev_alu_core.vdatapath (binisaopcodes 0..4). - soft_
core_ executes - The ops the fetch-decode-execute soft-core (
benchmarks/silicon/soft_core.v) itself decodes and executes — the movement + control-flow + output ops (as opposed to the value-transform ALU ops proven by our-SAT identities). Realized by the CPU running real bytecode (iverilog-proven) and by thesoft_core_decodes_the_wire_opcodeslock tying its decode tobinisa::opcode.