BluePink BluePink
XHost
Oferim servicii de instalare, configurare si monitorizare servere linux (router, firewall, dns, web, email, baze de date, aplicatii, server de backup, domain controller, share de retea) de la 50 eur / instalare. Pentru detalii accesati site-ul BluePink.
The future is now
Arhitectura procesoarelor AMD64
  Trecut

Competitia procesoarelor din urma cu câtiva ani era mult diferita fata de cea actuala. Revistele de specialitate abundau de materiale care prezentau pe câteva pagini cum noile (pe vremea aceea) AMD K6 si Cyrix 6x86 „zdrobeau” (pe ici pe colo dar în punctele esentiale) performanta Pentium-urilor. Diverse caricaturi, care de care mai spirituale, ilustrau foarte sugestiv câstigatorul bataliilor în performanta per megahertz.
     Situatia s-a schimbat în timp, viteza bruta a procesorului pierzând mult din importanta. Daca acum cinci ani vedeam încarcarea Windows-ului de doua ori mai rapida pe un procesor la 500 MHz decât pe unul la 200, odata cu atingerea barierei de 1 GHz, procesorul a încetat sa mai reprezinte punctul de atractie. Aceasta pentru limitarea în privinta jocurilor, cele mai avide de performanta aplicatii uzuale, a început sa fie data de placa grafica. Astazi degeaba „ne scaldam” cu 3.8 GHz daca rulam Half Life 2 pe un Radeon 9200 pe 64 de biti.
     Procesorul a ramas important doar pentru cârcotasi, fani Intel sau AMD, care sustin cu tarie ori ca produsele de la Intel sunt mult superioare celor AMD (si acest „mult” este nelipsit), ori invers. Tocmai pentru aceasta categorie se duce batalia între cele doua companii, cel putin cea vizibila prin marketing, ele facând tot posibilul pentru a-si satisface fanii. Fiecare schimbare de arhitectura, micsorare de proces de fabricatie, adaugare de cache, noi nume de cai, crestere în frecventa, trebuie anuntata cu surle si trâmbite de-o parte si de alta. Dar din ce în ce mai putini cumpara procesoare de dragul tehnologiilor, nimic nu mai este ca înainte. Trebuia sa se întâmple ceva...
Prezent
Si s-a întâmplat! AMD a amanetat herghelia pe o tehnologie noua, pe 64 de biti. Initial, desi departamentul de marketing a lucrat serios la imaginea noii progenituri, nimeni nu a zis nimic. Revistele si site-urile de profil au publicat stirile corespunzatoare si... atât. Aceasta pentru ca Opteron, caci acesta este numele sau, era creat pentru un domeniu destul de ciudat al computerelor: server-ele de mare performanta. Abia la aproape un an distanta au iesit la lumina niste procesoare utilizabile
      


de catre oamenii obisnuiti: Athlon 64, Athlon 64 FX si, mai târziu, Sempron.
Nucleul s-a numit K8 (în contrast evident cu precedentele K6 si K7 - Athlon). Numele de cod au purtat denumirea generala Hammer, versiunile initiale fiind Sledgehammer (Opteron) si Clawhammer (Athlon 64). Dupa nume (K8), ne putem da seama ca AMD a întors foaia si vrea sa ne rasfete cu ceva complet nou. Sa vedem prin ce se diferentiaza de arhitectura K7.
Este discutabil care dintre instructiunile pe 64 de biti si integrarea controller-ului de memorie este mai importanta. Daca primul aspect este legat în viitor, extinderea setului IA32 la cel denumit acum AMD64 ducând la crearea unui potential suplimentar de performanta si nimic mai mult, controller-ul de memorie (pâna acum prezent în northbridge-ul placii de baza) scapa sistemul de o gâtuire extrem de deranjanta. În rest, modificarile sunt minore, implementarea instructiunilor SSE2 sau cresterea usoara a numarului de stagii ale pipeline-ului sunt schimbari firesti pentru care nu s-a facut prea mare tam-tam.

Care e treaba cu bitii?


