Tải bản đầy đủ (.pdf) (82 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 82 trang )


ĐẠI HỌC QUỐC GIA HÀ
NỘI

TRƯỜNG ĐẠI HỌC CÔNG
NGHỆ






NGUYỄN VIẾT HIẾ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


Ngành: Công nghệ Điện tử - Viễn thông
Chuyên ngành: Kỹ thuật Điện tử
Mã số: 60 52 70

LUẬN VĂN THẠC




NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGÔ DIÊN TẬP





Hà Nội -
2012

2
Nguyễn Viết Hiếu – K16D2


MỤC LỤC

DANH MỤC CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT 4
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ 6
CHƢƠNG 1: GIỚI THIỆU 8
1.1. Đặt vấn đề 8
1.2. Vài nét về dự án ―The CIFAER‖ 11
1.3. Mục tiêu của luận văn 13
1.4. Các nội dung đóng góp 13
CHƢƠNG 2: CÁC KHÁI NIỆM 15
2.1. Kiến trúc tái cấu hình 15
2.1.1. Giới thiệu 15
2.1.2. Bộ xử lý tái cấu hình 16
2.2. Tái cấu hình linh động 17
2.2.1. Định nghĩa 17
2.2.2. Quy trình thiết kế 20
2.3. Khả năng chịu lỗi trong kiến trúc tái cấu hình 21
2.3.1. Các mô hình lỗi trong kiến trúc tái cấu hình 22
2.3.2. Những ảnh hƣởng SEU trong bộ nhớ cấu hình 24

2.4. Các phƣơng án giảm thiểu lỗi cổ điển 26
2.4.1. Mức kiến trúc 26
2.4.2. Mức hệ thống 30
2.4.3. Chiến lƣợc phục hồi bối cảnh 31
2.5. Chiến lƣợc giảm SEU trong các FPGA dựa trên SRAM 32
2.5.1. Readback 33
2.5.2. Tái cấu hình từng phần 33
2.5.3. Kết hợp các hƣớng tiếp cận 35
2.5.4. Tiêm lỗi 36
2.6. Tóm tắt và kết luận 37
CHƢƠNG 3: CHỊU LỖI TRONG CHIP HỆ THỐNG ĐA NHÂN ĐỘNG (DyMPSoC)
39
3.1. Tóm tắt 39
3.2. Giới thiệu 39
3.3. FT-DyMPSoC 41
3.4. Thay đổi quy trình thiết kế 46
3
Nguyễn Viết Hiếu – K16D2

3.4.1. Thay đổi quy trình thiết kế 46
3.4.2. Socket 48
3.4.3. Wrapper 49
3.5. Cải tiến FT-DyMPSoC 49
3.5.1. Hệ thống Re2DA 49
3.5.2. Nền tảng nhiều FPGA 51
3.6. Thực hiện chi tiết 53
3.7. Kết luận 58
CHƢƠNG 4: CÁC MÔ HÌNH PHÂN TÍCH 59
4.1. Tóm tắt 59
4.2. Giới thiệu 59

4.3. Mô hình phân tích 60
4.3.1. Các định nghĩa chung 60
4.3.2. Mô hình phân tích cho FT-DyMPSoC 62
4.3.3. Mô hình ứng dụng cho kỹ thuật làm sạch 65
4.4. So sánh và kiểm thử chi tiết 66
4.4.1. Thực hiện 66
4.4.2. So sánh 67
4.4.3. Kết luận 70
4.5. Mô phỏng và mô hình kiểm tra cho MPSoC chịu lỗi 70
4.5.1. Thực hiện các thành phần mô hình 73
4.5.2. Phân tích 74
CHƢƠNG 5: KẾT LUẬN VÀ QUAN ĐIỂM 75
5.1. Kết luận 75
5.2. Quan điểm 76
TÀI LIỆU THAM KHẢO 78
Tiếng Anh 78


4
Nguyễn Viết Hiếu – K16D2

DANH MỤC CÁC THUẬT NGỮ VÀ CHỮ VIẾT TẮT
STT
Từ viết tắt
Thuật ngữ tiếng Anh
Thuật ngữ tiếng Việt
1
ADAS
Advanced Driver Assistance
System

Hệ thống hỗ trợ lái xe nâng cao
2
API
Application Program Interface
Giao diện chƣơng trình ứng dụng
3
ASIC
Application Specific Integrated
Circuit
Vi mạch tích hợp chuyên dụng
4
BRAM
Block RAM
Bộ nhớ chuyên dụng theo khối
5
CAD
Computer-Aided Design
Thiết kế bằng máy tính
6
CIFAER
Communication Intra-véhicule
Flexible et Architecture
Embarquée Reconfigurable
Dự án xây dựng mô hình kiến trúc hệ
thống nhúng có thể tái cấu trúc trong
truyền thông nội bộ trong xe cộ.
7
CLB
Configurable Logic Block
Khối logic có thể cấu hình đƣợc

8
COMP_MUX
COMParator/MUltipleXer
Bộ ghép kênh và so sánh
9
COTS
Commercial Of-The-Shelf
Hiệp định thƣơng mại COTS
10
CPLD
Complex Programmable Logic
Device
Thiết bị logic có thể lập trình đƣợc
phức tạp
11
CRC
Cyclic Redundancy Check
Mã kiểm tra vòng CRC
12
DPR
Dynamic Partial Reconfiguration
Tái cấu hình từng phần linh động
13
DRAFT
Dynamic Reconfigurable
Adaptive Fat-Tree
Tái cấu hình linh động tƣơng thích
14
DSP
Digital Signal Processing

Xử lý tín hiệu số
15
DWC
Duplication With Comparison
Sao chép cùng với so sánh
16
ECC
Error Correcting Code
Mã sửa lỗi
17
ECU
Electronic Control Unit
Thiết bị điều khiển điện tử
18
EDAC
Error Detection And Correction
Coding
Phát hiện lỗi và mã sửa lỗi
19
EDK
Embedded Development Kit
Bộ phát triển thiết bị nhúng
20
FAR
Frame Address Register
Khung thanh ghi địa chỉ
21
FPGA
Field Programmable Gate Array
Mảng cổng logic lập trình đƣợc

22
FSL
Fast Simplex Links
Liên kết đơn công nhanh
23
FSM
Finite State Machine
Máy trạng thái hữu hạn
24
FT-DyMPSoC
Fault-Tolerant Dynamic Multi-
Processor System-on-Chip
Chíp hệ thống đa nhân động chịu lỗi
25
HCE
Hot-Carrier Effect
Ảnh hƣởng quá nhiệt
26
ICAP
Internal Configuration Access Port
Cổng truy suất cấu hịnh nội
27
IP
Intellectual Property
Sở hữu trí tuệ
28
ISE
Integrated Software Environment
Môi trƣờng phần mềm tích hợp
29

LUT
Look-Up Table
Bảng tìm kiếm
5
Nguyễn Viết Hiếu – K16D2

STT
Từ viết tắt
Thuật ngữ tiếng Anh
Thuật ngữ tiếng Việt
30
MBU
Multiple Bit Upset
Nhiễu loạn nhiều bit
31
MPSoC
Multi-Processor System-on-Chip
Chip hệ thống đa nhân
32
MSR
Machine Status Register
Thanh ghi trạng thái máy
33
NoC
Network-on-Chip
Chip tích hợp mạng
34
NRE
Non Recurring Engineering
Chi phí không có tính kỹ thuật

35
OEM
Original Equipment Manufacturer
Nhà sản xuất thiết bị gốc
36
PC
Program Counter
Bộ đếm chƣơng trình
37
PE
Processing Element
Phần tử xử lý
38
PLB
Processor Local Bus
Bus nội bộ xử lý
39
PLC
Power Line Communication
Truyền thông trên điện lƣới
40
PRM
Partially Reconfigurable Module
Mô-đun tái cấu hình từng phần
41
PRR
Partially Reconfigurable Region
Khu vực có thể tái cấu hình từng
phần
42

