Ce este platforma x86. Procesoare moderne desktop x86

(mod real)

Modul clasic de adresare utilizat în primele modele ale familiei. Folosește un model de memorie segmentat organizat după cum urmează: spațiul de adresă 1MiB este împărțit în blocuri de 16 octeți numite paragrafe. Total paragrafe în 1 MiB - 65536, ceea ce le permite să fie numerotate cu numere de 16 biți. Segmentele de memorie au o dimensiune de 65536 octeți și încep întotdeauna de la limita unui paragraf. Adresa de localizare a memoriei constă din două părți: numărul de paragraf de la care începe segmentul și compensările din segment și este scris de obicei ca SSSS: OOOO, unde S și O sunt cifre hexazecimale. SSSS se numește componenta de adresă a segmentului și OOOO se numește offset. Adresa celulei raportată la magistrală este componenta segmentului ori 16 plus decalajul. Componenta segmentului este plasată într-un registru special numit segment, iar offsetul este plasat în registrul IP (registrul de instrucțiuni). Microprocesoarele 8086/8088, 80186/80188 și 80286 aveau patru registre de segmente, adică puteau funcționa simultan cu patru segmente de memorie care au un scop specific. În 80386, au fost adăugate încă două care nu aveau un scop special.

  • Registre de segmente și scopul acestora:
    • CS- Segment de cod. Folosit pentru preluarea comenzilor de program;
    • DS- Segment de date. Folosit în mod implicit pentru accesul la date;
    • ES- Segment suplimentar. Receptor de date în comenzi de procesare șir;
    • SS- Segmentul stivei. Folosit pentru a găzdui stiva software;
    • FS- Registr de segment suplimentar. Nu are un scop special. Introdus în procesorul 80386;
    • GS- Similar cu precedentul, dar în noile procesoare cu arhitectură pe 64 de biți are un statut special: poate fi folosit pentru comutarea rapidă a contextului.

În ciuda faptului că registrele de segmente au scopuri speciale, arhitectura permite înlocuirea unui segment cu oricare altul la accesarea datelor. Segmentele de cod, stivă și receptor primesc întotdeauna registrele CS, SS și ES și nu pot fi modificate. Cantitatea totală de memorie adresată în modul real este de 1.048.576 octeți (0000: 0000-F000: FFFF (00000-FFFFF) este adresa logică (adresa fizică) din sistem hexazecimal socoteală). Abordarea pe segmente vă permite să împărțiți toată memoria în 16 segmente, începând de la adrese care sunt multipli de 64 KB. Aceste 16 segmente se numesc pagini de memorie. De obicei, paginarea este utilizată pentru funcționarea comună a dispozitivelor ale căror interfețe sunt mapate la spațiul de adrese de memorie; apoi fiecare astfel de dispozitiv folosește o pagină de memorie, iar adresa celulei din spațiul de adresă al dispozitivului va coincide cu decalajul din segmentul de memorie al computerului. Deci, în computerele IBM, paginile 11-15 sunt folosite ca „memorie video” (spațiul de adresă al adaptorului video), iar cea de-a șaisprezecea pagină (situată la adresele FFFF: 0000 - FFFF: FFFF) este numită „High Memory Area” ", care ulterior MS-DOS a folosit pentru a-și aloca nucleele și bufferele I / O, lăsând mai multă memorie" normală " programe de aplicare... Astfel, memoria reală disponibilă utilizatorului este de 640 KB (primele 10 pagini).

De asemenea, în modul real, nu există protecție a memoriei și diferențierea drepturilor de acces, deci practic nu este folosită. Acesta este modul implicit pentru toate modelele familiei de procesoare x86.

Mod protejat

Un mod mai avansat, introdus pentru prima dată în procesorul 80286 și îmbunătățit în continuare de multe ori. Are un numar mare de sub-moduri prin care puteți urmări evoluția familiei CPU. Acest mod acceptă protecția memoriei, contexte de activitate și instrumente pentru organizarea memoriei virtuale. Similar modului real, aici se folosește și un model de memorie segmentată, dar deja organizat conform unui principiu diferit: nu există diviziune în paragrafe, iar locația segmentelor este descrisă de structuri speciale (tabele descriptoare) situate în memorie cu acces aleator... În plus față de adresa de bază a segmentului, descriptorii conțin dimensiunea segmentului (mai precis, offsetul maxim disponibil) și diverse atribute de segment care sunt utilizate pentru a proteja memoria și a determina drepturile de acces la segment pentru diferite module de program. Există două tipuri de tabele descriptor: global și local. Tabelul global descrie segmentele sistem de operareși structuri de date partajate. Se poate defini un tabel local pentru fiecare sarcină specifică (proces). Segmentele de memorie sunt, de asemenea, selectate cu aceleași registre de segmente; cu toate acestea, în locul unui număr de paragraf, registrul de segmente conține o structură specială (selector) care conține indexul descriptorului din tabel. Descriptorul în sine este încărcat din memorie într-un registru intern (cache) inaccesibil programatic, legat de fiecare registru de segmente și încărcat automat în momentul modificării acestuia.

Fiecare modul de program, executat într-un mod protejat, este determinat de segmentul său de cod, interogat de registrul CS, care determină privilegiile sale de a accesa date și alte module. Există 4 niveluri de privilegii 0,1,2 și 3, numite inele de protecție. Inelul 0 este cel mai preferat. Este destinat modulelor kernel ale sistemului de operare. Ring 3 este cel mai puțin privilegiat și este pentru programele de utilizator. Inelele 1 și 2 sunt utilizate numai de unele sisteme de operare. Segmentele de date au, de asemenea, atribute de permisiune, care oferă acces doar la coduri cu aceleași privilegii sau mai mari. Sistemul de sonerie vă permite să distribuiți flexibil accesul la cod și date.

Procesorul 80386, care a apărut în 1985, a devenit pe 32 de biți spre deosebire de predecesorii săi. În el, a devenit posibil să se adreseze până la memorie 4GiB, ceea ce a făcut posibilă crearea unor segmente de memorie în dimensiune în întregul spațiu de adrese. Prin urmare, noile sisteme de operare au folosit un model degenerat de organizare a memoriei, atunci când toate segmentele încep de la adresa zero. Acest model se numește model de memorie plană, iar adresa este specificată printr-un număr întreg de 32 de biți (deși este de fapt un offset în segmentul degenerat), iar segmentele în sine sunt utilizate exclusiv pentru organizarea protecției de-a lungul inelelor de privilegii.

Modul virtual 8086 (V86)

Este un submod protejat, dar folosește un model de adresă similar modului real. Folosit pentru a rula programe vechi 8086 pe sisteme de operare moderne. Spre deosebire de modul real, unde toate programele au acces la toată memoria (apelul 0), în modul V86 programul este executat în ringul 3 (cel mai puțin privilegiat), iar excepțiile și întreruperile sunt gestionate de rutine normale ale modului protejat.

Moduri mixte

MMU segmentat al procesoarelor moderne, în ciuda diferențelor cardinale dintre cele două moduri principale, funcționează într-un mod similar în ambele. Acest lucru vă permite să organizați moduri non-standard care nu sunt descrise în documentația oficială, dar uneori foarte utile atunci când scrieți programe. Deoarece se știe că cache-urile descriptorului intern sunt utilizate în toate modurile și acestea sunt folosite pentru a adresa memoria, dacă înțelegeți logica funcționării lor, este posibil să încărcați valori non-standard pentru modul curent în lor. În special, puteți crea un tabel descriptor în modul real, setați steagul PE, încărcați registrele de segmente în modul protejat și apoi ștergeți imediat steagul PE. Până la următoarea reîncărcare a registrului de segmente, cache-ul descriptorului său va conține o valoare corespunzătoare modului protejat și, dacă a fost încărcat corect, va fi posibil să se adreseze până la memorie de 4GiB. Astfel de moduri non-standard au fost denumite în mod colectiv modul Unreal și sunt utilizate în mod activ de BIOS-ul computerelor personale. Trebuie remarcat faptul că procesorul 80286 a avut și capacitatea de a încărca valori non-standard ale cache-ului descriptorului utilizând comanda LOADALL nedocumentată ceea ce a fost deosebit de important, deoarece procesorul 80286 nu a permis ștergerea steagului PE (modul protejat a fost ieșit prin resetarea procesorului, ceea ce a afectat performanța).

Memoria paginării

