Δομή του trn

Post on 11-Jan-2016

47 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Δομή του TRN. Διάδρομος Διευθύνσεων. Διάδρομος Δεδομένων. Διάδρομος Ελέγχου. KME. Μνήμη. Μονάδα Ασύγχρονης Επικοινωνίας. Μονάδα απευθείας προσπέλασης μνήμης. Ελεγκτής δίσκου. Κ M Ε. - PowerPoint PPT Presentation

TRANSCRIPT

Δομή του TRN

KME

Μνήμη

Μονάδα Ασύγχρονης Επικοινωνίας

Μονάδα απευθείας προσπέλασης

μνήμης

Ελεγκτής δίσκουΔιά

δρομ

ος Δ

εδομ

ένω

ν

Διά

δρομ

ος Δ

ιευθ

ύνσε

ων

Διά

δρομ

ος Ε

λέγχ

ου

ΚMΕ• Η Κεντρική Μονάδα Επεξεργασία (KME, Central Processing Unit – CPU) είναι ο ‘’εγκέφαλος’’ του υπολογιστή

• Εκτελεί τα προγράμματα που είναι αποθηκευμένα στη μνήμη ανακαλώντας τις εντολές, αποκωδικοποιώντας τις και εκτελώντας τις τη μία κατόπιν της άλλης

• Η ΚΜΕ αποτελείται από την Μονάδα Ελέγχου, την Αριθμητική και Λογική Μονάδα και ορισμένους καταχωρητές

• Η Μονάδα Ελέγχου (Control Unit) δίνει τα σήματα ελέγχου στην Αριθμητική και Λογική Μονάδα (ποια εντολή να εκτελέσει, πότε, με ποια δεδομένα)

• Η Αριθμητική και Λογική Μονάδα (ALU) εκτελεί αριθμητικές και λογικές πράξεις σε δυαδικές ακολουθίες

• Το πλήθος των εντολών ενός υπολογιστή κυμαίνεται μεταξύ 20 και 300 (CISC, RISC)

Γλώσσα μηχανής

ΜειονεκτήματαΜειονεκτήματα

• Απαιτείται υπερβολικός χρόνος και προσπάθεια για προγραμματισμό

• Απαιτείται λεπτομερής γνώση του συγκεκριμένου Η/Υ

• Επιρρεπής διαδικασία σε λάθη – δύσκολη αποσφαλμάτωση

• Δύσκολη τροποποίηση προγραμμάτων

• Δύσκολος διαχωρισμός του προγράμματος σε ανεξάρτητα τμήματα

ΠλεονεκτήματαΠλεονεκτήματα

• Πλήρης έλεγχος των δυνατοτήτων του Η/Υ

• Καλή γνώση γλώσσας μηχανής οδηγεί σε μικρά προγράμματα με μικρό χρόνο εκτέλεσης

Συμβολική Γλώσσα (Assembly)

ΠλεονεκτήματαΠλεονεκτήματα

• Ευκολότερος προγραμματισμός

• Μνημονικά ονόματα για εντολές

• Συμβολικές αντί πραγματικών διευθύνσεων

• Μικρότερη εξάρτηση από τη δομή και τις λειτουργίες του Η/Υ

• Ευκολότερη τροποποίηση

• Στοιχειώδης διαχωρισμός προγραμμάτων με χρήση υπορρουτινών

ΜειονεκτήματαΜειονεκτήματα

• Απαιτείται επιπλέον χρονικό διάστημα (περιορισμένο) για τη φάση της συμβολομετάφρασης

Εντολές τριών διευθύνσεων

<Κώδ. Εντολής> <διεύθ.δεδομ.1> <διεύθ.δεδομ.2> <διεύθ.αποτελ.>

ΠΡΟΣΘΕΣΗ ADD X, Y, Z

ΑΦΑΙΡΕΣΗ SUB X, Y, Z

ΠΟΛ/ΣΜΟΣ MUL X, Y, Z

ΔΙΑΙΡΕΣΗ DIV X, Υ, Ζ

Εντολές τριών διευθύνσεων

