CSCI 4335
COMPUTER
ARCHITECTURE
Syllabus for Fall 2007
Office          : 
Telephone   : Office 381-3550
Email          : jabraham@panam.edu
Email is the best way to get a hold of me.
 My Schedule
  
  | 
 
Stallings, William. Computer Organization & Architecture, Designing for Performance. Seventh Edition. 2006. Prentice Hall. ISBN 0-13-185644-8
Recommended 
Silberschatz, Abraham, Galvin, P.B., and Gane, G. Operating System Concepts. Seventh Edition. 2007. Wiley. ISBN: 0-471-69466-5
Tanenbaum, Modern Operating Systems, 2nd Ed. Prentice Hall
Tanenbaum. Structured
Computer Organization.  5th Edition. Prentice Hall.
Nutt. Operating Systems, A
Modern Perspective, 3rd Edition. Addisson Wesley.
Pre-requisites courses: CSCI 2333 and CSCI 3334. Students should have an understanding of assembly and machine language, assembly language programming, binary numbers, addressing modes, and discrete mathematics. Students should have an understanding of the roles of hardware and software in a computer system.
Course
Topics: 
Architecture of modern computers including (1)
computer instruction sets and registers, (2) ALU components, (3) the
fetch-execute cycle, (4) micro-code,  (5)
the system bus, (6) main memory (7) cache, (7) virtual-memory, (8) input and
output communications, (9) RISC, (10) pipeline architectures, (10) parallel
processor architectures,  (11)
introduction  to digital circuits and
binary representations, and (12) History of computer evolution.
Between this course (4335)
and Assembly Language (2333) you will receive instruction in the following
areas:
Learning outcomes for each
section are given below.
| 
   AR1. Digital
  Logic and Design Systems [core], 6 hours  | 
 
| 
   Overview and
  history of computer architecture  | 
 
| 
   Fundamental building
  blocks (logic gates, flip-flops, counters, registers, PLA)  | 
 
| 
   Logic
  expressions, minimization, sum of product forms  | 
 
| 
   Register
  transfer notation  | 
 
| 
   Physical
  considerations (gate delays, fan-in, fan-out)  | 
 
| 
   1. Describe the progression
  of computer architecture from vacuum tubes to VLSI.  | 
 
| 
   2. Demonstrate an
  understanding of the basic building blocks and their role in the historical
  development of computer architecture.  | 
 
| 
   3. Use
  mathematical expressions to describe the functions of simple combinational
  and sequential circuits.  | 
 
| 
   4. Design a simple
  circuit using the fundamental building blocks.  | 
 
| 
      | 
 
| 
   AR2. Machine
  level representation of data [core], 3 hours  | 
 
| 
   Bits, bytes,
  and words  | 
 
| 
   Numeric data representation
  and number bases  | 
 
| 
   Fixed- and
  floating-point systems  | 
 
| 
   Signed and
  twos-complement representations  | 
 
| 
   Representation
  of nonnumeric data (character codes, graphical data)  | 
 
| 
   Representation
  of records and arrays  | 
 
| 
   1. Explain the reasons
  for using different formats to represent numerical data.  | 
 
| 
   2. Explain how
  negative integers are stored in sign-magnitude and twos-complement
  representation.  | 
 
| 
   3. Convert
  numerical data from one format to another.  | 
 
| 
   4. Discuss how
  fixed-length number representations affect accuracy and precision.  | 
 
| 
   5. Describe the
  internal representation of nonnumeric data.  | 
 
| 
   6. Describe the
  internal representation of characters, strings, records, and arrays.  | 
 
| 
      | 
 
| 
   AR3. Assembly level
  Machine Organization [core], 9 hours  | 
 
| 
   Basic
  organization of the von Neumann machine  | 
 
| 
   Control unit;
  instruction fetch, decode, and execution  | 
 
| 
   Instruction
  sets and types (data manipulation, control, I/O)  | 
 
| 
   Assembly/machine
  language programming  | 
 
| 
   Instruction
  formats  | 
 
| 
   Addressing
  modes  | 
 
| 
   Subroutine call
  and return mechanisms  | 
 
| 
   I/O and
  interrupts  | 
 
| 
   1. Explain the
  organization of the classical von Neumann machine and its major functional
  units.  | 
 
| 
   2. Explain how an
  instruction is executed in a classical von Neumann machine  | 
 
| 
   3. Summarize how
  instructions are represented at both the machine level and in the context of
  a symbolic assembler.  | 
 
| 
   4. Explain
  different instruction formats, such as addresses per instruction and variable
  length vs. fixed length formats.  | 
 
| 
   5. Write simple
  assembly language program segments.  | 
 
| 
   6. Demonstrate how
  fundamental high-level programming constructs are implemented at the
  machine-language level.  | 
 
