CSC-249 Computer Architecture And Organization
This course is designed for Computer Science majors. Topics include: classical von Neumann machine, major functional units, primary memory, representation of numerical (integer and floating point) and nonnumerical data, CPU architecture, instruction encoding, fetch-decode-execute cycle, instructional formats, addressing modes, symbolic assembler, assembly language programming, handling of subprogram calls at assembly level, mapping between high level language patterns and assembly/machine language, interrupts and I/O operations, virtual memory management, and date access from magnetic disk.
For more detailed course information view the
Course Outline
Department
Computer Science
Course Description
This course is designed for Computer Science majors. Topics include: classical von Neumann machine, major functional units, primary memory, representation of numerical (integer and floating point) and nonnumerical data, CPU architecture, instruction encoding, fetch-decode-execute cycle, instructional formats, addressing modes, symbolic assembler, assembly language programming, handling of subprogram calls at assembly level, mapping between high level language patterns and assembly/machine language, interrupts and I/O operations, virtual memory management, and date access from magnetic disk.
Credit Hours
4Semester(s) Course Will Be Offered
Spring
Course Learning Outcomes
- Recall the internal organization of computers, CPU, memory unit and Input/Outputs and the relations between its main components.
- Analyze cost performance and design trade-offs in designing and constructing a computer processor including memory.
- Perform elementary quantitative performance evaluation of computer systems.
- Solve problems by assembly language programming.
Topic Outline
Structured Computer Organization
- Languages, Levels, Virtual Machines, Contemporary Multilevel Machines, and Evolution of Multilevel Machines
- Classical Von Neumann Machine
- Milestones in Computer Architecture
- Processors
- CPU Organization
- Instruction Execution
- RISC versus CISC
- Design Principles for Modern Computers
- Instruction-Level Parallelism
- Processor-Level Parallelism
- Primary Memory
- Secondary Memory
- Input/output
- Gates and Boolean Algebra
- Gates
- Boolean Algebra
- Basic Digital Login Circuits
- Memory
- CPU Chips and Buses
- Example CPU Chips
- Example Buses
- Interfacing
- An Example Microarchitecture
- The Data Path
- Microinstructions
- Microinstruction Control: The Mic-
- An Example ISA: IJVM
- An Example Implementation
- Design of the Microarchitecture Level
- Improve Performance
- Examples of the Microarchitecture Level
- Comparison of the I, OMAP, and ATMEGA
- Overview of the ISA Level
- Properties of the ISA Level
- Memory Models
- Registers
- Instructions
- Overview of the Core i ISA Level
- Overview of the OMAP ARM ISA Level
- Overview of the ATmega AVR ISA Level
- Data Types
- Representation of the numerical and nonnumerical data
- Instruction Formats
- Addressing
- Instruction Types
- Flow of Control
- The IA- Architecture and the Itanium
- Virtual Memory
- Paging
- Virtual I/O Instructions
- Virtual Instructions for Parallel Processing
- Example Operating Systems
- Assembly Language
- What is an Assembly Language?
- Why Use Assembly Language?
- Format of an Assembly Language Statement
- Pseudo Instructions
- Macros
- The Assembly Process
- Fetch-Decode-Execute Cycle
- Linking and Loading
- A Small Assembly Language Program
- The Processor
- Memory and Addressing
- The Instruction Set
- The Assembler
- The Tracer
- Writing Programs in Assembly
- Subprogram Calls
- On-Chip Parallelism
- Instruction-Level Parallelism
- On-Chip Multithreading
- Single-Chip Multithreading
- Coprocessors
- Shared-Memory Multiprocessors
- Message-Passing Multicomputers
- Grid Computing