You are on page 1of 53

Kiến trúc máy tính

Computer architecture

om
.c
To improve is to change; to be

ng
perfect is to change often.

co
an
Winston Churchill
th
o ng
du
u
cu

January 14, 2021 SET - HUST 1


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nội dung môn học

om
.c
• Chương 1: Giới thiệu

ng
co
• Chương 2: Kiến trúc tập lệnh MIPS – 32 bits

an
• Chương 3: Bộ xử lý MIPS – 32 bits
th
ng
• Chương 4: Xử lý đường ống
o
du

• Chương 5: Bộ nhớ máy tính


u
cu

• Chương 6: Tổ chức Vào/ra

January 14, 2021 SET - HUST 2


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Tài liệu tham khảo

om
• http://www-

.c
inst.eecs.berkeley.edu/~cs61c/fa16/ và

ng
co
• http://inst.eecs.berkeley.edu/~cs61c/sp15/

an
• Computer Organization and Design, 5th
th
ng
Edition : The Hardware/Software Interface
o
du
u
cu

January 14, 2021 SET - HUST 3


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Lịch sử phát triển của máy tính

om
.c
ng
co
Cơ Transistor (1958) IC(Integrated

an
ENIAC (1946)
• Burroughs 6500 Circuit)
• Blaise Pascal (1642) 18.000 bóng đèn • NCR, CDC 6600

th
• 1642 - 1945 •LSI – VLSI
1500 rơle •Xử lý song song
30 tấn
ng
140 kw
o
du
u

1970s to mid 1980s:


cu

2000s:
1950s : Máy tính số học Có thiết kế tập lệnh và trình biên dịch.
Kiến trúc đặc trưng, có khả năng cấu hình
1960s: Có hệ điều hành, quản lý bộ nhớ Bộ nhớ chia sẻ đa xử lý.
lại, di động, tiêu thụ ít năng lượng, xử lý
mức thấp 1990s: CPU, bộ nhớ , I/O system, Multi-processors,
kết nối mạng, Thiết kế mức VLSI
song song.

January 14, 2021 SET - HUST 4


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Máy tính hiện đại

om
.c
ng
co
an
th
o ng
du
u

Personal
cu

Mobile
Devices
5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

6
CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
co
an
th
o ng
du
u
cu

7
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Quan niệm truyền thống về cấu trúc máy tính
Phần mềm
hệ thống
Phần mềm

om
ứng dụng

Phần

.c
Phân loại cứng

ng
co
Chức Cấu trúc
Cấu tạo

an
năng bộ xử lý

th
ng
Máy tính
Máy tính Von
chuyên RISC CISC Harvard
o
nhúng newmann
dụng
du
u

PDP-11,
ARM, SuperH, MIPS,
cu

VAX,
SPARC, DEC Alpha, PA-
Motorola
RISC-V, PIC, PowerPC
68k, x86
IBM.
intel.

January 14, 2021 SET - HUST 8


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Quan niệm truyền thống về cấu trúc
máy tính

om
.c
Application (ex: browser)

ng
Operating

co
Compiler System
(Mac OSX)

an
Software Assembler

th
Instruction Set
Hardware Processor Memory I/O system Architecture
o ng
Datapath & Control
du

Digital Design
u
cu

Circuit Design
transistors

9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Cấu trúc máy tính
Graphical Interface
Application
Application

om
Programming
Libraries

.c
Operating System

ng
System Programming
Programming Language

co
Assembler Language

an
Instruction Set Architecture - “Machine Language”
Processor
th IO System
ng
Firmware Microprogramming
o
du

Computer Design Datapath and Control


Digital Design
u

Logic Design
cu

Circuit Design Circuits and devices


Fabrication Semiconductors
Materials
January 14, 2021 SET - HUST 10
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Kiến trúc máy tính?
Computer Architecture = Instruction Set Architecture + Machine Organization

om
.c
• Application Programming

ng
• System Programming

co
an
software

th
instruction set
ng
hardware
o
• Processor Architecture
du

• Computer Organization
u
cu

January 14, 2021 SET - HUST 11


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bắt đầu từ : Nguyên lý thiết kế và cấu trúc máy tính
truyền thống

Hiểu nguyên lý thiết kế

om
.c
Thiết kế máy tính theo yêu cầu

