Mức kiến trúc

Một phần của tài liệu 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 (Trang 26 - 30)

Ở mức kiến trúc, các phƣơng pháp tiếp cận phổ biến của việc tiếp cận phát hiện lỗi và chịu lỗi đƣợc dựa trên sự dƣ thừa dự phòng. Những phƣơng pháp không yêu cầu bất kỳ sửa đổi trong cơ cấu nội bộ của khối mục tiêu.

2.4.1.1. Dự phòng phần cứng

Sử dụng dự phòng phần cứng, các khối mục tiêu đƣợc nhân lên để các hệ thống có thể theo dõi trạng thái hoạt động của chính nó. Hai phƣơng pháp tiếp cận chủ yếu là: Sao chép với so sánh (DWC - Duplication with Comparison) và dự phòng ba mô- đun (TMR - Triple Modular Redundancy).

Trong DWC (hình 2.9), các mô-đun ban đầu đƣợc nhân đôi và kết quả đƣợc lấy từ mô-đun gốc và mô-đun dự phòng đƣợc so sánh để phát hiện lỗi. Tuy nhiên phƣơng án DWC chính nó không thể xác định mô-đun nào bị lỗi. DWC cho phép chịu đựng lỗi tạm thời, miễn là nó đƣợc hỗ trợ bằng cách thực hiện lại. Sau đó, tất cả khác nhau giữa đầu ra hai mô-đun tạo sự kiện để lặp lại các hoạt động cuối cùng hy vọng rằng lỗi là do lỗi tạm thời (trong trƣờng hợp thất bại, lỗi thƣờng trú đƣợc khai báo).

Nguyễn Viết Hiếu – K16D2

Hình 2.9: Nhân đôi và so sánh (DWC)

Phƣơng án khóa bƣớc (Lockstep) là việc thực hiện của DWC ở cấp độ bộ xử lý, đƣợc hỗ trợ bởi một số FPGA Xilinx [67]. Hai bộ vi xử lý giống hệt nhau P1 và P2 nhận cùng các yếu tố đầu vào, cùng thực hiện các chỉ lệnh đó, và kết quả của chúng đƣợc so sánh từng bƣớc ở mỗi chu kỳ đồng hồ. P2 tạo ra kết quả tham chiếu đƣợc so sánh với những kết quả của P1 tạo đầu ra cho hệ thống. Hệ thống này có thể phát hiện nhƣng không thể sửa lỗi, bởi vì nó không thể chỉ ra các bộ vi xử lý bị lỗi. Trong trƣờng hợp lỗi, toàn bộ hệ thống cần phải đƣợc làm mới để phục hồi các chức năng chính xác của cả hai bộ vi xử lý.

Một trong những giải pháp tiên tiến trong lĩnh vực ô tô bao gồm trong việc thực hiện hai bộ xử lý khác nhau trong một ECU. Trong dự án SAPECS (kiến trúc và các giao thức bảo đảm an toàn xe nâng cao) [11], thành phần xử lý chính là một bộ xử lý 32-bit, bộ xử lý thứ hai là 8-bit để giảm chi phí phần cứng, vì nó là chỉ để xác minh bộ xử lý chính 32-bit (hình 2.10).

Hình 2.10: Phát hiện lỗi trong ECU của dự án SAPECS

Trong 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). Nếu đầu ra từ một mô-đun khác với hai mô-đun còn lại, mô-đun này đƣợc tuyên bố là bị lỗi và khối xác định chính (hình 2.12) sẽ lựa chọn

Nguyễn Viết Hiếu – K16D2

giá trị đúng của hai mô-đun khác. Phƣơng án này bảo vệ cả hai logic tổ hợp và tuần tự chống lại các rối loạn tạm thời. Tuy nhiên, nếu lỗi xảy ra trong bộ xác định chính, phƣơng án TMR có thể tạo ra một giá trị sai trong đầu ra. Để khắc phục vấn đề này, Xilinx đề xuất công cụ XTMR.

Hình 2.11: Dự phòng ba mô-đun (TMR)

