Hacker News new | ask | show | jobs
by vincent-manis 1523 days ago
I'm not at all sure that learning about computer history and learning about how computers work are the same thing. For example, looking at early microprocessors would give you the idea that instruction set architectures are completely random when in fact their designers were faced with a limited transistor budget and very short development times. Often, microprocessors were offered as a replacement for discrete logic, rather than as generally programmable computing devices.

The history of computing is replete with really dumb ideas, from addition and multiplication tables in memory (IBM 1620) to processors optimized for Ada that ran too slowly to be useful (Intel iAPX 432). There were really smart ideas, too, such as cache (IBM System/360 Model 85) and RISC (too many systems to mention). What you want is just the smart ideas, I'd say.

If you want to get an understanding of how modern computers work, and given your CS degree, I would recommend David Patterson/John Hennessy's Computer Organization and Design, any edition. A lot of universities use this book in a second-year architecture course.

In terms of relating this information to the overall hierarchy of computer systems, I would also recommend Nisan and Schocken's Elements of Computing Systems.

2 comments

Lookup tables are a good way to do fast arithmetic. Some IEEE 754 implementations still use them - usually with interpolation - for certain functions.

That aside - hardware technologies, storage systems, ISAs, engineering enhancements (like paging, caches, microcode, and others), operating systems, market segmentation (micro, mini, super, etc), languages, and compiler theory all have their own separate histories.

You don't need to know the histories to write good code, but they're all interesting in their own right.

All the book suggestions here are good, but I'd also recommend a rummage through the huge bitsavers computing archive (http://www.bitsavers.org/pdf/) for first hand notes, memos, and documents from a huge selection of manufacturers and facilities.

It's a bit of a disorganised grab bag with a fair amount of noise, but the IBM, DEC, Burroughs, CDC and various university archives have some fascinating material.

One thing I learned from 30 years doing university-level teaching is that if you throw a grab bag at people, most of them won't learn much of anything. That's why university courses (and good textbooks) tend to impose a bit of structure on what's to be learned. My advice: pick one or two books from the plethora mentioned in this thread, and work your way through them. Once you have built a mental model of the particular topic areas you want to understand, then you can start widening your search.

As for lookup tables, I won't say anything bad about them in general. That said, if you pressed the Memory Clear button on a 1620 console, it would wipe the addition and multiplication tables, meaning you couldn't even load a program until you had manually entered replacement values. This was a Dumb Idea :).

To the point of the original question, Patterson & Hennessy includes a bit on history at the end of every chapter.