views:

42

answers:

1

A required course in my program is "Engineering Fundamentals of Computer Systems" - a course for software engineers that introduces the basic concepts of computer engineering, such as data representations, floating point arithmetic, boolean algebra, logic gates and logic circuits, machine language, assembly language, pipelining, caching, virtual memory, data compression, mass storage, and a little on embedded systems. The book used during this course is The Essentials of Computer Organization and Architecture. It's an OK book, but my biggest problem is that there is too much space dedicated to the fictional assembly language that has no real-world applications. Some of the topics are also glossed over a bit too much, in my opinion.

What other book or books provide a good introduction to these topics, preferably geared toward a software engineer? My only requirement is that the book or books use real world technologies (even if they are out-of-date technologies from 5, 10, or even 20 years ago) and puts information into a real-world context.

A: 

I believe Patterson and Hennessey's Computer Architecture book is considered a classic in that area. It's largely MIPS-focused, and is well-suited to software people.

Gian
That seems like it covers everything from machine language through embedded systems, minus data compression. So if I were to purchase that, I would still need something that covers data representation, floating point arithmetic, boolean algebra, logic gates/circuits, and data compression. I would suspect that I could get a second book to cover everything else except data compression, since I believe that those topics are interrelated.
Thomas Owens
http://www.amazon.com/Computer-Organization-Design-Fourth-Architecture/dp/0123744938/ref=pd_sim_b_1 - That turned by on Amazon by the same authors and addresses some of the other points. Data compression is still lacking, it appears, though.
Thomas Owens