Περίληψη
description
Transcript of Περίληψη
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
11
Μικροεπεξεργαστές MIPS-32 και Προσομοιωτές SPIM και XSPIM (σε περιβάλλον Linux)
(Εργαστήριο 1)
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
22
Περίληψη
Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32
Προσομοιωτές SPIM και ΧSPIM (Simulators)
Αssembly Language και Γλώσσα Μηχανής
Βασικές εντολές σε περιβάλλον Linux
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
33
Αρχιτεκτονική Μικροεπεξεργαστή (MIPS-32)
Κεντρική Μονάδα Επεξεργασίας
Καταχωρητές
Αριθμητική (Λογική) Μονάδα
Ειδικά Κυκλώματα
Βοηθητική Μονάδα Επεξεργασίας
Καταχωρητές ειδικής χρήσης
Μνήμη
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
44
Χάρτης Μνήμης (MIPS-32)
Στοίβα Δηλώσεις Εντολές
προγράμματος* Κάθε θέση
μνήμης κρατά 8 bits, ενώ κάθε καταχωρητής 32 bits (4 Bytes)
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
55
Προγραμματισμός Μικροεπεξεργαστή
Οι μικροεπεξεργαστές συνοδεύονται από ένα σύνολο εντολών το οποίο υποστηρίζουν.
Συνήθως υπάρχουν μικροδιαφορές στην σύνταξή μιας εντολής μεταξύ κατασκευαστών αλλά και οικογενειών μικροεπεξεργαστών.
Η πιο πάνω γλώσσα είναι γνωστή ως “Assembly” και στόχο έχει να διευκολύνει τον προγραμματιστή o οποίος δεν χρειάζεται να προγραμματίζει σε γλώσσα μηχανής (machine code) η οποία είναι δυσνόητη. Αυτό επιτυγχάνεται με τη χρήση ενός εργαλείου «assembler» το οποίο μεταφράζει στην ουσία τις εντολές μας σε κώδικα μηχανής (αποτελούμενο από 0 και 1).
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
66
Δομή Αρχείου προσομοίωσης
# Στοιχεία προγραμματιστή/κώδικα.data
Δηλώσεις (.asciiz, .byte, .word)
.textmain: Αρχικοποιήσεις
Εντολές Προγράμματος
# Καινή γραμμή για να τρέξει ο κώδικας
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
77
Κλήσεις Συστήματος (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
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
8
Δημιουργία νέων φακέλων και αρχείων στο Linux
1. Ανοίξτε ένα παράθυρο Terminal και μπείτε στον επιθυμητό φάκελο εργασίας
2. Πληκτρολογήστε mkdir foldername για δημιουργία νέου φακέλου, cd foldername για αλλαγή του φακέλου εργασίας και στην συνέχεια cat > filename.s για να δημιουργήσετε το αρχείο σας.
3. Ανοίξτε τώρα το νέο σας αρχείο με emacs text editor και γράψτε το πρόγραμμα σας!
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
99
Δημιουργία αρχείου “prosthesi.s” (Πρόσθεση 2 αριθμών και εκτύπωση
αποτελέσματος)
# your name
.dataout_string: .asciiz “The result is:\n”
.textmain:
li $t1, 10 # load t1 with 10li $t2, 5 # load t2 with 5add $t3, $t1, $t2 # add t1 and t2 -
>t3
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
10
Δημιουργία αρχείου “prosthesi.s” (Πρόσθεση 2 αριθμών και εκτύπωση
αποτελέσματος)
li $v0, 4la $a0, out_stringsyscall # syscall to print stringli $v0, 1 move $a0, $t3syscall # syscall to print an integerli $v0, 10 syscall # syscall to exit programme# press enter to keep SPIM HAPPY!
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
1111
Εξοικείωση με το SPIM (for Linux)
1. Log-in σε λειτουργικό Linux2. Ανοίξτε ένα παράθυρο εργασίας
Terminal3. Mε την εντολή CD (change
directory) βρέστε τoν φάκελο εργασίας σας (cd Desktop / cd HMY213 / cd week1)
4. spim - ξεκινά τον προσομοιωτή 5. read “prosthesi.s” – διαβάζει το
αρχείο6. run – τρέχει τον κώδικα!
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
1212
Εξοικείωση με το GUI του ΧSPIM (for Linux)
Ο προσομοιωτής ΧSPIM μας παρέχει τη δυνατότητα να βλέπουμε άμεσα το περιεχόμενο ενός καταχωρητή ή μιας θέσης μνήμης.
Πληκτρολογώντας ΧSPIM μέσα στο Terminal, επιλέξτε <load>, γράψτε τo όνομα του αρχείου και επιλέξτε <assembly file>.
Με την επιλογή <run> μπορείτε να τρέξετε όλο τον κώδικα σας, ενώ με το <step> ο κώδικας σας τρέχει βηματικά (εντολή με εντολή)
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
1313
Μερικές Εντολές Linux
bash / pwd / cd mkdir / cat > read / run / exit locate / whoami / date
Πανεπιστήμιο Κύπρου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
1414
Μαθησιακοί στόχοι - Εργαστήριο 1
1. Αρχιτεκτονική MIPS-32 (CPU, Registers, Memory, Co-
proc.)
2. Προσομοιωτές SPIM και ΧSPIM (Άνοιγμα και τρέξιμο κώδικα
στο SPIM και στο ΧSPIM)
3. Αssembly Language και Γλώσσα Μηχανής (Δομή αρχείου
προσομοίωσης και κλήσεις συστήματος - assembler)
4. Βασικές εντολές σε περιβάλλον Linux (Δημιουργία νέων
φακέλων και αρχείων + bash, pwd, locate, whoami, date)