Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 10
  • Procesoare Intel Sandy Bridge - toate secretele. Cinci generații de Core i7: de la Sandy Bridge la Skylake

Procesoare Intel Sandy Bridge - toate secretele. Cinci generații de Core i7: de la Sandy Bridge la Skylake

„, publicată cu aproximativ un an în urmă, am vorbit despre microarhitectura Nehalem, care a înlocuit Core la sfârșitul lui 2008. În această recenzie vom vorbi despre arhitectura Sandy Bridge, care ar trebui să înlocuiască complet Nehalem în viitorul foarte apropiat.

Astăzi, cipurile bazate pe Sandy Bridge sunt prezentate în toate liniile de procesoare Intel, inclusiv server Xeon, desktop și mobile Core i3/35/i7, Pentium și Celeron și Core i7 Extreme „extreme”. Cu puțin timp înainte de publicarea acestui articol, pe 22 mai 2011, au fost introduse încă șapte procesoare noi bazate pe Sandy Bridge.

Care sunt diferențele fundamentale dintre Sandy Bridge și Nehalem și care sunt caracteristicile și avantajele noii microarhitecturi Intel? Pe scurt, aceste diferențe sunt următoarele: nucleul grafic actualizat ca parte a „agentului de sistem” este localizat pe același cip cu cel de calcul, există un nou buffer de microinstrucțiuni L0, cache L3 partajat, tehnologie Turbo Boost îmbunătățită, o tehnologie extinsă. set de instrucțiuni SIMD AVX și un controler RAM DDR3 1333 MHz cu dublu canal reproiectat. Odată cu noua arhitectură, a apărut și un nou soclu pentru procesor LGA 1155.

Una dintre principalele diferențe de proiectare dintre Sandy Bridge și Nehalem este plasarea nucleelor ​​de calcul și a podului de nord (agent de sistem) pe un singur cip. Să ne amintim că în Nehalem CPU-ul însuși și podul de nord erau amplasate sub o acoperire comună, dar de fapt au fost plasate pe cipuri independente, care, în plus, au fost realizate conform diferitelor standarde tehnologice: CPU-ul avea 32 nm, iar podul de nord. a fost de 45 nm. În Sandy Bridge, acesta este un singur cip, realizat folosind o tehnologie de proces de 32 nm, pe care există nuclee de calcul, un nucleu grafic, controlere RAM, PCI Express, sursă de alimentare (Power Control Unit, PCU) și o unitate de ieșire video .

