THE CACHE MEMORY BOOK, Jim Handy, Academic Press, ISBN 0-12-322985-5, $44.95
As you learn in any introduction to computer science, a computer consists of a processor and memory. The past decade has seen an order-of-magnitude increase in the speed of processors, as measured by clock speed, and a much smaller increase--on the order of two or three times--in the access speed of memory. This imbalance has a negative effect on performance because it means the processor is often idle while it waits for memory accesses to complete. Cache memories lie between the processor and memory and keep the former busy by providing very fast access to a subset of the latter.
Because of its critical role in high-performance systems, cache-memory technology is evolving rapidly. In The Cache Memory Book,
Jim Handy, who is DataQuest's senior industry analyst for memories in its semiconductor group, tries to provide a reference for both the theory and practice of current cache-memory design. That he is doomed in the latter pursuit he recognizes early ("...this book cannot hope to keep up with all new advances.") and often ("Even as I write this section, it is becoming somewhat outdated."). The fact that its examples are a bit dated does not detract, however, from the major achievement of this book: It presents a lucid, lively look at the theory of cache memories and of the many interrelated decisions that confront cache-memory designers.
My major complaint about the book is that it is too short. Handy has written a book for systems designers, so he doesn't concentrate on some interesting issues that are out of their hands. For example, he devotes little space to cache types (i.e., whether a cache operates on physical or virtual addresses) because this issue is the province of the processor designer. Stil
l, I wanted to see more about cache types, particularly on primary caches that mix virtual tags with physical set bits. In addition, the examples he details in the last chapter are all uniprocessor systems. With multiprocessor support showing up in more and more desktop operating systems, an example of a multiprocessing system would have increased the value of the book.
While written with the professional designer in mind, this book is easily accessible to interested laypeople. Its explanations about how caches work and the different policies that must be addressed by a cache designer (e.g., associativity, write-back versus write-through, and line size) are among the best I've ever read. If you need to know how cache-memory systems work, read The Cache Memory Book.
BYTE technical editor Bob Ryan likes to read books about microprocessors, memory, buses, and, yes, cache design. He can be reached on the Internet or BIX at
b.ryan@bix.com
.
Flexible C++
Matthew Wilson
My approach to software engineering is far more pragmatic than it
is
theoretical--and no language better exemplifies this than C++.
BYTE Digest editors every month analyze and evaluate the best articles from Information Week, EE Times, Dr. Dobb's Journal, Network Computing, Sys Admin,
and dozens of other CMP publications—bringing
you critical news and information about wireless communication,
computer security, software development, embedded systems,
and more!