110 likes | 236 Views
Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης. Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο Τεχνολογίες Επεξεργαστών Μέρος: Δεύτερο Καθηγητής: Α. Βαφειάδης 200 8. Κατηγορίες Επεξεργαστών. Επεξεργαστές CISC Επεξεργαστές RISC
E N D
Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο Τεχνολογίες Επεξεργαστών Μέρος: Δεύτερο Καθηγητής: Α. Βαφειάδης 2008
Κατηγορίες Επεξεργαστών • Επεξεργαστές CISC • Επεξεργαστές RISC • Επεξεργαστές τύπου Superscalar • Επεξεργαστές VLIW • Επεξεργαστές τύπου Vector
Superscalar Οι επεξεργαστές superscalar έχουν τη δυνατότητα εκτέλεσης (πολλών εντολών ?) μέσα σε ένα κύκλο. Διαθέτουν: • Μονάδα απόκτησης εντολών η οποία έχει τη δυνατότητα απόκτησης πολλών εντολών ταυτόχρονα • Μονάδα αποκωδικοποίησης εντολών η οποία έχει τη δυνατότητα ανίχνευσης ανεξαρτήτων μεταξύ τους εντολές • Πολλαπλές μονάδες εκτέλεσης οι οποίες έχουν τη δυνατότητα να εκτελούν παράλληλα εντολές όταν αυτό είναι δυνατόν Στις μονάδες εκτέλεσης εφαρμόζεται και η τεχνική pipeline
Pipeline-Superscalar Ερώτημα 1: Τι σημαίνει πολλών εντολώνσε ένα κύκλο Ερώτημα 2: Ποια η διαφορά ενός superscalar από ένα διπύρηνο scalar
Τμήμα επεξεργαστή VLIW Τράπεζα Καταχωρητών Τράπεζα Καταχωρητών Τράπεζα Καταχωρητών FPU (Fadd/ Fmul) ALU 1 ALU 2 FMUL f3, f4, f13 SUB r3, r24, r11 ADD r1, r7, r5 Long Instruction Word
Παραλληλισμός σε επίπεδο εντολών E1: add r2 = r4,r5 E2: store [addr1] = r2 E3: fmul f5 = f2,f7 E4: fmul f2 = f2,f8 E5: add r4 = r12,r17 E6: add r5 = r12,r20 E7: add r7 = r4,r5 E8: store[addr2] = r7 fmul f5 = f2,f7 add r2 = r4,r5 add r5 = r12,r20 fmul f2 = f2,f8 add r4 = r12,r17 store [addr1] = r2 add r7 = r4,r5 store [addr2] = r7 Κύκλος 1 Κύκλος 2 Κύκλος 3 r2, r4, r5, r6, r12, r17, r20 Integer registers f2, f5, f7, f8 Floating point registers
Επεξεργαστής τύπου Vector for (i=0; i<64; i++) { x[i] = x[i] + y[i] }
Automatic Code Vectorization Vectorized Code Scalar Sequential Code Iter. 1 Iter. 2 load load Iter. 1 load load Time add add store store load load Vector Instruction Iter. 2 load load add add store store for (i=0; i < N; i++) C[i] = A[i] + B[i];