מבוא למערכות מחשב ואסמבלי

Slides:



Advertisements
Ähnliche Präsentationen
Digital Output Board and Motherboard
Advertisements

Kurzwiederholung Informatik I, Teil I: Grundkonzepte
Vom HW-Automaten zum Prozessor
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
KA – Rechnerarchitektur I ____________________________________________________________________________________________ ____________________________________________________________________________________________.
1 low:=low-Q 2 high:=high-Q 2 low:=low-Q 1 high:=high-Q 1.
Fakultät für informatik informatik 12 technische universität dortmund Optimizations Peter Marwedel TU Dortmund Informatik 12 Germany 2009/01/17 Graphics:
Peter Marwedel TU Dortmund, Informatik 12
On a Buzzword: Hierachical Structure David Parnas.
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Kapitel 3 5 Rechnerorganisation
IF-ELSE-IF-Ketten Weiter mit PP..
W. Oberschelp G. Vossen Kapitel 7.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 8.1.
Rechneraufbau & Rechnerstrukturen, Folie 10.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 10.
Hier wird Wissen Wirklichkeit Computer Architecture – Part 5 – page 1 of 25 – Prof. Dr. Uwe Brinkschulte, M.Sc. Benjamin Betting Part 5 Fundamentals in.
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
Vorlesung 2 Rechnerarchitektur Peter B. Ladkin Wintersemester 2001/2002 Universität Bielefeld Technische Fakultät.
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Compilerbau und Reverse Engineering m Vorlesung im Wintersemester.
Von-Neumann-Prinzip Der Rechner ist zentral gesteuert und aus Funktionseinheiten aufgebaut. (Zentraleinheit, Speicher, Ein-/Ausgabeeinheit, Verbindungseinrichtung)
AMDs Next Generation Die Hammer Familie Eine Kurzpräsentation von Frank Grümmert bei Herrn Prof. Dr.-Ing. Risse für das RST-Labor.
EPIC, IA-64 und Itanium Eine Kurzpräsentation von Jan Hübbers bei Prof. Dr.-Ing. Risse im Fach Labor Rechnerstrukturen an der Hochschule Bremen
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Der Prozessor - zentraler Bestandteil eines jeden Computers
Ablaufsteuerung (Microcode)
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Der Simple As Possible Computer
Pühringer, Duscher 1 Workflow Mediation with VorteXML Artikel von [Christophides, Hull, Kumar, Simeon] ©2000 Bell Laboratories, Lucent Technologies.
3.4 CPU-Chips und Busse CPU-Chips
Signal-Prozessoren DSV1, 2009, Hhrt, 1 Mikro-Prozessor Von Neumann-Architektur Daten und Programmcode im gleichen Speicher => Sequenzieller Zugriff auf.
Computerorientierte Physik VORLESUNG und Übungen Vorlesung Zeit: Di., 8.30 – Uhr Ort: Hörsaal 5.01, Institut für Experimentalphysik, Universitätsplatz.
Anwendung von Microcontollern
Advanced Digital Design Übung 3. Aufgabe 1: Algorithmus für Phasen Inverter Plazierung Systematic approach: 1. Identify combinational logic and registers/memories.
MODULA-2.
Rechnerarchitekturen
Universität Rostock Fachbereich Elektrotechnik und Informationstechnik Institut für Angewandte Mikroelektronik und Datentechnik Eine Prozessorarchitektur.
Übung Informatik I exercise01. 2 Inhaltsübersicht Nachbesprechung Übung 1 Individuelle Fragen/Bemerkungen.
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
Aufbau, Funktion und Grundzusammenhänge
Institute for Software Science – University of ViennaP.Brezany Parallele und verteilte Systeme Peter Brezany Institut für Softwarewissenschaften Universität.
Der Prozessor Von Stephan Blum.
Institut für Angewandte Mikroelektronik und Datentechnik Course and contest Results of Phase 4 Nils Büscher Selected Topics in VLSI Design (Module 24513)
SiPass standalone.
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
Schutzvermerk nach DIN 34 beachten 20/04/15 Seite 1 XSoft.
Institut für Angewandte Mikroelektronik und Datentechnik Results of Phase 4: Layout for ST65 technology by Christoph Niemann Selected Topics.
1 Technische Informatik II Rechnerarchitektur und Betriebssysteme Peter B. Ladkin
Hier wird Wissen Wirklichkeit Computer Architecture – Part 2 – page 1 of 17 – Prof. Dr. Uwe Brinkschulte, Prof. Dr. Klaus Waldschmidt Part 2 Microprocessor.
Lehrstuhl für Informatik 3 - D. Fey Vorlesung GRa - SS , Folie 1 Beispiel Cache-Architektur.
SPEICHER ROM + RAM ROM RAM Arten von RAM (DDR-RAM, SDRAM) Beispiel
Technische Universität München Alexander Neidhardt Forschungseinrichtung Satellitengeodäsie 1 Concepts for remote control of VLBI-telescopes: on the way.
Erste Schritte im Internet of Things
Aufbau und Funktionsweise einer CPU
The IT–Information System
Electronics for Pedestrians – Tutorial II/II –
oder Womit genau ein Prozessor seine Zeit verbringt
XX X XX X : X X X.
Data Hazards 0x30 sub $6 $0 $1 0x34 add $7 $6 $
VHDL-Modellierung der Pipeline eines DLX-Prozessors
Eine elektronische Schaltung von der Idee bis zum Einbau am Experiment
Vom HW-Automaten zum Prozessor
CSL211 Computer Architecture
Integrating Knowledge Discovery into Knowledge Management
Test Summary: ein Fehler pro Tag Test First
The Programming Language Pascal
 Präsentation transkript:

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

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

