1 Multimedia Extensions Τριβυζάς Μάριος Χαραλάμπους Παναγιώτης

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προσομοίωση Απλού Μοντέλου Markov σε
Advertisements

Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
Τύποι δεδομένων και τελεστές,
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Υπολογιστής και Μουσική
Δομές Διακλάδωσης Μην ελπίζεις ότι θα ξεφύγεις αν κάνεις κάποιο κακό. Γιατί κι αν ξεφύγεις απ’ τη προσοχή των άλλων, θα υποπέσεις στην αντίληψη της συνείδησής.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Pipelining – Βασικές αρχές.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (1).
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Σχεδίαση μονάδας ελέγχου επεξεργαστή Αρχιτεκτονική Υπολογιστών 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκτάριος Κοζύρης
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Η Αρχιτεκτονική των Επεξεργαστών Ψ.Ε.Σ Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών.
ΕΝΟΤΗΤΑ 8Η ΜΝΗΜΕΣ ROM ΚΑΙ RΑΜ
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) Σχεδίαση datapath 4 κατηγορίες εντολών: Αριθμητικές-λογικές.
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Ασκήσεις Caches
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
Ενότητα Η Δομή Επανάληψης
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Pipelining –
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Τα θέματα μας σήμερα Ηλεκτρονικοί υπολογιστές Υλικό και λογισμικό
1 Ολυμπιάδα Πληροφορικής Μάθημα 2. 2 Στόχοι μαθήματος Αριθμητικοί– Λογικοί Τελεστές Η εντολή IF.
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 1 Εισαγωγή
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Οργάνωση και Αρχιτεκτονική Υπολογιστών Βασικές αρχές Αρχιτεκτονικής
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση και Αρχιτεκτονική.
ΓΕΝΙΚΕΣ ΟΔΗΓΙΕΣ ΔΙΔΑΣΚΑΛΙΑΣ & ΕΝΔΕΙΚΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΛΗΣ
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
1 Νέα Θεωρία Μεγέθυνσης Ενδογενής μεγέθυνση. 2 Συνάρτηση παραγωγής προϊόντος Υ t = Y(K, L, A) Y t = [(1-α k )·K t ] α · [(1-α L )·A t ·L t ] 1-α 0
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Συγγραφείς Α.Βακάλη Η. Γιαννόπουλος Ν. Ιωαννίδης Χ.Κοίλιας Κ. Μάλαμας Ι. Μανωλόπουλος Π. Πολίτης Γ΄ τάξη.
Επανάληψη.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Δομικά στοιχεία πολυμέσων
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Μικροεπεξεργαστές Λειτουργία - Εξέλιξη
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Συνολική αρχιτεκτονική του Επεξεργαστή TMS320C6713 και προγραμματισμός σε ASSEMBLY Τμήμα.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
Διαφάνειες παρουσίασης #2
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Δεύτερο.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Cortex-A Πλήρη λειτουργικά Yψηλή επίδοση Cortex-A Πλήρη λειτουργικά Yψηλή επίδοση Cortex-R Αυστηρές διορίες Διαχείριση λαθών Cortex-R Αυστηρές διορίες.
ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
ΕΙΣΑΓΩΓΗ μέρος 2 ΜΙΚΡΟΕΛΕΓΚΤΕΣ - ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Π. ΚΩΣΤΑΡΑΚΗΣ Β. ΧΡΙΣΤΟΦΙΛΑΚΗΣ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ.
ΤΕΧΝΙΚΑ ΘΕΜΑΤΑ ΠΩΛΗΣΕΩΝ & ΠΡΟΔΙΑΓΡΑΦΕΣ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Β΄ ΕΠΑΛ ΚεφΑλαιο 2: ΠροδιαγραφΕΣ ΥλικοΥ Η/Υ 2.7 Επεξεργαστές.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Εξέλιξη Υπολογιστικών Συστημάτων
Single-cyle υλοποίηση:
Τ.Ε.Ι. Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονική Υπολογιστών
Εισαγωγή στη VHDL 5/8/2018 Εισαγωγή στη VHDL.
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Δομή Επιλογής Μάθημα 4ο Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Τάξη Γ Οικονομίας & Πληροφορικής Θετικών Σπουδών 2ο Γενικό Λύκειο Αλιβερίου |
Single-cyle υλοποίηση:
ΕΙΣΑΓΩΓΗ K06 Σήματα και Γραμμικά Συστήματα Οκτώβρης 2005
Υλικό - Λογισμικό Υλικό (Hardware) Λογισμικό (Software)
Single-cyle υλοποίηση:
Single-cyle υλοποίηση:
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control) 4 κατηγορίες εντολών: Αριθμητικές-λογικές εντολές (add, sub, slt κλπ) –R Type.
Μεταγράφημα παρουσίασης:

