Procesori iznutra. Procesori iznutra Dizajn matične ploče računara

Trenutno, glavni tržišni udio univerzalnih mikroprocesora zauzimaju 32-bitni i 64-bitni mikroprocesori. Ovo poglavlje opisuje Intelove 32-bitne mikroprocesore koji čine porodicu IA-32 (Intel Architecture-32). Ova arhitektura čini osnovu Intelove 64-bitne x86‑64 arhitekture i AMD-ove AMD-64 arhitekture.

2.1 Sastav i funkcije registara

Registri zove se memorija velike brzine koja se nalazi unutar CPU-a i dizajnirana je za online skladištenje podataka i brz pristup njima iz internih komponenti procesora. Na primjer, kada optimizirate programske petlje za brzinu, varijable kojima se pristupa unutar petlje nalaze se u registrima procesora, a ne u memoriji. Ukupnost svih takvih registara se ponekad naziva memorijom za scratchpad (CoRAM).

2.1.1 Osnovni registri

Slika 2.1 prikazuje strukturu glavnih registara i njihova imena. Postoji 8 registara opće namjene(RON), registri sa 6 segmenata, registar zastavica, registar pokazivača instrukcija, kao i sistemski registri, debug i test registri.

Registri opšte namene (RON). Ovi registri se uglavnom koriste za izvođenje aritmetičkih operacija i prijenos podataka. Svakom RON-u se može pristupiti kao 32-bitni registar ili kao 16-bitni registar. Nekim registrima se može pristupiti kao 8-bitni. Na primjer, EAX registar je 32 bita, ali njegovih nižih 16 bitova se nazivaju AX registar. Gornjih 8 bitova AX registra nazivaju se AH, a donjih 8 bitova AL. 16-bitni dijelovi indeksnih registara i pokazivača obično se koriste samo pri pisanju programa za pravi način adresiranja, tj. za MS-DOS ili njegovu emulaciju u Windows-u.

Značenje skraćenica imena registra:

Prefiks E na početku imena registra je proširen.

Postfiks X na kraju imena registara znači stvarni registar.

AX - Akumulator (pogon).

BX - Osnovni registar (bazni registar).

CX - Brojač (broj).

DX - Podaci (podaci).

AL - Akumulator nizak (donja polovina registra AX).

AH - Akumulator high (viša polovina AX registra).

BL - Base low (donja polovina registra BX).

BH - Base high (viša polovina BX registra).

CL - Niski brojač (donja polovina registra CX).

CH - Counter high (viša polovina registra CX).

DL - Nizak podaci (donja polovina DX registra).

DH - Visoki podaci (viša polovina DX registra).

SI - Izvorni indeks (izvorni indeks). Sadrži trenutnu izvornu adresu.

DI - Indeks odredišta (indeks primaoca). Sadrži trenutnu adresu prijemnika.

BP - Osnovni pokazivač (bazni pokazivač). Za slučajni pristup podacima unutar steka

SP - Pokazivač steka (pokazivač steka). Sadrži gornji pokazivač steka.

CS - Segment koda (kod segment).

DS - Segment podataka (segment podataka).

ES - Extra Data segment (dodatni segment podataka).

FS - Extended Data segment (segment dodatnih podataka).

GS - Extended Data segment (segment dodatnih podataka).

SS - segment steka (segment steka).

IP - Instrukcijski pokazivač (pokazivač instrukcija ili brojač instrukcija).

F - Zastave (registar zastava).

GDTR - Registar globalne tabele deskriptora (registar globalne tabele deskriptora).

IDTR - Registar tablice deskriptora prekida (registar tablice deskriptora prekida).

TR - Registar zadataka (registar zadataka).

LDTR - Lokalni registar tablice deskriptora (registar tablice lokalnih deskriptora).

DR - Registar za otklanjanje grešaka (registar za otklanjanje grešaka).

TR - Test registar (test registar).

CR - Kontrolni registar (kontrolni registar).

Osobine upotrebe registara. Prilikom izvršavanja instrukcija od strane procesora, neki registri opšte namjene imaju posebnu svrhu.

    Sadržaj EAX registra se automatski koristi prilikom izvršavanja instrukcija množenja i dijeljenja. Pošto je ovaj registar obično povezan sa izvršavanjem aritmetičkih instrukcija, često se naziva prošireni registar akumulatora (prošireno akumulator).

    ECX registar automatski koristi procesor kao brojač ciklusa.

    ESP registar pristupa podacima pohranjenim na steku. Stack je područje sistemske memorije, kojem se pristupa prema FILO principu (Prvi ulaz - posljednji izlaz) "prvo napisano, posljednje čitanje". Ovaj registar se obično nikada ne koristi za izvođenje normalnih aritmetičkih instrukcija i instrukcija za prijenos podataka. Često je naziva prošireni registar pokazivača steka (prošireno stog pokazivač). ESP registar ukazuje na adresu vrha steka (adresa na koju će sljedeća varijabla biti gurnuta naredbom PUSH).

    ESI i EDI registri se obično koriste za upute za brzi prijenos podataka s jedne memorijske lokacije na drugu. Stoga se ponekad nazivaju prošireni izvorni indeksni registri i primalac podaci (prošireno izvor index i prošireno odredište index). ESI registar je izvorna adresa i sadrži adresu početka informacionog bloka za operaciju "premještanja bloka" (puna adresa DS:ESI), a EDI registar je odredišna adresa (puna adresa ES:EDI).

    EBP registar se obično koristi od strane kompajlera jezika visokog nivoa za upućivanje na parametre funkcije i za upućivanje na lokalne varijable dodijeljene na stogu. Ne treba ga koristiti za obavljanje običnih aritmetičkih operacija ili za premještanje podataka, osim kada se koriste posebne tehnike programiranja od strane iskusnih programera. Često se naziva proširenim slučajem pokazivač okvira steka (prošireno okvir pokazivač). EUR registar sadrži adresu sa koje se informacije guraju ili iskaču na stek (ili "dubinu" steka). Parametri funkcije imaju pozitivan pomak u odnosu na EBP, lokalne varijable imaju negativan pomak, a puna adresa ove memorijske lokacije je pohranjena u SS:EBP registarskom paru.

    EIP registar pohranjuje pomak adrese instrukcija. Puna adresa za sljedeću izvršnu instrukciju je pohranjena u CS:EIP registarskom paru.

    Registri ESP, EBP, ESI, EDI pohranjuju pomak adrese podataka.

segmentni registri. Ovi registri se koriste kao osnovni registri kada se pristupa unaprijed dodijeljenim područjima RAM-a, koji se nazivaju segmentima. Postoje tri vrste segmenata i, shodno tome, segmentnih registara:

    koda (CS), pohranjuju samo procesorske komande, tj. mašinski kod programa;

    podaci (DS, ES, FS i GS), pohranjuju memorijska područja dodijeljena programskim varijablama i podacima;

    stek (SS), oni pohranjuju sistemsko područje memorije tzv hrpa, u kojoj se distribuiraju lokalne (privremene) varijable programa i parametri proslijeđeni funkcijama kada su pozvane.

Registre segmenata učitavaju selektori segmenata, koji su pomaci prema globalnoj tablici deskriptora (GDT) ili lokalnoj tablici deskriptora (LDT).

Bitovi segmentnog registra sadrže sljedeće informacije:

0 - 1. RPL - Traženi nivo privilegija. Traženi nivo privilegija.

2. TI - Tabela indikatora. Bit tabele indikatora. Govori procesoru gdje da traži navedeni selektor. Ako je bit postavljen, tada procesor čita selektor iz tablice lokalnih deskriptora. Ako je bit čist, tada procesor čita selektor iz globalne tabele deskriptora.

3 - 15. Ovi bitovi pohranjuju indeks globalne ili lokalne tablice deskriptora.

CS registar je premali za držanje kodnog segmenta, tako da mora biti postavljen na izvršni segment. SS registar je premali za držanje segmenta steka, tako da mora biti postavljen na segment podataka koji se može pisati.

Nivo privilegija postavljen u registru CS segmenta je nivo privilegija pokrenutog programa i naziva se Trenutni nivo privilegija (CPL). Segmentni registri DS, ES, FS, GS su za podatke i moraju biti postavljeni na segment podataka sa dozvolom pisanja. Nivoi privilegija koje zahtijeva svaki od ovih selektora moraju biti veći od trenutnog CPL nivoa privilegija.

Registri deskriptora sjene pridruženi su svakom od šest segmentnih registara. 32-bitna osnovna adresa segmenta, 20-bitno ograničenje i atributi (dozvole) iz tablica deskriptora se ponovo upisuju u registre sjene u zaštićenom načinu.

Registar pokazivača instrukcija. EIP registar pohranjuje pomak u odnosu na početak programa (offset) sljedeće instrukcije koja će se izvršiti. Postoji nekoliko instrukcija u procesoru koje utiču na sadržaj ovog registra. Promjena adrese pohranjene u EIP registru uzrokuje prijenos kontrole na novi dio programa.

Registar zastave EF (EFLAGZ) . Bitovi ovog registra nazivaju se zastavice i odgovorni su ili za specifičnosti izvršavanja nekih CPU instrukcija, ili odražavaju rezultat izvršenja naredbi od strane ALU-a. Zastavice registra su navedene u tabeli 2.1. Bitovi od 22 do 31 uključeni su rezervisani.

Tabela 2.1 Registar zastave

Za analizu bitova ovog registra date su posebne instrukcije za procesor. Kažu zastava instaliran, kada je bit zastavice 1, i da je zastavica ispao, kada je njegova bitna vrijednost 0. Dodatno, prošireni EF registar sadrži pet novih zastavica u poređenju sa F registrom.

Kontrolne zastavice. Stanje bitova u registru EFLAGS, koje odgovaraju kontrolnim zastavicama, programer može promijeniti pomoću posebnih procesorskih instrukcija. Ove zastavice (DF, IF, TF) kontroliraju izvršavanje nekih CPU instrukcija:

8. TF - Trap zastava. Zastavica praćenja (korak mod). Kada je postavljeno (TF=1), nakon izvršenja svake instrukcije, poziva se interni prekid INT 1, koji zaustavlja proces računanja, omogućavajući provjeru sadržaja registara.

9.IF - Oznaka za omogućavanje prekida. Oznaka za omogućavanje prekida. Sa IF=1, maskirani hardverski prekidi su omogućeni. Ako je IF=0, isključeno je.

10. DF - Zastavica smjera. Oznaka za kontrolu smjera obrade niza u string komandama. Kada je DF=1, indeksni registri SI, DI, koji učestvuju u string komandama, automatski se smanjuju za broj bajtova operanda, čime se obrađuju nizovi od kraja do početka. Sa DF=0, oni se povećavaju, obrađujući od početka do kraja niza.

Status Flags. Ove zastavice odražavaju različite indikacije rezultata izvršavanja aritmetičkih i logičkih CPU instrukcija:

0.CF - Nosi zastavicu. Oznaka za nošenje se postavlja ako se prilikom izvođenja aritmetičke operacije bez predznaka dobije broj čija širina bita prelazi širinu bita polja rezultata koji mu je dodijeljen. U instrukcijama pomaka, CF zastavica fiksira vrijednost najznačajnijeg bita.

2. PF - Zastava pariteta. Oznaka parnosti/parnosti se postavlja kada je u rezultatu paran broj jedinica.

4. AF - pomoćno nošenje. Oznaka za dodatni transfer/pozajmljivanje sa niže tetrade na stariju (od treće do četvrte cifre). Koristi se u naredbama za obradu 8-bitnih podataka, najčešće BCD brojeva.

6. ZF - Zero flag. Oznaka nula se postavlja ako aritmetička ili logička operacija rezultira brojem jednakim nuli (tj., svi bitovi rezultata su 0).

7. SF - Znak zastava. Oznaka znaka duplira vrijednost najznačajnijeg bita rezultata. SF=0 za pozitivan, SF=1 za negativan.

11. OF - Zastavica prelivanja. overflow flag , ili ) se postavlja ako se prilikom izvođenja aritmetičke operacije sa predznakom dobije broj čija dubina bita prelazi širinu bita polja rezultata koji mu je dodijeljen.

Zastave, dodano u EF registar:

12-13. IOPL je skraćenica od I/O Privilege Level. Oznaka nivoa I/O privilegija. Koristi se u zaštićenom načinu rada mikroprocesora za kontrolu pristupa I/O komandama, ovisno o privilegiji zadatka.

14. NT - Ugniježđena oznaka zadatka. Zastavica ugniježđenja zadataka. Koristi se u zaštićenom načinu rada mikroprocesora za snimanje činjenice da je jedan zadatak ugniježđen u drugi.

16. RF - Oznaka za nastavak. Zastavica za nastavak. U režimu za otklanjanje grešaka, jedna vrednost RF dozvoljava da se naredba ponovo pokrene nakon prekida. Koristi se zajedno sa registrima tačke prekida za otklanjanje grešaka.

17. VM - Virtual Mode flag. Zastava virtuelnog režima. Znak rada mikroprocesora u virtuelnom režimu 8086. 1 – procesor radi u virtuelnom 8086 režimu; 0 - Procesor radi u stvarnom ili zaštićenom načinu rada.

18. AC - Provjera poravnanja. Oznaka režima rada procesora u kojem se vrši kontrola poravnanja. Koristi se samo na nivou privilegija 3. Ako je AC=1 i AM=1 (AM je bit u CR0 kontrolnom registru), onda ako se pristupa operandu koji nije poravnat sa odgovarajućim ograničenjem (2 ili 4 ili 8) bajtova, Izuzetak 17 će biti podignut. Poravnanje operanda u granicama 2,4,8 znači da je adresa operanda višestruka od 2,4,8, respektivno.

19. VIF - Virtual Interrupt Flag. Oznaka za omogućavanje prekida u načinu rada virtuelnog procesora.

20. VIP - Virtualni prekid na čekanju. Oznaka kašnjenja prekida u načinu rada virtualnog procesora.

21. ID - CPU identifikacija. Zastavica za identifikaciju procesora. Oznaka se može promijeniti ako procesor podržava naredbu CPUID.

U kontrolnim registrima CR0-CR3 su pohranjeni znakovi stanja procesora zajednički za sve zadatke. Registar CR0 ima sljedeće bitove:

0. PE - Zaštita omogućena. Oznaka zaštićenog načina rada. Ako je PE=1, tada je režim procesora zaštićen.

1. MP - Matematički prezent. Oznaka za prisustvo matematičkog koprocesora. Ako je MP=1, tada je prisutan matematički koprocesor.

2. EM - Emulate Numeric Extension. Oznaka emulacije instrukcija s pomičnim zarezom. Kada je zastavica postavljena, naredbe za rad sa realnim brojevima mogu se emulirati u softveru.

3.TS - Task Switched. Zastavica za prebacivanje zadataka. Oznaka se postavlja nakon promjene zadatka.

4. ET - Vrsta proširenja. Zastavica tipa ekstenzije. Postavite ako je prisutan aritmetički koprocesor 387 ili noviji.

5. NE - Omogućavanje numeričke greške. Oznaka za rješavanje greške koprocesora. Ako je zastavica postavljena, tada se u slučaju greške u koprocesoru generiše izuzetak 16.

