Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής."— Μεταγράφημα παρουσίασης:

1 Γιώργος Μαγουλάκης jmagoylakis@gmail.com Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής

2  Eπεξεργαστής: MIPS – Microprocessor Without Interlocked Pipeline Stages  RISC – Reduced Instruction Set Computer (Υπολογιστές Ελαττωμένου Ρεπερτορίου Εντολών)  Χρησιμοποιηθηκε μεταξύ άλλων από: SONY, Silicon Graphics, Nintendo, NEC  Μπορεί να λειτουργήσει σε ένα πλήρες σύστημα υπολογιστή  Έχει πολύ απλό instruction set άρα πολύ καλό εργαλείο για εκπαίδευση  Instruction Set  Το λεξιλόγιο του επεξεργαστή  Instructions  Οι εντολές (λέξεις) που καταλαβαίνει

3  Οι εντολές που δέχεται και εκτελεί το hardware είναι κωδικοποιημένες σαν δυαδικά σύμβολα  Χαρακτηριστικό τους είναι ότι είναι απλούστερες από τις HLL (C-C++)  Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής)  Υπολογιστές Ελαττωμένου Ρεπερτορίου Εντολών (RISC - Reduced Instruction Set Computers) – Λεξιλόγιο με απλές και λίγες εντολές

4  Χρησιμοποιείται συμβολικό όνομα για κάθε επιτρεπτό opcode (πράξη)  δεκαδικό ή δεκαεξαδικό αριθμό με μερικά απλά σύμβολα για κάθε τελεστέο  Γράφουμε αυτά τα στοιχεία της κάθε εντολής σε μία χωριστή γραμμή (Assembly)  Assembler μετατρέπει το πρόγραμμα assembly σε γλώσσα μηχανής  Compiler μετατρέπει το c-c++ πρόγραμμα σε γλώσσα Assembly

5  Από Κώδικα Πράξης (opcode – operation code)  Τελεστέους (operands) που περιγράφουν πάνω σε τι θα γίνει η πράξη  Οι τελεστέοι είναι πάντα καταχωρητές γενικού σκοπού (registers) του επεξεργαστή ή σταθερές ποσότητες (αριθμοί) αλλά ΟΧΙ θέσεις μνήμης  O MIPS έχει 32 καταχωρητές των 32 bits ο καθένας (όσο το μέγεθος λέξης του MIPS)

6  Η εντολή "add $17, $15, $16” τι κάνει;  Προσθέτει το περιεχόμενο του καταχωρητή 15 με αυτό του 16 και τοποθετεί το άθροισμα στον καταχωρητή 17  3 τελεστές για λόγους απλότητας (Σχεδιαστική αρχή 1: Simplicity favors regularity)  Οι τελεστές των αριθμητικών πράξεων πρέπει να είναι από ένα μικρό σύνολο από θέσεις μνήμης που καλούνται registers

7  Εντολή sub(subtract – αφαίρεση)  sub $23, $16, $18  γράφει στον καταχωρητή υπ' αριθμόν 23 το αποτέλεσμα της αφαίρεσης $16 - $18  Εντολή addi (add immediate): Παρόμοια με add αλλά ο τρίτος καταχωρητής είναι σταθερό νούμερο  addi $23, $16, 157  διαβάζει το περιεχόμενο του καταχωρητή 16, προσθέτει τον αριθμό 157 σε αυτό, και γράφει το αποτέλεσμα στον καταχωρητή 23

8  i=i+1  addi $18, $18, 1  Καταχωρητής $0 περιέχει την σταθερή ποσότητα 0  Επομένως, η αρχικοποίηση i = 1 γίνεται addi $18, $0, 1

9  Οι εντολές γράφονται η μία κάτω από την άλλη στη κεντρική μνήμη  Μετά την ανάγνωση και εκτέλεση της εντολής ο επεξεργαστής αυξάνει τον PC (Program Counter) ώστε να δείχνει την επόμενη προς εκτέλεση εντολή  Η σειριακή εκτέλεση των εντολών διακόπτεται από Εντολή Μεταφοράς Ελέγχου (CTI – Control Transfer Instruction)

