This book emerged from lecture notes of a course taught in the second year to students of Computer Science at the Federal Institute of Tech nology, Zurich. The topic of hardware design plays a relatively minor role in Compu ter Science curricula at many universities. Most courses concentrate on the various aspects of theory, software, and of information sys tems. Students therefore obtain few opportunities to deal with con crete engineering problems and physical devices. We consider this as rather unfortunate, particularly for technical universities. As a result, we observe a growing gap between interest in and understanding of design issues involving not only software but also hardware and inter faces. This is regrettable at a time when new and advanced solutions to many problems are often crucially influenced by recent hardware de velopments, at a time when the engineer needs to be competent in both software and hardware issues in order to fmd an optimally inte grated, competitive solution. It turns out that the hesitation of many students in Computer Science to take an active interest in hardware - his or her daily tool! - does not only stem from a preference of "clean", abstract concepts with a corre sponding distaste for dealing with concrete components, construction techniques, and the "dirty" realities inflicted by nature, but also stems from the lack of a bridge between the two realms.