תוכן הקורס ומטרתו
רישום לתלמידי תואר ראשון אפשרי רק באישור המרצה (לא דרך הבידינג).
דרישות קדם לקורס:
- מערכות הפעלה
- מבנה מחשבים
הקורס מכסה את חזית המחקר בתוכנה וחומרה של מערכות מרובות ליבות (multi-core). מטרתו העיקרית היא להכיר לסטודנטים את עולם המחקר בתחום.
הערה חשובה: הקורס מתייחס ל"חומרה" בהקשר של מיקרו-ארכיטקטורה, ולא ברמת המעגלים והמימוש החומרתי עצמו. ניתן לראות דוגמאות לחומר של מיקרו-ארכיטקטורה בספר A Primer on Memory Consistency and Cache Coherence.
רשימת נושאים:
* מודלים של אלגוריתמים מקביליים.
* פרוטוקולי Cache coherence
* ביצוע סריאליזציה בצורה יעילה (מנעולים וטכניקות מתקדמות)
* מודלי זכרון (של מעבדים ושפות תכנות)
- מעבדים: x86 (אינטל ו-AMD), וכן ARM ו-IBM POWER
- שפות תכנות: Java ו-++C/C
- מיקרו-ארכיטקטורה יעילה למימוש מודלי זכרון חזקים.
* התקפות Speculative execution והגנות חומרתיות מפניהן.
* Safe memory reclamation
* Transactional memory
* עצי חיפוש מקביליים.
* תזמון לפי עדיפות (priority-based scheduling) באלגוריתמים מקביליים.
- Algorithms and architectural support
* שיפור ביצועים של מבני נתונים מקביליים ע"י החלשת הבטחות הנכונות שלהם.
מטלות:
* פרויקט מחקר (אין בחינה)
* תרגילי בית
לסילבוס המפורט