Editorial: CPU και CPU Overclocking σε βάθος - Εισαγωγή στο Overclocking
Εισαγωγή στο Overclocking από μια λιγότερο "πολύπλοκη" ματιά
Κάπου εδώ αφήνουμε τα της αρχιτεκτονικής ενός επεξεργαστή και φτάνουμε σε ότι θα μας απασχολήσει κατά τη διάρκεια του overclocking. Στο προηγούμενο κεφάλαιο αναφέραμε μερικά από θεμελιώδη χαρακτηριστικά ενός επεξεργαστή, όπως τις πύλες και τους καταχωρητές. Αναφέραμε εκτός από τα βασικά υποσυστήματα τους διαύλους επικοινωνίας μεταξύ αυτών και τη μονάδα ελέγχου η οποία περιλαμβάνει το ρολόι (clock) του επεξεργαστή.
Για να πραγματοποιηθεί η επικοινωνία μεταξύ των buses και φυσικά για να μεταφερθούν δεδομένα, είναι απαραίτητο το «κίνητρο» που θα αναλάβει να «κινήσει» τα δεδομένα στις «λεωφόρους». Αυτό απαιτείται όχι μόνο από τα buses μεταξύ των υποσυστημάτων, αλλά και στα επιμέρους τμήματα ενός CPU, που αποτελούνται ως επί το πλείστον από πύλες (gates). Πρώτα όμως, θα πρέπει να αναφέρουμε τι εννοούμε όταν λέμε συχνότητα λειτουργίας ενός υποσυστήματος.
Κάθε υπολογιστής έχει ένα bit που «ξεχωρίζει». Το «ξεχωριστό» αυτό bit δίνει τον ρυθμό στη κυκλοφορία των υπόλοιπων bit μέσα στον επεξεργαστή όπως αναφέραμε και λίγο παραπάνω, είτε πρόκειται για bit που ελέγχονται από άλλα bit είτε από κάποιους διακόπτες - πύλες. Αυτό που στην πραγματικότητα καθορίζει το υποσύστημα, είναι η συχνότητα με την οποία οι πύλες αλλάζουν κατάσταση από 0 σε 1 ή αλλιώς, κάθε πότε μεταφέρεται ή όχι κάποιο bit πληροφορίας. Το συγκεκριμένο bit εναλλάσσεται συνεχώς από 0 σε 1 και αποτελείται από μια πύλη NOT της οποίας η έξοδος είναι συνδεδεμένη με την είσοδό της. Έτσι εάν η είσοδος είναι 1 τότε η έξοδος είναι 0. Στη συνέχεια η είσοδος θα γίνει 0 και η έξοδος 1 τη 2η φορά κάτι που επαναλαμβάνεται δισεκατομμύρια φορές το δευτερόλεπτο. Αυτή η πύλη είναι "χοντρικά" και αυτή που δίνει τον ρυθμό στον υπολογιστή.
Συχνότητα Λειτουργίας (Clock Speed) ή Ταχύτητα Ρολογιού είναι ο αριθμός των εντολών που εκτελούνται ανά δευτερόλεπτο και μετριέται σε Hertz (ή MHz = εκ. υπολογισμοί το δευτερόλεπτο, ή GHz δις. υπολογισμοί το δευτερόλεπτο). Το clock που υπάρχει μέσα στον επεξεργαστή δεν είναι το μοναδικό καθώς υπάρχουν και μερικά ακόμα που βοηθούν το πρώτο. Ο λόγος για τα clock enable και clock set τα οποία ουσιαστικά είναι οι πρόσθετοι ρυθμιστές της κυκλοφορίας, που σκοπό έχουν να «ευθυγραμμίσουν» τον χρόνο στον οποίο γίνεται η ενεργοποίηση ενός bit (enable) και η αποθήκευσή του από μια άλλη μονάδα (set). Το clock συνδέεται με τη μονάδα stepper που αποτελείται από memory bits τα οποία συνδέονται όμως με διαφορετικό τρόπο. Για να αποθηκεύσουμε (set) κάποιο bit θα πρέπει πρώτα να το ενεργοποιήσουμε (enable) και να το οδηγήσουμε μέσω των buses στον προορισμό του που μπορεί να είναι οποιαδήποτε σημείο του επεξεργαστή, ή συσκευής που συνδέεται άμεσα και έμμεσα με αυτόν.
Το ρολόι είναι παραπλήσιο με το BCLK ή FSB (Base Clock και Front Side Bus αντίστοιχα), έχει και αυτό μια συχνότητα λειτουργίας με την οποία ρυθμίζει τη ροή και τη ταχύτητα των bit/δεδομένων. Ο χρόνος που χρειάζεται για να αλλάξει η κατάσταση του υποσυστήματος (πύλη ή bus) από το μηδέν στο ένα (που είναι στην ουσία οι εντολές που μεταφέρονται προς τις διάφορες τοποθεσίες του επεξεργαστή) λέγεται περίοδος ρολογιού. Όσο πιο μικρή η περίοδος που διανύεται από το 0 στο 1, ανά δευτερόλεπτο, τόσο πιο γρήγορα ολοκληρώνεται ένας κύκλος, άρα τόσο ταχύτερος είναι ο επεξεργαστής (ή τόσο υψηλότερη συχνότητα λειτουργίας έχει σε MHz). Το πόσο γρήγορα εκτελεί τις εντολές του ο επεξεργαστής ορίζεται από τη συχνότητα λειτουργίας του ρολογιού που αναφέραμε πιο πάνω. Αυτό το BCLK «τρέχει» συνήθως από το εσωτερικό του CPU όπως είδαμε πιο πάνω. Κάθε δίαυλος όπως του USB, ή των SATA ή των PCIe θυρών (ο ελεγκτής του τελευταίου βρίσκεται στο εσωτερικό πλέον των CPU) διαθέτει δικό του αποκλειστικό clock που βρίσκεται συνήθως στη μητρική, ή/και στο chipset αυτής και φροντίζει ώστε τα δεδομένα να μεταφέρονται με έναν συγκεκριμένο ρυθμό, ειδάλλως θα υπάρξει απώλεια δεδομένων, δηλαδή bit, κάτι που θα έχει ως αποτέλεσμα μπλε οθόνες και άλλα σχετικά. Μερικά από αυτά τα συναντάμε μετά από ένα αποτυχημένο overclock άλλωστε. Το ρολόι ενός επεξεργαστή στη σύγχρονη τεχνολογία είναι συνδεδεμένο με διάφορα υποσυστήματα όπως τη μνήμη RAM και τις κάρτες επέκτασης PCIe όμως από αυτό αξίζει να κρατήσουμε πως κάθε φυσικός δίαυλος έχει τη δική του συχνότητα, το δικό του ρολόι για τη κυκλοφορία των δεδομένων.
Σε κάθε κύκλο ή παλμό ρολογιού, δηλαδή στην μεταβολή του σήματος από μηδέν σε ένα όπως ορίζει η κυματομορφή square, πραγματοποιείται θεωρητικά μια εντολή. Λέμε θεωρητικά, διότι μια εντολή μπορεί να χρειαστεί παραπάνω κύκλους ρολογιού, οπότε και η συχνότητα μπορεί να είναι «εικονική» και η ταχύτητα της ολοκλήρωσης εξαρτάται από την αρχιτεκτονική και τη σχεδίαση των υπόλοιπων τμημάτων του επεξεργαστή. Ένας ακόμα παράγοντας που επηρεάζει την ταχύτητα ολοκλήρωσης μιας εργασίας είναι και ο κώδικας ή/και η γλώσσα προγραμματισμού στην οποία είναι γραμμένο το πρόγραμμα και το κατά πόσο χρησιμοποιεί όλες τις διαθέσιμες εντολές του, κάτι που πολλές φορές ονομάζουμε και hardware acceleration. Το clock παίζει τον ρόλο του μετρονόμου στη συγκεκριμένη διαδικασία, συντονίζοντας τις εργασίες που γίνονται σε ολόκληρο τον υπολογιστή. Στην ουσία, αυτό που θα πρέπει να κρατήσουμε είναι πως όσο μικρότερη διάρκεια έχει ένας κύκλος ή παλμός ρολογιού, τόσο υψηλότερη είναι και η συχνότητα λειτουργίας του επεξεργαστή μας καθώς μπορεί να πραγματοποιήσει περισσότερους υπολογισμούς ας πούμε στο ίδιο χρονικό διάστημα. Άρα ο κύκλος ρολογιού είναι μονάδα μέτρησης του χρόνου αντίστροφη της συχνότητας λειτουργίας.
Για να κατηγοριοποιήσουμε τις επιδόσεις ενός επεξεργαστή χρησιμοποιούμε τρία βασικά κριτήρια. Τα κριτήρια αυτά είναι: 1ον των σετ των εντολών που έχει προεγκατεστημένα και τα οποία τον βοηθούν να κάνει διάφορους υπολογισμούς πιο γρήγορα εφόσον τα αξιοποιήσει ο developer της εφαρμογής. 2ον τον αριθμό των bits που μπορεί να διαχειριστεί ταυτόχρονα (aka bandwidth) και 3ον τη Συχνότητα Λειτουργίας του που μετριέται σε megahertz όπου μας δείχνει τον αριθμό των κύκλων ρολογιού που πραγματοποιούνται ανά δευτερόλεπτο. Τα δύο πρώτα αναφέρονται στην αρχιτεκτονική του ενώ ακόμα και το τρίτο εξαρτάται σε μεγάλο βαθμό από τα πρώτα, ούτως ώστε κάθε κύκλος ρολογιού να μην πηγαίνει «χαμένος» περιμένοντας κάποια άλλη διεργασία στο εσωτερικό του επεξεργαστή. Για παράδειγμα ένας Skylake Core i7 6700K χρονίζεται στα 4000MHz και σημαίνει ότι πραγματοποιεί 4 δισεκατομμύρια κύκλους ρολογιού ανά δευτερόλεπτο και θεωρητικά υπολογισμούς το δευτερόλεπτο. Σε κάθε κύκλο ρολογιού γίνεται μια ενέργεια/λειτουργία από τον επεξεργαστή. Ένας κύκλος ρολογιού, είναι η μικρότερη μονάδα του χρόνου που μπορεί να διαρκέσει μια εργασία, όμως δεν υπάρχει όριο ως προς το πόσο πολύ μπορεί να διαρκέσει, καθώς μια πιο απαιτητική μπορεί να καταλάβει περισσότερους του ενός κύκλου μέχρι να ολοκληρωθεί. Σημειώνεται επίσης το εξής: Όπως είπαμε και στα αρχικά κεφάλαια, στο εσωτερικό του υπολογιστή υπάρχουν τα bit, που στην ουσία είναι ηλεκτρικό ρεύμα. Το bit έχει δύο καταστάσεις, 0 και 1 και κάθε εργασία όπως ένα γράμμα, έχει έναν μοναδικό τρόπο που αναπαρίσταται στον «ψηφιακό καμβά» μας. Το bit έχει μια διεύθυνση στον χώρο όμως δε μπορούμε να το δούμε καθώς ο ηλεκτρισμός είναι όπως είδαμε «αόρατος».
Συνεχίζοντας, το BCLK είναι κάτι που ποτέ δεν παραμένει «σταθερό» από αρχιτεκτονική σε αρχιτεκτονική και κατασκευαστή σε κατασκευαστή, όμως φανταστείτε πως κάθε bus έχει τη δική του συχνότητα λειτουργίας γιατί διαφορετικά η μεταφορά δεδομένων από τους εν λόγω διαύλους θα ήταν αδύνατη. Στις νεότερες αρχιτεκτονικές όπως αυτή των Skylake, βλέπουμε πως το BCLK το οποίο είναι συνδεδεμένο μόνο με τον ελεγκτή μνημών RAM (IMC – integrated memory controller) και όχι και με τις PCIe όπως ήταν κάποτε, έχει μεγαλύτερα περιθώρια overclocking από την αμέσως προηγούμενη γενιά Haswell επεξεργαστών. Αυτό σημαίνει ότι ναι μεν μπορούμε να αυξήσουμε τη συχνότητα του BCLK και να υπερχρονίσουμε έτσι τον επεξεργαστή μας (K ή non K), όμως αυξάνουμε παράλληλα και τη συχνότητα των μνημών, αλλά όχι του «ευαίσθητου» διαύλου PCIe. Αρκετές φορές και ειδικά όταν το BCLK ήταν συνδεδεμένο με τις PCIe κάρτες επέκτασης, οι κατασκευαστές για να αποφευχθούν τα προβλήματα σταθερότητας που μπορεί να προκληθούν από υψηλά νούμερα αυτού του bus, τοποθετούσαν ειδικά straps, κλειδώνοντας ουσιαστικά τα «δύστροπα» buses όπως το PCIe στη «λειτουργική» συχνότητα των 100MHz, αφήνοντας μας να παίξουμε με το BCLK της συχνότητας του επεξεργαστή και των μνημών. Το αυξημένο strap χρησιμοποιείται σε περιπτώσεις όπου θέλουμε να τρέξουμε τις RAM ή την ενσωματωμένη GPU του επεξεργαστή σε υψηλότερη συχνότητα απ’ ότι υποστηρίζεται κανονικά, κερδίζοντας έτσι μερικά MHz στα εν λόγω υποσυστήματα. Βέβαια τα straps ήταν μόλις δύο, των 125MHz και των 167MHz και έτσι τα πράγματα ήταν το ίδιο περιορισμένα παρά τη καλή διάθεση των συνεργατών.
cpu, overclocking, bit, nand gates, gate, λογικές πύλες, processor, επεξεργαστής, πύλες, τι είναι cpu