Μάθημα 3: Διαχείριση Δεδομένων
3. Διαχείριση Δεδομένων
Η διαχείριση δεδομένων αποτελεί μία από τις θεμελιώδεις λειτουργίες ενός υπολογιστικού συστήματος.
Μια μηχανή δεν αρκεί να αποθηκεύει δεδομένα· η πραγματική της αξία προκύπτει από την ικανότητά της να τα επεξεργάζεται μέσω κατάλληλων αλγορίθμων.
Για να είναι αυτή η επεξεργασία αποτελεσματική, απαιτούνται μέσα που εκτελούν τις λειτουργίες πάνω στα δεδομένα, καθώς και μηχανισμοί που συντονίζουν την εκτέλεση αυτών των λειτουργιών.
Το ρόλο αυτό επιτελεί η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) ή Central Processing Unit (CPU), η «καρδιά» κάθε υπολογιστικού συστήματος.
3.1 Αρχιτεκτονική Υπολογιστή (von Neumann)
Η αρχιτεκτονική του John von Neumann αποτέλεσε σταθμό στην ιστορία της Πληροφορικής, καθώς καθιέρωσε τη θεμελιώδη αρχή της αποθήκευσης προγραμμάτων και δεδομένων στην ίδια μνήμη.
Στην αρχιτεκτονική αυτή, ο υπολογιστής αποτελείται από βασικά υποσυστήματα:
– την Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ),
– την Κύρια Μνήμη (ΚΜ),
– και την Αρτηρία (Bus), η οποία επιτρέπει τη ροή δεδομένων και εντολών ανάμεσα στα μέρη του συστήματος.
Η ΚΜΕ περιλαμβάνει δύο κύρια μέρη:
την Αριθμητική/Λογική Μονάδα (ALU), υπεύθυνη για αριθμητικούς και λογικούς υπολογισμούς,
και τη Μονάδα Ελέγχου (Control Unit – CU), η οποία κατευθύνει και συγχρονίζει τις λειτουργίες του συστήματος.
3.2 Η Εξέλιξη της Αρχιτεκτονικής
Πριν από τον von Neumann, οι πρώτοι υπολογιστές λειτουργούσαν με τα προγράμματα «ενσωματωμένα» στη μονάδα ελέγχου, ξεχωριστά από τα δεδομένα.
Η καινοτομία του von Neumann (μαζί με τους Eckert και Mauchly το 1944, στο έργο ENIAC) ήταν η ιδέα να αντιμετωπίζονται τα προγράμματα ως δεδομένα και να αποθηκεύονται στη μνήμη.
Η αρχιτεκτονική αυτή, γνωστή ως von Neumann Architecture, εφαρμόστηκε πρώτη φορά στον υπολογιστή EDVAC και αποτέλεσε το θεμέλιο όλων των σύγχρονων υπολογιστών.
3.3 Λειτουργία της Μηχανής
Για να εκτελεστεί μία λειτουργία, όπως η πρόσθεση δύο αριθμών, ο υπολογιστής ακολουθεί συγκεκριμένα βήματα:
1. Ανάκτηση των αριθμών από τη μνήμη και τοποθέτησή τους σε καταχωρητές.
2. Εκτέλεση της πράξης από την ALU.
3. Αποθήκευση του αποτελέσματος στη μνήμη.
4. Τερματισμός της εκτέλεσης.
Η διαδικασία αυτή αντιπροσωπεύει τη βασική αλυσίδα εκτέλεσης εντολών που ακολουθεί κάθε πρόγραμμα.
3.4 Γλώσσα Μηχανής
Η γλώσσα μηχανής (Machine Language) είναι το σύνολο των εντολών που μπορεί να εκτελέσει απευθείας η ΚΜΕ.
Αποτελεί τη γλώσσα “μηδέν και ένα” του υπολογιστή, και κάθε εντολή αντιστοιχεί σε μια πολύ συγκεκριμένη λειτουργία (π.χ. πρόσθεση, αποθήκευση, έλεγχος).
Υπάρχουν δύο βασικές φιλοσοφίες σχεδιασμού των ΚΜΕ:
RISC (Reduced Instruction Set Computer): εκτελεί μικρό και απλό σύνολο εντολών, με ταχύτητα και αποδοτικότητα.
CISC (Complex Instruction Set Computer): υποστηρίζει πιο σύνθετες εντολές, διευκολύνοντας τον προγραμματισμό αλλά με μικρότερη ταχύτητα εκτέλεσης.
Οι εντολές χωρίζονται σε τρείς κύριες κατηγορίες:
1. Μεταφοράς δεδομένων (π.χ. φόρτωσε, αποθήκευσε),
2. Αριθμητικές / Λογικές (π.χ. πρόσθεσε, AND, OR),
3. Ελέγχου (π.χ. σταμάτα, πήγαινε σε άλλη εντολή).
3.5 Ιδεατή Μηχανή (Virtual Machine Simulator – VMS)
Για να κατανοηθεί η λειτουργία ενός επεξεργαστή, χρησιμοποιείται μια ιδεατή μηχανή, ο Virtual Machine Simulator (VMS).
Η VMS αποτελεί μια απλοποιημένη αναπαράσταση υπολογιστή με:
16 καταχωρητές γενικού σκοπού (1 byte έκαστος),
256 κελιά μνήμης των 8 bits.
Κάθε εντολή της VMS έχει μήκος 2 bytes, με τα 4 πρώτα bits να αποτελούν τον λειτουργικό κωδικό (opcode) και τα 12 επόμενα το πεδίο του όρου (operand).
Το σύστημα αυτό επιτρέπει την κατανόηση του τρόπου με τον οποίο εκτελούνται βασικές εντολές όπως LOAD, STORE, ADD, JUMP και HALT.
Ένα απλό πρόγραμμα στη VMS, για παράδειγμα, μπορεί να προσθέσει δύο αριθμούς κινητής υποδιαστολής, να αποθηκεύσει το αποτέλεσμα στη μνήμη και να τερματίσει.
3.6 Ο Κύκλος Μηχανής
Κάθε εντολή εκτελείται μέσα από τον λεγόμενο κύκλο μηχανής, ο οποίος περιλαμβάνει τρία στάδια:
1. Ανάκτηση (Fetch): μεταφορά της εντολής από τη μνήμη στη μονάδα ελέγχου.
2. Αποκωδικοποίηση (Decode): ερμηνεία του τι πρέπει να εκτελεστεί.
3. Εκτέλεση (Execute): ενεργοποίηση των κατάλληλων κυκλωμάτων για την ολοκλήρωση της εντολής.
Ο μετρητής προγράμματος (Program Counter) κρατά τη διεύθυνση της επόμενης εντολής, ενώ ο καταχωρητής εντολής (Instruction Register) αποθηκεύει την τρέχουσα εντολή που εκτελείται.
3.7 Controllers και Επικοινωνία
Οι controllers είναι εξειδικευμένες μονάδες που επιτρέπουν την επικοινωνία της ΚΜΕ με τις περιφερειακές συσκευές (π.χ. πληκτρολόγιο, οθόνη, εκτυπωτή, δίσκο).
Κάθε controller διαθέτει δικό του μικροεπεξεργαστή και μνήμη, ώστε να διαχειρίζεται αυτόνομα τη συσκευή του.
Η επικοινωνία γίνεται με δύο βασικούς τρόπους:
1. Μέσω θυρών (Port I/O) – κάθε controller έχει μοναδική διεύθυνση (port).
2. Με αντιστοίχιση στη μνήμη (Memory-Mapped I/O) – οι ίδιες εντολές χρησιμοποιούνται τόσο για τη μνήμη όσο και για τους controllers.
3.8 Επικοινωνίες
Η επικοινωνία μεταξύ υπολογιστικών συστημάτων βασίζεται στη μεταφορά bits ανά δευτερόλεπτο (bps).
Διακρίνονται δύο κύριοι τρόποι:
1. Παράλληλη επικοινωνία: πολλά bits μεταφέρονται ταυτόχρονα – πιο γρήγορη αλλά πιο περίπλοκη.
2. Σειριακή επικοινωνία: τα bits μεταφέρονται ένα-ένα – πιο αργή αλλά απλούστερη και πιο οικονομική.
Η επιλογή εξαρτάται από τις απαιτήσεις ταχύτητας και το είδος της γραμμής επικοινωνίας (π.χ. modem, bus, δίσκοι).
3.9 Άλλες Αρχιτεκτονικές
Πέρα από την κλασική von Neumann αρχιτεκτονική, έχουν αναπτυχθεί νέες τεχνικές που αυξάνουν την απόδοση των υπολογιστών:
1. Pipelining: εκτέλεση πολλών εντολών ταυτόχρονα σε διαφορετικά στάδια (παράλληλη ανάκτηση, αποκωδικοποίηση και εκτέλεση). Αυξάνει το “throughput” — δηλαδή τον συνολικό φόρτο εργασίας που ολοκληρώνεται ανά μονάδα χρόνου.
2. Παράλληλη Επεξεργασία: χρήση πολλών επεξεργαστών (multiprocessors) που συνεργάζονται. Οι κύριες κατηγορίες είναι:
– SISD: μία εντολή – ένα σύνολο δεδομένων.
– MIMD: πολλές εντολές – πολλά δεδομένα (ανεξάρτητοι επεξεργαστές).
– SIMD: μία εντολή – πολλαπλά δεδομένα (όπως στις κάρτες γραφικών).
3. Τεχνητά Νευρωνικά Δίκτυα (ANNs): εμπνευσμένα από τη λειτουργία του ανθρώπινου εγκεφάλου, αποτελούν σύγχρονη μορφή παράλληλης αρχιτεκτονικής.