AMD Piledriver na K10: Kichwa hadi Kichwa. Ulinganisho wa K10 na K10.5. Vichakataji vipya vya laini vya AMD A tayari vinauzwa

Ujenzi wa kompyuta kulingana na microprocessor LSIs hufanya iwezekanavyo kupunguza gharama ya kompyuta ndogo kulinganishwa katika vigezo vyao na kompyuta zilizoundwa hapo awali kwa mara 10 3 - 10 4, kwa vipimo vya jumla kwa (2-3) x10 mara 4, na katika matumizi ya nguvu. kwa mara 10 5. Hii ina maana kwamba bila kuongeza gharama za jumla, teknolojia ya microelectronic inaruhusu jamii kuzalisha mamia na maelfu ya kompyuta zaidi kuliko hapo awali.

Microprocessor- kifaa kamili cha usindikaji habari kinachodhibitiwa na programu iliyohifadhiwa kwenye kumbukumbu. Kuibuka kwa microprocessors (MP) ikawa shukrani iwezekanavyo kwa maendeleo ya umeme jumuishi. Hii ilifanya iwezekane kuhama kutoka kwa mizunguko midogo na ya kati iliyojumuishwa hadi mizunguko mikubwa na mikubwa iliyojumuishwa (LSI na VLSI).

Kwa kazi za kimantiki na muundo Mbunge huyo anafanana na toleo lililorahisishwa la processor ya kompyuta za kawaida. Kimuundo, inajumuisha LSI moja au zaidi au VLSI.

Kulingana na sifa zao za kubuni, Wabunge wanaweza kugawanywa katika Wabunge wa Chip moja na urefu wa neno fasta (kina kidogo) na mfumo maalum wa amri; Wabunge wa sehemu nyingi (sehemu) na uwezo wa maneno unaoongezeka na udhibiti wa programu ndogo (zinajumuisha LSI mbili au zaidi).

Hivi karibuni, Wabunge wa chip moja na udhibiti wa programu ndogo wameonekana.

Usanifu wa microprocessor ya chip nyingi na udhibiti wa microprogram hufanya iwezekanavyo kufikia kubadilika katika matumizi yake na, kwa kutumia njia rahisi, kuandaa utekelezaji sambamba wa shughuli za mashine ya mtu binafsi, ambayo huongeza utendaji wa kompyuta kwenye microprocessors vile.

Kazi hii ya kozi itachunguza vizazi viwili vya usanifu wa microprocessor - K10 na K10.5

Historia ya uumbaji

K 10 - kizazi cha usanifu wa x86 microprocessor kutoka AMD. Wasindikaji wa usanifu huu walianza kuuzwa mwishoni mwa 2007.

Kutajwa kwa kwanza kwa microarchitecture ya kizazi kijacho ilionekana mwaka wa 2003, kwenye Jukwaa la Microprocessor 2003. Jukwaa lilibainisha kuwa usanifu mpya utajumuisha wasindikaji wa msingi mbalimbali ambao wangefanya kazi kwa kasi ya saa hadi 10 GHz. Baadaye, masafa ya saa yalipunguzwa mara kadhaa. Kutajwa rasmi kwa kwanza kwa maendeleo ya AMD ya vichakataji quad-core kulionekana Mei 2006 katika ramani iliyochapishwa kwa kipindi hicho hadi 2009. Kweli, wakati huo usanifu mpya uliorodheshwa chini ya jina la kanuni AMD K8L, na tu Februari 2007 jina la mwisho AMD K10 liliidhinishwa. Wasindikaji, kulingana na usanifu ulioboreshwa wa AMD K8, walipaswa kuwa wasindikaji wa kwanza wa quad-core AMD, pamoja na wasindikaji wa kwanza kwenye soko ambalo cores zote 4 ziko kwenye chip moja (hapo awali kulikuwa na uvumi kuhusu kuonekana kwa kichakataji cha quad-core AMD, ambacho ni fuwele mbili za Opteron mbili-msingi) .

Uzalishaji wa mfululizo wa quad-core Phenom II X4 ulianza Januari 2009, Phenom II X3 ya msingi-tatu mnamo Februari 2009, Phenom II X2 ya msingi-mbili mnamo Juni 2009, na Phenom II X2 ya msingi sita mnamo Aprili 2010.

Athlon II - badala ya Sempron - ni Phenom II, kunyimwa moja ya faida zake muhimu - cache kubwa ya ngazi ya tatu (L3), ya kawaida kwa cores zote. Inapatikana katika matoleo mawili, matatu na manne ya msingi. Athlon II X2 imekuwa ikitolewa tangu Juni 2009, X4 tangu Septemba 2009, na X3 tangu Novemba 2009.

Mnamo 2008, usanifu wa K10.5, kulingana na K10, ulitolewa.

Maelezo K10

K10 ni kichakataji cha 65nm SOI. Inajumuisha transistors milioni 450 na ina eneo la msingi la 283 sq. Voltage: 1.05V-1.38V. Soketi: AM2+(pini 940)/F(pini 1207)

Kiini cha asili cha K10 kimepewa jina la Barcelona (AMD), kwa vichakataji vilivyokusudiwa kwa seva. Wasindikaji wa baadaye wa kompyuta za mezani walitolewa, ambapo msingi wa K10 uliitwa Agena.

Wasindikaji wote walio na msingi wa K10 walioingia sokoni mwaka wa 2007 wana hatua ya B2 na BA na wana hitilafu katika kidhibiti cha kumbukumbu, kutokana na ambayo microprocessor inaweza kufanya kazi vizuri chini ya hali fulani (kinachojulikana "TLBbug").

Mdudu wa TLB

Kuhusiana na wasindikaji wa Agena na Barcelona (AMD), kinachojulikana kama hitilafu ya TLB au TLB mara nyingi hutajwa. Hitilafu hii hutokea katika marekebisho yote ya wasindikaji wa quad-core AMD B2 na inaweza, katika hali nadra sana, kusababisha tabia ya mfumo isiyotabirika chini ya mizigo ya juu. Hitilafu hii ni muhimu katika sehemu ya seva, ambayo ilisababisha kusimamishwa kwa uwasilishaji wote wa vichakataji vya Barcelona (AMD) vya marekebisho B2. Kwa vichakataji vya Phenom ya eneo-kazi, kiraka cha TLB kilipendekezwa ambacho kinazuia hitilafu kutokea kwa kuzima sehemu ya mantiki ya TLB. Kiraka hiki, ingawa kinatuokoa kutoka kwa hitilafu ya TLB, pia huathiri vibaya utendakazi. Hitilafu ilirekebishwa katika marekebisho B3.

TDP na ACP

Kwa kutolewa kwa wasindikaji wa Opteron 3G kulingana na msingi wa Barcelona (AMD), AMD ilianzisha tabia mpya ya nishati inayoitwa ACP (Wastani wa Nguvu ya CPU) - kiwango cha wastani cha matumizi ya nguvu ya wasindikaji wapya chini ya mzigo. AMD pia itaendelea kuonyesha kiwango cha juu cha matumizi ya nguvu - TDP.

Uteuzi

Pamoja na ujio wa wasindikaji wa kizazi cha K10 katika anuwai ya bidhaa za AMD, uteuzi wao pia ulibadilika - mifano yote miwili kulingana na K10 na AMD K8 imefichwa chini ya uteuzi mpya.

Mfumo wa uteuzi wa processor ya AMD

Mfululizo wa processor Uteuzi
Phenom X4 quad-core (Agena) X4 9xx0
Phenom X3 triple-core (Toliman) X3 8xx0
Athlon dual-core (Kuma) 7xx0
Msingi mmoja wa Athlon (Lima) 1xx0
Semporn single-core (Sparta) 1xx0

Maelezo K 10.5

Msingi unaofuata wa kichakataji seva baada ya Barcelona umepewa jina la Shanghai na huzalishwa kulingana na viwango vya nm 45. Hata hivyo, hii sio uhamisho rahisi wa usanifu wa K10 kwa teknolojia mpya ya mchakato. Usanifu wake unaitwa K10.5 na una seti ya maagizo iliyopanuliwa, ina 6 MB ya kashe iliyosambazwa ya L3 na usaidizi wa soketi 1207+ Msingi wa Deneb (Shanghai) ni kichakataji cha 45nm cha kizazi cha K10.5. Inajumuisha transistors milioni 758 na ina eneo la 243 mm (dhidi ya milioni 731 na 246 mm kwa Intel Nehalem). Inaangazia akiba iliyoongezeka ya L3 (kutoka 2 MB hadi 6 MB), pamoja na uboreshaji mdogo wa usanifu.

Lengo kuu ni kuongeza masafa ya laini ya processor ya Phenom, kupunguza TDP, pamoja na gharama za uzalishaji. Kulingana na AMD, vichakataji vya Deneb/Shanghai vinafanya kazi vizuri kuliko Agena/Barcelona sawa na hadi 35%, huku wakitumia nguvu kidogo kwa 30%. Tangazo la wasindikaji wa Opteron kulingana na msingi wa Shanghai ulifanyika tarehe 13 Novemba 2008. Wachakataji wa Deneb walitarajiwa katika robo ya 1 ya 2009. Wachakataji wa kwanza kulingana na msingi wa Deneb walitolewa na AMD mnamo Januari 8, 2009 kwa jina Phenom. II X4 (mifano 920 na Toleo la Nyeusi la 940).

Vipengele vya usanifu wa K10

· Tofauti kuu kati ya wasindikaji wa kizazi cha K10 na watangulizi wao kulingana na AMD K8 ni mchanganyiko wa cores nne kwenye chip moja, sasisho kwa itifaki ya Hyper-Transport hadi toleo la 3.0, cache ya kawaida ya L3 kwa cores zote, pamoja na msaada wa kuahidi kwa Kidhibiti kumbukumbu cha DDR3. Cores zenyewe pia zimesasishwa kutoka kwa alama za K8 za AMD.

· Chipu za K10 zinaweza kutekeleza maagizo ya 64-bit SSE kama moja. Hii ndiyo sababu kuongeza uwezo kidogo wa vitalu vya SSE ni muhimu sana na utendaji unapaswa kuongezeka kwa kiasi kikubwa.

· Uwezo wa kiolesura kati ya vizuizi vya SSE na kashe ya data ya kiwango cha kwanza umeongezwa. Sasa katika mzunguko wa saa moja inawezekana kupakia maelekezo mawili ya 128-bit kwa mzunguko wa saa dhidi ya maelekezo mawili ya 64-bit kwa K8.

· Muunganisho kati ya kache ya L2 na kidhibiti kumbukumbu pia umeongezeka kwa upana na sasa ni biti 128.

· Maagizo ya SSE4a yanaungwa mkono, ambayo, pamoja na seti ya kawaida, ni pamoja na: seti ya maagizo ya pamoja (EXTRQ/INSERTQ) na maagizo ya utiririshaji wa vekta (MOVNTSD/MOVNTSS).

· Usanifu wa K10 hukuruhusu kufuatilia mabadiliko na matawi mengi zaidi, na hivyo kuongeza usahihi wa ubashiri. Na utabiri sahihi zaidi wa mpito, ndivyo processor inavyoweza kupakia vitengo vyake vya utekelezaji na kazi.

· Ukubwa wa mrundikano wa kurudisha pia umeongezwa maradufu ikilinganishwa na K8. Kwa K8, wakati wa kutekeleza mlolongo mrefu wa maombi, inawezekana kwamba hakuna nafasi ya kutosha ya kuandika anwani ya kuanzia kwenye stack ya kurudi, na kisha utabiri wa tawi hauwezekani. Sasa uwezekano wa hii umepungua kwa kiasi kikubwa.

· Hukuruhusu kuongeza utendakazi na ufanisi kwa kuunganisha moja kwa moja kidhibiti cha kumbukumbu na chaneli ya I/O kwenye msingi.