ספר הלימוד: פרק 1 המחשב הדיגיטלי 1.1 מבוא 1.2 מודל מופשט של מחשב פרק 1 המחשב הדיגיטלי 1.1 מבוא 1.2 מודל מופשט של מחשב 1.3 מבנה מחשב פשוט ואופן ביצוע ההוראות בשפת מכונה 1.4 הקשר בין יחידות המחשב פרק 2 ייצוג מידע במחשב 2.1 מבוא 2.2 ייצוג מספרים שלמים 2.3 ייצוג מספרים ממשיים 2.4 ייצוג טקסט 2.5 ייצוג תמונה 2.6 יחידות זיכרון לאחסון מידע במחשב מטח אוגוסט 2005

ספר הלימוד (המשך): פרק 3 פעולות אריתמטיות על ייצוג בינארי במחשב פרק 3 פעולות אריתמטיות על ייצוג בינארי במחשב 3.1 חיבור וחיסור מספרים בינאריים בלתי מכוונים 3.2 שיטות לייצוג מספרים בינאריים מכוונים 3.3 חיבור וחיסור מספרים בינאריים שלמים מכוונים 3.4 תחום הייצוג של מספרים בינאריים שלמים מכוונים ובלתי מכוונים פרק 4 שפת אסמבלי והמודל התכנותי של מעבד 8086 4.1 מבוא 4.2 המודל התכנותי של ה-8086 4.3 ארגון הזיכרון במעבד 8086 4.4 כתיבת תכנית בשפת אסמבלי 4.5 הגדרת משתנים בשפת אסמבלי נספח – תיאור תהליך הרצת התכנית

ספר הלימוד (המשך): פרק 5 תכנות בסיסי בשפת אסמבלי 5.1 מבוא פרק 5 תכנות בסיסי בשפת אסמבלי 5.1 מבוא 5.2 הוראות להעברת נתונים 5.3 הוראות אריתמטיות – חיבור וחיסור 5.4 הוראות בקרה 5.5 הוראות כפל וחילוק 5.6 הוראות לוגיות 5.7 הוראות הזזה וסיבוב פרק 6 שיטות מיעון, מערכים ורשומות 6.1 הצהרה על מערכים ורשומות 6.2 שיטות מיעון 6.3 מיעון מיידי Immediate addressing 6.4 מיעון אוגר Register addressing 6.5 מיעון ישיר Direct addressing mode 6.6 מיעון עקיף בעזרת אוגר Indirect Addressing Register 6.7 מיעון אינדקס (Direct Indexed Mode) 6.8 מיעון בסיסBase Relative Addressing 6.9 מיעון אינדקס-בסיס Based Indexed Addressing Modes מטח אוגוסט 2005

ספר הלימוד (המשך): פרק 7 מחסנית, שגרות ומקרו 7.1 מבוא פרק 7 מחסנית, שגרות ומקרו 7.1 מבוא 7.2 כתיבת פרוצדורה וזימונה 7.3 המחסנית ומצביע המחסנית 7.4 העברת פרמטרים 7.5 מימוש משתנים מקומיים 7.6 העברת מערך כפרמטר לפרוצדורה 7.7 מימוש פונקציות 7.8 פונקציה רקורסיבית 7.9 מקרו

