About The CourseYou should look at the catalog description for information about academic credit and prerequisites.
Our objective in this course is to familiarize you with the way a computer interacts with its environment, so that you can design systems using an appropriate mix of hardware and software. We can only reach this objective by teaching you general principles; the intricate details of the latest processor will be rendered obsolete by technical innovation before you graduate!
Although the course stresses general principles, those principles must be practiced with a specific processor. We have chosen the Motorola 68000 for this role. The 68000 and later members of its family are commonly used in a wide range of embedded systems. It illustrates all of the basic ideas, and the architecture is relatively free of odd quirks.
The second edition of The Motorola MC68000 Microprocessor Family: Assembly Language, Interface Design, and System Design, by Thomas L. Harman and David T. Hein. It was published in 1996 by Prentice-Hall, and its ISBN is 0-13-158742-0.
The fifth edution of The 68000 Microprocessor, Hardware and Software Principles and Applications, by James L. Antonakos
Both books provide an encyclopedic treatment of the 68000 and discuss how it fits into the family of related processors. They explain all of the central processor instructions, and the assembly language in which algorithms can be constructed using those instructions. Important I/O interfaces are described in detail, giving sample programs to manipulate them. General principles of programming methodology are also mentioned and illustrated.
Unfortunately, an encyclopedic treatment of a single computer usually does not provide the best explanation of basic principles because the presentation order and attention to detail obscures important points. Nevertheless, the attention to detail is vital if one actually wants to test one's understanding by building working systems. We believe that this text represents the best compromise available, and that it meets the needs of the course.
Because the text is focused on the MC68000, it does not cover the higher-level aspects of controlling external devices and concurrent processes. For this material, we turn to the second edition of Operating Systems, by Andrew Tanenbaum and Albert S. Woodhull. It was published in 1997 by Prentice-Hall, and its ISBN is 0-13-638677-6. A reference to the relevant material from this book is found on the Supporting Materials page.
Each of the classroom sessions has an associated set of required reading from the text, manuals, or other documents. We have put PDF or HTML files of the material not found in the text but, that constitute required reading on the Supporting Materials page. Thus you will not need to copy those sections or contend with your classmates for access to the physical material.
Do the required reading before you come to class.
Be prepared to ask questions and discuss the material with your classmates
and the professor during the class and laboratory periods.
You are responsible for all of the material covered by the
required reading, whether or not it is discussed in class.
Assignments are required each week, and involve both written work to be handed in and practical work to be demonstrated in the laboratory. Written work is due at the beginning of your second assigned laboratory period each week; demonstrations of practical work must be given no later than your first assigned laboratory period the following week. Late written work and demonstrations will not be accepted under any circumstances. By prior arrangement, with sufficient justification, you may be excused from an assignment. You may also be excused after the fact due to a serious personal emergency, but such an excuse will require copious documentation.
If you don't have an account on the ECE server, you must create one before your first laboratory session. Instructions for account creation are available at http://eces.colorado.edu. You must use a public terminal (i.e. not a machine in an ECE Laboratory) to create your account.
Your account on the ECE server will be your home directory for any work you do in this course. That is, once you have established an account you will be able to log onto the ECEN 2120 machines in the lab and you will be able to access files stored on the server via the Z: drive. When you are in the laboratory, you should always work from (a descendant of) your home directory on the Z: drive.
Written MaterialEach assignment requires you to answer a set of questions, prepare a design document, or prepare a test plan. These documents should help you to organize your attack on the problem, forcing you to think about the basic principles on which your solution must be based. They will prepare you for class discussion of any sticky points, and allow you to use the lab period and the presence of your TA to best advantage.
It is important to note that there is no one ``right'' answer to many of the assignments. A solution requires you to weigh a number of viable alternatives, and make a consistent set of choices. This means that you must think about your approach, identify decision points, and develop appropriate strategies. Answering the questions associated with early assignments allows you to practice these skills within a given framework. As the semester progresses, and you gain experience, the burden of creating this framework is shifted to you.
Each demonstration is worth some number of points, and will be graded on the basis of clarity (50%) and demonstrated understanding (50%).
You will not be able to demonstrate everything you have done in five minutes, so you must be selective. For example, if being able to do A depends upon being able to do B, then demonstrating that you can do A also demonstrates that B has been done. The ability to effectively present your work is vital to success in engineering, or in any other creative career. You will almost invariably be making such presentations under a time constraint, and therefore they will have to be carefully planned.