CAA Syllabus 3 Credits
CAA Syllabus 3 Credits
1
8. Learning outcomes
Course Description ELO Competency
objectives (After completing program, students are able) levels
G1.1 To describe computer structural and functional
view of computer components, Understand the
complex trade-offs between CPU clock speed, 1.3 2
cache size, bus organization, number of core
processors
G1
G1.2 To describe the interaction among components,
1.3 2
peripherals, interrupt and I/Os
G1.3 To describe the x86-64 instruction set architecture 1.4 2
G1.4 To describe the structure of an assembly program, 1.5 3
G2.1 To write assembly code, to understand stack
frame and calling convention an assembly code 2.2 3
G2 from the high-level language program
G2.2 To improve programing skill and debug program
2.3 3
at machine language level
G3.1 To collaborate and sharing ideas among group
1.2 2
G3 members
G3.2 To improve English reading skill 1.2 3
G4.1 To enhance knowledge on other subjects in
1.3 3
curriculum
G4 G4.2 To explain various aspects of software
programming regarding the underlying hardware 1.4 3
technologies.
9. Ethics:
Students must demonstrate that they accomplished themselves all exercises and projects.
Those students who cheat or commit plagiarism will be imposed punishment.
2
10. Plan:
Wee Teaching Assess.
Content ELO
k Methods Methods
Chapter 1: Introduction (4/0/8)
Lecture’s content G1.1,
+ Computer Organization vs. Architecture G1.2
+ Start : Trang 2 - trang 13 G3.1
G3.2
+ Operational structures of computer
components
+
+ Multi-level machine
Questions
+ Evolution of Computer Presentatio & Case
+ Von Neuman (IAS) machine n studies
1,2 + Microprocessor speed techniques
+ Performance balance
+ Multi-core processor
+ Performance assessment (CPI, MIPS,
Execution time of program)
+ Amdahl’s law
Tasks for students at home: G1.1,
+ Group work on CISC and RISC G1.2
Computer
G3.1
+ Exercise on computer assessment and G3.2
speed enhancement when moving from
single-core to multi-core processor
Chapter 2: Top-level view of Computer
functions and interconnections (4/0/8)
Lecture’s content G2.1. Presentatio Questions
+ Computer functions G2.2 n & Case
studies
+ Instruction cycle G4.1
3 G4.2
+ Program execution
+ Interrupt
+ Instruction cycle with interrupt
+ Interrupt vector table
- Interconnections
+ Memory module
+ I/O module
+ Processor module
+ Buses
+ Bus arbiter
3
+ Bus hierarchy
+ Intel QPI
+ PCIe
- Practice Lab
+ Watch the fetch-decode-execute
video Fetch-Decode-Execute Cycle
+ Undertanding the MBR, MAR, PC,
IR and Program execution with MARIE
Simulator.
Tasks for students at home
+ Running simulation of programs with
G2.1,
MARIE Simulator
G2.2
+ Exercises on computing data transfer rate G4.1
for processors with various register bit-size,
G4.2
databus width and different clock speed:
3.3, 3,5, 3.6, 3.7, 3.11 – section 3 of [1]
4 Chapter 3: Computer Memory (8/0/16)
Lecture’s content G2.2 Presentatio
Computer memory overview G4.2 n
- Key characteristics
- Memory hierarchy
- Locality of reference
Cache memory
- Principle
- Mapping schemes
Direct mapped cache
Associative cache
Set associative cache
- Replacement policies
- Cache write policies
Virtual Memory
- Paging
- Advantages & Disadvantages of Paging
and Virtual Memory
- Segmentation
- Paging combine with Segmentation
Practice lab:
+ Watch video from Dr. Harry Potter
+ Investigate cache strategies with
Memory Tutorial Simulator
- Internal memory
+ Semiconductor memory
+ SRAM, DRAM
+ ROM, PROM, EPROM, EEPROM,
4
flash memory
+ Chip logic
+ Memory packaging
- External memory
+ Magnetic disk
+ Disk performance parameter: seek
time, rotational latency, access time,
transfer time
+ RAID
+ SSDs, SSD practical issues
+ Optical memory
Tasks for students at home G2.2,
+ Watch video, review cache mapping G3.1
G3.2
+ Group work on Internal memory and
External memory G4.2
+ Excercises on building up memory
module from chips
Chapter 4: The Central Processing Unit
(4/0/8)
Lecture’s content G2.4
+ CPU Complexity
G4.3,
+ x86-64 Registers G4.4 Problem-
+ x86 Memory segmentation Based
+ x64 flat memory model
5
+ Addressing modes
6 Lab
- Practice registers & memory view with gdb Problem-
Submis-
Based
sion
5
Tasks for students at home:
Doing Quiz in chapter 3.0 of [3]
Lecture’s content
NASM assembler
+ Comments
+ Numeric values
+ Constants
Program Memory sections declarations
+ Memory layout
+ Data section
+ BSS section
+ Text section
+ Example program
8 + Excercises
Assemble/Link/Load
+ Assemble
+ Linker
+ Loader
+ Load in gdb
Console input/output
+ Calling system services
+ Input
+ Output
Practice lab
Practice compiling simple nasm programs then
watch in gdb
Lecture’s Content
Addressing modes
+ Addresses & values
+ Example: List summation
+ Example: Pyramid areas & Volumes
+ Excercises
Stack processing
+ Stack
+ Stack instructions
12 + Stack implementation
+ Examples
+ Excercises
Command line Arguments
+ Parsing Command line arguments
+ High-level language Example
+ Argument Count and Argument Vector
Tasks for students at home: Lab
Doing all suggested projects in chapter 8,9,16 Submis-
of [3] sion
Chapter 8: Macros & Functions P4 - 231
Lecture’s Content
Macros
+ Single-line macro
+ Multi-line macro
+ Example
+ Debugging macros
+ Excercises
Functions
+ Overview, declaration
13, + Debugger next, step commands
14 + Calling convention (parameters,
registers) from high-level programming
language
+ Stack frame
+ Examples
+ Excercises
Tasks for students at home: Lab
Doing quiz questions in chapter 11,12 of [3] Submis-
Doing all suggested projects in chapter 11,12 of sion
[3]
7
Chapter 9: System Services
Lecture’s Content
Overview
+ Calling system services
+ Newline Character
Console output
+ Example
15 Console input
+ Examples
File Operations
+ Excercises
Course Review
11. References
- Lecture notes:
Nguyễn Đăng Quang, Computer Architecture and Assembly language, 2017
- References:
1. William Stallings, Computer Organization and Architecture, 9th Edition, Pearson
Education, Prentice-Hall, 2013, ISBN-13: 978-0-13-293633-0
2. Linda Null, Julia Lobur, The Essentials of Computer Organization and Architecture,
Jones and Bartlett Publishers, 2003
3. x86-64 Assembly Language Programming with Ubuntu
4. nasm online:
https://www.jdoodle.com/compile-assembler-nasm-online
https://rextester.com/l/nasm_online_compiler
5. Ubuntu vmware machine for labs 16.04, 12.04
12. Assessesments:
- Grade scale: 10
- Plan for assessments:
13. Approval time:
14. Approved by:
Dean of faculty Head of Department Instructor