· Imeundwa kutekeleza hesabu za biti 32 na 64 kwa wakati mmoja.

· Ujumuishaji wa kidhibiti kumbukumbu cha DDR2 (hadi 533 (1066) MHz mode, pamoja na usaidizi wa baadaye wa DDR3)

Vipengele vya usanifu wa K10.5

Upana wa basi ya kumbukumbu ya kidhibiti: bits 128

· Usaidizi wa basi wa Hyper Transport 3.0

Masafa ya basi ya mfumo: 1800 - 2600 MHz (inafaa 3600 - 5200 MHz)

· Inasaidia Teknolojia ya AMD64

· Inaauni kompyuta ya biti 64

· Inaauni AMD Cool"n"Quiet 3.0, AMD CoolCore, teknolojia za Usimamizi wa Nguvu mbili za Nguvu

· Usaidizi kwa EVP (Ulinzi Ulioboreshwa wa Virusi) na Teknolojia ya Uboreshaji wa AMD

· Inaauni SSE, SSE2, SSE3, SSE4a, ABM, MMX, 3DNow!

Kiwango cha juu cha halijoto: 62°C

Usambazaji wa Umeme (TDP) 125 W

Ulinganisho wa K10 na K10.5

Kipengele kinachojulikana zaidi cha wasindikaji wa quad-core na usanifu mdogo wa K10 ni usimamizi bora wa nguvu na muundo wa kasi ya saa. Sasa kila msingi wa processor una haki ya "kuamua" kwa mzunguko gani unapaswa kufanya kazi, na mabadiliko hutokea kwa nguvu na haiathiri kwa namna yoyote mzunguko wa uendeshaji wa cores iliyobaki.

Mwanzoni mwa Septemba, AMD inaahidi kuwasilisha wasindikaji wake wapya wa quad-core wa usanifu wa K10. Vichakataji hivi vya kwanza vilivyo na usanifu mpya vitakuwa chip za seva ya Opteron kwenye msingi uliopewa jina la Barcelona. Kwa bahati mbaya, wahandisi wa AMD hawakuweza kufikia uzalishaji wa wingi wa wasindikaji wanaofanya kazi kwa masafa ya juu katika marekebisho ya sasa. Kikwazo kikuu cha kuongeza mzunguko, inaonekana, ilikuwa ukweli kwamba cores nne kwenye masafa ya juu hutumia nguvu inayozidi thamani iliyotolewa na mfuko wa joto wa jukwaa. Matumizi ya nguvu yatapungua, na masafa yataongezeka kwa kutolewa kwa masahihisho mapya na mpito kwa michakato ya kiufundi zaidi. Wakati huo huo, AMD inahitaji haraka kuanza mauzo ili kujiondoa katika hali ngumu ya kiuchumi, kwa hivyo uwasilishaji wa Barcelona utaanza na wasindikaji wa quad-core wa seva wanaofanya kazi kwa mzunguko wa 2 GHz.

Katika robo ya nne ya 2007, AMD inaahidi kuongeza masafa ya Opteron hadi 2.4–2.5 GHz na kutoa matoleo ya kompyuta ya mezani ya vichakataji vya usanifu vya K10:

Phenom FX (jina la msimbo Agena FX) - cores 4, kashe ya 2 MB L3, makadirio ya masafa ya kuanzia 2.2–2.4 GHz, AM2+ na F+;
Phenom X4 (jina la msimbo Agena) - cores 4, akiba ya 2 MB L3, makadirio ya masafa ya kuanzia 2.2–2.4 GHz, AM2+ soketi.

Baadaye, mwanzoni mwa 2008, AMD inaahidi kuanzisha matoleo rahisi ya wasindikaji wapya:

Phenom X2 (codename Kuma) - 2 cores, 2 MB L3 cache, makadirio ya kuanzia masafa 2.2-2.6 GHz, soketi AM2+;
Athlon X2 (codename Rana) - cores 2, bila cache L3, inakadiriwa kuanzia mzunguko 2.2 GHz, tundu AM2 +;
Sempron (jina la msimbo Spica) - 1 msingi, makadirio ya kuanzia masafa 2.2–2.4 GHz, AM2+ soketi.

Lakini hii yote ni suala la siku za usoni, lakini wakati huo huo, hebu tuone ni uvumbuzi gani ambao usanifu mpya wa AMD umeleta. Katika makala hii nitajaribu kufunua maelezo yake kwa undani na kutathmini kile tunaweza kutarajia kutoka kwake.

Inaleta maagizo

Utekelezaji wa msimbo na kichakataji huanza kwa kuleta maagizo kutoka kwa akiba ya maagizo ya L1I na kusimbua. Maagizo ya x86 yana urefu tofauti, na hivyo kufanya iwe vigumu kubainisha mipaka yao kabla ya kusimbua. Ili kuhakikisha kuwa uamuzi wa urefu wa maagizo hauathiri kasi ya usimbaji, vichakataji vya K8/K10 hufanya uwekaji wa maagizo ya awali huku wakipakia mistari kwenye akiba ya maagizo ya L1I. Taarifa kuhusu mpangilio wa maagizo huhifadhiwa kwenye kashe ya L1I katika sehemu maalum (vipande 3 vya maelezo ya uwekaji wa maandishi mapema kwa kila baiti ya maagizo). Kuweka msimbo mapema wakati wa kupakia kwenye kashe hukuruhusu kusonga sehemu ya juu ya mipaka ya maagizo nje ya njia za kusimbua na kudumisha kiwango cha kusimbua mara kwa mara bila kujali urefu na muundo wa maagizo.

Wasindikaji hupakia maagizo kutoka kwa kache kwenye vizuizi, ambayo maagizo hutolewa na kutumwa kwa kusimbua. Kichakataji cha usanifu cha K10 huchota maagizo kutoka kwa akiba ya maagizo ya L1I katika vizuizi vilivyopangiliwa vya 32-baiti, tofauti na vichakataji vya K8 na Intel Core 2, ambavyo huchukua vizuizi 16-baiti. Kiwango cha sampuli cha baiti 16 kwa saa huruhusu K8 na Core 2 kutuma maagizo matano yenye urefu wa wastani wa hadi baiti 5 kwa kusimbua katika kila mzunguko wa saa. Hata hivyo, urefu wa maelekezo ya x86 inaweza kufikia byte 16, na katika baadhi ya algorithms urefu wa maelekezo kadhaa karibu katika mlolongo unaweza kuzidi byte 5, ambayo inafanya kuwa haiwezekani kuamua maelekezo matatu kwa mzunguko wa saa katika matukio hayo (Mchoro 1).


Mchele. 1. Amri nyingi za muda mrefu zinazokaribiana hupunguza kasi
kusimbua wakati wa kuchukua sampuli katika vizuizi vya baiti 16


Hasa, urefu wa SSE2 ni maagizo rahisi na shughuli za kujiandikisha-kusajili (kwa mfano, movapd xmm0, xmm1) - ni ka 4. Walakini, wakati wa kutumia shughuli za anwani ya kumbukumbu kwa kutumia rejista ya msingi na kukabiliana na maagizo (kwa mfano, movapdxmm0,) urefu wa amri huongezeka hadi baiti 6-9 kulingana na kukabiliana. Katika hali ya 64-bit, wakati rejista za ziada zinatumiwa, kiambishi awali kingine cha REX-byte huongezwa kwa nambari ya maagizo. Kwa hivyo, katika hali ya 64-bit, urefu wa amri za SSE2 unaweza kufikia byte 7-10. Urefu wa maagizo ya SSE1 ni baiti 1 pungufu ikiwa ni maagizo ya vekta (yaani, zaidi ya maadili manne ya 32-bit), lakini scalar (zaidi ya operesheni moja) maagizo ya SSE1 yanaweza pia kufikia urefu wa baiti 7-10 chini ya sawa. masharti.

Kuleta baiti 16 kwa kila mzunguko wa saa sio kizuizi katika hali hii kwa processor ya K8, kwani bado haiwezi kusimbua maagizo ya vekta ya SSE kwa kiwango cha juu kuliko maagizo 3 kwa mizunguko 2 ya saa, hata hivyo, kwa usanifu wa K10, sampuli 16 za byte zinaweza kuwa. kizuizi, kwa hivyo kupanua upana wa sampuli hadi ka 32 kwa saa ni suluhisho la busara.

Kwa njia, wasindikaji wa Core 2 huchota maagizo katika vizuizi vya baiti 16, kama vichakataji vya K8, ili waweze kusimbua mtiririko wa maagizo kwa kiwango cha 4 kwa saa ikiwa tu urefu wa wastani wa maagizo hauzidi baiti 4, vinginevyo avkodare. haitaweza kusindika kwa ufanisi sio 4 tu, lakini pia maagizo 3 kwa kila mzunguko wa saa. Hata hivyo, Core 2 ina bafa maalum ya ndani ya 64-baiti ambayo huhifadhi vizuizi vinne vya mwisho vya baiti 16 vilivyoombwa. Kuleta kutoka kwa bafa hii hufanywa kwa kiwango cha baiti 32 kwa kila mzunguko wa saa. Bafa hii hukuruhusu kuweka akiba ya mizunguko mifupi, kuondoa vizuizi kwa kiwango cha sampuli ndani yao, na pia uhifadhi mzunguko wa saa 1 kwenye kila utabiri wa mpito hadi mwanzo wa mzunguko. Hata hivyo, loops lazima iwe na maelekezo zaidi ya 18, si zaidi ya matawi 4 ya masharti, na hakuna maelekezo ya ret..

Utabiri wa Mpito

Wakati matawi yanapotokea kwenye mkondo wa amri, processor, ili isikatishe kusimbua, lazima ijaribu kukisia tabia zaidi ya programu na kuendelea kusimbua kutoka kwa tawi linalowezekana. Katika hali kama hizi, kizuizi kinachofuata cha maagizo kinachukuliwa kwa kutumia utaratibu wa utabiri wa tawi. Utabiri wa tawi katika wasindikaji wa K8 unafanywa kwa kutumia algorithm ya kubadilika ya ngazi mbili ambayo inazingatia historia ya tawi sio tu ya maagizo ya sasa, lakini pia maagizo 8 ya awali. Upungufu mkuu wa utaratibu wa utabiri wa tawi la K8 ulikuwa ukosefu wa utabiri wa matawi yasiyo ya moja kwa moja yenye anwani zilizoingiliana.

Mabadiliko yasiyo ya moja kwa moja ni yale ambayo hufanywa kwa kutumia pointer ambayo huhesabiwa kwa nguvu wakati msimbo wa programu unatekelezwa. Kwa kawaida, kuruka kwa njia isiyo ya moja kwa moja huingizwa na wakusanyaji katika miundo ya kubadili kesi, na pia hutumiwa katika simu za kazi kwa anwani na katika wito kwa kazi pepe katika programu inayolenga kitu. Kichakataji cha K8 kila mara hujaribu kuleta msimbo kwenye anwani ya mwisho ya tawi. Ikiwa anwani imebadilika, bomba huwekwa upya. Ikiwa anwani ya kuruka inaingiliana mara kwa mara, processor itafanya makosa kila wakati. Utaratibu wa kutabiri kubadilisha kwa nguvu anwani za kuruka kwa njia isiyo ya moja kwa moja ilionekana kwanza kwenye processor ya Pentium M. Kutokuwepo kwa utaratibu huo katika K8 kunapunguza ufanisi wake kwenye msimbo unaoelekezwa na kitu.

Kama inavyotarajiwa, utabiri wa tawi wenye masharti katika K10 umeboreshwa:

Utaratibu umetokea wa kutabiri anwani zinazobadilika kwa nguvu za mabadiliko yasiyo ya moja kwa moja, ambayo yanatabiriwa kutoka kwa jedwali la vipengele 512.
Saizi ya rejista ya historia ya ulimwengu, ambayo hutumiwa kuamua historia ya mlolongo wa maagizo ya awali ya kuruka, imeongezeka kutoka 8 hadi 12 bits.
Kina cha mrundikano wa kurejesha kimeongezwa kutoka vipengele 12 hadi 24, ambavyo hutumiwa kuamua haraka anwani ya kurejesha kutoka kwa chaguo la kukokotoa ili iweze kuendelea kuleta bila kusubiri amri ya kurejesha ili kuchukua anwani ya kurejesha kutoka kwa rafu.

Shukrani kwa maboresho haya, K10 inapaswa kupokea ongezeko kubwa la kasi ya utekelezaji wa programu zilizoandikwa katika lugha za kiwango cha juu cha vitu. Kwa bahati mbaya, ni ngumu sana kutathmini ufanisi wa kitengo cha utabiri wa tawi la K10, lakini kulingana na data fulani, katika hali zingine inaweza kuwa chini kuliko wasindikaji wa Intel.

Kusimbua

Vitalu vilivyopokewa kutoka kwa akiba ya maagizo vinanakiliwa kwenye bafa ya usimbaji awali ( Misimbo ya awali/Chagua Bafa), ambapo maagizo yanatengwa kutoka kwa vitalu, aina zao zimeamua na kutumwa kwa njia zinazofanana za decoder. Maagizo rahisi ambayo yamegawanywa kuwa operesheni moja (Moja) au mbili (Mbili) hutumwa kwa avkodare "rahisi" inayoitwa. DirectPath. Maagizo changamano ambayo yamesimbuliwa katika utendakazi 3 au zaidi yanatumwa kwa avkodare firmware inayoitwa Njia ya Vector.


Mchele. 2. Avkodare


Kila mzunguko wa saa, utendakazi 3 wa jumla (MOPs) unaweza kutolewa kutoka kwa njia za avkodare. Dekoda ya DirectPath inaweza kusimbua maagizo 3 rahisi ya 1-MOP kwa kila mzunguko wa saa, au 2-MOP moja na 1-MOP moja, au maagizo moja na nusu ya 2-MOP (maelekezo matatu ya 2-MOP katika mizunguko ya saa mbili). Maagizo changamano yanaweza kuamuliwa kwa zaidi ya MOP 3, kwa hivyo usimbaji wa maagizo kama haya unaweza kuendelea kwa mizunguko kadhaa ya saa. Ili kuepuka kuunda migogoro katika pato la njia za decoder, maelekezo rahisi na magumu katika K8 na K10 hayawezi kutumwa kwa kusimbua kwa wakati mmoja.

MOP zinajumuisha jozi ya ops ndogo: operesheni ndogo moja ya nambari kamili au hesabu halisi na anwani moja ya uendeshaji mdogo wa ufikiaji wa kumbukumbu. Uteuzi wa shughuli ndogo ndogo kutoka kwa MOP unafanywa na mpangaji, ambaye huwatuma kwa utekelezaji kwa kujitegemea.

Toleo la MOS kutoka kwa avkodare katika kila mzunguko wa saa huunganishwa katika vikundi vya watu 3. Kwa sababu ya ubadilishaji wa amri za DirectPath na VectorPath au ucheleweshaji mbalimbali wa kuleta maagizo ya kusimbua, kikundi kilicho na MOS 2 au hata 1 tu kinaweza kuundwa kwenye avkodare. pato. Kikundi kama hicho hujazwa na hadi MOP tatu tupu na katika fomu hii hutumwa kwa utekelezaji.

Maagizo ya Vector SSE, SSE2 na SSE3 katika kichakataji cha K8 yamegawanywa katika jozi za MOP, ambazo huchakata kando nusu ya juu na ya chini ya 64-bit ya rejista ya 128-bit SSE kwenye vifaa vya 64-bit. Hii hupunguza kasi ya uwekaji msimbo wa maagizo na kupunguza nusu ya idadi ya maagizo yanayoingia kwenye foleni ya kipanga ratiba.

Kutokana na ukweli kwamba vitalu vya FPU katika processor ya K10 vinapanuliwa hadi bits 128, hakuna haja ya kugawanya amri za vector SSE katika MOP mbili. Maagizo mengi ya SSE, ambayo yalitolewa katika K8 kama DirectPath Double, yalianza kutatuliwa katika MOS 1 kama DirectPath Single katika K10. Kwa kuongeza, sehemu ya maagizo ya SSE, ambayo katika K8 yalipangwa kwa njia ya firmware VectorPath decoder, katika K10 ilianza kupangwa kwa njia ya DirectPath decoder rahisi na kupunguzwa kwa idadi ya MOPs zinazozalishwa hadi 1 au 2 MOPs (kulingana na operesheni. )

Uamuzi wa maagizo kamili ya kufanya kazi na rafu pia umerahisishwa. Aina nyingi za maagizo ya rafu ambayo kwa kawaida hutumika katika simu kwa vitendaji vya CALL-RET na PUSH-POP sasa pia vinasituliwa kwa avkodare rahisi kuwa MOS moja. Kwa kuongeza, amri hizi sasa zinatumia mpango maalum Sideband Stack Optimizer hubadilishwa kuwa mlolongo wa kujitegemea wa shughuli za jumla ambazo zinaweza kutekelezwa kwa sambamba.

Sideband Stack Optimizer

Katika K10, block maalum inayoitwa Sideband Stack Optimizer iliongezwa kwenye mizunguko ya decoder. Kanuni ya uendeshaji wake ni sawa na kizuizi kipya cha Stack Pointer Tracker kinachotumiwa katika vichakataji vya Core. Kwa nini inahitajika? Seti ya maagizo ya x86 hutumia maagizo ya CALL, RET, PUSH, na POP kuita chaguo za kukokotoa, kuifunga, kupitisha vigezo na kuhifadhi yaliyomo kwenye rejista. Maagizo haya yote yanatumia rejista ya ESP, ambayo inaelekeza kwenye nafasi ya sasa ya rafu. Unaweza kuona jinsi maagizo haya yanatekelezwa wakati wa kupiga chaguo la kukokotoa katika K8 kwa kuwazia utatuzi wao kama mlolongo wa shughuli sawa za kimsingi za kubadilisha sajili ya rafu na kupakia/kuokoa:


Kama unaweza kuona kutoka kwa mfano huu, wakati wa kupiga kazi, amri hubadilisha rejista ya ESP kwa mlolongo, kwa hivyo kila amri inategemea kabisa matokeo ya ile iliyotangulia. Amri katika mlolongo huu haziwezi kupangwa upya, kwa hiyo mwili wa kazi, kuanzia na amri mov eax, , haiwezi kuanza kutekelezwa hadi amri ya mwisho ya PUSH itekelezwe. Kizuizi cha Sideband Stack Optimizer hufuatilia safu kwa mabadiliko na kubadilisha msururu hadi ule unaojitegemea kwa kurekebisha usawazisho wa kila maagizo yanayohusiana na rafu na kuingiza shughuli za ulandanishi wa juu zaidi (sync-MOP) kabla ya maagizo yanayotumia rafu hiyo kwa njia dhahiri. kujiandikisha. Hii huondoa kizuizi cha kupanga upya amri zinazotumia rafu.


Timu mov eax,, ambayo mahesabu huanza katika mwili wa kazi katika mfano huu, inategemea tu juu ya uendeshaji wa kusawazisha juu ya stack. Shughuli hizi sasa zinaweza kutekelezwa kwa uhuru sambamba na amri zingine zilizo mbele yao. Kwa hivyo, kasi ya kupitisha vigezo na rejista za kuokoa huongezeka, na wakati huo huo, mwili wa kazi unaweza kuanza kupakia vigezo na kufanya shughuli nao hata kabla ya kupitisha vigezo vyote na rejista za kuokoa zimekamilika.

Kwa hivyo, kuongeza kiwango cha maagizo ya kusimbua kwa kufanya kazi na safu, kwa kutumia kizuizi cha Sideband Stack Optimizer, kuongeza kina cha rundo la kurudi, na kutabiri kubadilisha matawi yasiyo ya moja kwa moja katika K10 husababisha ongezeko kubwa la kasi ya utekelezaji wa nambari zilizo na utendakazi. simu.

Kisimbuaji cha kichakataji cha K10 hakitaweza kusimbua maagizo 4 kwa kila mzunguko wa saa, kama vile avkodare ya Core 2 inaweza kufanya katika hali nzuri, lakini hii haitakuwa kikwazo katika utekelezaji wa programu. Kiwango cha wastani cha utekelezaji wa amri karibu hakifikii amri 3 kwa kila mzunguko wa saa, kwa hivyo avkodare ya K10 itakuwa na ufanisi wa kutosha ili vitengo vya kompyuta visisimame bila kufanya kazi kwa sababu ya ukosefu wa shughuli kwenye foleni.

Kitengo cha kudhibiti amri

Sehemu tatu za MOP zilizosimbuliwa huingia kwenye kitengo cha udhibiti wa maagizo (ICU), ambacho huhifadhi MOP kwenye bafa ya kupanga upya (ROB). Bafa ya kupanga upya ina mistari 24 ya MOP tatu. Kila tatu ya MOP imerekodiwa katika mstari wake. Kwa hivyo, ROB inaruhusu kitengo cha udhibiti kufuatilia hali ya MOP 72 hadi wastaafu.

Kutoka kwa bafa ya kupanga upya, MOP hutumwa kwa foleni kamili na halisi ya kipanga ratiba cha kitengo kwa mpangilio wa kutoka kwenye avkodare. Sehemu tatu za MOP zinaendelea kuhifadhiwa katika hifadhi ya kupanga upya hadi utendakazi wote wa awali ukamilike na kutupwa. Wakati wa kustaafu, maadili ya mwisho yameandikwa kwa rejista za usanifu na kumbukumbu. Shughuli za kujiuzulu, kufuta habari juu yao kutoka kwa ROB, na kurekodi maadili ya mwisho hufanywa kwa mpangilio wa programu ambayo shughuli ziliingia kwenye bafa ya kupanga upya. Hii ni muhimu ili katika tukio la ubaguzi au usumbufu, matokeo ya shughuli zote zinazofuata zilizofanywa nje ya mlolongo hubadilishwa.

Utekelezaji wa Amri Nambari

Katika wasindikaji wa K8 na K10, kizuizi cha operesheni kamili ( Kitengo cha Utekelezaji Nambari) lina chaneli tatu kamili zenye ulinganifu. Kila moja ya chaneli za kompyuta ina kipanga ratiba chake chenye foleni 8 za MOS, seti sawa ya vitengo kamili vya mantiki ya hesabu (ALU), vitengo vya anwani (AGU) na kitengo cha tawi cha masharti. Kwa kuongezea, kizuizi cha kuzidisha kimeunganishwa kwenye chaneli ya hesabu 0, na kizuizi cha kufanya shughuli mpya LZCNT na POPCNT (zaidi juu yao hapa chini) imeunganishwa kwenye chaneli ya 2 ya hesabu.


Mchele. 3. Zuia kwa ajili ya kutekeleza shughuli kamili


Chaguo la foleni kwa kila MOP imedhamiriwa na msimamo tuli wa amri katika safu tatu iliyoundwa kwenye pato la avkodare. Kila operesheni kubwa katika tatu hutumwa kutoka kwa buffer ya kupanga upya kwa utekelezaji kwa upande wake, ambayo, kwa upande mmoja, hurahisisha usimamizi wa amri, na kwa upande mwingine, inaweza kusababisha upakiaji usio na usawa wa foleni ikiwa mlolongo wa shughuli tegemezi unapatikana vibaya. msimbo wa programu (ambayo, hata hivyo, katika mazoezi karibu kamwe hutokea na kwa hiyo ina athari kidogo juu ya utendaji). Kuzidisha na utendakazi wa biti uliopanuliwa huwekwa na avkodare katika nafasi sahihi mara tatu ili kuhakikisha kuwa zinaangukia kwenye chaneli iliyobainishwa.

