This thesis proposes a new memory error detection approach that is based on snooper hardware that observes memory traffic flowing through the system bus. Memory error detectors have been mainlly built using software instrumentation, which suffer from performance and compatibility issues. Memory snooper-based approach can transparently monitor the memory access behavior of the a process. How- ever, to observe a software from the memory’s point of view, we need to overcome microarchitectural barriers such as cache. This thesis explores what are the architectural and software level constraints in the snooper-based detector and then implemented a redzone-based heap memory bug detector.
이 논문에서는 메모리 스누퍼를 활용하여 프로세서가 발생하는 메모리 접근 요청을 관찰함으로써 메모리 버그를 감지하는 방법을 소개한다. 메모리 버그 감지기는 그동안 대부분 소프트웨어 수정 방식으로 구현되 어왔기 때문에 성능과 호환성 측면에서 어려움이 있었다. 메모리 스누퍼를 이용하는 방법은 시스템 버스에 흐르는 메모리 요청을 스누퍼 하드웨어로 감시하면서 비정상적인 접근을 탐지하는 방법으로, 보호대상 소 프트웨어의 수정 없이 투명하게 메모리 접근을 감시할 수 있다. 그러나 프로세서가 아닌 버스 관점에서 소프트웨어의 행동을 감시하려면 캐시와 같이 아키텍처적인 장애물을 극복해야 한다. 이 논문에서는 효과 적으로 캐시 문제를 해결하려면 어떤 아키텍처적, 소프트웨어적 요소가 고려되어야 하는지 탐구하고 이를 통해 레드존 기반의 메모리 버그 탐지기를 구현하였다.