1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

82 645 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 2,43 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 CP

Trang 1

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ử

LUẬN VĂN THẠC SĨ

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

Hà Nội - 2012

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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

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

Trang 6

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

Trang 7

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à Tint = 100ms 68

Hình 4.2: Xác suất sửa chữa với ba bộ xử lý và Tint = 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

Trang 8

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

Trang 9

đí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

Trang 10

đặ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

Trang 11

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

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

Trang 12

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

Trang 13

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

Trang 14

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

Trang 15

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

Trang 16

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

Trang 17

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

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

Trang 18

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

Trang 19

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

Trang 20

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ị

Trang 21

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à

Trang 22

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

Trang 23

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

Trang 24

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

Trang 25

ả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

Trang 26

Hình 2.8 minh họa một lỗi ổn định, hoặc gián đoạn dịch vụ vĩnh viễn Ngay cả việc làm sạch sửa chữa những rối loạn này, sự khác biệt đầu ra vẫn còn tồn tại

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

Kể từ khi những nhiễu loạn trong các thiết bị điện tử đã được phát hiện lần đầu tiên, sự quan tâm trong việc áp dụng kỹ thuật chịu lỗi để đảm bảo hoạt động của thiết

bị mục tiêu trong môi trường khắc nghiệt đã tăng lên Bên cạnh đó cứng hóa trong quá trình chế tạo, các nhà thiết kế điện tử cũng đã áp dụng phương pháp tiếp cận cổ điển ở các cấp độ khác nhau để giữ cho mạch hoạt động mặc dù có lỗi làm gián đoạn

2.4.1 Mức kiến trúc

Ở 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)

Trang 27

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

Trang 28

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

Trang 29

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

Trang 30

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)

2.4.2 Mức hệ thống

Khi một thiết kế là kiểu mô-đun hóa cao, một lỗi có thể được chấp nhận bằng việc sử dụng một khối chức năng dự phòng, cung cấp hiệu năng thấp đi hoặc bằng cách điều các nhiệm vụ lỗi tới các khối khác trên toàn hệ thống Các giải pháp kỹ thuật cao trong các lĩnh vực ô tô khám phá khả năng chịu lỗi ở cấp độ hệ thống Trong dự án ReCoNets [52], các điểm (node) có thể cấu hình lại được kết nối với nhau để tạo thành một mạng lưới các máy tính cấu hình lại Thủ tục tự sửa chữa và phân vùng thông minh được phát triển để đạt được khả năng chịu lỗi ở cấp độ hệ thống Để đảm bảo thời gian sửa chữa ngắn trong trường hợp điểm bị lỗi, vị trí mới của nhiệm vụ được tối

ưu hóa và chuyển tới các điểm khác

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ệ thống này không khai thác DPR, vì vậy nó đòi hỏi một lượng lớn của bộ nhớ để lưu trữ tất cả các bitstream Hơn nữa, khi có một lỗi trong một FPGA, ba FPGA khác phải được khởi động lại để đặt lại các nhiệm vụ mà có khả năng mất một thời gian dài cho chức năng ngắt

Hình 2.15: Mô hình của ReCoNets về Multi-FPGA

Trang 31

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

Trong một hệ thống chịu lỗi, bên cạnh việc phát hiện lỗi và sửa chữa, thì cần thiết phải đặt các mô-đun bị lỗi trở lại trạng thái chính xác tương tự như trước khi lỗi xảy ra, đặc biệt là khi toàn bộ hệ thống hoặc quá trình khởi động lại có thể là điều không được phép Vì vậy, cần phải lưu trữ bối cảnh chính xác và khôi phục lại nó sau khi lỗi được sửa chữa Sau đó, các mô-đun có thể tiếp tục thực hiện nhiệm vụ tại các điểm lưu

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 Nó có thể bao gồm các trạng thái của tất cả các thanh ghi liên quan, bộ nhớ cache, bộ nhớ, của mô-đun Lưu và khôi phục lại tất cả các giá trị

có liên quan cho phép chuyển đổi bối cảnh của mô-đun và phục hồi khi lỗi

Bối cảnh bộ vi xử lý: Một bối cảnh bộ vi xử lý được chứa trong các giá trị thanh

ghi xử lý Bối cảnh bộ xử lý lõi mềm MicroBlaze được đại diện bởi các giá trị 32-bit của 32 thanh ghi dùng chung và 2 thanh ghi đặc biệt: Thanh ghi bộ đếm chương trình (PC) và Thanh ghi tình trạng máy (MSR) [57] Giá trị của những thanh ghi này đại diện cho trạng thái của bộ vi xử lý

Có 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

2.4.3.2 Checkpointing and Rollback [20]

Trong quá trình thực hiện nhiệm vụ, mô-đun được thường xuyên kiểm tra cho nhất quán tại cái gọi là điểm kiểm soát (check-point) Nếu mô-đun qua kiểm tra, bối cảnh chính xác và được lưu tại điểm kiểm soát đó Nếu không, trạng thái mô-đun được phục hồi từ trạng thái chính xác của các điểm kiểm soát trước đó Quá trình thường xuyên kiểm tra cho phù hợp và lưu trữ bối cảnh chính xác được gọi là checkpointing

