Kỹ thuật làm sạch rõ ràng đòi hỏi tài nguyên phần cứng ít hơn vì kỹ thuật này đòi hỏi phải chỉ có một bộ điều khiển nhỏ thực hiện các nhiệm vụ chi tiết.
Sự kiện FT-DyMPSoC sử dụng cơ chế khóa bƣớc với tài nguyên nhân bản cho các bộ vi xử lý, khu vực sử dụng cho bộ vi xử lý không đƣợc nhân đôi bởi vì tỷ lệ sử dụng cao hơn trong PRR. So với các đề nghị trong [45] trong đó bộ vi xử lý đƣợc nhân ba trong bối cảnh MPSoC, phần cứng quá lớn có thể là một nút cổ chai cao. Ngoài ra, các liên kết truyền thông giữa các bộ vi xử lý không đƣợc nhân đôi nhờ vào các thuật toán ma trận kết nối. Vì vậy, các tài nguyên phần cứng cần thiết cho FT-DyMPSoC là 1,6 lần so với một hệ thống cơ bản.
Các kỹ thuật phần cứng dự phòng đòi hỏi tài nguyên phần cứng đáng kể vì kỹ thuật tự nhân ba hoặc nhân đôi cùng với bộ xác định hoặc bộ so sánh.
Trong góc nhìn về khả năng bao phủ lỗi, các kỹ thuật dự phòng cung cấp các kết quả tốt nhất khi lỗi đƣợc phát hiện và sửa chữa ngay lập tức. FT-DyMPSoC cung cấp một phạm vi bao phủ lỗi gần 100% tùy thuộc vào tốc độ đồng bộ hóa. Dù sao FT- DyMPSoC cung cấp khẳ năng bao phủ lỗi tốt hơn so với kỹ thuật làm sạch, khi tốc độ đồng bộ hóa là luôn luôn cao hơn tỷ lệ làm sạch.
Thật khó để xác định tính liên tục của kỹ thuật làm sạch. Phƣơng án TMR cung cấp tính liên tục tốt nhất bởi vì nhiệm vụ có thể tiếp tục thực hiện mặc dù xảy ra lỗi.
Trong khi đó, phƣơng án DWC cung cấp khẳ năng về tính liên tục thấp khi mà cả hai mô-đun khi nhân bản cần phải đƣợc cập nhật sửa lỗi. FT-DyMPSoC cung cấp tính liên tục tốt với chiến lƣợc rollback đƣợc áp dụng trong hệ thống.
Và cuối cùng, trong số những kỹ thuật này, FT-DyMPSoC là hệ thống duy nhất có thể đối phó với lỗi thƣờng trú nhờ thực hiện kỹ thuật ‗lát gạch‘ (trang 33).
Hệ thống Re2DA: Trong phần thực hiện này, có 4 MicroBlazes và một DRAFT
hoạt động ở 100 MHz, trong khi DDR2 hoạt động ở 200 MHz. PRR chứa DRAFT dùng 1920 LUT cần 53 ms để cấu hình lại trong khi PRR cho mỗi bộ vi xử lý tiêu thụ 2.240 LUT (thời gian cấu hình lại là 59 ms). Trong điều kiện tốt tất cả 4 bộ vi xử lý và DRAFT đúng chức năng, quá trình đồng bộ hóa mất 1µs để kết thúc. Trong trƣờng hợp lỗi xảy ra hoặc trong DRAFT hoặc trong một bộ xử lý, nhiệm vụ bộ xử lý gián đoạn là dƣới 60 ms là chấp nhận đƣợc cho các kịch bản ứng dụng.
Nền tảng đa FPGA: Một nền tảng bao gồm ba Virtex-5 XC5VSXT50T sử dụng
giao tiếp ethernet đƣợc thực hiện. Mỗi FPGA có chứa một hệ thống FT-DyMPSoC 4 MicroBlazes. Các MicroBlazes chạy ở 100 MHz. Các truyền thông nội FPGA đƣợc thực hiện thông qua giao thức TCP/IP của thƣ viện lwIP đƣợc điều khiển bởi một MicroBlaze trong mỗi FPGA. Thƣ viện lwIP có thể hoạt động ở hai chế độ: chế độ RAW và chế độ Socket.
API RAW cung cấp một giao diện kiểu gọi lại (callback) cho ứng dụng. Các ứng dụng sử dụng RAW API đang ký các hàm callback để đƣợc gọi là sự kiện quan trọng nhƣ chấp nhận, đọc hoặc viết. Chế độ Socket cung cấp một API đơn giản, các khối trên socket lần đọc và viết cho đến khi chúng hoàn thành. Tuy nhiên, API Socket yêu cầu nhiều mảnh để đạt đƣợc điều này và API này là quá tải cho tất cả các hoạt động, do đó, nó rất chậm.
Mặc dù các API RAW là phức tạp hơn so với các API SOCKET, nó cung cấp thông lƣợng cao hơn nhiều bởi vì nó không dễ bị quá tải.
Bảng 3.4: Đo lường hiệu suất Ethernet
Để giúp khám phá nền tảng, đo lƣờng hiệu suất đƣợc áp dụng trong các nền tảng đa FPGA trong cả hai chế độ (Table3.4). Nhận và phát bằng cách sử dụng chế độ RAW cao hơn nhiều so với chế độ Socket. Kích thƣớc bitstream của MicroBlaze 1 là khoảng 170 KBytes mà cần (170Kbytes * 8 bit) / (104Mbps10 ^ 3) = 13 ms để chuyển từ một FPGA tới một FPGA khác bằng cách sử dụng chế độ RAW.
Với 32 KBytes mã code phần mềm của một MicroBlaze tƣơng ứng với một bitstream 5 Kbit. Cấu hình lại bằng cách sử dụng bitstream này sẽ chỉ thay đổi các phần mềm chạy trên MicroBlaze mà không ảnh hƣởng đến phần cứng. Bối cảnh phần
mềm của MicroBlaze 1 có kích thƣớc của 1 Kbits. Vì vậy, nếu chúng ta muốn tiếp tục nhiệm vụ của MicroBlaze từ một FPGA trên một FPGA khác, chỉ có bitstream phần mềm (5 Kbits) và bối cảnh phần mềm (1 Kbits) cần phải đƣợc chuyển giao thông qua mạng ethernet mà đòi hỏi chỉ có 58µs.
3.7. Kết luận
Trong chƣơng này, trình bày một hệ thống đa xử lý linh động hoàn toàn trong bối cảnh của kiến trúc lại cấu hình tự động có thể đối phó với những lỗi có thể trong kiến trúc cấu hình lại với chi phí về thời gian thấp.
Một phiên bản FT-DyMPSoC sử dụng DRAFT - Re2DA cũng đƣợc trình bày trong chƣơng này. Không yêu cầu thêm tài nguyên phần cứng để duy trì các kỹ thuật chịu lỗi trong hệ thống. Tất cả các tài nguyên phần cứng cần thiết đƣợc sử dụng để xây dựng hệ thống linh động cơ bản. Các chƣơng trình chịu lỗi dẫn đến một chi phí phần mềm nhỏ có tác động nhỏ trong các chức năng hệ thống. Sử dụng DRAFT nhƣ là một kết nối tập trung đảm bảo khả năng truyền thông hệ thống, đồng thời góp phần tích cực vào hệ thống các dịch vụ liên tục với tổng phí thấp và cung cấp sự linh hoạt đáng kể và khả năng mở rộng cho hệ thống lớn hơn trong tƣơng lai.
Nền tảng đa FPGA cung cấp một hiệu suất cao, giải pháp linh hoạt. Chiến lƣợc chịu lỗi đảm bảo hoạt động chính xác của toàn bộ nền tảng mặc dù xảy ra lỗi. Hệ thống khai thác các cấu hình lại linh động có thể cải tiến hệ thống ReCoNets: chi phí phần cứng thấp hơn, linh hoạt hơn, chức năng ngắt ngắn hơn, liên tục dịch vụ tốt hơn.
Tất cả các mô hình hệ thống đề xuất có thể tự động thích ứng với ràng buộc về khả năng chịu lỗi khác nhau: tỷ lệ lỗi khác nhau, yêu cầu độ tin cậy, hoặc các ứng dụng ràng buộc ngƣời sử dụng bằng cách điều chỉnh khoảng thời gian gián khi đang chạy.
CHƢƠNG 4: CÁC MÔ HÌNH PHÂN TÍCH
4.1. Tóm tắt
Việc xây dựng một chip hệ thống với đa bộ xử lý linh động (DyMPSoC), sử dụng hiệp định thƣơng mại COTS (kế thừa) cùng với kiến trúc tái cấu hình từng phần là một giải pháp khả thi để đáp ứng các nhu cầu về sức mạnh tính toán với ràng buộc chi phí không có tính kỹ thuật (thấp). Tuy nhiên, độ nhạy cao của các FPGA thƣơng mại với các lỗi về điện tử thúc giục các nhà thiết kế hệ thống phải bao gồm phƣơng án chịu lỗi để ngăn chặn các kiến trúc của chúng có lỗi trong thời gian sống của sản phẩm. Phƣơng án bổ sung này có thể làm giảm sức mạnh tính toán hệ thống. Vì vậy, sự cần thiết của một mô hình phân tích để phân tích hiệu quả của phƣơng án giảm thiểu lỗi đến hiệu suất hệ thống là một trong những yêu cầu cấp bách khi xây dựng nhƣ hệ thống chịu lỗi. Chƣơng này trình bày một cách tiếp cận phân tích cho chip hệ thống đa nhân linh động chịu lỗi (FT-DyMPSoC) có thể chống lại SEU - lỗi chiếm ƣu thế trong FPGA. Các mô hình phân tích đƣợc giới thiệu để đánh giá hiệu suất, độ tin cậy và tính thƣơng mại một hệ thống MPSoC chịu lỗi. Ngoài ra, một vài so sánh với các giải pháp chịu lỗi cổ điển để thấy đƣợc lợi thế của hệ thống này.
4.2. Giới thiệu
Việc tăng về hiệu suất và khả năng mở rộng cho ngƣời thiết kế theo hƣớng sử dụng các kiến trúc thƣơng mại có thể cấu hình lại nhƣ FPGA thƣơng mại sẵn có. Hơn nữa, áp dụng các kiến trúc tự động cấu hình lại có thể cung cấp một mức độ cao hơn về khả năng linh hoạt, mở rộng, và đồng thời duy trì sức mạnh tính toán.
Tuy nhiên, việc nhúng sâu của hệ thống trên một chip, làm nghiêm trọng thêm vấn đề độ tin cậy, trong đó một sự kiện nhiễu loạn (SEU) là một trong những quan tâm lớn. Một SEU diễn ra khi các bức xạ gây ra một bit lật trong một số chốt (1 -> 0 hoặc ngƣợc lại). Trong các FPGA thƣơng mại, chẳng hạn nhƣ dòng Virtex 5, nguồn lỗi chủ yếu là SEU trong bộ nhớ cấu hình [76] mà đảo ngƣợc một bit trong bộ nhớ cấu hình, thay đổi không mong muốn này có thể gây ra rối loạn chức năng của thiết kế mục tiêu. Những nhạy cảm đó làm chậm việc sử dụng chúng trong tiêu dùng và sản phẩm công nghiệp (ô tô, hàng không vũ trụ,...) trừ khi chúng đƣợc áp dụng kỹ thuật chịu lỗi để giảm thiểu những tác động lỗi. Có nhiều giải pháp khác nhau để giảm thiểu, mặt nạ, phát hiện và sửa chữa lỗi nhƣ phần cứng dự phòng (Sao chép với so sánh, dự phòng ba mô-đun) [34], dự phòng thời gian hoặc một số kỹ thuật tác động tới bộ nhớ cấu hình nhƣ readback [68], scrubbing or readback và sự kết hợp với tái cấu hình từng phần [69].
Tuy nhiên, khả năng chịu lỗi, một mặt có thể làm tăng độ tin cậy của hệ thống, mặt khác có thể ảnh hƣởng đến toàn bộ hệ thống trong yếu tố chi phí về phần cứng, thời gian và phần mềm. Chi phí phần cứng có thể hạn chế các nguồn lực sẵn có để
thiết kế các ứng dụng ngƣời dùng. Bên cạnh đó, chi phí thời gian giới hạn thời gian thực hiện nhiệm vụ ứng dụng do thực hiện các chƣơng trình chịu lỗi, do đó ảnh hƣởng đến hiệu suất toàn bộ hệ thống.
Khi thiết kế một hệ thống chịu lỗi, việc cân nhắc giữa hiệu suất và độ tin cậy trở thành một yếu tố đáng kể. Vì vậy, sự cần thiết của một mô hình phân tích để đánh giá hiệu quả của chƣơng trình chịu lỗi về việc thực hiện hệ thống trở nên quan trọng.
Chƣơng này trình bày phƣơng pháp tiếp cận phân tích để đánh giá hiệu năng hệ thống và thuộc tính đáng tin cậy (xác suất điều chỉnh) của hệ thống FT-DyMPSoC có thể đối phó với SEU bằng cách khai thác khả năng tái cấu hình từng phần linh động. Mô hình phân tích cũng đƣợc dùng để so sánh với các giải pháp làm sạch cổ điển.
4.3. Mô hình phân tích
4.3.1. Các định nghĩa chung
Định nghĩa 1. Khả năng sẵn sàng [1] của hệ thống đƣợc định nghĩa là:
Khả năng sẵn sàng Sys_Avail là tỷ lệ phần trăm thời gian thực thi ứng dụng ngƣời dùng của hệ thống trên tổng thời gian. , và là những thành phần quá trình tƣơng ứng đại diện cho tỷ lệ phần trăm của thời gian đã đƣợc dành cho việc phát hiện, sửa chữa và phục hồi từ các lỗi. Trong một hệ thống không chịu lỗi, khả năng sẵn sàng là bằng 1 vì tất cả thời gian đƣợc dành riêng để thực hiện nhiệm vụ ứng dụng ngƣời dùng ( , và là bằng 0). Bên cạnh đó, một yếu tố tƣơng quan ( ) giữa các thành phần xử lý. Tƣơng quan là do thực tế rằng các quá trình phát hiện, sửa chữa hoặc phục hồi trong một mô-đun có thể ảnh hƣởng đến các mô-đun khác hoạt động trong hệ thống, do đó có thể ảnh hƣởng đến sự sẵn có hệ thống tổng thể.
Định nghĩa 2. Sức mạnh tính toán hệ thống đƣợc định nghĩa là:
là tổng số sức mạnh tính toán danh nghĩa rằng hệ thống có thể cung cấp.
Trong phƣơng pháp tiếp cận đầu tiên, chúng ta xem xét trong một hệ thống MPSoC bao gồm NUM bộ xử lý, sức mạch tính toán hệ thống là tổng của tất cả các sức mạch tính toán của các bộ xử lý:
Trƣờng hợp là xác suất sẵn có của bộ xử lý thứ i và là sức mạnh tính toán danh nghĩa của các bộ xử lý thứ i, đơn vị là MIPS/MOPS (Mega Instructions/ Operations Per Second –triệu chỉ lệnh/hoạt động trong một giây).
Định nghĩa 3. Trong hệ thống MPSoC, xác suất sửa chữa là tích của tất cả các
xác suất sửa chữa bộ xử lý:
Xác suất sửa chữa các bộ vi xử lý đƣợc tính toán dựa trên độ chính xác khả năng chịu lỗi của bộ vi xử lý:
, là độ chính xác về tính chịu lỗi bên trong bộ vi xử lý thứ i mà đại diện cho xác suất mà hệ thống có thể bỏ lỡ một sự xuất hiện các lỗi trong bộ xử lý này. Độ chính xác này phụ thuộc vào xác suất lỗi trong bộ xử lý có liên quan và khoảng thời gian phát hiện.
Định nghĩa 4. Xác suất lỗi của một mô-đun đƣợc xác định bởi số lƣợng khả năng
có thể xuất hiện lỗi trong mô-đun. Vì vậy, xác suất lỗi trong bộ xử lý đƣợc định nghĩa là:
FR là tỉ lệ lỗi danh nghĩa trong thời gian trên mỗi Megabit của số bit cấu hình. Tỷ lệ lỗi là phụ thuộc vào thiết bị và môi trƣờng.
Xác suất lỗi của một bộ xử lý đƣợc xác định bởi xác suất xuất hiện lỗi cho mỗi một đơn vị diện tích trong một đơn vị thời gian, nhân bởi bit nhạy cảm của bộ vi xử lý.
Định nghĩa 5. là kích thƣớc đại diện của bộ vi xử lý i. Nó là tất cả các bit mà có bất kỳ thay đổi sẽ dẫn đến một bộ xử lý i bị trục trặc.
Thực tế việc thiết kế tái cấu hình linh động đi kèm với khai báo của khu vực có thể cấu hình lại từng phần (PRR – Partially Reconfigurable Region) [60]. Trong một khu vực linh động (PRR), đặt toàn bộ bộ xử lý bên trong, mà không chiếm tất cả các nguồn tài nguyên dự trữ. Kết quả là, các bit nhạy cảm của một bộ xử lý linh động đƣợc xác định bằng tỷ lệ chiếm chỗ (% chiếm chỗ) của bộ xử lý bên trong khu vực đƣợc khai báo, nhƣ sau:
Kích thƣớc bitstream của bộ xử lý linh động, đƣợc xác định bởi kích thƣớc chiếm chỗ bởi PRR tại thời gian thiết kế.
là tần số mà toàn bộ hệ thống treo để kiểm tra trạng thái của tất cả các thành phần. Sau khi quá trình này, quyết định cấp hệ thống sẽ phục thuộc theo lỗi để duy trì các chức năng.
là thời gian của một quá trình phát hiện cấp hệ thống. là thời gian để sửa chữa một bộ xử lý.
và là thời gian để lƣu và khôi phục lại bối cảnh của một mô-đun, hai thông số phục hồi phụ thuộc vào ứng dụng.
Định nghĩa 7. Ni là số lƣợng của các quá trình phát hiện đã diễn ra khi xảy ra lỗi
trong bộ xử lý i. Ni phụ thuộc đáng kể trên xác suất lỗi trong bộ xử lý i và khoảng thời gian phát hiện .
Những định nghĩa trên đây sẽ đƣợc áp dụng cho hệ thống FT-DyMPSoC bằng cách sử dụng FPGA theo COTS. Tuy nhiên, những định nghĩa có tính ứng dụng chung mà không chỉ giới hạn cho FPGA.
4.3.2. Mô hình phân tích cho FT-DyMPSoC
Đánh giá ảnh hƣởng về phƣơng án chịu lỗi tới hiệu suất hệ thống và khả năng sửa chữa trong hệ thống MPSoC bao gồm NUM bộ vi xử lý. Sơ đồ hệ thống thời gian đƣợc hiển thị trong hình 3.3.
: đánh dấu gián đoạn, đó là khoảng thời gian phát hiện , : đồng bộ hóa thời gian, thời gian phát hiện ,
: lần cấu hình lại, tƣơng ứng với thời gian chỉnh sửa , , : bối cảnh lƣu trữ và khôi phục lại thời gian.
Xác suất sẵn có bộ xử lý thứ i đƣợc tính nhƣ sau:
Trong công thức 4.7, trƣờng hợp (I) đại diện cho khả năng sẵn có của bộ vi xử lý khi có lỗi. Quá trình này, trong đó có giai đoạn phát hiện và tiết kiệm bối cảnh, diễn ra (Ni - 1) lần. Ni là số lƣợng có thể xảy ra của các quá trình đồng bộ hóa khi xảy ra lỗi (một quá trình cấu hình lại), tính theo khoảng thời gian có thể xảy ra rằng một lỗi xuất