Sa începem cu începutul. Am spus mai devreme ca cei 64 de biti nu afecteaza în mod esential performanta. Cel putin nu în acest moment. Pentru a justifica afirmatia, vom face o calatorie în istorie, mai exact în 1985, când Intel lansa primul procesor pe 32 de biti, 80386. El era dotat cu un set nou de instructiuni, capabil sa acceseze pâna la 4 GB de memorie (fata de cei 16 MB ai celor pe 16 biti) si sa ofere performante
ofere performante de invidiat daca era folosit la potentialul sau maxim. Soft-urile uzuale pe 32 de biti au început sa rasara abia la începutul anilor ’90, iar prima tentativa de sistem de operare pe 32 de biti a fost Windows 95, un adevarat talmes-balmes de cod pe 16- si 32-bit.
Windows NT exista de ceva vreme pe piata dar el era adresat celor care azi folosesc procesoare Opteron, asa ca nu poate intra în discutie. Abia Windows 2000 si mai ales Windows XP, ce sunt programate complet pe 32 de biti, au devenit sisteme de operare uzuale, la nu mai putin de 15 ani de la lansarea primului procesor capabil (teoretic, nu si din punct de vedere al vitezei) sa le utilizeze.
Nu este deplasat sa anticipam un fenomen asemanator cu privire la instructiunile pe 64 de biti. Ele sunt prezente de ceva timp - dar sub o cu totul alta forma - în procesoarele Intel Itanium, destinate server-elor; ele, spre deosebire de cele AMD64, nu lucreaza nativ cu cod IA32.
Exista totusi o veste buna: deja o serie de sisteme de operare utilizeaza la maxim noile procesoare AMD, precum Windows XP x64 Edition sau o serie de distributii de Linux. Mai mult, si Intel a adoptat recent aceste instructiuni, denumind setul EM64T. Nu trebuie însa sa ne bucuram prea mult pentru ca schimbarea nu poate avea loc de la o zi la alta si va curge multa apa pe Dunare pâna ce vom vorbi de aceste sisteme de operare la fel cum vorbim azi de cele pe 32 de biti care sunt prezente în marea majoritatea sistemelor de calcul moderne. Cei 64 de biti au reprezentat în primul rând un instrument de marketing pentru AMD, nicidecum o necesitate a momentului.
Trebuie sa privim instructiunile AMD64 ca pe o extensie la setul IA32, nu ca pe un înlocuitor. Procesorul este capabil sa comute între legacy mode si long mode în functie de necesitati, la fel cum 80386 putea comuta între modul real si cel protejat. Practic, este vorba de niste registri suplimentari inclusi în nucleul procesorului, care pot efectua operatii cu numere pe 64 de biti (pâna la 2 la puterea 64). Astfel, pot fi prelucrate simultan de doua ori mai multe date, traficul dintre procesor si celelalte componente desfasurându-se mult mai fluent. (Observatie: tehnic vorbind, programatorul are la dispozitie 5 moduri: legacy 16-bit mode, legacy 32-bit mode, compatibility 16-bit mode, compatibility 32-bit mode si 64-bit long mode, însa descrierea lor în detaliu nu face subiectul articolului de fata.).
De asemenea, dublarea numarului de registri si practic triplarea spatiului de memorare a acestora (masurabil în biti – 3072 fata de 1280) conduce la posibilitatea mentinerii de date în procesor pentru mai mult timp, fiind mai rar necesara schimbul cu memoria principala.
De remarcat urmatorul fapt: K8 nu va rula mai rapid (dar nici mai lent) decât K7 codul pe 32 de biti sau, daca performantele vor diferi, ele se vor datora altor motive decât prezenta noului set de instructiuni. În legacy mode, K8 este transformat într-un procesor normal, capabil sa execute instructiunile precum orice procesor pe 32 de biti.
Sa luam un exemplu: algoritmii de criptare. Unii necesita operatii cu numere pe 64 de biti. Folosind o masina 32-bit, este imposibila obtinerea directa a unui rezultat, singura metoda de calcul fiind crearea unui algoritm care sa realizeze acest lucru, similar celui aplicat de om pentru orice adunare sau înmultire. (va mai aduceti aminte de „75-18; le punem unul sub altul; 5-8 nu se poate, împrumutam o zece; 15-8=7; la cifra zecilor ne mai ramâne 6; 6-1=5, deci rezultatul e 57” ?). Orice procesor pe 64 de biti poate realiza „dintr-un foc” operatia, economisindu-se mult timp.
Memoria maxima adresabila a crescut si ea de la 64 GB la procesoarele IA32 cu PAE (Physical Addressing Extensions) activat la 1 TB. E drept, e putin probabil ca acum un server sa necesite atât de multa memorie, dar cei 64 GB precedenti se aflau în mod sigur la limita.