| 
   7. Explain how
  subroutine calls are handled at the assembly level.  | 
 
| 
   8. Explain the
  basic concepts of interrupts and I/O operations.  | 
 
| 
      | 
 
| 
   AR4. Memory
  system organization and Architecture [core], 5 hours  | 
 
| 
   Storage systems
  and their technology  | 
 
| 
   Coding, data
  compression, and data integrity  | 
 
| 
   Memory hierarchy  | 
 
| 
   Main memory
  organization and operations  | 
 
| 
   Latency, cycle
  time, bandwidth, and interleaving  | 
 
| 
   Cache memories
  (address mapping, block size, replacement and store policy)  | 
 
| 
   Virtual memory
  (page table, TLB)  | 
 
| 
   Fault handling
  and reliability  | 
 
| 
   1. Identify the main types of memory technology.  | 
 
| 
   2. Explain the effect of memory latency on running time.  | 
 
| 
   3. Explain the use of memory hierarchy to reduce the effective memory
  latency.  | 
 
| 
   4. Describe the principles of memory management.  | 
 
| 
   5. Describe the role of cache and virtual memory.  | 
 
| 
   6.Explain the workings of a system with virtual
  memory management.  | 
 
| 
      | 
 
| 
   AR5.
  Interfacing and communication [core], 3 hours  | 
 
| 
   I/O
  fundamentals: handshaking, buffering, programmed I/O, interrupt-driven I/O  | 
 
| 
   Interrupt
  structures: vectored and prioritized, interrupt acknowledgment  | 
 
| 
   External
  storage, physical organization, and drives  | 
 
| 
   Buses: bus
  protocols, arbitration, direct-memory access (DMA)  | 
 
| 
   Introduction to
  networks  | 
 
| 
   Multimedia
  support  | 
 
| 
   RAID
  architectures  | 
 
| 
   1.
  Explain how interrupts are used to implement I/O control and data transfers.  | 
 
| 
   2.
  Identify various types of buses in a computer system.  | 
 
| 
   3.
  Describe data access from a magnetic disk drive.  | 
 
| 
   4.
  Compare the common network configurations.  | 
 
| 
   5.
  Identify interfaces needed for multimedia support.  | 
 
| 
   6.
  Describe the advantages and limitations of RAID architectures.  | 
 
| 
      | 
 
| 
   AR6. Functional
  Organization [core], 7 hours  | 
 
| 
   Implementation
  of simple datapaths  | 
 
| 
   Control unit:
  hardwired realization vs. microprogrammed
  realization  | 
 
| 
   Instruction
  pipelining  | 
 
| 
   Introduction to
  instruction-level parallelism (ILP)  | 
 
| 
   1.
  Compare alternative implementation of datapaths.  | 
 
| 
   2.
  Discuss the concept of control points and the generation of control signals
  using hardwired or microprogrammed implementations.  | 
 
| 
   3.
  Explain basic instruction level parallelism using pipelining and the major
  hazards that may occur.  | 
 
| 
      | 
 
| 
   AR7. Multiprocessing
  and Alternative Architectures [core], 3 hours  | 
 
| 
   Introduction to
  SIMD, MIMD, VLIW, EPIC  | 
 
| 
   Systolic
  architecture  | 
 
| 
   Interconnection
  networks (hypercube, shuffle-exchange, mesh, crossbar)  | 
 
| 
   Shared memory
  systems  | 
 
| 
   Cache coherence  | 
 
| 
   Memory models
  and memory consistency  | 
 
| 
   1.
  Discuss the concept of parallel processing beyond the classical von Neumann
  model.  | 
 
| 
   2.
  Describe alternative architectures such as SIMD, MIMD, and VLIW.  | 
 
| 
   3.
  Explain the concept of interconnection networks and characterize different
  approaches.  | 
 
| 
   4.
  Discuss the special concerns that multiprocessing systems present with
  respect to memory management and describe how these are addressed.  | 
 
| 
   5.
  Explain the effect of different isolation levels on the concurrency control
  mechanisms.  | 
 
| 
      | 
 
| 
   AR8.
  Performance enhancments, [elective]  | 
 
| 
   Superscalar
  architecture  | 
 
| 
   Branch
  prediction  | 
 
| 
   Prefetching  | 
 
| 
   Speculative
  execution  | 
 
| 
   Multithreading  | 
 
| 
   Scalability  | 
 
| 
   1.
  Describe superscalar architectures and their advantages.  | 
 
| 
   2.
  Explain the concept of branch prediction and its utility.  | 
 
| 
   3.
  Characterize the costs and benefits of prefetching.  | 
 
| 
   4.
  Explain speculative execution and identify the conditions that justify it.  | 
 
| 
   5.
  Discuss the performance advantages that multithreading can offer in an architecture along with the factors that make it
  difficult to derive maximum benefits from this approach.  | 
 
