Comprehensive Course on Computer Architecture & Organization for Engineering Students, Study notes of Architecture

An overview of a university course titled 'Computer Architecture and Organization' as part of a Bachelor of Science in Computer Engineering degree. The course covers various topics related to computer architecture, including history and overview, fundamentals of computer architecture, computer arithmetic, memory system organization and architecture, interfacing and communication, device subsystems, processor system design, and performance. Students will learn about the organization of a von Neumann machine, computer arithmetic, memory technologies, I/O techniques, and processor system design.

Typology: Study notes

2021/2022

Uploaded on 08/05/2022

nguyen_99
nguyen_99 🇻🇳

4.2

(80)

1K documents

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
B
a
c
h
e
l
o
r
o
f
S
c
i
e
n
c
e
in
C
o
m
pu
t
e
r
E
n
g
n
ee
r
i
n
g
1
CMP1203 Computer Architecture and
Organization
P
e
r
i
o
d
p
e
r
Week
C
o
n
t
a
c
t
Hour
per
Semester
W
e
i
g
h
t
e
d
Total
Mark
W
e
i
gh
t
e
d
Exam
Mark
W
e
i
gh
t
e
d
Continuous
Assessment
Mark
C
r
e
d
i
t
Units
L
H
P
H
T
H
C
H
W
T
M
W
E
M
W
C
M
C
U
4
5
0
0
3
0
6
0
1
0
0
4
0
1
0
0
4
Rationale
Computer architecture is a key component of computer engineering and the
practicing
computer engineer should have a practical understanding of this topic. It is
concerned
with all aspects of the design and organization of the central processing unit and
the
integration of the CPU into the computer system
itself.
Objectives
To provide an overview of computer architecture and teach students
the
operation of a typical computing
machine.
To cover basic principles, while acknowledging the complexity of
existing
commercial
systems.
To reinforce topics that are common to other areas of computer engineering;
for
example, teaching register indirect addressing reinforces the concept of
pointers
in
C.
To expose the student to how various peripheral devices interact with, and
how
they are interfaced to a
CPU.
Course
Content
1. History and
Overview
pf3
pf4
pf5

Partial preview of the text

Download Comprehensive Course on Computer Architecture & Organization for Engineering Students and more Study notes Architecture in PDF only on Docsity!

CMP1203 Computer Architecture and Organization

Period per Week

Contact Hour per Semester

Weighted Total Mark

Weighted Exam Mark

Weighted Continuous Assessment Mark

Credit Units

LH PH TH CH WTM WEM WCM CU

Rationale Computer architecture is a key component of computer engineering and the practicing computer engineer should have a practical understanding of this topic. It is concerned with all aspects of the design and organization of the central processing unit and the integration of the CPU into the computer system itself.

Objectives

  • To provide an overview of computer architecture and teach students the operation of a typical computing machine.
  • To cover basic principles, while acknowledging the complexity of existing commercial systems.
  • To reinforce topics that are common to other areas of computer engineering; for example, teaching register indirect addressing reinforces the concept of pointers in C.
  • To expose the student to how various peripheral devices interact with, and how they are interfaced to a CPU. Course Content 1. History and Overview
  • Reasons for study
  • Influences on Computer Architecture Organization
  • System organization and architecture, memory, interfacing, microprocessors, and performance; Differences between computer organization and architecture; binary arithmetic
  • Components of computer design; CPU organization; Caching; Multiprocessing strategies 2. Fundamentals of computer architecture
  • Organization of the von Neumann machine, Instruction formats, The fetch/execute cycle; instruction decoding and execution , Registers and register files, Instruction types and addressing modes, Subroutine call and return mechanisms, Programming in assembly language, I/O techniques and interrupts 3. Computer Arithmetic
  • Representation of integers (positive and negative numbers), Algorithms for common arithmetic operations (addition, subtraction, multiplication, division)
  • Significance of range, precision, and accuracy in computer arithmetic, Representation of real numbers (standards for floating-point arithmetic)
  • Algorithms for carrying out common floating-point operations, Converting between integer and real numbers , Multi-precision arithmetic
  • Hardware and software implementation of arithmetic unit
  • The generation of higher order functions from square roots to transcendental functions 4. Memory System Organization and Architecture
  • Memory systems hierarchy, Coding, data compression, and data integrity , Electronic, magnetic and optical technologies
  • Main memory organization and its characteristics and performance, Latency, cycle time, bandwidth, and interleaving, Cache memories (address mapping, line size, replacement and write-back policies), Virtual memory systems
  • Memory technologies such as DRAM, EPROM, and FLASH, Reliability of memory systems; error detecting and error correcting systems 5. Interfacing and Communication
  • I/O fundamentals: handshaking, buffering
  • I/O techniques: programmed I/O, interrupt-driven I/O, DMA
  • Interrupt structures: vectored and prioritized, interrupt overhead, interrupts and reentrant code
  • Memory system design and interfacing
  • Buses: bus protocols, local and geographic arbitration 6. Device Subsystems
  • External storage systems
  • Organization and structure of disk drives and optical memory
  • Basic I/O controllers such as a keyboard and a mouse, RAID architectures, Video control, I/O Performance, SMART technology and fault detection
  • Processor to network interfaces 7. Processor System Design
  • The CPU interface: clock, control, data and address buses
  • Address decoding and memory interfacing
  • Basic parallel and serial interfaces

