giorikas Απρίλιος 23, 2005 #21 Απρίλιος 23, 2005 να ρωτησω και κατι ασχετο ε?οι τωρινοι P4 HT χρησιμοποιουν την λογικη της Shared cache, ή ο καθε λογικος επεξεργαστης εχει προσβαση μονο στην "δικη" του cache?
DarthMoul Απρίλιος 23, 2005 Author #22 Απρίλιος 23, 2005 να ρωτησω και κατι ασχετο ε?οι τωρινοι P4 HT χρησιμοποιουν την λογικη της Shared cache, ή ο καθε λογικος επεξεργαστης εχει προσβαση μονο στην "δικη" του cache?Δεν έχει καμμία έννοια αυτό που ρωτάς. Έχεις έναν πυρήνα και μία cache.
giorikas Απρίλιος 23, 2005 #23 Απρίλιος 23, 2005 η αληθεια ειναι εχω μπερδευτει με το HT.Ας υποθεσουμε οτι εχουμε ενα HT CPU με 512ΚΒ L2 και 2 threads να τρεχουν.Ποσα ΚΒ μπορει (και πως) να χρησιμοποιησει το καθε ενα?
DarthMoul Απρίλιος 23, 2005 Author #24 Απρίλιος 23, 2005 η αληθεια ειναι εχω μπερδευτει με το HT.Ας υποθεσουμε οτι εχουμε ενα HT CPU με 512ΚΒ L2 και 2 threads να τρεχουν.Ποσα ΚΒ μπορει (και πως) να χρησιμοποιησει το καθε ενα?Τα έχουμε πει πολλές φορές. Το SMT (Simultanius Multi Threading) είναι hardware level multitasking. Οι multiscalar επεξεργαστές έχουν περισσότερες από μία μονάδες εκτέλεσης. Ένας Pentium 4 πχ έχει δύο ALU, μία FPU και μία Vector unit. Όταν δουλεύει χωρίς HT, η είσοδος μίας εντολής στο execution pipeline μπλοκάρει όλες τις μονάδες εκτέλεσης. Όταν δουλεύει με HT, στην πραγματικότητα δουλεύει με δύο execution pipelines. Αυτό του επιτρέπει να εκτελεί δύο εντολές εν παραλλήλω. Αν και οι δύο εντολές διεκδικήσουν την ίδια μονάδα εκτέλεσης, η μία θα περιμένει. Το cache του επεξεργαστή είναι ένα. Τώρα θα με ρωτήσεις τι ακριβώς συμβαίνει αν και τα δύο threads ζητήσουν πρόσβαση στην ίδια διεύθυνση του cache. Για να συμβεί αυτό θα πρέπει και τα δύο threads να ανήκουν στο ίδιο multithreaded πρόγραμμα. Σ'αυτήν την περίπτωση την πρόσβαση την ελέγχει το ίδιο το πρόγραμμα. Υπάρχουν δύο προσεγγύσεις (και πάρα μα πάρα πολύ debate στο usenet) γι αυτό το ζήτημα.Η μία υποστηρίζει την χρήση των shared resources με την εφαρμογή mutexing. Η άλλη υποστηρίζει την χρήση independent resources, χωρίς mutexing φυσικά αλλά εις βάρος του cache και της μνήμης.Εγώ χρησιμοποιώ την πρώτη μόνο όταν δεν μπορώ να λύσω το πρόβλημα με την δεύτερη. Η πρώτη προϋποθέτει over-optimized κώδικα που έχει περάσει από πολύ λεπτομερές validation για να μην υπάρχουν race conditions, και πολλές φορές χρειάζεται την συνδρομή αλγεβρικών μοντέλων bool.Η δεύτερη είναι απλοϊκή και τις περισσότερες φορές γρηγορότερη αλλά πιέζει πολύ τους registers και το cache. Ειδικά σε risc επεξεργαστές με τους εκατοντάδες registers και τα δεκάδες megabytes cache κάνει θαύματα από πλευρας ταχύτητας. Στους cisc η απόδοση της σε χρόνους είναι καλύτερη στο 60% των περιπτώσεων.Γενικότερα οι κατηγορίες εις βάρος της Intel ότι αυξάνει το cache γιατί μόνο αυτό μπορεί να κάνει κλπ είναι τουλάχιστον άδικες. Η cisc αρχιτεκτονική υποχρεώνει πάρα πολλούς να χρησιμοποιούν την πρώτη μέθοδο για να μην χάνουν σε επιδόσεις. Αλλά αυτό σημαίνει μεγάλο κόστος ανάπτυξης σε multithreaded κώδικα, πολλά bugs, δύσκολη και ακριβή ανάπτυξη για devtools και πολλά άλλα.Αυτός είναι και ο λόγος που το ζήτημα του SMT αφήνει την AMD αδιάφορη. Η κατασκευή και η υποστήριξη του SMT είναι πολύ πιο δύσκολη από το να ενώσεις δύο πυρήνες σε ένα chip, και έχει προϋποθέσεις που η AMD ακόμα δεν τις πληρεί.
giorikas Απρίλιος 24, 2005 #25 Απρίλιος 24, 2005 Ευχαριστω DarthMoul για το χρονο σου.Στειλε μας αν μπορεις και κανα λινκ,να τα λεει απλα και κατανοητα(για να μαθουμε και εμεις ασχετοι),μην σε αναγκαζουμε καθε τοσο να γραφεις κατεβαταΥΓνομιζω οτι ο P4 εχει 3 ALU και δυο απο αυτες μαλιστα "γρηγορες"(?)
DarthMoul Απρίλιος 24, 2005 Author #26 Απρίλιος 24, 2005 Ευχαριστω DarthMoul για το χρονο σου.Στειλε μας αν μπορεις και κανα λινκ,να τα λεει απλα και κατανοητα(για να μαθουμε και εμεις ασχετοι),μην σε αναγκαζουμε καθε τοσο να γραφεις κατεβαταΥΓνομιζω οτι ο P4 εχει 3 ALU και δυο απο αυτες μαλιστα "γρηγορες"(?)Εγώ ξέρω για δύο στην διπλάσια συχνότητα από αυτή του ρολογιού. Μπορεί και να κάνω λάθος, δεν επιμένω.Αν παρακολουθήσεις τις συζητήσεις που γίνονται στα development forums του gcc, του glibc και το forum που premier support της Intel μαθαίνεις πολλά. Για να τα καταλάβεις όμως πρέπει να γράφεις κώδικα και να κάνεις πολύ profiling. Links έχω αλλά αυτά που λένε στα είπα ήδη συνοπτικά. Αν θέλεις λεπτομέριες μάλλον χρειάζεσαι βιβλία που είναι ακριβά και πολύ τεχνικά.
giorikas Απρίλιος 24, 2005 #27 Απρίλιος 24, 2005 Εγώ ξέρω για δύο στην διπλάσια συχνότητα από αυτή του ρολογιού. Μπορεί και να κάνω λάθος, δεν επιμένω.ναι,ναι και εγω αυτο εγω διαβασει καπου.Παντως ευχαριστω.
chaos Απρίλιος 24, 2005 #28 Απρίλιος 24, 2005 Για να μαθετε κατι παραπανω οπως λεει ο Darthmoul δεν ειναι αρκετο να διαβασετε δυο τρια αρθρα απλως.Καταρχην πρεπει να μαθετε τα μαθηματικα που οδηγησαν σε αυτες τις επιλογες στην αρχιτεκτονικη καθως και τις ανακαλυψεις στον τομεα τον υλικων και την αναλογη φυσικη.Παντως οποιος ενδιαφερεται και εχει καποιο μυαλο μπορει μονος του να το κανει αλλα δεν ειναι απλο ζητημα.Παντως αλλο να μαθεις μια γλωσσα προγραμματισμου και αλλο την αρχιτεκτονικη των επεξεργαστων.Οσο για το ΗΤ της ΙΝΤΕL πρεπει να πω οτι δεν ειναι true multitasking.Απλως διαχωριζει σε δυο λογικες μοναδες τον επεξεργαστη για να κανει καλυτερη χρηση των ΙΔΙΩΝ πορων.Απο ερευνες που ειχαν διεξαχθει παλαιοτερα ειχε διαπιστωθει οτι ενα μεγαλο μερος των πορων του επεξεργαστη παρεμενε αχρησιμοποιητο και ετσι προσπαθησαν να διορθωσουν αυτο το "προβλημα".Αλλο πραγμα το SMP (συμμετρη πολυεπεξεργασια )απο το HyperThreading για αυτο και η Intel εχει δωσει αλλο ονομα ...ωστε η διαφορα να τονιστει.
giorikas Απρίλιος 24, 2005 #29 Απρίλιος 24, 2005 Για να μαθετε κατι παραπανω οπως λεει ο Darthmoul δεν ειναι αρκετο να διαβασετε δυο τρια αρθρα απλως.Καταρχην πρεπει να μαθετε τα μαθηματικα που οδηγησαν σε αυτες τις επιλογες στην αρχιτεκτονικη καθως και τις ανακαλυψεις στον τομεα τον υλικων και την αναλογη φυσικη.Παντως οποιος ενδιαφερεται και εχει καποιο μυαλο μπορει μονος του να το κανει αλλα δεν ειναι απλο ζητημα.Προφανως και αυτο ειναι το καλυτερο αλλα δεν ειναι παντα εφικτο.Απλα να ξερουμε και πεντε πραγματα παραπανω μιας και μας ενθουσιαζει το αντικειμενο.
DarthMoul Απρίλιος 24, 2005 Author #30 Απρίλιος 24, 2005 Οσο για το ΗΤ της ΙΝΤΕL πρεπει να πω οτι δεν ειναι true multitasking.Απλως διαχωριζει σε δυο λογικες μοναδες τον επεξεργαστη για να κανει καλυτερη χρηση των ΙΔΙΩΝ πορων.Απο ερευνες που ειχαν διεξαχθει παλαιοτερα ειχε διαπιστωθει οτι ενα μεγαλο μερος των πορων του επεξεργαστη παρεμενε αχρησιμοποιητο και ετσι προσπαθησαν να διορθωσουν αυτο το "προβλημα".Αλλο πραγμα το SMP (συμμετρη πολυεπεξεργασια )απο το HyperThreading για αυτο και η Intel εχει δωσει αλλο ονομα ...ωστε η διαφορα να τονιστει.Να σε ρωτήσω κάτι; Αν το HT ήταν true multitasking πως θα έπρεπε να δουλεύει;Το SMT εφευρέθηκε από το alpha engineering team το 1998 για να υλοποιηθεί μέσα τον 21464-ev8 πυρήνα του alpha. Την εποχή εκείνη ο alpha είχε υπερδιπλασια ισχύ από οποιονδήποτε άλλο επεξεργαστή, αλλά οι μηχανικοί του λόγω διαστροφής αποφάσισαν να τον κάνουν ακόμα ισχυρότερο. Έτσι εμφανίστηκε για πρώτη φορά το 4-way SMT. Αργότερα, το 2002, που η HP αγόρασε την Compaq, η Intel λόγω της συνεργασίας που έχει με την HP στην σχεδίαση επεξεργαστών αγόρασε αρχικά τα σχέδια του ev8, τον compiler και πέρσι όλο το lab μαζί με τους μηχανικούς που δουλεύουν εκεί για να αναλάβουν τον σχεδιασμο του Itanium. Ετσι ο Pentium βρέθηκε με 2-way SMT το οποίο λειτουργεί όπως αυτό του ev8 αλλά πετσοκομένο για κρατηθεί χαμηλά η τιμή. Μάλλον πρέπει να ξεκαθαρίσεις λιγάκι τις έννοιες του hardware level multitasking (SMT) και του software level multitasking (scheduling).Εδώ ένα άρθρο για το SMT του ev8 με ημερομηνία 26-12-2000:http://www.realworldtech.com/page.cfm?articleid=RWT122600000000Και εδώ η αγορά της τεχνολογίας του ev8 και του GEM software layer (δηλαδή της βάσης του icc) με ημερομηνία 6-8-2001:http://www.theinquirer.net/?article=578Λες ο alpha να είχε πρόβλημα με την αξιοποίηση των πόρων του; :017:
Recommended Posts
Archived
This topic is now archived and is closed to further replies.