THMMY.gr

Μαθήματα Βασικού Κύκλου => Αρχιτεκτονική Υπολογιστών => Topic started by: Mandalorian on April 12, 2017, 16:03:34 pm



Title: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Mandalorian on April 12, 2017, 16:03:34 pm
Για οποιαδήποτε απορία προκύψει κατά την εργασία


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 12, 2017, 20:55:25 pm
Έχω ένα πίνακα με 4 ακέραιους τους οποίους θέλω να εμφανίσω (αργότερα θα το τροποποιήσω για floats κλπ... σιγά σιγά :P) και έγραψα το παρακάτω αλλά δε λειτουργεί.

Code:
	li	$t0, 0			#counter from 0 to 12
la $t2, arrayA #array starting address, array has 4 elements

for_in:
bgt $t0, 12, exit_in #if more than 12 exit
add $t2, $t2, $t0 #current element's address

lw $t3, ($t2) #print it
move $a0, $t3
li $v0, 1
syscall

add $t0, $t0, 4 #4 bytes for each int
j for_in
exit_in:

Αν αντί για τη for κάνω 4 φορές την εμφάνιση με το syscall και βάζω κάθε φορά:
lw   $t3, 0($t2)
lw   $t3, 4($t2)
κλπ. λειτουργεί σωστά. Ξέρει κανείς που έχω κάνει το λάθος;

ΕΔΙΤ: found it... σε κάθε επανάληψη έκανα add στο t2 και πήγαινε σε ότι νάνε διευθύνσεις


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Maylo on April 17, 2017, 00:07:37 am
Καλησπέρα , στην εργασία 1 γεμίζουμε τους πίνακες με  ακέραιους και τους μετατρέπουμε σε double precision ? Έχει κάποιο νόημα αυτό; Γιατί αν από την αρχή διαβάζουμε double , δεν θα χρειαστεί κατευθείαν να τους αναθέσουμε σε Floating Point registers;

Αν από την άλλη  φτιάξω integer 2x2 πίνακες τους A,B και μετατρέψω τα στοιχεία σε double precision  , συμπεραίνω ότι πρέπει να φτιάξουμε 2χ2 double precision πίνακες για να έχει νόημα η εκφώνηση;;;;;;;;;;;;;;;;

Γενικά η εκφώνηση είναι λίγο ...


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 17, 2017, 12:02:17 pm
Καλησπέρα , στην εργασία 1 γεμίζουμε τους πίνακες με  ακέραιους και τους μετατρέπουμε σε double precision ? Έχει κάποιο νόημα αυτό; Γιατί αν από την αρχή διαβάζουμε double , δεν θα χρειαστεί κατευθείαν να τους αναθέσουμε σε Floating Point registers;

Αν από την άλλη  φτιάξω integer 2x2 πίνακες τους A,B και μετατρέψω τα στοιχεία σε double precision  , συμπεραίνω ότι πρέπει να φτιάξουμε 2χ2 double precision πίνακες για να έχει νόημα η εκφώνηση;;;;;;;;;;;;;;;;

Γενικά η εκφώνηση είναι λίγο ...

Εγώ το έκανα να διαβάζει κατευθείαν double και οι πίνακες να είναι επίσης για double precision. Ούτως ή άλλως λέει σε κάποιο σημείο στην εκφώνηση:

Quote
...δίπλα στο οποίο ο χρήστης να μπορεί μα γράφει ένα πραγματικό αριθμό

Την ρουτίνα mm που λέει για τον πολλαπλασιασμό πρέπει να την υλοποιήσουμε σαν συνάρτηση (αποθήκευση registers, jal, αλλαγή του sp κλπ κλπ);


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Maylo on April 17, 2017, 16:27:43 pm
Εγώ το έκανα να διαβάζει κατευθείαν double και οι πίνακες να είναι επίσης για double precision. Ούτως ή άλλως λέει σε κάποιο σημείο στην εκφώνηση:

Ναι ίσως καλύτερα έτσι.

Quote
Την ρουτίνα mm που λέει για τον πολλαπλασιασμό πρέπει να την υλοποιήσουμε σαν συνάρτηση (αποθήκευση registers, jal, αλλαγή του sp κλπ κλπ);

Υποθέτω θα παίξεις με labels και conditional branches  .


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 18, 2017, 14:38:40 pm
Επίσης, για οσους το έχουν απορία δεν χρεαιζεται να γινεται έλεγχος εισόδου δεδομένων, απλως ο χρηστης να ξερει οτι ζηταμε την εισοδο πραγματικων αριθμων. Επειδή δεν το διευκρινίζει η εκφωνηση για αυτο το αναφερω


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 18, 2017, 17:11:58 pm
"για να βρεθεί o αριθμοδείκτης του πρώτου στοιχείου της i γραμμής πρέπει να πολλαπλασιαστεί ο δείκτης i με το πλήθος των στοιχείων της i γραμμής , που στην περίπτωση της άσκησης αυτής είναι 2. Για να βρεθεί ο αριθμοδείκτης οπουδήποτε άλλου στοιχείου a[j] πρέπει στο παραπάνω γινόμενο να προστεθεί το j."

Τι εννοεί με αυτο;


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 18, 2017, 17:54:51 pm
Για να αποθηκεύσεις τους πίνακες σου πρέπει να εξασφαλίσεις ότι κάθε στοιχείο θα έχει μία ξεχωριστή/μοναδική διεύθυνση μνήμης, δηλαδή να φτιάξεις έναν κανόνα για το που θα πάει κάθε στοιχείο με τέτοιο τρόπο ώστε να μη σπαταλάς παραπάνω μνήμη από όση χρειάζεσαι. Ο τρόπος που προτείνει στην εκφώνηση αποθηκεύει τη πρώτη γραμμή του πίνακα σε συνεχείς θέσεις μνήμης, ύστερα τη δεύτερη κλπ. (θα μπορούσες για παράδειγμα να αποθηκεύεις με τη σειρά τις στήλες αντί για τις γραμμές). Οπότε ένας πίνακας:

00  01
10  11

γίνεται:

00  01  10  11

Αν κάθε στοιχείο χρειάζεται 8 bytes (double) και η διεύθυνση μνήμης του πρώτου στοιχείου (εκεί που ξενικά ο πίνακας) είναι πχ η 65792 τότε
στοιχείο:                       00           01           10           11
διεύθυνση μνήμης:   65792     65800     65808      65816

Άρα μπορείς να βρεις τη διεύθυνση μνήμης του στοιχείου σου χρησιμοποιώντας τη σχέση που σου δίνει:
διεύθυνση βάσης + (γραμμή * αριθμός γραμμών + στήλη) * 8

Πχ για το (10) έχουμε 65792 + (1 * 2 + 0) * 8 = 65792 + 16 = 65808


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 18, 2017, 18:02:08 pm
Αρα, ουσιαστικα, καθε φορα φορτωνω το περιεχομενο 2 διευθυνσεων (του Α και του Β) κανω την πραξη και το κανω store στο αντιστοιχο στοιχειο του πινακα C. Και καθε επομενη φορα, προσθετω 8 για να παω στην επομενη.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 20, 2017, 18:15:58 pm
Μια βοηθεια ρε παιδια: καθε φορα που τρεχω το συγκεριμενο κομματι που χτυπαει error

   
   move   $a0, $t0
   
   li   $v0, 7
   syscall         #Reads the input from the console for the 1st Array

   sdc1   $f0, ArrayA($a0) #current address

στο κομματι του store.

(στον $t0 αποθηκευεται προσωρινα η διευθυνση του επομενου στοιχειου, οπου στη συνεχεια με την εντολη move επανερχεται στον $a0)


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 20, 2017, 18:32:01 pm
Τι κάνει το ArrayA($a0); Δε νομίζω να υπάρχει τέτοια εντολή.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: K on April 20, 2017, 18:43:05 pm
Τα θέτω υπόψιν σας.
https://www.youtube.com/watch?v=u5Foo6mmW0I&list=PL5b07qlmA3P6zUdDf-o97ddfpvPFuNa5A


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 20, 2017, 18:48:20 pm
   sdc1   $f0, ArrayA($a0) #current address

Η συγκεκριμενη εντολη υποτιθεται οτι πρεπει να αποθηκευει τον double που βρισκεται στον καταχωρητη $f0 στη θεση του πινακα που υποδεικνυει ο καταχωρητης $a0 (ο οποιος περιεχει τη διευθυνση ενος στοιχειου καθε φορα)


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Maylo on April 20, 2017, 19:15:29 pm
Quote
Τι κάνει το ArrayA($a0); Δε νομίζω να υπάρχει τέτοια εντολή.

Νομίζω πως αυτή η σύνταξη της εντολής είναι κάπως λάθος . Βασικά δεν ξέρω τι έχεις γράψει πιο πριν αλλά  κάποια διαδικαστικά για να δουλέψει είναι ,  να έχεις δεσμεύσει array 32 byte  δηλαδή για κάθε στοιχείο να έχεις χώρο 2 λέξεων διότι οι floating point είναι registers που αποθηκεύουν τους αριθμούς σε 2 λέξεις , 4 bytes για το ακέραιο και  4 για το δεκαδικό.

Αφού το έχεις κάνει αυτό   ,  η "sdc1" στην ουσία κάνει store τα 8 byte που είναι αποθηκευμένα στον $f0 στον register που βρίσκεται στην διεύθυνση  $a0. Η store εντολή λοιπόν έχει σύνταξη (offset(base_address)). Βάζοντας ArrayA στο offset δεν του "λες" βασικά κάτι.

Οπότε αν θες να αποθηκεύσεις από το $f0 floating point register ,  στον register που βρισκεται στην διεύθυνση $a0  , νομίζω πρέπει να γράψεις  "sdc1 $f0 , ($a0)" και για το επόμενο στοιχείο με την λογική "sdc1 $f0 , 8($a0)".





Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 20, 2017, 19:34:35 pm
Έτσι όπως λέει ο Maylo πρέπει να είναι και μάλιστα στο (offset(base_address)) στο offset δε γίνεται να βάλεις κάποιον καταχωρητή αλλά μόνο κάποιο νούμερο.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 21, 2017, 12:02:05 pm
Έτσι όπως λέει ο Maylo πρέπει να είναι και μάλιστα στο (offset(base_address)) στο offset δε γίνεται να βάλεις κάποιον καταχωρητή αλλά μόνο κάποιο νούμερο.

Αρα ουσιαστικα δεν μπορεις να χρησιμοποιησεις loop για την εισαγωγη δεδομενων, εκτος και αν κανεις jump σε συγκεκριμενα κομματια του κωδικα. Κανω λαθος;


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 21, 2017, 13:51:43 pm
Αρα ουσιαστικα δεν μπορεις να χρησιμοποιησεις loop για την εισαγωγη δεδομενων, εκτος και αν κανεις jump σε συγκεκριμενα κομματια του κωδικα. Κανω λαθος;

Μπορείς να χρησιμοποιήσεις loop. Εγώ το έκανα ως εξής για να τυπώσω τα στοιχεία ενός πίνακα:
   
Code:
	li	$t0, 0								#t0 counts array's elements
la $t2, arrayA #load arrayA's address
loop: #printing starts here
bgt $t0, 24, exit_loop #if element's address is greater than 24 we reached the end of the array
add $t3, $t2, $t0 #add t0 (0->8->16->24) to the base address of the array

l.d $f4, ($t3) #load the value of this element
mov.d $f12, $f4 #print it
li $v0, 3
syscall

la $a0, str_prompt_tab #print tab character
li $v0, 4
syscall

add $t0, $t0, 8 #add 8 to the counter
j loop #start the loop again
exit_loop:

Μπορείς φυσικά να κάνεις κάτι παρόμοιο για να αποθηκεύσεις τις τιμές που σου δίνει ο χρήστης, να κάνεις τον πολλαπλασιασμό κλπ.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Mandalorian on April 21, 2017, 15:44:56 pm
Μπορείς να χρησιμοποιήσεις loop. Εγώ το έκανα ως εξής για να τυπώσω τα στοιχεία ενός πίνακα:
   
Code:
	li	$t0, 0								#t0 counts array's elements
la $t2, arrayA #load arrayA's address
loop: #printing starts here
bgt $t0, 24, exit_loop #if element's address is greater than 24 we reached the end of the array
add $t3, $t2, $t0 #add t0 (0->8->16->24) to the base address of the array

l.d $f4, ($t3) #load the value of this element
mov.d $f12, $f4 #print it
li $v0, 3
syscall

la $a0, str_prompt_tab #print tab character
li $v0, 4
syscall

add $t0, $t0, 8 #add 8 to the counter
j loop #start the loop again
exit_loop:

Μπορείς φυσικά να κάνεις κάτι παρόμοιο για να αποθηκεύσεις τις τιμές που σου δίνει ο χρήστης, να κάνεις τον πολλαπλασιασμό κλπ.

Ετσι το εχω κανει και ψανχω να βρω το λαθος. Στο print δεν ειχα θεμα στο read ομως  :P . Ευχαριστω παντως.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 22, 2017, 17:55:56 pm
Έστειλα ένα mail στον Καλογιάννη και μου είπε τα εξής:

Θα πρέπει να διαβάζουμε float αριθμούς από το χρήστη ή μπορούμε κατευθείαν double;
H χρήση float είναι αρκετή. Μπορείς όμως αν θές να παίξεις και με double

Οι καταχωρητές για τις διευθύνσεις των πινάκων και των i,j,k πρέπει να είναι απαραίτητα αυτοί που γράφει στην εκφώνηση;
Ναι

Η ρουτίνα για τη υλοποίηση του πολλαπλασιασμού θα πρέπει να είναι συνάρτηση όπως περιγράφεται εδώ (https://people.cs.pitt.edu/~xujie/cs447/Mips/sub.html) (θα πρέπει να χρησιμοποιήσω jal, να αλλάξω τον sp κλπ);
Ναι χρειάζεται συνάρτηση για αυτό. Καλύτερα και από πλευράς δομής


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: terzmich on April 23, 2017, 16:54:53 pm
Αν έχουμε τις αρχικές διευθύνσεις των πινάκων στους καταχωρητές $a0,$a1,$a2 ,τότε στο τέλος πως θα μπορέσουμε να βάλουμε στον $a0 ας' πούμε την τιμή 4 αν θέλουμε να εμφανίσουμε κάποιο string?


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: xristos_st on April 23, 2017, 18:39:14 pm
Αν έχουμε τις αρχικές διευθύνσεις των πινάκων στους καταχωρητές $a0,$a1,$a2 ,τότε στο τέλος πως θα μπορέσουμε να βάλουμε στον $a0 ας' πούμε την τιμή 4 αν θέλουμε να εμφανίσουμε κάποιο string?
εγω χρησιμοποιησα α1-α3


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on April 23, 2017, 19:05:28 pm
Αν δείτε εδώ (https://people.cs.pitt.edu/~xujie/cs447/Mips/sub.html) ή εδώ (σελ.49) (https://www.cs.ucsb.edu/~franklin/64/lectures/mipsassemblytutorial.pdf), οι παράμετροι στις ρουτίνες (functions) μπαίνουν στους καταχωρητές $a0-$a3, άρα για αυτό και το ζητάει στην εκφώνηση. Όταν το πρόγραμμα φτάσει στη ρουτίνα μπορείς να μεταφέρεις τις διευθύνσεις σε άλλους καταχωρητές, εάν χρειάζεται.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: snek on April 25, 2017, 20:03:02 pm
Ρε παιδια , για καποιο λογο , δεν κανει load τα προγραμματα μου με τις pseudoinstruction li και la , τα φορτωνει μονο αν δουλευω με lui και ori , ξερεις κανεις τον λογο ? γιατι χωρις την εντολη la , θα φαω την ζωη μου :P


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: George_RT on April 25, 2017, 20:53:13 pm
Ρε παιδια , για καποιο λογο , δεν κανει load τα προγραμματα μου με τις pseudoinstruction li και la , τα φορτωνει μονο αν δουλευω με lui και ori , ξερεις κανεις τον λογο ? γιατι χωρις την εντολη la , θα φαω την ζωη μου :P

Πρέπει να βάλεις στα settings να τρέχει ο mips σε simple machine.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: leukosaraphs! on April 27, 2017, 12:12:09 pm
δεν μου λετε παλικαρια και κοπελαρες

καταλαβε κανεις τι θελει στο printing ο θειος? μια απλη στοιχιση  (2 στοιχεια σε μια γραμμη χωρισμενα με tab και 2 απο κατω παρομοια) ή θελει κι το "κουτι" γυρω-γυρω?

 :o


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: raptalex on April 27, 2017, 14:49:33 pm
Πόσες μέρες θέλει να ασχοληθεί κανείς για το εργαστήριο φέτος;; (Δεδομένου ότι ξεκινάει από το 0 χωρίς παρακολούθηση)


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: leukosaraphs! on April 27, 2017, 18:23:12 pm
Πόσες μέρες θέλει να ασχοληθεί κανείς για το εργαστήριο φέτος;; (Δεδομένου ότι ξεκινάει από το 0 χωρίς παρακολούθηση)

δεν ξερω τι εννοεις εργαστηριο , η εργασια παντως με τους πινακες .... θελει 2-3 μερες σιγουρα , να ασχοληθεις σοβαρα (πχ να γραφεις κανα 4ωρο κωδικα) και μετα αλλη 1 μερα για να το κανεις "πιο ομορφο" ή να διορθωσεις κανα bug στον κωδικα σου ;)

αα κι θελει αρκετο ψαξιμο :P


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: snek on April 27, 2017, 21:59:08 pm
Μπορείς να χρησιμοποιήσεις loop. Εγώ το έκανα ως εξής για να τυπώσω τα στοιχεία ενός πίνακα:
   
Code:
	li	$t0, 0								#t0 counts array's elements
la $t2, arrayA #load arrayA's address
loop: #printing starts here
bgt $t0, 24, exit_loop #if element's address is greater than 24 we reached the end of the array
add $t3, $t2, $t0 #add t0 (0->8->16->24) to the base address of the array

l.d $f4, ($t3) #load the value of this element
mov.d $f12, $f4 #print it
li $v0, 3
syscall

la $a0, str_prompt_tab #print tab character
li $v0, 4
syscall

add $t0, $t0, 8 #add 8 to the counter
j loop #start the loop again
exit_loop:

Μπορείς φυσικά να κάνεις κάτι παρόμοιο για να αποθηκεύσεις τις τιμές που σου δίνει ο χρήστης, να κάνεις τον πολλαπλασιασμό κλπ.

Για να τα τυπωσεις οκ κομπλε ειναι κλασσικη μεθοδος , απλα ετσι οπως θελει να τα εμφανισουμε  , στο loop ο κωδικας με τις .ascizz θα ναι λιγο περιεργος , γιατι θα εμφανιζεις μια string a(  μετα δυο τιμες integer  , index1, index2 και μετα ξανα string ) , και μετα syscall για να κανει και read :P . Βεβαια χωρις loop μπορει να βγει πολυ μεγαλος κωδικας , δεν ξερω , δεν το δοκιμασα ακομα για να μαι σιγουρος .


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: snek on April 27, 2017, 22:04:17 pm
δεν μου λετε παλικαρια και κοπελαρες

καταλαβε κανεις τι θελει στο printing ο θειος? μια απλη στοιχιση  (2 στοιχεια σε μια γραμμη χωρισμενα με tab και 2 απο κατω παρομοια) ή θελει κι το "κουτι" γυρω-γυρω?

 :o
Δεν νομιζω να θελει το κουτι γυρω γυρω , γιατι πχ με τις υπηρεσιες syscall δεν μπορεις να κανεις κατι τετοιο , και ουτε εχω βρει κατι παρομοιο , δεν ξερω καλυτερα στειλε κανα email !


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: leukosaraphs! on April 27, 2017, 22:07:06 pm
Δεν νομιζω να θελει το κουτι γυρω γυρω , γιατι πχ με τις υπηρεσιες syscall δεν μπορεις να κανεις κατι τετοιο , και ουτε εχω βρει κατι παρομοιο , δεν ξερω καλυτερα στειλε κανα email !

εγω μια χαρα εκανα κι το κουτι  :P βεβαια χωρις loop ειναι το print μου


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: snek on April 27, 2017, 22:08:25 pm
δεν ξερω τι εννοεις εργαστηριο , η εργασια παντως με τους πινακες .... θελει 2-3 μερες σιγουρα , να ασχοληθεις σοβαρα (πχ να γραφεις κανα 4ωρο κωδικα) και μετα αλλη 1 μερα για να το κανεις "πιο ομορφο" ή να διορθωσεις κανα bug στον κωδικα σου ;)

