Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1)...

118
Αρχιτεκτονική Υπολογιστών Ψηφιακή Λογική Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Περιβάλλον Προσομοίωσης Hades, University of Hamburg http://tams-www.informatik.uni-hamburg.de/applets/hades/ Computer Systems: A Programmer's Perspective, Bryant, O' Hallaron, Carnegie Mellon University. Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

Transcript of Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1)...

Page 1: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

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

Ψηφιακή Λογική

Βασικές Πηγές:

Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam.

Περιβάλλον Προσομοίωσης Hades, University of Hamburghttp://tams-www.informatik.uni-hamburg.de/applets/hades/

Computer Systems: A Programmer's Perspective, Bryant, O' Hallaron, Carnegie Mellon University.

Σύνθεση: Κ.Γ. Μαργαρίτης, Πανεπιστήμιο Μακεδονίας, Τμήμα Εφαρμοσμένης Πληροφορικής.

Page 2: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

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

Ψηφιακή Λογική

Αναπαράσταση ΠληροφορίαςΣυνδυαστικά ΚυκλώματαΑκολουθιακά ΚυκλώματαΔιασύνδεση Κυκλωμάτων

Page 3: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Θεσιακά Συστήματα Αρίθμησης

Ο αριθμός 2001 στο δυαδικό, οκταδικό, δεκαδικό και δεκαεξαδικό.

Page 4: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Θεσιακά Συστήματα Αρίθμησης

Ο αριθμός 2001 στο δυαδικό, οκταδικό, δεκαδικό και δεκαεξαδικό.

Page 5: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μονάδες Μέτρησης (1)

Μονάδες μέτρησης (δεκαδικό σύστημα).

Page 6: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μονάδες Μέτρησης (2)20 = 121 = 222 = 423 = 824 = 1625 = 3226 = 6427 = 12828 = 25629 = 512210 = 1024 Kilo220 = 1024*1024 Mega230 = 1024*1024*1024 Giga240 = 1024*1024*1024*1024 Tera250 = 1024*1024*1024*1024*1024 Peta

Page 7: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μετατροπές (1)

Page 8: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μετατροπές (2)

Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Page 9: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μετατροπές (3)

Μετατροπή του δεκαδικού 1492 σε δυαδικό με συνεχείς διαιρέσεις.

Page 10: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μετατροπές (4)

Μετατροπή του δυαδικού 101110110111 σε δεκαδικό με συνεχείς πολλαπλασιαμούς.

Page 11: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

ASCII (1)

ASCII: χαρακτήρες 0 – 31.

Page 12: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

ASCII (2)

ASCII: χαρακτήρες 32 – 127.

Page 13: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

UTF-8

Universal Character Set Transformation Format

Ελληνικά και Κοπτικά U+0370 .. U+03FF (code points)Δυαδική μορφή 11001101 10110000 .. 11001111 10111111Πχ U+0391 Α 11001110 10010001 Α (Ελληνικό κεφαλαίο)

Page 14: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κώδικες σφαλμάτων (1)

(a) Κωδικοποίηση 4 bits 1100

(b) Άρτια ισοτιμία ανά τρία bits

(c) Ανίχνευση και Διόρθωση Σφάλματος

Page 15: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κώδικες σφαλμάτων (2)

Εφαρμογή κώδικα Hamming στη λέξη μνήμης 11110000010101110 με προσθήκη 5 bits ελέγχου για 16 bits δεδομένων, στις θέσεις 1, 2, 4, 8 και 16 για έλεγχο των bits 1 παρά 1, 2 παρά 2, 4 παρά 4, 8 παρά 8. Η επαλήθευση γίνεται με εφαρμογή της ίδιας συνάρτησης (εδώ άρτιας)ισοτιμίας. Η θέση απλού σφάλματα ανιχνεύεται από την τομή των αποτελεσμάτων των ελέγχων.

Page 16: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κώδικες σφαλμάτων (3)

(1)' = (1), (3), (5), (7), (9), (11), (13), (15), (17), (19), (21) = 1(2)' = (2 3), (6 7), (10 11), (14 15), (18 19) = 1(4)' = (4 5 6 7), (12 13 14 15), (20 21 .. ..) = 0(8)' = (8 9 10 11 12 13 14 15) = 1(16)' = (16 17 18 19 20 21 ..) = 0

Λάθος στη θέση 01011 = δεκαδικό 11.

1

Παραλαβή και Επαλήθευση

Page 17: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αρνητικοί Δυαδικοί Αριθμοί (1)

Page 18: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αρνητικοί Δυαδικοί Αριθμοί (2)

Page 19: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

0

2w–1

2w

Unsigned

Two’scomplement 0

+2w–1

–2w–1

0

2w–1

2w

Two’scomplement

0

+2w–1

–2w–1

Unsigned

Αρνητικοί Δυαδικοί Αριθμοί (3)

Page 20: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Δυαδική Αριθμητική (1)

Πρόσθεση στο συμπλήρωμα του 1 και του 2.

Page 21: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

0

–2w –1

+2wPositive overflow

Negative overflow–2w

+2w –1

0

–2w –1

+2w –1

x + y

x +t yCase 4

Case 3

Case 2

Case 1

Δυαδική Αριθμητική (2)

Θετική Υπερχείλιση : Θετικός+Θετικός και πρόσημο ΑρνητικόΑρνητική Υπερχείλιση: Αρνητικός-Αρνητικός και πρόσημο Θετικό

Page 22: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κινητή Υποδιαστολή (1)

Διαχωρισμός του αριθμού των ψηφίων από το εύρος αναπαράστασης. Χρήση εκθετικής αναπαράστασης:

n = f × 10e

f κλάσμα ή mantissae εκθέτης (προσημασμένος ακέραιος)

Παραδείγματα

3.14 = 0.314 × 101 = 3.14 × 100

