CS355 Syllabus & Progress

CS355 Syllabus & Progress


Material covered are displayed in blue.

You can run the circuit examples by first saving the file in your own directory and then use logic-sim to run the circuit. To save an example from a webpage, do the following in Netscape:

     Click File -> Save As
     Complete the file name in the "Selection" box
       (Make sure you specify the right directory name and file name !)
     Click OK when the file name is right


The entire cs355 syllabus in a zip file: click here



    Search the syllabus:

  1. Logic elements and Boolean Algebra
  2. Switching Circuits... how the CPU transports values from one place to another...
  3. Arithmetic (and Logic) Circuits.... see what the ALU look like
  4. Sequential Circuits

  5. Finite State Machines
    • Constructing FSA with digital circuitry: click here ---- slides
    • Side note:
      • A computer is a FSA, with a huge number of states
      • The number of states is equal to 2N where N is the number of bits of memory in the main memory and other storage (disks, tapes, CD-roms, etc)


  6. Bi-directional Transfer
  7. Memory Organization
  8. CPU Architecture: data path



  9. How the CPU communicate with (reads/writes) the memory - the system bus and its bus protocol:

  10. How computer programs performs IO operations - IO communication:


    The remaining material discusses how to make a computer runs faster...

    Midterm covers material upto this point

  11. Cache memory:



  12. Pipeline design
    • The pipelined CPU approach: click here --- slides

    • Instruction encoding (to make things more concrete): click here --- slides
    • The Basic Pipelined CPU: click here --- slides

    • How the Basic Pipelined CPU executes an ALU instruction:

    • How the Basic Pipelined CPU executes a Memory access instruction:

    • How the Basic Pipelined CPU executes a Branching instruction: click here --- slides

    • Some problems you see in the Basic Pipelined CPU:
      1. Data Hazard: old value of registers can be used in computation.
      2. Control Hazard: branch delay of three instructions is unacceptable

    • The Read after Write Data Hazard in ALU instructions:

    • The Read after Write Data Hazard in LOAD instructions:
      • Recall how the load instruction is executed by the basic pipelined CPU: click here --- slides
      • The Read after Write Data Hazard phenomenom in LOAD instructions: click here --- slides
      • Solving the Read after Write Data Hazard in LOAD instruction: click here --- slides

    • Control Hazard:
      • Recall that the basic pipeline will fetch (and execute) three instructions before it actually branches: click here --- slides
      • Reducing the branch delay: click here --- slides

      • Executing unconditional branch instructions: click here --- slides
      • Executing conditional branch instructions: click here --- slides

      • How to program using a delay branch instruction: click here --- skipped (no existing CPU uses delayed branching any more...)




  13. SIMD Parallel Computers


  14. GPU-programming using the CUDA programming language:



  15. MIMD (general multi-processors) computers

  16. Programming Shared Memory MIMD using Posix threads:

  17. Programming Shared Memory MIMD using the OpenMP API:


  18. Message-Passing MIMD computers:



The END...