Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεÏΚάϊν Αναγνωστάκης Τροποποιήθηκε πριν 8 χρόνια
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
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.