Începând cu procesoarele 80386, a apărut un MMU puternic care vă permite să organizați maparea paginilor de memorie, care a fost un alt motiv pentru trecerea la un model plat cu apariția computerului pe 32 de biți. Folosind traducerea paginilor, sistemul de operare își poate crea propriul spațiu de adrese liniar pentru fiecare proces; de asemenea, fiecare pagină are atribute de permisiuni. Doar spre deosebire de segmente, există doar 2 astfel de niveluri: utilizator și supraveghetor. Dar pentru majoritatea sistemelor de operare moderne, acest lucru este suficient. Trebuie remarcat faptul că MMU Paged este disponibil numai în modul securizat.

Extensii

PAE

În procesoarele ulterioare pe 32 de biți (începând cu Pentium Pro), a apărut PAE (Physical Address Extension) - o extensie de adresă memorie fizică până la 36 de biți (64 GB RAM adresabil). Această modificare nu a afectat gradul de sarcină al sarcinilor - au rămas pe 32 de biți.

MMX

„Multimedia” suplimentar (eng. Extensii multi-media) un set de instrucțiuni care efectuează mai multe acțiuni tipice pentru codificarea / decodarea fluxului de date audio / video într-o singură instrucțiune a mașinii. A apărut prima dată în procesoarele Pentium MMX. Oferă numai calcule întregi.

SSE

3DNow!

Un set de instrucțiuni pentru procesarea în flux a numerelor cu virgulă mobilă de o singură precizie. Suportat de procesoare AMD începând cu K6-2. Procesoarele Intel nu sunt acceptate.

Instrucțiuni 3DNow! utilizați registre MMX ca operanzi (două numere cu o singură precizie sunt plasate într-un singur registru), prin urmare, spre deosebire de SSE, atunci când comutați sarcini, nu trebuie să salvați separat contextul 3DNow !.

Mod pe 64 de biți

La începutul anilor 2000, a devenit evident că spațiul de adrese pe 32 de biți al arhitecturii x86 limitează performanța aplicațiilor mari cu date mari. Spațiul de adrese pe 32 de biți permite procesorului să adreseze direct doar 4 GB de date, ceea ce poate fi insuficient pentru unele aplicații precum procesarea video sau întreținerea bazei de date.

Pentru a rezolva această problemă, Intel a dezvoltat o nouă arhitectură, IA-64, care este nucleul familiei de procesoare Itanium. Pentru compatibilitate inversă cu aplicațiile vechi pe 32 de biți, IA-64 a fost prevăzut cu un mod de emulare. În practică, însă, acest mod de funcționare s-a dovedit a fi extrem de lent. AMD a propus o soluție alternativă la problema creșterii bitității procesorului. În loc să inventeze complet nou sistem comenzi, s-a propus introducerea unei extensii pe 64 de biți la arhitectura x86 pe 32 de biți deja existentă. Inițial, noua arhitectură a fost numită x86-64, ulterior a fost redenumită AMD64. Noul set de instrucțiuni a fost inițial susținut de familiile de procesoare AMD Opteron, Athlon 64 și Turion 64. Succesul procesorelor care utilizează tehnologia AMD64, alături de interesul persistent pentru arhitectura IA-64, au determinat Intel să licențieze setul de instrucțiuni AMD64. În același timp, au fost adăugate o serie de instrucțiuni specifice care nu erau prezente în setul original AMD64. O nouă versiune arhitectura a fost numită EM64T.

În literatură și numele versiunilor produselor lor, Microsoft și Sun utilizează convenția de denumire combinată AMD64 / EM64T atunci când fac referire la versiunile pe 64 de biți ale sistemelor lor de operare Windows și, respectiv, Solaris. În același timp, furnizorii de software pentru sistemele de operare GNU / Linux, BSD folosesc etichetele „x86-64” sau „amd64”, Mac OS X folosește eticheta „x86_64” dacă este necesar să subliniem că acest software folosește 64 -instrucțiuni de biți.

Virtualizare

Procesoare

Procesoare Intel

Procesorul i8086 pe 16 biți a fost creat în iunie 1978. La început a funcționat la 4,77 MHz, apoi la 8 și 10 MHz. A fost fabricat folosind tehnologia de 3 microni și avea 29.000 de tranzistori.

Puțin mai târziu, în 1979, a fost dezvoltat i8088, care funcționa la aceleași frecvențe ca i8086, dar a folosit o magistrală de date pe 8 biți (magistrala procesorului intern a rămas pe 16 biți) pentru a asigura o mai mare compatibilitate cu perifericele utilizate la de data asta ... Datorită prețului său mai mic, a fost utilizat pe scară largă în primele sisteme IBM PC în loc de 8086.

/80188

În plus, blocul MMX a fost adăugat la nucleul Pentium II.

Celeron

Celeron este o modificare simplificată a procesoarelor Pentium II / III / IV / Core / Core 2 pentru construirea de computere ieftine. Primul Celeron (nucleul Covington, 266/300 MHz) a fost un Pentium II, lipsit de un cache L2 și un cartuș de plastic. Placă de circuit imprimat a fost, de asemenea, simplificat. Acest pachet se numește SEPP (Sinlge Edge Processor Package). Drept urmare, aceste procesoare au avut performanțe deprimante performanta slaba, deși au fost foarte ieftine și au adăugat cu ușurință până la 50% din frecvență în timpul overclockării. Toate variantele ulterioare ale acestui procesor aveau un cache L2 integrat cu frecvență completă. Principalele diferențe dintre procesoarele Celeron sunt în mărimea acestei cache și frecvența magistralei, precum și deseori în latența crescută a accesului la memoria cache în raport cu procesorul original.

Un fapt interesant: a doua modificare Celeron (nucleul Mendochino, 300..533 MHz) a demonstrat performanțe mai mari în multe sarcini decât Pentium II la aceeași frecvență. Acest lucru s-a datorat faptului că memoria cache mică (128 KB) Mendochino a fost localizată pe aceeași matriță cu nucleul și a funcționat la frecvența nucleului, în timp ce memoria cache mare (512 KB) Pentium II a fost amplasată suficient de departe de nucleu și a funcționat la jumătate din frecvență. Intel nu a permis mai multe astfel de greșeli și toate celeronele ulterioare sunt garantate să fie mai lente decât procesoarele cu drepturi depline din aceeași generație.

Pentium III (i686)

Pentium III, fabricat inițial folosind procesul de fabricație de 0,18 microni, diferă de P2 în principal prin adăugarea de instrucțiuni SSE. Procesoarele ulterioare ale acestei serii au fost fabricate conform procesului tehnologic de 0,13 microni, au primit o memorie cache cu frecvență completă integrată în cristalul central (mai întâi 256 KB, apoi 512 KB) și au servit ca prototip pentru procesoarele Pentium M. Au fost produse atât în ​​construcții SECC / SECC2 (Slot 1), cât și FCPGA-370 (PGA-370).

Pentium 4

Un nou procesor de hiperpipelining cu o conductă în 20 de etape. Potrivit Intel, procesoarele bazate pe această tehnologie pot realiza o creștere a frecvenței de aproximativ 40% față de familia P6 cu același proces tehnologic (cu încărcarea procesorului „corectă”). În practică, primele modele au funcționat chiar mai lent decât Pentium III. Mai târziu adăugat cu suport pentru cod pe 64 de biți.

Core / Core 2

După eșecul ultimei generații de procesoare Pentium 4 pe nucleul Tejas, s-a decis să apelăm la o altă ramură de produse. Noile procesoare se bazează pe un nucleu Pentium M. reproiectat. Astfel, nucleul P6, folosit în procesoarele Pentium Pro, și-a continuat evoluția, crescând frecvența de la 150 MHz la 3,2 GHz și achiziționând o nouă magistrală de sistem, suport pentru instrucțiuni multi-core, multimedia.

Procesoarele de bază sunt o soluție de nucleu unic și dual pentru computerele notebook care execută cod pe 32 de biți.

Procesoarele Core 2 sunt disponibile atât în ​​versiunea desktop, cât și în versiunea mobilă, includ o serie de îmbunătățiri microarhitecturale și sunt capabile să execute cod pe 64 de biți. Numărul de nuclee variază de la unu la patru.

Core i3 / Core i5 / Core i7 / Core i9