ספר הלימוד (המשך): פרק 8 עיבוד מחרוזות ובלוקים של נתונים פרק 8 עיבוד מחרוזות ובלוקים של נתונים 8.1 הגדרת מחרוזות בשפת אסמבלי 8.2 מבנה של הוראות מחרוזת 8.3 העתקת מחרוזות – ההוראה MOVS 8.4 חזרה על פעולת ההעתקה 8.5 כתיבת תווים במחרוזת – ההוראה (Store a String) STOS 8.6 קריאת תו ממחרוזת – ההוראה LODS (Load a String) 8.7 השוואת מחרוזות ההוראה CMPS (CoMPare String) 8.8 חיפוש תו במחרוזת הוראה SCAS (SCAn String) 8.9 טבלאות תרגום וההוראה XLAT מטח אוגוסט 2005

ספר הלימוד (המשך): פרק 9 פסיקות וקלט-פלט 9.1 מבוא פרק 9 פסיקות וקלט-פלט 9.1 מבוא 9.2 שימוש בשגרת השירות של DOS 9.3 מנגנון ביצוע פסיקות במעבד 8086 9.4 קריאה ושינוי של פסיקה 9.5 הוראות IN ו- OUT פרק 10 ארכיטקטורה של מעבדים מתקדמים 10.1 ההשפעה של ההתפתחות הטכנולוגית על מבנה מעבדים מתקדמים 10.2 מבנה האוגרים במעבדים מתקדמים 10.3 ארכיטקטורת "צינור הוראות" (pipelining) 10.4 ארגון זיכרון

פדגוגיה בעיות: הצעות: מושגים רבים חדשים שילוב מהיר של התנסות סדר הלימוד:הצגת חומרה קודם? הצעות: מבט-על מופשט והעמקה בצורה ספירילית להציג פרק 3 (עיבוד על ייצוג בינארי יחד עם פרק 5) שימוש בסימולטור קישור לידע קיים במדעי המחשב התייחסות לתפישות של תלמידים על המחשב ואופן השימוש בו מטח אוגוסט 2005

ספרות שפת סף 8086/88 הוצאת בי"ס לטכנולוגיה של או"פ ארגון המחשב ותכנותו – הוצאת או"פ משפחת המיקרופרוססרים 8086/88, ג'ון אופנבק, תרגום לעברית של או"פ Computer Organization and Assembly Language Programming, Thorne M. The 80x86 Family, Design, Programming and Interfacing, Uffenbeck J. Structured Computer Organization, by Andrew Tanenbaum מטח אוגוסט 2005

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

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

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

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

היבטים שונים משתמש מחשב מהנדס/ארכיטקט מתכנת שפות תכנות מהדרים יישומים ממשק משתמש GUI מהנדס/ארכיטקט רכיבים אלקטרוניים טכנולוגיה מחשב מתכנת שפות תכנות מהדרים מטח אוגוסט 2005

שפת המחשב שפות נמוכותLow level language שפת מכונה (Machine Language) בשפה בינארית הוראה אוסף 0 ו- 1 שפה אסמבלי או שפת סף (Assembly language) בשפת סף במקום מספרים בינאריים יש קודים מנמוניים (Mnemonic codes) . קוד מנמוני נכתב באותיות לטיניות, והוא מורכב ממילה או מקיצור של מילה המייצגת פעולה שיש לבצע. לדוגמה: ADD, CMP (CoMPare) לכל הוראה בשפת סף יש הוראה בשפת מכונה חסרון – תלות בחומרה , חוסר ניידות

שפת המחשב שפות עיליות High level language איך מתכנת "מתקשר" עם המחשב? שפות עיליות הן מופשטות הוראות בהן דומות לשפה טבעית והן מגדירות פעולות בצורה לוגית בלי להתייחס לחמרת המחשב. לדוגמה, כדי לכתוב הוראת קלט אנו משתמשים במילה המציינת פעולת הקריאה (read) ורשימה של משתנים בהם יאחסנו נתונים אנו לא מתייחסים כלל למקלדת, למבנה, לאופן הפעולה והקישור למחשב יתרון - אין תלות בחומרה , ניידות מטח אוגוסט 2005

תיווך בין שפת המכונה לשפה עילית קובץ exe תרגום משפה עילית לשפת מכונה: הידור או פירוש לכל סוג מחשב מהדר או מפרש מתאים להעביר תכנית ממחשב למחשב עם חמרה שונה - מהדרים שוב מטח אוגוסט 2005

תפישה* חדשה ב - JAVA * לא בקורס מטח אוגוסט 2005

מודל מכונה וירטואלית הנחות: תיאור מופשט (אבסטרקטי) מאפשר להבין את המבנה ועקרונות של הפעולה של המחשב מבלי לרדת לפרטים של אופן המימוש רמות הפשטה: תכנית נכתבת למכונה וירטואלית בשפה L1 יש אפשרות לתרגם לתכנית בשפה L0 L0 מתבצעת על מכונה M מטח אוגוסט 2005

