Αφού περάσαμε απο όλα τα υπόλοιπα κομμάτια που απαρτίζουν τον υπολογιστή και εξηγήσαμε τρόπο την λειτουργία τους, ήρθε η ώρα μιλήσουμε για το σημαντικότερο κομμάτι αυτου, το οποίο δεν είναι άλλο απο τον επεξεργαστή, ή στα αγγλικα το Central Processing Unit (CPU).

Αρχικά αυτό που κάνει εντύπωση είναι πως πρόκειται για το πιο μικρό εξάρτημα που θα βρείτε στο «μηχανοστάσιο» του υπολογιστή σας. Ταυτόχρονα, κρύβει στο εσωτερικό του εκατοντάδες εκατομμύρια τρανζίστορ τα οποία εκτελούν όλες τις εντολές! Μάλιστα κάθε 2 χρόνια ο αριθμός των τραζιστορ σε ένα τσιπ διπλασιάζεται! Ενδεικτικά δείτε τον παρακάτω πίνακα:

Intel_Transistor_count_table

Η οργάνωση των περισσότερων συγχρονων επεξεργαστών είναι πάνω κάτω η ίδια και αποτελείται απο 3 κύρια τμήματα.

Arithmetic and Logical Unit, ALU, ή αριθμητική και λογική μονάδα: είναι υπεύθυνη για τις πράξεις που πρέπει να εκτελεστούν.
Registers, ή καταχωρητές: Μικρά κύτταρα μνήμης στο εσωτερικό του επεξεργαστή, που χρησιμοποιούνται για την προσωρινή αποθήκευση των δεδομένων, καθώς αυτά υφίστανται επεξεργασία.
Μονάδα ελέγχου, ή Control Unit: Ελέγχει τη ροή δεδομένων από και προς την CPU, τους καταχωρητές, τη μνήμη και τις περιφερειακές μονάδες εισόδου/εξόδου.

cpu diagram

Σκοπός των παραπάνω είναι να αναλύσουν και να εκτελέσουν τις εντολες που καταφθάνουν στον επεξεργαστή. Η εκτέλεση των εντολών γίνεται σε 4 στάδια και το διάστημα που χρειάζεται για να εκτελεστεί μία εντολή λέγεται κύκλος εντολής. Τα 4 αυτά στάδια είναι ή ανάκληση, η αποκωδικοποίηση, η εκτέλεση και η αποθήκευση. Πάμε να τα δούμε αναλυτικά!

Κατά την ανάκληση, ανάκταται η εντολή από την θέση μνήμης που είναι αποθηκευμένη. Η θέση της εντολής στην μνήμη περιέχεται στον απαριθμητή προγράμματος. Όταν η εντολή μεταφερθεί από την μνήμη στον επεξεργαστή αποθηκεύεται στον καταχωρητή εντολών. Έπειτα αυξάνεται η τιμή του απαριθμητή προγράμματος, όσο είναι και το μήκος της εντολής σε μονάδες μνήμης, ώστε να υποδεικνύει την θέση της επόμενης εντολής ή την διεύθυνση των τελεστών σε περίπτωση που η τρέχουσα εντολή έχει τελεστές. Συχνά η εντολή προς ανάκληση καθυστερεί να μεταφερθεί από την μνήμη στον επεξεργαστή, λόγο ασύγχρονης λειτουργίας των δύο συσκευών, προκαλώντας παύση στην λειτουργία της CPU. Για την αντιμετώπιση αυτού του προβλήματος, στους σύγχρονους επεξεργαστές γίνεται χρήση ενδιάμεσης μνήμης προσωρινής αποθήκευσης (cache) αλλά και τεχνικές σωλήνωσης (pipelining).

Στο στάδιο της αποκωδικοποίησης, η εντολή διασπάται και ερμηνεύεται από τον επεξεργαστή. Ανάλογα με τον κωδικό εντολής, κατά την αποκωδικοποίηση, ανακαλούνται και τυχόν τελεστές. Η τιμή των τελεστών ανακαλείται είτε άμεσα ως σταθερά, είτε έμμεσα ως μια διεύθυνση στην οποία βρίσκεται αποθηκευμένη η τιμή, σε κάποιο καταχωρητή ή μνήμη, όπως ορίζει το εκάστοτε πρότυπο διευθυνσιοδότησης. Σε παλιότερα σχέδια επεξεργαστών, η αποκωδικοποίηση της εντολής ήταν μια αμετάβλητη διαδικασία που πραγματοποιούσε το υλικό. Ωστόσο, σε πιο περίπλοκες αρχιτεκτονικές επεξεργαστών, για την ερμηνεία των εντολών χρησιμοποιείται ένα μικροπρόγραμμα. Το μικροπρόγραμμα συνήθως είναι επαναπρογραμματιζόμενο ώστε να μπορεί να μεταβληθεί, ακόμη και μετά την κατασκευή της CPU, ο τρόπος που αποκωδικοποίησης των εντολών.

corequad