Noul set de instrucțiuni SIMD din cipurile Sandy Bridge se numește AVX - Advanced Vector Extensions, adică „instrucțiuni vectoriale avansate”. De fapt, aceasta este următoarea generație de instrucțiuni SIMD (Single Instruction, Multiple Data - „single instruction stream, multiple data stream” SSE5, o alternativă la setul x86 dezvoltat de AMD. Lățimea registrelor XMM în instrucțiunile AVX a fost dublat de la 128 la 256 de biți, au apărut 12 instrucțiuni noi cu suport pentru instrucțiuni cu patru operanzi. criptare hardware Sistem de virtualizare Advanced Encryption Standard (AES) și Virtual Machine Extensions (VMX).

În ciuda designului similar, cipurile Sandy Bridge au mai multe unități de execuție decât Nehalem: 15 versus 12 (vezi diagrama bloc). Fiecare unitate de execuție este conectată la planificatorul de instrucțiuni printr-un canal de 128 de biți. Două unități de execuție sunt utilizate simultan pentru a executa noile instrucțiuni AVX care conțin date pe 256 de biți.

Cipurile Sandy Bridge sunt capabile să proceseze până la patru instrucțiuni pe ceas datorită celor patru decodoare încorporate în unitățile de preluare a instrucțiunilor. Aceste decodoare convertesc instrucțiunile x86 în microinstrucțiuni simple asemănătoare RISC.

Cea mai importantă inovație în procesoarele Sandy Bridge este așa-numitul „zero level cache” L0, care era practic absent în procesoarele din generația anterioară. Acest cache este capabil să stocheze până la 1536 de microinstrucțiuni decodificate: scopul său este ca atunci când un program care se execută intră într-o buclă circulară, adică execută în mod repetat aceleași instrucțiuni, să nu fie nevoie să decodeze din nou aceleași instrucțiuni. Această schemă poate îmbunătăți semnificativ performanța: conform experților Intel, L0 este utilizat în 80% din timpul computerului, adică în marea majoritate a cazurilor. În plus, utilizarea L0 dezactivează decodoarele și memoria cache L1, iar cipul consumă mai puțină energie și generează mai puțină căldură.

În legătură cu apariția unui „cache la nivel zero” în cipurile Sandy Bridge, oamenii își amintesc adesea cache-ul de urme ale „veteranilor rasei gigahertz” - procesoare Pentium 4 bazate pe arhitectura NetBurst. Cu toate acestea, aceste buffere funcționează diferit: în memoria cache de urmărire, instrucțiunile sunt scrise exact în ordinea în care au fost executate, astfel încât aceleași instrucțiuni pot fi repetate de mai multe ori. L0 stochează instrucțiuni unice, ceea ce, desigur, este mai rațional.

Blocul de predicție a ramurilor a suferit modificări vizibile, primind un buffer țintă ramificat de două ori mai mare. În plus, tamponul utilizează acum un algoritm special de comprimare a datelor, datorită căruia blocul este capabil să pregătească volume mari de instrucțiuni, crescând astfel performanța de calcul.

Subsistemul de memorie din Sandy Brigde a fost, de asemenea, optimizat pentru a funcționa cu instrucțiuni AVX pe 256 de biți. Ca o reamintire, Nehalem a folosit porturi dedicate de încărcare, adresă și stocare a datelor legate de porturi separate de dispecer, ceea ce înseamnă că ar putea încărca 128 de biți de date din memoria cache L1 pe ciclu de ceas. În Sandy Brigde, porturile de încărcare și stocare pot fi reutilizate după cum este necesar și pot acționa ca o pereche de porturi de încărcare sau stocare în același timp, permițând 256 de biți de date pe ciclu de ceas.

Sandy Bridge folosește o interconexiune inelă pentru a conecta componentele cipului, adică nuclee de calcul, cache L3, nucleu grafic și agent de sistem (memorie, PCI Express, controlere de alimentare și afișare). Baza a fost magistrala QPI de mare viteză (Quick Path Interconnect, debitului până la 6,4 GB/s la 3,2 GHz), implementat pentru prima dată în cipurile Nehalem Lynnfield (Core i7 9xxx pentru Socket LGA1366), adresat pasionaților.

În esență, magistrala de inel din Sandy Bridge constă din patru inele de 32 de octeți: magistralele de date, magistralele de solicitare, magistralele de confirmare și autobuzele de monitorizare. Cererile sunt procesate la frecvența de operare a nucleelor ​​de calcul, în timp ce la o frecvență de ceas de 3 GHz, debitul magistralei ajunge la 96 GB pe secundă. În acest caz, sistemul determină automat cea mai scurtă cale de transmisie a datelor, asigurând o latență minimă.

Utilizarea unui magistral inel a făcut posibilă implementarea cache-ului de nivel al treilea L3 într-un mod diferit, care în Sandy Bridge era numit LLC (Last Level Cache, adică „last level cache”). Spre deosebire de Nehalem, LLC nu este partajat în toate nucleele, dar poate fi partajat între toate nucleele, precum și grafica și agentul de sistem, după cum este necesar. Este important de menționat că, deși fiecare nucleu de calcul are propriul său segment LLC, acest segment nu este strict legat de nucleul „sau” și volumul său poate fi distribuit între alte componente printr-o magistrală inelă.

La mutarea la Sandy Bridge, Intel a atribuit tuturor componentelor procesorului central care nu aparțin nucleelor ​​de calcul în sine, numele general System Agent, adică „agent de sistem”. De fapt, toate acestea sunt componente ale așa-numitului „punte de nord” al setului logic al sistemului, dar acest nume este încă mai potrivit pentru un cip separat. Când a fost aplicat lui Nehalem, a fost folosit numele ciudat și clar nefericit „Uncore”, așa că „agent de sistem” sună mult mai potrivit.

Elementele principale ale „agentului de sistem” includ un controler RAM DDR3 cu două canale actualizat de până la 1333 MHz, Controler PCI Express 2.0 care acceptă o magistrală x16, două autobuze x8 sau una x8 și două autobuze x4. Cipul are o unitate specială de gestionare a puterii, pe baza căreia este implementată tehnologia de overclocking automată Turbo Boost de nouă generație. Datorită acestei tehnologii, care ține cont de starea atât a nucleelor ​​de calcul, cât și a celor grafice, cipul, dacă este necesar, își poate depăși semnificativ pachetul termic până la 25 de secunde fără a deteriora procesorul sau a compromite performanța.

Sandy Bridge folosește noua generație de procesoare grafice Intel HD Graphics 2000 și HD Graphics 3000, care pot consta din șase sau douăsprezece unități de execuție (EU), în funcție de modelul procesorului. Viteza nominală a ceasului grafic este de 650 sau 850 MHz și poate fi mărită la 1100, 1250 sau 1350 MHz în Modul Turbo Boost, care se extinde acum la acceleratorul video. Suport grafic interfata software Direct X 10.1 - dezvoltatorii au considerat că suportul pentru Direct X 11 nu este necesar, crezând pe bună dreptate că fanii jocurilor pe computer unde acest API este cu adevărat solicitat ar prefera în orice caz o grafică discretă semnificativ mai puternică.

Marcarea procesoarelor Sandy Bridge este destul de simplă și logică. Ca și înainte, constă din indici digitali, care în unele cazuri sunt însoțite de o scrisoare. Puteți distinge Sandy Bridge de Nehalem după nume: indicele de jetoane noi este de patru cifre și începe cu două ("a doua generație"), iar cele vechi sunt de trei cifre. De exemplu, avem un procesor Intel Core i5-2500K. Aici, „Intel Core” înseamnă marca, „i5” înseamnă serie, „2” înseamnă generație, „500” înseamnă numărul modelului și „K” înseamnă numărul literei.

În ceea ce privește indicii de litere, unul dintre ei este cunoscut din cipurile cu microarhitectura Nehalem - „S” (procesoare i5-750S și i7-860S). Este atribuit cipurilor destinate mașinilor multimedia de acasă. Procesoarele cu același indice numeric diferă prin faptul că modelele cu indicele literei „S” funcționează la o frecvență nominală de ceas puțin mai mică, dar „frecvența turbo” obținută cu overclockarea automată Turbo Boost este aceeași. Cu alte cuvinte, în modul normal sunt mai economice, iar sistemul lor de răcire este mai silentios decât cel al modelelor „standard”. Toate desktop-urile Core noi de a doua generație fără indexuri consumă 95 W, iar cu indicele „S” - 65 W.

Modificările cu indicele „T” operează la o frecvență de ceas și mai mică decât cele „de bază”, în timp ce „frecvența turbo” a acestora este de asemenea mai mică. Pachetul termic al unor astfel de procesoare este de doar 35 sau 45 W, ceea ce este destul de comparabil cu TDP-ul cipurilor mobile moderne.

Și, în cele din urmă, indicele „K” înseamnă un multiplicator deblocat, care vă permite să overclockați cu ușurință procesorul, crescându-i frecvența de ceas.

Ne-am familiarizat cu soluțiile tehnice generale implementate în procesoarele „desktop” cu arhitectură Sandy Bridge. În continuare, vom vorbi despre caracteristicile diferitelor serii, vom studia gama actuală de modele și vom oferi recomandări despre ce modele specifice poate fi considerată cea mai bună achiziție din clasa sa.

Deschidem o serie de articole despre noua microarhitectură a procesorului Intel Sandy Pod. În primul material vom atinge teoria - vom vorbi despre schimbări și inovații. În viitorul apropiat, rezultatele testelor noii platforme și o mulțime de lucruri interesante vor apărea pe paginile blogului.

Conceptul Tick-Tock, inventat în cadrul Intel, continuă să funcționeze - în fiecare an producătorul introduce o microarhitectură de procesor modificată. Faza „Tick” presupune îmbunătățirea dezvoltărilor anterioare (reducerea procesului tehnic, introducerea de noi tehnologii nu prea revoluționare etc.). La aproximativ un an după „Tick”, are loc „Tock” – lansarea procesoarelor bazate pe o microarhitectură complet nouă.

La începutul anului 2010, Intel a introdus o linie de cipuri cu numele de cod Westmere/Clarkdale - o îmbunătățire tehnologică a primelor modele Core i3/i5/i7 (Nehalem). E rândul lui Tock. Faceți cunoștință cu microarhitectura revoluționară Sandy Bridge, pe baza căreia sunt construite procesoare sub numele general Core 2011 - modele complet noi Core i3, Core i5, Core i7, precum și modele bugetare Pentium și Celeron.

De data aceasta, producătorul a decis să nu piardă timpul cu fleacuri și a anunțat imediat multe modele pentru computere mobile și desktop în toate gamele de preț. Adevărat, doar câteva au ieșit la vânzare, departe de cele mai multe versiuni disponibile, Dar mai multe despre asta mai târziu.

Presa îl numește pe Sandy Bridge una dintre cele mai importante microarhitecturi Intel pentru anul trecut― producătorul a făcut tot posibilul pentru a-și aduce procesoarele la un nou nivel de performanță, a adus la viață tehnologiile prezentate anterior și a oferit o integrare incredibilă a unităților de calcul și controlerelor. În comparație cu Sandy Bridge, modelele prezentate anterior par să vorbească. Să ne uităm la schimbările din Core 2011 mai detaliat.

Caracteristicile noii microarhitecturi

O diagramă bloc care ilustrează microarhitectura Sandy Bridge este puțin probabil să spună multe despre tehnologiile introduse și schimbările generale. Cu toate acestea, merită să știți că toate componentele noilor procesoare sunt semnificativ diferite de componentele aceluiași Westmere/Clarkdale. Principalul lucru pe care trebuie să-l înțelegeți înainte de a studia caracteristicile Sandy Bridge este că îmbunătățirile arhitecturale permit noilor procesoare să ruleze cu 10-50% mai rapid în comparație cu generația Core 2010.

Inginerii Intel au reproiectat unitatea de predicție a ramurilor, au schimbat preprocesorul, au introdus un cache decodat avansat, o magistrală inel de mare viteză, o unitate avansată de extensii vectoriale AVX, au reproiectat controlerul RAM integrat și legăturile de magistrală PCI Express, au schimbat cipul grafic integrat fără a fi recunoscut. , și a introdus un bloc fix pentru accelerare hardware transcodare video, tehnologie îmbunătățită de accelerare automată Turbo Boost și așa mai departe. Acum probabil crezi că există într-adevăr o mulțime de schimbări? Vom încerca să trecem pe scurt peste fiecare dintre ele pentru a obține o anumită imagine înainte ca testarea completă să apară pe blogurile noastre.

Pentru început, modelele Sandy Bridge cu 4 nuclee constau din 995 de milioane de tranzistori produși folosind o tehnologie de proces de 32 de nanometri dovedită. Aproximativ 114 milioane alocate pentru nevoi cip grafic, fiecare miez ocupă 55 de milioane de tranzistori, restul merge sub controlere suplimentare. Pentru comparație, un procesor cu 4 nuclee cu drepturi depline AMD Phenom II X4 conține 758 de milioane de tranzistori, iar Nehalem cu 4 nuclee a folosit 731 de milioane de tranzistori. Cu toate acestea, o matriță de procesor Sandy Bridge cu drepturi depline ocupă o suprafață de 216 milimetri pătrați - matrița unuia dintre primele procesoare Intel cu 4 nuclee (Core 2 Quad) a ocupat o zonă similară cu un număr mult mai mic de tranzistori și, în consecință, a oferit performanțe disproporționat mai mici.

Acum, permiteți-mi să vorbesc despre inovațiile cheie ale microarhitecturii în ordine.

Cache de instrucțiuni decodat (cache micro-op) - Mecanismul de cache micro-op introdus în Sandy Bridge stochează instrucțiuni pe măsură ce sunt decodificate. La efectuarea calculelor, procesorul determină dacă următoarea instrucțiune a intrat în cache. Dacă da, atunci preprocesorul și conducta de calcul sunt dezactivate, ceea ce economisește energie. În același timp, 1,5 KB de memorie cache decodificată este complet integrată cu memoria cache de prim nivel (L1).

Unitatea de predicție a ramurilor reproiectată se laudă cu o precizie sporită. Toate acestea au fost posibile datorită mai multor inovații semnificative de design.

Ring bus - pentru a combina numeroase blocuri arhitecturale, procesoarele Sandy Bridge folosesc un ring bus avansat și de foarte mare viteză. Interfața își datorează aspectul nucleului grafic integrat și transcoder video - nevoia de a comunica cu cache-ul de nivel al treilea a făcut ca schema anterioară de conectare (aproximativ 1000 de contacte pentru fiecare nucleu) să fie ineficientă. Toată lumea este conectată la autobuzul reproiectat componente importante procesor - grafică, nuclee compatibile x86, transcoder, agent de sistem, cache L3.

Sub numele „Agent de sistem” există un bloc cunoscut anterior ca un-core - controlerele care au fost plasate anterior în Northbridge pe placa de bază sunt combinate aici. Agentul include 16 legături pentru conectarea la magistrala PCI Express 2.0, un controler RAM DDR3 cu două canale, o interfață pentru conectarea la un magistrala de sistem DMI, unitate de gestionare a energiei și unitate grafică, responsabilă pentru ieșirea imaginii.

Una dintre cele mai importante inovații ale Sandy Bridge este considerată a fi un cip grafic reproiectat de la zero. Să începem cu faptul că acum grafica este integrată cu alte blocuri într-un singur cip (anterior, două cipuri separate erau ascunse sub capacul metalic al procesoarelor Clarkdale). Inginerii Intel se laudă cu dublarea debitului componentelor chipului grafic în comparație cu generația anterioară de Intel HD Graphics datorită modificărilor în arhitectura procesoarelor shader unificate, accesului la memoria cache L3 și altor îmbunătățiri. În același timp, în noile procesoare va fi posibil să găsiți simultan două modele de bază grafică semnificativ diferite - HD Graphics 2000 și HD Graphics 3000. Primul oferă șase procesoare shader unificate, al doilea - douăsprezece. Potrivit Intel și presa de specialitate, noua grafică face ca cele mai ieftine plăci video discrete să fie redundante, dar încă nu ne-am convins de acest lucru într-o recenzie separată. Aproape că am uitat să spunem că noile modele HD Graphics acceptă DirectX 10; trecerea la tehnologii grafice mai moderne va avea loc în următoarele generații de procesoare.

În plus, noul cip grafic are o unitate Media Engine separată, constând din două părți pentru transcodarea și decodarea video. Inginerii Intel au decis să nu ispitească soarta - anterior, procesoarele unificate shader și, parțial, unitățile fixe de putere redusă erau implicate în decodarea și codificarea video. Potrivit martorilor oculari, Media Engine fix își face față sarcinii mai rapid și mai bine decât plăcile video monstruoase din cea mai mare gamă de preț.

Algoritmii de overclockare automată Turbo Boost modificați permit acum procesorului să depășească puțin standardele de consum de energie prescrise pentru o perioadă scurtă de timp - în practică, aceasta înseamnă că procesorul va putea efectua rulări de mare viteză pe distanțe scurte. Desigur, automatizarea nu vă va permite să treceți linia fiabilității. Să ne amintim că Turbo Boost mărește automat frecvența unui, două, trei sau patru nuclee dacă este necesar. Da, cel mai puternic Model Intel Core i7 2600 poate crește frecvența unui nucleu la 3,8 GHz atunci când lucrează cu aplicații care nu sunt optimizate pentru arhitectura multi-core.
Overclocking blocat

De la Pentium II, Intel a început să vândă procesoare cu multiplicatori blocați, astfel încât utilizatorii să nu se poată juca cu frecvența, iar compania însăși a fost întotdeauna capabilă să vândă aceleași modele în diferite intervale de preț. Dar overclockerii au avut întotdeauna capacitatea de a regla frecvența FSB. Din păcate, odată cu apariția Sandy Bridge, totul se schimbă din nou - multiplicatorul în majoritatea modelelor este bine blocat, iar generatorul de frecvență al magistralei este integrat în singurul pod al chipset-urilor din seria 6 și este blocat la 100 MHz.

Singura priză de overclocking rămân modificările cu multiplicatori deblocați - există puține astfel de modele în noua linie, dar ele există și costă bani destul de rezonabili.

Rigla

Este timpul să vorbim despre procesoarele care au fost prezentate mai întâi - să înțelegeți noile nume și să înțelegeți ce procesor ar trebui să alegeți pentru scopurile dvs.
În timpul lansării Sandy Bridge, Intel a introdus 29 (douăzeci și nouă!) de noi modele Core iX - paisprezece pentru desktop și cincisprezece pentru computere mobile.

Producătorul a trecut la o nouă schemă de desemnare a procesorului, și mai obscură, în care trebuie să ne aprofundăm.
Deci, numele fiecărei linii noi de procesoare desktop constă dintr-o denumire a mărcii (Intel Core), numele unei linii specifice (i3, i5, i7), un index (2600) și un sufix (K). Există doar trei sufixe pentru linia desktop - K (multiplicator deblocat), S (consum de putere 65 W) și T (consum de putere 34-45 W). Acum, cel mai ciudat lucru este că puternicul cip grafic HD Graphics 3000 este inclus doar în modelele cu un multiplicator deblocat (K); alte procesoare se mulțumesc cu HD Graphics 2000 vizibil mai slab.

Linia originală Core 2011 pentru computere desktop este defalcată destul de frumos după numele liniei. Asa de, Procesoare de bază i7 sunt cipuri quad-core cu Hiper suport Threading (4 nuclee, 8 fire), Core i3 - cipuri simple dual-core fără suport Turbo Boost, dar cu suport Hyper Threading (2 nuclee, 4 fire), Core i5 - în primul rând modele quad-core cu suport Turbo Boost, dar fără Hyper Threading . Din păcate, în viitor, modelele dual-core vor apărea ca parte a liniei Core i5, dar vor fi disponibile în primul rând pentru asamblatorii de sisteme gata făcute.

Un alt motiv pentru diferențierea suplimentară a liniei este auto-overclockarea nucleului grafic încorporat. Ambele modele grafice rulează inițial la 850 MHz, dar procesoarele Core i5 și Core i3 îl pot overclock la 1100 MHz. Senior Core i7 - până la 1350 MHz. Gândiți-vă singur cum va afecta acest lucru performanța finală.

Cu modificările mobile ale Sandy Bridge, lucrurile sunt puțin mai complicate. Pentru început, absolut toate procesoarele mobile din noua linie folosesc puternicul cip grafic HD Graphics 3000 (chiar și cele mai economice modele). Din motive necunoscute, Intel a decis să încalce legea nescrisă a marketingului și să ia razna cu indici - încă nu am decis cum vom înțelege modelele cu indici 2657, 2537, 2410 și 2720. În ceea ce privește indici, există denumiri XM, QM, M, indicând laptopuri pentru diferite sarcini. În consecință, XM sunt modele extreme pentru sistemele de gaming, M sunt procesoare dual-core pentru laptopuri economice, QM sunt procesoare quad-core pentru laptop-uri mainstream.

Desigur, acestea nu sunt toate modelele pentru anul care vine - Intel va continua să experimenteze și ocazional îi va încânta pe fani cu noi modificări. Principalul lucru este să nu încălcați inventatul pe cont propriu logica de linii.

Platformă

Împreună cu Sandy Bridge, au fost prezentate chipset-uri din seria 6 cu soclul de procesor LGA1155 necesar - primele semne au fost Intel P67 și Intel H67. Înțelegerea celor două modificări este ușoară. Intel P67 este potrivit pentru configurațiile în care va fi utilizată o placă grafică discretă, iar platforma acceptă instrumente de overclocking. În plus, plăcile bazate pe P67 oferă benzi PCI Express 2.0 2x8 pentru configurații multi-GPU în modurile AMD CrossFire sau NVIDIA SLI. Intel H67, dimpotrivă, este de puțin folos pentru overclockare; acceptă un singur port PCI Express x16, dar poate scoate un semnal video.

Toți cei care doresc să obțină toate caracteristicile pe o singură placă vor trebui să aștepte puțin - undeva în al doilea trimestru al anului 2011, dezvoltatorii vor prezenta chipset-ul Intel Z68. Plăcile de bază bazate pe acest chipset vor suporta nucleul grafic încorporat în procesor, precum și toate caracteristicile Intel P67.

Câteva cuvinte despre noul soclu de procesor - Intel a reproiectat circuitele și structura soclului, astfel încât vechile modele Core 2010 pentru LGA 1156 nu mai pot fi folosite. Din fericire, dimensiunea prizei rămâne aceeași; puteți instala aici numeroase coolere pentru LGA 1156 și nu trebuie să vă faceți griji cu privire la găsirea celor mai noi modele.

Chipseturile încă nu au suport nativ pentru interfața USB 3.0, deși piața pare să fie destul de pregătită pentru astfel de „inovații”. Fanii celor mai buni vor trebui să se concentreze pe plăcile de bază avansate, unde producătorii integrează controlere USB 3.0 terțe.

Din fericire, Intel nu a uitat de noua versiune a interfeței SATA - noile platforme acceptă SATA3 cu o lățime de bandă de până la 6 Gbit/s. Este clar că hard disk-urile clasice spindle nu au nevoie de toate aceste creșteri de viteză, dar unitățile bazate pe memorie flash vor aprecia fereastra de viteză. De exemplu, unul dintre hard disk-urile flash prezentate la CES își va dezvălui capacitățile de viteză doar atunci când este asociat cu SATA3 - este înghesuit în SATA2 (vorbim despre Crucial RealSSD C300). Ceea ce este important este că porturile SATA3 de pe noile plăci de bază sunt adiacente cu SATA2, deși noua interfață oferă compatibil cu înapoi cu generația anterioară – fiți mai atenți când vă conectați SSD-ul super scump.

În noile chipset-uri, producătorii încep în sfârșit să scape de principalul arhaism - interfața BIOS. Pentru a-l înlocui pe cel neîndemânatic ecran albastru UEFI vine din trecut - noua carcasă acceptă controlul mouse-ului (sau touchpad-ului), oferă un aspect mult mai modern și interfață ușor de utilizat. Alte caracteristici ale UEFI includ suport înnăscut pentru hard disk-uri mai mari de 2,2 TB.

Cu ce ​​ajungem?

Există o opinie larg răspândită printre experți că Sandy Bridge este doar o evoluție a microarhitecturilor anterioare și compania nu a introdus nimic radical nou. Suntem de acord cu cealaltă parte a analiștilor. În ciuda faptului că noua linie nu oferă capabilități cu adevărat revoluționare, munca depusă de Intel este demnă de toate laudele. Producătorul și-a adus toate angajamentele la ideal - a integrat complet toate componentele, a îmbunătățit cipul grafic la un nivel acceptabil, a completat magistrala inelă, a reproiectat funcțiile preprocesorului, a revizuit capacitățile de auto-overclocking Turbo Boost, a introdus o unitate fixă ​​pentru video procesare și așa mai departe. Drept urmare, avem procesoare complet noi, care sunt cu cap și umeri peste generațiile anterioare în ceea ce privește caracteristicile tehnice.

În viitorul apropiat, blogurile DNS vor prezenta testarea noului procesor în jocuri și programe populare, o revizuire a capabilităților de overclocking folosind răcire cu aer, testul cipul grafic împotriva plăcilor video discrete de buget. Nu ratați.

Este finală superioritatea primului Core i (Nehalem și, în 2009, Westmere) față de procesoarele rivale? Situația amintește puțin de primul an de la lansarea lui Pentium II: odihnindu-se pe lauri și încasând profituri record, ar fi bine să facem o continuare a arhitecturii de succes, fără să-i schimbe mult numele, adăugând altele noi, a căror utilizare va îmbunătăți semnificativ performanța, fără a uita de alte inovații care accelerează programele versiunilor de astăzi. Adevărat, spre deosebire de situația de acum 10 ani, trebuie să acordăm atenție subiectului la modă în prezent al eficienței energetice, interpretat de adjectivul ambiguu Cool - „cool” și „rece” - și dorința nu mai puțin la modă de a se integra în procesor tot ce mai există ca separat. Acesta este sosul cu care este servit noul produs.

„Alaltăieri”, „ieri” și „azi” ale procesoarelor Intel.


Frontul transportorului. Culorile arată diferite tipuri de informații și blocurile care le procesează sau le stochează.

Previziune

Să începem cu anunțul Intel privind o unitate complet reproiectată (BPU). Ca și în Nehalem, fiecare ciclu de ceas (și înainte de execuția efectivă) prezice adresa următoarei porțiuni de cod de 32 de octeți, în funcție de comportamentul așteptat al instrucțiunilor de salt din porțiunea tocmai prezisă - și, aparent, indiferent de numărul și tipul tranzițiilor. Mai precis, dacă porțiunea curentă conține o tranziție presupusă declanșată, sunt emise adrese proprii și țintă, altfel este dată o tranziție la următoarea porțiune dintr-un rând. Predicțiile în sine au devenit și mai precise datorită dublării (BTB), alungirii (GBHR) și optimizării funcției hash de acces (BHT). Adevărat, testele reale au arătat că, în unele cazuri, eficiența predicției este încă puțin mai slabă decât în ​​Nehalem. Poate că creșterea productivității cu scăderea consumului nu este compatibilă cu predicția de înaltă calitate a tranziției? Să încercăm să ne dăm seama.

În Nehalem (precum și în alte arhitecturi moderne), BTB este prezent sub forma unei ierarhii cu două niveluri - mic-„rapid” L1 și mare-„lent” L2. Acest lucru se întâmplă din același motiv pentru care există mai multe niveluri: o soluție cu un singur nivel va fi prea compromisă din toate punctele de vedere (dimensiune, viteza de răspuns, consum etc.). Dar în SB, arhitecții au decis să pună un nivel, iar dimensiunea a fost de două ori mai mare decât L2 BTB al lui Nehalem, adică, probabil, cel puțin 4096 de celule - exact câte sunt în Atom. (Ar trebui să se țină cont de faptul că dimensiunea codului cel mai frecvent executat crește lent și se încadrează din ce în ce mai rar în cache, a cărui dimensiune este aceeași pentru toate procesoarele Intel de la primul Pentium M.) În teorie, acest lucru va măriți suprafața ocupată de BTB și, din moment ce suprafața totală se va schimba nu este recomandat (acesta este unul dintre postulatele inițiale ale arhitecturii) - va trebui să fie luat ceva din altă structură. Dar există și viteză. Având în vedere că SB ar trebui proiectat pentru o viteză ceva mai mare cu același proces tehnic, ne putem aștepta ca această structură mare să fie blocajul întregului transportor - cu excepția cazului în care este transportat și el (două sunt deja suficiente). Adevărat, numărul total de tranzistori care funcționează pe ciclu de ceas în BTB se va dubla, ceea ce nu contribuie deloc la economiile de energie. Din nou fundătură? La aceasta, Intel răspunde că noul BTB stochează adresele într-un fel de stare comprimată, ceea ce vă permite să aveți de două ori mai multe celule cu suprafață și consum similare. Dar nu este încă posibil să verificăm acest lucru.

Să privim din cealaltă parte. SB nu a primit algoritmi noi de predicție, ci i-a optimizat pe cei vechi: generali, pentru tranziții indirecte, bucle și întoarceri. Nehalem are un GBHR de 18 biți și un BHT de dimensiune necunoscută. Cu toate acestea, putem garanta că numărul de celule din tabel este mai mic de 2 18 , altfel ar ocupa cea mai mare parte a nucleului. Prin urmare, există o funcție hash specială care restrânge cei 18 biți ai istoricului tuturor tranzițiilor și biții de adresă a instrucțiunii într-un index de lungime mai scurtă. Mai mult, cel mai probabil, există cel puțin două hashuri - pentru toți biții GBHR și pentru cei care reflectă declanșarea celor mai dificile tranziții. Și astfel eficiența distribuției haotice a diferitelor modele de comportament prin indici după numerele de celule BHT determină succesul predictorului vedere generala. Deși nu este menționat în mod explicit, Intel a îmbunătățit cu siguranță hash-urile, permițând folosirea lungimii GBHR mai lungi cu o eficiență egală de umplutură. Dar încă puteți ghici despre dimensiunea BHT - precum și despre modul în care consumul de energie al predictorului în ansamblu s-a schimbat de fapt... În ceea ce privește (RSB), este încă 16 adrese, dar a fost o nouă restricție introduse în apelurile în sine - nu mai mult de patru la 16 octeți de cod.

Înainte de a merge mai departe, să vorbim despre o ușoară discrepanță între teoria declarată și practica observată - și a arătat că predictorul de ciclu din SB a fost eliminat, ca urmare a faptului că se face predicția tranziției finale la începutul ciclului. printr-un algoritm general, adică mai rău. Un reprezentant Intel ne-a asigurat că nimic „mai rău” nu ar trebui să se întâmple, totuși...

Decodare și IDQ

Adresele comenzilor executate prezise din timp (alternativ pentru fiecare fir - cu tehnologia activată) sunt emise pentru a verifica prezența acestora în cache-urile de comenzi (L1I) și (L0m), dar vom păstra tăcerea despre acestea din urmă - vom descrie restul fata deocamdata. Destul de ciudat, Intel a păstrat dimensiunea porțiunii de comenzi citite de la L1I la 16 octeți (aici cuvântul „porțiune” este înțeles după al nostru). Până acum, acesta a fost un obstacol pentru codul a cărui dimensiune medie a instrucțiunii a crescut dincolo de 4 octeți și, prin urmare, cele 4 instrucțiuni dorite a fi executate pe ciclu de ceas nu se vor mai încadra în 16 octeți. AMD a rezolvat această problemă în arhitectura K10 prin extinderea porțiunii de instrucțiuni la 32 de octeți - deși CPU-urile sale nu au în prezent mai mult de 3 conducte. În SB, inegalitatea de dimensiune duce la un efect secundar: predictorul produce următoarea adresă a unui bloc de 32 de octeți și, dacă detectează o tranziție de declanșare (probabil) în prima jumătate, atunci nu este nevoie să citiți și să decodați a doua. - totusi, se va face.

Din L1I, porțiunea merge către predecodor, iar de acolo către contorul de lungime în sine (), care procesează până la 7 sau 6 instrucțiuni/ciclu (cu și fără; Nehalem ar putea gestiona maximum 6) în funcție de lungimea lor totală și complexitate. Imediat după tranziție, procesarea începe cu comanda la adresa țintă, în caz contrar - cu octetul la care predecodorul s-a oprit cu un ciclu mai devreme. În mod similar cu punctul final: fie este (probabil) o tranziție declanșată, a cărei adresa ultimului octet a venit din BTB, fie ultimul octet al porțiunii în sine - dacă nu se atinge limita de 7 comenzi/ciclu, sau o comandă „incomodă” nu este întâlnită. Cel mai probabil, tamponul contorului de lungime are doar 2-4 porțiuni, dar contorul de lungime poate obține orice 16 din el consecutiv octet. De exemplu, dacă la începutul unei porțiuni sunt recunoscute 7 comenzi de doi octeți, atunci în următorul ciclu de ceas pot fi procesați alți 16 octeți, începând cu al 15-lea.

Contorul de lungime, printre altele, detectează perechi de comenzi combinate macro. Despre perechile în sine vom vorbi puțin mai târziu, dar deocamdată să reținem că, ca și în Nehalem, nu poate fi detectată mai mult de o astfel de pereche în fiecare ciclu de ceas, deși ar putea fi marcate maximum 3 dintre ele (și încă una o singură comandă). Cu toate acestea, măsurarea lungimii instrucțiunilor este un proces parțial secvenţial, astfel încât nu ar fi posibilă determinarea mai multor perechi de macrofuziune în timpul unui ciclu de ceas.

Comenzile etichetate ajung într-una dintre cele două comenzi (IQ: coada de instrucțiuni) - una pe fir, câte 20 de comenzi fiecare (care este cu 2 mai mult decât Nehalem). citește alternativ comenzile din cozi și le transferă pe mop. Are 3 simple (traduce 1 comandă în 1 mop și cu fuziune macro - 2 comenzi în 1 mop), un translator complex (1 comandă în 1–4 uops sau 2 comenzi în 1 mop) și un microsequencer pentru cele mai complexe comenzi care necesită 5 sau mai multe mopuri de la . Mai mult, stochează doar „cozile” fiecărei secvențe, începând cu a 5-a uop, deoarece primele 4 sunt produse de un traducător complex. Mai mult, dacă numărul de uops din microprogram nu este divizibil cu 4, atunci ultimele lor patru vor fi incomplete, dar nu va fi posibilă introducerea a încă 1-3 uops de la traducători în același ciclu. Rezultatul decodării merge la și doi (unul pe flux). Acestea din urmă (numite oficial IDQ - instruction decode queue, queue of decoded commands) au încă 28 de uop-uri și capacitatea de a bloca o buclă dacă partea sa executabilă se potrivește acolo.

Toate acestea (cu excepția mopului cache) erau deja în Nehalem. Care sunt diferențele? În primul rând, ceea ce este evident, decodorul a fost învățat să proceseze comenzi noi de subseturi. Suportul pentru seturile SSE cu toate cifrele nu mai este surprinzător, iar accelerarea criptării prin comenzi (inclusiv PCLMULQDQ) a fost adăugată la Westmere (versiunea de 32 nm a lui Nehalem). Există o capcană: această funcție nu funcționează pentru comenzile care au atât o adresare constantă, cât și o adresare relativă RIP (RIP-relativ, o adresă relativă la indicatorul de comandă - o modalitate obișnuită de a accesa datele în codul de 64 de biți). Astfel de comenzi necesită 2 module (încărcare și operare separate), ceea ce înseamnă că decodorul nu va procesa mai mult de unul dintre ele pe ciclu de ceas, folosind doar un traducător complex. Intel susține că aceste sacrificii sunt făcute pentru a economisi energie, dar nu este clar ce anume: dubla plasare, execuție și uops vor ocupa în mod clar mai multe resurse și, prin urmare, vor consuma mai multă energie decât una.

Fuzionarea macro-urilor a fost optimizată - anterior, prima comandă îmbinată putea fi doar o comparație aritmetică sau logică (CMP sau TEST), dar acum comenzile aritmetice simple de adunare și scădere (ADD, SUB, INC, DEC) și logic „ȘI” sunt permis, schimbându-se și pentru tranziție (a doua echipă a perechii). Acest lucru vă permite să reduceți ultimele 2 comenzi la 1 mop în aproape orice ciclu. Desigur, rămân restricții privind comenzile îmbinate, dar nu sunt critice, deoarece situațiile enumerate pentru o pereche de comenzi sunt aproape întotdeauna executate:

  • prima din prima comandă trebuie să fie un registru;
  • dacă al doilea operand al primei instrucțiuni este în memorie, adresarea relativă RIP nu este permisă;
  • a doua comandă nu poate fi la început sau depășește granița unei linii.

Regulile pentru tranziția în sine sunt:

  • doar TEST și AND sunt compatibile cu orice condiție;
  • comparațiile cu (nu) egale cu și orice semnate sunt compatibile cu orice primă comandă permisă;
  • comparațiile cu (nu) carry și orice nesemnate nu sunt compatibile cu INC și DEC;
  • alte comparații (semn, overflow, paritate și negațiile lor) sunt valabile doar pentru TEST și AND.

Principala schimbare în cozile de uop este că uop-urile îmbinate de tip , în care accesul la memorie necesită citirea registrului de index, (și alte câteva tipuri rare) sunt împărțite în perechi atunci când sunt scrise în IDQ. Chiar dacă există 4 astfel de uop-uri, toate cele 8 în total vor fi înregistrate în IDQ. Acest lucru se face deoarece uop (IDQ), dispecer (ROB) și cozile de rezervare folosesc acum un format uop scurtat fără un câmp de index pe 6 biți (desigur, pentru a economisi la mutarea uops). Se presupune că astfel de cazuri vor fi rare și, prin urmare, viteza nu va fi foarte afectată.

Vă vom spune mai jos istoricul apariției modului de blocare a buclei în acest buffer, dar aici vom sublinia doar un mic detaliu: trecerea la începutul buclei a durat anterior 1 ciclu de ceas suplimentar, formând o „bule” între citirea sfârșitului și începutul buclei, dar acum a dispărut. Cu toate acestea, cele patru uop-uri citite pe ciclu de ceas nu pot include ultimele din iterația curentă și primele din următoarea, așa că în mod ideal, numărul de uop-uri dintr-o buclă ar trebui să fie exact divizibil cu 4. Ei bine, criteriile de blocare a acestuia cu greu s-au schimbat:

  • buclele ar trebui să fie generate de cel mult 8 porțiuni de 32 de octeți ale codului sursă;
  • aceste porțiuni trebuie să fie stocate în cache în L0m (în Nehalem, desigur, în L1I);
  • sunt permise până la 8 tranziții necondiționate prezise ca declanșate (inclusiv cea finală);
  • apelurile și returnările nu sunt permise;
  • Accesele neîmperecheate la stivă nu sunt permise (cel mai adesea când există un număr inegal de comenzi PUSH și POP) - mai multe despre asta mai jos.

Stiva motor

Mai există un mecanism, a cărui funcționare nu am luat-o în considerare în articolele anterioare - trackerul de indicator al stivei, situat în fața IDQ-ului. A apărut în Pentium M și nu s-a schimbat încă. Esența sa este că modificarea pointerului stivei (registrul ESP/RSP pentru modul pe 32/64 de biți) cu comenzi pentru lucrul cu acesta (PUSH, POP, CALL și RET) se face de un agregator separat, rezultatul este stocat într-un registru special și a revenit la uop ca constantă - în loc să modifice indicatorul după fiecare comandă, după cum este necesar și așa cum a fost cazul în procesoarele Intel înainte de Pentium M.

Acest lucru se întâmplă până când o comandă accesează pointerul direct (și în alte cazuri rare) - motorul de stivă compară indicatorul umbră cu zero și, dacă valoarea este diferită de zero, inserează un uop de sincronizare în fluxul de uops înainte de apelarea comenzii. pointerul, scriind indicatorului valoarea curentă din registrul special (și registrul în sine este resetat). Deoarece acest lucru este rareori necesar, majoritatea apelurilor de stivă care modifică doar implicit indicatorul folosesc o copie umbră a acestuia care este modificată în același timp cu alte operațiuni. Adică, din punctul de vedere al blocurilor pipeline, astfel de instrucțiuni sunt codificate de un singur uop combinat și nu diferă de accesele obișnuite de memorie, fără a necesita procesare în ALU.

Cititorul atent (bună ziua!) va observa conexiunea: atunci când faceți bucla în coada uop, apelurile neîmperecheate către stivă sunt inacceptabile tocmai pentru că motorul stivei este situat în conductă. inainte de IDQ - dacă după următoarea iterație valoarea indicatorului de umbră este diferită de zero, va trebui să inserați un syncromop în cel nou, dar acest lucru este imposibil în modul ciclic (mopurile sunt citite doar din IDQ). În plus, motorul stivei este în general oprit pentru a economisi energie, la fel ca toate celelalte părți din față.

Viața secretă a nopilor

O altă modificare a fost făcută la ecartamentul de lungime, dar acest caz iese oarecum în evidență. În primul rând, să ne amintim ce sunt și de ce sunt necesare. Pe vremuri în arhitectura x86 exista doar o memorie de 1 octet. Când a fost necesar să se schimbe codul cu mai mult de 1 octet sau să se înlocuiască comenzi mai lungi de 1 octet, nop a fost pur și simplu introdus de mai multe ori. Dar, în ciuda faptului că această comandă nu face nimic, timpul este încă petrecut decodând-o și proporțional cu numărul de pași. Pentru a vă asigura că performanța programului „patched” nu are de suferit, nop-ul poate fi prelungit. Cu toate acestea, în procesoarele anilor 90, rata de decodare a instrucțiunilor cu numărul de prefixe peste o anumită valoare (care este mult mai mică decât lungimea maximă admisă a instrucțiunilor x86 de 15 octeți) a scăzut brusc. În plus, în special pentru nopa, prefixul este folosit, de regulă, de același tip, dar repetat de multe ori, ceea ce este permis doar ca o excepție nedorită, complicând ecartamentul de lungime.

Pentru a rezolva aceste probleme, pornind de la procesoarele Pentium Pro și Athlon, înțelegeți „long nop” cu octetul modR/M pentru a extinde „oficial” instrucțiunea folosind registre și decalaje de adrese. Desigur, nu au loc operații cu memorie și registre, dar la determinarea lungimii se folosesc aceleași blocuri de contor de lungime ca și pentru instrucțiunile obișnuite pe mai mulți octeți. Utilizarea nodurilor lungi este acum recomandată oficial de tutorialele de optimizare software de nivel scăzut de la Intel și AMD. Apropo, predecodorul SB a redus la jumătate (de la 6 la 3 cicluri de ceas) penalitatea pentru prefixele 66 și 67, care modifică lungimea constantei și a deplasării adresei - dar, ca și în Nehalem, penalitatea nu este impusă instrucțiunilor în care aceste prefixe nu schimbă de fapt lungimea (de exemplu, dacă prefixul 66 este aplicat unei instrucțiuni fără un operand imediat) sau fac parte dintr-o listă de comutatoare (care este adesea folosită în codul vectorial).

Lungimea maximă a unui nod lung formatat corect nu depășește 9 octeți pentru Intel și 11 pentru AMD. Prin urmare, pentru a alinia cu 16 sau 32 de octeți, mai pot exista mai multe noduri. Cu toate acestea, deoarece această comandă este simplă, decodarea și „execuția” ei nu vor ocupa resurse. mai multă prelucrare cele mai simple comenzi de operare. Prin urmare, de mulți ani, testarea cu picioare lungi a fost metoda standard determinarea parametrilor frontului transportorului, în special a gabaritului de lungime și a decodorului. Și aici Sandy Bridge a prezentat o surpriză foarte ciudată: testarea performanței programelor obișnuite nu a scos la iveală nicio întârziere sau încetinire, dar o verificare sintetică de rutină a parametrilor decodorului a arătat în mod neașteptat că performanța sa este egală cu o comandă pe ciclu de ceas! În același timp, Intel nu a dat nicio notificare oficială despre schimbări atât de radicale ale decodorului.

Procedura de măsurare a funcționat perfect chiar și pe Nehalem și a arătat 4 corect. Puteți da vina pe noul și „excesor de” activ Turbo Boost 2.0, care strică citirile măsurate ale ceasului, dar pentru teste a fost dezactivat. Supraîncălzirea cu accelerare cu încetinirea frecvenței este, de asemenea, exclusă. Și când motivul a fost descoperit în sfârșit, a devenit și mai ciudat: se dovedește că nodurile lungi de pe SB sunt procesate numai de primul traducător simplu, deși noduri de 1 octet cu orice număr de prefixe și comenzi similare „inacțiune” (de exemplu, copierea unui registru în sine) sunt ușor acceptate toate cele patru. De ce s-a făcut acest lucru nu este clar, dar cel puțin un dezavantaj al unei astfel de soluții tehnice s-a arătat deja clar: echipa noastră de cercetare a avut nevoie de zece zile pentru a afla motivele lentei misterioase a decodorului... În răzbunare, noi cereți fanilor înfocați ai Taberei Opposite să vină cu un fel de teorie a conspirației despre planurile insidioase ale unei anumite companii I. pentru a deruta naivii curajoși cercetători de procesoare. :)