0.000001 = 0.1 × 10−5 = 1.0 × 10−6

1941 = 0.1941 × 104 = 1.941 × 103

Page 23: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κινητή Υποδιαστολή (2)Έστω 3 δεκαδικά για το κλάσμα, 2 για τον εκθέτη καθώς και 2 πρόσημα

(+/-) 0.δδδ Χ 10 (+/-)δδ

Το διάστημα των πραγματικών αριθμών χωρίζεται σε 7 περιοχές:• Πολύ 'μεγάλοι' αρνητικοί < −0.999 × 1099.• Αρνητικοί μεταξύ −0.999 × 1099 και −0.100 × 10−99.• Πολύ 'μικροί' αρνητικοί > 0.100 × 10−99.• Μηδέν.• Πολύ 'μικροί' θετικοί 0.100 × 10−99.• Θετικοί μεταξύ 0.100 × 10−99 και 0.999 × 1099.• Πολύ 'μεγάλοι' θετικοί > 0.999 × 1099.

Page 24: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κινητή Υποδιαστολή (3)Οι διακριτοί πραγματικοί αριθμοί που μπορούν να αναπαρασταθούν είναι 2 Χ 900 Χ 199 = 358201 συν το 0.

Έχουμε σφάλμα στρογγυλοποίησης (rounding error) λόγω του πεπερασμένου αριθμού ψηφίων στο κλασματικό μέρος. Η κατανομή των αριθμών που μπορούν να αναπαρασταθούν δεν είναι ομοιόμορφη (τελείες στο σχήμα) αλλά το σχετικό σφάλμα που εισάγεται με τη στογγυλοποίηση είναι περίπου σταθερό.

Page 25: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κινητή Υποδιαστολή (4)

Προσεγγιστικά άνω και κάτω όρια αναπαράστασης αριθμών κινητής υποδιαστολής σε δεκαδική μορφή.

Page 26: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

IEEE Floating-point Standard 754 (1)

Αναπαράσταση και Κανονικοποίηση του δεκαδικού αριθμού 432 ή 110110000 (στο δυαδικό σύστημα).

Page 27: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

IEEE Floating-point Standard 754 (2)

(a) Απλή Ακρίβεια. (b) Διπλή Ακρίβεια.

Page 28: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

IEEE Floating-point Standard 754 (3)

Χαρακτηριστικοί αριθμοί.

Page 29: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

IEEE Floating-point Standard 754 (4)

Χαρακτηριστικοί αριθμοί.

Page 30: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

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

Ψηφιακή Λογική

Αναπαράσταση ΠληροφορίαςΣυνδυαστικά ΚυκλώματαΑκολουθιακά ΚυκλώματαΔιασύνδεση Κυκλωμάτων

Page 31: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικές Πύλες (1)(a) Πύλη NOT

Η τάση του ρεύματος μπορεί λάβει μόνο δύο τιμές (και απομόνωση):

+ Vcc (πχ 5 Volt) = λογικό 1 (high)Γείωση (πχ 0 Volt) = λογικό 0 (low)

Αν Vin ~ 0 τότε Vout = Vcc ~ 1An Vin ~ 1 τότε Vout = Γείωση ~ 0

Page 32: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικές Πύλες (2)

(b) Πύλη NAND: Αν V1 = 1 KΑΙ V2 = 1 τότε Vout = 0. Αλλιώς Vout = 1(c) Πύλη NOR: Αν V1 = 1 Ή V2 = 1 τότε Vout = 0. Αλλιώς Vout = 1

Page 33: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικές Πύλες (3)

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

Page 34: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Συνδυαστικά) Κυκλώματα (1)

(a) Πίνακας αληθείας για μια συνάρτηση πλειοψηφίας τριών μεταβλητών.(b) Ένα αντίστοιχο κύκλωμα για τον πίνακα (a).

Page 35: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Συνδυαστικά) Κυκλώματα (2)

Οι όροι του πίνακας αληθείας για μια συνάρτηση πλειοψηφίας τριών μεταβλητών.

Υλοποιούνται οι όροι που δίνουν μονάδα στην έξοδο.

M=            M =A' B' C' +    (NOT A)AND(NOT B)AND(NOT C) OR A' B' C  +    (NOT A)AND(NOT B)AND(    C) ORA' B  C' +    (NOT A)AND(    B)AND(NOT C) ORA' B  C  +    (NOT A)AND(    B)AND(    C) ORA  B' C' +    (    A)AND(NOT B)AND(NOT C) ORA  B' C  +    (    A)AND(NOT B)AND(    C) ORA  B  C' +    (    A)AND(    B)AND(NOT C) ORA  B  C    (    A)AND(    B)AND(    C) 

Page 36: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Συνδυαστικά) Κυκλώματα (3)

Από την συνάρτηση Boole στο λογικό κύκλωμα.

1. Ξεκινούμε από μια συνάρτηση άλγεβρας Boole ή από ένα πίνακα αληθείας (ή σχετική λεκτική περιγραφή).

2. Αναπτύσσουμε τον πίνακα αληθείας ώστε να είναι πλήρης, δηλαδή να περιλαμβάνει όλους τους όρους στη πλήρη μορφή τους.

3. Σχεδιάζουμε δύο γραμμές εισόδου για κάθε μεταβλητή εισόδου (1 και 0 – τοποθετούμε αντιστροφείς).

4. Για κάθε γραμμή του πίνακα αληθείας με έξοδο 1 (ή για κάθε όρο της συνάρτησης) σχεδιάζουμε μια πύλη AND.

5. Συνδέουμε τις εισόδους της κάθε πύλης AND με τις αντίστοιχες γραμμές μεταβλητών εισόδου, ανάλογα με τα 0 ή 1 στο πίνακα αληθείας (ή ΝΟΤ στη συνάρτηση).

