Cấu hình lại phần cứng trong kiến trúc hệ thống nhúng như một khả năng tăng tính linh hoạt của hệ thống tự động Nguyễn Viết Hiếu Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Kỹ thuật điện tử; Mã số: 60 52 70 Người hướng dẫn: PGS.TS. Ngô Diên Tập Năm bảo vệ: 2012
Trang 1Cấu hình lại phần cứng trong kiến trúc hệ thống nhúng như một khả năng tăng tính linh hoạt của hệ
thống tự động Nguyễn Viết Hiếu
Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Kỹ thuật điện tử; Mã số: 60 52 70
Người hướng dẫn: PGS.TS Ngô Diên Tập
Năm bảo vệ: 2012
Abstract: Trình bày các khái niệm: kiến trúc tái cấu hình; tái cấu hình linh động; khả năng chịu
lỗi trong kiến trúc tái cấu hình; các phương án giảm thiểu lỗi cổ điển; chiến lược giảm (sự kiện đơn nhiễu loạn, bức xạ) SEU trong các (mảng cổng logic lập trình được) FPGA dựa trên SRAM Nghiên cứu chịu lỗi trong chip hệ thống đa nhân động (DyMPSoC): tóm tắt; giới thiệu; (chíp hệ thống đa nhân động chịu lỗi) FT-DyMPSoC; thay đổi quy trình thiết kế; cải tiến FT-DyMPSoC;
thực hiện chi tiết Tìm hiểu các mô hình phân tích
Keywords: Kỹ thuật điện tử; Hệ thống nhúng; Điều khiển điện tử; Hệ thống tự động
Content
CHƯƠNG 1: GIỚI THIỆU
1.1 Đặt vấn đề
Các ứng dụng quan trọng như quân sự, hàng không vũ trụ, ô tô và y tế yêu cầu phải thực hiện chiến lược chịu lỗi để đảm bảo hoạt động tin cậy trong thời gian sống của hệ thống Các yêu cầu nghiêm ngặt
về độ tin cậy đặt ra những thách thức mới cho ngành thiết kế điện tử
Ngoài ra, do quá trình biến thể và lão hóa, sau một thời gian dài hoạt động, các mạch điện tử sinh lỗi Hậu quả của loại lỗi này là vĩnh viễn và không thể giải quyết bằng cách sử dụng các chiến lược áp dụng cho những lỗi thoáng qua
Hình 1.1: Các xu hương trong ngành công nghiệp ô tô (dữ liệu được cung cấp bởi TRW Auto-motive)
Một giải pháp cho vấn đề này, được chấp nhận trong ngành công nghiệp ô tô, là công nghệ “mảng các cổng logic lập trình được” (FPGA) cho phép thêm tính linh hoạt, giảm chi phí và hỗ trợ thực hiện yêu cầu
Trang 2Khái niệm về lập trình lại đã quyết định nhiều về phương pháp tiếp cận để thiết kế FPGA Hơn nữa, những tính năng tiên tiến gần đây được giới thiệu trong các FPGA hiện đại, cấu hình lại từng phần linh động (DPR) cung cấp cơ hội hơn nữa để tăng cường sự linh hoạt và có độ tin cậy của hệ thống mục tiêuVài nét về dự án “The CIFAER”
Các hoạt động nghiên cứu trong dự án CIFAER (Communication Intra-véhicule Flexible et Architecture Embarquée Reconfigurable) (hình 1.2) là tập trung vào định nghĩa của một kiến trúc xây dựng xung quanh một đơn vị xử lý hỗ trợ DPR (bộ xử lý chung kết hợp với một khu vực tái cấu hình được) và hỗ trợ giao diện truyền thông linh hoạt
Hình 1.2: Tổ chức dự án CIFAER
Việc xây dựng một ECU tái cấu hình được cần phải khai thác một số lợi ích của truyền thông PLC hoặc RF Thật vậy, những kết nối này sẽ cho phép thêm các chức năng (với chi phí thấp) trong xe hoặc có thể mang dữ liệu giới hạn trước đây vào trong một ECU duy nhất Các khía cạnh cấu hình lại có ba mục tiêu chủ yếu:
1 Hỗ trợ các kênh truyền thông mới
2 Hỗ trợ cập nhật tính năng mới trong xe
3 Đảm bảo độ tin cậy bằng cách truy cập dữ liệu của một ECU bị lỗi
Chủ đề của luận văn này phù hợp với nội dung của dự án CIFAER Dự án nhằm mục đích cung cấp một mạng truyền thông linh hoạt để xem xét việc chuyển đổi nhiệm vụ Nhiệm vụ quan trọng cần phải được duy trì bằng cách chuyển chúng từ ECU bị lỗi tới ECU khác không lỗi
1.2 Mục tiêu của luận văn
Trong luận văn này, các dịch vụ có khả năng chịu lỗi trong hệ thống ô tô sử dụng mô hình cấu hình lại từng phần linh động sẽ được giới thiệu Việc sử dụng máy tính có khả năng cấu hình lại linh động có hai mục tiêu:
1 Giảm số lượng các ECU, do đó giảm chi phí phát triển và đưa vào dự phòng phần cứng cũng như việc thực hiện thống nhất cho tất cả các nhiệm vụ, cho dù quan trọng hay không
2 Hỗ trợ phương pháp tiếp cận cổ điển và công nghiệp hiệu quả cho các khía cạnh về độ tin cậy Bằng cách thực hiện một phát hiện lỗi, sử dụng máy tính cấu hình lại và khớp nối với một sự chuyển đổi nhiệm
vụ (phần cứng và phần mềm), nó có thể làm tăng đáng kể sự vững mạnh của hệ thống, trong khi duy trì hiệu suất tối ưu
Căn cứ vào kiến trúc phần cứng và phần mềm điều khiển của nó, luận văn này sẽ giới thiệu quá trình thực hiện cấu hình lại từng phần linh hoạt cũng như các dịch vụ quản lý chiến lược khả năng chịu lỗi
1.3 Các nội dung đóng góp
FT-DyMPSoC là một hệ thống không chỉ phối hợp tất cả các tính năng của một MPSoC linh động mà còn tích hợp các kỹ thuật chịu lỗi để đối phó với các lỗi tiềm năng
Luận văn này cũng giới thiệu một sửa đổi về quy trình thiết kế giúp tạo ra các bộ vi xử lý hoàn toàn linh động Quy trình thay đổi đòi hỏi phải định nghĩa khái niệm WRAPPER và SOCKET
Mô hình phân tích được đưa ra trong Chương 4 để giúp dễ dàng đánh giá hiệu suất / sự cân bằng độ tin cậy trong khi bao gồm cả kỹ thuật chịu lỗi vào các hệ thống mục tiêu
Trang 4CHƯƠNG 2: CÁC KHÁI NIỆM VÀ CÁC CÔNG VIỆC LIÊN QUAN 2.1 Kiến trúc tái cấu hình
2.1.1 Giới thiệu
Thiết bị có thể cấu hình lại chi tiết chủ yếu là đại diện bởi các thiết bị logic có thể lập trình được phức tạp (CPLD) và mảng cổng logic lập trình được (FPGA)
Hình 2.1 cung cấp một cấu trúc đơn giản của một FPGA Các kiến trúc cơ bản của FPGA bao gồm ba loại thành phần: các khối logic, định tuyến, và các khối vào ra Nói chung, FPGA bao gồm một mảng các khối logic có thể cấu hình được (CLB) có thể được kết nối với nhau cũng như các khối I/O có thể lập trình được thông qua một số loại kiến trúc định tuyến có thể lập trình được
Hình 2.1: Kiến trúc chung của FPGA
Các công ty FPGA lớn cũng cung cấp nhiều thành phần dạng thô được nhúng trong các thiết bị lai của
họ theo nhu cầu thị trường Ví dụ, Xilinx nhúng trong một số họ Virtex bộ xử lý 32-bit RISC PowerPC
2.1.2 Bộ xử lý tái cấu hình
Trong các FPGA hiện đại, bên cạnh các nguồn tài nguyên mật độ cao có thể cấu hình lại được thông thường, còn cung cấp cho các nhà thiết kế khả năng thực hiện các bộ vi xử lý có thể cấu hình lại, có các tính năng theo các thành phần của hiệp định thương mại (COTS) Thiết bị Xilinx FPGA bao gồm hai loại
bộ vi xử lý: các bộ vi xử lý lõi cứng (hard-core) nhúng sẵn (PowerPC) và các bộ vi xử lý lõi mềm dẻo (soft-core) (MicroBlaze, PicoBlaze) Altera cũng cung cấp hai loại bộ xử lý: bộ vi xử lý lõi cứng dựa trên ARM (Excalibur) và bộ vi xử lý lõi mềm dẻo (Nios)
2.2 Tái cấu hình linh động
2.2.1 Định nghĩa
Hệ thống có thể thay đổi hành vi của mình theo môi trường hoặc các sự kiện bên ngoài trong thời gian chạy Trong số các công ty FPGA, Xilinx được biết đến như một trong các công ty lớn nhất cung cấp họ Virtex thương mại với khả năng cấu hình lại từng phần
Các hành vi của FPGA được xác định bởi một bitstream (một luồng bit dữ liệu) cấu hình bao gồm một chuỗi các tập lệnh và tín hiệu điều khiển bit dữ liệu
Hình 2.2: Hệ thống dựa trên vi xử lý kiểm soát các tài nguyên có thể cấu hình lại
Hình 2.2 mô tả một cấu trúc điển hình của một hệ thống dựa trên bộ xử lý trong một thiết bị Xilinx Virtex
Trang 52.2.2 Quy trình thiết kế
Quy trình thiết kế tiêu chuẩn cho cấu hình lại kiểu mô-đun bằng cách sử dụng FPGA Xilinx được dựa trên công cụ được cung cấp: bộ phát triển nhúng (EDK), môi trường phần mềm tích hợp (ISE) và PlanAhead, như trong hình 2.3
Hình 2.3: Quy trình thiết kế tiêu chuẩn cho hệ thống tái cấu hình linh động
2.3 Khả năng chịu lỗi trong kiến trúc tái cấu hình
Các kỹ thuật chịu lỗi có thể được phân thành hai loại: những thay đổi công nghệ của quá trình chế tạo,
và những thay đổi cấu trúc thiết kế của một hệ thống Khả năng đầu tiên ngụ ý để thiết kế ma trận FPGA mới bao gồm các thành phần chịu lỗi mà có thể thay thế những cái cũ Khả năng thứ hai là để bảo vệ các
mô tả mức cao của các mô-đun bằng cách sử dụng một số loại dư thừa
Mỗi giải pháp có chỗ đứng riêng của mình trên thị trường, cũng như mỗi ứng dụng có những hạn chế riêng của nó
2.3.1 Các mô hình lỗi trong kiến trúc tái cấu hình
Việc phân loại của SEE được trình bày trong hình 2.4
Hình 2.4: Phân loại SEE
SEE có thể có ảnh ở mức hưởng phá hủy hoặc chỉ thoáng qua, theo số lượng năng lượng tích tụ lại bởi các hạt tích điện và điểm tác động trong thiết bị
2.3.1.1 Ảnh hưởng của sự kiện đơn (SEE)
Sự kiện nhiễu loại đơn (SEU) trong tế bào SRAM:
Hình 2.5: Ảnh hưởng SEU đến trạng thái của tế bào nhớ
Sự kiện ngắt chức năng đơn: (SEFI)
Sự kiện rò dòng đơn: (SEL)
Sự kiện hỏng cổng đơn: SEGR (SEGB)
Trang 62.3.1.2 Tích lũy xuống cấp lâu dài
Các hiện tượng xuống cấp về hiệu năng của mạch điện tử được gọi "lão hóa" HCE có thể gây ra các lỗi thường trú sau khi hoạt động lâu dài, không thể được loại bỏ bằng cách cấu hình lại
2.3.2 Những ảnh hưởng SEU trong bộ nhớ cấu hình
Thay đổi nội dung một LUT: thay đổi chức năng tổ hợp
Thay đổi cấu hình I/O: đảo hướng I/O
Thay đổi ma trận kết nối: gây ra một kết nối mở hoặc ngắn mạch
Hình 2.6: Các ảnh hưởng SEU trong bộ nhớ cấu hình của Xilinx Virtex
Bit không nhạy cảm:
Bit nhạy cảm:
Bit không ổn định: Bit ổn định:
Hình 2.7: Rối loạn không liên tục Hình 2.8: Rối loạn liên tục
2.4 Các phương án giảm thiểu lỗi cổ điển
Sự quan tâm trong việc áp dụng kỹ thuật chịu lỗi ngày càng tăng
2.4.1 Mức kiến trúc
Các phương pháp tiếp cận được dựa trên sự dư thừa dự phòng
2.4.1.1 Dự phòng phần cứng
Hai phương pháp tiếp cận chủ yếu là DWC và TMR
Hình 2.9: Nhân đôi và so sánh (DWC)
Hình 2.10: Phát hiện lỗi trong ECU của dự án SAPECS
Trang 7Trong phương án TMR, nó có thể để xác định lỗi dựa trên ba khối tài nguyên và khối xác định chính (hình 2.11)
Hình 2.11: Dự phòng TMR Hình 2.12: Bộ xác định chính, bảng chân lý
Trong phương án XTMR (hình 2.13), bộ xác định chính được nhân ba và các bộ xác định thiểu số được thêm vào
Hình 2.13: Phương án Xilinx TMR—XTMR
2.4.1.2 Dự phòng thời gian
Được sử dụng để phát hiện SET trong logic tổ hợp, trong khi dự phòng phần cứng có thể giúp xác định một SEU trong logic tuần tự
Hình 2.14: Phương án dự phòng thời gian cho logic tổ hợp
2.4.1.3 Mã sửa lỗi - ECC
ECC cũng được sử dụng để giảm thiểu SEU trong các mạch tích hợp
2.4.2 Mức hệ thống
Mô hình của ReCoNets chứa 4 FPGA với 1 bộ xử lý bên trong mỗi FPGA Nếu một FPGA là bị ngắt kết nối do một số lỗi, nhiệm vụ của nó sẽ được tự động phân phối vào ba FPGA khác, và hệ thống tiếp tục hoạt động
Hình 2.15: Mô hình của ReCoNets về Multi-FPGA
2.4.3 Chiến lược phục hồi bối cảnh
2.4.3.1 Giới thiệu về bối cảnh
Bối cảnh là một tập hợp các thông tin cần thiết để xác định trạng thái của mô-đun tại một thời điểm nhất định
Tồn tại nhiều kỹ thuật phục hồi bối cảnh khác nhau vào lúc này để lưu trữ và khôi phục lại bối cảnh
Trang 82.4.3.2 Checkpointing and Rollback [1]
Trong quá trình thực hiện nhiệm vụ, mô-đun được thường xuyên kiểm tra gọi là điểm kiểm soát (check-point) Sự phục hồi ngữ cảnh trong trường hợp này được gọi là rollback
Hình 2.16: Rollback checkpoint Hình 2.17: Rollback hệ thống song công
Rollback thường được sử dụng trong các hệ thống song công mà không cần biết về các mô-đun lỗi Hình 2.17 miêu tả một kịch bản khi một lỗi xảy ra giữa hai điểm kiểm soát
2.4.3.3 Rollforward [1]
Hệ thống có khả năng của cô lập hóa các lỗi, rollforward có thể được sử dụng
Hình 2.18: Phương án Rollforward
2.5 Chiến lƣợc giảm SEU trong các FPGA dựa trên SRAM
Theo loại SEU khác nhau trong bộ nhớ cấu hình, các chiến lược thích hợp được chọn để đối phó với mỗi SEU cấu hình cụ thể
2.5.1 Readback
Readback là một hoạt động đọc thông tin cấu hình của bộ nhớ cấu hình
2.5.2 Tái cấu hình từng phần
Cấu hình lại từng phần để chỉ làm mới các mô-đun có liên quan mà không làm gián đoạn phần còn lại của mạch
Cấu hình sạch, Kỹ thuật làm sạch, Tái cấu hình dựa trên mô-đun, Kỹ thuật lát gạch - Tiling Hình 2.19
mô tả các nguyên lý tiling
Hình 2.19: Nguyên lý lát gạch - Tiling
Tiling là một trong những kỹ thuật phổ biến nhất để đối phó với sự cố thường trú
2.5.3 Kết hợp các hướng tiếp cận
Sự kết hợp của vài phương pháp tiếp cận chịu lỗi đã được khai thác
2.5.4 Tiêm lỗi
Để đánh giá độ tin cậy của một hệ thống, cần thiết để đánh giá hiệu quả các phương án giảm lỗi áp dụng trong hệ thống Điều này liên quan đến các thí nghiệm tiêm lỗi để ước lượng các tham số lỗi
Trang 92.6 Tóm tắt và kết luận
Có hai cách để thực hiện các mạch chịu lỗi trong các FPGA dựa trên SRAM, như mô tả trong sơ đồ của hình 2.20
Hình 2.20: Quy trình thiết kế giảm SEU và SET
Trang 10CHƯƠNG 3: CHỊU LỖI TRONG CHIP HỆ THỐNG ĐA NHÂN ĐỘNG (MPSoC)
3.1 Tóm tắt
Chương này trình bày hệ thống trên chip đa xử lý chịu lỗi (MPSoC) dựa trên tái cấu hình linh động trên toàn bộ nền tảng
3.2 Giới thiệu
Để đáp ứng những thách thức ngày càng phức tạp, yêu cầu sức mạnh tính toán tăng rất nhanh chóng Hiện tại có hai chiến lược chính để đối phó với vấn đề này:
1 Tăng tần số hoạt động
2 Sử dụng xử lý song song
Trong chương này sẽ giới thiệu khả năng chịu lỗi của FT-DyMPSoC
i) Đối phó với các lỗi xảy ra trong các bộ vi xử lý
ii) Tự động thay đổi các chức năng của bộ xử lý để thích ứng với các sự kiện và các ràng buộc khác nhau bên ngoài
3.3 FT-DyMPSoC
FT-DyMPSoC được xây dựng bằng cách sử dụng cấu hình lại từng phần linh động của FPGA Xilinx Virtex
Hình 3.1: Cấu trúc FT-DyMPSoC
Hệ thống FT-DyMPSoC (hình 3.1) bao gồm vài số bộ MicroBlaze (P1, P2, P3, vv), SDRAM DDR2, một bộ điều khiển ngắt (INT) và một bộ nhớ Compact Flash Các bộ xử lý giao tiếp với nhau như một mạng lưới bằng cách sử dụng liên kết một chiều nhanh kiểu điểm – điểm (FSL)
Trong FT-DyMPSoC, phương án phát hiện lỗi được thực hiện ở hai cấp: cấp độ bộ xử lý, cấp độ MPSoC
Hình 3.2: Thuật toán giữa các ma trận kết nối
Thuật toán của các ma trận kết nối được sử dụng trong quá trình đồng bộ hóa cho phép phát hiện các lỗi trong FT-DyMPSoC
Trang 11Hình 3.3: Giản đồ thời gian của FT-DyMPSoC
Tùy thuộc vào loại lỗi, kỹ thuật cấu hình lại khác nhau được lựa chọn: cấu hình lại từng phần cho một lỗi tạm thời hoặc kỹ thuật “lát gạch” cho lỗi thường trú
3.4 Thay đổi quy trình thiết kế
Luận văn này giới thiệu về sửa đổi quy trình thiết kế này Sửa đổi đòi hỏi phải định nghĩa các thành phần Socket và Wrapper
3.4.1 Thay đổi quy trình thiết kế
Hình 3.7: Quy trình thiết kế cho hệ thống tự động cấu hình lại phức tạp
3.4.2 Socket
Mục tiêu của xây dựng Socket là để giới thiệu sự hiện diện của các thiết bị ngoại vi tồn tại trong hệ thống con khác
3.4.3 Wrapper
Tất cả các giao diện kết nối của mỗi mô-đun có thể cấu hình lại được khai báo trong wrapper của nó,
do đó, wrapper của PRM khác nhau cho một PRR phải giống nhau Wrapper thực tế là một hộp đen được viết bằng ngôn ngữ HDL
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 Re2DA sử dụng một mạng dựa trên NoC được gọi là DRAFT
3.5.1 Hệ thống Re2DA
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