Các trường hợp nghiên cứu

Một phần của tài liệu Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc (Trang 64 - 68)

CHƯƠNG 2 PHÁT TRIỂN NỀN TẢNG PHẦN CỨNG CẤU HÌNH LẠI ĐƯỢC

2.3. Phát triển nền tảng phần cứng cấu hình lại từng phần động

2.3.3. Các trường hợp nghiên cứu

2.3.3.1. Cấu hình lại cơ sở hạ tầng truyền thông

Các yêu cầu truyền thông ngày càng gia tăng trong các hệ thống nhúng như nền tảng đa lõi không đồng nhất cấu hình lại được. Do vậy việc lựa chọn một cơ sở hạ tầng truyền thông phù hợp là cần thiết. Tuy nhiên, trong nhiều trường hợp mức ưu tiên của các ứng dụng chưa được biết trước tại lúc thiết kế hoặc trường hợp các ứng dụng chạy trên hệ thống có tải làm việc thay đổi động. Trong trường hợp như vậy, một cơ sở hạ tầng truyền thông tĩnh sẽ không còn phù hợp. Thay vào đó, một cơ sở hạ tầng truyền thông động, thích nghi với các yêu cầu thay đổi của ứng dụng sẽ được sử dụng. Khi các yêu cầu của ứng dụng thay đổi, kiến trúc của cơ sở hạ tầng truyền thông NoC sẽ được điều chỉnh và tối ưu hóa cấu trúc nhằm nâng cao hiệu năng cho hệ thống, giảm tiêu thụ năng lượng và ngay cả tiết kiệm chi phí tài nguyên.

Để có được một cơ sở hạ tầng truyền thông linh hoạt như trên, tác giả xem xét cấu hình lại các bộ đệm trong bộ định tuyến hoặc cấu hình bộ định tuyến hay cấu hình lại cả topo của NoC.

Khu vực tĩnh Khu vực động Flit

Decoder Virtual Channel

Switch Arbiter

FIFO INPUT W

FIFO INPUT E

FIFO INPUT N

FIFO INPUT S

ROUTER

Flit Decoder

Virtual Channel

Switch Arbiter Input

FIFO

Input FIFO

Input FIFO

Input FIFO

Input FIFO

EAST NORTH

SOUTH

LOCAL WEST

Hình 2.21. Phân chia khu vực cấu hình các bộ đệm ngõ vào trong bộ định tuyến của NoC Các bộ đệm trong bộ định tuyến đóng vai trò quan trọng vì chúng ảnh hưởng trực tiếp đến hiệu năng, năng lượng tiêu thụ và cả diện tích của thiết bị. Trong [51], các tác giả đã chỉ ra rằng năng lượng tiêu thụ của các bộ đệm chiếm khoảng 46% năng lượng tiêu thụ của bộ định tuyến và diện tích chiếm khoảng 15% so với tổng diện tích của bộ định tuyến.

Các nghiên cứu trong [11, 100] cũng cho thấy rằng nguồn tiêu thụ tĩnh và động lớn nhất trong bộ định tuyến tập trung tại các bộ đệm. Các đánh giá trong [40, 81] chỉ ra sự ảnh hưởng của kích thước bộ đệm đến hiệu năng trong mạng là rất lớn. Rõ ràng, khi kích thước bộ đệm tăng thì độ trễ giảm và thông lượng tăng, ngược lại kích thước bộ đệm giảm thì độ trễ tăng cao, thông lượng giảm. Tuy nhiên, trong trường hợp kích thước bộ đệm lớn

nhưng lưu lượng dữ liệu của ứng dụng đưa vào mạng thấp dẫn đến lãng phí tài nguyên và làm tăng năng lượng tiêu thụ, ngược bộ đệm có kích thước nhỏ nhưng lưu lượng dữ liệu của ứng dụng đưa vào mạng lớn thì làm giảm hiệu năng. Do vậy, việc thiết kế một kiến trúc NoC linh hoạt cho phép thay đổi kích thước các bộ đệm thích nghi theo trạng thái lưu lượng dữ liệu của các ứng dụng đưa vào hệ thống tại thời gian chạy là hết sức cần thiết để tối ưu các thông số hiệu năng, năng lượng tiêu thụ và chi phí.

Để cấu hình lại các bộ đệm có kích thước khác nhau thích nghi theo trạng thái lưu lượng dữ liệu của các ứng dụng chạy trên hệ thống, tác giả sử dụng hệ thống cấu hình lại từng phần động cho NoC, kết hợp phần cứng/phần mềm trên FPGA đã được xây dựng như Hình 2.19.