Έστω η εντολή της C:

A = B*(C+D*E-F/G) (5 Αριθμητικοί Τελεστές)

MUL D, E, T1

DIV F, G, T2

ADD C, T1, T1

SUB T1, T2, T1

MUL B, T1, A

(5 Εντολές assembly)

Εντολές τριών διευθύνσεων

Το μικρότερο πρόγραμμα που αντιστοιχεί στην εντολή:

Α = Β + C + D + E + F + G

ADD B,C,A

ADD A,D,A

ADD A,E,A

ADD A,F,A

ADD A,G,A

Μειονέκτημα: Πολλά bits για την αποθήκευση των εντολών

Πλεονέκτημα: Μικρά σχετικά προγράμματα (λίγες εντολές)

Όλες οι εντολές πλήν της πρώτης χρειάζονται δύο μόνο διαφορετικές διευθύνσεις: Άσκοπη κατανάλωση μνήμης

Εντολές δύο διευθύνσεων

<Κώδ. Εντολής> <διεύθ.δεδομ.1 και αποτελ.> <διεύθ.δεδομ.2>

ΠΡΟΣΘΕΣΗ ADD X, Y

ΑΦΑΙΡΕΣΗ SUB X, Y

ΠΟΛ/ΣΜΟΣ MUL X, Y

ΔΙΑΙΡΕΣΗ DIV X, Υ

Εντολές δύο διευθύνσεων

Η εντολή τριών διευθύνσεων

MUL A, B, C

αντιστοιχεί στις:

SUB C, C Μηδενισμός του αποτελέσματος

ADD C, A

MUL C, B

Οι δύο πρώτες εντολές στην ουσία μεταφέρουν το περιεχόμενο της θέσης Α στην θέση C

Για αυτό και τα σύνολα εντολών δύο διευθύνσεων περιέχουν και την εντολή MOVE X, Y

Εντολές δύο διευθύνσεων

Έστω η εντολή της C:

A = B*(C+D*E-F/G) (5 Αριθμητικοί Τελεστές)

Χωρίς να καταστρέψουμε τα περιεχόμενα καμίας θέσης μνήμης είναι:ΜΟVE A, D (D -> A)

MUL A, E

MOVE T, F (δεν καταστρέφουμε την F)

DIV T, G

ADD A, C

SUB A, T

MUL A, B (7 εντολές)

Εντολές δύο διευθύνσεων

Το μικρότερο πρόγραμμα που αντιστοιχεί στην εντολή:

Α = Β + C + D + E + F + G

ΜΟVE A, B

ADD A, C

ADD A, D

ADD A, E

ADD A, F

ADD A, G

Εντολές μίας διεύθυνσης

Στις πράξεις υπονοείται ότι συμμετέχει ο συσσωρευτής ΑCC

<Κώδ. Εντολής> <διεύθ.δεδομ.1>

ΠΡΟΣΘΕΣΗ ADD X (ACC = ACC + X)

ΑΦΑΙΡΕΣΗ SUB X (ACC = ACC – X)

ΠΟΛ/ΣΜΟΣ MUL X (ACC = ACC * X)

ΔΙΑΙΡΕΣΗ DIV X (ACC = ACC / X)

υπάρχουν επίσης οι εντολές LOAD X (ACC = X)

STORE X (X = ACC)

Εντολές μίας διεύθυνσης

Έστω η εντολή της C:

A = B*(C+D*E-F/G)

LOAD DMUL ESTORE T1LOAD FDIV GSTORE T2LOAD CADD T1SUB T2MUL BSTORE A ( έντεκα εντολές)

Εντολές μηδέν διευθύνσεων• Στις εντολές μηδέν διευθύνσεων δεν προσδιορίζονται διευθύνσεις

• Βασίζονται στη χρήση στοίβας (stack)

• Η στοίβα είναι γνωστή και ως μνήμη LIFO

• Οι καταχωρητές ενός Η/Υ μπορεί να θεωρηθούν ως στοίβα

• Κορυφή στοίβας (πρώτος καταχωρητής)

• Δεύτερος καταχωρητής κ.ο.κ.

