Студопедия — К понятию страниц в адресном пространстве памяти компьютера.
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

К понятию страниц в адресном пространстве памяти компьютера.






00000000 00110000 01100000 10010000 11000000 11110000

00000001 00110001 01100001 10010001 11000001 11110001

00000010 00110010 01100010 10010010 11000010 11110010

00000011 00110011 01100011 10010011 11000011 11110011

00000100 00110100 01100100 10010100 11000100 11110100

00000101 00110101 01100101 10010101 11000101 11110101

00000110 00110110 01100110 10010110 11000110 11110110

00000111 00110111 01100111 10010111 11000111 11110111

00001000 00111000 01101000 10011000 11001000 11111000

00001001 00111001 01101001 10011001 11001001 11111001

00001010 00111010 01101010 10011010 11001010 11111010

00001011 00111011 01101011 10011011 11001011 11111011

00001100 00111100 01101100 10011100 11001100 11111100

00001101 00111101 01101101 10011101 11001101 11111101

00001110 00111110 01101110 10011110 11001110 11111110

00001111 00111111 01101111 10011111 11001111 11111111

00010000 01000000 01110000 10100000 11010000 100000000

00010001 01000001 01110001 10100001 11010001 100000001

00010010 01000010 01110010 10100010 11010010 100000010

00010011 01000011 01110011 10100011 11010011 100000011

00010100 01000100 01110100 10100100 11010100 100000100

00010101 01000101 01110101 10100101 11010101 100000101

00010110 01000110 01110110 10100110 11010110 100000110

00010111 01000111 01110111 10100111 11010111 100000111

00011000 01001000 01111000 10101000 11011000 100001000

00011001 01001001 01111001 10101001 11011001 100001001

00011010 01001010 01111010 10101010 11011010 100001010

00011011 01001011 01111011 10101011 11011011 100001011

00011100 01001100 01111100 10101100 11011100 100001100

00011101 01001101 01111101 10101101 11011101 100001101

00011110 01001110 01111110 10101110 11011110 100001110

00011111 01001111 01111111 10101111 11011111 100001111

00100000 01010000 10000000 10110000 11100000 100010000

00100001 01010001 10000001 10110001 11100001 100010001

00100010 01010010 10000010 10110010 11100010 100010010

00100011 01010011 10000011 10110011 11100011 100010011

00100100 01010100 10000100 10110100 11100100 100010100

00100101 01010101 10000101 10110101 11100101 100010101

00100110 01010110 10000110 10110110 11100110 100010110

00100111 01010111 10000111 10110111 11100111 100010111

00101000 01011000 10001000 10111000 11101000 100011000

00101001 01011001 10001001 10111001 11101001 100011001

00101010 01011010 10001010 10111010 11101010 100011010

00101011 01011011 10001011 10111011 11101011 100011011

00101100 01011100 10001100 10111100 11101100 100011100

00101101 01011101 10001101 10111101 11101101 100011101

00101110 01011110 10001110 10111110 11101110 100011110

00101111 01011111 10001111 10111111 11101111 100011111

 

Поэтому страничное преобразование памяти широко распространено при организации систем виртуальной памяти. Прикладные программы не касаются процесса страничного преобразования адреса и могут использовать все линейное адресное пространство. Когда программа обращается к странице, отсутствующей в физической памяти, процессор автоматически формирует особый случай страничного нарушения. При этом адрес, по которому был обнаружен последний отказ страницы, заносится и хранится в регистре управления CR2. При обработке этого особого случая операционная система загружает в оперативную память, затребованную страницу из внешней памяти (при необходимости отправляя ненужную страницу из оперативной памяти на диск). Поэтому сутью страничного преобразования является способ отображения любой страницы линейного адресного пространства на страничный кадр физического памяти.

Границы страниц следуют через одинаковые интервалы 4Кбайт. В то же время границы сегментов являются произвольными, так как определяются базовыми адресами конкретного сегмента. Строго говоря, границы страниц и сегментов не зависят друг от друга и не обязательно должны быть выровнены. Однако для повышения производительности процессора рекомендуется выравнивать небольшие сегменты (с размером 4Кбайт и менее, например сегменты состояния задач TSS), так, чтобы они полностью находились в пределах одной страницы. Такое выравнивание гарантирует, что при загрузке одной страницы будет полностью загружен весь сегмент.