1 Multimedia Extensions Τριβυζάς Μάριος Χαραλάμπους Παναγιώτης

2 Περιεχόμενα 1. Εισαγωγή/Αναγκαιότητα 2. MMX 3. SSE/SSE2 4. 3DNow! 5. Συγκρίσεις 6. Άλλες τεχνολογίες ME

3 Εισαγωγή Εφαρμογές Πολυμέσων :  Graphics  Video  Image Processing  Audio processing  Speech Recognition  Games  Music Synthesis  Video Conferencing Οι «απλές» αρχιτεκτονικές ISA δεν χρησιμοποιούν αποδοτικά τον επεξεργαστή στις εφαρμογές αυτές.

4 Εισαγωγή Οι εφαρμογές Πολυμέσων έχουν σε χαμηλό επίπεδο έχουν πολλά κοινά χαρακτηριστικά:  «Σταθεροί» υπολογισμοί σε πολλά δεδομένα  Χρήση μικρών ακέραιων αριθμών (π.χ. 8 bit pixels,16 bit audio samples)  Συχνή χρήση πολλαπλασιασμού και συσσώρευσης (multiply and accumulation)  Μικροί βρόγχοι – πολλές επαναλήψεις ίδιων εντολών  Συχνά και επαναλαμβανόμενα Memory access patterns  Υπολογιστικά ακριβοί αλγόριθμοι  Διαδικασίες που μπορούν να γίνουν και παράλληλα π.χ.for (i=0;i<numOfPixels;++i) out[i] = input_a[i] * input_b[i]

5 Εισαγωγή Υπολογιστικά Μοντέλα (κατά M. Flynn) :  SISD (Single Instruction Single Data)  SIMD (Single Instruction Multiple Data)  Μul. Exts.  MISD (Multiple Instruction Single Data)  MIMD (Multiple Instruction Multiple Data)

6 Εισαγωγή Ανάγκη για επεκτάσεις των ISA’ s ειδικά για εφαρμογές Πολυμέσων. Οι επεκτάσεις θα πρέπει :  Να είναι γενικές, να υλοποιούν δηλ. βασικά χαρακτηριστικά αλγορίθμων των πιο πάνω εφαρμογών και όχι ολόκληρους αλγόριθμους  Να είναι πλήρως συμβατές με τα υπάρχοντα Λειτουργικά Συστήματα (backward compatibility)  Να διατηρούν την τεχνολογία απλή, για εύκολη επεκτασιμότητα στο μέλλον

7 MMX Πρόγονος : i860 (Περιελάμβανε SIMD εντολές) Πρώτη ουσιαστική προσθήκη στο IS μετά την αρχιτεκτονική Intel386 Χαρακτηριστικά :  Τεχνολογία Απλή (scaling, μικρό Die) Γενική SIMD (Single Instruction Multiple Data).  Εισάγει 57 νέες εντολές  Χρησιμοποιεί 8x64 bit registers  Εισάγει 4 νέους τύπους δεδομένων Θεωρητικά : 8x παραλληλία. Πρακτικά : 1.5 – 4x παραλληλία

8 MMX Τύποι Δεδομένων :  Packed Byte : 8x1byte packed σε 64-bits  Packed Word : 4x16-bit words packed σε 64-bits  Packed Double Word : 2x32-bit double words packed σε 64-bits  Quadword : 64-bit αριθμός

9 MMX Registers :  Δεν δημιουργούνται νέοι registers (οι 8 MMX registers ταυτοποιούνται με τους 8 υπάρχοντες floating point registers).  Με αυτό τον τρόπο υπάρχει πλήρης συμβατότητα με υπάρχοντα Λειτουργικά Συστήματα  Σε κάθε εκτέλεση MMX εντολής : όλα τα floating point tag bits  0 Top of stack  0 fp exponential part bits  1  Δεν μπορεί να γίνει interleave MMX και floating point εντολών.

10 MMX – Intel Pentium 4

11 MMX – AMD Athlon

12 MMX – Instruction Set Εντολές :  Αριθμητικές  Συγκρίσεων  Λογικές  Ολίσθησης  Μεταφοράς Δεδομένων  Διαχείρισης Κατάστασης