Katika foleni za wapangaji wa ratiba za kikokotoo, MOP, kama ilivyotajwa hapo juu, zimegawanywa katika utendakazi kamili na kushughulikia shughuli ndogo za ufikiaji wa kumbukumbu. Wakati data iko tayari, kipanga ratiba kinaweza kuzindua operesheni kamili kutoka kwa kila foleni hadi kifaa cha ALU na operesheni moja ya anwani kwenye kifaa cha AGU. Idadi ya ufikiaji wa kumbukumbu kwa wakati mmoja ni mdogo kwa mbili. Kwa hivyo, kwa kila mzunguko wa saa, shughuli 3 kamili na shughuli 2 za kumbukumbu (64-bit kusoma / kuandika katika mchanganyiko wowote) zinaweza kutekelezwa. Operesheni ndogo kutoka kwa MOP mbalimbali za hesabu hutumwa kwa ajili ya kutekelezwa kutoka kwa foleni mara tu data inapokuwa tayari kwa ajili yao kwa utaratibu wa nje ya utaratibu. Baada ya shughuli ndogo za hesabu na anwani kutoka kwa MOP kukamilika, MOP huondolewa kwenye foleni ya kipanga ratiba, na kutoa nafasi kwa shughuli zinazofuata.

Katika processor ya K8, micro-ops ya kumbukumbu huchaguliwa kwa utaratibu wa programu. Operesheni za ufikiaji wa kumbukumbu ambazo ziko baadaye katika mpangilio wa programu haziwezi kufanya kazi kabla ya zile za awali. Hii husababisha kushindwa kukokotoa anwani kwa operesheni ya awali ya anwani ili kuzuia shughuli zote za anwani zinazofuata, hata kama operesheni zote za shughuli zinazofuata ziko tayari.

Kwa mfano:

ongeza ebx, nk
mov eax, - hesabu ya anwani ya haraka
mov ecx, - anwani inategemea matokeo ya amri ya awali
mov edx - amri hii haitaendeshwa hadi anwani za amri zote za awali zimehesabiwa.


Hii inaweza kusababisha adhabu ya utendakazi na ni moja wapo ya sababu za kikwazo katika processor ya K8, kwa sababu ambayo, kwa nambari zingine, K8, licha ya uwezo wa kutoa maagizo mawili ya kusoma kwa kila mzunguko wa saa, hutekeleza maagizo ya ufikiaji wa kumbukumbu kwa ufanisi mdogo kuliko a. Kichakataji cha Core 2 kinachoendesha amri moja ya kusoma kwa kila mzunguko wa saa, lakini wakati huo huo kuwa na utaratibu wa utekelezaji wa kubahatisha wa amri za kusoma, kupitisha amri za awali za kusoma na kuandika.

Katika wasindikaji wa usanifu wa K10 kizuizi hiki kimeondolewa. Wasindikaji wa K10 sasa hawana uwezo wa kukimbia tu amri za kusoma nje ya mlolongo, lakini pia kuendesha amri za kuandika kabla ya amri za kusoma katika hali ambapo processor anajua kwamba anwani za kuandika na kusoma hazipingani. Kuanza kuandika kwa kupita kusoma hukuruhusu kuharakisha sana utekelezaji wa aina fulani za nambari, kwa mfano, mizunguko inayoanza na amri ya kusoma sehemu inayofuata ya data kutoka kwa kumbukumbu na kuishia na kuhifadhi matokeo yaliyohesabiwa kwenye kumbukumbu.
.....// shughuli kwenye data
mov , eax // kuokoa matokeo
cmp
jnz L1
Katika hali kama hizi, kichakataji ambacho hakiauni kuanza kusoma kabla ya kuandika hakiwezi kuanza kutekeleza urudiaji unaofuata wa kitanzi kabla ya kukamilika kwa kuandika matokeo ya sasa. Vichakataji vinavyoauni upangaji upya wa usomaji vinaweza kuanza kupakia data na kukokotoa kwa marudio yanayofuata bila kusubiri ya sasa kumaliza.

Kwa bahati mbaya, processor ya K10 bado hajui jinsi ya kufanya upakiaji wa kubahatisha kwa kupitisha uandishi kwa anwani isiyojulikana, kama wasindikaji wa Core 2. Licha ya ukweli kwamba uvumi kama huo unaweza kusababisha faini, kwa kweli faini hizi ni nadra katika msimbo wa programu (karibu 5). % kesi), kwa hivyo upakiaji wa kubahatisha unahalalishwa kutoka kwa mtazamo wa utendaji.

Uboreshaji mwingine wa kizuizi kamili cha processor ya K10 ilikuwa uboreshaji wa algorithm ya maagizo ya mgawanyiko kamili. Sasa kasi ya utekelezaji wa maagizo ya mgawanyiko kamili inategemea sehemu muhimu zaidi za gawio na kigawanyiko. Kwa mfano, katika hali ambapo gawio ni sifuri, mgawanyiko unafanywa karibu mara mbili kwa haraka. Kwa ujumla, mgawanyiko kamili ni operesheni adimu sana, ambayo, kwa sababu ya kasi yake ya chini ya utekelezaji, wanajaribu kuzuia kwa kila njia inayowezekana katika programu halisi, wakiibadilisha na kuzidisha kwa kinyume cha kigawanyiko, mabadiliko, au kuipitisha kwa njia zingine. njia, kwa hivyo uboreshaji huu hautaweza kutoa mchango dhahiri katika utendakazi wa programu.

Kwa ujumla, kizuizi kamili cha kifaa cha K10 kitakuwa na ufanisi sana. Baada ya kuongeza utaratibu wa utekelezaji wa nje ya utaratibu wa shughuli za kumbukumbu, sasa haina udhaifu dhahiri. Licha ya kuwa na kina cha chini cha foleni kuliko vichakataji vya Core 2, vichakataji vya K10 havina vizuizi vya kusoma rejista kutoka kwa faili ya rejista na vizuizi vingine vya kuratibu ambavyo huzuia Core 2 kutekeleza shughuli kila wakati kwa kasi ya haraka iwezekanavyo.

Utekelezaji wa maagizo halisi

Katika vichakataji vya K8 na K10, kipanga ratiba cha sehemu ya kuelea (FPU) ni tofauti na kipanga ratiba kamili cha maagizo na kimepangwa kwa njia tofauti kidogo. Bafa ya kiratibu inaweza kuchukua hadi vikundi 12 vya MOP 3 (operesheni 36 za kinadharia). Tofauti na kizuizi cha kutekeleza maagizo kamili na chaneli za hesabu za ulinganifu, kizuizi cha hesabu kinachoelea kina vifaa vitatu tofauti: FADD ya kuongeza halisi, FMUL ya kuzidisha halisi, na FMISC (aka FSTORE) kwa maagizo ya kuhifadhi kumbukumbu na shughuli za ubadilishaji msaidizi, kwa hivyo hakuna. bafa ya kiratibu inayofunga nafasi ya MOP katika kundi la amri kwa kifaa maalum cha kompyuta (Mchoro 4).



Mchele. 4. Kitengo cha utekelezaji wa hatua ya kuelea


Kila mzunguko wa saa K8 na K10 unaweza kutekeleza operesheni moja katika kila kifaa halisi cha hesabu. Vifaa vya kuelea vya processor ya K8 ni 80-bit. Maagizo ya Vector 128-bit SSE yamegawanywa katika hatua ya kusimbua katika MOP mbili, ambazo hufanya shughuli kwenye nusu ya 64-bit ya uendeshaji wa 128-bit na hutekelezwa kwa mfululizo katika mizunguko ya saa tofauti. Hii sio tu kikomo kiwango cha utekelezaji wa amri za vekta, lakini pia karibu nusu ya kiasi cha ufanisi cha bafa ya kipanga ratiba cha FPU na, kwa hiyo, kina cha utekelezaji wa amri ya nje ya utaratibu.

Katika processor ya K10, upana wa vifaa vya FPU umeongezeka hadi bits 128. K10 huchakata vekta 128-bit hufanya kazi kabisa katika operesheni moja, ambayo huongeza kasi ya utekelezaji wa kinadharia ya maagizo ya vekta ya SSE ikilinganishwa na K8. Kwa kuongeza, kwa kupunguza idadi ya MOP kwa nusu, urefu wa ufanisi wa foleni ya kipanga ratiba huongezeka, ambayo inaruhusu utekelezaji wa nje wa utaratibu.

Katika processor ya K8, amri za boot za SSE zinatekelezwa kwa kutumia kifaa cha FSTORE, ambacho, kwa upande mmoja, hairuhusu utekelezaji wa wakati huo huo wa amri zingine zinazodai kifaa hiki, na kwa upande mwingine, hupunguza idadi ya amri za boot zilizozinduliwa wakati huo huo. moja. Usomaji mbili sambamba kutoka kwa kumbukumbu katika K8 unaweza kufanywa tu ikiwa moja ya amri ni maagizo ambayo yanachanganya ufikiaji wa kumbukumbu na operesheni ya data (amri inayoitwa Load-Execute), kwa mfano, ADDPS xmm1,.

Kichakataji cha K10 kimefanya maboresho kadhaa muhimu kwa utaratibu wa utekelezaji wa amri ya boot ya SSE.

Kwanza, amri za upakiaji hazitumii tena rasilimali za FPU, kwa hivyo lango la FSTORE sasa limeachiliwa ili kutekeleza amri zingine, na amri za upakiaji zinaweza kuendeshwa 2 kwa kila mzunguko wa saa.

Pili, katika hali ambapo data katika kumbukumbu imepangiliwa kwenye mpaka wa baiti 16, maagizo ya upakiaji wa data ya MOVU** yasiyosawazishwa sasa yanafanya kazi kwa ufanisi kama maagizo ya upakiaji wa data ya MOVA** yaliyosawazishwa. Kwa hivyo, kwa wasindikaji wa K10, kutumia maagizo ya MOVA** haitoi tena faida yoyote.

Tatu, katika wasindikaji wa K10, utumiaji wa mizigo isiyosawazishwa pia sasa inaruhusiwa kwa amri za Utekelezaji wa Mzigo zinazochanganya mzigo na uendeshaji wa data. Kwa kawaida, ikiwa hakuna uhakika kwamba data imeunganishwa kwenye kumbukumbu, mkusanyaji (au programu) hutumia maagizo ya MOVU ** kusoma data kwenye rejista na kisha kufanya shughuli kwenye rejista. Kutumia mizigo isiyosawazishwa moja kwa moja na amri za Upakiaji-Tekeleza kunaweza kupunguza kwa kiasi kikubwa idadi ya amri tofauti za upakiaji katika msimbo wako wa programu na hivyo kuboresha utendaji. Usaidizi wa kipengele hiki unapaswa kujengwa katika wakusanyaji. Kwa ujumla, kulingana na vipimo vya Intel's SSE, amri ya Kutekeleza Mzigo kwenye anwani ambayo haijaunganishwa kwenye mpaka wa 16-byte inapaswa kusababisha ubaguzi. Ili kudumisha utii wa vipimo, kuruhusu mizigo isiyopangwa katika amri za Utekelezaji wa Kupakia lazima kuwezeshwe kwa kuweka alama maalum kwa programu iliyoundwa na kukusanywa kwa kuzingatia uwezo mpya wa kichakataji.