Khu vực tĩnh và khu vực động của của bộ định tuyến trong NoC được phân vùng như Hình 2.21. Trong đó, các bộ đệm được cấu hình lại tại thời gian chạy nên chúng được đặt trong khu vực động của FPGA. Các thành phần còn lại của bộ định tuyến không thay đổi nên chúng được đặt trong khu vực tĩnh của FPGA.

Tiếp theo, tác giả sẽ phân tích kịch bản điều khiển và giám sát quá trình cấu hình lại kích thước bộ đệm ngõ vào thích nghi theo sự thay đổi của ứng dụng có tải làm việc động để thấy rõ hơn tính linh hoạt của phương pháp tiếp cận này. Quá trình cấu hình của các file cấu hình được lưu trữ từ bộ nhớ ngoài CF được thực hiện theo các bước dưới đây (lưu đồ giải thuật như Hình 2.22).

Bước 1: Khi hệ thống bắt đầu hoạt động, chương trình sẽ thiết lập các thông số cấu hình cho các khối: SysAce để có thể giao tiếp với bộ nhớ ngoài CF; khối HWICAP để chuẩn bị cho việc cấu hình; khởi tạo giá trị thời gian cấu hình cho bộ định thời để chuẩn bị cho việc đo đạc thời gian cấu hình.

Bước 2: Sau khi các thiết lập ở Bước 1 thành công. Hệ thống sẽ tiếp tục kiểm tra lưu lượng dữ liệu được đưa vào mạng tại các ngõ vào của bộ định tuyến để ra quyết định cấu hình. Nếu lưu lượng dữ liệu đưa vào mạng thay đổi hệ thống sẽ đưa ra yêu cầu cấu hình, kích thước của bộ đệm được lựa chọn tương ứng với từng khoảng giá trị lưu lượng cụ thể, giá trị này được tính toán tối ưu tại lúc thiết kế. Quá trình cấu hình có thể thực hiện tự động hoặc cũng có thể thực hiện bằng tay thông qua bàn phím.

Bước 3: Nếu việc lựa chọn cấu hình được thiết lập, hệ thống sẽ thực hiện cấu hình bằng cách đọc dữ liệu từ file cấu hình tương ứng đã được lưu trữ trong bộ nhớ ngoài CF để truyền đến và ghi vào HWICAP. Sau khi hoàn tất quá trình ghi vào HWICAP, dữ liệu sẽ được tiếp tục ghi vào bộ nhớ cấu hình của FPGA từ HWICAP.

Bước 4: Hàm ngắt sẽ kiểm tra trạng thái hoàn thành của quá trình cấu hình vào bộ nhớ cấu hình của FPGA. Nếu quá trình cấu hình đã hoàn tất, thời gian cấu hình sẽ được

đọc ra từ bộ đếm, các thông số cấu hình sẽ được thiết lập lại như trạng thái ban đầu và một quá trình cấu hình mới sẽ được kiểm tra và bắt đầu thực hiện.

Bắt đầu

Khởi tạo các hàm cấu hình và hàm trạng thái thực hiện.

InitSysAce() HwIcap_Lookup()

HwIcap_Init() Timer_Init()

Lưu lượng tại các ngõ vào bộ định tuyến ?

Kết thúc N

Cấu hình file bistream từ CF vào Bộ nhớ FPGA

Đếm thời gian Y N

Y

N

Dừng bộ đếm Đọc thời gian Reset bộ đếm

Y Cấu hình ?

Cấu hình đã hoàn thành ?

Hình 2.22. Lưu đồ thuật toán điều khiển quá trình cấu hình

Ngoài ra, trong trường hợp nghiên cứu này, tác giả còn xem xét cấu hình lại bộ định tuyến hoặc cấu hình lại cả topo mạng NoC 2x2. Mô hình cấu hình được xây dựng như Hình 2.23. Các bộ định tuyến hay topo mạng 2x2 là các thành phần được cấu hình nên chúng được đặt trong khu vực động của FPGA. Các thành phần còn lại của mạng 2x2 sẽ được đặt vào khu vực tĩnh như NI và các PE. Các bộ định tuyến hoặc các topo mạng sẽ được tổng hợp thành các file cấu hình khác nhau dựa theo các ứng dụng cụ thể khác nhau.

Tùy theo ứng dụng được đưa vào hệ thống mà nó sẽ lựa chọn bộ định tuyến hoặc topo thích hợp để cấu hình.

Khu vực tĩnh Khu vực động Khu vực tĩnh

NI

NI NI

PE NI 00

PE 01

PE 11 PE

10

Router 00

Router 01

Router 10

Router 11

Hình 2.23. Phân chia khu vực cấu hình lại bộ định tuyến hoặc topo mạng 2x2 của NoC 2.3.3.2. Cấu hình lại các PE