Sự phục hồi ngữ cảnh trong trường hợp này được gọi là rollback

Hình 2.16: Phục hồi kiểu rollback dùng checkpointing

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 Khi một lỗi xảy ra, so sánh điểm kiểm tra chỉ phát hiện sự không

Trang 32

thống nhất giữa hai mô-đun Khi không có lỗi xảy ra trong một khoảng kiểm soát, rollback không cần thiết 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 Tại thời điểm này, không thể biết mô-đun nào là không lỗi để sao chép bối cảnh chính xác của nó vì vậy chúng tôi không thể sao chép các bối cảnh từ A,

B hoặc ngược lại Vì vậy, lựa chọn duy nhất là rollback cả hai mô-đun tại checkpoint trước đó

Hình 2.17: Rollback trong hệ thống song công

2.4.3.3 Rollforward [20]

Mặt khác, trong một 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 Trong hình 2.18, khi một lỗi được xác định trong mô-đun B, các mô-đun A và C tiếp tục thực hiện nhiệm vụ Sau khi sửa lỗi, trạng thái chính xác có thể được sao chép tới mô-đun B từ mô-đun A hoặc C

Hình 2.18: Rollforward scheme

Rollback có thể được sử dụng trong một hệ thống song công mà không có khả năng định vị lỗi và rollforward có thể được sử dụng cho việc phục hồi lỗi thoáng qua trong TMR hoặc song công với phát hiện vị trí lỗi Trong hầu hết trường hợp, rollback cung cấp chi phí thời gian nhiều hơn rollforward vì thời gian yêu cầu của các checkpoint thường được kết hợp với rollback

2.5 Chiến lược giảm SEU trong các FPGA dựa trên SRAM

SEU được công nhận là mối quan tâm chính về vấn đề độ tin cậy trong FPGA dựa trên SRAM Tính năng của cấu hình lại từng phần linh động được giới thiệu trong các kiến trúc cấu hình lại mới không chỉ tăng cường tính linh hoạt, mà cũng có thể được sử dụng cho việc cải thiện mức độ khả năng chịu lỗi của hệ thống Vì vậy, bên cạnh các giải pháp về khả năng chịu lỗi cổ điển được liệt kê tại mục 2.4, một số kỹ thuật chịu lỗi sử dụng cấu hình lại linh động đối phó với SEU đã được đề xuất Theo

Trang 33

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ể

Vì vậy, luận văn này phân loại SEU cấu hình sau hành vi về tính bền bỉ của chúng (tức là lỗi ảnh hưởng đến khung cấu hình như thế nào trong FPGA, được mô tả tại mục 2.3.1) Sau đó, luận văn này cũng giới thiệu các chiến lược tiềm năng đối phó với những SEU cấu hình

2.5.1 Readback

Readback [68] là một hoạt động đọc thông tin cấu hình của bộ nhớ cấu hình Sau khi một FPGA được lập trình, readback cho phép đọc dữ liệu lập trình của FPGA và các thông tin khác thông qua giao diện cấu hình

Đầu tiên, readback có thể được sử dụng để đảm bảo rằng các dữ liệu cấu hình hiện thời được lưu trữ trong FPGA là chính xác Nó cung cấp khả năng phát hiện các SEU trong bộ nhớ cấu hình mà không làm gián đoạn hoạt động của mình

Thứ hai, readback có thể được dùng để đọc trạng thái hiện tại của tất cả các CLB nội, bộ kết nối và hộp chuyển mạch cho việc gỡ lỗi phần cứng, chức năng xác minh của các ứng dụng máy tính cấu hình lại Readback chỉ cung cấp khả năng phát hiện, nó phải hợp tác với một kỹ thuật hiệu chỉnh

2.5.2 Tái cấu hình từng phần

Ảnh hưởng của rối loạn cấu hình là vĩnh viễn cho đến khi tải lại cấu hình tiếp theo Nó có thể đạt được bằng cách cấu hình lại toàn bộ cụ thể là tải lại cấu hình của toàn bộ thiết bị Giải pháp này có thể tạo ra một sự gián đoạn dịch vụ tạm thời của toàn

bộ hệ thống, điều này có thể bị cấm đối với một số ứng dụng Một giải pháp khác là sử dụng 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 Rõ ràng, với cấu hình lại từng phần để loại bỏ nhiễu loạn là ít tốn kém hơn thời gian

Cấu hình sạch

Nếu trong khi readback, dòng dữ liệu cấu hình được tìm thấy không hợp lệ, nhiễu loạn nên được sửa chữa càng nhanh càng tốt để tránh bất kỳ kết quả không được tiên đoán Kể từ khi một khung cấu hình là phần nhỏ nhất có thể lập trình lại, nên tải lại toàn bộ khung bị ảnh hưởng với các dữ liệu chính xác bằng cách sử dụng kỹ thuật làm sạch Kỹ thuật làm sạch có thể được kết hợp với readback để xác định vị trí bit lật và đảo lại nó, hoặc dữ liệu khung cơ sở có thể được lưu trữ trong bộ nhớ có độ tin cậy cao

