Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 1
HỆ THỐNG MÁY TÍNH
Computer System
22 August 2011
Nguyễn Kim Khánh,
PhD. in Computer Engineering
Bộ môn Kỹ thuật máy tính
Viện Công nghệ thông tin và Truyền thông
Trường Đại học Bách khoa Hà Nội
NKK-HUT
Contact
Offices: Room 503-B1, DCE, SoICT
Mobile:
091
358
5533
Mobile:
091
-
358
-
5533
e-mail:
22 August 2011
NKK-HUT
Mục tiêu học phần
Là học phần tiếp theo của Kiến trúc máy tính,
nhằm
g
iới thi
ệ
u các kiến thức cơ bản về h
ệ
g ệ
ệ
thống máy tính bao gồm: kiến trúc bộ nhớ,
kiến trúc vào-ra, kiến trúc CPU và các kiến
trúc máy tính song song.
Sinh viên có khả năng đánh giá được hiệu
năng của các họ máy tính, khai thác và sử
22 August 2011
dụng hiệu quả các loại máy tính và có khả
năng tiếp cận để phát triển các hệ máy tính
nhúng phục vụ các mục đích chuyên dụng.
NKK-HUT
Tài liệu tham khảo chính
1. William Stallings - Computer
Organization and Architecture –
Desi
g
nin
g
for Performance
–
2009
gg
(8
th
edition)
2. David A. Patterson & John L.
Hennessy - Computer
Organization and Design
: The
Hardware/Software Interface
–
2009
22 August 2011
Hardware/Software
Interface
2009
(4
th
edition)
3. Behrooz Parhami - Computer
Architecture: From Microprocessors
to Supercomputers -
2005
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 2
NKK-HUT
Nội dung học phần
Chương 1. Giới thiệu chung
ế
Chương 2. Ki
ế
n trúc bộ nhớ
Chương 3. Kiến trúc vào-ra
Chương 4. Kiến trúc bộ xử lý
Chương 5. Kiến trúc máy tính tiên tiến
22 August 2011
NKK-HUT
Hệ thống máy tính
Chương 1
GIỚI THIỆU CHUNG
22 August 2011
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
NKK-HUT
1 1 Máy tính và phân loại
Nội dung
1
.
1
.
Máy
tính
và
phân
loại
1.2. Kiến trúc máy tính
1.3. Sự phát triển của máy tính
1.4. Hiệu năng máy tính
722 August 2011 722 August 2011
NKK-HUT
Máy tính (Computer) là thiết bị điện tử thực hiện
các công việc sau:
Nhận thông tin vào
1.1. Máy tính và phân loại
Nhận
thông
tin
vào
,
Xử lý thông tin theo chương trình được nhớ sẵn bên
trong,
Đưa thông tin ra.
822 August 2011 822 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 3
NKK-HUT
Phân loại truyền thống:
Má i tí h (Mi t )
Phân loại máy tính
Má
y v
i
tí
n
h
(Mi
crocompu
t
ers
)
Máy tính nhỏ (Minicomputers)
Máy tính lớn (Mainframe Computers)
Siêu máy tính (Supercomputers)
922 August 2011 922 August 2011
NKK-HUT
Theo Hennessy/Patterson:
Phân loại máy tính hiện đại
Máy tính để bàn (Desktop Computers)
Máy chủ (Server Computers)
Máy tính nhúng (Embedded Computers)
1022 August 2011 1022 August 2011
NKK-HUT
1.2. Kiến trúc máy tính
Định nghĩatrước đây về kiến trúc máy
tính:
tính:
Cách nhìn logic của máy tính từ người lập
trình (hardware/software interface)
Kiến trúc tập lệnh (Instruction Set Architecture
– ISA)
Là định
nghĩa
hẹp
1122 August 2011 11
Là
định
nghĩa
hẹp
22 August 2011
NKK-HUT
Định nghĩa của Hennessy/ Patterson
Kiến trúc máy tính bao gồm:
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 (hardware/software interface).
Tổ chức máy tính (Computer Organization): nghiên
cứu thiết kế máy tính ở mức cao,chẳng hạn như hệ
thống nhớ, cấu trúc bus, thiết kế bên trong CPU.
Phầncứng
(Hardware): nghiên cứuthiếtkế logic chi
1222 August 2011 12
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.
Kiến trúc tập lệnh thay đổi chậm, tổ chức và
phần cứng máy tính thay đổi rất nhanh.
22 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 4
NKK-HUT
Kiến trúc tập lệnh
Kiến trúc tập lệnh của máy tính bao gồm:
Tậplệnh
:tậphợp các chuỗisố nhị phân
Tập
lệnh
:
tập
hợp
các
chuỗi
số
nhị
phân
mã hoá cho các thao tác mà máy tính
có thể thực hiện
Các kiểu dữ liệu: các kiểu dữ liệu mà
má
y
tính có th
ể
xử l
ý
1322 August 2011 13
y ý
22 August 2011
NKK-HUT
Cấu trúc cơ bản của máy tính
CPU
Bé nhí chÝnh
Bus liªn kÕt hÖ thèng
1422 August 2011 14
Vμo-ra
22 August 2011
NKK-HUT
Bộ xử lý trung tâm (Central Processing Unit):
Điều khiển hoạt động của máy tính và xử lý
dữ liệu
Các thành phần cơ bản của máy tính
dữ
liệu
.
Bộ nhớ chính (Main Memory): Chứa các
chương trình và dữ liệu đang được sử dụng.
Vào ra (Input/Output): Trao đổi thông tin giữa
máy tính với bên ngoài.
1522 August 2011 15
Bus liên kết hệ thống (System Interconnection
Bus): Kết nối và vận chuyển thông tin giữa
các thành phần với nhau.
22 August 2011
NKK-HUT
Mô hình phân lớp của máy tính
1622 August 2011 16
Phần cứng (Hardware): hệ thống vật lý của máy tính.
Phần mềm (Software): các chương trình và dữ liệu.
22 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 5
NKK-HUT
1.3. Sự phát triển của của máy tính
Các thế hệ máy tính
Thế hệ thứ nhất: Máy tính dùng đèn điện tử
chân không (1950s)
Thế hệ thứ hai: Máy tính dùng transistor
(1960s)
Thế hệ thứ ba: Máy tính dùng vi mạch SSI,
MSI và LSI (1970s)
1722 August 2011 17
Thế hệ thứ tư: Máy tính dùng vi mạch VLSI
(1980s)
Thế hệ thứ năm: Máy tính dùng vi mạch
ULSI, SoC (1990s)
22 August 2011
NKK-HUT
Sự phát triển của bộ vi xử lý
1971: bộ vi xử lý 4-bit Intel 4004
1972
-
1977: các bộ xử lý 8
-
bit
1972
-
1977:
các
bộ
xử
lý
8
-
bit
1978-1984: các bộ xử lý 16-bit
Khoảng từ 1985: các bộ xử lý 32-bit
Khoảng từ 2000: các bộ xử lý 64-bit
Từ 2006: các bộ xử lý đa lõi (multicores):
1822 August 2011 18
Từ
2006:
các
bộ
xử
lý
đa
lõi
(multicores):
22 August 2011
NKK-HUT
Máy tính ngày nay
Clusters
Massive Cluster
Gigabit Ethernet
e
frigerators
Robots
Routers
Cars
Sensor
Nets
R
e
1922 August 2011
NKK-HUT
1.4. Hiệu năng máy tính
Định nghĩa hiệu năng:
Performance = 1/Execution Time
“Máy tính X nhanh hơn máy Y n lần”
n==
XY
YX
time Executiontime Execution
ePerformancePerformanc
Ví d Thờigianchạ ch ơng trình
Ví
d
ụ:
Thời
gian
chạ
y
ch
ư
ơng
trình
:
10s trên máy A, 15s trên máy B
Execution Time
B
/ Execution Time
A
= 15s / 10s = 1.5
Vậy máy A nhanh hơn máy B 1.5 lần
2022 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 6
NKK-HUT
Xung nhịp của CPU
Hoạt động của CPU được điều khiển bởi xung
nhịp có tần số xác định
Clock period
Clock (cycles)
Data transfer
and computation
Update state
Chu kỳ xung nhịp (Clock period): thời gian của
ộthkỳ
m
ột
c
h
u
kỳ
:
VD: 250ps = 0.25ns = 250×10
–12
s
Tần số xung nhịp (Clock frequency hay Clock
rate): số chu kỳ trong 1 giây:
VD: 4.0GHz = 4000MHz = 4.0×10
9
Hz
2122 August 2011
NKK-HUT
Thời gian CPU
Cycles Clock CPU
Time Cycle ClockCycles Clock CPUTime CPU
=
×
=
Hiệu năng được tăng lên bằng cách:
Giảm số chu kỳ xung nhịp
ầ ố (C )
RateClock
Tăng t
ầ
n s
ố
xung nhịp
(C
lock Rate
)
2222 August 2011
NKK-HUT
Ví dụ
Máy tính A: 2GHz clock, 10s CPU time
Máy tính B
6s CPU time
Số chu kỳ xung nhịp của B = 1.2 x Số chu kỳ xung nhịp của A
Xác định tần số xung nhịp của máy B?
Rt
Cl k
Ti
CPU
Cl
Cl k
6s
Cycles Clock1.2
Time CPU
Cycles Clock
Rate Clock
A
B
B
B
×
==
4GHz
6s
1024
6s
10201.2
Rate Clock
10202GHz10s
R
a
t
e
Cl
oc
k
Ti
me
CPU
C
yc
l
es
Cl
oc
k
99
B
9
AAA
=
×
=
××
=
×=×=
×=
2322 August 2011
NKK-HUT
Số lệnh và số chu kỳ trên một lệnh
Time Cycle ClockCPICount nInstructioTime CPU
nInstructio per CyclesCount nInstructioCycles Clock
××=
×
=
Số lệnh của chương trình: IC (Instruction Count):
Được xác định bởi chương trình, kiến trúc tập lệnh và chương
trình dịch
Rate Clock
CPICountnInstructio
×
=
Số chu kỳ trên một lệnh: CPI (Cycles per Instruction)
CPI trung bình:
Được xác định bởi phần cứng CPU
Các lệnh khác nhau có CPI khác nhau
2422 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 7
NKK-HUT
Ví dụ
Máy tính A: Cycle Time = 250ps, CPI = 2.0
Máy tính B: Cycle Time = 500ps, CPI = 1.2
Cùng kiếntrúctậplệnh (ISA)
Cùng
kiến
trúc
tập
lệnh
(ISA)
Máy nào nhanh hơn và nhanh hơn bao nhiêu ?
Time
Cycle
CPI
Count
n
Instructio
Time
CPU
500psI250ps2.0I
A
Time Cycle
A
CPICount nInstructio
A
Time CPU
×
×
=
×=××=
××=
A nhanh hơn…
1.2
500psI
600psI
A
Time CPU
B
Time CPU
600psI500ps1.2I
B
Time
Cycle
B
CPI
Count
n
Instructio
B
Time
CPU
=
×
×
=
×=××=
×
×
=
…lần
2522 August 2011
NKK-HUT
Chi tiết hơn về CPI
Nếu loại lệnh khác nhau có số chu kỳ khác
nhau
∑
=
×=
n
1i
ii
)Count nInstructio(CPICycles Clock
CPI trung bình:
∑
⎟
⎞
⎜
⎛
n
Count
n
Instructio
Cycles
Clock
∑
=
⎟
⎠
⎞
⎜
⎝
⎛
×
=
=
1i
i
i
Count nInstructio
Count
n
Instructio
CPI
Count nInstructio
Cycles
Clock
CPI
2622 August 2011
NKK-HUT
Ví dụ
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
Loại lệnh A B C
CPI theo loại lệnh 1 2 3
IC trong dãy lệnh 1 2 1 2
IC trong dãy lệnh 2 4 1 1
Dãy lệnh 1: IC = 5 Dãy lệnh 2: IC = 6
Clock Cycles
= 2×1 + 1×2 + 2×3
= 10
Avg. CPI = 10/5 = 2.0
Clock Cycles
= 4×1 + 1×2 + 1×3
= 9
Avg. CPI = 9/6 = 1.5
2722 August 2011
NKK-HUT
Tóm tắt về Hiệu năng
cycle Clock
Seconds
nInstructio
cycles Clock
Program
nsInstructio
Time CPU ××=
Hiệu năng phụ thuộc vào:
Thuật toán: ảnh hưởng tới IC, có thể cả CPI
Ngôn ngữ lập trình: ảnh hưởng tới IC, CPI
Ch tì hdị h ả hh ở tớiIC CPI
Ch
ương
t
r
ì
n
h
dị
c
h
:
ả
n
h
h
ư
ở
ng
tới
IC
,
CPI
Kiến trúc tập lệnh: ảnh hưởng tới IC, CPI, T
c
2822 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 8
NKK-HUT
MIPS như là thước đo hiệu năng
MIPS: Millions of Instructions Per Second
(Số triệu lệnh trên 1 giây)
6
6
6
10CPI
rate Clock
10
rate Clock
CPIcount nInstructio
count nInstructio
10time Execution
count nInstructio
MIPS
×
=
×
×
=
×
=
29
6
10MIPS
rate Clock
CPI
×
=
22 August 2011
NKK-HUT
Ví dụ
Tính MIPS của bộ xử lý với:
clock rate = 2GHz và CPI = 4
0.5ns
2ns
3022 August 2011 30
1 chu kỳ = 1/(2x10
9
) = 0,5ns
CPI = 4 Æ 1 lệnh = 4x0,5ns = 2ns
Vậy bộ xử lý thực hiện được 500MIPS
22 August 2011
NKK-HUT
Ví dụ
Tính CPI của bộ xử lý với:
clock rate = 1GHz và 400 MIPS?
1ns
410
8
lệ hth hiệ t1
3122 August 2011 31
4
x
10
8
lệ
n
h
th
ực
hiệ
n
t
rong
1
s
Æ 1 lệnh thực hiện trong 1/(4x10
8
)s = 2,5ns
Æ CPI = 2,5
22 August 2011
NKK-HUT
MFLOPS
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(10
9
)
6
10time Execution
operations point floating Executed
MFLOPS
×
=
3222 August 2011 32
TFLOPS(10
12
)
22 August 2011
Bài giảng Hệ thống máy tính 22 August 2011
Nguyễn Kim Khánh - ĐHBKHN 9
NKK-HUT
Hết chương 1
3322 August 2011 3322 August 2011