Architecture and Organization (AR)
AR1. Digital logic and digital systems [core]
AR2. Machine level representation of data [core]
AR3. Assembly level machine organization [core]
AR4. Memory system organization and architecture [core]
AR5. Interfacing and communication [core]
AR6. Functional organization [core]
AR7. Multiprocessing and alternative architectures [core]
AR8. Performance enhancements [elective]
AR9. Architecture for networks and distributed systems [elective]
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.
The learning outcomes specified for these topics correspond primarily to the core and are intended to support programs that elect to require only the minimum 36 hours of computer architecture of their students. For programs that want to teach more than the minimum, the same topics (AR1-AR7) can be treated at a more advanced level by implementing a two-course sequence. For programs that want to cover the elective topics, those topics can be introduced within a two-course sequence and/or be treated in a more comprehesive way in a third course.
AR1. Digital logic and digital systems [core]
Minimum core coverage time: 6 hours
Topics:
- Overview and history of computer architecture
- Fundamental building blocks (logic gates, flip-flops, counters, registers, PLA)
- Logic expressions, minimization, sum of product forms
- Register transfer notation
- Physical considerations (gate delays, fan-in, fan-out)
Learning objectives:
- Describe the progression of computer architecture from vacuum tubes to VLSI.
- Demonstrate an understanding of the basic building blocks and their role in the historical development of computer architecture.
- Use mathematical expressions to describe the functions of simple combinational and sequential circuits.
- Design a simple circuit using the fundamental building blocks.
AR2. Machine level representation of data [core]
Minimum core coverage time: 3 hours
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 (character codes, graphical data)
- Representation of records and arrays
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.
AR3. Assembly level machine organization [core]
Minimum core coverage time: 9 hours
Topics:
- 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
Learning objectives:
- 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.
AR4. Memory system organization and architecture [core]
Minimum core coverage time: 5 hours
Topics:
- Storage systems and their technology
- Coding, data compression, and data integrity
- 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)
- Fault handling and reliability
Learning objectives:
- 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.
- Explain the workings of a system with virtual memory management.
AR5. Interfacing and communication [core]
Minimum core coverage time: 3 hours
Topics:
- I/O fundamentals: handshaking, buffering, programmed I/O, interrupt-driven I/O
- Interrupt structures: vectored and prioritized, interrupt acknowledgment
- External storage, physical organization, and drives
- Buses: bus protocols, arbitration, direct-memory access (DMA)
- Introduction to networks
- Multimedia support
- RAID architectures
Learning objectives:
- Explain how interrupts are used to implement I/O control and data transfers.
- Identify various types of buses in a computer system.
- Describe data access from a magnetic disk drive.
- Compare the common network configurations.
- Identify interfaces needed for multimedia support.
- Describe the advantages and limitations of RAID architectures.
AR6. Functional organization [core]
Minimum core coverage time: 7 hours
Topics:
- Implementation of simple datapaths
- Control unit: hardwired realization vs. microprogrammed realization
- Instruction pipelining
- Introduction to instruction-level parallelism (ILP)
Learning objectives:
- Compare alternative implementation of datapaths.
- Discuss the concept of control points and the generation of control signals using hardwired or microprogrammed implementations.
- Explain basic instruction level parallelism using pipelining and the major hazards that may occur.
AR7. Multiprocessing and alternative architectures [core]
Minimum core coverage time: 3 hours
Topics:
- Introduction to SIMD, MIMD, VLIW, EPIC
- Systolic architecture
- Interconnection networks (hypercube, shuffle-exchange, mesh, crossbar)
- Shared memory systems
- Cache coherence
- Memory models and memory consistency
Learning objectives:
- Discuss the concept of parallel processing beyond the classical von Neumann model.
- Describe alternative architectures such as SIMD, MIMD, and VLIW.
- Explain the concept of interconnection networks and characterize different approaches.
- Discuss the special concerns that multiprocessing systems present with respect to memory management and describe how these are addressed.
AR8. Performance enhancements [elective]
Topics:
- Superscalar architecture
- Branch prediction
- Prefetching
- Speculative execution
- Multithreading
- Scalability
Learning objectives:
- Describe superscalar architectures and their advantages.
- Explain the concept of branch prediction and its utility.
- Characterize the costs and benefits of prefetching.
- Explain speculative execution and identify the conditions that justify it.
- Discuss the performance advantages that multithreading can offer in an architecture along with the factors that make it difficult to derive maximum benefits from this approach.
- Describe the relevance of scalability to performance.
AR9. Architecture for networks and distributed systems [elective]
Topics:
- Introduction to LANs and WANs
- Layered protocol design, ISO/OSI, IEEE 802
- Impact of architectural issues on distributed algorithms
- Network computing
- Distributed multimedia
Learning objectives:
- Explain the basic components of network systems and distinguish between LANs and WANs.
- Discuss the architectural issues involved in the design of a layered network protocol.
- Explain how architectures differ in network and distributed systems.
- Discuss architectural issues related to network computing and distributed multimedia.