Most of the performance in processors in the last decade has come from increasing complexity. Compare the single thread performance of the fastest P4 processor to a recent i7.<p>More complexed manufacturing process (smaller), more complex instruction (AVX2, crypto), more complex branch prediction, more complex micro&#x2F;macro op decoding, more complex bus (QuickPath), the list goes on.<p>The memory barrier semantics on x86(_64) are the strictest of all the arch. This is at the expense of expense of complexity (cache synch protocols). Compare that to the other archs where the semantics presented to software a more complex.<p>In my mind the chip designers have handled a lot of complexity on their end to simplify it on the software designers. If you go far enough down the rabbit hole (drivers, high performance) you might have to deal with some of the complexity.