Embedded System Design: A Unified Hardware/Software Introduction

By Frank Vahid and Tony Givargis
Embedded computing systems have grown tremendously in recent years, not only in their popularity, but also in their complexity. This complexity demands a new type of designer, one who can easily cross the traditional border between hardware design and software design. After investigating the availability of courses and textbooks, we felt a new course and accompanying textbook were necessary to introduce embedded computing system design using a unified view of software and hardware. This textbook portrays hardware and software not as different domains, but rather as two implementation options along a continuum of options varying in their design metrics, like cost, performance, power, size, and flexibility. Three important trends have made such a unified view possible. First, integrated circuit (IC) capacities have increased to the point that both software processors and custom hardware processors now commonly coexist on a single IC. Second, quality compilers and program size increases have led to the common use of processor-independent C, C++, and Java compilers and integrated design environments (IDEs) in embedded system design, significantly decreasing the importance of the focus on microprocessor internals and assembly language programming that dominate most existing embedded system courses and textbooks. Third, synthesis technology has advanced to the point that synthesis tools have become commonplace in the design of digital hardware. Synthesis tools achieve nearly the same for hardware design as compilers achieve in software design: They allow the designer to describe desired functionality in a high-level programming language, and they then automatically generate an efficient custom-hardware processor implementation. The first trend makes the past separation of software and hardware design nearly impossible. Fortunately, the second and third trends enable their unified design, by turning embedded system design, at its highest level, into the problem of selecting and programming (for software), designing (for hardware), and integrating “processors.”
The first four chapters of this book strive to achieve the goal of presenting hardware and software in a unified way. These chapters stress that computations are carried out by processors. Many types of processors are available, including general-purpose processors (software), custom single-purpose processors (hardware), standard single-purpose processors
(peripherals), and so on. But nevertheless, they are all just processors, differing in their cost, power, performance, design time, flexibility, and so on, but essentially doing the same thing. Chapter 1 provides an overview of embedded systems and their design challenges. We introduce custom single-purpose processors in Chapter 2, emphasizing a top-down technique to digital design amenable to synthesis, picking up where many textbooks on digital design leave off. We introduce general-purpose processors and their use in Chapter 3, expecting this chapter to be mostly review for many readers, and ending by showing how to design a general-purpose processor using the techniques of Chapter 2. Chapter 4 describes numerous
standard single-purpose processors (peripherals) common in embedded systems. Chapters 5 and 6 introduce memories and interfacing concepts, respectively, to complete the fundamental knowledge necessary to build basic embedded systems. Chapter 7 provides a digital camera example, showing how we can trade off among hardware, software, and peripherals to achieve implementations that vary in their power, performance, and size. These seven chapters form the core of this book.
Freed from the necessity of covering the nitty-gritty details of a particular microprocessor’s internals and assembly language programming, this book includes coverage of some additional embedded systems topics. Chapter 8 describes advanced state machine computation models that are becoming popular when describing complex embedded system behavior. It also introduces the concurrent process model and real-time systems. Chapter 9 gives a basic introduction to control systems, enough to make students aware that a rich theory exists for control systems, and to enable students to determine when an embedded system is an example of a control system. Chapter 10 introduces a variety of popular IC technologies, from which a designer may choose for system implementation. Finally, Chapter 11 highlights various design technologies for building embedded systems, including discussion of hardware/software codesign, a user's introduction to synthesis (from behavioral down to logic levels), and the major trend toward design based on intellectual property (IP).

Read More/Download

The Prehistory of the Digital Computer, From Relays to the Stored Program Concept, 1935-1945

The Prehistory of the Digital Computer, From Relays to the Stored Program Concept, 1935-1945 is written by Paul E. Ceruzzi.
Preface of this Book