6. Σχεδιάζουμε μια πύλη OR στην έξοδο. Συνδέουμε στις εισόδους τις, τις εξόδους των πυλών AND. Η έξοδος της πύλης OR είναι το αποτέλεσμα της συνάρτησης.

Page 37: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ταυτότητες άλγεβρας Boole

Page 38: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Απλοποίηση κυκλωμάτων (1)

* Ελάχιστος αριθμός πυλών (πίνακες Karnaugh)

* Πύλες με μόνο δύο εισόδους

* Χρήση ενός τύπου πύλης (ισοδυναμία κυκλωμάτων)

Πx Α Β C Χ Χ = A B' C + A B C' + A B C 0 0 0 0 = A (B' C + B C' + B C) 0 0 1 0 = A (B' C + B (C' + C)) 0 1 0 0 = A (B' C + B) 0 1 1 0 = A (B' + B) (C + B) Distributive Law 1 0 0 0 = A (B + C) 1 0 1 1 = A B + A C 1 1 0 1 1 1 1 1

Page 39: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Απλοποίηση κυκλωμάτων (1)

* Ελάχιστος αριθμός πυλών (πίνακες Karnaugh)

* Πύλες με μόνο δύο εισόδους

* Χρήση ενός τύπου πύλης (ισοδυναμία κυκλωμάτων)

Πx Α Β C Χ Χ = A B' C + A B C' + A B C 0 0 0 0 = A (B' C + B C' + B C) 0 0 1 0 = A (B' C + B (C' + C)) 0 1 0 0 = A (B' C + B) 0 1 1 0 = A (B' + B) (C + B) Distributive Law 1 0 0 0 = A (B + C) 1 0 1 1 = A B + A C 1 1 0 1 1 1 1 1

Page 40: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Απλοποίηση κυκλωμάτων (2)

Δύο ισοδύναμες συναρτήσεις (a) AB + AC, (b) A(B + C).

Page 41: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ισοδυναμία κυκλωμάτων (1)

Κατασκευή πυλών (a) NOT, (b) AND, και (c) OR

με χρήση μόνο πυλών NAND ή NOR.

Page 42: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ισοδυναμία κυκλωμάτων (2)

Ισοδύναμα κυκλώματα για πύλες:(a) NAND, (b) NOR, (c) AND, (d) OR

Μπορούμε να καταλήξουμε στην υλοποίηση κυκλωμάτων με χρήση ΜΟΝΟ ενός τύπου πύλης, NAND ή ΝΟR.

Page 43: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Aποκλειστικό Ή (XOR)

