摘要:As high GHZ processors become prevalent, adding hardware support to ensure the cor-rectness and security of programs will be just as important, for the average user, as furtherincreases in processor performance. The goal of our research is to fo cus on developingcompiler and hardware support for e.ciently performing software checks that can be lefton all of the time, even in production code releases, to provide a significant increase in thecorrectness and security of software.In this paper we focus on the performance of checking the correctness of pointers. Wefocus on pointers since a significant amount of bugs and security issues (bu.er over.ows) inprograms are due to memory bugs resulting from incorrect usage of pointers. To determineif a pointer reference is correct many techniques require additional information to be kepttrack of called meta-data. The meta-data is checked when a pointer is dereferenced to verifysome property about the pointer or the ob ject. The first part of our paper fo cuses on whereto e.ciently keep track of this meta-data information and the overheads for performingsafety checks like bounds checking and dangling pointer checks. We then focus on archi-tecture extensions to reduce the overhead of these meta-data checks. We examine theseoptimizations in the presence of two meta-data checking applications – bounds checkingand dangling pointer checks and show that we can reduce the overhead of these pointerchecks from 148% down to 21% on average