Memoria gestionata direct din procesor





O alta noutate adusa de generatia K8 este faptul ca de acum nu chipset-ul va mai fi raspunzator de memorie ci însusi procesorul. Memoria, ca orice entitate din interiorul sistemului de calcul, trebuie sa fie gestionata de un controller care sa realizeze comunicarea dintre aceasta si elementul central, procesorul. Pâna acum, northbridge-ul integra acest controller însa, din ratiuni
ratiuni de viteza, procesorul a preluat sarcina.
Comunicarea dintre memorie si procesor se realiza prin bus-ul denumit pâna acum PSB sau (incorect dar încetatenit) FSB, ce reprezenta una dintre gâtuirile principale de care sufereau procesoarele rapide. Totusi, sa nu ne bucuram prea mult de noua reusita a celor AMD si sa prezentam si dezavantajele. De fapt dezavantajul: cel care decide ce tip de memorie poate fi folosita în sistem este procesorul. Daca el detine un controller DDR SDRAM, atunci va fi imposibila „asortarea” lui cu una de tip DDR2 sau RDRAM, de exemplu. Astfel, upgrade-ul este mai problematic, de schimbarea procesorului depinzând schimbarea memoriei si invers.
Latimea bus-ului dintre procesor si controller-ul de memorie a ramas aceeasi ca la vechile sisteme: 64 sau 128 de biti, în functie de tipul controller-ului integrat: single- sau dual-channel. Frecventa însa a crescut la valori impresionante, ea fiind acum egala cu frecventa procesorului. Sa luam ca exemplu trei procesoare: unul K8, unul K7 si altul Pentium 4 ce ruleaza la 2.4 GHz, ultimele doua având un FSB de 200 MHz reali. Arhitectura K7 beneficiaza de bus-ul EV6, ce dubleaza frecventa, FSB-ul efectiv fiind de 400 MHz. În cazul lui P4, situatia este mai fericita, bus-ul Quad Pumped ridicând aceasta frecventa la 800 MHz efectivi. K8 se va situa mult deasupra ambilor concurenti, bus-ul dintre procesor si controller-ul de memorie rulând la 2400 MHz, depasind de 6 si respectiv 3 ori arhitecturile celorlalte doua CPU-uri.
Comunicarea dintre controller si memorie se desfasoara la aceeasi viteza, si anume la frecventa memoriei, si pe 64 sau 128 de biti, în functie de numarul de canale.
Exista un aspect ciudat dar foarte important pentru cei interesati de overclocking (dar nu numai) care trebuie explicat în acest context. În sistemele obisnuite, memoria ruleaza la o frecventa egala cu frecventa FSB înmultita cu un raport fix de numere mici. De exemplu, pe o platforma K7 cu un chipset nForce2, daca avem un FSB de 400 MHz, memoria va rula, spre exemplu, la 1:2, 5:12 sau 2:6 din aceasta frecventa, adica 200, 166 si respectiv 133 MHz teoretici (sau 1:1, 5:6 sau 2:3 în cazul în care consideram frecventele efective, de 400, 333 si 266 MHz). Motiv: controller-ul de memorie trebuie sa lucreze în strânsa legatura cu FSB-ul, la fiecare n biti primiti de la memorie trebuind sa transmita m biti catre procesor, si invers – unde n si m sunt direct proportionali cu frecventa memoriei, respectiv a bus-ului FSB.
Ce ne facem când controller-ul este integrat în procesor? El va primi de la acesta n biti si va transmite mai departe m, însa raportul trebuie sa fie unul de numere mici. Ratiuni tehnice împiedica rapoarte gen 2:29, cum ar fi necesar daca procesorul ar rula la 2900 MHz iar memoria în DDR400. Astfel, s-au ales niste divizori întregi, frecventa memoriei fiind 1:15, cea mai apropiata valoare de 2:29 (adica 1:14.5) inferioara acesteia. De ce inferioara? Pentru ca nu se poate permite memoriei sa ruleze la o frecventa superioara celei dorite, din motive evidente. Astfel, în exemplul nostru, memoria va rula la doar 193.33 MHz în loc de cei 200 solicitati.

HyperTransport

