Αρχιτεκτονική υπολογιστών

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

 Μια μητρική κάρτα (motherboard), επίσης γνωστή και σαν μητρική ή κάρτα συστήματος είναι το κεντρικό και βασικό τυπωμένο ηλεκτρικό κύκλωμα ενός σημερινού υπολογιστή. Ένας τυπικός υπολογιστής αποτελείται από τον μικροεπεξεργαστή, την κεντρική μνήμη και άλλα βασικά υποσυστήματα που βρίσκονται και αυτά στην μητρική. Άλλα μέρη του υπολογιστή, όπως εξωτερικά μέσα αποθήκευσης, κάρτες επέκτασης γραφικών, ήχου κτλ και διάφορα περιφερειακά όπως εκτυπωτής, πληκτρολόγια κτλ, είναι όλα τμήματα που ενσωματώνονται στην μητρική μέσω καλωδίων και υποδοχών διάφορων τύπων. Συνήθως, όλα τα κύρια εξαρτήματα του υπολογιστή - ο επεξεργαστής, η μνήμη ROM, η μνήμη RAM, ο δίαυλος (Bus), το ρολόι - είναι τοποθετημένα πάνω στη μητρική κάρτα. Κάθε τέτοια μητρική κάρτα έχει κατασκευαστεί για ένα συγκεκριμένο τύπο επεξεργαστή που λειτουργεί σε καθορισμένη συχνότητα. Όταν στον υπολογιστή εισάγονται δεδομένα (γράμματα, αριθμοί, εικόνες), η μορφή τους είναι τέτοια ώστε να γίνεται κατανοητή από το χρήστη. Ο υπολογιστής δεν καταλαβαίνει τις μορφές αυτές και πρέπει πρώτα να τα μετατρέψει σε μορφή που να τα αντιλαμβάνεται, ώστε να μπορεί να τα χειριστεί. Αφού γίνει αυτό, τα αποθηκεύει προσωρινά και στη συνέχεια εκτελεί την αριθμητική ή λογική επεξεργασία τους. Για να γίνουν αυτά πράξη, η Κ.Μ.Ε. απαρτίζεται από τις εξής επιμέρους μονάδες: Μονάδα αποκωδικοποίησης (Decoding Unit): Μετατρέπει τα "φυσικά" δεδομένα από τη μορφή υπό την οποία εισάγονται στον υπολογιστή στη "γλώσσα" που η Κ.Μ.Ε. μπορεί να "καταλάβει" και ονομάζεται "κώδικας μηχανής" (machine code). Μονάδα Αριθμητικής και Λογικής (Arithmetic and Logical Unit, ALU): Η υπομονάδα στην οποία εκτελούνται μία προς μία οι αριθμητικές ή λογικές πράξεις, όπως υπαγορεύονται από τις εντολές που έχουν δοθεί στον υπολογιστή. Καταχωρητές (Registers): Μικρά στοιχεία μνήμης, που χρησιμοποιούνται για την προσωρινή αποθήκευση (καταχώρηση) των δεδομένων, καθώς αυτά υφίστανται επεξεργασία. Οι καταχωρητές διαφέρουν ανάλογα με τον τύπο της Κ.Μ.Ε. και τον κατασκευαστή της, τόσο ως προς την οργάνωση όσο και ως προς τη χωρητικότητά τους. Μονάδα ελέγχου (Control Unit): Ελέγχει τη ροή δεδομένων από και προς την ALU, τους καταχωρητές, τη μνήμη και τις περιφερειακές μονάδες εισόδου/εξόδου. Μονάδα προσκόμισης (Fetch Unit): Μεταφέρει τις εντολές από τη μνήμη στην Κ.Μ.Ε. πριν αυτές χρειαστούν, ώστε να είναι άμεσα διαθέσιμες προς χρήση. Μονάδα προστασίας (Protection Unit): Εξασφαλίζει το αποδεκτό της κάθε διεργασίας που εκτελεί η Κ.Μ.Ε., ώστε να μη τροποποιούνται δεδομένα που δεν πρέπει ή να μην εκτελούνται μη αποδεκτές εντολές, όπως, π.χ., διαίρεση αριθμού με το μηδέν.Τα πιο πάνω επιμέρους στοιχεία μιας Κ.Μ.Ε. αποτελούν τον πυρήνα της. Οι σύγχρονοι υπολογιστές σχεδιάζονται με βάση της αρχές που αναπτύχθηκαν από τον Τζον φον Νόιμαν στο ινστιτούτο προηγμένων επιστημών στο Princeton. Αυτές οι θεμελιώδεις αρχές που αναφέρονται παρακάτω συνιστούν την Αρχιτεκτονική φον Νόιμαν. Τα δεδομένα και οι εντολές αποθηκεύονται σε μια μοναδική μνήμη εγγραφής-ανάγνωσης. Τα περιεχόμενα της μνήμης αυτής μπορούν να διευθυνσιοδοτηθούν κατά θέση, χωρίς να μας ενδιαφέρει ο τύπος των δεδομένων που περιέχεται εκεί. Η εκτέλεση εντολών πραγματοποιείται ως ακολουθία (εκτός και αν υπάρχει ρητή τροποποίηση) από μια εντολή στην επόμενη. Καταχωρητής Στην επιστήμη της αρχιτεκτονικής υπολογιστών, ο καταχωρητής είναι ένας τύπος μικρής αλλά πολύ γρήγορης μνήμης που βρίσκεται μέσα στο τσιπ του επεξεργαστή. Η μνήμη αυτή χρησιμοποιείται για την βελτίωση της ταχύτητας εκτέλεσης των διαφόρων προγραμμάτων, αφού σε αυτήν συνήθως αποθηκεύονται δεδομένα που χρησιμοποιούνται συνέχεια από τα προγράμματα. Στην περίπτωση αυτή ο καταχωρητής παρέχει πολύ γρήγορη πρόσβαση σε αυτά τα δεδομένα και έτσι το πρόγραμμα εκτελείται πιο γρήγορα. Οι περισσότεροι από τους σύγχρονους ηλεκτρονικούς υπολογιστές λειτουργούν σύμφωνα με την εξής λογική: μεταφέρουν δεδομένα από την κεντρική μνήμη στους καταχωρητές, κάνουν τις διάφορες πράξεις πάνω στα δεδομένα και στην συνέχεια μεταφέρουν το αποτέλεσμα από τους καταχωρητές πίσω στην κύρια μνήμη. Η τεχνική αυτή ονομάζεται load-store architecture. Ονομασίες Βασικών Καταχωρητών: Μετρητής Προγράμματος (Program Counter, PC) Καταχωρητής Εντολών (Instruction Register, IR) Καταχωρητής Διευθύνσεων Μνήμης (Memory Address Register, MAR) Καταχωρητής Δεδομένων Μνήμης (Memory Data Register, MDR) Συσσωρευτής (Accumulator, AC) ή Α, Β, C... Δείκτης Στοίβας (Stack Pointer, SP) Index, Base, Offset Registers Καταχωρητής Κατάστασης (Status Register, SR)Η μνήμη ενός ηλεκτρονικού υπολογιστή μπορεί να διαταχθεί σε μορφή πυραμίδας. Τα κατώτερα στρώματα της πυραμίδας προσφέρουν μεγαλύτερη αλλά πιο αργή μνήμη. Αντιθέτως, τα ανώτερα στρώματα της πυραμίδας προσφέρουν μικρότερη μνήμη αλλά πολύ πιο γρήγορη. Το κατώτατο στρώμα της πυραμίδας είναι οι μαγνητικές ταινίες και ανεβαίνοντας προς τα πάνω συναντά κανείς τους USB Flash δίσκους, τα CD-ROM ή DVD-ROM, τους σκληρούς δίσκους, την κύρια μνήμη RAM, την μνήμη L3 / L2 / L1 Cache του επεξεργαστή και τέλος τους καταχωρητές. Άρα λοιπόν οι καταχωρητές βρίσκονται στην κορυφή της πυραμίδας και προσφέρουν την πιο γρήγορη μνήμη που υπάρχει. Δυστυχώς όμως το μέγεθος της μνήμης αυτής είναι πολύ μικρό και περιορισμένο. Κρυφή μνήμη ΚΜΕ Κρυφή μνήμη Κεντρικής Μονάδας Επεξεργασίας (CPU cache) γνωστή και ως ενδιάμεση μνήμη ή λανθάνουσα μνήμη ΚΜΕ ονομάζουμε τη μνήμη που χρησιμοποιείται από την Κεντρική μονάδα επεξεργασίας για να πετύχει ταχύτερη πρόσβαση στην κύρια μνήμη. Αυτή η μνήμη είναι γρηγορότερη, ακριβότερη και μικρότερη σε μέγεθος από την κύρια μνήμη. Είναι υψηλής ταχύτητας SRAM μνήμη, που χρησιμοποιείται μεταξύ της KME και της κύριας μνήμης. Εντολές και προγράμματα μπορούν να λειτουργήσουν σε υψηλότερες ταχύτητες αν βρεθούν στην cache. Εάν δεν βρεθούν, μια νέα σειρά εντολών φορτώνεται από την κύρια μνήμη. DDR SDRAM Η DDR SDRAM δυναμική μνήμη τυχαίας προσπέλασης διπλού ρυθμού μεταφοράς δεδομένων είναι ένας τύπος μνήμης κατασκευασμένης με ολοκληρωμένο κύκλωμα που χρησιμοποιείται στους υπολογιστές. Έχει μεγαλύτερο ρυθμό μεταφοράς πληροφορίας σε σχέση με την μνήμη SDRAM μεταφέροντας δεδομένα και κατά την ακμή ανόδου και την ακμή καθόδου του σήματος του ρολογιού. Έτσι σχεδόν διπλασιάζεται ο ρυθμός μεταφοράς χωρίς να χρειάζεται αύξηση της συχνότητας του μπροστινού διαύλου. Δυναμική μνήμη τυχαίας προσπέλασης Δυναμική μνήμη τυχαίας προσπέλασης (DRAM) είναι ένας τύπος μνήμης τυχαίας προσπέλασης που αποθηκεύει μπιτ δεδομένων σε έναν ξεχωριστό πυκνωτή. Όμως επειδή το φορτίο των πυκνωτών εξασθενεί με το χρόνο , η πληροφορία που έχουμε αποθηκευμένη εξασθενεί γι' αυτό πρέπει περιοδικά να ξαναφορτίζεται ο πυκνωτής, εξού και ο όρος δυναμική. Χώρος διευθύνσεων Χώρο διευθύνσεων ονομάζουμε ένα σύνολο διευθύνσεων κάποιον οντοτήτων. Αυτές οι οντότητες μπορεί να είναι κελιά της κύριας μνήμης, της εικονικής μνήμης, θύρες εισόδου/εξόδου, οι υπολογιστές ενός δικτύου. Έτσι για παράδειγμα δεδομένου μιας ΚΜΕ και τους εύρους του διαύλου διευθύνσεων της, π.χ. έστω 8 μπιτς, λέμε ότι ο χώρος διευθύνσεων μνήμης της ΚΜΕ είναι 28 = 256. Δηλαδή η ΚΜΕ μπορεί να 'δει' να απευθυνθεί σε 256 ξεχωριστά κελιά μνήμης. Σκληρός Δίσκος Ο σκληρός δίσκος είναι ένα μαγνητικό αποθηκευτικό μέσο - συσκευή που χρησιμοποιείται στους ηλεκτρονικούς υπολογιστές, στις ψηφιακές βιντεοκάμερες, στα φορητά mp3 players, επιτραπέζια ψηφιακά βίντεο, κονσόλες παιχνιδομηχανών, ψηφιακούς επίγειους και δορυφορικούς τηλεοπτικούς δέκτες κ.τ.λ. Ένας σκληρός δίσκος αποθηκεύει μεγάλες ποσότητες δεδομένων και η συνήθης χωρητικότητα των σκληρών δίσκων που κυκλοφορούν στο εμπόριο είναι 80 GB έως 1 ΤΒ. Για μεγαλύτερες χωρητικότητες που αγγίζουν τα 4 TB (terabyte) χρησιμοποιούνται κυκλώματα πολλαπλών σκληρών δίσκων, με τη μορφή συρταρωτής διάταξης. Η ταχύτητα προσπέλασης των δεδομένων είναι ταχύτερη από το DVD αλλά πολύ πιο αργή από την μνήμη του υπολογιστή. Οι σκληροί δίσκοι χρησιμοποιούνται στους υπολογιστές για την αποθήκευση δεδομένων, κυρίως προγραμμάτων και αρχείων που είναι απαραίτητο να διατηρηθούν, σε αντίθεση με την μνήμη RAM όπου τα δεδομένα διαγράφονται με την διακοπή τροφοδοσίας ηλεκτρικού ρεύματος. Δομή Ένας σκληρός δίσκος αποτελείται από: Μαγνητικούς δίσκους κατασκευασμένους από μέταλλο ή πλαστικό και επικαλυμμένους από ένα λεπτό στρώμα οξειδίου του σιδήρου ή άλλο μαγνητικό υλικό. Τον άξονα κίνησης γύρω από τον οποίο περιστρέφονται οι μαγνητικοί δίσκοι με την ίδια ταχύτητα. Κεφαλές ανάγνωσης/εγγραφής επάνω σε βραχίονες πάνω και κάτω από κάθε επιφάνεια δίσκου, που μετακινούνται εμπρός-πίσω. Ο συνδυασμός της κίνησης των βραχιόνων με την κίνηση των δίσκων, επιτρέπουν στις κεφαλές να έχουν πρόσβαση σε όλα τα σημεία των δίσκων. Ηλεκτρονικά εξαρτήματα που εξυπηρετούν την λειτουργία του σκληρού δίσκου, επικοινωνώντας με τον υπολογιστή και αναλαμβάνοντας την κίνηση των κεφαλών και τη μεταφορά των δεδομένων. Τρόπος αποθήκευσης Τα δεδομένα αποθηκεύονται στον σκληρό δίσκο ως ακολουθίες bit (αφού οι υπολογιστές λειτουργούν με το δυαδικό σύστημα). Οι κεφαλές γράφουν κάθε bit αλλάζοντας το μαγνητικό πεδίο στην επιφάνεια των μαγνητικών δίσκων και το διαβάζουν απλώς αναγνωρίζοντας το μαγνητικό πεδίο. Κάθε bit δεδομένων καταλαμβάνει τον δικό του χώρο στην επιφάνεια του δίσκου, ωστόσο οι ακολουθίες bit που αποτελούν τα δεδομένα, δεν είναι απαραίτητο να εγγράφονται σειριακά στον δίσκο, αλλά είναι δυνατό να κατακερματιστούν και να εγγραφούν σε διάφορες θέσεις. Είδη Σκληρών Δίσκων Με βάση το πρωτόκολλο επικοινωνίας και το interface οι δίσκοι διακρίνονται σε: IDE, SATA, SCSI. Οι κάρτες επέκτασης είναι ηλεκτρονικά κυκλώματα που συνδέονται στη μητρική πλακέτα του υπολογιστή για να του επιτρέψουν να κάνει διάφορες εργασίες. Οι κυριότερες κάρτες επέκτασης είναι: Η κάρτα γραφικών, η οποία είναι υπεύθυνη για τις πληροφορίες που βλέπουμε στην οθόνη. Η κάρτα ήχου, η οποία επιτρέπει στον υπολογιστή μας να παράγει και να επεξεργάζεται ήχο. Η κάρτα τηλεόρασης, η οποία μπορεί να μετατρέψει τον υπολογιστή μας σε τηλεοπτικό δέκτη Η κάρτα ραδιοφώνου, η οποία επιτρέπει στον υπολογιστή μας να συμπεριφέρεται ως κοινό ραδιόφωνο Η κάρτα επεξεργασίας video, η οποία επιτρέπει στον υπολογιστή μας να δέχεται, να επεξεργάζεται και να παράγει video. Η κάρτα δικτύου, η οποία δίνει τη δυνατότητα στον υπολογιστή μας να επικοινωνήσει μέσω καλωδίων με άλλους υπολογιστές που βρίσκονται στον ίδιο χώρο ή σε απόσταση. Το Modem (Τηλεφωνικός Διαμορφωτής - Αποδιαμορφωτής), μια συσκευή που δίνει τη δυνατότητα στον υπολογιστή μας να επικοινωνεί με άλλους υπολογιστές διαμέσου της τηλεφωνικής γραμμής. Το modem μετατρέπει το ψηφιακό σήμα του υπολογιστή σε αναλογικό, για να μπορέσει να κυκλοφορήσει μέσα από τις τηλεφωνικές γραμμές και, στη συνέχεια, σε ψηφιακό, για να μπορέσει να το αναγνωρίσει ο υπολογιστής που βρίσκεται στην άλλη άκρη της γραμμής. Είναι πολύ σημαντική συσκευή, γιατί αναλαμβάνει να μας συνδέσει με τον έξω κόσμο δίνοντάς μας τη δυνατότητα να συνδεθούμε με το Internet. Χαρακτηριστικό των modem είναι η ταχύτητα μεταφοράς των πληροφοριών από τον ένα υπολογιστή στον άλλο. Σήμερα, τα modem έχουν ταχύτητα από 56Κ και πάνω και υποστηρίζουν και λειτουργία fax. Η Mobile connect card (κάρτα σύνδεσης φορητού υπολογιστή με υπηρεσίες κινητού τηλεφώνου). Πρόκειται για μία νέα κάρτα σύνδεσης, η οποία μας επιτρέπει να έχουμε άμεση και συνεχή πρόσβαση στο διαδίκτυο, αλλά και στο εταιρικό μας δίκτυο. Χρησιμοποιεί την υπηρεσία σύνδεσης ενός κινητού τηλεφώνου και, έτσι, μας δίνει τη δυνατότητα να στείλουμε και να λάβουμε από το φορητό υπολογιστή μας SMS, να διαχειριστούμε τον τηλεφωνικό μας κατάλογο και να έχουμε άμεση πληροφόρηση για τον όγκο των δεδομένων που διακινούνται. Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture, ISA), είναι η λογική αφαίρεση ενός υπολογιστικού συστήματος στο επίπεδο της Γλώσσας Μηχανής (ή της Γλώσσας Assembly χωρίς τις κλήσεις του Λειτουργικού Συστήματος). Είναι το προγραμματιστικό μοντέλο (η εικονική μηχανή) που αντιλαμβάνεται ο προγραμματιστής που προγραμματίζει σε αυτό το (χαμηλότερο δυνατό) επίπεδο. Περιλαμβάνει το σύνολο εντολών, τις μεθόδους διευθυνσιοδότησης (προσπέλασης μνήμης), τη διαχείριση καταχωρητών, τη κωδικοποίηση διευθύνσεων και δεδομένων, το μηχανισμό κλήσης ρουτινών, τη διαχείριση εισόδου/εξόδου, τη διαχείριση των καταστάσεων και σημάτων διακοπής του επεξεργαστή. Πρόκειται ουσιαστικά για το σύνορο μεταξύ περιγραφής ενός υπολογιστικού συστήματος από πλευράς υλικού ή λογισμικού. Μικροαρχιτεκτονική (Microarchitecture), είναι το αμέσως χαμηλότερο επίπεδο, πιο συγκεκριμένο και λεπτομερές από το επίπεδο Αρχιτεκτονικής Συνόλου Εντολών. Περιλαμβάνει τη λεπτομερή περιγραφή του τρόπου σύνδεσης, λειτουργίας και χρονισμού των συστατικών μερών (του υλικού), έτσι ώστε αυτά να υλοποιούν (εκτελούν στη κυριολεξία) το σύνολο των εντολών. Δηλαδή τη πλήρη περιγραφή του κύκλου Ανάκλησης – Εκτέλεσης όλων των εντολών που υποστηρίζει ο υπολογιστής. Επίσης περιλαμβάνονται και θέματα Παραλληλισμού Επιπέδου Εντολής (Instruction Level Parallelism, ILP), δηλαδή αρχιτεκτονικές βελτιώσεις με στόχο την αύξηση της απόδοσης του επεξεργαστή. Σχεδίαση Συστήματος (System Design) που περιλαμβάνει τη διασύνδεση και λειτουργία των βασικών συστατικών στοιχείων (υλικού) του υπολογιστή, κυρίως εκτός του επεξεργαστή, στο μέτρο που αυτά επηρεάζουν την απόδοση του επεξεργαστή, όπως: Ιεραρχίες μνήμης (κρυφή μνήμη, εικονική μνήμη) Δίαυλοι, Ρολόγια, Διακόπτες, Ελεγκτές κλπ. Συστήματα συν-επεξεργασίας (GPUs, DMAs, NICs) Παραλληλισμός σε επίπεδο Επεξεργαστών. Αρχιτεκτονική Λογική Αφαίρεση, Μοντέλο, Οπτική, Σχέδιο με έμφαση στη χρήση, λειτουργία και σχεδίαση Αρχιτεκτονική Λογισμικού, Επιχειρησιακή Αρχιτεκτονική κλπ.Οργάνωση Δομή, Σύνθεση Συστατικών Μερών, Υλοποίηση του Σχεδίου με έμφαση στο υλικό μέρος και στις τεχνικές λεπτομέρειες.Σύστημα Δομημένη, Ιεραρχική αντιμετώπιση της μορφής Είσοδος – Κατάσταση (Επεξεργασία) – Έξοδος, όπου η Κατάσταση μπορεί να αναλυθεί παραπέρα. Time = I × CPI × Clock Cycle Time I: Instrumentation (αρχιτεκτονική και μεταγλωττιστής, συγκεκριμένα προγράμματα και δεδομένα) CPI: Cycles Per Instruction (μικροαρχιτεκτονική, oργάνωση) Clock Cycle Time: τεχνολογία (ταχύτητα ρολογιού)Αλληλεπιδράσεις μεταξύ Ι, CPI και Clock Cycle Time (ίσως και αλληλοσυγκρουόμενοι στόχοι) Clock Cycles = Σ CPIi × Ii για κάθε κατηγόρια εντολών i: μέσος όρος κύκλων ανά εντολή (CPIi) και μέσο ποσοστό εντολών (Ιi) ανά πρόγραμμα.FLOPs: Floating Point Operations per Second MIPs: Million Instructions per Second MIPs = Εντολές/Χρόνος × 106 = Συχνότητα/CPI × 106. Έστω ότι έχουμε έναν επεξεργαστή που κάνει 1 πράξη κινητής υποδιαστολής (απλής ακρίβειας) σε κάθε κύκλο ρολογιού: Αν η συχνότητά του είναι 1GHz, τότε έχει απόδοση 1 GFLOP. Αν ολοκληρώνει 1 εντολή σε κάθε κύκλο, τότε έχει απόδοση 1000MIPs 4 × freq FLOPS < {single Core 2 @ 2.93GHz} < 8 × freq FLOPsΕξαρτάται από την πράξη, FPADD, FPMUL, FPDIV (απλής ακριβείας). Για σύγχρονους επεξεργαστές τουλάχιστον 12 GFLOPs/cpu. 20ός αιώναςΛίγο, πανάκριβο, δύσχρηστο υλικό (1945) Επινόηση διερμηνείας και μικροπρογραμματισμού (1950) Επινόηση του λειτουργικού συστήματος (1960) Μεγέθυνση του μικροκώδικα (1970) Μείωση προς εξάλειψη του μικροπρογραμματισμού (1985)21ος αιώναςΆφθονο, φθηνό, εύχρηστο υλικό (2000) Ισοδυναμία υλικού και λογισμικού Αρχική ανάπτυξη λογισμικού λόγω του ακριβού υλικού Σταδιακή μετάβαση λογισμικού προς το υλικό (VLSI) Πρόσθεση νέων επιπέδων λογισμικού λόγω του φθηνού υλικού Μηδενική Γενιά Μηχανικοί Υπολογιστές (1642 – 1945)Πρώτη Γενιά Λυχνίες Κενού (1945 – 1955)Δεύτερη Γενιά Στερεοί Ημιαγωγοί-Transistors (1955 – 1965)Τρίτη Γενιά Ολοκληρωμένα Κυκλώματα (1965 – 1980)Τέταρτη Γενιά Ολοκλήρωση υψηλής κλίμακας-VLSI (1980 – ?) David A. Patterson, John L. Hennessy (2010). Οργάνωση και σχεδίαση υπολογιστών η διασύνδεση υλικού και λογισμικού. Εκδόσεις Κλειδάριθμος. Behrouz A. Forouzan, Firouz Mosharraf (2010). Εισαγωγή στην επιστήμη των υπολογιστών. Εκδόσεις Κλειδάριθμος. Μηδέν με πρόσημο http://7gym-glyfad.att.sch.gr/ergasies/ypol/ypol111111.htm Αρχειοθετήθηκε 2018-01-28 στο Wayback Machine. http://pdplab.it.uom.gr/teaching/tanenbaum/eisagogi.pdf