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:

Learning objectives:

  1. Describe the progression of computer architecture from vacuum tubes to VLSI.
  2. Demonstrate an understanding of the basic building blocks and their role in the historical development of computer architecture.
  3. Use mathematical expressions to describe the functions of simple combinational and sequential circuits.
  4. Design a simple circuit using the fundamental building blocks.
AR2. Machine level representation of data [core]

Minimum core coverage time: 3 hours

Topics:

Learning objectives:

  1. Explain the reasons for using different formats to represent numerical data.
  2. Explain how negative integers are stored in sign-magnitude and twos-complement representation.
  3. Convert numerical data from one format to another.
  4. Discuss how fixed-length number representations affect accuracy and precision.
  5. Describe the internal representation of nonnumeric data.
  6. Describe the internal representation of characters, strings, records, and arrays.
AR3. Assembly level machine organization [core]

Minimum core coverage time: 9 hours

Topics:

Learning objectives:

  1. Explain the organization of the classical von Neumann machine and its major functional units.
  2. Explain how an instruction is executed in a classical von Neumann machine.
  3. Summarize how instructions are represented at both the machine level and in the context of a symbolic assembler.
  4. Explain different instruction formats, such as addresses per instruction and variable length vs. fixed length formats.
  5. Write simple assembly language program segments.
  6. Demonstrate how fundamental high-level programming constructs are implemented at the machine-language level.
  7. Explain how subroutine calls are handled at the assembly level.
  8. Explain the basic concepts of interrupts and I/O operations.
AR4. Memory system organization and architecture [core]

Minimum core coverage time: 5 hours

Topics:

Learning objectives:

  1. Identify the main types of memory technology.
  2. Explain the effect of memory latency on running time.
  3. Explain the use of memory hierarchy to reduce the effective memory latency.
  4. Describe the principles of memory management.
  5. Describe the role of cache and virtual memory.
  6. Explain the workings of a system with virtual memory management.
AR5. Interfacing and communication [core]

Minimum core coverage time: 3 hours

Topics:

Learning objectives:

  1. Explain how interrupts are used to implement I/O control and data transfers.
  2. Identify various types of buses in a computer system.
  3. Describe data access from a magnetic disk drive.
  4. Compare the common network configurations.
  5. Identify interfaces needed for multimedia support.
  6. Describe the advantages and limitations of RAID architectures.
AR6. Functional organization [core]

Minimum core coverage time: 7 hours

Topics:

Learning objectives:

  1. Compare alternative implementation of datapaths.
  2. Discuss the concept of control points and the generation of control signals using hardwired or microprogrammed implementations.
  3. 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:

Learning objectives:

  1. Discuss the concept of parallel processing beyond the classical von Neumann model.
  2. Describe alternative architectures such as SIMD, MIMD, and VLIW.
  3. Explain the concept of interconnection networks and characterize different approaches.
  4. Discuss the special concerns that multiprocessing systems present with respect to memory management and describe how these are addressed.
AR8. Performance enhancements [elective]

Topics:

Learning objectives:

  1. Describe superscalar architectures and their advantages.
  2. Explain the concept of branch prediction and its utility.
  3. Characterize the costs and benefits of prefetching.
  4. Explain speculative execution and identify the conditions that justify it.
  5. 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.
  6. Describe the relevance of scalability to performance.
AR9. Architecture for networks and distributed systems [elective]

Topics:

Learning objectives:

  1. Explain the basic components of network systems and distinguish between LANs and WANs.
  2. Discuss the architectural issues involved in the design of a layered network protocol.
  3. Explain how architectures differ in network and distributed systems.
  4. Discuss architectural issues related to network computing and distributed multimedia.

CC2001 Report
December 15, 2001