Bài giảng kiến trúc máy tính chương 1: Nhập môn kiến trúc máy tính
Một máy tính số được phát triển trên cơ sở của 2 phần: Phần cứng và phần mềm - Phần cứng (Hardware) - Phần mềm (Software)
Bạn đang xem trước 20 trang tài liệu Bài giảng kiến trúc máy tính chương 1: Nhập môn kiến trúc máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài giảng
KIẾN TRÚC MÁY TÍNH
TRƯỜNG CĐCĐ ĐỒNG THÁP
KHOA KT-CN
9/7/2010 GV: Huỳnh Văn Khỏe 2
Chương 1: Nhập môn kiến trúc máy tính
9/7/2010 GV: Huỳnh Văn Khỏe 3
Nội dung:
1.1 Một số khái niệm và nguyên lý cơ bản
1.1.1 Nguyên tắc tổ chức
1.1.2 Ngôn ngữ máy và các cấp kiến trúc máy tính
1.2 Lịch sử phát triển và phân loại máy tính
1.2.1 Lịch sử phát triển
1.2.2 Phân loại máy tính
1.3 Các hệ thống số
1.3.1 Hệ thập phân
1.3.2 Hệ nhị phân
1.3.2 Hệ bát phân
1.3.3 Hệ thập lục phân
1.4 Số nguyên có dấu
9/7/2010 GV: Huỳnh Văn Khỏe 4
1.1 Một số khái niệm và nguyên lý cơ bản
1.1.1 Nguyên tắc tổ chức:
Một máy tính số được phát triển trên cơ sở của 2
phần: Phần cứng và phần mềm
- Phần cứng (Hardware)
- Phần mềm (Software)
9/7/2010 GV: Huỳnh Văn Khỏe 5
Phần cứng (Hardware)
9/7/2010 GV: Huỳnh Văn Khỏe 6
1.1 Một số khái niệm và nguyên lý cơ bản
1.1.2 Ngôn ngữmáy và các cấp kiến trúc máy tính
Các ngôn ngữ bậc cao và
hướng đối tượngi t
Cấp hợp ngữ
Cấp máy hệ điều hànhi
Cấp lệnh máy (lệnh vĩ
mô)
l (l ĩ
)
Cấp vi lệnh (lệnh vi mô)i l (l i )
Cấp logic số (Các mạch
điện tử số)
l i (
i t )
5
4
3
2
1
0
9/7/2010 GV: Huỳnh Văn Khỏe 7
1.2 Lịch sử phát triển và ứng dụng của máy
tính điện tử:
1.2.1 Các thế hệ máy tính:
Thế hệ thứ I
(1946 – 1957)
Thế hệ thứ II
(1958 – 1964)
Thế hệ thứ III
(1965 – 1971)
Thế hệ thứ IV
(1972 - … )
9/7/2010 GV: Huỳnh Văn Khỏe 8
1.2.2 Lịch sử phát triển:
Sự phát triển của máy tính được mô tả dựa trên sự tiến
bộ của các công nghệ chế tạo các linh kiện cơ bản của
máy tính như: bộ xử lý, bộ nhớ, các ngoại vi,…
1.2 Lịch sử phát triển và ứng dụng của máy
tính điện tử:
9/7/2010 GV: Huỳnh Văn Khỏe 9
1.2.2 Lịch sử phát triển:
1.2.2.1 Thế hệ đầu tiên (1946-1957):
- Công nghệ chế tạo:
+ Đèn điện tử
+ Rờ le
- Phần mềm:
+ Lập trình bằng tay
9/7/2010 GV: Huỳnh Văn Khỏe 10
1.2.2 Lịch sử phát triển:
1.2.2.1 Thế hệ đầu tiên
(1946-1957):
Tiêu biểu: ENIAC
(Electronic Numerical
Integrator and Computer)
là máy tính điện tử số đầu
tiên do Giáo sư Mauchly
và người học trò Eckert tại
Đại học Pennsylvania thiết
kế vào năm 1943 và được
hoàn thành vào năm 1946
9/7/2010 GV: Huỳnh Văn Khỏe 11
1.2.2.1 Thế hệ đầu tiên:
9/7/2010 GV: Huỳnh Văn Khỏe 12
1.2.2.1 Thế hệ đầu tiên:
Giáo sư toán học John
Von Neumann đã đưa ra ý
tưởng thiết kế máy tính
IAS (Princeton Institute for
Advanced Studies
Máy tính Von Neumann.
9/7/2010 GV: Huỳnh Văn Khỏe 13
- Sử dụng Transistor lưỡng
cực (BJT)
- Mạch in
- Bộ nhớ xuyến từ
- Ngôn ngữ lập trình đầu
tiên : FORTRAN (1956),
COBOL (1959), ALGOL (1960)
- Hệ điều hành kiểu tuần tự
(Batch Processing) được dùng
1.2.2.2 Thế hệ thứ 2 (1958-1964):
9/7/2010 GV: Huỳnh Văn Khỏe 14
1.2.2.2 Thế hệ thứ 2 (1958-1964):
9/7/2010 GV: Huỳnh Văn Khỏe 15
1.2.2.2 Thế hệ thứ 2 (1958-1964):
- Mạch in (PCB: Printed Circuit Board)
9/7/2010 GV: Huỳnh Văn Khỏe 16
1.2.2.2 Thế hệ thứ 2 (1958-1964):
- Bộ nhớ xuyến từ:
9/7/2010 GV: Huỳnh Văn Khỏe 17
- Mạch tích hợp (IC: Integrated Circuit)
- S/MSI : Small/Medium Scale Integration
- Mạch in nhiều lớp
- Bộ nhớ bán dẫn
- Máy tính đa chương trình
- Hệ điều hành chia thời gian được dùng.
1.2.2.3 Thế hệ thứ 3 (1965-1971):
9/7/2010 GV: Huỳnh Văn Khỏe 18
1.2.2.3 Thế hệ thứ 3 (1965-1971):
9/7/2010 GV: Huỳnh Văn Khỏe 19
Công nghệ chế tạo:
- L/VLSI : Large/Very large Scale
Integration
- Bộ xử lí (Microprocessor)
PC (Personal Computer)
NC (Network Computer)
- Bộ nhớ bán dẫn, bộ nhớ cache
và bộ nhớ ảo
- Kỹ thuật ống dẫn (pipeline),
máy tính song song
Phần mềm:
- Các giải thuật Song song,
- HĐH phân tán (Client-server)
1.2.2.4 Thế hệ thứ 4 (1972-nay):
9/7/2010 GV: Huỳnh Văn Khỏe 20
1.2.2.4 Thế hệ thứ 4 (1972-nay)
9/7/2010 GV: Huỳnh Văn Khỏe 21
1.2.2.5 Khuynh hướng hiện đại:
9/7/2010 GV: Huỳnh Văn Khỏe 22
1.2.3 Phân loại máy tính:
Đơn vị flop:
- gigaflop tỷ phép tính/giây
- teraflop nghìn tỷ phép tính/giây
- petaflop triệu tỷ phép tính/giây
- exaflop tỷ tỷ phép tính/giây
- zettaflop nghìn tỷ tỷ phép tính/giây
- yottaflop triệu tỷ tỷ phép tính/giây
- xeraflop tỷ tỷ tỷ phép tính/giây
9/7/2010 GV: Huỳnh Văn Khỏe 23
1.2.3 Phân loại máy tính:
- Siêu máy tính (Super computer):
- Vượt trội trong khả năng và tốc độ
xử lý.
- Siêu máy tính hiện nay có tốc độ xử
lý hàng trăm teraflop (một teraflop
tương đương với hiệu suất một nghìn
tỷ phép tính/giây)
- Có thể hiểu siêu máy tính là hệ
thống những máy tính làm việc song
song.
- Giá vài triệu USD
- Dùng để tính toán khoa học
9/7/2010 GV: Huỳnh Văn Khỏe 24
1.2.3 Phân loại máy tính:
- Siêu máy tính (Super computer):
- Siêu máy tính mới của IBM gồm 96
khối máy, mỗi khối có kích cỡ bằng
một chiếc tủ lạnh
- Tên là Sequoia, sẽ được đưa ra thị
trường vào năm 2011 và khách hàng
đầu tiên là Bộ Năng lượng Mỹ. Bộ này
sẽ sử dụng nó cho các nghiên cứu thử
nghiệm hạt nhân.
- Sequoia được thiết kế có tốc độ xử lý
20 triệu tỷ phép tính/1 giây, nhanh hơn
20 lần so với tốc độ của chiếc siêu máy
tính nhanh nhất thế giới hiện nay và
nhanh gấp 2 triệu lần một chiếc máy
tính thông thường.
9/7/2010 GV: Huỳnh Văn Khỏe 25
1.2.3 Phân loại máy tính:
- Siêu máy tính (Super computer):
- Nhỏ gọn như máy để bàn
- Siêu máy tính SC072 – tên
mã là Catapult
- Trang bị tới 72 chip vi xử lý,
48GB dung lượng bộ nhớ RAM,
3 cổng PCIExpress kết nối thiết
bị lưu trữ và có mức tiêu thụ
năng lượng trung bình vào
khoảng 200 watts.
9/7/2010 GV: Huỳnh Văn Khỏe 26
1.2.3 Phân loại máy tính:
- Máy tính lớn (Mainframe)
- Là loại máy tính có kích
thước lớn được sử dụng chủ
yếu bởi các công ty lớn như
các ngân hàng, các hãng bảo
hiểm ...
- Có thể nhận hàng ngàn lệnh
cùng 1 lúc.
- Ví dụ máy IBM Z9 (2008) có
thể được cài 20 processor và
đáp ứng 8000.000.000 (8 tỉ)
lệnh 1 giây .
9/7/2010 GV: Huỳnh Văn Khỏe 27
1.2.3 Phân loại máy tính:
- Máy tính mini (Minicomputer)
- Được sử dụng như mainframe
- Sức mạnh ở giữa máy tính lớn
và máy tính cá nhân
- Là một hệ thống đa xử lý có
khả năng hỗ trợ từ 4 đến khoảng
200 người sử dụng cùng một lúc.
- Ứng dụng trong các trường đại
học, các ngành công nghiệp,và
thương mại
- Giá vài chục ngàn USD
9/7/2010 GV: Huỳnh Văn Khỏe 28
1.2.3 Phân loại máy tính:
- Máy tính cá nhân (Microcomputer/PC)
9/7/2010 GV: Huỳnh Văn Khỏe 29
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 30
Quy luật MOORE về sự phát triển của máy tính
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 31
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 32
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 33
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 34
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 35
Quy luật MOORE về sự phát triển của máy tính
Thành quả của máy tính:
9/7/2010 GV: Huỳnh Văn Khỏe 36
1.3 Các hệ thống số
- Khái niệm thông tin
Thông tin số: tri thức về một trạng thái trong số một số
hữu hạn các trạng thái có thể có
Lượng tử thông tin:
1 bit thông tin: được biểu diễn bởi số nhị phân 0,1
n bit có 2n trạng thái khác nhau
Lượng thông tin chứa trong tri thức của một trạng thái
trong số N là I= log2N
Độ lớn thông tin mà máy tính có thể thao tác: 8, 16, 32,
64 bits
9/7/2010 GV: Huỳnh Văn Khỏe 37
1.3 Các hệ thống số
- Biểu diễn số:
Cần phân biệt số và cách thể hiện số.
Thể hiện một số là một cách mã hoá
Một hệ thống số được gọi là hệ b sẽ gồm b ký hiệu trong
một tập hợp:
Một số N được viết:
Sẽ có giá trị là:
i
n
mi
i
m
m
i
i
n
n
n
n
ba
babaababababaN
.........(
1
10
1
1
1
1
110 ,...,, bb ssss
bibminn saaaaaaaaaN ;)...,......( 21011
9/7/2010 GV: Huỳnh Văn Khỏe 38
1.3 Các hệ thống số
1.3.1 Hệ thập phân (cơ số 10)
Gồm 10 số mã trong một tập hợp
1.3.2 Hệ nhị phân (cơ số 2)
Gồm 2 số mã trong một tập hợp
1.3.3 Hệ bát phân (cơ số 8)
Gồm 8 số mã trong một tập hợp
1.3.4 Hệ thập lục phân (cơ số 16)
Gồm 16 số mã trong một tập hợp (theo sau có chữ
H hay h)
9,...,2,1,010 s
1,02 s
7,...,2,1,08 s
FEDCBAs ,,,,,,9,...,2,1,016
9/7/2010 GV: Huỳnh Văn Khỏe 39
1.3.5 Chuyển cơ số
Từ hệ b sang hệ 10
Từ hệ 10 sang hệ b
Một số N hệ b có dạng:
Trong đó:
: là phần nguyên
và : là phần lẻ của N
i
n
mi
i
m
m
i
i
n
n
n
n
ba
babaababababaN
.........(
1
10
1
1
1
1
bibminn saaaaaaaaaN ;)...,......( 21011
)()......( 01 NPEaaaa binn
)()...,0( 21 NPFaaa bm
9/7/2010 GV: Huỳnh Văn Khỏe 40
Từ hệ 10 sang hệ b
VD: đổi số 25,12510 sang hệ 2
Phần nguyên 25:2=12 dư 1 a0=1
12:2=6 dư 0 a1=0
6:2 = 3 dư 0 a2=0
3:2 =1 dư 1 a3=1
1:2 = 0 dư 1 a4=1
PE(N) = 11001
9/7/2010 GV: Huỳnh Văn Khỏe 41
Từ hệ 10 sang hệ b
Phần lẻ: 0,125 x 2 = 0,025 a-1=0
0,025 x 2 =0,5 a-2=0
0,5 x 2 =1,0 a-3 = 1
PF(N)=001
Kết quả : 25,12510 = 11001.0012
9/7/2010 GV: Huỳnh Văn Khỏe 42
Đổi một số từ hệ b sang hệ bk và ngược lại:
Để đổi một số từ hệ b sang hệ bk, từ dấu phẩy đi về 2
phía ta nhóm từng k số hạng, giá trị của mỗi k số hạng
này (tính theo hệ b) chính là số trong hệ bk
VD: đổi số N=10111110101.011012 sang hệ 8 = 23
N= 010 111 110 101. 011 010
N= 2 7 6 5 , 3 2 8
9/7/2010 GV: Huỳnh Văn Khỏe 43
Đổi một số từ hệ bk sang hệ bp và ngược lại
Để đổi một số N từ hệ bk sang hệ bp, trước nhất ta đổi
N cang hệ b, rồi từ hệ b tiếp tục đổi sang hệ bp.
VD: đổi số N=1234,678 sang hệ 16 = 24
N= 001 010 011 100. 110 111
N= 0010 1001 1100. 1101 1100
N= 2 9 C , D C H
9/7/2010 GV: Huỳnh Văn Khỏe 44
Bảng kê các số đầu tiên trong các hệ khác nhau:
Thập
phân
Nhị
phân
Bát
phân
Thập
lục
phân
Thập
phân
Nhị
phân
Bát
phân
Thập
lục
phân
0
1
2
3
4
5
6
7
8
9
10
11
12
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
0
1
2
3
4
5
6
7
10
11
12
13
14
0
1
2
3
4
5
6
7
8
9
A
B
C
13
14
15
16
17
18
19
20
21
22
23
24
25
1101
1110
1111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
15
16
17
20
21
22
23
24
25
26
27
30
31
D
E
F
10
11
12
13
14
15
16
17
18
19
9/7/2010 GV: Huỳnh Văn Khỏe 45
1.3.6 Các phép tính trong hệ nhị phân:
Phép cộng:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (nhớ 1 cho bít cao hơn)
Lưu ý:
-Nếu số bít 1 chẵn, kết quả là 0
-Nếu bít 1 lẻ, kết quả là 1
-Và cứ 1 cặp bít 1 cho một số nhớ
VD: tính 011 + 101 + 011 + 011
1 1 số nhớ
1 1 1 số nhớ
0 1 1
+ 1 0 1
0 1 1
0 1 1
1 1 1 0
9/7/2010 GV: Huỳnh Văn Khỏe 46
1.3.6 Các phép tính trong hệ nhị phân:
Phép trừ:
0 - 0 = 0
1 - 1 = 0
1 - 0 = 1
0 - 1 = 1 (nhớ 1 cho bít cao hơn)
VD: tính 1 0 1 1 – 0 1 0 1
1 số nhớ
1 0 1 1
- 0 1 0 1
0 1 1 0
9/7/2010 GV: Huỳnh Văn Khỏe 47
1.3.6 Các phép tính trong hệ nhị phân:
Phép nhân:
0 x 0 = 0
1 x 0 = 0
1 x 1 = 1
VD: tính 1 1 0 1 x 1 0 1
1 1 0 1
x 1 0 1
1 1 0 1
0 0 0 0
1 1 0 1
1 0 0 0 0 0 1
9/7/2010 GV: Huỳnh Văn Khỏe 48
1.3.6 Các phép tính trong hệ nhị phân:
Phép chia:
VD: chia 1 0 0 1 1 0 0 1 0 0 cho 1 1 0 0 0
1 0 0 1 1 0 0 1 0 0 1 1 0 0 0
- 1 1 0 0 0 1 1 0 0 1. 1
0 0 1 1 1 0 0
-1 1 0 0 0
0 0 1 0 0 1 0 0
- 1 1 0 0 0
0 1 1 0 0 0 Thêm 0 vào để chia tiếp lấy phần lẻ
- 1 1 0 0 0
0 0 0 0 0
9/7/2010 GV: Huỳnh Văn Khỏe 49
1.4 Số nguyên có dấu:
Có nhiều cách để biểu diễn một số n bit có dấu.
Trong tất cả mọi cách thì bit cao nhất luôn tượng trưng
cho dấu.
- bit dấu có giá trị là 0 thì số nguyên dương
- bit dấu có giá trị là 1 thì số nguyên âm
dn-1 dn-2 di d1 d0
bit dấu
Số nguyên có bit dn-1 là bit dấu và có trị số tượng
trưng bởi các bit từ d0 tới dn-2
……
9/7/2010 GV: Huỳnh Văn Khỏe 50
1.4.1 Cách biểu diễn bằng trị tuyệt đối và dấu
Trong cách này, bit dn-1 là bit dấu và các bit từ d0 tới
dn-2 cho giá trị tuyệt đối. Một từ n bit tương ứng với số
nguyên thập phân có dấu.
Ví dụ: +2510 = 000110012
-2510 = 100110012
- Một Byte (8 bit) có thể biểu diễn các số có dấu
từ -127 tới +127.
- Có hai cách biểu diễn số không là 00000000
(+0) và 10000000 (-0).
i
n
i
i
d dN n 2)1(
2
0
1
9/7/2010 GV: Huỳnh Văn Khỏe 51
1.4.2 Cách biểu diễn hằng số bù 1
Số âm -N được có bằng cách thay các số nhị phân di
của số đương N bằng số bù của nó (nghĩa là nếu di = 0
thì người ta đổi nó thành 1 và ngược lại).
Ví dụ: +2510 = 0 0 0 1 1 0 0 12
-2510 = 1 1 1 0 0 1 1 02
- Một Byte cho phép biểu diễn tất cả các số có dấu
từ -127 (100000002) đến 127 (0111 11112)
- Có hai cách biểu diễn cho 0 là 00000000 (+0)
và 11111111 (-0).
9/7/2010 GV: Huỳnh Văn Khỏe 52
1.4.3 Cách biểu diễn hằng số bù 2
Để có số bù 2 của một số nào đó, người ta lấy số bù
1 rồi cộng thêm 1. Vậy một từ n bit (dn-1 ....... d0) có trị
thập phân.
Ví dụ: +2510 = 000110012
-2510 = 111001112
- Dùng 1 Byte (8 bit) để biểu diễn một số có
dấu lớn nhất là +127 và số nhỏ nhất là –128.
- Chỉ có một giá trị 0: +0 = 000000002,
-0 = 000000002
i
n
i
i
n
n ddN 22
2
0
1
1
9/7/2010 GV: Huỳnh Văn Khỏe 53
1.4.4 Cách biểu diễn bằng số thừa K
Số dương của một số N có được bằng cách “cộng
thêm vào” số thừa K được chọn sao cho tổng của K và
một số âm bất kỳ luôn luôn dương. Số âm -N của số N
có được bằng cáck lấy K-N (hay lấy bù hai của số vừa
xác định).
Ví dụ: (số thừa K=128, số “cộng thêm vào” 128
là một số nguyên dương. Số âm là số lấy bù hai số vừa
tính, bỏ qua số giữ của bit cao nhất) :
128 + 2510 = 100110012
- 2510 = 011001112
- Dùng 1 Byte (8 bit) để biểu diễn một số có
dấu lớn nhất là +127 và số nhỏ nhất là –128.
- Chỉ có một giá trị 0: +0 = 100000002,
-0 = 100000002
9/7/2010 GV: Huỳnh Văn Khỏe 54
1.4.5 Cách biểu diễn số với dấu chấm động
Chuẩn IEEE 754 định nghĩa hai dạng biểu diễn số chấm
động:
- Số chấm động chính xác đơn với định dạng được
định nghĩa: chiều dài số: 32 bit được chia thành các
trường: dấu S (Sign bit - 1 bit), mũ E (Exponent – 8 bit),
phần lẻ F (Fraction - 23 bit).
Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f23) * 2(E - 127)
Bit 31 30 23 22 1 0
S E f1 f2 …… f22 f23
9/7/2010 GV: Huỳnh Văn Khỏe 55
1.4.5 Cách biểu diễn số với dấu chấm động
Chuẩn IEEE 754 định nghĩa hai dạng biểu diễn số
chấm động:
- Số chấm động chính xác kép với định dạng được định
nghĩa: chiều dài số: 64 bit được chia thành các trường:
dấu S (Sign bit - 1 bit), mũ E (Exponent – 11 bit), phần lẻ
F (Fraction - 52 bit)
Số này tương ứng với số thực (-1)S * (1,f1 f2 ..... f52) * 2(E - 1023)
Bit 63 62 52 51 1 0
S E f1 f2 …… f22 f23
9/7/2010 GV: Huỳnh Văn Khỏe 56
1.4.5 Cách biểu diễn số với dấu chấm động
VD: Đổi số thập phân -12.62510 sang số chấm động
chuẩn IEEE 754 chính xác đơn (32 bit)
- Bước 1: Đổi số -12.62510 sang nhị phân: -12.62510 = -
1100.1012
- Bước 2: Chuẩn hoá: -1100.1012 = -1.1001012 x 23 (Số
1.1001012 dạng 1.f)
- Bước 3: Điền các bit vào các trường theo chuẩn:
Số âm: bit dấu S có giá trị 1.
Phần mũ E với số thừa K=127, ta có: E-127=3
⇒ E = 3 + 127 = 130 (1000 00102).
Kết quả: 1 1000 0010 1001 0100 0000 0000 0000 000
S E F
Câu hỏi ôn tập
Bài tập
Tài liệu tham khảo
1. Giáo trình kiến trúc máy tính – Khoa CNTT&TT
trường ĐHCT (2003)
2. Kiến trúc máy tính – Hóa NGUYEN - College of
Technology, Vietnam National University,
HanoiUniversity
3. Kiến trúc máy tính – Trần Quang Vinh – NXB ĐHSP
4. Giáo trình Kỹ thuật số - Nguyễn Trung Lập – Trường
ĐHCT