Кэш-ҳотирадаги ахборотларни янгилаш. Кэш-ҳотира билан ишлаганда бир вақтнинг ўзида ахборотнинг иккита нусхаси мавжут бўлиши мумкун: биринчиси кэш-ҳотирада, иккинчиси эса асосий ҳотирада жойлашади. Асосий ҳотирадаги ахборотни нафақат процессор ўзгартира олади, ҳотирага бевосита эга бўлиш канали орқали ишлочи киритиш-чиқариш қурилмаси ҳам ўзгартира олади. Шунинг учун уларни бир –бирини инкор қилмаслигини ёки когерентлигини қувватлаш керак. Умумий ҳотирадан фойдаланувчи бир неча микроконтроллер бўлган тизимларда ҳам шунингдек когерентликни қувватлаш керак, лекин бу микроконтроллерларнинг кэшларини ҳам. Кэш-ҳотира контроллерини бошқа процессорлардан ва киритиш-чиқариш қурилмаларидан магистралдаги сўровларни назорат қилиб, кэш-ҳотира магистралдан сўровларни олаоладиган ва зарур ҳаракатларни амалга ошира оладиган қилиб лойиҳалаштирилади. Бу қурилмаларни кузата олувчи кэш-ҳотира (snooping cashe) деб аталади. Кэш-ҳотиранинг бир неча блокларида ахборотларнинг турли вариантларини пайдо бўлишини олдини олиш учун кэш-ҳотира, процессорлар ва асосий ҳотира бажарадиган қоидалар тўплами кэшлашни когерентлик протоколини ҳосил қилади. Кэш-ҳотирада сақлаш ва узатиш бирлиги қатор ёки кэш-ҳотира блоки деб аталади (32 ёки 64 байт).
Энг оддий кэшлашнинг когерентлик протоколини ўзаро ёзиш`(write through) деб аталади. Сўзни ёзишда кэш-мўлжалга олаолмади ҳолати бўлган ҳолда, у асосий ҳотирага ёзилади. Керакли сўз мажут қатор кэш-ҳотирага юкланмайди. Ёзишда кэш-мўлжалга олди ҳолати ҳосил бўлса кэш янгиланади, яна сўз эса МК га ёзилади. Ҳар доим кэш-ҳотира янгиланганда асосий ҳотира ҳам бир вақтнинг ўзида янгиланади.
Ёзиш бўйича кэш-мўлжалга олаолмади ҳолатининг бошқа варианти – кэш-ҳотирани юклаш (ёзиш бўйича тўлдириш сиёсати – write allocate). Кэш-мўлжалга олаолмади ҳолатини келтириб чиқарган сўзга қайта мурожат бўлиш эхтимоли юқори бўлганда ёзиш бўйича тўлдириш самаралидир.
Мисол тариқасида 486 процессорининг кэш-ҳотирасини ташкилланишини батафси кўриб чиқамиз.
486 процессорининг биринчи босқич кэши тўрт каналли таркибга эга (4.5-чизма). Ҳар бир канал 128 қатордан иборат бўлиб, уларнинг ҳар бири 16 байтдандир. Барча тўртта каналнинг бир ҳил номли қаторлари 128 тўпламни тўртта қатордан ташкил қилади, уларнинг ҳар бири ўзининг ҳотира манзилларига ҳизмат кўрсатади. Ҳар бир қаторига тизимли ҳотира блокидан унга нусха олинган манзил ҳақида 21-разрядли ахборот тўғри келади. Бу ахборот қатор теги (Tag) деб номланади.
Ундан ташқари, кэш таркибига диспетчер киради, яъни 128х7 тарзида ташкиллаштирилган ҳотира худуди бўлиб, унда 128 тўпламдан ҳар бири учун 4-битли ҳақийқийлик теглари сақланади ва 128 тўпламнинг ҳар бири учун 3-битли LRU (Least Recently Used) кодлари сақланади. Тўпламнинг ҳақийқийлик теги ушбу тўпламга кирувчи 4 қатордан ҳар бирининг ўз таркибига 4 бит чинлик битини олади. Бирга ўрнатилган чинлик бити тегишли қатор тўлганлигини билдиради, агарда у нолга ўтказилган бўлса у ҳолда қатор бўш бўлади. LRU бити ушбу тўпламга қанча олдин мурожат бўлганлиги ҳақида маълумот беради. Бу эса энг кам ишлатилаётган тўпламни янгилаш учун керак бўлади.
4.5-чизма. 486 процессорининг ички кэшининг таркиби
Кэш – ҳотирани манзиллаш 28 разрядли манзил ёрдамида амалга оширилади. Уларнинг ичидан кичик 7 разряди 128 тўпламдан бирини танлайдилар, катта 21 разряд танланган тўпламнинг барча 4 қаторнинг теглари билан солиштирилади. Агарда теглар манзил разрядлари билан мос келганда, кэш-мўлжалга олди ҳолати ҳосил бўлади, разрядлари мос келмаганда – кэш-мўлжалга олаолмади ҳолати ҳосил бўлади.
Ўқиш цикли ҳолатида кэш-мўлжалга олди ҳолати юзага келганда байт ёки сўз кэш-ҳотирадан ўқилади. Кэш-мўлжалга олаолмади ҳолати юзага келганда эса (қайта юклаш) кэш-ҳотиранинг қаторларидан бирини янгилаш содир бўлади.
Ёзиш цикли ҳолатида кэш-мўлжалга олди ҳолати юзага келганда кэш-ҳотирага ва шунингдек асосий тизимли ҳотирага ёзиш амалга оширилади. Кэш-мўлжалга олаолмади ҳолати юзага келганда эса фақат тизимли ҳотирага ёзиш бажарилади, кэш-ҳотира қаторининг янгиланиши амалга оширилмайди. Бу қаторни эгаллаб бўлмайдиган бўлиб қолади (унинг ҳақийқийлик бити нолга ўтказилади).
Ёзишнинг бундек сиёсати бевосита ёзиш деб номланган (Write Through, прямой записью или сквозной). Процессорнинг анча кейинги моделларида тескари ёзиш (Write Back, обратная запись) қўлланилган, у анча тез ишловчи бўлиб, сабаби ташқи шинага мурожат қилиш сони анча кам талаб қилинади.
Тескари ёзиш ишлатилганда ёзиладиган ахборот фақат керакли қатор кэшда бўлмасагина асосий ҳотирага жўнатилади. Кэш-мўлжалга олди ҳолатида эса фақат кэш модификацияланади. Ўзгартирилган ахборот фақат кэшда янги қатор қайта ёзилгандагина асосий ҳотирага тушади. Олдинги қатор эса бутунлигича асосий ҳотирага қайта ёзилади, шу билан бирга кэш қийматлари билан асосий ҳотира қийматларининг бир ҳиллиги тикланади.
Талаб этилган қатор кэшда берилмаган ҳол бўлса (кэш-мўлжалга олаолмади ҳолати), ёзишга сўров ташқи шинага йўналтирилади, ўқишга сўровга бир мунча мураккаброқ ишлов берилади. Агарда бу сўров ҳотиранинг кэшланадиган худудига тегишли бўлса, у ҳолда кэшни бутун қаторини тўлдириш цикли бажарилади (16 байт ҳотирадан тўпламнинг қаторларидан бирига қайта ёзилади, ушбу манзилга ҳизмат кўрсатадиган). Агарда сўралган ахборотлар битта қаторга сиғмаса, у ҳолда қўшни қатор тўлдирилади. Процессор қаторини энг тез усулда тўлдиришга ҳаракат қилинади – пакетли цикл билан, бироқ ҳотирани ташқи контроллери анча секин узатишларни ишлатилишини талаб қилиши мумкун.
Процессорни ахборотларга бўлган ички сўровини дарҳол қониқтирилади, ҳотирадан ахборотлар ўқилиши бошланиши билан, қаторни тўлдириш жароёни ахборотга ишлов бериш билан параллел равишда олиб борилиши мумкун. Ҳотиранинг ушбу манзили ҳизмат кўрсатадиган тўпламда агарда бўш қатор бўлса айнан у тўлдирилади. Агарда бўш жой бўлмаса кўп вақт мурожат қилинмаган қатор тўлдирилади. Бунинг учун LRU битлари ишлатилади, улар ушбу тўплам қаторига ҳар бир мурожат қилганида модификацияланади.
Ундан ташқари, қаторларни бекор қилиш (уларни ҳақиқий эмас деб эълон қилиш) ва бутун кэш – ҳотирани тозалаш имконияти мавжут. Бевосита ёзишда кэшни тозалаш процессорнинг маҳсус ташқи сигнали ёрдамида амалга оширилади, дастур ёрдамида маҳсус буйруқлар орқали ва шунингдек дастлабки нолга ўтказишда – RESET сигнали бўйича. Кэшни тозалаш ёзувга ишлов беришида, барча модификация қилинган қаторларни асосий ҳотирага бўшатиш назарда тутилади.
Назорат учун саволлар
1.МК кристалига қандай ташқи қурилмалар жойлаштирилган (интеграциялаштирилган)?
2.МК асос функционал блоки қандай қурилмалардан ташкил топган?
3.МК қўлланадиган манзиллаш усулларининг хусусиятларини баён қилинг.
4.Микроконтроллерда буйруқларни бажарилиш тартибини баён қилинг.
5.МК дастурлар ҳотирасини турлари ва вазифаларини кўриб чиқинг.
6.МК нинг ахборотлар ОХҚ қандай иш тартибда ишлайди?
7.Кэш-ҳотиранинг вазифаси нимадан иборат?
18. Кэш-ҳотиранинг когорентлиги деганда нимани тушунасиз?
Do'stlaringiz bilan baham: |