תכנה חמרה מטח אוגוסט 2005

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

מודל השכבות רמה 2: ארכיטקטורה של אוסף הוראות המכונה רמה 2: ארכיטקטורה של אוסף הוראות המכונה (Instruction Set Architecture - ובקיצור ISA) מהן הפעולות שמחשב מסוגל לבצע, למשל: האם כפל היא אחת מפעולות של המחשב או שלביצוע הכפל עלינו להשתמש בפעולות חיבור בלבד מבנה של הוראה סוגי נתונים בהם המחשב מטפל ואופן הגישה אליהם.

בקורס זה אנו מתייחסים בהרחבה לרמות 1,2 ו- 4 מודל השכבות רמה 3 – מערכת הפעלה (operating system) מערכת הפעלה היא תכנה המתווכת בין משתמש מחשב (משתמש ביישום או מתכנת) לבין החמרה ומטפלת בהקצאת משאבי המחשב ובביצוע פעולות הדרושות להרצת תכנית. מערכת הפעלה מרחיבה את ISA ומספקת שירותים נוספים לדוגמה, מערכת הפעלה מטפלת בהרצה של תכניות מספר תכניות במקביל מערכת הפעלה מספקת שירותים שונים וביניהם טיפול בקבצים השמורים על זיכרונות חיצוניים, דיסק קשיח למשל, ובאחזורם. רמה 4 – שפת אסמבלי (מתורגמת לשפת מכונה) רמה 5 – שפה עילית (מתורגמת לשפת מכונה) בקורס זה אנו מתייחסים בהרחבה לרמות 1,2 ו- 4 מטח אוגוסט 2005

ארכיטקטורה וארגון המחשב ארכיטקטורה (Architecture): מאפיינים של מחשב מנקודת מבט של מתכנת: פעולות שמחשב מסוגל לבצע, למשל, האם כפל היא אחת מפעולות של המחשב או שלביצוע הכפל עלינו להשתמש בפעולות חיבור בלבד; מבנה של הוראה; סוגי נתונים בהם המחשב מטפל ואופן הגישה אליהם. מתייחס לשאלה “מה” המחשב יודע לעשות? רמה 2 ISA – אוסף הוראות המכונה, רמה 1 - HSA מטח אוגוסט 2005

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

ארכיטקטורה וארגון המחשב במחשבים אישיים נשמר עקרון תאימות (Compatibility): תכניות שנכתבו למחשבים ישנים (שנות ה- 80) מורצים גם במחשבים מודרניים: ISA של מחשב מודרני כולל ISA של מחשב ישן HAS והמימוש של מחשב ישן שונה מזה של מחשב מודרני

למה ללמוד שפת סף/שפת מכונה? דרך טובה ללמוד את מבנה המחשב והקשר בין תכנה לחמרה וכך לשפר את ההבנה והתכניות בשפות עיליות כשמריצים רקורסיה למה יש בעיה של זיכרון? למה מתקבלת תוצאה נכונה כשמחברים שני מספרים שלמים גדולים? איך משפיעים מבני התכנות שבהם אנו משתמשים על זמן ביצוע התכנית? כתיבת יישומים המתייחסים להתקני חמרה וחלקים ממערכת ההפעלה יישומים של זמן אמת (כיום משתמשים גם בשפות עיליות – שפת C) בכתיבת קומפיילרים צריך להכיר את ISA מטח אוגוסט 2005

ארכיטקטורת פון ניומן von Neumann architecture הארכיטקטורה של מחשב מושפעת מגורמים רבים כמו: טכנולוגיה, שפות תכנות, יישומים, היסטוריה של התפתחות המחשבים וגם ההתפתחות הצפויה בתחום המחשוב. רב המחשבים היום מבוססים על ארכיטקטורה פון ניומן שפותחה לפני כשישים שנה פון ניומן וצוות של מדענים פתחו בשנת 1951 מחשב שנקרא EDVAC המבוסס על רעיון מהפכני בארכיטקטורה שלו.

