ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ιδάσκων: ρ. Γιώργος Ζάγγουλος Email: zaggoulos.george@ucy.ac.cy www.ece.ucy.ac.cy/courses/ece213
Στόχος Μαθήµατος Συµβόλαιο Μαθήµατος Να προσφέρει εις βάθος κατανόηση στην οργάνωση σύγχρονων υπολογιστών και τον σχεδιασµό µικροεπεξεργαστών, µέσω πρακτικής εµπειρίας. Οι εργαστηριακές ασκήσεις περιλαµβάνουν συµβολικό προγραµµατισµό, σχεδιασµό και υλοποίηση απλών µικροεπεξεργαστών µε τη χρήση εργαλείων σχεδιασµού µε χρήση υπολογιστή (CAD) και προγραµµατιζόµενων διατάξεων λογικής. 2
Αναµενόµενα Αποτελέσµατα Μαθήµατος 1. Εις βάθος κατανόηση, µέσω πρακτικής εξάσκησης, των βασικών αρχών οργάνωσης και σχεδιασµού υπολογιστών. 2. Απόκτηση πρακτικής εµπειρίας στον συµβολικό προγραµµατισµό και στη χρήση προσοµοιωτών. 3. Απόκτηση πρακτικής εµπειρίας στον σχεδιασµό και την υλοποίηση µικροεπεξεργαστών µε χρήση εργαλείων σχεδιασµού (CAD), γλώσσες υλικού (HDLs) και ολοκληρωµένων προγραµµατιζόµενης λογικής. 4. Ικανότητα οµαδικής εργασίας και αποδοτικής επικοινωνίας. 3
Χρήση Ηλεκτρονικού Υπολογιστή Συµβολικός προγραµµατισµός σε γλώσσα MIPS* και προσοµοίωση µε QtSpim 9.1.12 Επίσης, χρήση του λογισµικού Altera Quartus II V13.1 για σχηµατική ή/και VHDL περιγραφή σχεδιασµού και προσοµοίωση. Τέλος, χρήση της εκπαιδευτικής πλακέτας (Altera FPGA board) για έλεγχο λειτουργικότητας του δικού σας σχεδιασµού (MIPS-16). * Microprocessor without Interlocked Pipeline Stages) is a reduced instruction set computer (RISC) 20-Jan-14 HMY213 - Πανεπιστήµιο Κύπρου - Εαρινό Εξάµηνο 2013/14 Γ Ζ 4
1ο Μέρος Εργαστηρίου Το πρώτο µέρος αφορά την εις βάθος εξάσκηση σε συµβολικό προγραµµατισµό και την χρήση του προσοµοιωτή QtSpim. Οι εβδοµαδιαίες οµαδικές εργασίες θα δίνουν έµφαση σε ξεχωριστά θέµατα οργάνωσης υπολογιστών, όπως η υλοποίηση αριθµητικών λειτουργιών, οι τρόποι διευθυνσιοδότησης της µνήµης, αποφάσεις και διακλαδώσεις, η στοίβα προγράµµατος, ο αναδροµικός προγραµµατισµός, κτλ. Θέµατα σε επίπεδο συστήµατος, όπως χρονοµέτρηση, σήµατα διακοπών και λειτουργίες I/O, θα εξεταστούν στο πρώτο project. Το 1 ο project είναι ατοµικό! 5
2ο Μέρος Εργαστηρίου Το 2ο µέρος εστιάζει σε προβλήµατα και ασκήσεις σχεδιασµού και οργάνωσης µικροεπεξεργαστών µε την χρήση των εργαλείων Altera Quartus II για σχηµατική ή/και VHDL περιγραφή σχεδιασµού και προσοµοίωση. Οι εβδοµαδιαίες εργασίες θα δίνουν έµφαση στον σχεδιασµό των βασικών µερών ενός απλού µικροεπεξεργαστή. Το τελικό project αφορά την ενσωµάτωση των βασικών µερών, την επαλήθευση και την υλοποίηση του µικροεπεξεργαστή σε πλακέτα µε ολοκληρωµένα προγραµµατιζόµενης λογικής τύπου CPLD και FPGA. Η εργασία στο δεύτερο project είναι οµαδική. 20-Jan-14 HMY213 Πανεπιστήµιο Κύπρου - Εαρινό Εξάµηνο 2013/14 Γ Ζ 6
Αναµενόµενη Εργασία από Φοιτητές Η παρουσία στα εργαστήρια είναι υποχρεωτική. Επιτρέπονται επιπλέον παρακολουθήσεις!!! Τακτική µελέτη του υλικού που ανατίθεται. Προαιρετικές Εργαστηριακές ασκήσεις για πρακτική εξάσκηση και αυτοαξιολόγηση (µε bonus) ύο Projects, δύο ενδιάµεσες και µια τελική εξέταση (γραπτές). 7
Αξιολόγηση ΗΜΥ213 4 Ασκήσεις (assembly) Οµαδικές (+5%) 15% 1o Project (assembly) Ατοµικό 10% 2o Project (MIPS-16) Οµαδικό 15% Ενδιάµεση Εξέταση 1 20 Φεβ. 2014 15% Ενδιάµεση Εξέταση 2 13 Μαρ. 2014 20% Τελική Εξέταση 09 Μαΐου 2014 30% Απαραίτητη προϋπόθεση επιτυχίας στο µάθηµα είναι η εξασφάλιση συνολικού βαθµού 50% 8
Βαθµολογία: Πολιτική Κανόνες Μαθήµατος Τυχόν ενστάσεις για την βαθµολόγηση εργασίας/εξέτασης θα µπορούν να γίνονται εντός µιας εβδοµάδας από την επιστροφή της εργασίας/εξέτασης στους φοιτητές. Ενστάσεις θα γίνονται δεκτές µόνο γραπτώς µε ξεκάθαρη περιγραφή του παραπόνου ή της διευκρίνησης που ζητείται. Εκπρόθεσµες Εργασίες: Όλες οι εργασίες πρέπει να παραδίδονται κατά την έναρξη της διάλεξης (+7 µέρες από την ανάθεση της εργασίας). Εκπρόθεσµες εργασίες θα υφίστανται αυτόµατη µείωση βαθµολογίας 20% για κάθε επιπρόσθετη µέρα καθυστέρησης πέραν της ηµεροµηνίας λήξης της προθεσµίας. Εργασίες που θα παραδίδονται µε καθυστέρηση πέραν των 3 ηµερών δεν θα γίνονται δεκτές. Παρατάσεις θα πρέπει να διευθετούνται πάντοτε πριν από την λήξη της προθεσµίας. 9
Απουσίες: ικαιολογηµένες απουσίες λόγω ασθένειας ή εγκεκριµένου ταξιδιού για ακαδηµαϊκούς σκοπούς πρέπει να ακολουθούν την πολιτική απουσιών του πανεπιστηµίου. εν θα παραχωρούνται παρατάσεις στην παράδοση ασκήσεων ή εναλλακτικές εξετάσεις, εκτός και αν η απουσία σας είναι δικαιολογηµένη. Σε περίπτωση προγραµµατισµένης απουσίας, πρέπει να επικοινωνήσετε µε τον διδάσκοντα πριν την ηµεροµηνία της απουσίας σας. Ακαδηµαϊκή εοντολογία: Ενθαρρύνεστε να συνεργάζεστε και να ανταλλάσσετε απόψεις για το υλικό του µαθήµατος και όλες τις εργασίες. Ωστόσο, αυτό θα πρέπει να περιορίζεται στη συζήτηση και να µην συνεχίζεται κατά την σύνταξη του κώδικα. Απαγορεύεται αυστηρώς η συγγραφή κώδικα/εργασίας σε συνεργασία µε άτοµο εκτός οµάδας. Εργασίες οι οποίες έχουν σηµαντική αλληλοεπικάλυψη συνιστούν παραβίαση της ακαδηµαϊκής δεοντολογίας και θα αναφέρονται στο Συµβούλιο του Τµήµατος ή ακόµα και στην Σύγκλητο του Πανεπιστηµίου. 10
Εγκατάσταση και Λειτουργία QtSpim 9.1.12 Κατεβάστε το πρόγραµµα QtSpim 9.1.12 από τον σύνδεσµο που υπάρχει στην ιστοσελίδα: http://spimsimulator.sourceforge.net/ Εγκαταστήστε το και στη συνέχεια ελέγξτε την ορθή του λειτουργία τρέχοντας το αρχείο hello word και ως αποτέλεσµα δείτε αυτή τη φράση στο παράθυρο Console. Βοήθεια: File/load file (επιλέξτε το αρχείο) και µετά Simulator/Run-Continue (τρέξτε το αρχείο). Αν δεν βλέπετε το hello word επιλέξτε Window/Console. Τρέξτε επίσης τα 2 αρχεία add2numbers.s αρχικά µε το Run και µετά µε Single Steps παρατηρώντας τις τιµές των καταχωρητών PC, v0, a0, t1, t2 και t3. 11
QtSpim 9.1.12 (for windows vista/ 7/ 8) 12
Από το Πρόβληµα στη Λύση! Κατά την επίλυση οποιουδήποτε προβλήµατος, συνειδητά ή όχι, πάντοτε ακολουθούµε κάποια στάδια µέχρι που να φτάσουµε στην επιθυµητή λύση. Σε προβλήµατα προγραµµατισµού, συνήθως ακολουθούνται τα εξής στάδια: 1. Κατανόηση του προβλήµατος 2. Ανάλυση προβλήµατος (είσοδοι, έξοδοι, σταθερές, µεταβλητές) 3. Βήµατα προς επίλυση του προβλήµατος 4. Συγγραφή κώδικα για το κάθε βήµα 5. Έλεγχος κώδικα βήµα προς βήµα 6. Τελικός έλεγχος κώδικα 13
ιάγραµµα Ροής Προγράµµατος Flow - Chart Το διάγραµµα ροής είναι πολύ βοηθητικό στην επίλυση ενός προβλήµατος αφού µας βοηθά να δούµε και οπτικά την πορεία επίλυσης του προβλήµατος και να κατανοήσουµε καλύτερα τον κώδικα που πρέπει να γράψουµε για το κάθε ένα από τα βήµατα που πρέπει να ακολουθήσουµε. Η επιλογή του αριθµού των βηµάτων εξαρτάται από το ίδιο το πρόβληµα αλλά και από το πόσο αναλυτικό επιθυµούµε εµείς να το σχεδιάσουµε. Πρέπει τουλάχιστο να περιέχει όλους τους ελέγχους (beq/bne/bhi) όπως και τυχόν αλληλεπίδραση µε τον χρήστη. Ας σχεδιάσουµε το πρώτο µας ιάγραµµα Ροής βάσει του παραδείγµατος add2numbers.s 14
ηµιουργία αρχείου add2numbers.s (Πρόσθεση 2 αριθµών και εκτύπωση αποτελέσµατος) # your details with a description of the code.data result_is:.asciiz The result is:\n.text main: li $t1, 10 # load t1 with 10 li $t2, 7 # load t2 with 7 add $t3, $t1, $t2 # add t1 and t2 ->t3 15
ηµιουργία αρχείου add2numbers.s (Πρόσθεση 2 αριθµών και εκτύπωση αποτελέσµατος) li $v0, 4 la $a0, result_is syscall # syscall to print string li $v0, 1 move $a0, $t3 # syscall to print an integer syscall li $v0, 10 syscall # syscall to exit programme # press enter to keep SPIM HAPPY! 16
Εκτέλεση Κώδικα 17
Εκτέλεση Κώδικα 18
Μαθησιακοί Στόχοι 1 ου Εργαστηρίου Κατανόηση συµβολαίου µαθήµατος και τρόπος µελέτης στο ΗΜΥ213 Εγκατάσταση και βασική χρήση του προσοµοιωτή QtSpim 9.1.12 στον υπολογιστή σας. οµή προγράµµατος (.s file) Κλήσεις συστήµατος: 1, 4, 5, 10 Εντολές: li, la, add και move (σύνταξη και αποτέλεσµα εκτέλεσης της κάθε εντολής) 19