Main / CoursesESBackground

SFSU - Engr 844 - Background Topics

This is meant to be a rough list of topics, terms, and concepts that you should have been exposed to in previous courses and studies. If you have not heard of many of what is listed here, please consult with me early on in the course. You may want to attempt this course at a later date. If you have seen these before but do not remember them well, this may be a good excuse to review the topics.

Basic Concepts

  • Number systems (especially binary)
  • Number representation
  • 1's and 2's complement
  • Binary arithmetic
  • floating and fixed point
  • Combinations, permutations, and counting
  • Basic probability and statistics

Digital Design

  • Boolean logic and algebra
  • Basic logic minimization and Karnaugh-maps
  • Logic gate
  • Multiplexer, Demultiplexer
  • Shifter
  • Comparator
  • Arithmetic Logic Unit (ALU)
  • Flip flop
  • Register and register file
  • Combinational circuit
  • Sequential circuit
  • Finite state machine
  • Propagation delay
  • Setup time and hold time
  • Critical path delay and clock rate
  • Gate sizing

CPU

  • Instruction set architecture
  • RISC and CISC
  • Instruction and data
  • Addressing modes
  • Registers
  • Bus width
  • Microinstructions
  • Execution stages and pipelining
  • Data hazard and forwarding
  • Out-of-order (OoO) execution
  • Branch prediction
  • Speculative execution
  • Superscalar
  • VLIW (very long instruction word)
  • SIMD (single instruction multiple data)
  • Interrupts and exceptions
  • Power consumption

Computer Organization

  • Von Neumann Architecture
  • Harvard Architecture
  • Random access memory structures
  • Memory hierarchy
  • Caches
    • Direct mapped
    • Set associative
    • Fully associative
  • Data path
  • Control path
  • I/O

Operating Systems

  • Interrupts and Exceptions
  • Context switching
  • Threads and processes
  • Parallelism
  • Kernel
  • Device drivers
  • Memory manager
  • File system
  • I/O

Basic Algorithms and Data Structures

  • Arrays
  • Linked lists
  • Trees
  • Graphs
  • Sorting
  • Searching
    • Depth-first search (DFS)
    • Breadth-first search (BFS)

Programming languages and compilers

  • Types of programming languages
  • Assemblers and assembly languages
  • C/C++
  • Pointers
  • Data types
  • Preprocessor
  • Compiler
  • Linker
    • Libraries
  • Debuggers