16.WP - Zaštita od pisanja. Upišite zaštitnu zastavicu. Ako je zastavica postavljena, jezgru operativnog sistema se dodeljuju memorijske stranice u režimu samo za čitanje (samo za čitanje).

18.AM - Maska za poravnavanje. Zastavica za maskiranje poravnanja. Kada je zastavica postavljena, tada će se u slučaju pristupa neusklađenim operandima generirati izuzetak 17. Ako je zastavica obrisana, onda je takav izuzetak maskiran.

29. NW - Not Write Through. Zastavica za onemogućavanje pisanja.

30. CD - Cache Disable. Onemogući keširanje.

31.PG - Paging Enable. Oznaka načina rada sa stranicama memorije. Kada je zastavica postavljena, operativni sistem radi u paging modu.

Preostali bitovi registra CR0 su rezervisani.

Registar CR1 je rezerviran. Registar CR2 pohranjuje 32-bitnu linearnu adresu na kojoj je primljena greška stranice. 20 MSB-ova CR3 pohranjuje fizičku osnovnu adresu tablice direktorija stranica i kontrolne bitove predmemorije. CR4 registar sadrži bitove omogućavanja za arhitektonska proširenja MP-a. Uopšteno govoreći, ovi registri se koriste u sistemskom programiranju i postavljaju radni režim procesora (normalan, zaštićen, itd.), straničenje memorije i tako dalje.

Sistemski registri adresa. GDTR tabela globalnih deskriptora i sistemski registri pokazivača tablice prekida IDTR pohranjuju 32-bitne osnovne adrese i 16-bitna ograničenja tablice, respektivno. Registri segmenta sistemskog zadatka TR i tablica lokalnih deskriptora LDTR su 16-bitni selektori. Oni odgovaraju registrima deskriptora sjene, koji sadrže 32-bitnu osnovnu adresu segmenta, 20-bitno ograničenje i bajt dozvole.

U registrima za otklanjanje grešaka DR0-DR3 sadrži 32-bitne adrese prekida u načinu za otklanjanje grešaka; DR4-DR5 su rezervisani i ne koriste se; DR6 prikazuje stanje kontrolne tačke; DR7 - upravlja postavljanjem kontrolnih tačaka u programu.

Test registri TR su dio grupe registara specifičnih za model, njihov sastav i broj zavise od tipa procesora: MP 386 koristi dva registra TR6 i TR7 za kontrolu sistema straničnog dodjeljivanja memorije od strane operativnog sistema. Pentium II i noviji koriste dvanaest registara TR1-TR12. Ova grupa registara sadrži i rezultate testiranja MP i keš memorije.

Članak otkriva značenje pojma "64 bita". U članku je ukratko prikazana istorija razvoja 64-bitnih sistema, opisani su trenutno najčešći 64-bitni procesori Intel 64 arhitekture i 64-bitni Windows operativni sistem.

Uvod

U okviru računarske arhitekture, izraz "64-bit" odnosi se na 64-bitne cijele brojeve i druge tipove podataka veličine 64 bita. "64-bitni" sistemi se mogu odnositi na 64-bitne arhitekture mikroprocesora (npr. EM64T, IA-64) ili 64-bitne operativne sisteme (npr. Windows XP Professional x64 Edition). Možemo govoriti o kompajlerima koji generišu 64-bitni programski kod.

Ovaj članak će pokriti različita pitanja vezana za 64-bitne tehnologije. Članak je namenjen programerima koji žele da počnu da razvijaju 64-bitne programe, a namenjen je Windows programerima, jer im je pitanje upoznavanja sa 64-bitnim sistemima najrelevantnije.

Istorija 64-bitnih sistema

64-bit je tek nedavno ušao u živote većine korisnika i programera aplikacija. Međutim, rad sa 64-bitnim podacima ima dugu istoriju.

1961: IBM izdaje IBM 7030 Stretch superkompjuter, koji koristi 64-bitne reči podataka, 32-bitne ili 64-bitne mašinske instrukcije.

1974: Control Data Corporation lansira CDC Star-100 vektorski superkompjuter, koji koristi 64-bitnu arhitekturu riječi (prethodni CDC sistemi su imali 60-bitnu arhitekturu).

1976: Cray Research izdaje prvi Cray-1 superkompjuter, koji implementira 64-bitnu arhitekturu riječi i služiće kao osnova za sve naredne Cray vektorske superračunare.

1985: Cray izdaje UNICOS, prvu 64-bitnu implementaciju Unix operativnog sistema.

1991: MIPS Technologies izdaje prvi 64-bitni procesor, R4000, koji implementira treću iteraciju MIPS arhitekture njihove kompanije. Ovaj procesor se koristi u SGI grafičkim radnim stanicama još od IRIS Crimson modela. Kendall Square Research izdaje svoj prvi KSR1 superkompjuter izgrađen na njihovoj vlasničkoj 64-bitnoj RISC arhitekturi koja pokreće OSF/1.

1992: Digital Equipment Corporation (DEC) uvodi 64-bitnu Alpha arhitekturu, zamisao projekta PRISM.

1993: DEC izdaje 64-bitni Unix-sličan DEC OSF/1 AXP operativni sistem (kasnije preimenovan u Tru64 UNIX) za svoje Alpha sisteme.

1994: Intel objavljuje svoje planove za razvoj 64-bitne IA-64 arhitekture (sa Hewlett-Packardom) kao nasljednika njihovih 32-bitnih IA-32 procesora. Datum izlaska određen za 1998-1999. SGI izdaje IRIX 6.0 sa 64-bitnom podrškom za R8000 čipset.

1995: Sun lansira 64-bitnu SPARC UltraSPARC familiju procesora. HAL Computer Systems, podružnica Fujitsua, lansira radne stanice zasnovane na prvoj generaciji 64-bitnog SPARC64 procesora koji je nezavisno razvio HAL. IBM izdaje A10 i A30 mikroprocesore, kao i 64-bitne PowerPC AS procesore. IBM također objavljuje 64-bitno ažuriranje za AS/400 koje može transformirati operativni sistem, baze podataka i aplikacije.

1996: Nintendo predstavlja Nintendo 64 igraću konzolu, zasnovanu na jeftinijoj varijanti MIPS R4000. HP objavljuje 64-bitnu 2.0 implementaciju svoje vlasničke PA-RISC PA-8000 arhitekture.

1997: IBM lansira RS64 liniju 64-bitnih PowerPC/PowerPC AS procesora.

1998: Sun objavljuje Solaris 7 sa punom podrškom za 64-bit UltraSPARC.

1999: Intel izdaje skup instrukcija za IA-64 arhitekturu. AMD javno objavljuje svoj set 64-bitnih ekstenzija za IA-32, koji je nazvan x86-64 (kasnije preimenovan u AMD64).

2000: IBM izdaje svoj prvi ESA/390 kompatibilni 64-bitni mainframe zSeries z900, kao i novi z/OS operativni sistem.

2001: Intel konačno lansira liniju 64-bitnih procesora, sada nazvanih Itanium, za servere visokih performansi. Projekat ne ispunjava očekivanja zbog brojnih kašnjenja u izvođenju IA-64 na tržište. NetBSD postaje prvi operativni sistem koji radi na Intel Itanium procesoru nakon njegovog izdavanja. Pored toga, Microsoft takođe objavljuje Windows XP 64-bitno izdanje za IA-64 arhitekturu Itanium porodice, iako zadržava mogućnost pokretanja 32-bitnih aplikacija koristeći WoW64 sloj.