designer adopted a given different instruction formats, such as the number of addresses per instruction and variable length vs. fixed length formats; write small programs and fragments of assembly language code to demonstrate an understanding of machine level operations; implement some fundamental high- level programming constructs at the machine-language level; and use computer simulation packages to investigate assembly language programming

  • Appreciate how numerical values are represented in digital computers; understand the limitations of computer arithmetic and the effects of errors on calculations; and appreciate the effect of a processor’s arithmetic unit on its overall performance
  • Identify the main types of memory technology; explain the effect of memory latency and bandwidth on performance; explain the use of memory hierarchy to reduce the effective memory latency; describe the principles of memory management; and understand how errors in memory systems arise and how to resolve them.
  • Explain how to use interrupts to implement I/O control and data transfers; write small interrupt service routines and I/O drivers using assembly language; identify various types of buses in a computer system; describe data access from a magnetic disk drive; and analyze and implement interfaces.
  • Compute the various parameters of performance for standard I/O types; explain the basic nature human computer interaction devices; and describe data access from magnetic and optical disk drives
  • Understand how a CPU chip becomes a complete system; design an interface to memory; understand how to interface and use peripheral chips; write sufficient EPROM-based system software to create a basic stand-alone system; and specify and design simple computer interfaces.
  • Understand the factors that contribute to computer performance; understand the limitations of performance metrics; select the most appropriate performance metric when evaluating a computer; and discuss the impact on control and datapath design for performance enhancements.
  • Explain the differences between different paradigms and their usefulness and applicability; understand how client server model works in a decentralized fashion; understand how agents work and how they solve simple tasks; understand the concept of logical clocks vs. physical clocks and how they affect implementation of distributed systems and be familiar with simple election and mutual exclusion algorithms and their applicability.
  • Discuss how various architectural enhancements affect system performance; discuss how to apply parallel processing approaches to design scalar and superscalar processors; discuss how to apply vector-processing techniques to enhance instruction sets for multimedia and signal processing; understand how each of the functional parts of a computer system affects its overall performance; and estimate the effect on system performance of changes to functional units.

Recommended and Reference Books

[1] Linda Null and Julia Lubor. The Essentials of Computer Organization and Architecture , Second Edition, Jones & Bartlett. ISBN-10: 0763737690, ISBN- 13: 978-

[2] Harold Lorin, 1982_. Introduction to Computer Architecture and Organization_ , Wiley. ISBN 0471866792, 9780471866794

[3] John L. Hennessy, 2002. Computer Architecture: A Quantitative Approach , 3rd Edition, Morgan Kaufmann, ISBN-10 / ASIN: 1558605967, ISBN-13 / EAN: 9781558605961

[4] William Stallings, 2002. Computer Organization and Architecture, 6th edition, Prentice Hall. ISBN-10 / ASIN: 0130351199, ISBN-13 / EAN: 9780130351197 [5] Computer Design and Architecture, 3rd Edition Revised and Expanded CRC. ISBN: 0824703685 [6] Mostafa Abd-El-Barr, 2004. Fundamentals of Computer Organization and Architecture (Wiley Series on Parallel and Distributed Computing) , Wiley- Interscience, ISBN-10 / ASIN: 0471467413, ISBN-13 / EAN: 9780471467410

[7] Douglas E. Comer, 2004. Essentials of Computer Architecture, US edition, Prentice Hall ISBN-10: 0131491792, ISBN-13: 978-