Rαμμένη Oμορφα Mνήμη (και οι LOL!)


Τεχνολογιστορικής φύσης και το σημερινό μας νουμεράκι αγαπητοί φίλοι της Καλής Φάσης (και του Ιδανικού Πλάτους), σχετικά με τη μνήμη που μας ταξίδεψε στο φεγγάρι και το διπλό λογοπαίγνιο με τα ακρώνυμα στον τίτλο.


Η μνήμη, είναι σημαντική έννοια. Όπως λέει και ο Bob Marley "If you know your history, then you know where you coming from". Κι αν ξέρεις απο που έρχεσαι μπορείς να αποφασίσεις και το που θα πάς. Οι άνθρωποι που ξέρουν που πηγαίνουν ακολουθούν tην πορεία τους. Οι άνθρωποι που χάνουν για κάποιο λόγο τη μνήμη τους, περιπλανώνται τυχαία μέσα στο περιβάλον τους. Η μνήμη λοιπόν, καθορίζει τη συμπεριφορά.

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


Καθώς λοιπόν οι υπολογιστές έγιναν όλο και μικρότεροι και τρύπωσαν σε κάθε πτυχή της ζωής όπου χρειάζεται ο παραμικρός υπολογισμός, εμφανίστηκε στη γλώσσα και η σχετική ορολογία. Για αρκετό καιρό για παράδειγμα κυκλοφορούσε στην Ελλάδα ένα περιοδικό με τον τίτλο RAM (Random Access Memory) ονομασμένο απο τον τύπο προσωρινής μνήμης που χρησιμοποιούν οι υπολογιστές για να αποθηκεύσουν προγράμματα, δεδομένα και πληροφορίες τουλάχιστον για όση ώρα βρίσκονται σε λειτουργία. Απο τη στιγμή που ο υπολογιστής τίθεται εκτός λειτουργίας, τα περιεχόμενα της μνήμης RAM χάνονται. Σε τι μνήμη λοιπόν βρίσκεται γραμμένο (μόνιμα) εκείνο το πρόγραμμα που θα ξεκινήσει να διαβάζει ο υπολογιστής αμέσως μόλις μπεί σε λειτουργία; Αυτό το πρόγραμμα βρίσκεται αποθηκευμένο σε ένα άλλο τύπο μνήμης ο οποίος κατα την παράδοση* ονομάζεται ROM (Read Only Memory), ή αλλιώς "Μνήμη Μόνο Για Ανάγνωση" και δεν χρειάζεται ηλεκτρικό ρεύμα για να διατηρεί τα περιεχόμενα της.


Η μνήμη των υπολογιστών έχει μακριά ιστορία μέχρι να φτάσει στη σημερινή, καθαρά ηλεκτρονική, μορφή της όπου τερατώδης χωρητικότητες της τάξης μεγέθους των GB, μπορούν να χωρέσουν σε μια τσέπη. Για αρκετό καιρό, για παράδειγμα, η μνήμη RAM αποτελούταν απο ηλεκτρομηχανικές διατάξεις όπως οι λεγόμενες "γραμμές καθυστέρησης" ενώ η μνήμη ROM βρισκόταν σε ακόμα πιο ασυνήθιστες (πια) συσκευασίες όπως για παράδειγμα, καλώδια σε βύσματα (!) μια σειρά απο απλούς διακόπτες(!!) ή σε... ψιλό-γαζί απο φερρίτες (!!!).  (1)

Ο Φερρίτης είναι ένα σιδηρομαγνητικό υλικό το οποίο έχει χρησιμοποιηθεί με διάφορους τρόπους σε μνήμες υπολογιστών. Το κλασικό παράδειγμα είναι η μνήμη με δαχτυλίδια (ή πυρήνες) μαγνητικού Φερρίτη. Όταν ένα κομμάτι μαγνητικού Φερρίτη βρεθεί μέσα σε ένα μαγνητικό πεδίο θα μετατραπεί και το ίδιο σε μαγνήτη. Όταν το μαγνητικό πεδίο πάψει να υπάρχει, ο μαγνητικός Φερρίτης διατηρεί τη μαγνητισή του και συμπεριφέρεται σαν να "θυμάται" ότι κάποια στιγμή είχε βρεθεί σε κάποιο μαγνητικό πεδίο. Μνήμη!!!!

Όμως η "Rαμμένη Όμορφα Μνήμη", ένας τύπος μνήμης που όπως είπαμε αποθηκεύει δεδομένα χωρίς να χρειάζεται να τροφοδοτείται με ηλεκτρικό ρεύμα, ΔΕΝ στηριζόταν στις μαγνητικές ιδιότητες του Φερρίτη!

Σε αυτή την περίπτωση, ο απλός Φερρίτης (σίδηρος) χρησίμευε σαν πυρήνας ενός πολύ μικρού μετασχηματιστή!! Αυτός ο μετασχηματιστής αποτελούταν απο δύο ανεξάρτητα πηνία, το πρωτεύον και το δευτερεύον, τυλιγμένα επάνω στο ίδιο δαχτυλίδι Φερρίτη. Όταν εμφανιστεί κάποια τάση στο πρωτεύον πηνίο, θα εμφανιστεί εξ επαγωγής και στο δευτερεύον. Άρα λοιπόν, αν θέλαμε να αποθηκεύσουμε τον δυαδικό αριθμό 1001 θα χρειαζόμασταν 4 μετασχηματιστές απο τους οποίους μόνον του πρώτου και του τέταρτου τα δευτερεύοντα πηνία θα ήταν τυλιγμένα (πλεγμένα) επάνω στους αντίστοιχους φερρίτες! Τα "δευτερεύοντα" του δεύτερου και του τρίτου μετασχηματιστή επειδή δεν θα ήταν τυλιγμένα επάνω στους αντίστοιχους φερίτες ΔΕΝ θα μετέδιδαν οποιοδήποτε ρεύμα θα ερχόταν στις εισόδους τους(**). Κατ' επέκταση, για να αποθηκεύσουμε μια σειρά απο δυαδικούς αριθμούς θα χρειαζόμασταν ένα 'πίνακα' απο μετασχηματιστές σαν αυτόν:

 Για φαντάσου ένα MP3 σε τέτοιο format (!!!!)
