242 -ΕισαγωγήστουςΗ/Υ ΤµήµαΜαθηµατικών, Πανεπιστήµιο Ιωαννίνων Ακαδηµαϊκό Έτος 24-25 Άρτια Α.Μ. (-2-4-6-8) Νικόλαος Γλυνός 27α, B όροφος Τηλ: 825 e-mail: nglinos@uoi.gr
οµή και οργάνωση Ηλεκτρονικού Υπολογιστή 2
Κατασκευήυπολογιστικώνµηχανών 3 Αρχαιότητα: υπολογιστικέςµηχανές, µηχανισµός των Αντικυθήρων, κ.λπ. είδος αστρολάβου που κατασκευάσθηκε περίπου το 65 π.χ. ο «µεσολάβος» (Ερατοσθένης, 2 π.χ.) η «διόπτρα» (Ήρων ο Αλεξανδρεύς, π.χ.) 7οςαιώνας, Pascalκαι Leibniz, µηχανικές υπολογιστικές αριθµοµηχανές στοιχειώδεις αριθµητικές πράξεις βασισµένη σε µετρητές-τροχούς 3
Κατασκευήυπολογιστικώνµηχανών 4 84, Η µηχανή του Jacquard Αυτόµατος αργαλειός που προγραµµατιζόταν για την ύφανση πολύπλοκων σχεδίων µέσω διάτρητων χαρτοταινιών ή καρτελών Καθώς περιστρεφόταν µια ζώνη µε τρύπες, κινούνταν βελόνες Τοανυπήρχε µίατρύπαήόχι στην ανάλογη θέση µιας κάρτας καθόριζε τι θα υφανθεί 4
Κατασκευήυπολογιστικώνµηχανών 5 83 84, Babbage, διαφορικήµηχανή αναλυτική µηχανή πολυωνυµικές συναρτήσεις, λογάριθµοι, τριγωνοµετρικές συναρτήσεις Πολύπλοκες µηχανικές κατασκευές που δεν ολοκληρώθηκαν Η «αναλυτική µηχανή» θα µπορούσε να προγραµµατιστεί χρησιµοποιώντας ιάτρητες κάρτες 5
Κατασκευήυπολογιστικώνµηχανών 6 88 89, Hollerith, µηχανή µε διάτρητες κάρτες για την αυτοµατοποίηση των εκλογών 92-93, Bush, ηλεκτρική (αναλογική) υπολογιστικήµηχανή διαφορικές εξισώσεις 94, Zuse, ηλεκτρονική (ψηφιακή) υπολογιστικήµηχανή πρόγραµµα και δεδοµένα, χωριστά 945 95, µοντέλο von Neumann πρόγραµµα και δεδοµένα, από κοινού 95 σήµερα, ραγδαία ανάπτυξη της τεχνολογίας των ηλεκτρονικών υπολογιστών 6
ENIAC (94 s) Ο πρώτος Η/Υ! University of Pennsylvania Μέγεθος; Βλέπετε και µόνοι σας! 8, λυχνίεςκενού 5 ρελέ Βάρος; 3 τόνοι! Σχεδιαστές: John Mauchly J. Presper Eckert DEC LSI-, εκαετία του 98 s 7
8
Σε επίπεδο ολοκληρωµένου κυκλώµατος: 9
SSI- µικρής κλίµακας ολοκληρωµένο κύκλωµα
Οι µικρουπολογιστές περιέχουν ένα τεράστιο αριθµό τρανζίστορ: (ENIAC χωρίςτρανζίστορ!): 9,5 vacuum tubes and relays Intel 888 processor (st PC): 29, transistors Intel Pentium II processor: 7 million transistors Intel Pentium III processor: 28 million transistors Intel Pentium 4 processor: 42 million transistors Κάθε τρανζίστορ δεν είναι παρά ένας απλός διακόπτης onoff! Τα τρανζίστορ συνδυάζονται ώστε να υλοποιούν τις βασικές συναρτήσεις πύλες (gates) AND, OR, NOT Οι πύλες µε τη σειρά τους συνδυάζονται για να διατελέσουν πιο πολύπλοκες λειτουργίες adder, multiplexor, decoder, register,
Άµεσααποτελέσµατα ανάπτυξης της τεχνολογίαςτων υπολογιστών Μείωση κατανάλωσης και όγκου µηχανών Αύξηση της ταχύτητας επεξεργασίας Αύξηση του µεγέθους της µνήµης Αύξηση της αποθηκευτικής ικανότητας Βελτίωση της πιστότητας φύλαξης δεδοµένων 2
ΈµµεσαΑποτελέσµατα Αναπτύχθηκαν ορισµένες Επιστήµες (ΑριθµητικήΑνάλυση, Πληροφορική, Ροµποτική, ) Νέες Τεχνικές (Προσοµοίωση, Monte Carlo, Μοριακή υναµική, ) Αναπτύχθηκε πλήθος εφαρµογών (Τυπογραφία, Επικοινωνίες, Έλεγχος, Σχεδίαση, ιαχείρισηπόρων, Εµπόριο, Κρυπτογραφία, Πρόγνωσηκαιρού, κλπ) 3
Οργάνωσηενός υπολογιστικούσυστήµατος Εφαρµογή (π.χ. WORD) Λογισµικό Υλικό Compiler Assembler Επεξεργαστής Μνήµη Λειτουργικό Σύστηµα (π.χ. Windows) Datapath & Control Λογικός σχεδιασµός I/O σύστηµα Instruction Set Architecture Συντονισµός µεταξύ πολλών αφαιρετικών επιπέδων 4
ΛΟΓΙΣΜΙΚΟ... DO I=,99 CALL SU(I,X)... Λειτουργικά συστήµατα Γραφικοί µεσολαβητές χρήσης Γλώσσες Προγραµµατισµού Μεταφραστές και διερµηνευτές Προγράµµατα εφαρµογών Μεθοδολογία ανάπτυξης λογισµικού Λογισµικό αξιολόγησης του "Υλικού" 5
Γλώσσες Προγραµµατισµού ιευκολύνουν την διατύπωση των διεργασιών που πρέπει να εκτελεστούν. Υπάρχουν πολλές γλώσσες Ορισµένες γλώσσες είναι καταλληλότερες από άλλες για συγκεκριµένο τύπο προβλήµατος. FORTRAN (Επιστηµονικοί Υπολογισµοί) C (ΠρογραµµατισµόςΛειτουργικών) PROLOG (ΤεχνητήΝοηµοσύνη) 6
Επίπεδαπρογραµµατισµού Γλώσσα υψηλού επιπέδου (π.χ., C, ) Πρόγραµµα σε Assembly Machine Language Program (MIPS) Εκτέλεση από τον επεξεργαστή Ηλεκτρικά σήµατα στο υλικό Compiler (συµβολοµεταφραστής) Assembler temp = v[k]; v[k] = v[k+]; v[k+] = temp; lw $to, ($2) lw $t, 4($2) sw $t, ($2) sw $t, 4($2) 7
οµικά στοιχεία 8
A B οµικά στοιχεία (για µια Αριθµητική ΛογικήΜονάδα Arithmetic Logic Unit) AND πύλη Σύµβολο Ορισµός C A B C A B OR πύλη Σύµβολο Ορισµός C A B C A Inverter σύµβολο Ορισµός C A C Multiplexer Σύµβολο Ορισµός D D C A B A C B 9
Χ = ΝΟΤ ((ΝΟΤΑ) AND B) και Υ = ΝΟΤ (Β AND (NOT C)) 2
2 F X OR Y Υ B AND (NOT C) NOT C Χ (NOT A) AND B NOT A C Β Α
ΑριθµητικήκαιΛογικήΜονάδα Arithmetic Logic Unit (ALU) Instruction PC Registers ALU Memory Data Memory Πώς κατασκευάζεται η Αριθµητική και Λογική Μονάδα (ALU - Arithmetic Logic Unit); PC program counter - επόµενηεντολήγιαεκτέλεση Instruction memory µνήµηµεεντολές Registers - καταχωρητές Data memory µνήµηδεδοµένων 22
Συνδυαστική λογική (combinational logic): είσοδοι Συνδυαστική : : : : λογική έξοδοι Ακολουθιακή λογική (sequential logic): είσοδοι : : Συνδυαστική λογική : : έξοδοι Η ειδοποιός διαφορά! Μνήµη 23
Σχεδιαστικέςτεχνικές Σχεδιαστικές τεχνικές για συνδυαστικά κυκλώµατα: Σεεπίπεδολογικώνπυλών (π.χ. AND, OR, NOT, XOR, NAND) Σε επίπεδο δοµικών στοιχείων (building blocks) Και οι λογικές πύλες και τα δοµικά στοιχεία είναι διαθέσιµασεολοκληρωµένακυκλώµατα (Integrated Circuits ή chips) 24
οµικάστοιχεία: Ολοκληρωµένα κυκλώµατα Είδη ολοκληρωµένων µε βάση την πυκνότητα ολοκλήρωσης (ισοδύναµος αριθµός λογικών πυλών): Small-scale integration (SSI): µέχρι 2 πύλες Medium-scale integration (MSI): 2-99 πύλες Large-scale integration (LSI): -9999 πύλες Very large-scale integration (VLSI):,-99,999 πύλες Ultra large-scale integration (ULSI): >, πύλες Κύριοι στόχοι µιας ψηφιακής σχεδίασης: (i) µείωσηκόστους Μείωση αριθµού πυλών (εάν χρησιµοποιούνται SSI ολοκληρωµένα) Μείωση αριθµού ολοκληρωµένων (για πολύπλοκες σχεδιάσεις) (ii) αύξησηταχύτητας (iii) απλότητα σχεδίασης (µε επαναχρησιµοποίηση δοµικών στοιχείων όπου αυτό είναι εφικτό) 25
Σχεδίασησεεπίπεδοπυλών: Ηµιαθροιστής (Half Adder) ιαδικασία σχεδίασης: ) Ποιο είναι το πρόβληµα; Σχεδίαση Half Adderγιαπρόσθεση 2 bits 2) Καθορισµός εισόδων, εξόδων και της σχέσης µεταξύ τους. ύο είσοδοι και δύο έξοδοι (συναρτήσεις των εισόδων): X Y Half Adder (X + Y) S C 26
3) Εύρεση πίνακα αληθείας: 4) Εύρεση λογικής έκφρασης για τις συναρτήσεις: C = XY S = X'Y + XY' = X Y 5) Σχεδίαση λογικού κυκλώµατος: X Y C S X Y S Half Adder C 27
Σχεδίασησεεπίπεδοπυλών: ΠλήρηςΑθροιστής (Full Adder) Όµως! Οηµιαθροιστήςπροσθέτειµόνο 2 bits! Για την πρόσθεση δύο δυαδικών αριθµών θα χρειαστούµε να προσθέσουµε 3 bits (το ένα από αυτά είναι το κρατούµενο) Παράδειγµα: Μεταφερόµενο Κρατούµενο X + Y S Χρειαζόµαστε έναν Πλήρη Αθροιστή ή Full Adder (λέγεται έτσι γιατί µπορεί να κατασκευαστεί από 2 ηµιαθροιστές): X Y Z Full Adder (X + Y + Z) S C 28
Σχεδίασησεεπίπεδοπυλών: ΠλήρηςΑθροιστής (Full Adder) Πίνακας αληθείας (πρέπει να τον βρείτε εσείς!): X Y Z C S ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Z κρατούµενοαπό προηγούµενη άθροιση) C κρατούµενο προς επόµενη άθροιση Βρείτε και τις λογικές εκφράσεις των C και S! 29
Οπλήρηςαθροιστήςµελογικέςπύλες: X Y (X Y) S Z (XY) C Αποτελείται από δύο ηµιαθροιστές (Ηalf-Αdders ταδύοκόκκιναπλαίσια) καιµίαπύλη OR 3
X Y Οπλήρηςαθροιστήςµεάλληαπεικόνιση: blocks ηµιαθροιστών (X Y) S (XY) C Z X S S S F Y H.A. C H.A. C Z C OR gate C F 3
Σχεδίασηµεχρήσηδοµικώνστοιχείων Χρησιµοποιείται για τη σχεδίαση πολύπλοκων λογικών κυκλωµάτων συναρτήσεων Γενικά, αυτά τα πολύπλοκα κυκλώµατα δεν περιγράφονται απλά από έναν πίνακα αληθείας (λόγω τεράστιου αριθµού δυνατών εισόδων) αλλά από έναν αλγόριθµο, µια µέθοδο δηλαδή υπολογισµού της εξόδου µε βάση τις εισόδους Οι αλγόριθµοι αυτοί προκύπτουν µέσα από την υποδιαίρεση του προβλήµατος υπολογισµού σε υποπροβλήµατα µέχρις ότου φτάσουµε σε λογικές συναρτήσεις που µπορούν να υπολογιστούν από ήδη διαθέσιµα λογικά στοιχεία). 32
Μεθοδολογίασχεδίασηςµεδοµικά στοιχεία Επαναληπτική µέθοδος (i) Καθόρισε την επιθυµητή λειτουργία του λογικού κυκλώµατος. (ii) Προσδιόρισεµικράλειτουργικάστοιχείαπουµπορούν, µαζί, να επιτελέσουν τη λειτουργία αυτή. (iii) Συνέδεσε, κατάλληλα, τα µικρά αυτά στοιχεία. Παράδειγµα: Θέλουµε να κατασκευάσουµε έναν αθροιστή 2 αριθµώντων n bits: X n X n- X 2 X... ΑΘΡΟΙΣΤΗΣ C n+ C... F n F n- F 2 F 33
Πιοαναλυτικά! Ας περιοριστούµε στη σχεδίαση ενός αθροιστή για δύο αριθµούς των 4 bit, µαζί µε κρατούµενο, που δίνει ως αποτέλεσµα 5-bits: άθροισµα και τελικό κρατούµενο: X 3 X 2 X X Y 3 Y 2 Y Y Παράλληλος C 4 αθροιστής 4-bit C S 3 S 2 S S 5-bit αρκούν καθώς το αποτέλεσµα µπορεί να είναι το πολύ ίσο µε () 2 +() 2 +() 2 = () 2 34
Παράλληλοςαθροιστής Γράφουµετονλογικότύπογιατοάθροισµαγιακάθεένα απόταζευγάριατων bitsεισόδουκαθώςκαιγιατο κρατούµενο που διαδίδεται στο επόµενο άθροισµα: C i+ = X i Y i + (X i Y i ) C i S i = X i Y i C i Παρατηρήστε ότι κάθε στάδιο άθροισης µπορεί να εκτελεστεί από έναν πλήρη αθροιστή, τον οποίο έχουµε ήδη σχεδιάσει και θα τον χρησιµοποιήσουµε ως βασικό δοµικό στοιχείο! 35
Προχωράµεστησχεδίαση! Συνδέοντας 4 πλήρεις αθροιστές ως εξής, παίρνουµε τον αθροιστή δύο αριθµών των 5 bits: Y 3 X 3 Y 2 X 2 Y X Y X C 3 C 2 C C 4 FA FA FA FA C Είσοδος Έξοδος S 3 S 2 S S 36
Μερικάσηµείαπροσοχής Προσέξτε ότι το κρατούµενο διαδίδεται από τον ένα πλήρη αθροιστή στον επόµενο µε το να συνδέσουµε το κρατούµενο εξόδου του ενός στο κρατούµενο εισόδου του άλλου (cascading). Λέγεται Παράλληλος Αθροιστής (Parallel Adder) γιατί οι είσοδοι παρουσιάζονται ταυτόχρονα (παράλληλα) στις εισόδους των πλήρων αθροιστών. Καλείται, επίσης, και Ripple-Carry Adderκαθώςτο κρατούµενοδιαδίδεται «γλιστρώντας» (ripple σηµαίνειγλίστρυµα) από τον πρώτο αθροιστή έως τον τελευταίο. Όµως αυτά ανήκουν σε άλλη σειρά µαθηµάτων. 37