Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Intel’s P6 Processor Family Architecture

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Intel’s P6 Processor Family Architecture"— Μεταγράφημα παρουσίασης:

1 Intel’s P6 Processor Family Architecture
Κακαλέτρης Γεώργιος ΑΜ 438 Μεταπτυχιακό Πληροφορικής 3η Κατεύθυνση Προηγμένες Αρχιτεκτονικές Υπολογιστών Χειμερινό Εξάμινο 2001

2 Οικογένειες Επεξεργαστών Intel IA-32
P5 Pentium Pentium MMX P6 Pentium Pro Pentium II Celeron Pentium III Netburst Xeon Pentium IV

3 Τα μέλη της Οικογένειας P6
Pentium PRO MHz 66MHz bus 0.5μ 256, 512 & 1ΜΒ L2 cache 8+8KB L1 cache Pentium II Η «καταναλωτική» έκδοση του PPRO Εξωτερικό L2 Cache 512KB – Slot 1 vs Socket MHz(Klamath)-450MHz (Deschutes) 66-100MHz bus 0.25μ Ταχύτερος 16bit code +16KB L1 cache Celeron Οικονομική εκδοση του PII 66-100MHz bus L2 Cache 266MHz – 1.2GHz 0.25μ μ SIMD 32KB L1 Cache Pentium III 450–550MHz(Katmai)–1.33GHz (Coppermine) 133MHz bus 0.25μ – 0.18μ-013μ SIMD επεκτάσεις 256KB on chip cache Single Edge Contact Cartridge v2

4 Ανταγωνισμός (κατά την εμφάνιση της γενιάς P6)
CPUs AMD’s K5 NexGen’s Nx586 Cyrix’s M1 Πλεονεκτήματα Βαθύτερο pipelining Chip τεχνολογίας 0.5μ αρχικά και 0.35μ 133MHz CPU Clock On chip L2 cache 256KB Στοιχεία που εμφανίζονται από ανταγωνιστές Micro-ops Dynamic Execution (out of order) Branch Prediction

5 P6 Συνοπτικά

6 Η διαφορά της αρχιτεκτονικής P6
Συμφόρεση Διαύλου / Μνήμης Επιτυγχάνει βελτίωση της απόδοσης με υπάρχουσες φθηνές τεχνολογίες μνήμης. Ελαχιστοποίηση της κίνησης στο bus του συστήματος. Ο P6 χρησιμοποιεί λιγότερο του 25% του bandwidth αυτού => Περισσότερες CPUs ή/και IO. Συμφόρεση Σειριακής Εκτέλεσης Εντολών Dynamic Execution : Out Of Order, Data flow Analysis, Branch Prediction, Speculative Execution. Deeper Pipelining Βελτίωση Κατασκευής Βαθμός Σμίκρυνσης. Αύξηση συγχνότητας λειτουργίας αρχικά εξωτερικά και έπειτα καί εσωτερικά .

7 Level 3 Super scalar engine.
Μικραίνει το μέγεθος της κάθε φάσης του pipeline και αυξάνει ο αριθμός των φάσεων 3 «Λογικές» μονάδες εκτέλεσης: Fetch/Decode “Unit” Γεμίζει το Instruction pool με εντολές με βάση τον instruction pointer. Σε περίπτωση branch προσπαθεί να προβλέψει στόχο. Dispatch/execute “Unit” Από το instruction pool εκτελεί όποια εντολή έχει διαθέσιμους τους τελεστές της. Dataflow analysis για να εντοπιστεί η σειρά με την οποία θα εκτελεστεί ταχύτερα το πρόγραμμα Τα αποτελέσματα δεν οριστικοποιούνται (speculative execution) Retirement “Unit” Εξετάζει το Instruction Pool για εντολές οι οποίες πρέπει να οριστικοποιηθούν και στέλνει τις αλλαγές στη μνήμη. Επιδόσεις: Fetch/Decode : μέχρι 3 εντολές ανά κύκλο Dispatch/execute : μέχρι 5 εντολές ανά κύκλο (3 τυπικά) Retirement: μέχρι 3 εντολές ανά κύκλο