10  CTI εντολές είναι: Διακλαδώσεις (Branch), Άλματα (jump). Πχ:  j label  λειτουργεί με τέτοιο τρόπο ώστε η επόμενη εντολή που θα εκτελεστεί να είναι η εντολή στη διεύθυνση μνήμης "label", αντί να είναι η "από κάτω" εντολή. Δηλαδή η παραπάνω εντολή φορτώνει τη διεύθυνση "label" στον καταχωρητή PC

11  Οι υπολογιστές αποτελούνται από:  Μονάδες Εισόδου – Εξόδου (Πληκτρολόγιο, ποντίκι, οθόνη, δίσκοι, κλπ.)  Κεντρική Μνήμη. Εκατομμύρια στοιχεία αποθήκευσης πληροφορίας  Επεξεργαστής ή Κεντρική Μονάδα Επεξεργασίας (CPU – Central Processing Unit) ▪ Περιέχει κυκλώματα ελέγχου. Καθοδηγούν την εκτέλεση των λειτουργιών που θα πούμε πιο κάτω ▪ Δρόμους Δεδομένων (Datapath). Από εκεί περνάνε πληροφορίες που ανταλλάσσει ο επεξεργαστής με τη μνήμη και τις περιφερειακές συσκευές ▪ Καταχωρητές Γενικού Σκοπού (General- Purpose Registers). Πρόκειται για μια πολύ μικρή μνήμη, μεγέθους συνήθως κάμποσων δεκάδων λέξεων (π.χ. 32 λέξεων)

12  Στη μνήμη του επεξεργαστή αποθηκεύονται και τα δεδομένα και οι εντολές (instructions) που πρόκειται να γίνουν.  Αυτό γίνεται για να μπορεί να δει και να επεξεργαστεί ο υπολογιστής τις ίδιες του τις εντολές σαν δεδομένα. Ο μεταφραστής compiler) είναι το πρώτο βασικό πρόγραμμα υπολογιστή που γεννά εντολές υπολογιστή

13  Με επαναληπτικό τρόπο  Διαβάζει εντολή  Την αποκωδικοποιεί – εκτελεί (πχ: μεταφορά δεδομένων, πράξεις, αποφάσεις αλλαγής πορείας)  Διαβάζει από τη μνήμη την επόμενη εντολή που θα εκτελέσει  Αυτό γίνεται επ’αόριστο εκτός και αν εκτελεστεί εντολή που να λέει στον επεξεργαστή να αλλάξει πορεία!

14  Είναι ειδικός καταχωρητής  Στο τέλος της εκτέλεσης μιας εντολής, ο PC περιέχει τη διεύθυνση μνήμης της επόμενης εντολής που πρέπει να διαβαστεί από τη μνήμη και να εκτελεστεί  Αν η μνήμη ήταν ένας μεγάλος πίνακας M[ ] τότε ο PC θα ήταν ο δείκτης i ο οποίος μας λέει να διαβάσουμε την επόμενη εντολή από τον πίνακα M[ i ].

15  Αντιγράψτε σε ένα αρχείο ονόματος ask1.s (μέσω Notepad) τον παρακάτω κώδικα .text # program memory:.globl main # label "main" must be global; # bootstrap trap.handler calls main. main: # registers: $16: i; $17: j; addi $16, $0, 10 # init. i=10; ($0==0 always) addi $17, $0, 64 # init. j=64; (64 decimal = 40 hex) add $18, $16, $17 # $18 <- i+j = 74 dec = 4a hex add $18, $18, $18 # $18 <- 74+74=148 dec = 94 hex add $18, $18, $17 # $18 <-148+64=212 dec = d4 hex addi $17, $17, -1 # j <- j-1 = 63 dec = 3f hex sub $17, $17, $16 # j <- j-i = 53 dec = 35 hex j main # jump back to main (infinite loop)

16 Εντολές που καλούν την main

17


Κατέβασμα ppt "Γιώργος Μαγουλάκης Εξάμηνο: Εαρινό 2015 ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Τμ. Μηχανικών Πληροφορικής."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google