First time posting here, though I have perused quite a few threads on
this mailing list over the last few weeks!
I am having some fun teaching myself CPU design (the good old "what I
cannot create, I do not understand"!). For now, I am toying around with
a Xilinx FPGA board. I've implemented a small in-order, pipelined RV32IM
core (I know, baby steps!).
I now would like to understand OoO execution better--so I started
looking at Tomasulo's algorithm. While researching the topic, I stumbled
upon a bunch of discussions here regarding CDC 6600-style scoreboards,
and how they might provide an alternative path towards building an OoO
core with multiple-issue, precise exceptions, etc. Most lecture notes/textbooks I have found don't seem to have anything on the topic.
I have found the following references so far:
- Design of a computer from Thornton. The book is quite fascinating, though it's taking me a while to get used to the notation.
- The source code of Libre SoC. I am rather unfamiliar with nmigen
but even then, it looks quite readable.
- A number of threads on this mailing list as well as internal discussions on the Libre SoC website/mailing list.
Quite a few of these make direct references to book chapters from an unpublished book by Mitch Alsup--I was wondering if there was any way to
get a copy?
Also, are there any other resources that I missed and that you would recommend for anyone getting interested in this topic?
Thomas
First time posting here, though I have perused quite a few threads on<
this mailing list over the last few weeks!
I am having some fun teaching myself CPU design (the good old "what I
cannot create, I do not understand"!). For now, I am toying around with
a Xilinx FPGA board. I've implemented a small in-order, pipelined RV32IM
core (I know, baby steps!).
I now would like to understand OoO execution better--so I started
looking at Tomasulo's algorithm. While researching the topic, I stumbled
upon a bunch of discussions here regarding CDC 6600-style scoreboards,
and how they might provide an alternative path towards building an OoO
core with multiple-issue, precise exceptions, etc. Most lecture notes/textbooks I have found don't seem to have anything on the topic.
I have found the following references so far:
- Design of a computer from Thornton. The book is quite fascinating, though it's taking me a while to get used to the notation.
- The source code of Libre SoC. I am rather unfamiliar with nmigen
but even then, it looks quite readable.
- A number of threads on this mailing list as well as internal discussions on the Libre SoC website/mailing list.
Quite a few of these make direct references to book chapters from an unpublished book by Mitch Alsup--I was wondering if there was any way to
get a copy?
Also, are there any other resources that I missed and that you would recommend for anyone getting interested in this topic?<
Thomas
You could ask for it.
As an example, I believe the Nyuzi core has code for a scoreboard implementation.
https://github.com/jbush001/NyuziProcessor
I think it is a 4-thread barrel processor.
On 11/11/23 6:08 PM, MitchAlsup wrote:
You could ask for it.
I reached out in private, let me know if you didn't receive my message!
As of this morning, It has no9t arrived.
On 2023-11-11 3:00 p.m., Thomas Gregoire wrote:
Thanks for the reference! The Nyuzi processor actually appears to haveAlso, are there any other resources that I missed and that you would
recommend for anyone getting interested in this topic?
Thomas
As an example, I believe the Nyuzi core has code for a scoreboard implementation.
https://github.com/jbush001/NyuziProcessor
I think it is a 4-thread barrel processor.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 53:11:28 |
Calls: | 10,397 |
Calls today: | 5 |
Files: | 14,067 |
Messages: | 6,417,394 |
Posted today: | 1 |