related: are there any good sources on how you design for out of order processing? I have done a lot of "intro to electronic circuits" stuff that lead to a really basic register-based CPU, but when we get into stuff like OOO or branch prediction stuff I feel like I haven't really seen much on how it can work while keeping your sanity from a design perspective.