Architecture and Organization (AR)
(adapted from the
Final Report of the Computing Curricula 2001 project,
a joint undertaking of
the IEEE-CS and the ACM)
The computer lies at the heart of
computing. Without it most of the computing disciplines today would be a branch
of theoretical mathematics. To be a professional in any field of computing
today, one should not regard the computer as just a black box that executes
programs by magic. All students of computing should acquire some understanding
and appreciation of a computer system’s functional components, their
characteristics, their performance, and their interactions. There are practical
implications as well. Students need to understand computer architecture in
order to structure a program so that it runs more efficiently on a real
machine. In selecting a system to use, they should to able to understand the
tradeoff among various components, such as CPU clock speed vs. memory size.
Topics:
- Bits,
bytes, and words
- Numeric
data representation and number bases
- Fixed- and
floating-point systems
- Signed and
twos-complement representations
- Representation
of nonnumeric data (for example, character codes)
- Representation
of arrays
- Basic
organization of the von Neumann machine
- Control
unit; instruction fetch, decode, and execution
- Instruction
sets and types (data manipulation, control, I/O)
- Assembly/machine
language programming
- Instruction
formats
- Addressing
modes
- Subroutine
call and return mechanisms
- I/O and
interrupts
- Storage
systems and their technology
- Memory
hierarchy
- Main
memory organization and operations
- Latency,
cycle time, bandwidth, and interleaving
- Cache
memories (address mapping, block size, replacement and store policy)
- Virtual
memory (page table, TLB)
Learning objectives:
- Explain
the reasons for using different formats to represent numerical data.
- Explain
how negative integers are stored in sign-magnitude and twos-complement
representation.
- Convert
numerical data from one format to another.
- Discuss
how fixed-length number representations affect accuracy and precision.
- Describe
the internal representation of nonnumeric data.
- Describe
the internal representation of characters, strings, records, and arrays.
- Explain
the organization of the classical von Neumann machine and its major
functional units.
- Explain
how an instruction is executed in a classical von Neumann machine.
- Summarize
how instructions are represented at both the machine level and in the
context of a symbolic assembler.
- Explain
different instruction formats, such as addresses per instruction and
variable length vs. fixed length formats.
- Write
simple assembly language program segments.
- Demonstrate
how fundamental high-level programming constructs are implemented at the
machine-language level.
- Explain
how subroutine calls are handled at the assembly level.
- Explain
the basic concepts of interrupts and I/O operations.
- Identify
the main types of memory technology.
- Explain
the effect of memory latency on running time.
- Explain
the use of memory hierarchy to reduce the effective memory latency.
- Describe the
principles of memory management.
- Describe
the role of cache and virtual memory.