Computing with Clocks
<|reference_start|>Computing with Clocks: Clocks are a central part of many computing paradigms, and are mainly used to synchronise the delicate operation of switching, necessary to drive modern computational processes. Unfortunately, this synchronisation process is reaching a natural ``apocalypse''. No longer can clock scaling be used as a blunt tool to accelerate computation, we are up against the natural limits of switching and synchronisation across large processors. Therefore, we need to rethink how time is utilised in computation, using it more naturally in the role of representing data. This can be achieved by using a time interval delineated by discrete start and end events, and by re-casting computational operations into the time domain. With this, computer systems can be developed that are naturally scaleable in time and space, and can use ambient time references built to the best effort of the available technology.   Our ambition is to better manage the energy/computation time trade-off, and to explicitly embed the resolution of the data in the time domain. We aim to recast calculations into the ``for free'' format that time offers, and in addition, perform these calculations at the highest clock or oscillator resolution possible.<|reference_end|>
@article{edwards2024computing,
    title={Computing with Clocks},
    author={Jonathan Edwards and Alex Yakovlev and Simon O'Keefe},
    journal={arXiv preprint arXiv:2402.03109},
    year={2024},
    archivePrefix={arXiv},
    eprint={2402.03109},
    primaryClass={cs.ET cs.AR}
}