(Η φωτογραφία προέρχεται απο το σχετικό άρθρο της Wikipedia για το Core Rope Memory)

Σε αυτόν τον τύπο μνήμης....ήταν γ-ραμμένο, κυριολεκτικά bit πρός bit, το πρόγραμμα....που μετέφερε την αποστολή Apollo-11 στη Σελήνη!

Για να καταλάβουμε λίγο καλύτερα πόσο "ανατριχιαστικό" είναι αυτό το γεγονός αξίζει να αναλογιστούμε τη διαδικασία που υπονοείται!!! Αυτό σημαίνει οτι, κάποιος, έγραψε το πρόγραμμα ναυσιπλοϊας και ελέγχου του Apollo-11 σε κάποια γλώσσα προγραμματισμού, επιβεβαίωσε οτι λειτουργεί σωστά, μετά απο μια σειρά ελέγχων και προσαρμογής του κώδικα και αφού είχε βεβαιωθεί οτι το πρόγραμμα ΔΕΝ ΠΕΡΙΕΧΕΙ ΚΑΝΕΝΑ ΜΑ ΚΑΝΕΝΑ ΛΑΘΟΣ!!! Το μετέφρασε σε δυαδικούς αριθμούς και το "έπλεξε" επάνω στους μετασχηματιστές!!!!!!!!

Πόσο μεγάλο ήταν αυτό το πρόγραμμα; Δεν μπορούμε να ξέρουμε ακριβώς, όμως οι προδιαγραφές του υπολογιστή του Apollo 11 αναφέρουν 36kB ROM και μόλις 2kB RAM. Τριάντα - Έξι Χιλιάδες Bytes!!! Δηλαδή 36000 * 8 = 288000 bits! Σίγουρα λοιπόν, πολλές δεκάδες χιλιάδες πλεγμένα δευτερεύοντα πηνία που υποδήλωναν ένα λογικό-1 bit.

Μα καλά!!! Ποιός έκατσε και έκανε όλη αυτή τη δουλειά;;; Και μετά, ποιός έκατσε και έλεγξε οτι ο προηγούμενος έχει κάνει σωστά τη δουλειά του;;;

Τα "τσιπάκια" της ROM μνήμης του Apollo 11 και οι LOL επι το έργον!
(Η φωτογραφία προέρχεται απο το κ α τ α π λ η κ τ ι κ ο βιβλίο Nasa Mission AS-506 Apollo 11 (1969 including Saturn V, CM-107, SM-107, LM-5) που μοιάζει με Haynes Manual για κοινά οχήματα!)

Πολύ φοβάμαι, πως όλη αυτή τη δουλειά της (υ)ψιλής πλέξης, την έκαναν (οι καημένες) οι Little Old Ladies...Μια ομάδα απο γυναίκες οι οποίες έπλεκαν τη μνήμη, κάτω απο μικροσκόπια (!). Ή όπως τις είχε ονομάσει η ομάδα του MIT που ήταν υπεύθηνη για το σύστημα...οι LOL.

(Καρά-LOL!?!?)


Σημειώσεις:
1) Όπως έγραψα και νωρίτερα, μερικές καταπληκτικές ιστορίες για το υλικό και τα προγράμματα αυτών των υπολογιστών αναφέρονται στο βιβλίο του Mike Hally "Electronic Brains: Stories from the dawn of the computer age". Παρ' όλα αυτά, επειδή η μνήμη ήταν (και είναι) βασικό κομμάτι των υπολογιστών, σχετικές πληροφορίες υπάρχουν γενικά σε διάφορα βιβλία που αναφέρονται σε παλιούς υπολογιστές όπως για παράδειγμα το σύντομο αλλά περιεκτικό "The Pegasus Story: A history of a vintage British computer" του Simon Lavington όπου αναφέρονται εν τάχει εκτός απο τις μνήμες "γραμμής καθυστέρησης" και η ηλεκτροστατική μνήμη. Τέλος, παρ' όλο που αναφέρεται και στο κείμενο, θα ήθελα απλά να ξανα-βάλω εδώ το βιβλίο της Haynes για το Apollo-11, το οποίο περιέχει πραγματικά απίστευτο υλικό, απο το ένα εξώφυλλο ίσα με το άλλο! Μετά το Apollo-11 που πήρα κάποια στιγμή πριν απο περίπου 1 χρόνο, κυκλοφόρησε και το αντίστοιχο manual για το Space Shuttle, το οποίο είναι επίσης γαμμάτο!!!. Η επόμενη αγορά είναι το manual του Enterprise! :-D

*) Γράφω "κατά την παράδοση" γιατί τα σύγχρονα κυκλώματα (ή motherboard) επιτρέπουν την ενημέρωση των περιεχομένων της ROM, οπότε ο όρος πια δεν είναι και τόσο αυστηρός.


**) Προφανώς όλα τα πρωτεύοντα αντιστοιχούσαν στο λεγόμενο Address Bus ενώ τα δευτερεύοντα στο Data Bus...Τα δευτερεύοντα που δεν ήταν πλεγμένα συνέδεαν απλά τη γραμμή στο 0 (γή).

2 σχόλια:

Spiros A. είπε...

Speechless!

AA είπε...

Ακριβώς Spiros.A!

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

Να είσαι καλά

Δημοσίευση σχολίου

top