2003: AMD predstavlja linije procesora Opteron i Athlon 64 zasnovane na AMD64 arhitekturi, koja je prva 64-bitna arhitektura procesora zasnovana na arhitekturi x86. Apple počinje koristiti IBM-ov 64-bitni "G5" PowerPC 970 procesor. Intel tvrdi da će Itanium porodica procesorskih čipova ostati jedini 64-bitni procesori koje je razvila njihova kompanija.

2004: Kao odgovor na AMD-ov komercijalni uspjeh, Intel priznaje da je razvijao klon AMD64 ekstenzija, koji su nazvali IA-32e (kasnije preimenovan u EM64T, a zatim ponovo u Intel 64). Intel takođe izdaje ažurirane verzije Xeon i Pentium 4 porodice procesora sa podrškom za nove komande.

2004: VIA Technologies predstavlja svoj Isaiah 64-bitni procesor.

2005: 31. januara Sun objavljuje Solaris 10 sa podrškom za procesore AMD64/Intel 64. 30. april Microsoft izdaje Windows XP Professional x64 Edition za AMD64/Intel 64 procesore.

2006: Sony, IBM i Toshiba lansiraju 64-bitni Cell procesor za PlayStation 3, servere, radne stanice i druge uređaje. Microsoft izdaje Windows Vista sa uključenom 64-bitnom verzijom za AMD64/Intel 64 procesore koja podržava 32-bitnu kompatibilnost. Sve Windows aplikacije i komponente su 64-bitne, ali mnoge od njih imaju 32-bitne verzije uključene kao dodaci radi kompatibilnosti.

2009: Kao i Windows Vista, Microsoftov Windows 7 uključuje punu 64-bitnu verziju za AMD64/Intel 64 procesore, a većina novih računara podrazumevano dolazi sa 64-bitnom verzijom. Operativni sistem kompanije je objavljen Apple Mac OS X 10.6, "Snow Leopard" koji ima 64-bitni kernel i dizajniran je za AMD64/Intel 64 procesore, međutim, ovaj sistem je podrazumevano instaliran samo na nekim od najnovijih modela Apple računara. Većina aplikacija koje se isporučuju sa Mac OS X 10.6 sada su takođe 64-bitne.

Za više detalja o historiji 64-bitnog razvoja, pogledajte članak Johna Masha "Dug put do 64-bita" i Wikipedijin enciklopedijski članak "64-bit".

Aplikacijsko programiranje i 64-bitni sistemi

U vrijeme pisanja ovog teksta 2010. godine, najpoznatije i najrasprostranjenije su dvije 64-bitne arhitekture mikroprocesora: IA64 i Intel 64.
  1. IA-64 Arhitektura 64-bitnog mikroprocesora koju su zajednički razvili Intel i Hewlett Packard. Implementirano u mikroprocesorima Itanium i Itanium 2. Za detaljnije upoznavanje sa arhitekturom IA-64, možete pogledati sljedeće članke na Wikipediji: "IA-64", "Itanium", "Itanium 2". Itanium arhitektura je podržana veliki broj proizvođači servera: Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI i Unisys. Ovi dobavljači su se pridružili Intelu i mnoštvu programera softvera kako bi formirali Itanium Solutions Alliance kako bi unaprijedili arhitekturu i ubrzali tempo prenosa softvera.
  2. Intel 64(AMD64 / x86-64 / x64 / EM64T) - ova arhitektura je proširenje arhitekture x86 sa potpunom kompatibilnošću unazad. Postoji mnogo varijanti naziva ove arhitekture, što dovodi do zabune, iako, u stvari, sva ova imena znače isto: x86-64, AA-64, Hammer Architecture, AMD64, Yamhill Technology, EM64T, IA-32e , Intel 64, x64. Da biste saznali više o tome kako je došlo do tolikog broja imena, pogledajte članak na Wikipediji: "X86-64". Procesori sa Intel 64 arhitekturom se široko koriste u personalnim računarima. I najvjerovatnije je vaš računar opremljen procesorom sa ovom arhitekturom.
Važno je shvatiti da su IA-64 i Intel 64 (AMD64) potpuno različite, nekompatibilne arhitekture mikroprocesora. Dalje u članku ćemo razmotriti samo Intel 64 (x64 / AMD64) arhitekturu, jer je popularnija među programerima aplikacija. softver za Windows operativni sistem. Radi sažetosti, model programiranja Intel 64 koji je dostupan programerima na 64-bitnom Windows sistemu naziva se Win64.

Intel 64 arhitektura (AMD64)

Intel 64 arhitektura koja se razmatra je jednostavna, ali moćna ekstenzija stare industrijske x86 arhitekture koja je kompatibilna sa nazad. Dodaje 64-bitni adresni prostor i proširuje resurse registra kako bi podržao bolje performanse ponovno kompajliranih 64-bitnih programa. Arhitektura pruža podršku za naslijeđeni 16-bitni i 32-bitni programski kod i operativne sisteme bez modifikacije ili rekompilacije.

Karakteristična karakteristika Intel 64 je podrška za šesnaest 64-bitnih registara opšte namene (x86-32 je imao osam 32-bitnih registara). 64-bitna aritmetika i logičke operacije preko celih brojeva. Podržane su 64-bitne virtuelne adrese. Za adresiranje novih registara za komande, uvedeni su "prefiksi proširenja registra", za koje je odabran raspon kodova 40h-4Fh, koji se koriste za INC komande<регистр>i DEC<регистр>u 32- i 16-bitnom načinu rada. INC i DEC komande u 64-bitnom modu moraju biti kodirane u općenitijem dvobajtnom obliku.

Registri:

16 64-bitnih celobrojnih registara opšte namene (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15),
8 80-bitnih registara s pomičnim zarezom (ST0 - ST7),
8 64-bitnih multimedijalnih ekstenzija (MM0 - MM7, dijeli prostor sa ST0 - ST7 registrima),
16 128-bitnih SSE registara (XMM0 - XMM15),
64-bitni RIP pokazivač i 64-bitni RFLAGS registar zastavica.

Potrebu za 64-bitnom arhitekturom određuju aplikacije kojima je potreban veliki adresni prostor. Prije svega, to su serveri visokih performansi, sistemi za upravljanje bazama podataka, CAD sistemi i, naravno, igre. Takve aplikacije će imati velike koristi od 64-bitnog adresnog prostora i više registara. Mali broj registara dostupnih u naslijeđenoj x86 arhitekturi ograničava performanse u računarskim zadacima. Povećani broj registara pruža dovoljne performanse za mnoge aplikacije.

Ističemo glavne prednosti x86-64 arhitekture:

  • 64-bitni adresni prostor;
  • prošireni skup registara;
  • skup komandi poznatih programerima;
  • mogućnost pokretanja starih 32-bitnih aplikacija na 64-bitnom operativnom sistemu;
  • mogućnost korištenja 32-bitnih operativnih sistema.

64-bitni operativni sistemi

Gotovo svi moderni operativni sistemi sada imaju verzije za arhitekturu Intel 64. Na primjer, Microsoft nudi Windows XP x64. Glavni programeri UNIX sistemi također pružaju 64-bitne verzije, kao što je Linux Debian 3.5 x86-64. Međutim, to ne znači da je cijeli kod takvog sistema potpuno 64-bitni. Dio OS koda i mnoge aplikacije mogu ostati 32-bitni, budući da Intel 64 pruža kompatibilnost unatrag sa 32-bitnim aplikacijama. Na primjer, 64-bitni Windows verzija koristi poseban mod WoW64 (Windows-on-Windows 64), koji prevodi pozive iz 32-bitnih aplikacija u resurse 64-bitnog operativnog sistema.

WoW64

Windows-on-Windows 64-bit (WoW64) je podsistem Windows operativnog sistema koji vam omogućava pokretanje 32-bitnih aplikacija na svim 64-bitnim verzijama Windows-a.

