19341

МОДУЛЬНАЯ ОРГАНИЗАЦИЯ ВНУТРЕННЕЙ ПАМЯТИ

Лекция

Информатика, кибернетика и программирование

АК ЛЕКЦИЯ № 18 МОДУЛЬНАЯ ОРГАНИЗАЦИЯ ВНУТРЕННЕЙ ПАМЯТИ Блочная организация основной памяти Емкость основной памяти современных ВМ слишком велика чтобы ее можно было реализовать на базе единственной интегральной микросхемы ИМС. Необходимость объединения нес...

Русский

2013-07-11

140.5 KB

12 чел.

АК ЛЕКЦИЯ № 18 МОДУЛЬНАЯ ОРГАНИЗАЦИЯ ВНУТРЕННЕЙ ПАМЯТИ

Блочная организация основной памяти

Емкость основной памяти современных ВМ слишком велика, чтобы ее можно было реализовать на базе единственной интегральной микросхемы (ИМС). Необходимость объединения нескольких ИМС ЗУ возникает также, когда разрядность ячеек в микросхеме ЗУ меньше разрядности слов ВМ.

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

Для получения требуемой емкости ЗУ нужно определенным образом объединить несколько банков памяти меньшей емкости. В общем случае основная память ВМ практически всегда имеет блочную структуру, то есть содержит несколько банков.

При использовании блочной памяти, состоящей из В банков, адрес ячейки А преобразуется в пару (D, w) где D - номер банка, w - адрес ячейки внутри банка. Известны три схемы распределения разрядов адреса А между b и w.

• блочная (номер банка D определяет старшие разряды адреса);

• циклическая (DmodB w = A div В);

• блочно-циклическая (комбинация двух предыдущих схем).

Рассмотрение основных структур блочной ОП будем проводить на примере памяти емкостью 512 слов (29), построенной из четырех банков по 128 слов в каждом. Типовая структура памяти, организованная в соответствии с блочной структурой, показана на рис. 5.3.

Адресное пространство памяти разбито на группы последовательных адресов, и каждая такая группа обеспечивается отдельным банком памяти. Для обращения к ОП используется 9-разрядный адрес, семь младших разрядов которого (А87) поступают параллельно на все банки памяти и выбирают в каждом из них одну ячейку. Два старших разряда адреса А7 ) содержат номер банка. Выбор банка обеспечивается либо с помощью дешифратора номера банка памяти, либо путем мультиплексирования информации (на рис. 5.3 показаны оба варианта). В функциональном отношении такая ОП может рассматриваться как единое ЗУ, емкость которого равна суммарной емкости составляющих, а быстродействие - быстродействию отдельного банка.

Расслоение памяти

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

Прием чередования адресов базируется на ранее рассмотренном свойстве локальности по обращению, согласно которому последовательный доступ в память обычно производится к ячейкам, имеющим смежные адреса. Иными словами, если в данный момент выполняется обращение к ячейке с адресом 5, то следующее обращение, вероятнее всего, будет к ячейке с адресом 6, затем 7 и т. д. Чередование адресов обеспечивается за счет циклического разбиения адреса. В нашем примере (рис. 5.4) для выбора банка используются два младших разряда адреса (A1, A0) а для выбора ячейки в банке - 7 старших разрядов (A8, A2).

Поскольку в каждом такте на шине адреса может присутствовать адрес только одной ячейки, параллельное обращение к нескольким банкам невозможно, однако оно может быть организовано со сдвигом на один такт. Адрес ячейки запоминается в индивидуальном регистре адреса, и дальнейшие операции по доступу к ячейке в каждом банке протекают независимо. При большом количестве банков среднее время доступа к ОП сокращается почти в В раз (В — количество банков), но при условии, что ячейки, к которым производится последовательное обращение, относятся к разным банкам. Если же запросы к одному и тому же банку следуют друг за другом, каждый следующий запрос должен ожидать завершения обслуживания предыдущего. Такая ситуация называется конфликтом по доступу. При частом возникновении конфликтов по доступу метод становится неэффективным. В блочно-циклической схеме расслоения памяти каждый банк состоит из нескольких модулей, адресуемых по круговой схеме. Адреса между банками распределены по блочной схеме. Таким образом, адрес ячейки разбивается на три части. Старшие биты определяют номер банка, следующая группа разрядов адреса указывает на ячейку в модуле, а младшие биты адреса выбирают модуль в банке. Схему иллюстрирует рис. 5.5.

