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

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

Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 9 ο Μάθημα.

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


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

1 Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 9 ο Μάθημα

2 Γλώσσα Μηχανής – Δυαδική Απεικόνιση Μέχρι στιγμής χρησιμοποιούμε την assembly: – Δίνουμε ονόματα σε πράξεις (όπως add) και σε συντελεστές (όπως $10) – Χρησιμοποιήσαμε branches και jumps με την βοήθεια labels και όχι καταχωρητών – Όπως έχουμε δει ως ένα βαθμό, οι assemblers χρησιμοποιούν πολλές ψευδο-εντολές (όπως η la)

3 Γλώσσα Μηχανής – Δυαδική Απεικόνιση Τα προγράμματα πρέπει σταδιακά να μεταφράζονται σε γλώσσα μηχανής, μια δυαδική μορφή η οποία μπορεί να καταχωρείται στη μνήμη και να αποκωδικοποιείται από την CPU Η γλώσσα μηχανής του MIPS είναι σχεδιασμένη ώστε να αποκωδικοποιείται εύκολα: – Κάθε instruction του MIPS έχει το ίδιο μήκος, 32 bits – Υπάρχουν μόνο τρεις (3) μορφές εντολών, οι οποίες μοιάζουν πολύ μεταξύ τους R-type Format I-type Format J-type Format

4 R-type Format Αριθμητικές instructions χρησιμοποιούν το Register-to-Register (R-type) format: Αυτό το format περιέχει 6 διαφορετικά πεδία:

5 R-type Format op: Είναι ένας κώδικας πράξης (operation code) ο οποίος επιλέγει μια συγκεκριμένη πράξη rs και rt: Είναι ο πρώτος και ο δεύτερος καταχωρητής πηγής rd: Ο καταχωρητής προορισμού shamt: Χρησιμοποιείται μόνο για τις shift instructions func: Χρησιμοποιείται μαζί με το op για να επιλέξουν μια αριθμητική εντολή

6 R-type Format Έστω ότι έχουμε την παραπάνω εντολή. – To πρώτο και τελευταίο πεδίο (0 & 32) σε συνδυασμό δηλώνουν ότι η πράξη που θα εκτελεστεί είναι η πρόσθεση. – Το δεύτερο πεδίο δίνει τον αριθμό του καταχωρητή ($17) που είναι η πηγή του πρώτου τελεσταίου της πρόσθεση. – Το τρίτο πεδίο δίνει τον αριθμό του καταχωρητή ($18) που είναι η πηγή του δεύτερου τελεσταίου της πρόσθεσης. – Το τέταρτο πεδίο δίνει τον αριθμό του καταχωρητή ($8) που θα δεχτεί το αποτέλεσμα της πρόσθεσης. – Το πέμπτο πεδίο δεν χρησιμοποιείται σε αυτή την εντολή και για αυτό παίρνει την τιμή 0.

7 Όταν μια εντολή χρειάζεται μεγαλύτερα πεδία από αυτά που δίνονται πιο πάνω παρουσιάζονται προβλήματα Για παράδειγμα, στην εντολή lw πρέπει να προσδιορισθούν δύο καταχωρητές και μια διεύθυνση. Αν οι διευθύνσεις χρειάζονταν μόνο 5 bits (=25 ή 32 θέσεις μνήμης ) τότε αυτό θα ήταν δυνατό Όμως, αυτό το μέγεθος είναι πολύ μικρό για να μπορέσει να χρησιμοποιηθεί για διευθύνσεις δεδομένων Οι σχεδιαστές του MIPS αποφάσισαν να κρατήσουν όλες τις εντολές στοίδιο μήκος -32 bits- – διαφορετικά είδη εντολών θα πρέπει να έχουν διαφορετική μορφή

8 I-type Format Ένα δεύτερο είδος εντολής ονομάζεται I-type και χρησιμοποιείται από τις εντολές μετακίνησης δεδομένων (π.χ. lw, sw addi κλπ) Για παράδειγμα για την εντολή: lw $8, Astart ($19) – Η τιμή 19 θα τοποθετηθεί στο πεδίο Rs – Η τιμή 8 θα τοποθετηθεί στο πεδίο Rt – και η βάση της διεύθυνσης του πίνακα Astart στο πεδίο διευθύνσεων (address) – Σημειώστε ότι το πεδίο Rt στην εντολή lw δίνει το πεδίο που θα πάρει το αποτέλεσμα