Dezvoltarea ulterioară a ideilor întruchipate în Procesoare de bază 2. După ce a păstrat designul de bază al nucleelor ​​procesorului, primul Core i7 apărut a primit o structură modulară care vă permite să variați cu ușurință numărul acestora, un controler de memorie integrat (DDR3 cu trei canale în segmentul high-end și DDR3 cu două canale în mainstream) și o nouă magistrală care conectează procesorul la chipset. Îmbunătățirile microarhitecturale permit Core i7 să funcționeze mai bine decât Core 2 la frecvențe egale. S-a acordat multă atenție problemei eficienței energetice a noului procesor.

Mai târziu, au apărut Core i5 / i7 mai ieftin cu un controler de memorie dual-channel și patru nuclee, apoi - Core i3 / i5 cu două nuclee și un nucleu video integrat. Anunțul unor procesoare mai puternice cu un controler de memorie cu trei canale și șase nuclee - Core i9 este, de asemenea, de așteptat.

Atom

Procesoare single-dual și ieftine, ultra-eficiente, concepute pentru a fi utilizate în așa-numitele calculatoare de rețea- netbook-uri și netops (computere în care puterea de calcul este sacrificată în favoarea economiei, a liniștii și a dimensiunilor mici). Se bazează pe un nucleu modificat de la primele Pentiums, care a fost adaptat la noul proces tehnic, a adăugat capacitatea de a executa coduri pe 64 de biți și instrucțiuni multimedia, precum și memorie cache de nivel secundar și suport pentru executarea multi-thread ( SMT, un analog al Hyper Threading). Pentru a simplifica proiectarea, s-a decis abandonarea executării în afara comenzii a comenzilor, care a avut un impact negativ asupra performanței.

Xeon

O familie de procesoare axate pe servere și calcul multithread.

Primul reprezentant al acestei familii se baza pe arhitectura Pentium II și era un cartuș cu o placă de circuite imprimate pe care erau montate nucleul, memoria cache L2 și eticheta cache. Montat în slotul 2.

Modern Xeons se bazează pe arhitectura Core2 / Core i7.

Procesoare AMD

Am8086 / Am8088 / Am186 / Am286 / Am386 / Am486

Clone ale respectivelor procesoare Intel. De obicei au fost produse cu o frecvență maximă cu un pas mai mare decât cea a originalului. Deci, Am386DX a fost produs cu o frecvență maximă de 40 MHz, în timp ce i386DX - 33 MHz. Până la 486DX2-66, nu existau alte diferențe între procesoare. Era imposibil să distingem programatic aceste procesoare.

5x86

Clona i486. În timp ce Intel s-a oprit la 100 MHz pentru i486, AMD a lansat procesoare cu frecvențe de până la 133 MHz. De asemenea, acestea s-au diferențiat printr-o dimensiune crescută a memoriei cache de primul nivel (16 KB) și un multiplicator (× 4).

Analogii Pentium. Primele procesoare dezvoltate de AMD independent. În ciuda superiorității operațiunilor întregi față de omologii Intel (un număr de tehnologii de a șasea generație au fost utilizate în nucleul acestui procesor), performanța unității în virgulă mobilă a fost semnificativ inferioară în performanță la procesoarele Pentium cu aceeași viteză de ceas. În plus, a existat o slabă compatibilitate cu software-ul de la unii producători. Neajunsurile lui K5 au fost extrem de exagerate în diferite discuții online și alte discuții informale și au contribuit la deteriorarea (în general nedreaptă) a reputației produsului AMD în rândul utilizatorilor de mult timp.

Lansat în aprilie 1997. Fundamental nou Procesor AMD pe baza unui nucleu achiziționat de la NexGen. Acest procesor avea o construcție a cincea generație, dar aparținea celei de-a șasea generații și era poziționat ca un concurent la Pentium II. Include o unitate MMX și o unitate FPU ușor reproiectată. Cu toate acestea, aceste blocuri funcționau încă cu 15-20% mai lent decât cele ale procesoarelor Intel cu aceeași frecvență. Procesorul avea 64 KB de cache L1.

În general, performanța comparabilă cu Pentum II, compatibilitatea cu plăcile de bază mai vechi și un început mai devreme (AMD a introdus K6 cu o lună mai devreme decât Intel a introdus P-II) a făcut-o destul de populară, dar problemele de producție ale AMD au stricat în mod semnificativ reputația acestui procesor .

K6-2

Dezvoltarea ulterioară a nucleului K6. Aceste procesoare au adăugat suport pentru setul de instrucțiuni specializate 3DNow! ... Cu toate acestea, performanța reală sa dovedit a fi semnificativ mai mică decât cea a Pentium IIs cu o frecvență similară (acest lucru s-a datorat faptului că creșterea performanței cu creșterea frecvenței în P-II a fost mai mare datorită cache-ului intern) și K6 -2 ar putea concura doar cu Celeron. Procesorul avea 64 KB de cache L1.

K6-III

Mai reușită din punct de vedere tehnologic decât K6-2, este o încercare de a crea un analog al Pentium III. Cu toate acestea, nu a avut niciun succes de marketing. Diferă în prezența memoriei cache de 64 KB a primului nivel și a 256 KB de cache a celui de-al doilea nivel în nucleu, ceea ce i-a permis să depășească în performanță la o frecvență de ceas egală Intel Celeronși nu foarte semnificativ inferioară Pentium III timpuriu.

Analog al lui K6-III cu PowerNow! ... A fost inițial destinat laptopurilor, dar a fost instalat și în sistemele desktop.

Un analog al lui K6-III + cu o memorie cache de al doilea nivel redusă la 128 Kbyte.

Athlon

Un procesor de mare succes, datorită căruia AMD a reușit să-și restabilească poziția aproape pierdută pe piața microprocesorelor. Cache-ul de primul nivel este de 128 KB. Inițial, procesorul a fost produs într-un cartuș cu o memorie cache L2 (512 KB) pe placă și instalat în slotul A, care este compatibil mecanic, dar nu electric cu slotul 1 al Intel. Apoi a fost instalat în soclul A și avea 256 KB de cache L2 în nucleu. În ceea ce privește viteza, este un analog aproximativ al lui Pentium III.

Duron

Celeron rival al generațiilor Pentium III / Pentium 4. Diferă de Athlon în dimensiunea cache L2 (doar 64 KB), dar integrat în cristal și funcționează la frecvența de bază. Performanța este vizibil mai mare decât cea a Celeronilor similari și, în multe sarcini, se potrivește cu Pentium III.

Athlon XP

Dezvoltarea continuă a arhitecturii Athlon. În ceea ce privește viteza, este similar cu Pentium 4. Comparativ cu un Athlon obișnuit, a fost adăugat suport pentru instrucțiunile SSE.

Sempron

Versiune mai ieftină (datorită memoriei cache L2 redusă) a procesoarelor Athlon XP și Athlon 64.

Primele modele Sempron au fost reetichetate cipuri Athlon XP bazate pe nuclee Thoroughbred și Thorton cu 256 KB de cache L2 și rulează pe o magistrală 166 (333 DDR). Mai târziu, sub marca Sempron, versiunile reduse ale Athlon 64 / Athlon II au fost (și sunt încă în curs de lansare), poziționate ca concurenți la Intel Celeron. Toate Semprons au un cache L2 dezactivat; modelele Socket 754 mai tinere aveau Cool & quiet și x86-64 blocat; Modelele Socket 939 aveau un mod de memorie dual-channel blocat.

Opteron

Primul procesor care acceptă arhitectura x86-64.

Athlon 64

Primul procesor non-server care acceptă arhitectura x86-64.

Athlon 64 X2

O continuare a arhitecturii Athlon 64, are 2 nuclee de procesare.

Athlon FX

Are reputația de a fi „cel mai rapid procesor pentru jucării”. Este, de fapt, un procesor de server Opteron 1xx pe socluri desktop fără suport de memorie înregistrată. Produs în loturi mici. Este mult mai scump decât omologii „de masă”.

Fenomen

Dezvoltarea ulterioară a arhitecturii Athlon 64, este produsă în versiuni cu două nuclee (Athlon 64 X2 Kuma), trei (Phenom X3 Toliman) și patru (Phenom X4 Agena).

Fenomenul II

Prima versiune se bazează pe nucleul Joshua, moștenit de VIA împreună cu echipa de dezvoltare Cyrix.

A doua versiune este cu kernel-ul Samuel, dezvoltat pe baza încă inedită WinChip -3 IDT. S-a remarcat prin absența memoriei cache L2 și, prin urmare, un nivel extrem de scăzut de performanță.