Comunicarea dintre procesor si chipset se realizeaza prin bus-ul HyperTransport (pe care îl vom numi în continuare HT), numit initial LDT (Lightning Data Transport). Bus-ul nu este conceput special pentru aceasta platforma, el fiind unul universal, ce serveste, de exemplu, si la comunicarea dintre southbridge-ul si northbridge-ul chipset-ului nForce2 (deci în cadrul platformei K7!). În cazul nostru, bus-ul este o componenta a PSB-ului, dar cea care afecteaza cel mai putin performanta si care depinde exclusiv de chipset. De aceea, desi exista o „batalie pe viata si pe moarte” privind „cine scoate cel mai rapid HyperTransport”, trebuie stiut ca acest lucru nu afecteaza aproape deloc viteza de lucru. Desi el este conceput pe doar 32 de biti (16 biti pentru transmisie, 16 pentru receptie – cazul cel mai frecvent) la o frecventa de tipul 800 sau 1000 MHz, e suficient sa ne gândim ca latimea de banda obtinuta este de 800 MHz x (32/8) bytes = 3.2 GB/s, adica putin peste valoarea lui AGP 8x dar sub cea oferita de PCI-Express X16. Un HT de 1 GHz (prin cei 4 GB/s) se apropie de cei 4.3 GB/s ai lui PEG x16. Ceea ce înseamna ca nu vom putea folosi la întreaga capacitate o placa grafica PCI-Express. Reprezinta acest lucru un dezavantaj? Cu siguranta nu, jocurile de azi nefiind limitate aproape deloc de o latime de banda echivalenta cu AGP 4x (circa 1 GB/s).
Bus-ul HT realizeaza legatura si cu celelalte componente, de exemplu controller-ul IDE, cel USB 2.0 sau chiar cel SCSI. Nu putem nega dezavantajul ce rezulta de pe urma folosirii acestui bus, dar el este extrem de mic, lucru reflectat de un test ce poate fi realizat de catre oricine: cele mai multe placi de baza permit ajustarea frecventei HT si un scurt 3DMark rulat la mai multe frecvente ne poate lamuri ca diferentele sunt infime.
Revenind la controller-ul de memorie, trebuie spus ca sistemele obisnuite nu sunt afectate foarte mult de prezenta acestuia în procesor: latentele reduse nu au crescut niciodata la valori impresionante performantele. Sporul adevarat apare în sistemele multiprocesor unde, spre deosebire de alte platforme, latimea de banda dintre procesor si controller-ul de memorie nu este împartita în mod egal între procesoare. Fiecare procesor are acum maxim trei legaturi (Hyper Transport Links): una prin care este legat de chipset (prezent si la sistemele cu un singur procesor) si altele doua prin care putea „lua legatura” cu alte doua procesoare. Iata, de exemplu, schema de interconectare între 8 procesoare:


În plus, interconectarea dintre procesoare este supusa specificatiilor NUMA (Non-Uniform Memory Access) prin care se asigura posibilitatea oricarui procesor de a accesa orice zona de memorie, spre deosebire de tehnica shared, unde fiecare procesor avea alocata o zona specifica de memorie, neputând adresa una ce apartinea altui CPU.

Cache-ul

La AMD64, aceasta memorie intermediara este stratificata pe doua nivele integrate în CPU, ca la orice procesor modern. Relatia dintre ele este exclusiva, ca si la generatia anterioara, ceea ce înseamna ca nivelul al doilea de cache nu include si o imagine a celui dintâi (în contrast cu relatia inclusiva întâlnita la Pentium 4). Astfel, eficienta nivelului doi este mai redusa datorita unui transfer mai frecvent dintre L1 si L2.
Viteza comunicarii dintre cele doua nivele a fost dublata, de aici rezultând înca un plus de performanta fata de arhitectura K7. Tot legat de cache, notam o crestere a numarului de intrari în TLB (Translation Lookaside Buffer) pentru ambele nivele de cache. Desigur, trebuie sa explicam ce este acest TLB.
Gestionarea memoriei de catre procesor este realizata în doua moduri: adresare reala si adresare virtuala. Uneori este mai util ca adresarea sa se faca relativ la alta locatie decât la mod absolut, adica precizând distanta de la alta adresa si nu pe cea de la punctul zero. TLB este o mica zona de memorie integrata în nucleul procesorului care face legatura dintre cele doua tipuri de adresare (cu ajutorul ei se poate transforma o adresa virtuala într-una reala si invers).
Dimensiunea cache-ului a suferit si ea modificari. Daca primul nivel a ramas la 128 KB, nivelul al doilea a fost crescut la 512 KB sau 1 MB, în functie de modelul procesorului. Se spune ca cresterea de la 256 KB la 1 MB afecteaza cu 15% performanta, desi aceasta cifra poate parea unora destul de optimista, aceasta datorita eficientei mai scazute a nivelului doi comparativ cu Pentium 4.
Cât despre latenta cache-ului, pentru nivelul unu ea a ramas aceeasi, dar pentru cel de-al doilea a fost micsorata. Situatia e foarte interesanta, Prescott are pipeline si latente crescute fata de predecesor pentru a-si putea creste frecventa, pe când K8 are aproape acelasi pipeline iar latenta a scazut, ceea ce poate constitui o bariera în goana dupa gigahertzi. Desigur, AMD stie mai bine ce face...