| 
   6.
  Describe the relevance of scalability to performance.  | 
 
| 
      | 
 
Grading:
            Test grades                    -        65%                               90%-100%  A
          Assignments         -        25%                               80%-89%    B
          Notebook                                                    70%-79%    C
                   & presentation     10%                               60%-69%    D
          
| 
   WEDNESDAY, DECEMBER 12, 2007  | 
 |
| 
   | 
  
   | 
 
| 
   Meeting Time  | 
  
   Exam
  Period  | 
 
| 
   MWF 1:45- 2:35 p.m.  | 
  
   9:45 -- 11:30 a.m.  | 
 
Homework assignments will be
handed out at the beginning of each chapter. Some assignments will be directly
from the textbook, others will be on current hardware trends; you will have to
do some research.  
Each student will assemble a
computer and demonstrate it to me.  Since
we only have parts for only a few computers please sign up for a time slot.
Research paper: You will be
required to submit one research paper of 10 to 15 pages in length.  Choose any of the following:
Latest developments in Hardware (Chips, CPUs, I/O, etc.)
Chip Design, Manufacturing, packaging, etc.
Your work on performance evaluation, load balancing, workload characterization etc.
Hazards of pipelining
Instruction level parallelism.
Loop unrolling.
Latest trends in achieving higher speed.
Any other topic that you are interested in. Get my permission first.
Tentative schedule:
| 
   Week  | 
  
   Chapters  | 
  
   Topic  | 
 
| 
   1  | 
  
   1,
  10  | 
  
   Introduction
  and Instruction sets  | 
 
| 
   2  | 
  
   2-3  | 
  
   History
  and Top Level View of a Computer  | 
 
| 
   3  | 
  
   4  | 
  
   Memory  | 
 
| 
   4  | 
  
   4  | 
  
   Memory  | 
 
| 
   5  | 
  
   4
  & 5  | 
  
  Memory
   | 
 
| 
   6 6  | 
  
   Exam
  I 6  | 
  
   Chapters
  1 – 5 Storage
  Devices  | 
 
| 
   7  | 
  
   7  | 
  
   Input/output
  modules and devices  | 
 
| 
   8  | 
  
   8  | 
  
   Operating
  System support  | 
 
| 
   9  | 
  
   9
  & 10  | 
  
   Instruction
  Set  | 
 
| 
   10  | 
  
   11
  & 12  | 
  
   Addressing
  modes & instruction formats  | 
 
| 
   11  | 
  
   12
  & 13  | 
  
   Processor
  and Register organization, RISC  | 
 
| 
   12 12  | 
  
   Exam
  II 14  | 
  
   Chapters
  6 – 12 Parallelism  | 
 
| 
   13  | 
  
   16-17  | 
  
   The
  control Unit  | 
 
| 
   14  | 
  
   FINAL  | 
  
   Wrap
  up and Final Exam  | 
 
If
you must miss an exam, make prior arrangements. No make-up exams will be given
unless you contact me in advance! Homework may be submitted to me by email or
hardcopy in my mailbox prior to class time. Late homework will be levied heavy
penalties.  Penalty: One day late 10%, 1
week late 20%, 2 weeks late 50%.  Not
accepted afterwards.
Note
to students with disabilities: 
If you have a documented disability which will make it difficult for you to carry out the work as I have outlined and/or if you need special accommodations/assistance due to a disability, please contact the office of services for persons with persons disabilities (OSPD), Emilia Remirez-Schunior Hall, Room 1.101 immediately, or the Associate Director at Maureen@utpa.edu, ext. 7005. Appropriate arrangements/accommodations can be arranged.
Verification of disability and processing of special services required, such as notetakers, extended time tests, separate accommodations for testing, will be determined by OSPD. Please do not assume adjustments/accommodations are impossible. Please consult with the Associate Director, OSPD, at extension 7005.
The following will help you
to study for the exams.
1. Draw the structure of an IAS computer and describe how a small program is executed.
2. Given a bus width design an instruction set for an IAS computer and show the compromises that need to be made between number of instructions and addressable memory.
3. Describe the key design elements for interconnection of peripherals to the CPU.
4. Using diagrams show what happens in each of the sub-cycles of an instruction cycle.
5. Describe the memory hierarchy and calculate performance improvements.
6. Calculate block memory transfers between designated cache and main memory and show similarity of paging and explain resource management in a computer system.
7. Explain interaction between the hardware, the operating system, the application software and the user of a modern computer system.
8. Calculate performance improvements of a pipelined RISC.
9. Describe the need for different types of addressing modes
10. Describe the services an operating system provides to users and processes.
11. Differentiate between processes and threads and show why scheduling, creation, termination and communication are important. Describe various scheduling criteria and algorithm that may be used.
12. Describe importance of process synchronization and discuss classic problems of synchronization.