Որքա՞ն է l2 և l3 քեշի չափը: Քեշի հիշողության ազդեցությունը համակարգչի աշխատանքի վրա: Ինչպե՞ս է աշխատում պրոցեսորի քեշը:

Բոլոր օգտատերերը քաջատեղյակ են այնպիսի համակարգչային տարրերի մասին, ինչպիսիք են պրոցեսորը, որը պատասխանատու է տվյալների մշակման համար, ինչպես նաև պատահական մուտքի հիշողություն (RAM կամ RAM), որը պատասխանատու է դրանց պահպանման համար: Բայց ոչ բոլորը հավանաբար գիտեն, որ կա նաև պրոցեսորային քեշ հիշողություն (Cache CPU), այսինքն՝ հենց պրոցեսորի RAM-ը (այսպես կոչված՝ ուլտրա-RAM):

Ո՞րն է պատճառը, որ համակարգչային դիզայներներին դրդեց օգտագործել հատուկ հիշողություն պրոցեսորի համար: Համակարգչի RAM-ի հզորությունը բավարար չէ՞:

Իրոք, երկար ժամանակ անհատական ​​համակարգիչները գործում էին առանց քեշի հիշողության: Բայց, ինչպես գիտեք, պրոցեսորը անհատական ​​համակարգչի ամենաարագ սարքն է, և դրա արագությունը մեծանում է յուրաքանչյուր նոր սերնդի պրոցեսորի հետ: Ներկայումս դրա արագությունը չափվում է վայրկյանում միլիարդավոր գործողություններով: Միևնույն ժամանակ, ստանդարտ RAM-ն իր էվոլյուցիայի ընթացքում էապես չի բարձրացրել իր կատարումը:

Ընդհանուր առմամբ, գոյություն ունի հիշողության չիպի երկու հիմնական տեխնոլոգիա՝ ստատիկ հիշողություն և դինամիկ հիշողություն: Չխորանալով դրանց դիզայնի մանրամասների մեջ, մենք միայն կասենք, որ ստատիկ հիշողությունը, ի տարբերություն դինամիկ հիշողության, չի պահանջում վերածնում; Բացի այդ, ստատիկ հիշողությունը օգտագործում է 4-8 տրանզիստոր մեկ բիթ տեղեկատվության համար, մինչդեռ դինամիկ հիշողությունը օգտագործում է 1-2 տրանզիստոր: Համապատասխանաբար, դինամիկ հիշողությունը շատ ավելի էժան է, քան ստատիկ հիշողությունը, բայց միևնույն ժամանակ շատ ավելի դանդաղ: Ներկայումս RAM չիպերն արտադրվում են դինամիկ հիշողության հիման վրա:

Պրոցեսորների և RAM-ի արագության հարաբերակցության մոտավոր էվոլյուցիան.

Այսպիսով, եթե պրոցեսորը անընդհատ ինֆորմացիա վերցներ RAM-ից, պետք է սպասեր դանդաղ դինամիկ հիշողության, և այն անընդհատ անգործուն մնա։ Նույն դեպքում, եթե որպես օպերատիվ հիշողություն օգտագործվեր ստատիկ հիշողությունը, համակարգչի արժեքը մի քանի անգամ կբարձրանա։

Այդ պատճառով էլ խելամիտ փոխզիջում է մշակվել։ RAM-ի հիմնական մասը մնաց դինամիկ, մինչդեռ պրոցեսորը ստացավ իր սեփական արագ քեշ հիշողությունը՝ հիմնված ստատիկ հիշողության չիպերի վրա: Դրա ծավալը համեմատաբար փոքր է, օրինակ, երկրորդ մակարդակի քեշի ծավալը ընդամենը մի քանի մեգաբայթ է: Այնուամենայնիվ, հարկ է հիշել, որ առաջին IBM PC համակարգիչների ամբողջ RAM-ը 1 ՄԲ-ից պակաս էր:

Բացի այդ, քեշավորման տեխնոլոգիայի ներդրման նպատակահարմարության վրա ազդում է նաև այն փաստը, որ RAM-ում տեղակայված տարբեր հավելվածները տարբեր կերպ են բեռնում պրոցեսորը, և, արդյունքում, կան բազմաթիվ տվյալներ, որոնք պահանջում են առաջնահերթ մշակում մյուսների համեմատ:

Քեշի պատմությունը

Խստորեն ասած, նախքան քեշի հիշողությունը անհատական ​​համակարգիչներ տեղափոխելը, այն արդեն մի քանի տասնամյակ հաջողությամբ օգտագործվել էր գերհամակարգիչների մեջ:

Առաջին անգամ i80386 պրոցեսորի վրա հիմնված ԱՀ-ում հայտնվեց ընդամենը 16 ԿԲ ծավալով քեշ հիշողություն: Այսօր ժամանակակից պրոցեսորներն օգտագործում են քեշի տարբեր մակարդակներ՝ առաջինից (ամենափոքր չափի ամենաարագ քեշը՝ սովորաբար 128 ԿԲ) մինչև երրորդը (ամենամեծ չափի ամենադանդաղ քեշը՝ մինչև տասնյակ ՄԲ):

Սկզբում պրոցեսորի արտաքին քեշը գտնվում էր առանձին չիպի վրա։ Այնուամենայնիվ, ժամանակի ընթացքում դա պատճառ դարձավ, որ քեշի և պրոցեսորի միջև տեղակայված ավտոբուսը վերածվեց խցանման՝ դանդաղեցնելով տվյալների փոխանակումը: Ժամանակակից միկրոպրոցեսորներում քեշի հիշողության և՛ առաջին, և՛ երկրորդ մակարդակները գտնվում են հենց պրոցեսորի միջուկում:

Երկար ժամանակովՊրոցեսորներում կար ընդամենը երկու քեշի մակարդակ, սակայն Intel Itanium CPU-ն առաջինն էր, որն ուներ երրորդ մակարդակի քեշ, որը ընդհանուր էր բոլոր պրոցեսորային միջուկների համար: Կան նաև չորս մակարդակի քեշով պրոցեսորների մշակումներ։

Քեշի ճարտարապետություններ և սկզբունքներ

Այսօր հայտնի են քեշի հիշողության կազմակերպման երկու հիմնական տեսակ, որոնք սկիզբ են առնում կիբեռնետիկայի ոլորտում առաջին տեսական զարգացումներից՝ Փրինսթոնի և Հարվարդի ճարտարապետություններից։ Փրինսթոնի ճարտարապետությունը ենթադրում է տվյալների և հրամանների պահպանման մեկ հիշողության տարածք, մինչդեռ Հարվարդի ճարտարապետությունը նշանակում է առանձին: Անձնական համակարգչի x86 պրոցեսորների մեծ մասը օգտագործում է առանձին տեսակի քեշ հիշողություն: Բացի այդ, ժամանակակից պրոցեսորներում հայտնվել է նաև քեշի հիշողության երրորդ տեսակը՝ այսպես կոչված ասոցիատիվ թարգմանության բուֆերը, որը նախատեսված է օպերացիոն համակարգի վիրտուալ հիշողության հասցեների փոխակերպումը ֆիզիկական հիշողության հասցեների արագացնելու համար:

Քեշի հիշողության և պրոցեսորի միջև փոխազդեցության պարզեցված դիագրամը կարելի է նկարագրել հետևյալ կերպ. Նախ, պրոցեսորը ստուգում է պրոցեսորին անհրաժեշտ տեղեկատվության առկայությունը ամենաարագ առաջին մակարդակի քեշում, այնուհետև երկրորդ մակարդակի քեշում և այլն: Եթե ​​անհրաժեշտ տեղեկատվությունը չի գտնվել քեշի որևէ մակարդակում, ապա նրանք դա անվանում են սխալ կամ քեշի բացթողում: Եթե ​​քեշում ընդհանրապես տեղեկատվություն չկա, ապա պրոցեսորը պետք է այն վերցնի RAM-ից կամ նույնիսկ արտաքին հիշողությունից (կոշտ սկավառակից):

Հաջորդը, որով պրոցեսորը տեղեկատվություն է փնտրում հիշողության մեջ.

Այսպես է Պրոցեսորը որոնում տեղեկատվություն

Քեշի հիշողության աշխատանքը և դրա փոխազդեցությունը պրոցեսորի հաշվողական միավորների, ինչպես նաև RAM-ի հետ վերահսկելու համար կա հատուկ կարգավորիչ:

Պրոցեսորի միջուկի, քեշի և RAM-ի փոխազդեցության կազմակերպման սխեման.

Քեշի վերահսկիչն է հիմնական տարրհաղորդակցություն պրոցեսորի, RAM-ի և քեշի հիշողության միջև

Հարկ է նշել, որ տվյալների քեշավորումը բարդ գործընթաց է, որն օգտագործում է բազմաթիվ տեխնոլոգիաներ և մաթեմատիկական ալգորիթմներ: Քեշավորման մեջ օգտագործվող հիմնական հասկացություններից են քեշ գրելու մեթոդները և քեշի ասոցիատիվության ճարտարապետությունը:

Քեշ գրելու մեթոդներ

Քեշ հիշողության մեջ տեղեկատվություն գրելու երկու հիմնական եղանակ կա.

  1. Գրելու մեթոդ – տվյալները նախ գրվում են քեշի մեջ, այնուհետև, երբ առաջանում են որոշակի պայմաններ, RAM-ում:
  2. Գրելու մեթոդ - տվյալները գրվում են միաժամանակ RAM-ում և քեշում:

Քեշի ասոցիատիվության ճարտարապետություն

Քեշի ասոցիատիվության ճարտարապետությունը սահմանում է այն եղանակը, որով RAM-ից տվյալները քարտեզագրվում են քեշին: Ասոցիատիվության ճարտարապետության քեշավորման հիմնական տարբերակներն են.

  1. Ուղղակի քարտեզագրված քեշ - քեշի որոշակի հատվածը պատասխանատու է RAM-ի որոշակի հատվածի համար
  2. Լիովին ասոցիատիվ քեշ - քեշի ցանկացած մաս կարող է կապված լինել RAM-ի ցանկացած մասի հետ
  3. Խառը քեշ (հավաքածու-ասոցիատիվ)

