Source: https://www.cc.gatech.edu/~milos/kharbutli_asplos06.pdf