The ability to guarantee the functional correctness of digital integrated circuits and, in particular, complex microprocessors, is a key task in the production of secure and trusted systems. Unfortunately, this goal remains today an unfulfilled challenge, as evidenced by the long errata lists available for commercial microprocessors that list latent bugs not found during the design verification process. To address the challenges of verification, we are turning toward the design of introspective systems capable of recognizing and correcting their errant ways. We are exploring and developing “patching” techniques that can repair these escaped bugs directly at the customer site, practically making hardware as malleable as software. In addition, we are investigating low-cost techniques to validate computation at runtime, in particular techniques that are provably capable of preventing incorrect results. Work in this area draws heavily from the computer architecture and computer-aided design fields.
Related Labs, Centers, and Groups
Advanced Computer Architecture Laboratory