αα κι θελει αρκετο ψαξιμο :P

Η 2η εργασια τι φαση ειναι , ξερεις ?


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: leukosaraphs! on April 27, 2017, 22:11:50 pm
μην βιαζεσαι  :D ακομα δεν τελειωσαμε αυτην  :P


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: snek on April 27, 2017, 23:44:47 pm
Κανας αλλος ξερει αν η 2η εργασια ειναι πιο χρονοβορα απο την 1η ?


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: ioanmpou on April 29, 2017, 10:42:36 am
παιδιά ξέρει κανείς αν πρέπει να κάνουμε και το κουτί γύρω γύρω τελικά?αν ναι με παύλα "-----" πρέπει να γίνει?


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: leukosaraphs! on April 29, 2017, 13:54:59 pm
Εχω στειλει e-mail , με μερικες ερωτησεις στον Καλογιαννη , η αληθεια ειναι οτι δεν βλεπω να μου απανταει  :P (εχουν περασει 3 μερες)

Εγω το κουτι το εκανα παντως , με παυλες και την καθετο ( | ) και πολλα tab  :P



Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: George_RT on April 29, 2017, 14:12:10 pm
Εχω στειλει e-mail , με μερικες ερωτησεις στον Καλογιαννη , η αληθεια ειναι οτι δεν βλεπω να μου απανταει  :P (εχουν περασει 3 μερες)

Εγω το κουτι το εκανα παντως , με παυλες και την καθετο ( | ) και πολλα tab  :P



Κατι άκουσα οτι ο Καλογιάννης λείπει και θα έρθει απο βδομάδα , μαλλον για αυτο .


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Xplicit on April 29, 2017, 14:34:40 pm
Το πρόγραμμα θα το γράψουμε με pseudo? Γιατι όλες οι λυμένες ήταν σε bare machine  :o

ΥΓ. Εχει και άλλος θέμα με το τήμμυ? Μου βγάζει πως είναι unsafe και δεν δείχνει εικόνες και κάποια εικονίδια


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: leukosaraphs! on April 29, 2017, 14:57:35 pm
χωρις να ειμαι 100% σιγουρος , οι pseudo εντολες , δεν ειναι κατι διαφορετικο ...απλα ειναι πιο ευκολες στο διαβασμα...τι εννοω:

πχ:

Code:
l.s $f2, 24(t1)       # Load Single contained in 24(t1) to $f2

το οποιο ειναι ισοδυναμο με

Code:
lwc1 $f2, 24(t1)      # Load Word into Coprocessor 1 from 24(t1) to $f2

απλα η l.s θα μετεφραστει σε 2 εντολες οταν θα πας να το τρεξεις στο qtspim , ενω η lwc1 σε 1

περισσοτερες πληροφοριες (http://stackoverflow.com/questions/1165807/mips-floating-point-swc1-vs-s-s)



κατι παιζει με τα πιστοποιητικα της Startcom , και τον chrome .... η αληθεια ειναι οτι μου το εκανε κι εμενα πριν βδομαδες , καπως το φτιαξα  :P αλλα δεν θυμαμαι πως... η λυση ειναι να μπεις απο firefox


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Xplicit on April 29, 2017, 17:13:41 pm
Απο firefox μπαίνω αναγκαστικά αλλα και αυτος έχει ενα θεματάκι με την ασφάλεια όταν προσπαθώ να αλλάξω φώτο προφίλ...Anyway
Το σκέλος 1 το κάνατε με επανάληψη ή για κάθε a(x,y) χωριστά? Δεν είναι κάτι τρομερό λόγω του μεγέθους 2x2 αλλα άμα δινόταν μεγαλύτερος πίνακας φαντάζομαι θα υπήρχε πρόβλημα  :???:


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: snek on May 01, 2017, 19:39:22 pm
Έστειλα ένα mail στον Καλογιάννη και μου είπε τα εξής:

Θα πρέπει να διαβάζουμε float αριθμούς από το χρήστη ή μπορούμε κατευθείαν double;
H χρήση float είναι αρκετή. Μπορείς όμως αν θές να παίξεις και με double

Οι καταχωρητές για τις διευθύνσεις των πινάκων και των i,j,k πρέπει να είναι απαραίτητα αυτοί που γράφει στην εκφώνηση;
Ναι

Η ρουτίνα για τη υλοποίηση του πολλαπλασιασμού θα πρέπει να είναι συνάρτηση όπως περιγράφεται εδώ (https://people.cs.pitt.edu/~xujie/cs447/Mips/sub.html) (θα πρέπει να χρησιμοποιήσω jal, να αλλάξω τον sp κλπ);
Ναι χρειάζεται συνάρτηση για αυτό. Καλύτερα και από πλευράς δομής

Ναι , στην εκφωνηση λεει οι πραγματικοι αριθμοι που εισαγονται πρεπει να μετατρεπονται σε αριθμους κινητης υποδιαστολης , αυτος τι ακριβως εννοει αριθμους κινητης υποδιαστολης ? Οι πραγματικοι δεν ειναι ? :P Μπορω να θεωρησω απο την αρχη τον πινακα μου για double αριθμους και να τα κανω ολα ετσι , χωρις να μετατρεψω κατι ? Γενικα εχω μπερδευετει πολυ με την εκφωνηση σε αυτο το σημειο, για το τι θελει να κανω..


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Apostolof on May 01, 2017, 19:53:38 pm
Ναι , στην εκφωνηση λεει οι πραγματικοι αριθμοι που εισαγονται πρεπει να μετατρεπονται σε αριθμους κινητης υποδιαστολης , αυτος τι ακριβως εννοει αριθμους κινητης υποδιαστολης ? Οι πραγματικοι δεν ειναι ? :P Μπορω να θεωρησω απο την αρχη τον πινακα μου για double αριθμους και να τα κανω ολα ετσι , χωρις να μετατρεψω κατι ? Γενικα εχω μπερδευετει πολυ με την εκφωνηση σε αυτο το σημειο, για το τι θελει να κανω..

Ούτε εγώ κατάλαβα τι εννοεί η εκφώνηση, αλλά μετά την απάντηση που μου έδωσε δε το έψαξα και πολύ, τα έκανα όλα με double.


Title: Re: Εργασία Αρχιτεκτονικής Υπολογιστών 2016-17 Απορίες
Post by: Nerevar on May 01, 2017, 20:25:06 pm
Tags

καλυτερα τωρα?  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 02, 2017, 20:49:17 pm
Mια μικρή βοήθεια για το πώς θα θα διαβάζουμε floats στους πινακες! :'(


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 02, 2017, 20:50:35 pm
Τελικα μου απαντησαν στο e-mail  :P
Quote
Αρχικα , θα πρεπει αναγκαστικα το προγραμμα μας να γραφτει για double αριθμους, ή αρκει κι για float ?
Δευτερον , θα πρεπει η πραξη του πολ/σμου των 2 πινακων , να γραφτει αναγκαστικα σε "υπορουτινα" ή αρκει να βρισκεται μεσα στην main μας?
Τριτον , στο print πρεπει να να τυπωσουμε κι το "κουτι" γυρω γυρω, ή αρκει τους αριθμους στοιχισμενους με τα καταλληλα tabs ?
Τεταρτον , για την εισαγωγη δεδομενων ειναι απαραιτητη η δημιουργια επαναληψης , ή αρκει και μια πιο αναρχη εισαγωγη , με παρα πολλες φορες την ιδια εντολη? (αλλα με διαφορετικο μηνυμα καθε φορα)

και η απαντηση:
Quote
Απαντώ στα ερωτήματα σου:
1. Θα το κάνεις για double. Δεν αρκεί μόνο για float.
2. Θα κάνεις χρήση υποχρεωτικά υπο-ρουτίνας.
3. Θα βάλεις και το πλαίσιο στην εκτύπωση.
4. Το αφήνω ελεύθερο στην επιλογή σας.  Το βέλτιστο φυσικά είναι με χρήση επανάληψης.




Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 02, 2017, 20:52:46 pm
Mια μικρή βοήθεια για το πώς θα θα διαβάζουμε floats στους πινακες! :'(


Αρχικα , γνωριζεις οτι αναλογα την τιμη του $v0 , το syscall εκτελει διαφορετικο πραγμα? αν οχι , διαβασε εδω (https://courses.missouristate.edu/KenVollmar/mars/Help/SyscallHelp.html)

Ουσιαστικα για να διαβασεις float numbers , πρεπει το $v0 να ειναι 6 , κι η τιμη που διαβαζεις αποθηκευεται στον $f0

Απο εκει κι μετα απλα κανεις l.s τον $f0 , στην θεση πινακα που θες  ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 02, 2017, 21:14:13 pm
Ανοιξαν οι δηλώσεις στο ethmmy

Quote
Εργαστηριακή εξέταση

2 Μαϊ 2017 3:15 μμ
Χασάπης

Στην  ενότητα  "Εργαστήριο"  έχουν  δημιουργηθεί  κατάλογοι  στους  οποίους  καλούνται  να  εγγραφούν  οι
φοιτητές  γράφοντας  το  όνοματεπώνυμό  τους  και  τον  ΑΕΜ,  προκειμένου  να  εξετασθούν  στα
προγράμματα  και  θέμα  του  Α  μέρους  του  μαθήματος  της  Αρχιτεκτονικής  Υπολογιστών.  Κάθε  κατάλογος
αντιστοιχεί  σε  συγκεκριμένη  ημερομηνία  και  ώρα  εξέτασης.  Ο  αριθμός  των  φοιτητών  που  μπορούν  να
εγγραφούν  σε  κάθε  κατάλογο  είναι  20.  Όσοι  γραφούν  ως  υπεράριθμοι  θα
διαγραφούν.  Επομένως  το  συντομότερο  που  θα  αποφασίσει  κάθε  φοιτητής    να  εγγραφεί  τόσο
μεγαλύτερη  είναι  η  πιθανότητα  να  περιληφθεί  στον  κατάλογο  της  αρεσκείας  του.

Quote
ΠΡΟΣΟΧΗ

2 Μαϊ 2017 7:43 μμ
Χασάπης

Εφιστάται  η  προσοχή  των  φοιτητών  σχετικά  με  τη  δήλωση  εξέτασης  στους  καταλόγους  που  έχουν
αναρτηθεί.  Αν  μέχρι  τις  5/5/2017  δεν  εγγραφούν  σε  κατάλογο  δεν  θα  περιληφθούν  στις  εργαστηριακές
εξετάσεις  της  τρέχουσας  εξεταστικής  περιόδου  και  θα  πρέπει  να  δηλωθούν  στους  αντίστοιχους
καταλόγους  της  εξεταστικής  του  Σεπτεμβρίου  όταν  αυτοί  αναρτηθούν  μετά  τη  λήξη  της  εξεταστικής  του
Ιουνίου.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 03, 2017, 00:10:36 am
Ρε παιδια στο 2ο μελος της ισοτητας ειναι c[ 1 ][ j ] ή c[ i ] [ j ] ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 03, 2017, 00:14:20 am
Αρχικα , οταν γραφεις ενα κομματι κωδικα , για να ειναι πιο ευδιακριτο πατα την διεση που βλεπεις πανω στην γραμμη (που λεει insert code)

Δευτερον, ολα
Code:
 c[i][j] 
και ειναι λογικο , γιατι ουσιαστικα στην προηγουμενη θεση μνημης , προσθετεις του στοιχειου που βρισκεται στην επομενη ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: UglyNick on May 03, 2017, 00:54:10 am
Paidia ektelontas to parakato kodika paratiro oti mou tuponei ta apotelesmata me lathos tropo eno stous registers fainontai oti einai apothikeumena sosta.dld dinotas san input to 3.14 mou tuponei san apantisi to 3.14000010 anti gia to 3.140000.borei kapoios na to ektelesei kai na mou exigisei to lathos?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: JasonTheModel on May 03, 2017, 04:00:13 am
Paidia ektelontas to parakato kodika paratiro oti mou tuponei ta apotelesmata me lathos tropo eno stous registers fainontai oti einai apothikeumena sosta.dld dinotas san input to 3.14 mou tuponei san apantisi to 3.14000010 anti gia to 3.140000.borei kapoios na to ektelesei kai na mou exigisei to lathos?

εχει να κανει με την μετατροπη του αριθμου σου απο το δεκαδικο σε δυαδικο βαινουν πολλα ψηφια ισως και  λογο επαναληψης,γενικα δεν ειναι προβλημα.πχ αν δοκιμασεις αλλον αριθμο που η μετατροπη ειναι καλυτερη(0.625,1.5 κ.α) δεν εχεις θεμα.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 03, 2017, 11:55:55 am
Αρχικα , γνωριζεις οτι αναλογα την τιμη του $v0 , το syscall εκτελει διαφορετικο πραγμα? αν οχι , διαβασε εδω (https://courses.missouristate.edu/KenVollmar/mars/Help/SyscallHelp.html)

Ουσιαστικα για να διαβασεις float numbers , πρεπει το $v0 να ειναι 6 , κι η τιμη που διαβαζεις αποθηκευεται στον $f0

Απο εκει κι μετα απλα κανεις l.s τον $f0 , στην θεση πινακα που θες  ;)

Αν από την αρχή κάνω li $v0,7 ?
Και μετά πρέπει να κάνω l.s? και πώς?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 03, 2017, 12:22:56 pm
Αν από την αρχή κάνω li $v0,7 ?
Και μετά πρέπει να κάνω l.s? και πώς?

είναι σωστό? να το συνεχίσω?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 03, 2017, 20:12:14 pm

Γενικά έχεις μπλέξει λίγο εντολές για single και double.Για τα πρωτα απαιτούνται 32 bit ενώ για τα δεύτερα 64. Γράφοντας .space 16  κρατάς  16 byte  4 στοιχεία * 4 byte(32 bit) το καθένα που σημαίνει single.Η εντολή li $vo 7 όμως ειναι για να διαβάσεις double. li $vo 6 για single.Επίσης , η l.s αναφέρεται σε single (όποτε βλέπεις s είναι single και  d double ).Το πιο σημαντικό όμως είναι ότι l.s κάνει load και όχι store αυτό δηλαδή που θέλεις εσύ σε αυτό το σημείο.Απο κει και περα οι εντολές  la $t0,Array1(αν και δεν χρειάζεται 2 φορές) είναι οκ και οι l.s έχουν κατάλληλες διευθύνσεις και μάλιστα για double 8($to).
Συνοψίζοντας, αποφάσισε αν θα δουλέψεις σε double ή single και πρόσεξε άλλο store και άλλο load (μπορείς να το κάνεις και με loop)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 03, 2017, 20:21:17 pm
Επειδή είχα στείλει και εγώ email με κάποιες απορίες και θεωρώ ότι είναι σημαντικές τις παραθέτω εδώ:
1)Ο κώδικας πρέπει να είναι για bare machine οπότε τα li, la καλύτερα να μη χρησιμοποιηθούν.
2)Όσοι τρέξετε σε bare machine κοιτάξτε να βγάλετε το delayed branch & load γιατι δημιουργούν προβλήματα.
3)Το πλαίσιο δεν χρειάζεται να είναι ολόιδιο με αυτό της εκφώνησης αν και δεν νομίζω να γίνετε κιόλας.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 03, 2017, 20:30:49 pm
Τι εννοείς χωρίς li la???  σιγά το πράγμα


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 03, 2017, 20:32:28 pm
Τι εννοείς χωρίς li la???  σιγά το πράγμα
Με lui, ori, andi...Δεν ξέρω για σένα αλλα εμένα μου πήρε περισσότερο χρόνο να το κάνω να δουλεύει σε bare machine παρά να το λύσω  ;D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 03, 2017, 20:33:44 pm
Εννοούσα ότι δεν είναι γίνεται όπως το λες...  Ειδικά αυτές οι εντολές τις χρησιμοποιώ τουλάχιστον 100 φορές


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 03, 2017, 20:40:01 pm
Σου έφυγε κάποια λέξη παραπάνω ή εγώ δεν κατάλαβα σωστά τι εννοείς?  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Σαλτιμπάγκος on May 03, 2017, 20:46:59 pm
Οταν λεει να μετατρεπεται σε κινητης υποδιαστολης εννοει κατι τετοιο;