A treia versiune este cu kernelul Samuel-2, o versiune îmbunătățită a kernelului anterior, echipată cu un cache L2. Procesorul a fost fabricat folosind o tehnologie mai fină și a avut un consum mai mic de energie. După lansarea acestui kernel, marca VIA Cyrix III a cedat în cele din urmă VIA C3.

A patra versiune este cu nucleul Ezra. A existat și o variantă a Ezra-T, adaptată pentru a funcționa cu un autobuz conceput pentru procesoarele Intel cu nucleul Tualatin. Dezvoltare ulterioară către economisirea de energie.

VIA C7

Dezvoltarea ulterioară a VIA C3. Miez Esther (C5J), pachet - nanoBGA2 (21x21 mm), lipit direct pe placă. Hardware adăugat Asistență sigură Sunt acceptate criptarea Hash SHA-1 și SHA-256 și RSA, suport NX-bit, MMX, SSE, SSE2 și SSE3. Reducere suplimentară a consumului de energie la frecvențe de operare de până la 2 GHz. Bus propriu de sistem (VIA V4 800 MHz) pentru comunicarea cu chipset-ul. Disponibil și în versiunile pentru mobil (VIA C7-M) și desktop (VIA C7-D).

VIA Eden ESP

O soluție integrată care include un procesor VIA C3 cu un nucleu Nehemiah C5P și o punte nordică a chipset-ului cu grafică UMA integrată. Are un consum extrem de redus de energie (până la 7 W la 1 GHz). Disponibil în frecvențe de la 300 MHz (VIA Eden ESP 3000) la 1 GHz (VIA Eden ESP 10000). Podurile sudice compatibile sunt VT8235M, VT8237R + (cu suport SATA), VT8251 (2 × 1 PCI-E) și VIA 686B.

VIA CoreFusion

Dezvoltarea în continuare a ideilor VIA Eden ESP. Este produs în două versiuni - VIA Mark și VIA Luke, care diferă prin nucleul video integrat, tipul de memorie acceptat și frecvențele de operare. Pentru VIA Mark este S3 Graphics ProSavage4 / SDR PC133 / 533/800 MHz, iar pentru VIA Luke este VIA UniChrome Pro / DDR PC3200 / 533/800/1000 MHz. Poduri sud compatibile: VT8235M, VT8237R + (cu suport SATA), VT8251 (2 × 1 PCI-E) și VIA 686B.

VIA Nano

Primul procesor VIA x86-64 bazat pe nucleul Isaiah. Compatibil cu VIA C7. Disponibil în frecvențe de la 1 GHz la 1,8 GHz. Consumul de energie al modelului de 1,6 GHz - până la 17 wați când este încărcat complet. Printre inovații se numără executarea extraordinară a instrucțiunilor. Poziționat ca concurent la Intel Atom.

Procesoare NEC

Am produs o serie de procesoare, dintre care unele (nucleul V20 / V30) erau software compatibil cu ambele. Comutarea între modurile de operare a fost efectuată folosind trei instrucțiuni suplimentare. În hardware, arătau ca o versiune puternic accelerată sau.

Procesoarele bazate pe nucleul V33 nu au un mod de emulare 8080, dar au acceptat, cu două instrucțiuni suplimentare, un mod de adresare extins.

Procesoare NexGen

Nx586

În martie 1994, a fost introdus procesorul NexGen Nx586. Acesta a fost poziționat ca un concurent la Pentium, dar inițial nu avea un coprocesor încorporat. Utilizarea propriului autobuz a presupus nevoia de a utiliza propriile chipset-uri, NxVL (VESA Local Bus) și NxPCI 820C500 (PCI) și o priză de procesor incompatibilă. Chipset-urile au fost dezvoltate în colaborare cu VLSI și Fujitsu. Nx586 era un procesor suprascalar și putea executa două instrucțiuni pe ceas. Memoria cache L1 era separată (16 KB pentru instrucțiuni + 16 KB pentru date). Controlerul cache L2 a fost integrat în procesor, în timp ce cache-ul în sine era localizat placa de baza... La fel ca Pentium Pro, Nx586 a fost intern un procesor RISC. Lipsa suportului pentru instrucțiunile CPUID în primele versiuni ale acestui procesor a dus la faptul că a fost definit programatic ca un procesor rapid 386. De asemenea, a fost legat de faptul că Windows 95 a refuzat să fie instalat pe computere cu astfel de procesoare. Pentru a rezolva această problemă, am folosit utilitate specială(IDON.COM), care a introdus Nx586 în Windows ca procesor de clasă 586. Nx586 a fost produs la instalațiile IBM.

Coprocesorul Nx587 FPU a fost, de asemenea, dezvoltat și montat din fabrică deasupra matriței procesorului. Aceste „ansambluri” au fost etichetate Nx586Pf. Când s-a notat performanța modelului Nx586, s-a folosit calificativul P - de la PR75 (70 MHz) la PR120 (111 MHz).

Următoarea generație de procesoare NexGen, care nu a fost niciodată lansată, a servit totuși ca bază pentru AMD K6.

Pentru mulți utilizatori de săli de operație Sisteme Windows nu este un secret faptul că există două versiuni ale acestuia în funcție de tipul de adâncime de biți. Este pe 32 de biți și pe 64. Toată lumea trebuie să cunoască bititatea sistemului de operare, deoarece atunci când caută și descarcă drivere, programe și jocuri, este luată în considerare.

Dar există o oarecare confuzie cu denumirile bitității sistemului, precum și cu driverele și programele. Există trei denumiri pentru dimensiuni pe doi biți - x32, x64 și x86. Din acest motiv, apare adesea întrebarea versiunea pe 32 de biți este x64 sau x86?

Răspunsul la această întrebare îl veți găsi în acest articol.

A doua denumire a versiunii software pe 32 de biți

Pentru a elimina în continuare confuzia dintre denumirile bitității software-ului, care include sistemul de operare, driverele, programele și jocurile, amintiți-vă că există două versiuni principale ale bitității software-ului - 32 de biți și 64 de biți. Versiunea pe 64 de biți poate fi desemnată doar ca x64, în timp ce versiunea pe 32 de biți poate fi desemnată atât x32, cât și x86.

Iată un exemplu de versiune pe 64 de biți a unui driver de laptop pe site-ul său oficial:

Si aici opțiuni posibile Notare versiune pe 32 biți:

Desemnarea adâncimii de biți de pe site împreună cu driverele

Desemnarea biților în descrierea programului

Din toate cele de mai sus, putem concluziona că versiunea pe 32 de biți a software-ului este x86.

x64 se referă la versiunea pe 64 de biți a unor programe software. Luați în considerare acest lucru atunci când selectați versiunea de drivere și orice alte programe.

Pentru a vizualiza bitimea sistemului de operare, faceți clic dreapta pe pictograma „Computer” de pe desktop și selectați „Proprietăți”.

Astăzi, nimeni nu va fi surprins de faptul că o fotografie de familie preferată, stocată și protejată de surprize insidioase sub forma, de exemplu, a apei de la vecinii ghinioniști de la etajul superior care au uitat să închidă robinetul, poate fi un fel a unui set de numere de neînțeles și, în același timp, să rămână o fotografie de familie. Calculatorul de acasă a devenit la fel de obișnuit ca și caseta cu ecran albastru. Nu aș fi surprins dacă PC-ul de acasă va fi în curând echivalat cu aparatele electrice de uz casnic. Apropo, „motorul progresului”, familiar tuturor Intel și ne profețește, promovând ideea unei case digitale.
Deci, computerul personal și-a ocupat nișa în toate sferele vieții umane. Apariția și formarea sa ca parte integrantă a modului de viață a devenit deja istorie. Când vorbim despre PC-uri, ne referim la sistemele compatibile cu PC-urile IBM și, pe bună dreptate. Puțini dintre cititori au văzut vreodată un sistem care nu este compatibil cu computerul IBM, cu ochii lor, cu atât mai puțin unul folosit.