Традиционные способы расслоения памяти хорошо работают в рамках одной задачи, для которой характерно свойство локальности. В многопроцессорных системах с общей памятью, где запросы на доступ к памяти достаточно независимы, не исключен иной подход, который можно рассматривать как развитие идеи расслоения памяти. Для этого в систему включают несколько контроллеров памяти, что позволяет отдельным банкам работать совершенно автономно. Эффективность данного приема зависит от частоты независимых обращений к разным банкам. Лучшего результата можно ожидать при большом числе банков, что уменьшает вероятность последовательных обращений к одному и тому же банку памяти. Так, в суперкомпьютере NEC SX/3 основная память состоит из 128 банков.

Виртуальная память. 

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

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

Базирование адресов.

Элементарное программно-аппаратное решение – использование возможности базирования адресов.

Суть его состоит в следующем: пусть имеется исполняемый программный модуль. Виртуальное адресное пространство этого модуля лежит в диапазоне [0, A_кон]. В ЭВМ выделяется специальный регистр базирования R_баз, который содержит физический адрес начала области памяти, в которой будет размещен код данного исполняемого модуля. При этом исполняемые адреса, используемые в модуле, будут автоматически преобразовываться в адреса физического размещения данных путем их сложения с регистром R_баз. Таким образом, код используемого модуля может загрузиться в любое свободное место в памяти. Эта схема является элементарным решением организации простейшего аппарата виртуальной памяти. Аппарат виртуальной памяти – аппаратные средства компьютера, обеспечивающие преобразование (установление соответствия) программных (виртуальных) адресов, используемых в программе адресам физической памяти в которой размещена программа при выполнении.

Пусть имеется вычислительная система, функционирующая в мультипрограммном режиме. То есть одновременно в системе обрабатываются несколько программ/процессов. Один из них занимает ресурсы ЦП. Другие ждут завершения операций обмена, третьи – готовы к исполнению и ожидают предоставления ресурсов ЦП. При этом происходит завершение выполнявшихся процессов и ввод новых, это приводит к возникновению проблемы фрагментации ОЗУ. Суть ее следующая. При размещении новых программ/процессов в ОЗУ ЭВМ (для их мультипрограммной обработки) образуются свободные фрагменты ОЗУ между программами/процессами. Суммарный объем свободных фрагментов может быть достаточно большим, но, в то же время, размер самого большого свободного фрагмента недостаточно для размещения в нем новой программы/процесса. В этой ситуации возможна деградация системы – в системе имеются незанятые ресурсы ОЗУ, но они не могут быть использованы. Путь решения этой проблемы – использование более развитых механизмов организации ОЗУ и виртуальной памяти, позволяющие отображать виртуальное адресное пространство программы/процесса не в одну непрерывную область физической памяти, а в некоторую совокупность областей.

Страничная организация памяти

Страничная организация памяти предполагает разделение всего пространства ОЗУ на блоки одинакового размера – страницы. Обычно размер страницы равен 2^k. В этом случае адрес, используемый в данной ЭВМ, будет иметь следующую структуру:

Модельная (упрощенная) схема организации функционирования страничной памяти ЭВМ следующая: Пусть одна система команд ЭВМ позволяет адресовать и использовать m страниц размером 2^k каждая. То есть, виртуальное адресное пространство программы/процесса может использовать для адресации команд и данных до m = 2^r страниц, где r - разрядность поля "номер страницы".