Apropo, după cum sa dovedit, radiodifuzorul nr. 1 era deja „mai egal” între ceilalți. În Nehalem, comenzile de defilare ciclică (ROL și ROR) cu un operand constant explicit au fost, de asemenea, decodate doar în primul traducător, iar în același ciclu a fost dezactivată al patrulea, astfel încât valoarea IPC a scăzut la 3. S-ar părea - de ce să aducem aici un exemplu atât de rar? Dar tocmai din cauza acestei capturi, pentru a atinge viteza de vârf cu algoritmi de hashing precum SHA-1, a fost nevoie de un layout de instrucțiuni foarte precis, căruia compilatorii nu le puteau face față. În SB, astfel de instrucțiuni au devenit pur și simplu în 2 moduri, astfel încât, luând un traducător complex (care este deja unul), ele se comportă aproape de nediferențiat pentru CPU, dar mai previzibile pentru oameni și compilator. Cu nops, s-a întâmplat invers. Cache sus

Goluri și predecesori

Nu degeaba am separat acest capitol de restul descrierii frontului - adăugarea uop cache-ului demonstrează clar calea pe care a ales-o Intel pentru toate procesoarele sale, începând cu Core 2. Acesta din urmă, pentru prima dată ( pentru Intel), a adăugat un bloc care a atins simultan două, se pare, obiective conflictuale: creșterea vitezei și economisirea energiei. Vorbim despre coada de comenzi (IQ) dintre predecodor și decodor, care a stocat apoi până la 18 comenzi cu o lungime de până la 64 de octeți în total. Dacă ar netezi doar diferența dintre ratele de pregătire și decodare a comenzilor (ca un buffer obișnuit), beneficiul ar fi mic. Dar Intel s-a gândit să atașeze o unitate LSD mică la IQ (este puțin probabil ca băieții să „accepteze” ceva, doar au genul ăsta de umor) - Loop Stream Detector, „detector de flux ciclic”. Când este detectat un ciclu care se încadrează în 18 instrucțiuni, LSD-ul dezactivează toate etapele anterioare (predictor, cache L1I și predecodor) și pune în coadă instrucțiunile pentru ciclu la decodor până când acesta se termină sau până când se face o tranziție dincolo de limitele sale (apelează și returnează). nu sunt acceptabile). Acest lucru economisește energie prin dezactivarea blocurilor temporar inactive și crește performanța datorită unui flux garantat de 4 comenzi/ciclu pentru decodor, chiar dacă acestea au fost „echipate” cu cele mai incomode prefixe.