ng
co
Cấu trúc bộ xử lý MIPS – 32

an
th
MIPS = Microprocessor without Interlocked Pipeline
ng
Stages
o
du
u
cu

January 14, 2021 SET - HUST 12


CuuDuongThanCong.com https://fb.com/tailieudientucntt
om
.c
ng
To change

co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 13


CuuDuongThanCong.com https://fb.com/tailieudientucntt
# of transistors on an integrated circuit (IC)
Định luật Moore: Moore’s Law

om
Predicts:

.c
2X Transistors / chip

ng
every 2 years

co
an
th
o ng
du
u

Gordon Moore
cu

Intel Cofounder
B.S. Cal 1950!

Year 14
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Định luật Moore

om
Định luật Moore là một bước ngoặt

.c
lớn trong ngành công nghệ điện tử,

ng
giải thích tại sao nhà sản xuất có thể

co
giảm giá thành trong khi vẫn tiếp tục

an
nâng cao hiệu suất của phần cứng.
th
o ng
Hiện nay, thời gian để tăng đôi số
du

transistor/inch vuông đã dài hơn vì


u
cu

kích thước transistor không thể


giảm nhỏ kích thước phân tử
<14nm (Hạn chế về thiết kế vật lý).
15
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đánh giá khả năng lưu trữ trên bộ nhớ
tương tự của Jim Gray
How Far Away is the Data?

om
Dung lượng Thời gian lưu trữ /truy cập
9 Chòm tiên nữ 2,000 Years

.c
10 Tape /Optical
Robot

ng
Jim Gray

co
Turing Award
6 Disk B.S. Cal 1966

an
10 Sao diêm vương 2 Years Ph.D. Cal 1969!

th
o ng
du

Hà Nội 1.5 hr
u

100 Memory
cu

10 Đại học BK HN 10 min


On Board Cache
2 On Chip Cache TC-406 1 min
1 Registers My Head (ns)
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Nguyên lý về định vị và phân cấp bộ nhớ

om
.c
ng
co
an
th
o ng
du
u
cu

1/14/2021 17
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Xử lý song song

om
.c
ng
co
an
th
o ng
du
u
cu

18
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Quan niệm mới
(phức tạp hơn một chút!)
Software Hardware
• Parallel Requests

om
Warehouse Smart
Assigned to computer -Scale Phone

.c
e.g., Search “Katz” Computer
Harness

ng
• Parallel Threads Parallelism &

co
Assigned to core Achieve High
e.g., Lookup, Ads Computer

an
Performance
• Parallel Instructions
th
Core … Core
>1 instruction @ one time
ng
Memory (Cache)
e.g., 5 pipelined instructions
o
Input/Output Core
du

• Parallel Data
Instruction Unit(s) Functional
>1 data item @ one time
u

Unit(s)
cu

e.g., Add of 4 pairs of words A0+B0 A1+B1 A2+B2 A3+B3


• Hardware descriptions
Main Memory
All gates functioning in
parallel at same time Logic Gates
19
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Luật Amdahl: Amdahl’s Law

om
.c
ng
co
an
th
ng Gene Amdahl
Computer Pioneer
o
du
u
cu

1/14/2021 20
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Tiến trình tìm hiểu về kiến trúc máy tính µProc
1000
60%/yr.
CPU
(2X/1.5yr)
“Moore’s Law”
Input Input
Multiplicand Multiplier

32 100 Processor-Memory
Multiplicand Performance Gap:
Register LoadMp
(grows 50% / year)

Arithmetic

Performance
32=>34
signEx

Single/multicycle
32
<<1
34
34 10
32=>34 1 0
signEx 34x2 MUX
34 34
Multi x2/x1 DRAM
9%/yr.

om
DRAM (2X/10 yrs)

Datapaths 34-bit ALU

34
Sub/Add
Control
Logic
1

[0]"
32 ShiftAll

198

198

198

198
198
198
199
199

199

199

200
098

198

498
198

199

399
199

699
199
199
32 2

"LO

7
8
9
0

0
1
1

3
1
5
6

2
1
4
5
1
7
8
9
ENC[2]

LO[1]

Encoder
2 2

2 bits

Booth
HI register LO register

Extra

.c
ENC[1]