8 Non Blocking Caches Dual Ported Caches L1 Performance
Μία LOAD και μία STORE ταυτόχρονα σε κάθε κύκλο. Non-Blocking - 4 Stage Pipelined L2 Cache Η αποτυχία εύρεσης μίας καταχώρησης δεν προκαλεί παύση λειτουργίας της CPU. 4 αιτήσεις εξυπηρετούνται και επιπλέον 12 μπορούν να βρίσκονται σε αναμονή. Transaction Bus Υποστήριξη «δοσοληψιών». 4 αιτήσεις μπορούν να εκκρεμούν για έναν p6 ενώ 8 για το σύνολο του διαύλου. Δε χάνονται κύκλοι σε αναμονές. Out Of Order Bus Το πρωτόκολλο διαχείρισης του διαύλου με μηχανισμούς Retry & Defer, σε ένα MP περιβάλλον αποκρίνεται εκτός σειράς (Out Of Order). 64GB Cacheable memory

9 MP Ready Επικοινωνία με L2 Cache σε ιδιωτικό δίαυλο MESI
Απελευθέρωση Διαύλου – Απλούστερο Hardware υποστήριξης MESI Snooping memory Για την εγκυρότητα της κατάστασης του cache. 4 CPUs για πλήρη εκμετάλλευση διαύλου Ενσωμάτωση APIC Απλούστερο Hardware υποστήριξης

10 P6 : Διάφορα Dual Independent Bus Architecture (DIB)
Δίαυλος εσωτερικής λειτουργίας ανεξάρτητος αυτού της επικοινωνίας με το σύστημα, οι οποίοι λειτουργούν σε εντελώς διαφορετικές συχνότητες. L1 Code Cache 4 way set associative, οργανωμένο σε γραμμές των 32 bytes, παρακολουθεί τις αιτήσεις Next_IP L1 Data Cache 2 way set associative οργανωμένο σε γραμμές των 32 bytes, παρακολουθεί τις γεννήτριες διευθύνσεων των μονάδων εκτέλεσης εντολών. Registers 40 φυσικοί καταχωρητές των 64 bits για χρήση σε renaming. 8 data registers λογικοί, ορατοί στον προγραμματιστή. 8 FP Registers και 8 MMX Registers οι οποίοι ταυτίζονται με τους FP bit segment registers και ένας flag register. Performance Counters Εσωτερικοί καταχωρητές που τηρούν στατιστικά στοιχεία.

11 P6 Functional Units Diagram
Key points In order Section Instruction Cache Instruction Fetch / Decode Units Data Cache Out of Order Section Execution Engine Micro-ops (load / store) Reservation Stations

12 Pipeline Stages Ελεγχος branch, αλλαγή Next ID Commit Εκτέλεση Εντολής
Αντληση περιστροφή & σημείωση 16 bytes Σημείωση και αποστολή σε Instruction Pool Ενημέρωση IP Αποκωδικοποίηση Μετονομασία καταχωρητών Απόφαση και άνλτηση από IP εντολής προς εκτέλεση

13 Instruction Fetching Instruction Prefetcher
Next IP: Δηλώνει την επόμενη θέση μνήμης από την οποία ζητείται εντολή. Instruction Cache : Απαντά με 16 στοιχισμένα bytes στην αίτηση του Next IP 3 instruction Decoders παραλαμβάνουν τα 16 bytes αφού περιστραφούν και σημειωθούν οι εντολές (start/end) 128bit bus

14 Instruction Decoders Decorders
Ενας general decoder : μία macro op ανά κύκλο. Δύο simple decoders : μία micro op ανά κύκλο. Αν συναντήσουν macro op => stall για ένα κύκλο και μεταφορά της στον general Micro ops & Macro ops Simple instructions of the register-register form are only one micro-op. Load instructions are only one micro-op. Store instructions have two micro-ops. Simple read-modify instructions are two micro-ops. Simple instructions of the register-memory form have two to three micro-ops. Simple read-modify write instructions are four micro-ops. Complex instructions generally have more than four micro-ops, therefore they take multiple cycles to decode.

15 Instruction Decoding (μ-ops)
Ο Decoder μεταφράζει κάθε IA32 εντολή σε ένα τριαδικό μ-op 2-logical sources, 1 logical destination Συνήθως: 1 IA32 instruction -> 1 μ-op Πιο σπάνια: 1 IA32 instruction -> 4 μ-op Πολύ σπάνια : Microcode Instruction Sequencer. Microcode: μια σειρά από προεγγραμένες ακολουθίες απλών μ-ops.