mà bộ điều khiển làm sạch có thể tìm thấy thông tin cấu hình

Kỹ thuật làm sạch

Rối loạn có thể tích lũy trong ma trận trong một thời gian dài, gây ra một lỗi trong hệ thống ngay cả khi dự phòng được áp dụng, nên cần thiết để làm sạch tất cả các rối loạn trong cùng một tần số để đảm bảo các chức năng chính xác Kỹ thuật

Trang 34

thường xuyên tải lại dữ liệu cấu hình với thông tin chính xác được gọi là kỹ thuật làm sạch [18] Làm sạch được sử dụng để tránh sự tích tụ nhiễu loạn và tự bản thân việc làm sạch không chứa bất kỳ cơ chế phát hiện nào Làm sạch có thể được sử dụng độc lập để làm sạch các nhiễu loạn bên trong ma trận, nó định kỳ làm mới bộ nhớ cấu hình Trong trường hợp này, tần số làm tươi phải là cao hơn mức dự kiến xuất hiện của các nhiễu loạn Một nghiên cứu xuyên suốt về tỷ lệ nhiễu loạn nên được thực hiện trước khi áp dụng kỹ thuật làm sạch, đòi hỏi rất nhiều điều tra của công nghệ sản xuất thiết

bị cũng như điều kiện môi trường Do đó, điều này có thể trì hoãn đáng kể thời gian để thị trường của hệ thống

Trong luận văn này, phân biệt cấu hình sạch như các hoạt động tải lại hoặc sửa đổi một khung cấu hình với kỹ thuật làm sạch như các hoạt động tải lại tất cả các khung cấu hình của hệ thống mục tiêu

Tái cấu hình dựa trên mô-đun

Nếu không xác định chính xác các khung cấu hình bị lỗi, toàn bộ mô-đun bị lỗi cần phải được cấu hình lại với dữ liệu cấu hình chính xác để loại bỏ lỗi Việc này đòi hỏi toàn bộ hệ thống phải được thiết kế bằng cách sử dụng tái cấu hình từng phần dựa trên mô-đun Tái cấu hình dựa trên mô-đun sử dụng quy trình thiết kế được giải thích tại mục 2.2.2 Các bitstream từng phần của các mô-đun có thể cấu hình lại được tạo ra bằng cách sử dụng phương pháp này Tái cấu hình một mô-đun được thực hiện bằng cách tải bitstream từng phần tương ứng thông qua cổng cấu hình lại

Kỹ thuật lát gạch - Tiling

Các lỗi thường trú có thể xuất hiện trong ma trận do tích lũy lâu dài hoặc quá trình sản xuất bị lỗi Loại lỗi này có thể gây nhiều rối loạn cấu hình và có thể được phát hiện bằng cách sử dụng sự kết hợp của nhiều chiến lược Tuy nhiên, lỗi thường trú không thể được gỡ bỏ bằng cách tải lại dữ liệu cấu hình Một giải pháp để sửa chữa lỗi thường trú trong FPGA được trình bày trong [49] Một mô-đun bị lỗi có thể được sửa chữa bằng cách cấu hình lại các chip để một khối logic có thể cấu hình lại bị hư hỏng (CLB - Configurable Logic Block) hoặc nguồn tài nguyên định tuyến không được sử dụng bởi thiết kế Nhiều kỹ thuật đã được trình bày để cung cấp loại bỏ sự cố thường trú cho các FPGA thông qua tái cấu hình Một giải pháp là tạo ra tại thời gian chạy một cấu hình mới sau khi sự cố thường trú được phát hiện Giải pháp này là không khả thi vì tổng hợp logic rất phức tạp, chiến lược sắp đặt và định tuyến chỉ có thể được thực hiện trên các máy tính bên ngoài Một giải pháp khác được gọi là tiling (kỹ thuật lát gạch) là để tạo ra các cấu hình FPGA thay thế trước khi biên dịch và lưu trữ các các bitstream cấu hình trong bộ nhớ tĩnh Hình 2.19 mô tả các nguyên lý tiling Cùng một thiết kế có ba cấu hình khác nhau (a), (b) và (c) và mỗi cấu hình có một khu vực chưa được sử dụng (gạch) Nếu một lỗi thường trú được tìm thấy trong một ―viên gạch‖, cấu hình thích hợp mà có ―viên gạch‖ chưa được sử dụng bao gồm các lỗi là được tải

Trang 35

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ú bởi vì khi phát hiện có sự cố thường trú, một cấu hình mới có thể được lựa chọn mà không có sự chậm trễ của định tuyến lại và tái lập lại Tuy nhiên, giải pháp này yêu cầu số lượng bộ nhớ lớn cho lưu trữ các cấu hình

Việc sử dụng Tiling đòi hỏi phải áp dụng một cơ định vị lỗi thường trú như: readback lặp đi lặp lại các khung bị lỗi, nếu lỗi vẫn tồn tại sau khi điều chỉnh liên tục, lỗi thường trú được khai báo và định vị bởi readback Bởi vì độ chi tiết của tái cấu hình dựa trên khung, nên ―viên gạch‖ không được nhỏ hơn một khung cấu hình