Nne, basi mbili zilizosomwa data kutoka kwa kashe ya kiwango cha kwanza kwenye kichakataji cha K10 zimepanuliwa hadi biti 128. Hii inaruhusu kichakataji kufanya usomaji mara mbili wa kipande cha data cha biti-128 kila mzunguko wa saa. Hiki ni kipengele muhimu sana cha usanifu, kwa kuwa utekelezaji sambamba wa maagizo mawili unahitaji uendeshaji 4 (2 kwa kila maagizo), na katika idadi ya algorithms ya usindikaji wa data, mbili kati ya nne zinasomwa kutoka kwa RAM. Kwa kulinganisha, mabasi mawili ya kuandika ya K10 bado ni 64-bit, na maandishi ya kumbukumbu ya 128-bit imegawanywa katika pakiti mbili za 64-bit. Hivyo, processor inaweza tu kufanya moja 128-bit kuandika, au mbili 128-bit kusoma, au moja 128-bit kusoma na moja 64-bit kuandika kupasuka kila mzunguko wa saa. Hata hivyo, kutokana na ukweli kwamba idadi ya kusoma ni kawaida angalau mara mbili ya idadi ya maandishi, kikomo cha kuandika haipaswi kuathiri sana ufanisi wa processor wakati wa usindikaji data 128-bit.

Tano, 128-bit MOV*** maagizo ya nakala ya data ya kujisajili ili kusajili sasa yanaweza kutekelezwa kwenye kifaa chochote kati ya vitatu vya FPU, si tu FADD na FMUL, ambayo pia hufungua vizuizi vya FADD na FMUL kwa shughuli zinazolengwa.

Kama tunavyoona, kitengo cha FPU cha kichakataji cha K10 kimekuwa rahisi zaidi. Kuna vipengele vile vya kipekee ambavyo bado havipatikani kwenye vichakataji vya Intel, kama vile upakiaji bora usio na mpangilio, ikiwa ni pamoja na kwa amri za Utekelezaji wa Load, na usomaji wawili wa 128-bit kwa kila saa. Tofauti na Core 2, wapangaji ratiba halisi na kamili hutumia foleni tofauti, ambayo husaidia kuzuia shughuli zinazokinzana kwenye bandari zile zile za utekelezaji. Hata hivyo, K10 bado hushiriki kifaa cha FMISC (FSTORE) kwa ajili ya uendeshaji wa duka la SSE na baadhi ya amri za kubadilisha data, ambazo katika baadhi ya matukio zinaweza kuathiri kasi ya utekelezaji wa utekelezaji wao.

Kwa ujumla, kitengo cha FPU katika K10 kinaahidi kuwa cha ufanisi sana, kinachozidi kitengo cha Core 2 FPU katika idadi ya vigezo (kwa mfano, uwezo wa kufanya usomaji wa 128-bit mbili kwa mzunguko wa saa na upakiaji usio na usawa).

Mfumo mdogo wa kumbukumbu

Pakia/Hifadhi Kifaa

Katika processor ya K8, baada ya kuhesabu anwani za upatikanaji wa kumbukumbu kwenye AGU, shughuli za mzigo na kuhifadhi zinatumwa kwa LSU (Kitengo cha Mzigo / Hifadhi) - kifaa cha mzigo / kuokoa. LSU ina foleni mbili LS1 na LS2. Kwanza, shughuli za kupakia na kuhifadhi ingiza foleni ya LS1, ambayo ina vipengele 12 vya kina. Kutoka kwa foleni ya LS1, ufikiaji wa kashe ya kiwango cha kwanza hufanywa kwa mpangilio wa programu, shughuli mbili kwa kila mzunguko. Katika tukio la kache kukosa, shughuli huhamishwa hadi kwenye foleni ya pili ya LS2 ya vipengele 32, ambapo kashe ya L2 na ufikiaji wa RAM hufanywa.

Mabadiliko yalifanywa kwa kichakataji cha K10 huko LSU. Sasa shughuli za upakiaji pekee ndizo zinazoenda kwenye foleni ya LS1, na uhifadhi wa shughuli hutumwa kwenye foleni ya LS2. Shughuli za upakiaji kutoka kwa LS1 sasa zinaweza kutekelezwa bila mpangilio, kwa kuzingatia anwani za shughuli za kuokoa kwenye foleni ya LS2. Operesheni za kuokoa 128-bit, kama ilivyotajwa hapo juu, huchakatwa katika kichakataji cha K10 kama mbili 64-bit, kwa hivyo huchukua nafasi mbili kwenye foleni ya LS2.

Akiba ya kiwango cha 1

Cache ya ngazi ya kwanza katika wasindikaji wa K8 na K10 ni tofauti, 64 KB kila moja kwa maelekezo (L1I) na kwa data (L1D). Ushirikiano wa kache ni mbili, saizi ya mstari ni ka 64. Uhusiano wa chini unaweza kusababisha migongano ya mara kwa mara kati ya safu mlalo zinazoshindana kwa seti sawa, ambayo inaweza kuongeza idadi ya makosa ya akiba na kuathiri vibaya utendakazi. Ushirikiano wa chini hufidiwa kiasi na akiba kubwa ya L1. Faida kubwa ya kashe ya L1D ni uwezo wake wa bandari mbili - inaweza kutoa amri mbili za kusoma na/au kuandika kwa kila saa katika mchanganyiko wowote.

Katika processor ya K10, ukubwa na ushirika wa cache ya ngazi ya kwanza, kwa bahati mbaya, ilibakia bila kubadilika. Uboreshaji pekee unaoonekana kwa kashe ya L1 katika K10 ilikuwa ongezeko la upana wa basi ya data iliyosomwa. Sasa processor, kama ilivyotajwa katika sura iliyotangulia, inaweza kufanya usomaji mbili wa 128-bit kila mzunguko wa saa, ambayo huongeza ufanisi wake wakati wa kuchakata data ya SSE kwenye kumbukumbu ya ndani.

Cache ya kiwango cha 2

Katika vichakataji viwili na quad-core vya usanifu wa K8 na K10, kila msingi una kashe ya L2 ya kibinafsi. Ukubwa wa cache ya ngazi ya pili katika K10 inabakia sawa na 512 KB kwenye kila cores, associativity ni 16. Cache za ngazi ya pili zina faida na hasara zao ikilinganishwa na cache ya ngazi ya pili iliyoshirikiwa katika wasindikaji wa Core 2. Faida ni pamoja na kutokuwepo kwa migogoro na ushindani kwa cache chini ya mzigo mkubwa wa wakati huo huo wa cores kadhaa. Ubaya ni saizi ndogo ya kache kwa kila msingi wakati wa kazi kubwa ya kazi moja.

Cache ya L2 ina shirika la kipekee la kuhifadhi data: data katika kashe ya ngazi ya kwanza na ya pili haijarudiwa. Kache za viwango vya kwanza na vya pili hubadilishana data juu ya mabasi mawili ya moja kwa moja - moja kwa ajili ya kupokea data, nyingine kwa ajili ya kutuma. Katika processor ya usanifu wa K8, upana wa kila basi ni bits 64 (8 bytes) (Mchoro 5a.). Kwa sababu ya shirika hili, kichakataji hupokea data iliyoombwa katika L2 kwa kiwango cha chini cha baiti 8 kwa kila mzunguko wa saa. Hiyo ni, kuhamisha mstari wa 64-byte huchukua mzunguko wa saa 8, ambayo huongeza kwa kiasi kikubwa latency ya data ya msingi ya kupokea, hasa wakati huo huo kufikia mistari miwili au zaidi ya cache ya L2.

Kwa mujibu wa habari ambayo bado haijathibitishwa kikamilifu, katika processor ya K10 upana wa kidogo wa mabasi ya kupokea na kusambaza umeongezeka kwa mara 2, yaani, hadi bits 128 kila mmoja (Mchoro 5b). Hii itapunguza kwa kiasi kikubwa kusubiri kwa akiba wakati wa kuomba safu mlalo mbili au zaidi kwa wakati mmoja.



Kiwango cha 3 cache

Ili kufidia kiasi cha kutosha cha kache za kiwango cha pili, kichakataji cha K10 sasa kina kashe ya L3 ya kiwango cha tatu ya 2 MB inayofanana na cores zote, na ushirika wa 32. Kache ya L3 ina shirika la kipekee linaloweza kubadilika: huhifadhi data zote mbili. imetolewa kutoka kwa kache za L2 za cores zote, na data iliyoshirikiwa inayotumiwa na cores nyingi. Wakati ombi linapokelewa kutoka kwa msingi ili kusoma mstari, hundi inafanywa: ikiwa mstari unatumiwa na msingi mmoja tu, basi huondolewa kutoka kwa L3, ikitoa nafasi kwa ajili ya kufukuzwa kwa mstari kutoka kwa cache ya L2. msingi wa kuomba. Ikiwa mstari pia unatumiwa na kernel nyingine, itabaki kwenye cache; Wakati huo huo, ili kutoa nafasi kwa mstari unaoondolewa kwenye cache ya L2, mstari mwingine, wa zamani utaondolewa kwenye cache ya L3.

Cache ya L3 inapaswa pia kusaidia kuongeza kasi ya mawasiliano kati ya cores. Kama tulivyogundua hapo awali, kubadilishana data kati ya cores katika vichakataji vya kisasa vya Athlon 64 hutokea kupitia basi ya kumbukumbu. Hii inapunguza kwa kiasi kikubwa kasi ya ufikiaji wa data iliyoshirikiwa, inayoweza kubadilishwa. Kwa mujibu wa vifaa vya AMD, katika wasindikaji wa quad-core wa usanifu wa K10, kubadilishana data kati ya cores kunaweza kutokea kupitia cache ya L3. Wakati wa kupokea ombi kutoka kwa msingi mwingine, msingi unaohifadhi data iliyobadilishwa hunakili kwa L3, kutoka ambapo itasomwa na msingi unaoomba. Kasi ya ufikiaji wa data iliyobadilishwa kwenye kashe ya kernel nyingine inapaswa kuongezeka sana. Tunapopata fursa, hakika tutaiangalia :).


Mchele. 6. Uhamisho wa data kati ya cores katika processor ya K10


Ucheleweshaji wa kashe ya L3 kwa hakika utakuwa wa juu zaidi kuliko ucheleweshaji wa kashe ya L2, lakini vifaa vya AMD vinasema kwamba itabadilika kulingana na mzigo - kwa kukosekana kwa mzigo mzito latency itakuwa bora, na mzigo mkubwa. kiwango kitaongezeka. Ni nini hasa nyuma ya hii inabaki kuthibitishwa.

TLB

Mbali na kumbukumbu ya cache kwa maagizo na data, wasindikaji wana aina nyingine ya kumbukumbu ya cache - tafsiri-lookaside buffer (TLB). Hutumika kuhifadhi mawasiliano kati ya anwani za kurasa pepe na halisi zinazopatikana kutoka kwa jedwali za tafsiri za kurasa. Idadi ya bafa za tafsiri huamua ni kurasa ngapi za kumbukumbu zinazoweza kutumika kwa wakati mmoja bila ubadilishaji wa jedwali ghali zaidi. Hii ni muhimu sana kwa programu zinazochakata data ya kumbukumbu kwa mpangilio nasibu, ambapo kuna ufikiaji wa mara kwa mara wa data katika kurasa tofauti. Kichakataji cha K10 kimeongeza kwa kiasi kikubwa idadi ya bafa za tafsiri. Kwa urahisi wa mtazamo, wao ni muhtasari katika meza.

Jedwali 1 - uwezo wa TLB wa wasindikaji wa K8 na K10


