Устройства памяти разных уровней иерархии отличаются. Иерархическая организация памяти эвм

Жаропонижающие средства для детей назначаются педиатром. Но бывают ситуации неотложной помощи при лихорадке, когда ребенку нужно дать лекарство немедленно. Тогда родители берут на себя ответственность и применяют жаропонижающие препараты. Что разрешено давать детям грудного возраста? Чем можно сбить температуру у детей постарше? Какие лекарства самые безопасные?

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

Емкость ЗУ измеряется в Байтах (1Байт = 8 Бит), Килобайтах (1 Кбайт= 2 10 Байт), Мегабайтах (1Мбайт= 2 10 Кбайт), Гигабайта (1Гбайт= 2 10 Мбайт), Терабайтах (1Тбайт= 2 10 Гбайт).

Быстродействие измеряется в секундах и в настоящее время находится в пределах от 10 - 2 до 10 - 9 секунд в зависимости от способа доступа к информации.

По способу доступа к хранящейся в них информации ЗУ делятся на: ЗУ с произвольным доступом; ЗУ с прямым доступом; ЗУ с последовательным доступом.

В ЗУ с произвольным доступом время обращения не зависит от места нахождения данных. Такое доступ реализован в регистрах общего назначения, КЭШ-памяти и внутренней памяти ПК.

Носитель информации в ЗУ с прямым доступом непрерывно вращается, в результате данные доступны через некоторый фиксированный промежуток времени. К ЗУ с прямым доступом относятся НЖМД, НМГД, НОД.

ЗУ с последовательным доступом , прежде чем найти необходимые данные, «просматривает» все предыдущие участки памяти. Последовательный доступ реализована в ЗУ, использующих магнитную ленту, например, в стримерах.

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

При движении от 1-го до 3-го уровня иерархии быстродействие ЗУ уменьшается, а емкость увеличивается.

Иерархическая организация памяти позволяет повысить производительность ПК и предоставить пользователю практически неограниченную емкость памяти.

Назначение и основные характеристики ЗУ 1-го уровня были описаны в лекции 3 Рассмотрим 2-й и 3-й уровень иерархии памяти ПК.

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

НЖМД (HDD - hard disk drive) в обиходе называют «винчестером». В отличие от оперативной памяти, НЖМД гарантируют долговременное хранение информации, для чего не требуется постоянное питание компьютера от внешнего источника электроэнергии. Для записи данных в жестких дисках используется магнитный слой. Он покрывает диски, вращающиеся внутри винчестера с огромными скоростями. Вдоль дисков перемещаются головки чтения / записи. Основными характеристика современных НЖГД являются: емкость (до 1 Тбайт); количество пластин (до 5); количество головок (10 головок); среднее время поиска информации (меньше 10 мс); скорость вращения дисков (до 10 тыс. об/мин); вес (меньше 100 г.). Основными производителями НЖМД являются фирмы IBM, Seegate, Toshiba, Fujitsu, Samsung.

НГМД (FDD - floppy disk drive) представляет собой устройство чтения / записи сменных гибких дисков (флоппи-дисков, дискет ). Ранее применялись магнитные диски 2-х размеров: 5,25"" (133 мм) и 3,5» (89 мм). Первые давно исчезли, а 3,5"" используются только для переноса относительно небольших (1,44 Mбайт) объемов информации между компьютерами. Данные на гибких дисках хранятся подобно данным на винчестере за тем лишь исключением, что диск во флоппи-дисководе вращается с много меньшей скоростью и он всего один. Из-за недостаточной герметизации дискеты чаще всего выходят из строя. Таким образом, как носитель информации флоппи-диск крайне ненадежен и в настоящее время применяется все реже.

НОД являются в настоящее время самыми надежными и широко распространенными ЗУ внешней памяти. Считывание информации с оптического диска происходит за счёт регистрации изменений интенсивности отраженного от алюминиевого слоя излучения маломощного лазера.

НОД подразделяются на: CD-ROM (Compact Disc Read Only Memory) - компакт - диск только для чтения; CD-R (Compact Disc Recordable) - однократно записываемый компакт - диск; CD-RW (Compact Disc Rewritable) - перезаписываемый компакт-диск; DVD (Digital Versatile Disk) - универсальный цифровой диск.

Стандартный оптический диск имеет емкость порядка 650-800 Мбайт, емкость DVD диск достигает 17 Гбайт.