Conductele si predictia

La procesoarele AMD, pipeline-ul este împartit în doua segmente: unul pentru ALU si unul destinat FPU-ului. Exista un segment comun, de 6 stagii, care nu a fost afectat de nici o schimbare în cazul lui K8, el cuprinzând fetch (preluarea instructiunii) si decode (decodificarea acesteia). Prelucrarea efectiva este realizata în alte stagii, la K7 în numar de 4 (pentru ALU) si respectiv 9 (pentru FPU). La K8, aceste ultime stagii au fost crescute cu câte 2, numarul total devenind 12 fata de 10 (pentru ALU) si 17 fata de 15 (pentru FPU).
Dupa cum spuneam si în articolul dedicat lui Prescott, un pipeline prea lung afecteaza negativ performanta dar creste posibilitatea atingerii de frecvente mari. De asemenea, nu este de dorit nici un pipeline foarte scurt pentru ca astfel nu mai poate fi executat în paralel un numar prea mare de instructiuni. AMD a crescut cu 2 numarul de stagii din cauza reproiectarii blocului de predictie (branch predictor), anticiparea instructiunilor devenind acum cu 5-10% mai precisa, precum si datorita îmbunatatirii spatiului din scheduler destinat unitatii ALU. De ce cresterea pipeline-ului a fost datorata îmbunatatirii celor doua unitati? Cu cât „prezicatorul” este mai eficient, cu atât exista sanse mai mici ca ramura curenta de executie sa fie incorecta, urmând golirea pipeline-ului. De aceea, AMD a considerat ca pipeline-ul poate fi crescut, sansele de alegere gresita a ramurii fiind suficient de reduse astfel încât cresterea lungimii sale sa fie considerata un avantaj.
Acelasi lucru se poate spune si despre scheduler, care trimite catre fiecare unitate de prelucrare instructiunile cuvenite. Cu cât acesta poate retine mai multe instructiuni, cu atât ele vor fi executate mai eficient. La K8, spatiul acestuia a crescut substantial, de trei ori.
Observatie. Un pipeline foarte lung, având un branch prediction cu un hit-rate de 100% precum si un scheduler foarte încapator va oferi numai avantaje în termeni de performanta. Lungimea mare a pipeline-ului nu trebuie privita ca o sperietoare. Numai ca pentru ca un pipeline lung sa nu afecteze negativ viteza sunt necesare un branch prediction si un scheduler pe masura, iar acestea nu pot fi îmbunatatite la infinit.      

Ce a „mostenit” de la Intel?

