kcw | journal | 2001 << Previous Page | Next Page >>

Our big project was to build a 4 bit microprocessor using the logic chips, placed on our bread boards, wired together by hand (did a lot of wire stripping in that class). My partner was a Senior and he did very little work which I didn't mind since it wasn't that tough of a project. (Ironically I'd be in the exact same position he was in, not caring about the project and letting my Junior partner do all the work -- hence why you should *never* partner with a Senior.) To check our results the TAs had EEPROMS with code that we had to run. I remember trying to be very safe by making the clock speed as slow as possible, so it took like 10 minutes to run the code while the TA looked on in bewilderment ("Is it still working?").

At Berkeley, the 15x courses are digital circuits, 16x courses are Operating Systems and Compilers, 17x courses are Theory, 18x courses are applications, and 19x course are sort of miscellaneous. CS 170 was the Introduction to CS Theory and contrasting to CS 150 this was a textbook heavy class with no computer work involved, I believe. All the 17x classes are like that, so the strategy is to not take two of them at the same time because they're boring! I don't remember CS 170. I do remember that CS 172 and CS 174 were more of the same except more detail.

Math 128A -- Numerical Analysis using Computers, or something like that. There is a requirement to take one upper division math class. At this point I was pretty sick and tired of math, so instead of taking a standard math course I chose this one, which can be summed up as "using FORTRAN to solve math problems." Actually, we could use C or FORTRAN for our programs, but this is the class that showed me that FORTRAN is a whole lot better than C at doing numerical analysis, hence why it's still around.

Basically this class was "here's how to code integration" followed by us having to code it and run it against the exercises. And if it was that simple I would have done better than an A-. But the hard part of the class was that I didn't know half the math we were using ("it's ok if you don't know the material in-depth, we'll fill you in on the mathematics you need to know") which it made it really hard to check my answers. You can do this problem on the computer using this algorithm and if you can do the math you can also do it by hand (and get an exact answer to boot) and check your answer. Not knowing whether the answer the computer prints out is right or wrong is a bit frustrating.

In the Spring of 1992 I took four classes worth 15 units. CS 152 -- Computer Architecture and Engineering, taught by Dave Patterson and someone else. Professor Patterson is best known for developing RISC (Reduced Instruction Set Computers) with John Hennessy at Stanford, although he also lead the RAID team (RISC was the big thing when I went to college).

In CS 152 we read the MIPS architecture book and talked about CPU design -- superscalar processors, caching and memory, instruction sets and pipelines. All actually pretty useful for when I read about the PowerPC and Pentium architectures. Our big project was very similar to CS 150 -- design a microprocessor, but instead of building it we just do the design with this VLSI software we had. The best part was working on Sparc 10 computers, those were sweet compared to the usual Sun 3's that we had to deal with in other classes. Only the SGI machines in CS 184 were better workstations.

Unfortunately I messed up the project. We were testing and I set the clock speed way up to see what would happen (bad things happen) and I forgot to set it back down for when we presented. So our design didn't work and we were graded down, hence the B- I got in the class. Rats!

(continued)

Copyright (c) 2001 Kevin C. Wong
Page Created: August 20, 2004
Page Last Updated: August 20, 2004