שתף קטע נבחר

איך זה עובד: מחשב

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

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

 

איך זה עובד ב-ynet מדע:

 

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

 

שערים לוגיים במעגל מודפס ישן. לכו תבינו  (צילום: עידו גנדל ) (צילום: עידו גנדל )
שערים לוגיים במעגל מודפס ישן. לכו תבינו (צילום: עידו גנדל )

 

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

 

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

 

אין שוער בשער

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

 

התשובה היא ארבעה. שניים מהם מתעלמים מהקלט, ופשוט מוציאים פלט קבוע: אחד מוציא כל הזמן 0 (אין זרם), והשני כל הזמן 1 (יש זרם). האופן השלישי מחקה את הקלט: כאשר הקלט 0 גם הפלט יהיה 0, וכאשר הקלט 1 גם הפלט יהיה 1. כל השלושה האלה הם טריוויאליים ולא מעניינים. הרביעי מעניין קצת יותר, מכיוון שהוא הופך את הקלט: כשמתקבל 0 הוא מוציא 1, וכשמתקבל 1 הוא מוציא 0. לדבר כזה קוראים "שער NOT", וזהו הפשוט מבין שבעה "שערים לוגיים" בסיסיים, ששילובם אחראי כמעט לכל מה שקורה בתוך המעבד.

 

הסמלים הגרפיים המקובלים לשבעת השערים הלוגיים, וטבלת אמת של אחד מהם  (איור: עידו גנדל ) (איור: עידו גנדל )
הסמלים הגרפיים המקובלים לשבעת השערים הלוגיים, וטבלת אמת של אחד מהם (איור: עידו גנדל )

 

שער NOT הוא שער אונרי (Unary), זאת אומרת בעל כניסה אחת בלבד. ששת האחרים הם בינאריים (Binary), כלומר בעלי שתי כניסות, שכל אחת מהן יכולה להיות 0 או 1 (סה"כ 4 אפשרויות קלט). עם זאת, גם לשערים בינאריים יש רק יציאה אחת, מה שיוצר 16 אופני פעולה אפשריים – 2 תגובות אפשריות לצירוף הקלט 00, כפול שתי אפשרויות לצירוף 01, כפול שתיים ל-10 כפול שתיים ל-11. כל אופן פעולה כזה אפשר לתאר בעזרת "טבלת אמת", כמו בתמונה למעלה, שמראה איזו תוצאה (Y) מתקבלת עבור כל צירוף קלטים (A,B). מבין 16 האופנים יש לנו, כאמור, שישה מעניינים:

 

• שער OR: מוציא 1 כאשר לפחות אחד מהקלטים הוא 1, אחרת מוציא 0

• שער AND: מוציא 1 רק כאשר שני הקלטים גם יחד הם 1, אחרת מוציא 0

• שער XOR: מוציא 1 כאשר הקלטים שונים האחד מהשני, ו-0 כאשר הקלטים זהים

• שער NOR: "תמונת-ראי" של שער OR (השם הוא קיצור של Not OR), למעשה שער OR שלפלט שלו משורשר שער NOT.

• שער NAND: "תמונת ראי" של AND

• שער XNOR: "תמונת ראי" של XOR

 

המחשה של פעולת שבעת השערים אפשר לראות בסרטון הבא:

 

 

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

 

כמה זה אחד ועוד אחד?

וכעת נראה, סוף כל סוף, מה נותנים לנו השערים האלה בתכל'ס. לשם כך נסתכל על הבעיה החשבונית הפשוטה ביותר – חיבור של שני ביטים.

 

המחשב האלקטרוני מייצג מספרים בבסיס 2, שמכונה גם "השיטה הבינארית", שיש בה רק שתי ספרות (0 ו-1) במקום העשר שאנחנו מכירים ביומיום. כבר הזכרתי את בסיס 2 בכתבה על השעון המעורר, אך הנה סיכום קצרצר עוד יותר: כשאנחנו סופרים בבסיס 10 המוכר, אחרי שהגענו ל-9 ומיצינו למעשה את ספרת האחדות, אנחנו מאפסים אותה ומוסיפים 1 לספרת העשרות. אותו דבר בדיוק נעשה בבסיס 2, אלא ששם האחדות ממצות את עצמן הרבה יותר מהר: אנחנו מתחילים ב-0, עוברים ל-1 – ומשם אין ברירה אלא לעבור לספרה הבאה, כך: 10.

 

סכום של שני ביטים, שני מספרים בינאריים בעלי ספרה אחת בלבד, יכול להיות אם כך באורך שתי ספרות. באיור הבא ציירתי במרכז את "תרגיל החיבור", ומשני צדדיו את טבלת האמת המתאימה לכל אחת מהספרות של התוצאה. אם A וגם B הם אפס, שתי ספרות התוצאה יהיו גם כן אפס. אם A הוא 0 ו-B הוא 1, הספרה הימנית תהיה 1 והשמאלית 0, וכן הלאה.

 

טבלאות אמת לספרות התוצאה של חיבור שני ביטים בבסיס 2  (איור: עידו גנדל ) (איור: עידו גנדל )
טבלאות אמת לספרות התוצאה של חיבור שני ביטים בבסיס 2 (איור: עידו גנדל )

 

ובמקרה או שלא במקרה, שתי טבלאות האמת האלה זהות לטבלאות האמת של שני שערים לוגיים בסיסיים: שער XOR לספרת התוצאה הימנית, ושער AND לספרת התוצאה השמאלית. אם נחבר את הביטים לשערים לוגיים מתאימים, כמוצג באיור הבא, נקבל מערכת שמבצעת, למעשה, חישוב מתמטי!

 

מעגל חשמלי שמבצע חיבור מתמטי של שני ביטים  (איור: עידו גנדל ) (איור: עידו גנדל )
מעגל חשמלי שמבצע חיבור מתמטי של שני ביטים (איור: עידו גנדל )

 

אז כדי לעשות סדר בדברים (ולהפוך אותם בשאיפה למובנים יותר), הנה סיכום: אם נחשוב על זרם חשמלי כ-1 ועל היעדר זרם כ-0, אנחנו מסוגלים ליצור רכיבים אלקטרוניים שממתגים זרמים חשמליים באופן זהה לאופן שבו ה"שערים הלוגיים" התיאורטיים ממתגים ביטים. שילוב נכון של הרכיבים האלקטרוניים הללו מאפשר לנו לבצע חישובים שהם לוגיים במהותם, ועל בסיס הלוגיקה הזו אנחנו יכולים לבצע פעולות מתמטיות – חיבור, כפל, השוואה ועוד. ביצענו קפיצה קונספטואלית מהחומר הפיזי שבתוך המעבד לרמה מופשטת יותר, לוגית, וברמה המופשטת אנחנו יכולים להתחיל לעבד מידע בעל משמעות ולנצח את אלוף העולם האנושי בשחמט. אבל על כך - בשבוע הבא.

 

 תגובה חדשה
הצג:
אזהרה:
פעולה זו תמחק את התגובה שהתחלת להקליד
מומלצים