https://wikimedia.org/api/rest_v1/media/math/render/svg/ae814346939ac31086e1d0286c41d98e6b053102 (https://wikimedia.org/api/rest_v1/media/math/render/svg/ae814346939ac31086e1d0286c41d98e6b053102)



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 03, 2017, 21:29:58 pm
Σου έφυγε κάποια λέξη παραπάνω ή εγώ δεν κατάλαβα σωστά τι εννοείς?  :P

εννοω ρε φιλε , οτι παραδειγματα ακομα κι του βιβλιου , τις εχουν αυτες τις εντολες (li la) δεν μου φαινεται λογικο να μην χρησιμοποιηθουν


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 03, 2017, 21:31:01 pm
Οταν λεει να μετατρεπεται σε κινητης υποδιαστολης εννοει κατι τετοιο;

https://wikimedia.org/api/rest_v1/media/math/render/svg/ae814346939ac31086e1d0286c41d98e6b053102 (https://wikimedia.org/api/rest_v1/media/math/render/svg/ae814346939ac31086e1d0286c41d98e6b053102)



ουσιαστικα εννοει να χρησιμοποιησεις τους float registers  :P και οχι τους int


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 03, 2017, 22:39:45 pm
εννοω ρε φιλε , οτι παραδειγματα ακομα κι του βιβλιου , τις εχουν αυτες τις εντολες (li la) δεν μου φαινεται λογικο να μην χρησιμοποιηθουν

Τα προγράμματα του βιβλίου είναι γραμμένα με pseudo, τα παραδείγματα του Χασάπη όμως σε bare. Τον Καλογιάννη τον ρώτησα και είπε να κάνουμε κώδικα για bare machine.
Πρόγραμμα με li, la σε bare machine δεν τρέχει. Τώρα αμα δέχονται li, la...δεν μπορώ να σου το απαντήσω. Απο τα λεγόμενα πάντως φαίνεται πως οχι. Εγώ δεν θέλω να πάρω κανέναν στο λαιμό μου, απλά είπα τι μου απάντησε ο άνθρωπος. Επισυνάπτω και την απάντηση του


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 03, 2017, 23:04:08 pm
Τα προγράμματα του βιβλίου είναι γραμμένα με pseudo, τα παραδείγματα του Χασάπη όμως σε bare. Τον Καλογιάννη τον ρώτησα και είπε να κάνουμε κώδικα για bare machine.
Πρόγραμμα με li, la σε bare machine δεν τρέχει. Τώρα αμα δέχονται li, la...δεν μπορώ να σου το απαντήσω. Απο τα λεγόμενα πάντως φαίνεται πως οχι. Εγώ δεν θέλω να πάρω κανέναν στο λαιμό μου, απλά είπα τι μου απάντησε ο άνθρωπος. Επισυνάπτω και την απάντηση του

βρε ναι , και καλα εκανες  :P απλα ειναι χαμαλικα .... το μαρτυριο δεν εχει τελειωμο


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 03, 2017, 23:45:37 pm
βρε ναι , και καλα εκανες  :P απλα ειναι χαμαλικα .... το μαρτυριο δεν εχει τελειωμο

Ισχύει, 2 μέρες μου πήρε να λύσω την άσκηση και μια-μιση να αλλάξω ολα τα li, la  :'( :'(


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 11:25:42 am
Αρχικα , οταν γραφεις ενα κομματι κωδικα , για να ειναι πιο ευδιακριτο πατα την διεση που βλεπεις πανω στην γραμμη (που λεει insert code)

Δευτερον, ολα
Code:
 c[i][j] 
και ειναι λογικο , γιατι ουσιαστικα στην προηγουμενη θεση μνημης , προσθετεις του στοιχειου που βρισκεται στην επομενη ;)

Μια χαρά ευδιάκριτο είναι τρελάκο , σε ευχαριστώ πάντως !


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 11:53:02 am
Λοιπόν παιδια επειδή ψάχνομαι πολυ ώρα και δεν βρίσκω λύση , υπάρχει κάποιος πιο αποδοτικός τρόπος να τυπώσω το πλαίσιο , από το να τυπώνω παύλες και καθέτους στην σειρα ? :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 04, 2017, 12:36:52 pm
Στο ethmmy στις συχνές ερωτήσεις έχει ανεβάσει κάποιες διευκρινίσεις όπου λέει:
Quote
Ο πινακας δεν χρειάζεται να έχει τη μορφή που δείχνεται στην εκφώνηση. Το μόνο που χρειάζεται είναι να δίνεται το σύμβολο του στοιχείου του πίνακα και δίπλα η τιμή του σε οριzόντιες γραμμές ή το ένα στοιχείο κάτω από το άλλο χωρίς πλαίσια κ.ττ.λ.

Επίσης σε άλλο σημείο λέει ότι μπορούμε να χρησιμοποιήσουμε την mul.d η οποία αν δε κάνω λάθος είναι pseudo instruction. Άρα και αυτό με το bare machine μπορεί να μην ισχύει;

Τελικά, μου φαίνεται απαντάνε στην τύχη και ανάλογα με το ποιον θα ρωτήσεις μπορεί να σου πει διαφορετικό πράγμα :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 13:04:01 pm
Ισχύει, 2 μέρες μου πήρε να λύσω την άσκηση και μια-μιση να αλλάξω ολα τα li, la  :'( :'(
Εγώ , αυτό που παρατήρησα είναι ότι το spim , όταν γράφεις εντολές με li , la από μόνο του στις βγάζει με Lui και ori όταν τις εκτελεί , παρατήρησε στην φώτο , όπου έχω εντολή με li ή la , τι μου έχει στα αριστερά


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 04, 2017, 14:32:06 pm
Οι pseudo είναι καθαρά φτιαγμένες για δική μας διευκόλυνση. To spim μετατρέπει τις εντολές στο "επίσημο" μπλόκ του. Δεν υπάρχει εντολή li, la στο bare, όπως επίσης δεν υπάρχει και not. Nor υπάρχει!   ;)

Edit:Τώρα είδα οτι με είχες κάνει quote  ;D Ο κώδικας στα αριστερά δεν είναι ισοδύναμος με τον κώδικα που θα γράψεις εσυ για bare, το γιατί δεν το ξέρω. Στην αρχή τον είχα αντιγράψει αλλα προφανώς δεν δούλευε, σιγά μην ήταν τόσο εύκολο  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: gpapadimi on May 04, 2017, 14:42:16 pm
Αν τυπωσουμε το πλαισιο με παυλες και καθετους δεν θα εχει τη μορφη του πλαισιου στην εκφωνηση, αφου οι καθετοι δημιουργουν κενα στις αλλαγες γραμμων, γνωριζει καποιος που το εχει κανει μηπως υπαρχει τροπος να το αποφυγουμε αυτο;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 14:58:38 pm
Οι pseudo είναι καθαρά φτιαγμένες για δική μας διευκόλυνση. To spim μετατρέπει τις εντολές στο "επίσημο" μπλόκ του. Δεν υπάρχει εντολή li, la στο bare, όπως επίσης δεν υπάρχει και not. Nor υπάρχει!   ;)

Edit:Τώρα είδα οτι με είχες κάνει quote  ;D Ο κώδικας στα αριστερά δεν είναι ισοδύναμος με τον κώδικα που θα γράψεις εσυ για bare, το γιατί δεν το ξέρω. Στην αρχή τον είχα αντιγράψει αλλα προφανώς δεν δούλευε, σιγά μην ήταν τόσο εύκολο  :P