Քեշի տարբեր մակարդակները սովորաբար կարող են օգտագործել քեշի ասոցիատիվության տարբեր ճարտարապետություններ: Ուղղակի քարտեզագրված RAM-ի քեշավորումը ամենաարագ քեշավորման տարբերակն է, ուստի այս ճարտարապետությունը սովորաբար օգտագործվում է մեծ քեշերի համար: Իր հերթին, լիովին ասոցիատիվ քեշն ունի ավելի քիչ քեշի սխալներ (վրիպումներ):

Եզրակացություն

Այս հոդվածում դուք ծանոթացաք քեշի հիշողության հայեցակարգին, քեշի հիշողության ճարտարապետությանը և քեշավորման մեթոդներին և իմացաք, թե ինչպես է այն ազդում ժամանակակից համակարգչի աշխատանքի վրա: Քեշի հիշողության առկայությունը կարող է զգալիորեն օպտիմիզացնել պրոցեսորի աշխատանքը, նվազեցնել դրա անգործության ժամանակը և, հետևաբար, բարձրացնել ամբողջ համակարգի աշխատանքը:

Ողջույն տղերք Եկեք խոսենք պրոցեսորի մասին, ավելի ճիշտ՝ նրա քեշի մասին։ Պրոցեսորի քեշը կարող է տարբեր լինել, օրինակ, ես հիմա ունեմ Pentium G3220 (1150 վարդակից), սա ժամանակակից պրոցեսոր է և ունի 3 ՄԲ քեշ։ Բայց միևնույն ժամանակ, հին մոդելի Pentium D965 (վարդակ 775) ունի 4 ՄԲ քեշ: Բայց միևնույն ժամանակ G3220-ը մի քանի անգամ ավելի արագ է, քան D965-ը, նկատի ունեմ, որ քեշը լավն է, բայց գլխավորն այն է, որ քեշը ժամանակակից է: Հին պրոցեսորների քեշի հիշողությունը շատ ավելի դանդաղ է, քան նորերը, հիշեք սա:

Եկեք խոսենք որոշ սարքերի մասին, որոնք ազդում են աշխատանքի վրա: Տեսեք, եկեք վերցնենք HDD, ունի՞ քեշ։ Այո, կա, բայց այն փոքր է, թեև մի փոքր ազդում է կատարողականի վրա: Հետո ի՞նչ է լինում։ Հետո գալիս է RAM-ը, այն ամենը, ինչով աշխատում է ծրագիրը կամ պրոցեսորը, այս ամենը տեղադրված է RAM-ում: Եթե ​​RAM-ում տվյալներ չկան, ապա այն կարդացվում է կոշտ սկավառակից, և դա շատ դանդաղ է ընթանում: Բայց RAM-ն արդեն շատ արագ է, կարող է բավականին շատ լինել: Բայց օպերատիվ հիշողությունը արագ է, համեմատած պրոցեսորի համար կոշտ սկավառակի հետ, այն դեռ շատ արագ չէ, և հետևաբար վերջինս ունի նաև իր սեփական քեշը, որն արդեն գերարագ է:

Ինչի՞ վրա է ազդում պրոցեսորի քեշը: Հենց այս քեշում է, որ պրոցեսորը պահում է այն, ինչ հաճախ օգտագործում է, այսինքն՝ բոլոր տեսակի հրամաններն ու հրահանգները: Համապատասխանաբար, որքան շատ լինի, այնքան լավ, բայց դա ամբողջովին ճիշտ չէ։ Որքա՞ն քեշ ունեք: Եթե ​​չգիտեք, ապա ես ձեզ ցույց կտամ, թե ինչպես պարզել, ամեն ինչ պարզ է: Դե տեսեք ինչ հետաքրքիր իրավիճակ է, նորից վերադառնանք հին գործընթացներին։ Թվում է, որ եթե քեշը շատ է, ապա սա լավ է: Բայց կա Q9650 պրոցեսոր (775 վարդակից), որն ունի 12 ՄԲ քեշ, բայց նույնիսկ մոտ չէ ժամանակակից Core i5 կամ նույնիսկ Core i3 մոդելներին։ i5-ն ունի շատ ավելի քիչ քեշ, այսինքն՝ ընդամենը 6 ՄԲ, իսկ i3-ն էլ ավելի քիչ քեշ ունի՝ ընդամենը 3 ՄԲ:

Ես հասկանում եմ, որ ընդհանուր առմամբ ժամանակակից պրոցեսորները շատ ավելի արագ են, քան հինները։ Բայց դա այն չէ, ինչի մասին ես խոսում եմ: Քեշը տարբերվում է, ամենավերին Q9650-ը պարզապես դանդաղ քեշ ունի՝ համեմատած ժամանակակից վարդակների պրոցեսորների հետ: Հետևաբար, այդ 12 ՄԲ-ն անօգուտ է։ Սա այն ամենն է, ինչ ես նկատի ունեմ. մի՛ հետապնդիր քանակ, հետապնդիր որակ: Այսպիսով, այսպես. Այս ամենը գրել եմ որպես գրառում ձեզ համար, հուսով եմ, որ օգտակար կլինի

Ահա մի պարզ պատկեր, թե ինչպես է աշխատում քեշը.

Եվ ահա ևս մեկ նկար, այստեղ նշված է նաև մեկ այլ սարք, սա վերահսկիչ է, որը պարզապես ասում է, թե քեշում տվյալներ կա՞ն, թե՞ ոչ.

Քեշի հիշողությունը գերարագ է: Ես այնքան էլ տեղյակ չեմ պրոցեսորների մասին, բայց հետաքրքիր կլիներ իմանալ, եթե այս քեշը լիներ... 100 ՄԲ... կամ նույնիսկ 1 ԳԲ... պրոցեսորն ավելի արագ կլինե՞ր: Սա, իհարկե, ֆանտաստիկ է նույնիսկ հիմա, բայց հիմա կան պրոցեսորներ հսկայական քանակությամբ քեշով... մոտ 30 ՄԲ կամ ավելի: Ես վստահ չեմ այս հարցում, բայց թվում է, որ այս քեշ հիշողությունը շատ թանկ է և ընդհանուր առմամբ դժվար է այն պրոցեսորի մեջ դնելը, նկատի ունեմ մեծ ծավալը

Դե, հիմա թույլ տվեք ձեզ ցույց տալ, թե ինչպես պարզել, թե որքան քեշ կա պրոցեսորում: Եթե ​​ունեք Windows 10, ապա սա հիանալի է, քանի որ այն կարող է ցույց տալ բոլոր քեշերը, այնտեղ երեք մակարդակ կա: Թեև երրորդ մակարդակը թվում է ամենակարևորը, այն նաև ամենամեծն է: Այսպիսով, նայեք, բացեք առաջադրանքների կառավարիչը և անցեք Performance ներդիր և այստեղ CPU ներդիրում կարող եք տեսնել քեշի մասին տեղեկատվություն, ահա այն.

Այստեղ դուք կարող եք տեսնել, որ ես ունեմ Pentium G3220, բավականին լավ պրոցեսոր, թեկուզ էժան: Բայց դա իրականում ավելի արագ է, քան վարդակից 775-ի շատ մոդելներ, որոնք կարելի է անվանել մոտ վերևի մոդելներ և որոնք ունեն շատ ավելի մեծ քեշ... Սրանք են…

Բայց ես ձեզ անկեղծորեն կասեմ, որ սա պարզ միջոց չէ տեսնելու, թե որքան քեշ ունի պրոցեսորը: Ես ձեզ խորհուրդ եմ տալիս օգտագործել CPU-Z կոմունալ ծրագիրը, եթե մտածում եք այսպես. Այս ծրագիրն օգտագործվում է զով օվերլոքերների կողմից, ովքեր օվերկլակում են իրենց պրոցեսորները: Տեղադրման ընթացքում կոմունալը ֆայլերի փունջ չի ստեղծում, և իրականում տեղադրումը պարզապես ծրագիրը հանում է Ծրագրային Ֆայլերի մեջ, այնուհետև cpuz.exe-ն կարող է պատճենվել ցանկացած վայրում և գործարկել, այն կաշխատի: Նրանք պարզապես գործարկեցին այն և վերջ, նա հավաքեց տեղեկատվությունը և նայեք: Դուք կարող եք հեշտությամբ ներբեռնել այն ինտերնետում, քանի որ այն հասանելի է յուրաքանչյուր անկյունում: Պարզապես համոզվեք, որ դուք չեք գրավում վիրուսներ, ներբեռնեք, օրինակ, փափուկ պորտալում: CPU-Z-ն աշխատում է Windows-ի գրեթե բոլոր տարբերակների վրա, բացառությամբ ամենահին...

Ընդհանրապես, այն կարող եք ներբեռնել այս կայքում՝ cpuid.com, ես ուղղակի, անկեղծ ասած, չգիտեի դրա մասին և սովոր էի ներբեռնել այլ կայքերից:

Դե, հուսով եմ, որ դուք կարող եք ներբեռնել այն առանց խնդիրների: Այժմ դուք գործարկում եք այն, և պրոցեսորի մասին ամեն ինչ ձեր մատների տակ է: Այսպիսով, ես գործարկեցի CPU-Z-ը, և սա այն ցույց տվեց իմ Pentium G3220-ի մասին.

Այնտեղ, որտեղ ես շրջանցել եմ տուփը, այնտեղ է ցուցադրվում քեշը: Ինչ է ճանապարհը, լավ, ասում է 8-ուղի, 12-ուղի, լավ, ես չգիտեմ, թե դա ինչ է, կներեք: Բայց ինչպես տեսնում եք այստեղ, դուք կարող եք հստակ տեսնել ոչ միայն քեշը, այլև այլ տեղեկություններ, հաճախականություն, միջուկներ և թելեր: Դե, հետաքրքիրն այն է, թե ինչ են ցույց տալիս այստեղ մեկ կամ երկու քեշ: Դե, ես պարզապես ունեմ 3 Մբայթ գրված այստեղ, այսինքն, ես ունեմ ընդամենը 3 ՄԲ քեշ:

Բայց, օրինակ, ինչ վերաբերում է ամենավերին Q9650-ին, այնտեղ իրավիճակը մի փոքր այլ է, թեև կա 12 ՄԲ քեշ, բայց դրանք ըստ էության երկու բլոկ են՝ յուրաքանչյուրը 6 ՄԲ-ով, և CPU-Z-ն որոշում է սա.

Ի դեպ, ինչպես տեսնում եք, կա մինչեւ 4 ԳՀց օվերքլոքինգ, ինչը վատ չէ։ Ի դեպ, նման overclocking-ը կարող է լավ օդով սառեցվել: Բայց դա բոլորովին այլ պատմություն է...

Ի դեպ, մեկ այլ հետաքրքիր բան էլ այն է, որ 775 վարդակից մոդելները չունեն երրորդ մակարդակի L3 քեշ... Այսինքն՝ կան միայն L1 և L2..., բայց ես չգիտեի...

Այսպիսով, սրանք բաներ են: Հուսով եմ, որ ամեն ինչ հստակ գրել եմ։ Եվս մեկ անգամ կրկնում եմ՝ քանակի հետևից մի՛ ընկեք։ Այնպես որ, ես իսկապես չեմ ափսոսում դրա համար, բայց այնուամենայնիվ... Մի խոսքով, ես վերցրեցի այն և ինքս ինձ համար ստեղծեցի համակարգիչ 1150 վարդակից: Դե, կարծում եմ, ամեն ինչ լավ է: Բայց ես մի քիչ վիրավորված զգացի, երբ իմացա, որ 1151 վարդակից թողարկվել է, և որ դրա արժեքը նույնն է, կամ նույնիսկ մի քիչ ավելի էժան... Բայց այնտեղ պրոցեսորներն իրականում ավելի արագ են... Դե, լավ: Ես հենց նոր գնեցի համակարգիչ տարիներ շարունակ, բայց ուրախ էի, որ իմ տախտակը և այս Asus Gryphon Z87-ն աջակցում են Devil’s Canyon միջուկի վրա հիմնված պրոցեսորներին: Սա նվեր էր, քանի որ Intel-ը նախկինում հայտարարել էր, որ այս պրոցեսորները կաջակցվեն միայն Z97 չիպսեթով, բայց ես վերցրեցի անիծյալ Z87-ը:

Մի խոսքով, սրանք են բաները

Այսքանը տղաներ: Հուսով եմ, որ ամեն ինչ լավ կլինի ձեզ համար, և այս տեղեկատվությունը օգտակար էր ձեզ համար, հաջողություն

Դեպի տուն! քեշ պրոցեսոր 07/30/2016

virtmachine.ru

Քեշի հիշողության ազդեցությունը համակարգչի աշխատանքի վրա

Բոլոր օգտատերերը քաջատեղյակ են այնպիսի համակարգչային տարրերի մասին, ինչպիսիք են պրոցեսորը, որը պատասխանատու է տվյալների մշակման համար, ինչպես նաև պատահական մուտքի հիշողություն (RAM կամ RAM), որը պատասխանատու է դրանց պահպանման համար: Բայց ոչ բոլորը հավանաբար գիտեն, որ կա նաև պրոցեսորային քեշ հիշողություն (Cache CPU), այսինքն՝ հենց պրոցեսորի RAM-ը (այսպես կոչված՝ ուլտրա-RAM):

Քեշի գործառույթը

Ո՞րն է պատճառը, որ համակարգչային դիզայներներին դրդեց օգտագործել հատուկ հիշողություն պրոցեսորի համար: Համակարգչի RAM-ի հզորությունը բավարար չէ՞:

Իրոք, երկար ժամանակ անհատական ​​համակարգիչները գործում էին առանց քեշի հիշողության: Բայց, ինչպես գիտեք, պրոցեսորը անհատական ​​համակարգչի ամենաարագ սարքն է, և դրա արագությունը մեծանում է յուրաքանչյուր նոր սերնդի պրոցեսորի հետ: Ներկայումս դրա արագությունը չափվում է վայրկյանում միլիարդավոր գործողություններով: Միևնույն ժամանակ, ստանդարտ RAM-ն իր էվոլյուցիայի ընթացքում էապես չի բարձրացրել իր կատարումը:

Ընդհանուր առմամբ, գոյություն ունի հիշողության չիպի երկու հիմնական տեխնոլոգիա՝ ստատիկ հիշողություն և դինամիկ հիշողություն: Չխորանալով դրանց դիզայնի մանրամասների մեջ, մենք միայն կասենք, որ ստատիկ հիշողությունը, ի տարբերություն դինամիկ հիշողության, չի պահանջում վերածնում; Բացի այդ, ստատիկ հիշողությունը օգտագործում է 4-8 տրանզիստոր մեկ բիթ տեղեկատվության համար, մինչդեռ դինամիկ հիշողությունը օգտագործում է 1-2 տրանզիստոր: Համապատասխանաբար, դինամիկ հիշողությունը շատ ավելի էժան է, քան ստատիկ հիշողությունը, բայց միևնույն ժամանակ շատ ավելի դանդաղ: Ներկայումս RAM չիպերն արտադրվում են դինամիկ հիշողության հիման վրա:

Պրոցեսորների և RAM-ի արագության հարաբերակցության մոտավոր էվոլյուցիան.

Այսպիսով, եթե պրոցեսորը անընդհատ ինֆորմացիա վերցներ RAM-ից, պետք է սպասեր դանդաղ դինամիկ հիշողության, և այն անընդհատ անգործուն մնա։ Նույն դեպքում, եթե որպես օպերատիվ հիշողություն օգտագործվեր ստատիկ հիշողությունը, համակարգչի արժեքը մի քանի անգամ կբարձրանա։

Այդ պատճառով էլ խելամիտ փոխզիջում է մշակվել։ RAM-ի հիմնական մասը մնաց դինամիկ, մինչդեռ պրոցեսորը ստացավ իր սեփական արագ քեշ հիշողությունը՝ հիմնված ստատիկ հիշողության չիպերի վրա: Դրա ծավալը համեմատաբար փոքր է, օրինակ, երկրորդ մակարդակի քեշի ծավալը ընդամենը մի քանի մեգաբայթ է: Այնուամենայնիվ, հարկ է հիշել, որ առաջին IBM PC համակարգիչների ամբողջ RAM-ը 1 ՄԲ-ից պակաս էր:

Բացի այդ, քեշավորման տեխնոլոգիայի ներդրման նպատակահարմարության վրա ազդում է նաև այն փաստը, որ RAM-ում տեղակայված տարբեր հավելվածները տարբեր կերպ են բեռնում պրոցեսորը, և, արդյունքում, կան բազմաթիվ տվյալներ, որոնք պահանջում են առաջնահերթ մշակում մյուսների համեմատ:

Քեշի պատմությունը

Խստորեն ասած, նախքան քեշի հիշողությունը անհատական ​​համակարգիչներ տեղափոխելը, այն արդեն մի քանի տասնամյակ հաջողությամբ օգտագործվել էր գերհամակարգիչների մեջ:

Առաջին անգամ i80386 պրոցեսորի վրա հիմնված ԱՀ-ում հայտնվեց ընդամենը 16 ԿԲ ծավալով քեշ հիշողություն: Այսօր ժամանակակից պրոցեսորներն օգտագործում են քեշի տարբեր մակարդակներ՝ առաջինից (ամենափոքր չափի ամենաարագ քեշը՝ սովորաբար 128 ԿԲ) մինչև երրորդը (ամենամեծ չափի ամենադանդաղ քեշը՝ մինչև տասնյակ ՄԲ):

Սկզբում պրոցեսորի արտաքին քեշը գտնվում էր առանձին չիպի վրա։ Այնուամենայնիվ, ժամանակի ընթացքում դա պատճառ դարձավ, որ քեշի և պրոցեսորի միջև տեղակայված ավտոբուսը վերածվեց խցանման՝ դանդաղեցնելով տվյալների փոխանակումը: Ժամանակակից միկրոպրոցեսորներում քեշի հիշողության և՛ առաջին, և՛ երկրորդ մակարդակները գտնվում են հենց պրոցեսորի միջուկում:

Երկար ժամանակ պրոցեսորներն ունեին միայն երկու քեշի մակարդակ, սակայն Intel Itanium պրոցեսորն առաջինն էր, որ ներկայացրեց երրորդ մակարդակի քեշը, որը ընդհանուր է բոլոր պրոցեսորային միջուկների համար: Կան նաև չորս մակարդակի քեշով պրոցեսորների մշակումներ։

Քեշի ճարտարապետություններ և սկզբունքներ

Այսօր հայտնի են քեշի հիշողության կազմակերպման երկու հիմնական տեսակ, որոնք սկիզբ են առնում կիբեռնետիկայի ոլորտում առաջին տեսական զարգացումներից՝ Փրինսթոնի և Հարվարդի ճարտարապետություններից։ Փրինսթոնի ճարտարապետությունը ենթադրում է տվյալների և հրամանների պահպանման մեկ հիշողության տարածք, մինչդեռ Հարվարդի ճարտարապետությունը նշանակում է առանձին: Անձնական համակարգչի x86 պրոցեսորների մեծ մասը օգտագործում է առանձին տեսակի քեշ հիշողություն: Բացի այդ, ժամանակակից պրոցեսորներում հայտնվել է նաև քեշի հիշողության երրորդ տեսակը՝ այսպես կոչված ասոցիատիվ թարգմանության բուֆերը, որը նախատեսված է օպերացիոն համակարգի վիրտուալ հիշողության հասցեների փոխակերպումը ֆիզիկական հիշողության հասցեների արագացնելու համար:

Քեշի հիշողության և պրոցեսորի միջև փոխազդեցության պարզեցված դիագրամը կարելի է նկարագրել հետևյալ կերպ. Նախ, պրոցեսորը ստուգում է պրոցեսորին անհրաժեշտ տեղեկատվության առկայությունը ամենաարագ առաջին մակարդակի քեշում, այնուհետև երկրորդ մակարդակի քեշում և այլն: Եթե ​​անհրաժեշտ տեղեկատվությունը չի գտնվել քեշի որևէ մակարդակում, ապա նրանք դա անվանում են սխալ կամ քեշի բացթողում: Եթե ​​քեշում ընդհանրապես տեղեկատվություն չկա, ապա պրոցեսորը պետք է այն վերցնի RAM-ից կամ նույնիսկ արտաքին հիշողությունից (կոշտ սկավառակից):