DVD диск имея те же габариты, что и обычный оптический компакт-диск, вмещает чрезвычайно много информации - от 4,7 до 17 Гбайт. В настоящее время DVD-диск применяется лишь в двух областях: для хранения видеофильмов (DVD-Video или просто DVD) и сверхбольших баз данных (DVD-ROM, DVD-R). В отличие от CD-ROM, диски DVD записываются с обеих сторон. Более того, с каждой стороны могут быть нанесены один или два слоя информации. Таким образом, односторонние однослойные диски имеют объем 4,7 Гбайт (их часто называют DVD-5, т.е. диски емкостью около 5 Гбайт), двусторонние однослойные - 9,4 Гбайт (DVD-10), односторонние двухслойные - 8,5 Гбайт (DVD-9), а двусторонние двухслойные - 17 Гбайт (DVD-18). В зависимости от объема требующих хранения данных и выбирается тип DVD-диска. Если речь идет о фильмах, то на двусторонних дисках часто хранят две версии одного и того же фильма - одна широкоэкранная, вторая в классическом телевизионном формате.

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

Флэш-память представляет собой особый вид энергонезависимой перезаписываемой полупроводниковой памяти. Это означает, что она не требует дополнительной энергии для хранения данных (энергия требуется только для записи), допускает изменение (перезапись) хранимых в ней данных и не содержит механически движущихся частей (как обычные НЖМД или НОД) и построена на основе интегральных микросхем.

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

Основное преимущество флэш-памяти перед обычными накопителями состоит в том, что флэш-память потребляет значительно (примерно в 10-20 и более раз) меньше энергии во время работы. В НЖМД, НГМД, НОД, кассетах и других механических носителях информации, бо льшая часть энергии тратится на приведение в движение механики этих устройств. Кроме того, флэш-память компактнее большинства других механических носителей.

Размер носителя флэш-памяти составляет от 20 до 40 мм в длину, в ширину и толщина до 3 мм, емкость достигает 1Гбайт, в зависимости от типа флэш-памяти возможна перезапись информации от 10 тысяч до 1 млн раз.

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

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

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

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



Успешное или неуспешное обращение к более высокому уровню памяти называются соответственнопопаданием (hit ) или промахом (miss ). Попадание - есть обращение к объекту в памяти, который найден на более высоком уровне, в то время какпромах означает, что он не найден на этом уровне. Доля попаданий (hit rate ) или коэффициент попаданий (hit ratio ) есть доля обращений, найденных на более высоком уровне. Иногда она представляется процентами. Доля промахов (miss rate ) есть доля обращений, которые не найдены на более высоком уровне.

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

Время обращения при попадании (hit time ) есть время обращения к более высокому уровню иерархии, которое включает в себя, в частности, и время, необходимое для определения того, является ли обращение попаданием или промахом.

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

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

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

Все три вида локальности и объединяет понятие локальности по обращению . Часто принцип локальности представляют в виде так называемого правила «90/10», означающим, что 90% времени работы программы связано с доступом к 10% адресного пространства этой программы.

Рис. 3.1. Иерархическое построение памяти

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

Самый быстрый, но и минимальный по емкости тип памяти – это внутренние регистры процессора, которые иногда объединяют понятием сверхоперативное запоминающее устройство СОЗУ . Количество внутренних регистров сравнительно невелико, даже в RISC-процессорах не превышает нескольких сотен. Оперативная память значительно большей емкости располагается несколькими уровнями ниже. Между ОП и регистрами размещаются несколько уровней кэш-памяти, которая по емкости существенно проигрывает ОП, но значительно превосходит ее по быстродействию, уступая в то же время регистрам. Уровни кэш-памяти обозначаются буквой L и номером уровня. Современные ЭВМ, как правило, имеют два уровня кэш-памяти (см. рис. 3.1), хотя в новейших разработках появляется также третий уровень (L3), причем разработчики говорят о целесообразности введения и четвертого уровня L4. СОЗУ, кэш-память и ОП образуют внутреннюю память ЭВМ.

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

Нижние уровни иерархии – память на магнитных лентах и оптических дисках – служат для долговременного хранения информации (программ и данных).

В целом можно сказать, что иерархическое построение памяти характеризуется следующими положениями:

1. Имеется несколько иерархических уровней хранения организованной в блоки информации.

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

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

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