Toate computerele IBM și computerele compatibile se bazează pe procesoare x86. Sincer, uneori mi se pare că aceasta nu este doar arhitectura procesorului, ci arhitectura întregului PC, precum ideologia structurii sistemului ca întreg. Este dificil de spus cine a tras pe cine, indiferent dacă dezvoltatorii de echipamente periferice și produse finale s-au adaptat la arhitectura x86 sau, dimpotrivă, au modelat direct sau indirect căile de dezvoltare ale procesoarelor x86. Istoria x86 nu este o cale pavată, ci un set de pași ai dezvoltatorilor de „severitate” și geniu diferiți, puternic legați de factori economici. Nu este necesar să cunoașteți istoria procesoarelor x86. Este pur și simplu inutil să comparăm procesorul realității de astăzi cu strămoșii săi străvechi. Dar, pentru a urmări tendințele generale de dezvoltare și a încerca să faceți o prognoză, este necesară o excursie în trecutul istoric al arhitecturii x86. Desigur, o lucrare istorică serioasă poate dura mai mult de un volum și este lipsit de sens să ne prefacem că avem o acoperire obiectivă și largă a subiectului. Prin urmare, nu vom intra în urcușurile și coborâșurile „timpului de viață” al fiecărei generații de procesoare x86, ci ne vom limita la cele mai importante evenimente din întreaga epopee a x86.

1968 an
Patru persoane la Fairchild Semiconductor: Bob Noyce, manager și inventator al circuitului integrat în 1959, Gordon Moore, care a condus cercetarea și dezvoltarea, Andy Grove, specialist în inginerie chimică, și Arthur Rock, care a oferit sprijin financiar, au fondat Intel. Acest nume este derivat din Integral Electronic.


1969 an
Fost director de marketing la Fairchild Semiconductor Jerry Sanders și mai mulți dintre asociații săi au fondat AMD (Advanced Micro Devices), care se ocupa cu producția de dispozitive microelectronice.

1971 an
În timp ce îndeplinea una dintre comenzile pentru microcircuitele RAM, angajatul Intel Ted Hoff a propus să creeze un IC „inteligent” universal. Dezvoltarea a fost condusă de Federico Fagin. Ca urmare, s-a născut primul microprocesor Intel 4004.

1978 an
Întreaga perioadă înainte de aceasta este o preistorie, deși inseparabilă de evenimentele care au avut loc mai târziu. Era x86 a început anul acesta - de către Intel a fost creat microprocesorul i8086, care avea frecvențe de 4.77.8 și 10MHz. Frecvențe amuzante? Da, acestea sunt frecvențele calculatoarelor moderne, dar totul a început cu ele. Cipul a fost fabricat folosind tehnologia de 3 microni și avea un design intern pe 16 biți și o magistrală pe 16 biți. Adică a apărut suportul pe 16 biți și, prin urmare, sistemele și programele de operare pe 16 biți.
Puțin mai târziu, în același an, a fost dezvoltat i8088, diferența principală fiind autobuzul de date extern pe 8 biți, care asigura compatibilitatea cu legarea pe 8 biți și memoria utilizată anterior. De asemenea, motivul favorizării sale a fost relativ compatibilitatea cu i8080 / 8085 și Z-80 preț scăzut... Oricum, IBM a ales i8088 ca procesor pentru primul său computer. De atunci, procesorul Intel va deveni o parte integrantă a computerului personal, iar computerul însuși va fi numit mult timp IBM PC.

Anul 1982
I80286 anunțat. „Două sute optzeci și șase” a devenit primul procesor x86 care a pătruns în spațiul sovietic și post-sovietic o cantitate mare... Frecvențele de ceas de 6, 8, 10 și 12 MHz au fost fabricate folosind o tehnologie de proces de 1,5 microni și conțineau aproximativ 130.000 de tranzistoare. Acest cip avea suport complet pe 16 biți. Pentru prima dată odată cu apariția i80286, a apărut un astfel de concept ca „modul protejat”, dar apoi dezvoltatorii de software nu și-au folosit capabilitățile la maximum. Procesorul putea adresa mai mult de 1 MB de memorie trecând la modul protejat, dar a fost posibil să reveniți înapoi după o repornire completă, iar accesul la memorie segmentat a necesitat un efort suplimentar semnificativ la scrierea codului de program. Acest lucru a dus la faptul că i80286 a fost folosit mai degrabă ca un i8086 rapid.

Performanța cipului în comparație cu 8086 (și mai ales în comparație cu i8088) a crescut de mai multe ori și a atins 2,6 milioane de operațiuni pe secundă. În acei ani, producătorii au început să utilizeze activ arhitectura deschisă a computerului IBM. În același timp, a început perioada de clonare a procesoarelor x86 de la Intel de către producători terți. Adică, cipul a fost produs de alte companii sub forma unei copii exacte. Intel 80286 a devenit baza pentru cel mai recent PC / AT după aceste standarde și numeroasele sale clone. Principalele avantaje ale noului procesor au fost performanța sporită și modurile de adresare suplimentare. Și principalul lucru este compatibilitatea cu software-ul existent. Bineînțeles, procesorul a fost licențiat și de terți ...
În același an, AMD încheie cu Intel acord de licențiere iar pe baza sa începe producția de clone de procesoare x86.

Anul 1985
Anul acesta a fost probabil cel mai semnificativ eveniment din istoria procesoarelor x86 - Intel a lansat primul procesor i80386. A devenit, s-ar putea spune, revoluționar: un procesor multitasking pe 32 de biți cu capacitatea de a executa simultan mai multe programe. De fapt, cele mai moderne procesoare nu sunt altceva decât rapidele 386. Modern software folosește aceeași arhitectură 386, doar că procesoarele moderne fac același lucru, doar mai repede. Intel 386 ™ este o mare îmbunătățire față de i8086 și i80286. De fapt, cele mai moderne procesoare nu sunt altceva decât rapidele 386. Software-ul modern folosește aceeași arhitectură 386, doar că procesoarele moderne fac același lucru, doar mai repede. Intel 386 ™ este o mare îmbunătățire față de i8086 și i80286. Intel 386 ™ a îmbunătățit semnificativ gestionarea memoriei față de i80286, iar multitasking-ul încorporat a permis dezvoltarea unui sistem de operare Microsoft Windowsși OS / 2.

Spre deosebire de i80286, Intel 386 ™ putea trece liber de la modul protejat la modul real și invers și avea un mod nou - virtual 8086. În acest mod, procesorul putea executa mai multe fire diferite în același timp, deoarece fiecare dintre ele a fost executat pe o mașină 86 „izolată” izolată. Au fost introduse în procesor moduri suplimentare de adresare a memoriei cu lungime de segment variabilă, ceea ce a simplificat foarte mult crearea de aplicații. Procesorul a fost fabricat folosind un proces tehnologic de 1 micron. Pentru prima dată, procesorul Intel a fost introdus de mai multe modele care au format familia 386. Aici începe celebrul joc de marketing Intel, care a dus ulterior la divizarea unui nucleu dezvoltat în două opțiuni de tranzacționare, numite „Pentium pentru bogați, Celeron pentru săraci” într-un anumit cerc de utilizatori și specialiști. Deși ceea ce este rău aici - lupii sunt hrăniți, iar oile sunt în siguranță.
Au fost lansate următoarele modele:

386DX la 16, 20, 25 și 33 MHz avea 4 GB de memorie adresabilă;
386SX cu o frecvență de 16, 20, 25 și 33 MHz, spre deosebire de 386DX, avea o magistrală de date de 16, nu 32 de biți și, în consecință, 16 MB de memorie adresabilă (în mod similar, procesorul i8088 era „Creat” din i8086 prin reducerea lățimii de biți autobuz extern pentru a asigura compatibilitatea cu dispozitivele externe existente);
386SL în octombrie 1990 - versiune mobila Procesor Intel 386SX cu frecvențe de 20 și 25 MHz.

1989 an
Intel Corporation lansează următorul procesor - Intel 486 ™ DX cu frecvențe de 25, 33 și 50 MHz. Intel 486 ™ DX a fost primul procesor din familia 486 și a avut o creștere semnificativă (de peste 2 ori la aceeași frecvență) față de familia 386. Are o memorie cache L1 de 8 KB integrată în cip, iar memoria maximă L2-cache a crescut la 512 Kb. I486DX a integrat o unitate cu virgulă mobilă (FPU), care a fost executată anterior ca un coprocesor matematic extern instalat pe placa de sistem... Este, de asemenea, primul procesor care are o conductă în cinci etape în nucleul său. Astfel, comanda care a trecut prima etapă a conductei, continuând să fie procesată pe a doua, a lansat prima pentru următoarea instrucțiune. În esență, procesorul Intel 486 ™ DX era un Intel 386DX ™ rapid combinat cu un coprocesor matematic și o memorie cache de 8 KB pe o singură matriță. Această integrare a făcut posibilă creșterea vitezei de comunicare între blocuri la valori foarte mari.
Intel a lansat o campanie publicitară cu sloganul „Intel: computerul din interior”. Timpul va trece și ea va deveni faimoasă campanie publicitara Intel Inside.

