( 41 ψήφοι )

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

8.1-ram-memory

Το τρίπτυχο της ταχύτητας

Ως γνωστόν η ταχύτητα ενός υπολογιστή ορίζεται από τα τέσσερα βασικά του απάρτια, τον επεξεργαστή, την (προσωρινή) μνήμη RAM, το αποθηκευτικό του μέσο (βλ. σκληρός δίσκος ή SSD) και την κάρτα γραφικών. Ο κανόνας αυτός αν και κάπως γενικός είναι αρκετά "βολικός" για να μας δείχνει πού χωλαίνει ένας υπολογιστής -άλλωστε τον χρησιμοποιούσε και η ίδια η Microsoft έως τα Windows 7 στην αξιολόγηση του συστήματος. Στην πράξη ο κανόνας αυτός βολεύει αρκετά στο να μας δείχνει αν και πού υπάρχει bottleneck, αν δηλαδή ένα κομμάτι του υπολογιστή είναι τόσο αργό ώστε να καθυστερεί όλο το υπόλοιπο σύστημα χωρίς λόγο.

Αν για παράδειγμα έχουμε έναν υπολογιστή με μόλις 1GB RAM που τρέχει Windows 7, τότε το μικρό μέγεθος μνήμης θα κάνει τον υπόλοιπο υπολογιστή να σέρνεται ασχέτως αν έχουμε καταπληκτικό επεξεργαστή ή γρήγορο SSD δίσκο.

Η RAM ως μέσο περιγράφεται χονδρικά με τις δύο βασικές της παραμέτρους, την ταχύτητα και άρα το μέγιστο αριθμό δεδομένων (σε Gbyte/sec) που μπορούν να μεταφερθούν από και προς τον επεξεργαστή και το μέγεθος της που μετριέται σε Gbytes (2GB, 4GB, 8GB, 16GB κ.λπ.).

Οι αριθμοί τα λένε όλα

Αφού λοιπόν οι σημερινές RAM και φτηνές είναι και αρκετή χωρητικότητα έχουν ώστε να εξυπηρετούν τις ανάγκες του συστήματος, πού είναι το πρόβλημα; Το πρόβλημα έγκειται στην εξέλιξη τους ανά τον χρόνο. Και για να το κατανοήσουμε καλύτερα, ας ρίξουμε μια ματιά στην εξέλιξη των μνημών σε σχέση με τα άλλα τέσσερα βασικά κομμάτια ενός υπολογιστή:

Έτος

CPU

MIPS

GPU

Fill Rate GOP/sec

RAM

Theoretical bandwidth

HDD

Capacity

2000

P4 1.5GHz

134

GeForce256

0.48

DDR

1.6GB/sec

Maxtor

M96147U8

60GB

2004

P4 560
(3.6GHz)

494

6800 Ultra

7.2

DDR2

6.4GB/sec

Seagate

200GB

2008

Core2Quad
Q9100

3223

8800 Ultra

14.7

DDR3

12.8GB/sec

WD, 1TB 7200rpm, 16MB

1TB

2012

Core i7
970

8505

GTX680

32.2

DDR3

12.8GB/sec

Seagate, WD, Hitachi

3TB

2016

Core i7
6900K

17549

GTX1080

102.8

DDR4

25.6GB/sec

Seagate Barracuda

10TB

Πριν ξεκινήσουν οι διαμαρτυρίες, θα πρέπει να διευκρινίσουμε πως σίγουρα ο πίνακας είναι ατελής σε περισσότερες της μίας παραμέτρους. Προσπαθήσαμε να περιλάβουμε σε αυτόν κορυφαία προϊόντα που κυκλοφορούσαν την εποχή (αποφύγαμε extreme εκδόσεις επεξεργαστών λ.χ.) ενώ στους σκληρούς δίσκους αναφέρουμε χωρητικότητα και όχι transfer rate, κυρίως γιατί η χωρητικότητα ήταν αυτή που εξελίχθηκε ανά τα χρόνια την ίδια ώρα που είτε με ATA100/133 είτε με SATA1,2,3 οι μαγνητικοί δίσκοι ποτέ δεν ξεπέρασαν πραγματικά το όριο των 130MB/sec. Το ανάποδο συμβαίνει και στις μνήμες όπου μετράμε την εξέλιξη στην ταχύτητα παρά την εξέλιξη σε χωρητικότητες (από τα 256MB στα 4GB) που είναι έτσι κι αλλιώς επίσης χαμηλή. Τι βλέπουμε λοιπόν στον πίνακα;

 