Mã kiểm tra CRC và phương pháp nhân ba tài nguyên với bộ xác định chính được sử dụng song song trong [27] Mã kiểm tra CRC được tạo ra tương ứng với các mô-đun lặp, việc xác định (vote) được thực hiện dựa trên những CRC này để phát hiện các lỗi Hệ thống này cũng có thể được phục hồi bằng cách sao chép bộ nhớ cấu hình của các FPGA không lỗi tới FPGA có lỗi Trên thực tế, giải pháp này đòi hỏi phải xâm nhập sửa đổi mục đích thiết kế do đó có thể ảnh hưởng đến các chức năng Hơn nữa, giải pháp này chỉ có thể làm việc với hệ thống đa FPGA và không được áp dụng vào chỉ một thiết bị vì tính không đồng nhất của cấu trúc FPGA nội Cuối cùng, hệ thống

đa FPGA thực hiện giải pháp này phải sử dụng cùng một thiết bị FPGA cho toàn bộ nền tảng cũng vì sự không đồng nhất của các FPGA khác nhau

Phương pháp cấu hình lại từng phần linh được động đồng bộ với TMR được trình bày trong [17] kết hợp với tái cấu hình từng phần linh động với TMR Phương pháp này sử dụng TMR thô với một bộ xác định (voter) đặc biệt có thể chỉ ra các mô-đun bị

Trang 36

lỗi Định nghĩa các điểm kiểm soát (check-point) cho phép đồng bộ hóa các mô-đun

Sử dụng tái cấu hình từng phần linh động, một khối bị lỗi là được cấu hình lại và tái đồng bộ hóa được thực hiện trong khi phần còn lại của hệ thống hoạt động Kỹ thuật này làm cho nó có thể cấu hình lại một khối của TMR đang chạy, vì vậy mà không mất thông tin Tuy nhiên, phương pháp này là không thích hợp cho hệ thống lớn được bởi

vì quá nhiều phần cứng của TMR Hơn nữa, dung lượng bộ nhớ lớn là cần thiết để lưu trữ bối cảnh tại điểm kiểm soát (check-point) Các điểm kiểm soát cần được phân tích cẩn thận để bảo dưỡng các dịch vụ, chức năng Cuối cùng, loại hệ thống này không có tính ứng dụng rộng rãi bởi vì nó chỉ thích nghi với máy trạng thái hữu hạn (FSM - Finite State Machine) nơi mà tất cả các trạng thái được xác định tốt trong giai đoạn thiết kế

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 Nói chung, có rất nhiều cách để thực hiện tiêm lỗi Một SEU trong một tế bào nhớ có thể được mô hình hóa như một bit lật Nó có thể được dễ dàng tiêm trong thành phần bộ nhớ được mô tả trong ngôn ngữ mô tả phần cứng, chẳng hạn như VHDL hoặc Verilog, bằng cách thực hiện một hoạt động XOR giữa giá trị được lưu trữ ban đầu và mặt nạ, mặt nạ này xác định bit sẽ được lật [29] Với các FPGA dựa trên SRAM, lật bit có thể xảy ra trong bất kỳ bit nào của bitstream, kết quả là, thực hiện các lỗi tiêm trực tiếp trong bitstream FPGA mà không cần hiểu thiết kế và cấu trúc liên kết trong mô tả phần cứng Bitstream có thể được trực tiếp sửa đổi bằng cách sử dụng bất kỳ trình soạn thảo văn bản trên máy tính Sửa đổi này không cần biết cấu trúc thiết kế, nhưng cấu trúc bitstream của thiết bị có liên quan thì các bit được thay đổi phải nằm trong phần dữ liệu mà không phải trong phần lệnh

Bộ phát triển phần mềm JBits (SDK) [70] là một tập hợp các lớp Java cung cấp một giao diện chương trình ứng dụng (API) vào bitstream của họ FPGA Xilinx Virtex-

II Giao diện này hoạt động hoặc trên các bitstream tạo ra bởi các công cụ thiết kế Xilinx, hoặc trên các bitstream readback từ phần cứng thực tế Điều này cung cấp khả năng thiết kế, điều chỉnh và tự động thay đổi các mạch trong các thiết bị Virtex JBits API cung cấp cho người dùng khả năng cấu hình trực tiếp CLB Bằng cách sử dụng các lớp JBits, ta có thể thực hiện một lỗi tiêm chọn lọc trong bitstream, mà cũng có thể làm giảm thời gian tiêm lỗi Các thao tác với bitstream bằng cách sử dụng trình soạn thảo văn bản hoặc JBits SDK là phương pháp sử dụng máy tính bên ngoài Phương pháp trực tuyến [28] cũng được áp dụng bằng cách sử dụng các nguồn tài nguyên cấu hình lại được sẵn có trong thiết bị để thực hiện tái cấu hình lại linh động Một bộ điều khiển chuyên dụng được xây dựng bên trong ma trận readback của khung liên quan, lật một bit bên trong các khung dữ liệu cấu hình, sau đó ghi các khung đã tiêm lỗi tới ma

Trang 37

