CSCI 2021 - Machine Architecture and Organization Credits: 4
Catalog Description This course is an introduction to hardware/software components of a computer system. Topics covered will include data representation, computer arithmetic, basic logic design, machine-level programs, instruction set architectures, processor and memory organization, storage hierarchy, optimization techniques, and future trends. Students will write programs in a low-level language such as assembly language.
Prerequisite(s) (must have a grade of C or better): CSCI 1106 Additional fee to student: No
Learner Outcomes
- Represent numeric and text data in current standard formats and convert between numeric formats.
- Describe instruction execution cycle and how the processor and memory work.
- Describe machine instruction formats and discuss features and differences of instruction set formats and architectures.
- Write assembly language programs that incorporate standard programming structures, subroutines, I/O, and macros.
- Describe the memory hierarchy, including different levels and optimization strategies, such as cache and virtual memory.
- Discuss different I/O and storage devices and mechanisms including bus protocols, interrupts, and interfaces.
- Discuss concurrency techniques to bypass performance bottleneck including pipelining, superscalar, multi-core, and multi-threading.
Major Areas of Course Content
- Evolution of computer architecture and influence on development of systems; future trends
- Boolean algebra and simplification, simple combinational and sequential logic design, and implementation
- Binary representation of different types of data; numeric data representation including signed and unsigned integers and floating point formats
- Basic operation and organization of the Von Neumann machine including cpu, memory, buses, and fetch/execute cycle; Von Neumann bottleneck; memory types and organization; interleaving
- Machine language concepts and characteristics including instruction formats, addressing modes, RISC versus CISC, and relationship to logic circuits
- Assembly language programs including standard programming structures, subroutines, I/O and macros; conversion process from higher-level language to assembly language to machine language
- Storage system concepts, types and operations; characteristics of media formats and tradeoffs; access time, throughput, bandwidth
- Storage hierarchy pyramid and operation; principle of locality
- Memory cache concepts and operations; different types of cache including direct, associative and set associative; write policies and cache coherency in SMP systems
- Virtual memory techniques and concepts including segmentation and paging
- I/O: fundamental concepts including handshaking, buffering, programmed I/O, and interrupts
- Buses: bus protocols, arbitration, and direct-memory access (DMA)
- Improving performance through superscalar, pipelining, multi-threading, vector processors, GPUs and other concurrent techniques
- Pipelining operation and hazards; optimization techniques such as branch prediction and speculative and out-of-order execution
- Flynn’s revised taxonomy including SISD, SIMD, MISD, and MIMD; categorize current systems in this taxonomy
- Quantum computing, neural networks, DNA data storage, and other emerging technologies
Credit for Prior Learning Options No credit for prior learning option is available for this course.
Add to Portfolio (opens a new window)
|