ENEE350 Computer Organization Lecture-1 Return to lecture notes
COURSE INFORMATION

Instructor: A. Yavuz Oruç

E-mail: yavuz@eng.umd.edu

Office Hours: Tuesday, 2:30-4:00 pm.

Textbooks (Not Required):

Structured Computer Organization, A. Tanenbaum

Computer Organization and Architecture, W. Stallings

Computer Systems: Organization and Arch., J. Carpinelli

Lecture Notes will be provided in pdf and/or html formats

Prerequisite: ENEE 244 and completion of all lower-division technical courses in the EE curriculum. Electrical Engineering and Computer Engineering majors may not substitute CMSC 311 for ENEE 350. Not open to students who have completed ENEE 250.

 

Classroom, Exam Dates, and Grading Information

Lecture:  

Classroom: CHE2110
Time: MW 12:00pm-1:15pm

Discussion: 

Section 101-Math 0102
Time: Th - 12:30pm-1:20pm
Section 102-CHM 0127
Time: W - 3:00pm-3:50pm

Assignments and Exams: 

Homeworks (%25)
Test 1 (25%): Wednesday, March 15
Test 2 (25%): Wednesday, April 19
Final (25%): TBA
Syllabus Description: Structure and organization of digital computers. Registers, memory, control and I/O. Data and instruction formats, addressing modes, assembly language programming. Elements of system software, subroutines and their linkages.
 
Tentative Topics:

1.Overview of Computer Systems

2.Languages, Levels and Virtual Machines 

3. Processor Specification and Design 

Machine-Level Organization
 
Assembly Language Level
 
Micro-Level Organization
 
4. Operating System Level

 

Bootstrapping
 
Kernels
 

Event handling and processing

 
software layer

 

polling/interrupts
 

5. Memory Systems

Hierarchical Memory Design 
 
Memory Management (Software Layer) 
 
Virtual Memory (Hardware Layer)
 

6. System Performance

Metrics of Performance -Cost, Speed, Efficiency, Throughput, Utilization
 
Performance Tradeoffs-Amdahl's Law  

7. Multiprocessor Architectures-subject to availabilty of time

Single Instruction Multiple Data (SIMD) Machines
 
Multiple Instruction Multiple Data (MIMD) Machines

 

Overview of Computer Systems
Market Considerations

-Price (How much is it?)

Less than $1,000

Between $1,000 and $2,000

Between $2,000 and $4,000

More than $4,000

-Box Maker (Whose logo is it?)

Apple -- Compaq -- Dell -- Gateway -- Hewlett-Packard -- IBM--Packard Bell -- Sun Microsystems--Mail order/third party--Mom/Pop Assembly line--Self-Assembly

-CPU vendor (Whose Chip-set is it?)

AMD -- Intel -- Motorola -- IBM -- MIPS -- Sparc

-Software (What operating system?)

Linux -- Unix -- Mac Os-- Mac Os X

Windows 95, 98, 2000,NT,XP

(What application software does it run?)

Word processing, graphics --CAD/math, Database --Web programming

Performance Considerations

-How fast does it execute programs?

Clock Speed (MHz,GHz), CPI

Floating-Point Unit

Graphics Accelerator

Multiprocessing

-Memory

RAM (MBytes, GBytes)

Hard Disk (GBytes)

Compact Disk (M/GBytes)

Flash (Stick) Memory (M/GBytes)

Zip/Jaz Disk (M/GBytes)

Tape Memory (GBytes)

Floppy Disk (K/MBytes)

-Input/Output

Monitor (Screen size, pixel depth, resolution)

Keyboard (Extended character set)

Printer (Color, resolution,speed)

Scanner (Scanning pixel depth and resolution)

Modem (Bit rate)

Hardware (System) View  

A 2-part representation of a computer

  • Event processor - control logic

    (memory + combinational circuits, aka, finite state machine)

  • Computation engine

    (memory + combinational circuits, aka,finite state machine) 

Event processor issues commands (instructions) and responds to events

Computation engine carries out computations and generates events

Collectively, they form the central processor unit ( brain) of a computer 

A set of instructions constitutes a "machine" program that is executed by a computer.

Example:

Instruction 1: Add B to A and store it in A
Instruction 2: Compare A with 100
Instruction 3: If A > 100 then stop
Instruction 4: Jump to Instruction 1 

 

Registers in the computation engine hold the operands and results of a computation.

Often, the operands must be brought into the computation engine from external locations (inputs), and results must be carried to external locations (outputs) 

 

Example:

Instruction 1: Load next input in A
Instruction 2: Load next input in B
Instruction 3: Compare A and B and store the larger in A
Instruction 4: Jump to Instruction 2
Instruction 5: Copy A into Monitor (never executed)
            

Storage space is limited inside the central processor unit to store programs and data. So, a separate (and large) memory is needed to supplement it.

Example: 
            Instruction 1: Load next input in A
Instruction 2: Store A into Memory[B]
Instruction 3: Increment B
Instruction 4: If B < 100 jump to Instruction 1

Return to lecture notes