בתכנון מעבדים, מיקרוקוד (באנגלית: Microcode) הוא קבוצת פקודות פשוטות ברמת החומרה במעבדי מחשבים ויחידות ממוחשבות אחרות, המיישמות את פקודות שפת המכונה. המיקרוקוד משמש כשכבת ביניים בין חומרת יחידת העיבוד המרכזית (CPU) לבין ארכיטקטורת ערכת הפקודות הגלויה למתכנת, המכונה גם קוד מכונה.[1] מספר פקודות המיקרוקוד הוא קטן והפעולות שהן יכולות לבצע הן פשוטות מאוד. מיקרוקוד משמש במעבדים לשימוש כללי של מחשבים שולחניים עכשוויים, ותפקידו הוא גם גיבוי בתרחישים בהם יחידת הבקרה המהירה יותר של החומרה אינה מסוגלת לנהל את המערכת כמו שצריך.[2]
מיקרוקוד, הממוקם בזיכרון מיוחד ומהיר, מתרגם פקודות מכונה, נתוני מכונה או קלט אחר לרצפים של פעולות מפורטות ברמת המעגל. המיקרוקוד פועל כגשר בין פקודות המכונה לבין האלקטרוניקה הבסיסית של המעבד, ובכך מאפשר גמישות רבה בתכנון ובשינוי פקודות במהלך הנדסת המעבד. יתר על כן, המיקרוקוד מקל על בניית פקודות מורכבות ומרובות שלבים, ובו זמנית מפחית את מורכבות מעגלי המעבד. קידוד בשפת מיקרוקוד נעשה לרוב על ידי מהנדס בזמן בניית המעבד. הקידוד נקרא מיקרו תכנות (microprogramming) ותוצר הקידוד נקרא מיקרו תוכנית (microprogram).
באמצעות מיקרו תכנות נרחב, מיקרו-ארכיטקטורות (Microarchitecture) פשוטות ובקנה מידה קטן יותר יכולות לחקות ארכיטקטורות חזקות יותר בעלות אורכי מילים גדולים יותר, וכן יחידות ביצוע נוספות. גישה זו היא שיטה פשוטה יחסית להבטחת תאימות תוכנה בין מוצרים שונים בתוך משפחת מעבדים.
ספקי חומרה מסוימים, בעיקר IBM ו־Lenovo, משתמשים לעיתים במונח "מיקרוקוד" במקום המונח קושחה. בהקשר זה, כל הקוד במכשיר נקרא מיקרוקוד, בין אם הוא מיקרוקוד ובין אם הוא קוד מכונה. לדוגמה, "עדכונים למיקרוקוד" של כונן קשיח כוללים לעיתים קרובות עדכונים הן למיקרוקוד הן ולקושחת הכונן.[3]
קישורים חיצוניים
הערות שוליים