
1
MỞ ĐẦU
1. Đặt vấn đề
Ngày nay, các thiết bị nhúng đang trở nên quan trọng trong cuộc sống của chúng ta (ví dụ: điện
thoại thông minh, các thiết bị di động). Khi thiết kế hệ thống nhúng, người thiết kế cần xem xét kỹ
lưỡng các tiêu chí ràng buộc như hiệu năng, thời gian đưa sản phẩm ra thị trường, tiêu thụ năng
lượng, kích thước thực hiện, khả năng nâng cấp, cập nhật các ứng dụng và các tính năng mới trong
tương lai, v.v. Bên cạnh đó, các ứng dụng đa phương tiện tiên tiến như HD-video, xử lý ảnh, các trò
chơi 3D, v.v. luôn yêu cầu một sức mạnh tính toán lớn và chuyển tải dữ liệu nhanh. Các ứng dụng
này được thiết kế theo cách mà mức chất lượng của chúng có thể được điều chỉnh phù hợp với khả
năng xử lý của nền tảng phần cứng [52, 70]. Ví dụ khi xem video trên Internet, tùy thuộc vào băng
thông của mạng cũng như khả năng xử lý của thiết bị mà người dùng có thể xem được video ở mức
chất lượng HD hoặc SD, v.v. Thêm vào đó, các ứng dụng được mô hình hóa dưới dạng đồ thị tác
vụ với số lượng lớn các tác vụ truyền thông và các đặc tính khác nhau do vậy yêu cầu xử lý song
song các tác vụ này là rất cao. Một yếu tố khác đó là hành vi của người sử dụng thiết bị luôn thay
đổi theo thời gian như nghe nhạc, xem phim hoặc chơi trò chơi, v.v. Theo các yêu cầu này, chúng ta
dễ thấy rằng các ứng dụng được đưa vào và rời khỏi hệ thống tại bất kỳ thời điểm nào. Thứ tự các
ứng dụng được đưa vào và rời hệ thống cũng không thể biết trước. Ngoài ra, mức chất lượng của
các ứng dụng cũng có thể bị thay đổi theo hành vi của người dùng hoặc theo tình trạng tài nguyên
sẵn có của thiết bị (ví dụ: yêu cầu mức chất lượng, hiệu năng cho từng ứng dụng). Do vậy, việc phát
triển các nền tảng phần cứng có nhiều khả năng linh hoạt và khả năng thích nghi với các yêu cầu
như trên là hết sức cần thiết. Một xu hướng mới trong thiết kế các nền tảng tiên tiến đó là tạo ra một
nền tảng có thể tái cấu hình các mô đun vật lý sau khi chế tạo, kết hợp giữa bộ vi xử lý và các thiết
bị cấu hình lại [90], chẳng hạn như FPGA (Field Programmable Gate Array), để tăng thêm tính linh
hoạt cho hệ thống trong các môi trường khác nhau [63]. Tuy nhiên, khả năng của các phần tử cấu
hình lại trong thiết bị luôn có giới hạn. Do vậy, cần lựa chọn thêm một giải pháp quản lý động cho
hệ thống. Một trong những giải pháp quan trọng và rất linh hoạt đó là kỹ thuật ánh xạ ứng dụng
động. Kỹ thuật này kết hợp với khả năng cấu hình lại từng phần động của thiết bị phần cứng như
FPGA sẽ tạo ra một giải pháp hứa hẹn để giải quyết yêu cầu triển khai nhiều ứng dụng có thể điều
chỉnh được mức chất lượng lên nền tảng có tài nguyên tái cấu hình hạn chế [8, 86].
Hơn nữa, do độ phức tạp của các thiết bị nhúng hiện đại ngày càng tăng, một số lượng ngày
càng nhiều ứng dụng với chất lượng dịch vụ (QoS: Quality of Service) khác nhau có thể được triển
khai lên thiết bị, thường là trong một môi trường các nền tảng cấu hình lại không đồng nhất. Bởi vì
một nền tảng cấu hình lại không đồng nhất với sự linh hoạt của các bộ xử lý nhúng và hiệu quả tính
toán của một số vùng cấu hình lại đã được chứng minh là có nhiều ưu điểm hơn so với nền tảng
đồng nhất [1, 49]. Trong một nền tảng như vậy, các bộ xử lý nhúng thường được sử dụng để quản lý
và thực hiện một số tác vụ phức tạp thấp trong khi các vùng cấu hình lại được sử dụng để tăng tốc
độ tính toán cho các tác vụ phức tạp. Khả năng cấu hình động cho phép nền tảng thích nghi với các
yêu cầu xử lý thay đổi của các ứng dụng.
Mặt khác, các yêu cầu truyền thông ngày càng gia tăng trong một hệ thống trên chip (SoC:
System on Chip) phức tạp 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. Điều này phải đảm bảo các kết nối cần
thiết với một QoS được xác định trước, chẳng hạn như thông lượng hoặc trễ tối đa. 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ế mà chỉ biết
được khi chúng được triển khai vào hệ thống tại thời gian chạy. Trong trường hợp này, các yêu cầu