(a) Ο πίνακας αληθείας (b-d) Τρία πιθανά κυκλώματα Α XOR B = A'B + AB' = (A'B)'' + (AB')'' = ((A'B)(AB'))'ΝΟΤ(A XOR B) = (A'B + AB')' = (A'B)' (AB')' = (A+B')(A'+B) = Α'Β' + ΑΒ

Page 44: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Πολλαπλές Έξοδοι (1) Ο πίνακας αληθείας έχει πολλαπλές στήλες στην έξοδο.

Για την κάθε έξοδο υλοποιούμε ξεχωριστό λογικό κύκλωμα (bit-slice) και εφαρμόζουμε τις σχετικές απλοποιήσεις.

Αν είναι εφικτό μπορούμε κατόπιν να 'ενοποιήσουμε' τμήματα κυκλωμάτων που έχουν την ίδια συμπεριφορά (2η απλοποίηση).

Παράδειγμα: Από Πρόσημο-Μέγεθος σε Συμπλήρωμα του 2 (αυστηρό)

abc xyz

000 000 x = ab'c+abc'+abc =

001 001 ab(c'+c)+ab'c= a(b+b'c)=a(b+b')(b+c)=a(b+c)

010 010 y = a'bc'+a'bc+ab'c+abc'=

011 011 a'b+a(b'c+bc')

100 000 z = a'b'c+a'bc+ab'c+abc

101 111 a'c+ac=c

110 110

111 101

Page 45: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Πολλαπλές Έξοδοι (2) Ο πίνακας αληθείας έχει πολλαπλές στήλες στην έξοδο.

Για την κάθε έξοδο υλοποιούμε ξεχωριστό λογικό κύκλωμα (bit-slice) και εφαρμόζουμε τις σχετικές απλοποιήσεις.

Αν είναι εφικτό μπορούμε κατόπιν να 'ενοποιήσουμε' τμήματα κυκλωμάτων που έχουν την ίδια συμπεριφορά (2η απλοποίηση) .

Παράδειγμα: Από Πρόσημο-Μέγεθος σε Συμπλήρωμα του 2 (χαλαρό)

abc xyz

000 000 x = ab'c'+ab'c+abc'+abc =

001 001 ab'(c'+c)+ab(c'+c)= a(b'+b)=a

010 010 y = a'bc'+a'bc+ab'c+abc'=

011 011 a'b+a(b'c+bc')

100 100 z = a'b'c+a'bc+ab'c+abc

101 111 a'c(b'+b) + ac(b'+b)=c(a'+a)=c

110 110

111 101

Page 46: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Βασικά ΚυκλώματαΣυνδυαστικά Κυκλώματα:

Είσοδος ->Πράξη -> Έξοδος

Αριθμητικές, Λογικές Πράξεις (και συγκρίσεις, μετατοπίσεις)

(Απο-) Πολυπλέκτες, (Από-) Κωδικοποιητές

Ακολουθιακά Κυκλώματα:

Είσοδος + Κατάσταση -> Πράξη -> Έξοδος + Νέα Κατάσταση

Ρολόγια, Μανδαλωτές, Flip-Flops, Μετρητές

Καταχωρητές, Μετρητές, Μνήμες

Page 47: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αποκωδικοποιητές

Αποκωδικοποιητής3-σε-8.

DABC 76543210----------------------

000 00000001

001 00000010

010 00000100

011 00001000

100 00010000

101 00100000

110 01000000

111 10000000 πχ. επιλογή διεύθυνσης στη μνήμη

Page 48: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Κωδικοποιητές

Kωδικοποιητής8-σε-3.

I Y76543210 210---------------------

00000001 000

00000010 001

00000100 010

00001000 011

00010000 100

00100000 101

01000000 110

10000000 111 πχ. επιλογή πλήκτρου σε πληκτρολόγιο

Page 49: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Από-πολυπλέκτες

Από-πολυπλέκτης 8

εξόδων.

a x

210 76543210

---------------------

000 0000000d

001 000000d0

010 00000d00

011 0000d000

100 000d0000

101 00d00000

110 0d000000

111 d0000000

πχ. επιλογή εξόδου

Page 50: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Πολυπλέκτες

Πολυπλέκτης 8

εισόδων.

πύλη

ΑΒC 76543210 F

-----------------------------------

000 00000001 D0

001 00000010 D1

010 00000100 D2

011 00001000 D3

100 00010000 D4

101 00100000 D5

110 01000000 D6

111 10000000 D7

πχ. επιλογή εισόδου

Page 51: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Συγκριτές (1)Συγκριτής 4 bits

A B A=B NOT(A XOR B) --------------------------------0 0 10 1 01 0 0 1 1 1

Kάθε bit XOR (bit-slice) αντιμετωπίζεται ξεχωριστά αφού ο υπολογισμός μπορεί να γίνειi παράλληλα. H σύνθεση γίνεται με NOR.

Page 52: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Συγκριτές (2)

Παραδείγματα

A 0 0 1 0B 1 0 1 1A XOR B 1 0 0 1NOR 0

A 1 0 1 1B 1 0 1 1A XOR B 0 0 0 0NOR 1

Εφαρμογή: Έλεγχος Μηδενικού Αποτελέσματος (Z)

Page 53: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολισθητές (Shift / Rotate) (1)

Λογικός Ολισθητής 1-bit αριστερά/δεξιά.Διάταξη 8 bit-slice απο-πολυπλεκτών 2-προς-1 (οι ακραίοι απο-πολυπλέκτες

μπορούν να ολοκληρωθούν με ψευδοσυνδέσεις). Κάθε έξοδος συνδέεται με 2 εισόδους.

Page 54: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολισθητές (Shift / Rotate) (2)

D0 D1 D2 D3 D4 D5 D6 D7

C 1 D0 0 D1 0 D2 0 D3 0 D4 0 D5 0 D6 0 OR 0 D0,0 D1,0 D2,0 D3,0 D4,0 D5,0 D6

C0 0 D1 0 D2 0 D3 0 D4 0 D5 0 D6 0 D7

OR D1 0,D2 0,D3 0,D4 0,D5 0,D6 0,D7 0

Page 55: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολισθητές (Shift / Rotate) (3)

Λογικός Ολισθητής 1-bit αριστερά/δεξιά.

Παράδειγμα (1)

1 0 0 1 0 1 1 01

0

1 0 0 0 0 0 1 0 0 0 1 0 1 0

0 1 0 0 1 0 1 1

Page 56: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολισθητές (Shift / Rotate) (4)

Λογικός Ολισθητής 1-bit αριστερά/δεξιά.

Παράδειγμα (2)

1 0 0 1 0 1 1 00

1

0 0 0 0 0 1 0 0 0 1 0 1 0 0

0 0 1 0 1 1 0 0

Page 57: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αθροιστές (1)

(a) Πίνακας αληθείας και (b) Κύκλωμα ημι-αθροιστή.Sum = A'B+AB' = Α ΧΟR BCarry = AB

(a) (b)

Page 58: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αθροιστές (2)

(a) Πίνακας αληθείας και (b) Απλοποιημένο κύκλωμα πλήρους αθροιστή.

Sum = A'B'Cin+A'BCin'+AB'Cin'+ABCin

Cout = A'BCin+AB'Cin+ABCin'+ABCin

Page 59: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αθροιστές (3)

Sum = A'B'Cin + A'BCin' + AB'Cin' + ABCin

= (A'B' + AB) Cin + (A'B + AB') Cin'

Εστω Χ = (Α'Β + ΑΒ').

Τότε Χ' = (Α'Β + ΑΒ')' = (Α'Β)' (ΑΒ')' = (Α'' + Β') (Α' + Β'')

= (Α + Β') (Α' + Β) = Α'Β' + ΑΒ

Αρα Sum = X' Cin + X Cin'

Cout = A'BCin + AB'Cin + ABCin' + ABCin

= (A'B + AB') Cin + AB

Page 60: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αθροιστές (4) - ΥπερχείλισηΣυμπλήρωμα του 2 στα 4 bits: έγκυρη αναπαράσταση από

-8 (1000) έως 7 (0111).

Εστω -7 1001 7 0111

+ -7 + 1001 + 7 + 0111

----------------------------------------------------------------------------

-14 (2) 10010 14 (-2) 1110

Msbit A Msbit B Msbit Sum V

-----------------------------------------------------

0 0 1 1

1 1 0 1

Page 61: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αριθμητικές Λογικές Μονάδες (1)

Μια 1-bit ALU.

Page 62: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αριθμητικές Λογικές Μονάδες (2)

' Ελεγχος Δεδομένων

Δεδομένα2 γραμμές

Απο-Πολυ-Πλεκτης

Ή

ΑπλήΔιακλά-δωση

Πράξη 0

Πολυ-Πλέκτης

Είσοδος ' Εξοδος

ΕπιλογήΛειτουργίας

Πράξη 1

Πράξη 2

Πράξη n-1

...

Log n γραμμές

0 , 1

Page 63: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αριθμητικές Λογικές Μονάδες (3)

Είσοδοι Δεδομένων Α, Β, Carry in

Έξοδοι Δεδομένων Output, Carry out

Έλεγχος Δεδομένων ΕΝΑ, ΕΝΒ (enable), INVA (invert A, NOT A)

Eπιλογή Λειτουργίας F0, F1 (Function Select)

0 0 A AND B

0 1 A OR B

1 0 NOT B

1 1 A + B + Carry in (πρόσθεση)

Πιθανές πράξεις Α (OR 1) , ΝΟΤ Α (OR 1), (1 OR) B, NOT B,

A AND B, (NOT A) AND B, A OR B,

(NOT A) OR B, A + B, A + 1, B + 1, A + B + 1

(ΝΟT A) + B + 1 ...

Page 64: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αριθμητικές Λογικές Μονάδες (4)

Παράδειγμα συνδυασμού εισόδων για τη πράξη Α + Β + 1

Α 0 ή 1 0 ή 1

Β 0 ή 1 0 ή 1

Carry in 1 1

ΕΝΑ 1 1

ΕΝΒ 1 1

ΙΝVA 0 1

F0 1 1

F1 1 1

Output A + B + 1 ((ΝΟΤ Α) + 1) + B = B - A

Carry Out 0 ή 1 0 ή 1

Page 65: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αριθμητικές Λογικές Μονάδες (5)

Οκτώ 1-bit ALUs συνεδεδεμένες σε μια 8-bit ALU. Δεν φαίνονται τα σήματα INVΑ και ΕΝΑ, ΕΝΑΒ.

Πώς μπορούμε να κάνουμε αφαίρεση στα 8 bits στο Συμπλήρωμα του 2;

Page 66: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Έλεγχος Αριθμητικής Λογικής Μονάδας

Συνδυασμοί σημάτων ελέγχου της ALU και οι πράξεις που αντιστοιχούν σε αυτούς.

Page 67: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

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

Ψηφιακή Λογική

Αναπαράσταση ΠληροφορίαςΣυνδυαστικά ΚυκλώματαΑκολουθιακά ΚυκλώματαΔιασύνδεση Κυκλωμάτων

Page 68: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ρολόγια

(a) Ρολόι.

(b) Διάγραμμα χρονισμού.

(c) Ασύμμετρο διάγραμμα χρονισμού και χωρισμός κύκλου ρολογιού σε τμήματα. Έτσι μπορούμε να ορίσουμε χρονικές στιγμές μέσα στο κύκλο για την έναρξη γεγονότων.

Page 69: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μανδαλωτές (Latches) (1)

Το απλούστερο κύκλωμα με μνήμη 1 bit.Σε αντίθεση με τα συνδυαστικά κυκλώματα η νέα έξοδος δεν καθορίζεται

μόνο από την είσοδο αλλά και από τη τρέχουσα έξοδο. Τέτοια κυκλώματα, τα οποία έχουν την έννοια της 'τρέχουσας κατάστασης', δηλαδή του χρόνου, λέγονται ακολουθιακά.

(a) Μανδαλωτής NOR στη κατάσταση 0 και (b) στη κατάσταση 1.(c) Πίνακας αληθείας πύλης NOR.

Page 70: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μανδαλωτές (2)

S R Λειτουργία------------------------------------0 0 Διατήρηση (a) ή (b)0 1 Q = 0 (a) Reset1 0 Q = 1 (b) Set1 1 Αστάθεια

Μπορούμε, με τη βοήθεια των Set – Reset είτε να καθορίσουμε τη τιμή του bit στη μνήμη, είτε να το διατηρήσουμε στη παρούσα τιμή του.

Η επιλογή 1 1 οδηγεί σε ασταθή ταλάντωση που μπορεί να ισορροπήσει σε μια από τις δύο σταθερές καταστάσεις.

Page 71: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Χρονισμένος μανδαλωτής

Η όποια αλλαγή θα συμβεί μόνο όταν υπάρξει παλμός, οχι απαραίτητα ωρολογιακός (απλά enable). Ετσι το κύκλωμα μπορεί να απομονωθεί από ανεπιθύμητες εξωτερικές επιδράσεις.

Page 72: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μανδαλωτής D (3)

Αποκλείονται οι επιλογές R = S = 0 και R = S = 1.

Όμως λόγω του enable η κατάσταση R = S = 0 μπορεί να επιτευχθεί έμμεσα αφού απομονώνει το κύκλωμα.

D Ck ΛειτουργίαX 0 Έξοδος και διατήρηση κατάστασης τρέχουσας (Q)0 1 Έξοδος τρέχουσας κατάστασης (Q), αποθήκευση νέας κατάστασης Q=01 1 Έξοδος τρέχουσας κατάστασης (Q), αποθήκευση νέας κατάστασης Q=1

Page 73: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Latches και Flip-Flops

(a) D latch με enable στη τιμή 1

(b) D latch με enable στη τιμή 0

(c) D flip-flop με ακμοπυροδότηση (edge -trigger) ανόδου (0 -> 1)

(d) D flip-flop με ακμοπυροδότηση (edge -trigger) καθόδου (1 -> 0)

Page 74: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Ακολουθιακά) Κυκλώματα (1)

Από τον πίνακα καταστάσεων στο ακολουθιακό κύκλωμα.Θεωρούμε οτι έχουμε ένα σύγχρονο ακολουθιακό κύκλωμα (με κοινό

χρονισμό ck) που αποτελείται από N D-latches ή flip-flops, όπου το κάθε ένα διατηρεί 'μνήμη' (κατάσταση) του ενός bit.

1. Ξεκινούμε από ένα πίνακα καταστάσεων, με δύο ομάδες στηλών: (α) τη τρέχουσα κατάσταση και (β) την επόμενη κατάσταση. Έχουμε έτσι το πολύ 2^Ν διακριτά ζεύγη καταστάσεων (τρέχουσα -> επόμενη).

2. Η παρούσα κατάσταση αποτελεί και την έξοδο του κυκλώματος κατά τη μετάβαση στην επόμενη κατάσταση.

3. Καθορίζουμε τις εισόδους που απαιτούνται έτσι ώστε, ο συνδυασμός εισόδου και εξόδου (τρέχουσας κατάστασης) να οδηγεί στην επόμενη κατάσταση.

4. Σχεδιάζουμε το συνδυαστικό κύκλωμα που απαιτείται σε κάθε είσοδο. Χρησιμοποιούμε ως πίνακα αληθείας τις στήλες εξόδων και εισόδων. Οι τρέχουσες έξοδοι πρέπει να προκαλούν τις επόμενες εισόδους.

Page 75: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Ακολουθιακά) Κυκλώματα (2)Σύγχρονος Δυαδικός Μετρητής (Counter) 3 bits. Το κύκλωμα έχει 3 D ff's c,b,a που κρατούν τα bits 2^2,2^1,2^0.Καταστάσεις Έξοδος Q Είσοδος DΤρέχουσα Επόμενη (τρέχουσα κατάσταση) (επόμενη κατάσταση)

cba cba cba cba000 001 000 001001 010 001 010010 011 010 011011 100 011 100100 101 100 101101 110 101 110110 111 110 111111 000 111 000

Η έξοδος καθορίζεται από τη τρέχουσα κατάσταση.Η επόμενη κατάσταση καθορίζεται από την είσοδο, και μέσω ανάδρασης

(feedback )από τη τρέχουσα κατάσταση.

Page 76: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Ακολουθιακά) Κυκλώματα (3)

