Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
51-72.docx
Скачиваний:
2
Добавлен:
22.09.2019
Размер:
29.65 Кб
Скачать

51. Каков типовой размер КЭШ строки и чем он определяется.

Типовой объем кэш-памяти в современной системе – 8…1024 кбайт, а длина кэш-строки 4…32 байт. Дальнейшая оценка делается для значений объема кэша 256 кбайт и длины строки 32 байт, что характерно для систем с процессорами Pentium и PentiumPro. Длина тега при этом равна 27 бит, а количество строк в кэше составит 256К/32=8192.

52. Какими способами можно выполнять программы, размер которых превышает физический размер имеющейся в системе оперативной памяти?

Вначале стали использовать оверлейную структуру программ, когда большая программа разбивается на отдельные модули перекрытия (оверлеи overlays). Как альтернатива оверлейной структуре, возникла концепция виртуальной памяти (1961 г, Манчестер). Фактически используется та же идеология перезагрузки модулей (свопинг swapping), однако замена осуществляется аппаратурой и операционной системой автоматически, без какого-либо участия программиста и незаметно для него. При этом программист оперирует адресами в (линейном) виртуальном адресном пространстве задачи, размер которого не меньше размера программы (включающей как исполняемый код, так и данные). Каждый объект программы в пространстве виртуальных адресов имеет уникальный адрес.

53. Каковы основные недостатки программ с оверлейной структурой по сравнению с программами, работающими в системе с виртуальной памятью?

Большая программа разбивается на отдельные модули перекрытия (оверлеи overlays). Первый модуль загружается в память и работает. Если ему нужен код или данные, содержащиеся в других модулях, то работающий модуль вызывает функции, загружающие другие модули. При этом программист сам должен отследить: 1) вызов функций загрузки, 2) передачу управления вновь загруженным модулям, 3) контроль суммарного объема загруженных модулей (объем не должен превышать имеющегося объема памяти), 4) размещение модулей в памяти, и другие подобные вопросы. Эта работа оказывается весьма трудоемкой. При этом отметим, что поскольку вновь загружаемые модули "ложатся" в память на место находившихся там ранее, то 1) разные объекты программы, находящиеся в разных модулях, но попадающие в одно и то же место физической памяти, получают одни и те же физические адреса, 2) расходуется время на перезагрузку модулей 3) фрагментируется память, поскольку модули имеют разные размеры, 4) для работы в другой конфигурации памяти требуется перекомпоновка программы.

54. Отметьте верные утверждения о технологиях виртуальной памяти и оверлейной организации программ?

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

Термин линейный адрес подразумевает, что все адреса, используемые программой, расположены в едином одномерном (линейном) адресном пространстве, и каждый программный объект (элемент данных или команда программного кода) имеет свой уникальный адрес в этом пространстве. В противоположность этому, при использовании оверлейной структуры, один и тот же адрес может соответствовать нескольким объектам из разных модулей (оверлеев), загружаемых в одну область памяти в разные интервалы времени.

55. Как в архитектуре x86 в защищенном режиме формируется физический адрес?

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

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

В защищенном режиме виртуальной адресации процессоры i386+ формируют 32-разрядный физический адрес и позволяют адресовать до 4Гбайт физической памяти (PentiumPro и некоторые другие старшие модели семейств Pentium+ - имеют 36-разрядную адресную шину, что определяет максимальный объем физическую память величиной 64 ГБайт).

В процессорах х86 использован сегментный механизм преобразования (трансляции) адреса.

56. Что такое дескриптор сегмента?

Кроме базового адреса (32 бита) и длины сегмента (20 битов), в теневой части каждого сегментного регистра хранится еще ряд характеристик (атрибутов) данного сегмента. Они в совокупности с базовым адресом и длиной образуют дескриптор (описатель) сегмента.

57. Какую информацию (из указанных) содержит дескриптор сегмента:

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

Формат дескриптора: Поле INDEX указывает номер дескриптора в таблице дескрипторов. Поле TI (Table Indicator) выбирает одну из двух дескрипторных таблиц: глобальную GDT или локальную LDT. Каждой задаче могут быть доступны две дескрипторные таблицы, а общее максимальное количество сегментов составляет 16384. Двухбитовое поле RPL указывает запрошенный программой уровень привилегий (см. далее) и используется при защите памяти.

58. Где находится дескриптор сегмента?

Дескрипторы сегментов программ формируются операционной системой в специальных системных структурах данных – дескрипторных таблицах сегментов при подготовке программы к выполнению. Дескрипторные таблицы постоянно хранятся в ОЗУ.

59. Откуда берется дескриптор сегмента?

Дескрипторы создаются операционной системой и хранятся в системных таблицах в ОЗУ. Системные объекты и соответственно, их дескрипторы создаются во время инициализации ОС. Дескрипторы сегментов приложения (они содержат код, данные и стек приложения) создаются при инициализации приложения, перед его запуском. При загрузке ОС вначале работают программы реального режима, которые создают дескрипторные таблицы и определяют дескрипторы для компонент ОС, после чего процессор переводится в защищенный режим.

60. Почему, несмотря на то, что дескрипторы сегментов располагаются в дескрипторных таблицах (в ОЗУ), трансляция адреса, требующая использования 8-байтового дескриптора, происходит быстро?