16 Instruction Decoding (RAT)
Οι μ-ops αποστέλονται στον RAT (Register Alias Table) «εν σειρά» Υλοποιείται register renaming: Λογικοί καταχωρητές IA32 σε φυσικούς P6 Οι εντολές μ-ops περιστοιχίζονται με bits κατάστασης (allocator stage) Το αποτέλεσμα προωθείται στο χώρο αναμονής εντολών (instruction pool) Instruction pool : ReOrder Buffer (ROB) υλοποιείται σαν content addressable memory των 40 εγγραφών

17 Instruction Dispatch/Execution
Επιλέγονται εντολές από το Instruction Pool με βάση το status τους. Ελέγχεται αν είναι διαθέσιμοι οι τελεστές Ελέγχεται αν είναι διαθέσιμη η απαιτούμενη μονάδα εκτέλεσης. Ο RS απομακρύνει την εντολή από το ROB και την προωθεί στη μονάδα. Δεν έχει σημασία η σειρά στο ROB. 5 ported RS (όπως στο σχήμα) max 5 μ-ops per cycle, 3 sustained Data flow analysis (ψευδο FIFO)

18 Instruction Dispatch/Execution (Branches)
Κάποιες από τις μ-ops είναι branches. Σημειώνονται (tagged) καθώς εισάγονται εντός σειράς με τη διεύθυνση μεταπήδησης και τη διεύθυνση απόρριψης. Οταν το branch πραγματικά εκτελεστεί συγκρίνονται τα στοιχεία με εκείνα που υποτέθηκαν. Σε επιτυχία το branch επικυρώνεται (retirement) καθώς και όλες οι εντολές μεταξύ αυτού και του επόμενου branch (speculative execution). Το BTB προβλέπει τις περισσότερες αλλά όχι όλες. Περιέχει 512 εγγραφές προηγούμενων branches και στόχων. Σε αποτυχία η Jump Execution Unit (JEU) απομακρύνει όλες τις εντολές από το ROB και το pipeline συνεχίζει από τη νέα σωστή διεύθυνση. «Κόστος» Not taken – on hit: Καμία επίπτωση Taken – on hit : καθυστέρηση ενός κύκλου (πάυση fetch και issue) Mis-predicted : ελάχιστο κόστος 9 κύκλων (το μήκος του in order issue pipeline, ένα άκυρο IF και το χρόνο της επικύρωσης του σωστού branch). Τυπικά 10, μέγιστο 26 κύκλοι. Static predictions, conditional και unconditional – on-hit: 5-6 κύκλοι.

19 Branch Prediction (Dynamic)
4 branch predictions/γραμμή 128bits. 2 level adaptive(Yeh method). 4 bits πληροφορίας ανά branch. Προβλέπει ακολουθίες branches. Return Stack Buffer (RET instructions) Ελεγχος BTB για προηγούμενη εκτέλεση του branch. Αν δεν υπάρχει BTB entry γίνεται static prediction => ενημέρωση BTB. Προσθήκη εντολής CMOV.

20 Branch Prediction (Static)

21 Retire Unit Εξετάζει την κατάσταση των μ-ops στο ROB.
Πρέπει να φροντίσει για την ορθή τήρηση της σειράς τους σαν IA32 instructions και μάλιστα εν μεταξύ interrupts, traps, faults, breakpoints και mis-predictions. Καθώς αποφασίζει τις επόμενες εντολές προς επικύρωση, αυτές τις προωθεί, “in-order” στον Retirement Register file.

22 Bus Interface Unit Δύο τύποι εντολών: loads (1 μ-op, address, width, register) και stores (2 μ-ops, μία γεννά τη διεύθυνση και μία τα δεδομένα) Ποτέ τα stores δεν εκτελούνται speculatively γιατί δεν υπάρχει δυνατότητα undo. Ποτέ τα stores δεν ανασυντάσσονται μεταξύ τους. Ενα store εκτελείται μόνο όταν και τα δύο μ-ops του είναι έτοιμα και δεν εκκρεμούν προηγούμενα stores Το MOB είναι κάτι σαν RS και reorder buffer για loads και stores, το οποίο επιτρέπει loads να περνούν loads και stores και τα επανεκκινεί όταν ενδεχόμενες συνθήκες μπλοκαρίσματος αίρονται (dependency of resources)