13 MMX – Instruction Set Μορφή Εντολών :  Prefix : P για Packed  Infix : Λειτουργία Εντολής π.χ. ADD  Suffix : U/S : Unsigned/Signed US, SS : Unsigned/Signed Saturation B,W,D,Q : Οι 4 νέοι τύποι των MMX εντολών.  π.χ. PADDSD : Packed Add With Saturation On Double Word Σύνταξη :  INSTRUCTION mmreg1, mmreg2/mem64 mmreg1 = mmreg1 INSTRUCTION mmreg2/mem64  Εξαίρεση : EMMS, MOVD/MOVQ, SHIFT εντολές  MOVD mmreg1, mreg32/mem32‘ mreg32 = integer  MOVD mreg32/mem32, mmreg1  MOVQ mem64, mmreg1  PSRLW mmreg1, imm8

14 MMX – Αριθμητικές Εντολές Αριθμητική :  Wrap-around Overflow : κάνε wrap στο 0 Underflow : κάνε wrap στο ΜΑΧΙΝΤ  Saturation Overflow : μείνε στο MAXINT Underflow : μείνε στο MININT π.χ. Color wraparound Δεν υπάρχει state για τον έλεγχο αν έγινε saturate (backward compatibility)  Ο έλεγχος μπορεί να γίνει με έλεγχο της τιμής που παίρνουμε και της ΜΙΝΙΝΤ και ΜΑΧΙΝΤ τιμής  Πιθανόν έχουμε saturation

15 MMX – Αριθμητικές Εντολές Πρόσθεση  PADDB, PADDW, PADDD  PADDSB, PADDSW  PADDUSB, PADDUSW

16 MMX – Αριθμητικές Εντολές Αφαίρεση  PSUBB, PSUBW, PSUBD  PSUBSB, PSUBSW  PSUBUSB, PSUBUSW

17 MMX – Αριθμητικές Εντολές Πολλαπλασιασμός  PMULHW (Packed Multiply High)  PMULLW (Packed Multiply Low)

18 MMX – Αριθμητικές Εντολές Πολλαπλασιασμός και Πρόσθεση  PMADDWD (Packed Multiply and Add) Πολλαπλασιασμός αντίστοιχων λέξεων. Άθροισμα 2 higher ordered words στο high doubleword Άθροισμα 2 lower ordered words στο lower doubleword

19 MMX – Εντολές Συγκρίσεων Ισότητα  PCMPEQB, PCMPEQW, PCMPEQD Αν τα αντίστοιχα δεδομένα είναι ίσα τότε τα αντίστοιχα δεδομένα στον καταχωρητή προορισμού τίθενται όλα σε 1, αλλιώς όλα σε 0.

20 MMX – Εντολές Συγκρίσεων Μεγαλύτερο ίσο  PCMPGTB, PCMPGTW, PCMPGTD Αν η ανισότητα ισχύει τότε τα αντίστοιχα δεδομένα στον καταχωρητή προορισμού τίθενται όλα σε 1, αλλιώς όλα σε 0.

21 MMX – Εντολές Μετατροπής Pack Εντολές  PACKSSWB, PACKSSDW (Pack With Signed Saturation)  PACKUSWB (Pack With Unsigned Saturation) Pack και Saturate τα δεδομένα σε μικρότερου τύπου.

22 MMX – Εντολές Μετατροπής π.χ. PACKSSDW mmreg1, mmreg2/mem64

23 MMX – Εντολές Μετατροπής Unpack Εντολές (High)  PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ (Unpack High Packed Data) Unpack και Interleave τα high order δεδομένα των registers. π.χ. Zero extension του destination operand.

24 MMX – Εντολές Μετατροπής Unpack Εντολές (Low)  PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ (Unpack Low Packed Data) Unpack και Interleave τα low order δεδομένα των registers.

25 MMX – Λογικές Εντολές Bitwise Logical  AND (PAND)  AND NOT (PANDN)  OR (POR)  Exclusive OR (PXOR)

26 ΜΜΧ – Εντολές Ολίσθησης Packed Shift Right/Left Logical:  PSRLW  PSRLD  PSRLQ

27 ΜΜΧ – Εντολές Ολίσθησης Packed Shift Right Arithmetic:  PSRAW  PSRAD

28 MMX – Μεταφορά Δεδομένων Μεταφορά 32bits από source to destination:  MOVD

