1. Кеш хотира, кеш хотира хусусиятлари


Download 5.89 Mb.
Sana19.09.2023
Hajmi5.89 Mb.
#1681577
Bog'liq
7. КЕШ


Режа:
1. Кеш хотира, кеш хотира хусусиятлари
2. L1, L2, L3 кеш хотирасининг асосий турлари ва даражалари
Хотиранинг ташкил этилиши ва турлари.
Ҳар қандай компютердаги ҳар қандай процессор - арзон ноутбукдан тортиб миллион долларлик сервергача - кеш деб аталадиган хотира қурилмалари бор ва у кўп даражали.
Лекин у нима қилади ва нима учун бир нечта даражалар мавжуд? Кеш нима?
Бу процессорнинг мантиқий блокларига яқин жойлашган кичик, аммо жуда тезкор хотира.
Сабаби шундаки, замонавий процессорлар ниҳоятда тезкор - иккита 64 битли бутун сонни қўшиш учун фақат битта такт керак, 4 гигагерцли частотада ишлайдиган процессор учун бу фақат 0,00 000 000 025 секунд вақтни (тўртдан бир наносекунд) олади.
Қаттиқ дисклар минглаб наносекундаларни фақат ички дисклардаги маълумотларни топиш, уларни узатиш учун сарифлайди. SSD-лар тезроқ, лекин улар ўнлаб ёки юзлаб наносекундаларни олади.
Бундай драйверларни процессор ичига жойлаштириб бўлмаслиги аниқ, демак улар ўртасида физик ажратиш бўлади ва шунинг учун маълумотларни кўчириш учун кўпроқ вақт керак бўлади.
Шундай қилиб, бизга процессор ва хотира ўртасида жойлашадиган бошқа сақлаш тизими зарур. У дискка нисбатан тезроқ бўлиши керак, бир вақтнинг ўзида жуда кўп миқдордаги ахборотни сақлаши ва процессорга яқин жойда бўлиши керак.
Бизда аллақачон бундай нарса бор ва у RAM деб аталади.
Бу DRAM (Dynamic Random Access Memory) ва ҳар қандай дискка қараганда тезроқ маълумот алмашиш имкониятига эга.
Шу билан бирга, DRAM тезлиги жиҳатидан сезиларли даражада устун бўлишига қарамай, сақлайдиган маълумотлар миқдори бўйича камдир.
Бугунги кунда энг катта DDR4 (double-data-rate four synchronous dynamic random access memory) хотираси ҳажми энг катта қаттиқ дисклардан тахминан 4000 баробар кичикроқ.
Шунинг учун маълумотлар алмашинуви тезлигини ошириш учун яна бир вазифа пайдо бўлади: аппарат ва дастурий ечимлар ёрдамида процессордан оператив фойдаланиш учун чекланган миқдордаги DRAM га қандай маълумотларни жойлаштириш кераклигини аниқлаш.
Аммо ҳеч бўлмаганда DRAM процессор қутисига жойлаштирилса бўладими? Бироқ, процессорлар нисбатан кичик, шунинг учун процессорнинг ўлчамини кенгайтира олмайсиз.
DRAM модулларининг катта қисми процессор ёнида асосий картада жойлашган бўлиб, у ҳар доим компютер тизимидаги процессорга энг яқин компонент ҳисоблади.
Шунга қарамай, DRAM да маълумотларини қидириш учун тахминан 100 наносекундалар керак, аммо ҳеч бўлмаганда у бир секундда миллиардлаб маълумотлар битларини узатиши мумкин. CPU ва DRAM блоклари орасида яна битта оралиқ хотира қурилмаси керак.
Транзисторли SRAM хотира DRAM га қараганда кўпроқ жойни эгаллайди. Аммо SRAM технологик жиҳатдан процессор билан бир хил жараёнга асосланганлиги сабабли, уни тўғридан-тўғри унинг процессор ичига, унинг мантиқий блокларига яқин жойлаштирилиши мумкин.
SRAM (Статик ихтёрий кириш хотираси).
DRAM маълумотларни электр заряди сифатида сақлаш учун микроскопик конденсаторлардан фойдаланса, SRAM худди шу мақсадда транзисторлардан фойдалади, процессордаги мантиқий блоклар билан деярли бир хил тезликда ишлайди (DRAMга қараганда 10 баравар тезроқ).
Энди биз кешлар нима эканлигини аниқроқ таърифлашимиз мумкин: Кешлар процессор ичида жойлашган бир нечта SRAM модуллари. Улар жуда юқори тезликда алоқа қилиш орқали мантиқий блокларга узатиладиган ахборотларни максимал даражада оширадилар.
Биз билиб олганимиздек, кеш зарур, чунки хотира тизимлари процессордаги мантиқий блокларнинг тегишли талабларига жавоб бера олмайди. Замонавий процессорлар ва график процессорлар SRAM блоклари мажмуини ўз ичига олади, улар иерархияга бирлаштирилган.
Кешлар кетма-кетлиги қуйидагича тартибланган
Расмда процессор майдони қора узуқ чизиқли тўртбурчак билан ажратилган. АРМҚ (Arithmetic Logic Unit) блоклари энг чап томонда жойлашган. АРМҚ ларга энг яқин хотира даражаси регистрлардир, аммо техник жиҳатдан улар кеш эмас.
Уларнинг ҳар бири битта 64 битли бутун сонни ўз ичига олади, масалан; баъзи маълумотлар бўлагининг қиймати, маълум бир кўрсатманинг коди ёки бошқа маълумотлар манзилига ҳавола бўлиши мумкин.
Стационар компьютер процессоридаги регистр ҳажми жуда кичик - масалан, Intel Core i9-9900KF da да ҳар бир ядро учун иккита банк мавжуд: биттаси бутун сонлар учун 180 та 64 битли регистрларни, иккинчиси векторлар учун (кичик массивлар) 168 та 256 битли регистрлар.
Шундай қилиб, ҳар бир ядро учун умумий регистр файли 7 КБ дан бир оз камроқ.
Регистрлар, худди кеш каби − SRAM, лекин улар хизмат қиладиган АРМҚ лар билан бир хил тезликда ишлайди, битта такт учун маълумотларни киритиш ва чиқариш вазифасини бажаради. Аммо улар катта ҳажмдаги маълумотларни сақлаш учун мўлжалланмаган, шунинг учун уларга ҳар доим бир нечта катта хотира блоклари зарур: бу 1-даражали кеш, L1.
Интел процессори ядролардан бирининг кенгайтирилган кўриниши.
АРМҚ ва регистрлар чап томонда яшил тўртбурчакда ажратилган. Юқори марказда оқ тўртбурчак L1 кешини кўрсатади. Унинг катталиги кичик, атиги 32 КБ, лекин регистрлар сингари мантиқий блокларга жуда яқин ва улар билан бир хил тезликда ишлайди.
Иккинчи оқ тўртбурчак - бу 1-даражали буйруқлар кеши (L1 Ins кеши), 32 КБ ҳажмида. Номидан кўриниб турибдики, бу ерда кичик буйруқларга бўлинишга тайёр бўлган турли хил кўрсатмаларни сақлайди.
L1 Ins кешнинг кеши ҳам бор - масалан, нол даражадаги кеш (L0 кеш), чунки у L1 кешларидан кичикроқ (атиги 1500 та операцияни сақлайди).
Нима учун бу кеш лар жуда кичик? Нега уларнинг ҳажмини камида мегабайтгача оширишмайди? Биринчидан, процессорнинг мантиқий блоклари, микросхемада маълумотлар ва буйруқлар кешлари биргаликда эгаллаган жойга тенг жойни эгаллайди, шунинг учун иккинчисининг катталашиши умумий ҳажмининг сезиларли даражада ошишига олиб келади.
Иккинчидан (ва энг муҳими), уларнинг атиги бир неча килобайтни сақлашига сабаб шуки, хотира ҳажми ошгани сайин маълумотларни қидириш ва уни олиш учун вақт кўпаяди. L1 кеши жуда тез бўлиши керак, шунинг учун унинг ҳажми ва тезлиги ўртасида мослик зарур.
L2 кеш - бу буйруқлар ва маълумотлар учун омбор.
Унинг хажми ҳар доим L1 дан бироз каттароқдир: масалан, AMD Zen2 процессорларида 512 КБ гача L2 кеш хотираси ўрнатилган. L1 билан таққослаганда ушбу кешдан маълумотларни топиш ва узатиш учун сарфладиган вақт тахминан икки баравар кўп.
Ўз вақтида Intel Pentium ларда L2 кеши алоҳида чип эди - ёки RAM сингари олинадиган кенгайтириладиган картада ёки тизим платасига ўрнатилган. Кейин L2 кеши процессор кристалига ўтди. Тез орада ушбу ривожланиш пастки даражаларни қўллаб-қувватлашга мўлжалланган яна бир кеш хотира билан давом этди ва бу кўп ядроли чипларнинг пайдо бўлиши билан боғлиқ эди.
Қуйида АМД Зен 2 архитектурасида ядро тузилиши кўрсатилган: 32 КБ ли L1 маълумотлар ва буйруқлар кешлари (оқ), 512 КБ L2 (сариқ) ва улкан 4 МБ L3 кеш блоки (қизил).
Қандай қилиб 32 КБ хотира 512 КБ дан кўпроқ жойни эгаллаши мумкин? Агар L1 жуда кам маълумотни сақласа, нега улар L2 ва L3 кешларидан мутаносиб равишда катта?
Кеш маълумотларни мантиқий блокларга узатишни тезлаштириш ва тез-тез ишлатиладиган буйруқлар ва маълумотларни тайёр ҳолда сақлаш орқали процессор ишлашни яхшилайди. Кешда сақланадиган маълумотлар икки қисмга бўлинади: маълумотларнинг ўзи ва уларни дастлаб қайси манзилда жойлашганлиги ҳақида маълумот (тизим хотирасида ёки ташқи хотирада) - бу манзил кеш теги деб номланади.
Процессор хотирадан/хотирага маълумотларни ўқиш/ёзиш арафасида бўлган операцияни бажарганда, L1 кешидаги тегларни текширишдан бошлайди. Агар у ерда сўралган маълумотлар мавжуд бўлса (cache hit, «кэш-попадание»), дарҳол унга тўғридан-тўғри кириш мумкин. Агар сўралган маълумот теги кешда мавжуд бўлмаса, «Кэш-промах» (cache miss), содир бўлади.
Download 5.89 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling