Department of Computer Science
CSU Stanislaus
California State University

CS3740-002: Computer Organization

Fall 2022

 


 

Instructor: Dr. Xuejun Liang

My Office: DBH 282

Office Hours: MWF 1:00PM-2:00AM

Phone : (209) 667-3169, Email : xliang@cs.csustan.edu

 

Class Information

 Classroom: Bizzini 102

Class Date & Time: MWF 2:00PM-2:50PM

Class Website: https://www.cs.csustan.edu/~xliang/Courses2/CS3740-22F

 

Course Materials

Textbook: The Essentials of Computer Organization and Architecture, Fifth Edition, by LindaNull and Lobur, Jones & Bartlett Learning, 2019

 

Computer Architecture Simulator:

The Marie Computer Architecture Simulator Revision (MarieSimR)

 

How to Install and Use MarieSim and MarieSimR

Please reference the MarieSim quick guide for installing and using MarieSim. You can install and use MarieSimR in the exactly same way as for MarieSim. The Simulator Jar Files (Executables) can be downloaded using the following links.

·       MarieSim (MarieSim.jar)

·       MarieSimR (MarieSimR.jar)

MARIE Assembly Language Programs with Using MarieSim

·         Example 4.0 (Ex4_0.mas)

·         Example 4.1 (Ex4_1.mas)

·         Example 4.2 (Ex4_2.mas)

·         Example 4.3 (Ex4_3.mas)

·         Example 4.3 (Ex4_4.mas)

 

MARIE Assembly Language Programs with Using MarieSimR

·         Example 1 (Code for MarieSim and Code for MarieSimR)

·         Example 2 Method 1 – Using Loop (Code for MarieSim and Code for MarieSimR)

·         Example 2 Method 2 – Using Function and Global Variables (Code for MarieSim and Code for MarieSimR)

·         Example 2 Method 3 – Using Function and Local Variables (Code for MarieSimR)

·         Example 2 Method 4 – Using Recursive Function (Code for MarieSimR)

·         Presentation Slides: MarieSimR

 

Lecture Slides with the textbook

Chapter 4 MARIE: An Introduction to a Simple Computer

Chapter 5 A Closer Look at Instruction Set Architectures

Chapter 6 Memory

Chapter 7 Input/Output Systems

Chapter 8 System Software

Chapter 9 Alternative Architectures

Chapter 10 Topics in Embedded Systems

Chapter 11 Performance Measurement and Analysis

 

New Lecture Slides with the textbook

Chapter 4 MARIE: An Introduction to a Simple Computer (A, B)

Chapter 5 A Closer Look at Instruction Set Architectures (A, B, C, D)

Chapter 6 Memory (A, B, C, D, E, F, G)

Chapter 7 Input/Output Systems (A, B, C, D, E)

Chapter 8 System Software (A, B)

Chapter 9 Alternative Architectures (A, B, C, D)

Chapter 10 Topics in Embedded Systems (A, B)

Chapter 11 Performance Measurement and Analysis (A, B, C, D, E)

 

Course Syllabus and Major Topics

 

 

Course Description

Instruction set architecture design, digital logic techniques, cache memory, virtual memory, I/O architectures and devices, computer performance enhancements. Selected topics on embedded systems, parallel computer architecture and processing approaches.

 

Course Outcomes

After successful completion of this course, students will be able to:

1.      Describe the organizations of a computer, its major functional units, its instruction set, its instruction formats, its instruction execution, as well as interrupts and I/O operations, and translate assembly instructions into object codes.

2.      Describe memory hierarchy, cache memory, and virtual memory, and compute the cache miss ratio and the effective memory access time for a simple program, and the physical address for a given virtual address.

3.      Describe I/O architectures, I/O bus operations, magnetic disks, solid state drives, optical disks, magnetic tape, and redundant array of independent disks (RAID), and compute the disk capacity and performance.

4.      Become familiar with the functions provided by operating systems and programming tools. Understand the role played by each software component in maintaining the integrity of a computer system and its data.

5.      Understand Flynn’s taxonomy and describe models, structures, and techniques used for organizations of parallel and multiprocessor architectures and interconnection networks.

6.      Describe the processes and practices of embedded hardware design and understand key concepts and tools for embedded software development.

7.      Evaluate computer performances by using quantitative approaches, including Amdahl’s law, and describe common benchmarks and their limitations.

 

Homework Assignments

HA#01 (Chapter 4): Exercises: 1, 2, 5, 8, 9, 15

HA#02 (Chapter 4): Exercises: 22, 23, 24, 26

HA#03 Programming with using MarieSim

HA#04 Programming with using MarieSimR

HA#05 (Chapter 5): Exercises: 2, 11, 26

HA#06 (Chapter 5): Exercises: 19, 27, 21, 23

HA#07 (Chapter 6): Exercises: 2, 5, 9, 16, 17

HA#08 (Chapter 6): Exercises: 3, 13

HA#09 (Chapter 6): Exercises: 19, 20, 21, 24

HA#10 (Chapter 7): Exercises: 2, 3, 8, 11

HA#11 (Chapter 7): Exercises: 23, 24, 28, 34, 35

HA#12 (Chapter 7): Exercises: 42, 48

HA#13 (Chapter 8): Exercises: 4, 5, 8, 9, 10, 14, 19

HA#14 (Chapter 9): Exercises: 1, 3, 5, 6, 7, 11, 15, 16, 19, 22, 24, 25

HA#15 (Chapter 10): Exercises: 3, 4, 6, 7, 10

HA#16 (Chapter 11): Exercises: 1, 2, 4 and three additional questions (download)

HA#17 (Chapter 11): Exercises: 6, 7, 10, 25

HA#18 (Chapter 11): Exercises: 19