Отметим также, что система защиты используется как на уровне сегментов, так и на уровне страниц. Отличие заключается в том, что если для сегментов предусмотрено 4 уровня привилегий (0,1,2,3), то при страничной организации памяти имеется всего два уровня привилегий: пользователь и супервизор. При этом уровень 3 соответствует уровню пользователя (User), а уровни 0,1,2 – уровню супервизора (Supervisor).

Организация страничного преобразования.

В процессе страничного преобразования старшие 20 бит 32-разрядного линейного адреса, которые представляют номер виртуальной страницы, заменяется другим 20-битным значением – номером физической страницы. Это осуществляется с помощью специальной таблицы страниц.

Остающиеся младшие 12 бит линейного адреса, определяют положение адресуемого байта внутри страницы (смещение в странице), и остаются неизменными. Прежде чем рассмотреть схему устройства реализации страничного преобразования адресов в современных микропроцессорах, рассмотрим общий принцип страничного преобразования виртуальных адресов адресного пространства размером 4 Г (т.е. 32-разрядных адресов) в адреса физической оперативной памяти общим объемом 32 Кбайт.

 

 

Рис III.19 Схема преобразования адреса виртуальной памяти в физический

адрес реальной оперативной памяти.

 

Будем считать, что размер страничного кадра физической оперативной памяти равен 4 Кбайт (наиболее широко используемый размер страниц). Следовательно, наша оперативная память будет содержать всего 8 страничных кадров. А поскольку пользователю дается в распоряжение 4 Гбайт памяти, то устройство преобразования адресов должно отображать 4 Гбайт виртуальной памяти на 32 Кбайт реальной физической оперативной памяти используемого компьютера. В случае же отсутствия запрашиваемого адреса в оперативной памяти, недостающая страница с требуемым адресом должна быть вызвана из внешней памяти, помещена в оперативную память и запрос по требуемому адресу должен быть повторен.

Схема преобразования адреса виртуальной памяти в физический адрес оперативной памяти в рассматриваемом случае приведена на Рис III.19. Данная схема иллюстрирует как 32-разрядный виртуальный адрес, определяющий любую ячейку виртуального адресного пространства в 4 Г, отображается в 15-разрядный физический адрес, определяющий ячейку памяти в реально используемой оперативной памяти, емкостью 32 К ячеек. Центральным блоком устройства управления памятью является таблица страниц виртуальной памяти, количество которых определяется двадцатью старшими разрядами виртуального адреса. Таким образом, в рассматриваемом случае таблица страниц содержит 220 = 1 М строк, каждая из которых характеризуется тремя основными атрибутами: номером виртуальной страницы, битом присутствия данной страницы в реальной оперативной памяти и номером страничного кадра в этой оперативной памяти. (Заметим, что в существующих устройствах управления памятью в каждой строке хранится и некоторая дополнительная информация, например, связанная с организацией системы защиты). Поскольку в нашем случае оперативная память состоит из 8 страничных кадров, то на представление номера страничного кадра достаточно трех двоичных разрядов. Поступающий на вход устройства управления памятью 32-разрядный виртуальный адрес используется следующим образом. Младшие 12 разрядов непосредственно определяют ячейку памяти в страничном кадре реальной оперативной памяти. Двадцать же старших разрядов виртуального адреса определяют номер виртуальной страницы. Если бит присутствия выбранной страницы равен 1, то это значит, что данная страница присутствует в реальной оперативной памяти и содержимое соответствующей строки таблицы страниц передается в выходной регистр устройства управления памятью, как старшие три разряда физического адреса. Если же бит присутствия равен 0, то это значит, что в оперативной памяти этой страницы нет. Следовательно, ее необходимо найти и выбрать из внешней памяти, переписать в оперативную память на место менее запрашиваемого страничного кадра, определить ее адрес в оперативной памяти (занеся соответствующий трехразрядный код в таблицу страниц), установить в 1 соответствующий бит присутствия, и повторить адресацию.

Однако практически такое одноэтапное преобразование виртуальных адресов адресного пространства в реальные физические адреса используемой оперативной памяти оказывается недостаточно эффективным.

Поэтому, вместо одноэтапного, в процессорах семейства х86 использовано более гибкое двухэтапное или двухуровневое преобразование, показанное на рисунке III.20.

Включение страничного преобразования осуществляется установкой в 1 бита PG в регистре управления CR0, а основой страничного преобразования выступает регистр управления CR3, который содержит 20 старших разрядов физического базового адреса каталога страниц текущей задачи и называется регистром базового адреса каталога страниц – PDBR (Page Directory Base Register). Младшие 12 бит адреса считаются нулевыми, т.е. каталог выровнен по границе страниц. Каталог страниц постоянно находится в памяти и не участвует в свопинге.