ארכיטקטורת פון ניומן von Neumann architecture עקרון התכנית המאוחסנת (stored program ( לפיו תכנית מאוחסנת כמספרים באותו זיכרון בו מאוחסנים הנתונים.   מבנה סכמתי המעבד (Processor) תפקידו לבצע את התכנית יחידת הזיכרון (Memory) בה מאוחסנים נתונים והוראות · יחידת הקלט/פלט (I/O Devices) משמשת לקליטת נתונים מהמשתמש ולהצגת תוצאות של ביצוע התכנית ·   ערוצי תקשורת הנקראים פסים (bus) והם מקשרים בין יחידות שונות ומעבירים מידע מיחידה ליחידה. מטח אוגוסט 2005

איך מתבצעת תכנית במחשב? כותבים תכנית ומתרגמים אותה לשפת מכונה בעזרת מערכת ההפעלה טוענים ומריצים ההרצה כוללת מספר פעולות שהן שקופות מבחינתנו וביניהן: התכנית בשפת מכונה והנתונים של התכנית נטענים לזיכרון תהליך ביצוע של הוראות התכנית: לכל הוראה מתבצע מחזור הבאה-ביצוע הכולל שני שלבים :   שלב הבאה (fetch) – קריאת ההוראה ופענוחה   שלב ביצוע (execute) ההוראה מטח אוגוסט 2005

ארכיטקטורה של "מחשב" פשוט ארכיטקטורה של "מחשב" פשוט כדי להבין את הארכיטקטורה (ISA ו- HAS) של מחשב: נתכנן “מחשב” פשוט בארכיטקטורת פון ניומן. נגדיר שפת מכונה בסיסית באמצעותה נכתוב תכניות ה"מחשב" הפשוט יוכל לבצע את מחזור הבאה-ביצוע של תכנית המאוחסנת בזיכרון מטרות פדגוגיות: מבט-על להבין את המבנה של הוראה בשפת מכונה להבין איך מתבצעת הוראה שימוש במודל פשוט יסייע להבין בהמשך את אופן פעולה של מחשבים מתקדמים: המודל הפשוט יכיל תיאור של הרכיבים שמגדירים מצב תכנית בתהליך ביצוע מחזור הבאה-ביצוע מטח אוגוסט 2005

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

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

ארכיטקטורה של "מחשב" פשוט ארכיטקטורה של "מחשב" פשוט אירגון יחידת הבקרה: אוגר (register) יחידת זיכרון: גודלה תא אחד יכול להכיל מספר בן 6 ספרות (כמו תא בזיכרון) אין צורך בכתובת ואנו פונים אליו בשם שניתן לאוגר. שני אוגרים חשובים: אוגר IP משמש לשמירה של הכתובת של ההוראה שעל המעבד להביא מהזיכרון והוא נקרא מצביע להוראה (Instruction Pointer). אוגר IR משמש לשמירת ההוראה שהובאה מהזיכרון אל המעבד והוא נקרא אוגר הוראות) Instruction Register) ובו משתמשים לצורך פענוח ההוראה. רכיבים וספים שלא נתייחס אליהם: יחידה לחישוב כתובת, יחידה לטיפול בפניה לפסים, יחידה לפענוח הוראות וכדומה

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

ארכיטקטורה של "מחשב" פשוט ארכיטקטורה של "מחשב" פשוט יחידות זיכרון בהן משתמש ה- ALU יחידות זיכרון לשמירת נתונים עליהם מתבצעות הפעולות אילוץ חומרה: כל פעולה אריתמטית או לוגית (חיבור/השוואה) שמבצעת היחידה האריתמטית לוגית, מתבצעת על נתונים שנמצאים באוגרים אלו. במחשב שלנו יש 2 אוגרים למטרות כליליות אותם נכנה כ: DR1 ו- DR2. אוגר נוסף הנקרא אוגר דגלים FR (Flag Register) תפקידו לשמור תוצאות של ביצוע פעולות לוגיות לדוגמה, בביצוע השוואה האם X = Y? צריך לשמור מידע (אמת או שקר)

מבנה סכמתי של "מחשב" פשוט מבנה סכמתי זה יאפשר לתאר מצב של מחשב לאחר ביצוע הוראה מסוימת מטח אוגוסט 2005

הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA הוראה בשפה עילית מכילה: פעולה הנקראת אופרטור (operator) שהיא מילה שמורה אופרנדים (operand) עליהם מתבצעת הפעולה. לדוגמה את ההוראה: שים את הערך 8 במשתנה A ניתן לרשום בשפה עילית בצורה הבאה: בשפת C בשפת פסקל A: = 8; A= 8; הוראת ההשמה כוללת אופרטור '=' ושני אופרנדים: המשתנה A והקבוע 8. ההוראות בשפה עילית מורכבות ויכולות להכיל מספר אופרטרים ומספר אופרנדים. לדוגמה ההוראה (פסאודו-קוד) : B : A=A+B+C כוללת שני אופרטרים: '+' ו- '=', ושלושה אופרנדים A, B ו-C. בשפה עילית ישנן הוראות מורכבות עוד יותר כגון הוראת for או if הכוללת תנאים לוגיים מורכבים ועוד.

הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA המבנה של הוראות במחשב שלנו הוא הרבה יותר פשוט. כל הוראה צריכה לכלול רק: אופרטור אחד מספר האופרנדים משתנה בין 1 ל- 2. למה? אילוץ חומרה: מבנה הוראות פשוט מאפשר לבנות חמרה מתאימה המפענחת את ההוראה בצורה חד משמעית.

הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA במחשב שלנו הוראה תהיה אחת משני המבנים הבאים הבא: operator operand1 operator operand1 operand2  קיימים שלושה סוגים של אופרנדים: נתון אוגר (DR1או DR2 ) תא זיכרון (משתנה בשפה עילית) . נניח כי כל ההוראה נשמרת בתא אחד בזיכרון (כלומר המספר שמייצג את הוראה יהיה לכל היותר בן 6 ספרות).

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

הגדרת אוסף הוראות ה"מחשב" הפשוט -ISA נגדיר 5 הוראות שיאפשרו לכתוב תכניות פשוטות ולתאר את תהליך הביצוע שלהן: הוראת השמה הוראת חיבור הוראת השוואה הוראת קפיצה בלתי מותנית הוראת קפיצה מותנית

הוראת ההשמה א. מבנה לוגי של הוראת השמה הכוללת שני אופרנדים א.   מבנה לוגי של הוראת השמה הכוללת שני אופרנדים משמעותה היא: אופרנד2 ← אופרנד1 אילוצים: אופרנד1 חייב להיות אוגר משני האוגרים DR1, DR2 אופרנד2 יכול להיות אחד משלוש האפשרויות: נתון, אוגר או תא בזיכרון. החלטה זו היא אילוץ בו אנו חייבים להתחשב בכתיבת תכניות במחשב זה. לדוגמה, כדי להעתיק נתון מתא זיכרון אחד לתא אחר, נצטרך להשתמש בשתי הוראות השמה: הראשונה תעתיק נתון מתא זיכרון לאוגר , והוראה שנייה תעתיק אופרנד2 ,אופרנדmov 1

קידוד הוראת השמה הוראה בשפת מכונה היא מספר ובמחשב שלנו הוא מספר עשרוני עד 6 ספרות צריך פענוח חד משמעי ולדעת להבחין בין סוגי ההשמה השונים. לדוגמה בין: MOV DR1, DR2 MOV DR1, 23 צריכים לקבוע קוד מספרי ייחודי לכל פעולה ולכל אוגר כך שפענוח של הוראה יהיה חד משמעי. אחת האפשרויות להבדיל בין הוראות השמה השונות היא : לייצג כל הוראת השמה בקוד אחר. ובהתאם במחשב שלנו יש חמש הוראות השמה המתוארות בטבלה הבאה

הוראת השמה בשפת מכונה של המחשב הפשוט גם לאוגרים נקבע קודים מספריים: קוד 01 מציין את האוגר DR1 קוד 02 מציין את האוגר DR2. הנתונים בהם המחשב יכול לטפל הם: שלמים בין 0 ל- 99 בלבד!!

הוראת השמה בשפת מכונה של המחשב הפשוט כיצד המעבד יבדיל בין קוד 01 שהוא קוד ההוראה mov1 לקוד 01 שהוא אוגר 1DR? תשובה: בהתאם למבנה הקבוע של ההוראה בה שני אופרנדים: xx yy zz xx מציין שתי ספרות של קוד פעולה yy מציין שתי ספרות של אופרנד1 zz מציין שתי ספרות של אופרנד2. כך ההוראה המתחילה ב- 01 מתייחסת לקוד פעולה (mov1), ואילו 01 המופיע במיקום 3 ו- 4 (yy ) או במיקום 5 ו -6 (zz) הוא האוגר 1DR.

הוראת השמה בשפת מכונה של המחשב הפשוט דוגמאות: התייחסות למשתנים משתנה הוא ייצוג לוגי של מקום אחסון בזיכרון. לכל משתנה יש כתובת ותא בו מאוחסן הנתון. לדוגמה, כי לרשום הוראת ההשמה a=27, כאשר למשתנה a מאוחסן בתא שכתובתו 10 מטח אוגוסט 2005

הוראת החיבור בשפת מכונה של המחשב הפשוט הוראת חיבור כוללת שני אופרנדים וניתנת לתיאור בצורה הבאה: אופרנד2 ,אופרנד1 add סוגי אופרנדים מותרים: אופרנד1 חייב להיות אוגר משני האוגרים DR1, DR2 אופרנד2 יכול להיות אחד משתי אפשרויות: נתון או אוגר. תוצאת החיבור מושמת תמיד באופרנד 1.  