WoW64 podsistem ne podržava sljedeće programe:

  • programi kompajlirani za 16-bitne operativne sisteme;
  • kernel-mode programi kompajlirani za 32-bitne operativne sisteme.
Postoje WoW64 razlike u zavisnosti od arhitekture procesora. Na primjer, 64-bitna verzija Windowsa dizajnirana za Intel Itanium 2 procesor koristi WoW64 za emulaciju x86 instrukcija. Ova emulacija je veoma intenzivna u poređenju sa WoW64 za Intel 64 arhitekturu, jer se prebacuje iz 64-bitnog režima u režim kompatibilnosti kada se izvršavaju 32-bitni programi.

WoW64 na Intel 64 (AMD64/x64) arhitekturi ne zahtijeva emulaciju instrukcija. Ovdje podsistem WoW64 emulira samo 32-bitno okruženje, zbog dodatnog sloja između 32-bitne aplikacije i 64-bitnog Windows API-ja. Negde je ovaj sloj tanak, negde ne toliko. Za sekundarni program gubici performansi zbog prisustva takvog sloja će biti oko 2%. Za neke programe ova vrijednost može biti veća. Dva posto nije mnogo, ali imajte na umu da 32-bitne aplikacije rade malo sporije pod 64-bitnim Windows operativnim sistemom nego u 32-bitnom okruženju.

Kompajliranje 64-bitnog koda ne samo da eliminiše potrebu za WoW64, već pruža i dodatno povećanje performansi. To je zbog arhitektonskih promjena u mikroprocesoru, kao što je povećanje broja registara opće namjene. Za prosječan program, možete očekivati ​​između 5-15% povećanja performansi od jednostavne rekompilacije.

Zbog prisustva WoW64 sloja, 32-bitni programi rade manje efikasno u 64-bitnom okruženju nego u 32-bitnom. Ipak, jednostavne 32-bitne aplikacije mogu imati koristi od njihovog pokretanja u 64-bitnom okruženju. Verovatno znate da program kompajliran sa prekidačem /LARGEADDRESSAWARE:YES može dodeliti do 3 gigabajta memorije ako se 32-bitni Windows operativni sistem pokrene sa prekidačem /3gb. Dakle, isti 32-bitni program koji radi na 64-bitnom sistemu može dodijeliti skoro 4 GB memorije (u praksi oko 3,5 GB).

WoW64 podsistem izoluje 32-bitne programe od 64-bitnih programa preusmjeravanjem pristupa datotekama i registru. Ovo sprečava 32-bitne programe da slučajno pristupe 64-bitnim podacima aplikacije. Na primjer, 32-bitna aplikacija koja pokreće DLL datoteku iz direktorija %systemroot%\System32 može slučajno pristupiti 64-bitnoj DLL datoteci koja nije kompatibilna s 32-bitnim programom. Da bi se ovo izbjeglo, podsistem WoW64 preusmjerava pristup iz %systemroot%\System32 foldera u folder %systemroot%\SysWOW64. Ovo preusmjeravanje pomaže u sprječavanju grešaka u kompatibilnosti jer zahtijeva DLL datoteku koja je posebno dizajnirana za rad sa 32-bitnim aplikacijama.

Saznajte više o mehanizmima preusmjeravanja sistem podataka a registar se može naći u MSDN odjeljku "Pokretanje 32-bitnih aplikacija".

Win64 model programiranja

Baš kao iu Win32, veličina stranice u Win64 je 4Kb. Prvih 64K adresnog prostora se nikada ne mapira, tako da je najmanja važeća adresa 0x10000. Za razliku od Win32, sistemske DLL datoteke su učitane iznad 4 GB.

Posebnost kompajlera za Intel 64 je u tome što najefikasnije mogu koristiti registre za prosljeđivanje parametara funkcijama, umjesto korištenja steka. Ovo je omogućilo programerima Win64 arhitekture da se otarase takve stvari kao što je konvencija pozivanja (konvencija pozivanja). U Win32 možete koristiti različite konvencije: __stdcall, __cdecl, __fastcall, i tako dalje. U Win64 postoji samo jedna konvencija o pozivanju. Razmotrimo primjer kako se četiri argumenta cjelobrojnog tipa prosljeđuju u registrima:

  • RCX: prvi argument
  • RDX: drugi argument
  • R8: treći argument
  • R9: četvrti argument
Argumenti nakon prva četiri cijela broja se prosljeđuju na stog. Za argumente float koriste se registri XMM0-XMM3, kao i stek.

Razlika u konvencijama pozivanja znači da se i 64-bitni i 32-bitni kod ne mogu koristiti u istom programu. Drugim riječima, ako je aplikacija kompajlirana za 64-bitni način rada, tada sve korištene biblioteke (DLL) također moraju biti 64-bitne.

Prolazak parametara kroz registre je jedna od inovacija koja 64-bitne programe čini efikasnijim od 32-bitnih. Dodatni dobitak u performansama može se postići korištenjem 64-bitnih tipova podataka.

Adresni prostor

Dok 64-bitni procesor teoretski može adresirati 16 eksabajta memorije (2^64), Win64 trenutno podržava 16 terabajta (2^44). Postoji nekoliko razloga za to. Trenutni procesori mogu pristupiti samo 1 terabajtu (2^40) fizičke memorije. Arhitektura (ali ne i hardver) može proširiti ovaj prostor do 4 petabajta (2^52). Međutim, u ovom slučaju je potrebna ogromna količina memorije za tablice stranica mapiranih u memoriji.

Pored ovih ograničenja, količina memorije koja je dostupna u određenoj verziji 64-bitnog Windows operativnog sistema zavisi i od Microsoftovih komercijalnih razmatranja. Slijede informacije o količini memorije koju podržavaju različite verzije 64-bitnih verzija Windowsa:

Windows XP Professional - 128 Gbyte;
Windows Server 2003, Standard - 32 Gbyte;
Windows Server 2003, Enterprise - 1 Tbajt;
Windows Server 2003, Datacenter - 1 Tbyte;
Windows Server 2008, Datacenter - 2 Tbyte;
Windows Server 2008, Enterprise - 2 Tbajta;
Windows Server 2008, Standard - 32 Gbyte;
Windows Server 2008, Web server - 32 Gbajta;
Vista Home Basic - 8 GB;
Vista Home Premium - 16 GB;
Vista Business - 128 GB;
Vista Enterprise - 128 GB;
Vista Ultimate - 128 GB;
Windows 7 Home Basic - 8 GB;
Windows 7 Home Premium - 16 GB;
Windows 7 Professional - 192 GB;
Windows 7 Enterprise - 192 GB;
Windows 7 Ultimate - 192 GB;

Razvoj 64-bitnih aplikacija

Pitanja razvoja 64-bitnih aplikacija najpotpunije su obrađena na kursu "

1985. firma Intel izdao 32-bitni mikroprocesor, koji je postao predak porodice IA-32. Razvoj ove porodice prošao je kroz nekoliko faza, među kojima se mogu izdvojiti: implementacija bloka za obradu brojeva s pomičnim zarezom direktno na MP čipu (mikroprocesoru I486), uvod MMX- tehnologija obrade podataka u fiksnoj tački prema principu SIMD - jedna instrukcija sa više podataka(jedan tok instrukcija - mnogo tokova podataka) u mikroprocesoru Pentium MMX i razvoj ove tehnologije na brojevima s pomičnim zarezom ( SSE - streaming SIMD ekstenzija), koji se prvi put pojavio u MP Pentium III. Međutim, glavne karakteristike ove arhitekture ostale su nepromijenjene do danas.

