logo资料库

Computers as Components(3rd) 无水印pdf.pdf

第1页 / 共508页
第2页 / 共508页
第3页 / 共508页
第4页 / 共508页
第5页 / 共508页
第6页 / 共508页
第7页 / 共508页
第8页 / 共508页
资料共508页,剩余部分请下载后查看
Cover
Copyright
Foreword to the First Edition
Preface to the First Edition
Preface to the second Edition
Preface to the Third Edition
1 Embedded Computing
2 Instruction Sets
3 CPUs
4 Computing Platforms
5 Program Design and Analysis
6 Processes and Operating Systems
7 System Design Techniques
8 Networks and Multiprocessors
Glossary
References
Index
Computer as Components s Principles of Embedded Computing System Design
Computer as Components s Principles of Embedded Computing System Design Third Edition Marilyn Wolf AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Morgan Kaufman is an imprint of Elsevier
Acquiring Editor: Todd Green Development Editor: Nate McFadden Project Manager: Andre Cuello Designer: Mark Rodgers Morgan Kaufmann is an imprint of Elsevier 225 Wyman Street, Waltham, MA 02451, USA © 2012 Elsevier, Inc. All rights reserved. Designations used by companies to distinguish their products are often claimed as trademarks or registered trademarks. In all instances in which Morgan Kaufmann Publishers is aware of a claim, the product names appear in initial capital or all capital letters. Readers, however, should contact the appropriate companies for more complete information regarding trademarks and registration. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or any information storage and retrieval system, without permission in writing from the publisher. Details on how to seek permission, further information about the Publisher’s permissions policies and our arrangements with organizations such as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/permissions. This book and the individual contributions contained in it are protected under copyright by the Publisher (other than as may be noted herein). Notices Knowledge and best practice in this field are constantly changing. As new research and experience broaden our understanding, changes in research methods or professional practices, may become necessary. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information or methods described herein. In using such information or methods they should be mindful of their own safety and the safety of others, including parties for whom they have a professional responsibility. To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein. Library of Congress Cataloging-in-Publication Data Application submitted. British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library. ISBN: 978-0-12-388436-7 For information on all MK publications visit our website at www.mkp.com Printed in the United States of America 12 13 14 10 9 8 7 6 5 4 3 2 1 Typeset by diacriTech, India
To Dad, for everything he taught me
Foreword to the First Edition Digital system design has entered a new era. At a time when the design of micro- processors has shifted into a classical optimization exercise, the design of embedded computing systems in which microprocessors are merely components has become a wide-open frontier. Wireless systems, wearable systems, networked systems, smart appliances, industrial process systems, advanced automotive systems, and biologically interfaced systems provide a few examples from across this new frontier. Driven by advances in sensors, transducers, microelectronics, processor perfor- mance, operating systems, communications technology, user interfaces, and pack- aging technology on the one hand, and by a deeper understanding of human needs and market possibilities on the other, a vast new range of systems and applications is opening up. It is now up to the architects and designers of embedded systems to make these possibilities a reality. However, embedded system design is practiced as a craft at the present time. Although knowledge about the component hardware and software subsystems is clear, there are no system design methodologies in common use for orchestrating the overall design process, and embedded system design is still run in an ad hoc manner in most projects. Some of the challenges in embedded system design come from changes in underly- ing technology and the subtleties of how it can all be correctly mingled and integrated. Other challenges come from new and often unfamiliar types of system requirements. Then too, improvements in infrastructure and technology for communication and collaboration have opened up unprecedented possibilities for fast design response to market needs. However, effective design methodologies and associated design tools haven’t been available for rapid follow-up of these opportunities. At the beginning of the VLSI era, transistors and wires were the fundamental com- ponents, and the rapid design of computers on a chip was the dream. Today the CPU and various specialized processors and subsystems are merely basic components, and the rapid, effective design of very complex embedded systems is the dream. Not only are system specifications now much more complex, but they must also meet real-time deadlines, consume little power, effectively support complex real-time user interfaces, be very cost-competitive, and be designed to be upgradable. Wayne Wolf has created the first textbook to systematically deal with this array of new system design requirements and challenges. He presents formalisms and a methodology for embedded system design that can be employed by the new type of “tall-thin” system architect who really understands the foundations of system design across a very wide range of its component technologies. Moving from the basics of each technology dimension, Wolf presents formalisms for specifying and modeling system structures and behaviors and then clarifies these ideas through a series of design examples. He explores the complexities involved and how to systematically deal with them. You will emerge with a sense of clarity about xv
xvi Foreword to the First Edition the nature of the design challenges ahead and with knowledge of key methods and tools for tackling those challenges. As the first textbook on embedded system design, this book will prove invaluable as a means for acquiring knowledge in this important and newly emerging field. It will also serve as a reference in actual design practice and will be a trusted companion in the design adventures ahead. I recommend it to you highly. Lynn Conway Professor Emerita, Electrical Engineering and Computer Science, University of Michigan
Preface to the First Edition Microprocessors have long been a part of our lives. However, microprocessors have become powerful enough to take on truly sophisticated functions only in the past few years. The result of this explosion in microprocessor power, driven by Moore’s Law, is the emergence of embedded computing as a discipline. In the early days of micro- processors, when all the components were relatively small and simple, it was neces- sary and desirable to concentrate on individual instructions and logic gates. Today, when systems contain tens of millions of transistors and tens of thousands of lines of high-level language code, we must use design techniques that help us deal with complexity. This book tries to capture some of the basic principles and techniques of this new discipline of embedded computing. Some of the challenges of embedded computing are well known in the desktop computing world. For example, getting the highest performance out of pipelined, cached architectures often requires careful analysis of program traces. Similarly, the techniques developed in software engineering for specifying complex systems have become important with the growing complexity of embedded systems. Another example is the design of systems with multiple processes. The requirements on a desktop general-purpose operating system and a real-time operating system are very different; the real-time techniques developed over the past 30 years for larger real-time systems are now finding common use in microprocessor- based embedded systems. Other challenges are new to embedded computing. One good example is power consumption. While power consumption has not been a major consideration in tra- ditional computer systems, it is an essential concern for battery-operated embedded computers and is important in many situations in which power supply capacity is lim- ited by weight, cost, or noise. Another challenge is deadline-driven programming. Embedded computers often impose hard deadlines on completion times for programs; this type of constraint is rare in the desktop world. As embedded processors become faster, caches and other CPU elements also make execution times less predictable. However, by careful analysis and clever programming, we can design embedded pro- grams that have predictable execution times even in the face of unpredictable system components such as caches. Luckily, there are many tools for dealing with the challenges presented by com- plex embedded systems: high-level languages, program performance analysis tools, processes and real-time operating systems, and more. But understanding how all these tools work together is itself a complex task. This book takes a bottom-up approach to understanding embedded system design techniques. By first understanding the funda- mentals of microprocessor hardware and software, we can build powerful abstractions that help us create complex systems. xvii
分享到:
收藏