Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
18.08.2022
Размер:
763.26 Кб
Скачать

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

Регистровые ЗУ

Для хранения операндов и промежуточных результатов используется блок регистров общего назначения (РОН), который вместе со схемами адресации и выборки образует регистровое запоминающее устройство (РЗУ), входящее в состав микропроцессора. Объем РЗУ для различных типов микропроцессоров составляет от нескольких единиц до сотен байт. В большинстве микропроцессоров РЗУ содержит 8, 16 или 32 регистра, обращение к которым осуществляется с помощью регистровой адресации. Регистры работают с тактовой частотой процессора, запись и считывание оп102ерандов производится за один такт. Регистры РЗУ (все или часть) служат также для хранения адреса при выполнении косвенно-регистровой адресации.

Синхронная динамическая память (SDRAM – SDR, DDR, DDR2)

Синхронная динамическая память с произвольным доступом ( SDRAM ) является любой динамической памятью с произвольным доступом (DRAM) , где работа внешнего интерфейса штыря координируется подаваемый извне сигнал синхронизации . DRAM интегральные схемы (ИС) , полученные с начала 1970 - х до середины 1990-х использовали асинхронный интерфейс, в котором управляющие сигналы ввода имеют непосредственное влияние на внутренние функции только с задержкой на поездки по ее полупроводниковых путей. SDRAM имеет синхронный интерфейс, посредством чего изменений на входах управления, признается после того, как по переднему фронту его тактового входа. В SDRAM семье стандартизованной JEDEC , тактовый сигнал управляет степпингом внутреннего конечного автомата , который отвечает на входящие команды. Эти команды могут быть конвейерным для повышения производительности, с ранее начали операции завершения в то время как новые команды будут получены. Память разделена на несколько одинаковых по размеру , но независимые секции , называемые банки , что позволяет устройству работать на команды доступа к памяти в каждом банке одновременно и скорость доступа в качестве чередованием моды. Это позволяет SDRAMs для достижения большего параллелизма и более высоких скоростей передачи данных , чем асинхронная DRAMs могла.

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

SDRAM широко используется в компьютерах . Помимо оригинальной SDRAM, дальнейшие поколения с удвоенной скоростью передачи данных RAM вошли в массовый рынок - DDR (также известный как DDR1), DDR2, DDR3 и DDR4, с последним поколением (DDR4) выпущен во второй половине 2014 года

Ассоциативный доступ в ЗУ

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

Запоминающий массив, как и в адресных ЗУ, разделен на m-разрядные ячейки, число которых n. Как правило, в состав АЗУ входят:

  • запоминающий массив (ЗМ);

  • регистр ассоциативных признаков (РгАП);

  • регистр маски (РгМ);

  • регистр индикаторов адреса со схемами сравнения на входе.

Рис 7 –– Принцип работы АЗУ

Кеш-память. Механизм работы

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

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

Рис 8 –– Механизм работы кэш-памяти

Способы отображения основной памяти на кэш

Алгоритм поиска и алгоритм замещения данных в кэше непосредственно зависят от того, каким образом основная память отображается на кэш-память. Принцип прозрачности требует, чтобы правило отображения основной памяти на кэш-память не зависело от работы программ и пользователей. При кэшировании данных из оперативной памяти широко используются две основные схемы отображения: случайное отображение и детерминированное отображение. При случайном отображении элемент оперативной памяти в общем случае может быть размещен в произвольном месте кэш-памяти. Для того чтобы в дальнейшем можно было найти нужные данные в кэше, они помещаются туда вместе со своим адресом, то есть тем адресом, который данные имеют в оперативной памяти. При каждом запросе к оперативной памяти выполняется поиск в кэше, причем критерием поиска выступает адрес оперативной памяти из запроса. Очевидная схема простого перебора для поиска нужных данных в случае кэша оказывается непригодной из-за недопустимо больших временных затрат. Для кэшей со случайным отображением используется так называемый ассоциативный поиск, при котором сравнение выполняется не последовательно с каждой записью кэша, а параллельно со всеми его записями. Признак, по которому выполняется сравнение, называется тегом (tag). В данном случае тегом является адрес данных в оперативной памяти. Электронная реализация такой схемы приводит к удорожанию памяти, причем стоимость существенно возрастает с увеличением объема запоминающего устройства. Поэтому ассоциативная кэш-память используется в тех случаях, когда для обеспечения высокого процента попадания достаточно небольшого объема памяти.

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

