Спец часть (часть 2) (3 поток) (2015) (by Кибитова) (1161602), страница 18
Текст из файла (страница 18)
поиск не последовательный, а параллельный)этогономерапоэтогономернайден,тосистемаавтоматическинаэтогономераномерапопо TLB-таблице.TLB-таблице.ЕслиЕслиискомыйискомыйномерномернайден,найден,тотосистемасистемаавтоматическиавтоматическинанауровнеаппаратурыпроверкусоответствияосуществляетатрибутов,иеслипроверкауровнеаппаратурыосуществляетсоответствияатрибутов,иеслипроверкауровне аппаратуры осуществляет проверку соответствия атрибутов, и если проверкауспешна,топроисходитстраницы…успешна,виртуальнойстраницыномеромфизическойуспешна, тото происходитпроисходит подменаподмена номераномера виртуальнойвиртуальнойстраницыномеромномеромфизическойфизическойстраницы,и,такимобразом,получаетсяфизическийадрес.страницы,страницы,и,и,такимтаким образом, получаетсяфизическийфизическийадрес.адрес.ТаблицаЕслижепромахприпоискеЕсли(номервиртуальнойстраницененайден),Еслижежеприприпоискепоискепроисходитпроисходитпромах(номер(номервиртуальнойвиртуальнойстраницестраниценененайден),найден),страниц:товэтомслучаевпрограммнуютаблицу,системавыкидываетсамуютовэтомслучаесистемаобращаетсявпрограммнуютаблицу,выкидываетсамуюстаруюто в этом случае система обращается в программную таблицу, выкидывает самуюстаруюстаруюзаписьизTLB,загружаетвнеенайденнуюзаписьизпрограммнойтаблицы,изатемзаписьизTLB,загружаетвнеенайденнуюзаписьизпрограммнойтаблицы,изапись из Рис.TLB,136.загружаетв неенайденнуюзаписьиз программной таблицы, и затемзатемTLB-таблица(TranslationLook-asideBuffer).вычисляетсяфизическийадрес.Такимобразом,получается,вычисляетсяфизическийадрес.Такимобразом,получается,чтоTLB-таблицаявляетсявычисляется физический адрес.
Таким образом, получается,чточтоTLB-таблицаTLB-таблицаявляетсяявляетсянекоторымКЭШем.некоторымКЭШем.Итак,рассмотренная модель использования TLB-таблиц является реальной, понекоторымКЭШем.Моделиотработкипромахабытьразличными.ВозможнаМоделиотработкимогутбытьВозможнаорганизациясравнениюсмоделью,промахакоторая могутбылав начале курса.Однойорганизацияиз главныхМоделитойотработкипромахамогут описанабыть различными.различными.Возможнаорганизацияотработкипромахабезпрерываний,когдасистемасамостоятельно,имеярегистрначалаотработкипромахабезпрерываний,когдасистемасамостоятельно,имеярегистрначалапроблемподходаявляется проблема,связаннаяс большим имеяразмеромтаблицыотработкиэтогопромахабез прерываний,когда системасамостоятельно,регистрначалапрограммнойтаблицыстраниц,обращаетсякэтойтаблицеиосуществляетвнейпоиск.программнойтаблицыстраниц,обращаетсякэтойтаблицеиосуществляетвнейпоиск.страниц.Отметим,чтобольшойразмерэтойтаблицыплохподвумпричинам:во-первых,программной таблицы страниц, обращается к этой таблице и осуществляет в ней поиск.Возможнамодельпрерыванием,промахевозникаетпрерывание,управлениеВозможнассс прерыванием,когдапривозникаетпрерывание,управлениеприсменемодельконтекстасистема таккогдаили прииначеобязанапоменятьэту таблицу,а такжеВозможнамодельпрерыванием,когдаприпромахепромахевозникаетпрерывание,управлениепередаетсяоперационнойсистеме,котораязатемначинаетработатьспрограммнойпередаетсяоперационнойсистеме,котораязатемначинаетработатьспрограммнойсодержимоеTLB, т.к.
там хранитсяодном процессе,этопередается операционнойсистеме, информациюкоторая затемобначинаетработатьа сво-вторых,программнойтаблицейстраниц,и ст.д.т.д.Заметим, чтовтораямодельменееэффективная,посколькутаблицейстраниц,иЗаметим,чтовтораямодельменееэффективная,посколькупроблема,связаннаяорганизациеймультипроцессирования,—необходиморешать,гдетаблицей страниц, и т.д. Заметим, что вторая модель менее эффективная, посколькупрерыванияведутувеличениюнакладныхрасходов.прерыванияведуткккувеличениюнакладныхрасходов.размещатьтаблицыразличныхпроцессов.прерываниявсеведутувеличениюнакладныхрасходов.Одним из решений, позволяющих снизитьразмер таблицы страниц, является235235235 страниц (Рис.
137). В этом случаемодель иерархической организации таблицыинформация о странице представляется не в виде одного номера страницы, а в видесовокупности номеров, используя которые, можно получить номер соответствующейфизической страницы, посредством обращения к соответствующим таблицам,участвующим в иерархии (это может быть 2-х-, 3-х- или даже 4-хуровневая иерархия).Пусть имеется 32-разрядный виртуальный адрес, который в свете рассмотреннойранее модели может, например, содержать 20-разрядный номер виртуальной страницы и12-разрядное значение смещения в ней. Если же используется двухуровневаяиерархическая организация, то этот же виртуальный адрес можно трактовать, к примеру,как 10-разрядный индекс во «внешней» таблице групп (или кластеров) страниц, 10разрядное смещение в таблице второго уровня и, наконец, 12-разрядное смещение вфизической странице.
Соответственно, чтобы получить номер физической страницынеобходимо по индексу во «внешней» таблице групп страниц найти необходимую ячейку,содержащую начальный адрес таблицы второго уровня, затем по этому адресу и по модель иерархической организации таблицы страниц (Рис. 137). В этом случаеVP112VPинформация о2020странице представляетсяне1 в виде одного номера страницы, а в виде12совокупности номеров, используя которые, можно получить номер соответствующейфизической страницы, посредством обращения к соответствующим таблицам,VP1VP2offsetVP1 в иерархииVP2 (этоoffsetучаствующимможет быть 2-х-, 3-х- или даже 4-хуровневая иерархия).Пусть имеется 32-разрядный виртуальный адрес, который в свете рассмотренной10121012 содержать 20-разрядный номер виртуальной страницы и10ранее моделиможет,10например,12-разрядное значение смещения в ней.
Если же используется двухуровневаяиерархическаято этотИндекс поорганизация,Смещениепо же виртуальный адрес можно трактовать, к примеру,Индекс поСмещениепоVP2 кластеров) страниц, 10как10-разрядныйиндексво«внешней»таблице групп (илиVP2«внешней» таблицестранице,«внешней» таблицестранице,«Внешняя»групп(кластеров)указаннойчерез«Внешняя»разрядноесмещениевтаблицевторогоуровняи,наконец,12-разрядное смещение вгрупп (кластеров) указанной черезтаблицагрупптаблицагруппстраницVPфизическойстранице.
Соответственно,чтобыполучить номер физической страницыстраницVP1 1(кластеров)(кластеров)необходимо по индексу во «внешней» таблицегруппстраниц найти необходимую ячейку,страницстраницсодержащую начальный адрес таблицы второгоуровня, затемпо этому адресу и поТаблицыТаблицыстраницФизическаязначению смещения в виртуальном адресе находится нужнаязаписьв таблицестраницстраницвтороговторогоФизическаяуровняпамятьвторого уровня,котораяуже и содержитномертаблицысоответствующейфизической страницы.уровняРис.страниц.памятьРис.137.137.ИерархическаяИерархическаяорганизацияорганизациятаблицыстраниц.
ИспользуяИспользуяданныйданный подход,подход, можетможет оказаться,оказаться, чточто всювсю таблицутаблицу страницстраниц хранитьхранить ввпамятивовсенеобязательно:из-запринципалокализациибудетдостаточнопамяти вовсе необязательно: из-за принципа локализации будет достаточно хранитьхранитьсравнительнонебольшую«внешнюю»таблицугруппстраницинекоторыетаблицысравнительно небольшую «внешнюю» таблицу групп страниц и некоторые таблицывторогоразмеры);второгоуровняуровня(они(онитакжетакже имеютимеют незначительныенезначительныеразмеры); всевсе необходимыенеобходимые таблицытаблицы236второгоуровняможноподкачиватьпомеренадобности.второго уровня можно подкачивать по мере надобности.ПодобныеПодобные рассуждениярассуждения можноможно распространитьраспространить нана большеебольшее числочисло уровнейуровнейиерархии,но,начинаяснекоторогомомента,эффективностьсистемыначинаетиерархии, но, начиная с некоторого момента, эффективность системы начинает сильносильнопадатьпадатьссростомростомчислачислауровнейуровнейиерархиииерархии(из-за(из-заразличныхразличных накладныхнакладных расходов),расходов), поэтомупоэтомуобычнообычночислочислоуровнейуровнейограниченоограниченочетырьмя.четырьмя.
Существуетиноерешение,позволяющееСуществует иное решение, позволяющеетакжетакжеобойтиобойтипроблемупроблемубольшогобольшого размераразмератаблицытаблицыстраниц,страниц,- -оноонооснованооснованонанаиспользованиииспользовании хешированияхеширования (на(на использованиииспользовании т.н.т.н.хеш-таблиц).хеш-таблиц).ЭтоЭторешениерешениеввсвоюсвоюочередь,очередь, базируетсябазируется нана использованиииспользовании хеш-функции,хеш-функции,илиилифункциифункции расстановкирасстановки (Рис.(Рис.138).138). ЭтиЭти функциифункции используютсяиспользуются вв следующейследующей задаче:задаче:пустьпусть имеетсяимеется некотороенекоторое множествомножество значений,значений, котороекоторое необходимонеобходимо каким-токаким-то образомобразомотобразитьотобразитьнанамножествомножествофиксированногофиксированногоразмера.размера.ДляДляосуществленияосуществления этогоэтого отображенияотображенияиспользуютфункцию,котораяповходномузначениюопределяетномерпозициииспользуют функцию, которая по входному значению определяет номер позиции (номер(номеркластера,кластера,кудакудадолжнодолжнопопастьпопасть этоэто значение).значение).
НоНо этаэта функцияфункция имеетимеет своисвои особенности:особенности:припри ееее использованиииспользовании возможнывозможны коллизии,коллизии, связанныесвязанные сс тем,тем, чточто различныеразличные значениязначениямогутоказатьсяводномитомжекластере.могут оказаться в одном и том же кластере. Модель преобразования адресов, основанная на хешировании, достаточно проста.VPoffsetVPoffsetИз виртуальногоадреса аппаратно извлекаетсяномер виртуальной страницы, которыйVPFPVP1 1FP11подается на вход некоторой хеш-функции,отображающейзначениенааппаратнуюFPoffsetFPoffsetтаблицу (т.н. хеш-таблицу) фиксированногоразмера.Каждая запись в данной таблицеVPFPVP2 2FP22хранит начало списка коллизий, где каждый элемент списка является парой: номерF(VP)F(VP) страницы — соответствующий ему номер физической страницы.
Итак,виртуальной……Хеш-функцияХеш-функцияперебираясоответствующий список коллизий, можно найти номер исходной виртуальнойVPFPVPFPстраницы и соответствующий номер физическойстраницы. Подобное решение имеет своидостоинства и недостатки: в частности, возникают проблемы с перемещением списков……коллизий.Еще одним решением, позволяющим снизить размер таблицыстраниц, являетсяФизическаяФизическаяХеш-таблицаХеш-таблицапамятьмодель использованият.н. инвертированных таблиц страниц (Рис.139). Главнойпамятьсложностьюданногорешения являетсятребование к процессору на аппаратном уровнеРис.138.ИспользованиеИспользованиехеш-таблиц.Рис.138.хеш-таблиц.работать с идентификаторами процессов (их PID). Примерами таких процессоров могутслужить процессоры серий SPARC и PowerPC.
237237 PIDVPFPoffsetFPPIDVPпоискТаблица страницoffsetРис. 139. Инвертированные таблицы страниц.В этой модели виртуальныйтрактуется как тройка значений: PID процесса,ТаблицастраницТаблицаадресстраницномер виртуальной страницы и смещение в этой странице. При таком подходеРис.Инвертированныетаблицыстраниц.Рис. 139.139.Инвертированныеиспользуетсяединственнаятаблицастраницдля всей системы, и каждая строка даннойтаблицы соответствует физической странице (с номером, равным номеру этой строки).этоймоделивиртуальныйадрес трактуетсякак тройка значений:PID процесса,ВэтоймоделиПри Вэтомкаждаязаписьданной таблицысодержит информациюо том, какомупроцессуномервиртуальнойи страница,смещение а втакжеэтой какаяномервиртуальнойстранице.При такомподходепринадлежитданнаястраницыфизическаявиртуальнаястраницаэтогоиспользуетсяединственнаятаблицастраницдлявсейсистемы,используетсяединственнаяикаждаястрокаданнойпроцесса размещена в данной физической странице.