trận bằng cách sử dụng quá trình làm sạch Trước khi thực hiện việc tiêm tiếp theo, các lỗi trước đó nên được loại bỏ để tránh sự tích tụ lỗi Lỗi có thể được loại bỏ bằng cách

sử dụng kỹ thuật làm sạch thêm một lần nữa cho lỗi không ổn định hoặc tái cấu hình từng phần dựa trên mô-đun cho các lỗi ổn định Nếu thiết kế không được phân chia như tái cấu hình dựa trên mô-đun, để đối phó với các lỗi ổn định cần khởi động lại toàn bộ hệ thống

2.6 Tóm tắt và kết luận

Với tính linh hoạt của mình, FPGA là rất hợp với các ứng dụng nhúng có nhiệm

vụ quan trọng, nhưng chúng rất nhạy cảm với bức xạ và nhiễu điện từ [71] Vì vậy, độ tin cậy của chúng có thể là không đủ, trừ khi một số kỹ thuật chịu lỗi có khả năng giảm nhẹ sai sót mềm được sử dụng Những ảnh hưởng chủ yếu được biết là các nhiễu loạn sự kiện đơn (SEU) hoặc các lỗi mềm, bởi vì chỉ vài trạng thái logic của vài phần

tử nhớ bị thay đổi trong khi bản thân thiết bị là rất hiếm khi bị hư hỏng vĩnh viễn Trong FPGA, SEU có thể trực tiếp làm hỏng kết quả tính toán hoặc gây ra thay đổi bộ nhớ cấu hình, có thể gây ra những thay đổi làm suy thoái chức năng và hiệu suất của thiết bị 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

Khả năng đầu tiên là thiết kế một ma trận FPGA mới bao gồm các thành phần chịu lỗi Một số công ty FPGA cung cấp một số họ chịu bức xạ trong đó có các thành phần chịu lỗi Các phương án chịu lỗi dựa trên sự dự phòng nhưng được xây dựng bên trong mạch và người dùng không cần phải quản lý điều đó Cách tiếp cận này đòi hỏi rất nhiều kỹ sư và thời gian phát triển Hơn nữa, các thiết bị đặc biệt chỉ có thị trường

Trang 38

nhỏ như ô tô và hàng không vũ trụ là không thể cho phép sản xuất khối lượng lớn Do

đó các FPGA đặc biệt là thường đắt hơn nhiều so với các thiết bị thương mại

Khả năng thứ hai là sử dụng các FPGA thương mại và áp dụng kỹ thuật mô tả ở mức cao của thiết kế trước khi mô tả này được tổng hợp trong FPGA Người sử dụng

có trách nhiệm để làm cứng thiết kế của mình mà không yêu cầu chế tạo chip mới Nhanh chóng thay đổi hoàn toàn của cả phần cứng và cập nhật phần mềm được đảm bảo bởi các nhà sản xuất trong suốt thời gian sống của thiết bị Thiết bị quá cũ có thể được dễ dàng thay thế bởi những cái mới nhờ vào khả năng tương thích ngược và do

đó nó có thể thu hút sự chấp nhận từ người sử dụng

Một số các FPGA hiện đại cung cấp tái cấu hình linh động không chỉ cung cấp một mức độ linh hoạt cao hơn, mà còn có giải pháp hiệu quả để sửa chữa SEU Sử dụng tái cấu hình linh động sẽ cho phép phát hiện lỗi trên hệ thống trong quá trình hoạt động, định vị trí lỗi rất nhanh, điều chỉnh nhanh, nhanh chóng phục hồi từ những thất bại tạm thời, tránh khoảng nghỉ dài của chức năng ngắt, nhanh chóng sửa chữa lỗi thường trú thông qua cấu hình lại và duy trì dịch vụ liên tục là rất quan trọng trong tính toán có độ tin cậy cao

Trong phần còn lại của luận văn này, giới thiệu về mô hình kết hợp các phương pháp tiếp cận khác nhau với tái cấu hình linh động: phát hiện lỗi hiệu quả, nhanh chóng sửa chữa và phục hồi từ lỗi Luận văn này tập trung tới lỗi gây lên bởi SEU trong bộ nhớ cấu hình và các thành phần có thể cấu hình lại cũng như các lỗi thường trú đơn

Trang 39

CHƯƠNG 3: CHỊU LỖI TRONG CHIP HỆ THỐNG ĐA NHÂN ĐỘNG

kỹ thuật (NRE - Non-Recurring Engineering) để phát triển hệ thống đa bộ xử lý Hơn nữa, một số FPGA cho phép tái cấu hình linh động từng phần trong thời gian chạy, nhưng với độ nhạy cao của mình, các lỗi về điện tử có thể gây ra loạn chức năng hệ thống Chương này trình bày hệ thống trên chip đa xử lý chịu lỗi (MPSoC - Multi-Processor System-on-Chip) dựa trên tái cấu hình linh động trên toàn bộ nền tảng Luận văn này giới thiệu một hệ thống MPSoC kết hợp các kỹ thuật chịu lỗi ở nhiều cấp độ: chịu lỗi linh động MPSoC (FT-DyMPSoC - Fault-Tolerant Dynamic MPSoC) Ngoài