Если, например, память имеет двухуровневую структуру – ОП и кэш-память, то T эф можно записать в виде следующей функции:

T эф = f (T ОП, T кэш, P, C), (3.2)

T ОП - время цикла ОП;

T кэш - время цикла кэш-памяти;

P - вероятность промаха;

C - некоторая характеристика структурной организации двухуровневой памяти, которая, как правило, определяется экспериментально.

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

1. Уменьшить вероятность промаха.

2. Уменьшить время выборки информации из памяти более высокого уровня.

3. Сократить время пересылки информации из памяти более низкого уровня в память более высокого уровня и обратно (сохранение измененной информации).

4. Обеспечить целостность данных на всех уровнях иерархии, в т.ч. и для случая многопроцессорных ВС.

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

  • Сотовых телефонах
  • Смартфонах
  • Планшетах
  • Игровых консолях
  • Автомобильных радиоприемниках
  • Цифровых медиаплеерах
  • Телевизорах

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

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

Существует определенная иерархия компьютерной памяти. Место определенного вида памяти в ней означает ее «удаленность» от процессора. Чем «ближе» та или иная память к процессору, тем она, как правило, быстрее. Перед нами иерархическая пирамида компьютерной памяти, которая заслуживает подробного рассмотрения.

Вершиной пирамиды является регистр процессора.
За ним следует кеш-память первого (L1)
и второго уровня (L2)
Оперативная память делится на:
физическую и виртуальную
И кеш, и оперативная память являются временными хранилищами информации
Далее идут постоянные хранилища информации:
ПЗУ/BIOS; съемные диски; удаленные накопители (в локальной сети); жесткий диск
Подножие пирамиды образуют устройства ввода, к которым относятся:
клавиатура; мышь; подключаемые медиаустройства; сканер/камера/микрофон/видео; удаленные источники; другие источники

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

Роль оперативной памяти в общем «оркестре» компонентов компьютера


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

Вы включили компьютер. Он, в свою очередь, загрузил данные из постоянной памяти (ROM) и начал самотестирование при включении (power-on self-test, POST). Компьютер проверяет сам себя и определяет, исправен ли он и готов ли к новому трудовому сеансу. Целью этого этапа работы является проверка того, что все основные компоненты системы работают корректно. В ходе самотестирования контроллер памяти посредством быстрой операции чтения/записи проверяет все ячейки памяти на наличие или отсутствие ошибок. Процесс проверки выглядит так: бит информации записывается в память по определенному адресу, а затем считывается оттуда.

Компьютер загружает из ПЗУ базовую систему ввода-вывода, более известную по английской аббревиатуре BIOS. В этом «биосе» содержится базовая информация о накопителях, порядке загрузки, безопасности, автоматическом распознавании устройств (Plug and Play) и некоторые иные сведения.

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

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

Что происходит, когда вы сохраняете файл и закрываете приложение? Файл записывается на жесткий диск, а приложение «выталкивается» из оперативной памяти. То есть и само приложение, и связанные с ним файлы удаляются из оперативной памяти. Тем самым освобождается место для новой информации: других приложений и файлов. Если измененный файл не был сохранен перед удалением из временного хранилища, все изменения будут потеряны.

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

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

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

Продолжение следует

По материалам computer.howstuffworks.com

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

Адресация данных

Команды, исполняемые ЭВМ при выполнении программы, равно как и числовые и символьные операнды, хранятся в памяти компьютера. Память состоит из миллионов ячеек, в каждой из которых содержится один бит информации (значения 0 или 1). Биты редко обрабатываются поодиночке, а, как правило, группами фиксированного размера. Для этого память организуется таким образом, что группы по n бит могут записываться и считывается за одну операцию. Группа n бит называется словом, а значение n - длиной слова. Схематически память компьютера можно представить в виде массива слов.

Обычно длина машинного слова компьютеров составляет от 16 до 64 бит. Если длина слова равна 32 битам, в одном слове может храниться 32-разрядное число в дополнительном коде или четыре символа ASCII, занимающих 8 бит каждый. Восемь идущих подряд битов являются байтом. Для представления машинной команды требуется одно или несколько слов.

Байтовая адресация

Отдельные биты, как правило, не адресуются и чаще всего адреса назначаются байтам памяти. Память, в которой каждый байт имеет отдельный адрес, называется памятью с байтовой адресацией. Последовательные байты имеют адреса 0.1, 2 и так далее Таким образом, при использовании слов длиной 32 бита последовательные слова имеют адреса 1.4, 8, …, и каждое слово состоит из 4 байт.