Arhitektura 32-bitnog mikroprocesora značajno se razlikuje od arhitekture 16-bitnog. Neke od ovih razlika su čisto kvantitativne, dok su druge fundamentalne.

Glavna eksterna razlika je povećanje širine magistrale podataka i adresne magistrale na 32 bita. To je, pak, povezano s promjenama u dubini bita unutarnjih elemenata mikroprocesora i u mehanizmu za izvođenje nekih procesa, na primjer, formiranje fizičke adrese.

Registri procesorske jedinice fiksne tačke postali su 32-bitni. Svakom od njih se može pristupiti kao jedna dvostruka riječ (32 bita). Donjih 16 bitova ovih registara može se pristupiti na isti način kao u 16-bitnom mikroprocesoru.

U bloku registara segmenta dogodile su se i kvantitativne i kvalitativne promjene. Pored četiri registra koji se koriste u realnom modu, CS, DS, SS i ES, dodata su još dva: FS i GS. Iako je dubina bita registara ovog bloka ostala ista (svaki 16 bita), oni se različito koriste u formiranju fizičke adrese RAM-a. Kada mikroprocesor radi u takozvanom zaštićenom režimu, oni su namenjeni traženju deskriptora segmenta (deskriptora) u odgovarajućim sistemskim tabelama, a osnovna adresa i atributi segmenta su već pohranjeni u deskriptoru. Generisanje adrese u ovom slučaju vrši blok segmentacije menadžera memorije.

Ako je pored segmenata memorija podijeljena i na stranice, tada konačni proračun fizičkih adresa vrši kontrolni blok stranice.

Počevši od mikroprocesora I486, mikroprocesorski čip uključuje jedinicu za obradu brojeva s pomičnim zarezom, koja uključuje osam 80-bitnih registara za predstavljanje znakova, mantisa i eksponenata takvih brojeva.

Mikroprocesorski čip takođe ima internu keš memoriju, koja je posebno organizovana bafer memorija velike brzine dizajnirana za skladištenje najčešće korišćenih informacija (komandi i podataka). U različitim modelima mikroprocesora, količina keš memorije kreće se od 8 KB do 512 KB.

Mikroprocesor na hardverskom nivou podržava multiprogramski način rada računara, odnosno mogućnost da u memoriji ima nekoliko programa spremnih za izvršenje istovremeno, koje pokreće operativni sistem u skladu sa algoritmima svog funkcionisanja ili zavisno od toga. o posebnim situacijama koje nastaju u radu vanjskih uređaja.

Neraskidivo povezane sa ovom sposobnošću su memorijske zaštite, koje obezbeđuju kontrolu nad neovlašćenim interakcijama između pojedinačnih programa. To uključuje zaštitu upravljanja memorijom i zaštitu privilegija.

Glavne karakteristike proširenog formata naredbi su mogućnost korištenja bilo kojeg od registara opšte namjene u bilo kojem od načina adresiranja, kao i dodatak još jednog načina adresiranja - relativnog osnovnog indeksa sa skaliranjem. U ovom slučaju, efektivna adresa se formira na sljedeći način:

EA = (baza) + (indeks) skala + disp,

gdje je (baza) vrijednost osnovnog registra; (indeks) - vrijednost indeksnog registra; skala - vrijednost faktora skale (skala = 1,2,3,4); disp je vrijednost pomaka kodirana u samoj naredbi.

Imajte na umu da se na 32-bitnoj arhitekturi efektivna adresa obično naziva pomakom, dok se razlikuje od ofseta kodiranog u samoj instrukciji (pomak).

Bitna arhitektura PC-a.

Win64 kod kombinuje osnovne karakteristike 32-bitnog koda, a uključuje i promene za poboljšanje bita. Programer ima:

· 64-bitni pokazivači;

· 64-bitni tipovi podataka;

· 32-bitni tipovi podataka;

Win64 API interfejs.

Imajte na umu da 32-bitni tipovi podataka nisu nestali kada je platforma povećala bitnost (kao što su to učinili sa 16-bitnim tipovima podataka prilikom prelaska na Win32). To je zato što čak iu 64-bitnim aplikacijama, u većini slučajeva, varijable ne zahtijevaju 8 bajtova memorije, pa bi korištenje 64-bitnih tipova u takvim slučajevima bilo krajnje neefikasno. operativni sistem Morao bih dodati nule visokim bitovima kako bih povećao veličinu podataka na 8 bajtova (takvi podaci su također vrlo nezgodni za čitanje). To bi dovelo do degradacije performansi.

Drugačija sudbina zadesila je 32-bitne pokazivače: potpuno su nestali. Činjenica je da upotreba 32-bitnih pokazivača nameće ograničenje na količinu adresabilne memorije. Na primjer, jedna od glavnih prednosti modela ravne memorije (koji je glavni za programiranje 32-bitnih aplikacija za NT platformu) korištenjem 32-bitnih pokazivača je mogućnost kreiranja segmenata veličine do 4 GB. Novi 64-bitni pokazivači pružaju mogućnost adresiranja do 16 TB memorije (1 TB = 1012 MB). Ovaj volumen je prilično tražen od strane modernih poslovnih aplikacija.

Funkcije u Win64 API-ju su pretrpjele manje promjene. Samo su imena nekih od njih promijenjena da odražavaju 64-bitnu platformu. U većini slučajeva promijenili su se samo tipovi parametara koji su argumenti za pozive funkcija. Sve ostale prednosti (mogućnost prestanka korištenja stranica za stranice, itd.) povezane su ili sa povećanom količinom adresiranja, ili sa novim tipovima podataka.

Dizajn sistemskih ploča. Form factor

Dizajn matične ploče računara

Matična ploča(engleska matična ploča, MB, koristi se i naziv engleske matične ploče - glavna ploča; sleng. mama, majka, matična ploča) je složena višeslojna štampana ploča na koju su ugrađene glavne komponente PC(centralni procesor, RAM kontroler i odgovarajuća RAM memorija, boot ROM, kontroleri za osnovne I/O interfejse). U pravilu, matična ploča sadrži konektore (utore) za povezivanje dodatnih kontrolera, za koje se obično koriste USB, PCI i PCI-Express sabirnice.

CPU

Sistemski logički set (eng. Chipset) - skup čipova koji povezuju CPU sa RAM-om i kontrolerima perifernih uređaja. Po pravilu, moderni setovi sistemske logike se grade na bazi dva VLSI: "sjeverni" i "južni most".

sjeverni most(engleski Northbridge), MCH (memory controller hub), sistemski kontroler - omogućava povezivanje CPU-a sa čvorovima koristeći sabirnice visokih performansi: RAM, grafički kontroler.

FSB-ovi kao što su Hyper-Transport i SCI mogu se koristiti za povezivanje CPU-a sa sistemskim kontrolerom.

Obično je RAM povezan na sistemski kontroler. U ovom slučaju sadrži memorijski kontroler. Dakle, tip sistemskog kontrolera koji se koristi obično zavisi od toga maksimalna jačina zvuka RAM, kao i propusni opseg memorijske magistrale personalnog računara. Ali trenutni trend je da se RAM kontroler ugrađuje direktno u CPU (na primjer, memorijski kontroler je ugrađen u procesor u AMD K8 i Intel Core i7), što pojednostavljuje funkcije sistemskog kontrolera i smanjuje stvaranje topline.

PCI Express se koristi kao magistrala za povezivanje grafičkog kontrolera na modernim matičnim pločama. Korištene su ranije zajedničke magistrale (ISA, VLB, PCI) i AGP sabirnice.