Από το 2000 έως σήμερα, αναμφισβήτητα την μεγαλύτερη εξέλιξη την έχουν βιώσει οι κάρτες γραφικών (GPU), κάτι πολύ φυσικό αν αναλογιστούμε πως είναι και η νεότερη αγορά σε σχέση με τις άλλες τρεις. Έτσι σήμερα μια κορυφαία NVidia GTX1080 έχει απόδοση... 214 φορές περισσότερο από μια κάρτα του 2000. Κάπως έτσι αυξήθηκαν και οι χωρητικότητες στους σκληρούς δίσκους, με τους σημερινούς να είναι περί τις 166 φορές μεγαλύτεροι σε μέγεθος σε σχέση με αυτούς του 2000! Οι επεξεργαστές έρχονται τρίτοι με αύξηση απόδοσης της τάξης του 130 ενώ το πιο αργό σε εξέλιξη περιφερειακό ενός υπολογιστή δεν είναι άλλο από τις μνήμες, όπου μια DDR4 μνήμη του 2016 είναι μόλις 16 φορές γρηγορότερη από μία DDR του 2000.

Ποιος φταίει για αυτή τη κατάσταση;

Η αλήθεια είναι πως η x86/x64 αρχιτεκτονική των Intel/AMD συχνά-πυκνά κατηγορείται για όλα τα κακά της πληροφορικής  και ένα από αυτά είναι και οι ταχύτητες μεταφοράς δεδομένων από και προς την RAM. Μερικές από τις πιο συνήθεις κατηγορίες που εκτοξεύουν οι χρήστες:

Ο μύθος: Οι επεξεργαστές των υπολογιστών μας σήμερα είναι καταδικασμένοι από το γεγονός πως πρέπει να διατηρήσουν συμβατότητα με επεξεργαστές πριν 15 ή και 30 χρόνια. Πρόκειται για την “Itanium” άποψη, δηλαδή πως ένας επεξεργαστής σχεδιασμένος από την αρχή θα εκμεταλλεύονταν στο μέγιστο το πυρίτιο αντί να το χαραμίζει, για να πετύχει συμβατότητα.

Η αλήθεια: Η διατήρηση της συμβατότητας δεν κοστίζει και τόσο πολύ, για την ακρίβεια δεν κοστίζει ούτε το 0.1% του πυριτίου ενός σύγχρονου  επεξεργαστή. Και αν αυτό δεν σας αρκεί, ο αστικός μύθος θα μπορούσαμε να πούμε πως καταρρίπτεται και από το γεγονός πως σύγχρονοι επεξεργαστές που σχεδιάστηκαν από την αρχή (π.χ. PowerPC) δεν κατάφεραν να ανταγωνιστούν την x86 αρχιτεκτονική σε απόδοση, με γνωστά αποτελέσματα (μεταπήδηση της Apple από την PowerPC αρχιτεκτονική στην x86).

Ο μύθος: Αυξάνοντας το ρολόι της RAM αυξάνεται και η απόδοση, άρα το πρόβλημα δεν είναι στους επεξεργαστές αλλά στις RAM.

Η αλήθεια: Ναι υπάρχουν περιπτώσεις που η αύξηση της συχνότητας της RAM πέραν των εργοστασιακών προδιαγραφών (overclocking) επιφέρει κάποια αύξηση στην απόδοση του υπολογιστή. Για παράδειγμα κάνοντας overclock τη μνήμη από DDR-1333 σε DDR-2000 χρήστες είχαν αύξηση απόδοσης σε παιχνίδι της τάξης του (μόλις) 9% που και πάλι είναι πολύ λίγο σε σχέση με την ισχύ που ξοδεύεται.

Ο μύθος: Εάν το 2000 είχε επικρατήσει η πολύ πιο γρήγορη Rambus μνήμη αντί της DDR, σήμερα η ταχύτητα των μνημών θα ήταν πολύ μεγαλύτερη από ότι είναι με την DDR4.

Η αλήθεια: Κανείς δεν μπορεί να γνωρίζει τί θα είχε συμβεί αν η Intel κατάφερνε να "μπουκάρει" στην αγορά μνημών με την Rambus. Αυτό που μπορούμε να υποθέσουμε είναι πως σε μια τέτοια περίπτωση ο ανταγωνισμός ίσως κάμπτονταν, ενώ σίγουρα το κόστος αγοράς μνήμης θα ήταν πολλαπλάσιο του (χαμηλού) σημερινού.

Τι πραγματικά φταίει λοιπόν;

8.2-ram-cpu-gpu-hd