1991 an
A fost creat propriul procesor AM386 ™ al AMD. Acesta a fost construit parțial sub licență, parțial design intern și a funcționat la o frecvență maximă de 40 MHz, care era mai mare decât cea a unui procesor Intel.
Anterior, primul proces între Intel și AMD a avut loc cu privire la intenția AMD de a vinde clona Intel 386 ™. Intel, care își consolidase ferm poziția, nu mai avea nevoie să distribuie licențe producătorilor terți și nu intenționa să împartă propriul tort cu nimeni. Drept urmare, AMD a intrat pe piața procesorului x86 pentru prima dată ca concurent. Au urmat alte companii. Așa a început marea confruntare continuă dintre cei doi uriași (restul concurenților au părăsit cursa), ceea ce a oferit lumii o mulțime de bine. Sloganul nerostit al concurenților Intel a fost fraza: „la fel ca Intel, dar pentru un preț mai mic”.
În același timp, Intel lansează i486SX, care nu are o unitate FPU (coprocesor integrat) pentru a reduce costul produsului, care, desigur, are un impact negativ asupra performanței. Nu au existat alte diferențe față de i486DX.

1992 an
Odată cu lansarea procesorului Intel 486DX2, multiplicatorul de frecvență al autobuzului a fost utilizat pentru prima dată. Până în acest moment, frecvența internă a miezului era egală cu frecvența magistralei de date externe (FSB), dar a existat o problemă a creșterii acesteia, deoarece autobuzele periferice locale (la vremea respectivă VESA-bus LB) și periferica dispozitivele în sine au prezentat instabilitate la o frecvență care depășește 33 MHz. Acum, cu o frecvență FSB de 33 MHz, viteza de ceas de bază a fost de 66 MHz înmulțindu-se cu 2. Această tehnică a intrat de mult în istorie și este folosită și astăzi, doar multiplicatorul din procesoarele moderne poate depăși 20. Intel 486 ™ DX2 are a devenit un procesor popular pentru o lungă perioadă de timp și a fost vândut în cantități uriașe, totuși, precum și clonele sale de la concurenți (AMD, Cyrix și alții), care acum aveau unele diferențe față de originalul Intel.

1993 an
Primul procesor superscalar x86, adică capabil să execute mai multe instrucțiuni pe ciclu, a fost lansat - Pentium (denumit în cod P5). Acest lucru a fost realizat prin prezența a două transportoare independente paralele. Primele procesoare au fost tactate la 60 și 66 MHz și au primit o magistrală de date pe 64 de biți. Pentru prima dată, memoria cache L1 a fost împărțită în două părți: separat pentru instrucțiuni și date. Dar una dintre cele mai semnificative inovații a fost unitatea complet renovată în virgulă mobilă (FPU). De fapt, înainte de aceasta, nu exista o FPU atât de puternică pe platforma x86 și doar mulți ani după lansarea Intel Pentium, concurenții au reușit să atingă nivelul său de performanță. De asemenea, pentru prima dată, în procesor a fost inclusă o unitate de predicție a ramurilor, care a fost dezvoltată de atunci de către ingineri.

Concluzia este următoarea: în orice program există multe salturi condiționate, când, în funcție de condiție, execuția programului trebuie să meargă pe o cale sau alta. Doar una din mai multe ramuri ale tranziției poate fi plasată în conductă și, dacă se dovedește a fi umplută cu codul ramurii greșite, atunci trebuie curățată și reumplută mai multe cicluri (în funcție de numărul de etape ale conductă). Pentru a rezolva această problemă, se utilizează mecanisme de predicție a ramurilor. Procesorul conținea 3,1 milioane de tranzistoare și a fost fabricat folosind un proces de 0,8 microni. Toate aceste schimbări au făcut posibilă creșterea performanțelor noului procesor la înălțimi de neatins. În realitate, optimizarea codului „pentru procesor” a fost rară la început și a necesitat utilizarea unor compilatoare speciale. Și pentru o lungă perioadă de timp, cel mai nou procesor a trebuit să execute programe destinate procesoarelor din 486 și 386 de familii.
În același an, a apărut a doua generație de Pentium pe nucleul P54, în care au fost eliminate toate dezavantajele P5. La fabricare, au fost utilizate noi procese tehnologice de 0,6 și mai târziu 0,35 microni. Până în 1996, noul procesor acoperea frecvențele de ceas de la 75 la 200 MHz.
Primul Pentium a jucat un rol important în tranziția la noi niveluri de performanță a computerului personal, a dat impuls și a stabilit liniile directoare de dezvoltare pentru viitor. Dar, cu un salt mare de performanță, nu a adus nicio schimbare drastică arhitecturii x86.

1994 an
Noile Intel 486 ™ DX4, AMD Am486DX4 și Cyrix 4x86 au continuat linia 486 și utilizarea multiplicării frecvenței magistralei de date. Procesoarele au triplat frecvența. Procesoarele Intel DX4 au funcționat la 75 și 100 MHz, în timp ce AM486DX4 a AMD a ajuns la 120 MHz. Sistemul de gestionare a energiei a devenit utilizat pe scară largă în procesoare. Nu au existat alte diferențe fundamentale față de 486DX2.

1995 an
Pentium Pro (core P6) anunțat. Nou procesor de magistrală, trei conducte independente, optimizare pentru cod pe 32 de biți, de la 256 Kb până la 1 Mb de cache L2 integrat în procesor și care funcționează la frecvența de bază, un motor îmbunătățit de predicție a ramurilor - noul procesor aproape a doborât recorduri în termenii numărului de inovații instalate anterior de Intel Pentium.

Procesorul a fost poziționat pentru utilizare pe servere și a avut un preț foarte mare. În special, nucleul de calcul Pentium Pro nu a fost de fapt nucleul arhitecturii x86. Codurile mașinii x86 care intră în procesor au fost decodate intern într-un microcod asemănător RISC, iar acest lucru a fost deja executat de nucleul procesorului. Setul de instrucțiuni CISC, la fel ca setul de instrucțiuni al procesorului x86, implica o lungime variabilă a instrucțiunilor, ceea ce a făcut dificilă găsirea fiecărei instrucțiuni individuale în flux și, prin urmare, a creat dificultăți în dezvoltarea programului. Comenzile CISC sunt complexe și complexe. Comenzile RISC sunt simplificate, scurte, necesitând mult mai puțin timp pentru a executa o comandă cu o lungime fixă. Utilizarea instrucțiunilor RISC permite creșterea semnificativă a paralelizării calculelor procesorului, adică utilizarea mai multor conducte și, prin urmare, reducerea timpului de execuție a instrucțiunilor. Nucleul P6 a stat la baza următoarelor trei procesoare Intel - Pentium II, Celeron, Pentium III.
Anul acesta, a avut loc, de asemenea, un eveniment important - AMD a cumpărat NexGen, care până atunci avea dezvoltări arhitecturale avansate. Fuziunea celor două echipe de ingineri va aduce ulterior procesoarelor x86 din lume cu o microarhitectură diferită de Intel și va da naștere unei noi runde de concurență acerbă.
La Microprocessor Forum, noul procesor MediaGX de la Cyrix a fost prezentat pentru prima dată, iar caracteristica sa distinctivă este controlerul de memorie integrat, acceleratorul grafic, interfața Autobuz PCIși performanță comparabilă cu cea a unui Pentium. Aceasta a fost prima încercare de integrare atât de strânsă a dispozitivelor.

Anul 1996
A apărut un nou procesor AMD K5 cu un nucleu RISC suprascalar. Cu toate acestea, nucleul RISC cu setul său de instrucțiuni (instrucțiuni ROP) este ascuns software-ului și utilizatorului final, iar instrucțiunile x86 sunt convertite în instrucțiuni RISC. Inginerii AMD au folosit o soluție unică - instrucțiunile x86 sunt parțial transformate chiar și atunci când sunt plasate în memoria cache a procesorului. În mod ideal, procesorul K5 poate executa până la patru instrucțiuni x86 pe ciclu, dar în practică, în medie, sunt procesate doar 2 instrucțiuni pe ciclu.