Ποοοοοο , όχι ρε φίλε και νόμιζα ότι βρήκα ιδεάρα.. :P Ξεκόλλα , άσκοπος χρόνος τώρα ρε πούστη , γιατί βγάζει κόμπλεξ με τα li, la ? :P Άμα δεν τα αλλάξω λες να με κόψει ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 04, 2017, 15:11:27 pm
Πραγματικά δεν ξέρω, ειδικά μετά το σημερινό που ο ένας λέει με πλαίσιο και ο άλλος χωρίς...Δεν εχω ιδέα. Εγώ το έκανα για bare απλά για να είμαι σίγουρος  :o
Πάντως τα li, la είναι τα μόνα εύκολα, αλλάζουν γρήγορα. Η sdc1 έχει θέμα γιατί πρέπει να γραφεί με τη μορφή offset(καταχωρητής) και πρέπει να φάς τη ζωή σου
ψάχνοντας τη μνήμη  >:(


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 15:14:24 pm
Στο ethmmy στις συχνές ερωτήσεις έχει ανεβάσει κάποιες διευκρινίσεις όπου λέει:
Επίσης σε άλλο σημείο λέει ότι μπορούμε να χρησιμοποιήσουμε την mul.d η οποία αν δε κάνω λάθος είναι pseudo instruction. Άρα και αυτό με το bare machine μπορεί να μην ισχύει;

Τελικά, μου φαίνεται απαντάνε στην τύχη και ανάλογα με το ποιον θα ρωτήσεις μπορεί να σου πει διαφορετικό πράγμα :P
Η mul.d δεν είναι , αλλά είναι πολλές άλλες που σίγουρα έχουμε χρησιμοποιήσει όλοι , πέρα από τις li , la .Πχ είναι η bge , η move..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 15:19:39 pm
Πραγματικά δεν ξέρω, ειδικά μετά το σημερινό που ο ένας λέει με πλαίσιο και ο άλλος χωρίς...Δεν εχω ιδέα. Εγώ το έκανα για bare απλά για να είμαι σίγουρος  :o
Πάντως τα li, la είναι τα μόνα εύκολα, αλλάζουν γρήγορα. Η sdc1 έχει θέμα γιατί πρέπει να γραφεί με τη μορφή offset(καταχωρητής) και πρέπει να φάς τη ζωή σου
ψάχνοντας τη μνήμη  >:(
Ντάξει , με την sdc1 το έκανα , απλά με τα li , la δεν έχω βρεί κάποιο καλό document που να λέει πως γίνεται η αλλαγή, εσύ βρήκες κάποιο καλό ή να ψαχτώ στο βιβλίο ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 04, 2017, 15:45:38 pm
Η mul.d δεν είναι , αλλά είναι πολλές άλλες που σίγουρα έχουμε χρησιμοποιήσει όλοι , πέρα από τις li , la .Πχ είναι η bge , η move..

Η mul είναι pseudo που γίνεται με συνδυασμό των mult και mflo. Άρα λογικά και η mul.d είναι pseudo.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Mandalorian on May 04, 2017, 17:28:49 pm
Αν γραψουμε το προγραμμα με pseudo commands, και μετα κανουμε copy-paste το προγραμμα που εμφανιζεται διπλα (που δεν εχει pseudo), θεωρητικα το ιδιο δεν ειναι;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 04, 2017, 18:16:17 pm
Αν γραψουμε το προγραμμα με pseudo commands, και μετα κανουμε copy-paste το προγραμμα που εμφανιζεται διπλα (που δεν εχει pseudo), θεωρητικα το ιδιο δεν ειναι;

Ο κώδικας στα αριστερά δεν είναι ισοδύναμος με τον κώδικα που θα γράψεις εσυ για bare, το γιατί δεν το ξέρω. Στην αρχή τον είχα αντιγράψει αλλα προφανώς δεν δούλευε, σιγά μην ήταν τόσο εύκολο  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 19:43:12 pm
Η mul είναι pseudo που γίνεται με συνδυασμό των mult και mflo. Άρα λογικά και η mul.d είναι pseudo.

Δοκίμασε να την φορτώσεις σε bare machine , θα δεις εμένα δεν βγάζει error..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 19:45:49 pm
Το θέμα είναι όμως ότι ο Καλογιάννης είπε ότι χρειάζεται το πλαίσιο ενώ ο Χασάπης όχι :P .. Πως γίνεται να ρωτήσουμε και τον Χασάπη για το αν πρέπει να γίνει σε bare machine ?  Γιατί κάτι email που έχει ο Χασάπης και έστειλα μήνυμα δεν υπάρχουν :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: UglyNick on May 04, 2017, 20:46:41 pm
Σχετικά με την χρήση pseudoinstructions έστειλα και εγώ ένα mail στον καλογιάννη και περιμένω απάντηση.Απλά,αρχικά είχα παρατηρήσει ότι στις Συχνές ερωτήσεις για τις εργασίες στην Αρχιτεκτονική Υπολογιστών Εαρινού Εξ. 2015 δίνετε η εξής απάντηση:
   
Μπορούμε να χρησιμοποιούμε "ψευδοεντολές" όπως είναι η la και η li, ή θα πρέπει να χρησιμοποιούμε μόνο εντολές που βρίσκονται στο πινακάκι. Δηλαδή αντι για la και li, να χρησιμοποιήσουμε lui και ori αντίστοιχα.
Μπορείτε να χρησιμοποιείτε ψευδοεντολές όπως li και la και όλες τις άλλες που υποστηρίζει ο προσομοιωτής QtSpim

Τώρα βέβαια δεν θέλω να κάψω κανένα οπότε το αφήνω στην κρίση σας και θα ποστάρω και εγώ την απάντηση του καλογιάννη.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 21:52:16 pm
Για την 2η εργασία να ξέρετε στο βιβλίο της θεωρίας στη φωτογραφία που λέει για τον καταχωρητή status και cause τους έχει ανάποδα ...


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 04, 2017, 21:55:01 pm
Σχετικά με την χρήση pseudoinstructions έστειλα και εγώ ένα mail στον καλογιάννη και περιμένω απάντηση.Απλά,αρχικά είχα παρατηρήσει ότι στις Συχνές ερωτήσεις για τις εργασίες στην Αρχιτεκτονική Υπολογιστών Εαρινού Εξ. 2015 δίνετε η εξής απάντηση:
   
Μπορούμε να χρησιμοποιούμε "ψευδοεντολές" όπως είναι η la και η li, ή θα πρέπει να χρησιμοποιούμε μόνο εντολές που βρίσκονται στο πινακάκι. Δηλαδή αντι για la και li, να χρησιμοποιήσουμε lui και ori αντίστοιχα.
Μπορείτε να χρησιμοποιείτε ψευδοεντολές όπως li και la και όλες τις άλλες που υποστηρίζει ο προσομοιωτής QtSpim

Τώρα βέβαια δεν θέλω να κάψω κανένα οπότε το αφήνω στην κρίση σας και θα ποστάρω και εγώ την απάντηση του καλογιάννη.
Ναι , και γω το είχα τσεκάρει αυτό και θα μπορούσε να ΄ταν πολυ καλη δικαιολογία αμα με πει γιατι δεν τα αλλαξα :P Ο καλογιαννης ειναι υπερ του bare machine ,  με τον Χασάπη πρεπει να επικοινωνησουμε


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 04, 2017, 22:38:55 pm
Ντάξει , με την sdc1 το έκανα , απλά με τα li , la δεν έχω βρεί κάποιο καλό document που να λέει πως γίνεται η αλλαγή, εσύ βρήκες κάποιο καλό ή να ψαχτώ στο βιβλίο ?

Θα κάνεις lui τα πρώτα 4 ψηφία που τα ξέρεις σίγουρα. Και μετα ori τα υπόλοιπα ώστε το άθροισμα να δώσει τη διεύθυνση που θέλεις. Τη διεύθυνση μπορείς να τη βρείς απο το
data segment ή προσθέτοντας τον κατάληλο αριθμό στην πρώτη σου διεύθυνση.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 04, 2017, 22:44:29 pm
Η mul.d δεν είναι pseudo. Στο παράρτημα Β πρός το τέλος του Patterson έχει το σύνολο όλων των εντολών και γράφει τι κάνουν και αμα είναι pseudo. Just saying  :)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 05, 2017, 01:32:12 am
ΕΝΗΜΕΡΩΣΗ
Μου έστειλε e-mail ο Καλογιάννης και λέει πως μπορεί να χρησιμοποιηθεί pseudo κώδικας. Αν και θα ρωτήσει και τον Χασάπη  :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: UglyNick on May 05, 2017, 02:29:17 am
ΕΝΗΜΕΡΩΣΗ
Μου έστειλε e-mail ο Καλογιάννης και λέει πως μπορεί να χρησιμοποιηθεί pseudo κώδικας. Αν και θα ρωτήσει και τον Χασάπη  :D

Ναι,και σε εμένα έδωσε το οκ για χρήση pseudoinstructions   :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Mandalorian on May 05, 2017, 04:09:42 am
ΕΝΗΜΕΡΩΣΗ
Μου έστειλε e-mail ο Καλογιάννης και λέει πως μπορεί να χρησιμοποιηθεί pseudo κώδικας. Αν και θα ρωτήσει και τον Χασάπη  :D

Εχουν αλλαξει εφτα φορες γνωμη. Ας ελπισουμε αυτη να ειναι σωστη  :P
Thanks for the update


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: terroriste on May 05, 2017, 14:06:30 pm
Παιδιά, έχω κάνει όλο τον αλγόριθμο της πρώτης εργασίας, δουλεύει τέλεια με ακέραιους, βγάζει σωστά τα αποτελέσματα κλπ αλλά όταν εισάγω πραγματικούς με ένα ή δύο ψηφία μετά την υποδιαστολή λαμβάνει υπόψιν μόνο το ακέραιο μέρος. Έχω δηλώσει τα πάντα double, όλες οι πράξεις είναι double. Είχα την εντύπωση ότι θα κάνει αυτόματα τους αριθμούς με υποδιαστολή. Πρέπει να τα μετατρέπω εγώ μήπως παρόλο που είναι double;  :???:  :???:


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 05, 2017, 14:18:00 pm
Μήπως διαβάζεις από τον χρήστη ακέραιους αντι για πραγματικούς;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: ioanmpou on May 05, 2017, 14:52:20 pm
Παιδιά, έχω κάνει όλο τον αλγόριθμο της πρώτης εργασίας, δουλεύει τέλεια με ακέραιους, βγάζει σωστά τα αποτελέσματα κλπ αλλά όταν εισάγω πραγματικούς με ένα ή δύο ψηφία μετά την υποδιαστολή λαμβάνει υπόψιν μόνο το ακέραιο μέρος. Έχω δηλώσει τα πάντα double, όλες οι πράξεις είναι double. Είχα την εντύπωση ότι θα κάνει αυτόματα τους αριθμούς με υποδιαστολή. Πρέπει να τα μετατρέπω εγώ μήπως παρόλο που είναι double;  :???:  :???:

Μήπως έχεις τα πληκτρολόγιο στα ελληνικά?Εγώ όταν το έχω στα ελλ δε μου διαβάζει τους αριθμούς μετά την υποδιαστολή.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: ioanmpou on May 05, 2017, 14:56:43 pm
Παιδιά όταν κάνω το πολλαπλασιασμό, αντί να μου εμφανίσει το αποτέλεσμα για παράδειγμα 4.44 μου εμφανίζει 4,39999999999999999.
Ξέρετε τι παίζει?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 05, 2017, 15:52:25 pm
Παιδιά όταν κάνω το πολλαπλασιασμό, αντί να μου εμφανίσει το αποτέλεσμα για παράδειγμα 4.44 μου εμφανίζει 4,39999999999999999.
Ξέρετε τι παίζει?
Μονο στο συγκεκριμενο στο κανει ή οτιδηποτε πινακες και να δοκιμασεις πεταει διαφορετικα νουμερα ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: ioanmpou on May 05, 2017, 16:13:39 pm
στις περισσότερες περιπτώσεις.......Μπορεί για παράδειγμα ένα στοιχείο του πίνακα να είναι 15,2 και να μου το δώσει τόσο ακριβώς και κάποιο άλλο αντί για παράδειγμα να μου δώσει 11,8 να μου δώσει 11,79999999999999. Παραπάνω ηθελα να πω αντι για 4,4 μου βγαζει 4,39999999999.Έχω δηλαδή μια πολύ μικρή απόκλιση.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: nFin1ty on May 05, 2017, 17:12:10 pm
Δεν μπορούν να αναπαρασταθούν όλοι οι δεκαδικοί αριθμοί επακριβώς σαν float, double κ.λπ. που έχουν περιορισμένο αριθμό bit. Συνήθως υπάρχουν τέτοιες μικρές αποκλίσεις.
http://stackoverflow.com/questions/588004/is-floating-point-math-broken


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: terroriste on May 05, 2017, 21:45:31 pm
Μήπως διαβάζεις από τον χρήστη ακέραιους αντι για πραγματικούς;

Όχι, όλες τις πράξεις, το διάβασμα, την αποθήκευση, την φόρτωση τις έκανα με εντολές για double.
Άρα, κάπου έχω κάνει λάθος αλλού έτσι; Δεν χρειάζεται η μετατροπή για υποδιαστολή εφόσον είναι double;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 06, 2017, 10:47:10 am
Όχι, όλες τις πράξεις, το διάβασμα, την αποθήκευση, την φόρτωση τις έκανα με εντολές για double.
Άρα, κάπου έχω κάνει λάθος αλλού έτσι; Δεν χρειάζεται η μετατροπή για υποδιαστολή εφόσον είναι double;

Ναι , άμα τα κάνεις όλα σωστά για double , δεν χρειάζεται κάποια μετατροπή , οπότε μπορεί να έχεις κάπου αλλού λάθος .. Μια είναι η λύση... τρέχεις single step εντολές και τα τσεκάρεις όλα , καταχωρητές, μνήμη και έτσι θα βρεθεί σίγουρα το λάθος , απλά υπομονή..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 06, 2017, 11:55:52 am
Στην 2η εργασία μας λέει να αναλύσουμε τους καταχωρητές Cause και Status , δηλαδή θέλει bit προς bit να τα μάθουμε όλα απέξω ? Και αν ναι , γιατί όταν βάζω τους registers σε Binary , ο cause έχει μόνο 6 ψηφία ? Έχει ασχοληθεί κανείς ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 06, 2017, 17:42:45 pm
Στην 2η εργασία μας λέει να αναλύσουμε τους καταχωρητές Cause και Status , δηλαδή θέλει bit προς bit να τα μάθουμε όλα απέξω ? Και αν ναι , γιατί όταν βάζω τους registers σε Binary , ο cause έχει μόνο 6 ψηφία ? Έχει ασχοληθεί κανείς ?
Ο cause  έχει σ αυτή την περίπτωση τα υπόλοιπα "μπροστινά" ψηφία 0 γι αυτό δεν τα εμφανίζει.Δηλαδή αυτά τα έξι που σου εμφανίζονται είναι τα έξι λιγότερο σημαντικά ψηφία.για παράδειγμα cause δεκαεξαδικό 24--->δυαδικό 0010 0100-->100100 τα έξι που πιθανόν σου εμφανίζει.δεν είναι πάντα 6 βέβαια..
οπότε από εκεί βρίσκεις και το exception code κ.τ.λ. που χρειάζεται μάλλον να ξέρεις σε ποια bit του cause βρίσκεται.γενικά διαβάζοντας και τον κώδικα βήμα βήμα μπορείς να καταλάβεις κάπως τι παίζει




Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 07, 2017, 12:46:52 pm
Το μήνυμα που πετάει το QtSpim "attempt to execute non-instruction at.." ενώ εκτελείται κανονικά ο κώδικας,
συμβαίνει επειδή εντοπίζει κάποια ψευδο-εντολή;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 07, 2017, 22:37:53 pm
ARRAY3:
 la $s0,size1
 lw $s1,0($s0)      # size1 in $s1
 ori $s2,$zero,0    # i in $s2
 la $a0,arr3        # arr3 in $a0

#multiply arrays
 li $t1,2
 li $s0,0

L1:
  li $s1,0
L2:
  li $s2,0
 
  sll $t2,$s0,5
  addu $t2,$t2,$s1
  sll $t2,$t2,3
  addu $t2,$a0,$t2
  l.s $f4,0($t2)


L3:
  sll $t0,$s2,5
  addu $t0,$t0,$s1
  sll $t0,$t0,3
  addu $t0,$a2,$t0
  l.s $f16,0($t0)
  sll $t0,$s0,5
  addu $t0,$t0,$s2
  sll $t0,$t0,3
  addu $t0,$a1,$t0
  l.s $f18,0($t0)
   
  mul.s $f16,$f18,$f16
  add.s $f4,$f4,$f16

  addiu $s2,$s2,1
  bne $s2,$t1,L3
  s.s $f4,0($t2)
 
  addi $t0,$t0,4
  addi $t1,$t1,1
  addiu $s1,$s1,1
  bne $s1,$t1,L2

  addiu $s0,$s0,1
  bne $s0,$t1,L1

#print the elements
 li $v0,4
 la $a0,msg2
 syscall

 la $t0,arr3
 ori $t1,$zero,0

LO:
  beq $t1,$s1,EXIT
  lwc1 $f20,0($t0)
  li $v0,2
  mov.s $f12,$f20
  syscall
  li $v0,4
  la $a0,msg3
  syscall
  addi $t0,$t0,4
  addi $t1,$t1,1
  j LO
Μπορεί κάποιος να βοηθήσει? Γιατί δεν λειτουργεί?  :'(


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 07, 2017, 23:02:00 pm
....

το sll .... 5

τι κανει ακριβως?  ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 07, 2017, 23:05:53 pm
το sll .... 5

τι κανει ακριβως?  ;)

Από τις διαφάνειες του κ. Χασάπη για τον πολλαπλασιασμό. Όπως ακριβώε το έχει


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 07, 2017, 23:09:21 pm
θες να κανεις επι 2 ...εσυ κανεις επι 32

κατι αλλο δεν βλεπω , αλλα παιζει κι να μην προσεξα  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 07, 2017, 23:10:43 pm
θες να κανεις επι 2 ...εσυ κανεις επι 32

κατι αλλο δεν βλεπω , αλλα παιζει κι να μην προσεξα  :P
Δηλαδή το 5 το κάνω 2? Το θέμα είναι ότι μου χτυπαέι στη μνήμη και δεν εμφανίζει αποτέλεσμα καν.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 07, 2017, 23:14:00 pm
η αριστερη ολισθιση κατα i ειναι πολ/σμος κατα 2^i

λογικο να χτυπαει στην μνημη αν της αλλαζεις ανα 32 ... δεν ειναι κι λιγα  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 07, 2017, 23:21:32 pm
η αριστερη ολισθιση κατα i ειναι πολ/σμος κατα 2^i

λογικο να χτυπαει στην μνημη αν της αλλαζεις ανα 32 ... δεν ειναι κι λιγα  :P
Κατάλαβα... το άλλαξα ωστόσο ακόμη τρέχει... αποτέλεσμα δεν τυπώνει :-\


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 07, 2017, 23:25:56 pm
Κατάλαβα... το άλλαξα ωστόσο ακόμη τρέχει... αποτέλεσμα δεν τυπώνει :-\

εε τοτε θα εχεις κι αλλα λαθη, επισης με μπερδευει ο κωδικας σου κι δεν μπορω να βρω κατι ...


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Alex_corfu on May 08, 2017, 13:22:04 pm
Για τις γραμμές του box για τα αποτελέσματα του πίνακα C υπάρχει καμία ιδέα για το πως να υλοποιηθεί σωστά? Προσπάθησα με τα κατάλληλα κενά, | , _ αλλά δεν βγήκε και πολύ ωραίο ;D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 08, 2017, 15:59:33 pm
Πως ήταν η εξέταση σήμερα;; Εύκολα, δύσκολα τι φάση;;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 08, 2017, 16:02:23 pm
Η εμφάνιση των μηνυμάτων για την εισαγωγή των στοιχείων πρέπει να γίνει μέσα σε κάποια επανάληψη η μπορεί να γίνει με τη χρήση πολλών syscall;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Mandalorian on May 08, 2017, 17:33:59 pm
Η εμφάνιση των μηνυμάτων για την εισαγωγή των στοιχείων πρέπει να γίνει μέσα σε κάποια επανάληψη η μπορεί να γίνει με τη χρήση πολλών syscall;

εχω την ενυπωση οτι δεν εχει θεμα, αλλα για θεμα συντομιας προτεινε την επαναληψη


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 08, 2017, 18:39:25 pm
Για τις γραμμές του box για τα αποτελέσματα του πίνακα C υπάρχει καμία ιδέα για το πως να υλοποιηθεί σωστά? Προσπάθησα με τα κατάλληλα κενά, | , _ αλλά δεν βγήκε και πολύ ωραίο ;D

Δεν υπάρχουν και πολλές δυνατότητες βελτίωσης, αλλα παίζει να μην το θέλουν κιόλας τελικά  ;D Εγώ το έκανα έτσι.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 08, 2017, 19:14:51 pm
ωστόσο αν βάλεις νούμερα με πολλά δεκαδικα,  το format χαλάει... άρα δεν έχει νόημα το κουτί


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 08, 2017, 20:50:42 pm
Αν κάνω με loop την αρχικοποίηση του κάθε πίνακα,έχει κανείς καμιά ιδέα  πως μπορώ σε κάθε επανάληψη να αλλάζω το περιεχόμενο του μηνύματος(a[1,1] a[1,2] κλπ) που εμφανίζω ώστε να μην αναγκαστώ να δηλώσω εξαρχής 8 διαφορετικά μηνύματα;(1 για κάθε στοιχείο δηλαδή)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: ioanmpou on May 08, 2017, 21:05:46 pm
Παιδιά στη δεύτερη εργασία σε αυτή την ερώτηση "Ποια είναι η διεύθυνση της εντολής του προγράμματος των εξαιρέσεων που
καθιστά τον MIPS ικανό να αναγνωρίζει εξαιρέσεις και διακοπές" τι πρέπει να απαντήσουμε?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 08, 2017, 21:09:36 pm
Αν κάνω με loop την αρχικοποίηση του κάθε πίνακα,έχει κανείς καμιά ιδέα  πως μπορώ σε κάθε επανάληψη να αλλάζω το περιεχόμενο του μηνύματος(a[1,1] a[1,2] κλπ) που εμφανίζω ώστε να μην αναγκαστώ να δηλώσω εξαρχής 8 διαφορετικά μηνύματα;(1 για κάθε στοιχείο δηλαδή)

Σε κάθε επανάληψη θα εμφανίζεις το κομμάτι "a[", μετά με τη γραμμή στην οποία βρίσκεσαι εκείνη τη στιγμή, μετά το ",", μετά τη στήλη και τέλος το "]= ".
Έτσι χρειάζεται να δηλώσεις τα εξής μηνύματα:
"a["      "b["      "c["      ","      "]= "

Για να εμφανίσεις το νούμερο της γραμμής και στήλης που γράφω παραπάνω θα κάνεις:
Code:
add	$a0, $t5, 1
li $v0, 1
syscall

Εδώ υποθέτω ότι στον καταχωρητή t5 υπάρχει η γραμμή και ότι η γραμμή ξεκινάει από το 0 και όχι το 1 (για αυτό κάνω το add και όχι move).


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 08, 2017, 22:33:32 pm
ωστόσο αν βάλεις νούμερα με πολλά δεκαδικα,  το format χαλάει... άρα δεν έχει νόημα το κουτί

Ωραία παρατήρηση  :)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 09, 2017, 14:18:02 pm
Σε κάθε επανάληψη θα εμφανίζεις το κομμάτι "a[", μετά με τη γραμμή στην οποία βρίσκεσαι εκείνη τη στιγμή, μετά το ",", μετά τη στήλη και τέλος το "]= ".
Έτσι χρειάζεται να δηλώσεις τα εξής μηνύματα:
"a["      "b["      "c["      ","      "]= "

Για να εμφανίσεις το νούμερο της γραμμής και στήλης που γράφω παραπάνω θα κάνεις:
Code:
add	$a0, $t5, 1
li $v0, 1
syscall

Εδώ υποθέτω ότι στον καταχωρητή t5 υπάρχει η γραμμή και ότι η γραμμή ξεκινάει από το 0 και όχι το 1 (για αυτό κάνω το add και όχι move).

ευχαριστώ πολύ για τη βοήθεια,δεν σε κατάλαβα πολύ στο κομμάτι του κώδικα είναι η αλήθεια


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 09, 2017, 16:07:16 pm
Ναι δε το έγραψα και πολύ καλά. Εγώ αυτό που κάνω είναι:
Code:
για t5 από 0 έως 1			\\t5 == γραμμές
για t6 από 0 έως 1 \\t6 == στήλες
εμφάνισε "a[" \\το έχω στο .data
εμφάνισε t5 + 1
εμφάνισε "," \\το έχω στο .data
εμφάνισε t6 + 1
εμφάνισε "]= " \\το έχω στο .data
διάβασε τιμή από τον χρήστη
αποθήκευσε την στο (2*t5+t6)*8+base_address του πίνακα a
εμφάνισε "\n"

Πρόσεξε ότι στις εμφανίσεις δεν αλλάζει γραμμή από μόνο του, αλλά μόνο αν έχεις εσύ \n. Οπότε κάνει διαδοχικά:
Code:
a[1,1]= (περιμένει τιμή και όταν πάρει αλλάζει σειρά)
a[1,2]= (περιμένει τιμή και όταν πάρει αλλάζει σειρά)
a[2,1]= (περιμένει τιμή και όταν πάρει αλλάζει σειρά)
a[2,2]= (περιμένει τιμή και όταν πάρει αλλάζει σειρά)

Το κομμάτι που εμφανίζεις τα strings είναι όπως ξέρεις, ενώ τα εμφάνισε t5 + 1 και εμφάνισε t6 + 1 είναι όπως έγραψα εδώ:
Code:
add	$a0, $t5, 1
li $v0, 1
syscall