Do độ phức tạp của các thiết bị nhúng hiện đại ngày càng tăng nên nhiều ứng dụng với nhiều chất lượng dịch vụ khác nhau có thể được triển khai lên thiết bị. Tuy nhiên, tài nguyên của thiết bị nhúng luôn có giới hạn nên tại một thời điểm không thể triển khai tất cả các ứng dụng yêu cầu lên nó. Để giải quyết vấn đề này, giải pháp ánh xạ động các ứng dụng lên nền tảng phần cứng NoC có khả năng cấu hình lại các lõi PE sẽ được lựa chọn.

Xem xét một ví dụ đơn giản như sau: Yêu cầu triển khai 2 ứng dụng B1 và B2 lên nền tảng NoC có 4 PE. Trong đó, ứng dụng B1 có 4 tác vụ, ứng dụng B2 có 3 tác vụ. Nếu chúng ta sử dụng một nền tảng NoC dạng tĩnh có nghĩa là các PE không thể điều chỉnh sau khi chế tạo. Trong trường hợp này, rõ ràng chúng ta không thể triển khai được 2 ứng dụng B1 và B2 lên nền tảng NoC. Tuy nhiên, nếu chúng ta sử dụng một nền tảng NoC có thể cấu hình lại được các PE tại thời gian chạy, khi đó 2 ứng dụng B1 và B2 có thể được triển khai lên nền tảng. Điều này có thể được giải thích như sau: Khi ứng dụng B1 thực hiện xong, hệ thống yêu cầu thực hiện ứng dụng B2 lúc đó các PE chỉ thuộc về ứng dụng B2 được chứa trong bộ nhớ của hệ thống sẽ được nạp vào các vùng cấu hình trên nền tảng NoC. Quá trình này có thể được thực hiện được nhờ vào khả năng cấu hình lại từng phần động của FPGA. Lúc đó các PE thuộc về ứng dụng B1 sẽ bị loại bỏ ra khỏi hệ thống. Việc tìm và đặt các PE của ứng dụng B1 hoặc B2 lên nền tảng để tối ưu theo một vài tiêu chí nào đó như tiêu thụ năng lượng hay mức chất lượng sẽ phụ thuộc vào thuật toán ánh xạ.

Trong mục này, giải pháp tự động cấu hình lại các PE trong NoC tại thời gian chạy, trong khi kiến trúc truyền thông được giữ cố định sẽ được trình bày. Giải pháp này rất phù hợp để giải quyết bài toán ánh xạ các ứng dụng khác nhau lên hệ thống tại thời gian chạy hoặc hệ thống có tài nguyên giới hạn nhưng yêu cầu triển khai nhiều ứng dụng lên nó tại các thời điểm khác nhau. Các vấn đề này sẽ được tác giả trình bày cụ thể trong chương tiếp theo.

Kịch bản cấu hình lại các PE của NoC được thực hiện dựa trên hệ thống cấu hình tổng quát đã được xây dựng như Hình 2.19. Trong đó, mô đun NoC được phân chia vào hai khu vực cấu hình: khu vực động và tĩnh như Hình 2.24. Do các PE có thể thay đổi tự động

khi có một ứng dụng mới được triển khai lên nền tảng nên chúng được đặt trong khu vực động của FPGA. Trong khi, kiến trúc truyền thông của NoC không thay đổi nên nó được đặt trong khu vực tĩnh. Trong kịch bản này, các thuật toán ánh xạ sẽ tự động tìm và đặt các tác vụ của ứng dụng vào các PE tương ứng trên nền tảng phần cứng theo các điều kiện ràng buộc của thuật toán. Với một ứng dụng cụ thể được triển khai lên nền tảng, hệ thống sẽ tự động nạp các file cấu hình vào các vùng cấu hình tương ứng với các PE. Các file cấu hình được tạo ra theo luồng thiết kế trong Mục 2.3.2.1 dựa trên đặc tính và đồ thị tác vụ của các ứng dụng và chúng được lưu trữ trong bộ nhớ CF của hệ thống. Kích thước mỗi vùng cấu hình được tạo ra dựa trên phân tích độ lớn của các tác vụ của ứng dụng (ví dụ số slice cho một tác vụ).

Khu vực động

Khu vực động Khu vực tĩnh

NI

NI NI PE NI

00

PE 01

PE 11 PE

10

Router 00

Router 01

Router 10

Router 11

Một phần của tài liệu Luận án tiến sĩ nghiên cứu noc cấu hình lại được trên FPGA và phát triển thuật toán ánh xạ động ứng dụng trên nền tảng noc (Trang 64 - 68)

Tải bản đầy đủ (PDF)

(107 trang)