Αν μπορεί να υπάρξει ένα ασφαλές συμπέρασμα από τα παραπάνω, αυτό είναι πως όντως φταίνε οι επεξεργαστές και για την ακρίβεια η αρχιτεκτονική τους. Αυτό σημαίνει με λίγα λόγια πως ακόμη και αν είχαμε μνήμες με ταχύτητα 10 φορές μεγαλύτερη από την σημερινή, αυτό δεν  θα αύξανε παρά ελάχιστα τις επιδόσεις του υπολογιστή γιατί πολύ απλά η γενική τους αρχιτεκτονική (περιορισμένος αριθμός πυρήνων) δημιουργεί εσωτερικό bottleneck σε αντίθεση με τις GPUs που διαθέτουν εκατοντάδες μικροπυρήνες σε πραγματικά παράλληλη επεξεργασία. Οι λιγοστοί πυρήνες (2,4,8) των σύγχρονων επεξεργαστών, είναι ένα εξελικτικό απομεινάρι της εποχής της CPU του ενός πυρήνα, της εποχής που η πολυεπεξεργασία ήταν ένα καθαρό software trick, δηλαδή εκλαϊκευμένα αν κάποιος έτρεχε 10 προγράμματα, τότε ο Pentium4 αφιέρωνε σε κάθε δευτερόλεπτο, 100msec σε κάθε πρόγραμμα στον ένα και μοναδικό του πυρήνα (10 x 100msec = 1 sec). Μπορεί τα Windows ή και κάποια καλογραμμένα προγράμματα να είχαν την δυνατότητα να «σπάσουν» διεργασίες ώστε να γίνει η επεξεργασία σε περισσότερους πυρήνες (multiprocessor boards έβρισκες τουλάχιστον από την εποχή του socket370 και του PentiumIII), στην πράξη όμως όλοι είχαν το μυαλό τους σε ένα επεξεργαστή και ένα πυρήνα. Έτσι γαλουχήθηκαν γενιές προγραμματιστών, ασχέτως αν αργότερα εμφανίστηκαν εξελιγμένοι compilers. Ακόμη και μερικά από τα καλύτερα παιχνίδια που υπάρχουν σήμερα, αξιοποιούν έναν ή δύο το πολύ πυρήνες, γιατί πολύ απλά είναι πιο εύκολο, γιατί πολύ απλά ο κακός προγραμματισμός στην CPU καλύπτεται σήμερα από τις ισχυρές κάρτες γραφικών (GPU). Ακόμη και οι κατασκευαστές επεξεργαστών βολεύονται με την ιδέα να ταιριάζουν τους επεξεργαστές τους με μία μνήμη με γρήγορη απόκριση αλλά σχετικά χαμηλή ταχύτητα μεταφοράς, καθώς ενσωματώνουν στα ολοκληρωμένα τους προσωρινές μνήμες cache που σκοπό έχουν να δώσουν λύση (έως ένα βαθμό) στο πρόβλημα της αργής RAM.

Αν λοιπόν αναρωτιέται κάποιος, γιατί μια GPU να συνοδεύεται από GDDR5 μνήμη της τάξης των 6GHz (εντάξει στην πράξη η συχνότητα είναι μικρότερη αλλά ας μην το υπεραναλύσουμε) τη στιγμή που μια CPU συνοδεύεται από μνήμη στα 2.1GHz, η απάντηση είναι απλή: Σε μια GPU κατοικοεδρεύουν εκατοντάδες μικροπυρήνες που τρέχουν κώδικα και που by default κάποιος θα πρέπει να ξεκινήσει με τη σκέψη πως θα υπάρξει πολυεπεξεργασία σε κάτι που μπορεί να κλιμακώνεται στο άπειρο: Για παράδειγμα μια Χ NVidia GPU μπορεί να έχει 128 CUDA cores και μία Υ να έχει 2048 CUDA cores. Όλοι αυτοί οι πυρήνες θα χρησιμοποιηθούν στο μέγιστο από τις έτοιμες βιβλιοθήκες του συστήματος (DirectX, OpenGL, OpenCL, CUDA) και όλοι αυτοί οι πυρήνες μπορούν σε πλήρη λειτουργία να αξιοποιήσουν μνήμες τύπου GDDR5 στα 6GHz κάτι που επεξεργαστές απλά δεν μπορούν.

Καταραμένα consortiums και οργανισμοί

