Реферат: Иерархия памяти, кэширование. Иерархическая структура памяти вычислительных машин Какова главная функция иерархической структуры памяти

💖 Нравится? Поделись с друзьями ссылкой

ОРГАНИЗАЦИЯ памяти ЭВМ

В основе иерархии памяти современных компьютеров лежат два принципа:

Принцип локальности обращений;

Соотношение стоимость/производительность.

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

Иерархия памяти современных компьютеров, представленная на рисунке 5.1, строится на нескольких уровнях, причем более высокий уровень меньше по объему, быстрее и имеет большую стоимость в пересчете на байт, чем более низкий уровень. Такой подход оптимизирует соотношение стоимость/производительность.

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

Уровни памяти, расположенные между регистровой и основной памятью, принято называть кэш-памятью. Блок кэш-памяти называется строкой (line).

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

Доля попаданий (hit rate) или коэффициент попаданий (hit ratio) есть доля обращений, найденных на более высоком уровне (часто представляется процентами). Доля промахов (miss rate) есть доля обращений, которые не найдены на более высоком уровне.

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



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

1) Где может размещаться блок на верхнем уровне иерархии? (размещение блока).

2) Как найти блок, когда он находится на верхнем уровне? (идентификация блока).

3) Какой блок должен быть замещен в случае промаха? (замещение блоков).

4) Что происходит во время записи? (стратегия записи).

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

При проектировании высокопроизводительных компьютеров и систем необходимо решить множество компромиссов, например, размеры и технологии для каждого уровня иерархии. Можно рассматривать набор различных памятей (m 1 ,m 2 ,…,m n), находящихся в иерархии, то есть каждый m i уровень является как бы подчиненным для m i-1 уровня иерархии. Для уменьшения времени ожидания на более высоких уровнях, низшие уровни могут подготавливать данные укрупненными частями с буферизацией и, по наполнению буфера, сигнализировать верхнему уровню о возможности получения данных.

Часто выделяют 4 основных (укрупнённых) уровня иерархии:

  1. Внутренняя память процессора (регистры , организованные в регистровый файл и кэш процессора).
  2. ОЗУ системы (RAM) и вспомогательных карт памяти.
  3. Накопители с «горячим» доступом (On-line mass storage) - или вторичная компьютерная память. Жесткие диски и твердотельные накопители , не требующие длительных (секунды и больше) действий для начала получения данных.
  4. Накопители, требующие переключения носителей (Off-line bulk storage) - или третичная память. Сюда относятся магнитные ленты , ленточные и дисковые библиотеки , требующие длительной перемотки либо механического (или ручного) переключения носителей информации.

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

  1. Регистры процессора , организованные в регистровый файл - наиболее быстрый доступ (порядка 1 такта), но размером лишь в несколько сотен или, редко, тысяч байт.
  2. Кэш процессора 1го уровня (L1) - время доступа порядка нескольких тактов, размером в десятки килобайт
  3. Кэш процессора 2го уровня (L2) - большее время доступа (от 2 до 10 раз медленнее L1), около полумегабайта или более
  4. Кэш процессора 3го уровня (L3) - время доступа около сотни тактов, размером в несколько мегабайт (в массовых процессорах используется недавно)
  5. ОЗУ системы - время доступа от сотен до, возможно, тысячи тактов, но огромные размеры в несколько гигабайт, вплоть до сотен. Время доступа к ОЗУ может варьироваться для разных его частей в случае комплексов класса NUMA (с неоднородным доступом в память)
  6. Дисковое хранилище - многие миллионы тактов, если данные не были закэшированны или забуферизованны заранее, размеры до нескольких терабайт
  7. Третичная память - задержки до нескольких секунд или минут, но практически неограниченные объёмы (ленточные библиотеки).

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

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

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

См. также

Напишите отзыв о статье "Иерархия памяти"

Литература

  • Михаил Гук «Аппаратные средства IBM PC» Санкт-Петербург 1998
  • , John L. Hennessy, 2012

Примечания

Отрывок, характеризующий Иерархия памяти

