1. A method of monitoring a memory hierarchy by a processor of a computing device, comprising: determining a risk level of an application running on the computing device based on memory address accesses of the application monitored by an address monitoring unit of one or more selected memory hierarchy layers of the computing device; and selecting one or more memory hierarchy layers to monitor the memory address accesses of the application based on the determined risk level of the application.