About the Book
This text is designed provide an overview of the basic digital integrated circuits (ICs) that make up the Central Processing Unit (CPU) of a computer. The coverage of the material is at a sufficiently deep level that the text could be used as a supplemental text for a class in Computer Organization, but the material should be easily understandable by a hobbyist who wants a better understanding of how a computer works.I.1 Why this book?
This book is designed to address three issues. The first is that textbooks are far too expensive. I understand the large amount of effort that goes into writing, editing, producing, and distributing these books. The problem is the cost alone becomes an impediment to many people who wish to learn the material. I view providing this book for free as my contribution to those who want to learn this material. You can download this text for free from:
The second reason for this text is to provide a way to incorporate labs into classes in Computer Organization, particularly online classes. As many colleges and universities moving more classes online, there is a need to translate beneficial methodologies from face-to-face environments to formats where they are useful in an online environment. One such instructional methodology that is hard to translate is laboratory experiences. A class in Computer Organization benefits immensely from labs that allow the students to create physical circuits. Labs provide reinforcement for the material covered in class, and the labs represent a fun and exciting way for students to interact with this material. This text is meant to provide a way to incorporate labs into any class on Computer Organization, but especially online classes.
Finally this text book is written for hobbyists who want to better understand digital circuits and how they work. It is designed for the complete novice, someone who has never seen a breadboard or IC chip. In fact it is hoped that people who are afraid they could never get a circuit to work, or understand what it does, will try the exercises in this book and find out just how much talent they have when it comes to understanding and creating circuits.I.1 Intended Audience
The intended audience is central to what material is covered, the order in which it is covered, and how it is covered. Thus understanding the intended audience will help the reader understand how the book is oriented and how to use it.
This book is designed for two types of people. The first is hobbyists who want to understand how a computer works, and would like to be able to build digital circuits using standard chips they can easily buy online. The book is designed to describe and implement the major ICs used in a CPU, and to give a rough idea of how they are used.
The second audience for this text is students who are taking a class in Computer Organization, which is the study of how a CPU works, and the various issues in the design of computers. The text is intended as a lab manual for a Computer Organization class, and in particular targeted at students who are taking this class in an online environment.
Understanding the target audience for this book is important understand how it is written. First the book is written to make understanding and implementing circuits as simple as possible for novices who have little support in implementing these labs. The labs assume no institutional infrastructure or support. No lab space or extra equipment should be needed, and students should be able to complete these labs at home with only the equipment listed in chapter 1.
Second the book is written to address the interests and needs of both the hobbyist and CS students. Both groups have similar but somewhat different levels of interests, and the text attempts to address the needs of both groups.
How the text supports these two groups is explained in the next two sections.I.2 Easy to understand circuit design and implementation
One important characteristic of the target readers for this book is that they will have little or no face-2-face support when implementing the components. Thus the book is written to help maximize the chance for success in implementing the circuits in each chapter. To do this the book does the following:
1) All parts that are needed for all circuits are listed, and can be easily obtained from a number of online sources. There is no need to start a project and reach a point where some extra part is needed.
2) An attempt was made to keep the kits as low cost as possible. This text is free for download. When the text was written, a complete lab kit (without tools) could be ordered as parts for $20-$25, with $5-$10 extra if wire strippers or pliers are not available. This is a reasonable cost considering many textbooks today can sell for $100 or more.
3) Even simple steps, such as how to strip the wires, is covered.
4) An overview of each circuit is given, where the functioning of the circuit and how it is used is explained. Detailed step-by-step instructions with photographs are included with each lab so that the actual wiring of the circuit can be examined.
5) Extensive use is made of a powerful yet easy to use circuit design tool named Logisim. Logisim allows the reader to interact with the circuits and components presented in each chapter to understand how they work, and to modify these circuits to implement enhanced functionality for the component.I.3 Material covered in the text
A hobbyist will be most interested in a general understand of what each digital component is, and how it is used in a CPU. They are also interested in implementing successful projects which are fun, while gaining some understanding of the material.
Students using this text as a lab manual are more interested in understanding the details of digital circuits, in particular how to the circuits in their Computer Organization class, and often beyond. Since the students will often be online, success in the projects is also a major goal. As is having fun. Let's face it, actually implementing working, physical objects that turn light bulbs on should be, and is, fun. There is no reason not to have fun while enhancing learning.
This book is designed to engage both types of readers. Chapters 2, 3 4, and 5 of the book are designed to give the reader some basic understanding of Boolean algebra, how a CPU works, and how to build a circuit on a breadboard. The material on Boolean algebra is not rigorous, and a class in Computer Organization would need to supplement this material. The description of a CPU needs to be greatly extended for a class in Computer Organization. But the material in this text is sufficient for the reader to understand enough Boolean algebra to understand basic circuits, and how they are used in a CPU.
Finally each subsequent chapter will cover one digital component. The chapter will contain an overview of the component, and a brief description of how it can be used in a CPU. For instructors who desire that students do more with the circuits than what is presented in the chapter, exercises (both in Logisim and with the breadboards) are given at the end of each chapter.II Using this book in a class on Computer Organization
The central question for professors looking to use this book is how the book can be applied to their classes. The following is an outline of how I use this text in a Computer Organization class.
In a class on Computer Organization I generally do not get into CPU data path until the eighth week of the semester. For the first seven weeks of the semester I cover background material. The first two weeks of the semester I cover a basic review of material that I find students often do not understand well. Boolean Algebra, binary mathematics (2's complement addition, subtraction, multiplication, and division), and floating point number format.
The next five weeks of the semester are spent covering assembly code. I find this is important for two reasons. First the students should know how their higher level programs are translated into programs which the computer can execute. It allows the students to see all data in a computer as just a binary number, and to understand concepts such as variables and pointers to variables Second teaching assembly shows the translation by the assembler of the student's program into machine language, and the format of machine code. Understanding how a program is presented to the hardware is important to the understanding of how the CPU executes the program.
This leaves the last 5 weeks of a semester for actually studying the data path which defines the CPU.
In this type of semester I do not cover the digital components in this book as a single entity. Chapters 1, 2, and 3 are assigned the first week, and each subsequent chapter assigned each subsequent week. A short overview of each circuit is provided in class, but the students are largely left on their own to do the problems associated with the circuit. By the eighth week, all of the circuits have been covered and the students are ready to begin studying the data path of the CPU. The digital circuits that have been covered forming the basis for the components in the CPU. Many professors will want to supplement the digital circuits information in this text with information on Karnaugh Maps, Disjunctive and Conjunctive Normal forms, Boolean Algebra, and proofs such as the Universality of the NAND and NOR gates. I do not cover these in a single semester class in Computer Organization.
A sample 15 week schedule follows. Note that the assignments from this text are the second topic in each week. The first assignment each week represent material used in covering Computer Organization using a MIPS programming text.
About the Author
Dr. Kann has worked in the data processing industry and has taught Computer Science for over 20 years. He is most interested in helping students learn about Computer Science, and to be ready for live. He believes that if you do what you love, you will never work in your life. He has retired and now teaches as an adjunct at John Hopkins University and Gettysburg College.