23 Στοιχεία Εκτέλεσης Ενα load και ένα store στην ίδια διεύθυνση μπορούν να εκτελεστούν στον ίδιο κύκλο. Η καθυστέρηση των stores δεν έχει μεγάλη σημασία στην απόδοση (3-5% κατά την Intel). Register Renaming: Κάθε read ενός λογικού register αναφέρεται στον ίδιο φυσικό. Κάθε επόμενο write αναφέρεται σε νέο φυσικό register. Δεν είναι δυνατόν να εκτελεστεί μία FMUL σε κύκλο αμέσως επόμενο της προηγούμενής της. FPU stages όπως P5, δηλ Μετατροπή τελεστών σε εσωτερικό format Εκτέλεση λειτουργίας σε υψηλότερο επίπεδο ακρίβειας Στρογγυλοποίηση και μετατροπή τελεστών σε standard format Αναφορά σφάλματος

24 Execution Modes Protected mode. The native state of the processor. All instructions and architectural features are available, providing the highest performance and capability. Recommended mode for all new applications and operating systems. Also offers the ability to directly execute “real-address mode” 8086 software in a protected, multi-tasking environment. This (Virtual-8086) mode is not actually a processor modebut a protected mode attribute that can be enabled for any task. Real-address mode. Provides the programming environment of the Intel 8086 processor, with a few extensions (such as the ability to switch to protected or system management mode). The processor is placed in real-address mode following power-up or a reset. From real-address mode, only a single instruction is required to switch to protected mode. System management mode. A standard architectural feature unique to all Intel processors, beginning with the Intel386 SL processor. Provides an operating system or executive with a transparent mechanism for implementing platform-specific functions such as power management. The processor enters SMM the external SMM interrupt pin (SMI#) is activated or an SMI is received from the advanced programmable interrupt controller (APIC). In SMM, the processor switches to a separate address space while saving the entire context of the currently running program or task. SMM-specific code may then be executed transparently. Upon returning from SMM, the processor is placed back into its state prior to the system management interrupt.

25 Addressing Modes Flat memory model : memory appears to a program as a single, continuous address space, called a linear address space. Code (a program’s instructions), data, and the procedure stack are all contained in this address space. The linear address space is byte addressable. Segmented memory model: memory appears to a program as a group of independent address spaces called segments. Code, data, and stacks are typically contained in separate segments. To address a byte in a segment, a program must issue a logical address (far pointer), which consists of a segment selector and an offset. The segment selector identifies the segment to be accessed and the offset identifies a byte in the address space of the segment. Up to 16,383 segments of different sizes and types. The processor translates each logical address into a linear address to access a memory location, transparently to the application program. Increases the reliability of programs and systems. Real-address model : same as the Intel 8086 processor, for backward compatibility. Uses a specific implementation of segmented memory in which the linear address space for the program and the operating system/executive consists of an array of equally sized segments. In Protected Mode all modes can be used In Real and SM mode only the Real-address mode is available

26 Διάφορα Θέματα Data flow analysis ECC MMX
Αν περισσότερες της μίας εντολές είναι έτοιμες στο ROB προς αποστολή σε μία μονάδα εκτέλεσης τότε γίνεται επιλογή βάσει ψευδο FIFO αλγόριθμου η κατάλληλη. ECC Σε επέκταση του ελέγχου ισοτιμίας στα σήματα του address bus και του ελέγχου δοσοληψιών, υποστηρίζει έλεγχο και διόρθωση σφαλάμτων στα data signals και για το δίαυλο του L2 Cache αλλά και το δίαυλο συστήματος. Ετσι προστατέυονται κρίσιμα δεδομένα, αφού διορθώνονται single bit errors και εντοπίζονται τα double bit errors. Τα σφάλματα μπορούν να καταγράφονται και έτσι στη συνέχεια να εντοπίζονται οι αστοχίες του συστήματος. MMX Math Matrix Extensions. Τύπου SIMD. Επέκταση του βασικού ρεπερτορίου εντολών του x86 για τη διαχείριση εικόνας video και ήχου, το οποίο εμφανίζεται στους P5. Streaming SIMD extensions 70 νέες εντολές που επιτρέπουν διαχείριση εικόνας, 3D απεικόνισης, ήχου, video και αναγνώρισης φωνής. Intel Processor Serial Number (PII και PIII) Δυσκολία Εκτέλεσης Unaligned εντολών Εντολές που προκύπτουν από 16bit κώδικα του παρελθόντος. Ανάγκασε στη γρήγορη εμφάνιση του PII PGE (page global enable) Επιτρέπει τη σημείωση σελίδων σαν Global (πχ kernel pages) ώστε να μην εκκαθαρίζονται οι εγγραφές του TLB κατά το context switching.

27 MESI MODEL Modified Exclusive Shared Invalid
Στόχος η παρακολούθηση της κατάστασης των γραμμών του cache χωρίς την άδικη απόρριψή τους. Modified Τα δεδομένα έχουν αλλαχτεί λόγω write hit. Θα πρέπει να γραφτούν πισω στην κύρια μνήμη. Exclusive Τα δεδομένα πιθανότατα περιέχονται μόνο στο τρέχον cache Shared Τα δεδομένα βρίσκονται πιθανότατα και σε άλλα caches αλλά δεν έχουν γίνει αλλαγές Invalid Αρχική κατάσταση όπου η γραμμή του cache είναι άκυρη

28 Associative Caches / CAM
Ενα block αντιστοιχίζεται σε οποιαδήποτε γραμμή του cache Η διεύθυνση μεταφράζεται σε tag και word Το tag μοναδικά προσδιορίζει ένα block Το tag κάθε γραμμής ελέγχεται για σύμπτωση => καθυστέρηση αναζήτησης Set – Associative Χωρίζεται σε sets Κάθε set περιλαμβάνει κάποιες γραμμές (lines) Ενα δεδομένο block αντιστοιχίζεται σε μία από τις γραμμές ενός και μόνο set (n-way όπου n = αριθμός γραμμών) Πχ : 2-way set associative περιέχει sets των δύο γραμμών. Πολλαπλά blocks αντιστοιχούν στο ίδιο set. Μειώνεται δραμματικά ο χρόνος αναζήτησης CAM Τα ίδια δεδομένα περιγράφουν το σημείο αποθήκευσης, περιορίζοντας τις ανάγκες αναζήτησης Κάποια δεδομένα έχουν ένα και μόνο ένα σημείο αποθήκευσης το οποίο είναι προκαθορισμένο Τα παρόμοια δεδομένα αποθηκεύονται σε γειτονικές θέσεις Ο καλών παρέχει τα δεδομένα και παίρνει τη διεύθυνση μέσα σε ένα μόνο κύκλο Πρόσφατα υλοποιήθηκαν hardware components CAM.

29 Αποτελέσματα 90% ορθή πρόβλεψη branches ακόμα και όταν αυτά βρίσκονται σε μεγάλο βάθος 25% χρήση του bandwidth διαύλου συστήματος Βελτίωση επιδόσεων εντολών ακέραιων

30 Συγκριτικά

31 Rerefences “Intel’s P6 Uses Decoupled Superscalar Design” by Linley Gwennap (Microdesign Resources vol 9 No 2 , 16 February 1995) “The P6 Architecture: Background Information for Developers” by Intel Corporation (1995-p6arc.pdf) “IA-32 Intel ® Architecture Software Developer’sManual Volume 2 : Instruction Set Reference” by Intel Corporation (2001 – pdf) “Pentium Pro Family Developers Manual Vol2:Programmers Reference Manual” , by Intel Corporation (Dec pdf) “The Pentium Pro At 150, 166 , 180 and 200MHz”, by Intel Corporation (Jun pdf) “The Intel Architecture Optimization Manual”, by Intel Corporation ( pdf) “Pentium II Developers Manual”, by Intel Corporation (Oct pdf) “The Intel Celeron Processor up to 1.1GHz Datasheet”, by Intel Corporation (Aug pdf) “The P6 Family of Processors : Hardware Developers Manual“, by Intel Corporation (Sep pdf) “Pentium III Processor at 450 MHz to 1.13 GHz Datasheet”, by Intel Corporation (Jul pdf)

32 Functional Units (εναλλακτική όψη)


Κατέβασμα ppt "Intel’s P6 Processor Family Architecture"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google