Αυτό στην ουσία κάνει τις εμφανίσεις και το γέμισμα ενός πίνακα. Το παραπάνω από μόνο του δε ξέρω αν σου γλιτώνει πολλά. Πάντως μπορείς να το βάλεις όλο αυτό μέσα σε μία εξωτερική λούπα η οποία θα γίνεται 2 φορές. Έτσι τη πρώτη φορά θα τρέχει για τον πίνακα a και τη δεύτερη για τον b. Για να γίνει αυτό χρειάζονται 2 επιπλέον έλεγχοι με τους οποίους θα καθορίζεις αν θα εμφανιστεί a[ ή b[ και αν το base_address θα είναι του a ή του b. That's all.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Σαλτιμπάγκος on May 09, 2017, 18:29:10 pm
Quote
Θέσατε σημείο διακοπής στη διεύθυνση 0x80000180 από την οποία αρχίζει
το πρόγραμμα του λειτουργικού συστήματος που διαχειρίζεται μερικές
εξαιρέσεις.

πως ακριβως το κανουμε αυτο; οποιαδηποτε διακοπη συμβαινει ξεκιναει απο εκει . Εμεις τι ακριβως πρεπει να κανουμε;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 09, 2017, 19:16:33 pm
Εγώ νόμιζα ότι με το "σημείο διακοπής" εννοούσε το break point.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Σαλτιμπάγκος on May 09, 2017, 19:18:48 pm
Εγώ νόμιζα ότι με το "σημείο διακοπής" εννοούσε το break point.

αν δεν κανω λαθος ειναι διαφορετικα πραγματα. αλλα ακομα κ ετσι πως θετεις breakpoint? δηλαδη σε ποιο σημειο;δεν εχουμε καποιο κωδικα η κατι τετοιο. Λογικα θελει να γραψουμε εμεις κατι. εχει ιδεα κανενας τι;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 09, 2017, 19:26:03 pm
αν δεν κανω λαθος ειναι διαφορετικα πραγματα. αλλα ακομα κ ετσι πως θετεις breakpoint? δηλαδη σε ποιο σημειο;δεν εχουμε καποιο κωδικα η κατι τετοιο. Λογικα θελει να γραψουμε εμεις κατι. εχει ιδεα κανενας τι;

Όταν ανοίγεις το QtSpim θα πρέπει να έχει ήδη κάποιες εντολές στο Kernel Text Segment χωρίς να έχεις φορτώσει κάποιο πρόγραμμα. Εκεί μπορείς να δεις στα αριστερά τη διεύθυνση της κάθε εντολής και να βρεις την 80000180. Δες και στο συννημένο.

Αν σου βγάζει ότι νάνε αριθμούς στο exception αντί για 0x200000000 και 0x200000004 όπως θα έπρεπε, πάρα στο κουμπί clear registers.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Σαλτιμπάγκος on May 09, 2017, 19:40:41 pm
αααα  :D :D

κ απο κει κ περα τρεχουμε βημα βημα τις εντολες χωρις το breakpoint για να καταλαβουμε τι παιζει ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 09, 2017, 20:09:31 pm
Ναι, έτσι κατάλαβα εγώ.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: r.i.p on May 09, 2017, 21:37:25 pm
ναι ετσι ειναι...ολο το θεμα ειναι να καταλαβεις με ποιον τροπο οι εντολες δίνουν τις αντίστοιχες τιμες στους (EPC, Status ....κτλ )..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: terzmich on May 10, 2017, 13:15:00 pm
Σε εμενα οταν ανοιγω το QtSpim , αν δεν βαλω προγραμμα δεν εχει καμια εντολη στο Kernel Text Segment, ξερεις κανεις τι φταει?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: George_RT on May 10, 2017, 14:13:13 pm
Σε εμενα οταν ανοιγω το QtSpim , αν δεν βαλω προγραμμα δεν εχει καμια εντολη στο Kernel Text Segment, ξερεις κανεις τι φταει?

Πήγαινε στα settings-->mips και ενεργοποίησε το load exception handler


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 10, 2017, 16:09:06 pm
πως γίνεται να αποθηκευσω πολλες σειρες string στη μνημη .data και μετα να καλω με την syscall οποια θελω για εκτυπωση?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: George_RT on May 10, 2017, 16:24:46 pm
πως γίνεται να αποθηκευσω πολλες σειρες string στη μνημη .data και μετα να καλω με την syscall οποια θελω για εκτυπωση?

Στο .data γραφεις π.χ
Code:
message1: .asciiz " message1 \n"
message2: .asciiz "message2 \n"
Και μετα για να το καλέσεις
Code:
li $v0,4
la $a0,message1
syscall
li $v0,4
la $a0,message2
syscall


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 10, 2017, 18:41:12 pm
Οι πινακες 2χ2 πρέπει να ειναι οντως 2D ή να τους κανουμε 1D πίνακες 4χ1 ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 10, 2017, 19:06:39 pm
Οι πινακες 2χ2 πρέπει να ειναι οντως 2D ή να τους κανουμε 1D πίνακες 4χ1 ;

Δεν υπάρχουν πολυδιάστατοι στην Assembly οπότε αναγκαστικά το κάνεις με 1Χ4 πίνακα.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 11, 2017, 11:46:19 am
Παιδιά ορίζεται η παρακάτω εντολή;


Code:

sdc1 $f0, ArrayA($t0)


οπού ουσιαστικά ΑrrayA το όνομα του πίνακα που έχουμε δηλώσει στη περιοχή της μνήμης και αποτελεί το base address και o καταχωρητής $t0 κρατάει το offset. Έχω δει την παραπάνω σύνταξη σε διάφορα βιντεάκια αλλά δεν υπάρχει πουθενά στο βιβλίο.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 11, 2017, 11:46:56 am
Στο σημειο που θελω να διαβασω μια τιμη (κινητης υποδιαστολης διπλης ακριβειας)
και επειτα να την αποθηκευσω απο τον καταχωρητη $f0 που βρισκεται στη θεση μνημης 0($α0) κανω το παρακάτω.
Τι λάθος υπάρχει?

    ori $v0,7
    syscall             
   
    lui $a0,0x0000
    ori $a0,$a0,0x0010
    s.d $f0,0($a0) 
δοκίμασε lui $a0,0x1000 γιατί νομίζω ότι η διεύθυνση που έβαλες αντιστοιχεί σε δεσμευμένη μνήμη.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 11, 2017, 12:01:15 pm
   Γίνετε με καποιο τρόπο στη θεση του δεικτη που διχνει σε ποια θεση μνημης θα αποθηκευτει ενας αριθμός να βάζω
καποιον καταχωρητή (που καθε φορα θα αυξανεται κατα 8 και ετσι θα διχνει τη θεση αποθηκευσης του επόμενου στοιχειου)
ωστε να χρεισιμοποιησω Loop και να μη χρειαστει να γραψω πολλες φορες αυτο το τμήμα του προγραμματος??

    ori $v0,7
    syscall              .
    s.d $f0,8($a0)     
 
    ori $v0,7
    syscall             
    s.d $f0,16($a0)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 11, 2017, 12:24:42 pm
   Γίνετε με καποιο τρόπο στη θεση του δεικτη που διχνει σε ποια θεση μνημης θα αποθηκευτει ενας αριθμός να βάζω
καποιον καταχωρητή (που καθε φορα θα αυξανεται κατα 8 και ετσι θα διχνει τη θεση αποθηκευσης του επόμενου στοιχειου)
ωστε να χρεισιμοποιησω Loop και να μη χρειαστει να γραψω πολλες φορες αυτο το τμήμα του προγραμματος??

    ori $v0,7
    syscall              .
    s.d $f0,8($a0)     
 
    ori $v0,7
    syscall             
    s.d $f0,16($a0)
εγώ αυτό που έκανα είναι να αλλάζω τη μεταβλητή που έχει μέσα στη παρένθεση. δηλαδή έβαλα στο $t0 τη διεύθυνση του πίνακα(move $t0,$a0) και στη συνέχεια μέσα στην επανάληψη έχω sdc1 $f0,0($t0) το οποίο t0 το αυξάνω κατά 8 κάθε φορά δεν ξέρω αν είναι ο καλύτερος τρόπος αλλά δουλεύει.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: chrimili on May 11, 2017, 15:51:17 pm
πρεπει να κανεις loop οπου το i θα ειναι εστω ο $t0 και το j εστω ο $t1
και καθε φορα να αποθηκευεις σ εναν καταχωρητη εστω τον $t2 την διευθυνση μνημη του στοιχειου
δηλαδη add $t2,$t0,$t0 #t2=2i
add $t2,$t2,$t1 #t2=2i+j
sll $t2,$t2,3 #t2=8(2i+j)
και σ αυτο προσθετεις την base addres που ειναι εστω στον $α0 για τον πινακα Α
add $t2,$a0,$t2 #t2=base addres+8(2i+j)

και μετα sdc1 $f0,0($t2)
και απλα θα αλλαζεις τα i,j σε καθε επαναληψη


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: UglyNick on May 11, 2017, 16:13:25 pm
Ναι,φυσικά και ορίζεται.Αυτήν χρησιμοποίησα και εγώ και όλο το πρόγραμμα τρέχει κανονικά ;D.

Παιδιά ορίζεται η παρακάτω εντολή;


Code:

sdc1 $f0, ArrayA($t0)


οπού ουσιαστικά ΑrrayA το όνομα του πίνακα που έχουμε δηλώσει στη περιοχή της μνήμης και αποτελεί το base address και o καταχωρητής $t0 κρατάει το offset. Έχω δει την παραπάνω σύνταξη σε διάφορα βιντεάκια αλλά δεν υπάρχει πουθενά στο βιβλίο.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 11, 2017, 18:29:20 pm
Ναι,φυσικά και ορίζεται.Αυτήν χρησιμοποίησα και εγώ και όλο το πρόγραμμα τρέχει κανονικά ;D.


Ήθελα να το σιγουρέψω.Ευχαριστώ πολύ. ;) ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: spoun on May 11, 2017, 18:47:58 pm
Παιδία γίνεται να μην χρησιμοποιήσω τον $a0 για βαση του πίνακα; γιατί τον χρείαζομαι για να κάνω print


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 11, 2017, 21:10:57 pm
Η jr $ra δουλευει μόνο με jal ;
Αν ναι, πως μπορώ να γυρίσω πίσω όταν χρησιμοποιώ beq η bne ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 11, 2017, 21:31:00 pm
Η jr $ra δουλευει μόνο με jal ;
Αν ναι, πως μπορώ να γυρίσω πίσω όταν χρησιμοποιώ beq η bne ?

Βασικά ήταν χαζή ερώτηση, το βρήκα
Θα βάλω flag: στο σημείο που θέλω να γυρίσω και θα γράψω "j flag"


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 11, 2017, 21:33:59 pm
Παιδία γίνεται να μην χρησιμοποιήσω τον $a0 για βαση του πίνακα; γιατί τον χρείαζομαι για να κάνω print

εγω οπως καταλαβαινω την εκφωνηση, μας λεει να χρησιμοποιησουμε jal (υπορουτινα) για τον πολ/σμο , αλλα ουσιαστικα σαυτην την υπορουτινα εμεις πρεπει να περασουμε ορισματα....πως περναμε ορισματα? μεσω των $a καταχωρητων... αρα για αυτο μας αναγκαζει να το κανουμε ετσι ...προσωπικα (χωρις να ξερω αν ειναι σωστο) οταν διαβαζα τους πινακες, χρησιμοποιησα τους $s καταχωρητες

Η jr $ra δουλευει μόνο με jal ;
Αν ναι, πως μπορώ να γυρίσω πίσω όταν χρησιμοποιώ beq η bne ?


μισο γιατι ή εγω μπερδευτηκα η εσυ ...

το jal ειναι για το jump and link ... και το ra για το return address .. αυτο το return address ειναι στο κυριο προγραμμα σου (η αντιστοιχα σε καποια υπορουτινα αν εχεις) .... και για αυτο πανε μαζι αυτες οι δυο εντολες

η beq και η bne δεν ειναι για να κανεις υπορουτινες (νομιζω) αλλα απλα loops , καθως εχουν συνθηκες...

Αρα , ειναι μονο για την jal  (Βεβαια παιζει να λεω κι μλκιες  :P )


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 11, 2017, 22:05:48 pm
μισο γιατι ή εγω μπερδευτηκα η εσυ ...

το jal ειναι για το jump and link ... και το ra για το return address .. αυτο το return address ειναι στο κυριο προγραμμα σου (η αντιστοιχα σε καποια υπορουτινα αν εχεις) .... και για αυτο πανε μαζι αυτες οι δυο εντολες

η beq και η bne δεν ειναι για να κανεις υπορουτινες (νομιζω) αλλα απλα loops , καθως εχουν συνθηκες...

Αρα , ειναι μονο για την jal  (Βεβαια παιζει να λεω κι μλκιες  :P )

Το έψαξα.
Όταν εκτελείται η "jal", πηδάει εκεί που ορίζεις και αποθηκεύει στον καταχωρητή $ra την τιμη PC+4 (δηλαδή στην επόμενη εντολή μετά την jal)
Έτσι όταν εκτελείται η "jr $ra", πηδάει στην αποθηκευμένη θέση PC+4

Όσο για τα beq και bne υπάρχει αυτή η λύση: http://stackoverflow.com/questions/19748054/reading-and-printing-an-integer-in-mips (http://stackoverflow.com/questions/19748054/reading-and-printing-an-integer-in-mips)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 12, 2017, 11:55:32 am
 Για να αλλάξω γραμμη δηλώνω αρχικα αυτο το string: 
     .data
     str6: .asciiz " \n "

και επειτα στο σημειο που θελω να συμβει η αλλαγη γραφω αυτο:
    li $v0,4
    la $a0,str6
    syscall

Τι λάθος κάνω και δεν αλλάζει η γραμμη εισαγωγής στη κονσολα? 


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 12, 2017, 13:00:29 pm
Για να αλλάξω γραμμη δηλώνω αρχικα αυτο το string:  
     .data
     str6: .asciiz " \n "

και επειτα στο σημειο που θελω να συμβει η αλλαγη γραφω αυτο:
    li $v0,4
    la $a0,str6
    syscall

Τι λάθος κάνω και δεν αλλάζει η γραμμη εισαγωγής στη κονσολα?  

δε διακρίνω κάποιο λάθος. Σίγουρα το έβαλες στο σωστό σημείο;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 12, 2017, 13:05:54 pm
Nαι το ελεγξα βαζοντας breakpoint    :(


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 12, 2017, 13:08:41 pm
Σε εμένα τρέχει αυτό που πόσταρες. Ποιο ακριβώς είναι το πρόβλημα; Crash-άρει ή τρέχει κανονικά αλλά δεν αλλάζει γραμμή;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 12, 2017, 13:44:23 pm
τρεχει καλονικα αλλα δεν αλλαζει γραμμή


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 12, 2017, 14:09:10 pm
Σου εμφανίζει οποιοδήποτε άλλο string; Δοκίμασε με .ascii


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Σαλτιμπάγκος on May 12, 2017, 14:46:24 pm
   Γίνετε με καποιο τρόπο στη θεση του δεικτη που διχνει σε ποια θεση μνημης θα αποθηκευτει ενας αριθμός να βάζω
καποιον καταχωρητή (που καθε φορα θα αυξανεται κατα 8 και ετσι θα διχνει τη θεση αποθηκευσης του επόμενου στοιχειου)
ωστε να χρεισιμοποιησω Loop και να μη χρειαστει να γραψω πολλες φορες αυτο το τμήμα του προγραμματος??

    ori $v0,7
    syscall              .
    s.d $f0,8($a0)     
 
    ori $v0,7
    syscall             
    s.d $f0,16($a0)

ερωτηση: εφοσον οι αριθμοι float εχουν μεγεθος 64 bit  δε θα επρεπε να κινουμαστε στον $α0 με βημα 64; ( κ οχι 8 bit)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 12, 2017, 14:56:23 pm
Δουλεψε κανονικα οταν αλλαξα τη διευθυνση στην οποία ξεκινουσαν να αποθηκευονται τα δεδομενα
απο .data 10000000 (στην οποια ειχα αποθηκεύσει όλα τα προηδουμενα strings) σε
       .data 10010000

Δηλαδη γραφωντας σε εκεινο το σημειο:
   .data 0x10010000
    str6: .asciiz "\n"
    .text

    li $v0,4
    la $a0,str6
    syscall



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 12, 2017, 15:37:27 pm
ερωτηση: εφοσον οι αριθμοι float εχουν μεγεθος 64 bit  δε θα επρεπε να κινουμαστε στον $α0 με βημα 64; ( κ οχι 8 bit)

Νομιζω ειναι σωστο που κινούμαστε ανα 8 καθως αναφερομαστε σε byte και οχι σε bit.
και ισχυει 64bit=8byte


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 12, 2017, 18:48:48 pm
Για να υλοποιηθεί η υπορουτίνα του πολλαπλασιασμού,τα ορίσματα που πρέπει να της περάσουμε είναι οι τιμές των πινάκων που έδωσε ο χρήστης;Αν ισχύει αυτό,πως υλοποιούμε κάτι τέτοιο;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 12, 2017, 19:01:30 pm
Για να υλοποιηθεί η υπορουτίνα του πολλαπλασιασμού,τα ορίσματα που πρέπει να της περάσουμε είναι οι τιμές των πινάκων που έδωσε ο χρήστης;Αν ισχύει αυτό,πως υλοποιούμε κάτι τέτοιο;

μπορεις απλα να περασεις τις βασεις του πινακα , οχι ολο τον πινακα


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 12, 2017, 19:07:32 pm
μπορεις απλα να περασεις τις βασεις του πινακα , οχι ολο τον πινακα

Να φορτώσουμε τις βάσεις των πινάκων στους καταχωρητές $a και μέσω αυτών να γίνει το πέρασμα ,αυτό εννοείς;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 12, 2017, 19:10:15 pm
Να φορτώσουμε τις βάσεις των πινάκων στους καταχωρητές $a και μέσω αυτών να γίνει το πέρασμα ,αυτό εννοείς;

κανονικα εκει πρεπει να τους εχεις  :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Panagos on May 13, 2017, 17:29:30 pm
Για τη 2η Εργασια.
Στην Ερωτηση:Τι τιμη θα εχουν οι κταχωρητες cause και  status μετα απο μια εξαιρεση αριθμητικής υπερχειλισης?

Ο cause θα εχει τιμη 12 (οπως φαινεται και στο πινακα στη σελιδα 954 βιβλίου).
Ο status τι τιμη θα εχει?



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: popman on May 13, 2017, 18:44:31 pm
παιδια δινουμε με ανοιχτα βιβλια?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Λούκυ Λουκ on May 13, 2017, 21:27:21 pm
Καλησπέρα,

Στις συχνές ερωτήσεις στο ethmmy έχω την εντύπωση ότι στη μία λέει ότι επιτρέπονται οι ψευδοεντολές τύπου li/la ενώ στην αμέσως επόμενη δίνει οδηγίες για το πώς να μεταφραστούν;(στην εκφώνηση της εργασίας εντωμεταξύ μιλά για bare machine) .

http://alexander.ee.auth.gr:8083/eTHMMY/cms.faq.data.do?method=jsplist&PRMID=42

Έχοντας διαβάσει πολλές φορές αυτό το topic αναρωτιέμαι, έχει κάποιος καταλάβει με βεβαιότητα τι παίζει;
Ενδεχομένως κάποιος που έδωσε το εργαστήριο;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 13, 2017, 21:33:20 pm
Καλησπέρα,

Στις συχνές ερωτήσεις στο ethmmy έχω την εντύπωση ότι στη μία λέει ότι επιτρέπονται οι ψευδοεντολές τύπου li/la ενώ στην αμέσως επόμενη δίνει οδηγίες για το πώς να μεταφραστούν;(στην εκφώνηση της εργασίας εντωμεταξύ μιλά για bare machine) .

http://alexander.ee.auth.gr:8083/eTHMMY/cms.faq.data.do?method=jsplist&PRMID=42

Έχοντας διαβάσει πολλές φορές αυτό το topic αναρωτιέμαι, έχει κάποιος καταλάβει με βεβαιότητα τι παίζει;
Ενδεχομένως κάποιος που έδωσε το εργαστήριο;

2012-13 λεει παντως  :P ::) τωρα με σιγουρια δεν ξερω


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Λούκυ Λουκ on May 13, 2017, 21:45:43 pm
2012-13 λεει παντως  :P ::) τωρα με σιγουρια δεν ξερω

