5 ms·
Assembly's too high-level :) In my school's sophomore year, CS majors are required to implement a CPU on an FPGA; the instruction set, CPU architecture, everyt
by tsuraan 17y ago
Assembly's too high-level :) In my school's sophomore year, CS majors are required to implement a CPU on an FPGA; the instruction set, CPU architecture, everything are up to the student groups to design and implement. At the end of the class, all the student processors are compared w.r.t. size and speed of execution of various simple programs. Our group had a guy that wrote an assembler for our ISA, but most of the groups just wrote their programs in raw machine code, using a hex editor.
Really, nothing teaches low-level programming better than starting with gates and building your way up to programs. The sequel to that class teaches how to deal with pipelining, CPU caches, and multiple-execution chips like the TI DSPs, so after you design your processor, you get to see how real CPUs work. It's really fun, actually.
- aaronblohowiak 17y agoWhere did you go?
- randallsquared 17y agoWhen my ex-wife was going to Florida Institute of Technology 10 years ago, she was required to do this. It might not be that way now. :)
- tsuraan 17y agoRose-Hulman Institute of Technology. It's a small place in Indiana, but I think it's a pretty good school :)
- mncaudill 17y agoThat actually sounds fantastic. Do you remember what book(s) you used in the class?
- ellism 17y ago(I also went to RHIT, fantastic school) The intro computer architecture course used _Computer Organization and Design_ by Patterson and Hennessy. The practical component described here was driven by handouts, I'm not sure the text follows building something like this.