Физическое адресное пространство – оперативная память, подключенная к данному компьютеру. Физическое адресное пространство в общем случае может иметь произвольное число физических страниц (их может быть больше m, а может быть и меньше). Соответственно структура исполнительного физического адреса будет отличаться от структуры исполнительного виртуального адреса за счет размера поля ”номер страницы”.

В виртуальном адресе размер поля определяется максимальным числом виртуальных страниц – m.

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

В ЦП ЭВМ имеется аппаратная таблица страниц (иногда таблица приписки) следующей структуры:

Таблица содержит m строк. Содержимое таблицы определяет соответствие виртуальной памяти физической для выполняющейся в данный момент программы/процесса. Соответствие определяется следующим образом: i-я строка таблицы соответствует i-й виртуальной странице. Содержимое строки αi определяет, чему соответствует i-я виртуальная страница программы/процесса. Если αi ≥ 0, то это означает, что αi есть номер физической страницы, которая соответствует виртуальной странице программы/процесса. Если αi= -1, то это означает, что для i-й виртуальной страницы нет соответствия физической странице ОЗУ (обработка этой ситуации ниже).

Итак, рассмотрим последовательность действий при использовании аппарата виртуальной страничной памяти.

  1.  При выполнении очередной команды схемы управления ЦП вычисляют некоторый адрес операнда (операндов) A_исп. Это виртуальный исполнительный адрес.
  2.  Из A_исп выделяется значение поля "номер страницы" (номер виртуальной страницы). По этому значению происходит индексация и доступ к соответствующей строке таблицы страниц.
  3.  Если значение строки ≥ 0, то происходит замена содержимого поля номер страницы на соответствующее значение строки таблицы, таким образом, получается физический адрес. И далее ЦП осуществляет работу с физическим адресом. Если значение строки таблицы равно –1 это означает, что полученный виртуальный адрес не размещен в ОЗУ. Причины такой ситуации? Их две. Первая – данная виртуальная страница отсутствует в перечне станиц, доступных для программы/процесса, то есть имеет место попытка обращения в “чужую”, нелегитимную память. Вторая ситуация, когда операционная система в целях оптимизации использования ОЗУ, откачала некоторые страницы программы/процесса в ВЗУ(свопинг).

Алгоритмы управления страницами ОЗУ. 

Проблема загрузки «новой» страницы в память. Необходимо выбрать страницу для удаления из памяти (с учетом ее модификации и пр.)

Существуют разные алгоритмы:

Алгоритм NRU

(Not Recently Used – "не использовавшийся в последнее время"), который использует биты статуса страницы в записях таблицы страниц. R - обращение, M - изменение. Эти биты устанавливаются аппаратно.

  1.  При запуске процесса M и R для всех страниц процесса обнуляются
  2.  По таймеру происходит обнуление всех битов R
  3.  При возникновении страничного прерывания ОС делит все страниц на классы по изменению.
  4.  Случайная выборка страницы для удаления в непустом классе с минимальным номером

Стратегия: лучше выгрузить измененную страницу, к которой не было обращений как минимум в течение 1 «тика» таймера, чем часто используемую страницу

Алгоритм FIFO

«Первым прибыл – первым удален» - простейший вариант FIFO. (проблемы «справедливости»)

Модификация алгоритма (алгоритм вторая попытка):

  1.  Выбирается самая «старая страница». Если R=0, то она заменяется
  2.  Если R=1, то R – обнуляется, обновляется время загрузки страницы в память (т.е. переносится в конец очереди). На п.1

Алгоритм «Часы»

  1.  Если R=0, то выгрузка страницы и стрелка на позицию вправо.
  2.  Если R=1, то R-обнуляется, стрелка на позицию вправо и на П.1.

Алгоритм LRU

Least Recently Used – наиболее давно используемая страница