Ωωωπ σορυ τωρα το είδα  :P
Στο αντίστοιχο topic για 2016-17 λέει ότι επιτρέπεται
http://alexander.ee.auth.gr:8083/eTHMMY/cms.faq.data.do?method=jsplist&PRMID=56

Ελπίζω να το έγραψαν συνειδητά


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Professor on May 14, 2017, 14:12:52 pm
τι τιμες εχουν ο CAUSE και o STATUS στην αριθμητικη υπερχείλιση(ο cause=12 νομιζω αλλα ο status?? τι αλλο λετε να ζητησει?



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 14, 2017, 17:01:33 pm
τι τιμες εχουν ο CAUSE και o STATUS στην αριθμητικη υπερχείλιση(ο cause=12 νομιζω αλλα ο status?? τι αλλο λετε να ζητησει?


μην σε καψω κιολας  :P αλλα νμζω θα ειναι καπως ετσι

στον cause , θα εχεις το 31 bit = 0 , και στα bit 2 - 6 (ξεκινωντας απο το 2) θα εχεις 0 0 1 1 0 (στο κομματι του pending interrupt δεν ξερω τι πρεπει να μπει , γιατι δεν ξερω πως μπορουμε να μαθουμε τι επιπεδου διακοπη ειναι αυτη και γενικα καθε αλλη)

στον status , θα εχεις το 0 bit = 1 (ενεργες τις διακοπες) το 1 bit =1 (συνεβει μια εξαιρεση) το 4 bit = 1 (user mode) και στο interrupt mask ,  θα επρεπε κανονικα να εχεις 1 αναγκαστικα στο bit που αντιστοιχει στο συγκεκριμενο επιπεδο που αντιστοιχει η εξαιρεση που συνεβει ,αλλα επειδη δεν μπορουμε να το ξερουμε τα βαζεις ολα 1 (ετσι κι αλλιως μια διακοπη/εξαιρεση συμβαινει καθε φορα)

τι αλλο μπορει να ζητησει δεν ξερω  ;)

μπορειτε να με διορθωσετε αν λεω κατι λαθος


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: christina_ on May 14, 2017, 17:50:28 pm
Η διεύθυνση εντολής για το 1ο ερώτημα της 2ης άσκησης;;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 14, 2017, 17:54:09 pm
Η διεύθυνση εντολής για το 1ο ερώτημα της 2ης άσκησης;;

μετα το 2ο syscall , ετσι μπακαλιστικα  :P να μαστε κι λιγο πονηροι


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: christina_ on May 14, 2017, 18:02:30 pm
Σ ευχαριστώ !!  ;D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: spoun on May 14, 2017, 18:56:14 pm
Λέει ότι πρέπει να υλοποιήσουμε τον πολλαπλασιαμό με υπορουτίνα αλλά πώς γίνεται να στέιλουμε doubles σε μια συνάρτηση;;




Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: popman on May 14, 2017, 19:02:35 pm
το σημειο διακοπης που λεει να θεοσυμε στο 4ο της 2ης ειναι το breakpoint?
Ας πει καποιος παρακαλωω  :???:


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 14, 2017, 19:03:45 pm
Λέει ότι πρέπει να υλοποιήσουμε τον πολλαπλασιαμό με υπορουτίνα αλλά πώς γίνεται να στέιλουμε doubles σε μια συνάρτηση;;


δεν χρειαζεται να περασεις κατι , ουσιαστικα ολα ειναι στην μνημη ... εε η μνημη απο παντου προσβασιμη ειναι

δεν ειναι σαν αλλες γλωσσες , εδω δουλευεις αρκετα χαμηλα  :P το μονο που περνας με τους $a ειναι οι βασεις των πινακων

το σημειο διακοπης που λεει να θεοσυμε στο 4ο της 2ης ειναι το breakpoint?
Ας πει καποιος παρακαλωω  :???:

ναι , τι αλλο μπορουσε να ναι?  ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: popman on May 14, 2017, 20:47:30 pm
επειδη κατι ειπωθηκε πιο πανω..ευχαριστω πολυ παντως :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Σαλτιμπάγκος on May 14, 2017, 20:54:01 pm
μην σε καψω κιολας  :P αλλα νμζω θα ειναι καπως ετσι

στον cause , θα εχεις το 31 bit = 0 , και στα bit 2 - 6 (ξεκινωντας απο το 2) θα εχεις 0 0 1 1 0 (στο κομματι του pending interrupt δεν ξερω τι πρεπει να μπει , γιατι δεν ξερω πως μπορουμε να μαθουμε τι επιπεδου διακοπη ειναι αυτη και γενικα καθε αλλη)

στον status , θα εχεις το 0 bit = 1 (ενεργες τις διακοπες) το 1 bit =1 (συνεβει μια εξαιρεση) το 4 bit = 1 (user mode) και στο interrupt mask ,  θα επρεπε κανονικα να εχεις 1 αναγκαστικα στο bit που αντιστοιχει στο συγκεκριμενο επιπεδο που αντιστοιχει η εξαιρεση που συνεβει ,αλλα επειδη δεν μπορουμε να το ξερουμε τα βαζεις ολα 1 (ετσι κι αλλιως μια διακοπη/εξαιρεση συμβαινει καθε φορα)

τι αλλο μπορει να ζητησει δεν ξερω  ;)

μπορειτε να με διορθωσετε αν λεω κατι λαθος


για τον status: το bit interrupt enable (bit 0) νομιζω θα επρεπε να ειναι 0. Στις διαφανειες του λεει οτι ειναι 1 οταν επιτρεπονται οι διακοπες. Εμεις εφοσον εχουμε ηδη μια διακοπη αυτο δε πρεπει να ειναι 0 για να μη γινει δευτερη διακοπη;


επιση το bit user mode ποσο θα ειναι; οταν εχουμε διακοπη λειτουργουμε σε κατασταση πυρηνα σωστα; αρα δεν πρεπει να ειναι 0;

εδω τι απαντηση θελει;;;
Quote
Ποια είναι η διεύθυνση της εντολής του προγράμματος των εξαιρέσεων που
καθιστά τον MIPS ικανό να αναγνωρίζει εξαιρέσεις και διακοπές.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 14, 2017, 21:22:26 pm

για τον status: το bit interrupt enable (bit 0) νομιζω θα επρεπε να ειναι 0. Στις διαφανειες του λεει οτι ειναι 1 οταν επιτρεπονται οι διακοπες. Εμεις εφοσον εχουμε ηδη μια διακοπη αυτο δε πρεπει να ειναι 0 για να μη γινει δευτερη διακοπη;


επιση το bit user mode ποσο θα ειναι; οταν εχουμε διακοπη λειτουργουμε σε κατασταση πυρηνα σωστα; αρα δεν πρεπει να ειναι 0;

εδω τι απαντηση θελει;;;

τωρα που το ξαναειδα , η εκφωνηση λεει την λεξη εξαιρεση κι το bit  λεγεται  αδειας διακοπης .... ειδικα στο βιβλιο κανει σαφη διαχωρισμο αναμεσα στην εξαιρεση κι την διακοπη , αρα παιζει να ειναι κι οτι να ναι

επισης το βιβλιο λεει ο mips παντα ειναι σε κατασταση χρηστη , αρα αυτο ειναι παντα 1

και τελος αυτο που λες , εχουμε εξαιρεση ... οχι διακοπη


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: spoun on May 15, 2017, 02:39:54 am
δεν χρειαζεται να περασεις κατι , ουσιαστικα ολα ειναι στην μνημη ... εε η μνημη απο παντου προσβασιμη ειναι

δεν ειναι σαν αλλες γλωσσες , εδω δουλευεις αρκετα χαμηλα  :P το μονο που περνας με τους $a ειναι οι βασεις των πινακων


Μπορώ όμως να χρησιμοποήσω τους καταχωρητές $f2,$f4, κτλπ. σε μια συνάρτηση;
Πρέπει να τους αποθηκέυσω στο stack;



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: spoun on May 15, 2017, 03:22:28 am
Βασικά στην είκονα αυτή είναι η συνάρτηση οπώς την έχω φτοιάξει, μπορεί να μου πεί κάποιος που είναι το λάθος?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 15, 2017, 14:33:31 pm
"Ποια είναι η διεύθυνση της εντολής του προγράμματος των εξαιρέσεων που καθιστά τον MIPS ικανό να αναγνωρίζει εξαιρέσεις και διακοπές." Τι ακριβώς εννοεί, πως καταλαβαίνει αν είναι διακοπή ή εξαιρεση?  :o


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 15, 2017, 16:18:07 pm
[80000214] 14040002  bne $0, $4, 8 [ret-0x80000214]; 134: bne $a0 0 ret # 0 means exception was an interrupt

ουσιαστικα ειναι η περιπτωση 0 , ενος πινακα στο παραρτημα Β , στην παραγραφο με τις εξαιρεσεις


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 15, 2017, 22:25:38 pm
παιδια δινουμε με ανοιχτα βιβλια?

ναι



Μπορώ όμως να χρησιμοποήσω τους καταχωρητές $f2,$f4, κτλπ. σε μια συνάρτηση;
Πρέπει να τους αποθηκέυσω στο stack;


μπορεις να τους χρησιμοποιησεις κανονικα .

στο stack αποθηκευονται οι saved registers (για αυτο αλλωστε ονομαζονται ετσι) , ουσιαστικα αποθηκευεις τους $s , γιατι δεν θες να χαθουν/αλλαχθουν οι τιμες , καθως χρειζονται (γενικα) στο κανονικο προγραμμα



Βασικά στην είκονα αυτή είναι η συνάρτηση οπώς την έχω φτοιάξει, μπορεί να μου πεί κάποιος που είναι το λάθος?


ειναι αυτο που σου λεω παραπανω , οταν κανεις τον $sp , να "κουνηθει" δεν τον κανεις να δειχνει καπου , απλα δημιουργεις μια στοιβα για να βαλεις του $s registers που πρεπει να σωθουν ...

επισης , δεν βρισκεις την διευθυνση συμφωνα με τον τυπο που λεει το pdf , αρα φορτωνεις κατι ακυρο



Επισης , γιατι το εψαξα λιγο παραπανω  :P αποδειχθηκε τελικα @soprano ... οτι το 1ο bit (επιπεδο διακοπης) και το μηδενικο bit (αδειας διακοπης) δεν μπορουν να εχουν 1 ταυτοχρονα...και εξηγουμε.... Ουσιαστικα , η αρχικα τιμη του status ειναι 000.....01 (επιτρεπονται οι διακοπες) με του γινει μια διακοπη εχουμε κατι του στυλ 0000....10 ... ουσιαστικα με του αλλαζει το 1ο bit απο 0--->1 απαγορευονται οι διακοπες... Αρα , ειχες δικιο και ζητω συγγνωμη για οποιον μπερδεψα  :-\
Ωστοστο το 4ο bit ειναι παντα 1 , για τον mips ... οτι και να γινει (ετσι λεει και το βιβλιο αλλωστε)



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 17, 2017, 15:07:54 pm
Παιδιά κάποιο help στο print των πινάκων;; ( βασικά στο κομμάτι που πρέπει να κάνω save στον Α το οποίο το έχω με bold) Προσπαθώ να το κάνω όπως το λέει ο Apostolof στο page 8. Με το loop είμαι καλά στο sdc1 μου πετάει error, αν δεν την έχω εμφανίζει κανονικά α11 κτλπ αλλά προφανώς δεν κάνει store



Code:
.data
...
ArrayA: .space 32 #4x8 epeidi einai double
...
.text
whileA1:

beq $t5, 2, exitA1

whileA2:

beq $t6, 2, exitA2
li $v0, 4 #emfanise to a[
la $a0, msg_1
syscall
add $a0, $t5, 1 #emfanise to t5+1
li $v0, 1
syscall
li $v0, 4
la $a0, msg_4 #emfanise to ,
syscall
add $a0, $t6, 1 #emfanise to t6+1
li $v0, 1
syscall
li $v0, 4
la $a0, msg_5 #emfanise to ]=
syscall



#Apothikeusi sti katallili dieuthnisi
la $a1, ArrayA
addi $t7, $zero, 0 #t7=0
sll $t7, $t5, 1 #t7=2*t5
add $t7, $t7, $t6 #t7=t7+t6
sll $t7, $t7, 3 #t7=8*t7
add $t7, $t7, $a1 #t7=t7+base adress of A
li $v0, 7        #Diavase to Double apo to user
syscall #tha to kanei save sto f0
[b]sdc1 $f0, 0($t7)[/b]

li $v0, 4 #NewLine
la $a0, NewLine
syscall

addi $t6, $t6, 1 #t6=t6+1
j whileA2


exitA2:
addi $t6, $zero, 0 #t6=0
addi $t5, $t5, 1 #t5=t5+1
j whileA1


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 17, 2017, 15:26:07 pm
Εε αφού έχεις:
sll   $t7, $t7, 3   #t7=8*t7 :P

εε 2^3 δεν θέλω;; :P
αποθήκευσε την στο (2*t5+t6)*8+base_address του πίνακα a


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 17, 2017, 15:28:57 pm
εε 2^3 δεν θέλω;; :P
αποθήκευσε την στο (2*t5+t6)*8+base_address του πίνακα a

Ναι μετά κατάλαβα ότι είπα βλακεία και το έσβησα. :-X


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 17, 2017, 15:30:05 pm
Ναι μετά κατάλαβα ότι είπα βλακεία και το έσβησα. :-X

Δεν πειράζει μπορείς πάντα να βοηθήσεις έχω κολλήσει πόσες ώρες... :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 17, 2017, 15:31:18 pm
Ακριβώς πριν μπεις στο whileA2 το t6 θα πρέπει να είναι 0. Είναι όντως;
Το ίδιο και για whileA1, t5.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 17, 2017, 15:35:48 pm
όταν τρέχω τον κώδικα και δεν το κάνω store κάπου το user input μου βγάζει κανονικά το
Code:
 α[1,1]= ..
α[1,2]=...
α[2,1]=..
α[2,2]=//
και αντίστοιχα για το β
Οπότε το loop δεν έχει πρόβλημα νομίζω... Δηλαδή αν απλά να κάνω comment την sdc1 που έχω.. και πληκτρολογώ ο,τι θέλω μου εμφανίζει και τα παρακάτω στοιχεία..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 17, 2017, 15:40:47 pm
Long shot αλλά δοκίμασε να βάλεις μία nop μετά από κάθε addi και sll.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 17, 2017, 15:47:23 pm
Long shot αλλά δοκίμασε να βάλεις μία nop μετά από κάθε addi και sll.

Μπα...
τα error msg είναι : Exception occurred at PC=0x004000c0
                                   unaligned address in store: 0x1001006b

μετά πέρνουν ο,τι ναναι τιμές οι PC κτλπ status και βγάζει Attemp to execute non-instruction at 0x80000180


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 17, 2017, 15:56:28 pm
Μπα...
τα error msg είναι : Exception occurred at PC=0x004000c0
                                   unaligned address in store: 0x1001006b

μετά πέρνουν ο,τι ναναι τιμές οι PC κτλπ status και βγάζει Attemp to execute non-instruction at 0x80000180