ra, chương này cũng trình bày về việc thay đổi phương pháp tiêu chuẩn của việc tự tái cấu hình trong thời gian chạy, tạo điều kiện cho việc thiết kế khái niệm mô-đun phức tạp

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: Giải pháp này có hạn chế đáng kể bởi giới hạn tần số

và phụ thuộc vào công nghệ sản xuất Hơn nữa, chiến lược này làm tăng điện năng tiêu thụ

2 Sử dụng xử lý song song: Kỹ thuật này làm tăng số lượng các thành phần tính

toán trong hệ thống Cấu trúc liên kết đa bộ xử lý khai thác cơ chế này

Trái ngược với việc tăng tần số, các hệ thống đa bộ xử lý thì số bộ xử lý có thể tăng mà chỉ phụ thuộc vào kích thước của thiết bị Cấu trúc liên kết đa bộ xử lý có thể được thực hiện trên một bộ vi xử lý FPGA với lõi mềm như Xilinx MicroBlaze, hoặc

bộ xử lý lõi cứng như PowerPC [56] Ngoài ra các FPGA mới cung cấp nguồn tài nguyên mật độ cao tích hợp xử lý chuyên dụng Có hai cách chính của việc truyền thông để trao đổi dữ liệu trong một hệ thống đa bộ xử lý: qua tin nhắn và bộ nhớ chia

sẻ [2] Mỗi cách đều có ưu và khuyết điểm riêng của nó, nhưng một cụm (được xây

Trang 40

dựng bởi các truyền thông bằng tin nhắn) là phù hợp hơn cho các kiến trúc tái cấu hình [2] Sự tích hợp này được thúc đẩy bởi sự tồn tại và sẵn có của các bus IP điểm - điểm Một số giải pháp kỹ thuật cao kết hợp các lợi ích của kiến trúc xử lý song song

và tái cấu hình Tuy nhiên, không có cách nào có thể thực hiện hoàn toàn cấu hình lại từng phần linh động Vấn đề lớn của các giải pháp này đến từ các lỗ hổng của một số phần của mạch mà không được tích hợp vào các khu tái cấu hình Trong [16], các tác giả xây dựng một hệ thống đa bộ xử lý có khả năng tái cấu hình chịu lỗi Một tác vụ có thể được tự động ánh xạ vào hệ thống mà không cần phải khởi động lại quá trình thiết

kế Tuy nhiên, nền tảng được triển khai vào FPGA nhiều và không thực hiện cấu hình lại linh động Trong hệ thống này, mỗi FPGA thực hiện một bộ xử lý Chi phí thiết bị

là một vấn đề lớn trong hệ thống này Thay đổi hành vi của các nút (giảm một lỗi hệ thống) thu được bằng cách cấu hình lại hoàn toàn FPGA thích hợp Chiến lược này cần đến thời gian dài để tái cấu hình Ngoài ra, hệ thống này đòi hỏi một bộ nhớ lớn để lưu trữ các đầy đủ các bitstream của tất cả các FPGA cho tất cả các nhiệm vụ cấu hình Nếu hai nhiệm vụ tĩnh ban đầu được thực hiện trên FPGA và hai nhiệm vụ không hoạt động tại cùng một thời gian, FPGA mục tiêu được lựa chọn phải đủ lớn

Kiến trúc RAMPSoC [19] thực hiện cấu hình lại linh động trong một hệ thống MPSoC Sự thích nghi của nền tảng đến môi trường xảy ra ở các cấp độ khác nhau Ở cấp độ bộ xử lý, các yếu tố phần mềm được sửa đổi bằng cách thay thế các chương trình trong bộ nhớ bộ xử lý Quá trình tái cấu hình linh động, được sử dụng cho máy gia tốc phần cứng để tối ưu hóa hiệu suất của ứng dụng Các thành phần phần cứng chuyên dụng, chẳng hạn như bộ xử lý, bộ nhớ chương trình và bộ điều khiển bộ nhớ

là được định nghĩa tại thời gian thiết kế Một sự thay đổi trong chức năng của RAMPSoC đạt được bằng cách tải lại các bộ vi xử lý và cấu hình lại chương trình linh động của máy gia tốc phần cứng Hệ thống này bao gồm một bộ xử lý tổng thể để cấu hình lại bộ vi xử lý khác Về khả năng chịu lỗi, nó là vấn đề lớn bởi vì nếu bộ xử lý này không thành công, toàn bộ hệ thống sẽ không hoạt động chính xác

Có nền tảng khác khai thác tự động cấu hình lại kiến trúc đa xử lý [4, 5] Tuy nhiên, các công trình này chỉ xem xét các bộ vi xử lý máy gia tốc, các thành phần phần cứng chuyên dụng của bộ xử lý không thể thay đổi tự động Nếu xảy ra lỗi trong các thành phần này, chúng không thể được gỡ bỏ bằng cách sử dụng cấu hình lại từng phần

Trong chương này sẽ giới thiệu khả năng chịu lỗi của chip hệ thống đa nhân động (FT-DyMPSoC) Hệ thống này bao gồm một số các bộ xử lý mà tất cả đều tự động cấu hình lại để:

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