Prev
(16x2 bits) (16x2 bits)
ENC[0]
2

LoadLO
ClearHI
LoadHI
LO[1:0]
Time

32 32

ng
Result[HI] Result[LO]

co
an
th
ng
IFetchDcd Exec Mem WB
o
du

IFetchDcd Exec Mem WB

IFetchDcd Exec Mem WB


u
cu

IFetchDcd Exec Mem WB

Pipelining

I/O
January 14, 2021 SET - HUST 21
CuuDuongThanCong.com
Memory Systems https://fb.com/tailieudientucntt
Cấu tạo của máy tính

om
.c
ng
co
an
Processor
th
ng
Input
o
du

Control
Memory
u
cu

Datapath Output

January 14, 2021 SET - HUST 22


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Cấu tạo bộ xử lý

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 23


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bộ xử lý cơ bản: Bộ nhớ,
Khối điều khiển, Khối tính

om
toán

.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 24


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các cấp độ diễn tả trừu tượng
High Level Language temp = v[k];

om
v[k] = v[k+1];
Program (e.g., C) v[k+1] = temp;

.c
Compiler
lw $t0, 0($2) Anything can be represented

ng
Assembly Language lw $t1, 4($2) as a number,
Program (e.g., MIPS) sw $t1, 0($2)

co
sw $t0, 4($2) i.e., data or instructions
Assembler

an
0000 1001 1100 0110 1010 1111 0101 1000
Machine Language 1010 1111 0101 1000 0000 1001 1100 0110

th
Program (MIPS) 1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111
ng
Machine
o
Interpretation
du

Hardware Architecture Description


u

(e.g., block diagrams)


cu

Architecture
Implementation

Logic Circuit Description


(Circuit Schematic Diagrams) 25
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các khối xử lý cơ bản

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 26


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bộ xử lý cơ bản: Bộ nhớ,
Khối điều khiển, Khối tính

om
toán

.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 27


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Bộ xử lý hoạt động thế
nào?

om
.c
• Bộ xử lý làm gì?

ng
– 1. Tải lệnh

co
– 2. Tìm ra toán tử nào phải thực thi
– 3. Tìm ra dữ liệu nào sử dụng

an
– 4. Thực hiện tính toán

th
– 5. Tìm ra lệnh tiếp theo
• Lặp đi lặp lại quá trình
o ng
du
u
cu

January 14, 2021 SET - HUST 28


CuuDuongThanCong.com https://fb.com/tailieudientucntt
1: Tải giá trị r0 (i) từ bộ nhớ
(location 7)

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 29


CuuDuongThanCong.com https://fb.com/tailieudientucntt
2: Trừ 2 từ r0(i)

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 30


CuuDuongThanCong.com https://fb.com/tailieudientucntt
3: Kiểm tra nếu r1 bằng 0,

om
nhảy khi điều kiện đúng

.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 31


CuuDuongThanCong.com https://fb.com/tailieudientucntt
4: Tăng r0 (i)

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 32


CuuDuongThanCong.com https://fb.com/tailieudientucntt
5: Tiếp tục vòng lặp

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 33


CuuDuongThanCong.com https://fb.com/tailieudientucntt
6: Trừ 2 từ r0(i)

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 34


CuuDuongThanCong.com https://fb.com/tailieudientucntt
7: Kiểm tra nếu r1 bằng 0, nhảy
khi điều kiện đúng

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 35


CuuDuongThanCong.com https://fb.com/tailieudientucntt
8: Tăng r0 (i)

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 36


CuuDuongThanCong.com https://fb.com/tailieudientucntt
9: Tiếp tục vòng lặp

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 37


CuuDuongThanCong.com https://fb.com/tailieudientucntt
10: Trừ 2 từ r0(i)

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 38


CuuDuongThanCong.com https://fb.com/tailieudientucntt
11: Kiểm tra r1 bằng 0, nhảy khi
điều kiện đúng.

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 39


CuuDuongThanCong.com https://fb.com/tailieudientucntt
12: Dừng chương trình vì lệnh 5
không hợp lệ!

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 40


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Hiểu chi tiết về bộ xử lý MIPS

om
.c
ng
co
an
th
o ng
du
u
cu

January 14, 2021 SET - HUST 41


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đánh giá hiệu năng