Δοκίμασε να το τρέξεις σε simple machine. Ούτως ή άλλως είπαν ότι δε χρειάζεται να είναι σε bare.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: adiaforos on May 17, 2017, 19:21:37 pm
παιδιά στην μνήμη έχει διαφορά πως θα αποθήκευσω έναν πίνακα 4 στοιχείων αν αυτός είναι 1×4 η 4χ1 η 2χ2?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 17, 2017, 21:43:37 pm
παιδιά στην μνήμη έχει διαφορά πως θα αποθήκευσω έναν πίνακα 4 στοιχείων αν αυτός είναι 1×4 η 4χ1 η 2χ2?

η μνημη δεν εχει δισδιαστατους πινακες , και αν δεν κανω λαθος τα στοιχεια αποθηκευονται καπως ετσι:

|1ο στοιχειο της 1ης γραμμης| 2ο στοιχειο της 1ης γραμμης|....|n-ο στοιχειο της 1ης γραμμης| 1ο στοιχειο της 2ης γραμμης| ...κλπ| 


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Mandalorian on May 18, 2017, 18:56:16 pm
η μνημη δεν εχει δισδιαστατους πινακες , και αν δεν κανω λαθος τα στοιχεια αποθηκευονται καπως ετσι:

|1ο στοιχειο της 1ης γραμμης| 2ο στοιχειο της 1ης γραμμης|....|n-ο στοιχειο της 1ης γραμμης| 1ο στοιχειο της 2ης γραμμης| ...κλπ| 

Βασικα ακολουθει καθενας ενα δικο του κανονα. Δηλαδη ή αυτο που ειπες (κανονας γραμμων) ή τον κανονα των στηλων:

|1ο στοιχειο της 1ης στηλης| 2ο στοιχειο της 1ης στηλης|....|n-ο στοιχειο της 1ης στηλης| 1ο στοιχειο της 2ης στηλης| ...κλπ|

Απλως πρεπει να ακολουθει τον ιδιο κανονα σε ολο το προγραμμα


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 19, 2017, 14:26:10 pm
Ειναι αναγκαίο να λάβουμε περιπτώσεις του στυλ αν αυτο που εισαγεται δεν ειναι αριθμος να βγαζει καποιο μηνυμα;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on May 19, 2017, 14:54:19 pm
Γενικά δεν έχει πει τι ακριβώς θέλει. Γενικά δεν έχω ακούσει άλλον να το έχει κάνει ετσι και προσωπικά μου φαίνεται λίγο υπερβολικός ένας τέτοιος έλεγχος για αυτή την εργασία. Τώρα αν θέλεις για εσένα να κάνεις μία πολύ σωστή εργασία κάντο αλλά δεν θα σου πει κάτι.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 19, 2017, 15:16:54 pm
Μπααα σιγά μη κάτσω να βγάλω καρκίνο. ΦΤΑΝΕΙ  :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Mandalorian on May 19, 2017, 16:20:43 pm
Ειναι αναγκαίο να λάβουμε περιπτώσεις του στυλ αν αυτο που εισαγεται δεν ειναι αριθμος να βγαζει καποιο μηνυμα;

Το ειχα ρωτησει εγω και μου ειπε οτι:
"οχι δεν χρειαζεται ελεγχος τιμων"
Αρκει ο χρηστης να ξερει να εισαγει τους αριθμους στην πραγματικη τους μορφη


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 20, 2017, 13:37:23 pm
Παιδιά λίγο help, τι εννοεί θέστε breakpoint πχ στην τάδε εντολή;; Πως το κάνουμε αυτό;; Ξέρω με f10 τρέχει simple step .αυτό εννοεί;;
(ξέρω βλακώδες απορία και πρέπει να έχει απαντηθεί σε προηγούμενες ερωτήσεις αλλά δεν έχω πολύ χρόνο... :/)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 20, 2017, 15:52:22 pm
Παιδιά λίγο help, τι εννοεί θέστε breakpoint πχ στην τάδε εντολή;; Πως το κάνουμε αυτό;; Ξέρω με f10 τρέχει simple step .αυτό εννοεί;;
(ξέρω βλακώδες απορία και πρέπει να έχει απαντηθεί σε προηγούμενες ερωτήσεις αλλά δεν έχω πολύ χρόνο... :/)


Στο QtSpim στα δεξιά στο tab text βρίσκεις την εντολή στην οποία θες να κάνεις το breakpoint και πατάς δεξί κλικ Set Breakpoint, όταν θελήσεις να το βγάλεις κάνεις το ίδιο και πατάς το Clear Breakpoint.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 20, 2017, 17:24:20 pm
Στο QtSpim στα δεξιά στο tab text βρίσκεις την εντολή στην οποία θες να κάνεις το breakpoint και πατάς δεξί κλικ Set Breakpoint, όταν θελήσεις να το βγάλεις κάνεις το ίδιο και πατάς το Clear Breakpoint.

Ααα τέλεια , και πάλι σε ευχαριστώ ! :)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 20, 2017, 19:31:43 pm
Που μπορω να βρω σε τι exception αντιστοιχουν οι διαφορες τιμές του CAUSE ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 20, 2017, 20:07:34 pm
Που μπορω να βρω σε τι exception αντιστοιχουν οι διαφορες τιμές του CAUSE ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 20, 2017, 20:20:56 pm
Οκ... Φαντάζομαι όμως πρέπει να αφαιρέσω κάποια σταθερή τιμή για να βρώ τον κωδικό;
Γιατί στο QtSpim η δεκαδικη τιμή του Cause Είναι πάντα > 30. Μήπως πρέπει να αφαιρέσω το 32;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 20, 2017, 20:43:46 pm
Οχι, δεν νομιζω οτι μπορεις να αφαιρέσεις κάτι σταθερό. Γιατι το bit 31 δεν είναι πάντα 0, ούτε η διακοπή ή ή εξαίρεση γίνεται πάντα στο ίδιο επίπεδο υλικού/λογισμικού


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 20, 2017, 20:47:56 pm
Μάλιστα. Άρα πως το βρίσκω;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 20, 2017, 22:05:21 pm
Πραγματικά δεν έχω ιδέα, μόλις είδα οτι ο cause εμφανίζει πολύ λιγότερα ψηφία απο 32 στο παράδειγμα μας. Δεν ξέρω καν ποιά είναι αυτά


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 20, 2017, 22:22:23 pm
Πραγματικά δεν έχω ιδέα, μόλις είδα οτι ο cause εμφανίζει πολύ λιγότερα ψηφία απο 32 στο παράδειγμα μας. Δεν ξέρω καν ποιά είναι αυτά

για τον απλουστατο λογο οτι ο mips δεν εμφανιζει τα 0 απο μπροστα που δεν χρειαζονται ;)

αναλυστε λιγο τον αριθμο (binary) , και προσεξτε μεχρι που παει το καθε πεδιο ... δεν χρειαζεται να αφαιρεσεις κατι , ενα srl 2 χρειαζεται (αν θυμαμαι καλα)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 20, 2017, 22:31:29 pm
δηλαδη διαίρεση δια 4;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 20, 2017, 22:33:47 pm
για τον απλουστατο λογο οτι ο mips δεν εμφανιζει τα 0 απο μπροστα που δεν χρειαζονται ;)

αναλυστε λιγο τον αριθμο (binary) , και προσεξτε μεχρι που παει το καθε πεδιο ... δεν χρειαζεται να αφαιρεσεις κατι , ενα srl 2 χρειαζεται (αν θυμαμαι καλα)

Πωωωωωωωωωωωωωωω, τώρα κατάλαβα γιατί κάνει srl 2  :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on May 20, 2017, 22:34:52 pm
δηλαδη διαίρεση δια 4;
Ναι


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 20, 2017, 23:25:57 pm
Πωωωωωωωωωωωωωωω, τώρα κατάλαβα γιατί κάνει srl 2  :D

για αυτο ειμαι εδω   ;D ;D

δηλαδη διαίρεση δια 4;

βοηθαει καλυτερα να δουλευεις σε binary παντως , αλλα ναι


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 21, 2017, 13:18:39 pm
Παιδιά έχω κολλήσει άσχημα στην υπορουτίνα του πολλαπλασιασμού.Ενώ την έχω υλοποιήσει όπως σκέφτηκα οτι μπορεί να είναι,μου πετάει άκυρα αποτελέσματα.Όποια βοήθεια,ευπρόσδεκτη.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 21, 2017, 19:11:58 pm
Παιδιά έχω κολλήσει άσχημα στην υπορουτίνα του πολλαπλασιασμού.Ενώ την έχω υλοποιήσει όπως σκέφτηκα οτι μπορεί να είναι,μου πετάει άκυρα αποτελέσματα.Όποια βοήθεια,ευπρόσδεκτη.

αφου θες να κανεις πολ/σμο , εσυ γιατι κανεις addi ?

δεν ξερω τι αλλο μπορει να φταιει , αλλα σιγουρα δεν κανεις το *2 και το *8 με addi  ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 21, 2017, 19:45:52 pm
αφου θες να κανεις πολ/σμο , εσυ γιατι κανεις addi ?

δεν ξερω τι αλλο μπορει να φταιει , αλλα σιγουρα δεν κανεις το *2 και το *8 με addi  ;)

Εντάξει αυτό διορθώνεται και όντως υλοποιείται καλύτερα με αριστερή ολίσθηση..το θέμα που υπάρχει είναι αλλού όμως.Χρησιμοποιώντας breakpoint είδα ότι δεν φτάνουν οι σωστές τιμές στους καταχωρητές που αποθηκεύονται οι τιμες των πινάκων Α,Β.Αυτό που μπορεί να οφείλεται;

EDIT: Έγινε!


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Kthulu on May 21, 2017, 21:44:47 pm
Ξερει κανείς πως εργαζόμαστε στην άσκηση που ζητάει s, xxx, e ?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 22, 2017, 00:33:01 am
Ξερει κανείς πως εργαζόμαστε στην άσκηση που ζητάει s, xxx, e ?

κεφαλαιο 3 πρεπει να διαβασεις , οχι ολο ...απλα δεν θυμαμαι τωρα παραγραφο

ουσιαστικα:

αν εχεις float , τοτε ο αριθμος ειναι 32-bit .... ο δεδομενος σου αριθμος θα εχει εναν αντιστοιχο binary ...το 1ο bit ειναι το προσημο, τα επομενα 8 ειναι ο εκθετης και μετα απο αυτα ειναι το κλασμα(το δεκαδικο μερος - υπολογιζεται με 2^(-i) οπου i η θεση-)

αν εχεις double , τοτε ο αριθμος ειναι 64-bit ... ξανα , το 1ο bit ειανι το προσημο , τα επομενα 11 ειναι ο εκθετης , και μετα ειανι το κλασμα.

ουσιαστικα ο αριθμος σας θα ειναι:

(-1)^(προσημο) *(1+κλασμα)*2^(εκθετης-πολωση) , οπου η πολωση ειναι 2^(κ-1) -1 με κ = ο αριθμος των bit που αποτελουν τον εκθετη

Τελος , προτεινω να διαβασεις κι το βιβλιο , μια παραγραφος ειναι ... μην τυχον κι μπερδεψα τπτα


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: s0r0n on May 22, 2017, 14:20:17 pm
Οτι αριθμους  και να βαλω,μου βγαζει το αποτελεσμα στην παρακατω μορφη,δηλαδη τα 2 πρωτα με δεκαδικα και τα 2 τελευταια μηδενικα.Ετυχε σε κανεναν αλλον?

http://prntscr.com/fap69m


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 22, 2017, 17:38:44 pm
Ξερει κανείς πως εργαζόμαστε στην άσκηση που ζητάει s, xxx, e ?
+1

Και γενικά αν αποθηκεύω πχ στο $f4 τις τιμές του πίνακα C (δλδ κάπως έτσι sdc1 $f4, 0($t2)  )
πως αποθηκεύονται τα 4 msb( most significant byte) και πως τα 4 lsb( less significant byte );; Και μετά πως γίνεται η μετατροπή;;

Κάποιος αν μπορεί να βοηθήσει...


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 22, 2017, 20:35:17 pm
+1

Και γενικά αν αποθηκεύω πχ στο $f4 τις τιμές του πίνακα C (δλδ κάπως έτσι sdc1 $f4, 0($t2)  )
πως αποθηκεύονται τα 4 msb( most significant byte) και πως τα 4 lsb( less significant byte );; Και μετά πως γίνεται η μετατροπή;;

Κάποιος αν μπορεί να βοηθήσει...
γενικά με την εντολή sdc1 αποθηκεύεις στη μνήμη το περιεχόμενο του f4 το αντίθετο δηλαδη από αυτό που λες.

Στη μνήμη λοιπόν αν ο αριθμός σου είναι double τα 4 less significant byte αποθηκεύονται πρώτα.Μπορείς να το παρατηρήσεις π.χ αριθμός στον f4: 40140000 00000000.  Και έστω η  διευθυνσή σου($t2) είναι 10010000 τότε σε αυτή τη διεύθυνση θα είναι αποθηκευμένα τα less significant byte 00000000 και στην 10010004 τα 40140000.  
 τώρα για να το μετατρέψεις όπως εξηγήθηκε και πάνω καλό είναι να διαβάσεις αλλά έστω ότι έχουμε το 40140000 00000000.Μετατρέποντας το στο δυαδικό :                                         4     0      1      4       0      0 0 0 00000000
                                                        0100 0000 0001 0100 0000 0000 0000 κ.τ.λ το πρώτο ψηφίο είναι το s δηλαδή το πρόσημο. στην περίπτωσή μας 0(+). τα επόμενα 11 bit εφόσον πρόκειται για double είναι ο εκθέτης 10000000001 ο οποίος είναι ο αριθμός 1025.όμως ισχυέι             πραγματικός εκθέτης=εκθέτης - πόλωση .Η πόλωση για double είναι 1023.άρα πρ.εκθέτης=1025-1023=2  
 Τα υπόλοιπα bit του αριθμού μας είναι το κλάσμα   δηλ. 0100 0000 0000...000  
 Εχουμε s=0 πρ.εκθετης=2 και τώρα για το κλάσμα προσθέτεις τη μονάδα 1,01000000...000
Οπότε ο αριθμός μας είναι  1,01000 * 2^2= 101,000000000 άρα είναι ο 5 .
 Και αντίστροφα παίρνεις π.χ το 9--> 1001 το κάνεις 1,001* 2^3 άρα έχεις s=0(θετικός), πραγματικός εκθέτης=3 και κλάσμα 0010000000...  
ο εκθέτης τώρα είναι πργ.εκθέτης + πόλωση άρα 3+1023=1026--> 10000000010
συνοψίζοντας: 0 10000000010 0010000... τα κάνεις τετράδες 0100 0000 0010 0010 0000 0000.. και έχεις στο δεκαεξαδικό 40220000 00000000


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Apostolof on May 22, 2017, 20:41:46 pm


Είστε μάστορες! <3


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: raptalex on May 22, 2017, 20:46:12 pm
Είστε μάστορες! <3

Ισχύει! :D


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 22, 2017, 22:06:33 pm
..

αυτα που λες για τα msb και lsb , με κατεστρεψαν  :'( δεν μπορουσες να τα πεις την προηγουμενη κυριακη? :P



Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: George_RT on May 25, 2017, 16:14:02 pm
Εχω κολλήσει με την συνάρτηση του πολλαπλασιασμού , ενω όλα δείχνουν καλά τα αποτελέσματα είναι άκυρα. Εάν εχει κάνεις ιδέα τι μπορεί να φταίει ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: g on May 25, 2017, 16:23:38 pm
τσέκαρε μήπως έχεις ξεχάσει να μηδενίζεις τον register $f4 που βάζεις το άθροισμα πρίν το αποθηκεύσεις στη μνήμη


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on May 25, 2017, 16:38:52 pm
Αυτό που κάνεις στο εξωτερικό loop είναι να βάζεις στον f4 τη τιμή του c[i, j] για να τον αρχικοποιήσεις. Το πρόβλημα με αυτό είναι ότι δεν ξέρεις τι τιμή θα έχει αρχικά το c[i, j] εκτός και αν το έχεις αρχικοποιήσει σε 0 σε κάποιο άλλο κομμάτι του κώδικά σου. Θα σου πρότεινα αντι για την
Code:
ldc1 $f4,0($t1)
να χρησιμοποιήσεις την
Code:
li.d $f4, 0.0

Επίσης εδώ
Code:
addu $t1,$a3,$t5		#Base address + (i*2 + j)*8
χρησιμοποιείς για πρώτη φορά τον t5. Το σωστό θα ήταν να ξαναχρησιμοποιήσεις τον t1.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: George_RT on May 25, 2017, 18:06:37 pm
τσέκαρε μήπως έχεις ξεχάσει να μηδενίζεις τον register $f4 που βάζεις το άθροισμα πρίν το αποθηκεύσεις στη μνήμη

Αυτό που κάνεις στο εξωτερικό loop είναι να βάζεις στον f4 τη τιμή του c[i, j] για να τον αρχικοποιήσεις. Το πρόβλημα με αυτό είναι ότι δεν ξέρεις τι τιμή θα έχει αρχικά το c[i, j] εκτός και αν το έχεις αρχικοποιήσει σε 0 σε κάποιο άλλο κομμάτι του κώδικά σου. Θα σου πρότεινα αντι για την
Code:
ldc1 $f4,0($t1)
να χρησιμοποιήσεις την
Code:
li.d $f4, 0.0

Επίσης εδώ
Code:
addu $t1,$a3,$t5		#Base address + (i*2 + j)*8
χρησιμοποιείς για πρώτη φορά τον t5. Το σωστό θα ήταν να ξαναχρησιμοποιήσεις τον t1.

