
הזרקת תקלות היא טכניקה עוצמתית בהנדסת אמינות חומרה ותוכנה המשמשת להערכת החוזק, האבטחה והעמידות הכוללת של מערכות תחת תנאי תקלה או שגיאה. באמצעות החדרה מכוּונת של תקלות ניתן:
הזרקת תקלות נפוצה הן במחקר האקדמי והן בתעשייה לצורכי V&V (אימות ואישור) של מערכות דיגיטליות מורכבות.
הזרקת תקלות ברמת המיקרו-ארכיטקטורה כרוכה בסימולציה או בהחדרה של תקלות ישירות בתוך רכיבי המיקרו-ארכיטקטורה של מעבד, כגון:
שכבת הפשטה זו יושבת מתחת ל-ISA (סט הפקודות) ומעל ל-RTL/רמת השערים, ומאפשרת חקר שילוב של השפעות חומרה ומערכת.
למה להזריק ברמה זו?
Saca-FI הוא מסגרת הזרקת תקלות ברמת המיקרו-ארכיטקטורה שנועדה לנתח את אמינותם של מאיצי CNN המבוססים על מערכים סיסטוליים.
מערך סיסטולי הוא מבנה רשת־רשת של רכיבי עיבוד (PE) המזרימים נתונים בקצב קבוע, אידאלי לכפל מטריצות ב-CNN.
פגיעוּת:
ביט-פליפ באוגר מצבר במהלך כפל מטריצה עלול לגרום לשגיאות פלט בודדות או מרובות, שעשויות:
מתודולוגיה משלימה היא הזרקת תקלות דיפרנציאלית, כמוצג ב-מאמר IEEE:
יישומים:
μArchiFI משלב שיטות פורמליות בהזרקת תקלות:
יתרון:
יישומים באבטחת סייבר:
הזרקת תקלות היא אבן יסוד במחקר אבטחת חומרה ובמתקפות מעשיות.
דוגמאות:
כלים פופולריים חופשיים:
sudo apt-get update
sudo apt-get install -y build-essential python3 scons m4
git clone https://gem5.googlesource.com/public/gem5
cd gem5
scons build/X86/gem5.opt -j$(nproc)
class BitFlipFault:
def __init__(self, reg, bit_position, cycle):
self.reg = reg
self.bit = bit_position
self.cycle = cycle
def inject(self, reg_state):
reg_state[self.reg] ^= (1 << self.bit)
for cycle in range(simulation_cycles):
if cycle == fault.cycle:
fault.inject(register_file)
execute_cycle()
grep "ERROR" gem5_output.log | wc -l
error_count = 0
with open('gem5_output.log') as log:
for line in log:
if "ERROR" in line:
error_count += 1
print(f"Total errors detected: {error_count}")
import pandas as pd
df = pd.read_csv('results.csv')
total_runs = len(df)
sdcs = len(df[df['error_type'] == 'SDC'])
print(f"Silent Data Corruption (SDC) rate: {sdcs/total_runs:.2%}")
מסגרות כמו Saca-FI חיוניות להבטחת אמינות, בטיחות ואבטחה של מאיצי חומרה מודרניים, במיוחד בסביבות AI קריטיות. הבנת התאוריה והפרקטיקה של הזרקת תקלות ברמת המיקרו-ארכיטקטורה פותחת דלת לקריירה בתחום אבטחת חומרה, הנדסת אמינות ותכנון שבבים עתידיים.
Saca-FI: A microarchitecture-level fault injection framework for systolic array based CNN accelerators.
https://www.sciencedirect.com/science/article/pii/S0167739X2300184X
Differential Fault Injection on Microarchitectural Simulators.
http://ieeexplore.ieee.org/document/7314163/
μArchiFI: Formal modeling and verification strategies for microarchitecture-level fault injection.
https://cea.hal.science/cea-04215728v1/document
Gem5 Simulator
https://www.gem5.org/
Rowhammer Attacks
https://en.wikipedia.org/wiki/Row_hammer
מדריך זה נועד למקצוענים, סטודנטים וחוקרים המבקשים ללמוד על הזרקת תקלות מיקרו-ארכיטקטונית, עם דגש על מסגרות מעשיות, תאוריה וסקריפטים לניתוח מעמיק—הכנה לאתגרי האבטחה והאמינות של החומרה בדור הבא.
אם מצאתם את התוכן הזה בעל ערך, תארו לעצמכם מה תוכלו להשיג עם תוכנית ההכשרה המקיפה והאליטיסטית שלנו בת 47 שבועות. הצטרפו ליותר מ-1,200 סטודנטים ששינו את הקריירה שלהם בעזרת טכניקות יחידה 8200.