В качестве отображающей функции может использоваться простое выделение нескольких разрядов из адреса оперативной памяти, которые интерпретируются как номер строки кэш-памяти (такое отображение называется прямым). Например, пусть в кэш-памяти может храниться 1024 записи, то есть кэш имеет 1024 строки, пронумерованные от 0 до 1023. Тогда любой адрес оперативной памяти может быть отображен на адрес кэш-памяти простым отделением 10 двоичных разрядов.

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

Фрагментация памяти

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

Появление или непоявление фрагментации зависит от метода организации памяти.

Внутренняя фрагментация – при заполнении страниц в среднем половина последней страницы остаётся незаполненной. Эти «дыры» и есть внутренняя фрагментация.

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

Виртуальная память. Механизм свопинга (swapping)

Свопинг(swapping - подкачка) – образы процессов выгружаются на диск и возвращаются в оперативную память целиком

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

Управление памятью в ОС Unix

В UNIX реализована виртуальная память процессов. Каждый процесс исполняется в собственном адресном пространстве и не может непосредственно обращаться к памяти других процессоров. Такая изоляция процессов друг от друга обеспечивается механизмами операционной системы и поддерживается на аппаратном уровне в современных процессорах.

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

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

Буфер переадресации (TLB)

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

TLB иногда реализуются как память контента адресации (CAM). Ключ поиска CAM является виртуальным адресом, и результат поиска является физическим адресом . Если запрашиваемый адрес присутствует в TLB, поиск CAM дает совпадение быстро , и полученный физический адрес может быть использован для доступа к памяти. Это называется хитом TLB. Если запрашиваемый адрес не в TLB, это промах, и перевод происходит по глядя на таблицу страниц в процессе называется страницы ходьбы . Страницы ходьба отнимает много времени по сравнению со скоростью процессора, так как она включает в себя чтение содержимого нескольких ячеек памяти и использовать их для вычисления физического адреса. После того , как физический адрес определяется страницы блуждания, виртуальный адрес для физического отображения адреса вводится в TLB. PowerPC 604 , например, имеет двухстороннюю набор-ассоциативный TLB для загрузки данных и магазинов. Некоторые процессоры имеют различные инструкции и адрес данных буферов TLB

Основная область памяти

Основная область памяти (Основная память, англ. Conventional memory) занимает первые 640 Кбайт оперативной памяти в IBM PC-совместимых компьютерах. В эту область загружается таблица векторов прерываний (занимает 1 Кбайт), некоторые данные из BIOS (например, буфер клавиатуры), различные 16-битные программы DOS. Для них 640 Кбайт являются барьером

Область верхних адресов (HMA)

Начальный участок дополнительной памяти объёмом 65520 байт (64 килобайта минус 16 байт) с адресами от 10000016 до 10FFEF16 (сразу после Upper Memory Area), доступный в реальном режиме через верхние сегменты адресного пространства. Особенность процессоров 80286 и выше и построенных на них IBM PC/AT-совместимых компьютеров

Оверлейная память

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

Как устранить фрагментацию памяти

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

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

В настоящее время все множество реализаций виртуальной памяти может быть представлено тремя классами.

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

  2. Сегментная виртуальная память предусматривает перемещение данных сегментами - частями виртуального адресного пространства произвольного размера, полученными с учетом смыслового значения данных.

  3. Сегментно-страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных здесь является страница.

Соседние файлы в папке ОС Богомолов