שיעור 5: לוגיקה צירופית וה-ALU
ראינו שערים לוגיים (Logic Gates) שמחשבים AND, OR ו-NOT, וראינו איך מספרים נכתבים בבינארי. עכשיו נחבר את שני הדברים: ניקח שערים פשוטים ונרכיב מהם מעגל שיודע באמת לחשב — לחבר שני מספרים. כל המעגלים בשיעור הזה הם 'לוגיקה צירופית' (Combinational Logic): הפלט תלוי אך ורק בכניסות הנוכחיות, בלי זיכרון ובלי
אם תיתן לכמה שערים לוגיים את אותם ביטים, הם תמיד יחזירו את אותה תשובה — אין להם זיכרון. בשיעור הזה נצרף שערים כאלה למכונת חיבור קטנה, ואז למחשבון הגדול של המעבד שנקרא ALU.
- לוגיקה צירופית
- מעגל שבו הפלט נקבע אך ורק לפי הכניסות ברגע הנוכחי, בלי זיכרון של מצב קודם. אותן כניסות תמיד נותנות אותו פלט.
- מחבר חצי
- מעגל שמחבר שני ביטים בודדים ומוציא שני ביטים: סכום (Sum) משער XOR, ונשא (Carry) משער AND.
- מחבר מלא
- מעגל שמחבר שלושה ביטים — שני ביטי קלט ונשא-נכנס (Carry-in) — ומוציא ביט סכום וביט נשא-יוצא.
- נשא
- הביט ש'נושאים' לעמודה הבאה כשסכום העמודה הנוכחית גדול מהמקסימום שספרה אחת יכולה להחזיק (בבינארי, כשהסכום הוא 2 או יותר).
- מחבר נשא-מתגלגל
- שרשרת של מחברים מלאים, אחד לכל עמודת ביט; הנשא-היוצא של כל שלב נכנס כנשא לשלב הבא ו'מתגלגל' לאורך השרשרת.
- מרבב
- בורר: מעגל עם כמה קווי כניסה ובוחר אחד מהם להעביר לפלט, לפי קווי בחירה (Select) שמתפקדים כמתג מכוון.
- יחידת חשבון ולוגיקה
- מעגל צירופי גדול בלב המעבד שמבצע פעולות חשבון ולוגיקה (חיבור, חיסור, AND, OR, השוואות). קוד פעולה (Opcode) בוחר איזו פעולה לבצע.
- קוד פעולה
- צירוף ביטים קצר שמסמן ל-ALU איזו פעולה לבצע על הכניסות — כמו מספר תפריט שבוחר את הפעולה הרצויה.
- דגלי מצב
- ביטים בודדים ש-ה-ALU מדליק כדי לדווח על התוצאה: דגל אפס (Zero) כשהתוצאה היא 0, דגל נשא (Carry) כשהיה נשא מחוץ לרוחב המספר.