În mod evident, Intel i-a plăcut această idee, așa că circuitul a fost optimizat pentru Nehalem: IQ-ul a fost duplicat (pentru două fire), iar între decodor și dispecer (adică, exact la granița din față și din spate) două cozi IDQ de 28 uops fiecare au fost plasate, iar unitatea LSD a fost mutată la ei. Acum, când ciclul este blocat, decodorul este și el oprit, iar performanța a crescut, inclusiv datorită afluxului garantat de nu 4 comenzi, ci 4 uops pe ciclu de ceas, chiar dacă generarea lor a fost efectuată cu un minim (pentru Core 2/i) la un tempo de 2 mop/bataie. Fanii furioși ai taberei Opposite, care ridică o secundă din distracția lor preferată, vor introduce imediat un ac de păr: dacă LSD-ul este un lucru atât de bun, de ce nu a fost încorporat în Atom? Iar trucul este corect - având o coadă de 32 de moduri după decodor, Atom nu știe cum să blocheze un ciclu în el, ceea ce ar fi foarte util pentru a economisi miliwați prețioși. Cu toate acestea, Intel nu avea de gând să renunțe la idee și a pregătit o actualizare pentru noile procesoare, și ce grozav!

Numele intern oficial pentru uop cache este DSB (decode stream buffer), deși nu este la fel de descriptiv ca termenul recomandat DIC (decoded instruction cache). Destul de ciudat, nu înlocuiește, ci completează cozile IDQ, care sunt acum conectate la decodor sau cu un cache de up-uri. În timpul predicției următoarei ramuri, adresa țintă este verificată simultan în cache-urile de instrucțiuni și uop. Dacă ultimul funcționează, atunci citirea ulterioară vine de la acesta, iar restul frontului este oprit. Acesta este motivul pentru care memoria cache uop este cache-ul de nivel 0 pentru uops, adică L0m.