• Τελευταίος καταχωρητής -> Βάση στοίβας

• Οι αριθμητικές και λογικές πράξεις επεξεργάζονται τα περιεχόμενα του δεύτερου καταχωρητή και της κορυφής, τοποθετούν το αποτέλεσμα στο δεύτερο καταχωρητή και μετακινούν όλα τα αποτελέσματα προς τα πάνω κατά μία θέση

Εντολές μηδέν διευθύνσεων

5

3

13

-2

3657

8512

-765

-7

ADDADD

8

13

-2

3657

8512

-765

-7undefined

5

8

13

-2

3657

8512

-765

-7

Εντολές μηδέν διευθύνσεων• Οι υπολογιστές μηδέν διευθύνσεων πρέπει οπωσδήποτε να έχουν δύο τουλάχιστον εντολές μιας διεύθυνσης:

LOAD X

(ανακαλεί το περιεχόμενο της θέσης Χ και το προσθέτει στην κορυφή της στοίβας – τα υπόλοιπα μετακινούνται προς τα κάτω)

STORE X

(αφαιρεί το περιεχόμενο της κορυφής και το αποθηκεύει στη θέση Χ της μνήμης – τα υπόλοιπα μετακινούνται προς τα πάνω)

Αντίστροφη Πολωνική ΓραφήΠως γράφουμε μία κανονική παράσταση (π.χ. Pascal ή C ) σε υπολογιστή στοίβας ?

Με μετατροπή της έκφρασης σε Αντίστροφο Πολωνικό Συμβολισμό ή μεταθεματικό συμβολισμό

Στο συμβολισμό αυτό, οι τελεστές ακολουθούν τους τελεστέους

Εμφανίζονται με τη σειρά με την οποία πρέπει να εφαρμοστούν

Αντίστροφη Πολωνική ΓραφήΕνδοθεματική παράσταση Μεταθεματική Παράσταση

α * b + c a b * c +

a + b * c a b c * +

a * b + c * d ab * cd* +

a * b div c a b * c div

(a+b) div (c-d) ab + cd – div

((a+b) * c +d) div (e+f-g) ab+c*d+ef+g-div

Ενδοθεματική - ΜεταθεματικήH αλγεβρική έκφραση A*B + C μπορεί να παρασταθεί ως δένδρο:

+

* C

Α Β

Ενδοδιατεταγμένος τρόπος διάσχισης

1. Επίσκεψη του αριστερού υποδένδρου

2. Επίσκεψη της ρίζας

3. Επίσκεψη του δεξιού υπόδενδρου

Ενδοθεματική - Μεταθεματική

Μεταδιατεταγμένος τρόπος διάσχισης

1. Επίσκεψη του αριστερού υποδένδρου

2. Επίσκεψη του δεξιού υπόδενδρου

3. Επίσκεψη της ρίζας

function PostOrder(Node* ptr){ if(ptr != NULL) { PostOrder(ptr->left); PostOrder(ptr->right); printf(“%c”, ptr->data); }}

struct Node { char data;

struct Node* left; struct Node* right;}

Αντίστροφη Πολωνική Γραφή

Έστω η εντολή εκχώρησης:Α = Β * (C + D*E – F div G)

είναι ισοδύναμη με την μεταθεματική εντολή:Β C D E * F G div - + * = A

που για έναν υπολογιστή στοίβας μεταφράζεται στις εντολές:LOAD BLOAD CLOAD DLOAD EMULLOAD FLOAD GDIVSUBADDMULSTORE A (12 εντολές)

ΣυμπέρασμαΗ εντολή :

Α = Β * (C + D*E – F div G)

απαιτεί:

5 εντολές τριών διευθύνσεων

7 εντολές δύο διευθύνσεων

11 εντολές μίας διεύθυνσης

12 εντολές υπολογιστή στοίβας

-Οι εντολές πολλών διευθύνσεων οδηγούν σε μικρότερα προγράμματα

- Τα κυκλώματα όμως για την υλοποίηση τέτοιων εντολών είναι πολυπλοκότερα

top related