ICS 51
Minimum Knowledge and Skills |
Binary Numbers
- Mastery:
- To convert from binary numbers to decimal, octal
and hexadecimal and vice versa
- Two's complement, One's complement and Sign
Magnitude representation of negative binary numbers
- Binary Arithmetic
- Proficiency:
- To understand how numbers are represented inside a
computer
- Radix Number Systems
Computer Organization
- Mastery:
- Identify the different components of a simple
computer system
- Identify the different parts of the Central
Processing Unit (CPU)
- Explain the Fetch-Decode-Execution Cycle
- Identify the different elements that compose
the Data Path
- Explain the main differences between Primary
and Secondary Memories
- Understand the need for having memory
hierarchy
- Memory Addressing
- Proficiency:
- Understand the concepts of Languages, Levels and
Virtual Machines
- Principle of Locality and Caching
- Exposure:
- Overview of historical evolution of computers
systems
- Overview of different types of secondary
memory
- Overview of different Input/Output devices
Digital Logic
- Mastery:
- Basic Gates: AND, OR, NOT, NAND, NOR, XOR.
- Boolean Algebra
- Create Truth Tables
- Implement Boolean functions
- Draw graphical representation of a circuit
- Combinational Circuits: Multiplexers,
Decoders, Encoders.
- Use combinational circuits to solve typical
problems such as memory decoding, function generation,
input selection, etc
- Memory Organization.
- Design a circuit to perform address decoding
for a given (memory, I/O) organization
- Proficiency:
- Simplification of Boolean expressions using
Boolean algebra theorems
- Arithmetic Circuits: Half Adders, Full
Adders. Arithmetic Logic Unit (ALU)
- Design a very simple ALU
- Latches and Flip-Flops. Explain the
differences between these two memory elements
- Identify and understand the differences
between different types of Flip-Flops (Master Slave, Edge Triggered)
- Understand the concept of clocks as elements
of synchronization
- Exposure:
- Should be able to implement a simplified circuit
using the basic gates from a given high level english
description of a problem
- Timing Diagrams for sequential (i.e. non
combinational) circuits
- External Buses: Width and Clocking
- Interruptions. Understand how they are
triggered, how they are handled, why they are useful
Micro Architecture
- Mastery:
- Understand the concept of micro programmed control
- Clearly explain the difference between the
execution of programs in main memory and those in the control store
- Describe in detail the data path of the
example implementation (currently the MIC architecture)
- Register Transfer Language to describe micro
instructions in the MIC architecture
- Explain clearly the timings (phases)
associated with the execution of a micro instruction
- Implement the simplified instruction set of
the MIC architecture, IJVM, using micro instructions
- Proficiency:
- Explain the usefulness of a stack architecture
such as the MIC
- Understand the Memory Model used by the IJVM
- Convert between simple JAVA programs and IJVM
- Exposure:
- Understand the tradeoffs between speed and cost of
a given implementation
- Pipelining issues
Instruction Sets and Addressing Modes
- Proficiency:
- Design very simple instruction sets with expanding
operation codes
- Identify the different addressing modes:
Immediate, Direct, Register, Register Indirect, Indexed, Base Indexed
Stack
- Understand the differences between different
addressing modes
- Exposure:
- Understand the design criteria for instruction
formats
Virtual Memory and Cache Memory
- Mastery:
- Understand the need for virtual memory
- Describe different implementations of virtual
memory: Paging and Segmentation
- Explain the concept of Page Fault and how it
is handled by the Memory Management Unit (MMU)
- Convert Physical addresses to Virtual
addresses and identify which memory references generate Page Faults
- Explain the need for caching
- Explain the basic principle of caching
(locality principle)
- Explain in detail and compare different cache
architectures (Fully associative, Set associative, Directed mapped)
- Design cache memory systems
- Compare virtual memory with cache memory
- Proficiency:
- Explain the Working Set concept
- Describe different Page Replacement Policies
- Compare External and Internal Fragmentation
Assembly Language Programming
- Mastery:
- Understand how to write, compile, debug and
execute and assembly language programs using Visual C++ 6.0 (or
equivalent)
- Identify the different registers of the x86
processor family (currently we use the Pentium family of
microprocessors)
- Identify the major types of instructions used
by the majority of the assembly programs
- How to store/load values to/from memory
- Loops and Branches
- Proficiency:
- Develop programs that manipulate numbers of
variable length and strings
- Become familiar with a subset of the
instruction set of the Pentium family of microprocessors
|