|
Mar 12, 2025
|
|
|
|
CSCI 2016 - Introduction to the Organization of Computer Systems Credits: 4 Hours/Week: Lecture 4Lab None Course 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. MnTC Goals None
Prerequisite(s): CSCI 1082 with a grade of C or higher or instructor consent. Corequisite(s): None Recommendation: CSCI 1020 .
Major Content
- Classification of instructions, addressing modes, assembly languages
- Computer peripherals: Hard disks, CD-ROM, DVD, audio CD, video displays, printers, scanners
- Data representation for text, graphic, audio, video etc. data
- Description and comparison of different processor architectures including CISC & RISC
- Different metrics to measure computer performance
- Input-output, interrupts, DMA, buses
- Introduction to Boolean algebra and basic logic design
- Introduction to basic combinational and sequential circuits
- Micro Programming, Micro-instructions formats, symbolic and binary micro-program
- Numeric representation and arithmetic in different bases including conversions, counting, integer and floating point formats
- Overview of current computer organization and architectures
- Processor strategies including pipelining, cache, parallelism, multicore, etc
- Programming in assembler, data transfers
- Structure and operation of internal memory
- Structure and operation of the CPU
- Von Neumann Architecture: basic functional blocks and their interaction, the instruction set and the instruction cycle
Learning Outcomes At the end of this course students will be able to:
- evaluate a given organization and architecture.
- use principles of basic logic design to create simple combinatorial and sequential circuits.
- use computer arithmetic to convert numbers between bases, perform arithmetic in different bases and use floating point and integer formats for numeric representation.
- use an assembler to create, execute, test and document an assembly language program of moderate complexity.
- describe basic optimization strategies (e.g. pipelining, parallelism, cache, etc) and indicate future trends.
- describe the basic organization, operation and architecture of computer systems.
- use basic understanding of caching and virtual memory to quantify system optimizations.
Courses and Registration
Add to Portfolio (opens a new window)
|
|