Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary...

17
Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος [email protected] ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής

Transcript of Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary...

Page 1: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Αρχιτεκτονικη υπολογιστων

Τζαγκαράκης Χαράλαμπος

[email protected]

ΤΕΙ Κρήτης

Τμ. Μηχανικών Πληροφορικής

Page 2: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Εισαγωγη: ο επεξεργαστης και η

γλωσσα του

• Eπεξεργαστής: MIPS – Microprocessor Without

Interlocked Pipeline Stages– RISC – Reduced Instruction Set Computer (Υπολογιστές Ελαττωμένου

Ρεπερτορίου Εντολών)

– Χρησιμοποιηθηκε μεταξύ άλλων από: SONY, Silicon Graphics,

Nintendo, NEC

– Μπορεί να λειτουργήσει σε ένα πλήρες σύστημα υπολογιστή

– Έχει πολύ απλό instruction set άρα πολύ καλό εργαλείο για

εκπαίδευση

• Instruction Set � Το λεξιλόγιο του επεξεργαστή

• Instructions � Οι εντολές (λέξεις) που καταλαβαίνει

Page 3: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Γλώσσα Μηχανής - Machine Language

• Οι εντολές που δέχεται και εκτελεί το hardware

είναι κωδικοποιημένες σαν δυαδικά σύμβολα

• Χαρακτηριστικό τους είναι ότι είναι

απλούστερες από τις HLL (C-C++)

• Οικογένειες επεξεργαστών binary compatible

(ίδια γλώσσα μηχανής)

• Υπολογιστές Ελαττωμένου Ρεπερτορίου Εντολών

(RISC - Reduced Instruction Set Computers) –

Λεξιλόγιο με απλές και λίγες εντολές

Page 4: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Ο υπολογιστής εκτελεί αριθμητικές

πράξεις!

• Χρησιμοποιείται συμβολικό όνομα για κάθε επιτρεπτό opcode (πράξη)

• δεκαδικό ή δεκαεξαδικό αριθμό με μερικά απλά σύμβολα για κάθε τελεστέο

• Γράφουμε αυτά τα στοιχεία της κάθε εντολής σε μία χωριστή γραμμή (Assembly)

• Assembler μετατρέπει το πρόγραμμα assembly σε γλώσσα μηχανής

• Compiler μετατρέπει το c-c++ πρόγραμμα σε γλώσσα Assembly

Page 5: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Από τι αποτελείται η γλώσσα

Μηχανής;

• Από Κώδικα Πράξης (opcode – operation

code)

• Τελεστέους (operands) που περιγράφουν

πάνω σε τι θα γίνει η πράξη

– Οι τελεστέοι είναι πάντα καταχωρητές γενικού

σκοπού (registers) του επεξεργαστή ή σταθερές

ποσότητες (αριθμοί) αλλά ΟΧΙ θέσεις μνήμης

– O MIPS έχει 32 καταχωρητές των 32 bits ο

καθένας (όσο το μέγεθος λέξης του MIPS)

Page 6: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Παράδειγμα:

• Η εντολή "add $17, $15, $16” τι

κάνει;– Προσθέτει το περιεχόμενο του καταχωρητή 15 με αυτό του 16 και τοποθετεί

το άθροισμα στον καταχωρητή 17

– 3 τελεστές για λόγους απλότητας (Σχεδιαστική αρχή 1: Simplicity favors

regularity)

– Οι τελεστές των αριθμητικών πράξεων πρέπει να είναι από ένα μικρό σύνολο

από θέσεις μνήμης που καλούνται registers

Page 7: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Άλλες εντολές

• Εντολή sub(subtract – αφαίρεση)

– sub $23, $16, $18 � γράφει στον καταχωρητή υπ' αριθμόν 23 το αποτέλεσμα της αφαίρεσης $16 - $18

• Εντολή addi (add immediate): Παρόμοια με add αλλά ο τρίτος καταχωρητής είναι σταθερό νούμερο

– addi $23, $16, 157 � διαβάζει το περιεχόμενο του καταχωρητή 16, προσθέτει τον αριθμό 157 σε αυτό, και γράφει το αποτέλεσμα στον καταχωρητή 23

Page 8: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Άλλες εντολές

• i=i+1 � addi $18, $18, 1

• Καταχωρητής $0 περιέχει την σταθερή

ποσότητα 0

