צנרת: אדריכלות, יתרונות וחסרונות

נסה את הכלי שלנו לביטול בעיות





הגדלת מהירות הביצוע של התוכנית מגדילה את המהירות כתוצאה מכך המעבד. ישנן דרכים רבות שהומצאו, הן הטמעת חומרה והן ארכיטקטורת תוכנה, להגברת מהירות הביצוע. נצפה כי על ידי ביצוע הוראות במקביל ניתן לצמצם את הזמן הדרוש לביצוע. המושג מקביליות ב תִכנוּת הוצע. לפי זה, ניתן לבצע יותר מהוראה אחת בכל מחזור שעון. מושג זה יכול להתאמן על ידי מתכנת באמצעות טכניקות שונות כגון צנרת, יחידות ביצוע מרובות ליבות מרובות . בין כל שיטות ההקבלה הללו, נהוג לבצע צנרת. אז איך ניתן לבצע הוראה בשיטת הצנרת? איך זה מגביר את מהירות הביצוע?

מה זה צינור צנרת?

כדי להבין את הרעיון של צנרת בואו נסתכל על רמת השורש של אופן ביצוע התוכנית. הדרכה היא חבילת הביצוע הקטנה ביותר של תוכנית. כל הוראה מכילה פעולה אחת או יותר. מעבדים סקלריים פשוטים מבצעים הוראה אחת או יותר בכל מחזור שעון, כאשר כל הוראות מכילות פעולה אחת בלבד. ההוראות מבוצעות כרצף שלבים כדי לייצר את התוצאות הצפויות. רצף זה ניתן להלן




רצף ביצוע הוראה

רצף ביצוע הוראה

  • IF: מביא את ההוראה לרשם ההוראות.
  • מזהה: פענוח הוראה, מפענח את ההוראה לאופקוד.
  • AG: מחולל כתובות, מייצר את הכתובת.
  • DF: אחזור נתונים, מביא את האופרנדים לרשם הנתונים.
  • EX: ביצוע, מבצע את הפעולה שצוינה.
  • WB: כתוב בחזרה, כותב בחזרה את התוצאה ל הקופה.

לא כל ההוראות דורשות את כל השלבים שלעיל, אך רובן נדרשות. צעדים אלה משתמשים בפונקציות חומרה שונות. בצנרת השלבים השונים הללו מבוצעים במקביל. בצנרת שלבים אלה נחשבים עצמאיים בין פעולות שונות וניתן לחפוף אותם. לפיכך, ניתן לבצע פעולות מרובות בו זמנית כאשר כל פעולה נמצאת בשלב עצמאי משלה.



צנרת הוראה

הבה נבחן את אופן עיבוד ההוראות בצנרת. ניתן להבין זאת בקלות על ידי התרשים להלן.

צנרת הוראה

צנרת הוראה

נניח כי ההוראות אינן תלויות. במעבד צנרת פשוט, בזמן נתון, יש רק פעולה אחת בכל שלב. השלב הראשוני הוא שלב ה- IF. לכן, במחזור השעון הראשון, פעולה אחת מושגת. כאשר דופק השעון הבא מגיע, הפעולה הראשונה עוברת לשלב ה- ID ומשאירה את שלב ה- IF ריק. כעת, שלב ריק זה מוקצה לפעולה הבאה. לכן, במהלך פעימות השעון השנייה הפעולה הראשונה היא בשלב ה- ID והפעולה השנייה היא בשלב ה- IF.

במחזור השלישי, הפעולה הראשונה תהיה בשלב AG, הפעולה השנייה תהיה בשלב ה- ID והפעולה השלישית תהיה בשלב ה- IF. באופן זה ההוראות מבוצעות במקביל ולאחר שישה מחזורים המעבד יפיק הוראה שבוצעה לחלוטין בכל מחזור שעון.


האם הוראה זו בוצעה ברצף, בתחילה ההוראה הראשונה צריכה לעבור את כל השלבים ואז ההוראה הבאה תושג? לכן, לצורך ביצוע כל הוראה, המעבד ידרוש שישה מחזורי שעון. אך במעבד צינור כאשר ביצוע ההוראות מתרחש במקביל, רק ההוראה הראשונית דורשת שישה מחזורים וכל ההוראות הנותרות מבוצעות כאחת לכל מחזור ובכך מקטינות את זמן הביצוע ומגדילות את מהירות המעבד.

אדריכלות צנרת