Каталог страниц (Page Directory) содержит 1024 32-битных элемента каталога страниц – PDE (Page Directory Entry). Каждый из них адресует подчиненную таблицу страниц, т.е. всего допускается до 1024 таблиц страниц. Каждая из таблиц страниц содержит 1024 32-битных элементов таблиц страниц – PTE (Page Table Entry), и каждый из элементов PTE, в свою очередь, адресует страницу (страничный кадр) в физической памяти. Отметим, что наличие в каталоге страниц и таблице страниц по 1024 32-битных элементов определяет их размер точно в одну страницу, поскольку каждый элемент занимает 4 байта.

Страничный кадр

Рис. III.20 Двухэтапное преобразование линейного адреса в

физический.

 

 

Собственно преобразование линейного адреса в физический адрес состоит из следующих действий.

· Старшие 10 бит (31…22) линейного адреса служат индексом каталога страниц и, дополненные двумя нулями со стороны младших разрядов (поскольку каждый элемент занимает 4 байта), суммируются с базовым адресом каталога страниц. Этим формируется адрес элемента PDE каталога и, тем самым, выбирается один из его 1024 элементов. Выбранный элемент PDE определяет 20 старших бит адреса таблицы страниц. С помощью дополнения их 12 нулями со стороны младших разрядов, формируется базовый адрес соответствующей таблицы страниц в адресном пространстве процессора.

· Средние 10 бит, биты (21…12) линейного адреса, индексируют таблицу страниц. Дополненные со стороны младших разрядов двумя нулями (поскольку каждые элемент PTE также занимает 4 байта) и, суммируясь с базовым адресом выбранной таблицы страниц, они образуют адрес в адресном пространстве запрашиваемого элемента PTE. Из последнего извлекается 20 старших разрядов базового адреса страничного кадра в физической памяти. Дополнив их 12 нулевыми младшими разрядами, процессор формирует полный базовый адрес выбранного страничного кадра в адресном пространстве.

· 20 старших разрядов базового адреса страничного кадра, хранимые в элементе PTE, объединяются (конкатенируются, сцепляются) с младшими 12 битами (11…0) линейного адреса, в результате чего получается 32-битный физический адрес, по которому производится обращение к адресуемому байту памяти.

Из изложенного следует, что полный размер всех служебных страниц в двухэтапном преобразовании адреса, в общем случае, составляет: 4 Кбайт (каталог страниц) плюс 4Мбайт (1024 таблицы страниц по 4 Кбайт каждая). Однако в любой практической системе требуемый для таблиц размер памяти можно существенно уменьшить.

Заметим, что в процессорах шестого поколения семейства Х86, т.е. начиная с процессора Pentium Pro, шина адреса используется 36 разрядная и, следовательно, адресное пространство у них составляет 64 Гбайт. Поэтому в процессорах шестого поколения, при организации страничной переадресации, имеется четыре каталога страниц, и старшие 4 бита линейного адреса используются для выбора одного из них.

 

Формат элементов каталога и таблицы страниц.

Элементы каталога страниц – PDE и элементы таблиц страниц – PTE имеют одинаковый формат, представленный на рисунке III.21. Отличие между ними заключается только в способах интерпретации битов 6 и 7 элемента.

 

 

31 12 11 9 8 7 6 5 4 3 2 1 0

  Базовый адрес таблицы страниц Биты системного программиста   G   P S     A P C D PWT U/ S R/W   P

 

31 12 11 9 8 7 6 5 4 3 2 1 0

  Базовый адрес страницы Биты системного программиста   G     D   A P C D PWT U/ S R/W   P

 

 

Рис. III.21. Формат элементов каталога и таблиц страниц

 

Адрес страничного кадра. В элементе PDE адрес страничного кадра представляет старшие 20 разрядов адреса таблицы страниц (младшие 12 разрядов равны 0). В элементе PTE адрес страничного кадра представляет старшие 20 разрядов начального адреса страницы, содержащей данные или команды, которые впоследствии конкатенируются с 12 младшими разрядами линейного адреса.

Биты системного программиста. Процессор их не использует. Разработчики ОС могут привлекать эти биты для хранения информации о «старении» таблиц страниц, т.е. о том, как часто они используются.

