Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh

n Máy tính (Computer) là thiết bị điện tử thực

hiện các công việc sau:

n Nhận dữ liệu vào,

n Xử lý dữ liệu theo dãy các lệnh được nhớ sẵn bên

trong,

n Đưa dữ liệu (thông tin) ra.

n Dãy các lệnh nằm trong bộ nhớ để yêu cầu

máy tính thực hiện công việc cụ thể gọi là

chương trình (program).

à Máy tính hoạt động theo chương trình

 

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 1

Trang 1

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 2

Trang 2

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 3

Trang 3

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 4

Trang 4

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 5

Trang 5

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 6

Trang 6

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 7

Trang 7

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 8

Trang 8

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 9

Trang 9

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 41 trang xuanhieu 10701
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh

Bài giảng Kiến trúc máy tính - Chương 1: Giới thiệu chung - Nguyễn Kim Khánh
ới thiệu chung
Chương 2. Cơ bản về logic số 
Chương 3. Hệ thống máy tính
Chương 4. Số học máy tính
Chương 5. Kiến trúc tập lệnh
Chương 6. Bộ xử lý
Chương 7. Bộ nhớ máy tính 
Chương 8. Hệ thống vào-ra
Chương 9. Các kiến trúc song song
2017 Kiến trúc máy tính 5
NKK-HUST
Content
Chapter 1. Introduction
Chapter 2. The Basics of Digital Logic
Chapter 3. Computer Systems
Chapter 4. Computer Arithmetic
Chapter 5. Instruction Set Architecture
Chapter 6. The Processors
Chapter 7. Computer Memory 
Chapter 8. Input-Output Systems
Chapter 9. Parallel Architectures
2017 Kiến trúc máy tính 6
NKK-HUST
Kiến trúc máy tính
Chương 1
GIỚI THIỆU CHUNG
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
2017 Kiến trúc máy tính 7
NKK-HUST
1.1. Máy tính và phân loại máy tính
1.2. Khái niệm kiến trúc máy tính 
1.3. Sự tiến hóa của công nghệ máy tính
1.4. Hiệu năng máy tính
Nội dung của chương 1 
2017 Kiến trúc máy tính 8
NKK-HUST
n Máy tính (Computer) là thiết bị điện tử thực 
hiện các công việc sau:
n Nhận dữ liệu vào,
n Xử lý dữ liệu theo dãy các lệnh được nhớ sẵn bên 
trong, 
n Đưa dữ liệu (thông tin) ra.
n Dãy các lệnh nằm trong bộ nhớ để yêu cầu 
máy tính thực hiện công việc cụ thể gọi là 
chương trình (program).
à Máy tính hoạt động theo chương trình
1.1. Máy tính và phân loại máy tính
2017 Kiến trúc máy tính 9
NKK-HUST
Các 
thiết bị vào
(Input 
Devices)
Bộ nhớ chính
(Main Memory)
Các 
thiết bị ra
(Output 
Devices)
Bộ xử lý 
trung tâm 
(Central 
Processing Unit) 
Mô hình đơn giản của máy tính
2017 Kiến trúc máy tính 10
dữ liệu vào dữ liệu rachương trình 
đang thực hiện
xử lý dữ liệu
NKK-HUST
n Máy tính cá nhân (Personal Computers)
n Desktop computers, Laptop computers
n Máy tính đa dụng 
n Máy chủ (Servers) – máy phục vụ
n Dùng trong mạng để quản lý và cung cấp các dịch vụ
n Hiệu năng và độ tin cậy cao
n Hàng nghìn đến hàng triệu USD
n Siêu máy tính (Supercomputers)
n Dùng cho tính toán cao cấp trong khoa học và kỹ thuật 
n Hàng triệu đến hàng trăm triệu USD
n Máy tính nhúng (Embedded Computers)
n Đặt ẩn trong thiết bị khác 
n Được thiết kế chuyên dụng
Phân loại máy tính kỷ nguyên PC 
2017 Kiến trúc máy tính 11
NKK-HUST
n Thiết bị di động cá nhân (PMD - Personal Mobile 
Devices)
n Smartphones, Tablet
n Kết nối Internet
n Điện toán đám mây (Cloud Computing)
n Sử dụng máy tính qui mô lớn (Warehouse Scale 
Computers), gồm rất nhiều servers kết nối với nhau 
n Cho các công ty thuê một phần để cung cấp dịch vụ 
phần mềm
n Software as a Service (SaaS): một phần của phần 
mềm chạy trên PMD, một phần chạy trên Cloud
n Ví dụ: Amazon, Google
Phân loại máy tính kỷ nguyên sau PC
2017 Kiến trúc máy tính 12
NKK-HUST
1.2. Khái niệm kiến trúc máy tính
2017 Kiến trúc máy tính 13
n Kiến trúc máy tính bao gồm:
n Kiến trúc tập lệnh (Instruction Set Architecture): 
nghiên cứu máy tính theo cách nhìn của người lập 
trình
n Tổ chức máy tính (Computer Organization) hay
Vi kiến trúc (Microarchitecture): nghiên cứu thiết kế 
máy tính ở mức cao (thiết kế CPU, hệ thống nhớ, 
cấu trúc bus, ...)
n Phần cứng (Hardware): nghiên cứu thiết kế logic chi 
tiết và công nghệ đóng gói của máy tính.
n Cùng một kiến trúc tập lệnh có thể có nhiều sản 
phẩm (tổ chức, phần cứng) khác nhau
NKK-HUST
Phân lớp máy tính
n Phần mềm ứng dụng
n Được viết theo ngôn ngữ bậc cao
n Phần mềm hệ thống
n Chương trình dịch (Compiler): dịch mã 
ngôn ngữ bậc cao thành ngôn ngữ máy 
n Hệ điều hành (Operating System)
n Lập lịch cho các nhiệm vụ và chia sẻ tài 
nguyên
n Quản lý bộ nhớ và lưu trữ
n Điều khiển vào-ra
n Phần cứng
n Bộ xử lý, bộ nhớ, mô-đun vào-ra
2017 Kiến trúc máy tính 14
Phần mềm ứng dụng
Phần mềm hệ thống
Phần cứng
Người 
sử dụng Người 
lập trình
Người 
lập trình 
hệ thống
NKK-HUST
Các mức của mã chương trình
n Ngôn ngữ bậc cao
n High-level language – HLL
n Mức trừu tượng gần với 
vấn đề cần giải quyết
n Hiệu quả và linh động
n Hợp ngữ
n Assembly language
n Mô tả lệnh dưới dạng text
n Ngôn ngữ máy
n Machine language
n Mô tả theo phần cứng
n Các lệnh và dữ liệu được 
mã hóa theo nhị phân
2017 Kiến trúc máy tính 15
! e recognition that a program could be written to translate a more powerful 
language into computer instructions was one of the great breakthroughs in the 
early days of computing. Programmers today owe their productivity—and their 
sanity—to the creation of high-level programming languages and compilers 
that translate programs in such languages into instructions. Figure 1.4 shows the 
relationships among these programs and languages, which are more examples of 
the power of abstraction.
high-level 
programming 
language A portable 
language such as C, C!!, 
Java, or Visual Basic that 
is composed of words 
and algebraic notation 
that can be translated by 
a compiler into assembly 
language.
FIGURE 1.4 C program compiled into assembly language and then assembled into binary 
machine language. Although the translation from high-level language to binary machine language is 
shown in two steps, some compilers cut out the middleman and produce binary machine language directly. 
! ese languages and this program are examined in more detail in Chapter 2.
 1.3 Below Your Program 15