הוראת החיבור בשפת מכונה של המחשב הפשוט לדוגמה: איך נחבר משתנה בזיכרון: DR1= DR1+a ?

תכנית לדוגמה: A ו- B משתנים,לבצע את הפעולות A = 23 B = 54 A = A + B תרגום לשפת מכונה  

טעינת תכנית לדוגמה לזיכרון טעינת תכנית לזיכרון : להוראות נקצה את הכתובות החל מ- 0, ובהתאם אוגר IP מאותחל לערך זה למשתנים נקצה את הכתובות: כתובת 10 למשתנה a כתובת 11 למשתנה b מטח אוגוסט 2005

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

פענוח הוראות מילון של הוראות 04 10 27 קוד ההוראה 04 מפענח מטח אוגוסט 2005

מצב זיכרון ואוגרים לאחר סיום של ההבאה של ההוראה ראשונה mov4 A, 23 מטח אוגוסט 2005

שלב ביצוע של ההוראה הראשונה mov4 A, 23 המעבד כותב את הנתון 23 בתא שכתובתו 10. מצב האוגרים והזיכרון בסיום ההוראה הוא: מטח אוגוסט 2005

סיום מחזור הבאה-ביצוע של ההוראה השנייה mov4 B, 54 מטח אוגוסט 2005

סיום מחזור הבאה-ביצוע של ההוראה השלישית mov3 DR1, A מטח אוגוסט 2005

סיום מחזור הבאה-ביצוע של ההוראה הרביעית MOV3 DR2, B מטח אוגוסט 2005

מחזור הבאה-ביצוע של ההוראה החמישית ADD2 DR1, DR2 וכך הלאה... איך תכנית תסתיים? מטח אוגוסט 2005

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

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

עוד הוראות - הוראת השוואה ההוראה להשוואה כוללת שני אופרנדים וניתנת לתיאור בצורה הבאה: אופרנד2 , אופרנד1 compare בשפת מכונה של המחשב שלנו: אופרנד1 חייב להיות אוגר נתונים (DR1 או DR2) אילו אופרנד2 יכול להיות נתון או אוגר. שתי הוראות השוואה שונות: מטח אוגוסט 2005

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

הוראת קפיצה מותנת מאפשרת לעבור להוראה מסוימת בתכנית שאינה בהכרח ההוראה עליה מצביע אוגר IP. בהוראה זו רק אופרנד אחד והוא נתון (בין 0 ל- 99) המציין כתובת של הוראה אליה נדלג. jumptrue operand קוד הוראה זו הוא: 10 פעולה זו דומה לפעולת ההוראה: then <תנאי> if (ללא else): מטח אוגוסט 2005

הוראת קפיצה מותנת אלגוריתם לביצוע ההוראה: אם ערך אוגר דגלים הוא 1 אזי קפוץ בביצוע ההוראה הבאה להוראה שכתובתה נתון כאופרנד, אחרת המשך כרגיל להוראה הבאה עליה מצביע IP דוגמה, ההוראה 10 03 משמעותה: אם ערך אוגר הדגלים 1 עבור לביצוע הוראה שבכתובת 03, אחרת המשך לביצוע ההוראה העוקבת להוראה נוכחית כדי לקפוץ לכתובת שנתון כאופרנד, המעבד צריך בזמן ביצוע ההוראה לשנות את ערכו של IP מטח אוגוסט 2005

ההוראה לקפיצה בלתי מותנת בהוראה זו הקפיצה להוראה שכתובתה הוא האופרנד אינה תלוי באוגר הדגלים ומתבצעת תמיד jump operand קוד הוראה זו הוא: 11 אלגוריתם לביצוע ההוראה: קפוץ בביצוע ההוראה הבאה להוראה שכתובתה נתון כאופרנד,   מטח אוגוסט 2005

תרגום תכנית לשפת מכונה אם A = B אזי A = 2 אחרת B = 2 מטח אוגוסט 2005

ביצוע תכנית לדוגמה 2 לביצוע תכנית זו יש 2 אפשרויות: מסלול אחד של ביצוע במקרה ו- A שווה ל- B מסלול שני של ביצוע במקרה ש- A שונה מ- B. מצב התחלתי לאחר טעינת התכנית לזיכרון: מטח אוגוסט 2005

תיאור תהליך ביצוע התכנית במקרה ש- A שונה מ- B במקרה כזה מתבצעות ההוראות הבאות: DR1 = A DR2 = B האם DR1 = DR2 ? אוגר הדגלים מתעדכן ל- 0 jumptrue 06 נכשל B = 2 jump 07 end מטח אוגוסט 2005

