Chương5 - Một số kiến thức về đạisố logic
CHƯƠNG 5. MỘT SỐ KIẾN THỨC VỀ ĐẠISỐ LOGIC
Người đặt nền móng cho ngành toán học này là D. Boole (1815-1864). Do vậy đạisố logic
còn có tên gọi là đạisố Boole. Đạisốlogic có nhiều ứng dụng, ở đây, chúng ta quan tâm
đến các khía cạnh liên quan đến thiết kế các mạch logic bên trong MTĐT. Như đã thấy, kết
quả thực hiện các phép toán số học với các số nhị phân là một số nhị phân mới. Do vậy, ta
có thể hình dung thiết bị thực hiện các phép toán trong MTĐT như là thành phần chức
năng biến đổi nhị phân. Thiết bị đặc biệt đó cho phép nạp số liệu dạng nhị phân ở đầu vào
và lấy kết quả có dạng nhị phân ở đầu ra. Vậy có thể xem bộ biến đổi chức năng đó như là
một thiết bị có nhiều đầu vào và nhiều đầu ra. Tại một thời điểm xác định, ở mỗi đầu vào
chỉ nạp được một bit và từ mỗi đầu ra chỉ cho ra được một bit dữ liệu. Để hiểu rõ hơn về
nguyên lý xây dựng các bộ biến đổi nhị phân ta sẽ tìm hiểu một số vấn đề có liên quan
dưới đây.
5.1. CÁC HÀM ĐẠISỐ LOGIC
Xét tập D = {0, 1}, các giá trị của tập D còn gọi là giá trị logic hay nhị phân. Đại lượng x
chỉ có thể nhận giá trị trong tập D gọi là biến Boole (hay biến logic, biến nhị phân). Hàm
của n biến nhị phân F(x
1
, x
2
, , x
n
) chỉ nhận hai giá trị 0 và 1 gọi là hàm Boole (hoặc hàm
logic). Mỗi hàm boole n biến có thể cho bằng một bảng có n+1 cột, n cột đầu là giá trị của
các biến x
1
, x
2
, , x
n
tương ứng. Cột cuối cùng là giá trị của hàm ứng với các giá trị của
biến. Ví dụ n = 2, các giá trị x1, x2 và các hàm tương ứng f(x1, x2) được cho như trong
Bảng 5.1
x
1
x
2
f(x
1
,x
2
)
0 0 1
0 1 0
1 0 0
1 1 1
Bảng 5.1. Hàm logic 2 biến
Dễ dàng thấy, với mỗi n có đúng 2
n
cách tổ hợp khác nhau giá trị các biến x
1
, x
2
, , x
n
. Một
hàm Boole là một cách cho tương ứng mỗi một trong số 2
n
với một trong hai giá trị 0 và 1.
Vì thế nó sẽ tương ứng với một cách phân hoạch tập 2
n
bộ giá trị này thành 2 nhóm, một
nhóm hàm có giá trị 1, một nhóm hàm có giá trị 0. Như vậy mọi hàm boole n biến hoàn
toàn được xác định bởi một tập con trong 2
n
bộ giá trị để giá trị của hàm là 1. Ta đã biết đối
với một tập có k phần tử thì tập tất cả các tập con của nó sẽ có 2
k
phần tử. Do vậy có đúng
2
n
hàm Boole n biến.
Với n = 1, có 4 hàm nhị phân. Các hàm đó được cho trong Bảng 5.2
37
Chương 5 - Một số kiến thức về đạisố logic
x F1 F2 F3 F4
0 0 1 0 1
1 0 1 1 0
Bảng 5.2. Các hàm logic 1 biến
Hàm F1 và F2 là hàm hằng (không phụ thuộc vào đối số x):
F1(x) ≡ 0 là hàm hằng 0
F2(x) ≡ 1 là hàm hằng 1
Giá trị F3(x) luôn bằng giá trị biến x, đó là hàm đồng nhất:
F3(x) ≡ x
Hàm F4(x) luôn có giá trị ngược lại với giá trị biến x mà ta gọi là hàm phủ định và ký hiệu
x. Dễ thấy x = x
Dấu có thể xem là dấu phép toán một ngôi, cho phép từ giá trị x xác định giá trị x. Phép
toán đó cũng có tên là phép phủ định (một số tài liệu dùng dấu - trên đầu đối tượng bị phủ
định thay cho dấu đứng trước đối tượng).
Với n = 2, có 16 hàm logic. Giá trị của các hàm được cho ở bảng 5.3.
x y
F1
F 2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Bảng 5.3. 16 hàm logic 2 biến
Ta xét một vài hàm quan trọng:
F2(x, y) có giá trị 1 khi và chỉ khi x, y đồng thời có giá trị 1. Hàm này được kí hiệu
là (x∧y) và gọi là phép nhân logic hay phép hội.
F7(x, y) có giá trị 1 khi và chỉ khi x, y có giá trị khác nhau. Hàm này chính là chữ
số hàng đơn vị khi cộng số học x với y. Vì vậy F7 còn gọi là phép cộng theo
module 2.
F8(x,y) có giá trị 0 khi và chỉ khi x, y đồng thời có giá trị 0. Hàm F8(x,y) được kí
hiệu (x ∨ y) và còn gọi là phép cộng logic hay phép tuyển.
F10(x,y) có giá trị 1 khi và chỉ khi x, y có cùng giá trị như nhau, hoặc 0 hoặc 1.
Hàm F10(x,y) có kí hiệu (x ∼y) và còn gọi là phép tương đương
38
Chương 5 - Một số kiến thức về đạisố logic
F14(x,y) có giá trị 0 khi và chỉ khi x có giá trị 1 đồng thời y có giá trị 0. Hàm
F14(x,y) được kí hiệu (x ⇒y) và còn gọi là phép kéo theo.
Bài đọc thêm: Logic mệnh đề
Lần đầu tiên logic mệnh đề được đề cập đến trong một bài báo của Boole có tên là "Các quy luật của ý nghĩ".
Theo đó mỗi mệnh đề là một khẳng định. Mệnh đề sẽ nhận giá trị chân lý là "đúng" hay "sai" tuỳ thuộc vào
khẳng định có phù hợp với thực tế hay không. Sau đó Boole đưa ra các phép toán để tính giá trị chân lý của
những mệnh đề phức tạp.
Giả sử P và Q là hai mệnh đề nào đó. Mệnh đề "P và Q" sẽ nhận giá trị là đúng nếu cả P và Q đều đúng. Nếu
thể hiện giá trị đúng bằng 1 và giá trị sai là 0 ta thấy giá trị chân lý của mệnh đề "P và Q" chính là phép nhân
logic các giá trị chân lý của P và Q. Do vậy trong ngôn ngữ Tin học người ta gọi luôn phép nhân logic là
phép "AND".
Giá trị chân lý của mệnh đề "P hoặc Q" chính là phép cộng logic các giá trị chân lý của P và Q. "P hoặc Q" sẽ
đúng chỉ cần ít nhất P hoặc Q đúng. Trong trong ngôn ngữ Tin học, người ta cũng gọi phép cộng logic là
phép "OR".
Giá trị chân lý của mệnh đề "Không phải P" sẽ đúng nếu P sai và ngược lại. Giá trị này có thể tính bằng phép
phủ định logic giá trị chân lý của P. Trong trong một số ngôn ngữ Tin học, phép phủ định logic còn có một
tên gọi khác là phép "NOT".
Phép cộng theo module 2 còn gọi là phép "hoặc loại trừ" (OR Exclusive) và trong ngôn ngữ tin học người ta
gọi nó là phép "XOR".
5.2. BIỄU DIỄN CÁC HÀM ĐẠISỐ LOGIC
Một hàm đạisốlogic cũng có thể được xác định thông qua các hàm đạisốlogic khác, ví dụ
hàm F7(x,y) trong Bảng 5.3 có thể cho bằng công thức sau:
( x ∧ y ) ∨ ( x ∧ y )
Hai công thức dưới đây gọi là công thức đối ngẫu De Morgan.
(x ∧ y) =( x) ∨ ( y), ( x V y) = ( x) ∧ ( y)
Các công thức này cho thấy có thể biểu diễn phép cộng qua phép nhân và phép phủ định
(và ngược lại), chẳng hạn, x V y = ( x) ∧ ( y).
Sau đây là hai công thức khác :
(x ⇒ y) = x ∨ y, ( x ∼ y) = (x ∨ y) ∧ (y ∨ x).
Có nhiều cách chứng minh một đẳng thức logic trong đó có một cách chứng minh rất đơn
giản là so sánh giá trị của hai vế với tất cả các bộ đối số cụ thể. Vì chỉ có một số hữu hạn
các bộ đối số nên chúng ta có thể kể ra tất cả các trường hợp trong một bảng giá trị. Chẳng
hạn để chứng minh công thức của hàm F7 nói trên ta có thể lập một bảng và so sánh giá trị
của hai vế ứng với mỗi bộ giá trị của các đối như Bảng 5.4:
39
Chương 5 - Một số kiến thức về đạisố logic
X y
x ∧ y x ∧ y ( x ∧ y) ∨ (x ∧ y)
F7(x,y)
0 0 0 0 0 0
0 1 0 1 1 1
1 0 0 1 1 1
1 1 0 0 0 0
Bảng 5.4. Giá trị F7(x,y)
Qua các ví dụ trên ta thấy rằng các hàm đạisốlogic này có thể biểu diễn qua các hàm đại
số logic khác.
Một tập hợp hữu hạn các hàm đạisốlogic được gọi là một hệ hàm đủ nếu mọi hàm đại số
lôgic khác đều có thể biểu diễn được qua hệ hàm này. Có thể chứng minh không khó khăn
lắm rằng hệ hai hàm phủ định và cộng logic là hệ hàm đủ. Do công thức đối ngẫu De
Morgan ta thấy hệ hai hàm phủ định và nhân logic cũng là hệ hàm đủ.
5.3. ÁP DỤNG ĐẠISỐLOGIC TRONG VIỆC THIẾT KẾ CÁC MẠCH
LOGIC
MTĐT biểu diễn thông tin bằng các trạng thái của các thành phần vật lý. Thông thường các
thành phần này có hai trạng thái đối lập. Ví dụ như một mạch điện đóng hoặc mở, chiều
của từ trường một vùng vật liệu từ nhiễm từ theo chiều này hoặc chiều kia Nếu dùng
trạng thái này chỉ giá trị 1 và trạng thái kia chỉ giá trị 0 thì ta thấy rằng MTĐT là một máy
làm việc trên hệ nhị phân. Mọi phép xử lý máy có thể thực hiện được thực chất là các hàm
đại số logic. Các hệ vật lí thực hiện các hàm đạisốlogic gọi là các mạch logic.
Ta minh họa một số mạch logic đơn giản dùng các công tắc ngắt hoặc đóng mạch có điều
khiển (gọi là các rơle) với quy ước rằng trạng thái có điện thể hiện giá trị logic 1, trạng thái
không có điện thể hiện giá trị logic 0.
Phần tử AND
Cho mạch điện có hai rơle K1, K2 mắc nối tiếp như Hình 5.1. Chỉ khi có dòng điện điều
khiển để đóng K1 và K2 thì mới có dòng điện qua R. Vì vậy sự phụ thuộc trạng thái R vào
các trạng thái K1, K2 có thể biến đổi R= K1∧K2
Hình 5.1. Sơ đồ phần tử AND
Phần tử OR
40
R
K1 K2
Chương 5 - Một số kiến thức về đạisố logic
Cho mạch điện cũng có hai rơle K1, K2 với tính chất như vừa xét, nhưng được mắc song
song theo Hình 5.2:
Hình 5.2. Sơ đồ phần tử OR
Dễ nhận thấy R không có dòng điện (thể hiện giá trị 0) khi và chỉ khi K1 và K2 đồng thời
ngắt mạch (thể hiện giá trị 0). Do đó, giá trị logic R thể hiện là tổng logic của các giá trị
của K1 và K2 thể hiện.
Phần tử NOT
Xét mạch điện có sơ đồ như trên Hình 5.3. Khi K mở, dòng điện phải đi qua R, còn khi K
đóng, do điện trở của K vô cùng bé so với R nên dòng điện đi qua K mà không đi qua R.
Do vậy, giá trị logic R thể hiện là phủ định giá trị mà K thể hiện.
Hình 5.3. Sơ đồ phần tử NOT
Trên thực tế các mạch logic thường được chế tạo từ các mạch bán dẫn hoặc các mạch vi
điện tử với kích thước siêu nhỏ. Người ta cũng chế tạo những mạch (phần tử) OR, AND,
NOT, NAND (NOT AND), NOR (NOT OR), XOR và cả những mạch có chức năng phức
tạp thực hiện các xử lý phức tạp hơn. Các hệ này gọi là các hệ logic. Như vậy có thể hình
dung các hệ logic như những hộp đen (mà ta không quan tâm đến cấu trúc bên trong) có
một số đầu vào và một số đầu ra.
Các tín hiệu ở đầu vào và đầu ra là các tín hiệu nhị phân (tương ứng với một trong hai
trạng thái vật lý). Ta đã biết hệ hàm phủ định, tuyển và hội là một hệ hàm đủ. Như vậy về
mặt nguyên tắc có thể chồng chất các phần tử NOT và OR và
AND để tạo nên bất cứ một máy thực hiện các phép biến đổi nhị
phân nào. Ví dụ sau đây minh họa việc lập mạch cộng hai bit.
Bộ cộng 2 bit
Phép cộng hai số một bit a và b có thể cho ra một số có hai bit là
cd. Bit c chỉ bằng 1 khi và chỉ khi a, b đồng thời bằng 1 (ứng với
trường hợp 1 + 1 = 10). Do đó c = a ∧ b. Còn d, như đã trình bày
trước đây, chính là tổng theo module 2 của a và b có biểu diễn qua các hàm cộng, nhân và
phủ định logic như sau
41
R
K1
K2
R
K
O
T
Hình 5.4
Chương 5 - Một số kiến thức về đạisố logic
d = ( a ∧ b ) ∨ ( a ∧ b )
Vậy sơ đồ mạch logic của phép cộng hai bit có
thể xây dựng như trong Hình 5.5.
Trên đây là một ví dụ đơn giản cho thấy người ta có
thể xây dựng các mạch thực hiện các chức năng xử
lý như thế nào. Đương nhiên mạch của một bộ xử lý
có thể thực hiện được hàng trăm loại phép tính và
hàng trăm chức năng điều khiển sẽ rất phức tạp.
Bộ vi xử lý Itanium của Intel xuất xưởng trong
năm 2001 là một mạch điện chứa tới vài chục
triệu transitor.
Bài tập
1. Dùng phương pháp bảng hãy chứng minh các
công thức đối ngẫu De Morgan, biểu diễn của phép tương đương và phép kéo theo.
2. Hãy chứng minh công thức biểu diễn một hàm đạisốlogic dưới dạng chuẩn hội
f(x
1
,x
2
, x
n
) = ∨ (e
1
∧e
2
∧ e
n
)
{(x
1
,x
2
x
n
) / f(x
1
,x
2
, x
n
)=1}
trong đó e
i
chính là x
i
nếu trong bảng giá trị x
i
= 1 và bằng
i
x
nếu trong bảng giá trị x
i
=0.
3. Nếu cộng hai số nhiều bit thì mỗi bit của tổng sẽ là tổng của 3 bit, hai bit của hai số hạng
và bit nhớ từ hàng bên phải. Như vậy để xây dựng bộ cộng hai số nhiều bit trước hết phải
xây dựng bộ cộng 3 bit. Hãy xây dựng bộ cộng 3 bit bằng cách tổng hợp từ hai bộ cộng hai
bit.
4. Sau khi có bộ cộng 3 bit, hãy xây dựng bộ cộng 2 số n bit.
42
a
b
c d
Hình 5.5. Sơ đồ bộ cộng hai bit
O
T
O
T
. Chương 5 - Một số kiến thức về đại số logic
CHƯƠNG 5. MỘT SỐ KIẾN THỨC VỀ ĐẠI SỐ LOGIC
Người đặt nền móng cho ngành toán học này là D. Boole (18 15- 1864) hàm đó được cho trong Bảng 5. 2
37
Chương 5 - Một số kiến thức về đại số logic
x F1 F2 F3 F4
0 0 1 0 1
1 0 1 1 0
Bảng 5. 2. Các hàm logic 1 biến
Hàm F1 và F2