om
.c
Thời gian đáp ứng
(thời gian thực thi) –

ng
là khoảng thời gian
giữa thời điểm bắt •Quan trọng đối với

co
đầu thực hiên và
1 người sử dụng

an
thời điểm hoàn
thành một nhiệm vụ

th
o ng
du

Thông lượng (dải


thông) – là tổng số •Quan trọng đối với
u

nhiệm vụ có thể
cu

được hoàn thành


trong 1 khoảng thời
người điều hành
gian trung tâm dữ liệu
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Cách tính hiệu năng

om
.c
Hiệu năng và
1 thời gian
Performance x =

ng
Giảm thời thực thi có
Execution Time x gian đáp ứng quan hệ

co
thường sẽ nghịch đảo
tăng thông

an
lượng
Để tối đa hóa

th
hiệu năng,
cần tối thiểu
ng
hóa thời gian
Performanc ex ExecutionT ime thực hiện
o
y
n
du

Performanc ey ExecutionT ime x


u
cu

Cải thiện hiệu năng


CuuDuongThanCong.com https://fb.com/tailieudientucntt
Cách tính hiệu năng

om
Thời gian dùng để
tính hiệu năng

.c
ng
co
Thời gian đáp Thời gian bộ xử

an
ứng lý (CPU time)

th
o ng
Thời gian vào
du

Thời gian truy Thời gian CPU Thời gian CPU


ra, thời gian cho hệ thống
cập đĩa , bộ nhớ người dùng
hệ điều hành
u
cu

Thời gian CPU


Thời gian CPU dành cho hệ điều
thực hiện mã hành thực hiện
T cpu C T c or T cpu C / fc lệnh của các nhiệm vụ cần
chương trình thiết cho CT của
người dùng
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Đơn vị đo hiệu năng theo các phân mức

Seconds per program


Application

om
Programming Useful Operations per second

.c
Language

ng
Compiler
(millions) of Instructions per second –

co
MIPS
ISA

an
(millions) of (F.P.) operations per second –
MFLOP/s

th
Datapath
Control Megabytes per second
ng
Function Units
o
Cycles per second (clock rate)
du

Transistors Wires Pins


u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Chu kỳ xung nhịp
Clock

om
.c
ng
. . . .
. . Combination Logic . .

co
. . . .

an
th
ng Cycle
o
du

Hầu hết các máy tính hiện đại không đổi và


u
cu

lặp đi lặp lại chu kỳ

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Số xung đồng hồ

om
.c
• Số xung đồng hồ thực hiện 1 chương trình: C I CPI

ng
• Trong đó:

co
– I là số chỉ thị máy cần thực hiện trong chương trình
– CPI (eng. Clock cycles per Instruction) là số xung đồng hồ trung bình cần để thực

an
thi 1 chỉ thị máy,

th
• CPI có thể dùng để so sánh các máy tính khác nhau cùng triển khai 1 kiến trúc tập
ng
lệnh.
• Ví dụ: có 3 loại lệnh A, B, C khác nhau trong 1 kiến trúc tập lệnh. Mỗi lệnh trong từng
o
du

loại có CPI tương ứng:


u
cu

CPI for this instruction class


A B C
CPI 1 2 3

HUST-FET, 14/01/2021
CuuDuongThanCong.com https://fb.com/tailieudientucntt
CPI hiệu dụng (trung bình)

om
• CPI hiệu dụng được tính bằng cách xét tất cả các lớp chỉ thị có

.c
trong chương trình và lấy trung bình với trọng số là tỉ lệ xuất hiện

ng
của lớp chỉ thị trong chương trình

co
n

CPI ( CPI IC i )

an
i
i 1

– ICi là tỉ lệ (%) số chỉ thị thuộc loại i được thực thi

th
– CPIi là số chu kỳ (trung bình) cần để thực hiện 1 chỉ thị thuộc
ng
thuộc loại i
o
du

– n là số loại chỉ thị


u

• CPI hiệu dụng phụ thuộc vào tỉ lệ chỉ thị trong một chương trình (tần
cu

suất động của các chỉ thị trong 1 hoặc nhiều chương trình)

CuuDuongThanCong.com https://fb.com/tailieudientucntt
So sánh dựa trên CPI