južni most(eng. Southbridge), ICH (I/O controller hub), periferni kontroler - sadrži kontrolere perifernih uređaja ( tvrdi disk, Ethernet, audio), bus kontroleri za povezivanje perifernih uređaja ( PCI sabirnica, PCI-Express i USB), kao i kontroleri sabirnice na koje su povezani uređaji koji ne zahtijevaju veliku propusnost (LPC - koristi se za povezivanje boot ROM-a; LPC bus se koristi i za povezivanje multikontrolera (engleski Super I/O ) - mikro kola, koja pružaju podršku za "zastarjele" interfejse za prenos podataka niskih performansi: serijski i paralelni interfejsi, kontroler tastature i miša).

Sjeverni i južni most se po pravilu implementiraju kao odvojeni VLSI, ali postoje i jednočipna rješenja. To je skup sistemske logike koji sve određuje ključne karakteristike matičnu ploču i koji uređaji se na nju mogu povezati.

Memorija sa slučajnim pristupom (također random access memory, RAM) - u računarstvu - memorija, dio računarskog memorijskog sistema, kojem procesor može pristupiti jednom operacijom (skok, pomjeranje, itd.). Namijenjen je za privremeno skladištenje podataka i naredbi potrebnih procesoru za obavljanje operacija. RAM prenosi podatke do procesora direktno ili preko keš memorije. Svaka RAM ćelija ima svoju individualnu adresu.

RAM se može proizvesti kao zasebna jedinica ili uključiti u dizajn računara ili mikrokontrolera sa jednim čipom.

Boot ROM - pohranjuje softver koji se izvršava odmah nakon uključivanja. Po pravilu, ROM za pokretanje sadrži BIOS, ali može sadržavati i softver koji radi unutar EFI-ja.

Arhitektonske karakteristike 64-bitnog MP-a


5.1. Itanium 2 Intel

Procesor je razvijen od nule i, paralelno, u dvije verzije odjednom: inženjeri iz Intela i Hewlett-Packarda. Međutim, oba čipa su se prirodno zasnivala na istim idejama, budući da su ipak stvoreni zajednički, a oba su trebala postati osnivači iste porodice. Cementirajuća kompozicija je, naravno, bila jedna ideologija koja je zamenila CISC - EPIC (Explicitly Parallel Instruction Computing), i nova arhitektura - IA-64, koja uključuje skup instrukcija, opis registara i druge slične stvari. Međutim, arhitektura je samo promjenjiva stvar, dovoljno je podsjetiti se kako se takvi CISC procesori kao što su 8086 i i80486 razlikuju jedni od drugih, oba kreirana na bazi 80x86.
Slično sa Mercedom i McKinleyem, Itanium i Itanium 2 - oba su izgrađena na osnovu iste ideologije, ali u različitim varijantama arhitekture. Nekada je ista priča, generalno, bila sa Pentiumom i Pentium Pro. Međutim, one su imale zajedničke karakteristike, a i ove ih imaju, za to je "odgovoran" EPIC. Prije svega, govorimo o punopravnoj superskalarnosti velikih razmjera, odnosno o mogućnosti istovremenog izvršavanja nekoliko instrukcija. Za šta, naravno, procesor sadrži izvršne module - za operacije s cijelim brojevima, s brojevima s pokretnim zarezom itd.
Za razliku od Pentiuma i njegovih nasljednika, koji sami shvaćaju kod, EPIC procesori se u velikoj mjeri oslanjaju na kompajler, koji mora sam analizirati kod kako bi pronašao optimalna mjesta za paraleliziranje njegovog izvršavanja i dostavio procesoru ove informacije. Stoga se koristi "eksplicitno" - procesor ne treba da pokušava da shvati šta se može izvršiti paralelno, a šta ne, itd. - prevodilac će mu sve ovo unapred objasniti. Plus, moćni mehanizmi za predviđanje grananja, prethodno izvršenje delova koda, prethodno učitavanje podataka i slično - učitavanje izvršnih jedinica treba da bude raspoređeno što je ravnomernije moguće.
Radikalno je riješen problem sa registrima, čiji je broj povećan nekoliko puta: za Itanium njihov broj je 128 za opće namjene (slika 1), 128 za pohranjivanje brojeva s pomičnim zarezom, 8 prelaznih registra i 64 odgovorna za ra -bot mehanizama predviđanja. Ovdje je sve očito - toliki broj registara, pa čak i stvarno 64-bitni, bit će dovoljan za pohranjivanje svih potrebnih brojeva za bilo koji razuman broj izvršnih modula. Itanium, prvi predstavnik porodice, ima samo pet takvih registara - dva cela, dva za memorijske operacije i četiri za operacije sa pokretnim zarezom. Fizička memorija je adresirana sa 44-bitnim brojevima, što zapravo ograničava njenu veličinu na "samo" 17,6 terabajta, blokovi s pomičnim zarezom rade sa brojevima u 82-bitnom prikazu.

Intel je odustao od ideje da implementira 32-bitnu 80x86 jezgru u hardverskom obliku, smatrajući da je to previše neefikasno korištenje područja matrice. Dakle, da bi se mogao izvršiti Itanium 80x86 kod, kreiran je sistem prevođenja koji konvertuje 80x86 kod u IA-64 u hodu.
Očigledno, pod jednakim ostalim stvarima, performanse takvog rješenja će biti niže od čistog x86 koji radi na istoj frekvenciji. Međutim, niko nije očekivao brzo izvršavanje x86 programa od Itanium-a - podrška za ovu arhitekturu je više trošak prelaznog perioda. Ipak, ostaje činjenica da ova porodica nije pogodna za rješavanje 32-bitnih problema. Međutim, rijetko tko će koristiti Itanium u takve svrhe uz prisutnost punopravnog 64-bitnog softvera.
Pored toga, sam Itanium je bio prilično pilot projekat, kao i Pentium Pro, tako da se procesor generalno treba posmatrati više kao demonstracija sposobnosti arhitekture. Karakterističan dodir - čipset za Itanium, 460GX, podržava samo PC100 SDRAM kao memoriju, što govori nešto o brzini kojom je procesor u stanju da svari podatke. S druge strane, međutim, u određenoj mjeri ne prebrzo sučelje s RAM kompenzirano vrlo velikom L3 keš memorijom - 2 ili 4 MB, koja radi na punoj frekvenciji procesora (733 ili 800 MHz) sa propusnošću do 12,8 GB / s.
Još jedan zadatak Itanium-a bio je da riješi problem sa kompajlerima - uostalom, EPIC procesori, kao što je već spomenuto, uvelike zavise od njih. Za razliku od kompajlera za procesore 80x86, koji gotovo da nisu uticali na njihove performanse, ovde su kompajleri potpuni partneri procesora – na kraju krajeva, oni ga snabdevaju informacijama koje su izuzetno neophodne za rad, a od toga koliko će biti kvalitetne zavisiće on - visi brzina izvršavanja ovog programa od strane procesora.
Itanium 2 je već komercijalno zanimljiviji proizvod. Kreiran od strane Hewlett-Packarda, koji se dočepao stvaranja 64-bitnih procesora PA-RISC serije, ispostavilo se da je čip mnogo napredniji. Sa nešto manjom količinom L3 (1,5 ili 3 MB) i nešto višom frekvencijom, 900 MHz ili 1 GHz, pruža jedan i po do dva puta brže performanse na istim zadacima kao Itanium. On je, zapravo, prvi predstavnik arhitekture IA-64.
Nadalje, planirana je još veća paralelizacija na najmoderniji način za danas: procesor će se morati prebaciti na dva fizička jezgra, što će gotovo udvostručiti performanse po prilično razumnoj cijeni - barem će se rezultat pokazati mnogo jeftinijim nego da se isti broj izvršnih modula, registara itd. pokušava postići na jednom čipu.