Соня, как бы не веря своим ушам, смотрела во все глаза на Наташу.
– А Болконский? – сказала она.
– Ах, Соня, ах коли бы ты могла знать, как я счастлива! – сказала Наташа. – Ты не знаешь, что такое любовь…
– Но, Наташа, неужели то всё кончено?
Наташа большими, открытыми глазами смотрела на Соню, как будто не понимая ее вопроса.
– Что ж, ты отказываешь князю Андрею? – сказала Соня.
– Ах, ты ничего не понимаешь, ты не говори глупости, ты слушай, – с мгновенной досадой сказала Наташа.
– Нет, я не могу этому верить, – повторила Соня. – Я не понимаю. Как же ты год целый любила одного человека и вдруг… Ведь ты только три раза видела его. Наташа, я тебе не верю, ты шалишь. В три дня забыть всё и так…
– Три дня, – сказала Наташа. – Мне кажется, я сто лет люблю его. Мне кажется, что я никого никогда не любила прежде его. Ты этого не можешь понять. Соня, постой, садись тут. – Наташа обняла и поцеловала ее.
– Мне говорили, что это бывает и ты верно слышала, но я теперь только испытала эту любовь. Это не то, что прежде. Как только я увидала его, я почувствовала, что он мой властелин, и я раба его, и что я не могу не любить его. Да, раба! Что он мне велит, то я и сделаю. Ты не понимаешь этого. Что ж мне делать? Что ж мне делать, Соня? – говорила Наташа с счастливым и испуганным лицом.
– Но ты подумай, что ты делаешь, – говорила Соня, – я не могу этого так оставить. Эти тайные письма… Как ты могла его допустить до этого? – говорила она с ужасом и с отвращением, которое она с трудом скрывала.
– Я тебе говорила, – отвечала Наташа, – что у меня нет воли, как ты не понимаешь этого: я его люблю!
– Так я не допущу до этого, я расскажу, – с прорвавшимися слезами вскрикнула Соня.
– Что ты, ради Бога… Ежели ты расскажешь, ты мой враг, – заговорила Наташа. – Ты хочешь моего несчастия, ты хочешь, чтоб нас разлучили…
Увидав этот страх Наташи, Соня заплакала слезами стыда и жалости за свою подругу.
– Но что было между вами? – спросила она. – Что он говорил тебе? Зачем он не ездит в дом?
Наташа не отвечала на ее вопрос.
– Ради Бога, Соня, никому не говори, не мучай меня, – упрашивала Наташа. – Ты помни, что нельзя вмешиваться в такие дела. Я тебе открыла…
– Но зачем эти тайны! Отчего же он не ездит в дом? – спрашивала Соня. – Отчего он прямо не ищет твоей руки? Ведь князь Андрей дал тебе полную свободу, ежели уж так; но я не верю этому. Наташа, ты подумала, какие могут быть тайные причины?
Наташа удивленными глазами смотрела на Соню. Видно, ей самой в первый раз представлялся этот вопрос и она не знала, что отвечать на него.
– Какие причины, не знаю. Но стало быть есть причины!
Соня вздохнула и недоверчиво покачала головой.
– Ежели бы были причины… – начала она. Но Наташа угадывая ее сомнение, испуганно перебила ее.
– Соня, нельзя сомневаться в нем, нельзя, нельзя, ты понимаешь ли? – прокричала она.
– Любит ли он тебя?
– Любит ли? – повторила Наташа с улыбкой сожаления о непонятливости своей подруги. – Ведь ты прочла письмо, ты видела его?
– Но если он неблагородный человек?
– Он!… неблагородный человек? Коли бы ты знала! – говорила Наташа.
– Если он благородный человек, то он или должен объявить свое намерение, или перестать видеться с тобой; и ежели ты не хочешь этого сделать, то я сделаю это, я напишу ему, я скажу папа, – решительно сказала Соня.
– Да я жить не могу без него! – закричала Наташа.
– Наташа, я не понимаю тебя. И что ты говоришь! Вспомни об отце, о Nicolas.
– Мне никого не нужно, я никого не люблю, кроме его. Как ты смеешь говорить, что он неблагороден? Ты разве не знаешь, что я его люблю? – кричала Наташа. – Соня, уйди, я не хочу с тобой ссориться, уйди, ради Бога уйди: ты видишь, как я мучаюсь, – злобно кричала Наташа сдержанно раздраженным и отчаянным голосом. Соня разрыдалась и выбежала из комнаты.
Наташа подошла к столу и, не думав ни минуты, написала тот ответ княжне Марье, который она не могла написать целое утро. В письме этом она коротко писала княжне Марье, что все недоразуменья их кончены, что, пользуясь великодушием князя Андрея, который уезжая дал ей свободу, она просит ее забыть всё и простить ее ежели она перед нею виновата, но что она не может быть его женой. Всё это ей казалось так легко, просто и ясно в эту минуту.

