NKK-HUT
Kiến trúc máy tính
Chương 2
CƠ BẢN VỀ LOGIC SỐ
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
3 May 2012
IT3030
1
NKK-HUT
Nội dung học phần
3 May 2012
Chương 1. Giớ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. Kiến trúc tập lệnh
Chương 5. Số học máy tính
Chương 6. Bộ xử lý
Chương 7. Bộ nhớ
Chương 8. Vào-ra
Chương 9. Kiến trúc máy tính tiên tiến
IT3030
2
NKK-HUT
Nội dung của chương 2
2.1. Các hệ đếm cơ bản
2.2. Đại số Boole
2.3. Cổng logic
2.4. Mạch tổ hợp
2.5. Mạch dãy
3 May 2012
IT3030
3
NKK-HUT
2.1. Các hệ đếm cơ bản
3 May 2012
Hệ thập phân (Decimal System)
con người sử dụng
Hệ nhị phân (Binary System)
máy tính sử dụng
Hệ mười sáu (Hexadecimal System)
dùng để viết gọn cho số nhị phân
IT3030
4
NKK-HUT
1. Hệ thập phân
Cơ số 10
10 chữ số: 0,1,2,3,4,5,6,7,8,9
3 May 2012
Dùng n chữ số thập phân có thể biểu diễn
được 10n giá trị khác nhau:
00...000
= 0
99...999
= 10n - 1
IT3030
5
NKK-HUT
Dạng tổng quát của số thập phân
A a n a n 1 ... a 1 a 0 , a 1 ... a m
Giá trị của A được hiểu như sau:
A a n 10
n
a n 1 10
n 1
... a 1 10
1
a 0 10
0
a 1 10
1
... a m 10
m
n
A
a i 10
i
i m
3 May 2012
IT3030
6
NKK-HUT
Ví dụ số thập phân
472.38 = 4x102 + 7x101 + 2x100 + 3x10-1 + 8x10-2
Các chữ số của phần nguyên:
472 : 10 = 47 dư
2
47 : 10 = 4 dư
7
4 : 10 = 0 dư
4
Các chữ số của phần lẻ:
3 May 2012
0.38 x 10 = 3.8 phần nguyên =
3
0.8 x 10 = 8.0 phần nguyên =
8
IT3030
7
NKK-HUT
2. Hệ nhị phân
Cơ số 2
2 chữ số nhị phân: 0 và 1
chữ số nhị phân gọi là bit (binary digit)
Bit là đơn vị thông tin nhỏ nhất
Dùng n bit có thể biểu diễn được 2n giá trị
khác nhau:
3 May 2012
00...000
11...111
= 0
= 2n - 1
IT3030
8
NKK-HUT
Dạng tổng quát của số nhị phân
Có một số nhị phân A như sau:
A a n a n 1 ... a 1 a 0 , a 1 ... a m
Giá trị của A được tính như sau:
A an 2
n
a n 1 2
n 1
... a 1 2 a 0 2
1
0
a 1 2
1
... a m 2
m
n
A
ai 2
i
i m
3 May 2012
IT3030
9
NKK-HUT
Ví dụ số nhị phân
1101001.1011(2) =
6 5 4 3 2 1 0
-1 -2 -3 -4
= 26 + 25 + 23 + 20 + 2-1 + 2-3
+
2-4
= 64 + 32 + 8 + 1 + 0.5 + 0.125 + 0.0625
= 105.6875(10)
3 May 2012
IT3030
10
NKK-HUT
Chuyển đổi số nguyên thập phân sang nhị phân
3 May 2012
Phương pháp 1: chia dần cho 2 rồi lấy
phần dư
Phương pháp 2: Phân tích thành tổng
của các số 2i nhanh hơn
IT3030
11
NKK-HUT
Phương pháp chia dần cho 2
3 May 2012
Ví dụ: chuyển đổi 105(10)
105 : 2 =
52
dư
1
52 : 2 =
26
dư
0
26 : 2 =
13
dư
0
13 : 2 =
6
dư
1
6:2 =
3
dư
0
3:2 =
1
dư
1
1:2 =
0
dư
1
Kết quả: 105(10) = 1101001(2)
IT3030
12
NKK-HUT
Phương pháp phân tích thành tổng của các 2i
Ví dụ 1: chuyển đổi 105(10)
6
5
3
0
105 = 64 + 32 + 8 +1 = 2 + 2 + 2 + 2
27
26
25
24
23
22
21
20
128
0
64
1
32
1
16
0
8
1
4
0
2
0
1
1
Kết quả:
105(10) = 0110 1001(2)
Ví dụ 2: 17000(10) = 16384 + 512 + 64 + 32 + 8
214 + 29 + 26 + 25 + 23
=
17000(10) = 0100 0010 0110 1000(2)
15 14 13 12
3 May 2012
11 10 9 8
IT3030
7 6 5 4
3 2 1 0
13
NKK-HUT
Chuyển đổi số lẻ thập phân sang nhị phân
3 May 2012
Ví dụ 1: chuyển đổi 0.6875(10)
0.6875 x 2 = 1.375
phần nguyên = 1
0.375 x 2 = 0.75
phần nguyên = 0
0.75
x 2 = 1.5
phần nguyên = 1
0.5
x 2 = 1.0
phần nguyên = 1
Kết quả : 0.6875(10)= 0.1011(2)
IT3030
14
NKK-HUT
Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
3 May 2012
Ví dụ 2: chuyển đổi 0.81(10)
0.81 x 2 =
1.62
phần nguyên
=
1
0.62 x 2 =
1.24
phần nguyên
=
1
0.24 x 2 =
0.48
phần nguyên
=
0
0.48 x 2 =
0.96
phần nguyên
=
0
0.96 x 2 =
1.92
phần nguyên
=
1
0.92 x 2 =
1.84
phần nguyên
=
1
0.84 x 2 =
1.68
phần nguyên
=
1
0.81(10) 0.1100111(2)
IT3030
15
NKK-HUT
Chuyển đổi số lẻ thập phân sang nhị phân (tiếp)
Ví dụ 3: chuyển đổi 0.2(10)
3 May 2012
0.2
0.4
0.8
0.6
0.2
0.4
0.8
0.6
x2
x2
x2
x2
x2
x2
x2
x2
=
=
=
=
=
=
=
=
0.4
0.8
1.6
1.2
0.4
0.8
1.6
1.2
phần nguyên
phần nguyên
phần nguyên
phần nguyên
phần nguyên
phần nguyên
phần nguyên
phần nguyên
=
=
=
=
=
=
=
=
0
0
1
1
0
0
1
1
0.2(10) 0.00110011 (2)
IT3030
16
NKK-HUT
3. Hệ mười sáu (Hexa)
Cơ số 16
16 chữ số: 0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F
3 May 2012
Dùng để viết gọn cho số nhị phân: cứ một
nhóm 4-bit sẽ được thay bằng một chữ số
Hexa
IT3030
17
NKK-HUT
Quan hệ giữa số nhị phân và số Hexa
4-bit
Chữ số Hexa
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
Ví dụ chuyển đổi số nhị phân số Hexa:
1011 00112 = B316
0000 00002 = 0016
6
0010 1101 1001 10102 = 2D9A16
0111
7
1000
8
1111 1111 1111 11112 = FFFF16
1001
9
1010
A
1011
B
1100
C
1101
D
1110
E
1111
3 May 2012
F
IT3030
18
NKK-HUT
2.2. Đại số Boole
Đại số Boole sử dụng các biến logic và phép
tốn logic
Biến logic có thể nhận giá trị 1 (TRUE) hoặc 0
(FALSE)
Phép toán logic cơ bản là AND, OR và NOT
với ký hiệu như sau:
A AND B :
A OR B :
NOT A :
A•B
A+B
A
Thứ tự ưu tiên: NOT > AND > OR
3 May 2012
IT3030
19
NKK-HUT
Các phép toán logic (tiếp)
Các phép toán NAND, NOR, XOR:
3 May 2012
A NAND B : A•B
A NOR B : A + B
A XOR B: A B = A • B + A • B
IT3030
20
NKK-HUT
Phép toán đại số Boole
3 May 2012
P
0
0
1
1
Q
0
1
0
1
P
1
1
0
0
P.Q
0
0
0
1
P+Q
0
1
1
1
P
Q
PQ
P.Q
P+Q
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
IT3030
21
NKK-HUT
Các đồng nhất thức của đại số Boole
A•B=B•A
A+B=B+A
A • (B + C) = (A • B) + (A • C) A + (B • C) = (A + B) • ( A + C)
1•A=A
0+A=A
A•A=0
A+A=1
0•A=0
1+A=1
A•A=A
A+A=A
A • (B • C) = (A • B) • C
A + (B + C) = (A + B) + C
A • B = A + B (Định lý De
Morgan)
A + B = A • B (Định lý De
Morgan)
3 May 2012
IT3030
22
NKK-HUT
2.3. Các cổng logic (Gate)
Các cổng cơ bản
3 May 2012
AND
OR
NOT
Chức năng có thể
biểu diễn bằng bảng
thật (truth table)
IT3030
23
NKK-HUT
Các cổng logic (tiếp)
Các cổng
3 May 2012
NAND
NOR
XOR
IT3030
24
NKK-HUT
Tập đầy đủ
Là tập các cổng có thể thực hiện được
bất kỳ hàm logic nào từ các cổng của
tập đó.
Một số ví dụ về tập đầy đủ:
3 May 2012
{AND, OR, NOT}
{AND, NOT}
{OR, NOT}
{NAND}
{NOR}
IT3030
25