În plus, reordonarea calculelor, redenumirea registrelor și a altor „trucuri”, tradiționale pentru procesoarele RISC, poate crește performanța. Procesorul K5 a fost ideea unei echipe comune de ingineri de la AMD și NexGen. Viteza maximă de ceas nu a depășit niciodată 116 MHz, dar performanța K5 a fost mai mare decât cea a procesoarelor Pentium cu aceeași viteză de ceas. Prin urmare, în scopuri de marketing, pentru prima dată în practica marcării unui CPU, a fost utilizat Ratingul de performanță, care era clar opus frecvenței de ceas a colegilor Pentium. Dar procesorul încă nu putea concura cu el cu demnitate, deoarece Pentium ajunsese deja la 166 MHz în acel moment.
În același an, a fost lansat Intel Pentium MMX. Principala inovație a procesorului P55C este comenzi suplimentare MXX la un set de instrucțiuni care sa schimbat cu greu de la procesoarele de a treia generație. Tehnologia MMX este utilizarea comenzilor multimedia. Un set special de instrucțiuni SIMD (Instrucțiune unică - Date multiple - o instrucțiune - date multiple) îmbunătățește performanța la executarea vectorului, comenzi cicliceși procesarea unor cantități mari de date - folosind filtre grafice și diverse efecte speciale.

De fapt, acestea sunt 57 de instrucțiuni noi concepute pentru a accelera procesarea video și audio. Restul modificărilor kernelului sunt creșterea tipică a memoriei cache, îmbunătățirea memoriei cache și alte blocuri. Procesorul a fost fabricat folosind un proces de 0,35 microni, 4,5 milioane tranzistori. Frecvența maximă este de 233 MHz.
A început lansarea procesorilor superscalari Cyrix 6x86 pe nucleul M1, care era de fapt un procesor de generația a 5-a, a cărui caracteristică distinctivă era conductele „adânci” și utilizarea instrucțiunilor clasice x86 fără seturi de instrucțiuni suplimentare.
La sfârșitul anului, în timp ce Intel dezvolta PentiumII, AMD s-a reinstalat odată cu lansarea procesorului K6 din a șasea generație. AMD-K6 se bazează pe nucleul dezvoltat de inginerii NexGen pentru procesorul Nx686 și modificat semnificativ de AMD. La fel ca K5, nucleul K6 nu a funcționat pe instrucțiuni x86, ci pe un microcod asemănător RISC. Procesorul a acceptat instrucțiunile MMX și o magistrală de sistem de 100 MHz și a avut o memorie cache L1 crescută la 64 KB. Curând a devenit clar că PentiumII va fi prea dur pentru K6.

din 1997 până în prezent ...
Până în 1997, direcțiile dezvoltării ingineriei arhitecturii x86 ale celor mai importanți producători au luat deja forma. Următoarea etapă a dezvoltării procesoarelor x86 poate fi caracterizată ca opoziția arhitecturilor, care continuă până în prezent. La scară largă, au ajuns la distanță: după ce au capturat 90% din piață Intel, au bătut cu încăpățânare AMD cu acesta, au pierdut de multe ori în capacități de producție, și Cyrix, care va fi cumpărat ulterior de VIA și apoi complet incapabil să reziste. competiția, se va scufunda în obscuritate. Alți producători nu vor putea concura cu demnitate și vor fi obligați să caute alte nișe pe piață. Este planificată o tranziție de la microinstrucțiuni CISC la RISC, într-o măsură mai mică la Intel și într-o măsură mai mare la AMD. Mai mult, intrarea și ieșirea procesorelor x86 primesc încă comenzi CISC. Și de ce, de fapt, au început să introducă o arhitectură RISC internă în procesoarele x86 cu arhitectura nativă CISC, care face posibilă aprofundarea paralelizării execuției instrucțiunilor? Doar că totul a fost scos din arhitectura CISC x86 în a patra generație și nu existau modalități de a crește performanța la nivelul seturilor de instrucțiuni de bază.

De atunci, nu au existat schimbări și progrese fundamental noi în dezvoltarea arhitecturii, deși procesoarele moderne sunt de sute de ori mai rapide, de exemplu, „386”. Inginerii perfecționează și îmbunătățesc microarhitecturile existente ale nucleelor, iar cele noi sunt doar cele vechi refăcute. Toate îmbunătățirile și încercările de îmbunătățire a performanței se reduc la optimizarea soluțiilor existente, introducând diverse remedieri și „cârje” pentru FPU-uri, conducte și cache-uri șchioapele. Un mijloc dificil, dar încă eficient, este de a crește în mod constant dimensiunea memoriei cache și frecvența magistralei FSB. Procesoarele moderne au până la 2 MB de memorie cache, care funcționează la frecvența de bază și la frecvențe magistrala de sistem ajunge la 800 MHz și apoi folosind un multiplicator, deoarece frecvența reală generată este de numai 200 MHz. În ultimii 7 ani, următoarele „inovații de rezervă” au fost introduse în procesoarele x86: memoria cache s-a mutat în cele din urmă la matrița procesorului și a fost transferată la frecvența de bază, au fost introduse unități de predicție a ramurilor și sunt în mod constant îmbunătățite ca compensare pentru creșterea lungimii (număr de etape) a conductei, mecanismul ordinii de schimbare dinamică a executării instrucțiunilor, care reduce numărul de cicluri de repaus, un mecanism pentru preluarea de date pentru o utilizare mai rațională a memoriei cache. Seturile suplimentare de comenzi sunt multiplicate: SSE, SSE2, SSE3, 3DNow!, 3DNow Professional. Dacă MMX ar putea fi numit în continuare un set suplimentar de instrucțiuni x86 la o întindere, atunci toate seturile ulterioare sunt puțin probabil, deoarece nu există nimic de adăugat la comenzile x86. Semnificația apariției acestor seturi este de a încerca să utilizați unitatea cu virgulă mobilă (FPU) cât mai puțin posibil în forma în care este, deoarece, având performanțe ridicate, este remarcabil pentru adaptabilitatea sa scăzută pentru calcul de înaltă precizie. , capriciozitatea arhitecturii interne și imprevizibilitatea acesteia., ceea ce face viața dificilă pentru programatori. Adică, de fapt, a fost introdusă o unitate de calcul specializată, axată nu pe calcule în general, ci pe sarcini reale, frecvent întâlnite, care se propun a fi efectuate ocolind clasica FPU.

Cumva, seamănă mai mult cu consecințele integrării unui coprocesor matematic într-un procesor în 1989. În orice caz, dacă vă gândiți la asta și calculați, atunci de cele mai multe ori procesorul petrece „pe sine” - pe tot felul de transformări, predicții și multe altele, și nu pe executarea codului programului.
Privind în urmă, este clar că nu totul a mers bine. Introducerea factorului de multiplicare și asincronia rezultată, precum și creșterea numărului de etape ale conductei, sunt toate sabie cu două tăișuri. Pe de o parte, acest lucru ne-a permis să creștem viteza ceasului procesorului până la aproape 4 GHz (și aceasta nu este încă limita), pe de altă parte, am obținut un blocaj sub forma autobuzului FSB și o problemă cu condițional tranziții. Dar totul are timpul său, iar apoi, aparent, acestea au fost decizii rezonabile, deoarece există întotdeauna un factor economic foarte rău.
Trebuie remarcat faptul că succesul cu adevărat strălucit din ultimii ani s-a obținut în domeniul producției de semiconductori. Procesul tehnologic de 90 de nanometri de fabricare a procesoarelor x86 a fost deja stăpânit, ceea ce permite atingerea frecvențelor de ceas apropiate de gama microundelor, iar numărul de tranzistoare dintr-un cristal ajunge la 170 de milioane (Pentium 4 EE).
Obișnuiam să credem că procesorul este principalul dispozitiv al computerului și că el este cel care dă tonul pentru calculul global. Dar marșul victorios al arhitecturii x86, care a durat mai mult de un sfert de secol, a început nu în mod specific cu procesorul, ci cu dispozitivul utilizatorului final în ansamblu - computerul IBM. Pe atunci, IBM habar nu avea ce viitor strălucit aștepta acest computer și, fără a acorda nicio importanță proiectului, l-a deschis tuturor. Deschiderea conceptului, succesul software-ului și MS DOS este cea care datorează succesul computerului IBM. Și procesorul din acesta ar putea fi de orice arhitectură, dar s-a întâmplat ca IBM să aleagă i8088 și i8086 și apoi totul a început să se învârtă, a început să se învârtă ... Dar din procesorul x86, în cele din urmă, un astfel de calculator universal pentru toate ocaziile sau un dispozitiv „inteligent” nu a funcționat. omniprezent și capabil să facă totul, așa cum se visa înainte. Iar „legea” lui Gordon Moore (la fiecare 2 ani numărul tranzistoarelor dintr-un cristal de procesor se va dubla) a devenit o lege doar pentru Intel, care l-a pus în fruntea politicii sale de marketing și pare incomod să refuze acest cuvânt.