ניתן להשיג מקבילות באמצעות טכניקות חומרה, קומפילר ותוכנה. לנצל את הרעיון של צנרת בתוך ארכיטקטורת מחשבים יחידות מעבד רבות קשורות זו בזו והן מתפקדות במקביל. בארכיטקטורת המעבדים בצינור, קיימות יחידות עיבוד מופרדות המסופקות למספרים שלמים והוראות נקודה צפה. ואילו בארכיטקטורה רציפה ניתנת יחידה פונקציונאלית אחת.

יחידת מעבדים בצנרת

יחידת מעבדים בצנרת

בצנרת סטטית, על המעבד להעביר את ההוראה בכל שלבי הצינור ללא קשר לדרישת ההוראה. במעבד צינור דינמי, הוראה יכולה לעקוף את השלבים בהתאם לדרישתה, אך עליה לנוע בסדר רציף. במעבד צינור דינמי מורכב, ההוראה יכולה לעקוף את השלבים כמו גם לבחור את השלבים שלא בסדר.

צנרת במעבדי RISC

הפופולרי ביותר אדריכלות RISC מעבד ARM עוקב אחר צנרת בת 3 שלבים ו -5 שלבים. בצנרת תלת-שלבית השלבים הם: אחזור, פענוח וביצוע. לצינור זה יש חביון של 3 מחזורים, שכן להוראות אישיות נדרשים השלמת 3 מחזורי שעון.

צינור צינור 3 ARM

צינור צינור 3 ARM

לצורך יישום נכון של צנרת יש לשדרג גם את ארכיטקטורת החומרה. החומרה לצנרת תלת-שלבית כוללת בנק רישומים, ALU, מחליף חבית, מחולל כתובות, צובר, מפענח הוראות ורשמי נתונים.

ARM 3 שלב צנרת נתונים

ARM 3 שלב צנרת נתונים

בחמישה שלבים בצינור השלבים הם: אחזור, פענוח, ביצוע, מאגר / נתונים וכתיבה חזרה.

סכנות צנרת

בתוכנת מחשב טיפוסית מלבד הוראות פשוטות, יש הוראות סניף, הפסקת פעולות, הוראות קריאה וכתיבה. צנרת אינה מתאימה לכל מיני הוראות. כאשר כמה הוראות מבוצעות בצנרת הן יכולות לעצור את הצינור או לשטוף אותו לגמרי. סוג זה של בעיות הנגרמות במהלך הצנרת נקרא סכנת צנרת.

ברוב תוכנות המחשב, התוצאה מהוראה אחת משמשת כהוראה על ידי ההוראה השנייה. כאשר הוראות כאלה מבוצעות בצנרת, התמוטטות מתרחשת מכיוון שהתוצאה של ההוראה הראשונה אינה זמינה כאשר הוראה שתיים מתחילה לאסוף אופרנדים. לכן, הוראות שניים חייבות לעצור עד שההוראה הראשונה מתבצעת והתוצאה נוצרת. סוג זה של סכנה נקרא סכנת צנרת קריאה לאחר כתיבה.

קרא לאחר כתיבת סכנת צנרת

קרא לאחר כתיבת סכנת צנרת

ביצוע הוראות סניף גורם גם לסכנת צנרת. הוראות סניף בזמן ביצוע בצנרת משפיע על שלבי האחזור של ההוראות הבאות.

התנהגות סניף בצנרת

התנהגות סניף בצנרת

יתרונות הצנרת

  • תפוקת ההוראה עולה.
  • עלייה במספר שלבי הצינור מגדילה את מספר ההוראות המבוצעות בו זמנית.
  • ניתן לתכנן ALU מהיר יותר כאשר משתמשים בצנרת.
  • מעבד מעבד צינור עובד בתדרי שעון גבוהים יותר מזיכרון ה- RAM.
  • צנרת מגדילה את הביצועים הכוללים של המעבד.

חסרונות בצנרת

  • תכנון המעבד הצינור מורכב.
  • חביון ההוראה עולה במעבדים בצנרת.
  • את התפוקה של מעבד בצינור קשה לחזות.
  • ככל שהצינור ארוך יותר, הבעיה של הסכנה להוראות סניף גרועה יותר.

צינור צינור מיטיב עם כל ההוראות המופיעות ברצף דומה של צעדים לביצוע. מעבדים שיש להם הוראות מורכבות שבהן כל הוראה מתנהגת אחרת מהאחרים קשה לצינור. למעבדים יש כלים סבירים עם 3 או 5 שלבים של הצינור מכיוון שככל שעומק הצינור גדל הסכנות הקשורות אליו גדלות. שם כמה ממעבדי הצינור עם שלב הצינור שלהם?