Э. В. Фуфаев, Д. Э. Фуфаев



жүктеу 10,13 Mb.
Pdf просмотр
бет18/93
Дата19.11.2018
өлшемі10,13 Mb.
#21568
түріОқулық
1   ...   14   15   16   17   18   19   20   21   ...   93

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


Бҧл  жағдайда  негізгі  жадыға  өтініш  аз  жҥретіндіктен,  одан  кейін 
мультипроцессорлық жҥйе ҥшін өте тартымды болатын жадыны өткізу 
жолағының аз болуы талап етіледі. Өтпелі жазба кезінде оқу бойынша 
мҥлт кетулер жоғары деңгейдегі жазбаға əсер етпейді. Сонымен қатар, 
кері  көішрмелі  жазбаға  қарағанда,  іске  асыру  ҥшін  өтпелі  жазба 
жеңілірек.  Өтпелі  жазбаның  тағы  бір  артықшылығы,  негізгі  жадының 
деректердің барынша жаңа көшірмесіне ие болуы болып табылады. Ол 
мультипроцессорлы  жҥйелерде  маңызды,  сондай-ақ  кіруді  (шығуды) 
ҧйымдастыру ҥшін маңызды. 
Өтпелі  жазбаны  орындағаннан  кейін  процессор  жазбаның 
аяқталуын кҥтетін  болса,  онда  ол  жазба  ҥшін  (write  stall)  тоқтатылған 
деп  айтылады.  Жазба  бойынша  тоқтатудың  азайтудың  жалпы  əдісі 
жадтың  мазмҧнын  жаңарту  кезінде  командаларды  орындауды 
жалғастыруға  мҥмкіндік  беретін  жазу  буферді  (write  buffer) 
пайдалануға  байланысты.  Жазба  бойынша  тоқтаулары  жазба  буфері 
кезінде туындауы мҥмкін. 
Жазба кезінде мҥлт кеткен кезде екі қосымша мҥмкіндік бар: кэш-
жадыға 
жазбаны 
орналастыру 
жəне 
кэш-жадыға 
жазбаны 
орналастырмау. 
К э ш - ж а д ы д а   ж а з б а н ы   о р н а л а с т ы р у (write  allocate)  (жазба 
кезіндегі таңдау деп те аталады (fetch on write)) бҧл блок кэш-жадына 
жҥктелетінін,  содан  кейін  тигізе  отырып  жазбаны  орындау  кезінде 
ҧқсас  қолданылатын  əрекеттер  орындалады.  Бҧл  оқу  кезіндегі  мҥлт 
кетулерге ҧқсайды. 
Кэш-жадыға  жазбаны  орналастырмау  (қоршаған  ортаға  жазба  деп 
те  аталады  (write  around)),  блоктың  барынша  төмеңгі  деңгейге 
тҥрленетінін жəне кэш-жадыға жҥктелмейтінін білдіреді. 
Әдетте, кері көішрмелейтін жазбаны іске асыратын кэш-жады, кэш-
жадыда  жазбаны  орналастыру  ҥшін  қолданылады  (келесі  жазба  осы 
блокта  ҧсталады  деп  ҥміттенеді),  ал  өтпелі  жазбадан  тҧратын  кэш-
жадыда  кэш-жадыға  жазбаны  орналастыру  жиі  пайдаланылмайды 
(өйткені осы блокқа кейінгі жазба бəрібір жадыға кіреді). 
Кэш  жадының  өнімділігін  арттыру  жолдарын  қарастырамыз.  Кэш-
жадындағы  жҥйеде  жадқа  қолжетімділіктің  орташа  уақыты  ҥшін 
формула келесідей болып келеді: 
Орташа  қолжетімділік  уақыты  =  Тигізу  кезіндегі  өтініш  уақыты  + 
Мҥлт кетулер саны x Мҥлт кету кезіндегі шығындар. 
Осы  формула  кэш-жадының  жҧмысын  оңтайландыру  жолдарын 
айқын  көрсетеді:  жіберіп  алулардың  ҥлесін  қысқарту,  бос  жіберу 
кезінде  шығынды  қысқарту,  сондай-ақ,  тигізу  кезінде  кэш-жадыға 
өтініштер уақытын қысқарту. 
3.3-кестеде қазіргі уақытта кэш-жадының өнімділігін арттыру ҥшін 
қолданылатын əр тҥрлі əдістер қысқаша ҧсынылған. 


Кэш-жадының ӛнімділігін арттыру әдістері 
Әдіс  
Мҥлт 
кетулер 
ҥлесі 
Мҥлт 
кетулері 
кезіндегі 
шығындар 
Тигізу кезіндегі өтініштер 
уақыты (ескерту) 
Блоктың өлшемен ҧлғайту 



Ассоциативтіліктің 
дəрежесін арттыру 

 
-1 
Қосалқы кэші бар кэш-жады 

 

Псевдоассоциативті 
кэштер 

 

Командалар мен деректерді 
аппаратты алдын ала таңдау 

 
2 (деректерді алдын ала 
таңдау кҥрделенген) 
Компиляторды басқара 
отырып алдын ала таңдау 

 
3 (бҧғатталмайтын кэш-
жадыны талап етеді) 
Мҥлт кетулерді азайту ҥшін 
арнайы əдістер 

 
0 (бағдарламалық 
қамтамасыз ету мəселесі) 
Жазбаларды оқу бойынша 
мҥлт кетулердің 
басымдылықтарын орнату 
 

1 (тек бір процессорлық 
жҥйелер ҥшін) 
Кіші блоктарды қолдану 
 

+1 (өтпелі жазба + 
+ бір сөзге кіші блок 
жазбаларға көмектеседі) 
Талап етілетін сөзді бірінші 
жіберу 
 


Бҧғатталмайтын кэштер 
 


Екінші деңгейдегі кэштер 
 

2 (жеткілікті қымбат жабдық) 
Шағын көлемдегі қарапайым 
кэштер 

 

Кэш-жадыны индексациялау 
кезінде мекенжайларды 
тҥрлендірулерді аралау 
 
 
+2 
Жазба  кезінде  шапшаң  тҥсуі 
ҥшін  жазба  операцияларын 
конвейерлеу 
 
 
+1 


жүктеу 10,13 Mb.

Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   93




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау