Trong mô hình này, bộ nhớ chia sẻ (SM) đƣợc thực hiện nhƣ là một mô-đun SystemC và lƣu giữ các bitstream bộ xử lý. Mã code SystemC cho bộ nhớ này đƣợc thể hiện trong hình 4.7 (b). Hai socket mục tiêu TLM đã đƣợc khai báo và chúng phải đƣợc đăng ký với giao diện đóng TLM. Bộ nhớ thực hiện các giao diện đóng b_transport.
Bộ điều khiển ngắt là một mô-đun SystemC mô hình hóa nhƣ một bộ đếm và nhạy cảm với xung nhịp. Khi giá trị của bộ đếm đến một số giá trị định trƣớc, một sự kiện (SystemC xây dựng) đƣợc thông báo kích hoạt dừng tất cả các tiến trình trong tất cả các mô-đun bộ xử lý thực hiện các trình xử lý ngắt tƣơng ứng của chúng. Bộ điều khiển cấu hình lại là một mô-đun SystemC và thực hiện cấu hình lại các bộ xử lý bị lỗi. Nó sử dụng tiến trình sc_method là nhạy cảm với các dữ liệu nhận đƣợc từ bộ vi xử lý để bắt đầu cấu hình lại.
4.5.2. Phân tích
Khái niệm xác thực của phƣơng pháp chịu lỗi đƣợc thực hiện bằng cách mô tả các lỗi trong các mô-đun bộ xử lý và sau đó kiểm tra, hệ thống phát hiện và sửa chữa lỗi này hay không. Loại lỗi là một sự thay đổi bên trong bitstream đại diện của các mô hình bộ xử lý liên quan. Phân tích để nhận thấy khoảng thời gian ngắt thay đổi và ảnh hƣởng đến hiệu suất và khả năng chỉnh sửa. Ba kịch bản ngắt đã đƣợc thực hiện ở 100ms, 150ms và 300ms. Hệ thống với thời gian ngắt 100ms đáng tin cậy hơn so với hai hệ thống khác bởi vì các lỗi trong hệ thống đƣợc phát hiện và sửa chữa sớm hơn so với hai hệ thống khác. Thời gian thực hiện của mô hình đã đƣợc đo 1000 lần liên tiếp và kết quả đã đạt đƣợc bằng cách lấy trung bình của các mẫu.
Trình xử lý ngắt mất 1595.6µs khi không có lỗi trong hệ thống. Trình xử lý ngắt mất 2.969,25µs khi có một lỗi trong hệ thống.
Khi lỗi xảy ra, trình xử lý ngắt mất nhiều thời gian hơn thời gian cần thiết để đồng bộ ma trận kết nối và nó cũng bao gồm cả thời gian cấu hình lại. Tăng tần số ngắt sẽ ảnh hƣởng tiêu cực đến hiệu suất hệ thống bởi vì trình xử lý ngắt sẽ đƣợc gọi thƣờng xuyên hơn và do đó thời gian để thực hiện các nhiệm vụ sẽ ít đi. Điều này sẽ còn tồi tệ hơn trong trƣờng hợp lỗi. Cần phải có một số đánh đổi trong việc lựa chọn các điểm ngắt, để xác suất điều chỉnh và hiệu suất không có ảnh hƣởng tiêu cực. Điều này phụ thuộc vào ứng dụng quan trọng chạy trên MPSoC.
CHƢƠNG 5: KẾT LUẬN VÀ QUAN ĐIỂM
5.1. Kết luận
Trong lĩnh vực điện tử khác nhau, nhu cầu tính toán ngày càng tăng của các sản phẩm đòi hỏi việc hội nhập với quy mô lớn về điều khiển điện tử. Các ngành công nghiệp ô tô đã phát triển từ điều khiển cơ khí tới điều khiển cơ điện tử gọi là X-by- Wire. Một chiếc xe hiện đại tích hợp rất nhiều dịch vụ bổ sung nhƣ: dẫn đƣờng, thông tin giải trí và hệ thống hỗ trợ lái xe nâng cao (ADAS) mà có thể phải cần sự hỗ trợ bởi hàng trăm ECU. Đặc biệt, điều khiển ô tô yêu cầu mức độ an toàn vài tin cậy cao của các trình điều khiển và ngƣời tham gia giao thông. Do đó, các sản phẩm điện tử cần phải đƣợc đóng gói bởi công nghệ chế tạo hoặc thực hiện bởi công nghệ thiết kế. Một mạch đƣợc đóng gói bằng công nghệ chế tạo thực sự rất tốn kém và quá trình nhƣ vậy chỉ thích hợp cho sản xuất số lƣợng lớn. Với trình sản xuất đó, giải pháp của mỗi công ty, là nhà sản xuất thiết bị gốc (OEM) của sản phẩm là không thể đƣợc thay thế bằng giải pháp của công ty khác.
Trong bối cảnh này, các FPGA thƣơng mại nổi lên nhƣ một ứng cử viên tốt để đƣợc sử dụng trong môi trƣờng nhiệm vụ quan trọng, bởi vì các tài nguyên có thể cấu hình lại mật độ cao, giá cả thấp hơn và các dịch vụ bảo trì thấp. Tuy nhiên, FPGA nhạy cảm với các phần tử điện tử, do đó một số phƣơng án chịu lỗi phải đƣợc áp dụng trong hệ thống. Đặc biệt, việc sử dụng các FPGA thƣơng mại dựa trên SRAM cho các nhiệm vụ quan trọng và từ xa là rất có giá trị do khả năng của chúng có thể tái lập trình lại nhiều lần khi cần thiết và trong một thời gian rất ngắn. FPGA dựa trên SRAM có thể nhanh chóng hoàn thiện để đƣa ra thị trƣờng, thời gian phát triển ngắn và khả năng duy trì cao của dịch vụ. Hơn nữa FPGA có thể tái cấu hình tự động cho phép thay đổi thiết kế trực tuyến và do đó giảm chi phí khi sửa lỗi hoặc cải thiện hiệu năng hệ thống sau khi triển khai. Sự gia tăng độ phức tạp của logic lập trình với nhiều hơn nữa các logic tái cấu hình nhúng vào trong một thiết bị FPGA có thể đáp ứng sự tăng trƣởng nhu cầu tính toán trong ngành điện tử ô tô. Các ràng buộc để đảm bảo an toàn cho con ngƣời đòi hỏi việc tích hợp của phƣơng án chịu lỗi trong các sản phẩm điện tử để thích ứng với môi trƣờng khắc nghiệt khác nhau.
Trong luận văn này, nghiên cứu các giải pháp kỹ thuật cao về khả năng chịu lỗi không chỉ nhắm mục tiêu trong lĩnh vực ô tô. Tổng hợp các giải pháp để thực hiện một MPSoC lỗi chịu hoàn toàn linh động có thể đối phó với lỗi tạm thời và thƣờng trú trong FPGA. Một số phƣơng án giảm lỗi đƣợc giới thiệu và thực hiện trong hệ thống FT-DyMPSoC: các thuật toán ma trận kết nối để phát hiện các lỗi, cấu hình lại từng phần và kỹ thuật lát gạch để sửa lỗi, và rollback kết hợp với checkpointing để phục hồi bối cảnh phần mềm hệ thống sau khi xảy ra lỗi.
Các phƣơng án và thay đổi quy trình thiết kế tiêu chuẩn để tạo điều kiện và tốc độ xây dựng FT-DyMPSoC cũng đƣợc giới thiệu. Khái niệm về socket và wrapper
đƣợc thêm vào để dễ dàng sửa đổi thiết kế trên thiết kế ban đầu. Sự can thiệp của nhà thiết kế đƣợc rút ngắn bởi vì sự phức tạp hệ thống đã đƣợc quản lý bởi các công cụ CAD. Sửa đổi quy trình thiết kế không chỉ giới hạn để xây dựng lên FT-DyMPSoC, nó cũng cho phép xây dựng bất kỳ hệ thống mô-đun phức tạp nào cần thay đổi nhỏ so với thiết kế ban đầu.
Mô hình phân tích đƣợc giới thiệu để đánh giá cân nhắc lựa chọn của các chƣơng trình chịu lỗi. Sử dụng mô hình này, đánh giá hệ thống FT-DyMPSoC so với kỹ thuật làm sạch. Việc giảm hiệu suất một chút có thể đạt đƣợc thành công đáng kể về độ tin cậy. Mô hình này có áp dụng cho bất kỳ chƣơng trình chịu lỗi nào bằng cách thêm các thông số thích hợp để mô hình hóa.
Quy mô của các mẫu thiết kế đang ngày càng tăng, và nó mất nhiều thời gian hơn cho toàn bộ giai đoạn thiết kế. Thông thƣờng, xác minh kiểm tra chiếm một phần lớn trong tổng thời gian thiết kế. Một phƣơng pháp để giảm thời gian thiết kế và kiểm tra cho MPSoC là sử dụng mô phỏng cấp cao với các ngôn ngữ mô hình hóa nhƣ SystemC, OpenVera,.. Mô hình này cho phép mô phỏng , kiểm tra cấp cao cung cấp cho ngƣời thiết kế cơ hội để thực hiện nhanh hơn, các mô hình mô phỏng cấp cao, và so sánh với các mô hình phần cứng chi tiết. Do đó, mô hình mô phỏng này, đầu tiên cho phép nhanh chóng xác minh tính hiệu quả của các phƣơng án chịu lỗi dung áp dụng trong hệ thống; thứ hai, giúp ứng dụng ngƣời dùng thiết kế và gỡ lỗi nhanh chóng.
5.2. Quan điểm
Trong luận văn, các phƣơng án đang có đƣợc tổng hợp và giới thiệu. Có nhiều cơ sở để thực hiện các công trình trong tƣơng lai nhằm tăng cƣờng các phƣơng án tổng hợp này.
Mô hình phân tích đƣợc giới thiệu cung cấp một phƣơng pháp đánh giá nhanh chóng để kiểm tra xác minh cho các phƣơng án giảm lỗi. Tuy nhiên, tính chính xác của mô hình này vẫn cần phải tiếp tục đƣợc xác minh và cần phải có kết quả khác nhau từ các chiến dịch tiêm lỗi khác nhau về các phƣơng án giảm lỗi khác.
Xuyên suốt luận văn này, tập trung quan tâm đến các ảnh hƣởng lỗi của các mạch và quan tâm đến làm thế nào để khắc phục những ảnh hƣởng này. Tuy nhiên, có những lỗi khác (không phải lỗi mạch) có thể là quan trọng trong ứng dụng nhiệm vụ quan trọng dẫn tới hệ thống thất bại. Kiểu lỗi này không phải đƣợc tạo ra trong quá trình thiết kế, không phải bởi một khiếm khuyết mạch. Một lỗi trong lập trình bộ vi xử lý, một tín hiệu bị mất trong khi lập trình khối phần cứng trong VHDL, tất cả các loại lỗi có tính hệ thống có thể gây ra hậu quả nghiêm trọng về ngƣời và môi trƣờng. Loại thất bại này không thể đƣợc sửa chữa bằng cách sử dụng phƣơng án dƣ thừa bình thƣờng, vì lỗi xuất hiện trong tất cả các bản sao dự phòng. Đây là vấn đề về an toàn chức năng [22] đòi hỏi sự đa dạng thiết kế để tránh thất bại có hệ thống và quản lý các lỗi phần cứng ngẫu nhiên. Một chức năng nên đƣợc thực hiện theo những cách khác nhau cùng
một lúc, và kết quả đƣợc so sánh để lựa chọn đúng. Ví dụ, thay vì thực hiện một chức năng trong xử lý lõi mềm, chúng ta nên thực hiện chức năng này trên cả bộ xử lý lõi mềm, trên bộ xử lý lõi cứng và cũng trên một bộ xử lý DSP. Một bộ xác định chính sẽ lựa chọn kết quả chính xác từ ba kết quả đầu ra. Cần thực hiện ba cách khác nhau cho cùng một chức năng của chƣơng trình để có thể tránh lỗi hệ. Nền tảng đa dạng này cũng có thể đối phó với sự thất bại phần cứng tạm thời.
Một thiết kế FPGA mới với nguồn tài nguyên tự động cấu hình lại, với một ma trận FPGA, chúng ta có thể thấy một bộ xử lý DSP, một bộ xử lý lõi cứng nhƣ PowerPC hoặc ARM. Trong ma trận thiết bị mới này, tất cả các vấn đề trong luận văn có thể đƣợc nhanh chóng đƣợc triển khai. Hơn nữa, nhờ vào sự đa dạng các thành phần, lỗi sẽ xuất hiện chỉ trong một mô-đun vì giai đoạn phát triển của mỗi mô-đun đƣợc hoàn toàn tách rời.
Nền tảng phần cứng đƣợc phát triển nhanh chóng từ một bộ xử lý duy nhất thành hệ thống đa bộ xử lý để đáp ứng yêu cầu của khách hàng. Xu hƣớng này bắt buộc các chức năng cụ thể của ngƣời dùng cuối phải đƣợc tích hợp vào hệ thống nhƣ phần mềm hơn là phần cứng. Từ đó cho thấy các chức năng phần mềm thêm vào tùy biến giúp thị trƣờng phần mềm nhúng trong lĩnh vực ô tô, cũng nhƣ các lĩnh vực khác tăng trƣởng theo cấp số nhân. Do đó, nền tảng phần mềm nhất định phải phù hợp với tiêu chuẩn công nghiệp để giúp làm giảm bớt sự hội nhập của nền tảng phần cứng mới. Autosar [13] đã đƣợc tạo ra để phát triển một chuẩn công nghiệp mở cho các kiến trúc phần mềm ô tô. Autosar cung cấp một cơ sở hạ tầng phần mềm phổ biến dựa trên các giao thức tiêu chuẩn hóa cho các tầng khác nhau để đạt đƣợc các mục tiêu kỹ thuật của mô đun về khả năng mở rộng, chuyển giao, và có thể dùng lại chức năng,. Trong Autosar, phát triển phần mềm đƣợc liên kết với kiến trúc phần cứng (ECU) để cho phép tái sử dụng và tái lập các chức năng của xe ô tô. Do đó, có ràng buộc trong việc thiết kế một hệ thống điện tử ô tô là phải tuân thủ với tiêu chuẩn Autosar.
TÀI LIỆU THAM KHẢO
Tiếng Anh
1. A. Avizienis, J.C. Laprie, B. Randell, and C. Landwehr. (2004), "Basic Concepts and Taxonomy Of Dependable and Secure Computing", IEEE Transactions on
Dependable and Secure Computing, 1(1): 11–33, ISSN 1545-5971.
2. A. Grama. (2003), Introduction to Parallel Computing, Addison-Wesley.
3. A. Kanamaru, H. Kawai, Y. Yamaguchi, and M. Yasunaga. (2009), "Tile-Based Fault Tol-erant Approach Using Partial Reconfiguration", In Proc. Int. Workshop
on Recon-figurable Computing: Architectures, Tools and Applications, LNCS,
volume 5453, pp 293–299.
4. A. Klimm, L. Braun, and J. Becker. (2008), "An Adaptive and Scalable Multiprocessor System for Xilinx FPGAs Using Minimal Sized Processor Cores",
In IEEE International Symposium on Parallel and Distributed Processing.
5. A. Montone, V. Rana, M.D. Santambrogio, D. Sciuto, and P. di Milano. (2008), "HARPE: A Harvard-based Processing Element Tailored for Partial Dynamic Reconfigurable Architectures", In IEEE International Symposium on Parallel and
Distributed Processing.
6. A.A.M. Bsoul, N. Manjikian, and L. Shang. (2010), "Reliability-and Process Variation-Aware Placement for FPGAs", In Design, Automation and Test in
Europe.
7. Actel Inc. (2010), RTAX-S/SL and RTAX-DSP Radiation-Tolerant FPGAs.
8. AD Houghton. (1997), The Engineer’s Error Coding Handbook, Chapman & Hall. 9. Altera Corporation. (2002), Excalibur Devices Hardware Reference Manual,
(V3.1).
10. Altera Corporation. (2005), Nios II Processor Reference Handbook.
11. Atmel. (2007), Secured Architecture and Protocols for Enhanced Car Safety,
(SAPECS).
12. Austin Lesea. (2009), Continuing Experiments of Atmospheric Neutron Effects on
Deep Submicron Integrated Circuits, (WP286), Technical report, Xilinx Inc, URL
www.xilinx.com/support/documentation/white_papers/wp286.pdf.
13. AUTOSAR GbR. "AUTomotive Open System Architecture", URL http: //www. autosar.org/.
14. B. Dutton and C. Stroud. (2009), "Single Event Upset Detection and Correction in Virtex-4 and Virtex-5 FPGAs", In Int. Conf. on Computers and Their
Applications, pp 57–62.
15. C. Amicucci, et al. (2006), "SyCERS: A SystemC Design Exploration Framework for SoC Reconfigurable Architecture", In ERSA’06, pp 63–69.
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.
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.
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.
19. D. Gohringer, M. Hubner, T. Perschke, and J Becker. (2008), "New Dimensions for Multi-processor Architectures: On Demand Heterogeneity, Infrastructure and Performance Through Reconfigurability-The RAMPSoC Approach", In
International Conference on Field Programmable Logic and Applications, pp
495–498.
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.
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.
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.
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.
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.
25. G, Beltrame, et al. (2008), "High-Level Modeling and Exploration of Reconfigurable MP-SoCs". In AHS-2008, pp 330–337.
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.
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.
28. H. Guzmán-Miranda, M.A. Aguirre, and J. Tombs. (2009), "Noninvasive Fault Classification, Robustness and Recovery Time Measurement in Microprocessor-
Type Architectures Subjected to Radiation-Induced Errors", IEEE Transactions on
Instrumentation and Measurement, 58(5).
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.
30. H.C. Hsieh, W. Carter, J. Ja, E. Cheung, S. Schreifels, C. Erickson, P. Freidin, L. Tinkey, and R. Kanazawa. (1990), "Third-generation Architecture Boosts Speed