TY - GEN
T1 - Reliable computing with ultra-reduced instruction set co-processors
AU - Rajendiran, Aravindkumar
AU - Ananthanarayanan, Sundaram
AU - Patel, Hiren D.
AU - Tripunitara, Mahesh V.
AU - Garg, Siddharth
PY - 2012
Y1 - 2012
N2 - This work presents a method to reliably perform computations in the presence of hard faults arising from aggressive technology scaling, and design defects from human error. Our method is based on an observation that a single Turing-complete instruction can mirror the semantics of any other instruction. One such instruction is the subleq instruction, which has been used for instructional purposes in the past. We find that the scope for using such a Turing-complete instruction is far greater, and in this paper, we present its applicability to fault tolerance. In particular, we extend a MIPS processor with a co-processor (called ultra-reduced instruction set co-processor - URISC) that implements the subleq instruction. We use the URISC to execute sequences of subleq that are semantically equivalent to the faulty instructions. We formally prove this, and implement the translations in the back-end of the LLVM compiler. We generate binaries for our hardware prototype called MIPS-URISC, which we synthesize and execute on an Altera FPGA. Our experiments indicate the performance and area overheads, and the efficacy of the proposed approach.
AB - This work presents a method to reliably perform computations in the presence of hard faults arising from aggressive technology scaling, and design defects from human error. Our method is based on an observation that a single Turing-complete instruction can mirror the semantics of any other instruction. One such instruction is the subleq instruction, which has been used for instructional purposes in the past. We find that the scope for using such a Turing-complete instruction is far greater, and in this paper, we present its applicability to fault tolerance. In particular, we extend a MIPS processor with a co-processor (called ultra-reduced instruction set co-processor - URISC) that implements the subleq instruction. We use the URISC to execute sequences of subleq that are semantically equivalent to the faulty instructions. We formally prove this, and implement the translations in the back-end of the LLVM compiler. We generate binaries for our hardware prototype called MIPS-URISC, which we synthesize and execute on an Altera FPGA. Our experiments indicate the performance and area overheads, and the efficacy of the proposed approach.
KW - Turing-complete ISA
KW - microprocessor reliability
UR - http://www.scopus.com/inward/record.url?scp=84863543327&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84863543327&partnerID=8YFLogxK
U2 - 10.1145/2228360.2228485
DO - 10.1145/2228360.2228485
M3 - Conference contribution
AN - SCOPUS:84863543327
SN - 9781450311991
T3 - Proceedings - Design Automation Conference
SP - 697
EP - 702
BT - Proceedings of the 49th Annual Design Automation Conference, DAC '12
T2 - 49th Annual Design Automation Conference, DAC '12
Y2 - 3 June 2012 through 7 June 2012
ER -