Σαν να μην μας έφτανε η παλιά x86 αρχιτεκτονική και ο παλιός/ξεπερασμένος τρόπος προγραμματισμού, ένα άλλο πρόβλημα στην καθυστέρηση της εξέλιξης των RAM δεν είναι άλλο από τους ίδιους αυτούς ανθρώπους που έχουν αναλάβει να την εξελίξουν: Τα σημερινά PC είναι στη πράξη ένα συνονθύλευμα από τεχνολογίες. Κανείς δεν ελέγχει όλες τις τεχνολογίες άρα κανείς δεν ελέγχει και την PC αρχιτεκτονική. Κάποιες από αυτές τις τεχνολογίες δημιουργούνται από κοινοπραξίες εταιρειών του εκάστοτε τομέα. Έτσι για τους σκληρούς δίσκους και το SATA πρότυπο έχουμε την SATA-IO κοινοπραξία στην οποία μεταξύ άλλων συμμετέχουν οι Dell, HP, Intel, Seagate και Western Digital για το USB πρότυπο  υπεύθυνο είναι το USB Implementers Forum στο οποίο συμμετέχουν εταιρείες όπως η HP, η Apple, η Microsoft και η Intel και φυσικά για την τυποποίηση των μνημών  υπεύθυνο είναι το JEDEC (που είναι γενικός οργανισμός τυποποίησης –για να μην παρεξηγηθούμε). Το πρόβλημα όπως όλοι θα φαντάζεστε είναι πως είτε λόγω γραφειοκρατίας και πολλών συμμετεχόντων (η JEDEC έχει πάνω από 300 μέλη) είτε λόγω σκοπιμοτήτων,  δημιουργούνται καθυστερήσεις στην εφαρμογή των χρονοδιαγραμμάτων.

Στην περίπτωση μας (μνήμες) θα πρέπει να αναφέρουμε πως η DDR4 μνήμη ως concept ξεκίνησε το 2005 με σκοπό να έχει ολοκληρωθεί η εξέλιξης της αρχιτεκτονικής το 2008. Στα χαρτιά η DDR4 θα έκανε ντεμπούτο το 2013 και ως το 2015 θα είχε κατακτήσει το 50% της αγοράς νέων υπολογιστών. Στην πράξη η DDR4 κάνει ουσιαστικό ντεμπούτο φέτος (2016), δηλαδή 3 χρόνια αργότερα από ότι υπολογιζόταν ενώ ο αντικαταστάτης της δεν πρόκειται να εμφανιστεί πριν το 2021.

Εδώ κάποιος θα μπορούσε να ρωτήσει γιατί για παράδειγμα η HBM μνήμη εξελίχθηκε χωρίς τόσες καθυστερήσεις σε σχέση με την DDR4. Η απάντηση είναι πως ο οργανισμός JEDEC από την μία μπορεί να συζητά και να σχεδιάζει μαζί με 100 άλλους κατασκευαστές ένα industry standard όπως η μνήμη DDR4 και αυτό να απαιτεί χρόνο, αλλά από την άλλη, η πιστοποίηση μιας έτοιμης τεχνολογίας όπως η HBM της AMD (που κατασκευάζεται από κοινοπραξία δύο εταιρειών) απαιτεί πολύ λιγότερο χρόνο.

8.3-hbm-memory

Τι μέλλει γενέσθαι

Αυτή την εποχή βιώνουμε την μετάβαση από την DDR3 μνήμη στην DDR4. Όπως έχει συμβεί άλλες δύο φορές στο παρελθόν, οι διαφορές απόδοσης μεταξύ της μίας και της άλλης τεχνολογίας δεν είναι τεράστιες. Το μόνο καλό στην υπόθεση είναι πως σε αντίθεση με το παρελθόν (όπου η νέα τεχνολογία κόστιζε ακριβότερα) το κόστος της DDR4 μνήμης δείχνει να είναι χαμηλότερο της DDR3.

Η Intel ήδη έχει κάνει τη μετάβαση της, και αναμένουμε του χρόνου να μην υπάρχει DDR3 πρόταση ούτε στο φτηνό κομμάτι της αγοράς, ενώ η Zen αρχιτεκτονική της AMD και αυτή κινείται στην σφαίρα της DDR4 λύσης. Μέσα στο 2016 το μόνο που θα συμβεί θα είναι η ανακοίνωση (στα χαρτιά) από την JEDEC του DDR5 πρότυπου. Η μόνη ελπίδα για να αλλάξει κάτι στον χάρτη είναι η HBM2 τεχνολογία της AMD, μια τεχνολογία που σε σχέση με το bandwidth της τάξης των 2GB/sec  της DDR3 μνήμης (που είναι κοντά σε αυτό της DDR4) και σε σχέση με το bandwidth της  GDDR5 (28GB/sec) μπορεί να επιτύχει ταχύτητες διαμεταγωγής της τάξης των 128GB/sec έως 256GB/sec!. Η AMD διαρρέει πως κάποιες APUs της θα μπορούν να «φορέσουν» HBM μνήμη και αν αυτό συμβεί, ίσως επιτέλους πάρει φωτιά η αγορά και δούμε έναν νέο πόλεμο σε ένα μέτωπο που εδώ και χρόνια είναι ανενεργό.

 


 Πηγές: devtalk.nvidia.comfool.com | wikipedia.orgjcmit.com | cpubenchmark.net


 

δημοψήφισμα

Νέα επικαιρότητας: Ποιότητα ή ποσότητα;