ביצוע ההוראה jump 07 שלב ההבאה: קרא את ההוראה שבכתובת 05 קדם IP להוראה הבאה, IP=6 פענח את ההוראה שלב ביצוע: שנה ערך אוגר IP ל- 07 מטח אוגוסט 2005

תיאור תהליך ביצוע התכנית במקרה ש- A שווה ל- B במקרה כזה מתבצעות ההוראות הבאות: DR1 = A DR2 = B האם DR1 = DR2 ? אוגר הדגלים מתעדכן ל- 1 jumptrue 06 מצליח A = 2 end הוראה jumptrue 06 מתבצעת בדומה להוראה jump מטח אוגוסט 2005

קשר בין יחידות המחשב נקודת מבט של ארכיטקטורה של החמרה HAS כיצד מתבצע הקשר בין היחידות השונות במחשב? במחשב ישנם שלושה סוגים של פסים (אוסף מוליכים המקשרים בין יחידות שונות): פס הנתונים (Data bus) בו מועברים נתונים והוראות פס הכתובות (Address bus) בו מועברות כתובות של תאי זיכרון פס הבקרה (Control bus) בו מועברת סוג הפעולה: קריאה או כתיבה מספר המוליכים בפס קובע את גודל המידע שיכול להיות מועבר כשבכל פס מועבר 0 או 1. מטח אוגוסט 2005

קשר בין יחידות המחשב מטח אוגוסט 2005

מחזור קריאה מהזיכרון מטח אוגוסט 2005

מחזור כתיבה בזיכרון מטח אוגוסט 2005

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

שעון פנימי וקצב עבודה של מחשב מחזור מכונה אחד מודד זמן ביצוע של פעולה אחת פעולות מתבצעות מחוץ למעבד – מעבד פונה לזיכרון או להתקן קלט/פלט הן פעולות יקרות כי היחידות החיצוניות איטיות בקריאה/כתיבה מזיכרון/לזיכרון במעבד 8086 4 פעולות = 4 מחזורי מכונה: הוצאת כתובת לפס כתובות, קביעת אות בקרה, מעבד ממתין לנתון, העברת נתון למעבד) קריאה/כתיבה מיחידות קלט/פלט פעולה עוד יותר איטית (תלוי בהתקן) הערכת זמן ביצוע של הוראות: לכל הוראה בשפת מכונה, מספק היצרן מספר מחזורי שעון לביצוע: יש איטיות ויש מהירות יותר הערכה: הוראות ארוכות (תלוי במספר אופרנדים והסוג שלהם) יארכו יותר זמן לקריאה. הוראות שביצוען לא דורש גישה לזיכרון(קלט/פלט) נוספת לזיכרון מעבר לזמן קריאת ההוראה עצמה מהיר יותר מטח אוגוסט 2005

שעון פנימי וקצב עבודה של מחשב תדר הוא מספר מחזורים בשניה נמדד כיום במאות מיליוני מחזורים בשנייה, אז מחשבים מהירים מאוד מה אכפת לנו מזמן ביצוע הוראה בודדת? תשובה אחת – התדר שמוצג הוא זמן של ביצוע פעולה במעבד אבל ביצוע תוכנית יש פניה ליחידות חיצוניות 501MHz לא אומר זה מספר ההוראות שתתבצענה מטח אוגוסט 2005

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

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

אבני דרך בהתפתחות של מחשבים דור שלישי (1963-1972) טכנולוגיה – מעגלים מוכללים IC (integrated circuits ) ארכיטקטורה : פותחו טכניקות לתכנון מעבדים מורכבים יותר מה שאפשר לפתח טכניקות של תכנות מקבילי (הרצת מספר משימות על מעבד בודד). תכנה: שפת C, מערכת הפעלה UNIX דור רביעי (1972-1984) טכנולוגיה – שיפור במעגלים מוכללים VLSI ארכיטקטורה : מחשב שלם על צ'יפ אחד -> הופעת מחשב אישי תכנה: פתוח שפות תכנות דקלרטיביות מטח אוגוסט 2005

אבני דרך בהתפתחות של מחשבים דור 5 (1984-1990) טכנולוגיה – מזעור, שפור בזכרונות (הקטנת זמן גישה , קבולת גדלה) ארכיטקטורה : עיבוד מבוזר - מעבדים משתפים פעולה כדי לעבד תוכנית אחת תכנה: שפות מונחות עצמים, פיתוח רשתות תקשורת דור שישי מ- 1990 ואילך ארכיטקטורה : עיבוד מבוזר, מהירות עיבוד גדלה , מעבדים כפולי ליבה תכנה: רשת האינטרנט, JAVA, יישומי מולטימדיה מטח אוגוסט 2005

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