Interesant este că această idee poate fi continuată prin apelarea cache-urilor IDQ „minus primul” nivel. :) Dar nu este redundantă o ierarhie atât de complexă în cadrul nici măcar al întregului nucleu, ci doar al frontului? Chiar dacă Intel, prin excepție, nu a cruțat spațiu, dar o pereche de IDQ-uri va aduce economii suplimentare semnificative, având în vedere că atunci când funcționează, doar cache-ul UOP este acum dezactivat, deoarece restul frontului (cu excepția predictorului ) doarme deja? Și nici nu veți obține o creștere mare a vitezei, deoarece memoria cache uop este, de asemenea, configurată să genereze 4 uops/ciclu. Aparent, inginerii Intel au decis că un joc cu 3 niveluri merită lumânarea miliwați.

Pe lângă salvare, memoria cache uop accelerează performanța, inclusiv prin reducerea penalizării pentru predicția falsă a ramurilor: în Nehalem, când a fost găsit codul corect în L1I, penalizarea era de 17 cicluri, în SB - 19, dar dacă codul era găsit în L0m, apoi doar 14. Mai mult, acestea sunt numerele maxime: dacă o tranziție este prezisă în mod fals, planificatorul trebuie să lanseze și să finalizeze operațiunile anterioare în ordinea programului, iar în acest timp L0m poate reuși să pompeze uop-urile corecte. astfel încât planificatorul să aibă timp să le lanseze imediat după ce comenzile sunt eliberate înainte de tranziție. În Nehalem, această tehnică a funcționat cu IDQ și marginea, dar în primul caz probabilitatea ca adresa țintă corectă să fie și în interiorul unui ciclu de 28 de mop este foarte mică, iar în al doilea, încetineala marginii a făcut-o în majoritatea cazurilor. nu permite reducerea întârzierii la zero. SB are șanse mai mari.

Dispozitiv

Din punct de vedere topologic, L0m este format din 32 8 linii (8- ). Fiecare linie stochează 6 uops (în întregul cache - 1536, adică „un kilomop și jumătate”), iar memoria cache poate scrie și citi o linie pe ciclu de ceas. Predictorul produce adrese de blocuri de 32 de octeți și această dimensiune este cea care funcționează pentru L0m, deci sub termenul „porțiune” va însemna un bloc de cod de 32 de octeți aliniat și prezis ca executabil (și nu unul de 16 octeți , ca pentru decodor). La decodare, controlerul L0m așteaptă ca porțiunea să fie procesată până la sfârșit sau până la prima tranziție declanșată în ea (desigur, probabil - aici și mai jos presupunem că predicțiile sunt întotdeauna corecte), acumulând uop-uri în același timp cu trimiterea ei în spate. Apoi fixează punctele de intrare și ieșire ale porțiunii, în funcție de comportamentul tranzițiilor. De obicei, punctul de intrare este adresa țintă a tranziției declanșate în porțiunea anterioară (mai precis, cei 5 biți inferiori ai adresei), iar punctul de ieșire este adresa proprie a tranziției declanșate în această porțiune. Ca ultimă soluție, dacă nu este declanșată o singură tranziție nici în porțiunea anterioară, nici în cea curentă (adică, porțiunile nu sunt doar executate, ci și stocate într-un rând), atunci ambele vor fi executate în întregime - intrarea către ei vor fi pe modul zero și primul octet al primului se potrivește complet în această porțiune a comenzii, iar rezultatul este pe ultimul mop al ultimei comenzi complet potrivite și octetul său inițial.

Dacă o porțiune conține mai mult de 18 uops, nu este stocată în cache. Aceasta setează dimensiunea medie minimă a instrucțiunii (într-o bucată) la 1,8 octeți, ceea ce nu va fi o limitare serioasă în majoritatea programelor. Vă puteți aminti al doilea punct al restricțiilor IDQ - dacă un ciclu se încadrează într-o porțiune, dar durează de la 19 la 28 uops, nici memoria cache L0m, nici coada IDQ nu îl vor remedia, deși ca dimensiune s-ar potrivi oriunde. Cu toate acestea, în acest caz, lungimea medie a comenzilor ar trebui să fie de 1,1–1,7 octeți, ceea ce este extrem de puțin probabil pentru două duzini de comenzi la rând.

Cel mai probabil, porțiunile uops sunt scrise simultan în cache, ocupând 1–3 linii dintr-un set, astfel încât pentru L0m unul dintre principiile principale de funcționare a cache-ului asociat setului este încălcat: de obicei este declanșată o linie a setului. Etichetele de până la trei linii pot primi imediat adresa aceleiași porțiuni, diferind doar prin numerele de serie. Când adresa prezisă atinge L0m, citirea are loc în același mod - sunt declanșate 1, 2 sau 3 căi ale setului dorit. Adevărat, o astfel de schemă este plină de dezavantaje.

Dacă programul executabil în toate porțiunile este decodat în 13–18 uops, ceea ce va lua 3 linii de L0m pentru toate porțiunile, vor fi dezvăluite următoarele: dacă setul curent este deja ocupat de două porțiuni de 3 linii și o a treia încearcă să-i scrie (ceea ce nu va fi suficient pentru o singură linie) , va trebui să înlocuiți unul dintre cei vechi și ținând cont de conectivitatea acestuia - toate cele 3 vechi. Astfel, mai mult de două porțiuni de cod „granul fin” nu ar trebui să încapă în set. La testarea acestei ipoteze în practică, așa s-a întâmplat: porțiuni cu echipe mari, care necesită mai puțin de 7 uops, au fost împachetate în L0m cu numărul 255 (din anumite motive nu a fost posibil să se ia alta), încadrând aproape 8 KB de cod. Porțiunile din mijloc (7–12 uops) au ocupat toate cele 128 de poziții posibile (2 linii fiecare), memorând în cache exact 4 KB. Ei bine, comenzile mici se potrivesc în 66 de porțiuni, ceea ce este cu două mai mult decât valoarea așteptată (2112 octeți față de 2048), ceea ce se explică aparent prin efectele limită ale codului nostru de testare. Lipsa este evidentă - dacă 256 de linii 6-op ar putea fi umplute complet, acestea ar fi suficiente pentru 85 de tripleți complet cu o dimensiune totală a codului de 2720 de octeți.

Poate că Intel nu se așteaptă ca într-un cod să existe atât de multe comenzi scurte și simple, încât mai mult de 2/3 din ele vor fi în porțiuni de 3 linii, ceea ce se va forța reciproc să iasă din L0m mai devreme decât este necesar. Și chiar dacă se întâlnește un astfel de cod, având în vedere simplitatea decodării acestuia, blocurile rămase din față pot face față cu ușurință sarcinii de a furniza cele 4 uops/ciclu necesare pentru spate (deși fără economiile promise în wați și cicluri de penalizare. pentru predicție falsă). Este curios că dacă L0m ar avea 6 poteci nu s-ar pune problema. Intel a decis că a avea o dimensiune a cache-ului cu o treime mai mare tocmai datorită asociativității este mai important...