Հաջորդը, որով պրոցեսորը տեղեկատվություն է փնտրում հիշողության մեջ.

Այսպես է Պրոցեսորը փնտրում տեղեկատվություն

Քեշի հիշողության աշխատանքը և դրա փոխազդեցությունը պրոցեսորի հաշվողական միավորների, ինչպես նաև RAM-ի հետ վերահսկելու համար կա հատուկ կարգավորիչ:

Պրոցեսորի միջուկի, քեշի և RAM-ի փոխազդեցության կազմակերպման սխեման.


Քեշի կարգավորիչը հիմնական կապն է պրոցեսորի, RAM-ի և քեշի հիշողության միջև

Հարկ է նշել, որ տվյալների քեշավորումը բարդ գործընթաց է, որն օգտագործում է բազմաթիվ տեխնոլոգիաներ և մաթեմատիկական ալգորիթմներ: Քեշավորման մեջ օգտագործվող հիմնական հասկացություններից են քեշ գրելու մեթոդները և քեշի ասոցիատիվության ճարտարապետությունը:

Քեշ գրելու մեթոդներ

Քեշ հիշողության մեջ տեղեկատվություն գրելու երկու հիմնական եղանակ կա.

  1. Գրելու մեթոդ – տվյալները նախ գրվում են քեշի մեջ, այնուհետև, երբ առաջանում են որոշակի պայմաններ, RAM-ում:
  2. Գրելու մեթոդ - տվյալները գրվում են միաժամանակ RAM-ում և քեշում:

Քեշի ասոցիատիվության ճարտարապետություն

Քեշի ասոցիատիվության ճարտարապետությունը սահմանում է այն եղանակը, որով RAM-ից տվյալները քարտեզագրվում են քեշին: Ասոցիատիվության ճարտարապետության քեշավորման հիմնական տարբերակներն են.

  1. Ուղղակի քարտեզագրված քեշ - քեշի որոշակի հատվածը պատասխանատու է RAM-ի որոշակի հատվածի համար
  2. Լիովին ասոցիատիվ քեշ - քեշի ցանկացած մաս կարող է կապված լինել RAM-ի ցանկացած մասի հետ
  3. Խառը քեշ (հավաքածու-ասոցիատիվ)

Քեշի տարբեր մակարդակները սովորաբար կարող են օգտագործել քեշի ասոցիատիվության տարբեր ճարտարապետություններ: Ուղղակի քարտեզագրված RAM-ի քեշավորումը ամենաարագ քեշավորման տարբերակն է, ուստի այս ճարտարապետությունը սովորաբար օգտագործվում է մեծ քեշերի համար: Իր հերթին, լիովին ասոցիատիվ քեշն ունի ավելի քիչ քեշի սխալներ (վրիպումներ):

Եզրակացություն

Այս հոդվածում դուք ծանոթացաք քեշի հիշողության հայեցակարգին, քեշի հիշողության ճարտարապետությանը և քեշավորման մեթոդներին և իմացաք, թե ինչպես է այն ազդում ժամանակակից համակարգչի աշխատանքի վրա: Քեշի հիշողության առկայությունը կարող է զգալիորեն օպտիմիզացնել պրոցեսորի աշխատանքը, նվազեցնել դրա անգործության ժամանակը և, հետևաբար, բարձրացնել ամբողջ համակարգի աշխատանքը:

biosgid.ru

Պրոցեսորային քեշի էֆեկտների պատկերասրահ

Գրեթե բոլոր մշակողները գիտեն, որ պրոցեսորի քեշը փոքր, բայց արագ հիշողություն է, որը պահում է տվյալներ վերջերս այցելած հիշողության տարածքներից. սահմանումը կարճ է և բավականին ճշգրիտ: Այնուամենայնիվ, քեշի մեխանիզմների մասին ձանձրալի մանրամասները իմանալը անհրաժեշտ է հասկանալու համար այն գործոնները, որոնք ազդում են կոդի աշխատանքի վրա:

Այս հոդվածում մենք կանդրադառնանք մի շարք օրինակների, որոնք ցույց են տալիս քեշի տարբեր առանձնահատկությունները և դրանց ազդեցությունը կատարման վրա: Օրինակները կլինեն C#-ում, լեզվի և հարթակի ընտրությունը մեծապես չի ազդում կատարողականի գնահատման և վերջնական եզրակացությունների վրա: Բնականաբար, ողջամիտ սահմաններում, եթե դուք ընտրում եք այնպիսի լեզու, որում զանգվածից արժեք կարդալը համարժեք է հեշ աղյուսակին մուտք գործելուն, դուք որևէ մեկնաբանելի արդյունք չեք ստանա: Թարգմանչի գրառումները շեղատառ են։

Habracut - - -

Օրինակ 1. Հիշողության հասանելիություն և կատարողականություն
Ի՞նչ եք կարծում, որքա՞ն ավելի արագ է երկրորդ ցիկլը, քան առաջինը: int arr = նոր int;

