CHƢƠNG 2 : CÁC KHÁI NIỆM
3.5. Cải tiến FT-DyMPSoC
Hệ thống FT-DyMPSoC sử dụng một NoC thay vì liên kết điểm – điểm. Hệ thống với kiến trúc tự động cấu hình lại tin cậy (Re2DA) sử dụng một mạng dựa trên NoC đƣợc gọi là DRAFT (Dynamic Reconfigurable Adaptive Fat-Tree) [36]. Khả năng chịu lỗi ở mức độ đa nền tảng đã đƣợc đƣa vào mối quan tâm cung cấp một hệ thống có độ tin cậy cao dựa trên FT-DyMPSoC. Các nền tảng, bao gồm của vài FPGA và mỗi FPGA là một hệ thống FT-DyMPSoC. Khả năng chịu lỗi đƣợc quản lý ở cấp MPSoC cũng nhƣ mức độ đa nền tảng (cấp tổng thể hệ thống).
3.5.1. Hệ thống Re2DA
Vì sự phức tạp của hệ thống MPSoC liên tục tăng với các yêu cầu song song của các ứng dụng, liên kết mạng trở thành một mối quan tâm hàng đầu đến việc sử dụng mạng trên chip (NoC). NoC, giống DRAFT [36], cung cấp sự linh hoạt và khả năng mở rộng đến các ứng dụng. FT-DyMPSoC sử dụng DRAFT nhƣ kiến trúc truyền thông trung tâm trong các bộ vi xử lý trong một hệ thống MPSoC. Bên cạnh các ứng dụng ngƣời dùng, DRAFT cũng đƣợc sử dụng cho mục tiêu khả năng chịu lỗi. Dự kiến ứng dụng ngƣời dùng là thành lập 4 ứng dụng trên ô tô, nhằm mục đích nhiệm vụ có mức độ bảo mật khác nhau. Các cơ chế chịu lỗi đảm bảo các chức năng hệ thống tùy thuộc vào các mức độ bảo mật, nhiệm vụ an ninh cao nhất sẽ đƣợc quản lý đầu tiên.
Hình 3.8: Cấu trúc nội của Re2DA
Hiện nay, rất nhiều kiến trúc liên kết mạng đƣợc thiết kế nhƣng cấu trúc mạng của chúng có thể đƣợc phân loại trong một vài họ cơ bản [50]. Chúng chính là kiến trúc dựa trên bus, các cấu trúc ma trận nhƣ mắt lƣới và hình xuyến, cây dựa trên cấu trúc liên kết giống nhƣ fat- trees, cấu trúc vòng (ring) cơ bản, và cuối cùng là mạng tùy chỉnh. Tuy nhiên, cấu trúc phổ biến nhất cho thực hiện trong nền tảng của hệ thống bằng cách sử dụng cấu hình lại linh động dựa trên bus, các mắt lƣới, và các fat- trees [21]. Chúng tôi sử dụng trong công việc này mạng DRAFT [36] đƣợc chuyển thể từ một cấu trúc dựa trên fat- tree và đƣợc thiết kế đặc biệt đƣợc thực hiện trong hệ thống thực hiện cấu hình lại linh động. Hơn nữa, nó cung cấp hiệu năng mạng tốt nhất trong khi tiêu thụ tài nguyên phần cứng ít hơn so với lƣới khác hoặc dựa trên mạng fat-tree. Hiệu năng về độ trễ và băng thông kết hợp là thú vị để truyền cả một luồng video và quá cảnh của các từ điều khiển đƣợc sử dụng cho mục đích chịu lỗi. Đó là lý do tại sao các mạng DRAFT đƣợc chọn cho hệ thống cấu hình lại tự động FT-DyMPSoC.
Các cơ chế phát hiện lỗi của hệ thống này cũng đƣợc dựa trên các ma trận kết nối. Tuy nhiên, các ma trận đƣợc thích nghi với mạng DRAFT. Sử dụng những ma trận sửa đổi, hệ thống có khả năng phát hiện lỗi cho dù trong các bộ vi xử lý, DRAFT hoặc trong các kết nối của DRAFT. Khi một lỗi đƣợc phát hiện, cấu hình lại linh động của các mô-đun liên quan đƣợc đƣa ra để sửa lỗi. Nếu thông qua các ma trận kết nối bằng cách sử dụng DRAFT, bộ xử lý đƣợc báo cáo bị ngắt kết nối từ bộ xử lý khác, nó có thể là bộ xử lý không thành công hoặc liên kết là thất bại. Trong trƣờng hợp đó, DDR đƣợc sử dụng để phân biệt các lỗi. Tất cả các bộ vi xử lý viết một cờ trong các vị trí cụ thể của chúng trong DDR và đọc những cờ của những bộ xử lý khác. Nếu không tìm thấy cờ của một bộ xử lý, bộ xử lý này là bị lỗi. Nếu cờ đƣợc tìm thấy thành công, bộ xử lý vẫn còn làm việc, do đó, trả về lỗi kết nối.
Các bộ vi xử lý định kỳ đồng bộ hóa bản thân, chia sẻ các ma trận kết nối, và lƣu các bối cảnh bộ vi xử lý cho mục đích phát hiện lỗi trong giai đoạn lƣu trữ (Checkpointing). Các bối cảnh làm giảm trạng thái của các bộ vi xử lý đƣợc thƣờng xuyên lƣu trong DDR bản thân bộ vi xử lý. Sau khi cấu hình lại của một bộ xử lý bị lỗi, trạng thái của bộ vi xử lý này cần phải đƣợc phục hồi để lƣu trữ trạng thái cuối
cùng trƣớc khi xảy ra lỗi. Vì vậy, bối cảnh chính xác cuối cùng sẽ đƣợc nạp lại các bộ vi xử lý chỉ sau khi cấu hình lại (Rollback).
3.5.2. Nền tảng nhiều FPGA
Hình 3.9: Chịu lỗi trong nền tảng nhiều FPGA
Nhƣ hình 3.9, hệ thống này bao gồm bốn FPGA kết nối với nhau bằng cách sử dụng hai mạng Ethernet (trong tƣơng lai có thể dựa trên giao diện PLC, trong khi đề án khác đƣợc xây dựng trên các kết nối RF nhƣ nghiên cứu trong dự án CIFAER [78]). Mạng đầu tiên đƣợc định tuyến thông qua một chuyển đổi mạng, các mạng khác tạo thành một cấu trúc liên kết vòng cho mục đích chịu lỗi. Các giao thức Ethernet đƣợc xây dựng bởi bộ điều khiển Ethernet nhƣ các phần cứng thiết bị ngoại vi MicroBlaze và các LightWeight IP [35] nhƣ các thƣ viện phần mềm. LwIP là một gói mã nguồn mở bằng cách sử dụng giao thức TCP / IP, có thể dễ dàng thích nghi với PLC và modem không dây. Mỗi FPGA có chứa một hệ thống FT-DyMPSoC.
Trên hệ thống tổng thể, mỗi FPGA giao tiếp với một bộ nhớ có thể đƣợc truy cập bởi tất cả các bộ vi xử lý bên trong cùng một FPGA. Bộ nhớ này đƣợc phân chia thành ba phân đoạn (hình 3.9):
Một cho lƣu trữ tất cả các bitstream và các bối cảnh của tất cả các bộ vi xử lý FPGA cụ thể.
Một cho lƣu trữ tất cả các bitstream của FPGA tiếp theo trong mạng vòng. Một dành riêng và đƣợc sử dụng trong trƣờng hợp xảy ra thất bại trong hệ
thống. Phân khúc này sẽ giúp chuyển các bitstream và các bối cảnh giữa FPGA khác nhau.
Các phân đoạn bộ nhớ đảm bảo sự tồn tại của ít nhất một bản sao của tất cả các bitstream trên toàn bộ mạng lƣới.
Hình 3.10: Chiến lược phục hồi lỗi
Nhƣ chúng ta có thể nhìn thấy trong hình 3.10 (a), bitstream của mỗi FPGA hiện tại trong bộ nhớ nội của nó và cũng có trong bộ nhớ nội của FPGA trƣớc đó trong cấu trúc liên kết vòng. Ví dụ, FPGA1 lƣu trữ bitstream của 1 và các bitstream 2, FPGA2 lƣu trữ của bitstream 2 và bitstream 3 và tiếp tục. Những sao chép sẽ đƣợc sử dụng trong trƣờng hợp lỗi hệ thống, và cho phép bối cảnh chuyển đổi nhanh chóng.
Độ chịu lỗi đƣợc duy trì ở hai cấp độ trong hệ thống. Mức Intra-FPGA tƣơng ứng với các chiến lƣợc chịu lỗi mỗi bên trong FPGA, và có liên quan đến việc thiết kế các hệ thống FT-DyMPSoC. Chiến lƣợc giảm thiểu lỗi đƣợc thực hiện bằng cách sử dụng thuật toán ma trận kết nối, và lỗi đƣợc giảm nhẹ bằng cách sử dụng cấu hình lại linh động ở cấp độ bộ vi xử lý. Cấp độ thứ hai đƣợc gọi là Inter-FPGA mức độ tƣơng ứng với hệ thống tổng thể trình bày trong hình 3.9. Để phát hiện lỗi trong mạng tổng thể, tất cả các các FPGA trao đổi thƣờng xuyên trong khung phát hiện. Những khung chứa các bối cảnh phần mềm của bốn MicroBlazes của mỗi FPGA. Một mặt, điều này sẽ giúp phát hiện lỗi trong mạng. Mặt khác, bao gồm các bối cảnh trong khung phát hiện sẽ giúp đỡ để tiếp tục nhiệm vụ của một FPGA bị lỗi trên FPGA khác. Trong quá trình trao đổi nếu bối cảnh của một FPGA (tức là FPGA3 hình 3.10) không nhận đƣợc từ các mạch khác, FPGA3 đƣợc tuyên bố bị lỗi. Có 2 khả năng: các MicroBlaze 1 (hỗ trợ các giao diện mạng) của FPGA3 là bị lỗi, gây ra các thông tin liên lạc bị mất của FPGA này, hoặc toàn FPGA3 là bị lỗi. Để phân biệt 2 khả năng này, các liên kết ethernet thứ cấp đƣợc sử dụng. FPGA2 và FPGA4 cố gắng để giao tiếp với MicroBlaze 2 và 3 của FPGA3. Nếu những thông tin liên lạc không thành công, toàn bộ FPGA3 đƣợc khai báo là lỗi, nếu không, chỉ các MicroBlaze 1 là tỗi.
Nếu chỉ có một MicroBlaze bên trong 1 FPGA thất bại, lỗi này đƣợc quản lý nhờ vào cấu hình lại linh động của bộ vi xử lý này hoặc bằng cách sử dụng chuyển đổi nhiệm vụ trong hệ thống MPSoC. Lỗi này đƣợc quản lý ở cấp FPGA. Nếu toàn bộ FPGA không di chuyển nhiệm vụ liên quan đến các mạch tổng thể. Trong trƣờng hợp này, nhiệm vụ của FPGA3 cần phải đƣợc gửi đi qua các mạch còn lại. Nếu hệ thống không thể quản lý tất cả các nhiệm vụ với FPGA mất tích, nhiệm vụ ƣu tiên cần đƣợc xác định và đƣợc sử dụng để duy trì các dịch vụ quan trọng. Trong trƣờng hợp này, trọng tài trên các nhiệm vụ đang chạy cần đƣợc thực hiện, và tái cấu hình của FPGA còn lại đƣợc đƣa ra. Nếu FPGA bị mất, chúng ta cần phải duy trì hai các bitstream bản đƣợc lƣu trữ trong FPGA bị lỗi. Ví dụ, nếu FPGA3 bị mất (hình 3.10), bản sao của
bitstream 3 và 4 là không thể tiếp cận yêu cầu một bản sao của bitstream 3 và bitstream 4. Chúng tôi đề xuất ở đây 2 chiến lƣợc cung cấp các bitstream 3 và 4 FPGA khác:
1. Chiến lƣợc đầu tiên chỉ sử dụng các phƣơng tiện truyền thông thứ phát. Chúng tôi cần phải sử dụng FPGA1 phân khúc dành riêng nhƣ một phƣơng tiện trung gian. Đầu tiên bitstream4 đƣợc sao chép từ FPGA 4 đến đoạn dành FPGA1, sau đó tới FPGA2. Sau đó, bitstream 3 đƣợc sao chép từ FPGA2 tới FPGA1, sau đó tới FPGA4.
2. Chiến lƣợc thứ hai đòi hỏi cả hai phƣơng tiện truyền thông. Bitstream 4 đƣợc sao chép từ FPGA4 tới FPGA1 sử dụng liên kết trực tiếp Ethernet. Đồng thời, bitstream 3 đƣợc sao chép từ FPGA2 tới FPGA4 bằng cách sử dụng Ethernet chính thông qua bộ chuyển mạch.
Trong trƣờng hợp chuyển mạch Ethernet thất bại, tất cả các kết nối Ethernet chính là lỗi, điều này dẫn đến mất kết nối giữa tất cả các FPGA. Tại thời điểm này tất cả các mạch chuyển đổi cấu trúc liên kết vòng. Các mạng thứ hai sau đó sẽ đảm bảo hoạt động đúng đắn của hệ thống tổng thể. Việc sử dụng dự phòng của mạng, cùng với các mô hình mới tự động cấu hình lại cho phép để xây dựng hệ thống có độ tin cậy cao.