Advance Computer
Architecture and x86 ISA
University of Science and Technology of Hanoi
MS. LE Nhu Chu Hiep
Personal Introduction
Personal Introduction: Basic Information
Contact:
● Name: LE Nhu Chu Hiep
● Email: <[Link]@[Link]>
Education:
● Master for ICT at USTH (2023)
○ Speciality: Data Mining for IoT
● Bachelor for ICT at USTH (2020)
3
Personal Introduction: Teaching Career
Teaching:
● Lecturer of ICTLab USTH from 2024 ( I’m young !!! )
● Major: Cyber Security
● Teaching courses:
○ Distributed System (ICT3)
○ Advance Computer Architecture and x86 ISA (CS2)
4
Personal Introduction: Research Career
Research:
● Interested Domain:
○ Operating System
○ Networking
○ And Distributed System
●
● Research Topics:
○ Ulake: Microservice based data lake framework retrieving, storing, and querying scientific data
○ Pswap: Migration framework to move stateful container from VM to Host and vice versa
5
Personal Introduction: Working at ICTLab USTH
ICT Department:
● Role: Researcher and Lecturer
● Website: [Link] (OLD !!!)
● Location: 408, A21, 18 Hoang Quoc Viet,
Nghia Do, Cau Giay, Hanoi
6
Personal Introduction: Working at ICTLab USTH (cont.)
● Machine Learning, Deep Learning and Data
Mining
● Image and Speech Processing
● Modeling and Simulation
● Sensor Networks and Embedded Systems
● High Performance Computing
● Health Informatics and BioInformatics
7
Personal Introduction: Working at INP ENSEEIHT
● National Polytechnic Institute of Toulouse 1
● Role: M2 Internship ~ 6 months
● Ranking: #943 in Best GLobal Universities 2
● Website: [Link]
(Not OLD, but FRENCH)
● Location: 2 Rue Charles Camichel, 31000
Toulouse, France
1. C. (n.d.). Ingénieur N7, Créateur du monde de demain. Ametys V3. [Link]
2. See where Institut National Polytechnique de Toulouse ranks among the world’s Best Universities. (n.d.-a).
[Link] 8
Personal Introduction: Working at INP ENSEEIHT (cont.)
9
Personal Introduction: Working at INP ENSEEIHT (cont.)
● Top ranking universities (INP)
● Air France headquarter
● Old city with beautiful buildings
● Cheap cost of living
● Peaceful ( Not like Paris !!! )
● Connect to USTH
10
Personal Introduction: Working at INP ENSEEIHT (cont.)
11
Course Introduction
12
Course Introduction
● 4 ETCS (40 hours)
○ 24h Lecturers - 16h Practical
○ Lecturers: 8 classes, 3 hours / class
○ Practicals: 4 classes, 4 hours / class
● Prerequisites:
○ Basic Programming
○ Computer Architecture
● Assessment:
○ Attendance: 10%
○ Assignment: 10%
○ Midterm: 30% (Project)
○ Final: 50% (Moodle Exam / Writing Exam)
13
Course Introduction: Objectives
● Understand basic concept of computer architecture (CA)
● Understand CA advance techniques to improve instruction execution
● Learn basic concept of x86 ISA
● Apply learned knowledge to improve instruction execution
14
Course Introduction: Textbooks
● John L. Hennessy & David A. Patterson, Computer architecture : a
quantitative approach, 5th Edition, Morgan Kaufmann, 2011
● Andrew Tanenbaum & Todd Austin, Structured Computer Organization, 6th
Edition, Pearson, 2012
● William Stallings, Computer organization and architecture, 10th Edition, 2015
● Barry Wilkinson & Michael Allen, Parallel programming, techniques and
applications using networked workstations and parallel computers,Pearson,
2004
15
Computer Architecture
16
Computer
● A digital system
○ The finite state machine
○ The combination and sequential logic
○ The register and memory
● Purpose
○ Do whatever the software tell it to do
○ Software is a series of instructions
17
Computer Architecture
● Conceptual structure and functional behavior of
computer
● Defines
○ Hardware components and their organization
○ Interaction among components to execute the program
instructions
● Includes
○ Instruction set architecture (ISA)
○ Memory organization
○ Data paths and control mechanism
○ IO systems
18
Computer History
19
Computer History: Early Computer
● 1940s - 1950s: First general purpose computers
using vacuum tubes and punched cards
● ENIAC: chiefly served the military like calculating
artillery firing table
● UNIVAC: meant for scientific and business purpose
● Authors: Dr. Presper Eckert and Dr. John Mauchly
● Interface: IBM card reader and card punch
20
Computer History: Commercial Computer
● 1950s - 1960s: Introduction of transistors, leading to
smaller, faster, and more reliable computers
● 1960s - 1970s: Emergence of integrated circuits
(ICs) and microprocessors
● 1970s - 1980s: Rise of personal computers (PCs)
21
Computer History: Commercial Computer (cont.)
● In 1969, the creation of UNIX
○ Operating System developed at AT&T Bell Labs
○ Invented by Dennis Ritchie and Ken Thompson
○ Lower the cost and risk of bringing out a new architecture
● In 1972, the creation of C programming language
○ First general purpose programming language
○ Invented by Dennis Ritchie
○ Reduce the need for object-code compatibility
22
Computer History: RISC vs CISC
● 1980s-1990s: RISC and CISC
● RISC: Reduced Instruction Set Computing is a small, highly optimized
set of instruction that are executed in a single clock cycle
● CISC: Complex Instruction Set Computing is a larger set of more
complex instructions that can performance multiple operations
● Performance: RISC is highly suitable to parallelize instructions
23
Computer History: Modern computer
● 1990s - Present: Shift toward parallel computing and multicore
processors to improve performance
● 21st Century: Power-efficient design and specialized architectures for
tasks like graphics processing and AI
● Future Trends: Exploration of quantum computing for exponential
processing
24
Computer Components
25
Computer Components: John von Neumann
● CPU: Central Processing Unit
○ Control Unit: coordinating and controlling the
operation flow of computer
○ Arithmetic Logic Unit (ALU): performing a
wide range of arithmetic, logical, and data
manipulation operations
● Memory: primary storage for both instructions and
data
● IO Unit: Input vs Output play essential roles in data
exchange between the computer and the external
world
26
Computer Components (cont.)
● CPU: General-Purpose Processors
○ Designed for wide range of computing tasks
○ Examples: Intel Core series, AMD Ryzen series
● FPGA: Field-Programmable Gate Arrays
○ Programmable logic devices that can be configured to perform
specific tasks
○ Examples: Xilinx UltraScale series, Intel (formerly Altera) Stratix
series
27
Computer Components (cont.)
● GPU: graphics Processing Units
○ Specialized for rendering graphics and
accelerating parallel computations
○ Examples: NVIDIA GeForce, AMD
Radeon
28
Computer Components: Memory
● RAM: Random Access Memory
○ Primary storage medium for data and instructions feeding to CPU during program
execution
○ High transfer rate, volatile memory, small, expensive
○ Example: SRAM, DRAM, and DDR
● ROM: Read-Only Memory
○ Storing firmware and essential system instructions that is not frequently changed
such as BIOS or embedded system firmware
○ Fast access specifically, difficult to write, non-volatile memory
○ Example: PROM, EPROM, and EEPROM
● Secondary Storage
○ Persisting data and program instruction in long time even after turning off power
supply
○ Slow transfer rate, non-volatile memory, large, cheaper
○ Example: HDDs, SSDs, CD-ROM, and DVD
29
Computer Components: IO Devices
● Input Devices: Capture data and commands from
user or other devices
○ Examples: Keyboards, mice, scanners, sensors, etc.
● Output Devices: Present information, results, or
feedback to users or other devices
○ Examples: Monitors, printers, speakers, etc.
● Communication Devices: Communication between
the computer and other devices or networks
○ Examples: Ethernet, Wi-fi, Bluetooth adapters, etc.
30
Binary number system &
Digital logic
31
Binary number system
● Base-2 numeral system
● Represents using only 2 digitals: 0 and 1
● Each digit in a binary number is called a bit
● A bit have one of 2 possible values: 0 or 1
32
Digital Logic
● Boolean algebra:
○ Mathematical system for expressing and manipulating logic expressions that take into
account 2 values of false (0) and true (1)
○ Defines logical operations on binary values: AND, OR, NOT, XOR, NAND, etc.
● Logic Gates:
○ Electronic circuits performing logical operations on input signals to produce output signals
○ Building blocks of digital circuits, enabling more complex logic functions
● Combinational Logic:
○ Outputs depend only on the current inputs, with no memory or feedback
● Sequential Logic:
○ Outputs depend on both current inputs and the state of memory elements
33
Digital Logic (cont.)
34
Data Representation
35
Data Representation
● Computer understands only binary data
● Human works with different data types:
text, number, image, etc.
● So, data representation: the process of
encoding data in a format suitable for
computer
● Binary representation: encode data using
only 2 symbols 0 and 1
36
Data Representation: Primary Data
● Integer: converting directly to binary bases format
(holded by 4 bytes in C)
● Floating: using a sign bit, mantissa, and exponent
with wide range of values with varying precision
(holded by 8 bytes in C)
● Character: applying ASCII to map characters to
7-bit binary codes, providing a standard encoding
for text characters (holded by 1 byte in C)
37
Data Representation: Complex Data
● Image: represented as grids of pixels, with each pixel encoded
to represent color or grayscale using binary values
● Audio: a sequence of discrete samples using binary values
encoded by pulse-code modulation (PCM)
● Video: Encodes moving images using binary data employing
compression techniques (MPEG)
38
Data Representation: Stored format
● File Formats:
○ The structure and organization of data within files, facilitating interoperability and
data exchange between different systems and applications
○ Examples: text format (plain text, CSV, etc.), binary formats (JPEG, MP3, etc.)
● Endianness:
○ Order in which bytes are stored in memory
○ Little-Endian: Least significant byte stored first
○ Big-Endian: Most significant byte stored first
39
Thank you for you listening
40