29 MMX – Μεταφορά Δεδομένων Μεταφορά 64bits από source to destination:  MOVQ

30 ΜΜΧ – Διαχείριση Κατάστασης Η εντολή EMMS  Χρησιμοποιείται για να «καθαρίσουμε» την κατάσταση λειτουργίας MMX  Εκτελείται κάθε φορά που είμαστε σε κατάσταση λειτουργίας MMX και θέλουμε να αλλάξουμε κατάσταση για να εκτελέσουμε floating point εντολές.  Αν δεν εκτελεστεί προκύπτουν προβλήματα κατά την εκτέλεση fp εντολών όπως stack overflow κτλ.

31 MMX – Παραδείγματα Εύρεση απόλυτης διαφοράς διανυσμάτων a, b, c: διανύσματα if (a > b) then c = a – b  c = (a – b) OR (b – a) else c = b – a a  MM0,b  MM1 MOVQ MM2, MM0 ‘κάνουμε ένα αντίγραφο του MM0 PSUBUSB MM0, MM1 ‘υπολογίζουμε το a-b PSUBUSB MM1, MM2 ‘υπολογίζουμε το b-a POR MM0, MM1 ‘εφαρμόζουμε μεταξύ τους OR O MM0 περιέχει το αποτέλεσμα που επιθυμούμε για το c.

32 MMX – Παραδείγματα Πολλαπλασιασμός μιγαδικών z1 = Re1 + Im1*i,z2 = Re2 + Im2*i z1*z2 = (Re1*Re2 – Im1*Im2) + (Re1*Im2 + Re2*Im1)*i Re1, Re2, Im1, Im2 : 16bit  o z2 θεωρείται σταθερός και τον αποθηκεύουμε με τη μορφή: [Re2 –Im2 Im2 Re2 ] στον ΜΜ1  ο z1 βρίσκεται στο Low DW του ΜΜ0 [ Re1 Im1] PUNPCKLDQ MM0, MM0 ‘μετατρέπουμε τον z1 στη μορφή [Re1 Im1 Re1 Im1] PMADDWD MM0, MM1 ‘εκτελούμε τον πολλ/σμό των μιγαδικών O MM0 περιέχει το z1*z2

33 MMX – Παραδείγματα Εκτέλεση κάτω από συνθήκη If True then Ra := Rb  Ra = (Rb AND Rx) OR (Rc ANDNOT Rx) else Ra := Rc Ο Rx περιέχει άσους αν η συνθήκη είναι αληθής και μηδενικά αν η συνθήκη είναι ψευδής. Πιο γρήγορη εκτέλεση διότι:  Οι εντολές branch εισάγουν καθυστέρηση (λανθασμένη πρόβλεψη)  Πρέπει να κάνουμε μετατροπή από packed σε scalar τύπο δεδομένων

34 MMX – Παραδείγματα Επικάλυψη εικόνων (Chroma Keying σε Image Overlay) PCMPΕQ PANDN PAND POR

35 MMX – Παραδείγματα Εσωτερικό γινόμενο διανυσμάτων  2 MOVQ  2 PMADDWD  Πολύ πιο γρήγορα απ’ ‘οτι χωρίς MMX  2 PADD

36 Νέες Ανάγκες – SSE Εφαρμογές  3D εφαρμογές που χρειάζονται: Γεωμετρικούς μετασχηματισμούς Εξομοίωση φυσικών μοντέλων Φωτισμό  Streaming εφαρμογές  Audio processing Speech recognition Wavetable synthesis  Video MPEG processing Όλα τα παραπάνω απαιτούν FP υπολογισμούς Το ΜΜΧ δεν μπορεί να ανταπεξέλθει στις νέες ανάγκες  SSE

37 Streaming SIMD Extensions – SSE Θέματα υλοποίησης  Απαίτηση για υπολογισμούς σε τουλάχιστον 4x32bit δεδομένα fp παράλληλα  2 επιλογές υλοποίησης Διπλασιασμός του clock rate σε 64bit hardware Χρήση hardware 128bit ή παραπάνω (πχ. 256bits)  Ο πρώτος τρόπος οδηγεί σε αυξημένη πολυπλοκότητα  Επομένως χρησιμοποιήθηκε η δεύτερη επιλογή με προσθήκη 128bit hardware  Hardware >128bit έχει πολύ χαμηλή απόδοση/κόστος