RAMPSoC
Runtime Adaptive Multi-
Processor System-on-Chip
Chip đa nhân thời gian chạy thích
nghi
43
RB
Recovery Bus
Bus phục hồi
44
Re2DA
Reliable and Recofigurable
Dynamic Architecture
Kiến trúc có thể tái cấu hình linh
động và tin cậy
45
RF
Radio Frequency
Tần số vô tuyến
46
RISC
Reduced Instruction Set Computer
Máy tính với tập lệnh rút gọn
47
SAPECS
Secured Architecture and
Protocols for Enhanced Car Safety
Các phƣơng thức và kiến trúc để đảm
bảo tăng cƣờng mức độ an toàn cho
xe

48
SBU
Single Bit Upset
Bit nhiễu loạn đơn
49
SDK
Software Development Kit
Bộ phát triển phần mềm
50
SEC-DED
Single Error Correction-Double
Error Detection
Sửa lỗi đơn – phát hiện lỗi kép
51
SEE
Single Event Effect
Ảnh hƣởng sự kiện đơn
52
SEFI
Single Event Functional Interrupt
Chức năng ngắt sự kiện đơn
53
SEGR/SEB
Single Event Gate
Rupture/Burnout
Sự kiện cháy hỏng cổng logic
54
SEL
Single Event Latch-up
Sự kiện dò dòng đơn, khi có ion năng

lƣợng cao xuyên qua cổng logic,
CMOS thƣờng bị
55
SET
Single Event Transient
Sự kiện đơn tạm thời, phóng tĩnh
điện,
56
SEU
Single Event Upset
Sự kiện đơn nhiễu loạn, bức xạ,
57
TMR
Triple Modular Redundancy
Dự phòng ba mô-đun
58
VHDL
Very-High-Speed Integrated
Circuit (VHSIC) – Hardware
Description Language
Ngôn ngữ mô tả phần cứng cho mạch
tích hợp tốc độ cực cao
6
Nguyễn Viết Hiếu – K16D2

DANH MỤC CÁC BẢNG
Bảng 3.1: Các tài nguyên phần cứng hệ thống 54
Bảng 3.2: Thời gian thao tác Bitstream 55
Bảng 3.3: So sánh các kỹ thuật chịu lỗi khác nhau 56
Bảng 3.4: Đo lƣờng hiệu suất Ethernet 57

Bảng 4.1: Các kết quả thử nghiệm 67

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
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 [51]) 11
Hình 1.2: Tổ chức dự án CIFAER 12
Hình 2.1: Kiến trúc chung của FPGA 15
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 19
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 20
Hình 2.4: Phân loại SEE 22
Hình 2.5: Ảnh hƣởng SEU đến trạng thái của tế bào nhớ 23
Hình 2.6: Các ảnh hƣởng SEU trong bộ nhớ cấu hình của Xilinx Virtex 24
Hình 2.7: Rối loạn không liên tục 25
Hình 2.8: Rối loạn liên tục 26
Hình 2.9: Nhân đôi và so sánh (DWC) 27
Hình 2.10: Phát hiện lỗi trong ECU của dự án SAPECS 27
Hình 2.11: Dự phòng ba mô-đun (TMR) 28
Hình 2.12: Bộ xác định chính và bảng chân lý 28
Hình 2.13: Phƣơng án Xilinx TMR—XTMR 29
Hình 2.14: Phƣơng án dự phòng thời gian cho logic tổ hợp 29
Hình 2.15: Mô hình của ReCoNets về Multi-FPGA 30
Hình 2.16: Phục hồi kiểu rollback dùng checkpointing 31
Hình 2.17: Rollback trong hệ thống song công 32
Hình 2.18: Rollforward scheme 32
Hình 2.19: Nguyên lý lát gạch - Tiling 35
Hình 2.20: Quy trình thiết kế giảm SEU và SET 37
7
Nguyễn Viết Hiếu – K16D2

Hình 3.1: Cấu trúc FT-DyMPSoC 42

Hình 3.2: Thuật toán giữa các ma trận kết nối 43
Hình 3.3: Giản đồ thời gian của FT-DyMPSoC 44
Hình 3.4: Kỹ thuật ‗lát gạch‘ sử dụng PROHIBIT 45
Hình 3.5: Phƣơng án giảm lỗi 45
Hình 3.6: Phân cấp thiết kế 46
Hình 3.7: Quy trình thiết kế thay đổi cho hệ thống tự động cấu hình lại phức tạp 47
Hình 3.8: Cấu trúc nội của Re2DA 50
Hình 3.9: Chịu lỗi trong nền tảng nhiều FPGA 51
Hình 3.10: Chiến lƣợc phục hồi lỗi 52
Hình 3.11: Tổng quan việc thực hiện hệ thống trên FPGA Editor với ứng dụng trên oto
53
Hình 3.12: Khoảng thời gian đồng bộ hóa 55
Hình 4.1: Hiệu năng hệ thống với ba bộ xử lý và T
int
= 100ms 68
Hình 4.2: Xác suất sửa chữa với ba bộ xử lý và T
int
= 100ms 68
Hình 4.3: Hiệu suất và xác suất sửa chữa với Failure Rate=151 FIT 69
Hình 4.4: Mô hình của MPSoC chịu lỗi 71
Hình 4.5: Cơ chế chịu lỗi cho mô hình đề xuất 71
Hình 4.6: Thực hiện mô hình của bộ xử lý 72
Hình 4.7: Mẫu mã code của các thành phần 73

8
Nguyễn Viết Hiếu – K16D2

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. Một khiếm khuyết trong quá trình hoạt động của các hệ thống an toàn,
quan trọng có thể gây nguy hiểm cho cuộc sống của con ngƣời hoặc môi trƣờng hoặc
có thể dẫn đến thiệt hại nặng nề về tài chính. 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ử. Các ứng dụng trong lĩnh vực
không gian, các ứng dụng từ xa đã gặp phải vấn đề này do không thể sửa chữa hệ
thống một khi chúng đƣợc khởi chạy trong trong môi trƣờng riêng biệt. Nghiên cứu
những công nghệ cao và tìm kiếm các giải pháp trong ngành công nghiệp là cố gắng
để giảm bớt thiệt hại khi thực hiện các chƣơng trình chịu lỗi. Gần đây, ngành công
nghiệp ô tô đã cho thấy một quá trình chuyển đổi đáng kể từ kỹ thuật cơ khí sang các
sản phẩm cơ điện tử. Các điều khiển cơ khí là ít hơn, và đang đƣợc thay thế bởi các
thành phần điện tử (điều khiển X-by-wire) đƣợc gọi là ECU (bộ điều khiển điện tử).
ECU có ở khắp nơi đã dẫn ngành công nghiệp điện tử ô tô để đối mặt với những thách
thức tƣơng tự nhƣ các yêu cầu an toàn trong các thiết bị điện tử ở lĩnh vực hàng không
vũ trụ.
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.
Thông thƣờng, các giải pháp áp dụng để đối phó hiệu quả với các vấn đề an toàn
thƣờng có xu hƣớng tăng tài nguyên máy tính và dựa trên dự phòng phần tử xử lý. Các
hoạt động chính xác của toàn bộ hệ thống cần phải đƣợc đảm bảo và lỗi của hệ thống
thực tế chỉ xuất hiện do lỗi thiết kế. Thật không may, dự phòng trở thành một vấn đề
chính trong kỹ thuật tăng khả năng chịu lỗi trong tổng chi phí xây dựng và phát triển
sản phẩm. Dự phòng phần cứng rõ ràng là cần thêm tài nguyên để thực hiện một chức
năng. Bên cạnh các vấn đề chi phí, dự phòng tài nguyên máy tính đặt ra vấn đề về tỷ lệ
sử dụng chúng trong tổng chi phí tài nguyên. Tổng chi phí tài nguyên của một mô-đun
có thể hạn chế việc thực hiện các chức năng cụ thể trong một nền tảng nhất định, cũng
có khả năng nó hạn chế sức mạnh xử lý của tổng thể hệ thống.
Hạn chế về hiệu suất xử lý có thể có tác động đáng kể trên các ứng dụng ngày
nay. Càng nhiều ứng dụng phức tạp hơn cho hệ thống điện tử nói chung và cho các

