microarchitecture implementation considerations