38 SSE – Χαρακτηριστικά Προσφέρει σημαντική επιτάχυνση streaming και multimedia εφαρμογών που απαιτούν FP υπολογισμούς Δεν είναι συμβατό προς τα πίσω  Οι προγραμματιστές αναλαμβάνουν να ελέγξουν αν υποστηρίζεται SSE από τον επεξεργαστή, ώστε να εκτελεστεί ο αντίστοιχος κώδικας.

39 SSE – Intel 12 integer εντολές που επεκτείνουν την ΜΜΧ τεχνολογία 8 νέοι floating point καταχωρητές των 128bit (XMM0-7) (δε χρειαζόμαστε reset state εντολή) 1 καταχωρητής ελέγχου κατάστασης MXCSR 50 νέες εντολές για packed fp υπολογισμούς 8 νέες εντολές “ελέγχου” της cache μνήμης, streaming εντολές και prefetch

40 SSE – Integer Εντολές Μέσος όρος  PAVGB  PAVGW Υπολογισμός μέγιστου, ελάχιστου  PMAXSW(PMINSW)  PMAXUB (PMINUB) Πολλαπλασιασμός και αποκοπή των low-order bytes  PMULHUW Άθροισμα απόλυτων διαφορών  PSADBW

41 SSE – FP Εντολές Packed Scalar

42 SSE – FP Εντολές Μετακίνηση δεδομένων  MOV4x32bits, 64bits (Low ή High), 128bits Αριθμητικές  ADDPS SUBPS ADDSS SUBSS  MULPS DIVPS  MULSS DIVSS  MAXPS MINPS MAXSS MINSS  SQRTPS SQRTSS Λογικές  AND, ANDN, OR, XOR Packed και Scalar Σύγκρισης  GEQUAL GREAT  LEQUAL LESS EQUAL Διαχείρισης κατάστασης  LDMXCSR FXRSTOR  STMXCSR FXSAVE

43 SSE – Εντολές διαχείρισης μνήμης Streaming stores στη μνήμη Prefetch δεδομένων από τη μνήμη Διαχείριση δεδομένων στην cache

44 SSE2 – Επιστημονικοί υπολογισμοί Νέες εφαρμογές απαιτούν μεγαλύτερη ακρίβεια σε fp υπολογισμούς  MPEG-layer3  MPEG-2 (DVD video)  JPEG Επέκταση του SSE  SSE2 ώστε να γίνονται πράξεις σε 2x64bits fp παράλληλα

45 AMD – 3dNow! Οι επεξεργαστές της AMD ενσωμάτωσαν αρχικά MMX τεχνολογία Ωστόσο οι AMD CPUs υστερούσαν σε σχέση με τον ανταγωνισμό (Intel) όσον αφορά fp υπολογισμούς Γι’ αυτό  3dNow!  12 νέες integer εντολές (επεκτάσεις του MMX)  64bit registers(2x32bit float αριθμοί)  Floating point εντολές  21 εντολές για 3D graphics  7 εντολές μετακίνησης δεδομένων  5 DSP εντολές (ADSL, MP3, Dolby Digital, MPEG-2 κτλ.)

46 Επιτάχυνση με MMX

47 ME – Άλλες τεχνολογίες Sun UltraSPARC (VIS)  Αξιοποίηση του 64bit hardware των SPARC  Λειτουργικές μονάδες: Floating point divide/square root Floating point addition/subtraction/ absolute value/ negative/ multiplication Graphics addition, multiply PowerPC Altivec  128 bit hardware 32 νέοι registers 128bit Πάνω από 160 εντολές  Υπολογισμοί παράλληλα σε : 16x8, 8x16, 4x32 bit integer 4x32, 2x64 bit floating point

48 Συγκριτικά

49 Βιβλιογραφία WEB:     Manuals:  AMD Athlon™ Processor - x86 Code Optimization Guide  IA – 32 Intel Architecture Software Developer’s Manual – Volumes 1-3  AMD-K6 Processor Multimedia Extensions (MMX)

50 Βιβλιογραφία Papers:  AMD Athlon™ Processor Architecture – White Paper  The Internet Streaming SIMD Extensions - Shreekant (Ticky) Thakkar, Microprocessor Products Group, Intel Corp. Tom Huff, Microprocessor Products Group, Intel Corp.  MMX™ Technology Architecture - OverviewMillind Mittal, MAP Group, Santa Clara, Intel Corp.Alex Peleg, IDC Architecture Group, Israel, Intel Corp.Uri Weiser, IDC Architecture Group, Israel, Intel Corp.