Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1
Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές που υπάρχουν για το σχεδιασµό συνόλου εντολών Ποσοτικά υπέρ και κατά κάθε επιλογής Σύνολο εντολών για DSP αρχιτεκτονικές Επιρροή της γλώσσας προγραµµατισµού και compiler στο σύνολο εντολών Παραδείγµατα αρχιτεκτονικών (MIPS, TM32) Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 2
Κατηγοριοποίηση συνόλου Εντολών (1) Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 3
Κατηγοριοποίηση συνόλου Εντολών (2) Κατηγορίες Υπολογιστών Memory-Memory (Έχει καταργηθεί) Register-Memory Register-Register (ή Load-store) Γιατί General-Purpose Resister Processors Register ταχύτεροι από κύρια µνήµη Πιο αποδοτικοί για έναν compiler (Pipeline) π.χ.: (A*B)-(B*C)-(A*D) Χρειάζονται λιγότερα bits για operand Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 4
Κατηγοριοποίηση συνόλου Εντολών (3) Ερώτηση: Πόσοι registers αρκούν; Απάντηση:Ανάλογα µε τη χρήση τους από τον compiler. Τρόποι κατηγοριοποίησης των GPR Processors 2 ή 3 operands ανά εντολή Πόσα από τα operands µπορούν να είναι διευθύνσεις µνήµης στην εντολή. Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 5
Κατηγοριοποίηση συνόλου Εντολών (4) Πλεονεκτήµατα Μειονεκτήµατα Είδους Εντολών Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 6
Memory Addressing (1) Little Endian 7 6 5 4 3 2 1 0 Big Endian 0 1 2 3 4 5 6 0 Aligned and Misaligned Addresses (An access to an object of size s bytes at byte address A is aligned if A mod s = 0) Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 7
Memory Addressing (2) Είδη ιευθυνσιοδότησης Πως υπολογίζεται η διεύθυνση της µνήµης Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 8
Memory Addressing (3) Χρήση των διαφόρων addressing modes εν υπολογίζονται τα addressing modes που σχετίζονται µε τον PC (π.χ. branching) Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 9
Displacement Addressing Mode Το µέγεθος του displacement field επηρεάζει άµεσα το µήκος της εντολής Branch αργότερα Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 10
Immediate or Literal Addressing Mode Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 11
Distribution of Immediate Values 20%- 25% των immediates > 16 bits Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 12
Τρόποι διευθυνσιοδότησης για DSP Modulo ή circular addressing mode (start-end register) (περίπτωση συνεχούς ροής δεδοµένων που χρησιµοποιούν circular buffers) Bit reverse addressing mode (100 001) (for Fast Fourier Transform FFT) Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 13
Είδος και Μέγεθος των operands Encoding in the opcode Taged (πολύ σπάνια) DSP: Fixed- point arithmetic => wider accumulating registers Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 14
Κατηγορίες εντολών Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 15
Απλές εντολές που κυριαρχούν Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 16
Εντολές Επεξεργασίας Πολυµέσων (1) Single Instruction Multiple Data (SIMD) Instructions Εντολές οι οποίες µπορούν να ενεργήσουν σε πολλά µικρά data items ταυτόχρονα. Paired single operations Με µια εντολή εκτελούµε ταυτόχρονα δύο Floating Point 32-bit πράξεις. Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 17
Εντολές Επεξεργασίας Πολυµέσων (2) MAC εντολές (multiply-accumulate) Βασική πράξη στα DSPs. Χρησιµοποιείται στον υπολογισµό του εσωτερικού γινοµένου. Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 18
Εντολές Ελέγχου Ροής (1) ιακρίνονται σε: Conditional Branches, Jumps, Procedure Calls/Returns Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 19
Εντολές Ελέγχου Ροής (2) PC-relative addressing (συχνά) Πρόσθεση στον PC για τον καθορισµό του προορισµού. Οι αποστάσεις των αλµάτων µπορούν να κωδικοποιηθούν µε λίγα bits (<8) Register-Indirect addressing (σπάνια) Η διεύθυνση προορισµού, περιέχεται σε κάποιον register. Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 20
Κωδικοποίηση του Instruction Set Κύριοι στόχοι του σχεδιαστή: 1. Πολλοί καταχωρητές, πολλοί τρόποι διευθυνσιοδότησης. 2. Μικρό µέσο µέγεθος εντολής 3. Απλότητα κωδικοποίησης Εύκολη διαχείριση από pipelined αρχιτεκτονικές. Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 21
Ο ρόλος των Μεταγλωττιστών (1) Οσκελετός των µεταγλωττιστών Στόχοι: Ορθότητα Ταχύτητα του µεταγλωττισµένου κώδικα Γρήγορη µεταγλώττιση, debug support, κλπ Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 22
Ο ρόλος των Μεταγλωττιστών (2) Εφαρµόζοντας κατάλληλα optimizations στην µεταγλώττιση, αυξάνεται κατακόρυφα η απόδοση: Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 23
Ο ρόλος των Μεταγλωττιστών (3) Κατηγοριοποίηση των optimizations: Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 24
Πως µπορεί ο αρχιτέκτονας Η/Υ να βοηθήσει τον προγραµµατιστή µεταφραστών Make frequent cases fast and rare cases correct! Instruction Set Properties: Regularity Primitives, not solutions Simplify trade-offs among alternatives Provide instructions that bind the quantities known at compile time as constants Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 25
1o Παράδειγµα: Η Αρχιτεκτονική MIPS Load-store αρχιτεκτονική Καταχωρητές: 32 64-bit GPRs R0 R31, 32 32-bit or 64-bit FPRs F0 F31. Τύποι εδοµένων: 8-bit bytes, 16-bit half words, 32- bit words and 64-bit double words για integer data. 32- bit single precision and 64-bit double precision για floating point Τρόποι ιευθυνσιοδότησης: Immediate και displacement µε 16-bit πεδία. ιαθέτει bit κατάστασης για λειτουργία σε Big Endian ή Little Endian. Λειτουργίες: 4 βασικές κλάσεις εντολών. Load & Store, πράξεις ALU, εντολές διακλάδωσης, πράξεις κινητής υποδιαστολής Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 26
Η Αρχιτεκτονική MIPS: Instruction Layout Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 27
Η Αρχιτεκτονική MIPS: Instruction Set Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 28
Η Αρχιτεκτονική MIPS: SPECint2000 Συχνότητα Εντολών για 5 προγράµµατα SPECint92 Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 29
Η Αρχιτεκτονική MIPS: SPECfp2000 Συχνότητα Εντολών για 5 προγράµµατα SPECfp92 Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 30
2ο Παράδειγµα: Trimedia TM32 CPU Media processor (Dedicated to multimedia processing) Χρήση: Set Top Boxes ή Advanced Televisions Περισσότεροι καταχωρητές Partitioned ALU ή SIMD instructions Συµπλήρωµα ως προς 2 και αναπαραστάσεις που υποστηρίζουν οι DSP επεξεργαστές VLIW τεχνική (µέχρι 5 ανεξάρτητες εντολές) Οι εντολές του ΤΜ32 φαίνονται στον παρακάτω πίνακα: Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 31
Trimedia TM32: SIMD hand-optimized Συχνότητα Εντολών για EEMBC Benchmarks Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 32
Συµπεράσµατα Instruction Set Βασική Περιγραφή της αρχιτεκτονικής µιας CPU H τεχνολογία των µεταγλωττιστών επηρεάζει σηµαντικά την αρχιτεκτονική Η/Υ Ιστορικά: 1960: Stack αρχιτεκτονικές (good match για high-level languages για τους τότε compilers) 1970: High Level Language αρχιτεκτονικές (Μείωση του κόστους του S/W) 1990: Καλύτερη τεχνολογία compilers. RISC (loadstore). (διπλάσιο µέγεθος διευθύνσεων, βελτιστοποίηση των συνθηκών υπό συνθήκη µε conditional execution, βελτιστοποίηση της cache µε prefetch, υποστήριξη πολυµέσων, ταχύτερες πράξεις κιν. υποδιαστολής) Μελλοντικές Τάσεις Long Instruction Words Συνδυασµός αρχιτεκτονικών γενικού σκοπού- DSP 80x86 emulation Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 33