В пятницу Ростовы должны были ехать в деревню, а граф в среду поехал с покупщиком в свою подмосковную.
В день отъезда графа, Соня с Наташей были званы на большой обед к Карагиным, и Марья Дмитриевна повезла их. На обеде этом Наташа опять встретилась с Анатолем, и Соня заметила, что Наташа говорила с ним что то, желая не быть услышанной, и всё время обеда была еще более взволнована, чем прежде. Когда они вернулись домой, Наташа начала первая с Соней то объяснение, которого ждала ее подруга.
– Вот ты, Соня, говорила разные глупости про него, – начала Наташа кротким голосом, тем голосом, которым говорят дети, когда хотят, чтобы их похвалили. – Мы объяснились с ним нынче.
– Ну, что же, что? Ну что ж он сказал? Наташа, как я рада, что ты не сердишься на меня. Говори мне всё, всю правду. Что же он сказал?
Наташа задумалась.
– Ах Соня, если бы ты знала его так, как я! Он сказал… Он спрашивал меня о том, как я обещала Болконскому. Он обрадовался, что от меня зависит отказать ему.
Соня грустно вздохнула.
– Но ведь ты не отказала Болконскому, – сказала она.
– А может быть я и отказала! Может быть с Болконским всё кончено. Почему ты думаешь про меня так дурно?
– Я ничего не думаю, я только не понимаю этого…
– Подожди, Соня, ты всё поймешь. Увидишь, какой он человек. Ты не думай дурное ни про меня, ни про него.
– Я ни про кого не думаю дурное: я всех люблю и всех жалею. Но что же мне делать?
Соня не сдавалась на нежный тон, с которым к ней обращалась Наташа. Чем размягченнее и искательнее было выражение лица Наташи, тем серьезнее и строже было лицо Сони.
– Наташа, – сказала она, – ты просила меня не говорить с тобой, я и не говорила, теперь ты сама начала. Наташа, я не верю ему. Зачем эта тайна?
– Опять, опять! – перебила Наташа.
– Наташа, я боюсь за тебя.
– Чего бояться?
– Я боюсь, что ты погубишь себя, – решительно сказала Соня, сама испугавшись того что она сказала.
Лицо Наташи опять выразило злобу.
– И погублю, погублю, как можно скорее погублю себя. Не ваше дело. Не вам, а мне дурно будет. Оставь, оставь меня. Я ненавижу тебя.
– Наташа! – испуганно взывала Соня.
– Ненавижу, ненавижу! И ты мой враг навсегда!
Наташа выбежала из комнаты.
Наташа не говорила больше с Соней и избегала ее. С тем же выражением взволнованного удивления и преступности она ходила по комнатам, принимаясь то за то, то за другое занятие и тотчас же бросая их.
Как это ни тяжело было для Сони, но она, не спуская глаз, следила за своей подругой.
Накануне того дня, в который должен был вернуться граф, Соня заметила, что Наташа сидела всё утро у окна гостиной, как будто ожидая чего то и что она сделала какой то знак проехавшему военному, которого Соня приняла за Анатоля.

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

Разрешить эту дилемму можно, использовав в подсистеме памяти разные технология хранения информации, реализовав некую иерархию подсистемы памяти . Типичная иерархия подсистемы памяти схематически представлена на рис. 5.1.


