Командалардың барлық өтініштері оқу бойынша өтініштер болып
табылады жəне көптеген командалар жадыға жазбайды. Әдетте жазба
операциялары жалпы жады трафигінің 10% кем. Жалпы жағдайды
барынша шапшаң жасау ниеті оқу операцияларын орындау ҥшін кэш-
жадты оңтайландыруды білдіреді, алайда жоғары өнімді
деректерді
өңдеу кезінде жазу əрекеттерінің жылдамдығын елемеу мҥмкін емес.
Жалпы жағдай да қарапайым болып табылады. Кэш-жадыдағы
блокты оқылған жəне салыстырылған кездегі бір уақытта оқылуы
мҥмкін. Осылайша, блоктың оқылуы блоктың мекенжайы қол жетімді
болғанда бірдден басталады. Егерде оқутигізумен болған жағдайда,
блок дереу процессорға жіберіледі. Егер бос жіберу орын
алатын болса,
онда алдын-ала оқу блогынан қандай да болмасын пайда болмайды,
алайда ешқандай зиян да жоқ.
Алайда, жазу операцияларды орындау кезінде жағдай тҥбегейлі
өзгереді. Атап айтқанда процессор (əдетте 1 бастап 8 дейінгі байт) жазу
көлемін анықтайды жəне блоктың тек осы бөлігі өзгертілуі мҥмкін.
Жалпы, блоктағы оқу-тҥрлендіру-жазу операцияларының кезеңділігін
орындауды (тҥпнҧсқа блогты оқып, оның бөлігін тҥрлендіру жəне
блоктық жаңа мағынасын жазу) білдіреді. Одан өзге, блокты
тҥрлендіру өтініштің дəл тҥсуі болып табылғандығына көз жеткізу
ҥшін, тег тексеріліп жатқанда басталмайды. Тегтерді тексеру басқа
тапсырмамен қатар орындалмайтындықтан, жазу операциялары оқу
операцияларына қарағанда көп уақыт алады.
Әртҥрлі машиналарда кэш-жадыны ҧйымдастыру жазбаны орындау
стратегиясынан ерекшеленеді. Кэш-жадыда жазба орындалған кезде,
екі базалық мҥмкіндіктер болады:
• өтпелі жазба (write through, store through) — ақпарат екі орынға
жазылады (кэш-жады блогына жəне жадының барынша төмен
деңгейдегі блогына);
• кері көшірмеленетін жазба (write back, copy back, store in) —
ақпарат тек кэш-жады блогына жазылады. Тҥрлендірілген кэш-жады
блогы негізгі жадқа ауыстырылған кезде ғана жазылады. Ауыстыру
кезіндегі блоктарды көшіру жиілігін қысқарту ҥшін əдетте əрбір кэш-
жады блогымен тҥрлендірілген бит деп аталатын (dirty bit)
байланысады. Осы мəртебелік бит
кэш-жадыдағы блоктың
тҥрлендірілгенін көрсетеді. Егер ол тҥрлендірілмесе, онда кері
көшірмелеуден бас тартылады, себебі барынша төменгі деңгейде кэш-
жадыдағы ақпарат болады.
Жазбаны ҧйымдастырудың екі тəсілі де артықшылықтар мен
кемшіліктерге ие. Кері көшірмені жазу кезінде операциялар кэш-жады
жылдамдығымен орындалады жəне бір блоктағы бірнеше жазбалар
барынша төменгі деңгейдегі жадтағы бір жазбаны ғана талап етеді.
Кэш-жадының ӛнімділігін арттыру әдістері
Әдіс
Мҥлт
кетулер
ҥлесі
Мҥлт
кетулері
кезіндегі
шығындар
Тигізу кезіндегі өтініштер
уақыты (ескерту)
Блоктың өлшемен ҧлғайту
+
-
0
Ассоциативтіліктің
дəрежесін арттыру
+
-1
Қосалқы кэші бар кэш-жады
+
2
Псевдоассоциативті
кэштер
+
2
Командалар мен деректерді
аппаратты
алдын ала таңдау
+
2 (деректерді алдын ала
таңдау кҥрделенген)
Компиляторды басқара
отырып алдын ала таңдау
+
3 (бҧғатталмайтын кэш-
жадыны талап етеді)
Мҥлт кетулерді азайту ҥшін
арнайы əдістер
+
0 (бағдарламалық
қамтамасыз ету мəселесі)
Жазбаларды оқу бойынша
мҥлт кетулердің
басымдылықтарын
орнату
+
1 (тек бір процессорлық
жҥйелер ҥшін)
Кіші блоктарды қолдану
+
+1 (өтпелі жазба +
+ бір сөзге кіші блок
жазбаларға көмектеседі)
Талап
етілетін сөзді бірінші
жіберу
+
2
Бҧғатталмайтын кэштер
+
3
Екінші деңгейдегі кэштер
+
2 (жеткілікті қымбат жабдық)
Шағын
көлемдегі қарапайым
кэштер
-
0
Кэш-жадыны индексациялау
кезінде мекенжайларды
тҥрлендірулерді аралау
+2
Жазба кезінде шапшаң тҥсуі
ҥшін жазба операцияларын
конвейерлеу
+1