Safe Compilation for Hidden Deterministic Hardware Aliasing and Encrypted Computing
This addresses a critical issue for systems programmers dealing with unpredictable memory access in hardware, with incremental extensions to encrypted computing.
The paper tackles the problem of hidden deterministic hardware aliasing, where logical addresses unpredictably access different physical memory locations, by developing a compilation technique that ensures code functions correctly in such environments, and extends this approach to encrypted computing.
Hardware aliasing occurs when the same logical address sporadically accesses different physical memory locations and is a problem encountered by systems programmers (the opposite, software aliasing, when different addresses access the same location, is more familiar to application programmers). This paper shows how to compile so code works in the presence of {\em hidden deterministic} hardware aliasing. That means that a copy of an address always accesses the same location, and recalculating it exactly the same way also always gives the same access, but otherwise access appears arbitrary and unpredictable. The technique is extended to cover the emerging technology of encrypted computing too.