Рис. 5.1. Иерархия подсистемы памяти компьютера

Принцип иерархии подразумевает выполнение следующих условий:

количество уровней иерархии может быть произвольным;

каждый уровень иерархии выполняет строго определенный набор функций;

обращение извне всегда происходит к верхнему уровню иерархии;

если i-й уровень иерархии может выполнить полученный запрос, то он его выполняет и передает результат источнику запроса – (i-1)-му уровню иерархии;

если i-й уровень иерархии не может выполнить полученный запрос, то он формирует запрос к (i+1)-му уровню иерархии;

по мере перехода от верхних уровней иерархии подсистемы памяти к нижним уровням:

повышается емкость;

увеличиваетсявремя доступа;

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

Ключевыми вопросами, решение которых обеспечивает успех иерархического проекта подсистемы памяти, являются:

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

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

Предположим, что процессор в системе может обращаться к памяти двух уровней. Память 1-го уровня содержит N слов и имеет время доступа 1 нс, а память 2-го уровня - 1000 N слов и время доступа 10 нс. Предположим, что если нужное слово находится в памяти 1-го уровня, то процессор извлекает его непосредственно, а если в памяти 2-го уровня, то затребованное слово сначала записывается в память 1-го уровня, а уже оттуда его извлекает процессор. Для простоты анализа не будем учитывать время, необходимое процессору для того, чтобы выяснить, где именно находится искомое слово, - в памяти 1-го или 2-го уровня.


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

Среднее время обращения к такой подсистеме памяти может быть выражено формулой:

Предположим, что 95% всех обращений приходится в память первого уровня (т.е., H=0.95). Тогда среднее время извлечения одного слова из иерархической подсистемы памяти будет равно:

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

Среди существующих на сегодняшний день технологий памяти, не так уж сложно подобрать ряд, обладающий следующими свойствами:

необходимое быстродействие памяти верхнего уровня;

снижение относительной стоимости хранения информации;

повышение емкости;

увеличениевремени доступа;

на некотором уровне иерархии обеспечивается энергонезависимость;

реализация требования о вложенности.

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

Выводы

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

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

3. Количество и параметры памятей уровней иерархии зависят от области применения компьютера.

4. В высокопроизводительных современных компьютерах существует до 6 уровней иерархии подсистемы памяти.

5. Количество уровней иерархии может быть произвольным.

6. Каждый уровень иерархии выполняет строго определенный набор функций.

7. Обращение к иерархической подсистеме памяти извне всегда происходит к верхнему уровню иерархии.

8. Если i-й уровень иерархии может выполнить полученный запрос, то он его выполняет и передает результат источнику запроса – (i-1)-му уровню иерархии.

9. Если i-й уровень иерархии не может выполнить полученный запрос, то он формирует запрос к (i+1)-му уровню иерархии.

10. По мере перехода от верхних уровней иерархии подсистемы памяти к нижним уровням:

снижается относительная стоимость хранения информации;

повышается емкость;

увеличиваетсявремя доступа;

снижается частота обращений с предыдущего уровня иерархии;

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

на некотором уровне иерархии обеспечивается энергонезависимость.

Локальность ссылок

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

Интуитивно предположение о локализации ссылок кажется вполне резон­ным. Рассмотрим следующие доводы в пользу этого предположения.

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

2. Очень редко случается так, что команды вызова процедур следуют одна
за другой непрерывным потоком, а затем следует такой же поток команд
возврата из процедур. Как правило, программа имеет достаточно небольшую вложенность вызовов процедур. Следовательно, в течение не­которого, пусть и ограниченного, отрезка времени программа выполняет команды, сконцентрированные в небольшом количестве процедур.

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

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

Эти интуитивные соображения были подтверждены множеством исследова­ний. В ряде работ изучался характер типичных приложений разного назначения, разработанных с применением языков программирования высокого уровня. Некоторые результаты этих исследований приведены в таблице 5.1. В ней представлена относительная частота использования операторов разного типа в программах различного назначения.

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

Таблица 5.1. Относительная частота выполнения операторов разного типа в программах на языках высокого уровня