Dimensiuni

Să ne amintim că ideea de a stoca în cache un număr mare de uops în loc de comenzi x86 nu este nouă. A apărut pentru prima dată în Pentium 4 sub forma unui cache de urme uop - secvențe de uops după despachetarea buclei. Mai mult, memoria cache de urmărire nu a completat, dar a înlocuit lipsa L1I - comenzile pentru decodor au fost citite imediat din . În ciuda uitării arhitecturii NetBurst, este rezonabil să presupunem că inginerii Intel au folosit experiența trecută, deși fără derularea buclei și un predictor dedicat memoriei cache. Să comparăm soluțiile vechi și noi (noile procesoare se numesc aici Core i 2, deoarece numărul aproape tuturor modelelor cu arhitectură SB încep cu două):

* - probabil

Sunt necesare câteva clarificări aici. În primul rând, debitul pentru L0m este specificat ținând cont de limitarea generală a lățimii transportorului de 4 uopas. Mai sus am presupus că L0m poate citi și scrie 18 uops pe ciclu de ceas. Cu toate acestea, la citire, toate cele 18 (dacă au fost exact atât de multe la decodificarea porțiunii originale) nu pot fi trimise într-un ciclu de ceas, iar trimiterea are loc în mai multe cicluri de ceas.

În plus, dimensiunea mopului în biți se referă în general la informații foarte sensibile pe care producătorii fie nu le dau deloc, fie doar atunci când sunt apăsate de perete (se spune că ați calculat deja totul, așa să fie - vom confirma) . Pentru procesoarele Intel, ultima cifră cunoscută în mod fiabil este de 118 biți pentru Pentium Pro. Este clar că dimensiunea a crescut de atunci, dar de aici începe presupunerile. 118 biți pentru un procesor x86 pe 32 de biți pot fi obținuți dacă mop-ul are câmpuri pentru adresa instrucțiunii care l-a generat (32 de biți), operand imediat (32 de biți), decalaj de adresă (32 de biți), operanzi de registru (3 x 3 biți + 2 biți pe scară pentru registrul index) și opcode (11 biți în care este codificată o versiune specifică a comenzii x86, ținând cont de prefixe). După adăugarea , și SSE2, câmpul opcode probabil a crescut cu 1 bit, de unde și numărul 119.

După trecerea la (Prescott și nu numai), în teorie, toate câmpurile de 32 de biți ar trebui să crească la 64 de biți. Dar există câteva subtilități aici: constantele pe 64 de biți în x86-64 sunt permise doar una câte una (adică, ambele constante din comandă cu siguranță nu vor ocupa mai mult de 8 octeți), iar atunci și acum încă se descurcă cu 48 de biți. Deci, pentru a crește dimensiunea uop-ului este necesar doar 16 biți de adresă și 3 biți suplimentari de numere de registru (dintre care sunt 16) - obținem (aproximativ) 138 de biți. Ei bine, în SB, UOP-ul a crescut aparent cu încă 1 bit datorită adăugării a câteva sute de comenzi de la ultimul P4 și cu alte 8 - datorită creșterii numărului maxim de registre specificate în mod explicit într-o comandă la 5 ( când utilizați AVX). Acesta din urmă, totuși, este îndoielnic: de atunci, imaginați-vă, nici un singur i386 nu a fost adăugat la arhitectura x86. nou o comandă care necesită cel puțin 4 octeți de constantă (cu singura excepție recentă și extrem de subtilă din SSE4.a de la AMD, de care nici cei mai mulți programatori nu sunt conștienți). Și deoarece Intel AVX și AMD au actualizat codificarea numai instrucțiunilor vectoriale, biții numerelor de registru suplimentare se vor potrivi în jumătatea superioară a câmpului operand imediat pe 32 de biți parțial neutilizat (pentru aceste instrucțiuni). Mai mult, în instrucțiunea x86 în sine, al 4-lea sau al 5-lea registru este codificat cu doar patru biți constanți.

Evident, depozitarea și expedierea unor astfel de „monstri” în orice cantitate mare este foarte costisitoare. Prin urmare, chiar și pentru P4, Intel a venit cu o versiune scurtată a uop-ului, în care există un singur câmp pentru ambele constante și, dacă nu se potrivesc acolo, atunci biții lipsă sunt plasați în același câmp al uop-ului adiacent. . Cu toate acestea, dacă își stochează deja constantele acolo, atunci trebuie să insereze nop ca vecin ca donor-purtător de biți suplimentari. Continuitatea acestei scheme se observă și în SB: nodurile suplimentare nu sunt inserate, dar comenzile cu constante de 8 octeți (sau cu suma dimensiunilor unei constante și un offset de adresă de 5–8 octeți) au o dimensiune dublă în L0m. Cu toate acestea, având în vedere lungimea unor astfel de comenzi, mai mult de 4 dintre ele nu se vor încadra într-o porțiune, astfel încât limitarea uopurilor ocupate nu este în mod clar critică. Totuși, menționăm: SB, spre deosebire de procesoarele anterioare, are până la 3 formate uop - decodabile (cel mai complet), stocate în memoria cache uop (cu reducere constantă) și cel principal (fără un câmp de registru index), utilizat în continuare în conducta. Cu toate acestea, majoritatea mopurilor trec intacte de la decodare la retragere.

Restricții

„Regulile de utilizare a memoriei cache” nu se termină cu formatul special de mop. Evident, un bloc atât de convenabil ca L0m nu ar putea fi complet fără restricții de un grad sau altul, despre care nu ni s-a spus în materialele promoționale. :) Să începem cu faptul că toate uop-urile comenzii traduse trebuie să se potrivească pe o linie, altfel sunt transferate pe următoarea. Acest lucru se poate explica prin faptul că adresele line uop-urilor sunt stocate separat (pentru a salva 48 de biți în fiecare uop), iar toate uop-urile generate de o comandă trebuie să corespundă adresei primului său octet, stocat în eticheta unui singur octet. linia. Pentru a restabili adresele originale, lungimile comenzilor care au generat uop-urile sunt stocate în etichete. „Intoleranța” uops strica oarecum eficiența utilizării L0m, deoarece comenzile care apar ocazional care generează mai multe uops au șanse semnificative să nu se potrivească în următoarea linie.

Mai mult, mop-urile celor mai complexe comenzi sunt încă stocate în ROM cu microcod și doar primele 4 uop-uri ale secvenței, plus un link către continuare, sunt incluse în L0m, astfel încât totul împreună să ocupe o linie întreagă. Rezultă din aceasta că nu pot apărea mai mult de trei comenzi de microcod într-o porțiune și, având în vedere dimensiunea medie a comenzii, limita mai probabilă ar fi două. În realitate, însă, se întâlnesc mult mai rar.

Un alt punct important - L0m nu are propriile sale. Se pare că acest lucru ar trebui să grăbească verificarea adreselor (care sunt doar virtuale) și să reducă consumul de energie. Dar totul este mult mai interesant - nu degeaba au toate cache-urile moderne. Spațiile de adrese virtuale ale programelor executate în sistemul de operare se pot suprapune, așa că la comutarea contextului sarcinii, pentru a nu citi date sau coduri vechi la aceleași adrese, trebuie resetat cache-ul virtual adresabil (exact asta s-a întâmplat cu P4-urile). cache de urme). Desigur, eficacitatea sa va fi scăzută. Unele arhitecturi folosesc așa-numitul. ASID (identificatorul spațiului de adresă) sunt numere unice atribuite de sistemul de operare fiecărui fir. Cu toate acestea, x86 nu acceptă ASID ca fiind inutil - având în vedere prezența etichetelor fizice pentru toate cache-urile. Dar apoi a venit L0m și a perturbat imaginea. Mai mult, amintiți-vă că memoria cache uop, la fel ca majoritatea resurselor kernelului, este împărțită între două fire, așa că va conține uops diferite programe. Și dacă adăugați comutarea între sistemele de operare virtuale în modul corespunzător, atunci modificările celor două programe se pot potrivi ca adresă. Ce să fac?

Problema cu firele de execuție este rezolvată simplu - L0m este pur și simplu împărțit la jumătate în seturi, astfel încât numărul firului să ofere bitul cel mai semnificativ din numărul setului. În plus, L1I are o politică de stocare relativă la L0m. Prin urmare, atunci când codul este eliminat din L1I, uop-urile sale sunt, de asemenea, eliminate din L0m, ceea ce necesită verificarea a două porțiuni adiacente (dimensiunea liniei tuturor cache-urilor CPU-urilor moderne, fără a număra L0m în sine, este de 64 de octeți). Astfel, adresa virtuală din uop-urile stocate în cache poate fi întotdeauna verificată în etichetele L1I folosind TLB-ul său. Se pare că, deși L0m are adresare virtuală, împrumută etichete fizice pentru cod de la L1I. Cu toate acestea, există o situație în care L0m este complet resetat - și înlocuirea în L1I TLB, precum și resetare completă(inclusiv la comutarea modurilor de operare CPU). În plus, L0m este complet dezactivat dacă adresa de bază a selectorului de cod (CS) nu este zero (ceea ce este extrem de puțin probabil în sistemele de operare moderne).

Loc de munca

Secretul principal al cache-ului uop este un algoritm care înlocuiește munca frontului în procesarea comenzilor în uop-uri cu citiri din L0m. Începe cu faptul că în timpul următoarei tranziții, L0m folosește biții 5–9 ai adresei țintei de tranziție pentru a selecta un set (sau biții 5–8 plus numărul firului - cu 2 fire). Etichetele setului indică punctul de intrare în porțiune, ale cărui modificări sunt scrise în linia corespunzătoare etichetei și număr de serie această linie din porție. Se pot potrivi 1-3 linii, care sunt (cel mai probabil) citite simultan într-un tampon cu 18 mop. De acolo, mopurile sunt trimise în patru la IDQ până când se ajunge la punctul de ieșire - și totul se repetă din nou. Mai mult, atunci când ultimele 1–3 uop-uri dintr-o porțiune rămân netrimise, acestea sunt trimise cu primele 3–1 uop-uri ale noii porțiuni, făcând un total de patru obișnuite. Adică, din punctul de vedere al cozii IDQ de primire, toate tranzițiile sunt netezite într-un flux uniform de cod - ca în P4, dar fără un cache de urme.

Și acum un punct interesant - nu sunt permise mai mult de două tranziții într-o linie, iar dacă una dintre ele este necondiționată, atunci va fi ultima pentru linie. Cititorul nostru Atent își va da seama că pentru întreaga porțiune este permis să existe până la 6 tranziții condiționate (fiecare dintre acestea poate funcționa fără a fi un punct de ieșire), sau 5 condiționate și 1 necondiționată, care va fi ultima comandă a porțiunii. Predictorul de ramură din procesorul Intel este proiectat astfel încât să nu observe o ramură condiționată până când se declanșează cel puțin o dată și abia atunci va fi prezis comportamentul său. Dar chiar și tranzițiile „veșnice” sunt, de asemenea, supuse restricțiilor. De fapt, aceasta înseamnă că este permisă finalizarea execuției porțiunilor uops și inainte de punctele sale de ieșire.

Dar un truc similar cu intrări multiple nu va funcționa - dacă are loc o tranziție către o porțiune deja stocată în cache, dar la un offset diferit în ea (de exemplu, când există mai multe tranziții necondiționate), atunci L0m înregistrează ratarea, pornește fata si scrie uop-urile primite intr-o noua portiune. Adică sunt permise copii în cache pentru porțiuni cu intrări diferite și aceeași ieșire, exact cunoscută (pe lângă alte câteva posibile). Și când codul este deplasat de la L1I la L0m, toate liniile ale căror puncte de intrare se încadrează în oricare dintre cei 64 de octeți ai două porțiuni sunt șterse. Apropo, au fost posibile și copii în memoria cache de urmărire P4 și au redus semnificativ eficiența stocării codului...