În primul rând, SSE2. Setul de instructiuni introdus odata cu primul Pentium 4 este, în sfârsit prezent si în CPU-urile AMD. Situatia este oarecum amuzanta, ambii producatori schimbând între ei tehnologii (Intel a preluat de la texani setul AMD64). Desi instructiunile de acest tip nu sunt licentiate în nici un fel, o regula dedusa experimental spune ca niciodata cel care copiaza nu va obtine, legat de acele instructiuni, performantele
concurentului sau. Asa se face ca noua generatie de procesoare de la AMD obtine performante teribil de mici prin SSE2. Într-o situatie asemanatoare s-a aflat si Intel la lansarea lui P4 (Willamette, primul model), unitatea FPU fiind mai lenta decât cea din Pentium III, programele inteligente care foloseau instructiuni SSE în locul celor FPU obtinând performante mult crescute. Sau, daca ne adâncim si mai mult în istorie, gasim un K6-2 cu al sau FPU de 2-3 ori mai lent decât cel din procesoarele Intel similare. Însa setul 3DNow!, folosit cu totul si cu totul ocazional în programele acelor vremuri, salva onoarea firmei AMD, desi utilizatorii nu prea beneficiau de acesta.
Revenind în prezent, având în vedere ca procesoarele K8 au întârziat nepermis de mult, unii au presupus ca AMD pur si simplu nu a mai avut timp sa optimizeze SSE2-ul, aplicatiile ce se folosesc de el fiind deseori mai lente decât cele ce se bazeaza pe clasicul FPU.
Ce am mai vazut la Intel si asteptam implementat si în procesoarele concurentei? Thermal throttling, SSE2 optimizat, SSE3 (inclus deja în ultimele stepping-uri de K8) si, de ce nu, HyperThreading. Legat de ultimul aspect, AMD a achizitionat licentele necesare pentru aceasta tehnica, dar nu se întrevede nici un model care sa beneficieze de ea. AMD este o companie mica (în comparatie cu alti giganti din lumea IT, printre care se afla si Intel), deci orice implementare care costa mult e calculata la sânge. AMD nu-si poate permite prea multe esecuri, înainte de fiecare lansare a unei noi generatii ea având dificultati mari financiare: înainte de lansarea lui K6 era în pragul falimentului, înainte de lansarea lui K7 avea serioase probleme financiare (ultimele modele de K6 nefiind prea reusite) iar înainte de K8 mergea în pierdere. Un ultim lucru care merita mentionat este protectia antivirus NX (No Execute) despre care am discutat la capitolul destinat lui Prescott si care de altfel este prezent în ultimele versiuni ale acestuia. AMD s-a aflat în fata lui Intel de aceasta data, oferind înca de la primul procesor K8 aparut (Opteron) aceasta protectie.

Modele de K8, tehnologii de fabricatie si platforme

Primele variante de K8 au fost destinate server-elor si au purtat numele de Opteron. Controller-ul de memorie integrat era de tip dual-channel iar memoriile necesare erau de tip registered. Cele patru versiuni disponibile, desi aparent identice, erau capabile sa ruleze în sisteme de un singur, doua, patru si respectiv opt procesoare, ele identificându-se printr-un numar de tip 1xx, 2xx, 4xx si 8xx. Spre exemplu, Opteron 246 rula la 2 GHz si putea functiona în sisteme dual-procesor.



Numele de cod a fost Sledgehammer iar platforma utilizata Socket 940. Odata cu aparitia modelelor desktop, destinate tuturor utilizatorilor, AMD a portat o versiune a lui Opteron în sisteme „mai cuminti” dar destinate entuziastilor. Astfel s-a nascut Athlon 64 FX, un procesor extrem de scump pentru aproape oricine (costa peste 1000$ la lansare). În plus, fiind practic un Opteron din seria 1xx redenumit, necesita si memorii registered, extrem de scumpe si cu putin mai lente decât cele normale (unbuffered). Notarea lui Athlon 64 FX a fost destul de ciudata, modelele purtând numele FX-51, FX-53, FX-55 etc.