На рис. 5.1 представлен график, показывающий харак­тер работы с процедурами в процессе выполнения типовой программы.

Рис. 5.1. Характер обращения к процедурам в процессе выполнения программы

По оси ординат графика отсчитывается текущая глубина вложенности выполняемой процедуры, а по оси абсцисс - время в относительных единицах (циклах выполнения команд "вызов/возврат"). Каждый вызов процедуры представ­лен на графике наклонной линией, идущей вниз-вправо (погружающей програм­му "в глубину"), а команда возврата - линией вверх-вправо (поднимающей про­грамму "на поверхность"). На графике выделены прямоугольниками участки, в которых относительная глубина вложенности не превышает 5. Такой прямо­угольник (окно заданной вложенности) смещается только в том случае, когда глубина вложенности с момента, зафиксированного его левой кромкой, превысит 5. Как видно на графике, программа остается в указанном диапазоне вложенности достаточно продолжительное время, а это означает, что все это время ядро процессора обращается только к командам из пяти текущих вложенных процедур. Исследование ряда программ, написанных на языках высокого уровня, показало, что только в 1% всех команд вызова процедур глубина вложенно­сти превосходит значение 8.

Свойство локализации ссылок подтверждается и более поздними исследова­ниями приложений, характерных для настоящего времени. Например, на рис. 5.2 показаны результаты статистического исследования доступа к страни­цам отдельного Web-сервера.

Рис. 5.2. Локализация ссылок на Web-страницы

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

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

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

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

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

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

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

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

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

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

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

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

Контрольные вопросы

1. Какие функции подсистемы памяти в компьютере?

2. Перечислите требования к подсистеме памяти?

3. Как соотносятся между собой основные требования к подсистеме памяти?

4. Что такое энергонезависимость памяти?

5. Назовите основные особенности статической полупроводниковой памяти.

6. Назовите основные особенности динамической полупроводниковой памяти.

7. Назовите основные особенности магнитной памяти.

8. Почему нельзя реализовать в быстродействующем универсальном компьютере подсистему памяти при использовании одной технологии?

9. Каковы принципы организации иерархической подсистемы памяти?

10. Может ли подсистема оперативной памяти иметь один уровень иерархии?

11. Что такое локализация ссылок?

12. Что такое временная локализация?

13. Что такое пространственная локализация?

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

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

    объединение производителей КИТ происходит как следствие усложнения производственных технологий, увеличения стоимости заводов, которые становятся «не по карману» отдельным производителям.

    увеличение значимости домашних рынков связано с автоматизацией процессов ведения домашнего хозяйства.

    увеличение рынка мобильных технологий означает значительное увеличение пользователей ноутбками и мобильной телефонной связью.

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

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

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

4. Иерархия памяти персонального компьютера

Иерархия памяти -термин, используемый в вычислительной технике при проектировании и программировании ЭВМ. Означает, что различные виды памяти образуют иерархию, на различных уровнях которой расположены памяти с отличающимися временем доступа, сложностью, стоимостью и объемом. Возможность построения иерархии памяти вызвана тем, что большинство алгоритмов обращаются в каждый промежуток времени к небольшому набору данных, который может быть помещен в более быструю, но дорогую и поэтому небольшую, память. Часто выделяют 4 основных уровня иерархии: 1) Внутренняя память процессора (регистры, организованные в регистровый файл и кэш процессора). 2) ОЗУ системы и вспомогательных карт памяти. 3) вторичная компьютерная память. Жесткие диски и твердотельные накопители. 4) Накопители, требующие переключения носителей -или третичная память. Сюда относятся магнитные ленты, ленточные и дисковые библиотеки. В большинстве современных ПК рассматривается следующая иерархия памяти: Регистры процессора; Кэш процессора 1го уровня (L1); Кэш процессора 2го уровня (L2); Кэш процессора 3го уровня (L3); ОЗУ системы; Дисковое хранилище; Третичная память.

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

