Live data from Hacker News

Building a Modern Computer from First Principles

nand2tetris.org

11–20 of 84 posts

Re: Building a Modern Computer from First Principles

#12
post #2

The lecture slides are in Comic Sans, ugh.

I used to feel like this, until I saw Simon Peyton Jones use Comic Sans for a slide deck on Haskell and decided this was a such a petty, knee-jerk reaction to something as superficial as font-choice. At this point, I'd almost choose Comic Sans on purpose for my own presentations, just to weed out and troll the people who aren't paying attention to what matters.

http://research.microsoft.com/en-us/um/people/simonpj/papers...

edited to add: Dug up an actual comment from SPJ on this, I hadn't realized he uses Comic Sans for all his talks:

http://www.reddit.com/r/haskell/comments/1bd1ia/spj_and_comi...

Re: Building a Modern Computer from First Principles

#16
I going to come across as defensive here, but I'm actually in a Computer Engineering program (not Computer Science). This book purports to cover as much material as 8 undergrad courses, I feel like it must skimp on depth to (for example) condense all of 'compilers' into two weeks. Compilers are a very large topic, a single undergrad course isn't even sufficient to really understand a real world project like GCC. Likewise, 'computer architecture' makes up three classes in my curriculum: one all about building RISC processors, another about CISC, then a third about modern architectures. Only in the last one do you approach an understanding of a contemporary CPU architecture.

My question for people who have done the course is: does it cover even simple design theory like K-maps? Does it make you account for propagation delay? Does it explain caching schemes and TLBs? I feel like it probably has to gloss over a lot of the 'hard stuff' to remain so dense.

Likewise, it sounds like it's all done in custom languages. Half of my first year was spent struggling with industry standard, terrible software like Altera which is super powerful but terribly designed. The other half was spent actually breadboarding circuits and having them fail because of problems you never see in simulations (or which they solve for you).

I'm not saying it's not an interesting project, but it really is a nice, abstract diversion for people who work on software all day. People calling for it to be included in comp. eng. programs probably don't realize the depth of what actually gets covered in comp eng.

Edit: to sound a bit less whiny, if anyone is doing this course and they want to dig deeper into a particular area, I'd be happy to point them to the books/course materials we used.

Re: Building a Modern Computer from First Principles

#17

Yes, good approach. It would be very cool to build this from real hardware instead of an VM, now that we have Arduinos and RPI's.

If you built it from real hardware, you'd be going to the store to buy a couple thousand NAND chips, like this: http://www.digikey.com/product-detail/en/SN7400N/296-14641-5...

And a giant honking breadboard.

Re: Building a Modern Computer from First Principles

#19
It's an amazing book and doing all the projects is really fun. However keep in mind that the computer you build is really simple and in my opinion maybe a little bit too simple. In particular there is no decent IO model and reading from the keyboard is simply done by busy waiting and writing to the screen is done by writing to a special region in memory. This is ok, as the book covers many topics, but I would enjoy finding a book that covers this topic in detail. E.g. the famous patterson-hennessy book about MIPS covers the implementation of a RISC processor in great detail but does not go into detail about IO stuff which is in my opinion the really hard part.

Re: Building a Modern Computer from First Principles

#20

Yes, good approach. It would be very cool to build this from real hardware instead of an VM, now that we have Arduinos and RPI's.

If you built it from real hardware, you'd be going to the store to buy a couple thousand NAND chips, like this: http://www.digikey.com/product-detail/en/SN7400N/296-14641-5... And a giant honking breadboard.

It might be beyond the scope of a normal hobbyist project, but writing Verilog or VHDL to drive an FPGA might bring interested people half of the way there. You mentioned Altera design software in another post; I don't know if Xilinx's is any better (I'm guessing not really), but Digilent sells FPGA boards intended for the educational market at a pretty reasonable cost. Powerful enough, I'd reckon, to allow for something of this scope to be built.
Post reply on HN