om
.c
• Khi 2 máy tính A, B cùng thực hiện 1 chương trình, chúng cùng thực

ng
hiện I chỉ thị.
• Do đó: T

co
cpu , A
I CPI T I 2 , 0 250 ps
A c,A
500 I

an
T cpu ,B
I CPI B
T c ,B I 1, 2 500 ps 600 I

th
• Máy A nhanh hơn máy B:
ng
Performance A Tcpu,B 600 ´ I
o
Máy tính A và B cùng triển khai 1 kiến
= = =1, 2
du

trúc tập lệnh. Máy A có chu kỳ đồng hồ


Performance B Tcpu,A 500 ´ I là 250ps, và CPI hiệu dụng cho 1
u
cu

chương trình P là 2,0. Máy B có chu kỳ


đồng hồ là 500ps, và CPI hiệu dụng
cho cùng 1 chương trình P là 1,2. Máy
tính nào nhanh hơn và nhanh hơn bao
nhiêu?

CuuDuongThanCong.com https://fb.com/tailieudientucntt
Máy tính A với xung đồng hồ 2GHz thực hiện 1 chương
trình hết 10 giây. Để thực hiện chương trình đó trong 6
giây bằng máy tính B, ta cần tăng tốc độ xung đồng hồ
của máy B. Tuy nhiên, tăng tốc độ xung đồng hồ cũng

Ví dụ
làm tăng số chu kỳ cần thiết lên 1,2 lần. Xác định tốc

om
độ xung đồng hồ máy tính B

.c
• Công thức để tính thời gian CPU, khi máy tính A thực hiện chương trình:

ng
co
C A
T cpu ,A
fc,A

an
• Số chu kỳ máy tính A dùng để thực hiện chương trình:

th
ng 9 9
C A
T cpu ,A
fc,A 10 2 10 20 10 cycles
o
• Số chu kỳ máy tính B dùng để thực hiện chương trình:
du

C 1, 2 C
u

B A 9
C 1, 2 20 10
cu

B
f c ,B 4 GHz
• Tốc độ đồng hồ của máy tính B:
T cpu ,B
6

• Hiệu năng có thể cải thiện bằng cách giảm số chu kỳ 1 xung đồng hồ hoặc giảm
số chu kỳ cần thiết để thực hiện chương trình

CuuDuongThanCong.com https://fb.com/tailieudientucntt
So sánh đoạn mã chương
trình

om
.c
• Người thiết kế một máy tính triển khai kiến trúc tập lệnh gồm 3 loại chỉ thị
A, B, C được CPI như sau:

ng
co
A B C

an
CPI 1 2 3

th
• Với 1 câu lệnh ở ngôn ngữ bậc cao, người viết trình biên dịch có thể lựa
ng
chọn 2 đoạn chỉ thị máy gồm có tần suất các loại chỉ thị như sau:
o
du

Đoạn mã A B C
u

1 2 1 2
cu

2 4 1 1
• Đoạn mã nào gồm nhiều chỉ thị hơn? Đoạn mã nào nhanh hơn? Tính CPI
của từng đoạn mã.

HUST-FET, 14/01/2021 51
CuuDuongThanCong.com https://fb.com/tailieudientucntt
So sánh đoạn mã chương
trình

om
A B C

.c
Đoạn mã A B C
CPI 1 2 3

ng
1 2 1 2

co
2 4 1 1

an
th
• Đoạn mã 1 dùng 5 chỉ thị, đoạn mã 2 dùng 6 chỉ thị ng
• Số xung đồng hồ để thực hiện mỗi đoạn mã được tính như sau:
3
o
du

C1 ( CPI i
I 1,i ) (1 2 2 1 3 2) 10
i 1
u

3
cu

C 2
( CPI i
I 2 ,i ) (1 4 2 1 3 1) 9
i 1

• Trong đó I1,i, I2,i là số lượng chỉ thị loại i trong đoạn mã 1 và 2 tương ứng
• Như vậy đoạn mã 1 chậm hơn đoạn mã 2, mặc dù dùng ít chỉ thị hơn

HUST-FET, 14/01/2021 52
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Các yếu tố ảnh hưởng đến hiệu năng

om
.c
ng
co
an
th
o ng
du
u
cu

CuuDuongThanCong.com https://fb.com/tailieudientucntt

You might also like