1st Lecture
Explain purpose of
this course:
To explain how a microprocessor system works.
Three aspects:
1. How to directly program such a system at the machine code level
2. How to expand such systems by connecting hardware to them
3. How a typical system is organized and how we can build one that works
This is called “Computer Organization”
Later on they will learn “Computer Architecture”, that is how to build the “best” system possible given a particular technology.
There are really two thematic sections in this course:
1. Learn how a computer works / How to program it / How it behaves
a. Equivalent
to learning how to drive a car à How to make it do what you want / what is the
interface
This is called the Programming Model and should be viewed as a contract between
the manufacturer and the user
Advantage: Only the interface is fixed / we can build different machines that
adhere to the interface
b. How
programming at the low level (machine level relates to programming at
high-level language)
I will assume that you know “C”.
2. Learn how to build a computer (processor) that works
a. This is meaningful only if you know what it is supposed to do
b. In this course our focus on “it works” as opposed to “works best”
In addition we will see:
3. Some performance/function enhancing techniques
a. Caches / Virtual Memory
4. Basic I/O Device Concepts
5. Time Permitting Common I/O devices
Review Digital
(binary) system fundamentals
Binary –> understands only two values
For convenience these are typically represented as 0 or 1
In actuality, they can be anything
For example, 0 volts or 5 volts -> most conventional digital systems
Light or No Light
Advantage:
Easier to detect/recognized two values as opposed to more
Explain with light example
Communicating between two boats in fog using multiple light levels (no light, some light, a bit more light, may some light, etc.)
Compare to light no light, which is easier.
Explain that in conventional microprocs we use (0, 0+ delta) as 0 and (Vdd –delta, Vdd) as 1.
By bundling bits together one can represent more things that one.
Example Morse code
Computer as the
ultimate Digital system
They are programmable, i.e., they can follow as set of rules which you can specify
Basic
Functionality of a Computer (processor)
1. Move Digital Data from one location/device to another
2. Operate on Digital Data: A + B, A – C, A + B, etc.
3. Based on outcome of an operation decide what to do next.
There are many operations, but fundamentally the concept holds
Why is this enough
and useful?
Digital information can be transformed from/to other types of info/forces, and hence can be used to interact with other devices and the physical world.
Provide Examples:
Keyboard: Mechanical (motion induced by your fingertips we hope) is converted to electric current (contact) which then is detected by the keyboard controller which then converted it to a digital signature for the key.
Speaker: Electricity->magnetic field->mechanical (motion of cone)->pushes air->sound wave. Can convert a digital value to a proportional voltage->hence can create any motion we like->hence create “any” sound we like. Called D/A.
LCD Screen-> digital info represents coordinates/value->electric field on two cross grids, moves molecules, lets light pass through or not.
Printer: Ink-jets: digital info->mechanical motion moving head left and right, rolling paper up, or piezo-electric force spiting ink out.
CDs: Selectively reflecting surface, passes under laser->light pulses->converted to electric ones-> bit stream, interpreted in bundles of 16 as sound levels->passed to D/A ->music
In summary:
Take input in one form->convert to a digital representation -> process -> convert to desired form for output
Vanilla Computer
System
Two forms of information
- instructions
- data
Both are digital
Instructions: Determine what the system will do: moves, adds, subs, etc.
Data: Represent the quantities the system is processing. They are the operands instructions manipulate
Examples, char, int, long.
5 Main Parts of a
computer
1. Input
2. Output
3. Memory
4. Arithmetic and Logic
5. Control
Draw a system
4 & 5 is the CPU
This is a uniprocessor system
Justify this
course:
Hardware VLSI designers:
Semiconductor technology is only the raw material out of which we build processors/computers. Building working processors is challenging and in high demand. This course is one more step towards developing the expertise necessary to do so.
Programmers:
You can always program a computer without knowing how it really works
But then, if you do know the specifics you may be able to take advantage of them
Certain applications require you to squeeze every bit of a specific CPU
Some programming practices work well than others depending on the specific system
Compiler development requires knowledge of assembly
FIX
Specifics: We will talk about the Motorola Dragonball procs (aka 68k) used in Palm Pilot for example
We will work with the ultragizmo board. UofT developed, may seem proprietary but the main concepts are there to be illustrated.
Emphasis on concepts and demonstration/experience on Uzmo. Goal: you know the concepts, can quickly apply them to any technology that comes up (maybe talk about PCI, ISA, EISA and the like to explain how futile is to focus on a specific product).
Administrative
Issues
Explain Lab structure
Course schedule and grade distribution
Book
How to do well
Academic Dishonesty
Late policy