V TÍNH DNG CA MCH KHÔNG ĐỒNG B
TS. TRN VĂN DŨNG
B môn Khoa hc máy tính
Khoa Công ngh thông tin
Trường Đại hc Giao thông Vn ti
Tóm tt: Bài báo s dng ng nghĩa quan h ca chương trình t hp [1, 2] để
phng và chng minh tính dng ca các mch không đồng b có mt s tính cht xác định.
Điu đó cho phép dùng các k thut phn mm chun để kim chng các hành vi ca các
mch t hp.
Summary: This paper using relational semantics of combinational programs [1,2] to
simulate and prove a termination of some sequential circuits with determined properties. It
allows to use standard software verification techniques to verify behaviours of some kinds of
sequential circuits.
I. M ĐẦU
Mc đích ca bài báo nhm đưa ra phương pháp hình thc để nghiên cu mt s tính cht
quan trng ca các mch không đồng b, tc là mch x lý thông tin mà ngoài đầu vào và đầu
ra có th cho phép quay vòng mt s thông tin bên trong mch. Các mch không tun t là cơ s
phn cng cho các mô hình máy tính, chính vì vy vic tìm hiu và suy lun v các hành vi ca
mch có ý nghĩa quan trng và thu hút s quan tâm nghiên cu ca nhiu tác gi (xem [1,2]).
CNTT-
CB
Trong bài này ta xét mch tun t không đồng b theo trình t các bước như sau:
* B sung biến delay vào các v tr cn thiết
* Biu din các biến b sung thông qua đầu vào, đầu ra và thông tin quay vòng
* Tìm mi liên h gia các biến xem có tho mãn các điu kin cn thiết không
* Xét mch có cho kết qu v hành vi duy nht không.
đây ta xét chế độ thao tác cơ bn m rng theo nghĩa sau: các tín hiu vào có th đồng b
thay đổi, nhưng sau đó mi tín hiu vào đều ch đợi cho đến khi mch đạt đến trng thái cân
bng tiếp theo.
Khi ghép ni các mch, nếu các mch thành phn là lũy đẳng (tc là nếu thc hin thêm
mt ln th hai thì không đem li kết qu gì mi) hoc bn thân nó là mch t hp, thì nguyên
tc hot động trên được đảm bo.
II. MÔ PHNG MCH KHÔNG ĐỒNG B
Bây gi chúng ta xét các mch không đồng b, đó là các mch có phn hi nhưng không có
đồng h đồng b. đây các tín hiu đầu vào có th thay đổi, sau đó ch cho mch hot động
cho đến khi mi giá tr đầu ra và thông tin quay vòng không thay đổi, na, đến lúc đó giá tr đầu
vào mi li có th thay đổi.
Trong [1, 2] chúng ta đã đưa ra định nghĩa chương trình t hp Comb để mô phng hot
động ca mch không đồng b. Trong mch có th có nhiu lung thành phn, chúng thay nhau
thc hin mt cách tùy ý, cho đến khi mi vic thc hin s không đem li kết qu mi na. Lúc
đó ta nói mch trng thái n định và dng.
Chúng ta mong mun tìm hiu các điu kin ràng buc đối vi các mch mà kết qu cui
cùng khi thc hin chúng là tt định, không ph thuc vào th t thc hin ca các lung.
Ví d 1: Cho mch không đồng b sau
* Đầu vào S, R
* Đầu ra Q. Vì Q có feedback, nên coi Q là biến trung gian (delay)
* Biến trung gian delay tác động bên trong X
* Vy ta có hai mch sau:
Q = X’ · R’ (1)
X = S’ · Q’ (2)
CNTT-CB
đây để đơn gin ký hiu A’ là ph định ca A và · là phép hi logic hai mnh đề. Mch
không đồng b được xem như chương trình t hp (xem [1,2]):
Comb (Q # X)
Điu đó cho ta biết, hai phép gán (1) và (2) thay nhau thc hin cho đến khi giá tr ca hai
vế các phương trình đó đồng nht.
D dàng kim chng thy các trng thái n định (R, S, X, Q) ca chương trình t hp trên
bao gm các trng thái sau:
(0, 0, 0, 1); (0, 0, 1, 0); (0, 1, 0, 1); (1, 0, 1, 0); (1, 1, 0, 0).
* Xét trng thái (0, 0, 0, 1) vi R = 0, S = 0, X = 0, Q = 1:
Gi s R tăng giá tr lên 1, khi đó nó kích hot Q:
+ Q = X’ · R’ = 1 · 0 = 0. Q thay đổi kích hot X.
+ X = S’ · Q’ = 1 · 1 = 1. X thay đổi kích hot Q.
+ Q = X’ · R’ = 0 · 0 = 0. Q không thay đổi.
+ Dng do không có biến nào thay đổi. Trng thái n định đạt được (1, 0, 1, 0).
Gi s S tăng giá tr lên 1, khi đó nó kích hot X:
+ X = S’ · Q’ = 0 · 0 = 0. X không thay đổi.
+ Dng do không có biến nào thay đổi, vn trng thái n định (0, 1, 0, 1).
Gi s S và R cùng tăng giá tr lên 1, khi đó nó kích hot đồng thi Q và X:
Gi s Q thc hin trước:
+ Q = X’ · R’ = 1 · 0 = 0. Q thay đổi kích hot X.
+ X = S’ · Q’ = 0 · 1 = 0. X không thay đổi.
Dng do không có biến nào thay đổi. Trng thái n định đạt được (1, 1, 0, 0).
Gi s X thc hin trước:
+ X = S’ · Q’ = 0 · 0 = 0. X không thay đổi.
+ Q = X’ · R’ = 1 · 0 = 0. Q thay đổi kích hot X.
+ X = S’ · Q’ = 0 · 1 = 0. X không thay đổi.
+ Dng do không có biến nào thay đổi. Trng thái n định đạt được (1, 1, 0, 0).
+ Ta nhn thy Q và X là hai chương trình lũy đẳng, vì vế phi (1) và (2) không có
feedback trong mi mt chương trình t hp đó.
+ Sau đây ; là phép ghép hai chương trình. Xét các phép ghép sau:
Q; X; Q = (Q = X’ · R’); (X = S’ · Q’); (Q = X’ · R’) =
= (X = S’ · (X’ · R’)’); (Q = X’ · R’) =
= (X = (S’· X + S’· R); (Q = R’· (S +X’· R’)) =
= ((X, Q) = (S’· X + S’· R, R’· S + R’· X’)) (3)
X; Q; X = (X = S’ · Q’); (Q = X’ · R’); (X = S’ · Q’) =
= (Q = (S + Q) · R’); (X = S’ · Q’) =
= (Q = (S · R’ + Q · R’); (X = S’ · ((S’ + R) · (Q’ + R) =
= ((Q, X) = (S · R’ + Q · R’, S’ · ((S’· Q’) + R)) =
CNTT-
CB
= ((Q, X) = (S · R’ + Q · R’, S’·Q’ + S’· R)
= ((X, Q) = (S’·Q’ + S’· R, S · R’ + Q · R’)) (4)
T (3) và (4) d dàng thy nếu X = Q’, thì hai biu thc trên là như nhau. Như vy ch
trng thái n định (1, 1, 0, 0) vi X = Q = 0 là không tho mãn điu kin X = Q’, nhưng trong
trung hp này R’ = S’ = 0, do đó hai biu thc vn trùng nhau Q; X; Q = X; Q; X.
Do đó chương trình t hp trên là tt định và nếu các chương trình luôn bt đầu t các
trng thái n định, thì
Comb (Q # X) = ((X, Q) = (S’·X + S’· R, R’· S + R’·X’)) hoc
Comb (Q # X) = ((X, Q) = (S’·Q’ + S’· R, S · R’ + Q · R’))
III. MT S KT QU V TÍNH DNG
Ta có th phát biu và chng minh Định lý sau, xem [1,2]:
Định lý 1: Nếu P và Q là hai chương trình lũy đẳng
C; P; Q; P; Q = C;Q; P; Q; P; C thì
C; Comb (P#Q) = C; P; Q; P; Q; C
trong đó C = if C then skip else stop và C = if C then skip else chao, vi C là điu kin
n định ca trng thái xut phát và skip, stop, chao tương ng là các chương trình b qua, dng
và có hành vi tùy ý.
Chng minh:
C; Comb (P#Q) = C; Comb (P;Q + Q;P)
= C; C; (P;Q + Q;P)*
= C; (P;Q Π + Q;P); (P;Q + Q;P); (P;Q + Q;P); (P;Q + Q;P)*
= C; (P; Q; P; Q + Q;P;Q;P); C; (P;Q + Q;P)*
= C; (P;Q;P;Q); C; (P;Q + Q;P)*; C
= C; P; Q; P; Q; C
Định lý trên nói lên nếu xut phát t trng thái n định, chương trình không đồng b s
dng trng thái n định sau khi thc hin lp ln lượt hai chương trình thành phn.
T Định lý 1 ta thy trong trường hp P, Q lũy đẳng và P; Q = Q; P thì kéo theo: Q; P; Q;
P; Q = Q; P; Q; P = P; Q = Q; P. Do đó ta có
H qu 2. Gi s P, Q là hai chương trình lũy đẳng và P; Q = Q; P. Khi đó
Comb (P#Q) = P; Q
Định lý 3. Gi s đầu ra ca Q không tham gia vào đầu vào ca P và Q là mch không có
b nh. Khi đó
Comb (P#Q) = Comb P; Comb Q
Chng minh. Thc vy, trong trường hp Q là mch không b nh và mi đầu ra ca Q
không là đầu vào ca P, thì ta luôn có CNTT-CB
Q j; P i; Q k = P i; Q j+k
Ví d 2. Cho mch không đồng b sau:
Ta xét b sung ba biến trng thái trong X, Y, Z vi delay thi gian không xác định. đây
ta coi X, Y, Z là các lung thành phn.
Như vy mi b giá tr ca các biến (C, D, X, Y, Z) s xác định mt trng thái ca chương
trình. Ta có th coi mch trên là kết ni song song ca ba mch thành phn như sau:
X = C·X + D·Z
Y = C·X + Y·Z
Z = C·X + D·Z + C’
Gi S = Comb (X#Y#Z)
D dàng thy các trng thái n định ca S là:
(1, 1, 0, 0, 0) ; (1, 0, 0, 0, 0); (0, 0, 0, 0, 1); (0, 0, 0, 1, 1);
(0, 1, 1, 0, 1); (0, 1, 1, 1, 1); (1, 1, 1, 1, 1); (1, 0, 1, 1, 1)
Dùng cách lp lun trên chương trình t hp ta chng minh mt s tính cht ca
mch đã cho. Trước hết ta chng t rng X, Y, Z là 3 chương trình lũy đẳng:
o X; X = (X = C•X + D•Z); (X = C•X + D•Z)
= (X = C•(C•X + D•Z) + D•Z
= (X = C•X + C•D•Z + D•Z)
= (X = C•X + D•Z)
= X
o Y; Y = (Y = C•X + Y•Z); (Y = C•X + Y•Z)
= (Y = C•X + (C•X + Y•Z)•Z
= (Y = C•X + C•X•Z + Y•Z)
= (Y = C•X + Y•Z)
= Y
CNTT-
CB o Z; Z = (Z = C•X + D•Z + C’); (Z = C•X + D•Z + C’)
= (Z = C•X + D•(C•X + D•Z + C’) + C’
= (Z = C•X + D•C•X + D•Z + D•C’ + C’)
= (Z = C•X + D•Z + C’)
= Z
o X; Z = (X = C•X + D•Z); (Z = C•X + D•Z + C’)
= ((X, Z) = (C•X + D•Z, C•(C•X + D•Z) + D•Z + C’)
= ((X, Z) = (C•X + D•Z, C•X +C•D•Z + D•Z + C’)
= ((X, Z) = (C•X + D•Z, C•X + D•Z + C’)
o Z; X = (Z = C•X + D•Z + C’); (X = C•X + D•Z)
= ((Z, X) = (C•X + D•Z + C’, C•X + D•(C•X + D•Z + C’))
= ((Z, X) = (C•X + D•Z + C’, C•X + D•C•X + D•Z + D•C’))
= ((Z, X) = (C•X + D•Z + C’, C•X + D•Z + D•C’))
= ((X, Z) = (C•X + D•Z + D•C’, C•X + D•Z + C’)
Z; X = X; Z tr trường hp (C, D, X, Z) = (0, 1, 0, 0), vì khi đó
X;Z = ((X,Z) = (0,1)), còn Z;X = ((X,Z) = (1,1)).