điều khiển điện tử ô tô nói riêng đã dẫn đến một sự tích hợp quy mô lớn của các thành
phần điện tử. Xu hƣớng này đã tạo ra các thống tính toán song song để giải quyết các
vấn đề phức tạp với những hạn chế thời gian cụ thể. Một hệ thống tính toán song song
đƣợc tạo thành từ các phần tử xử lý khác nhau (PE – Processing Element) làm việc
hợp tác để giải quyết một vấn đề. Các hệ thống nhúng có chứa các bộ xử lý có mục
9
Nguyễn Viết Hiếu – K16D2

đích chung để tăng sự linh hoạt của chƣơng trình phần mềm và các thành phần phần
cứng chuyên dụng để tăng hiệu xuất xử lý. Ngày nay, các hệ thống nhúng cần sức
mạnh tính toán hơn để đáp ứng nhu cầu của các ứng dụng nhƣ âm thanh / hình ảnh, mã
hóa / giải mã, xử lý hình ảnh, Chíp xử lý đa nhân (MPSoC) là một lựa chọn để giải
quyết các yêu cầu tính toán ngày càng tăng này. Cách tiếp cận này dựa trên sự linh
hoạt nhất định để lập trình lại phần mềm. Hơn nữa, một hệ thống hiệu suất cao có thể
đƣợc xây dựng lên với việc thực hiện các chức năng song song trên các lõi xử lý khác
nhau.
Gần đây, các tiến bộ công nghệ và quy trình trong ngành công nghiệp bán dẫn
cho phép các nhà sản xuất phát triển và hỗ trợ các công nghệ mới để nâng cao chất
lƣợng, hiệu suất và độ tin cậy của hệ thống. Vi mạch tích hợp chuyên dụng (ASIC) có
thể đáp ứng các ràng buộc về thời gian thực và cho phép các xây dựng các phƣơng án
với độ tin cao, nhƣng chúng không cung cấp sự linh hoạt cần thiết. Nhƣ vậy, tính linh
hoạt, tăng tốc phần cứng có thể lập trình đƣợc là cần thiết.
Cùng với các yêu cầu tăng hiệu suất, chất lƣợng và độ tin cậy, các ngành công
nghiệp điện tử cũng tập trung tới vấn đề về giảm chi phí sản phẩm. Những kỳ vọng về
giảm chi phí bắt buộc các nhà sản xuất để phát triển các công nghệ mới trong khi nâng
cao hiệu quả sản xuất để đáp ứng mục tiêu cắt giảm chi phí. Giải pháp ASIC thƣờng
đòi hỏi chi phí đáng kể về tiến độ và chi phí không có tính kỹ thuật (NRE) để chuyển
những thiết kế tới quá trình chế tạo, đó là mâu thuẫn với các xu hƣớng công nghiệp
hiện hành. 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.
Các nhà cung cấp FPGA tận dụng cách mạng công nghệ để cung cấp các thiết bị
cấu hình lại có thể bao gồm hàng triệu cổng logic lập trình đƣợc cùng với nhiều MB
bộ nhớ nội và các lõi xử lý phù hợp cho các tùy biến của một lƣợng lớn các ứng dụng.
Sự kết hợp của việc tái sử dụng tài sản trí tuệ (IP), chi phí đơn vị thấp và tƣơng đối dễ
dàng thực hiện đã dẫn đến xuất hiện FPGA ngày càng tăng trong ngành công nghiệp.
Ngƣời thiết kế chuyển sang giải pháp FPGA để có thể thực hiện các tính năng cần thiết
hay các tính năng không sẵn có với các thành phần tiêu chuẩn. Công nghệ này phổ
biến một phần do nỗ lực tăng cƣờng tiếp thị các nhà sản xuất FPGA, nhƣng chủ yếu là
do giá ngày càng thấp hơn của sản phẩm.
Tuy nhiên, FPGA không chỉ hấp dẫn về vấn đề giá, mà việc giảm thời gian đƣa
sản phẩm điện tử ra thị trƣờng cũng rất quan trọng. Việc sử dụng các FPGA có thể cho
phép nhà sản xuất đƣa ra nhanh chóng những chức năng mới mà không cần nhiều thời
gian nhƣ sự phát triển để tùy biến ASIC. Điều này là hiển nhiên bởi các nỗ lực kết hợp
của các nhà cung cấp FPGA và các nhà cung cấp bên thứ ba để cung cấp nội dung cụ
thể, chẳng hạn nhƣ lõi điều khiển truyền thông đặc biệt cho các ứng dụng ô tô (CAN,
MOST, FlexRay, vv). Hơn nữa, lợi thế chi phí của một FPGA so với một loại ASIC
10
Nguyễn Viết Hiếu – K16D2

đặc biệt là quy mô, làm giảm quá trình các bƣớc công nghệ thực tế, chi phí thiết kế lại
có thể vƣợt quá một triệu đô la [48].
Đƣợc công nhận rằng các mạch logic có thể tái cấu hình đáp ứng các yêu cầu về
hiệu suất xử lý và khả năng mở rộng của các ứng dụng. Ƣu điểm chính của loại giải
pháp này không chỉ nằm trong khả năng của hệ thống có thể tăng số lƣợng các thành
phần xử lý, mà là về tổng quát kiến trúc đƣợc đề xuất để tối ƣu hóa việc sử dụng các
tài nguyên, đặc biệt là sau thời gian nhàn rỗi.
Khá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. Không giống nhƣ một ASIC, chi phí thiết kế lại có thể vƣợt quá một triệu
đô la, chi phí để sửa chữa hay thay đổi một thiết kế FPGA đƣợc coi là tƣơng đối thấp.

Do đó, FPGA xuất hiện để cho phép tạo nhanh và thử nghiệm tích hợp ở mức hệ thống
của thiết kế, tinh chỉnh và sửa đổi thiết kế đƣợc hoàn thành thông qua lập trình lại
nhiều lần trên thiết bị. 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 - dynamic partial
reconfiguration) 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êu. DPR cho phép thiết kế nhiều mô-đun trong cùng thời gian.
Tính năng này cho phép sửa đổi trong thời gian chạy, bổ sung từng phần của FPGA
trong khi phần còn lại của mạch vẫn chạy. Bằng cách sử dụng DPR, các nhà thiết kế
có thể làm tăng đáng kể chức năng của chỉ một FPGA, cho phép một hệ thống đƣợc
thực hiện ít thiết bị hơn và nhỏ hơn so với các công nghệ khác.
Khai thác DPR cho hệ thống điện tử trên ô tô cho phép thực hiện các kỹ thuật
chịu lỗi theo kiểu truyền thống nhƣ dự phòng cổ điển bằng cách sử dụng các nguồn tài
nguyên có thể cấu hình lại sẵn có. Hơn nữa, mô hình DPR cho phép phát triển các
chiến lƣợc mới cho thiết kế các hệ thống chịu lỗi. Ví dụ, DPR dễ dàng thực hiện các
cơ chế phục hồi hệ thống sau khi xảy ra lỗi, hoặc là đƣa mô-đun bị lỗi đến các hoạt
động đúng với nhiệm vụ của mình mà không làm gián đoạn các mô-đun khác, hoặc
sửa đổi một mô-đun để thực hiện các nhiệm vụ bị gián đoạn. Tính năng này không chỉ
có một mức độ linh hoạt cao, mà tính liên tục của dịch vụ còn đƣợc tăng lên đáng kể.
Không cần khởi động lại toàn bộ FPGA, trạng thái hoạt động của hệ thống vẫn đƣợc
đảm bảo, có thể cho phép dễ dàng chuyển đổi một chế độ bị xuống cấp trong khi vẫn
duy trì hầu hết các dịch vụ quan trọng.
Một xu hƣớng mới là đƣa các tính năng DPR vào thiết kế với nền tảng đa bộ xử
lý nhƣ MPSoC động. Sự phối hợp này đƣa đến một mức độ mới của sự tự do thiết kế
hệ thống và hành vi trong thời gian chạy. Trong một hệ thống nhƣ vậy, không chỉ các
phần mềm, giống nhƣ trong MPSoC tĩnh, mà phần cứng cũng có thể đƣợc điều chỉnh
phù hợp trong thời gian chạy. Việc thích ứng linh hoạt này của các kiến trúc phần
cứng cho các nhà thiết kế một mức độ mới của sự linh hoạt để đảm bảo phân phối tối
ƣu hóa các nhiệm vụ tính toán trên các tế bào xử lý và thực hiện đầy đủ các ràng buộc
về hiệu suất, năng lƣợng tiêu hao.
11