swap(int v[], int k)
{int temp;
 temp = v[k];
 v[k] = v[k+1];
 v[k+1] = temp;
}
swap:
 multi $2, $5,4
 add $2, $4,$2
 lw $15, 0($2)
 lw $16, 4($2)
 sw $16, 0($2)
 sw $15, 4($2)
 jr $31
00000000101000100000000100011000
00000000100000100001000000100001
10001101111000100000000000000000
10001110000100100000000000000100
10101110000100100000000000000000
10101101111000100000000000000100
00000011111000000000000000001000
Assembler
Compiler
Binary machine
language
program
(for MIPS)
Assembly
language
program
(for MIPS)
High-level
language
program
(in C)
NKK-HUST
Các thành phần cơ bản của máy tính
2017 Kiến trúc máy tính 16
n Giống nhau với tất cả các loại 
máy tính
n Bộ xử lý trung tâm (Central 
Processing Unit – CPU)
n Điều khiển hoạt động của máy 
tính và xử lý dữ liệu
n Bộ nhớ chính (Main Memory)
n Chứa các chương trình đang 
thực hiện
n Hệ thống vào-ra (Input/Output)
n Trao đổi thông tin giữa máy tính 
với bên ngoài
n Bus hệ thống (System bus)
n Kết nối và vận chuyển thông tin
CPU Bộ nhớ chính
Bus hệ thống
Hệ thống vào-ra
NKK-HUST
1.3. Sự tiến hóa của công nghệ máy tính
n Máy tính dùng đèn điện tử chân không (1950s)
n Máy tính ENIAC: máy tính đầu tiên (1946)
n Máy tính IAS: máy tính von Neumann (1952)
n Máy tính dùng transistors (1960s)
n Máy tính dùng vi mạch SSI, MSI và LSI (1970s)
n SSI - Small Scale Integration 
n MSI - Medium Scale Integration
n LSI - Large Scale Integration 
n Máy tính dùng vi mạch VLSI (1980s)
n VLSI - Very Large Scale Integration 
n Máy tính dùng vi mạch ULSI (1990s-nay)
n ULSI - Ultra Large Scale Integration
2017 Kiến trúc máy tính 17
NKK-HUST
n Electronic Numerical Intergator 
and Computer 
n Dự án của Bộ Quốc phòng Mỹ
n Do John Mauchly ở đại học 
Pennsylvania thiết kế
n 30 tấn
n Xử lý theo số thập phân
Máy tính đầu tiên: ENIAC và IAS
2017 Kiến trúc máy tính 18
n Thực hiện tại Princeton Institute 
for Advanced Studies
n Do John von Neumann thiết kế 
theo ý tưởng “stored program”
n Xử lý theo số nhị phân
n Trở thành mô hình cơ bản của 
máy tính 
NKK-HUST
Máy tính ngày nay
Clusters
Massive Cluster
Gigabit Ethernet
Robots
Routers
Cars
Sensor
Nets
R
ef
rig
er
at
or
s
RobotsRouters
2017 Kiến trúc máy tính 19
NKK-HUST
n Bộ vi xử lý (Microprocessors)
n Một hoặc một vài CPU được chế tạo trên một chip
n Vi mạch điều khiển tổng hợp (Chipset)
n Vi mạch thực hiện các chức năng nối ghép các thành 
phần của máy tính với nhau 
n Bộ nhớ bán dẫn (Semiconductor Memory) 
n ROM, RAM, Flash memory
n Hệ thống trên chip (SoC – System on Chip) hay 
Bộ vi điều khiển (Microcontrollers)
n Tích hợp các thành phần chính của máy tính trên một 
chip vi mạch
n Được sử dụng chủ yếu trên smartphone, tablet và các 
máy tính nhúng
Một số loại vi mạch số điển hình
2017 Kiến trúc máy tính 20
NKK-HUST
Sự phát triển của bộ vi xử lý 
2017 Kiến trúc máy tính 21
n 1971: bộ vi xử lý 4-bit Intel 4004
n 1972: các bộ xử lý 8-bit
n 1978: các bộ xử lý 16-bit
n Máy tính cá nhân IBM-PC ra đời năm 1981
n 1985: các bộ xử lý 32-bit
n 2001: các bộ xử lý 64-bit
n 2006: các bộ xử lý đa lõi (multicores)
n Nhiều CPU trên 1 chip
NKK-HUST
1.4. Hiệu năng máy tính
n Định nghĩa hiệu năng P (Performance):
Hiệu năng = 1/(thời gian thực hiện)
hay là: P = 1/t
“Máy tính A nhanh hơn máy B k lần”
PA / PB = tB / tA = k
n Ví dụ: Thời gian chạy chương trình:
n 10s trên máy A, 15s trên máy B
n tB / tA = 15s / 10s = 1.5
n Vậy máy A nhanh hơn máy B 1.5 lần
2017 Kiến trúc máy tính 22
NKK-HUST
Tốc độ xung nhịp của CPU 
n Về mặt thời gian, CPU hoạt động theo một xung nhịp 
(clock) có tốc độ xác định
n Chu kỳ xung nhịp T0 (Clock period): thời gian của một 
chu kỳ
n Tốc độ xung nhịp f0 (Clock rate) hay là Tần số xung nhịp: 
số chu kỳ trong 1s
n f0 = 1/T0
n VD: Bộ xử lý có f0 = 4GHz = 4×109Hz
T0 = 1/(4x109) = 0.25x10–9s = 0.25ns 
T0
2017 Kiến trúc máy tính 23
NKK-HUST
Thời gian thực hiện của CPU 
n: số chu kỳ xung nhịp
n Hiệu năng được tăng lên bằng cách:
n Giảm số chu kỳ xung nhịp n
n Tăng tốc độ xung nhịp f0
tCPU = n×T0 =
n
f0
2017 Kiến trúc máy tính 24
n Để đơn giản, ta xét thời gian CPU thực hiện 
chương trình (CPU time):
Thời gian thực hiện của CPU = 
Số chu kỳ xung nhịp x Thời gian một chu kỳ 
NKK-HUST
Ví dụ
n Hai máy tính A và B cùng chạy một chương trình
n Máy tính A: 
n Tốc độ xung nhịp của CPU: fA = 2GHz
n Thời gian CPU thực hiện chương trình: tA = 10s 
n Máy tính B:
n Thời gian CPU thực hiện chương trình: tB = 6s 
n Số chu kỳ xung nhịp khi chạy chương trình trên máy B (nB) nhiều 
hơn 1.2 lần số chu kỳ xung nhịp khi chạy chương trình trên máy 
A (nA)
n Hãy xác định tốc độ xung nhịp cần thiết cho máy B (fB)?
2017 Kiến trúc máy tính 25
NKK-HUST
Ví dụ (tiếp)
t = nf
2017 Kiến trúc máy tính 26
nA = tA × fA =10s×2GHz = 20×109
Số chu kỳ xung nhịp khi chạy chương trình trên máy A:
Số chu kỳ xung nhịp khi chạy chương trình trên máy B:
nB =1.2×nA = 24×109
Ta có: 
fB =
nB
tB
=
24×109
6 = 4×10
9Hz = 4GHz
Tốc độ xung nhịp cần thiết cho máy B:
NKK-HUST
Số lệnh và số chu kỳ trên một lệnh 
Trong trường hợp các lệnh khác nhau có CPI khác nhau, 
cần tính CPI trung bình
Số chu kỳ = Số lệnh của chương trình x Số chu kỳ trên một lệnh 
n = IC ×CPI
Vậy thời gian thực hiện của CPU: 
tCPU = IC ×CPI ×T0 =
IC ×CPI
f0
2017 Kiến trúc máy tính 27
n n - số chu kỳ xung nhịp
n IC - số lệnh của chương trình (Instruction Count)
n CPI - số chu kỳ trên một lệnh (Cycles per Instruction)
Số chu kỳ xung nhịp của chương trình:
NKK-HUST
Ví dụ
n Hai máy tính A và B có cùng kiến trúc tập lệnh
n Máy tính A có: 
n Chu kỳ xung nhịp: TA = 250ps
n Số chu kỳ/ lệnh trung bình: CPIA = 2.0
n Máy tính B: 
n Chu kỳ xung nhịp: TB = 500ps
n Số chu kỳ/ lệnh trung bình: CPIB = 1.2
n Hãy xác định máy nào nhanh hơn và nhanh hơn 
bao nhiêu ?
2017 Kiến trúc máy tính 28
NKK-HUST
Ví dụ (tiếp)
2017 Kiến trúc máy tính 29
Kết luận: máy A nhanh hơn máy B 1.2 lần
ICA = ICB = IC
tA = ICA ×CPIA ×TA = IC ×2.0×250ps = IC ×500ps
tB
tA
=
IC ×600ps
IC ×500ps =1.2
Ta có: tCPU = IC ×CPITB ×T0
Hai máy cùng kiến trúc tập lệnh, vì vậy số lệnh của cùng 
một chương trình trên hai máy là bằng nhau:
tB = ICB ×CPIB ×TB = IC ×1.2×500ps = IC ×600ps
Từ đó ta có:
Thời gian thực hiện chương trình đó trên máy A và máy B:
NKK-HUST
CPI trung bình
n Nếu loại lệnh khác nhau có số chu kỳ khác nhau, 
ta có tổng số chu kỳ:
n CPI trung bình:
2017 Kiến trúc máy tính 30
n = CPIi × ICi( )
i=1
K
∑
CPITB =
n
IC =
1
IC CPIi × ICi( )i=1
K
∑
NKK-HUST
Ví dụ 
n Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh 
thuộc các loại A, B, C. Tính CPI trung bình?
Loại lệnh A B C
CPI theo loại lệnh 1 2 3
IC trong dãy lệnh 1 20 10 20
IC trong dãy lệnh 2 40 10 10
2017 Kiến trúc máy tính 31
NKK-HUST
Ví dụ 
n Cho bảng chỉ ra các dãy lệnh sử dụng các lệnh 
thuộc các loại A, B, C. Tính CPI trung bình?
Loại lệnh A B C
CPI theo loại lệnh 1 2 3
IC trong dãy lệnh 1 20 10 20
IC trong dãy lệnh 2 40 10 10
n Dãy lệnh 1: Số lệnh = 50
n Số chu kỳ =
= 1x20 + 2x10 + 3x20 = 100
n CPITB = 100/50 = 2.0
n Dãy lệnh 2: Số lệnh = 60
n Số chu kỳ =
= 1x40 + 2x10 + 3x10 = 90
n CPITB = 90/60 = 1.5
2017 Kiến trúc máy tính 32
NKK-HUST
Tóm tắt về Hiệu năng
n Hiệu năng phụ thuộc vào:
n Thuật giải
n Ngôn ngữ lập trình
n Chương trình dịch
n Kiến trúc tập lệnh
n Phần cứng
cycle Clock
Seconds
nInstructio
cycles Clock
Program
nsInstructioTime CPU ´´=
tCPU = IC ×CPI ×T0 =
IC ×CPI
f0
2017 Kiến trúc máy tính 33
Thời gian CPU = Số lệnh của chương trình x Số chu kỳ/lệnh 
x Số giây của một chu kỳ
NKK-HUST
MIPS như là thước đo hiệu năng
n MIPS: Millions of Instructions Per Second
(Số triệu lệnh trên 1 giây)
MIPS = Instruction count
Execution time×106
=
Instruction count
Instruction count×CPI
Clock rate
×106
=
Clock rate
CPI×106
6
0
10MIPS
fCPI
´
=6
0
10CPI
fMIPS
´
=
2017 Kiến trúc máy tính 34
NKK-HUST
Ví dụ
Tính MIPS của bộ xử lý với:
clock rate = 2GHz và CPI = 4
2017 Kiến trúc máy tính 35
NKK-HUST
Ví dụ
Tính MIPS của bộ xử lý với:
clock rate = 2GHz và CPI = 4
0.5ns
2ns
§ Chu kỳ T0 = 1/(2x109) = 0.5ns
§ CPI = 4 à thời gian thực hiện 1 lệnh = 4 x 0.5ns = 2ns
§ Số lệnh thực hiện trong 1s = (109ns)/(2ns) = 5x108 lệnh
§ Vậy bộ xử lý thực hiện được 500 MIPS
2017 Kiến trúc máy tính 36
NKK-HUST
Ví dụ 
Tính CPI của bộ xử lý với:
clock rate = 1GHz và 400 MIPS
2017 Kiến trúc máy tính 37
NKK-HUST
Ví dụ 
Tính CPI của bộ xử lý với:
clock rate = 1GHz và 400 MIPS
1ns
§ Chu kỳ T0 = 1/109 = 1ns
§ Số lệnh thực hiện trong 1 s là 400MIPS = 4x108 lệnh
§ Thời gian thực hiện 1 lệnh = 1/(4x108)s = 2.5ns
§ Vậy ta có: CPI = 2.5
2017 Kiến trúc máy tính 38
NKK-HUST
MFLOPS
§ Sử dụng cho các hệ thống tính toán lớn 
§ Millions of Floating Point Operations per Second 
§ Số triệu phép toán số dấu phẩy động trên một giây
GFLOPS(109 )
TFLOPS(1012)
PFLOPS (1015)
MFLOPS = Executed floating point operations
Execution time×106
2017 Kiến trúc máy tính 39
NKK-HUST
Các ý tưởng tuyệt vời trong kiến trúc máy tính
2017 Kiến trúc máy tính 40
1. Design for Moore’s Law
Thiết kế theo luật Moore
2. Use abstraction to simplify design
Sử dụng trừu tượng hóa để đơn giản thiết kế
3. Make the common case fast
Làm cho các trường hợp phổ biến thực hiện nhanh
4. Performance via parallelism
Tăng hiệu năng qua xử lý song song
5. Performance via pipelining
Tăng hiệu năng qua kỹ thuật đường ống
6. Performance via prediction
Tăng hiệu năng thông qua dự đoán
7. Hierarchy of memories
Phân cấp bộ nhớ
8. Dependability via redundancy
Tăng độ tin cậy thông qua dự phòng
NKK-HUST
Hết chương 1
2017 Kiến trúc máy tính 41

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_1_gioi_thieu_chung_nguye.pdf