Source: https://www.princeton.edu/~rblee/ELE572Papers/Fall04Readings/Microarch_Capability.pdf