|
|
[H|C]335 Computer Structures
DESCRIPTION AND GOALS
[H|C]335 explores how programs written in a high level langauge are
evaulated by a processor to control the physical world.
The course will touch upon topics
covered in a number of subsequent CS classes including compilers,
operating systems, computer architecture, and digital design. It's
obvious that we will be skimming the surface of these topics; for
example, we will examine what a compiler and its associated tools
(assembler, linker) do in some detail, but not how they are
implemented to perform their function.
At the end of this course, every student should be able to explain, in
a technically accurate manner, the path from program to I/O and to be
proficient in using one representive set of C based tools to control a
defined physical world.
TOPICS:
The following does not necessarily represent the order
of presentation -- some interleaving of topics is almost
essential (for example topics 2-3).
1. Data Representation (2.5 hours)
A. Bits, Bytes, Words
B. Binary, Hexadecimal
C. ASCII
B. Memory, Endianness
2. Computer Instruction Sets (7.5 hours)
A. Stored Program Concept
B. Operands
C. Logical Operations
D. Arithmetic Operations
E. Instruction Representation
F. Control Flow Operations
G. Addressing Modes
3. Implementing C in Assembly Language (5 hours)
A. Register/Memory Use (Application Binary Interface)
B. Static Variables
C. C integer Representation
D. C struct Representation
E. C Control Structures (if-then-else, while, for)
F. Procedure Calls (especially Stack Frames)
G. Parameter Passing
H. Dynamic Variables
I. Linking C and assembly code programs
4. Programming Tools (2.5 hours)
A. Compilers
B. Assemblers
C. Linkers
E. Loaders
F. Binary Utilities (nm, objdump)
6. Computer I/O (3.75 hours)
A. Serial I/O
B. Timers/Counters
C. Interrupts
D. DMA
7. Embedded Software Structures (Optional) (5 hours)
A. Control Loop
B. Cooperating FSMs
C. Timer and interrupt driven software
8. Computer Arithmetic (3.75 hours)
A. Number Representations (2's complement, fixed point, floating point)
B. Addition and Subtraction
C. Multiplication
D. Basic Integer Arithmetic Circuits
9. Instruction Set Interpretation (5 hours)
A. Datapath Block Diagrams
B. RTL (Register Transfer Level) Controller Descriptions
C. Fetch-decode-read-execute-write interpretation cycle
D. Instruction Set Interpreter in RTL
A significant part of the 335 experience is a hands on laboratory in
which the students use C and Assembly language to directly program an
embedded processor to control a physical device.
For example, in the current [C|H]335, we use "Goofy Giggles", a three
wheeled robot with an embedded processor, an infrared (IR) remote
control, an audio system, and various sensors.
TOOLS:
Programming assignments are in C and Assembly and are developed
in a UNIX shell environment utilizing the Make and GDB.
SUGGESTED TEXTS:
TBD
APPENDIX A:
[e] ==> Essential Background
[#] ==> Helpful Topics
Tools
----
[e] Unix shell
[e] Unix text editor
[e] C
[#] make
[#] debugger
Propositional Logic
-------------------
[e] Truth Tables
[#] Bitwise Operators
Program Structures
------------------
[e] Sequential programs
[e] Conditionals
[e] Loops
[e] Procedures
[e] call-by-value
[e] call-by-reference
[e] Recursion
Basic Data Types
----------------
[e] Numbers (integers, reals, etc.)
[e] Booleans
[e] Strings, characters
[e] Variables
[e] Arrays
Abstract Data Types
-------------------
[e] Number Systems (binary, octal, hex)
[#] Integer representations
Languages
---------
[e] interpretation
[#] finite state automata
APPENDIX B:
Courses that depend on this material (TBD) should
list course number,name and topics
Courses from which assumed knowlege is derived (TBD)
|