Báo cáo khoa học: "ngữ nghĩa quan hệ của các chương trình tổ hợp" docx

4 176 0
Báo cáo khoa học: "ngữ nghĩa quan hệ của các chương trình tổ hợp" docx

Đang tải... (xem toàn văn)

Thông tin tài liệu

ngữ nghĩa quan hệ của các chơng trình tổ hợp TS. trần văn dũng Bộ môn Toán - ĐH GTVT Tóm tắt: Các thao tác của các thiết bị dùng để ci đặt cho hệ thống điều khiển có thể đợc mô phỏng bởi chơng trình, điều đó cho phép phần cứng đợc kiểm chứng bằng các công cụ phần mềm chuẩn. Trong bi báo ny chúng tôi hình thức hoá ngữ nghĩa sự kiện của ngôn ngữ mô tả phần cứng dới dạng các quan hệ v sử dụng các quan hệ đó để chứng minh một số tính chất của các chơng trình tổ hợp, m mỗi chu trình hoạt động của nó l một vòng lặp có điều kiện của một số các phép gán song song. Summary: The actual behaviour of hardware devices available for installation of a control system can be simulated by a program, and this allows the hardware to be proved correct by standard software techniques. In this paper we formalise event semantics of Hardware Description Language in the form of relations and use relation calculus to prove properties (including termination and stability and uniqueness of final state) of combined programs, each operational cycle of which is defined as a conditional loop of non-deterministic choices among generalised parallel assignments. 1. Mở đầu Chơng trình VERILOG [6] đợc sử dụng rộng rãi để mô hình cấu trúc và hành vi của các thiết bị phần cứng từ các thiết bị đơn giản đến các mạng máy tính. Ngữ nghĩa mô phỏng định hớng của sự kiện đã đợc đề cập nghiên cứu trong [3], tuy nhiên khi mô tả hoạt động không đồng bộ của hệ thống gồm nhiều thiết bị song song, nó rẽ nhánh dẫn đến nhiều kết quả khác nhau. Vì vậy ngữ nghĩa đó không hỗ trợ việc kiểm chứng các thiết bị phần cứng. Do đó cần phải có phơng pháp hình thức hoá ngữ nghĩa sự kiện. Bài báo này tổng quát hoá ngữ nghĩa mô phỏng bằng cách đa ra mô hình quan hệ cho VERILOG dựa trên quan hệ của các trạng thái kết thúc. Bài báo này xem xét ba lớp chơng trình mô tả hoạt động của các mạch tổ hợp. Hai phần đầu của Bài báo hình thức hoá ngữ nghĩa sự kiện của VERILOG. Phần sau cùng dành cho việc nghiên cứu các chơng trình tổ hợp. 2. Ngôn ngữ mô tả VERILOG Các chơng trình VERILOG đợc sinh ra bới các qui tắc cú pháp sau: 1. Một chơng trình tuần tự đợc tạo nên từ các phép gán song song với các phép ghép, chọn có điều kiện, chọn không tất định: S ::= SKIP | v ::= E | S ; S | S < b > S | S S trong đó v là véc tơ các biến Bool, E là véc tơ các biểu thức Bool có cùng độ dài với v . 2. Các hàm tuần tự đang xem xét đợc đánh số thứ tự. Giả sử ta có m các chơng trình tuần tự: P 1 , P 2 , , P m , chúng có thể có các biến chung. Giả sử index là hàm dùng để đánh số thứ tự các chơng trình. Mọi phép gán nằm trong chơng trình tuần tự đều có chỉ số nh chơng trình đó. 3. Biến Bool tín hiệu ~ x đợc dùng để đánh dấu sự thay đổi của biến Bool x trong quá trình thực hiện. Nếu biến Bool x thay đổi, thì gán ~ x là tt m (trong đó tt là hằng đúng, ff là hằng sai). Chơng trình có số thứ tự i đợc liên kết với thành phần thứ i của biến tín hiệu (~x)[i]. 4. Điều khiển sự kiện g(S) ghi nhận sự thay đổi của các biến trong chơng trình S đợc định nghĩa nh sau: Giả sử S là phép gán v := E có số thứ tự i. Nếu x 1 , x 2, , x k là tất cả các biến xuất hiện trong E , thì g(S) = df (~ x 1 )[i] (~ x 2 )[i] (~ x k )[i] Nếu S = P op Q, trong đó op { ;, , < b >}, thì g(P op Q) = df g(P) g(Q) và index(P op Q) = df index(P) index (Q) Nếu S = g(P) P, thì g(S) = df g(P) và index(g(P) P) = index(P) Phép ghép hai chơng trình song song có tập index rời nhau đợc định nghĩa nh sau: P||Q = df (g(P) P) (g(Q) Q) Phép ghép song song có tính chất giao hoán, kết hợp và phân phối với phép chọn không tất định và phép chọn có điều kiện. VERILOG chơng trình có dạng @ g(S) S, ở đó S = P 1 || P 2 || || P m và P 1 , P 2 , , P m là các chơng trình tuần tự hoặc các chơng trình VERILOG có các tập index nhau. Ta định nghĩa g(@ g(S) S) = df (g(S)) Chơng trình thành phần P i đợc gọi là một nhánh. Nếu sự thay đổi của biến x làm cho g(P i ) thay đổi giá trị từ ff sang tt, thì ta nói ~ x đã kích hoạt điều khiển sự kiện g(P i ) và khi đó nhánh P i trở nên có thể hoạt động đợc. Bổ đề 1 (a) g(P||Q) = g(P) g(Q) (b) index(P||Q) = df index(P) index (Q) (c) P||Q =(P||Q) < g(P||Q) > SKIP Hành vi của một chơng trình phần cứng đợc mô tả bởi một dãy vô hạn các bớc mô phỏng sau 1. Tại thời điểm ban đầu của mỗi bớc mô phỏng cho đầu vào một giá trị xác định. Giá trị mới của đầu vào có thể kích hoạt một số các điều khiển sự kiện. Các nhánh tơng ứng sẽ đợc kích hoạt và có thể hoạt động. 2. Môi trờng sẽ chọn không tất định một trong các nhánh đợc kích hoạt để thực hiện. 3. Việc thực hiện một nhánh đợc kích hoạt P i đợc gọi là một bớc cơ sở, nó bao gồm các thao tác nhỏ sau: Thực hiện chơng trình P i . Xoá điều khiển sự kiện của nhánh P i để chỉ nhánh đó đã thực hiện. Truyền sự thay đổi của các biến tạo nên bởi sự thực hiện chơng trình P i . 4. Khi không có nhánh nào kích hoạt nữa, thì bớc mô phỏng đang xét dừng và chờ nhập giá trị mới cho đầu vào. Nếu luôn luôn có một nhánh đợc kích hoạt sau mỗi bớc cơ sở thì bớc mô phỏng đó không dừng. 3. Ngữ nghĩa quan hệ Hành vi của mỗi bớc mô phỏng có thể mô hình bởi một phép lặp của một phép ghép không tất định một số các nhánh song song kết hợp với một số thao tác phụ sau mỗi bớc cơ sở nh xóa hoặc ghi nhận sự thay đổi của các biến, Định nghĩa 1 (Ngữ nghĩa sự kiện). Giả sử (@g(S) S) là một chơng trình VERILOG với các biến v 1 , v 2, , v n và m chỉ số khác nhau. Giả sử nhánh P có tập chỉ số là I. Ngữ nghĩa sự kiện với tập chỉ số I đợc định nghĩa nh sau: (g(P) P e,I ) = df (g(I)) T ; (P || DIS event(P, I) trong đó 1. Biểu thức Bool g[I] nhận đợc bằng cách thay thế các biến ~ x trong g(S) với chỉ số I bằng thành phần thứ I tơng ứng của véc tơ tín hiệu (~x)[i]. 2. Ký hiệu b T ký hiệu giả thiết SKIP < b > T 3. P || DIS Q biểu diễn phép ghép song song rời nhau của hai chơng trình P và Q [5], ở đó chúng không có đầu ra chung. 4. Chơng trình event (P) đợc dùng để xoá các điều khiển sự kiện đã dùng khi P đợc thực hiện và truyền sự thay đổi của các biến cho các nhánh khác trong chơng trình. event(R,I) = df v 1 , , v n R k : 1 k n (~ v k = (~v k clear(I)) bool(v k v k ) m ) Bổ đề 2 1. event (P < b > Q,I) = event(P, I)< b > event(Q, I) 2. event (P Q,I) = event(P, I) event(Q, I) 3. event (v 1 ,v 2 := e 1 ,e 2 ,I) = = event(v 1 := e 1 ,I) || DIS event(v 2 := e 2 ,I) 3. event (v:= e,I) = k : 1 k n (~ v k = (~v k clear(I)); = = = fiSKIPex tt::x~0e0x tt::x~1e1xif m m Định nghĩa 2 (Bớc mô phỏng). Giả sử @ g(S) S là chơng trình VERILOG, trong đó S = P|| || Q và v 1 , v 2, , v n là các biến của chúng. Giả sử P, , Q có các tập chỉ số rời nhau I, , J, tơng ứng. Ta định nghĩa bớc lặp mô phỏng là bớc lặp sau: @ g(S) S = df var ~ v 1, ~v 2 , , ~v n :=in(v 1 ), in(v n ); (g[I] g[J] * g[I] P e,I g[J] Q e,J ) end ~ v 1, ~v 2 , , ~v n trong đó in(v I ) = tt m nếu v I là đầu vào mà giá trị mới khác với giá trị cũ. 4. Các chơng trình tổ hợp Trong phần này chúng ta nghiên cứu các chơng trình, mà các nhánh của chúng là các phép gán song song. Đây là lớp các chơng trình phần cứng mô tả hoạt động của các mạch tổ hợp, trong đó mỗi một phép gán song song x := E biểu diễn một thiết bị lấy giá trị E gán cho đầu ra của dây x . Ta gọi các cặp (x I , E I ) là một bổ sung. Định nghĩa 3. Chơng trình tổ hợp là một chơng trình VERILOG dạng @g(P) P, trong đó P = ( x := E ) || || ( z := F ) và không một biến nào xuất hiện nhiều hơn một lần ở vế trái các phép gán. Định nghĩa 4. (Trạng thái ổn định). Cho chơng trình tổ hợp nh đã định nghĩa trong Định nghĩa 3. Giả sử VAR là tập tất cả các biến và STATE: VAR {0, 1} Trạng thái s STATE đợc gọi là ổn định đối với Comb P nếu với mọi I (<v I > s = <E I > s) = true, trong đó (x I , E I ) là một bổ sung bất kỳ trong Comb P và <E I > s ký hiệu giá trị của biểu thức E tại trạng thái s. Hàm kiểm tra tính ổn định d(P) và điều kiện ổn định c(P) của các trạng thái của chơng trình Comb P là các hàm logic sau: d(P) = df ( x := E ) ( z := F ) c(P) = df (ơg[1] x := E ) (ơg[m] z := F ), ở đó: g[1]= g( x := E ), , g[m] = g( z := F ). Các chơng trình tổ hợp biến đổi từ trạng thái ổn định này sang trạng thái ổn định khác. Định lý 1. c(P) T ; Comb P = c(P) T ; Comb P; d(P) trong đó b ký hiệu là khẳng định SKIP < b > và là chơng trình ABORT. Ta có thể bổ sung việc kiểm tra tính ổn định vào trong điều kiện của phép lặp mà không ảnh hởng đến hành vi của chơng trình. Định lý 2. c(P) T ; Comb P = c(P) T ; (g(P) ơ d(P)) * P e, trong đó P e = g[1]( x := E ) e,1 g[m] ( z := F ) e,m 5. Các chơng trình tổ hợp luỹ đẳng Trong mục này chúng ta nghiên cứu một lớp các chơng trình con, mà mỗi phép gán của nó lũy đẳng. Định nghĩa 5. Chơng trình P đợc gọi là lũy đẳng, nếu P; P = P. Bổ đề 3. Mọi chơng trình tổ hợp đều lũy đẳng. Định nghĩa 6. Chơng trình tổ hợp đợc gọi là lũy đẳng theo thành phần nếu mọi nhánh của nó là lũy đẳng. Bắt đầu từ một trạng thái ổn định một chơng trình tổ hợp lũy đẳng theo thành phần gồm hai nhánh có thể bắt đầu từ một nhánh, sau đó thực hiện nhánh kia và cứ tiếp tục nh vậy cho đến khi đạt đợc trạng thái ổn định. Định lý 3. Nếu P = Q || R và Q, R là hai chơng trình lũy đẳng, thì c(P) T ; Comb P; end ~ x , ~ z = c(P) T ; Comb(Q;R R;Q);end ~ x , ~ z Định nghĩa 7. Chơng trình P đợc gọi là không mở rộng, nếu P k+1 = P k , trong đó X [4]. C. Delgado Kloos and P. T. Breuer. Formal Semantics for VHDL. Kluwer Academic Publisher, (1995). n+1 = df (X;X n ) và X 1 = df X. Khi chu trình mô phỏng của chơng trình tổ hợp kết thúc, trạng thái của nó thờng không đợc xác định một cách duy nhất. Đối với chơng trình lũy đẳng có thể dễ dàng kiểm tra tính dừng và tính duy nhất của trạng thái kết. Định lý 4. Nếu P = Q || R và Q, R là hai chơng trình lũy đẳng, sao cho P;Q và Q;R là hai chơng trình không mở rộng, thì khi đó Comb P luôn luôn dừng khi xuất phát từ trạng thái ban đầu thỏa mãn điều kiện c(P). 6. Kết luận Bài báo cung cấp cho ngôn ngữ mô tả phần cứng ngữ nghĩa sự kiện dựa trên mô hình quan hệ. Ban đầu các chơng trình tổ hợp ở trạng thái ổn định và đợc kích hoạt bởi các giá trị mới cung cấp cho các thiết bị đầu vào. Các nhánh kích hoạt của chơng trình sẽ đợc lụa chọn một cách không tất định để thực hiện. Bài báo chứng tỏ rằng một chơng trình phần cứng tơng đơng với một phép lặp của phép lựa chọn không tất định của một số các chơng trình tuần tự có chung các biến. Nếu chơng trình đợc thiết kế tốt, thì chúng sẽ luôn luôn dừng và đạt trạng thái kết thúc duy nhất. Đối với một lớp các chơng trình lũy đẳng bài báo đa ra thuật toán hữu hiệu xét tính dừng của nó. Việc nghiên cứu các tính chất dừng và trạng thái kết duy nhất của một số lớp chơng trình khác là đề tài nghiên cứu tiếp theo. Tài liệu tham khảo [1]. K. C. Davis. A denotational definition of the VHDL simulation Kernel. University of Cincinnati. [2]. M. Gordon. Why higher-order logic is a good formalsm for specifying and verifying hardware. Formal Aspect of VLSI Design, 153-177, (1986). [3]. M. Gordon. Event and Cycle Semantics of Hardware Description Languages. University of Cambridge Computer Laboratory, (1998). [5]. C. A. R. Hoare and He Jifeng. Unifying Theory of Programing. Prentice Hall, (1998). [6]. Open VERILOG International. VERILOG Hardware Description Language Reference Manual, Version 1.0. [7]. D. E. Thomas and P. R. Mooby. The VERILOG Hardware Description Language. Kluwer Academic Publishers, (1995) [8]. Tran Van Dung and He JiFeng. A Theory of Combinational Programs. UNU/IIST Report No 162Ă . ngữ nghĩa sự kiện. Bài báo này tổng quát hoá ngữ nghĩa mô phỏng bằng cách đa ra mô hình quan hệ cho VERILOG dựa trên quan hệ của các trạng thái kết thúc. Bài báo này xem xét ba lớp chơng trình. 4. Các chơng trình tổ hợp Trong phần này chúng ta nghiên cứu các chơng trình, mà các nhánh của chúng là các phép gán song song. Đây là lớp các chơng trình phần cứng mô tả hoạt động của các. ngữ nghĩa quan hệ của các chơng trình tổ hợp TS. trần văn dũng Bộ môn Toán - ĐH GTVT Tóm tắt: Các thao tác của các thiết bị dùng để ci đặt cho hệ thống điều khiển có

Ngày đăng: 06/08/2014, 05:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan