Fast checkpoint/recovery to support kilo-instruction speculation and hardware fault tolerance
Theincreasedrelativecostof accessingmemoryis encouragingprocessordesignersto explore deeperuniprocessorspeculation(e.g.,with branchandvalueprediction)andconsidermultiprocessorspeculation(e.g.,on coherencemessagetypesandvalues).While somemechanisms have beenproposedto supportdeepspeculationusing speculati ve multithreading,current mechanisms for con ventional processors are not as good. To supportkilo-instructionspeculationwith conventionalprocessors, this paperproposesMultiversion Memory (MVM), aprocessor/memory interfacethatallowsprocessorsto createmultiple versionsof memoryand recover to previous versionswhennecessary . In this paper , we developanefficient implementationof MVM thatusesa level onecacheto keeprecentspeculativeblocks(likea futurefile for memory),usesversionbuffersto keepold versionsof blocks for whichspeculationis pending(likeamemoryhistorybuffer), andleavesthelevel two cache (and beyond) unchanged (lik e a memory architectural file). Concurrently, requirementsfor highly-availablecomputersandmanufacturingtrendsto deepsub-microndesignencouragetechniquesto masktransientfaults (e.g.,with error correcting codesandexecutionretry).Mostcurrentdesignsconsiderspeculationandfault toleranceindependently. Nevertheless,a secondresult of this paperis that MVM canprovide supportfor both needs, perhaps making the use of hardw e fault-tolerance more widespread. Simplecostmodelswith parametersfrom commercialworkloadsshow that our implementation of MVM allows kilo-instruction speculationand fault tolerancethat can recover faster (e.g.,lessthan273vs. 362cycles),usesrecovery storagethat is smaller(e.g.,5,356bytesvs. 10,000 bytes), and has lo wer common-case o verhead than other recently proposed schemes.