9 Πολλές μορφές εντολών προκαλούν πολυπλοκότητα στο υλικό μπορούμε να μειώσουμε την πολυπλοκότητα κρατώντας τις μορφές των εντολών παρόμοιες Για παράδειγμα, – τα πρώτα τρία πεδία στις μορφές R-type και I-type έχουν τα ίδια ονόματα και – το τέταρτο πεδίο στην I-type είναι ίσο με το μήκος των άλλων τριών πεδίων του R-type. Οι διάφορες μορφές/τύποι των εντολών ξεχωρίζουν από τις τιμές που δίνονται στο πρώτο πεδίο (op). Η κάθε μορφή παίρνει συγκεκριμένες τιμές στο πεδίο op, γι’ αυτό και παραδοσιακά το πεδίο αυτό ονομάζεται opcode - κωδικός εντολής

10 Kωδικοποιήσεις μερικών από τις εντολές που μελετήσαμε μέχρι τώρα Μεγέθη των πεδίων για τις πιο πάνω εντολές Οι εντολές add και sub έχουν το ίδιο op πεδίο. Το πεδίο func προσδιορίζει ποιά αριθμητική πράξη (πρόσθεση ή αφαίρεση) πρέπει να εκτελεστεί

11 Παράδειγμα Έστω οι παρακάτω εντολές: – lw $8, 12($19) – add $8, $18, $8 – sw $8, 12($19) OpRsRtAddress 10001110011010000000000000001100 lw$19$812 OpRsRtRdshamtfunc 0000001001001000 00000100000 add$18$8 032 OpRsRtAddress 10101110011010000000000000001100 sw$19$812

12 Άρα αυτό που θα δει η CPU είναι: 10001110011010000000000000001100 00000010010010000100000000100000 10101110011010000000000000001100

13 J-type Format Αυτό το format το χρησιμοποιεί μόνο η j, jal και jr

14 Πώς κάνουμε decode; Έστω ότι έχουμε τις ακόλουθες 6 εντολές σε δεκαεξαδικό: 00001025hex 0005402Ahex 11000003hex 00441020hex 20A5FFFFhex 08100001hex Και θεωρούμε ότι η πρώτη εντολη βρίσκεται στη διεύθυνση 0x00400000

15 Βήμα πρώτο - Decoding Μετατρέπουμε το hex σε binary: 00000000000000000001000000100101 00000000000001010100000000101010 00010001000000000000000000000011 00000000010001000001000000100000 00100000101001011111111111111111 00001000000100000000000000000001

16 Βήμα Δεύτερο – Decoding Στη συνέχεια αναγνωρίζουμε το opcode και το format των εντολών: – Επιλέγουμε τα opcode bits για να αναγνωρίσουμε το format: 000000 00000 00000 00010 00000 100101 000000 00000 00101 01000 00000 101010 000100 01000 00000 00000 00000 000011 000000 00010 00100 00010 00000 100000 001000 00101 00101 11111 11111 111111 000010 00000 10000 00000 00000 000001

17 Βήμα Δεύτερο – Decoding Δείτε το opcode: – 0 σημαίνει R-type format – 2 ή 3 J-type format – Οτιδήποτε άλλο σημαίναι I-type format Στη συνέχεια χωρίζουμε τα πεδία με βάση το format των εντολών:

18 Βήμα Τρίτο – Decoding Στη συνέχεια μεταφράζουμε: Διευθύνσεις μνήμης Την or δεν την έχουμε δει

19 Εντολές:

20

21

22 http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html

23 Μετατρέψτε: add $9, $10, $11 sub $19, $20, $21 lw $6, 40($11) sw $25, 0($19) Και: 00100000000100000000000000001010 0x20110040


Κατέβασμα ppt "Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών 9 ο Μάθημα."

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


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