Прямой и обратный порядок байтов

Существует два способа адресации байтов в словах:

  • в прямом порядке. Прямым порядком байтов (little-endian) называется система адресации, при которой байты адресуются справа налево, так что наименьший адрес имеет самый младший байт слова (расположенный с правого края);
  • в обратном порядке. Обратным порядком байтов (big-endian) называется система адресации, при которой байты адресуются слева направо, так что самый старший байт слова (расположенный с левого края) имеет наименьший адрес.

В ПЭВМ на основе 80 x 86 используется прямой порядок, а в ПЭВМ на основе Motorola 68000 - обратный. В обеих этих системах адреса байтов 0.4, 8 и так далее, применяются в качестве адресов последовательных слов памяти в операциях чтения и записи слов.

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

В случае 32-разрядных слов их естественные границы располагаются по адресам 0.4, 8 и так далее При этом считается, что слова выровнены по адресам в памяти. Если говорить в общем, слова считаются выровненными в памяти в том случае, если адрес начала каждого слова кратен количеству байтов в нем. По практическим причинам, связанным с манипулированием Двоично-кодированными адресами, количество байтов в слове обычно является степенью двойки. Поэтому, если длина слова равна 16 бит (2 байтам), выровненные слова начинаются по байтовым адресам 0.2, 4, …, а если она равна 64 бит (23, то есть 8 байтам), то выровненные слова начинаются по байтовым адресам 0.8, 16, …

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

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

Адресное пространство

Для доступа к памяти необходимы имена или адреса, определяющие расположение данных в памяти. В качестве адресов традиционно используются числа из диапазона от 0 до 2 k - 1 со значением к, достаточным для адресации всей памяти компьютера. Все 2 k адресов составляют адресное пространство компьютера. Следовательно, память состоит из 2 k адресуемых элементов. Например, использование 24-разрядных (как в процессоре 80286) адресов позволяет адресовать 2 24 (16 777 216) элементов памяти. Обычно это количество адресуемых элементов обозначается как 16 Мбайт (1 Мбайт=2 20 =1 048 576 байт, адресное пространство 8086 и 80186). Поскольку у процессоров 80386.80486 Pentium и их аналогов 32-разрядные адреса, им соответствует адресное пространство в 2 32 байт, или 4 Гбайт.

Адресное пространство ЭВМ графически может быть изображено прямоугольником, одна из сторон которого представляет разрядность адресуемой ячейки (слова) процессора, а другая сторона - весь диапазон доступных адресов для этого же процессора. Диапазон доступных адресов процессора определяется разрядностью шины адреса системной шины. При этом минимальный номер ячейки памяти (адрес) будет равен 0, а максимальный определяется из формулы M=2 n - 1.

Для шестнадцатиразрядной шины это будет 65 535 (64 К).

Иерархическая организация памяти

Компромиссом между производительностью и объемами памяти является решение использовать иерархию запоминающих устройств, то есть применять иерархическую модель памяти.

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

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

Успешное или не успешное обращение к более высокому уровню называют соответственно попаданием (hit) или промахом (miss). Попадание - есть обращение к объекту в памяти, который найден на более высоком уровне, в то время как промах означает, что он не найден на этом уровне.

Доля попаданий (hit rаtе) - доля обращений к данным, найденным на более высоком уровне. Доля промахов (miss rate) - это доля обращений к данным, которые не найдены на более высоком уровне.

Время обращения при попадании (hit time) есть время обращения к более высокому уровню иерархии, которое включает в себя, в частности, и время, необходимое для определения того, является ли обращение попаданием или промахом.

Потери на промах (miss реnаltу) есть время для замещения блока в более высоком уровне на блок из более низкого уровня плюс время для пересылки этого блока в требуемое устройство (обычно в процессор).

  • время доступа (access time) - время обращения к первому слову блока при промахе;
  • время пересылки (transfer time) - дополнительное время для пересылки оставшихся слов блока. Время доступа связано с задержкой памяти более низкого уровня, а время пересылки - с полосой пропускания канала между устройствами памяти двух смежных уровней.

Кэш-память

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

