140 likes | 262 Views
Μικροεπεξεργαστές MIPS-32 και Προσομοιωτ έ ς SPIM και X SPIM ( σε περιβάλλον Linux) ( Εργαστήριο 1). 1. Περίληψη. Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32 Προσομοιωτές SPIM και Χ SPIM (Simulators) Α ssembly Language και Γλώσσα Μηχανής Βασικές εντολές σε περιβάλλον Linux. 2.
E N D
Μικροεπεξεργαστές MIPS-32 και Προσομοιωτές SPIMκαι XSPIM (σε περιβάλλον Linux)(Εργαστήριο 1) 1
Περίληψη • Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32 • Προσομοιωτές SPIM και ΧSPIM(Simulators) • Αssembly Language και Γλώσσα Μηχανής • Βασικές εντολές σε περιβάλλον Linux 2
ΑρχιτεκτονικήΜικροεπεξεργαστή (MIPS-32) Κεντρική Μονάδα Επεξεργασίας Καταχωρητές Αριθμητική (Λογική) Μονάδα Ειδικά Κυκλώματα Βοηθητική Μονάδα Επεξεργασίας Καταχωρητές ειδικής χρήσης Μνήμη 3
Χάρτης Μνήμης (MIPS-32) • Στοίβα • Δηλώσεις • Εντολές προγράμματος * Κάθε θέση μνήμης κρατά 8 bits, ενώ κάθε καταχωρητής 32 bits (4 Bytes) 4
Προγραμματισμός Μικροεπεξεργαστή • Οι μικροεπεξεργαστές συνοδεύονται από ένα σύνολο εντολών το οποίο υποστηρίζουν. • Συνήθως υπάρχουν μικροδιαφορές στην σύνταξή μιας εντολής μεταξύ κατασκευαστών αλλά και οικογενειών μικροεπεξεργαστών. • Ηπιο πάνω γλώσσα είναι γνωστή ως “Assembly” και στόχο έχει να διευκολύνει τον προγραμματιστή o οποίος δεν χρειάζεται να προγραμματίζει σε γλώσσα μηχανής (machine code) η οποία είναι δυσνόητη.Αυτό επιτυγχάνεται με τη χρήση ενός εργαλείου «assembler»το οποίο μεταφράζει στην ουσία τις εντολές μας σε κώδικα μηχανής (αποτελούμενο από 0 και 1). 5
Δομή Αρχείου προσομοίωσης # Στοιχεία προγραμματιστή/κώδικα .data Δηλώσεις (.asciiz, .byte, .word) .text main:Αρχικοποιήσεις Εντολές Προγράμματος # Καινή γραμμή για να τρέξει ο κώδικας 6
Κλήσεις Συστήματος (System Calls) li $v0, 4 # syscall code for printing a string la $a0, str # address of string to print li $v0, 1 # syscall code for printing an integer la $a0, 5 # integer (5) to print li $v0, 10 # syscall code to exit programme syscall # completes system call 7
Δημιουργία νέων φακέλων και αρχείων στο Linux • Ανοίξτε ένα παράθυρο Terminal και μπείτε στον επιθυμητό φάκελο εργασίας • Πληκτρολογήστε mkdirfoldernameγια δημιουργία νέου φακέλου, cd foldernameγια αλλαγή του φακέλου εργασίας καιστην συνέχεια cat > filename.s για να δημιουργήσετε το αρχείο σας. • Ανοίξτε τώρα το νέο σας αρχείο με emacs text editor καιγράψτε το πρόγραμμα σας!
Δημιουργία αρχείου “prosthesi.s”(Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος) # your name .data out_string: .asciiz “The result is:\n” .text main: li $t1, 10 # load t1 with 10 li $t2, 5 # load t2 with 5 add $t3, $t1, $t2 # add t1 and t2 ->t3 9
Δημιουργία αρχείου “prosthesi.s”(Πρόσθεση 2 αριθμών και εκτύπωση αποτελέσματος) li $v0, 4 la $a0, out_string syscall # syscall to print string li $v0, 1 move $a0, $t3 syscall # syscall to print an integer li $v0, 10 syscall # syscall to exit programme # press enterto keep SPIM HAPPY!
Εξοικείωση με το SPIM (for Linux) • Log-in σε λειτουργικό Linux • Ανοίξτε ένα παράθυρο εργασίας Terminal • Mε την εντολή CD (change directory) βρέστε τoν φάκελο εργασίας σας (cd Desktop / cd HMY213 / cd week1) • spim - ξεκινά τον προσομοιωτή • read “prosthesi.s” – διαβάζει το αρχείο • run – τρέχει τον κώδικα! 11
Εξοικείωση με το GUI του ΧSPIM (for Linux) • Ο προσομοιωτής ΧSPIM μας παρέχει τη δυνατότητα να βλέπουμε άμεσα το περιεχόμενο ενός καταχωρητή ή μιας θέσης μνήμης. • Πληκτρολογώντας ΧSPIM μέσα στο Terminal, επιλέξτε <load>, γράψτε τo όνομα του αρχείου και επιλέξτε <assembly file>. • Με την επιλογή <run> μπορείτε να τρέξετε όλο τον κώδικα σας, ενώ με το <step> ο κώδικας σας τρέχει βηματικά (εντολή με εντολή) 12
Μερικές Εντολές Linux • bash / pwd / cd • mkdir / cat > • read / run / exit • locate / whoami / date 13
Μαθησιακοί στόχοι - Εργαστήριο 1 Αρχιτεκτονική MIPS-32 (CPU, Registers, Memory, Co-proc.) Προσομοιωτές SPIM και ΧSPIM(Άνοιγμα και τρέξιμο κώδικα στο SPIM και στο ΧSPIM) Αssembly Language και Γλώσσα Μηχανής (Δομή αρχείου προσομοίωσης και κλήσεις συστήματος - assembler) Βασικές εντολές σε περιβάλλον Linux(Δημιουργία νέων φακέλων και αρχείων + bash, pwd, locate, whoami, date) 14