The modern digital computer was invented between 1935 and 1945. That was the decade when the first machines that could be called true digital computers were put together. This book tells the story of that invention by looking at specific events of the 1930's and 1940's that show the computer taking its modern form.
Before 1935 there were machines that could perform calculations or otherwise manipulate information, but they were neither automatic nor general in capabilities. They were not computers. In the 1930's the word computer meant a human being who calculated with the aid of a calculating machine. After 1945 the word meant a machine which did that. From that time on computers have continued to evolve and improve, becoming dramatically cheaper and smaller, but their de- sign has not really changed. So the story of what happened in that ten-year period will reveal quite a bit of the entire history of the computer as it is known today.
I have chosen four projects from that era that best illustrate how the computer was invented. These are by no means all that happened, but they are representative of the kinds of activities going on.
The first is the set of electromechanical computers built in Germany by Konrad Zuse, who because of the war had no knowledge of similar activities in America and England. His independent line of work makes for an interesting and self- contained case study of just how one goes about building a computer from scratch.
The second is the Harvard Mark I, built by Professor Howard Aiken and first shown to the public in 1944. This machine was one of the first truly large-scale projects, and because it was well publicized it served notice to the world that the computer age had dawned.
The third project is the series of relay computers built by George Stibitz of the Bell Telephone Laboratories between 1939 and 1946. These machines represented the best that could be done with electromechanical devices (telephone relays), and as such mark the end of that phase of invention and the beginning of another.
The final project is the ENIAC, the world's first working electronic numerical computer, using vacuum tubes for its computing elements, and operating at the speed of light. With its completion in late 1945 all of the pieces of the modern computer were present:
  • automatic control,
  • internal storage of information,
  • and very high speed.
What remained to be done after 1945 was to put those pieces together in a practical and coherent way. From the experience of building and using those machines there came a notion of what a computer ought to look like. The old definition of a computer gave way to the modern one: a machine capable of manipulating and storing many types of information at high speeds and in a general and flexible way. How this notion came about, and especially why the notion of storing the computer's program of instructions in the same internal memory as its data gained favor, are also examined.
This book has a dual purpose. The first is to recount the history of the computer, emphasizing the crucial decade between 1935 and 1945 but including earlier events and more recent trends as well. The second is to explain in simple terms the fundamentals of how those computers worked. Computing has certainly changed since 1945, but the basic concepts have not; I feel that it is easier to grasp these concepts as they were present in earlier, slower, and much simpler computers. I have included brief explanations of some of these concepts in the text of the book; a glossary at the end gives short definitions of many terms of modern computing jargon.
That the computer is having a profound effect on modern life is hardly at issue. Just how and why such a profound change in our society is happening because of computers can better be understood with a grasp of how this technology emerged.
I wish to thank the following persons and institutions for their help with the researching and writing of this book: the Society for Mathematics and Data Processing, Bonn; the Charles Babbage Institute, Minneapolis; the Linda Hall Library, Kansas City, Mo.; the Baker Library, Dartmouth College; and Professors Jerry Stannard, Walter Sedelow, and Forrest Berghom of the University of Kansas. Konrad Zuse, Helmut Schreyer, and George Stibitz supplied me with personal archival materials and criticized portions of the manuscript. I also wish to thank Bill Aspray, Gwen Bell, and Nancy Stern, who also read portions of the manuscript and gave me helpful advice. Any errors or statements of opinion are of course my own.
Read More/Download

Download free Computer hardware Ebooks

This posting provides you free ebooks downloads on computer hardware and electroncis. This free online and pdf ebooks on computer hardware programming, computer architecture, system hardware, computer hardware networking, MMIXware, machine language, assembly language, VHDL, ATMEL AVR processors, 80x86/87, repairing PCs, hardware software, embedded systems, Cryptography, VLSI Design, electronics, computer storage devices, etc will guide to master in the above mentioned subjects.
You can download free computer hardware ebooks from the following links. visit these links and get free ebooks.
  1. A history of the personal computer: the people and the technology
  2. ABCs of System Programming Volume 5 - OS/390
  3. Attacks on Cryptoprocessor Transaction Sets By Mike Bond
  4. Basic Computing Using Windows
  5. Elliptic Curve Cryptosystems on Reconfigurable Hardware
  6. Embedded Linux Distributions Quick Reference Guide
  7. Hardware Reference Material
  8. How Computers Work
  9. How Computers Work - Processor and Main Memory
  10. PC Architecture By Michael Karbo
  11. PC Guide- Ultimate PC maintenance Ebook
  12. RSA Hardware Implementation
  13. Systems
  14. Upgrading & Repairing PCs Eighth Edition

Popular Posts