Необходимость создания кэш памяти возникла потому, что появились процессоры с высоким быстродействием. Между тем для выполнения сложных прикладных процессов нужна большая память. Использование же большой сверхскоростной памяти экономически невыгодно. Поэтому между ОП и процессором стали устанавливать меньшую по размерам высокоскоростную буферную память, или кэш память. В дальнейшем она была разделена на два уровня - встроенная в процессор (on-die) и внешняя (on-motherboard).

Стратегии управления иерархической памятью

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

Отображение памяти на кэш

Существует три основных способа размещения блоков (строк) основной памяти в кэше:

  • кэш память с прямым отображением (direct-mapped cache);
  • полностью ассоциативная кэш память (fully associative cache).
  • частично ассоциативная (или множественно ассоциативная, partial associative, set-associative cache) кэш память;

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

(Адрес блока кэш памяти )=(Адрес блока основной памяти ) mod (Число блоков в кэш памяти ).

Этот тип памяти наиболее прост, но и наименее эффективен, так как данные из разных областей памяти могут конфликтовать из-за единственной строки кэша, где они только и могут быть размещены.

Полностью ассоциативная память

Может отображать содержимое любой области памяти в любую область кэша, но при этом крайне сложна в схемотехнике.

Частично-ассоциативный кэш

Является наиболее распространенным в данный момент среди процессорных архитектур. Характеризуется тем или иным количеством n «каналов» (степенью ассоциативности, «п-way») и может отображать содержимое данной строки памяти на каждую из n своих строк. Этот вариант является разумным компромиссом между полностью ассоциативным и кэшем «прямого отображения».

В современных процессорах, как правило, используется либо кэш память с прямым отображением, либо двух- (четырех-) канальная множественно ассоциативная кэш память. Например, в архитектурах К7 и К8 применяется 16-канальный частично-ассоциативный кэш L2.

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

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

  • случайная (Random) - блоки-кандидаты выбираются случайно (равномерное распределение). В некоторых системах используют псевдослучайный алгоритм замещения;
  • замещается тот блок, который не использовался дольше всех (LRU - Least-Recently Used) . В этом случае чтобы уменьшить вероятность удаления информации, которая скоро может потребоваться, все обращения к блокам фиксируются.

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

Алгоритмы обмена с кэш памятью (свопинга)

включают следующие разновидности:

  • алгоритм сквозной записи (Write Through) или сквозного накопления (Store Through);
  • алгоритм простого свопинга (Simple Swapping) или обратной записи (Write Back);
  • алгоритм свопинга с флагами (Flag Swapping) или обратной записи в конфликтных ситуациях с флагами (CUX);
  • алгоритм регистрового свопинга с флагами (FRS).

Алгоритм сквозной записи

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

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

Алгоритм простого свопинга

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

Алгоритм свопинга с флагами

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

Алгоритм регистрового свопинга с флагами

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

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

Память в современных компьютерах строится по иерархическому принципу. Одним из явлений, характерных для фоннеймановских ЭВМ является принцип локальности. Это означает, что за ограниченный промежуток времени каждая выполняемая программа не производит обращений ко всем своим данным и командам равномерно, а склонна обращаться к ограниченной части своего адресного пространства. Например, такая ситуация возникает в научных и инженерных расчетах при решении уравнений, когда выполняются небольшие участки кода, содержащие большое число вложенных циклов и подпрограмм и с их помощью обрабатываются все новые и новые относительно небольшие порции данных с частым обращением к промежуточным результатам. Из этого следует, что для увеличения производительности без существенного увеличения стоимости можно строить память по иерархическому принципу. При этом существует несколько уровней иерархии памяти с различным объемом и временем обращения. Информация распределена по ним для хранения в соответствии с ее важностью, частотой обращения и «срочностью» обслуживания. Каждый уровень иерархии характеризуется определенной стоимостью хранения одного байта (слова) и скоростью выборки байта (слова) или блока из нескольких байтов (слов).

Обычно рассматривается взаимодействие внутри иерархии памяти между двумя соседними уровнями.

Минимальную единицу информации, которая может либо присутствовать, либо отсутствовать на одном из двух взаимодействующих уровней в иерархии, мы будем называть блоком. Размер блока может быть либо фиксированным, либо переменным. Если этот размер зафиксирован, то объем памяти является кратным размеру блока.

