CHƯƠNG 3 TRIỂN KHAI CÁC ỨNG DỤNG CÓ THỂ ĐIỀU CHỈNH MỨC CHẤT LƯỢNG VÀO NỀN TẢNG CẤU HÌNH LẠI ĐƯỢC DỰA TRÊN NoC TẠI THỜI
3.4. Các giải pháp cho bài toán ánh xạ các ứng dụng lên NoC tại thời
3.4.2. Giải pháp heuristic cho bài toán ánh xạ tại thời gian chạy
3.4.2.1. Chiến lược chọn vùng gần lồi
Chọn các vùng gần lồi liền kề trên nền tảng để ánh xạ các tác vụ của các ứng dụng vào chúng là một giải pháp hiệu quả cho bài toán ánh xạ, nó đã được chứng minh trong các nghiên cứu [13, 14]. Tuy nhiên, có một vài hạn chế cần phải cải tiến và khắc phục trong các nghiên cứu này. Chiến lược chọn vùng NF trong [14] cố gắng tìm các PE trống trong nền tảng để tạo thành một vùng gần lồi cho ứng dụng vào với xem xét tổng khoảng cách MD tối thiểu. Chiến lược NF giả thiết đã có một hoặc một vài vùng đã tồn tại trên nền tảng. Một vùng mới được tạo ra bằng cách tham chiếu đến các vùng đã tồn tại. Do vậy, tính hiệu quả của vùng mới sẽ phụ thuộc vào các vùng đã tạo ra trước đó hoặc khi bắt đầu với một nền tảng trống hoàn toàn, NF có thể chọn một vùng không gần lồi. Ví dụ, một ứng dụng với 9 tác vụ được đưa vào nền tảng, NF có thể chọn một vùng 2x5 thay vì chọn một vùng 3x3. Xem xét một cách tiếp cận khác trong [13], nghiên cứu này tạo ra một vùng gần lồi cho ứng dụng vào dựa trên chiến lược chọn lựa một PE trống đầu tiên, sau đó tăng bán kính quét (khoảng cách Hop) để tìm các PE trống tiếp theo của vùng xung quanh PE đầu tiên. Cách tiếp cận này có thể tìm ra một vùng gần lồi tối ưu. Tuy nhiên, nó cũng có thể sinh ra các vùng gần lồi không liền kề hoặc tăng sự phân tán các PE trên nền tảng khi có nhiều ứng dụng vào, gây bất lợi cho các ứng dụng vào sau. Điều này có thể làm giảm hiệu năng cho toàn hệ thống.
Với một nền tảng phần cứng thực hiện trên FPGA có số lượng PE không lớn, tác giả đề xuất một chiến lược chọn vùng gần lồi mới nhắm đến các mục tiêu như cấp phát tài nguyên linh hoạt, thời gian thực hiện chọn vùng nhanh, giảm thiểu khoảng cách MD trung bình trong vùng đã chọn, tạo ra các vùng lồi liền kề. Chiến lược này được chia thành hai bước: Bước 1, tính toán cấp phát số lượng PE cứng/mềm tương ứng với mức chất lượng của ứng dụng yêu cầu. Bước 2, tìm một vùng gần lồi dựa trên phương pháp góc quét hình học và sử dụng thêm ràng buộc khoảng cách MD tối thiểu để chọn một vùng gần lồi tối ưu cho ứng dụng.
Cấp phát PE cứng/mềm cho ứng dụng theo yêu cầu chất lượng
Xem xét ví dụ trong Mục 3.2 khi các ứng dụng trò chơi hoặc phim có yêu cầu thay đổi mức chất lượng, hay một ứng dụng mới đưa vào hệ thống yêu cầu một mức chất lượng xác định nào đó. Câu hỏi là, có bao nhiêu PE cứng/mềm được cấp phát? Cấp phát theo tiêu chí nào? Câu trả lời phụ thuộc không những vào trạng thái tài nguyên sẵn có của nền tảng mà còn phụ thuộc vào độ phức tạp, mức độ ưu tiên của ứng dụng hoặc yêu cầu chất lượng dịch vụ từ người dùng. Bước đầu tiên của chiến lược chọn vùng sẽ cấp phát số lượng PE cứng/mềm tương ứng với mức chất lượng mà ứng dụng yêu cầu. Nếu các ứng dụng đưa vào hệ thống một cách tự nhiên khi đó số PE cứng/mềm sẽ được cấp phát theo một tỉ lệ công bằng sao cho tổng mức chất lượng đạt được của các ứng dụng sau khi ánh xạ là cực đại. Ví dụ, số PE cứng/mềm được cấp phát dựa theo độ phức tạp của ứng dụng.
Nếu các ứng dụng vào được ưu tiên hoặc người dùng yêu cầu một mức chất lượng nào đó, lúc đó số PE cứng sẽ được ưu tiên cấp phát nhiều hơn cho các ứng dụng có độ ưu tiên hoặc yêu cầu chạy ở mức chất lượng cao hơn. Ví dụ, một ứng dụng yêu cầu chạy ở mức chất lượng cao nhất, khi đó các PE cứng sẽ được cấp phát cho tất cả tác vụ của ứng dụng.
Chọn vùng gần lồi
Tiếp theo, một chiến lược chọn vùng (CV) mới dựa trên góc quét hình học kết hợp với khoảng cách MD tối thiểu được sử dụng để chọn ra một vùng gần lồi cho ứng dụng vào. Chiến lược này được mô tả như sau: Đầu tiên, tìm một PE trung tâm hoặc cận (gần) trung tâm làm tâm quét trên nền tảng. Các góc quét khác nhau thay đổi từ 0->3600 có thể được sử dụng. Hướng quét có thể được chọn cùng chiều hoặc ngược chiều kim đồng hồ.
Tương ứng với một góc quét xác định chúng ta sẽ tìm ra các PE trống trên nó. Bằng cách thực hiện nhiều góc quét khác nhau, liên tục sẽ tìm được số lượng PE trống cấp phát cho ứng dụng vào. Để chắc chắn tạo ra một vùng gần lồi, tác giả sử dụng thêm thông số ràng buộc là khoảng cách MD tối thiểu để chọn các PE trống gần nhau. Vì góc quét liên tục nên yếu tố phân mảnh, cũng như khoảng cách của các vùng lân cận được giảm đến mức tối thiểu. Sau mỗi lần quét trạng thái góc quét sẽ được cập nhật để sử dụng cho lần quét
tiếp theo khi có ứng dụng mới đưa vào hệ thống. Mã của chiến lược chọn vùng được trình bày trong Thuật toán 2.
Thuật toán 2: Chọn vùng gần lồi
Input: A(V,E), N_task, N(P,L) //N_task ; PE Output: R(N,L) //selected region
1: BEGIN 2: R = ;
3: integer sotf_PE = K*N_task; // the number of soft PEs
4: integer hard_PE = N_task – sotf_PE; // the number of hard PEs 5: if N_task > resource_available then goto step 28;
6: else
7: if remain_PE _angle < N_task then 8: update_value(S);
9: sort( S, compare );
10: end if
11: if sotf_PE soft_PE_available then 12: sotf_PE = soft_PE_available;
13: hard_PE =N_task - sotf_PE;
14: else
15: if hard_PE hard_PE_available then 16: sotf_PE = N_task - hard _PE_available;
17: hard_PE =hard_PE_available;
18: end if 19: end if
20: for mark_PE_angle to max_PE_angle do 21: insert(PE in S to R);
22: if enough sotf _PE and hard_PE then break;
23: end if 24: end for
25: update(mark_PE_angle, hard_PE_available, soft_PE_available);
26: update(remain_PE _angle);
27: end if 28: END
Tính toán độ phức tạp của thuật toán chọn vùng
Giả sử n là số tác vụ của A(V,E) và m là số PE của N(P,L). Độ phức tạp tính toán của giá trị góc tương ứng với mỗi PE so với véc tơ gốc (hàm update dòng số 8) là O(m). Độ phức tạp sắp xếp các PE theo giá trị góc là O(m*logm) (sử dụng thuật toán Quicksort trong dòng số 9). Thời gian chọn PE có góc nhỏ nhất để chọn vùng cho ứng dụng là O(n) (dòng 20). Do đó, độ phức tạp của thuật toán trong trường hợp xấu nhất là m + m*logm + n = O(m*logm). Tuy nhiên, mỗi nền tảng luôn có số PE cố định, do đó thuật toán chỉ sử dụng tối đa m véc tơ gốc. Vì vậy, ta có thể sử dụng cấu trúc dữ liệu để lưu tất cả các bảng chứa giá trị góc của từng PE đã được sắp xếp ứng với mỗi véc tơ gốc trong dòng 8 và 9.
Do đó, độ phức tạp của thuật toán chọn vùng giảm xuống còn O(n).
vikV pxyP