Nguyễn Viết Hiếu – K16D2

1.2. Vài nét về dự án “The CIFAER”
Hiện nay, trong ngành công nghiệp ô tô, điều khiển cơ khí đã giảm nhiều, đƣợc
thay thế bởi các thành phần điện tử đƣợc gọi là ECU (điều khiển X-by-wire). Có thể
thấy nhƣ hình 1.1, kể từ những năm 1950, có mặt khắp nơi của ECU trong xe đã đƣa
ngành công nghiệp phải đối mặt với một thách thức lớn trong thời hạn yêu cầu ngày
càng tăng về sự phức tạp, chức năng, giao tiếp, hiệu suất và an toàn. Các hệ thống điện
tử ô tô đòi hỏi không chỉ năng lực tính toán nhiều hơn mà độ tin cậy cũng phải cao
hơn.

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 [51])
Trong những năm gần đây, các ứng dụng không dây và các sản phẩm công nghệ
thông tin cũng nhƣ hệ thống giải trí ở ghế sau ô tô, vô tuyến vệ tinh và hệ thống định
vị đã thấy đƣợc tiềm năng cho các cơ hội tăng trƣởng mới trong lĩnh vực thông tin giải
trí ô tô.
Trong các lĩnh vực ứng dụng khác nhau, các yêu cầu mới dẫn đến định nghĩa của
kiến trúc mới cho các hệ thống điện tử nhúng, cho cả phần mềm và phần cứng. Ví dụ,
trong lĩnh vực ô tô, các giải pháp nghiên cứu tƣơng ứng với mạng lƣới các thành phần
xử lý đƣợc phân phối trong xe. Đáng chú ý, các cấu trúc phụ nên hỗ trợ các ứng dụng
đa phƣơng tiện, vẫn cung cấp khả năng làm việc an toàn và chịu lỗi (ví dụ, giúp đỡ lái
xe bằng cách sử dụng GPS hoặc xử lý hình ảnh, vv). Bên cạnh đó, xem xét ở khía cạnh
12
Nguyễn Viết Hiếu – K16D2

kinh tế, các giải pháp cần có tính tƣơng thích dễ dàng và có thể cập nhật đƣợc. Một
giải pháp mạng tiềm năng sử dụng các phƣơng án truyền thông thích nghi, trong đó
mỗi nút xử lý có thể đƣợc cấu hình lại theo hành vi của hệ thống. Vì vậy, nhƣ các kiến
trúc tái cấu hình, mục tiêu là làm cho có thể tối ƣu hóa xử lý và để phù hợp với yêu

cầu chức năng. Hệ thống có độ tin cậy và khả năng chịu lỗi cũng cần đƣợc cải thiện
bằng cách xác định một khả năng thay đổi và thích ứng với các thuộc tính mạng trong
quá trình thực hiện quản lý hiệu quả hệ thống.
Các hoạt động nghiên cứu trong dự án CIFAER (Communication Intra-véhicule
Flexible et Architecture Embarquée Reconfigurable) [78] (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. Mạng lƣới linh hoạt này sẽ đƣợc dựa trên sóng vô tuyến (RF) hoặc
công nghệ truyền thông trên đƣờng dây điện (PLC) [41]. Kiến trúc này sẽ đóng vai trò
của một nút xử lý đƣợc sử dụng linh hoạt cho mạng, phù hợp để đáp ứng những hạn
chế của băng thông và độ tin cậy theo các kịch bản làm việc khác nhau.

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
13
Nguyễn Viết Hiếu – K16D2

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.3. 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. Tỷ lệ sử dụng của thiết bị đƣợc cải thiện bằng cách tái sử dụng các
thành phần xử lý trong thời gian nhàn rỗi của chú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à kết hợp việc 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. Phát hiện lỗi,
sửa lỗi và các cơ chế phục hồi sẽ đƣợc sử dụng.
Những khó khăn đầu tiên là từ nghiên cứu kiến trúc phần cứng của ECU có thể
cấu hình lại cùng với các ràng buộc chi phí cũng nhƣ các khó khăn của thuật toán phức
tạp và yêu cầu đáp ứng thời gian thực. Một vấn đề phức tạp nữa là giao diện giữa máy
tính và xe khi chuyển các nhiệm vụ sau khi phát hiện lỗi.
Cuối cùng, việc quản lý các hoạt động an toàn sẽ đƣợc tối ƣu hóa bằng cách sử
dụng lại phần cứng. Đối với các phƣơng tiện truyền thông không quan trọng hoặc
phức tạp, một thiết bị ghép kênh phân chia thời gian sẽ tối ƣu hóa việc sử dụng máy
tính.
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.4. Các nội dung đóng góp
Nói chung, cơ chế về khả năng chịu lỗi thƣờng dựa hoàn toàn trên việc dự phòng
phần cứng, việc hạn chế số lƣợng các thành phần xử lý, sẽ hạn chế năng lực hệ thống.
Vì vậy, những thử thách đầu tiên từ các ứng dụng của kỹ thuật chịu lỗi là làm giảm sức
mạnh tính toán của hệ thống mục tiêu. Luận văn này sẽ giới thiệu về cách quản lý để
khai thác khả năng cấu hình lại từng phần linh động với mục đích hiệu quả và không
xâm phạm tới các chƣơng trình chịu lỗi. Một mặt, cấu hình lại từng phần linh động,
giúp cải thiện độ tin cậy của hệ thống và sửa đổi hiệu suất bằng cách giảm các tác
động tiêu cực của khả năng chịu lỗi, và mặt khác, nó giúp tăng cƣờng tính linh hoạt

bằng cách thêm vào khả năng thay đổi theo yêu cầu.
14
Nguyễn Viết Hiếu – K16D2

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.
Trong hệ thống này, các lỗi phát hiện đƣợc thực hiện ở các cấp độ khác nhau: ở
cấp độ bộ xử lý, thực hiện khóa bƣớc, trong khi ở cấp độ hệ thống, phƣơng pháp tiếp
cận ma trận kết nối là đƣợc sử dụng. Để sửa lỗi, tất cả các bộ vi xử lý bên trong FT-
DyMPSoC đƣợc thực hiện trong các vùng có khả năng cấu hình lại linh động, và bất
kỳ bộ xử lý nào cũng có thể đƣợc cấu hình lại bởi một bộ xử lý khác trong trƣờng hợp
lỗi đƣợc phát hiện. Tính năng này đáp ứng các hạn chế của công nghệ tiên tiến MPSoC
thƣờng chứa một bộ xử lý chủ đơn giản tĩnh để cấu hình lại những bộ xử lý khác.
Một thử thách nữa đến từ việc xây dựng hệ thống, bởi vì toàn bộ các bộ vi xử lý
bao gồm cả xử lý lõi cũng nhƣ các thiết bị ngoại vi của nó cần phải đƣợc cấu hình lại
để đối phó với các lỗi. Tuy nhiên tính năng này bị hạn chế nếu quy trình thiết kế tiêu
chuẩn đƣợc áp dụng. Sau đó, 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. Sự hỗ trợ của các thành phần này
(wrapper và socket) làm giảm bớt các quy trình phức tạp trong khi xây dựng các hệ
thống phức tạp nhƣ tất cả các cấu trúc phức tạp đƣợc quản lý bởi các công cụ thiết kế.
Quy trình thiết kế cũng cần thiết phải đƣa vào các phƣơng án chịu lỗi để ngăn
chặn hệ thống điện tử bị lỗi trong suốt quá trình hoạt động. Tuy nhiên, có một số vấn
đề luôn luôn đi kèm với kỹ thuật chịu lỗi: cải thiện độ tin cậy luôn luôn có nghĩa mất
hiệu năng hệ thống. Điều đó dẫn đến việc thiếu một phƣơng pháp hiệu quả để đánh giá
tác động của phƣơng án giảm thiểu lỗi về việc thực hiện hệ thống. Do đó, một 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. Sau
đó, FT-DyMPSoC đƣợc đƣa vào mô hình để đánh giá tác động của khả năng chịu lỗi

về việc thực hiện hệ thống. Ngoài ra, một trong những kỹ thuật chịu lỗi công nghệ cao
cho FPGA phổ biến nhất - scrubbing (kỹ thuật làm sạch) [18] cũng đƣợc áp dụng trong
mô hình để so sánh. Hơn nữa, mô hình này không bị giới hạn khi áp dụng cho hệ
thống sử dụng FPGA, mô hình có tính ứng dụng rộng rãi trên các hệ thống chịu lỗi sử
dụng các kiến trúc khác nhau bằng cách xác định các thông số tƣơng ứng. Cũng trong
chƣơng này, một mô phỏng và mô hình xác minh cho các hệ thống chịu lỗi đƣợc đƣa
ra giúp nhanh chóng xác nhận hệ thống phức tạp bao gồm các tính năng chịu lỗi. Các
mô hình mô phỏng cho phép để xác minh nhanh chóng không chỉ về hiệu quả của các
phƣơng án về khả năng chịu lỗi đƣợc áp dụng trong hệ thống, mà còn để tăng tốc độ
về thời gian của ngƣời sử dụng ứng dụng khi thiết kế và gỡ lỗi. Thực hiện và phân tích
kết quả đƣợc đƣa ra để chứng minh lợi ích của mô hình mô phỏng / xác minh này.


15
Nguyễn Viết Hiếu – K16D2

CHƢƠNG 2: CÁC KHÁI NIỆM
2.1. Kiến trúc tái cấu hình
2.1.1. Giới thiệu
Các thiết bị có thể cấu hình lại chi tiết cho phép sửa đổi chức năng nhanh chóng
ở mức độ thấp về độ chi tiết. Ví dụ, thiết bị có thể đƣợc sửa đổi theo cách mà nó cho
phép thêm hoặc loại bỏ một bộ biến tần hoặc một cổng logic đơn. 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). Do tích hợp mật độ cao hơn của
các khối logic trong một thiết bị, bằng cách sử dụng FPGA cho phép xây dựng hệ
thống hiệu suất cao với chi phí phát triển thấp, thời gian đƣa ra thị trƣờng ngắn và có
khả năng tái lập trình. FPGA đặc biệt về khả năng cung cấp tính linh hoạt cao ở cả hai
thời gian thiết kế và thời gian chạy.
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 -
Configurable Logic Block) 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. FPGA
có thể đƣợc lập trình (cấu hình) để thực hiện các chức năng cần thiết. CLB đƣợc bao
gồm các bảng tìm kiếm (LUT - Lookup Tables), các bộ ghép kênh (MUX -
Multiplexer), các mạch lật (flip-flop) và các thanh ghi (Register). Nội dung của CLB
đƣợc lập trình để kiểm soát các chức năng của các khối logic, trong khi các bộ chuyển
mạch định tuyến (hộp chuyển mạch) đƣợc lập trình để thực hiện kết nối mong muốn
giữa các khối logic.