При обращении к каждому уровню иерархии возможны два исхода. Либо искомый блок находится на запрашиваемом уровне (попадание – hit) либо он отсутствует (промах – miss) и приходится обращаться к следующему уровню иерархии, обладающему меньшей скоростью выборки. Эффективность механизма хранения данных можно описать долей попаданий (hit rate). Механизм организации каждого уровня иерархии должен обеспечивать возможность размещения любого блока из более низкого уровня иерархии. Отсюда – необходим некий ассоциативный механизм отображения блока из нижележащего уровня иерархии на вышележащий.

Иерархия памяти в ЭВМ показана на рис. 17. Емкость памяти растет сверху вниз на рисунке, стоимость хранения байта (слова) и скорость выборки байта (слова) растет снизу вверх.

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

Массовая оперативная память имеет объем от нескольких десятков килобайт до нескольких сотен мегабайт. В силу ряда технологических особенностей скорость обращения к оперативной памяти растет значительно медленнее, чем скорость работы центральных процессоров и обычно время выборки составляет от 5 до 15 тактов процессора. Для ускорения выборки информации между основной памятью и центральным процессором вводится еще один уровень иерархии – промежуточная, сверхоперативная память или кэш память. Слово cache в переводе с английского яыка означает тайник, тайный склад, потаенный запас. Смысл этого термина состоит в том, что кэш-память невидима, прозрачна для центрального процессора. Работой кэш-памяти управляет контроллер кэш-памяти. Он просматривает обращения центрального процессора к основной памяти и определяет хранятся ли требуемые данные в кэше (cache hit) и,следовательно, могут быть прочитаны из него, или нет (cache miss), и следовательно, придется производить обращение к более медленной основной памяти. Скорость доступа к ячейке кэш-памяти может составлять от 3 до 7 тактов процессора. Кэш-память в свою очередь сама может быть реализована по иерархическому принципу, т.е. может быть разделена на несколько уровней:

    кэш первого уровня, объемом несколько килобайт со временем доступа 2-3 такта, встроенный непосредственно в процессор;

    кэш второго уровня со временем доступа 3-5 тактов и объемом несколько десятков килобайт, расположенный на одной плате с центральным процессором;

    кэш третьего уровня со временем доступа 5-7 тактов и объемом несколько сотен килобайт на системной плате и так далее.

Ниже в этом разделе мы вернемся обсуждению кэш-памяти и рассмотрим ее функционирование подробнее.

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

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

В системе с виртуальной памятью программы «считают», что им предоставлено некоторое, достаточно большое адресное пространство (пространство, предоставленное программе или группе программ, может существенно превышать объем физической памяти, имеющейся в ЭВМ). При этом рабочее пространство разделяется на блоки – страницы (типичный размер страницы 2–4 Кбайта). Страницы, относящиеся к выполняемой задаче, частично располагаются в быстродействующей памяти, частично на некотором, более медленном и более дешевом запоминающем устройстве. Устройство управления виртуальной памяти отслеживает обращения к памяти, и, если требуемая страница отсутствует в физической памяти, происходит прерывание. Обработчик прерывания производит обращение к внешнему устройству для считывания отсутствующей страницы, после чего выполнение команды, вызвавшей прерывание, повторяется снова. Таким образом, прикладная программа “не замечает”, что ее страница отсутствовала в памяти. Естественно, что из-за необходимости периодических обращений к внешней памяти за отсутствующими страницами скорость выполнения программы снижается. Это снижение скорости есть “необходимое зло” - плата за большой размер доступного адресного пространства. Разработчики процессоров с виртуальной адресацией предусматривают различные средства максимального снижения эффекта замедления.

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

Кэш-память

Как уже говорилось выше, назначение кэш-памяти – временное хранение данных и команд, часто используемых процессором. Основной структурной единицей кэш-памяти является так называемая строка кэша (cache line). Длина строки кэша составляет обычно 32, 64, 128 или 256 байт.

Рассмотрим способы организации кэш-памяти, принятые в современных ЭВМ. Опишем возможные способы отображения адресов данных в оперативной памяти на адреса данных в кэш-памяти и, соответсвенно, способы поиска требуемых данных в кэш-памяти. Пусть, в качестве упрощенного примера, существует ЭВМ с десятибитным адресом. Следовательно, объем непосредственно адресуемой оперативной памяти составляет 2 10 байт. Пусть имеется кэш-память из восьми строк, каждая строка из восьми байт. Организация кэш-памяти показана на рис 18. С каждой строкой кэша связано поле тэга. Тэг (tag – пометка, отметка) – признак, используемый при поиске требуемых данных.