Hình 2.12: Bộ xác định chính và 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ũng đƣợc thêm vào hệ thống. Các bộ xác định thiểu số, đầu ra của khối mà ứng xử khác nhau sẽ bị ngắt kết nối bởi các bộ đệm ba trạng thái (TBUF). Tuy nhiên, trong các FPGA Xilinx gần đây, TBUF đƣợc sử dụng để cho nối chân I/O cuối cùng của FPGA, một TBUF điều khiển một chân I/O. Vì vậy, các kết quả đầu ra của các TBUF trong phƣơng án XTMR phải hội tụ bên ngoài tức là, trên các bảng mạch PCB. Thật không may, rất khó để thực hiện giải pháp này trong hệ thống lớn do số lƣợng hạn chế của các TBUF. Hơn nữa, nhiều chân I/O thƣờng đƣợc sử dụng để kết nối với bộ điều khiển bên ngoài là không có thể thực hiện đƣợc trên FPGA.

Nguyễn Viết Hiếu – K16D2

Hình 2.13: Phương án Xilinx TMR—XTMR

2.4.1.2. Dự phòng thời gian

Trong phƣơng pháp tiếp cận dự phòng thời gian, các tế bào thanh ghi đƣợc nhân đôi hoặc gấp ba lần và việc tính toán của một tín hiệu nhất định đƣợc thực hiện tại hai hoặc nhiều thời điểm khác nhau và bộ xác định chính lựa chọn chính xác đầu ra của các thanh ghi [24]. Bằng cách này, một SET (hiệu ứng thoáng qua) với thời gian nhỏ hơn so với thời gian trễ giữa các lần tải của các thanh ghi dự phòng không ảnh hƣởng đến hoạt động hệ thống.

Hình 2.14: Phương án dự phòng thời gian cho logic tổ hợp

Các kỹ thuật dựa trên dự phòng thời gian thƣờng đƣợc sử dụng để phát hiện một hiệu ứng thoáng qua (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ự. Trong [39], ví dụ của việc sử dụng dự phòng thời gian và phần cứng để phát hiện SET đƣợc trình bày. Dự phòng thời gian, mục đích là để tận dụng lợi thế của các đặc tính của xung thoáng qua để so sánh các tín hiệu đầu ra ở hai thời điểm khác nhau. Đầu ra của logic tổ hợp đƣợc chốt tại hai thời điểm khác nhau, sƣờn xung đồng hồ của chốt thứ hai đƣợc thay đổi bởi thời gian d. Một bộ so sánh cho thấy một sự xuất hiện xung thoáng qua (phát hiện lỗi) (hình 2.14). Tuy nhiên, cách tiếp cận dự phòng thời gian không đƣợc sử dụng nhiều trong FPGA, bởi vì những lỗi trong các nguồn tài nguyên cấu hình lại là thƣờng trú, trừ khi áp dụng cấu hình lại hoặc khởi động lại.

Nguyễn Viết Hiếu – K16D2

2.4.1.3. Mã sửa lỗi - ECC

Kỹ thuật mã sửa lỗi (ECC) [53] cũng đƣợc sử dụng để giảm thiểu SEU trong các mạch tích hợp. Nó thƣờng đƣợc sử dụng trong bộ nhớ. Có nhiều mã đƣợc sử dụng để bảo vệ hệ thống chống lại các SEU đơn và đa. Một ví dụ của ECC là mã Hamming [8] trong phiên bản đơn giản của nó. Đây là một phát hiện lỗi và sửa lỗi mã nhị phân có thể phát hiện tất cả các lỗi bit đơn và đôi và sửa chữa tất cả các lỗi đơn bit (phát hiện lỗi đơn – phát hiện lỗi kép (SEC-DED) - Single Error Correction-Double Error Detection). Phƣơng pháp mã hóa này đƣợc khuyến nghị cho các hệ thống với xác suất thấp của các lỗi kép trong một cấu trúc dữ liệu đơn (ví dụ, chỉ có một bit lỗi trong một byte dữ liệu).

Một phần của tài liệu 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 (Trang 26 - 30)

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

(82 trang)