Методы и способы организации памяти
Под памятью цифровых вычислительных устройств понимают запоминающее устройство, предназначенное для приема (записи), хранения и выдачи (считывания) информации, представленной двоичным кодом. Основными характеристиками ЗУ являются:
информационная емкость, определяемая максимальным объемом хранимой информации в битах или байтах; быстродействие, характеризуемое временем выборки информации из ЗУ и временем цикла обращения к ЗУ с произвольным доступом или временем поиска и количеством переданной в единицу времени информации в ЗУ
(или из ЗУ) с последовательным доступом; энергопотребление, определяемое электрической мощностью, потребляемой ЗУ от источника питания в каждом из режимов работы, а также надежность, стоимость, масса, габаритные размеры и др.
Со времени появления больших (по размерам) компьютеров сложилось деление памяти на внутреннюю и внешнюю:
внутренняя память – электронная (полупроводниковая) память, уста-
навливаемая на системной плате или на платах расширения; внешняя память – память, реализованная в виде устройств с различными принципами хранения информации и обычно с подвижными носителями. Обычно это устройство магнитной (дисковой и ленточной) памяти, оптической и магнитооптической памяти.
Для процессора непосредственно доступной является внутренняя (оперативная) память.
Основная, или оперативная, память (MainMemory) компьютера используется для оперативного обмена информацией (командами и данными) между процессором, внешней памятью (например, дисковой) и периферийными подсистемами (графика, ввод/вывод, коммуникации и т. п.). Ее другое название – ОЗУ – примерно соответствует английскому термину RAM (RandomAccessMemory) – память с произвольным доступом. Произвольность доступа подразумевает возможность операций записи или чтения любой ячейкой ОЗУ в произвольном порядке.
Требования, предъявляемые к основной памяти: большой (для электронной памяти) объем, исчисляемый единицами,
десятками и даже сотнями мегабайт; быстродействие и производительность, позволяющие реализовать вы-
числительную мощность современных процессоров; высокая надежность хранения данных – ошибка даже в одном бите,
в принципе, может привести и к ошибкам вычислений, и к искажению, и потере данных.
Оперативная память является одним из трех основных элементов, на которых держится «компьютерный мир» (процессор, память и периферийные устройства).
Оперативное хранение информации выполняет динамическая память, имеющая наилучшее сочетание объема, плотности упаковки, энергопотребления и цены. Однако ей присуще невысокое (по характеристикам современных процессоров) быстродействие. Динамическую память замещает статическая, быстродействие которой выше, но достижимая емкость принципиально ниже, чем у динамической.
Обсудим основные параметры оперативной памяти – быстродействие, производительность, достоверность хранения и методы их улучшения.
Время доступа (accesstime) определяется как задержка появления действительных данных на выходе памяти относительно начала цикла чтения.
Длительность цикла определяется как минимальный период следующих друг за другом обращений к памяти, причем циклы чтения и записи требуют различных затрат времени.
Производительность памяти характеризуется скоростью потока записываемых или считываемых данных и измеряется в мегабайтах в секунду. Производительность подсистемы памяти зависит от типа и быстродействия применяемых запоминающих элементов, разрядности шины памяти и некоторых особенностей архитектуры.
Разрядность шины памяти – это количество байт (или бит), с которыми операция чтения или записи может быть выполнена одновременно. Разрядность основной памяти обычно согласуется с разрядностью внешней шины процессора (1 байт – для I8088; 2 байта – для I8086, I80286, I386SX; 4 байта – для I386DX, I486; 8 байт – для Pentium и выше). Вполне очевидно, что при одинаковом быстродействии микросхем или модулей памяти производительность блока с большей разрядностью будет выше, чем у малоразрядного. Именно с целью повышения производительности у 32-битного (по внутренним регистрам) процессора Pentium внешняя шина, связывающая его с памятью, имеет разрядность 64 бита.
Банком памяти называют комплект микросхем, или модулей (а также их посадочных мест – «кроваток» для микросхем, слотов для SIMM или DIMM), обеспечивающий требуемую для данной системы разрядность хранимых данных. Работоспособным может быть только полностью заполненный банк. Внутри одного банка практически всегда должны применяться одинаковые (по типу и объему) элементы памяти.
Если устанавливаемый объем памяти набирается несколькими банками, появляется резерв для повышения производительности за счет применения чередования банков (bankinterleaving). Идея чередования заключается в том, что смежные блоки данных (разрядность такого блока данных соответствует разрядности банка) располагаются поочередно в разных банках. Чем больше банков участвуют в чередовании, тем выше (теоретически) предельная производительность. Чаще всего используется чередование двух или трех банков (twowayinterleaving, threewayinterleaving).
Применение теневой памяти (shadowmemory) позволяет повысить производительность компьютера при интенсивном обращении к относительно медленной памяти модулей ROM BIOS и видеопамяти. Идея метода заключается в «затенении» медленного модуля специальной памяти блоком быстродействующей оперативной памяти.
При использовании ShadowROM содержимое затеняемой области (ROM) копируется в RAM и при дальнейшем обращении по этим адресам подставляется физическая область RAM, а запись в эту область блокируется. При использовании ShadowRAM запись производится одновременно в физическую память затеняемой области и в оперативную память (RAM), а при чтении обращение идет только к оперативной памяти. Shadow RAM обычно применяется для ускорения работы графических адаптеров.
Разделяемая память адаптера – память, содержимое которой может изменяться как со стороны системной шины (по инициативе процессора или других ее абонентов), так и со стороны адаптера, составной частью которого она является. Примерами разделяемой памяти являются буферная память коммуникационных адаптеров (она в произвольный момент времени может быть заполнена принятым из сети пакетом) и видеопамять адаптеров с графическими сопроцессорами (битовое разложение графического примитива строится в ней внутренним процессором графического адаптера).
Теневая память дает двойной эффект повышения производительности: затеняемые области обычно имеют малую разрядность (ROM BIOS – 8 бит, видеопамять небольшого объема – 8 или 16 бит) и низкое быстродействие (ROM имеет время доступа более 100 нс, а обращение к видеопамяти тормозится конкурирующим процессом – регенерацией изображения).
В процессорах I486 и старше для повышения производительности обмена данными с последовательно расположенными ячейками памяти введен так называемый пакетный цикл обмена –BurstCycle. Обычный цикл обмена имеет фазу адреса и фазу данных. Пакетный цикл предназначен для последовательного обмена обычно с четырьмя соседними элементами (байт, слово, двойное слово. ) памяти. При этом фаза адреса существует только в начале цикла, а следующие три передачи осуществляются без нее: подразумевается автоматическое изменение адреса по определенным правилам.
В любой из многих миллионов ячеек памяти возможен случайный сбой или окончательный отказ, приводящий к ошибке. Вероятность ошибки, естественно, возрастает при увеличении объема памяти.
Отказ ячейки памяти – потеря ее работоспособности, обычно требующая замены элемента памяти. Отказ может быть устойчивым, но возможно и самопроизвольное восстановление работоспособности, например после повторного включения питания. Часто причиной отказов является неисправность контакта или нарушение условий эксплуатации.
Случайный сбой может произойти и в исправной микросхеме памяти, например при пролете через нее ионизирующей частицы (по этой причине в условиях высокого уровня радиации обычные электронные элементы неработоспособны). После сбоя следующая запись в ячейку произойдет нормально.
В первых моделях персональных компьютеров (РС) обязательно применялся контроль четности. При его использовании каждый байт памяти сопровождался битом паритета (Paritybit), дополняющим количество единиц в байте до нечетного. При обнаружении ошибки паритета схемой контроля вырабатывается немаскируемое прерывание (NMI) и его обработчик обычно выводит на экран сообщение ParityErrorCheck (ошибка паритета) с указанием адреса сбойной ячейки и останавливает процессор командой Halt.
Дата добавления: 2016-10-17 ; просмотров: 1555 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник
Организация памяти компьютера. Простейшие схемы управления памятью
Введение
Главная задача компьютерной системы – выполнять программы. Программы вместе с данными, к которым они имеют доступ , в процессе выполнения должны (по крайней мере частично) находиться в оперативной памяти . Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и компонентами ОС. Эта деятельность называется управлением памятью. Таким образом, память ( storage , memory ) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память была самым дорогим ресурсом.
Часть ОС, которая отвечает за управление памятью , называется менеджером памяти.
Физическая организация памяти компьютера
Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную, оперативную , физическую ) и вторичную (внешнюю) память.
Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти , декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти . Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство , состоящее из последовательности байтов. В отличие от оперативной памяти , она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти .
Эту схему можно дополнить еще несколькими промежуточными уровнями, как показано на рис. 8.1. Разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости.
Многоуровневую схему используют следующим образом. Информация, которая находится в памяти верхнего уровня, обычно хранится также на уровнях с большими номерами. Если процессор не обнаруживает нужную информацию на i-м уровне, он начинает искать ее на следующих уровнях. Когда нужная информация найдена, она переносится в более быстрые уровни.
Локальность
Оказывается, при таком способе организации по мере снижения скорости доступа к уровню памяти снижается также и частота обращений к нему.
Ключевую роль здесь играет свойство реальных программ, в течение ограниченного отрезка времени способных работать с небольшим набором адресов памяти. Это эмпирически наблюдаемое свойство известно как принцип локальности или локализации обращений.
Свойство локальности (соседние в пространстве и времени объекты характеризуются похожими свойствами) присуще не только функционированию ОС, но и природе вообще. В случае ОС свойство локальности объяснимо, если учесть, как пишутся программы и как хранятся данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Эту часть кода и данных удается разместить в памяти с быстрым доступом. В результате реальное время доступа к памяти определяется временем доступа к верхним уровням, что и обусловливает эффективность использования иерархической схемы. Надо сказать, что описываемая организация вычислительной системы во многом имитирует деятельность человеческого мозга при переработке информации. Действительно, решая конкретную проблему, человек работает с небольшим объемом информации, храня не относящиеся к делу сведения в своей памяти или во внешней памяти (например, в книгах).
Кэш процессора обычно является частью аппаратуры, поэтому менеджер памяти ОС занимается распределением информации главным образом в основной и внешней памяти компьютера. В некоторых схемах потоки между оперативной и внешней памятью регулируются программистом (см. например, далее оверлейные структуры ), однако это связано с затратами времени программиста, так что подобную деятельность стараются возложить на ОС.
Адреса в основной памяти , характеризующие реальное расположение данных в физической памяти , называются физическими адресами. Набор физических адресов, с которым работает программа, называют физическим адресным пространством .
Логическая память
Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.
Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранятся программы и данные, называется сегментацией. Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация. Сегменты содержат процедуры, массивы, стек или скалярные величины , но обычно не содержат информацию смешанного типа.
По-видимому, вначале сегменты памяти появились в связи с необходимостью обобществления процессами фрагментов программного кода (текстовый редактор, тригонометрические библиотеки и т. д.), без чего каждый процесс должен был хранить в своем адресном пространстве дублирующую информацию. Эти отдельные участки памяти, хранящие информацию, которую система отображает в память нескольких процессов, получили название сегментов . Память, таким образом, перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номер сегмента , смещение внутри сегмента . Далее оказалось удобным размещать в разных сегментах различные компоненты процесса (код программы, данные, стек и т. д.). Попутно выяснилось, что можно контролировать характер работы с конкретным сегментом , приписав ему атрибуты, например права доступа или типы операций, которые разрешается производить с данными, хранящимися в сегменте .
Некоторые сегменты , описывающие адресное пространство процесса, показаны на рис. 8.2. Более подробная информация о типах сегментов имеется в лекции 10.
Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием.
Адреса, к которым обращается процесс, таким образом, отличаются от адресов, реально существующих в оперативной памяти . В каждом конкретном случае используемые программой адреса могут быть представлены различными способами. Например, адреса в исходных текстах обычно символические. Компилятор связывает эти символические адреса с перемещаемыми адресами (такими, как n байт от начала модуля). Подобный адрес, сгенерированный программой, обычно называют логическим (в системах с виртуальной памятью он часто называется виртуальным) адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством .
Связывание адресов
Итак логические и физические адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора (например, 2 32 ) и в современных системах значительно превышает размер физического адресного пространства . Следовательно, процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти . Такое отображение адресов называют трансляцией (привязкой) адреса или связыванием адресов (см. рис. 8.3).
Связывание логического адреса, порожденного оператором программы, с физическим должно быть осуществлено до начала выполнения оператора или в момент его выполнения. Таким образом, привязка инструкций и данных к памяти в принципе может быть сделана на следующих шагах [Silberschatz, 2002].
Источник