Good books on Computer Architecture and CPU design - Page 1
Forum section: electronics / general

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: January 17, 2021, 07:29:01 pm
content: Hi,Recently I have read The Computer Principles and Design in Verilog HDL by Yamin Li, It was a very nice and useful book, I highly recommend it.But I need something more, probably more recent, I think I need something for designing a Modern CPU that uses Industry standard buses like AXI, Wishbone, etc... I lack a lot of knowledge in this areas, I need real books and examples of this topic.Also I like to learn the design of Superscalar multi issue Processors, A better way of Cache Design and some more advance topics, Also I like to learn about targeting GCC or LLVM to the custom designed processor,So Please share the books, Pages, videos or any thing that you think is useful.

author: HB9EVI
author_rank: Frequent Contributor
timestamp: January 17, 2021, 07:43:05 pm
content: I got me 'Computer Architecture - A Quantitative Approach' some months ago; it's fairly up to date to today's CPU architectures

author: asmi
author_rank: Super Contributor
timestamp: January 17, 2021, 07:54:35 pm
content: "Digital Design and Computer Architecture: ARM Edition" It begins from single combinatorial circuits, and goes all the way to pipelined CPU cores. And all of that with SystemVerilog and VHDL side-by-side! Great book, highly recommend!

author: rstofer
author_rank: Super Contributor
timestamp: January 18, 2021, 11:00:42 pm
content: Computer Organization and Design RISC-V Editionhttps://www.amazon.com/gp/product/0128203315My favorite: Introduction to Computing Systems: From Bits & Gates to C & Beyond 3rd Editionhttps://www.amazon.com/gp/product/B07VWKMJBXPlus the ARM book listed previously. There is a MIPS version of the same book.For your more advanced features, you can search Amazonhttps://www.amazon.com/s?k=superscalarFor LLVM, go to the source: llvm.orgGCC backend:https://kristerw.blogspot.com/2017/08/writing-gcc-backend_4.html

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: January 19, 2021, 07:22:57 am
content: Thanks for the hints, I think we lack some books on porting the compiler subject, also do you recommend any useful books or website for design with standard buses like AXI ,AMBA, Wishbone etc...

author: rstofer
author_rank: Super Contributor
timestamp: January 19, 2021, 04:52:31 pm
content: Quote from: ali_asadzadeh on January 19, 2021, 07:22:57 amHave you searched? Richard Stallman wrote a book on Using and Porting the GNU Compiler CollectionAlibris has a couple of versions but they seem old. Still, the basics are probably the samehttps://www.alibris.com/booksearch?mtype=B&keyword=using+and+porting+the+gnu+compiler+collection&hs.x=0&hs.y=0These books probably aren't current hence the link to the online document above.AXI is all over Google and you can also search Google for links to Wishbone (search for 'wishbone bus design') and you will get a lot of links back to Opencores.org. Xilinx has a lot of information on AMBA/AXI.The information is out there, you just need to hit up Google, the repository of all human knowledge.

author: hamster_nz
author_rank: Super Contributor
timestamp: January 19, 2021, 09:48:26 pm
content: Quote from: rstofer on January 19, 2021, 04:52:31 pmWhen it comes to protocols and buses, there is a big gulf between having the specs (which are usually freely available), and being able to implement them in a simple, logical and compliant way.Sometimes the only way to cross the gulf is to build up experience by doing it wrong many times over. It's just a path you have to walk, and being shown the right way by reading a book is like reading a travel diary - nothing like being there yourself.What tends to happen is when you hit an issue you don't have the experience or deeper understanding to debug and resolve it.(Yes, I am looking at you, SCSI, SATA, USB, PIC, HDMI, DVI-D, AXI, SERDES, Wishbone, SDRAM controllers, RISC-V ISA, DisplayPort, 8b/10b, VGA, even RS232 serial and PS/2 keyboards).

author: rstofer
author_rank: Super Contributor
timestamp: January 19, 2021, 10:06:27 pm
content: ^^^ Absolutely true!Xilinx uses AXI for most of their free IPs so it is possible to build up a system using that bus structure just from their components. That MIGHT give a person a leg up on building other peripherals.But, it's true, until you have done it (and I haven't), you just have no idea how tough it might be.

author: ali_asadzadeh
author_rank: Super Contributor
timestamp: January 20, 2021, 09:31:35 am
content: Thanks for the hints, But always having additional books, Open source and good projects, reviews, tutorials are very useful, and since for some of the topics there are ton of info out there again searching and finding a good one is another new problem, so Here comes the help of others that have done the job and help to reduce the learning curve.

author: DiTBho
author_rank: Super Contributor
timestamp: January 20, 2021, 11:52:38 am
content: Quote from: hamster_nz on January 19, 2021, 09:48:26 pmThis happened to a project I have been working since 2011. At some point there was a terrible bug that I addressed to Linux while the bug was in the firmware and involved the correct initialization of a PCI-device.It was a terrible experience, even because no-one wanted to help without being paid something like 50 USD/hour.I had to learn the PCI entirely, how it works, how it's implemented and managed by Linux, and I spent 2 years just to to catch the problem, plus other 4 months to fix it.I don't trust opensource projects, when they are badly written/documented like in this case, it's a terrible experience and if they are not "mainstream" you are alone.

author: DiTBho
author_rank: Super Contributor
timestamp: January 20, 2021, 12:34:27 pm
content: Quote from: ali_asadzadeh on January 17, 2021, 07:29:01 pmFind a job at Intel, AMD, IBM, ...? It looks a great reasonable option to be considered since some companies can train their employees, testers and developers.

author: rstofer
author_rank: Super Contributor
timestamp: January 20, 2021, 05:35:26 pm
content: Quote from: DiTBho on January 20, 2021, 11:52:38 amThat's pretty cheap labor... In the US it would be a lot higher.Suppose your contractor actually knew something. I'm sure it would have been less costly for the company to contract the work rather than have you work on it for an extended period of time. Assuming, of course, that the contractor could actually solve the problem. That's never a given.There's nothing wrong with paying people their due. Suppose it took 6 months to resolve. That's about 1000 hours or $50,000. Comparing that to 2+ years suggests that contracting would have been cheaper and more timely.Contractors don't usually have benefits. They clearly aren't part of a retirement program (if any) and they don't usually get paid sick leave, holidays or vacation, they simply show up and work. Indeed. $50 is pretty cheap. I think I would be looking at somebody who had more experience and a higher hourly rate. Maybe a $100/hr guy could fix the problem faster. Again, that's not a given.My gardener makes more than $50/hour! He (and his helpers) are worth every dime!

author: DiTBho
author_rank: Super Contributor
timestamp: January 20, 2021, 06:20:56 pm
content: Quote from: rstofer on January 20, 2021, 05:35:26 pmThat dude is located in a borough of New York City, US. He proposed 20 hours at 50 USD/hour, 1000 USD to look at the code and tell me something. Which is ok, just ... it's an hobby project with limited budget.Anyway, I have been learning a lot of stuff since I started this project