Υπολογισμός συνδυαστικών κυκλωμάτων εισόδων:

D(a) = c'b'a' + c'ba' + cb'a' + cba' = (c'b' + c'b + cb' + cb) a' = a' = 1 XOR a D(b) = c'b'a + c'ba' + cb'a + cba' = (c' + c) (b'a + ba') = a XOR b D(c) = c'ba + cb'a' + cb'a + cba' = c'ba + cb' + a'c = c'ba + (a'+b')c = = c'ba + cb'a' = (ab) XOR c

Αν είχαμε μετρητή X bits τότε..

D(x) = (Bit0 AND Bit1 AND .. Bit(x-1)) XOR Bitx

Page 77: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λογικά (Ακολουθιακά) Κυκλώματα (4)

1 a

b

c

...

Σύγχρονος δυαδικός μετρητής 4 bits

Page 78: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μηχανές Πεπερασμένων ΚαταστάσεωνFinite State Machines (1)

Πεπερασμένο σύνολο Ν διακριτών καταστάσεων, όπου κάθε κατάσταση ορίζεται από ένα άνυσμα x bits.

Πεπερασμένο σύνολο Μ διακριτών εισόδων, όπου κάθε είσοδος ορίζεται από ένα διάνυσμα y bits.

Παρόμοια πεπερασμένο σύνολο Κ διακριτών εξόδων, όπου κάθε είσοδος ορίζεται από ένα διάνυσμα z bits.

Πίνακας ή Γράφος Μετάβασης που συνδέει Τρέχουσα Κατάσταση και Είσοδο με Επόμενη Κατάσταση (και Έξοδο).

Μια Μηχανή Πεπερασμένων Καταστάσεων μπορεί να υλοποιηθεί ως ένα Ακολουθιακό Κύκλωμα, αποταλούμενο από δύο βασικά τμήματα:

(α) το τμήμα που αποθηκεύει τη κατάσταση (δηλαδή τη Μνήμη)(β) το Συνδυαστικό Κύκλωμα που υλοποιεί τη λογική σύνδεση εισόδου και

τρέχουσας κατάστασης (εξόδου( για τη παραγωγή της επόμενης κατάστασης.

Page 79: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μηχανές Πεπερασμένων ΚαταστάσεωνFinite State Machines (2)

Μηχανή ΠεπερασμένωνΚαταστάσεων Mealy.

Αν η Έξοδος εηξαρτάται μόνοαπό τη Παρούσα Κατάτασταση τότε έχουμε Μηχανή Πεπερασμένων Καταστάσεων Moore.

Page 80: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μηχανές Πεπερασμένων ΚαταστάσεωνFinite State Machines (3)

Τρέχουσα Κατάσταση Είσοδος Έξοδος Επόμενη Κατάσταση

Locked Coin Release UnlockedLocked Push None LockedUnlocked Coin None UnlockedUnlocked Push Release Locked

Παράδειγμα: Μηχανή ελέγχου εισόδου.

Page 81: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μηχανές Πεπερασμένων ΚαταστάσεωνFinite State Machines (4)

Πεπερασμένο Αυτόματο (Μηχανή Πεπερασμένων Καταστάσεων)Έλεγχος αριθμού μηδενικών σε δυαδικό αριθμόΑπροσδιόριστου αριθμού bits. Σειριακή ανάγνωση (bit προς bit)S1 = αρτιος αριθμός μηδενικώνS2 = περιττός αριθμός μηδενικών.

Page 82: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Καταχωρητές

Σύνδεση καταχωρητή 8 bit με διαύλους εισόδου και εξόδου.Το CK ('χρονισμός') ελέγχει την είσοδο (write: Ck=0->1) ενώ το ΟΕ ('απομονωτής') ελέγχει την έξοδο (read: OE=1). Μπορούν να είναι Τα 2 σήματα ταυτόχρονα στη τιμή 1;

Page 83: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μνήμη (1)

Page 84: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Mνήμη (2)

' Ελεγχος RD, CS, OE

Διεύθυνσηlogn bits

Απο-Κωδικο-ποιητής

Γραμμή 0

Πολυ-Πλέκτης

' ΕξοδοςΔεδομένων

m bits

Επιλογή ΓραμμήςΑνάγνωσης και Έλεγχος Διαύλου

Γραμμή 1

Γραμμή 2

Γραμμή n-1

...

Eίσοδος Δεδομένων m bits m bits

Επιλογή Εγγραφήςκαι Επιλογή ΓραμμήςΕγγραφής

Page 85: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Z

Read

10

1

1

1

X Y Z

ZXY

Page 86: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Write

10

1

0

0

ZXY

Y ZX

Page 87: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λειτουργία μνήμης (1)

Είσοδος δεδομένων Ι0, Ι1, Ι2 3 bits / λέξηΈξοδος δεδομένων Ο0, Ο1, Ο2 3 bits / λέξη

Είσοδος διεύθυνσης Α0, Α1 προσπέλαση σε 4 λέξεις(αποκωδικοποίηση)

Σήματα ελέγχου CS Chip Select οργάνωση με επι-μέρους chipsOE Output Enable επιτρέπει έξοδο RD Read εγγραφή δεδομένων

Λειτουργία ανάγνωσης

1. Διεύθυνση από address bus σε Α0, Α12. Σήματα ελέγχου CS = 1, OE = 1, RD = 13. Είσοδος δεδομένων Ι0, Ι1, Ι2 αδιάφορη, οι πύλες εγγραφής δίνουν 0.Επιλέγεται μια από τις 4 λέξεις με βάση την αποκωδικοποίηση των A0, A1. Οι αμετάβλητες καταστάσεις των αντίστοιχων Dff's καταλήγουν στις πύλες OR και μέσω των απομονωτών στις γραμμές O0, O1, O2.

Page 88: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λειτουργία μνήμης (2)

Λειτουργία εγγραφής

1. Διεύθυνση από address bus σε Α0, Α12. Σήματα ελέγχου CS = 1, OE = 1, RD = 03. Είσοδος δεδομένων σε Ι0, Ι1, Ι2.Επιλέγεται μια από τις 4 λέξεις με βάση την αποκωδικοποίηση των A0, A1.Οι αντίστοιχες πύλες εγγραφής δίνουν 1 και τα συγκεκριμένα Dff's αλλάζουν κατάσταση με βάση την αντίστοιχη είσοδο δεδομένων. Οι παλιές καταστάσεις των Dff's καταλήγουν στις πύλες OR αλλά λόγω των απομονωτών δεν φθάνουν στις γραμμές O0, O1, O2.

(a) απομονωτής (b), (c) λειτουργία (d) αντιστρέφων απομονωτής

Page 89: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Μνήμη ROM

Page 90: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Τεχνολογίες μνήμης (1)

S=Static D= Dynamic SD=Synchronous Dynamic DDR=Double Data RateP=Progmammable E=Erasable EE= Electrically Erasable Flash=Block Erasable

Page 91: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Τεχνολογίες Μνήμης (2)

Dynamic RAM

Μόνο ενα transistor και ένας πυκνωτής ανά bit.

Πολύ πυκνή αλλα Πτητική (Vοlatile) ακόμη και όταν είναι σε λειτουργία.

Απαιτείται τακτική Eπανεγγραφή (Refresh) γιατί ο πυκνωτής εκφορτίζεται.

Page 92: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Προγραμματιζόμενες Λογικές Διατάξεις (PLAs)

PLA με 12 εισόδους και 6 εξόδους.

Τα μικρά τετράγωνα είναι συνδέσεις που μπορεί να διακοπούν.

2^12 >> 50Περιορισμένοςαριθμός όρων, περίπου 8 ή 9 ανά έξοδο

ΑΝDPlane

ORPlane

Page 93: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Προγραμματιζόμενη Λογική 1. EPROM σαν PLA: Σε μια ROM μπορούνε να έχουμε 12 εισόδους και

2^12 εξόδους των 6 bits. Μπορούμε να χρησιμοποιήσουμε τη ROM για να κωδικοποιήσουμε ένα οποιοδήποτε πλήρες λογικό κύκλωμα 12 εισόδων και 6 εξόδων.

2. EPROM σαν hardwired πρόγραμμα: Με τη βοήθεια ενός ρολογιού ή/και ενός μετρητή η ROM μπορεί να χρησιμοποιηθεί για να 'στέλνει' μια ακολουθία από 'εντολές' των 8-bits που εκτελούνται συνέχεια (πχ ROM BIOS).

3. ΕPROM με D'ffς και κατάλληλες συνδέσεις μπορούν να υλοποιήσουν οποιοδήποτε ακολουθιακό κύκλωμα, όπου η EPROM υλοποιεί το συνδυαστικό κύκλωμα και τα D'ffs τη μνήμη.

4. EPROM με D'ffs συνθέτουν τα Λογικα δομικά στοιχεία (Logic blocks) των FPGA's (Field Programmable Gate Arrays). Μέσω της EPROM μπορούμε να υλοποιήσουμε οποιαδήποτε λογική συνάρτηση 4 εισόδων – 1 εξόδου θέλουμε.

Page 94: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Field Programmable Gate Arrays

RoutingBlock

EPROM

Logic Block

Page 95: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

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

Ψηφιακή Λογική

Αναπαράσταση ΠληροφορίαςΣυνδυαστικά ΚυκλώματαΑκολουθιακά ΚυκλώματαΔιασύνδεση Κυκλωμάτων

Page 96: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Σχηματικό Διάγραμμα Απλού Υπολογιστή

Μητρική Πλακέτα Ολοκληρωμένα ΚυκλώματαΣύνδεση Κυκλωμάτων με Διαύλους

Page 97: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυκλώματα (1)

Ένα πολύ απλό ολοκληρωμένο κύκλωμα με 4 πύλες NAND.

Page 98: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυκλώματα (2)

Καταχωρητής 8-bit.

Page 99: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυκλώματα (3)

SSI (Small Scale Integration) 1-10 πύλες

MSI (Medium Scale Integration) 10-100 πύλες

LSI (Large Scale Integration) 100 – 100.000 πύλες

VLSI (Very Large Scale Integration) > 100.000 πύλες

Σήμερα έχουμε IC's με εκατομμύρια πύλες (ή transistors)

Μερικά προβλήματα:

Καθυστέρηση πύλης (διάδοση και μεταγωγή) ~1 nanosecond

Αριθμός ακροδεκτών (υψηλή αναλογία πυλών/ακροδεκτών)

Πυκνότητα (υπερθέρμανση, παρεμβολή)

Θα τα δούμε σύντομα στον Παραλληλισμό

Page 100: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Νόμος του Moore

O νόμος του Moore προβλέπει ετήσια αύξηση 60% στα transistors που χωρούν σε ένα ολοκληρωμένο κύκλωμα. Το συγκεκριμένο διάγραμμα αναφέρεται σε ολοκληρωμένα κυκλώματα μνήμης.

Page 101: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυκλώματα (4)

Tύποι πακεταρίσματος ολοκληρωμένων κυκλωμάτων:

(a) dual-inline package DIP

(b) pin grid array PGA(c) land grid array LGA (συνήθως με μοχλό).

Page 102: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα κυκλώματα CPU

Συνδεσμολογία τυπικού ολοκηρωμένου κυκλώματος CPU. Τα βέλη δηλώνουν είσοδο ή έξοδο.Οι μικρές διαγώνιες γραμμές σημαίνουν πολλαπλές γραμμές.

Page 103: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυλώματα Μνήμης (1)

Εναλλακτικοί τρόποι οργάνωσης μνήμης 512 Mbits.

Page 104: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυλώματα Μνήμης (2)Λογική Οργάνωση Διευθύνσεων

Τρείς οπτικές μιας μνήμης των 96 bit.

Page 105: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ολοκληρωμένα Κυλώματα Μνήμης (3)

Πλακέτα ενός DIMM συνολικής χωρητικότητας 4 GB σε 8 ολοκληρωμένα κυκλώματα των 256 MB σε κάθε μια από τις 2 πλευρές.

Page 106: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Δίαυλοι (1)

Τυπικό σύστημα υπολογιστή με πολλαπλούς διαύλους.

Κατηγορίες διαύλων:

Με βάση τη θέση: Οn-chip bus, On-board bus, Εξωτερικό bus.

Με βάση τη λειτουργία: CPU bus, Memory bus, I/O bus,...

Mε βάση το τύπο δεδομένων: Data bus, Address bus, Control bus.

Με βάση τη τεχνολογία: PCI, PCI Express, SCSI, USB..

Με βάση το χρονισμό: Σύγχρονο, Ασύγχρονο

Με βάση τη μέθοδο μεταφοράς δεδομένων: Σειριακό, Παράλληλο..

Page 107: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Δίαυλοι (2)

Λειτουργία του Ελεγκτή / Διαιτητής Διαύλου (Bus Controller / Arbiter)

Πιθανοί συνδυασμοί master - slave σε διαύλους.

Page 108: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Εύρος Διαύλων

Μεγέθυνση Διαύλου Διευθύνσεων (backward compatibility).

Eύρος Αddress Bus ~ Αριθμός Θέσεων Μνήμης.

Εύρος Data Bus ~ Αριθμός Bytes ανά Θέση Μνήμης.

Επηρρεάζονται οι αντίστοιχοι καταχωρητές.

Page 109: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Χρονισμός Διαύλου (1)

Χρονισμός Ανάγνωσης σε σύγχρονο δίαυλο.

Page 110: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Χρονισμός Διαύλου (2)

Ορισμός μερικών σημαντικών σημάτων.

Page 111: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Χρονισμός Διαύλου (3)

Χρονισμός Ανάγνωσης σε ασύγχρονο δίαυλο.

Page 112: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Λειτουργία Ασύγχρονου Διαύλου με Πλήρη Χειραψία (Full-Handshake).

Χρονισμός Διαύλου (4)

Page 113: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ομαδική μεταφορά (Βlοck Transfer)

Page 114: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Διαιτησία Διαύλου

(a) Κεντρικός διαιτητής διαύλου ενός επιπέδου.(b) Ο ίδιος δαιτητής με δύο επίπεδα.

Page 115: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ελεγκτής Διακοπών

Ελεγκτής Διακοπών 8259A .

Page 116: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Ελεγκτές Ι/Ο

Ενα Προγραμματιζόμενος Ελεγκτής Ι/Ο 24-bit (PIO Interface).

Page 117: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αποκωδικοποίηση Διευθύνσεων (1)

EPROM, RAM, και PIO σε χώρο διευθύνσεων 64 KB.

Page 118: Computer Systems Organization · 250 = 1024*1024*1024*1024*1024 Peta. Μετατροπές (1) Μετατροπές (2) Δεκαεξαδικό – Δυαδικό - Οκταδικό.

Αποκωδικοποίηση Διευθύνσεων (2)

Πλήρης αποκωδικοποίηση διευθύνσεων 64K.

CS'=1 όταν Α15,Α14,..,Α11 = 0Διεύθυνση00000xxxxxxxxxx

0

10

0

1

0

0 0

1

0

0 0

1 1

1 1

CS'=1 όταν Α15=1 και Α14,..,Α11 = 0Διεύθυνση10000xxxxxxxxxx

CS'=1 όταν Α15,Α14,..,Α2 = 1Διεύθυνση1111111111111xx