Kiến trúc máy tính Computer architecture
To improve is to change; to be perfect is to change often. Winston Churchill
1/8/19 SET - HUST 1
Nội dung môn học
• Chương 1: Giới thiệu
• Chương 2: Kiến trúc tập lệnh MIPS – 32 bits
• Chương 3: Bộ xử lý MIPS – 32 bits
• Chương 4: Xử lý đường ống
• Chương 5: Bộ nhớ máy tính
• Chương 6: Tổ chức Vào/ra
1/8/19 SET - HUST 2
Tài liệu tham khảo
• http://www-inst.eecs.berkeley.edu/~cs61c/fa16
/ và
• http://inst.eecs.berkeley.edu/~cs61c/sp15/
• Computer Organization and Design, 5th
Edition : The Hardware/Software Interface
1/8/19 SET - HUST 3
Lịch sử phát triển của máy tính
1/8/19 SET - HUST 4
Máy tính hiện đại
Personal Mobile Devices
5
Máy tính hiện đại
6
Máy tính hiện đại
7
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 ứng dụng
Phần cứng
1/8/19 SET - HUST 8
Quan niệm truyền thống về cấu trúc máy tính
Application (ex: browser)
Compiler
Operating System (Mac OSX)
Software
Assembler
Instruction Set Architecture
Hardware
Processor Memory I/O system
Datapath & Control
Digital Design
Circuit Design transistors
9
Cấu trúc máy tính
Graphical Interface
Application Application Programming
Libraries
Operating System
System Programming Programming Language
Assembler Language
Instruction Set Architecture - “Machine Language”
Processor IO System
Microprogramming Firmware
Datapath and Control Computer Design Digital Design
Logic Design
Circuit Design Circuits and devices
Semiconductors Fabrication
Materials
1/8/19 SET - HUST 10
Kiến trúc máy tính?
• Application
Computer Architecture = Instruction Set Architecture + Machine Organization
Programming
software
• System
instruction set
hardware
Programming
• Processor Architecture • Computer Organization
1/8/19 SET - HUST 11
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ế
Thiết kế máy tính theo yêu cầu
Cấu trúc bộ xử lý MIPS – 32 MIPS = Microprocessor without Interlocked Pipeline Stages
1/8/19 SET - HUST 12
To change
1/8/19 SET - HUST 13
)
C
Định luật Moore: Moore’s Law
I ( t i u c r i
Predicts: 2X Transistors / chip every 2 years
c d e t a r g e t n
i
n a n o s r o t s
i
Gordon Moore Intel Cofounder B.S. Cal 1950!
s n a r t f o #
Year
14
Định luật Moore
Định luật Moore là một bước ngoặt lớn trong ngành công nghệ điện tử, giải thích tại sao nhà sản xuất có thể giảm giá thành trong khi vẫn tiếp tục nâng cao hiệu suất của phần cứng.
Moore’s Law 19652020?
Hiện nay, thời gian để tăng đôi số transistor/inch vuông đã dài hơn vì 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
Đá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?
Dung lượng
9
Chòm tiên nữ
2,000 Years
1 0
Tape /Optical Robot
6
Disk
2 Years
Thời gian lưu trữ /truy cập
Sao diêm vương
1 0
1.5 hr
Hà Nội
Memory
10 0
Jim Gray Turing Award B.S. Cal 1966 Ph.D. Cal 1969!
ạ ọ
1 0
TC-406
My Head
2 1
10 min 1 min (ns)
On Board Cache On Chip Cache Register s
Đ i h c BK HN
Nguyên lý về định vị và phân cấp bộ nhớ
1/8/19 17
Xử lý song song
18
Quan niệm mới (phức tạp hơn một chút!)
Software Hardware
• Parallel Requests
Smart Phone Assigned to computer Warehous e-Scale Computer
• Parallel Threads
e.g., Search “Katz”
Harness Parallelism & Achieve High Performance
Computer
Assigned to core … Core Core
• Parallel Instructions
e.g., Lookup, Ads Memory (Cache)
Input/Output
>1 instruction @ one time Instruction Unit(s)
e.g., 5 pipelined instructions
A2+B 2
A1+B 1
A0+B 0
• Parallel Data
Cor e Functional Unit(s) A3+B 3
Main Memory
>1 data item @ one time Logic Gates
• Hardware
descriptions
19 e.g., Add of 4 pairs of words
All gates functioning in parallel
at same time
Luật Amdahl: Amdahl’s Law
Gene Amdahl Computer Pioneer
1/8/19 20
Tiến trình tìm hiểu về kiến trúc máy tính
1000
CPU
µProc 60%/yr. (2X/1.5yr)
“Moore’s Law”
I n p u t M u l t ip l i e r
I n p u t M u l t ip l i c a n d
3 2
100
L o a d M p
M u l t i p l ic a n d R e g i s t e r
Processor-Memory Performance Gap: (grows 50% / year)
3 2 = > 3 4 s i g n E x
3 2
3 4
< < 1 3 4
10
1
0 3 4 x 2 M U X
3 2 = > 3 4 s i g n E x
Arithmetic
M u l t i x 2 / x 1
3 4
3 4
e c n a m r o f r e P
DRAM 9%/yr. (2X/10 yrs)
DRAM
S u b / A d d
3 4 - b i t A L U
C o n t r o l L o g i c
1
3 4
3 2
S h i f t A l l
3 2
2
Single/multicycle Datapaths
1 9 8 01 9 8 11 9 8 31 9 8 41 9 8 51 9 8 61 9 8 71 9 8 81 9 8 91 9 9 01 9 9 11 9 9 21 9 9 31 9 9 41 9 9 51 9 9 61 9 9 71 9 9 81 9 9 92 0 0 0
1 9 8 2
E N C [ 2 ]
[
2
L O 1
]
2
2
E N C [ 1 ]
b
t
P r e v
E x t r a
i t s
B o o h
H I r e g is t e r ( 1 6 x 2 b i t s )
L O r e g i s t e r ( 1 6 x 2 b it s )
E n c o d e r E N C [ 0 ]
2
I
I
L O [ 1 : 0 ]
l
Time
H d a o L
H r a e C
O L d a o L
3 2
3 2
R e s u l t [ H I ]
R e s u lt [ L O ]
IFetchDcd
Exec Mem WB
IFetchDcd
Exec Mem WB
IFetchDcd
Exec Mem WB
IFetchDcd
Exec Mem WB
Pipelining
I/O
Memory Systems
1/8/19 SET - HUST 21
Cấu tạo của máy tính
Processor
Input
Control
Memory
Datapath
Output
1/8/19 SET - HUST 22
Cấu tạo bộ xử lý
1/8/19 SET - HUST 23
Bộ xử lý cơ bản: Bộ nhớ, Khối điều khiển, Khối tính toán
1/8/19 SET - HUST 24
Các cấp độ diễn tả trừu tượng
High Level Language Program (e.g., C) temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;
lw
$t0, 0($2)
lw
$t1, 4($2)
Compiler
Anything can be represented as a number, i.e., data or instructions
Assembly Language Program (e.g., MIPS)
$t1, 0($2)
$t0, 4($2)
Assembler
sw 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 sw 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
Machine Language Program (MIPS)
Machine Interpretation
Hardware Architecture Description (e.g., block diagrams)
Architecture Implementation
Logic Circuit Description (Circuit Schematic Diagrams) 25
Các khối xử lý cơ bản
1/8/19 SET - HUST 26
Bộ xử lý cơ bản: Bộ nhớ, Khối điều khiển, Khối tính toán
1/8/19 SET - HUST 27
Bộ xử lý hoạt động thế nào?
•
Bộ xử lý làm gì?
– 1. Tải lệnh
– 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
– 4. Thực hiện tính toán
– 5. Tìm ra lệnh tiếp theo
•
Lặp đi lặp lại quá trình
1/8/19 SET - HUST 28
1: Tải giá trị r0 (i) từ bộ nhớ (location 7)
1/8/19 SET - HUST 29
2: Trừ 2 từ r0(i)
1/8/19 SET - HUST 30
3: Kiểm tra nếu r1 bằng 0, nhảy khi điều kiện đúng
1/8/19 SET - HUST 31
4: Tăng r0 (i)
1/8/19 SET - HUST 32
5: Tiếp tục vòng lặp
1/8/19 SET - HUST 33
6: Trừ 2 từ r0(i)
1/8/19 SET - HUST 34
7: Kiểm tra nếu r1 bằng 0, nhảy khi điều kiện đúng
1/8/19 SET - HUST 35
8: Tăng r0 (i)
1/8/19 SET - HUST 36
9: Tiếp tục vòng lặp
1/8/19 SET - HUST 37
10: Trừ 2 từ r0(i)
1/8/19 SET - HUST 38
11: Kiểm tra r1 bằng 0, nhảy khi điều kiện đúng.
1/8/19 SET - HUST 39
12: Dừng chương trình vì lệnh 5 không hợp lệ!
1/8/19 SET - HUST 40
Hiểu chi tiết về bộ xử lý MIPS
1/8/19 SET - HUST 41
Đánh giá hiệu năng
Cách tính hiệu năng
=
Performancex
1 Execution Timex
ExecutionT
ime
y
x
n(cid:0)
Performanc Performanc
e e
ExecutionT
ime
y
x
(cid:0)
Cách tính hiệu năng
T
T or
fC /
cpu
TC c
cpu
c
(cid:0) (cid:0) (cid:0)
Đơn vị đo hiệu năng theo các phân mức
Seconds per program
Application
Useful Operations per second
Programming Language
Compiler
(millions) of Instructions per second – MIPS (millions) of (F.P.) operations per second – MFLOP/s ISA
Datapath Megabytes per second Control
Function Units
Cycles per second (clock rate) Transistors Wires Pins
Clock
Chu kỳ xung nhịp
Combination Logic
. . .
. . .
. . .
. . .
Cycle
ặ ặ ổ
ầ ế ệ ạ H u h t các máy tính hi n đ i không đ i và l p đi l p ỳ ạ i chu k l
Số xung đồng hồ
•
Số xung đồng hồ thực hiện 1 chương trình:
IC
CPI
•
Trong đó:
–
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
thi 1 chỉ thị máy,
•
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 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 loại có CPI tương ứng:
(cid:0) (cid:0)
CPI for this instruction class
A B C
1 2 3 CPI
HUST-FET, 1/8/19
CPI hiệu dụng (trung bình)
• CPI hiệu dụng được tính bằng cách xét tất cả các lớp chỉ thị có
trong chương trình và lấy trung bình với trọng số là tỉ lệ xuất hiện của lớp chỉ thị trong chương trình
n
CPI
IC
CPI (
)
i
i
i
1
– ICi là tỉ lệ (%) số chỉ thị thuộc loại i được thực thi
– CPIi là số chu kỳ (trung bình) cần để thực hiện 1 chỉ thị thuộc
thuộc loại i
– n là số loại chỉ thị
• CPI hiệu dụng phụ thuộc vào tỉ lệ chỉ thị trong một chương trình (tần
suất động của các chỉ thị trong 1 hoặc nhiều chương trình)
(cid:0) (cid:0) (cid:0) (cid:0)
So sánh dựa trên CPI
•
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 hiện I chỉ thị.
T
I
CPI
T
I
ps
I
0,2
250
500
cpu
A
A
,
Ac ,
• Do đó:
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
T
I
CPI
T
I
ps
I
2,1
500
600
cpu
B
B
,
Bc ,
= 1, 2
I I
= 600 · 500 ·
• Máy A nhanh hơn máy B: PerformanceA PerformanceB
= Tcpu,B Tcpu,A
Máy tính A và B cùng triển khai 1 kiến trúc tập lệnh. Máy A có chu kỳ đồng hồ là 250ps, và CPI hiệu dụng cho 1 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?
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
Ví dụ
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 làm tăng số chu kỳ cần thiết lên 1,2 lần. Xác định tốc độ xung đồng hồ máy tính B
•
Công thức để tính thời gian CPU, khi máy tính A thực hiện chương trình:
A
T
cpu
A
,
C f
Ac ,
9
9
(cid:0)
f
C
T
10
2
10
20
10
cycles
•
cpu
A
A
,
Ac , Số chu kỳ máy tính A dùng để thực hiện chương trình:
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
C
C
2,1
B
A
9
(cid:0) (cid:0)
10
B
f
GHz 4
Bc ,
•
2,1 Số chu kỳ máy tính B dùng để thực hiện chương trình:
C T
20 6
cpu
B
,
•
Tốc độ đồng hồ của máy tính B:
•
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
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
So sánh đoạn mã chương trình
•
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:
A B C
•
CPI 1 2 3
Đoạn mã A B
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 C chọn 2 đoạn chỉ thị máy gồm có tần suất các loại chỉ thị như sau: 2
1 1 2
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, 1/8/19 51
So sánh đoạn mã chương trình
A
B
C
Đoạn mã
A
B
C
1
2
3
CPI
1
2
1
2
2
4
1
1
• Đoạn mã 1 dùng 5 chỉ thị, đoạn mã 2 dùng 6 chỉ thị
3
•
I
)231221(
10
CPI (
)
i
i
,1
C 1
i
1
3
Số xung đồng hồ để thực hiện mỗi đoạn mã được tính như sau: (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
C
I
CPI (
)
9)131241(
i
i
2
,2
i
1
(cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0) (cid:0)
•
• 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, 1/8/19 52 Trong đó I1,i, I2,i là số lượng chỉ thị loại i trong đoạn mã 1 và 2 tương ứng