Ngày đăng: 25/03/2015, 11:02

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
16. C. Haubelt, D. Koch, and J. Teich. (2004), "Basic OS Support for Distributed Reconfig-urable Hardware", In Computer Systems: Third and Fourth International Workshops, SAMOS 2003 and SAMOS 2004 Sách, tạp chí
Tiêu đề: Basic OS Support for Distributed Reconfig-urable Hardware
Tác giả: C. Haubelt, D. Koch, and J. Teich
Năm: 2004
17. C. Pilotto, J.R. Azambuja, and F.L. Kastensmidt. (2008), "Synchronizing Triple Modular Redundant Designs in Dynamic Partial Reconfiguration Applications", In The 21st Annual Symposium on Integrated Circuits and System Design, pp 199–204 Sách, tạp chí
Tiêu đề: Synchronizing Triple Modular Redundant Designs in Dynamic Partial Reconfiguration Applications
Tác giả: C. Pilotto, J.R. Azambuja, and F.L. Kastensmidt
Năm: 2008
18. Carl Carmichael, Michael Caffrey, Anthony Salazar. (2000), Correcting Single- Event Upsets Through Virtex Partial Configuration, Xilinx(XAPP216 v1.0), Los Alamos National Laboratories, http: //www.xilinx.com/support/documentation/application_notes/xapp216.pdf Sách, tạp chí
Tiêu đề: Correcting Single-Event Upsets Through Virtex Partial Configuration
Tác giả: Carl Carmichael, Michael Caffrey, Anthony Salazar
Năm: 2000
20. Dhiraj. K. Pradhan and Nitin. H. Vaidya. (1997), "Brief Contributions: Roll- Forward and Rollback Recovery: Performance-Reliability Trade-Off", IEEE Transactions on Computer, 46(3), pp 372–378 Sách, tạp chí
Tiêu đề: Brief Contributions: Roll-Forward and Rollback Recovery: Performance-Reliability Trade-Off
Tác giả: Dhiraj. K. Pradhan and Nitin. H. Vaidya
Năm: 1997
21. E. Salminen, A. Kulmala, and T. D. Hamalainen. (2008), Survey of network-on- chip pro-posals, OCP-IP White Paper, http: //www.ocpip.org/whitepapers.php Sách, tạp chí
Tiêu đề: Survey of network-on-chip pro-posals
Tác giả: E. Salminen, A. Kulmala, and T. D. Hamalainen
Năm: 2008
22. Exida. (2006), "IEC 61508 Overview Report", Technical report, URL http: //www.iec.ch/cgi-bin/procgi.pl/www/iecwww.p?wwwlang=e&wwwprog=seabox 1.p&progdb=db1&seabox1=61508 Sách, tạp chí
Tiêu đề: IEC 61508 Overview Report
Tác giả: Exida
Nhà XB: Technical report
Năm: 2006
23. F. Abate et al. (2009), "New Techniques for Improving the Performance of the Lockstep Ar-chitecture for SEEs Mitigation in FPGA Embedded Processors", IEEE Transactions on Nuclear Science, 56(4): 1992–2000 Sách, tạp chí
Tiêu đề: New Techniques for Improving the Performance of the Lockstep Architecture for SEEs Mitigation in FPGA Embedded Processors
Tác giả: F. Abate, et al
Nhà XB: IEEE Transactions on Nuclear Science
Năm: 2009
24. F. Lima, L. Carro, and R. Reis. (2003), "Designing Fault Tolerant Systems into SRAM-based FPGAs", In Design Automation Conference, pp 650–655. ACM New York, NY, USA Sách, tạp chí
Tiêu đề: Designing Fault Tolerant Systems into SRAM-based FPGAs
Tác giả: F. Lima, L. Carro, R. Reis
Nhà XB: ACM New York, NY, USA
Năm: 2003
25. G, Beltrame, et al. (2008), "High-Level Modeling and Exploration of Reconfigurable MP-SoCs". In AHS-2008, pp 330–337 Sách, tạp chí
Tiêu đề: High-Level Modeling and Exploration of Reconfigurable MP-SoCs
Tác giả: G, Beltrame, et al
Năm: 2008
26. G.E. Moore. (1975), "Progress in Digital Integrated Electronics", In Digest of the 1975 International Electron Devices Meeting, pp 11–13, New York. Bibliography 115 Sách, tạp chí
Tiêu đề: Progress in Digital Integrated Electronics
Tác giả: G.E. Moore
Năm: 1975
27. H. Castro, A.A. Coelho, and R.J. Silveira. (2008), "Fault-Tolerance in FPGA‘s through CRC Voting", In The 21st Annual Symposium on Integrated Circuits and System Design, pp 188–192. ACM New York, NY, USA Sách, tạp chí
Tiêu đề: Fault-Tolerance in FPGA‘s through CRC Voting
Tác giả: H. Castro, A.A. Coelho, and R.J. Silveira
Năm: 2008
28. H. Guzmán-Miranda, M.A. Aguirre, and J. Tombs. (2009), "Noninvasive Fault Classification, Robustness and Recovery Time Measurement in Microprocessor- Sách, tạp chí
Tiêu đề: Noninvasive Fault Classification, Robustness and Recovery Time Measurement in Microprocessor-
Tác giả: H. Guzmán-Miranda, M.A. Aguirre, J. Tombs
Năm: 2009
29. H. Zheng, L. Fan, and S. Yue. (2008), "FITVS: A FPGA-Based Emulation Tool For High-Efficiency Hardness Evaluation", In IEEE International Symposium on Parallel and Distributed Processing with Applications, pp 525–531. IEEE Computer Society Sách, tạp chí
Tiêu đề: FITVS: A FPGA-Based Emulation Tool For High-Efficiency Hardness Evaluation
Tác giả: H. Zheng, L. Fan, and S. Yue
Năm: 2008
31. H-M. Pham, S. Pillement, and D. Demigny. (2009), "A Fault-Tolerant Layer For Dynamically Reconfigurable Multi-Processor System-on-Chip", In International Conference on ReConFigurable Computing and FPGAs, pp 284–289, Cancun, Mexico Sách, tạp chí
Tiêu đề: A Fault-Tolerant Layer For Dynamically Reconfigurable Multi-Processor System-on-Chip
Tác giả: H-M. Pham, S. Pillement, D. Demigny
Nhà XB: International Conference on ReConFigurable Computing and FPGAs
Năm: 2009
34. K. Kyriakoulakos and D. Pnevmatikatos. (2009), "A Novel SRAM-Based FPGA Architecture for Efficient TMR-Processor Fault Tolerance Support", In International Conference on Field Programmable Logic and Applications Sách, tạp chí
Tiêu đề: A Novel SRAM-Based FPGA Architecture for Efficient TMR-Processor Fault Tolerance Support
Tác giả: K. Kyriakoulakos and D. Pnevmatikatos
Năm: 2009
35. LightWeight IP, LightWeight IP, http: //savannah.nongnu.org/projects/lwip Sách, tạp chí
Tiêu đề: LightWeight IP
38. M. Monchiero, et al. (2008), "A Modular Approach to Model Heterogeneous MPSoC at Cycle Level", In DSD’08, pp 158–164 Sách, tạp chí
Tiêu đề: A Modular Approach to Model Heterogeneous MPSoC at Cycle Level
Tác giả: M. Monchiero, et al
Nhà XB: DSD’08
Năm: 2008
39. M. Nicolaidis. (1999), "Time Redundancy Based Soft-Error Tolerance to Rescue Nanometer Technologies", In IEEE VLSI Test Symposium. IEEE Computer Society Washington, DC, USA Sách, tạp chí
Tiêu đề: Time Redundancy Based Soft-Error Tolerance to Rescue Nanometer Technologies
Tác giả: M. Nicolaidis
Nhà XB: IEEE Computer Society
Năm: 1999
40. NASA. Radiation Effects on Digital Systems, URL http://radhome.gsfc.nasa.gov/ top.htm Sách, tạp chí
Tiêu đề: Radiation Effects on Digital Systems
Tác giả: NASA
52. University of Erlangen-Nuremberg, Project ReCoNets, URL http: //www.reconets.de/ Link

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Các xu hương trong ngành công nghiệp ô tô (dữ liệu được cung cấp - 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
Hình 1.1 Các xu hương trong ngành công nghiệp ô tô (dữ liệu được cung cấp (Trang 11)
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 - 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
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 (Trang 19)
Hình 2.4: Phân loại SEE - 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
Hình 2.4 Phân loại SEE (Trang 22)
Hình 2.10: Phát hiện lỗi trong ECU của dự án SAPECS - 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
Hình 2.10 Phát hiện lỗi trong ECU của dự án SAPECS (Trang 27)
Hình 2.9: Nhân đôi và so sánh (DWC) - 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
Hình 2.9 Nhân đôi và so sánh (DWC) (Trang 27)
Hình 2.13: Phương án Xilinx TMR—XTMR - 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
Hình 2.13 Phương án Xilinx TMR—XTMR (Trang 29)
Hình 2.15: Mô hình của ReCoNets về Multi-FPGA - 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
Hình 2.15 Mô hình của ReCoNets về Multi-FPGA (Trang 30)
Hình 2.19: Nguyên lý lát gạch - Tiling - 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
Hình 2.19 Nguyên lý lát gạch - Tiling (Trang 35)
Hình 2.20: Quy trình thiết kế giảm SEU và SET - 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
Hình 2.20 Quy trình thiết kế giảm SEU và SET (Trang 37)
Hình 3.1: Cấu trúc FT-DyMPSoC - 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
Hình 3.1 Cấu trúc FT-DyMPSoC (Trang 42)
Hình 3.3: Giản đồ thời gian của FT-DyMPSoC - 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
Hình 3.3 Giản đồ thời gian của FT-DyMPSoC (Trang 44)
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 - 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
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 (Trang 47)
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 - 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
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 (Trang 53)
Hình 4.5: Cơ chế chịu lỗi cho mô hình đề xuất - 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
Hình 4.5 Cơ chế chịu lỗi cho mô hình đề xuất (Trang 71)
Hình 4.6: Thực hiện mô hình của bộ xử lý - 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
Hình 4.6 Thực hiện mô hình của bộ xử lý (Trang 72)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w