Вариант реализации:

  •  Памяти N страниц. Существует битовая матрица NxN (изначально полностью обнулена).
  •  При каждом обращении к i-ой странице происходит присваивание 1 всем битам i-ой строки и 0 - всем битам i-ого столбца.
  •  Строка с наименьшим двоичным кодом - искомая

Алгоритм NFU

Not Frequently Used – редко использовавшаяся страница

Для каждой физической страницы i – программный счетчик Counti0. Изначально Counti – обнуляется для всех i.

  1.  По таймеру Counti = Counti + Ri (R - бит обращения)
  2.  Выбор страницы с минимальным значением {Counti}

Недостаток – «помнит» всю активность по использованию страниц

Модификация NFU – алгоритм старения 

  1.  Значение счетчика сдвигается на 1 разряд вправо.
  2.  Значение R добавляется в крайний левый разряд счетчика.

Организация защиты памяти

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

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

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

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

Защита отдельных ячеек памяти

Этим видом защиты обычно пользуются при отладке новых программ параллельно с функционированием других программ. Реализовать подобный режим можно за счет выделения в каждой ячейке памяти специального «разряда защиты» и связывания его со схемой управления записью в память/Установка этого разряда в 1 блокирует запись в данную ячейку. Подобный режим использовался в вычислительных машинах предыдущих поколений (ДЛЯ современных ВМ он не типичен).

Кольца защиты

Защиту адресного пространства операционной системы от несанкционированного вторжения со стороны пользовательских программ обычно организуют за счет аппаратно реализованного разделения системного и пользовательского уровней привилегий. Предусматриваются как минимум два режима работы процессора: системный (режим супервизора — «надзирателя») и пользовательский. Такую структуру принято называть кольцами защиты и изображать в виде концентрических окружностей, где пользовательский режим представлен внешним кольцом, а системный — внутренней окружностью. В системном режиме программе доступны все ресурсы ВМ, а возможности пользовательского режима существенно ограничены. Переключение из пользовательского режима в системный осуществляется специальной командой. В большинстве современных ВМ число уровней привилегий (колец защиты) увеличено. Так, в микропроцессорах класса Pentium предусмотрено четыре уровня привилегий.

Метод граничных регистров

Данный вид защиты наиболее распространен. Метод предполагает наличие в процессоре двух граничных регистров, содержимое которых определяет нижнюю и верхнюю границы области памяти, куда программа имеет право доступа. Заполнение граничных регистров производится операционной системой при загрузке программы. При каждом обращении к памяти проверяется, попадает ли используемый адрес в установленные границы. Такую проверку, например, можно организовать на этапе преобразования виртуального адреса в физический. При нарушении границы доступ к памяти блокируется, и формируется запрос прерывания, вызывающий соответствующую процедуру операционной системы. Нижнюю границу разрешенной области памяти определяет сегментный регистр. Верхняя граница подсчитывается операционной системой в соответствии с размером размещаемого в ОП сегмента.

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

Метод ключей защиты

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

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


 

А также другие работы, которые могут Вас заинтересовать

47483. Бухгалтерський облік. Методичні матеріали 388 KB
  Методичні матеріали щодо змісту та організації самостійної роботи студентів поточного і підсумкового контролю їх знань з навчальної дисципліни “Бухгалтерський облік†для спеціальності 6402 Правознавство Укладачі к. Перелік питань що виносяться на поточний та підсумковий контроль Дати визначення господарського обліку його видів та їх характеристика. Визначити види господарського обліку їх особливості і взаємозв’язок.
47484. ЦИВІЛЬНЕ ПРОЦЕСУАЛЬНЕ ПРАВО. МЕТОДИЧНІ МАТЕРІАЛИ 313 KB
  Види цивільного судочинства: позовне провадження провадження окреме провадження наказне провадження. Суть та значення наказного провадження. Провадження у справі до судового розгляду. Завдання зміст і процесуальний порядок провадження до судового розгляду.
47485. ЕКОЛОГІЧНЕ ПРАВО. МЕТОДИЧНІ МАТЕРІАЛИ 272 KB
  МЕТОДИЧНІ МАТЕРІАЛИ ЩОДО ЗМІСТУ ТА ОРГАНІЗАЦІЇ САМОСТІЙНОЇ РОБОТИ СТУДЕНТІВ ПОТОЧНОГО І ПІДСУМКОВОГО КОНТРОЛЮ ЇХ ЗНАНЬ З ДИСЦИПЛІНИ ЕКОЛОГІЧНЕ ПРАВО УХВАЛЕНО: на засіданні кафедри цивільного та трудового права Протокол №9 від 23. Механізм формування екологічного права. Місце екологічного права в системі екологічних і правових наук.
47486. МІЖНАРОДНЕ ПРАВО. МЕТОДИЧНІ МАТЕРІАЛИ 228.5 KB
  ВАДИМА ГЕТЬМАНА КАФЕДРА МІЖНАРОДНОГО ТА ЄВРОПЕЙСЬКОГО ПРАВА МЕТОДИЧНІ МАТЕРІАЛИ ЩОДО ЗМІСТУ ТА ОРГАНІЗАЦІЇ САМОСТІЙНОЇ РОБОТИ СТУДЕНТІВ ПОТОЧНОГО І ПІДСУМКОВОГО КОНТРОЛЮ ЇХ ЗНАНЬ З ДИСЦИПЛІНИ МІЖНАРОДНЕ ПРАВО УХВАЛЕНО: на засіданні кафедри міжнародного та європейського права Протокол № 6 від 14. 28 ПИТАННЯ ЩО ВИНОСЯТЬСЯ НА ЕКЗАМЕН З ДИСЦИПЛІНИ Міжнародне право як особлива правова система Між владні відносини як об’єкт міжнародного права jus inter gentes...
47487. ПРАВО СОЦІАЛЬНОГО ЗАБЕЗПЕЧЕННЯ. МЕТОДИЧНІ МАТЕРІАЛИ 251 KB
  МЕТОДИЧНІ МАТЕРІАЛИ ЩОДО ЗМІСТУ ТА ОРГАНІЗАЦІЇ САМОСТІЙНОЇ РОБОТИ СТУДЕНТІВ ПОТОЧНОГО І ПІДСУМКОВОГО КОНТРОЛЮ ЇХ ЗНАНЬ З ДИСЦИПЛІНИ ПРАВО СОЦІАЛЬНОГО ЗАБЕЗПЕЧЕННЯ УХВАЛЕНО: на засіданні кафедри цивільного та трудового права Протокол №7 від 10. Історія розвитку інституту соціального забезпечення. Організаційноправові форми соціального забезпечення. Надання соціальних послуг – як організаційноправова форма соціального забезпечення.
47488. Методические рекомендации. Бухгалтерский учет, анализ и аудит 700.5 KB
  Методические рекомендации охватывают все этапы подготовки выполнения оформления и защиты выпускной квалификационной работы. Некрасова 2010 Содержание Назначение выпускной квалификационной работы общие требования к ее содержанию Выбор темы назначение руководителя выпускной квалификационной работы Контроль выполнения выпускной аттестационной работы
47489. Java TM. Эффективное программирование 2.01 MB
  Создание и уничтожение объектов Рассмотрите возможность замены конструкторов статическими методами генерации.16 Остерегайтесь методов finlize. Методы общие для всех объектов Переопределяя метод euls соблюдайте общие соглашения.24 Переопределяя метод equls Всегда переопределяйте hshCode.
47490. Профессия: Режиссер 3.35 MB
  Недавно мне попалась книга — со времени репетиций и съемок «Гамлета» я не доставал ее с полки: трагедии Шекспира, испещренный пометками текст «Гамлета». Держал книгу в руках и думал о том, что все эти тексты с пометками вложены в меня, словно определенная программа в компьютер.