5.2. Athlon 64 AMD

Prije svega, napominjemo da je Athlon 64 procesor upravo 64-bitni desktop procesor koji je AMD prvobitno planirao da objavi. Nakon toga, u svjetlu objavljivanja brzih Pentium 4 procesora, pojave 800 MHz magistrale i Hyper-Threading tehnologije u njima, AMD je hitno odlučio da jednoprocesorni Opteron cilja na tržište desktop računara, dajući mu ime Athlon. 64 FX. Međutim, Athlon 64 FX se, zbog svog serverskog porijekla, pokazao skupim i nije u širokoj upotrebi. Athlon 64 bi trebao zaista promovirati AMD64 arhitekturu za masovnu upotrebu.
Ispod je tabela 1 sa specifikacijama za 64-bitne Athlon 64 3200+, Athlon 65 FX-51 i Athlon XP 3200+ MP:

Tabela 1

* Imajte na umu da je memorija u Athlon 64 i Athlon 64 FX taktovana u odnosu na takt jezgre, tako da su stvarni taktovi memorije u ovom slučaju 129,4, 157,1 i 200 MHz.
Zapravo, Athlon 64 se od svog starijeg kolege Athlon 64 FX razlikuje, osim po obliku i dimenzijama kućišta, samo po memorijskom kontroleru. Iako su u isto vrijeme oba procesora napravljena od istih kristala. Memorijski kontroler u Athlonu 64 je jednokanalni i to je njegova slabost i prednost u odnosu na Athlon 64 FX. Loša strana jednokanalnog memorijskog kontrolera u Athlonu 64 je očigledna: to je niži teoretski propusni opseg.
S obzirom da Athlon 64 može raditi sa DDR400 memorijom, maksimalni propusni opseg memorijskog kontrolera ugrađenog u CPU je 3,2 GB po sekundi. Ovo je dva puta manje od slične karakteristike Athlon 64 FX. Prednost Athlon 64 memorijskog kontrolera je u tome što, za razliku od Athlon 64 FX kontrolera, podržava konvencionalne neregistrovane memorijske module. Takvi moduli su jeftiniji u odnosu na module registara, imaju agresivnije tajminge i rade brže, čak i sa istim postavkama kao moduli registara. Odnosno, sa nižom propusnošću koju obezbeđuje Athlon 64 memorijski kontroler, memorijski podsistem koji ga koristi ima nižu latenciju, što ćemo pokazati u nastavku.
AMD Athlon 64 izgled sličan Opteronu i Athlonu 64 FX.
Razlike se nalaze samo u označavanju i manje pinova na poleđini, jer su Athlon 64 procesori instalirani u matične ploče sa Socket 754 i nisu kompatibilni sa Socket 940 pločama dizajniranim za porodice Athlon 64 FX i Opteron CPU.
Pored gore navedenih karakteristika, novi Athlon 64 procesori imaju još jedan. Ovi procesori imaju podršku za Cool'n'Quiet tehnologiju, koja im je zapravo došla mobilne opcije MP. Zapravo, Cool'n'Quiet je vrsta tehnologije za uštedu energije PowerNow!, koja se dugo koristi u mobilnim MP-ovima iz AMD-a. Ali sada je ova tehnologija konačno došla na desktop procesore kompanije. Cool'n'Quiet podrška je još jedna prednost Athlona 64 u odnosu na Athlon 64 FX/Opteron, koji još nema takve tehnologije. AMD već dugo vremena posvećuje veliku pažnju smanjenju nivoa toplote svojih desktop procesora.
Mora se reći da je kompanija dugo bila superiorna u odnosu na Intel u tome: stariji modeli AMD procesora emituju znatno manje toplote pri maksimalnom opterećenju od starijih modela Pentium 4. Takođe, procesori koriste tehnologije koje smanjuju rasipanje toplote čak i pri niskom opterećenju. Više poslaničkih porodica
Athlon XP karakteristike su imale mogućnost prebacivanja u "standby mod" (Halt/Stop Grant) prilikom izvršavanja komande HALT, što je rezultiralo smanjenjem temperature procesora kada je bio učitan ispod 100%. Sada je, međutim, AMD otišao još dalje. Novi Athlon 64 procesori imaju još inteligentniju šemu smanjenja toplote.
Pored stanja odobrenja za zaustavljanje/zaustavljanje, Athlon 64 može resetovati svoju brzinu takta i napon kako bi dodatno smanjio rasipanje toplote. U radu koji koristi ovu tehnologiju, brzinu procesorskog takta kontroliše drajver procesora, koji je resetuje ili podiže na osnovu podataka o njegovom opterećenju. Zaista, ako se procesor u potpunosti nosi s poslom koji mu je dodijeljen i njegovo opterećenje je mnogo manje od 100%, tada je moguće smanjiti njegovu frekvenciju takta bez štete po funkcioniranje sustava u cjelini: to neće utjecati na rad sistema na bilo koji način. Na primjer, u stanju mirovanja, radu u uredskim aplikacijama, gledanju videa, defragmentiranju diskova i sličnim zadacima, snaga procesora se ne koristi u potpunosti. U takvim slučajevima upravljački program procesora prebacuje Athlon 64 na nižu brzinu takta. Kada se od procesora traži da daje punu snagu, na primjer, u igrama, pri rješavanju računskih problema, u zadacima kodiranja podataka, itd., frekvencija procesora raste na nominalnu. Upravo tako funkcioniše Cool'n'Quiet tehnologija.
U praksi to izgleda ovako. U normalnim uslovima, uz minimalno MP opterećenje, drajver procesora resetuje frekvenciju Athlona 64 3200+ sa standardnih 2 GHz na 800 MHz. Napon procesora se tada smanjuje na 1,3V. Kao što vidite, smanjenje frekvencije takta je obezbeđeno smanjenjem množitelja procesora na 4x. Ovo, inače, određuje i činjenicu da se Athlon 64 3200+ procesori isporučuju sa nefiksiranim množiteljem. U ovom režimu, procesor nastavlja da radi sve dok njegovo opterećenje ne pređe 70-80%. Konkretno, bili smo u mogućnosti da istovremeno pokrećemo defragmentaciju diska, reprodukujemo mp3 fajlove (audio fajlove) i gledamo MPEG-4 (video fajlove) video zapise, dok je procesor nastavio da radi na frekvenciji od 800 MHz.
Kada opterećenje na Athlon 64 procesoru na 800 MHz pređe dozvoljenu granicu, drajver prebacuje MP u sljedeće stanje, u kojem je frekvencija Athlon 64 3200+ 1,8 GHz, a napon napajanja 1,4 V. Ovo se ponovo postiže smanjenjem množitelja, ovog puta na 9x. I samo ako se u ovom slučaju opterećenje procesora opet pokaže pretjerano visokim, drajver prebacuje MP u normalni način rada: frekvencija je 2 GHz, napon napajanja je 1,5 V.
Imajte na umu da u režimima niske potrošnje i niske frekvencije, rasipanje topline Athlon 64 3200+ procesora naglo opada. Za poređenje, predstavljamo tabelu 4 sa disipacijom toplote ovog procesora u glavnim režimima.

Dakle, upotreba Cool'n'Quiet tehnologije omogućava vam da značajno smanjite temperaturu procesora ne samo tokom vremena mirovanja, već i tokom niza zadataka koji ne zahtijevaju maksimalne performanse od MP-a. Ono što je važno jeste da se performanse MP-a u zadacima koji zahtevaju resurse procesora nimalo ne smanjuju. Kao rezultat toga, kada se koriste sistemi za hlađenje sa ventilatorima promjenjive brzine, korištenje Cool'n'Quiet tehnologije može značajno smanjiti nivo buke.