Ωραία...
ARM Cortex A8
-----------------
Aνήκει στην κατηγορία των load-store αρχιτεκτονικών. Δηλαδή η assembly τους επιτρέπει εντολές με ορίσματα ΜΟΝΟ καταχωρητές και όχι περιεχόμενα της μνήμης. Για να κάνεις κάτι με οτιδήποτε βρίσκεται στη μνήμη πρέπει να το φορτώσεις σε καταχωρητή. Aυτό δίνει πολλά πλεονεκτήματα κυρίως λόγω της ομοιομορφίας των εντολών (σταθερές σε μήκος).
- Symmetric, superscalar pipeline for full dual-issue capability
- High-frequency through efficient, deep pipeline
- Advanced branch prediction unit with >95% accuracy
- Integrated Level 2 Cache for optimal performance in high-performance systems
Superscalar pipeline: Χρησιμοποιεί τον παραλληλισμό σε επίπεδο εντολών (ILP) για να εκτελέσει γρήγορα εντολές που μπορούν να εκτελεσθούν παράλληλα σε επίπεδο hardware χωρίς να επέμβει compiler ή οτιδήποτε άλλο. Όλα γίνονται σε hardware... Για να γίνει αυτό το pipeline ή αλλιώς η σωλήνωση του επεξεργαστή έχει πολλαπλές διαδρομές για διαφορετικού τύπου εντολές. Απλό pipeline MIPS (το κλασικό 5-stage pipeline)
Dual Issue: Ο επεξεργαστής έχει τη δυνατότητα να κάνει issue δύο εντολές μαζί... Δηλαδή αντί να φέρνει μία μία τις εντολές στο pipeline του φέρνει δύο δύο τις κάνει issue μαζί. Αυτό λέγεται instruction prefetching αλλιώς... Φέρνω δηλαδή εντολές στον επεξεργαστή πριν την στιγμή που πρέπει να εκτελεσθούν για να πετύχω καλύτερη επίδοση-απόδοση.
Branch Prediction Unit: Οι επεξεργαστές για να πετύχουν τις σημερινές ταχύτητες προβλέπουν σχεδόν τα πάντα... Και όσο κι αν σας φαίνεται παράξενο προβλέπουν ΠΟΛΥ ΣΩΣΤΑ... Σε μία ροή εντολών υπάρχει για παράδειγμα κάποιο branch (δηλαδή άλμα σε μία άλλη διεύθυνση) όπου πρέπει να πάει το πρόγραμμα και να συνεχίσει την εκτέλεση του αν μία συνθήκη είναι αληθής ή ψευδής. Για να αποτιμηθεί η συνθήκη και να βρεθεί ο προορισμός ο επεξεργαστής χρειάζεται ΠΟΛΛΟΥΣ κυκλους με αποτέλεσμα να χαλάει η σωλήνωση και να καθυστερεί το pipeline.
Σε ιδανικό pipeline η κάθε εντολή χωρίζεται σε στάδια και η κάθε εντολή απέχει από την προηγούμενη της κατά ένα στάδιο. Έτσι πετυχαίνουμε να έχουμε 1 εντολή που έχει εκτελεσθεί για κάθε μικρό χρονικό διάστημα (όσο διαρκεί η εκτέλεση ενός σταδίου στο pipeline). Αν έχουμε καθυστέρησει στο pipeline (stall) τότε όλες οι εντολές που ακολουθούν πίσω από την εντολή που προκαλεί το stall (πχ. η branch) καθυστερούν.
Έτσι προβλέπουμε τι θα ακολουθήσει για να έχουμε "γρήγορη αντίδραση στο pipeline" σε πιθανά άλματα. Αυτά τα ποσοστά στους σύγχρονους επεξεργαστές είναι μυστικά επτασφράγιστα που καμία εταιρία δεν αποκαλύπτει... Από reverse engineering και υποθέσεις φαίνεται ότι η τελευταία γενιά των intel desktop επεξεργαστών έχει ποσοστό επιτυχίας πάνω από 99%.
Αυτό από μόνο του λέει πόσο σημαντικό είναι το 95% του ARΜ...
Η
LVL2 cache είναι γνωστή από τους υπόλοιπους επεξεργαστές. Είναι λανθάνουσα (κρυφή) μνήμη μέσα στο τσιπάκι που είναι πολύ πιο γρήγορη από την κύρια μνήμη(DRAM) και κρατάει τα πιο συχνά χρησιμοποιούμενα (συνήθως) δεδομένα έτσι ώστε να γλιτώνουμε το penalty των accesses στη μνήμη.
Τέλος να πω ότι αφού το A4 είναι αυτής της οικογένειας αυτό σημαίνει ότι έχει την ίδια συμβολική γλώσσα με του Cortex A8. Αυτό σημαίνει ότι δίαυλοι και τέτοια πράγματα είναι δύσκολο να έχουν αλλάξει... Το μέγεθος και η οργάνωση της cache μπορεί να είναι διαφοροποιημένα ή το Branch prediction unit ή ψιλολόγια που σίγουρα είναι ικανά να δώσουν καλύτερες επιδόσεις αλλά όχι όσο μία αλλαγή αρχιτεκτονικής όπως θα ήταν η αλλαγή των διαύλων μέσα ή έξω από το chip.
Συγνώμη για το post και το μέγεθος του, απλά όποιος θέλει να μάθει ας διαβάσει αυτό και αν θέλει κάτι περισσότερο ρωτάει...
Bookmarks