SAMIPS: A Synthesised Asynchronous Processor
Qianyi Zhang, Georgios Theodoropoulos
TL;DR
This paper presents SAMIPS, an entirely asynchronous MIPS microprocessor synthesized in the CSP-based Balsa HDL, tackling clock distribution, power, and hazard challenges inherent to synchronous designs. The authors detail how MIPS R3000’s five-stage datapath and ISA are translated into an asynchronous, handshake-driven pipeline, including a novel data-hazard forwarding mechanism and a distributed, multi-colour control algorithm for branches and interrupts. They provide a comprehensive evaluation across behavioural, gate, and physical levels, comparing SAMIPS to both synchronous MIPS and other asynchronous implementations, and show that automated synthesis via Balsa yields meaningful performance gains with careful modelling. The work demonstrates that high-level CSP-based design flow can produce practical asynchronous processors, offering a roadmap for future asynchronous cores and insights into optimising hazard handling and arbitration in self-timed systems.
Abstract
Miniaturisation and ever increasing clock speeds pose significant challenges to synchronous VLSI design with clock distribution becoming an increasingly costly and complicated issue and power consumption rapidly emerging as a major concern. Asynchronous logic promises to alleviate these challenges however its development and adoption has been hindered by the lack of mature design tools. Balsa is a response to this gap, encompassing a CSP-based asynchronous hardware description language and a framework for automatically synnthesising asynchronous circuits. This paper discusses SAMIPS, an asynchronous implementation of the MIPS microprocessor and the first full scale asynchronous microprocessor to be synthesised in Balsa. The objectives of the paper are twofold: first to provide a holistic description of SAMIPS and its components, the approach that it has been followed for the asynchronisation of MIPS and the innovative solutions that have been developed to address hazard challenges and a quantitative performance analysis of the system; secondly, to provide insights about the effectiveness of Balsa as a hardware description language and synthesis system.