Astăzi putem spune deja cu fermitate că arhitectura x86 a ajuns la un punct mort. Contribuția sa la popularizarea computerului ca dispozitiv este enormă și nimeni nu se contrazice cu acest lucru. Cu toate acestea, cineva nu poate fi relevant pentru totdeauna. Armăsarul altădată tânăr și puternic a devenit un bătrân bătrân, care continuă să fie prins de căruță. Pofta de utilizare a utilizatorilor este nesăturată și în curând arhitectura x86 nu le va putea satisface. Desigur, tranziția este asociată cu un efort titanic datorită faptului că flota mondială de PC-uri de milioane de dolari în majoritatea sa aproape absolută folosește procesoare de arhitectură x86 și, cel mai important, folosește software pentru codul x86. Nu se poate răsturna totul într-o singură zi, este nevoie de ani. Dar dezvoltarea de procesoare și programe pe 64 de biți câștigă avânt cu o viteză de invidiat, Intel a introdus Itanium2, iar AMD lansează Athlon 64 de aproape un an acum, care au o arhitectură complet non-x86, deși sunt pe deplin compatibile cu acesta și poate rula în continuare toate programele vechi. Astfel, putem spune că AMD Athlon 64 a inițiat o abatere de la arhitectura x86 și a deschis astfel o perioadă de tranziție.
După cum puteți vedea, afirmațiile că procesorul este cea mai rapidă componentă a unui PC sunt departe de a fi nefondate. Imaginați-vă cu ce fel de procesoare vor fi echipate computerele copiilor noștri. Înfricoșător să gândești!

În Odnoklassniki

Deci, acum aveți o problemă dacă scrieți o bibliotecă care va fi utilizată atât de codul școlii vechi scrise cu wchar_t definit ca un alias pentru codul școlar scurt nesemnat, cât și de codul școlar nou scris cu wchar_t ca tip intern separat. Ce tip de date trebuie să utilizați pentru parametrii șirului?

Aceasta este o traducere a Istoricului trist al specificatorilor de format Unicode tip printf în Visual C ++.

Windows a implementat Unicode mai devreme decât majoritatea celorlalte sisteme de operare. Ca urmare Soluții Windows pentru multe probleme diferite de soluțiile făcute de cei care așteptau să se depună praful. Cel mai proeminent exemplu în acest sens este utilizarea Windows UCS-2 ca Codificări Unicode... Atunci a fost codificarea recomandată de consorțiul Unicode, deoarece Unicode 1.0 suporta doar 65 "536 caractere². Consorțiul Unicode și-a schimbat părerea cinci ani mai târziu, dar până atunci era prea târziu pentru Windows, care lansase deja Win32s, Windows NT 3.1, Windows NT 3.5., Windows NT 3.51 și Windows 95 - toate foloseau UCS-2³.

Dar astăzi vom vorbi despre șirurile de format printf-style.

Aceasta este o traducere a Dacă FlushInstructionCache nu face nimic, de ce trebuie să o numiți, revizuită.

Se presupune că veți apela funcția FlushInstructionCache atunci când generați sau modificați codul executabil în timpul rulării - astfel încât procesorul, atunci când executați codul generat / modificat, să citească instrucțiunile pe care le-ați scris și nu instrucțiunile vechi care pot rămâne în memoria instrucțiunilor procesorului.

Am aflat mai devreme că. Acest lucru se datorează faptului că un apel funcțional simplu a fost suficient pentru a șterge memoria cache a instrucțiunilor.

Însă pe Windows NT, funcția FlushInstructionCache face treaba reală, deoarece trebuie să notifice toate celelalte procesoare pentru a-și spăla cache-urile.

Cu toate acestea, dacă vă uitați la Windows 10, veți găsi că funcția FlushInstructionCache arată ca versiunea Windows 95: ea nu face nimic.

Ce se întâmplă aici?

Odată am fost foarte confuz când am văzut x86 sau x64 în descrierea programelor și nu am putut înțelege de ce, dacă x64 este specificat pentru 64-bit, atunci pentru 32-bit x86 și nu x32. Acesta din urmă ar trebui să fie mult mai familiar și logic, iar x86 nu este ceva ce nu ar fi amintit, această cifră nu se pretează logicii: matematic 86 este mai mult de 64, dar de fapt se dovedește a fi de două ori mai puțin. Din numerele „x86 x64 x32” în acest fel puteți face chiar o ghicitoare. Dar, de fapt ...

x86 este egal cu x32 și egal cu x64

Cu toată această confuzie, de fapt, totul se dovedește a fi simplu și, ca întotdeauna, greșeala îi urmează pe acei autori care scriu împreună o grămadă de x86 și x64. Acest lucru este pur și simplu greșit, în ciuda faptului că aproape toată lumea scrie așa.

Ideea este că x86 este o arhitectură și o platformă hardware de microprocesor care se aplică programelor de treizeci și doi de biți și șaizeci și patru de biți. Numele x86 este derivat din numele primului procesor intel i8086 și o serie de ulterioare, în care la sfârșit a fost întotdeauna atribuită 86. După ceva timp, numerele noilor procesoare au început să fie înlocuite cu nume, astfel încât publicul a aflat despre Pentium și Celeron, dar platforma x86 nu s-a schimbat până azi.

Există două semnificații și trei notații? x86, x32 și x64 - cum se scrie corect?

Și dacă x86 este arhitectura procesorului, atunci x32 și x64 sunt adâncimea sa de biți - spațiul de adresă, precum și cantitatea de informații pe care procesorul este capabil să le proceseze într-un singur ciclu.

Când scriu despre compatibilitatea programului, indicând bititatea x86, ceea ce implică o platformă pe 32 de biți, acest lucru este greșit și este doar înșelător. Este corect să specificați х86_32bit sau х86_64bit. Fie prescurtat ca intuitiv x32 sau x64.

Așa că putem rezuma: acum x86 este indicat în mod vechi (chiar și Microsoft este vinovat de acest lucru), când această platformă era la singular și nimeni nu știa încă 64 de biți. Când a apărut platforma x64, a început să fie indicată așa cum este, iar fosta platformă pe 32 de biți a rămas în majoritatea cazurilor sub forma x86. Și acum nu este relevant, eronat și confuz pentru cei care nu înțeleg esența. Și înțelegi acum. :)

x32 sau x64? Ce să alegi? Ce e mai bine?

De multe ori apare întrebarea, să alegeți un sistem de operare x32 sau x64? Adică treizeci și doi de biți sau șaizeci și patru de biți?
Aceasta este o întrebare retorică, teoretică și controversată. Evident, x64 este mai bun, dar nu întotdeauna și nu dacă utilizați Windows. Nu, orice Windows x64 funcționează puțin mai repede decât Windows x32, dar numai dacă aveți toate programele și toate driverele pentru un sistem pe 64 de biți. Foarte des, dacă computerul este modern, acesta are de obicei toate driverele de sistem pentru componente. Dar problema rezidă atunci în programe și mai ales în codecuri video și audio. Cu siguranță ceva nu se va întâmpla. Și dacă programele de treizeci și doi de biți pot funcționa într-un sistem x64, atunci driverele și codecurile pentru acesta sunt necesare și x64. Această problemă dispare de la an la an, dar încă nu a fost complet risipită. Cu sistemele x32, nu există astfel de probleme și este mai bine să alegeți doar asta pentru acasă.
p.s. până în 2010, a existat într-adevăr dilema alegerii unui sistem de operare pe 32 sau 64 de biți. Motivele sunt descrise în paragraful de mai sus. Au trecut cinci ani de atunci și această problemă nu mai este observată. Desigur, este mai bine să instalați 64 de biți fără măcar să vă gândiți, cu excepția cazului în care, desigur, există câteva motive importante speciale în favoarea 32 de biți.