Pentru utilizatorii care tineau seama si de bugetul alocat, Athlon 64 „simplu” a oferit satisfactii similare, diferenta de performanta fata de FX fiind minima. Athlon 64 a fost vaduvit de o parte din pini, numarul lor fiind redus la 754, iar controller-ul de memorie integrat rula pe un singur canal, memoria L2 cache ramânând la 1 MB.
Pentru denumirea modelelor, AMD s-a folosit de rating-ul cunoscut de la Athlon XP, referinta fiind procesoarele Intel Pentium 4. Astfel, un Athlon 64 3200+ este (teoretic) la fel de rapid ca un Pentium 4 la 3.2 GHz. Northwood sau Prescott? Nu raspundem la întrebari filozofice...
Noul core, NewCastle, exista atât în versiuni single- cât si dual-channel, diferenta fata de Clawhammer privind dimensiunea cache-ului: doar 512 KB. Acest lucru nu a constituit un dezavantaj, frecventa superioara compensând minusul cu pricina. De exemplu, Athlon 64 3200+ în versiunea Clawhammer (1 MB cache) avea o frecventa de 2 GHz, pe când cea NewCastle (512 KB) de 2.2 GHz.
Platforma Socket 754 a fost pastrata, fiind însa considerata din ce în ce „mai low-end”. Socket 940 a fost înlocuit cu Socket 939, modelele ce se inserau în acest socket beneficiind de un controller de memorie ce lucra cu memorii unbuffered în dual-channel.
Toate nucleele amintite erau create în tehnologia de 0.13 microni (130 nm). Trecerea la 0.09 microni (90 nm) a fost iminenta, fiind necesara pentru atingerea de frecvente superioare. Asa s-a nascut nucleul Winchester, aproape identic ca functionalitate cu NewCastle, dar mai rece, creat numai pentru platforma 939 (care de altfel are si un viitor asigurat). Totusi, el s-a dovedit a fi un semi-esec din punct de vedere al overclocking-ului, procesul de fabricatie nematurizat punându-si amprenta asupra frecventelor atinse. De remarcat si controller-ul de memorie usor îmbunatatit al noului core.
Recent, AMD a introdus noua noi nuclee pe 0.09 microni: Venice si San Diego, cu 512 si respectiv 1 MB de cache, implementând instructiunile SSE3, un controller de memorie optimizat si un potential crescut de atingere a frecventelor mari.
Pentru Socket 754, AMD a introdus câteva versiuni de Sempron, diferentele fata de Athlon 64 privind cache-ul: 128 sau 256 fata de 512 KB sau 1 MB (controller-ul de memorie fiind, evident, single-channel), precum si setul de instructiuni pe 64 de biti absent. Mai exact dezactivat si imposibil de activat. Rating-ul sau a fost stabilit în functie de Celeron D, modelul 3100+ rulând la 1.8 GHz, ca si Athlon 64 2800+, dar acesta din urma avea un cache level 2 dublu.
De retinut faptul ca modelele inferioare lui Sempron 3100+ sunt concepute pentru platforma Socket A, ele neavând nimic în comun (afara de nume) cu cele S754.
În fine, mentionam ca tehnologia de fabricatie a lui K8 a unor modele a suferit o modificare importanta: introducerea SOI (Silicon-On-Insulator) care, pe scurt, ofera sanse suplimentare cresterii frecventei procesorului, dar despre care nu vom vorbi în detaliu aici.

Concluzii

AMD a schimbat multe odata cu K8. Putine daca ne referim strict la arhitectura interna dar multe daca luam în calcul adaosurile: controller-ul de memorie integrat si instructiunile pe 64 de biti. Daca al doilea aspect nu aduce beneficii prea mari, primul ajuta substantial la cresterea performantei, excluzând astfel din ecuatie o puternica limitare de care sufereau vechile K7, limitare care uneori nu putea fi suprimata nici macar odata cu cresterea foarte mare a frecventei de tact. Limitare care nu era prezenta la procesoarele Pentium 4, probabil din cauza PSB-ului foarte mare (de ordinul a 800 MHz fata de maxim 400 la K7) care compensa latentele suplimentare datorate prezentei externe a controller-ului în cauza. Cu alte cuvinte, puteam creste oricât frecventa unui Athlon XP, efortul necesar atingerii vitezei unui Pentium 4 sau Athlon 64, în unele - si destul de putine - aplicatii urmând o curba exponentiala ascendenta. În testele în cauza, un Athlon XP supus unui overclocking puternic si rulând la 2.6 GHz era cu doar putin mai rapid decât unul la 2 GHz; în schimb, un Athlon 64 la 2.6 GHz nu are probleme în a afisa rezultate oarecum proportionale cu cel la 2 GHz, nefiind atât de limitat de factori externi precum un controller de memorie.
Acestea fiind zise, sa facem un rezumat al facilitatilor oferite de noile procesoare AMD:
tehnologie de 0.13 (130 nm) si apoi de 0.09 microni (90 nm) SOI;
controller de memorie integrat, ce detine principalul merit al cresterii performantelor;
instructiuni AMD64, slab folosite pentru moment;
instructiuni SSE2 (introduse pentru prima data în Pentium 4), implementarea lasând de dorit la capitolul viteza;
pipeline usor crescut odata cu un branch prediction si o unitate scheduler îmbunatatite;
cache crescut initial la 1 MB, revenindu-se ulterior la 512 KB, cel de 1 MB fiind destinat modelelor high-end;
protectie antivirus NX, similara celei XD de la Intel.

XF Project - Stiri, teste, review-uri, tehnologii hardware