Astfel de restricții reduc disponibilitatea spațiului de L0m. Să încercăm să calculăm cât de mult rămâne pentru utilizarea efectivă. Dimensiunea medie a instrucțiunii x86-64 este de 4 octeți. Numărul mediu de mopuri per echipă este de 1,1. Adică, cel mai probabil vor fi 8-10 mop pe porție, adică 2 linii. După cum sa calculat anterior, L0m va putea stoca 128 de astfel de perechi, ceea ce este suficient pentru 4 KB de cod. Cu toate acestea, având în vedere utilizarea neideală a șirurilor, numărul real va fi probabil 3–3,5 KB. Mă întreb cum se potrivește acest lucru în echilibrul general al volumelor subsistemului cache?

  • 1 (de fapt parte din L3, în medie per nucleu) - 2 MB;
  • L2 - 256 KB, de 8 ori mai puțin;
  • ambele L1 - 32 KB fiecare, de 8 ori mai puțin;
  • Volumul stocat în cache în L0m este de aproximativ 10 ori mai mic.

Este curios că, dacă găsiți o altă structură în nucleu care stochează multe comenzi sau uop-uri, atunci se va dovedi a fi coada de dispecer ROB, care poate găzdui 168 uop-uri, generate de aproximativ 650–700 de octeți de cod, adică 5. de ori mai mic decât volumul echivalent efectiv L0m (3– 3,5 KB) și de 9 ori mai mic decât cel complet (6 KB). Astfel, memoria cache uop completează ierarhia ordonată a diferitelor depozite de cod cu parametri diferiți, dar bine echilibrați. Intel susține că, în medie, 80% dintre accesări se încadrează în L0m. Aceasta este semnificativ mai mică decât cifra de 98–99% pentru un cache L1I de 32 KB, dar totuși, în patru din cinci cazuri, memoria cache uop își justifică prezența.

Revizuirea sa detaliată este pe site-ul nostru web (cu toate acestea, suportul pentru starea de somn profund C6 și memoria de joasă tensiune LV-DDR3 a apărut doar în Westmere). Ce a apărut în SB?

În primul rând, al doilea tip de senzori de temperatură. O diodă termică convențională, ale cărei citiri sunt „văzute” de BIOS și utilități, măsoară temperatura pentru a regla viteza ventilatorului și pentru a proteja împotriva supraîncălzirii (prin limitarea frecvenței și, dacă asta nu ajută, o oprire de urgență a procesorului) . Cu toate acestea, aria sa este foarte mare, deoarece există doar unul dintre ele în fiecare nucleu (inclusiv GPU) și în agentul de sistem. La acestea, în fiecare bloc mare, se adaugă mai multe circuite analogice compacte cu tranzistoare termice. Au un interval de măsurare de funcționare mai mic (80–100 °C), dar sunt necesare pentru a clarifica datele diodei termice și pentru a construi o hartă precisă de încălzire a cristalului, fără de care noile funcții ale TB 2.0 nu pot fi implementate. În plus, controlerul de putere poate folosi chiar și un senzor extern dacă producătorul plăcii de bază plasează și conectează unul - deși nu este complet clar cum ar ajuta asta.

A fost adăugată o funcție pentru renumerotarea stărilor C, pentru care istoricul tranzițiilor dintre ele este urmărit pentru fiecare nucleu. Tranziția durează mai mult, cu atât „numărul de somn” în care intră sau iese nucleul este mai mare. Controlerul determină dacă are sens să adormiți miezul, ținând cont de probabilitatea ca acesta să se „trezească”. Dacă se așteaptă unul în curând, atunci în loc de sistemul de operare solicitat, nucleul va fi transferat la C3 sau, respectiv, C1, adică la mai multe stare activă, care intră mai repede în producție. Destul de ciudat, în ciuda consumului mai mare de energie într-un astfel de vis, economiile generale ar putea să nu aibă de suferit, deoarece ambele sunt reduse perioade de tranziție, timp în care procesorul nu dorm deloc.

Pentru modelele mobile, transferul tuturor nucleelor ​​pe C6 face ca cache-ul L3 să fie resetat și dezactivat folosind tastele de pornire comune băncilor. Acest lucru va reduce și mai mult consumul în timpul inactiv, dar este plin de întârziere suplimentară la trezire, deoarece nucleele vor trebui să rateze L3 de câteva sute sau mii de ori în timp ce datele și codul necesar sunt pompate acolo. Evident, în combinație cu funcția anterioară, acest lucru se va întâmpla doar dacă controlerul este absolut sigur că CPU-ul adoarme mult timp (după standardele de timp ale procesorului).

Core i3/i5 din generația anterioară au fost un fel de deținători de recorduri în ceea ce privește cerințele de complexitate ale sistemului de alimentare a procesorului de pe placa de bază, necesitând până la 6 tensiuni - mai precis, toate cele 6 erau acolo înainte, dar nu toate. a mers la procesor. În SB s-au schimbat nu după număr, ci după utilizare:

  • nuclee x86 și L3 - 0,65–1,05 V (în Nehalem L3 este separat);
  • GPU - în mod similar (în Nehalem aproape întreg podul de nord, care, să ne amintim, a fost al doilea cip CPU acolo, este alimentat de o magistrală comună);
  • un agent de sistem în care frecvența este fixă ​​și tensiunea este constantă 0,8, 0,9 sau 0,925 V (primele două opțiuni sunt pentru modele mobile), sau reglabilă dinamic 0,879–0,971 V;
  • - constant 1,8 V sau reglabil 1,71–1,89 V;
  • driver de magistrală de memorie - 1,5 V sau 1,425–1,575 V;
  • Driver PCIe - 1,05 V.

Versiunile reglementate ale șinelor de alimentare sunt utilizate în versiunile SB deblocate cu litera K. La modelele desktop, frecvența inactivă a nucleelor ​​x86 este crescută de la 1,3 la 1,6 GHz, aparent fără a sacrifica economiile. În același timp, un procesor cu 4 nuclee consumă 3,5–4 W când este complet inactiv. Versiunile mobile sunt inactive la 800 MHz și cer și mai puțin. Modele și chipset-uri

Performanţă

Ce face acest capitol ca o prezentare teoretică a microarhitecturii? Și adevărul este că există un test general acceptat care a fost folosit timp de 20 de ani (în diferite versiuni) pentru a evalua nu viteza teoretică, ci viteza realizabilă prin software a computerelor - SPEC CPU. El poate evalua în mod cuprinzător performanța procesorului și, în cel mai bun caz, pentru el - atunci când codul sursă al testelor este compilat și optimizat pentru sistemul testat (adică, compilatorul cu biblioteci este, de asemenea, verificat în trecere). Prin urmare, util programele vor fi mai rapide doar cu inserții scrise de mână în limbaj de asamblare, ceea ce doar câțiva programatori curajoși fac astăzi, cu mult timp de pierdut. SPEC poate fi clasificat ca teste semi-sintetice, deoarece nu calculează nimic util și nu oferă numere specifice (IPC, flops, timpi etc.) - „papagalii” unui CPU sunt necesari doar pentru comparație cu altele.

Intel lansează de obicei rezultate pentru procesoarele sale aproape imediat ce sunt lansate. Dar a fost o întârziere de neînțeles de 3 luni cu SB, iar cifrele primite în martie sunt încă preliminare. Ce anume îi reține nu este clar, dar aceasta este încă mai bună decât situația cu AMD, care nu a lansat-o deloc rezultate oficiale ultimele lor procesoare. Următoarele cifre pentru Opteron provin de la producătorii de servere care utilizează compilatorul Intel, astfel încât aceste rezultate pot fi suboptimizate: Ce Instrumentele software Intel pot face cu codul care rulează pe un procesor „străin”, . ;)


Comparația sistemelor în testele SPEC CPU2006. Tabel alcătuit de David Kanter pe baza datelor din martie 2011.

În comparație cu procesoarele anterioare, SB arată rezultate excelente (la propriu) în cele absolute și chiar record pentru fiecare nucleu și gigahertz. Activarea HT și adăugarea a 2MB la L3 oferă +3% viteză reală și +15% viteză întreagă. Cu toate acestea, modelul cu 2 nuclee are cea mai mare viteză specifică, iar aceasta este o observație instructivă: evident, Intel a folosit AVX, dar din moment ce câștiguri întregi nu pot fi încă obținute, ne putem aștepta la o accelerare bruscă doar a indicatorilor reali. Dar nici pentru ei nu există nici un salt, așa cum arată o comparație a modelelor cu 4 nuclee - iar rezultatele pentru i3-2120 dezvăluie motivul: având aceleași 2 canale ICP, fiecare nucleu primește de două ori lățimea de bandă a memoriei, ceea ce se reflectă în o creștere cu 34 la sută a vitezei reale specifice. Aparent, memoria cache L3 de 6–8 MB este prea mică, iar scalarea propriului PS folosind magistrala inelă nu mai ajută. Acum este clar de ce Intel intenționează să echipeze serverele Xeon cu ICP-uri cu 3 și chiar 4 canale. Doar cele 8 nuclee de acolo nu sunt deja suficiente pentru a se dezvolta pe deplin...

Adăugare: Au apărut rezultatele finale SB - cifrele (cum era de așteptat) au crescut puțin, dar concluziile calitative sunt aceleași. Perspective și rezultate

Despre succesorul de 22 de nanometri al Sandy Bridge, apărut în primăvara lui 2012, numit Podul de Iedera(„pod de iederă”) se cunosc deja multe. Nucleele de uz general vor suporta un subset ușor actualizat de AES-NI; Este foarte posibil să copiați registre „gratuit” în etapa de redenumire. Nu sunt de așteptat îmbunătățiri în Turbo Boost, dar GPU-ul (care, apropo, va funcționa pe toate versiunile de chipset) va crește număr maxim FU până la 16 va accepta conectarea nu a două, dar trei ecrane, va câștiga în sfârșit suport normal pentru OpenCL 1.1 (împreună cu DirectX 11 și OpenGL 3.1) și va îmbunătăți capacitățile hardware de procesare video. Cel mai probabil, în modelele desktop și mobile, IKP va suporta o frecvență de 1600 MHz, iar controlerul PCIe va suporta versiunea de bus 3.0. Principala inovație tehnologică este că memoria cache L3 va folosi (pentru prima dată în producția de microelectronice de masă!) tranzistori cu o gate-fin multi-sided (FinFET) amplasată vertical, care s-au îmbunătățit radical. caracteristici electrice(detalii într-unul dintre articolele viitoare). Există zvonuri că versiunile GPU vor deveni din nou multi-cip, doar că de această dată vor adăuga unul sau mai multe cristale de memorie video rapide la procesor.

Ivy Bridge se va conecta la noi chipseturi (de ex. poduri de sud) Seria 70: Z77, Z75 și H77 pentru acasă (înlocuind Z68/P67/H67) și Q77, Q75 și B75 pentru birou (în loc de Q67/Q65/B65). Ea(adică cipul fizic sub denumiri diferite) nu va avea în continuare mai mult de două porturi SATA 3.0, iar suportul USB 3.0 va apărea în sfârșit, dar cu un an mai târziu decât concurentul. Suportul PCI încorporat va dispărea (după 19 ani este timpul ca autobuzul să se retragă), dar controlerul subsistem de disc Z77 și Q77 vor primi tehnologia Smart Response pentru a crește performanța prin memorarea în cache a discurilor cu folosind SSD. Cu toate acestea, cea mai incitantă veste este că, în ciuda bun vechi tradiție, versiunile desktop ale Ivy Bridge nu vor fi doar plasate în același soclu LGA1155 ca SB, dar vor fi și compatibile cu acestea - de exemplu. placi moderne Se va potrivi și cu un procesor nou.