Hình 2.1: Kiến trúc chung của FPGA
16
Nguyễn Viết Hiếu – K16D2

Có nhiều phƣơng pháp khác nhau để lƣu trữ thông tin chƣơng trình, từ phƣơng
pháp SRAM linh hoạt [30] tới công nghệ thiết lập vĩnh viễn (antifuse) [46]. Các vùng
của một FPGA chủ yếu là do các thành phần lập trình đƣợc. Do đó, các công nghệ lập
trình cũng có thể ảnh hƣởng đến vùng của FPGA. Một yếu tố khác phải đƣợc xem xét
là số lần FPGA có thể đƣợc lập trình (cấu hình). Antifuse dựa trên FPGA có thể đƣợc
lập trình chỉ một lần, trong khi FPGA dựa trên SRAM có thể đƣợc lập trình lại không
giới hạn số lần.
Các chi tiết cấu hình FPGA dựa trên SRAM đƣợc lƣu trữ trong các tế bào bộ nhớ
SRAM. Các bảng tra cứu (LUT) đƣợc sử dụng trong khối logic cũng đƣợc lƣu trữ
trong các tế bào SRAM. Khi mạng lƣới kết nối nội đƣợc thực hiện bằng cách sử dụng
bóng bán dẫn liên kết trực tiếp, các tế bào SRAM cụ thể chuyển đổi các bóng bán dẫn
thành bật hoặc tắt. Phƣơng pháp này lƣu trữ là dễ biến đổi và cấu hình đã đƣợc ghi vào
FPGA mỗi lần cấp điện. Vì vậy, với các hệ thống sử dụng FPGA dựa trên SRAM, cấu
hình thƣờng đƣợc lấy từ một thiết bị lƣu trữ bên ngoài không dễ biến đổi. Công nghệ
SRAM cho phép tái sử dụng một thiết bị đơn để thực thi các ứng dụng khác nhau bằng
cách tải các cấu hình khác nhau. Tính năng này đã làm cho FPGA dựa trên SRAM phổ

biến trong lĩnh vực cấu hình lại, cố gắng để có đƣợc hiệu suất tốt bằng cách tùy biến
việc thực hiện các chức năng cho ứng dụng cụ thể. Tuy nhiên, bởi vì mỗi tế bào yêu
cầu ít nhất là năm (5) bóng bán dẫn, do kích thƣớc của các tế bào bộ nhớ tƣơng đối
lớn, diện tích của FPGA chủ yếu là lƣu trữ cấu hình.
Với độ chi tiết thấp của các máy phát chức năng (LUT và MUX), FPGA cho
phép lập trình bất kỳ loại chức năng nào miễn là nó có thể đƣa vào đƣợc thiết bị. Tuy
nhiên, các mối liên kết giữa các khối logic có thể lập trình đƣợc làm giảm hiệu suất
của FPGA. Để khắc phục điều này, một trong những giải pháp khác là nhúng một mô-
đun đƣợc sử dụng thƣờng xuyên trong thiết bị, nó nhƣ là trƣờng hợp trong các FPGA
lai, cho phép lập trình các mối liên kết giữa các thành phần xử lý sẵn có nhƣ các macro
cứng trên chip. Các thiết bị có thể cấu hình lại dạng thô (coarse-grained) tiết cận theo
phƣơng pháp này. Nói chung, các thiết bị đƣợc thực hiện khi một tập hợp các macro
cứng (8-bit, 16-bit hoặc thậm chí một ALU 32-bit) thực hiện một số hoạt động nhƣ
cộng, trừ, nhân. Các mối liên kết nội đƣợc thực hiện hoặc thông qua ma trận chuyển
đổi hoặc các bus chuyên dụng. Cấu hình đƣợc thực hiện bằng cách xác định các chế độ
hoạt động của các macro cứng và lập trình kết nối nội giữa các thành phần xử lý.
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 [56] cho phép xây dựng hệ thống nhúng hiệu
suất cao kết hợp với nguồn tài nguyên lớn có thể cấu hình lại linh hoạt.
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
17
Nguyễn Viết Hiếu – K16D2

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 - Commercial Off-The-Shelf) (không cần phải sửa đổi kiến trúc bộ
xử lý hoặc ứng dụng phần mềm). Các bộ vi xử lý chịu trách nhiệm thu thập dữ liệu từ
thiết bị ngoại vi và từ bộ nhớ, xử lý dữ liệu và gửi chúng tới bộ nhớ và tới các thiết bị