Kama inavyoonekana kwenye jedwali, idadi ya bafa zinazotumiwa kutafsiri anwani za kurasa 2-MB imeongezeka kwa kiasi kikubwa, na usaidizi wa kurasa kubwa za 1-GB pia umeonekana, ambayo itakuwa muhimu kwa seva kusindika kiasi kikubwa cha data. Kwa usaidizi kutoka kwa mfumo wa uendeshaji, programu zinazotumia kurasa kubwa za 2-MB na 1-GB zitafaidika kutokana na faida za utendakazi.

Kidhibiti cha kumbukumbu

Katika hali ambapo data iliyoombwa haikupatikana katika kache za viwango vyote, simu inapigwa kwa kidhibiti kumbukumbu kilichounganishwa kwenye chip ya processor. Kuunganisha kidhibiti kwenye chip ya processor kwa kiasi kikubwa hupunguza latency wakati wa kufikia kumbukumbu na, wakati huo huo, hufunga processor kwa aina maalum ya kumbukumbu, na pia huongeza eneo la msingi na huongeza matatizo na kukataliwa kwa chip. Kidhibiti cha kumbukumbu kilikuwa mojawapo ya nguvu za wasindikaji wa K8, lakini katika baadhi ya matukio haikuwa na ufanisi wa kutosha. Katika processor ya K10, kidhibiti cha kumbukumbu kimeboreshwa kwa kiasi kikubwa.

Kwanza, sasa inaweza kufanya kazi katika hali ya uhamishaji data sio tu juu ya chaneli moja ya 128-bit, lakini pia juu ya chaneli mbili huru za 64-bit, ambayo hufanya ufikiaji wa kumbukumbu kwa wakati mmoja kwa cores nyingi kuwa bora zaidi.

Pili, algorithm ya kuratibu na kupanga upya shughuli imeboreshwa katika kidhibiti. Vidhibiti vya kumbukumbu hupanga vikundi vya kusoma na kuandika shughuli ili kufanya matumizi bora zaidi ya basi ya kumbukumbu. Shughuli za kusoma huchukua nafasi ya kwanza kuliko shughuli za uandishi. Data iliyokusudiwa kuandikwa imehifadhiwa kwenye buffer, saizi yake ambayo haijulikani kwa sasa, lakini, kulingana na vyanzo anuwai, iko katika safu kutoka kwa mistari 16 hadi 30 64-byte. Kupakua kikundi cha laini kadhaa zilizoahirishwa kunaweza kupunguza kwa kiasi kikubwa gharama ya kubadilisha basi ya kumbukumbu kutoka kwa hali ya kusoma hadi ya kuandika na kurudi. Hili hasa huboresha utendakazi wakati wa kushughulika na mtiririko wa maombi yaliyoingiliana ya kusoma na kuandika.

Tatu, kidhibiti kumbukumbu kinaweza kuchanganua mlolongo wa maombi na kuleta utangulizi.

Leta mapema

Kuleta mapema sio hatua kali ya wasindikaji wa K8. Kidhibiti kilichojumuishwa cha kumbukumbu ya muda wa chini kwa muda mrefu kimeruhusu vichakataji vya AMD kutoa utendakazi mzuri wa kumbukumbu. Hata hivyo, wakati wa kufanya kazi na kumbukumbu mpya ya DDR2, wasindikaji wa K8 hawakuonyesha ufanisi wa juu, tofauti na wasindikaji wa Core 2, ambao wana mfumo wa prefetch wenye nguvu. Wachakataji wa K8 wana vitengo viwili vya kuleta awali - kimoja cha msimbo na kimoja cha data. Kitengo cha kuleta data mapema huleta akiba ya kiwango cha pili kwa kutumia mifuatano iliyorahisishwa.

Uletaji awali umeboreshwa katika K10.

Kwanza, K10 inaleta moja kwa moja kwenye cache ya L1, ambayo inaruhusu kuficha latency ya cache ya L2 wakati wa kupata data. Ingawa hii huongeza uwezekano wa kache ya L1 kuzibwa na data isiyo ya lazima, haswa kutokana na ushirika wa chini wa kache, hata hivyo, kulingana na AMD, inalipa na kuboresha utendaji.

Pili, utaratibu wa kuleta urejeshaji awali ulitekelezwa ambao hubadilisha kwa kiasi kikubwa umbali wa kuleta awali ili kuhakikisha kuwa data inafika kwa wakati na haizibi akiba na data ambayo bado haihitajiki. Unyumbulifu wa kitengo cha kuleta awali umeongezwa: sasa inaweza kujifunza kutoka kwa maombi ya kumbukumbu katika anwani yoyote, na si tu kwa anwani ambazo ziko katika mistari iliyo karibu. Kwa kuongeza, kizuizi cha kuleta awali sasa kinaheshimu maagizo ya kuleta programu mapema.

Tatu, kitengo tofauti cha kuleta awali kiliongezwa moja kwa moja kwa kidhibiti kumbukumbu. Kidhibiti kumbukumbu huchanganua mlolongo wa maombi kutoka kwa viini na kupakia data kwenye bafa ya uandishi, na kufanya matumizi bora ya basi ya kumbukumbu. Kuhifadhi mistari ya urejeshaji katika bafa ya uandishi hukuruhusu kuzuia kuziba kumbukumbu ya kache na wakati huo huo kupunguza kwa kiasi kikubwa muda wa ufikiaji wa data.

Kama matokeo, tunaona kwamba mfumo mdogo wa kumbukumbu katika wasindikaji wa K10 umebadilika kuwa bora. Lakini bado inapaswa kuzingatiwa kuwa katika idadi ya sifa ni uwezekano wa duni kwa mfumo mdogo wa kumbukumbu katika wasindikaji wa Intel. Hii ni kukosekana kwa upakiaji wa kubahatisha kupita maandishi hadi kwa anwani ambayo bado haijulikani, ushirika wa chini wa kashe ya L1D, basi nyembamba (kulingana na kiwango cha uhamishaji data) kati ya kache za L1 na L2, sauti ndogo ya L2 na uletaji rahisi zaidi. Licha ya maboresho, uletaji awali wa Core 2 una uwezekano wa kuwa na nguvu zaidi kuliko K10: ya mwisho, kwa mfano, haina uletaji wa maelekezo-anwani ili kufuatilia tabia ya maagizo ya mtu binafsi, pamoja na uletaji awali wa L2-to-L1 ili kuficha ukawizi wa L2 kwa ufanisi. Sababu hizi zinaweza kuathiri programu tofauti tofauti, lakini katika hali zingine zinaweza kusababisha utendakazi wa hali ya juu kwa vichakataji vya Intel.

Wacha tuangalie kwa ufupi ni uvumbuzi gani mwingine ambao usanifu wa K10 unatuletea.

Timu mpya

Prosesa ya K10 sasa inasaidia amri kadhaa mpya zinazopanua uwezo wake.

1. Amri za upanuzi wa shughuli kidogo kwenye rejista za madhumuni ya jumla:

LZCNT - Hesabu Sifuri Zinazoongoza - huhesabu idadi ya bits za sifuri zinazoongoza kwenye operesheni;
POPCNT - Hesabu ya Idadi ya Kidogo - huhesabu idadi ya biti moja kwenye operesheni.

2. Maagizo ya usindikaji wa rejista ya SSE, inayoitwa SSE4a:

EXTRQ - hutoa idadi maalum ya bits kutoka kwa nafasi maalum katika sehemu ya chini ya 64-bit ya rejista ya SSE;
INSERTQ - inaingiza idadi maalum ya bits katika nafasi maalum katika sehemu ya chini ya 64-bit ya rejista ya SSE;
MOVNTSS, MOVNTSD - amri za kutiririsha (bila kutumia kumbukumbu ya kache) kuhifadhi maadili halisi ya scalar.

Ugani wa kuweka maagizo, unaoitwa SSE4a, ni wa kujitegemea, hauingiliani kwa njia yoyote na upanuzi mpya wa Intel, unaoitwa SSE4.1 na SSE4.2.

Usanifu

AMD imeendelea kuboresha teknolojia yake ya virtualization, ambayo hutumiwa kuendesha mifumo mingi ya uendeshaji kwenye kompyuta moja. Mojawapo ya maboresho muhimu zaidi katika uboreshaji wa mtandao ilikuwa matumizi ya majedwali ya kurasa zilizowekwa (Nested Paging). Katika hali hii, jedwali za kurasa za mashine zimewekwa ndani ya jedwali la ukurasa wa kimataifa wa hypervisor. Kwa kukosekana kwa marejeleo ya ukurasa katika TLB, shughuli za ubadilishaji wa jedwali hufanywa kiotomatiki na kichakataji, tofauti na Uwekaji wa Kivuli, ambao unahitaji rasilimali nyingi ili kudhibiti ubadilishaji wa jedwali la mashine.


Kulingana na ripoti zingine, kutokana na utumiaji wa jedwali za kurasa zilizowekwa kiota, kasi ya programu kwenye mashine ya kawaida huongezeka hadi 40% ikilinganishwa na kasi ya utekelezaji wa programu hizi kwa kutumia meza za kurasa za "kivuli".

Usimamizi wa Nguvu na Masafa

Vichakataji vipya vya K10 vinatanguliza usimamizi mpya wa nguvu na mpango wa msingi wa usimamizi wa masafa. Kila moja ya cores sasa inaweza kufanya kazi kwa kujitegemea kwa wengine kwa mzunguko wake, ambayo hubadilika kwa nguvu kulingana na mzigo wa kila cores.


Mchele. 8. Udhibiti wa mzunguko wa kujitegemea
cores katika wasindikaji wa K10


Wakati huo huo, jinsi mzunguko wa uendeshaji wa cache ya L3 ya kawaida kwa cores zote itaratibiwa bado haijulikani. Voltage kwenye cores zote ni sawa na imedhamiriwa na msingi uliobeba zaidi. Mdhibiti wa kumbukumbu hudhibiti voltage yake kwa kujitegemea kwa cores na inaweza kuipunguza wakati hakuna mzigo mkubwa.

hitimisho

Taarifa zote kuhusu wasindikaji wapya wa AMD bado hazijachapishwa, kwa hivyo mshangao bado unaweza kutungoja. Hata hivyo, hitimisho kuu juu ya usanifu mdogo unaweza tayari kufanywa. Kichakataji kipya cha AMD, kutokana na maboresho mengi ya msingi, huahidi kiwango kikubwa cha utendakazi dhidi ya mtangulizi wake, haswa katika utumizi wa wakati halisi. Katika anuwai ya programu, kichakataji kitaweza kushindana kwa masharti sawa na vichakataji vya Intel-frequency moja na kuwashinda. Manufaa ya ziada ya utendakazi yanaweza kupatikana kwa programu zilizoandikwa ili kufaidika na uwezo mpya wa kipekee wa kichakataji, kama vile upakiaji bora usio na mpangilio na usaidizi wa kurasa kubwa za 1GB. Hata hivyo, kichakataji pia kina pande dhaifu ikilinganishwa na vichakataji vya Intel - hizi ni mifumo ndogo ya kuakibisha na kuleta mapema, ambayo inaweza kuwa na athari mbaya kwa utendakazi katika idadi ya programu. Lakini drawback muhimu zaidi katika kupigania utendaji wa juu zaidi katika hatua ya kuanzia itakuwa uwezekano mkubwa kuwa masafa ya juu ya kutosha. Wacha tuwatakie AMD maendeleo ya haraka ya masafa mapya na tuendelee kutazama jinsi kampuni zote mbili zinavyoendelea kupigana na kuboresha zaidi wasindikaji wao katika vita kwa ajili yetu sisi watumiaji.

Mwandishi anatoa shukrani kwa Maria Malich na Sergei Romanov aka kijivu kwa msaada wao katika kuandaa nakala hiyo.

