Welcome to Computer Architecture
Introduction
Every computer scientist has used a
high-level programming language. These include famous languages such as
C#, Java, Visual Basic, COBOL, and thousands more. They make it easy to
create complex structures without worrying about what happens "behind
the scenes".
So, what does happen? Each of these languages are "compiled" -
converted to the actual instructions that run on the computer's
processor. These instructions allow the program to talk to the
operating system, access memory, run computations, loop, and make
decisions.
By understanding how your programs actually work, you will
understand the underlying computer architecture. Assembly programming,
which just one level above the 1's and 0's that make up the computer's
instructions, will give you a detailed view, and far more control than
you can get from a high-level programming languages.
Major Topics
- Numeric and non-numeric data representation
- Representation of Elementary Language Data Types: integer,
real, Boolean, character
- Processors, registers, and instruction encoding
- Memory location alignments and data movement instructions
- Conditional logic
- Modules: defining subroutines, calling subroutines
- Addressing modes: registers and memory locations
- interrupts, vector tables, and interaction with the
operating system
- High-level language interfacing, inline assembly,
introduction to code generation
- Von Neumann architecture and processor design philosophies.
Course Format
This class is in-person.
|