Под конфигурацией понимают определенный набор комплектующих, исходя из их предназначения, номера и основных характеристик. Зачастую конфигурация означает выбор аппаратного и программного обеспечения, прошивок и сопроводительной документации. Конфигурация влияет на функционирование и производительность компьютера. Существует 4 основные части оборудования персонального компьютера: Материнская плата выполняет функцию координатора. Чипсет -микропроцессорный комплекс управляющий внутр. системами компьютера. Чипсет определяет основные возможности материнской платы. Центральный процессорОперативная память (ОЗУ) отвечает за временное хранение данных при включённом компьютере. ПЗУ (постоянно запоминающее устройство) предназначен для длительного хранения данных при выключенном компьютере. Блок питания Дополнительные: Жёсткий диск -основное устройство для долговременного хранения больших объемов данных и программ, выполняет специальное аппаратно-логическое устройство. К основным параметрам относятся ёмкость и производительность. Звуковая плата.

6. Общая классификация программного обеспечения.

ПОпо сфере использования делят на: 1 )аппаратная часть автономных компьютеров и сетей ЭВМ; 2 )функциональные задачи различных предметных областей; 3 )технология разработки программ. ПО включ : 1 )системное ПО; 2 )пакеты прикладных программ; 3 )инструментарии технологии программирования. Системное ПО – сов-ть программ и прог-раммных комплексов, предназначенных для обеспечения работы персонального компьютера и сетей ЭВМ. Пакеты прикладных программ – комплекс взаимосвязанных программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения созданных программных продуктов. Системное ПО вкл.: 1. базовое ПО: -операционные системы (ОС); -программы-оболочки ОС; -сетевыеОС 2. сервисное ПО.

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

8.Показатели оценки качества программ.обеспечения.Показатели сопровождаемости. Показатели качества представл. собой многоуровневую структуру, и использ. как разработка тестировщиками программ, так и покупателями заказчиками. Одним из показателей явл.сопровождаемость -это простота устранения ошибок в программе поддержание в актуальном состоянии и обнавлении программной документации. 1 Структурность – организация всех частей в единую логическую структуру. 2 Простота конструкции – построение программ наиболее рациональным, с точки зрения восприятия и понимания, способом. 3 Наглядность . 4 Повторяемость – степень использования типовых проектных решений или компанентов. 5 Полнота документации .

9.Показатели оценки качества программ.обеспечения. Показатели удобства использования. Показатели качества представл. собой многоуровневую структуру, и использ. как разработка тестировщиками программ, так и покупателями заказчиками. Одним из показателей явл. удобство использования – это свойства программы способствующие быстрому освоению применения и эксплуатации с минимальными трудозатратами и с учетом характера решаемых задач и требований квалификации обслуживающего персонала 1 Легкость освоения . 2 Доступность программной документации. 3 Удобства в эксплуатации и обслуживании.

10. Показатели оценки качества программного обеспечения. Эффективность. Эффективность (Efficiency) – степень удовлетворения потребностями пользователя в обработке данных с учетом экономических, трудовых ресурсов и ресурсов системы обработки информации; способность ПО обеспечивать требуемый уровень производительности в соответствие с выделенными ресурсами, временем и другими обозначенными условиями.

Виды:1)Уровень автоматизации 2) Временная эффективность – скорость обработки за определенное время 3) Ресурсоемкость – количество персонала, техн. Средств для осуществления процесса.

). Означает, что различные виды памяти образуют иерархию, на различных уровнях которой расположены памяти с отличающимися временем доступа, сложностью, стоимостью и объемом. Возможность построения иерархии памяти вызвана тем, что большинство алгоритмов обращаются в каждый промежуток времени к небольшому набору данных, который может быть помещен в более быструю, но дорогую и поэтому небольшую, память (см. en:locality of reference). Использование более быстрой памяти увеличивает производительность вычислительного комплекса. Под памятью в данном случае подразумевается устройство хранения данных (запоминающее устройство) в Вычислительной технике или компьютерная память .

