ячейки в модуле В(старшая часть адреса).
Принцип расслоения обращений иллюстрируется на рис. 4.9, а. Все программы и данные «размещаются» в адресном пространстве последо- вательно. Однако ячейки памяти, имеющие смежные адреса, находятся в различных физических модулях памяти. Если ОП состоит из 4-х мо- дулей, то номер модуля кодируется двумя младшими разрядами адреса. При этом полные m-разрядные адреса 0, 4, 8, … будут относиться к бло- ку 0, адреса 1, 5, 9, … – к блоку 1, адреса 2, 6, 10, … – к блоку 2 и адреса
3, 7, 11, … – к блоку 3. В результате этого последовательность обраще-
ний к адресам 0, 1, 2, 3, 4, 5, … будет расслоена между модулями 0, 1, 2,
3, 0, 1, ….
Поскольку каждый физический модуль памяти имеет собственные схемы управления выборкой, можно обращение к следующему модулю производить, не дожидаясь ответа от предыдущего. Так на временной диаграмме (рис. 4.9, б) показано, что время доступа к каждому модулю составляет = 4Т, где Т= ti+1 – ti– длительность такта. В каждом такте
следуют непрерывно обращения к модулям памяти в моменты времени
t1, t2, t3, ...
При наличии четырех модулей темп выдачи квантов информации из памяти в процессор будет соответствовать одному такту Т, при этом скорость выдачи информации из каждого модуля в четыре раза ниже.
Задержка в выдаче кванта информации относительно момента об- ращения также составляет 4Т, однако задержка в выдаче каждого по- следующего кванта относительно момента выдачи предыдущего соста- вит Т.
При реализации расслоения по адресам число модулей памяти мо- жет быть произвольным и необязательно кратным степени 2. В некото-
рых компьютерах допускается произвольное отключение модулей па-
мяти,
что
позволяет
исключать
из
конфигурации
неисправные
модули.
В современных высокопроизводительных компьютерах число мо-
дулей обычно
составляет
4–16,
но
иногда
превышает
64.
Так
как
схема
расслоения
по
адресам
базируется
на
допущении
о локальности,
она дает
эффект
в
тех
случаях,
когда
это
допущение
справедливо,
т.е.
при решении
одной
задачи.
Для повышения производительности мультипроцессорных систем,
работающих в многозадачных режимах, реализуют другие схемы, при
которых
различные процессоры обращаются к различным модулям памяти. Необходимо помнить, что процессоры ввода/вывода также за-
нимают циклы памяти и вследствие этого могут сильно влиять на про-
изводительность системы. Для уменьшения этого влияния обращения
центрального процессора и процессоров ввода/вывода можно организо-
вать
к
разным модулям памяти.
Обобщением идеи расслоения памяти является
возможность реа- лизации нескольких независимых обращений, когда несколько кон-
троллеров памяти позволяют модулям памяти (или группам расслоен-
ных модулей
памяти) работать
независимо.
Прямое уменьшение числа конфликтов за счет организации чере-
дующихся обращений к различным модулям памяти может быть до-
стигнуто путем
размещения программ и данных в разных модулях. Доля
команд
в программе,
требующих
ссылок
к
находящимся
в
ОП
данным, зависит от класса решаемой задачи и от архитектурных осо-
бенностей
компьютера.
Для
большинства
ЭВМ
с
традиционной
архитек-
турой и задач научно-технического характера эта доля превышает 50 %.Адрес
а
Моменты
обращения
Модули
памяти
Моменты
выдачи
б
τ τ
Модули
0
1
2
к ПР
3
Моменты обращения
Моменты выдачи в ПР
t1 t2 t3 t4
t5 t6 t7 t8
Рис. 4.9. Расслоение памяти:
а– организация адресного пространства; б– временная диаграмма работы модулей
Поскольку обращения к командам и элементам данных чередуют-
ся, то разделение памяти на память команд и память данных повышает
быстродействие
машины
подобно
рассмотренному
выше
механизму
расслоения. Разделение памяти на память команд и память данных ши-
роко используется в системах управления или обработки сигналов. В
подобного рода системах в качестве памяти команд нередко использу-
ются
постоянные
запоминающие
устройства
(ПЗУ),
цикл
которых
меньше цикла устройств, допускающих запись, это делает разделение
программ и данных весьма эффективным. Следует отметить, что обра-
щения процессоров ввода/вывода в режиме прямого доступа в память
логически
реализуются как
обращения к
памяти
данных.
Выбор той или иной схемы расслоения для компьютера (системы)
определяется
целями
(достижение
высокой
производительности
при
решении множества задач или высокого быстродействия при решении
одной задачи), архитектурными и структурными особенностями систе-
мы, а также элементной базой (соотношением длительностей циклов
памяти
и
узлов
обработки).
Могут
использоваться
комбинированные
схемы
расслоения.
-
1 ... 65 66 67 68 69 70 71 72 ... 76
Методы управления памятью
Оперативная память является важнейшим и наиболее дефицитным
ресурсом в вычислительных машинах и системах, требующим тщательно- го
и
эффективного
управления.
Проблема
усложняется
при
переходе
к мультипрограммным системам, т.к в них оперативную память одновре- менно используют несколько вычислительных процессов (программ). Типы адресов
Для
идентификации
переменных
и
команд
используются
символь-
ные имена (метки), виртуальные адреса и физические адреса (рис. 4.10).
Символьные имена присваивает
пользователь
при написании
про-
граммы
на
алгоритмическом
языке
или
ассемблере.
Виртуальные адреса вырабатывает транслятор, переводящий про-
грамму на машинный язык. Так как во время трансляции в общем слу-
чае неизвестно, в какое место ОП будет загружена программа, то транс-
лятор присваивает переменным и командам виртуальные (условные) ад-
реса, обычно считая по умолчанию, что программа будет размещена,
начиная с нулевого адреса. Совокупность виртуальных адресов процес-
са
(программы)
называется
виртуальным
адресным
пространством.
Каждый
процесс
имеет
собственное
виртуальное
адресное
простран-
ство.
Максимальный
размер
виртуального
адресного
пространства
ограничивается
разрядностью
адреса,
присущей
данной
архитектуре
компьютера и, как правило, не совпадает с объемом физической памяти,
имеющимся в
компьютере.
Идентификаторы переменных в
программе
на
алгоритмическом
языке.
Условные
адреса,
вырабатываемые
транслятором:
-
перемещающий загрузчик – статическое преобразование;
-
динамическое преобразование аппаратными средствами.
Номера
ячеек
физической
памяти.
Рис.
4.10.
Типы
адресов
Физические адреса соответствуют номерам ячеек ОП, где в дей-
ствительности расположены или будут расположены переменные и ко-
манды.
Переход
от
виртуальных
адресов
к
физическим
может
осу-
ществляться
двумя способами.
В первом случае замену виртуальных адресов на физические делает
специальная системная программа
– перемещающий загрузчик. Пере-
мещающий загрузчик на основании имеющихся у него исходных дан-
ных о начальном адресе физической памяти, в которую предстоит за-
гружать программу, и информации, предоставленной транслятором об
адресно-зависимых
константах
программы,
выполняет
загрузку
про-
граммы,
совмещая
её с
заменой
виртуальных
адресов
физическими.
Второй
способ
заключается
в
том,
что
программа
загружается
в память в неизменном виде в виртуальных адресах, при этом операци-
онная система (ОС) фиксирует смещение действительного расположе-
ния
программного
кода
относительно
виртуального
адресного
про-
странства. Во время выполнения программы при каждом обращении к
ОП выполняется
преобразование виртуального адреса в физический.
Второй способ является более гибким, он допускает перемещение про-
граммы
во
время
ее
выполнения,
в
то
время
как
перемещающий
загруз-
чик жестко привязывает программу к первоначально выделенному ей
участку. Вместе с тем использование загрузчика уменьшает накладные
расходы, т.к преобразование каждого виртуального адреса происходит