P (Present) бит присутствия. Этот бит показывает, присутствует ли данная страница в физической памяти (P=1) или нет (P=0). Если P=0 остальная часть элемента таблицы страниц доступна для ОС, например для хранения информации о местонахождении отсутствующей страницы. Если бит P сброшен в нуль, в каком либо элементе (PDE или PTE), то при попытке использовать этот элемент возникает особый случай (исключение ) страничного нарушения. При этом реализуется такая последовательность событий.

· ОС копирует страницу с магнитного диска в физическую память.

· ОС загружает адрес страничного кадра в элемент таблицы страниц и устанавливает бит P. Могут быть также установлены и другие биты, например, бит R/W.

· Так как в буфере TLB может оставаться копия старого элемента таблицы страниц, она очищает его.

· Осуществляется рестарт команды, вызвавшей этот особый случай.

Эти действия могут дополняться операцией выбора одного из страничных кадров и пересылку его на магнитный диск (винчестер). Биты обращения A (Accessed) и «грязный» бит D (Dirty) – содержат информацию об использовании страницы. Бит A сообщает об обращении, для считывания или записи, к странице или таблице страниц, а бит D сообщает об обращении к таблице для записи.

Периодически проверяя и сбрасывая биты A во всех элементах таблиц страниц, операционная система может следить за наиболее часто используемыми страницами памяти.

Бит D операционная система привлекает при возвращении страницы на магнитный диск. Состояние D=0 показывает, что содержимое страничного кадра не изменялось и, при выборе его для передачи на диск, в процессе свопинга физическую передачу производить не нужно. Когда же бит D=1, при выборе страничного кадра на удаление из физической памяти его содержимое необходимо записывать на диск.

Биты: R/W (Read/Write - бит считывания/записи, и U/S (User/Supervisor - пользователь/супервизор), используются в механизме защиты на страничном уровне. При этом контроль достоверности обращения осуществляется одновременно с преобразованием адреса. Если запрос страницы осуществляется программой пользователя (уровень привилегий PL=3), то при значении бита U/S = 0, этот запрос выполнен не будет, а процессор уйдет на прерывание. Если U/S = 1, то при значении R/W = 0 разрешено только чтение каталога или страницы, а при R/W = 1 возможны и чтение и запись.

Биты управления кэшированием PCD (Page Cache Disable – запрещение кэширования страницы) и PWT (Page Write Through – бит сквозной записи) применяются для управления кэшированием отдельных страниц. Бит PWT определяет политику записи при кэшировании (при PWT = 0 реализуется метод обратной записи для сохранения целостности данных памяти, а при PWT = 1 –реализуется метод сквозной записи). Бит PCD запрещает кэширование памяти для обслуживаемых страниц или таблиц. Отметим, что эти биты впервые введены в процессорах i486 и затем используются во всех дальнейших моделях процессоров семейства Х86.

G – бит глобальности. Он программно устанавливается в состояние 1, чтобы отметить каталоги страниц или страницы, часто используемые при решении данной задачи. Базовые адреса этих каталогов или страниц, загруженные во внутреннюю буферную кэш-память TLB (Translation Look-aside Buffer – буфер ассоциативной трансляции ), блока страничной переадресации, сохраняются при ее очистке.

В PDE бит 6 всегда равен 0, зато бит 7 является действующим битом PS (Page Size), который задает размер страницы. При PS =0 страница имеет размер 4 Кбайт. PS =1 используется только в МП Pentium+ при включении в управляющем регистре CR4 расширений PAE и PSE. Дело в том, что для процессоров Pentium+, т.е. процессоров пятого (P5) и шестого поколения (P6) семейства Х86 дополнительно предусмотрено страничное преобразование со страницами размером 4 Мбайт. Этот режим работы получил название PSE (Page Size Extension – расширение размера страниц). Для включения этого режима устанавливается в состояние 1 бит PSE в регистре общего управления CR4. Кроме того, устанавливается в состояние 1 бит 7 (PS – Page Size) в элементе каталога страниц

В этом случае ступень таблиц страниц исключается и 10 старших разрядов из элемента каталога страниц конкатенируются (объединяются) с 22 младшими разрядами линейного адреса, образуя физический адрес адресуемого байта в адресном пространстве памяти.

Схема страничного преобразования при страницах равных 4 Мбайт приведена на рис.III.22.

 

На первый взгляд процесс страничного преобразования выглядит довольно сложным, и должен приводить к большой потери производительности процессора, при его разрешении. Ведь при включенном механизме страничного преобразования, каждое обращения к памяти потребует две дополнительные операции считывания из нее: первое для передачи в процессор требуемого элемента PDE и второе для передачи в процессор необходимого элемента PTE.

Однако, практически, снижение производительности процессора при разрешенном страничном преобразовании оказывается весьма незначительным.

Прежде всего, потому, что устройство процессора, реализующее страничную переадресацию, включает в себя множественно-ассоциативную кэш – память TLB (Translation look aside Buffer – буфер ассоциативной трансляции), которая содержит последние используемые 32 элемента PTE. Каждый элемент PTE определяет одну из страниц, а каждая из страниц содержит 4К байтовых адресов в физической памяти. Таким образом, в кэш–буфере TLB может храниться информация об используемых за последнее время адресах для 128 Кбайт физической памяти. И, следовательно, когда блок сегментации формирует линейный адрес, который отображен на находящийся в кэш-буфере элемент PTE, страничное преобразование осуществляется без дополнительного обращения к памяти. Практический опыт показывает, что это происходит в 98% случаев.

Таким образом, дополнительное обращение к памяти при страничном преобразовании происходит только при обращении к новой странице, а это происходит сравнительно редко, учитывая принцип «локальности программ».

Более подробно принцип работы TLB будет рассмотрен в разделе, посвященном общим принципам организации кэш-памятей современного компьютера.

 

 

Замечания по сегментному и страничному

преобразованию адресов.

Использование принципа сегментации памяти в современных процессорах позволило:

· Организовать виртуальную память;

· Реализовать базовую защиту сегментов памяти от ошибок, связанных с указанием в программе неправильных логических адресов, нарушениями пределов вызываемых сегментов или нарушениями правил их использования;

· Реализовать механизм защиты сегментов памяти по привилегиям, позволяющий надежно обеспечить защиту операционной системы от несанкционированных или случайных обращений к ней, которые могли бы привести к нарушению ее правильной работы.

Однако сегментация памяти ведет и к некоторым издержкам.

Так, например, сегментация влечет за собой операции с неудобными 48 разрядными логическими адресами (указателями – селектор:смещение).

Кроме того, принцип сегментации допускает формирование сегментов разного размера, что приводит к неэффективности использования физической оперативной памяти. Это объясняется тем, что в результате свопинга могут появиться многочисленные и довольно значительные «дыры» (т.е. неиспользованные области) между сегментами в физической памяти.

Но, пожалуй, наиболее существенным недостатком является необходимость выполнения ряда дополнительных действий при загрузке селекторов в сегментные регистры. Эта операция влечет за собой необходимость обязательной загрузки из дескрипторной таблицы оперативной памяти в теневой регистр процессора соответствующего восьмибайтного дескриптора. Для этого требуется хотя бы один цикл шины. Кроме того, при этом, в дескрипторной таблице бит A этого дескриптора должен быть установлен в 1, отмечая произошедшее обращение к соответствующему сегменту. А эта операция также требует хотя бы одного цикла шины. Следует отметить, что при этом осуществляется еще и контроль типа сегмента, размера дескрипторных таблиц и уровней привилегий. Поэтому загрузка сегментного регистра длится значительно дольше, чем загрузка регистра общего назначения.

Отметим, при этом, что следствием вышесказанного является то, что маленькие сегменты делать невыгодно с точки зрения производительности работы процессора. Однако делать крупные сегменты нерационально с точки зрения эффективности использования физической памяти, поскольку заполнить сегменты полностью программным продуктом, в этом случае, гораздо сложнее.

Инициализация системы страничного преобразования позволяет уменьшить влияние некоторых недостатков сегментации памяти. Основным достоинством страничной организации памяти является фиксированный размер страницы. Поскольку неиспользованных областей памяти между страницами нет, то отсутствует и проблема внешней фрагментации памяти (наличие неиспользованных «дыр» между сегментами). Конечно, может иметь место внутренняя фрагментация, т.е. не полная заполненность отдельных страниц памяти, когда программный объект точно не укладывается в страницу или несколько страниц. Однако, в связи со сравнительно небольшим размером страниц, эта внутренняя фрагментация оказывает значительно меньшее влияние на эффективность использования памяти, чем фрагментация на уровне сегментов.

 







Дата добавления: 2015-08-12; просмотров: 1469. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

Уравнение волны. Уравнение плоской гармонической волны. Волновое уравнение. Уравнение сферической волны Уравнением упругой волны называют функцию , которая определяет смещение любой частицы среды с координатами относительно своего положения равновесия в произвольный момент времени t...

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Studopedia.info - Студопедия - 2014-2024 год . (0.013 сек.) русская версия | украинская версия