Табличное преобразование адреса при включенном страничном механизме выполняется один или несколько раз при выполнении каждой команды. Для того, чтобы страничная трансляция происходила быстро, для хранения индексов недавно использовавшихся страниц и их базовых адресов используется небольшая память с ассоциативным доступом – Буфер Ассоциативной Трансляции (Translation LookAside Buffer TLB), которая обычно выполняется как полностью ассоциативная (Fully Assocciative).

Для ускорения процедуры трансляции сегментов, дескрипторы сегментов, селекторы которых загружены в сегментные регистры, скопированы в невидимые, «теневые» 8-байтовые «продолжения» сегментных регистров. Именно из теневых частей (быстро !) извлекается значение базового адреса при трансляции сегмента.

61. Когда происходит загрузка дескриптора из дескрипторной таблицы в теневую часть сегментного регистра?

Когда происходит загрузка дескриптора в теневой регистр? Это происходит при выполнении команд, изменяющих содержимое «обычных» сегментных регистров (команды mov seg_reg, reg; lds; les; lfs, lgs, lss, jmp far, call far, int n,…). При выполнении подобных команд в защищенном режиме, процессор не только помещает новое значение (селектор сегмента) в видимую часть сегментного регистра, но и загружает из соответствующей дескрипторной таблицы восьмибайтовый дескриптор в теневую часть сегментного регистра.

62. Какой может быть задана длина сегмента в процессорах х86:

Длина сегмента в защищенном режиме не фиксирована, а задается 20-битовым полем Limit (предел), которое вместе с базовым адресом находится в теневой части сегментного регистра. Длина сегмента может иметь величину от 1 байта до 4 Гбайт.

63. Каким может быть задан базовый адрес сегмента в процессорах х86:

Базовый адрес каждого из шести сегментов хранится в не видимом программисту (теневом) «продолжении» соответствующего сегментного регистра и имеет длину 32 бита (4 байта). Теневая часть сегментного регистра имеет длину 8 байтов (64 бита).

64. Можно ли отключить сегментный механизм трансляции адреса, если процессор х86 находится в защищенном режиме виртуальной адресации? Ну вроде нет

65. В конфигурации сегментов, называемой "плоской моделью памяти" (Flat Memory Model)…

Что это вообще за модель?

66. Наличие в процессорах х86 страничного механизма…

Если включен страничный механизм, то все физическое адресное пространство разбивается на блоки одинакового размера – страницы. В процессорах семейства х86 страницы могут иметь размер 4 кбайт либо 4 Мбайт. Существующие операционные системы используют в основном маленькие 4 кбайтные страницы. Дальнейшее рассмотрение идет применительно именно к этому варианту.

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

Отдельные участки адресного пространства можно сделать видимыми разным программам через произвольные участки логического адресного пространства.

67. Как может располагаться в памяти страница при включенном страничном механизме в процессорах х86?

Все физическое адресное пространство разбивается на блоки одинакового размера – страницы.

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

68. Отметьте верные утверждения о синхронном и асинхронном способах передачи данных от источника к приемнику на магистрали. – странная, вопрос повторила, но отвечу по-другому (29)

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

  1. На заметку: Стробирование данных – дополнительный управляющий сигнал (строб данных) задает момент (интервал) времени, когда происходит передача (изменение состояния линий данных). Может быть введено понятие «активного» устройства, задатчика, инициатора, который формирует строб и пассивного устройства.

Длительность строба данных tc при синхронном обмене (рис.2) задается "активным" устройством. Разработчик выбирает эту длительность заранее, исходя из известного быстродействия устройства-приемника. При асинхронном обмене (рис.3) длительность строба определяется скоростью реакции пассивного устройства - в ответ на появление строба данных из активного устройства пассивное формирует ответный сигнал готовности, задержка появления которого и определяет длительность процесса обмена.

Существует две разновидности магистралей: синхронные и асинхронные.

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

69. Какое устройство при параллельном обмене называют «активным» (Bus Master, Задатчик)?

Может быть введено понятие «активного» устройства, задатчика, инициатора, который формирует строб и пассивного устройства.

Момент передачи данных и источник данных определяются тем, какой строб и в какой момент поступает. (Сравните с принципами микропрограммного уровня организации процессоров).

При связи между двумя устройствами одно из них определяет моменты времени, в которые происходит обмен. Его называют задатчиком шины или "активным" (bus master). Активное устройство задает временную диаграмму обмена.

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

Двунаправленность линий – дополнительный управляющий сигнал для указания направления передачи. Требуется специальная схемотехника, позволяющая соединять вместе несколько выходов ЛЭ.

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

71. Каковы свойства "пакетного канального цикла", появившегося в процессорах Intel, начиная с модели i486 и. реализованного во всех старших моделях х86.

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

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

Подобный пакетный цикл впервые был реализован в канале процессора i486, с целью ускорить процесс передачи кэш-строки между ОЗУ и кэш-памятью. Канал процессора 486 имеет 32-разрядные шины адреса и данных. Строка кэш-памяти первого уровня в i486 находится на кристалле и имеет длину 16 байтов (4 длинных 4-байтовых слова). Таким образом, для передачи содержимого кэш-строки требуется четыре канальных цикла.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]