Ei bine, pentru entuziaști, deja în al 4-lea trimestru al acestui an va fi gata un chipset X79 mult mai puternic (pentru SB-E cu 4–8 nuclee pentru socket-ul LGA2011 „server-extreme”). Nu va avea încă USB 3.0, dar vor exista deja 10 din 14 porturi SATA 3.0 (plus suport pentru 4 tipuri de RAID), iar 4 din 8 benzi PCIe pot fi conectate la CPU în paralel cu DMI, dublând CPU- conexiune chipset. Din păcate, X79 nu se va potrivi cu 8-core Ivy Bridge.

Ca o excepție (și poate o nouă regulă), nu vom oferi o listă cu ceea ce am dori să îmbunătățim și să reparăm în Sandy Bridge. Este deja evident că orice schimbare este un compromis complex - strict conform legii conservării materiei (cum a fost formulată de Lomonosov): dacă ceva a ajuns undeva, atunci undeva se va pierde aceeași cantitate. Dacă Intel s-a grăbit să corecteze erorile celei vechi cu fiecare arhitectură nouă, atunci numărul de lemn spart și așchii zburătoare ar putea depăși beneficiile primite. Prin urmare, în loc de extreme și de un ideal de neatins, este mai profitabil din punct de vedere economic să cauți un echilibru între cerințele în continuă schimbare și uneori opuse.

În ciuda unor pete, noua arhitectură ar trebui nu numai să strălucească puternic (ceea ce, judecând după teste, face), dar și să le eclipseze pe toate precedentele - atât pe a sa, cât și pe cea a rivalului său. Obiectivele de performanță și economie anunțate au fost atinse, cu excepția optimizării pentru setul AVX, care este pe cale să apară în versiuni noi ale programelor populare. Și atunci Gordon Moore va fi din nou surprins de prevederea sa. Aparent, Intel este pe deplin pregătit pentru Epic Battle între arhitecturi pe care o vom vedea anul acesta.

Recunoștința este exprimată către:

  • Maxim Loktyukhin, același „reprezentant Intel”, angajat al departamentului de optimizare software și hardware - pentru răspunsuri la numeroase întrebări clarificatoare.
  • Mark Buxton, inginer principal de software și șef de optimizare, pentru răspunsurile sale, precum și pentru oportunitatea de a obține un fel de răspuns oficial.
  • Agner Fog, programator și cercetător procesor - pentru testarea independentă de nivel scăzut a SB, care a dezvăluit o mulțime de lucruri noi și misterioase.
  • Pentru cititorul atent - pentru atenție, perseverență și sforăit puternic.
  • Pentru fanii înfocați ai taberei Opposite, este o explozie.

În cele din urmă, Intel a anunțat oficial noi procesoare care rulează pe o nouă microarhitectură Podul de nisip. Pentru majoritatea oamenilor, „anunțul Sandy Bridge” este doar cuvinte, dar în general, generația Intel Core ll este, dacă nu o nouă eră, atunci cel puțin o actualizare a aproape întregii piețe de procesoare.


Inițial s-a raportat că vor fi lansate doar șapte procesoare, dar pe pagina cea mai utilă ark.intel.com au apărut deja informații despre toate noile produse. Mai erau câteva procesoare, sau mai degrabă modificările acestora (în paranteze am indicat prețul aproximativ - cât ar costa fiecare procesor dintr-un lot de 1000 de bucăți):

Mobil:

Intel Core i5-2510E (~266 USD)
Intel Core i5-2520M
Intel Core i5-2537M
Intel Core i5-2540M

Comparație vizuală detaliată a procesoarelor mobile Intel Core i5 de a doua generație.

Intel Core i7-2617M
Intel Core i7-2620M
Intel Core i7-2629M
Intel Core i7-2649M
Intel Core i7-2657M
Intel Core i7-2710QE (~378 USD)
Intel Core i7-2720QM
Intel Core i7-2820QM
Intel Core i7-2920XM Extreme Edition

Comparație vizuală detaliată a procesoarelor mobile Intel Core i7 de a doua generație.

Masa:

Intel Core i3-2100 (~117 USD)
Intel Core i3-2100T
Intel Core i3-2120 (138 USD)

O comparație vizuală și detaliată a procesoarelor desktop Intel Core i3 de a doua generație.

Intel Core i5-2300 (~177 USD)
Intel Core i5-2390T
Intel Core i5-2400S
Intel Core i5-2400 (~184 USD)
Intel Core i5-2500K (~216 USD)
Intel Core i5-2500T
Intel Core i5-2500S
Intel Core i5-2500 (~205$)

O comparație vizuală și detaliată a procesoarelor desktop Intel Core i5 de a doua generație.

Intel Core i7-2600K (~317 USD)
Intel Core i7-2600S
Intel Core i7-2600 (~ 294 USD)

O comparație vizuală și detaliată a procesoarelor desktop Intel Core i7 de a doua generație.

După cum puteți vedea, numele modelelor au acum patru cifre în nume - acest lucru se face pentru a evita confuzia cu procesoarele din generația anterioară. Gama s-a dovedit a fi destul de completă și logică - cele mai interesante serii i7 sunt clar separate de i5 prin prezența tehnologiei Hyper Threadingși mărimea memoriei cache. Iar procesoarele din familia i3 diferă de i5 nu numai prin numărul mai mic de nuclee, ci și prin lipsa tehnologiei Turbo Boost.

Probabil ați observat și literele din numele procesoarelor, fără de care gama era mult redusă. Deci, aici sunt scrisorile SȘi T vorbim despre consum redus de energie și LA– multiplicator gratuit.

Structura vizuală a noilor procesoare:

După cum puteți vedea, pe lângă nucleele grafice și de calcul, memoria cache și controlerul de memorie, există așa-numitul Agent de sistem– multe lucruri sunt aruncate acolo, de exemplu, controlere de memorie DDR3 și PCI-Express 2.0, un model de management al energiei și blocuri care sunt responsabile la nivel hardware de funcționarea GPU-ului încorporat și de ieșirea imaginii atunci când este folosit.

Toate componentele „de bază” (inclusiv procesorul grafic) sunt interconectate printr-o magistrală inel de mare viteză cu acces complet la memoria cache L3, datorită căreia viteza generală de schimb de date în procesorul însuși a crescut; Ceea ce este interesant este că această abordare vă permite să creșteți performanța în viitor, pur și simplu prin creșterea numărului de nuclee adăugate la magistrală. Deși și acum totul promite să fie la cel mai bun grad - în comparație cu procesoarele din generația anterioară, performanța celor noi este mai adaptabilă și, potrivit producătorului, în multe sarcini poate demonstra o creștere cu 30-50% a vitezei de execuție a sarcinilor. !

Dacă doriți să aflați mai multe despre noua arhitectură, atunci vă pot recomanda aceste trei articole în limba rusă - , , .

Noile procesoare sunt fabricate în întregime conform tehnologiei de proces de 32 nm și au pentru prima dată o microarhitectură „inteligentă vizual” care combină cea mai bună putere de calcul din clasă și tehnologia de procesare grafică 3D pe un singur cip. Există într-adevăr o mulțime de inovații în grafica Sandy Bridge, care vizează în principal creșterea performanței atunci când lucrați cu 3D. Se poate argumenta mult timp despre „impunerea” unui sistem video integrat, dar nu există o altă soluție ca atare. Dar există acest slide din prezentarea oficială, care se pretinde a fi plauzibil, inclusiv în produsele mobile (laptop-uri):

Am vorbit deja parțial despre noile tehnologii ale celei de-a doua generații de procesoare Intel Core, așa că nu mă voi repeta. Mă voi concentra doar pe dezvoltare Intel Insider, a cărui înfățișare mulți au fost surprinși. Din câte am înțeles, acesta va fi un fel de magazin care va oferi proprietarilor de computere acces la filme de înaltă definiție, direct de la creatorii acestor filme - ceva ce a apărut anterior doar la ceva timp după anunțul și apariția DVD-ului sau Blu-ray. discuri. Pentru a demonstra această caracteristică, Intel Vice President Muli Eden(Mooly Eden) invitat pe scenă Kevin Tsujiharu(Kevin Tsujihara), președintele Warner Home Entertainment Group. Citez:

« Warner Bros. Găsește sistemele personale cea mai versatilă și răspândită platformă pentru furnizarea de conținut de divertisment de înaltă calitate, iar acum Intel face platforma și mai fiabilă și mai sigură. De acum înainte, cu ajutorul magazinului WBShop, precum și al partenerilor noștri precum CinemaNow, vom putea oferi utilizatorilor de PC noi lansări și filme din catalogul nostru la o calitate HD adevărată.„- Muli Eden a demonstrat funcționarea acestei tehnologii folosind exemplul filmului „Inception”. În colaborare cu studiouri de top din industrie și giganți media (cum ar fi Best Buy CinemaNow, Hungama Digital Media Entertainment, Image Entertainment, Sonic Solutions, Warner Bros. Digital Distribution și alții), Intel creează un ecosistem (hardware) sigur și rezistent la piraterie pentru distribuția, stocarea și redarea videoclipurilor de înaltă calitate.

Funcționarea tehnologiei menționate mai sus va fi compatibilă cu două dezvoltări nu mai puțin interesante, care sunt prezente și în toate modelele de procesoare de nouă generație. Vorbesc despre (Intel WiDi 2.0) și Intel InTru 3-D. Prima este pentru transmisie fără fir Video HD (suporta rezoluții de până la 1080p), al doilea este conceput pentru a afișa conținut stereo pe monitoare sau televizoare de înaltă definiție printr-o conexiune HDMI 1.4.

Încă două funcții pentru care nu am găsit un loc mai potrivit în articol - Intel Advanced Vector Extensions(AVX). Suportul procesorului pentru aceste comenzi îmbunătățește viteza aplicațiilor cu consum mare de date, cum ar fi editorii audio și software pentru editare foto profesională.

… Și Intel Quick Sync Video- mulțumită lucrand impreuna Cu companii de software precum CyberLink, Corel și ArcSoft, gigantul procesoarelor a reușit să mărească performanța acestei sarcini (transcodare între formatele H.264 și MPEG-2) de 17 ori față de performanța generației anterioare de grafică integrată.

Să presupunem că există procesoare - cum să le folosești? Așa este - împreună cu acestea, au fost anunțate și noi chipset-uri (seturi logice), care sunt reprezentanți ai seriei „șazecea”. Aparent, doar două seturi sunt rezervate consumatorilor însetați de produse noi, acestea sunt Intel H67Și Intel P67, pe care vor fi construite majoritatea plăcilor de bază noi. H67 este capabil să lucreze cu un nucleu video integrat în procesor, în timp ce P67 este echipat cu funcția Performance Tuning pentru overclockarea procesorului. Toate procesoarele vor funcționa în noul soclu, 1155 .


Mă bucur că noile procesoare par a fi compatibile cu soclu-urile pentru procesoare Intel cu arhitectura de generație următoare. Acest plus va fi util ca utilizatorii obișnuiți, și producătorii care nu vor trebui să reproiecteze și să creeze noi dispozitive.

În total, Intel a prezentat peste 20 de cipuri, chipset-uri și adaptoare wireless, inclusiv noi procesoare Intel Core i7, i5 și i3, chipset-uri Intel 6 Series și adaptoare Intel Centrino Wi-Fi și WiMAX. Pe lângă cele menționate mai sus, pe piață pot apărea următoarele „insigne”:

În acest an, se așteaptă să lanseze peste 500 de modele de computere desktop și laptop-uri de la cele mai importante mărci din lume pe procesoare noi.

Și în sfârșit, încă o dată un videoclip minunat, în cazul în care cineva nu l-a văzut:

Cele mai bune articole pe această temă