ngoại vi. Ngoài ra, các bộ xử lý quản lý bộ nhớ và khởi tạo các thiết bị ngoại vi. 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 [56]) và các bộ vi xử lý lõi mềm dẻo (soft-core) (MicroBlaze
[57], PicoBlaze [58]). 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) [9] và bộ vi xử lý lõi mềm dẻo (Nios) [10]. Bộ vi xử lý lõi cứng
nhúng sẵn là đƣợc gắn cứng trên FPGA chết và số lƣợng của bộ xử lý đƣợc giới hạn
trên mỗi thiết bị (1, 2, 4 hoặc không có bộ xử lý lõi cứng).
Mặt khác, các bộ vi xử lý lõi mềm sử dụng tài nguyên cấu hình lại đƣợc, vì vậy
số lƣợng các bộ vi xử lý có thể đƣợc thực sự thực hiện chỉ phụ thuộc vào kích thƣớc
của thiết bị.
2.2. Tái cấu hình linh động
2.2.1. Định nghĩa
Hiện nay, sự quan tâm chính trong các chi tiết của các dữ liệu lập trình FPGA có
liên quan đến những tính chất đƣợc cung cấp bởi một số các FPGA gần đây nhƣ các
họ Virtex của Xilinx để thực hiện các chƣơng trình trực tuyến (cấu hình lại linh động)
của từng phần logic của chúng (cấu hình lại từng phần). 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. Cấu
hình lại linh động, thậm chí còn cho phép một hệ thống để thay đổi từng phần nguồn
tài nguyên logic của mình mà không ảnh hƣởng đến phần còn lại của hệ thống. 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. Bằng cách
tải về theo trình tự, quá trình cấu hình lại các chƣơng trình FPGA để thực hiện các
chức năng mong muốn. Quá trình cấu hình lại chính nó có thể đƣợc thực hiện hoàn
toàn hoặc từng phần tùy thuộc vào loại của bitstream đƣợc tải về. Việc thiết kế và
bitstream của nó có một mối quan hệ không-đối ứng: nó không phải là có thể trích
xuất các cấu trúc thiết kế và quá trình thực thi trên FPGA từ bitstream.
Một mô-đun hoặc một hệ thống có thể cấu hình lại dựa trên mô-đun [59] ít nhất
một trong toàn bộ khối có thể cấu hình lại linh động. Trong hệ thống nhƣ vậy, khung

FPGA đƣợc phân chia thành một khu vực logic tĩnh và một hoặc nhiều khu vực có thể
cấu hình lại từng phần (PRR - Partially Reconfigurable Regions). Logic tĩnh là một
phần của thiết kế mà không thể thay đổi và ổn định suốt trong quá trình thực hiện tất
cả các cấu hình. Nó có thể đƣợc vận hành và bao gồm quá trình điều khiển logic tái
18
Nguyễn Viết Hiếu – K16D2

cấu hình. PRR chứa logic có thể là từng phần cấu hình lại độc lập của logic tĩnh và của
các PRR khác [60]. Các nguồn tài nguyên bị chiếm đóng bởi PRR phải nhiều hơn các
nguồn tài nguyên cần thiết cho các mô-đun có liên quan. Mỗi PRR có bitstream từng
phần liên quan và quá trình cấu hình lại có thể đƣợc thực hiện bằng cách gửi từng phần
bitstream của nó tới cổng tái cấu hình – cổng truy suất cấu hình nội (ICAP - Internal
Configuration Access Port) [55]. Kích thƣớc của bitstream phụ thuộc vào khu vực bị
chiếm đóng của PRR.
Trong một PRR, vài mô-đun có thể tái cấu hình từng phần (PRM - Partially
Reconfigurable Modules) có thể đƣợc nạp (một lần tại một thời điểm). Mỗi PRM đƣợc
thiết kế và thực hiện riêng lẻ bằng cách sử dụng quy trình thiết kế tái cấu hình từng
phần [60]. Tất cả PRM cho mỗi PRR phải có ―chân cắm‖ tƣơng thích với nhau, tức là,
phải có cùng các định nghĩa cổng và tên thực thể.
Việc tạo các PRR phải đáp ứng các ràng buộc về vị trí và định tuyến của các
nguồn tài nguyên có thể cấu hình lại. Một trong những ràng buộc này là các độ chi tiết
tái cấu hình của mỗi FPGA, đƣợc quyết định bởi số lƣợng nhỏ nhất của dữ liệu có thể
cấu hình lại - một khung tái cấu hình. Để cấu hình lại từng phần FPGA, logic tại thời
gian chạy, toàn bộ một khung tái cấu hình phải đƣợc viết lại vào bộ nhớ cấu hình với
sự thay đổi nhỏ nhất. Việc cấu hình lại toàn bộ khung mà không làm ảnh hƣởng khung
khác đƣợc gọi là cấu hình sạch (scrub), đôi khi đƣợc gọi là cấu hình lại dựa trên khung
(khác nhau với cấu hình lại dựa trên mô-đun).
Kiến trúc Virtex có bộ nhớ cấu hình đƣợc bố trí trong các khung đƣợc trải đều
trên thiết bị. Các khung này là các phân đoạn địa chỉ nhỏ nhất của không gian bộ nhớ
cấu hình của thiết bị, tƣơng ứng với khu vực cơ sở trong ma trận thiết bị. Kích thƣớc

của khu vực cơ sở thay đổi trên các thiết bị khác nhau:
Khu vực cơ sở trong Virtex-4 có 16 CLB theo chiều dọc và 1 CLB theo chiều
ngang [61];
Khu vực cơ sở trong Virtex-5 có 20 CLB theo chiều dọc và 1 CLB theo chiều
ngang [55];
Khu vực cơ sở trong Virtex-6 có 40 CLB theo chiều dọc và 1 CLB theo chiều
ngang [62].
Hai PRR không đƣợc chồng lên nhau theo chiều dọc bên trong một khu vực cơ
sở. Tuy nhiên, các FPGA gần đây (Virtex-4, 5 và 6) có thể có nhiều khu vực cơ sở
theo một cột thiết bị, 2 PRR có thể chồng lên nhau theo chiều dọc trong FPGA, miễn
là chúng không chia sẻ bất kỳ khu vực cơ sở nào.
Một khái niệm quan trọng khác trong việc thiết kế một hệ thống tự động cấu hình
lại là Bus Macro [60]. Bus Macro là cổng vật lý kết nối các PRM với phần logic tĩnh.
Bất kỳ kết nối giữa một PRM và logic tĩnh phải đi qua Bus Macros. Hơn nữa, Bus
Macro, phục vụ nhƣ là kết quả đầu ra từ PRM, nên phải vô hiệu hóa trƣớc khi cấu hình
19
Nguyễn Viết Hiếu – K16D2

lại từng phần, nhƣ là những tín hiệu có thể chuyển đổi thất thƣờng trong quá trình cấu
hình lại, do đó ảnh hƣởng đến logic khác. Vì vậy, cho phép tín hiệu điều khiển cho đầu
ra Bus Macro đƣợc cung cấp. Bus Macro đầu tiên phải đƣợc vô hiệu hóa bởi tín hiệu
xác định cho phép trƣớc khi quá trình cấu hình lại và sau đó kích hoạt lại, bit cuối
cùng của bitstream từng phần đƣợc tải.


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
Thông thƣờng, trong một hệ thống tự cấu hình lại tự động, có một bộ xử lý trung
tâm kết nối tới cổng cấu hình lại và điều khiển quá trình cấu hình lại bằng cách gửi các
bitstream từng phần đến cổng này. Trong các bitstream từng phần, đã có tất cả các
thông tin liên quan đến các khu vực 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. Trái tim
của hệ thống là bộ vi xử lý đọc các bitstream cấu hình trong bộ nhớ phụ lục và điều
khiển quá trình cấu hình lại bằng cách gửi các bitstream từng phần của các khu vực có
thể tái cấu hình từng phần khác (PRR - Partially Reconfigurable Regions) tới cổng
truy suất cấu hình nội bộ (ICAP - Internal Configuration Access Port) [55]. Các
bitstream từng phần đƣợc lƣu trữ trong bộ nhớ phụ lục có thể là: giống nhƣ Compact
Flash (thẻ nhớ) bên ngoài, hoặc giống nhƣ khối RAM nội chuyên dụng (Bram) có sẵn
trong FPGA. Chƣơng trình phần mềm của bộ xử lý trung tâm nằm trong bộ nhớ
chƣơng trình và điều khiển cấu hình lại thông qua bộ điều khiển ICAP. Bộ xử lý
thƣờng đƣợc xem xét trong logic tĩnh để tự động điều khiển các nguồn tài nguyên có
thể cấu hình lại khác.
20
Nguyễn Viết Hiếu – K16D2