Μετά την ανάκληση και την αποκωδικοποίηση, ακολουθεί η εκτέλεση της εντολής. Σε αυτό το στάδιο, διάφορες μονάδες του επεξεργαστή συνδέονται ώστε να γίνει εφικτή η εκτέλεση της επιθυμητής λειτουργίας. Αν, για παράδειγμα, ζητήθηκε μια λειτουργία πρόσθεσης, η αριθμητική μονάδα (AU) θα συνδεθεί με ένα σύνολο εισόδων και εξόδων. Οι είσοδοι θα παρέχουν τους αριθμούς που πρέπει να προστεθούν και οι έξοδοι θα περιέχουν το άθροισμα. Εάν η πρόσθεση έχει ως αποτέλεσμα έναν υπερβολικά μεγάλο αριθμό για να χειριστεί η CPU τότε θα ενεργοποιηθεί ο ενδείκτης αριθμητικής υπερχείλισης. Η αριθμητική λογική μονάδα (ALU) στο σύνολό της περιέχει κυκλώματα για την εκτέλεση απλών αριθμητικών και λογικών πράξεων, όπως η πρόσθεση και η σύγκριση αριθμών.

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

amd-opteron-dual-side

Οι περισσότερες κεντρικές μονάδες επεξεργασίας είναι σύγχρονες συσκευές. Είναι δηλαδή σχεδιασμένες να λειτουργούν σύμφωνα με ένα ηλεκτρικό σήμα συγχρονισμού, που ονομάζεται σήμα ρολογιού. Το ρολόι είναι ένας ηλεκτρικός τετραγωνικός παλμός που εκπέμπεται από τον δίαυλο ελέγχου και εναλλάσσεται περιοδικά μεταξύ μηδέν και ένα. Ο χρόνος που χρειάζεται το ρολόι για να μεταπηδήσει από το μηδέν στο ένα και πίσω στο μηδέν, ονομάζεται περίοδος ή κύκλος του ρολογιού. Η συχνότητα με την οποία γίνεται αυτή η εναλλαγή ονομάζεται συχνότητα ρολογιού. Η συχνότητα μετριέται σε Hertz (Hz) ενώ ο κύκλος, που είναι αντίστροφο μέγεθος της συχνότητας, μετριέται σε δευτερόλεπτα. Ο κύκλος ρολογιού είναι το μικρότερο χρονικό διάστημα στο οποίο μπορεί να συμβεί μια λειτουργία. Κάποιες λειτουργίες εκτελούνται σ’ έναν κύκλο ρολογιού ενώ κάποιες άλλες χρειάζονται περισσότερους κύκλους.

Pulse

Το ρολόι δεν δουλεύει με την ίδια συχνότητα για όλες τις συσκευές ενός υπολογιστικού συστήματος. Συνήθως το ρολόι που απευθύνεται στον επεξεργαστή είναι χρονισμένο σε υψηλότερες συχνότητες από ότι για παράδειγμα το ρολόι της μνήμης. Αυτό συμβαίνει γιατί ο επεξεργαστής λειτουργεί ταχύτερα από ότι η μνήμη. Ωστόσο, υπάρχει το μειονέκτημα πως όταν η ΚΜΕ αλληλεπιδρά με τις υπόλοιπες συσκευές περιμένει την απάντησή τους και τίθεται σε αδράνεια, χάνοντας έτσι επεξεργαστικούς κύκλους.

Η συχνότητα του ρολογιού και άρα του επεξεργαστή, δεν είναι πλέον καθοριστικός παράγοντας για την υπολογιστή ισχύ ενός συστήματος. Οι σημερινοί επεξεργαστές επιτυγχάνουν συχνότητες της τάξης των τριών με τεσσάρων GigaHertz όμως η πραγματική αύξηση της υπολογιστικής ισχύς επιτεύχθηκε με εφαρμογή της παράλληλης επεξεργασίας. Τοποθετώντας σε ένα υπολογιστικό σύστημα δύο ή παραπάνω CPU, οι κατασκευαστές κατάφεραν να αυξήσουν τις επιδόσεις ενώ ταυτόχρονα μείωσαν την συχνότητα του ρολογιού.

Αυτή είναι, συνοπτικά, η διαδικασία που ακολουθεί η Κεντρική Μοναδα Επεξεργασίας για να εκτελέσει τις εντολές που δέχεται, είτε πρόκειται για κάποια πολύπολοκή 3D απεικόνιση, είτε για μιά απλή επεξεργασία κειμένου ή αναπαραγωγή τραγουδιού. Όσο η τεχνολογία αναπτύσσεται, τόσο θα αυξάνεται και η απόδοση των επεξεργαστών, είτε με αύξηση της συχνότητας λειτουργίας, είτε «στριμωχνοντας» στο ίδιο chip ολοένα και περισσότερους πυρήνες! Είναι σίγουρο πως το μέλλον μας επιφυλλάσει μεγάλες εκπλήξεις!

Μπορείται να βρείτε εδώ πως λειτουργούν και άλλα μέρη του υπολογιστή, όπως η οθόνη ο σκληρός δίσκος και άλλα!

ΑΦΗΣΤΕ ΜΙΑ ΑΠΑΝΤΗΣΗ