I really love Mill's design. Too bad it doesn't proceed fast enough due to lack of funding/backing. I guess I'm not the only one who couldn't afford to work without salary and pure stock compensation
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.
You keep a list (bitmap) of registers (hazards, really - MMU exceptions are hazards too) to be computed, you issue instructions whenever their hazards are cleared (will be cleared just before they read operands).
It is quite on par with the renaming machinery used in contemporary CPUs and is much, much easier to implement.
I worked on the TRIPS project in graduate school - specifically the compiler (my dissertation was about how to optimize the selection of dataflow subregions). I’d be curious what Doug and co. At Microsoft have done with E2 and whether they’ve actually cracked the compiler problem.
I really love Mill's design. Too bad it doesn't proceed fast enough due to lack of funding/backing. I guess I'm not the only one who couldn't afford to work without salary and pure stock compensation
I do not know if mill will ever go anywhere (I have my doubts), but certanly Ivan Godard is a gold mine of CPU and compiler knowledge.
I agree here. The YouTube series he has on the Mill is absolutely fascinating.
I don't think they ever meant to actually make CPUs. I think they are just trying to create patents.
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.
Hennessy,Patterson "Computer Architecture: A Quantitative Approach" 6th edition
https://duckduckgo.com/html?q=tomasulo%27s%20algorithm - start reading some various hits. youtube has some useful animations. H&P book (referenced by sibling comment) is good.
https://en.wikipedia.org/wiki/Scoreboarding - the easiest method (and one of earliest ones).
You keep a list (bitmap) of registers (hazards, really - MMU exceptions are hazards too) to be computed, you issue instructions whenever their hazards are cleared (will be cleared just before they read operands).
It is quite on par with the renaming machinery used in contemporary CPUs and is much, much easier to implement.
Perhaps the source for the RISC-V BOOM processor? https://content.riscv.org/wp-content/uploads/2017/12/Wed0936...
If you want to find the source code and some information on how to build and run it, you should check out their new website: https://boom-core.org/
I used this book in college https://www.amazon.com/Computer-Organization-Design-ARM-Arch...
I worked on the TRIPS project in graduate school - specifically the compiler (my dissertation was about how to optimize the selection of dataflow subregions). I’d be curious what Doug and co. At Microsoft have done with E2 and whether they’ve actually cracked the compiler problem.