2.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 -
Embedded Development Kit) [63], môi trƣờng phần mềm tích hợp (ISE - Integrated
Software Environment) [64] và PlanAhead [65], nhƣ trong hình 2.3. Nhƣ đã nói trƣớc
đây, thời gian chạy tự tái cấu hình của FPGA thƣờng đƣợc điều khiển bởi một bộ xử lý
có thể cấu hình lại trên các thiết bị tƣơng tự, nhƣ thể hiện trong hình 2.2. Vì vậy, quy
trình thiết kế của một hệ thống cấu hình lại nhƣ sau.

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
Đầu tiên, toàn bộ hệ thống nhúng hình 2.2, bao gồm cả cấu trúc phần cứng (bộ
xử lý, bộ điều khiển ICAP, ) và các nguồn phần mềm bộ xử lý, đƣợc xây dựng bằng
cách sử dụng EDK. Sau đó, các bộ phận phần cứng đƣợc tổng hợp bằng cách sử dụng
ISE. Giai đoạn sắp đặt (floorplan) đƣợc quản lý bằng cách sử dụng PlanAhead. Trong
giai đoạn này, các PRR là bị ràng buộc về mặt vật lý trên các ma trận FPGA và các
Bus Macros cũng đƣợc cố định tại ranh giới của các PRR. Sau đó, các bộ phận phần

cứng đã đƣợc sắp đặt đƣợc kết hợp với phần phần mềm để tạo thành một hệ thống
hoàn chỉnh bao gồm đầy đủ bitstream từng phần và sẵn sàng cho tải lên FPGA. Quan
tâm chính của quy trình thiết kế liên quan đến việc tự động chèn của Bus Macros vào
thiết kế ban đầu. Với quy trình thiết kế cũ liên quan đến phiên bản 8.2 và 9.2 của công
cụ Xilinx (ISE, EDK, PlanAhead), các nhà thiết kế đã tự thêm các Bus Macros vào
thiết kế ở giai đoạn đầu tiên của quy trình thiết kế. Với quy trình thiết kế mới của công
cụ Xilinx phiên bản 12, Bus Macros đƣợc tự động thêm vào và đƣợc đặt ở giai đoạn 3
mà không cần can thiệp bằng tay.
Mảng cổng logic lập trình đƣợc (FPGA) là rất phổ biến cho các giải pháp thiết kế
bởi vì tính linh hoạt cao và tính năng cấu hình lại, làm giảm thời gian để đƣa ra thị
21
Nguyễn Viết Hiếu – K16D2

trƣờng. Chúng cũng là một ứng cử viên hấp dẫn cho các ứng dụng không gian trong
việc đòi hỏi mật độ cao, hiệu suất cao, tài nguyên và chi phí NRE thấp (Non-Recurring
Engineering) và thời gian quay vòng nhanh. Các FPGA dựa trên SRAM có thể cung
cấp thêm lợi ích bổ sung cho các nhiệm vụ từ xa. Ví dụ, bằng cách cho phép thay đổi
thiết kế trong quỹ đạo để lập trình lại, với mục đích giảm chi phí nhiệm vụ bằng cách
sửa lỗi hoặc cải thiện hiệu năng hệ thống sau khi khởi động. Độ tin cậy và ràng buộc
an toàn của con ngƣời trong một số lĩnh vực quan trọng yêu cầu các phƣơng án về khả
năng chịu lỗi phải đƣợc thực hiện trong hệ thống.
2.3. Khả năng chịu lỗi trong kiến trúc tái cấu hình
Khả năng chịu lỗi trong các thiết bị bán dẫn đã là mong muốn có ý nghĩa, kể từ
khi các nhiễu loạn lần đầu tiên đƣợc phát hiện trong các ứng dụng không gian một vài
năm trƣớc đây. Kể từ đó, sự quan tâm nghiên cứu các kỹ thuật chịu lỗi để giữ cho
mạch tích hợp (IC) hoạt động trong môi trƣờng không thuận lợi đã tăng lên, thúc đẩy
bởi tất cả các ứng dụng của các mạch điện tử có thể chịu lỗi bức xạ, chẳng hạn nhƣ các
nhiệm vụ không gian, vệ tinh, các thí nghiệm vật lý năng lƣợng cao và những lĩnh vực
khác [40]. Tƣơng tự nhƣ vậy, trong phạm vi ô tô, môi trƣờng điện từ xung quanh chiếc
xe có thể thay đổi nhanh chóng theo thời gian khi đi qua các loại đối tƣợng khác nhau:

các loại xe khác, bảng điện, đèn giao thông. Làm việc trong môi trƣờng khắc nghiệt
nhƣ vậy đòi hỏi phải có các mạch điện tử có độ tin cậy cao để đảm bảo hoạt động an
toàn cho tài xế và ngƣời tham gia giao thông. Hệ thống ô tô bao gồm một lƣợng lớn
các thành phần tƣơng tự và kỹ thuật số có khả năng nhạy cảm với bức xạ do đó phải
đƣợc bảo vệ hoặc ít nhất là đủ điều kiện cho hoạt động chính xác.
Các kỹ thuật chịu lỗi có thể đƣợc phân loại 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ũ trong cùng một kiến trúc liên kết hoặc một kiến trúc
mới sẽ đƣợc phát triển để cải thiện mạnh mẽ. Chi phí của phƣơng pháp tiếp cận này là
cao và nó có thể khác nhau tùy thuộc vào thời gian phát triển, số lƣợng của các kỹ sƣ
cần thiết để thực hiện các nhiệm vụ và công nghệ đúc đƣợc sử dụng. Actel cung cấp
họ FPGA chịu bức xạ [7] trong đó các flip-flop đƣợc bảo vệ bởi ba mô-đun dự phòng
(TMR - triple modular redundancy). Xilinx, bên cạnh các họ thƣơng mại, cũng cung
cấp các họ cho quân sự là bức xạ cứng nhƣ Radiation-Hardened Space-Grade Virtex-
5QV [66] là tƣơng thích với Virtex-5 FPGA thƣơng mại.
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, nhắm mục tiêu kiến trúc FPGA. Bằng cách này, nó có thể sử
dụng một phần FPGA thƣơng mại để thực hiện việc thiết kế và kỹ thuật giảm nhẹ SEU
đƣợc áp dụng để mô tả thiết kế, trƣớc khi đƣợc tổng hợp trong FPGA. Chi phí của
hƣớng tiếp cận này là ít hơn so với các hƣớng tiếp cận trƣớc đó, bởi vì ngƣời dùng là
chịu trách nhiệm để bảo vệ thiết kế của riêng mình và nó không yêu cầu phát triển và
22
Nguyễn Viết Hiếu – K16D2

chế tạo chip mới. Thật vậy, ngƣời sử dụng có thể lựa chọn linh hoạt các kỹ thuật chịu
lỗi theo các yêu cầu các chi phí về diện tích, hiệu suất và điện năng tiêu hao.
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ó, các xu hƣớng công nghiệp bán dẫn là để giảm
thời gian đƣa ra thị trƣờng và sản xuất chi phí thấp, nên việc triển khai thực hiện dựa

trên thiết kế ở mức cao có vẻ thú vị hơn.
2.3.1. Các mô hình lỗi trong kiến trúc tái cấu hình
Với hậu quả nghiêm trọng cho các ứng dụng, bao gồm cả mất mát thông tin và
lỗi chức năng, ảnh hƣởng của sự kiện đơn (SEE - Single Event Effect) là mối quan tâm
lớn trong ứng dụng quan trọng. SEE xảy ra khi các hạt tích điện chuyển giao năng
lƣợng đủ để kích động một lỗi trong hệ thống. 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ị. Các hậu quả
của ảnh hƣởng thoáng qua, còn đƣợc gọi là sự kiện nhiễu loạn đơn (SEU - Single
Event Upset), là việc lật bit trong các thành phần nhớ. Theo logic mối quan hệ đầu ra,
SEE cũng có thể tạo ra nhiều xung dòng nháy tại đầu ra. Do đó, SEE trong logic này
cũng có thể gây nhiều nhiễu loạn kiểu bit (MBU - multiple bit upsets) trong các thành
phần nhớ.
Một kiểu khác của những ảnh hƣởng là suy thoái tích lũy lâu dài có thể tạo nên
lỗi thƣờng trú.
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 đã liên tục tăng lên trong
những năm qua, gây ra bởi sự tiến triển liên tục của công nghệ đã dẫn đến nhiều hơn
các kiến trúc phức tạp, với việc tích hợp lớn của những thành phần nhớ đƣợc nhúng
vào, cùng với một tỉ lệ đáng kinh ngạc trong quá trình giảm kích thƣớc bóng bán dẫn
23
Nguyễn Viết Hiếu – K16D2