– Επομένως, η αρχικοποίηση i = 1 γίνεται

addi $18, $0, 1

Page 9: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Πώς εκτελείται ένα πρόγραμμα;

• Οι εντολές γράφονται η μία κάτω από την άλλη στη κεντρική μνήμη

• Μετά την ανάγνωση και εκτέλεση της εντολής ο επεξεργαστής αυξάνει τον PC (Program Counter) ώστε να δείχνει την επόμενη προς εκτέλεση εντολή

• Η σειριακή εκτέλεση των εντολών διακόπτεται από Εντολή Μεταφοράς Ελέγχου (CTI –Control Transfer Instruction)

Page 10: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Πώς εκτελείται ένα πρόγραμμα;

• CTI εντολές είναι: Διακλαδώσεις (Branch),

Άλματα (jump). Πχ:

– j label � λειτουργεί με τέτοιο τρόπο ώστε η

επόμενη εντολή που θα εκτελεστεί να είναι η

εντολή στη διεύθυνση μνήμης "label", αντί να

είναι η "από κάτω" εντολή. Δηλαδή η παραπάνω

εντολή φορτώνει τη διεύθυνση "label" στον

καταχωρητή PC

Page 11: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Μερη του υπολογιστη

• Οι υπολογιστές αποτελούνται από:– Μονάδες Εισόδου – Εξόδου (Πληκτρολόγιο, ποντίκι, οθόνη, δίσκοι,

κλπ.)

– Κεντρική Μνήμη. Εκατομμύρια στοιχεία αποθήκευσης πληροφορίας

– Επεξεργαστής ή Κεντρική Μονάδα Επεξεργασίας (CPU – Central

Processing Unit)

• Περιέχει κυκλώματα ελέγχου. Καθοδηγούν την εκτέλεση των

λειτουργιών που θα πούμε πιο κάτω

• Δρόμους Δεδομένων (Datapath). Από εκεί περνάνε

πληροφορίες που ανταλλάσσει ο επεξεργαστής με τη μνήμη και

τις περιφερειακές συσκευές

• Καταχωρητές Γενικού Σκοπού (General- Purpose Registers).

Πρόκειται για μια πολύ μικρή μνήμη, μεγέθους συνήθως

κάμποσων δεκάδων λέξεων (π.χ. 32 λέξεων)

Page 12: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Registers

• Στη μνήμη του επεξεργαστή αποθηκεύονται

και τα δεδομένα και οι εντολές (instructions)

που πρόκειται να γίνουν.

– Αυτό γίνεται για να μπορεί να δει και να

επεξεργαστεί ο υπολογιστής τις ίδιες του τις

εντολές σαν δεδομένα. Ο μεταφραστής compiler)

είναι το πρώτο βασικό πρόγραμμα υπολογιστή

που γεννά εντολές υπολογιστή

Page 13: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Πώς λειτουργεί ο Υπολογιστής;

• Με επαναληπτικό τρόπο

– Διαβάζει εντολή

– Την αποκωδικοποιεί – εκτελεί (πχ: μεταφορά δεδομένων, πράξεις, αποφάσεις αλλαγής πορείας)

– Διαβάζει από τη μνήμη την επόμενη εντολή που θα εκτελέσει

• Αυτό γίνεται επ’αόριστο εκτός και αν εκτελεστεί εντολή που να λέει στον επεξεργαστή να αλλάξει πορεία!

Page 14: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Program Counter – Μετρητής

Προγράμματος

• Είναι ειδικός καταχωρητής

– Στο τέλος της εκτέλεσης μιας εντολής, ο PC

περιέχει τη διεύθυνση μνήμης της επόμενης

εντολής που πρέπει να διαβαστεί από τη μνήμη

και να εκτελεστεί

– Αν η μνήμη ήταν ένας μεγάλος πίνακας M[ ] τότε

ο PC θα ήταν ο δείκτης i ο οποίος μας λέει να

διαβάσουμε την επόμενη εντολή από τον πίνακα

M[ i ] .

Page 15: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Κώδικας Γνωριμίας με τον SPIM

• Αντιγράψτε σε ένα αρχείο ονόματος 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)

Page 16: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Single Step to See

Program Running

Page 17: Computer Architecture 1 Lesson...• Οικογένειες επεξεργαστών binary compatible (ίδια γλώσσα μηχανής) • Υπολογιστές Ελαττωμένου

Ευχαριστώ πολύ!