For (int i = 0; i // second for (int i = 0; i Օրինակ 2. քեշի գծերի ազդեցությունը Եկեք ավելի խորանանք - փորձեք այլ քայլ արժեքներ, ոչ միայն 1 և 16: for (int i = 0; i

Խնդրում ենք նկատի ունենալ, որ 1-ից 16 քայլ արժեքների դեպքում գործառնական ժամանակը գործնականում մնում է անփոփոխ: Բայց 16-ից մեծ արժեքների դեպքում աշխատանքի ժամանակը նվազում է մոտ կեսով ամեն անգամ, երբ մենք կրկնապատկում ենք քայլը: Սա չի նշանակում, որ օղակը ինչ-որ կերպ կախարդական կերպով սկսում է ավելի արագ աշխատել, պարզապես կրկնությունների թիվը նույնպես նվազում է: Հիմնական կետը նույն գործառնական ժամանակն է 1-ից 16 քայլ արժեքներով:

Դրա պատճառն այն է, որ ժամանակակից պրոցեսորները հիշողության մեջ չեն մտնում մեկ բայթ, այլ փոքր բլոկների մեջ, որոնք կոչվում են քեշի տողեր: Սովորաբար տողի չափը 64 բայթ է: Երբ դուք կարդում եք որևէ արժեք հիշողությունից, քեշի առնվազն մեկ տող մտնում է քեշ: Այս շարքից ցանկացած արժեքի հետագա մուտքը շատ արագ է: Քանի որ 16 int արժեքները զբաղեցնում են 64 բայթ, 1-ից 16 քայլերով օղակները մուտք են գործում նույն թվով քեշի տողեր, ավելի ճիշտ՝ զանգվածի բոլոր քեշի տողերը: 32-րդ քայլում մուտքը տեղի է ունենում յուրաքանչյուր երկրորդ տողում, 64-րդ քայլում՝ յուրաքանչյուր չորրորդ: Սա հասկանալը շատ կարևոր է որոշ օպտիմալացման տեխնիկայի համար: Դրան մուտքերի քանակը կախված է հիշողության մեջ գտնվող տվյալների գտնվելու վայրից: Օրինակ, չհավասարեցված տվյալները կարող են պահանջել երկու մուտք դեպի հիմնական հիշողություն՝ մեկի փոխարեն: Ինչպես պարզեցինք վերևում, գործառնական արագությունը երկու անգամ ցածր կլինի:

Օրինակ 3. 1-ին և 2-րդ մակարդակների քեշի չափերը (L1 և L2)
Ժամանակակից պրոցեսորները սովորաբար ունեն երկու կամ երեք մակարդակի քեշ, որոնք սովորաբար կոչվում են L1, L2 և L3: Տարբեր մակարդակներում քեշերի չափերը պարզելու համար կարող եք օգտագործել CoreInfo կոմունալ կամ Windows API ֆունկցիան GetLogicalProcessorInfo: Երկու մեթոդները նաև տեղեկատվություն են տրամադրում յուրաքանչյուր մակարդակի քեշի տողի չափի մասին: Իմ մեքենայի վրա CoreInfo-ն հաղորդում է 32 ԿԲ L1 տվյալների քեշ, 32 ԿԲ L1 հրահանգների քեշ և 4 ՄԲ L2 տվյալների քեշ: Յուրաքանչյուր միջուկ ունի իր անձնական L1 քեշերը, L2 քեշերը սովորական են յուրաքանչյուր զույգ միջուկի համար. Տրամաբանական պրոցեսոր դեպի Cache Map. *--- Data Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64 *--- Instruction Cache: 0, Level 1, 32 KB, Assoc 8, LineSize 64 --*-- Data Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64 --*-- Instruction Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64 ** -- Unified Cache 0, Level 2, 4 MB, Assoc 16, LineSize 64 --*- Data Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64 --*- Instruction Cache 2, Level 1, 32 KB, Assoc 8, LineSize 64 ---* Data Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64 ---* Instruction Cache 3, Level 1, 32 KB, Assoc 8, LineSize 64 --** Unified Cache 1 , Level 2, 4 MB, Assoc 16, LineSize 64 Եկեք ստուգենք այս տեղեկատվությունը փորձնականորեն: Դա անելու համար եկեք անցնենք մեր զանգվածի միջով՝ ավելացնելով յուրաքանչյուր 16-րդ արժեքը՝ յուրաքանչյուր քեշի տողում տվյալները փոխելու հեշտ միջոց: Երբ հասնում ենք ավարտին, վերադառնում ենք սկզբին։ Եկեք ստուգենք զանգվածի տարբեր չափերը, մենք պետք է տեսնենք կատարողականի անկում, երբ զանգվածն այլևս չի տեղավորվում տարբեր մակարդակների քեշերում: Կոդն է՝ int քայլեր = 64 * 1024 * 1024; // կրկնությունների քանակը int lengthMod = arr.Length - 1; // զանգվածի չափ - երկուսի հզորություն

համար (int i = 0; i (

// x & lengthMod = x % arr.Length, քանի որ երկուսի ուժերը

Arr[(i * 16) & lengthMod]++; ) Փորձարկման արդյունքներ.

Իմ մեքենայի վրա նկատելի անկումներ կան 32 ԿԲ և 4 ՄԲ-ից հետո. սրանք L1 և L2 քեշերի չափերն են:

Օրինակ 4. Հրահանգների զուգահեռություն
Հիմա եկեք նայենք մեկ այլ բանի: Ձեր կարծիքով, այս երկու օղակներից որն ավելի արագ կգործի: int քայլեր = 256 * 1024 * 1024; int a = նոր int;

For (int i = 0; i // second for (int i = 0; i Օրինակ 5. քեշի ասոցիատիվություն Հիմնական հարցերից մեկը, որին պետք է պատասխանել քեշը նախագծելիս, այն է, թե արդյոք որոշակի հիշողության տարածքից տվյալները կարող են պահվել որևէ մեկում: քեշի բջիջները կամ միայն դրանցից մի քանիսը Երեք հնարավոր լուծումներ.

  1. Ուղղակի քարտեզագրված քեշը, RAM-ի յուրաքանչյուր քեշի տողի տվյալները պահվում են միայն մեկ կանխորոշված ​​քեշի վայրում: Քարտեզագրումը հաշվարկելու ամենապարզ ձևն է՝ row_index_in_memory % number_of_cache_cells: Երկու տող, որոնք քարտեզագրված են նույն բջիջում, չեն կարող միաժամանակ լինել քեշում:
  2. N-մուտք մասնակի ասոցիատիվ քեշ, յուրաքանչյուր տող կարող է պահվել N տարբեր քեշի վայրերում: Օրինակ, 16 մուտքի քեշում տողը կարող է պահվել խումբը կազմող 16 բջիջներից մեկում: Սովորաբար, ինդեքսների հավասար քիչ նշանակալի բիթերով տողերը կիսում են մեկ խումբ:
  3. Լիովին ասոցիատիվ քեշ, ցանկացած տող կարող է պահվել ցանկացած քեշի վայրում: Լուծումն իր վարքով համարժեք է հեշ աղյուսակին:
Ուղղակի քարտեզագրված քեշերը հակված են վիճաբանության, օրինակ, երբ երկու տողերը մրցում են նույն բջիջի համար, հերթափոխով միմյանց վտարում են քեշից, արդյունավետությունը շատ ցածր է: Մյուս կողմից, լիովին ասոցիատիվ քեշերը, թեև զերծ են այս թերությունից, բայց շատ բարդ և թանկ են ներդրման համար: Մասամբ ասոցիատիվ քեշերը տիպիկ փոխզիջում են իրականացման բարդության և արդյունավետության միջև: Օրինակ, իմ մեքենայի վրա 4 ՄԲ L2 քեշը 16 մուտքով մասնակի ասոցիատիվ քեշ է: Ամբողջ RAM-ը բաժանված է գծերի խմբերի՝ ըստ իրենց ինդեքսների նվազագույն նշանակալի բիթերի, յուրաքանչյուր հավաքածուից տողերը մրցում են 16 L2 քեշ բջիջներից բաղկացած մեկ խմբի համար:

Քանի որ L2 քեշն ունի 65,536 բջիջ (4 * 220 / 64), և յուրաքանչյուր խումբ բաղկացած է 16 բջիջներից, մենք ընդհանուր առմամբ ունենք 4,096 խումբ: Այսպիսով, տողերի ինդեքսի ստորին 12 բիթերը որոշում են, թե որ խմբին է պատկանում այս տողը (212 = 4096): Արդյունքում, 262,144-ի (4,096 * 64) բազմապատիկ հասցեներով տողերը կիսում են 16 բջիջներից բաղկացած նույն խումբը և մրցում են դրանում տարածության համար:

Որպեսզի ասոցիատիվության էֆեկտներն ուժի մեջ մտնեն, մենք պետք է անընդհատ մուտք գործենք մեծ թվով տողեր նույն խմբից, օրինակ՝ օգտագործելով հետևյալ կոդը՝ հանրային ստատիկ երկար UpdateEveryKthByte(byte arr, int K) (

const int rep = 1024 * 1024; // կրկնությունների քանակը

Վայրկյանաչափ sw = Stopwatch.StartNew();

For (int i = 0; i p += K; if (p >= arr.Length) p = 0; ) sw.Stop();

վերադարձնել sw.ElapsedMilliseconds;

) Մեթոդը մեծացնում է զանգվածի յուրաքանչյուր Kth տարրը: Երբ հասնում ենք ավարտին, նորից սկսում ենք։ Բավականին մեծ թվով կրկնություններից հետո (220) կանգ ենք առնում։ Ես կատարեցի տարբեր չափերի զանգվածների և K քայլի արժեքների վազք (կապույտ - երկար ժամանակ, սպիտակ - կարճ):

Կապույտ տարածքները համապատասխանում են այն դեպքերին, երբ տվյալների մշտական ​​փոփոխություններով քեշը չի կարողանում միաժամանակ տեղավորել բոլոր պահանջվող տվյալները: Պայծառ Կապույտ գույնխոսում է մոտ 80 մվ գործառնական ժամանակի մասին, գրեթե սպիտակը՝ 10 մվ։

Եկեք զբաղվենք կապույտ տարածքներով.

  1. Ինչու են առաջանում ուղղահայաց գծեր: Ուղղահայաց գծերը համապատասխանում են քայլերի արժեքներին, որոնց դեպքում մուտք են գործում մեկ խմբի չափից շատ տողեր (ավելի քան 16): Այս արժեքների համար իմ մեքենայի 16 մուտքի քեշը չի կարող տեղավորել բոլոր անհրաժեշտ տվյալները:

    Վատ քայլի որոշ արժեքներ երկուսի հզորություններն են՝ 256 և 512: Օրինակ, հաշվի առեք քայլ 512 և 8 ՄԲ զանգված: Այս քայլով զանգվածում կա 32 բաժին (8 * 220 / 262,144), որոնք մրցում են միմյանց հետ 512 քեշ խմբերի բջիջների համար (262,144 / 512): Կան 32 բաժիններ, բայց յուրաքանչյուր խմբի համար քեշում կա ընդամենը 16 բջիջ, ուստի բոլորի համար բավարար տարածք չկա:

    Քայլի մյուս արժեքները, որոնք երկուսի հզորություն չեն, պարզապես անհաջող են, ինչը մեծ թվով հարվածներ է առաջացնում նույն քեշի խմբերին, ինչպես նաև հանգեցնում է նկարում ուղղահայաց կապույտ գծերի տեսքին: Այս պահին թվերի տեսության սիրահարները հրավիրվում են մտածելու։

  2. Ինչու՞ են ուղղահայաց գծերը կոտրվում 4 ՄԲ սահմանում: Երբ զանգվածի չափը 4 ՄԲ է կամ ավելի քիչ, 16 մուտքի քեշն իրեն պահում է ամբողջությամբ ասոցիատիվ քեշի պես, այսինքն՝ այն կարող է առանց հակասությունների տեղավորել զանգվածի բոլոր տվյալները: Մեկ քեշ խմբի համար պայքարում է ոչ ավելի, քան 16 տարածք (262,144 * 16 = 4 * 220 = 4 ՄԲ):
  3. Ինչու է վերևի ձախ մասում մեծ կապույտ եռանկյունի: Քանի որ փոքր քայլով և մեծ զանգվածով քեշը չի կարողանում տեղավորել բոլոր անհրաժեշտ տվյալները։ Քեշի ասոցիատիվության աստիճանն այստեղ երկրորդական դեր է խաղում, սահմանափակումը կապված է L2 քեշի չափի հետ։ Օրինակ՝ 16 ՄԲ զանգվածի չափով և 128 քայլով մենք մուտք ենք գործում յուրաքանչյուր 128-րդ բայթը՝ այդպիսով փոփոխելով զանգվածի յուրաքանչյուր երկրորդ քեշի տողը: Քեշում յուրաքանչյուր երկրորդ տողը պահելու համար ձեզ հարկավոր է 8 ՄԲ քեշ, բայց իմ մեքենայի վրա ես ունեմ ընդամենը 4 ՄԲ:

    Եթե ​​նույնիսկ քեշը լիներ ամբողջությամբ ասոցիատիվ, այն թույլ չէր տա, որ 8 ՄԲ տվյալներ պահվեն դրանում: Նկատի ունեցեք, որ արդեն քննարկված օրինակում՝ 512 քայլով և 8 ՄԲ զանգվածի չափով, մեզ անհրաժեշտ է ընդամենը 1 ՄԲ քեշ՝ բոլոր անհրաժեշտ տվյալները պահելու համար, բայց դա անհնար է քեշի անբավարար ասոցիատիվության պատճառով:

  4. Ինչու՞ է եռանկյան ձախ կողմն աստիճանաբար ինտենսիվություն ստանում: Առավելագույն ինտենսիվությունը տեղի է ունենում 64 բայթ քայլ արժեքի դեպքում, որը հավասար է քեշի գծի չափին: Ինչպես տեսանք առաջին և երկրորդ օրինակներում, նույն շարքի հաջորդական մուտքը գրեթե ոչինչ չի արժենում: Ենթադրենք, 16 բայթ քայլով մենք ունենք հիշողության չորս մուտք՝ մեկի գնով։ Քանի որ կրկնությունների թիվը մեր թեստում նույնն է ցանկացած քայլի արժեքի համար, ավելի էժան քայլը հանգեցնում է գործարկման ավելի քիչ ժամանակի:
Հայտնաբերված էֆեկտները պահպանվում են մեծ պարամետրերի արժեքներում.

Քեշի ասոցիատիվությունը հետաքրքիր բան է, որը կարող է դրսևորվել որոշակի պայմաններում: Ի տարբերություն այս հոդվածում քննարկված մյուս խնդիրների, այն այնքան էլ լուրջ չէ։ Դա հաստատ այն բանը չէ, որ մշտական ​​ուշադրություն է պահանջում ծրագրեր գրելիս:

Օրինակ 6. կեղծ քեշի բաժանում
Բազմամիջուկ մեքենաներում դուք կարող եք հանդիպել մեկ այլ խնդրի՝ քեշի համախմբվածություն: Պրոցեսորային միջուկներն ունեն մասամբ կամ ամբողջությամբ առանձին քեշեր: Իմ մեքենայի վրա L1 քեշերը առանձին են (ինչպես միշտ), և կան նաև երկու L2 քեշեր, որոնք կիսում են յուրաքանչյուր զույգ միջուկը: Մանրամասները կարող են տարբեր լինել, բայց ընդհանուր առմամբ, ժամանակակից բազմամիջուկ պրոցեսորներն ունեն բազմաստիճան հիերարխիկ քեշեր: Ավելին, ամենաարագ, բայց նաև ամենափոքր քեշերը պատկանում են առանձին միջուկներին։

Երբ մի միջուկը փոփոխում է արժեքն իր քեշում, մյուս միջուկներն այլևս չեն կարող օգտագործել հին արժեքը: Այլ միջուկների քեշերում արժեքը պետք է թարմացվի: Ավելին, քեշի ամբողջ գիծը պետք է թարմացվի, քանի որ քեշերը գործում են գծի մակարդակի տվյալների վրա:

Եկեք ցույց տանք այս խնդիրը հետևյալ կոդով. private static int s_counter = new int;

մասնավոր void UpdateCounter (int դիրք)

{

համար (int j = 0; j (s_counter = s_counter + 3; )

Եթե ​​իմ չորս միջուկային մեքենայի վրա ես այս մեթոդը կոչեմ 0, 1, 2, 3 պարամետրերով միաժամանակ չորս թելերից, ապա գործարկման ժամանակը կկազմի 4,3 վայրկյան: Բայց եթե ես կոչեմ մեթոդը 16, 32, 48, 64 պարամետրերով, ապա գործարկման ժամանակը կլինի ընդամենը 0,28 վայրկյան: Ինչո՞ւ։ Առաջին դեպքում, բոլոր չորս արժեքները, որոնք մշակվում են թելերով ցանկացած պահի, հավանաբար կհայտնվեն մեկ քեշի տողում: Ամեն անգամ, երբ մեկ միջուկը մեծացնում է արժեքը, այն նշում է քեշի բջիջները, որոնք պարունակում են այդ արժեքը այլ միջուկներում որպես անվավեր: Այս գործողությունից հետո մնացած բոլոր միջուկները պետք է նորից պահեն գիծը: Սա քեշավորման մեխանիզմը դարձնում է անգործունակ՝ սպանելով կատարողականը:

Օրինակ 7. Սարքավորումների բարդություն
Նույնիսկ հիմա, երբ քեշի շահագործման սկզբունքները ձեզ համար գաղտնիք չեն, սարքավորումը դեռ ձեզ անակնկալներ է մատուցելու։ Պրոցեսորները միմյանցից տարբերվում են օպտիմալացման մեթոդներով, էվրիստիկայով և իրականացման այլ նրբություններով:

Որոշ պրոցեսորների L1 քեշը կարող է զուգահեռաբար մուտք գործել երկու բջիջ, եթե դրանք պատկանում են տարբեր խմբեր, բայց եթե դրանք վերաբերում են մեկին, ապա միայն հաջորդաբար։ Որքան գիտեմ, ոմանք կարող են նույնիսկ զուգահեռաբար մուտք գործել նույն բջիջի տարբեր հատվածներ:

Պրոցեսորները կարող են զարմացնել ձեզ խելացի օպտիմալացումներով: Օրինակ, կեղծ քեշի փոխանակման մասին նախորդ օրինակի կոդը չի աշխատում իմ տնային համակարգչի վրա, ինչպես նախատեսված էր. ամենապարզ դեպքերում պրոցեսորը կարող է օպտիմալացնել աշխատանքը և նվազեցնել բացասական ազդեցությունները: Եթե ​​մի փոքր փոփոխեք կոդը, ամեն ինչ իր տեղը կընկնի։ Ահա ևս մեկ տարօրինակ ապարատային տարօրինակությունների օրինակ. մասնավոր ստատիկ ներդիրներ A, B, C, D, E, F, G;

մասնավոր ստատիկ դատարկ տարօրինակություն ()

{

for (int i = 0; i ( ) ) Եթե դուք փոխարինում եք երեք տարբեր տարբերակներ, կարող եք ստանալ հետևյալ արդյունքները.

A, B, C, D դաշտերի ավելացումը ավելի երկար է տևում, քան A, C, E, G դաշտերի ավելացումը: Առավել տարօրինակն այն է, որ A և C դաշտերի ավելացումը ավելի երկար է տևում, քան A, C և E, G դաշտերը: Չգիտեմ վստահ եմ, թե որոնք են դրա պատճառները, բայց միգուցե դրանք կապված են հիշողության բանկերի հետ (այո, սովորական երեք լիտրանոց խնայողական հիշողության բանկերով, և ոչ այն, ինչ դուք մտածում էիք): Եթե ​​այս հարցի վերաբերյալ որևէ կարծիք ունեք, խնդրում ենք արտահայտվել մեկնաբանություններում:

Իմ մեքենայի վրա վերը նշվածը չի նկատվում, այնուամենայնիվ, երբեմն լինում են աննորմալ վատ արդյունքներ. ամենայն հավանականությամբ, առաջադրանքների ժամանակացույցը կատարում է իր «ճշգրտումները»:

Այս օրինակից քաղված դասն այն է, որ շատ դժվար է ամբողջությամբ կանխատեսել սարքաշարի վարքագիծը: Այո, դուք կարող եք շատ բան կանխատեսել, բայց դուք պետք է անընդհատ հաստատեք ձեր կանխատեսումները չափումների և փորձարկման միջոցով:

Եզրակացություն
Հուսով եմ, որ վերևում քննարկված ամեն ինչ օգնեց ձեզ հասկանալ պրոցեսորի քեշերի դիզայնը: Այժմ դուք կարող եք գործնականում կիրառել այս գիտելիքները՝ ձեր կոդը օպտիմալացնելու համար: * Աղբյուրի կոդը ընդգծվել է Source Code Highlighter-ով: Tags:

Որքանո՞վ է կարևոր L3 քեշը AMD պրոցեսորների համար:

Իրոք, իմաստ ունի բազմամիջուկ պրոցեսորները համալրել հատուկ հիշողությամբ, որը կօգտագործվի բոլոր առկա միջուկների համար: Այս դերում արագ երրորդ մակարդակի (L3) քեշը կարող է զգալիորեն արագացնել մուտքը դեպի այն տվյալները, որոնք ամենից հաճախ պահանջվում են: Այնուհետև միջուկները, հնարավորության դեպքում, ստիպված չեն լինի մուտք գործել դանդաղ հիմնական հիշողություն (RAM):

Գոնե տեսականորեն։ AMD-ը վերջերս հայտարարեց Athlon II X4 պրոցեսորի մասին, որը Phenom II X4-ի մոդելն է՝ առանց L3 քեշի, ակնարկելով, որ դա այնքան էլ անհրաժեշտ չէ։ Մենք որոշեցինք ուղղակիորեն համեմատել երկու պրոցեսորներ (L3 cache-ով և առանց) ստուգելու, թե ինչպես է քեշը ազդում աշխատանքի վրա:

Ինչպե՞ս է աշխատում քեշը:

Նախքան թեստերի մեջ մտնելը, կարևոր է հասկանալ որոշ հիմունքներ: Քեշի աշխատանքի սկզբունքը բավականին պարզ է. Քեշը բուֆերացնում է տվյալները հնարավորինս մոտ պրոցեսորի մշակման միջուկներին՝ CPU-ի հարցումները նվազեցնելու ավելի հեռավոր և դանդաղ հիշողության մեջ: Ժամանակակից աշխատասեղանի հարթակներում քեշի հիերարխիան ներառում է երեք մակարդակ, որոնք նախորդում են RAM-ի հասանելիությանը: Ավելին, երկրորդ և, մասնավորապես, երրորդ մակարդակների քեշերը ծառայում են ոչ միայն տվյալների բուֆերացմանը։ Նրանց նպատակն է կանխել պրոցեսորային ավտոբուսի ծանրաբեռնվածությունը, երբ միջուկները պետք է տեղեկատվություն փոխանակեն:

Հարվածներ և բաց թողած

Քեշի ճարտարապետության արդյունավետությունը չափվում է հարվածների արագությամբ: Տվյալների հարցումները, որոնք կարող են բավարարվել քեշի կողմից, համարվում են հիթեր: Եթե ​​այս քեշը չի պարունակում անհրաժեշտ տվյալներ, ապա հարցումը փոխանցվում է հիշողության խողովակաշարի երկայնքով, և բաց թողնվածը հաշվվում է: Իհարկե, բացթողումները հանգեցնում են տեղեկատվություն ստանալու համար պահանջվող ավելի շատ ժամանակի: Արդյունքում հաշվողական խողովակաշարում հայտնվում են «պղպջակներ» (անգործություն) և ուշացումներ։ Հիթերը, ընդհակառակը, թույլ են տալիս պահպանել առավելագույն կատարումը:

Քեշի մուտքագրում, բացառիկություն, համախմբվածություն

Փոխարինման քաղաքականությունը թելադրում է, թե ինչպես է քեշը ազատվում նոր մուտքերի համար: Քանի որ քեշում գրված տվյալները պետք է ի վերջո հայտնվեն հիմնական հիշողության մեջ, համակարգերը կարող են դա անել քեշում գրելու հետ միաժամանակ (գրելու միջոցով) կամ կարող են նշել տվյալների տարածքները որպես «կեղտոտ» (գրել հետ) և գրել հիշողությունը, երբ այն հանվում է քեշից:

Քեշի մի քանի մակարդակներում տվյալները կարող են պահվել բացառապես, այսինքն՝ առանց ավելորդության: Այնուհետև դուք չեք գտնի տվյալների նույն տողերը երկու տարբեր քեշի հիերարխիայում: Կամ քեշերը կարող են ներառականորեն աշխատել, այսինքն՝ քեշի ստորին մակարդակները երաշխավորված են, որ կպարունակեն տվյալներ վերին քեշի մակարդակներում (ավելի մոտ պրոցեսորի միջուկին): AMD Phenom-ն օգտագործում է բացառիկ L3 քեշ, մինչդեռ Intel-ը հետևում է ներառական քեշի ռազմավարությանը: Համապատասխանության արձանագրությունները ապահովում են տվյալների ամբողջականությունն ու թարմությունը տարբեր միջուկների, քեշի մակարդակների և նույնիսկ պրոցեսորների միջև:

Քեշի չափը

Ավելի մեծ քեշը կարող է ավելի շատ տվյալներ պահել, բայց հակված է մեծացնել հետաձգումը: Բացի այդ, մեծ քեշը սպառում է զգալի թվով պրոցեսորային տրանզիստորներ, ուստի կարևոր է հավասարակշռություն գտնել տրանզիստորի բյուջեի, չափի, էներգիայի սպառման և կատարողականի/ուշացման միջև:

Ասոցիատիվություն

RAM-ի մուտքերը կարող են ուղղակիորեն քարտեզագրվել քեշին, այսինքն՝ կա միայն մեկ քեշի դիրք RAM-ի տվյալների պատճենի համար, կամ դրանք կարող են լինել n-way ասոցիատիվ, այսինքն՝ քեշում կա n հնարավոր տեղ, որտեղ սա տվյալները կարող են պահպանվել: Ասոցիատիվության ավելի բարձր աստիճանները (մինչև լիովին ասոցիատիվ քեշերը) ապահովում են քեշավորման ավելի մեծ ճկունություն, քանի որ քեշում առկա տվյալները վերագրանցման կարիք չունեն: Այլ կերպ ասած, ասոցիատիվության բարձր n-աստիճանը երաշխավորում է հարվածների ավելի բարձր մակարդակ, բայց այն նաև մեծացնում է հետաձգումը, քանի որ ավելի շատ ժամանակ է պահանջվում այդ բոլոր ասոցիացիաները հարվածի համար ստուգելու համար: Սովորաբար, կապի ամենաբարձր աստիճանը ողջամիտ է քեշավորման վերջին մակարդակի համար, քանի որ այնտեղ հասանելի է առավելագույն հզորությունը, և այս քեշից դուրս տվյալներ որոնելը կհանգեցնի նրան, որ պրոցեսորը կմտնի դանդաղ RAM:

Ահա մի քանի օրինակներ. Core i5-ը և i7-ը օգտագործում են 32 ԿԲ L1 քեշ՝ 8-ուղիով ասոցիատիվությամբ տվյալների համար և 32 ԿԲ L1 քեշ՝ 4-ուղիով ասոցիատիվությամբ հրահանգների համար: Հասկանալի է, որ Intel-ը ցանկանում է, որ հրահանգները հասանելի լինեն ավելի արագ, իսկ L1 տվյալների քեշն ունենա առավելագույն հարվածի արագություն: Intel պրոցեսորների վրա L2 քեշն ունի 8-ուղի ասոցիատիվություն, իսկ Intel L3 քեշը նույնիսկ ավելի խելացի է, քանի որ այն իրականացնում է 16-ուղի ասոցիատիվություն՝ առավելագույնի հասցնելու հիթերը:

Այնուամենայնիվ, AMD-ն այլ ռազմավարություն է հետևում Phenom II X4 պրոցեսորների հետ կապված, որոնք օգտագործում են երկկողմանի ասոցիատիվ L1 քեշ՝ ուշացումը նվազեցնելու համար: Հնարավոր բացթողումները փոխհատուցելու համար քեշի հզորությունը կրկնապատկվեց՝ 64 ԿԲ տվյալների համար և 64 ԿԲ՝ հրահանգների համար: L2 քեշն ունի 8-ուղի ասոցիատիվություն, ինչպես Intel-ի դիզայնը, բայց AMD-ի L3 քեշը գործում է 48-ուղի ասոցիատիվությամբ: Բայց մի քեշի ճարտարապետությունը մյուսի փոխարեն ընտրելու որոշումը չի կարող գնահատվել առանց CPU-ի ամբողջ ճարտարապետությունը հաշվի առնելու: Միանգամայն բնական է, որ թեստի արդյունքները գործնական նշանակություն ունեն, և մեր նպատակը հենց այս ամբողջ բարդ բազմաստիճան քեշավորման կառուցվածքի գործնական փորձարկումն էր:

Պրոցեսորի արդյունավետությունը մեծացնող կարևոր գործոններից մեկը քեշի հիշողության առկայությունն է, ավելի ճիշտ՝ դրա ծավալը, մուտքի արագությունը և մակարդակների միջև բաշխումը:

Արդեն բավական ժամանակ է, ինչ գրեթե բոլոր պրոցեսորները համալրված են այս տեսակի հիշողությամբ, ինչը ևս մեկ անգամ ապացուցում է դրա առկայության օգտակարությունը։ Այս հոդվածում մենք կխոսենք քեշի հիշողության կառուցվածքի, մակարդակների և գործնական նպատակի մասին, ինչը շատ կարևոր է։ պրոցեսորի բնութագրերը.

Ինչ է քեշ հիշողությունը և դրա կառուցվածքը

Քեշ հիշողությունը չափազանց արագ հիշողություն է, որն օգտագործվում է պրոցեսորի կողմից՝ ժամանակավորապես պահելու այն տվյալները, որոնք առավել հաճախ են մուտք գործում: Ահա թե ինչպես կարելի է համառոտ նկարագրել հիշողության այս տեսակը։

Քեշ հիշողությունը կառուցված է flip-flops-ների վրա, որոնք, իրենց հերթին, բաղկացած են տրանզիստորներից։ Տրանզիստորների խումբը շատ ավելի մեծ տարածք է զբաղեցնում, քան նույն կոնդենսատորները, որոնք կազմում են RAM. Սա բերում է արտադրության մեջ բազմաթիվ դժվարությունների, ինչպես նաև ծավալի սահմանափակումների։ Այդ իսկ պատճառով քեշ հիշողությունը շատ թանկ հիշողություն է, մինչդեռ ունենալով չնչին ծավալներ։ Բայց այս կառուցվածքից է գալիս նման հիշողության հիմնական առավելությունը՝ արագությունը։ Քանի որ ֆլիպ-ֆլոպները ռեգեներացիայի կարիք չունեն, և այն դարպասի հետաձգման ժամանակը, որի վրա դրանք հավաքվում են, փոքր է, ֆլիպֆլոպը մի վիճակից մյուսը անցնելու ժամանակը շատ արագ է տեղի ունենում: Սա թույլ է տալիս քեշի հիշողությանը աշխատել նույն հաճախականությամբ, ինչ ժամանակակից պրոցեսորները:

Նաև կարևոր գործոն է քեշի հիշողության տեղադրումը։ Այն գտնվում է հենց պրոցեսորի չիպի վրա, ինչը զգալիորեն նվազեցնում է մուտքի ժամանակը։ Նախկինում որոշ մակարդակների քեշ հիշողությունը գտնվում էր պրոցեսորի չիպի սահմաններից դուրս՝ հատուկ SRAM չիպի վրա, ինչ-որ տեղ մայր տախտակի վրա: Այժմ գրեթե բոլոր պրոցեսորներն ունեն քեշ հիշողություն, որը գտնվում է պրոցեսորի չիպի վրա:


Ինչի համար է օգտագործվում պրոցեսորի քեշը:

Ինչպես նշվեց վերևում, քեշի հիշողության հիմնական նպատակը պրոցեսորի կողմից հաճախ օգտագործվող տվյալների պահպանումն է: Քեշը բուֆեր է, որի մեջ բեռնվում են տվյալները, և չնայած դրա փոքր չափին (մոտ 4-16 ՄԲ) ժամանակակից պրոցեսորներ, այն զգալի արդյունավետություն է հաղորդում ցանկացած հավելվածում:

Քեշի հիշողության անհրաժեշտությունը ավելի լավ հասկանալու համար եկեք պատկերացնենք համակարգչի հիշողությունը գրասենյակի նման կազմակերպելը: RAM-ը կլինի պահարան՝ թղթապանակներով, որոնց հաշվապահը պարբերաբար մուտք է գործում տվյալների մեծ բլոկներ (այսինքն՝ թղթապանակներ) առբերելու համար: Իսկ աղյուսակը կլինի քեշ հիշողություն:

Հաշվապահի գրասեղանի վրա դրված են տարրեր, որոնց նա մի քանի անգամ անդրադառնում է մեկ ժամվա ընթացքում։ Օրինակ, դրանք կարող են լինել հեռախոսահամարներ, փաստաթղթերի որոշ օրինակներ: Այս տեսակի տեղեկատվությունը տեղադրված է հենց սեղանի վրա, ինչը, իր հերթին, մեծացնում է դրանց մուտքի արագությունը։

Նույն կերպ, տվյալ մեծ տվյալների բլոկներից (թղթապանակներից) տվյալները կարող են ավելացվել աղյուսակին՝ արագ օգտագործման համար, օրինակ՝ փաստաթուղթ: Երբ այս փաստաթուղթն այլևս անհրաժեշտ չէ, այն նորից տեղադրվում է պահարանում (RAM), դրանով իսկ մաքրելով աղյուսակը (քեշի հիշողությունը) և ազատելով այս աղյուսակը նոր փաստաթղթերի համար, որոնք կօգտագործվեն հաջորդ ժամանակահատվածում:

Նաև քեշի հիշողության դեպքում, եթե կա որևէ տվյալ, որն ամենայն հավանականությամբ նորից հասանելի կլինի, ապա RAM-ից այս տվյալները բեռնվում են քեշ հիշողության մեջ: Շատ հաճախ դա տեղի է ունենում՝ համատեղ բեռնելով այն տվյալները, որոնք ամենայն հավանականությամբ կօգտագործվեն ընթացիկ տվյալներից հետո: Այսինքն՝ կան ենթադրություններ, թե ինչ է օգտագործվելու «հետո»։ Սրանք են գործառնական բարդ սկզբունքները:

Պրոցեսորի քեշի մակարդակները

Ժամանակակից պրոցեսորները հագեցած են քեշով, որը հաճախ բաղկացած է 2 կամ 3 մակարդակից։ Իհարկե, կան բացառություններ, բայց հաճախ այդպես է լինում։

Ընդհանուր առմամբ, կարող են լինել հետևյալ մակարդակները՝ L1 (առաջին մակարդակ), L2 (երկրորդ մակարդակ), L3 (երրորդ մակարդակ): Հիմա մի փոքր ավելի մանրամասն դրանցից յուրաքանչյուրի մասին.

Առաջին մակարդակի քեշ (L1)– քեշի ամենաարագ հիշողության մակարդակը, որն աշխատում է անմիջապես պրոցեսորի միջուկի հետ, այս ամուր փոխազդեցության շնորհիվ այս մակարդակն ունի ամենակարճ մուտքի ժամանակը և աշխատում է պրոցեսորին մոտ հաճախականություններով: Այն բուֆեր է պրոցեսորի և երկրորդ մակարդակի քեշի միջև։

Մենք կդիտարկենք ծավալները պրոցեսորի վրա բարձր մակարդակ Intel Core i7-3770K-ի կատարումը: Այս պրոցեսորը հագեցած է 4x32 KB L1 cache 4 x 32 KB = 128 KB: (32 ԿԲ մեկ միջուկի համար)

Երկրորդ մակարդակի քեշ (L2)– երկրորդ մակարդակն ավելի լայնածավալ է, քան առաջինը, բայց արդյունքում ունի ավելի ցածր «արագության բնութագրեր»: Համապատասխանաբար, այն ծառայում է որպես բուֆեր L1 և L3 մակարդակների միջև: Եթե ​​նորից նայենք մեր Core i7-3770 K օրինակին, ապա L2 քեշի հիշողության չափը 4x256 ԿԲ = 1 ՄԲ է:

3-րդ մակարդակի քեշ (L3)– երրորդ մակարդակը, կրկին, ավելի դանդաղ է, քան նախորդ երկուսը: Բայց դա դեռ շատ ավելի արագ է, քան RAM-ը: L3 քեշի չափը i7-3770K-ում 8 ՄԲ է: Եթե ​​նախորդ երկու մակարդակները կիսում են յուրաքանչյուր միջուկը, ապա այս մակարդակը ընդհանուր է ողջ պրոցեսորի համար: Ցուցանիշը բավականին ամուր է, բայց ոչ չափազանցված: Քանի որ, օրինակ, Extreme սերիայի պրոցեսորների համար, ինչպիսին է i7-3960X-ը, այն 15 ՄԲ է, իսկ որոշ նոր Xeon պրոցեսորների համար՝ ավելի քան 20:

Ի՞նչ է պրոցեսորի քեշը:

Քեշը հիշողության մի մասն է, որն ապահովում է մուտքի առավելագույն արագություն և արագացնում է հաշվարկների արագությունը: Այն պահպանում է տվյալների այն հատվածները, որոնք պրոցեսորն ամենից հաճախ պահանջում է, որպեսզի պրոցեսորը կարիք չունենա անընդհատ մուտք գործել համակարգի հիշողություն:

Ինչպես գիտեք, սա համակարգչային սարքավորումների մի մասն է, որը բնութագրվում է տվյալների փոխանակման ամենադանդաղ արագությամբ: Եթե ​​պրոցեսորին անհրաժեշտ է որոշակի տեղեկատվություն, այն գնում է RAM՝ դրա համար համանուն ավտոբուսի միջոցով: Պրոցեսորից հարցում ստանալով՝ այն սկսում է խորանալ իր տարեգրության մեջ՝ պրոցեսորին անհրաժեշտ տվյալներ փնտրելու համար: Ստանալուց հետո RAM-ը դրանք հետ է ուղարկում պրոցեսորին նույն հիշողության ավտոբուսով: Տվյալների փոխանակման այս շրջանակը միշտ չափազանց երկար է եղել: Այդ պատճառով արտադրողները որոշեցին, որ կարող են թույլ տալ, որ պրոցեսորը տվյալներ պահի մոտակայքում: Քեշի աշխատանքի ձևը հիմնված է պարզ գաղափարի վրա.

Մտածեք հիշողությունը որպես դպրոցական գրադարան: Ուսանողը մոտենում է աշխատակցուհուն գիրք ստանալու համար, նա գնում է դարակներ, փնտրում է այն, վերադառնում է աշակերտի մոտ, ինչպես հարկն է պատրաստում այն ​​և անցնում հաջորդ ուսանողուհուն: Օրվա վերջում նա կրկնում է նույն գործողությունը, երբ գրքերը վերադարձնում են նրան։ Այսպես է աշխատում առանց քեշի պրոցեսորը։

Ինչու՞ է պրոցեսորին անհրաժեշտ քեշ:

Հիմա պատկերացրեք, որ գրադարանավարուհին հոգնել է անընդհատ ետ ու առաջ շտապել գրքերով, որոնք իրենից անընդհատ պահանջում են տարեցտարի, օր օրի: Նա ձեռք բերեց մեծ պահարան, որտեղ պահում էր ամենահաճախ պահանջվող գրքերն ու դասագրքերը: Մնացածը, որ տեղադրվել է, բնականաբար, շարունակում են պահվել նույն դարակներում։ Բայց սրանք միշտ ձեռքի տակ են: Ինչքան ժամանակ է նա խնայել այս կաբինետով, թե իր, թե մյուսների համար։ Սա քեշն է:

Այսպիսով, քեշը կարող է պահպանել միայն առավել պահանջվող տվյալները:

Այո՛։ Բայց նա կարող է ավելին անել: Օրինակ, հաճախակի պահանջվող տվյալներն արդեն պահելով, այն ի վիճակի է գնահատել (պրոցեսորի օգնությամբ) իրավիճակը և պահանջել անհրաժեշտ տեղեկատվություն: Այսպիսով, տեսահոլովակների վարձույթով հաճախորդը, ով խնդրել է «Մեռնել դժվար» ֆիլմը առաջին մասով, ամենայն հավանականությամբ կխնդրի երկրորդը: Եվ ահա նա! Նույնը վերաբերում է պրոցեսորի քեշին: Մուտք գործելով RAM և պահպանելով որոշակի տվյալներ՝ այն նաև առբերում է տվյալներ հարևան հիշողության բջիջներից: Տվյալների նման մասերը կոչվում են քեշի գծեր:

Ի՞նչ է երկաստիճան քեշը:

Ժամանակակից պրոցեսորն ունի երկու մակարդակ. Ըստ այդմ՝ առաջին և երկրորդ. Նրանք նշանակվում են անգլերենի մակարդակից L տառով: Առաջինը` L1-ն ավելի արագ է, բայց ծավալով փոքր է: Երկրորդը` L2-ը մի փոքր ավելի մեծ է, բայց ավելի դանդաղ, բայց ավելի արագ, քան RAM-ը: Առաջին մակարդակի քեշը բաժանված է հրահանգների քեշի և տվյալների քեշի: Հրահանգների քեշը պահում է հրահանգների այն փաթեթը, որն անհրաժեշտ է պրոցեսորին հաշվարկների համար: Մինչդեռ տվյալների քեշը պահում է ընթացիկ հաշվարկի համար անհրաժեշտ քանակություններ կամ արժեքներ: Իսկ երկրորդ մակարդակի քեշն օգտագործվում է համակարգչի RAM-ից տվյալները բեռնելու համար: Քեշի մակարդակների աշխատանքի սկզբունքը կարելի է բացատրել նաև դպրոցական գրադարանի օրինակով: Այսպիսով, լցնելով գնված պահարանը, գրադարանավարը հասկանում է, որ գրքերն այլևս չեն բավականացնում, ինչի համար անընդհատ պետք է վազվզել սրահով։ Բայց այդպիսի գրքերի ցանկը վերջնական տեսքի է բերվել, և դուք պետք է գնեք նույն պահարանը: Նա դեն չի նետել առաջինը, ցավալի է, և պարզապես գնել է երկրորդը: Եվ հիմա, երբ առաջինը լցվում է, գրադարանավարը սկսում է լցնել երկրորդը, որը գործի մեջ է մտնում, երբ առաջինը լցվում է, բայց դրա մեջ չեն տեղավորվում անհրաժեշտ գրքերը։ Նույնն է քեշի մակարդակների դեպքում: Եվ քանի որ միկրոպրոցեսորային տեխնոլոգիան զարգանում է, պրոցեսորի քեշի մակարդակը մեծանում է չափերով:

Արդյո՞ք քեշը կշարունակի աճել:

Հազիվ թե։ Պրոցեսորի հաճախականության ձգտումը նույնպես երկար չտևեց, և արտադրողները գտան հզորությունը բարձրացնելու այլ ուղիներ: Նույնը քեշի դեպքում: Կոնկրետ ասած՝ մակարդակների ծավալն ու քանակը չի կարելի անվերջ ուռճացնել։ Քեշը չպետք է վերածվի դանդաղ մուտքի արագությամբ RAM-ի մեկ այլ փայտի կամ պրոցեսորի չափը կրճատի մինչև մայր տախտակի չափը: Ի վերջո, տվյալների հասանելիության արագությունը, առաջին հերթին, էներգիայի սպառումն է և հենց պրոցեսորի կատարողական արժեքը: Ավելի հաճախակի են դարձել նաև քեշի բացթողումները (ի տարբերություն քեշի հարվածների), որտեղ պրոցեսորը մուտք է գործում պահված հիշողություն՝ այնտեղ չգտնվող տվյալների համար: Քեշի տվյալները մշտապես թարմացվում են՝ օգտագործելով տարբեր ալգորիթմներ՝ քեշի հարվածի հավանականությունը մեծացնելու համար:



Շարունակելով թեման.
Ինսուլին

Կենդանակերպի բոլոր նշանները տարբերվում են միմյանցից. Դրանում կասկած չկա։ Աստղագուշակները որոշել են կազմել Կենդանակերպի ամենալավ նշանների վարկանիշը և տեսնել, թե դրանցից որն է...

Նոր հոդվածներ
/
Հանրաճանաչ