При проектировании высокопроизводительных компьютеров и систем необходимо решить множество компромиссов, например, размеры и технологии для каждого уровня иерархии. Можно рассматривать набор различных памятей (m 1 ,m 2 ,…,m n), находящихся в иерархии, то есть каждый m i уровень является как бы подчиненным для m i-1 уровня иерархии. Для уменьшения времени ожидания на более высоких уровнях, низшие уровни могут подготавливать данные укрупненными частями с буферизацией и, по наполнению буфера, сигнализировать верхнему уровню о возможности получения данных.

Часто выделяют 4 основных (укрупненных) уровня иерархии:

  1. Внутренняя память процессора (регистры, организованные в регистровый файл и кэш процессора).
  2. ОЗУ системы (RAM) и вспомогательных карт памяти.
  3. Накопители с «горячим» доступом (On-line mass storage) - или вторичная компьютерная память. Жесткие диски и твердотельные накопители, не требующие длительных (секунды и больше) действий для начала получения данных
  4. Накопители, требующие переключения носителей (Off-line bulk storage) - или третичная память. Сюда относятся магнитные ленты , ленточные и дисковые библиотеки, требующие длительной перемотки либо механического (или ручного) переключения носителей информации.

Иерархия памяти в современных ПК

В большинстве современных ПК рассматривается следующая иерархия памяти:

  1. Регистры процессора , организованные в регистровый файл - наиболее быстрый доступ (порядка 1 такта), но размером лишь в несколько сотен или, редко, тысяч байт.
  2. Кэш процессора 1го уровня (L1) - время доступа порядка нескольких тактов, размером в десятки килобайт
  3. Кэш процессора 2го уровня (L2) - большее время доступа (от 2 до 10 раз медленнее L1), около полумегабайта или более
  4. Кэш процессора 3го уровня (L3) - время доступа около сотни тактов, размером в несколько мегабайт (в массовых процессорах используется с недавнего времени)
  5. ОЗУ системы - время доступа от сотен до, возможно, тысячи тактов, но огромные размеры в несколько гигабайт, вплоть до десятков. Время доступа к ОЗУ может варьироваться для разных его частей в случае комплексов класса NUMA (с неоднородным доступом в память)
  6. Дисковое хранилище - многие миллионы тактов, если данные не были закэшированны или забуферизованны заранее, размеры до нескольких терабайт
  7. Третичная память - задержки до нескольких секунд или минут, но практически неограниченные объемы (ленточные библиотеки).

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

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

Многие программисты не учитывают многоуровневость памяти при программировании. Этот подход работает пока приложение не столкнется с падением производительности из-за нехватки производительности подсистемы памяти (memory wall). При исправлении кода (Рефакторинг) необходимо учесть наличие и особенность работы верхних уровней иерархии памяти для достижения наивысшей производительности.

Литература

  • Михаил Гук «Аппаратные средства IBM PC» Санкт-Петербург 1998

Примечания


Wikimedia Foundation . 2010 .

Смотреть что такое "Иерархия памяти" в других словарях:

    иерархия памяти - — Тематики электросвязь, основные понятия EN memory hierarchy …

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

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

    У этого термина существуют и другие значения, см. Gerarchia. Иерархия (от др. греч. ἱεραρχία, из ἱερός «священный» и ἀρχή «правление») порядок подчинённости низших звеньев высшим, организация их в структуру типа дерево; принцип управления в … Википедия

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

    Схема, иллюстрирующая место микроархитектурного уровня в многоуровневой структуре компьютера. В компьютерной инженерии … Википедия

    архитектура контроллера Справочник технического переводчика

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

    - << Intel 80486 >> Центральный процессор … Википедия

    Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/24 декабря 2012. Пока процесс обсужден … Википедия

Книги

  • Лекции по истории Древней Церкви. В 4-х томах (количество томов: 4) , Болотов Василий В.В.. Профессор В. В. Болотов (1854-1900)-выдающийся православный церковный историк, человек энциклопедических знаний, отлично владевший древними классическими и рядом европейских языков; изучил…
  • Информатика Введение в компьютерные науки , Королев Л., Миков А.. В учебнике подробно рассмотрены математическое понятие алгоритма, рекурсивные алгоритмы и рекурсивные структуры данных, алгоритмы сортировки и поиска. Изложены основы теории сложности…
Рассказать друзьям