theo định luật Moore [26]. Hình 2.5.a đại diện cho một tế bào nhớ SRAM trong đó có
hai trạng thái ổn định "1" và "0". Trong mỗi trạng thái, hai bóng bán dẫn ―ON‖ và hai
bóng bán dẫn khác là ―OFF‖. Lật bit xảy ra khi một hạt tích điện cao gây ra sự nghịch
đảo của trạng thái mạch transistor. Hiện tƣợng này đƣợc gọi là sự kiện nhiễu loạn đơn

(SEU) và là một trong những mối quan tâm chính trong các mạch tích hợp. Trong các
FPGA dựa trên SRAM, SEU có thể ảnh hƣởng đến bộ nhớ cấu hình bằng cách đảo
một bit và làm hƣ hỏng các chức năng của thiết kế mục tiêu. SEU cũng có thể xảy ra
trong đƣờng dẫn dữ liệu của thiết kế, sửa đổi dữ liệu để xử lý, và cuối cùng tạo ra các
giá trị sai ở đầu ra.

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: Một loại quan trọng khác của SEE là một sự kiện
ngắt chức năng đơn (SEFI - Single Event Functional Interrupt) mà kết quả trong sự
can thiệp của các hoạt động bình thƣờng của một mạch kỹ thuật số phức tạp. SEFI
thƣờng đƣợc sử dụng để chỉ ra một sự thất bại trong một mạch hỗ trợ, chẳng hạn nhƣ
mất khả năng cấu hình, khởi động lại ngồn, chức năng JTAG, một vùng của bộ nhớ
cấu hình, hoặc toàn bộ cấu hình.
Sự kiện rò dòng đơn: Bức xạ ion hóa cũng có thể kích động một loại hiệu ứng
gọi là sự kiện rò dòng đơn (SEL - Single Event Latch-Up), nguyên nhân là do sự kích
hoạt điện ký sinh trong bóng bán dẫn giữa mối nối NP của các bóng bán dẫn CMOS.
Các kích hoạt loại đó của bóng bán dẫn tạo ra một đƣờng dẫn tần số thấp giữa nguồn
cung cấp (Vcc) và đất, gây ra một loại ngắn mạch. Nếu nó đƣợc phát hiện đủ sớm sau
khi xảy ra, nó đƣợc coi nhƣ một lỗi mềm chỉ cần cấu hình lại hoặc thiết lập lại để sửa
chữa. Nếu không, các hiệu ứng SEL có khả năng phá hủy một mạch điện tử, do đó nó
có thể trở thành một lỗi cứng.
Sự kiện hỏng cổng đơn: SEGR (SEGB - Single Event Gate Rupture/Burnout)
nói tới lỗi phá hủy các bóng bán dẫn. Một ion đi qua các cấu trúc bóng bán dẫn, có khả
năng tăng cƣờng (tăng dòng rò cổng) hoặc làm vỡ lớp oxit cách ly cổng. Hiện tƣợng
này dẫn đến phá hủy thiết bị nếu có đủ năng lƣợng ngắn mạch.
24
Nguyễn Viết Hiếu – K16D2

2.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"

[44]. Suy thoái tích lũy lâu dài có thể đƣợc gây ra bởi bức xạ hoặc bởi quá trình biến
đổi [6] hoặc cả hai. Quá trình thay đổi có thể tạo ra sự khác biệt về chậm trễ và rò rỉ
điện năng giữa các bóng bán dẫn trên cùng một mạch. Các bức xạ cao, tích điện có thể
gây nên ảnh hƣởng vận chuyển quá nhiệt (HCE) [43] làm giảm chất lƣợng chức năng
của bóng bán dẫn. Tất cả những sự chậm trễ và các thay đổi năng lƣợng do quá trình
biến thể và 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
Các chức năng thiết kế của FPGA đƣợc xác định bởi các nội dung cấu hình
SRAM đƣợc lƣu trữ trong các tế bào bộ nhớ cấu hình. Nhƣ trên hình 2.6, các tế bào bộ
nhớ xác định trạng thái của các LUT, MUX, Flip-Flop và các hộp chuyển đổi CLB. Bộ
nhớ cấu hình FPGA bao gồm các tế bào này. Khi một lỗi đƣợc tạo bởi một SEU trong
bộ nhớ cấu hình, nó có thể làm thay đổi các chức năng mạch, ví dụ 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
Những thay đổi chức năng có thể gây suy chức năng hoặc mất logic chức năng.
Kể từ khi các nhiễu loạn bộ nhớ cấu hình vẫn còn chốt, ảnh hƣởng của nó là thƣờng
trú cho đến khi bộ nhớ cấu hình đƣợc làm mới với các dữ liệu cấu hình chính xác.
Phân loại nhiễu loạn cấu hình: Trong nhiều trƣờng hợp, các lỗi chức năng xảy
ra sau một SEU là tạm thời. Khi lỗi cấu hình đã đƣợc sửa chữa, sẽ không có dấu hiệu
của lỗi. Trong trƣờng hợp khác, các lỗi chức năng kết suất vẫn tồn tại không thể sửa
chữa. Trong một hệ thống với kỹ thuật làm sạch (scrub), thời gian của một số lỗi chức
năng là hữu hạn.
Bit không nhạy cảm: Các bit không nhạy cảm đƣợc hiểu nhƣ các bit cấu hình
"không quan tâm" của một thiết kế. Việc lật một bit không nhạy cảm không
25
Nguyễn Viết Hiếu – K16D2


ảnh hƣởng đến các chức năng mà thiết kế đã chỉ rõ. Do đó, sự nhạy cảm của
mỗi bit cấu hình phụ thuộc vào ứng dụng.
Bit nhạy cảm: Bất kỳ việc lật bit trong bit nhạy cảm cuối cùng sẽ ảnh hƣởng
đến các bit sử dụng (trạng thái hệ thống). Các khung có chứa các bit cấu hình
nhạy cảm đƣợc định nghĩa là các khung nhạy cảm.
 Bit không ổn định: Các bit cấu hình nhạy cảm gây lỗi chức năng mà không
tồn tại trong một thiết kế và đƣợc xóa sau khi làm sạch. Một khi các lỗi đã
xuất hiện, hệ thống thể hiện không có dấu hiệu của sự sai hỏng. Những lỗi
thoáng qua này đại diện cho một sự gián đoạn tạm thời của dịch vụ và nó
không đòi hỏi một thiết lập lại để phục hồi.

Hình 2.7: Rối loạn không liên tục
Hình 2.7 minh họa sự khác biệt giữa hai dòng dữ liệu đƣợc tạo ra bởi thiết
kế giống nhau. Hình này mô tả một lỗi không ổn định. Sau khi sửa chữa
rối loạn, không có sự khác biệt giữa hai dòng dữ liệu.
 Bit ổn định: Đôi khi một SEU gây ra lỗi trong bộ nhớ cấu hình của một
FPGA sẽ tạo ra các lỗi chức năng ổn định lan truyền trong mạch, ngay cả
sau khi sửa chữa làm sạch lỗi. Không giống nhƣ các lỗi không ổn định, lỗi
ổn định không biến mất sau khi làm sạch. Mặc dù cấu hình sạch sửa chữa
cấu trúc mạch, mạch lỗi tạm thời chèn trạng thái không đúng vào hệ
thống, điều này không thể sửa chữa, và sẽ không tự sửa chữa mà không có
việc khởi động lại toàn bộ hệ thống. Các lỗi chức năng ổn định phản ứng
nhƣ SEFI. Tuy nhiên, các lỗi chức năng ổn định là chỉ cho các cấu hình đã
đƣợc lập trình cho FPGA, không cho thiết bị cụ thể. Ngoài ra, các lỗi ổn
định có thể đƣợc gỡ bỏ với một thiết lập lại toàn hệ thống trong khi SEFI
thƣờng đòi hỏi việc tắt/bật hệ thống để phục hồi [42]. Các lỗi ổn định
đƣợc gây ra bởi một SEU trong bộ nhớ cấu hình tƣơng ứng với những cấu
trúc mạch có chứa thông tin phản hồi và lƣu trữ trạng thái nội. Những cấu
trúc phản hồi ―bẫy‖ trạng thái không đúng và lƣu trữ trạng thái có sai sót

này cho đến khi các biện pháp thích hợp thiết lập lại đƣợc.

×