Kutajwa kwa kwanza kwa usanifu wa kizazi kijacho kulionekana mnamo 2003, kwenye jukwaa Jukwaa la Microprocessor 2003. Ilibainika kuwa usanifu mpya utajumuisha vichakataji vya msingi vingi ambavyo vitafanya kazi kwa kasi ya saa ya hadi 10 GHz. Baadaye, masafa ya saa yalipunguzwa mara kadhaa. Kutajwa rasmi kwa kwanza kwa maendeleo ya AMD ya wasindikaji wa quad-core kulionekana Mei katika mpango mkakati uliochapishwa kwa kipindi hicho hadi 2009.

Kweli, wakati huo usanifu mpya uliorodheshwa chini ya jina la kanuni AMD K8L, na tu Februari 2007 jina la mwisho AMD K10 liliidhinishwa.

Wasindikaji kulingana na usanifu ulioboreshwa wa AMD K8 walipaswa kuwa wasindikaji wa kwanza wa quad-core AMD, pamoja na wasindikaji wa kwanza kwenye soko ambao cores zote 4 ziko kwenye chip moja (hapo awali kulikuwa na uvumi juu ya kuonekana kwa quad-core AMD processor, ambayo ni fuwele mbili-msingi za Opteron) .

Vipengele vya Usanifu

Tofauti kuu kati ya wasindikaji wa kizazi cha K10 na watangulizi wao kulingana na AMD K8 ni mchanganyiko wa cores nne kwenye chip moja, sasisho kwa itifaki ya Hyper-Transport hadi toleo la 3.0, cache ya kawaida ya L3 kwa cores zote, pamoja na msaada wa kuahidi kwa Kidhibiti kumbukumbu cha DDR3. Cores zenyewe pia zimesasishwa kutoka kwa alama za K8 za AMD.

Usanifu wa Kuunganisha moja kwa moja

  • Inakuruhusu kuongeza utendakazi na ufanisi kwa kuunganisha moja kwa moja kidhibiti cha kumbukumbu na kituo cha I/O kwenye msingi.
  • Imeundwa kutekeleza hesabu za biti 32 na 64 kwa wakati mmoja.
  • Ujumuishaji wa kidhibiti cha kumbukumbu cha DDR2 (hadi 533 (1066) MHz mode, pamoja na usaidizi wa baadaye wa DDR3)

Manufaa:

  • Ongeza utendaji wa programu kwa kupunguza muda wa kusubiri wa kufikia kumbukumbu
  • Hutenga kipimo data cha kumbukumbu kulingana na maombi
  • Teknolojia ya Hyper-Transport hutoa miunganisho kwa kasi ya juu ya hadi 16.0 GB/s ili kuzuia kusubiri.
  • Hadi jumla ya kipimo data cha GB 33.1/s kati ya kichakataji na mfumo (pamoja na basi la Hyper-Transport na kidhibiti kumbukumbu)

AMD Balanced Smart Cache

Akiba ya 2 MB L3 inashirikiwa katika viini vyote, pamoja na 512 KB ya akiba ya L2 kwa kila msingi. Faida hupunguzwa muda wa kusubiri unapofikia data inayotumiwa mara kwa mara ili kuboresha utendakazi.

Kiongeza kasi cha sehemu ya kuelea ya AMD pana

FPU ya biti 128 kwa kila msingi. Faida ni sampuli za haraka na usindikaji wa data katika hesabu za pointi zinazoelea.

HyperTransport

  • Chaneli moja ya 16-bit yenye kasi ya 4000 MT/s
  • Muunganisho wa Usafiri wa hali ya juu na kasi ya kilele ya hadi GB 8.0/s na hadi GB 16.0/s unapoendeshwa katika hali ya Hyper-Transport 3.0
  • Hadi jumla ya kipimo data cha GB 33.1/s kati ya kichakataji na mfumo (pamoja na basi la Hyper-Transport na kidhibiti kumbukumbu)

Kidhibiti cha kumbukumbu kilichojumuishwa

Faida ni upatikanaji wa haraka wa rasilimali za mfumo ili kuongeza tija.

AMD-V

Seti ya vipengele vya maunzi vilivyoundwa ili kuboresha utendakazi, kutegemewa na usalama katika mazingira ya sasa na ya baadaye ya uboreshaji kwa kuruhusu mashine pepe kufikia kumbukumbu iliyotengwa moja kwa moja.

Cool'n'Quiet 2.0

  • Mfumo wa juu wa usimamizi wa nguvu ambao hurekebisha kiotomati utendaji wa kichakataji kulingana na mzigo
  • Kupunguza matumizi ya nishati na kasi ya mzunguko wa baridi wakati wa hali ya kutofanya kitu

CoolCore

  • Hukuruhusu kupunguza matumizi ya nguvu kwa kuzima sehemu zisizotumika za kichakataji.
  • Mfumo tofauti wa mtawala wa kumbukumbu na mantiki ya processor inaruhusu udhibiti wa voltage na kuzima kwa kujitegemea
  • Inafanya kazi kiotomatiki bila hitaji la usaidizi wa dereva au BIOS
  • Huruhusu udhibiti huru wa masafa ya kila msingi
  • Kasi ya kubadili njia za uendeshaji ni sawa na mzunguko mmoja wa msingi wa processor

Mdudu wa TLB

Vipimo

  • Teknolojia ya mchakato: 65nm SOI
  • eneo la msingi: 283 mm²
  • idadi ya transistors: milioni 450
  • voltage: 1.05-1.38V
  • Soketi: AM2+ (pini 940) / Soketi F (pini 1207)

Chaguo

Kwa kompyuta za mezani

Kichakataji cha Phenom cha mifumo ya eneo-kazi, pamoja na mfululizo wa Opteron 13xx kwa soketi ya Socket AM2+. Vichakataji vyote vya mfululizo wa Phenom vimeundwa kwenye Socket AM2+, ambayo inaoana kwa nyuma na Socket AM2. Wakati wa kutumia vichakataji vya Phenom kwenye bodi za mama zinazounga mkono Socket AM2, inapoteza msaada kwa basi ya Hyper-Transport 3.0, saa tofauti ya kidhibiti cha kumbukumbu (northbridge), cache ya L3 na cores, pamoja na baadhi ya kazi za kuokoa nguvu.

Kwa seva

Msururu wa Opteron 83xx na 23xx kwa seva.

Wachakataji wa mfululizo wa Opteron pia wataweza kufanya kazi katika ubao wa mama wakubwa kulingana na Soketi F. Katika visa vyote viwili, unahitaji tu kusasisha BIOS ya ubao wa mama. Wasindikaji hawa wote wamejengwa kwenye usanifu wa AMD64, wana uwezo wa kufanya kazi na msimbo wa 32-bit x86, 16-bit na AMD64.

Kiini cha asili cha K10 kimepewa jina la "Barcelona" kwa vichakataji vilivyokusudiwa kwa seva. Wasindikaji wa baadaye wa kompyuta za kompyuta walitolewa, ambapo msingi wa K10 uliitwa "Agena".

Wasindikaji wenye msingi wa K10

Pamoja na ujio wa wasindikaji wa kizazi cha K10 katika urval ya AMD, majina yao pia yalibadilika - mifano yote miwili kulingana na K10 na AMD K8 imefichwa chini ya uteuzi mpya.

Mfumo wa uteuzi wa processor ya AMD
Mfululizo wa processor Uteuzi
Phenom X4 quad-core ( Agena) X4 9хх0
Phenom X3 triple-core ( Toliman) X3 8хх0
Athlon dual-core ( Kuma) 7хх0
Msingi mmoja wa Athlon ( Lima) 1хх0
Sempron single-core ( Sparta) 1хх0

Msingi wa Barcelona

  • AMD Opteron 3G 8350, cores 4, 2.0 GHz, 75 W
  • AMD Opteron 3G 8347, cores 4, 1.9 GHz, 75 W
23xx
  • AMD Opteron 3G 2350, cores 4, 2.0 GHz, 75 W
  • AMD Opteron 3G 2347, cores 4, 1.9 GHz, 75 W
  • AMD Opteron 3G 8356, cores 4, 2.3 GHz, 75 W
  • AMD Opteron 3G 8354, cores 4, 2.2 GHz, 75 W
23xx
  • AMD Opteron 3G 2356, cores 4, 2.3 GHz, 75 W
  • AMD Opteron 3G 2354, cores 4, 2.2 GHz, 75 W
  • AMD Opteron 3G 2352, cores 4, 2.1 GHz, 75 W
13xx
  • AMD Opteron 3G 1356, cores 4, 2.3 GHz, 75 W
  • AMD Opteron 3G 1354, cores 4, 2.2 GHz, 75 W
  • AMD Opteron 3G 1352, cores 4, 2.1 GHz, 75 W
  • AMD Opteron 3G 8347 HE, cores 4, 1.9 GHz, 55 W
  • AMD Opteron 3G 8346 HE, cores 4, 1.8 GHz, 55 W
23xx
  • AMD Opteron 3G 2347 HE, cores 4, 1.9 GHz, 55 W
  • AMD Opteron 3G 2346 HE, cores 4, 1.8 GHz, 55 W
  • AMD Opteron 3G 2344 HE, cores 4, 1.7 GHz, 55 W
  • AMD Opteron 3G 8360 SE, cores 4, 2.5 GHz, 95 W
  • AMD Opteron 3G 8358 SE, cores 4, 2.4 GHz, 95 W
23xx
  • AMD Opteron 3G 2360 SE, cores 4, 2.5 GHz, 95 W
  • AMD Opteron 3G 2358 SE, cores 4, 2.4 GHz, 95 W

Baada ya mafanikio ya miaka ya mapema ya 2000, AMD ilirudi kwa usalama katika hali yake ya kawaida ya kupata kila wakati na, licha ya kuvutia kabisa na, bila shaka, ufumbuzi wa kiufundi wa hali ya juu, haijaribu hata kushindana na Intel katika suala la kiasi cha mauzo. Kufikia katikati ya mwaka wa 2009, hisa za kampuni zinachukua takriban 14.5% ya soko la microprocessor. Wakati huo huo, vipengele vya mara moja vya wamiliki wa chips za AMD - kwa mfano, upanuzi wa maelekezo ya 64-bit au kidhibiti cha RAM kilichojengwa ndani ya processor - kwa muda mrefu imekuwa kutumika katika chips za mshindani wao mkuu.

Bidhaa za AMD leo zinachukua niches mbili nyembamba sana: wasindikaji wa bajeti ya juu kwa ajili ya kujenga kompyuta za darasa la uchumi na mifano ya juu ya utendaji inayotolewa mara tatu hadi tano nafuu kuliko chips za Intel zinazofanana.

Hii inaelezea ukweli kwamba kwenye rafu za duka unaweza kupata wasindikaji wa AMD wa familia na vizazi mbalimbali - kutoka kwa Sempron ya awali na Athlon kulingana na usanifu unaostahili wa K8 kwa tundu la Socket 939 hadi Phenom II X6 ya kisasa ya kisasa ya sita. Ikiwe hivyo, AMD sasa inategemea usanifu wa K10, kwa hivyo tutazungumza haswa juu ya wasindikaji iliyoundwa kwa msingi wake. Hizi ni pamoja na Phenom na Phenom II, pamoja na lahaja yao ya bajeti, inayoitwa kwa aibu Athlon II.

Kihistoria, chipsi za kwanza zenye msingi wa K10 zilikuwa quad-core Phenom X4 (iliyopewa jina Agena), iliyotolewa mnamo Novemba 2007. Baadaye kidogo, mwezi wa Aprili 2008, Phenom X3 ya tri-core ilionekana - wasindikaji wa kwanza wa dunia wa kompyuta za kompyuta, ambapo cores tatu ziko kwenye chip moja. Mnamo Desemba 2008, pamoja na mabadiliko ya teknolojia ya mchakato wa nanometer 45, familia iliyosasishwa ya Phenom II ilianzishwa, na mnamo Februari chipsi zilipokea kiunganishi kipya cha Socket AM3. Uzalishaji wa mfululizo wa quad-core Phenom II X4 ulianza Januari 2009, Phenom II X3 ya msingi-tatu mnamo Februari 2009, Phenom II X2 ya msingi-mbili mnamo Juni 2009, na Phenom II X2 ya msingi sita hivi majuzi, mnamo Aprili. 2010.

