מחשבים ומה שחשוב ! (נכתב ע"י עודד רייכספלד)

 

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

 

המחשב הוא מערכת אלקטרונית הקולטת נתונים, מעבדת אותם, ופולטת מידע הנוצר בתהליך העיבוד. הנתונים שקולט המחשב נקראים קלט (input), המידע שפולט המחשב נקרא פלט (output), והעיבוד המבוצע במחשב מונחה על-ידי קבוצת הוראות הנקראת תכנית מחשב (computer program).

ניתן לחלק את מערכת המחשב לשני תחומים עקריים:

·          חומרה (hardware) הרכיבים הפיסיים של המחשב.

·          תוכנה (software) אוסף של תוכניות מחשב.

 

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

 

דוגמאות

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

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

 

הצגת נתונים במחשב

יחידות אחסנה

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

ליחידת המידע הבסיסית המייצגת אפס או אחד קוראים בעבירת סיפרה בינארית (או בקיצור סי"בית) ובאנגלית binary digit ובקיצור (bit).


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

יחידת זיכרון גדולה יותר הכוללת 16 יחידות בסיסיות של אפס ואחד נקראת מילה (word)

 

 

רכיבי החומרה הבסיסיים

המחשב הנו מערכת המורכבת מספר יחידות, לכל יחידה תפקיד משלה וכל היחידות במחשב תלויות זו בזו. יחידות המחשב המרכזיות הן:

       1.         יחידת עיבוד מרכזית (cpu- central processing unit). יחידת העיבוד המרכזית (או בקיצור יע"מ), היא היחידה במחשב המעבדת מידע, מבצעת חישובים ומנהלת תהליכים המתבצעים במחשב. יחידה זו מכילה שתי יחידות מרכזיות: יחידת הבקרה control unit ויחידה אריתמטית לוגית (alu). 

       2.         זיכרון (memory),  בזיכרון נשמר המידע שבו משתמש המחשב, תוכניות מחשב ותוצאות ביניים של  תהליכי עיבוד.

       3.         יחידת ההובלה (bus unit), יחידה זו אחראית על הובלת הנתונים.

       4.         יחידת קלט/פלט (input/output unit), יחידה זו אחראית על תרגום המידע.

       5.         אמצעי קלט/פלט (input/output devices), אמצעים אלה נמצאים במחשב כדי לקלוט/לפלוט נתונים, כגון: מקלדת, מסך, רמקולים ועוד.

 

 


האיור הבא המתאר את קשר העבודה בין יחידות המחשב השונות:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

אמצעי קלט/פלט (input/output devices )

אמצעי הקלט פלט הם הציוד ההיקפי המחובר למחשב. תפקידם של אמצעים אלו הוא בהצגה של מידע (אמצעי פלט) וקליטת מידע אל המחשב (אמצעי קלט).

 

יחידת הקלט/פלט (input/output unit )

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

 

יחידת ההובלה  (bus unit )

יחידת ההובלה, כשמה כן היא, אחראית על הזרמת המידע במחשב.

 

הזיכרון הראשי  ((main memory

הזיכרון הראשי מורכב מאוסף גדול של תאים. לכל תא מורכב מספר סידורי הנקרא כתובת (address) .

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

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

ישנם שני סוגי פניות לזיכרון: כתיבת מידע בזיכרון וקריאת מידע.

כל תוכנית/מידע המוזן למחשב ע"י המשתמש נשמר בזיכרון. שמירת מידע חדש גורם למחיקת מידע קודם ושימרת מידע חדש.

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

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


 

זיכרון המחשב מחולק לשני חלקים:

·          זיכרון ראשי- זיכרון זה קשור בקשר ישיר ותמידי עם יחידת העיבוד המרכזית. זיכרון זה הוא חלק אינטגרלי מהמחשב, ועל כן שמו.

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

 

יחידת העיבוד המרכזית (CPU - Central Processing Unit)

נשווה את פעולת היחידה לפעולת מוח האדם

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

 

יחידת העיבוד המרכזית משולה למוחו של האדם. יחידה זו עושה את כל פעולות ה"חשיבה" שעושה המחשב ותפקידן של שאר היחידות הוא לסייע לה. כאמור יחידה זו כוללת שתי יחידות עיקריות : יחידה אריתמטית- לוגית (ALU) ו יחידת בקרה (Control Unit).

 

יחידת הבקרה (Control Unit)

אם יחידת העיבוד המרכזית משולה למוחו של האדם הרי שיחידת הבקרה משולה "למנהל העבודה". ביחידת העיבוד המרכזית.

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

 

יחידה אריתמטית- לוגית (ALU – Arithmetic Logic Unit)

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

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

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

 רשימת אתרים בהם תוכלו להיעזר בקבלת מידע נוסף אודות מבנה המחשב:

 

http://www.howstuffworks.com/serial-port1.htm

http://www.howstuffworks.com/mouse.htm

http://www.howstuffworks.com/keyboard.htm

http://www.howstuffworks.com/computer-memory1.htm

http://www.howstuffworks.com/microprocessor.htm
 
תוכנה

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

 

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

 

 

 

 

 

 

 

 

מיקרו מעבד (CPU) - יחידת העיבוד המרכזית.

 

שפת מכונה  (Machine Language  ) - שפת מכונה היא השפה היחידה שהמעבד מכיר.

השפה בנויה מאוסף פקודות, המוצגת ע"י סדרה של 8 סיביות , 0 ו- 1.

כתיבת תוכנית בשפה זו מכבידה מאוד על התוכניתן, ולכן נבנתה שפה נוספת -  שפת סמלים.

בשפה זו לכל פקודה המוצגת כסדרה של סיביות נכתב "סמל" הכתוב בשפת אדם.

שפה זו נקראת שפת אסמבלר.

 

שפת סף (Assembly, אסמבלר) - שפה זו הנה השפה הקרובה ביותר לשפת מכונה.

ההבדל בין השנים הוא בכך, ששפת אסמבלר מורכת מפקודות מובנות ואינן קשות לתכנות.

אך, התכנות בשפה זו מורכב יותר מהתכנות בשפה עילית.

 

שפה עילית (high level language) - שפה זו מכונה בשם: שפה עילית מאחר ופקודות השפה כתובות בשפה הקרובה לאדם. וזאת, על מנת להקל על התוכניתן בזכירת קוד השפה. שפה זו "משחררת" את המתכנת מעיסוק בניבכי המחשב.


 

בעבר הלא רחוק (כ- 50 שנה), רוב תוכניות המחשב נכתבו בשפת מכונה. כאמור, שפה זו קשה לכתיבה מאחר ופקודות השפה מורכבות מרצף של אפס ואחד. עם התפתחות המחשבים פותחו שפות עיליות לתכנות מחשב. עקב ריבוי בשפות עיליות והקושי בתרגום השפה לשפת מכונה, הומצאה שפת הסף. רוב תוכניות המחשב שמתכנתים כותבים, כתובות בשפה עילית כגון: Visual Basic, C, C++.

 

 

כדי לבצע פקודות שנכתבו בשפה עילית, המחשב מבצע את סדרת הפקודות שנכתבו על-ידי כותב התוכנית.

            

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

 

התרשים הבא מתאר את פעולת התרגום.

 

 


מדוע אם כך משתמשים בשפת אסמבלר? ישנן מספר סיבות לכך:

       1.         זמן הריצה של תוכנית הכתובה בשפת אסמבלר מהיר יותר לעומת זמן הריצה של תוכנית הכתובה בשפה עילית.

       2.         באמצעות שפה זו ניתן לטפל בנבכי המחשב וניתן ליצור תוכניות מורכבות וקצרות יותר מאשר בשפה עילית.

       3.         תוכנית המתורגמת משפת תכנות עילית לשפת מכונה יעילה הרבה פחות מתוכנית שכתובה בשפת מכונה. אחת מהסיבות העיקריות לכך היא שהמהדר מוגבל בכושרו לצפות מראש פקודות שהתוכנית עתידה לכלול.

 

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

 

להמחשת ההבדל בין שתי השפות נציג  תוכנית קצרה הכתובה בשפה עילית (C++) ובשפת אסמבלר. שתי התוכניות מציגות את המילה Hello!!! על המסך.

תוכנית בשפה עילית- שפת C++ :

 

#include <stdio.h>

void main() {

printf( " Hello !!! ");

}// End

תוכנית בשפת מכונה- שפת אסמבלי:

example segment

      ASSUME cs: example, ds: example

main:    mov ax, example

 mov ds, ax             

             mov dx, offset mess

             mov ah, 9

             mov 21h

             mov  ax, 4c00h

             int 21h

mess db ' Hello!!! $ '

example end

end main

 

רשימת אתרים בהם תוכלו להיעזר בקבלת מידע נוסף אודות מבנה המחשב:

 

http://www.howstuffworks.com/c.htm

http://www.howstuffworks.com/program1.htm

 


 

תולדות המחשב.

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

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


 

שם האתר: http://www.nas.com/~kunkel/planimeter/planimeter.htm

 

במרוצת המאות 17, 18, 19 נעשו ניסיונות נוספים לבניית מכונות המסוגלות לבצע פעולות מתמטיות שונות כגון: כפל, חיבור, חיסור וחילוק. בשנת 1642 נבנתה  מכונת המחשוב הראשונה ע"י בלאיס פסקל, מכונה זו ביצעה פעולת חיבור בין שני מספרים ,כאשר המספרים הוכנסו באמצעות חוגה.

 


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

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

 


מחשב אנלוגי-

 

שם האתר: http://www.computer-museum.org/collections/AnalogComputer.html

 


המחשב הספרתי (דיגיטאלי):

כבר לפני למעלה מ- 2,000 שנים נהגו להשתמש במכונות מחשוב ספרתיות ,כדוגמה החשבונייה.


 

 

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

ENIAC- Electronic Numerical Integrator And Computer

 

ה- ENIAC נבנה מ - 18,800 שפורפרות ואקום, 1500 ממסרי מיתוג וצרך 130 קילוואט חשמל. זיכרון המחשב יוכל לאחסן עד עשרים מספרים של עשר ספרות כל אחד. המחשב פעל בשיטה עשרונית ויכול לבצע  כ- 5000 פעולות חיבור או חיסור בשניה. יחידות המחשב היו מחויטות ע"פ תוכנית קבוע מראש, שהכתיבה את סוג הפעולות לביצוע. רצון בשינוי התוכנית או הכנסת תוכנית חדשה, דרש חיוט מחדש של מרכיבי המחשב - נסו לדמיין.

 

 ה- EMIAC


מחשב ה-  ENIACהיה כאבן דרך לפיתוחם של מחשבים יעלים מהירים ונוחים יותר.

 


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

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

 

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

 

רשימת אתרים:

http://historia.et.tudelft.nl/wggesch/geschiedenis/computer

http://www.computer-museum.org/

 

בחזרה לתפריט הראשי