1.3.1. Giới thi u ệ
Hệ thống nhúng là một hệ thống xử lý được nhúng vào trong một môi trường hay một hệ thống lớn hơn. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài
32
toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động
hoá cao. Các hệ thống nhúng có những tính chất chung sau [ ]: 79
- Đáng tin cậy (dependable): Nhiều hệ thống nhúng sử dụng trong các môi trường đòi hỏi phải có độ an toàn cao nên chúng phải thật đáng tin cậy. Ví dụ, các hệ thống nhúng ứng dụng trong lò phản ứng hạt nhân là các hệ thống nhúng đáng tin cậy. Tính đáng tin cậy cũng quan trọng đối với các hệ thống khác như ô tô, tàu hỏa, máy bay. Và chúng bao gồm những khía cạnh sau:
1) Độ tin cậy: xác suất mà một hệ thống sẽ không gặp sự cố.
2) Khả năng bảo trì: xác suất mà một hệ thống đang bị sự cố có thể sửa được trong một khoảng thời gian nhất định.
3) Độ sẵn có: xác suất mà hệ thống ở tình trạng sẵn sàng phục vụ. Cả độ tin cậy và khả năng bảo trì đều phải cao để có độ sẵn cócao.
4) An toàn: một hệ thống bị sự cố sẽ không gây thiệt hại.
5) Bảo mật: dữ liệu mật không bị lộ và liên lạc có chứng thực được đảm bảo.
- Hiệu suất (efficient): Hiệu suất của các hệ thống nhúng được đánh giá theo các đặc điểm sau:
1) Năng lượng: Nhiều hệ thống nhúng là các hệ thống di động dùng năng lượng pin. Nhưng với các yêu cầu tính toán lại tăng với tốc độ cao, đặc biệt đối với các ứng dụng multimedia. Do đó, năng lượng phải được sử dụng một cách có hiệu quả
2) Kích thước mã: Toàn bộ mã chương trình chạy trong một hệ nhúng phải được lưu trong hệ thống. Thông thường, một hệ thống nhúng không có đĩa cứng để lưu chương trình. Do đó kích thước mã nên càng nhỏ càng tốt. Điều này đặc biệt đúng cho SoC. Nếu bộ nhớ lệnh cần được tích hợp vào chip, nó nên được dùng một cách có hiệu quả.
3) Hiệu quả khi chạy: Chỉ nên dùng lượng tài nguyên tối thiểu để thực hiện chức năng được yêu cầu. Cần thỏa mãn ràng buộc về thời gian với lượng tối thiểu tài nguyên phần cứng và năng lượng. Để giảm mức tiêu thụ năng lượng, tần số đồng hồ và điện áp nên nhỏ đến mức có thể. Ngoài ra, hệ thống chỉ nên có những thành phần phần cứng thiết yếu. Có thể bỏ các thành phần không cải thiện thời gian chạy. 4) Trọng lượng: Tất cả các hệ thống di động đều yêu cầu phải nhẹ. Nhẹ cũng thường
là một điều quan trọng khi cân nhắc khi thực hiện một hệ thống nào đó.
5) Giá: Đối với các hệ thống nhúng thông dụng, đặc biệt là đồ điện gia dụng, sức cạnh tranh trên thị trường là một vấn đề cực kì quan trọng, do đó cần sử dụng hiệu quả các thành phần phần cứng cũng như chi phí phát triển phần mềm.
Như vậy, hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệt nào đó. Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một hệ
33
những yêu cầu cụ thể. Vì hệ thống chỉ được xây dựng cho một số nhiệm vụ nhất định nên các nhà thiết kế có thể tối ưu hóa nó nhằm giảm thiểu kích thước và chi phí sản xuất.
1.3.2. Các lĩnh vự ức ng d ng c a h th ng nhúng ụ ủ ệ ố
H ệthống nhúng rất đa dạng, phong phú v ềchủng loại. Đó có thể là nh ng thi t b cữ ế ị ầm tay nh gỏ ọn như đồng h ồ kĩ thuậ ốt s , máy nghe nh c MP3, hoạ ặc là nh ng s n ph m lữ ả ẩ ớn
như đèn giao thông, bộ ki m soát trong nhà máy, ho c h ể ặ ệ thống ki m soát các nhà máy ể năng lượng h t nhân. ạ Dưới đây làcác lĩnh vực quan tr ng s dọ ử ụng đến các h ệthống nhúng.
Điện t ô tô; ử Điện t hàng không; ử Đường s t;Vi n thông;Y t ; B o m t; Quân s ; ắ ễ ế ả ậ ự Điện gia d ng; Nhà thông minh; Robot. ụ
1.3.3. Các thách th c và b o m t trong h ứ ả ậ ệ thống nhúng
Các h ệthống nhúng bao g m m t s ồ ộ ố lượng l n các ph n m m. ớ ầ ề Như đã biết, m c tiêu ụ
c a thi t k m t h ủ ế ế ộ ệ thống nhúng là tính hi u qu ệ ảcao, do đó thi t k ph n m m không th ế ế ầ ề ể được th c hiự ện độ ậc l p v i ph n c ng. Vì v y, ph n m m và ph n c ng phớ ầ ứ ậ ầ ề ầ ứ ải được xem xét trong các bước thi t k . Vi c tri n khai ph n c ng là r t tế ế ệ ể ầ ứ ấ ốn kém và đòi hỏi thi t k trong ế ế
thời gian dài. Hơn nữa, thi t k ph n c ng không th c s linh hoế ế ầ ứ ự ự ạt để thay đổi khi c n ầ
thi t. Vì v y, c n ph i tìm m t th a hi p t t nh t gi a tính hi u qu và tính linh hoế ậ ầ ả ộ ỏ ệ ố ấ ữ ệ ả ạt. Điều
này là khó khăn, vì phương pháp tiếp c n tích hậ ợp như vậ đòi hỏi ngườy i thi t k c n có ế ế ầ
ki n th c v ph n c ng l n ph n m m, Hình 1.12. Và khi thi t k h ế ứ ề ầ ứ ẫ ầ ề ế ế ệthống b o m t thì c n ả ậ ầ
hi u bi t sâu s c v b o m t nể ế ắ ề ả ậ ữa.
34 Các h ệthống nhúng t o thành n n t ng cho cái g i là th i kì hạ ề ả ọ ờ ậu PC, trong đó việc x ử
lý thông tin ngày càng chuy n d ch ra xa các h ể ị ệthống toàn PC ti n v các h ế ề ệthống nhúng. S ố lượng ng d ng ngày ứ ụ càng tăng ẫn đế d n nhu c u các công ngh thi t k h ầ ệ ế ế ỗ trợ các h ệ
thống nhúng. Các công ngh và công c hi n t i v n có nh ng h n ch quan tr ng. Ví d , ệ ụ ệ ạ ẫ ữ ạ ế ọ ụ
v n c n các ngôn ng c t tẫ ầ ữ đặ ả ốt hơn, các công cụ sinh mã t ngôn ng c t , các b kiừ ữ đặ ả ộ ểm chứng các điều ki n th i gian, h ệ ờ ệ điều hành th i gian thờ ực, các kĩ thuật thi t k t kiế ế tiế ệm
năng lượng, và các kĩ thuật thi t k dành cho các h thế ế ệ ống có độ tin c y cao. ậ
Ngoài ra, các h ệthống nhúng phải đáp ứng nhi u yêu c u phi chề ầ ức năng như nh g n, ỏ ọ
ràng bu c th i gian th c, hi u su t c a ngu n và các yêu c u v tin c y. R t nhi u mộ ờ ự ệ ấ ủ ồ ầ ề độ ậ ấ ề ục tiêu phải được xem xét trong quá trình thi t k . vì vế ế ậy, đáp ứng được các yêu c u phi chầ ức
năng cũng đã là khó khăn.
Việc th c hi n b o m t trên các h thự ệ ả ậ ệ ống nhúng cũng gặp nh ng khó kữ hănnhất định. B i vì h ở ệthống nhúng là m t h ộ ệthống r t h n ch v tài nguyên nên khi chúng ta thêm vào ấ ạ ế ề
các chức năng bảo m t, hiậ ệu năng của h ệthống có th b ể ịgiảm, tài nguyên c a h ủ ệthống có thể ị b chia s và chi phí c a h ẻ ủ ệ thống có th ể tăng lên. Đôi lúc nó l i làm giạ ảm độ tin c y ậ
c a h ủ ệ thống. Đã có rất nhi u các ti p c n khác nhau v b o m t các h ề ế ậ ề ả ậ ệ thống nhúng. Trong [ ] các tác gi 80 ả trình bày và đánh giá cách thực hi n các thu t toán b o m t trong ệ ậ ả ậ
các h ệ thống nhúng d a trên vi x lý lõi m m MicroBlaze. ự ử ề Tương tự, nhóm tác gi trong ả
[ ] trình bày m t ki81 ộ ến trúc an toàn để qu n lý b o m t trong h ả ả ậ ệ thống nhúng d a trên ự
FPGA. Liên quan đến ph n m m, các nhóm tác gi trong [ ], [ ] xu t gi i pháp bầ ề ả 82 83 đề ấ ả ảo v an toàn khệ ởi động h ệ điều hành nhúng Linux trên FPGA. bĐể ảo vệ nền tảng ph n c ng ầ ứ
c u hình lấ ại được trong h ệthống nhúng, các tác gi trong [ ], ả 32 đã đềxuất m t ki n trúc và ộ ế
m t giao thộ ức an toàn để ậ c p nh t ph n c ng c a h ậ ầ ứ ủ ệthống.
1.4. B o m t bitstream trong hả ậ ệ thống nhúng c u hình lấ ại đƣợc t ng ph n ừ ầ
1.4.1. H ệ thống c u hình lấ ại đƣợ ừc t ng ph n ầ
C u hình lấ ại được t ng ph n là kh ừ ầ ả năng thay đổi m cách linh ho t các kh i logic ột ạ ố
ph n c ng b ng cách c u hình lầ ứ ằ ấ ại các phân vùng tương ứng trên thi t b b ng các t p tin ế ị ằ ậ
bitstream t ng ph n. Công ngh c u hình lừ ầ ệ ấ ại được t ng ph n c a Xilinx cho phép các nhà ừ ầ ủ
thi t k ế ế thay đổi các chức năng của h ệ thống khi đang ch y, lo i b s c n thi t ph i c u ạ ạ ỏ ự ầ ế ả ấ
hình l toàn b h ại ộ ệthống và tái thi t l p các liên kế ậ ết, tăng cường đáng kểhiệu năng của h ệ
thống d a trên FPGA. Vi c s d ng c u hình lự ệ ử ụ ấ ại đượ ừc t ng ph n có th cho phép các nhà ầ ể
thi t k di chuy n các h ế ế ể ệthống đến các thi t b nh ế ị ỏ hơn, giảm năng lượng tiêu th và cụ ải thi n kh ệ ả năng nâng cấp h ệ thống. C u hình l i ấ ạ đượ ừc t ng ph n giúp s d ng tài nguyên ầ ử ụ
35 ph n c ng hi u qu ầ ứ ệ ả hơn bằng cách ch ỉ thực hi n các chệ ức năng cần thi t khi c n và giế ầ ải
phóng nó không còn dùng đến n a. ữ
Với công nghệ cấu hình lại được từng phần, phần cứng của FPGA được thiết kế gần giống như thiết kế phần mềm. Có nghĩa là, nó có thể được thiết kế thành từng mô đun cấu -
hình lại được RM (Reconfigurable Module), và sau đó tổng hợp vào hệ thống. Như được
trình bày trong Hình 1.13, hệ thống cấu hình lại được từng phần dựa trên FPGA bao gồm phần logic tĩnh và ba phân vùng cấu hình lại được RP(Reconfigurable Partition). Ứng với
các phân vùng RP#1, R 2, RP#3, P# ta có thể xây dựng thành tập các mô đun từng phần -
RM1, RM1,RM3 tương ứng. Ví dụ, với tập mô đun - RM1 ta có các mô-đun chức năng IP Core1, IP Core2, IP Core3, và các mô-đun chức năng này có thể được cấu hình vào RP#1 khi hệ thống vẫn đang hoạt động bình thường.
Hình 1.13 Ví dụ về một hệ thống cấu hình lại được từng phần
Cấu hình lại từng phần cho phép các bộ phận quan trọng của hệ thống vẫn tiếp tục hoạt động trong khi một bộ điều khiển trên FPGA hoặc bên ngoài nó tải một thiết kế từng phần vào trong một mô đun cấu hình lại được. Cấu hình lại từng phần cũng có thể được sử dụng để tiết kiệm không gian lưu trữ bằng cách chỉ lưu trữ những thành phần mà có sự thay đổi giữa các thiết kế.
Một ví dụ về tính hữu ích của hệ thống có thể cấu hình lại được từng phần là trường hợp của một thiết bị truyền thông. Nếu thiết bị này đang kiểm soát nhiều kết nối, một trong số các kết nối đó yêu cầu thay đổi bộ mã hóa, nó sẽ tự động cập nhật lại lõi mã hóa này mà
không cần ph dừng mọi hoạt động của thiết bị.ải
Có hai kiểu cấu hình lại từng phần của các thiết bị FPGA, đó là cấu hình lại ựa trên d mô-đun và cấu hình lại dựa trên sự khác biệt.
Cấu hình lại từng phần dựa trên mô-đun cho phép cấu hình lại các mô đun riêng -
biệt của thiết kế. Để đảm bảo truyền thông xuyên qua ranh giới các mô đun cấu hình -
lại, các macro bus đặc biệt đã được sắp xếp trước. Nó hoạt động như một cầu nối định tuyến cố định kết nối các mô đun cấu hình lại với phần còn lại của thiết kế. Cấu hình -
36
lại từng phần dựa trên mô đun đòi hỏi phải thực hiện một tập hợp các hướng dẫn cụ -
thể trong giai đoạn đặc tả kỹ thuật thiết kế. Cuối cùng với mỗi mô đun cấu hình lại của -
thiết kế, bitstream từng phần được tạo ra. Đó là bitstream được sử dụng để thực hiện cấu hình lại từng phần của một FPGA.
Cấu hình lại từng phần dựa trên sự khác biệtcó thể được sử dụng khi có một thay đổi nhỏ được thực hiện trong thiết kế. Nó đặc biệt hữu ích trong trường hợp thay đổi các LUT hoặc nội dung các khối bộ nhớ chuyên dụng. Bitstream từng phần chỉ chứa thông tin về sự khác biệt giữa cấu trúc thiết kế hiện tại (nằm trong FPGA) và nội dung mới của FPGA.
Từ các chức năng của thiết kế, cấu hình lại từng phần có thể được chia thành hai
nhóm: Cấu hình lại từng phần tĩnh và cấu hình lại từng phần động.
Cấu hình lại từng phần động, nó cho phép thay đổi từng phần của hệ thống trong khi
phần còn lại vẫn đang hoạt động bình thường.
Cấu hình lại từng phần tĩnh, là quá trình cấu hình lại một phần của hệ thống và các phần còn lại phải ngừng hoạt động Hệ thống sẽ hoạt động trở lại sau khi phầ cấu . n hình lại đã hoàn thành.
Cấu hình lại từng phần tĩnh là trường hợp đặc biệt của cấu hình từng phần động. Vì vậy phần tiếp theo luận án này sẽ chỉ trình bày phần cấu hình lại được từng phần động. 1.4.1.1. Cấu hình lại từng phần động
Trong phần này chúng ta sẽ thảo luận chi tiết hơn về cấu hình lại từng phần động DPR (Dynamic Partial Reconfiguration). Mặc dù là rất khó khăn để thực hiện DPR nhưng có rất nhiều lợi thế nổi bật ở trong đó. Chúng ta hãy xem xét các thành phần bên trong của hệ thống cấu hình lại được trong các mục sau.
Phần động - Dynamic Part
Phần động (mô đun động) là thành phần chức năng không cần thiết phải hoạt động -
trong suốt thời gian hoạt động của hệ thống và có thể được phát triển hoặc nâng cấp một cách độc lập với thiết lập ban đầu (phần tĩnh). Các mô-đun động này chia sẻ các khu vực
chung bên trong FPGA (xem Hình 1.13), điều này dựa trên giả định rằng chúng không cần thiết chạy song song cùng một lúc. Chúng được nạp vào hoặc gỡ bỏ khỏi FPGA theo yêu
cầu của hệ thống, và chúng thường được lưu trữ ở dạng bitstream từng phần trong một bộ nhớ bên ngoài FPGA. Trong một số trường hợp, chúng cũng có thể được lưu trữ trong bộ nhớ có sẵn bên trong FPGA.
Phần tĩnh - Static Part
Phần tĩnh là một phần của thiết kế đầu vào và nó hoạt động trong suốt thời gian chạy ứng dụng. Nó được đặt trong khu vực "tĩnh" của một FPGA và được giữ nguyên vẹn trong suốt vòng đời hệ thống. Ngoài chức năng tiêu chuẩn của nó, nó còn cung cấp một cơ sở hạ
37
tầng để tải và gỡ bỏ các mô-đun của thiết kế, đó là hệ thống lập lịch, quản lý dữ liệu, và quản lý giao diện.
Phần tĩnh bao gồm bộ điều khiển và logic cấu hình cần thiết cho việc quản lý dữ liệu và giao diện. Tất cả các đầu vào / đầu ra của các ứng dụng được quản lý bởi phần tĩnh, giao tiếp với các mô đun động thông qua một giao diện cố định.-
Macro bus Bus Macro –
Macro bus được sử dụng như các đường dẫn dữ liệu cố định cho các tín hiệu đi qua giữa một mô đun cấu hình lại và thành phần- khác. Các thiết kế phải đảm bảo rằng bất kỳ tín hiệu nào của mô đun cấu hình lại được giao tiếp với một thành phần khác chỉ bằng cách -
thông qua một macro bus. Macro bus là một phần trung tâm của một thiết kế cấu hình lại. Nó chuyển tải lệnh và dữ liệu vào và ra của các mô đun cấu hình lại và nó là đường duy -