Athlon II - badala ya kisasa ya Sempron - ni Phenom II, kunyimwa moja ya faida zake muhimu - cache kubwa ya ngazi ya tatu (L3), ya kawaida kwa cores zote. Inapatikana katika matoleo mawili, matatu na manne ya msingi. Athlon II X2 imekuwa ikitolewa tangu Juni 2009, X4 tangu Septemba 2009, na X3 tangu Novemba 2009.

Usanifu wa AMD K10

Je! ni tofauti gani za kimsingi kati ya usanifu wa K10 na K8? Awali ya yote, katika wasindikaji wa K10 cores zote zinafanywa kwenye chip moja na zina vifaa vya cache ya L2 iliyojitolea. Phenom/Phenom 2 na seva za Opteron chips pia hutoa kumbukumbu ya kawaida ya kashe ya L3 kwa cores zote, kiasi ambacho ni kati ya 2 hadi 6 MB.

Faida kuu ya pili ya K10 ni basi mpya ya mfumo wa HyperTransport 3.0 yenye upitishaji wa kilele wa hadi GB 41.6/s katika pande zote mbili katika hali ya 32-bit au hadi GB 10.4/s katika mwelekeo mmoja katika modi ya 16-bit na masafa ya juu. hadi 2. 6 GHz. Hebu tukumbushe kwamba mzunguko wa juu wa uendeshaji wa toleo la awali la HyperTransport 2.0 ni 1.4 GHz, na upeo wa juu ni hadi 22.4 au 5.6 GB / s.

Basi pana ni muhimu sana kwa vichakataji vya msingi vingi, na HyperTransport 3.0 hutoa usanidi wa chaneli, ikiruhusu kila msingi kuwa na njia yake ya kujitegemea. Kwa kuongeza, processor ya K10 ina uwezo wa kubadilisha upana na mzunguko wa uendeshaji wa basi kwa uwiano wa mzunguko wake mwenyewe.

Ikumbukwe kwamba kwa sasa katika chips za AMD basi ya HyperTransport 3.0 inafanya kazi kwa kasi ya chini sana kuliko kiwango cha juu kinachoruhusiwa. Kulingana na mfano, njia tatu hutumiwa: 1.6 GHz na 6.4 GB / s, 1.8 GHz na 7.2 GB / s na 2 GHz na 8.0 GB / s. Chips zilizotengenezwa bado hazitumii njia mbili za kawaida - 2.4 GHz na 9.6 GB/s na 2.6 GHz na 10.4 GB/s.

Wasindikaji wa K10 huunganisha vidhibiti viwili vya kujitegemea vya RAM, ambayo huharakisha upatikanaji wa modules katika hali halisi ya uendeshaji. Vidhibiti vina uwezo wa kufanya kazi na kumbukumbu ya DDR2-1066 (mifano ya soketi AM2+ na AM3) au DDR3 (chips kwa soketi AM3). Kwa kuwa kidhibiti kilichounganishwa kwenye Phenom II na Athlon II kwa Socket AM3 kinaauni aina zote mbili za RAM, na soketi ya AM3 inaendana nyuma na AM2+, CPU mpya zinaweza kusakinishwa kwenye bodi kuu za AM2+ na kufanya kazi na kumbukumbu ya DDR2. Hii ina maana kwamba unaponunua Phenom II kwa ajili ya kuboresha, hutalazimika kubadilisha ubao-mama mara moja au kununua aina tofauti ya RAM - kama ilivyo, kwa mfano, na chips za Intel i3/i5/i7.

Microprocessors zilizo na usanifu wa K10 hutekeleza seti nzima ya teknolojia za kisasa za kuokoa nishati - AMD Cool"n"Quiet, CoolCore, Independent Dynamic Core na Dual Dynamic Power Management. Mfumo huu wa hali ya juu hupunguza kiotomatiki matumizi ya nguvu ya chip nzima wakati wa hali ya kutofanya kitu, hutoa usimamizi huru wa nguvu kwa kidhibiti cha kumbukumbu na cores, na ina uwezo wa kuzima vipengee vya kichakataji ambavyo havijatumiwa.


Hatimaye, cores zenyewe pia zimeboreshwa kwa kiasi kikubwa. Muundo wa sampuli, utabiri wa tawi na tawi, na vitengo vya kupeleka uliundwa upya, ambayo ilifanya iwezekane kuboresha mzigo wa msingi na hatimaye kuboresha utendaji. Upana wa vizuizi vya SSE uliongezeka kutoka biti 64 hadi 128, ikawezekana kutekeleza maagizo ya 64-bit kama moja, na usaidizi wa maagizo mawili ya ziada ya SSE4a uliongezwa (isichanganyike na seti za maagizo za SSE4.1 na 4.2 katika Intel. Wasindikaji wa msingi).

Hapa inahitajika kutaja kasoro ya muundo iliyotambuliwa katika Opterons za seva (iliyopewa jina la Barcelona) na katika Phenom X4 na X3 ya matoleo ya kwanza - kinachojulikana kama "kosa la TLB", ambalo wakati mmoja lilisababisha kukomesha kabisa kwa usambazaji wa wote. Chaguzi za marekebisho B2. Katika hali nadra sana, chini ya mzigo mkubwa, kwa sababu ya kasoro ya muundo katika kizuizi cha TLD cha kashe ya L3, mfumo unaweza kufanya kazi isiyo thabiti na isiyotabirika. Kasoro hiyo ilizingatiwa kuwa muhimu kwa mifumo ya seva, ndiyo sababu usafirishaji wa Opterons zote zilizotolewa ulisitishwa. Kiraka maalum kilitolewa kwa Phenoms za eneo-kazi ambazo huzima kizuizi chenye kasoro kwa kutumia BIOS, lakini wakati huo huo utendaji wa processor ulishuka sana. Pamoja na mpito wa marekebisho B3, tatizo liliondolewa kabisa, na chips vile hazijapatikana kwa kuuzwa kwa muda mrefu.

Aina ya mifano ya sasa

Ingawa vichakataji vya juu vya AMD ni duni kabisa kwa miundo ya Intel ya juu, usawa fulani umedumishwa katika sehemu ya chipsi mbili na quad-core zinazozalishwa kwa wingi kwa muda mrefu. Wakati huo huo, jukwaa la AMD yenyewe ni la bei nafuu - sio tu processor yenyewe inagharimu kidogo, lakini pia ubao wa mama. Tofauti hii inaonekana hasa ikiwa unalinganisha mashine za bajeti kwenye Phenom II X3 na X4 na kompyuta kulingana na Core i3, ambayo inazalisha kidogo zaidi, lakini karibu mara mbili ya gharama kubwa. Na ikiwa unatoa nguvu zaidi na kuchagua Athlon II, basi PC itakuwa zaidi ya nusu ya bei!

Kuhusu mashine zinazozalisha zaidi, ni mifano ya nguvu zaidi ya Phenom II X4 pekee inayoweza kushindana na Core i5, na ya hivi karibuni ya X6 ya msingi sita inaweza tu kulinganishwa kwa usahihi na quad-core Core i7 ndogo zaidi.

Athlon II na Phenom II zote zinazotengenezwa zimeundwa kwa ajili ya ufungaji katika tundu AM3, isipokuwa mifano miwili: Phenom II X4 940 na 920, ambayo imewekwa kwenye Socket AM2+ na hufanya kazi tu na DDR2 RAM. Chipu za Phenom zimeundwa kwa ajili ya tundu la AM2 pekee. Kichakataji cha tundu AM2+ hakiwezi kusakinishwa kwenye tundu la AM3, lakini, kama tulivyokwisha sema, chipsi za AM3 zinaweza kusanikishwa kwenye bodi zilizo na soketi AM2+.

Inavyoonekana, AMD inaondoa chipsi polepole kwa Socket AM2 na, kama Intel, inategemea miundo yenye usaidizi wa RAM ya kisasa zaidi ya DDR3. Mifano za AM3 na AM2 +, sawa na mzunguko wa saa na sifa nyingine, zina gharama karibu sawa, na ikiwa utazingatia utangamano wa nyuma wa chips mpya, basi hakuna uhakika katika ununuzi wa Phenoms za kwanza. Kwa hiyo, katika siku zijazo tutazingatia pekee Phenom II na Athlon II.

Athlon II na Phenom II zote zinapatikana katika matoleo mawili-, triple- na quad-core (X2, X3, X4), na "phenoms" pia zinapatikana katika matoleo sita-msingi. Marekebisho ya Toleo la Nyeusi pia yanapatikana, tofauti na yale ya kawaida na kizidishi kisichofunguliwa, ambacho hurahisisha overclocking.

Kwa bahati mbaya, chips nyingi mpya za AMD ni duni tena katika kifurushi cha joto kwa mifano ya Intel yenye sifa zinazofanana, ambayo ina maana mahitaji makubwa zaidi ya mifumo ya baridi na kuongezeka kwa matumizi ya nguvu. Kwa Phenom II za msingi nyingi, TDP ya kawaida ni 80, 95 au 125 W. Marekebisho maalum ya kiuchumi (65 W) na herufi "e" baada ya faharisi ya mfano kuuzwa, lakini ni polepole zaidi kuliko chaguzi za "kawaida" na ni ghali zaidi.

Vichakataji vya Athlon II X2 ni chipsi za "kweli" mbili-msingi, si chipsi za quad-core zilizo na chembe mbili zilizokufa kama Phenom II X2. Lakini Athlon II X3 ni Athlon II X4 yenye msingi mmoja usio na kazi. Athlon II zote zinazalishwa kwa kutumia teknolojia ya 45nm.

Kila msingi wa Athlone X2, X3 na X4 umewekwa na 128 KB ya kashe ya L1 na 512 KB ya kache ya kiwango cha pili. Walakini, tofauti na Phenom II, hawashiriki akiba ya L3, kumaanisha kwamba wasindikaji watafikia kumbukumbu ya mfumo wa polepole zaidi mara nyingi zaidi. Matokeo yake ni utendakazi mdogo katika programu zinazotumia rasilimali nyingi, michoro ya 3D na michezo ya kompyuta. Walakini, pamoja na kadi nzuri ya video, mifumo ya Athlon II inaonyesha utendaji mzuri wa michezo ya kubahatisha.

Phenom II inakabiliwa na ushindani mkali kutoka kwa Core i3 na i5, lakini kwa hakika wanashinda gharama ya mfumo wa kulinganishwa. Kama Athlon II, kila kiini cha matukio kina 128 KB ya kashe ya L1 na 512 KB ya kashe ya L2. Wakati huo huo, Phenom II pia hutoa kumbukumbu ya cache ya ngazi ya tatu, ya kawaida kwa cores zote. Takriban "matukio" yote - mawili, matatu, manne na sita - yana 6 MB ya kashe ya L3, isipokuwa aina tatu za X4 zilizo na faharisi 805, 810 na 820, ambazo zina MB 4 tu za L3. .

Katika sehemu ya pili ya makala tutakupa maelezo mafupi ya usuli juu ya sifa kuu za kiufundi za wasindikaji wote wa AMD Athlon II na Phenom II zinazozalishwa sasa na makadirio ya bei za rejareja kwao katika maduka ya Kirusi. Na kwa kumalizia, tutazungumzia juu ya mifano ya kuvutia zaidi kwa maoni yetu, ambayo yanafaa kulipa kipaumbele maalum wakati wa kuchagua.