Προς το περιεχόμενο

Αρχιτεκτονική CPU, Instruction Sets κ.ά.


pmichal

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σε όλους.

Θέλω να κάνω μία εργασία (φοιτητής πληροφορικής στο TEI Αθήνας είμαι..) εκπαιδευτικού περιεχομένου και είναι κρίμα να τα πω και λάθος.

Θέλω κάποιος να μου πει αν έχω καταλάβει κάτι καλά.

 

Έχουμε βάση το Von Neumann, Control Unit, ALU και Μνήμη.

Τα Instruction Sets (SSE, SSE2, SSE3, MMX κλπ κλπ) βρίσκονται στη CU(?)

Και η CU μαζί με την ALU στον πυρήνα της CPU(?)

Η CU εκτελεί εντολές από τα instruction sets και όπου χρειάζεται χρησιμοποιεί την ALU (?)

Και ο πυρήνας έχει L1 cache, και επικοινωνεί με την L2 cache εξωτερικά(?)

Με την L1 cache να χωρίζεται σε τμήματα. (2 με πίνακες και 2 με τμήματα μνήμης, τα οποία πάνε ανά 2 Δεδομένα και Εντολές) (?)

Και την L2 να μην έχει απλά τους πίνακες...(?)

 

Νομίζω ότι το περίγραμμα είναι αυτό...

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

 

Ευχαριστώ!

Δημοσ.

Λοιπόν, όχι δεν τα έχεις καταλάβει καλά. Θα σου πρότεινα να διαβάσεις το βιβλίο των Paterson-Hennesey, αλλά θα κάνω ένα σύντομο recap εδώ:

 

- Η αρχιτεκτονική von Neumann είναι μια πιθανή. Σε αυτήν ο επεξεργαστής χρησιμοποιεί μια κοινή μνήμη για να αποθηκεύει δεδομένα και εντολές. Σήμερα δεν χρησιμοποιείται πια συνήθως. Αντίθετα η Harvard αρχιτεκτονική ορίζει ξεχωριστές μνήμες για εντολές και δεδομένα (εξ'ου και οι επεξεργαστές σήμερα έχουν ξεχωριστές L1 instruction & data cache).

 

- Τα υπόλοιπα ALU, FPU, etc είναι μονάδες επεξεργασίας, οι οποίες υλοποιούν το datapath το οποίο επεξεργάζεται το instruction set.

 

- Όσων αφορά το instruction set είναι πολύ σημαντικό να αναφέρεις το τι είναι οι 3 σημαντικότεροι τύποι (RISC, CISC, VLIW). Ενδεικτικά σε ένα RISC CPU μιλάμε για λίγες και κυρίως ΑΠΛΕΣ εντολές. Τονίζω το απλές γιατί στα περισσότερα πανεπιστήμια δίνεται η εντύπωση ότι η απλότητα στους RISC προέρχεται από τον αριθμό των εντολών, κάτι που είναι λάθος. Το βασικό χαρακτηριστικό είναι η πολυπλοκότητα τους. Σε μια RISC εντολή δεν μπορείς να γράψεις κάτι τρέλες που γράφεις στην χ86 με indirect adressing σε όλους τους τελεστές ή και χειρότερα. H x86 είναι CISC αρχιτεκτονική που σημαίνει περίπλοκες εντολές αλλά και πιο συμπαγές πρόγραμμα (από άποψη χώρου). Η VLIW πακετάρει ουσιστικά τις εντολές σε μεγάλες λέξεις οι οποίες στέλνονται στον επεξεργαστή. Το concept εδώ είναι ότι ο compiler κάνει το πακετάρισμα έτσι ώστε να βελτιστοποιεί τη σειρά εκτέλεσης των εντολών ο ίδιος, πράγμα που γλυτώνει την ανάγκη για reordering στην CPU.

 

- Pipeline, supersclarity είναι 2 πράγματα που πρέπει να αναφέρεις όπωςδηποτε και δεν μπορώ να περιγράψω εύκολα χωρίς σχήμα οπότε google it.

 

- MMX, SSE, etc δεν είναι instruction sets, είναι επεκτάσεις για το x86 instruction set, που αφορούν κυρίως το vector processing (πολύ χρήσιμο για multimedia εφαρμογές) για το οποίο θα πρέπει επίσης όπωσδήποτε να γράψεις.

 

- Caches: Ένας επεξεργαστής δεν ΠΡΕΠΕΙ να έχει cache, αν και σήμερα όλοι έχουν. Η Cache δημιουργεί μια ιεραρχική δομή της μνήμης, και όντας πιο γρήγορα από την RAM, μειώνει το χρόνο προσπέλασης (Latency). Προφανώς σήμερα υπάρχουν ιεραρχίες και στην cache (L1, L2, L3). Το αν είναι on-chip ή όχι είναι καθαρά θέμα υλοποίησης, η ιδέα δεν αλλάζει. Το πιο χαμηλό επίπεδο είναι το γρήγορο και το πιο μικρό σε μέγεθος. Μια cache μπορεί να είναι directly mapped, set associative ή fully associative. Google again είναι κάπως μπερδεμένο και βαριέμαι να το εξηγώ. Επίσης μια ιεραρχία cache μπορεί να είναι inclusive ή exclusive. Στην πρώτη ένα επίπεδο περιλαμβάνει και τα δεδομένα του αμέσως χαμηλότερου, στη δεύτερη όχι.

 

Αυτά εν συντομία, αν χρειαστείς τπτ άλλο πεστο.

Δημοσ.

Κατ'αρχάς σε ευχαριστώ πολύ για τον χρόνο που αφιέρωσες!

Την ιδέα της Cache νομίζω την έπιασα...

Θα ψάξω να δω και τα υπόλοιπα που μου είπες και θα επανέλθω.

 

Τώρα αυτά που έγραψα πριν ήταν αποτέλεσμα πληροφοριών από σκόρπιες μεριές (ΤΕΙ, internet κλπ) για αυτό βγήκαν μπλεγμένα...

 

Thanks και πάλι και θα επανέλθω σύντομα με νέες ερωτήσεις :D

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...