56
ДЕРБЕСЭЕМ-дегі ЖАДЫНЫ БАСҚАРУ ЖҮЙЕСІ
Беттік бөлініс негізінде виртуалды жадыны ұйымдастырудағы жадының бөлінісімен,
сондай-ақ жеке ЭЕМ-
дегі
жадыныңбеттік-сегменттік көрінісіжәне адрестік
өзгертулердің уақытын қысқарту әдістерімен байланысты сұрақтар қарастырылады.
ЭЕМ-дағы 32-разрядтық микропроцессор жұмыс кезінде мультипрограммалауғы
ие және операндтардың адресін максимал мүмкін 2
32
байтқа дейін қамтамасыз ететін
қорғаныс режимінде жұмыс істейді.Виртуалды жады жадының беттік-сегменттік
көрінісі негізінде ұйымдастырылады. Осы кезде жады программалар мен ақпараттар
астындағы берілген айнымалы
ұзындық
сегменттеріне бөлінеді.Сегменттер,өз
кезегінде,оны виртуалдандыру үшін жадыны басқару жүйесімен қолданылатын
тіркелген ұзындықтарының (4К = 2
12
байт) беттеріне бөлінеді.
Әр сегменттің басы сәйкес сегменттік регистр арқылы және тұтынушыдан
жасырын операциялық жүйе орнатады.Тұтынушы берілген архитектура ұзындығы (2
32
байт) үшін максимал мүмкін сегментпен орналастырамын деп,сегменттің басына
қатысты адресінде өз программасын жазады.Микропроцессордың аппараттық бөлігі
бірінші адрестердің сегменттік өзгертулерін,содан кейін беттік өзгертулерін жасайды.
Сурет 1. 32-разрядтық микропроцессордағы жадының беттік-сегменттікт
ұйымдастыру кезіндегі физикалық адрестін жасақтау
Микропрцессордың адрестік шинасына берілетін физикалық адресті алуға негізгі
қызметті логикалық адрес атқарады. Ол екі бөлктен: сегменттің идентификаторы
саналатын селектордан және сегменттегіығысудан тұрады.
Адрестік режим командасындағы берілген операнд арқылы сегменттегі ығысу(32
разряд) (эффективті адрес) есептеледі және операнданың виртуалды адресі болып
табылады. Ығыстыру
үшін командамен байланысқан кезде регистр-көрсеткіш
командасының мәндері келіп түседі.
Селектор
сегменттік регистрге орналасады (1-суретте).Оның негізгі бөлігінде
нөмірі (INDEX) көрсетіледі.Бұл нөмір арнайы дескрипторлар кестелерінің бірінде
берілген сегменттің дескрипторын табу үшін керек.Қолданылатын кестенің түрі
57
селектордың
TI (table indicator) битімен анықталады. Селектор жадыны қорғаудағы
дәреже бойынша ұйымдастыру қолданылатын екі зарядті RPL жолағынан тұрады.
Дескрипторда (2-сурет) сегмент туралы ақпарат бар.Оның бір жолағында
сегменттің базалық адресі бар,ал қалған жолақтарында сегмент туралы қосымша
ақпарат жазылған: ұзындық,сақтану мақсатында берілген сегментті рұқсат етілген
деңгейде қолданылуы,сегмент типі(сегмент коды, ақпарат сегменті,арнайы жүйелік
сегмент және т.б.) және басқа атрибуттар.
Сурет2. Сегмент дескрипторының құрылымы
Сегменттің базалық адресінің дескрипторынан алынған сумма және есептелген
ығысуы операндтың сызықтық адресін береді.Бұл адрес беттік өзгертулер механизмі
қосулы кезінде виртуалды беттердің нөмірін (20 разрядтан үлкен) көрсетеді және
беттег(4 Кбайт беттің көлемімен сәйкес 12 разряд сызықтық адрестен кішілері)
операндтың ығысуын көрсетеді.
Виртуалды беттердің нөмірін физикалық нөмірге өзгерту кезінде келесі жүйелік
объектілер қолданылады:беттер кестелерінің каталогы (БКК) және беттер кестелері
(БК). Бұл кестелердің структуры өзара байланысқан (3-сурет).
Сурет3. Бет кестесі каталогының элементі (бет кестелері)
Өзгертулер екі кезеңде жүргізіледі.
Алғашқыда БКК-дағы сызықтық адрестің А31-А22 разрядымен қажет элемент
алынады. Беттер кестелерінің каталогы әрдайым оперативтік жадыда қатысады және
осы немесе басқа процеске қатысты бет кестелерінің ығысуы туралы сілтемері бар.
БКК элементі құрамына келесілер кіреді:
бет кестелері басының адресі,
оперативтік жадыдағы бет кестелерінің қатысу биті(P),
оқуға/жазуға(R/W) рұқсат беру биті,
беттер (тұтынушы/супервизор (U/S))
мен басқа кейбір атрибуттарды
қорғау.
БКК таңдалған элементінен кестенің алғашқы адресі алынған соң бет кестесінен
БК-не жүгінуі болады.Таңдалған бет кестелерінде сызықтық адресінің А21-А12
разрядтарын анықтайтын элемент нөмірі бар.Бет кестелерінің структурасы БКК
элементінің структурасына ұқсас.БК элементі сәйкес жолақта керекті физикалық беттің
адресінің басы мен БКК элементіне ұқсас басқа атрибуттарды сақтайды.
При P=0 болған кезде үзіліс болады,керекті бет оперативтік жадыға жазылады, ал
оның адресі сәйкес БК элементіне жүктеледі және команда қайталанып орындалады.
58
Дербес ЭЕМ-де жадыны беттік-сегменттік ұйымдастыру кезінде жұмсалатын
уақытты қысқарту
Жадының беттік-сегменттік ұйымдастыру кезінде логикалық өзгертулер кем
дегенде оперативтік жадыда(дескрипторлар кестесінде,БКК және БК) орналасқан
жүйелік кестелерге үш рет жүгінеді. Бұл компьютерлердің өнімділігінің төмен түсуіне
әкелуі мүмкін.Мұндай
өзгертудегі жұмсалатын уақытты
қысқарту механизмі
сегменттік регистр жағдайының өзгеруі салыстырмалы түрде сирек жүргізілетндігіне
негізделген. Мысалы, ЭЕМ жаңа тапсырмаға ауыстырған кезде,ал жаңа беттік өзгерту
тек қана программаның оперативтік жадыға жүктелген беттердің шегінен шыққанда
қажет етеді.
Оперативтік жадыда(мысалы,сегменттік регистрдің жаңа тапсырмаға ауысқан
кездегі жағдайының өзгерісінен кейін жаңа) орналасқан дескрипторлар кестелерінен
дескрипторларды бірінші рет санаудан кейінгі адрестерді сегменттік өзгерту кезінде
олар микропроцессордағы программалық қол жетімсіз регистрлерде (көлеңкелік)
сақталады.(4-сурет).Берілген сегментке келесі жүгінулерде оперативтік жадыға
жүгінусіз-ақ "көлеңкелік" регистрден дескрипторлар қолданылады.Сондықтан оны
шақыруға аз уақыт кетеді.Сегменттік регистрлердің жағдайы салыстырмалы түрде
сирек өзгереді,сонда адрестің сегменттік өзгертулер кезінде осындай қолданыс тиімді
уақыт үнемдеуге әкеледі.
Сурет4. Микропроцессор сегмент дескрипторларының сақталуы
Виртуалдық беттің нөмірлерін физикалық беттің нөмірлеріне беттік өзгерту
кезінде тікелей микропроцессорда орналасқан және 32 көп қолданылатын беттің (5-
сурет) адресін сақтайтын ассоциативті трансляцияның
(TLB)
кэш-буфері
қолданылады.
Виртуалды беттің нөмірі өзімен бірге сегменттік өзгертуінен алынған (А31 - А12)
сызықтық адрестің үлкен 20 разрядын көрсетеді.Бұл нөмірдің кіші разрядымен (А14 -
А12) ассоциативнтік трансляциядағы буфер таңдалады.Бұл блоктың әрбір төрт
жолындағы тэгтердің жолақтарының мәндері ассоциативтік түрмен (бір мезгілде)
сызықтық адрестің разрядтарымен(А31 - А15) салыстырылады.Егер таңдалған блоктың
жолдарының бірінің мәні сәйкес келсе, онда бұл виртуалды беттің нөмірі физикалық
беттің нөміріне өзгертілді және бұл өзгертудің мәні TLBтабылған жолында сақтаулы
тұр дегенді білдіреді.Егер салыстыру сәтті болмаса,онда виртуалды беттің
нөмірі
физикалық беттің нөміріне өзгертілуі БКК мен БК-ға жүгіну арқылы қарапайым жүреді,
ал алынған мәндер TLB-ға енгізіледі.Cонымен қатар бұл беттің(A31-A15) сызықтық
адресінің үлкен 17 разряды тегтар жолағында енгізіледі. Егер А14-А12 разрядтарымен
анықталатын еркін жолдар болмаса,онда блоктан ақпараты бәрінен көп қолданылмаған
жол шығады (LRU механизмі).
Достарыңызбен бөлісу: |