Существуют три основных способа организации кэш-памяти: 1) кэш с прямым отображением; 2) полностью ассоциативный кэш; 3) наборно ассоциативный кэш.

В случае кэша с прямым отображением адрес, формируемый процессором, имеет вид, показаный на рис 18 а). Адрес состоит из трех частей. Младшие биты адреса определяют конкретный байт в строке кэша. Их количество k определяется длиной строки кэша L

Средние биты адреса определяют одну из строк кэша. Количество n средних битов определяется количеством M строк кэша

Рис 18. Кэш-память. а) с прямым отображением; б) полностью ассоциативная; в) наборно-ассоциативная.

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

Достоинство кэша с прямым отображением – очевидная простота реализации. Недостаток состоит в том, что несколько адресов с одинаковыми младшими k + n битами могут претендовать на одну и ту же ячейку кэша.

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

Третий вид кэш-памяти – наборно-ассоциативная (см. рис 18 в)) – это смешанная конструкция, сочетающая в себе простоту памяти с прямым отображением и эффективность ассоциативного кэша. Строки кэша объединяются в наборы по 2, 4, 8 и т.д. штук. Средние биты определяют не строку, а набор. Конкретная строка в наборе выбирается с помощью ассоциативного сравнения для всех строк, входящих в набор.

Пусть контроллер кэш-памяти обнаружил, что данные, требуе­мые в настоящий момент для процессора, в кэш-памяти отсутст­вуют. Нужно прочитать строку, содержащую необходимые данные из оперативной памяти, и разместить ее в кэш-памяти. Для этого не­обходимо решить, какую из строк кэша сле­дует удалить для разме­щения вновь поступивших данных. Для выбора строки, подлежащей замещению, чаще всего используется так называемый алгоритм LRU (от Least Recently Used – дольше всего неиспользуемый). Суть алгоритма в том, что совместно с каждым элементом хранится исто­рия его использования за последнее время. Из всех существующих элементов выбирается тот, к которому дольше всего не было обра­щений. Недостатком алгоритма можно считать необ­ходимость хра­нения и обработки большого количества информации об истории использования элемента данных, что становится особенно важным при исполь­зовании кэша большого объема. Поэтому в системах с кэш памятью большого объема часто применяется более простой алгоритм, по которому вытесняемая строка выбирается случайным образом. Как показывает практический опыт, при большом объеме кэш-памяти алгоритм случайного замещения незначительно проиг­рывает алгоритму LRU по эффективности, но значительно выигры­вает по простоте реализации.

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

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

Существенно уменьшить потери производительности позволяет другой способ записи, который называется буферизированной сквозной записью (buffered write through). Процессор передает запи­сываемые данные контроллеру кэша и на этом операция записи для процессора считается законченной. Записываемые данные сохра­нятся в буфере контроллера кэша и переписываются из буфера в оперативную память в те моменты времени, когда процессор не производит обращений к памяти и системная шина свободна.

Третий способ организации называется обратной записью (write back). При этом способе нагрузка на тракты обмена данными между процессором и памятью максимально снижается. Процессор произ­водит запись только в кэш-память. В каждый момент времени суще­ствует только одна «истинная» копия данных, находящаяся в кэш-памяти. Перезапись данных из кэш-памяти в основную память про­изводится только тогда, когда одна строка кэша заменяется другой, причем перезаписывается только строка целиком. Для этого каждая строка кэша снабжается дополнительным признаком «грязных» данных, который устанавливается, если в данную строку произво­дилась запись. При установленном признаке строка, вытесняемая из кэша, переписывается в оперативную память, иначе она не перепи­сывается. Подобный способ записи, в сочетании с алгоритмом вы­теснения данных LRU описанным выше, позволяет избавиться от «лишних» обращений к памяти для часто используемых данных, на­пример счетчиков циклов, временных рабочих переменных и т.д.

Поддержите проект — поделитесь ссылкой, спасибо!
Читайте также
Push-уведомления: что это такое и для кого мастхев? Push-уведомления: что это такое и для кого мастхев? Как в Excel переносить текст на другую строку внутри одной ячейки? Как в Excel переносить текст на другую строку внутри одной ячейки? Что такое расширение файла DOC? Что такое расширение файла DOC?