Μετα από τόσες δοκιμές και σβήσε γράψε κώδικα μου ξέφυγαν , thanks ! . Τα αποτελέσματα αλλάξαν αλλά συνεχίζουν να μην είναι σωστά  .....


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on May 26, 2017, 01:37:48 am
Δες λίγο εκεί που βγαίνεις από το loop για το k, που αποθηκεύεις τον f4, είναι ο σωστός πίνακας αυτός;;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: JasonTheModel on May 26, 2017, 04:58:38 am
2 αποριες στην δευτερη ασκηση.Σημειο διακοπης πως βαζω στο 0x80000180 αφου δεν εμγανιζεται στην καρτελα του κειμενου.Επισης οταν λεει α το παραλειψουμε αυτο και να τρεξουμε δεν εμφανιζεται στην κονσολα το Exception 6 [bad instruction address] occurred and ignored


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: George_RT on May 26, 2017, 16:02:53 pm
Δες λίγο εκεί που βγαίνεις από το loop για το k, που αποθηκεύεις τον f4, είναι ο σωστός πίνακας αυτός;;

Ναι όλα μια χαρα είναι . Τελικά υπήρχε ενα μικρό λάθος στην main που μου ειχε διαφύγει και δημιουργούσε ολο αυτο το πρόβλημα , ευτυχώς τωρα δουλεύει οπως πρέπει .


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: bianconero on May 26, 2017, 17:08:11 pm
2 αποριες στην δευτερη ασκηση.Σημειο διακοπης πως βαζω στο 0x80000180 αφου δεν εμγανιζεται στην καρτελα του κειμενου.Επισης οταν λεει α το παραλειψουμε αυτο και να τρεξουμε δεν εμφανιζεται στην κονσολα το Exception 6 [bad instruction address] occurred and ignored

Για το breakpoint ενεργοποιησε απο το Text Segment το Kernel Text..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 27, 2017, 15:26:28 pm
αυτα που λες για τα msb και lsb , με κατεστρεψαν  :'( δεν μπορουσες να τα πεις την προηγουμενη κυριακη? :P


Δεν το είχα ανακαλύψει!κρίμα..
Γενικά για να μην υπάρξει παρεξήγηση σχετικά με τα όσα ανέφερα για τα lsb και msb,αυτό συμβαίνει για τα 4 msb και τα 4 lsb που έχει ένας double.
  Όσον αφορά μία word δηλαδή 4 bytes όλα και όλα, αυτά αποθηκεύονται "κανονικά" δηλαδή το most significant byte στην  μικρότερη διεύθυνση της λέξης για αυτο και βλέπουμε τους 32bitους αριθμούς όπως τους αποθηκεύουμε.ΓΙ αυτό,επίσης, λέγεται και Μεγάλου Ακρου ο ΜIPS.Ο double αποτελείται από δυο words κατά κάποιο τρόπο (μία με τα 4lsb και μία με τα 4msb)  οι οποίες αποθηκεύονται πρώτα η 4lsb και μετά η 4msb τηρώντας όμως η καθεμία για τα bytes της τον κανόνα του Μεγάλου άκρου


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: potis on May 27, 2017, 23:24:42 pm
Ξέρει κανένας τι σημαίνει αυτό;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: potis on May 28, 2017, 00:06:10 am
Δεν έχω βάλει πουθενά τίποτα τέτοιο. :/


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on May 28, 2017, 01:09:24 am
Ξέρει κανένας τι σημαίνει αυτό;

Ουσιαστικά κάνει μια σύγκριση των καταχωρητών 0 και 1 και αν ειναι ίσοι τότε σε πάει σε ένα label το οποίο λέγεται ExitA. Υποθέτω ότι δεν έχει γραψει κάπου σωστά το όνομα του label και δεν ξέρει που να πάει.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: potis on May 28, 2017, 01:14:52 am
Για κοίτα λίγο τις λούπες, έχω γράψει κάτι λάθος;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on May 28, 2017, 01:51:47 am
Για κοίτα λίγο τις λούπες, έχω γράψει κάτι λάθος;

Αρχικά δεν κανεις τον t6 = 0 όταν αυξάνεις το t5. Επίσης όταν αυξάνεις τις τιμές των t5, t6 γιατί πας στα loop_2, loop_1, κανονικά νομίζω θα έπρεπε να πας στα loop_1, loop_2. Γενικά θα σου πρότεινα να γράψεις τα loop με την εξής μορφή
Code:
loop_i:
    (code goes here)
    increment i
    if (i != exit_value) goto loop_i

Βέβαια αυτο εξαρτάται και από το τι καταλαβαίνεις εσύ καλύτερα. Εμένα μου φαίνεται πιο κατανοητό.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 28, 2017, 02:07:58 am
Μπορεί κάποιος να εξηγήσει πώς λύνεται το ερώτημα 6 και 7?  :-\


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on May 28, 2017, 02:13:28 am
Μπορεί κάποιος να εξηγήσει πώς λύνεται το ερώτημα 6 και 7?  :-\

Σε ποια εργασία?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 28, 2017, 02:22:25 am
Σε ποια εργασία?
Στα θέματα που έχουν ανέβει στα downloads!


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on May 28, 2017, 02:39:44 am
Στα θέματα που έχουν ανέβει στα downloads!

ουσιαστικα σε ρωταει , ποιον double register χρησιμοποιησες για να αποθηκευεις το στοιχειο του πινακα c

για την αλλη ερωτηση , εχει γραψει ενα πολυ ωραιο κειμενο o/η afro , λιγο πιο πανω  ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MarPap on May 28, 2017, 08:46:26 am
ουσιαστικα σε ρωταει , ποιον double register χρησιμοποιησες για να αποθηκευεις το στοιχειο του πινακα c

για την αλλη ερωτηση , εχει γραψει ενα πολυ ωραιο κειμενο o/η afro , λιγο πιο πανω  ;)
Ευχαριστώ...
Νομίζω το κατάλαβα...
Δηλαδή: Με την εντολή sdc1 $f4, 0($t2), έχω ότι στον $t2 έχω τη διεύθυνση 10010040, τότε στον $FP4 έχω το msb? Kαι στη διεύθυνση 10010044 έχω το lsb?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 28, 2017, 16:10:49 pm
Στην άσκηση  7 της εργασίας που έχει ανέβει στα downloads,προκύπτει c(2,1)=17.2

Θεωρώντας ότι αποθηκεύεται στους καταχωρητές $f8, $f9 και στις θέσεις μνήμης 268501072 και 268501076(διεύθυνση βάσης C είναι προφανώς η 268501056), ποιες θα είναι οι τιμές των $f8 και $f9; Υπάρχει μια σύγχυση με τα msb και lsb που δεν μπόρεσα να να αντιληφθώ από τις προηγούμενες απαντήσεις.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 28, 2017, 16:40:46 pm
αν το τρέχεις με breakpoint και single steps και είσαι στο σημείο που μόλις περάστηκε στοn $f8, πήγαινε εκεί που βλέπεις τους FP registers.Στο double precision δεν θα είναι στον FP8:4031333333333333  η κάτι τέτοιο.. και πιο πάνω  στο single precision δεν θα είναι FG8:33333333 και FG9:40313333?
(τα τελευταία ψηφία μπορει να είναι διαφορετικά)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 28, 2017, 17:06:37 pm
Αν μιλάμε για δεκαεξαδικές τιμές,είναι ακριβώς όπως τα λες τα νούμερα.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 28, 2017, 17:14:49 pm
ωραία! κατάλαβες τώρα τί παίζει με το περιεχόμενο των καταχωρητων?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 28, 2017, 17:18:56 pm
Κατάλαβα που αποθηκεύονται τα msb και lsb..αν θέλουμε να μιλήσουμε με δεκαδικές τιμές;Η στην συγκεκριμένη ερώτηση για τα msb και lsb μπορούμε να απαντήσουμε και με δεκαεξαδικές τιμές;Γιατί αλλάζω την εμφάνιση του qt spim σε δεκαδικές τιμες μου εμφανίζει στους καταχωρητές fg8 και fg9 τις τιμες 0 και 2,768750 αντίστοιχα


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: afro on May 28, 2017, 17:40:20 pm
αν παρατηρήσεις στο double precision ο αριθμός μετατρέπεται όπως περιμένουμε σε δεκαδικό ενώ στους single η μετατροπή γίνεται σαν να έχεις ένα single δηλαδή εκθέτης 8 bit αντί για 11 κ.τ.λ.άρα ο μισός double που είναι π.χ στον FP9  40313333 θα μετατραπεί σαν single άρα δεν θα έχει σχεση με τον αρχικό σου αριθμό.Παρόλαυτα αυτά δεν σημαίνει ότι είναι λάθος να τον βάλεις δεκαδικό.Εγώ το έβαλα δεκαεξαδικό δεν το διευκρίνιζε κάπου νομίζω, αλλά μην σε πάρω στο λαιμό μου


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: kanou_tom on May 28, 2017, 17:43:38 pm
αν παρατηρήσεις στο double precision ο αριθμός μετατρέπεται όπως περιμένουμε σε δεκαδικό ενώ στους single η μετατροπή γίνεται σαν να έχεις ένα single δηλαδή εκθέτης 8 bit αντί για 11 κ.τ.λ.άρα ο μισός double που είναι π.χ στον FP9  40313333 θα μετατραπεί σαν single άρα δεν θα έχει σχεση με τον αρχικό σου αριθμό.Παρόλαυτα αυτά δεν σημαίνει ότι είναι λάθος να τον βάλεις δεκαδικό.Εγώ το έβαλα δεκαεξαδικό δεν το διευκρίνιζε κάπου νομίζω, αλλά μην σε πάρω στο λαιμό μου

οκ σε ευχαριστώ πολύ για την βοήθεια. :)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 28, 2017, 20:22:53 pm
Ξέρουμε αν σε όλους μπαίνουν τα ίδια θέματα ?? ( σε κάθε διαφορετική εξέταση , όχι στα παιδιά μέσα σε μια εξέταση ) :P


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: alexhof on May 29, 2017, 12:08:19 pm
Μπορεί κάποιος να πει τι έπεσε περίπου σήμερα και αν μοιάζουν με αυτά που ανέβηκαν από 22 και 23 Μαΐου ;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: snek on May 29, 2017, 19:04:22 pm
Μπορεί κάποιος να πει τι έπεσε περίπου σήμερα και αν μοιάζουν με αυτά που ανέβηκαν από 22 και 23 Μαΐου ;
Παρόμοια φάση , οι διαφορές ήταν ότι ήθελε να κάνουμε upload την τελευταία άσκηση με το string και όχι την 1η , και εκεί να πούμε κάποια πράγματα , ζήτησε άλλο στοιχείο του πίνακα(με σημαντικά bytes κτλ...) και στο exception , απλά ήθελε ένα breakpoint στο syscall που εμφανίζει το " Exeption " , όλα τα υπόλοιπα ήταν ίδια φάση..


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: TzimStark on August 22, 2017, 19:41:38 pm
Παιδιά στα σημερινά ζητούσε να ανοίξουμε το QtSpim χωρίς να φορτώσουμε κανένα πρόγραμμα και μετά να βρούμε την τιμή του εξής καταχωρητή της μνήμης: [0x90000008]. ζητούσε όλη τη λέξη ή μόνο το συγκεκριμένο byte?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: MrRobot on August 22, 2017, 22:27:04 pm
Δεν το διευκρίνιζε, εγώ έβαλα όλη τη λέξη


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: arisfili on August 23, 2017, 18:42:46 pm
Παιδιά στα σημερινά ζητούσε να ανοίξουμε το QtSpim χωρίς να φορτώσουμε κανένα πρόγραμμα και μετά να βρούμε την τιμή του εξής καταχωρητή της μνήμης: [0x90000008]. ζητούσε όλη τη λέξη ή μόνο το συγκεκριμένο byte?
Παιδιά αυτό πως μπορούμε να το βρούμε;;;;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: gtsiami on August 23, 2017, 22:35:50 pm
Πως βρίσκουμε την τιμή του [0x90000008]?


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: vagus on August 24, 2017, 07:01:23 am
Θα ηθελα καποιος/α, που δεν προβληματίζεται με το γεγονος ηθικα και θελει να βοηθησει, να μου στειλει τις εργασιες, εφοσον ειναι αρκουντως σιγουρος/η για το αποτελεσμα. Χρειαζομαι απαραιτήτως την καθοδηγηση και την  επαληθευση.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: squawker on August 24, 2017, 17:01:38 pm
αν το τρέχεις με breakpoint και single steps και είσαι στο σημείο που μόλις περάστηκε στοn $f8, πήγαινε εκεί που βλέπεις τους FP registers.Στο double precision δεν θα είναι στον FP8:4031333333333333  η κάτι τέτοιο.. και πιο πάνω  στο single precision δεν θα είναι FG8:33333333 και FG9:40313333?
(τα τελευταία ψηφία μπορει να είναι διαφορετικά)

οι αριθμοί που λες σε μένα εμφανίζονται στα FP12 FG12 FG13 αντίστοιχα. Έχω κάτι λάθος;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: George_RT on August 24, 2017, 18:58:39 pm
οι αριθμοί που λες σε μένα εμφανίζονται στα FP12 FG12 FG13 αντίστοιχα. Έχω κάτι λάθος;

Εχει να κανει με τους καταχωρητες που εχεις δηλώσει. Εαν τα αποτελέσματα ειναι σωστά δεν υπάρχει πρόβλημα.

Θα ηθελα καποιος/α, που δεν προβληματίζεται με το γεγονος ηθικα και θελει να βοηθησει, να μου στειλει τις εργασιες, εφοσον ειναι αρκουντως σιγουρος/η για το αποτελεσμα. Χρειαζομαι απαραιτήτως την καθοδηγηση και την  επαληθευση.

Υπάρχει σχεδόν ίδια άσκηση στο βιβλίο και στις διαφάνειες.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Professor on August 24, 2017, 19:59:27 pm
Μπορει καποιος να μου εξηγησει πως και που το βρισκεις αυτο? Και μεσα στο βιβλιο και πως απαντάτε αν γινεται... :-\ :-\ :-\


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: christina_ on August 24, 2017, 20:21:41 pm
Έχω ενεργοποιημένο το Kernel text και πάλι δεν μου βγάζει το αρχικο πρόγραμμα. Ξέρει κανείς γιατί συμβαίνει αυτό;


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Vlassis on August 24, 2017, 20:30:10 pm
Μπορει καποιος να μου εξηγησει πως και που το βρισκεις αυτο? Και μεσα στο βιβλιο και πως απαντάτε αν γινεται... :-\ :-\ :-\
από εδώ (https://www.math.ku.edu/computing/cluster/totalview.6.0.0-0-doc/ref_guide/architectures26.html) φαινεται $f0 και $f2. γενικως googlαρετε γιατι το βιβλιο εχει πολυ πραγμα μεσα  ;)


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on August 24, 2017, 20:39:54 pm
Μπορει καποιος να μου εξηγησει πως και που το βρισκεις αυτο? Και μεσα στο βιβλιο και πως απαντάτε αν γινεται... :-\ :-\ :-\

Για μέσα στο βιβλίο δεν θυμάμαι. Είναι αυτό που ρωτάει πχ για το c[1,1]? Αν ναι τότε εξαρτάται και απο το πρόγραμμα σου αυτό, εσύ διαλέγεις σε ποιόν καταχωρητή θα αποθηκεύσεις την τιμή. Αν είναι double θα θέλει δυο fp, πχ τον fp0 και τον fp1. Έχω την εντύπωση οτι τα πιο σημαντικά θα είναι στον fp1, τα έχω ψιλοξεχάσει γιατί πέρασα τον Ιούνιο...Τσέκαρε στο βιβλίο, τα είχε πάρει το μάτι μου αυτά.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on August 24, 2017, 20:41:33 pm
Έχω ενεργοποιημένο το Kernel text και πάλι δεν μου βγάζει το αρχικο πρόγραμμα. Ξέρει κανείς γιατί συμβαίνει αυτό;

Όταν λες αρχικό πρόγραμμα? Επίσης μετά απο κάθε αλλαγή το qtspim θέλει restart


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: christina_ on August 24, 2017, 21:01:00 pm
Για το πρόγραμμα που πρέπει να ανοίγει όταν αρχικοποιώ τον προσομοιωτή


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Xplicit on August 24, 2017, 21:12:42 pm
Για το πρόγραμμα που πρέπει να ανοίγει όταν αρχικοποιώ τον προσομοιωτή

Αν δεν επιλέξεις εσυ κάποιο πρόγραμμα δεν ανοίγει, εκτός αν εννοείς τον exception handler. Απο simulator>settings>MIPS πρέπει να τον επιλέξεις.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: christina_ on August 24, 2017, 21:35:44 pm
Ναι αυτό εννοούσα , σε ευχαριστώ !!


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: GiwrgosRam on February 08, 2018, 18:54:56 pm
μπορεί κάποιος να μου δώσει την εκφώνηση ή να μου πει που μπορώ να τη βρω?

ετημμυ και τημμυ downloads / σε αυτό το thread δεν βρήκα κάτι

ευχαριστώ


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: leukosaraphs! on February 08, 2018, 19:03:16 pm
here you go


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: Spiro on February 20, 2018, 15:28:52 pm
Μίλησε κανείς με τον Χασάπη για την εξέταση; Υποτίθεται είναι αυτή την εβδομάδα αλλά ανακοίνωση δεν έχει βγει.


Title: Re: [Αρχιτεκτονική Υπολογιστών] - Εργασία 2016-17 Απορίες
Post by: christina_ on February 20, 2018, 15:36:49 pm
Θα ρωτήσω αύριο τον Πέτρου