Смагин М.С. Вычислительные машины, системы и сети (1088253), страница 9
Текст из файла (страница 9)
Поэтому инженерам приходится комбинировать различные типы и виды запоминающих устройств, чтобы удовлетворитьвсе указанные требования в конструктивных рамках одной вычислительноймашины. В результате, в каждом средстве вычислительной техники имеютсяразличные виды памяти, каждый из которых соответствует одному или нескольким требованиям из данного списка. Вместе они закрывают весь списокцеликом.Одной из основных проблем, стоящих перед разработчиками, являетсяпоиск оптимального баланса между различными видами памяти, в зависимости от особенностей задач, которые предстоит решать разрабатываемомуустройству. Такой баланс чаще всего представляет собой компромисс междутехнологическими, эксплуатационными и экономическими требованиями,предъявляемыми к будущему изделию.
Впрочем, если взглянуть более широко, то любое техническое средство является компромиссом между различными требованиями, которые не могут быть осуществлены одновременно,вследствие различных исходных ограничений.Итак, чаще всего в составе любого вычислительного устройства присутствует несколько типов памяти, имеющих различную скорость доступа,объём, стоимость и характеристики энергонезависимости. Как правило, быстродействие каждого типа памяти обратно пропорционально его объёму.Кроме того, с ростом скорости доступа теряется свойство энергонезависимости. Соответственно, в наиболее быстрых запоминающих устройствах стараются сохранять наиболее часто используемые данные, а в более медленных −используемые реже. Такая концепция построения системы запоминающихустройств получила название «иерархия памяти».
Рассмотрим каждую ступень этой иерархии, двигаясь от более быстрых запоминающих устройств кболее медленным.58Рис.23 Иерархия памятиС одним видом памяти мы уже познакомились. Это регистровая память, расположенная на кристалле микропроцессора. Это память самая быстрая, она работает на одной частоте с процессором. Но, вместе с тем, она самая дорогая, а соответственно, за приемлемую для широкого пользователяцену, ему можно предоставить только очень небольшой её объём. К тому жеона энергозависима, т.е.
стирается при отключении питания.Практически такими же свойствами обладает другой вид памяти, такназываемая кэш-память, или, как ещё говорят, сверхоперативная. Эта памятьиспользуется для временного хранения наиболее часто используемых данных, хранящихся в более медленных видах памяти. В переводе с английского, слово Cache означает «тайник», «тайный запас». Тайность этого вида памяти заключается в том, что эта память недоступна для прямого управленияпользователем, он о ней, как бы, не подозревает. Кэш-память также имеетнебольшой объём, хотя и больший, чем регистровая, она также энергозависима и дорога.Следующая ступенька, это оперативная память. Её ещё называютRAM, что значит Random Access Memory (память с произвольным доступом)или ОЗУ (Оперативное запоминающее устройство). Её отличает большаяпростота устройства, чем у других видов памяти, описанных ранее.
Если в59регистровой и кэш-памяти для хранения данных используются триггеры, каждый из которых состоит из 10-15 транзисторов, то в оперативной памятиданные хранятся в специальных ячейках, каждая из которых построена наодном единственном транзисторе. Простота устройства определяет преимущества данного вида памяти, такие как больший, чем у предыдущих видов,объём и более низкая стоимость, однако не позволяет добиться столь же высокой скорость работы. Кроме того, оперативная память также энергозависима.Далее идёт память на жёстких дисках.
Её характеризуют энергонезависимость, большой объём, низкая стоимость единицы хранения, низкая и неравномерно распределённая скорость доступа, а также частичная портативность. Сейчас на коммерческом рынке есть модели портативных жёсткихдисков, подключаемых к ПЭВМ через интерфейс USB, но они довольно дороги и имеют сравнительно невысокую скорость доступа.Ну и, наконец, последний вид памяти, который мы будем рассматривать, − флеш-память.
Она не представлена на схеме иерархии памяти потому,что на ней нет шкалы, учитывающей самый важный параметр флешпамяти, − портативность. Если говорить о шкалах, представленных на схеме,то флеш-память имеет меньший объем и обладает меньшей скоростью доступа, чем память на жёстких дисках, но зато она обладает и меньшей стоимостью в расчёте на единицу хранения. Именно эти её особенности позволяютей постепенно вытеснять жёсткие диски с портативных устройств. В дальнейшем она потеснит, скорее всего, ещё и оперативную память.Прежде чем мы рассмотрим все эти виды памяти более подробно, разберёмся с характеристиками запоминающих устройств.
Основные из нихследующие:1. Ёмкость. Данная характеристика традиционно измеряется в байтах, хотя адресуемой единицей в памяти является так называемое «слово», которое, в современных компьютерах, чаще всего состоит из несколькихбайтов. В большинстве современных компьютеров размер слова равен60числу разрядов, используемых для представления целого числа или кода машинной команды. Между длиной кода адреса A и количествомадресуемых единиц N всегда выполняется соотношение 2А =N.2. Передаваемая порция. Данная характеристика определяет единицу передачи, подаваемую единовременно на выход запоминающего устройства.
С точки зрения размера передаваемой порции, различают запоминающие устройства с пословным и блочным доступом, когда на выходподаётся блок из нескольких слов.3. Метод доступа. Различают виды памяти с прямым, произвольным и ассоциативным доступом.1. В устройствах с прямым доступом каждая запись имеет свойуникальный адрес, соответствующий её физическому положениюна носителе. Доступ осуществляется прямым доступом к зоне носителя, в которой находится адресуемая запись.
К запоминающим устройствам с прямым доступом относятся жёсткие диски.2. В устройствах с произвольным доступом каждая адресуемая единица имеет свой собственный механизм адресации. Время доступа к любой ячейке не зависит от предыстории и адреса этойячейки. Примером запоминающего устройства с произвольнымдоступом является оперативная память.3. Память с ассоциативным доступом оснащена встроенным механизмом сравнения определённых битов в каждой ячейке с заданным образцом, причём сравнение выполняется по всем ячейкамодновременно. Таким образом, нужная ячейка отыскивается нестолько по своему физическому адресу, сколько по содержимому.
Данный метод доступа применяется в кэш-памяти.Теперь разберёмся с каждым видом памяти более подробно.61Кэш-памятьИтак, первым упомянутым нами видом памяти была кэш-память. Какмы уже сказали, это так называемая сверх-оперативная память, в которойпроцессор хранит наиболее часто используемые данные. В современныхпроцессорах кэш разбивается на несколько уровней. Кэш первого уровня работает с той же частотой, что и процессор. Кэш второго уровня, как правило,больше по объёму, чем кэш первого уровня, но работает с вдвое меньшейтактовой частотой.
Кэши более высоких уровней обладают ещё большей ёмкостью, но работают ещё медленнее.Чем больше объём кэш-памяти, тем выше прирост производительностипроцессора. Однако этот рост имеет нелинейный характер, поскольку, начиная с определённого момента, кэш становится достаточно большим, чтобысодержать всю совокупность данных, обрабатываемых текущей программой.Такая совокупность называется «рабочим набором». Если рабочий наборполностью загружен в кэш-память, дальнейшее наращивание её объёма неприносит результатов, поскольку процессор практически перестаёт обращаться за данными в оперативную память.Рис.24 График зависимости роста производительности процессораот объёма кэш-памяти62Кроме того, с ростом объёма кэш-памяти, падает скорость доступа кней и это является еще одним ограничивающим фактором.
Экспериментально установлено, что оптимальным для современных процессоров являетсяобъём кэш памяти порядка 512 килослов.Помимо уже упоминавшихся характеристик систем памяти, кэш имеетдополнительные характеристики, влияющие на его эффективность:1. Дисциплина отображения (mapping function);2. Алгоритм замены строк;3. Дисциплина поддержания целостности, или, как ещё говорят, когерентности, информации в кэш-памяти и ОЗУ;4.
Сегментация.Дисциплина отображения это способ, позволяющий установить соответствие между строками кэша и блоками оперативной памяти, позволяющийвыяснить, какой блок памяти размещён в той или иной строке кэша.Обмен данными между памятью и кэшем также осуществляется блочно. Это связано с одной особенностью программ для ЭВМ, называемой свойством локальности. Данное свойство было обнаружено в ходе исследованиястатистических характеристик реальных программ и не имеет теоретическогообоснования.
Суть данного свойства состоит в том, что программы, как правило, в каждый момент выбирают данные не из всей доступной памяти, атолько из небольшого набора компактно расположенных ячеек. Соответственно, для повышения эффективности работы кэш необходимо выбирать этиячейки в виде единого блока. Вопрос о размере данного блока тоже приходится решать разработчику вычислительной системы. Оптимальное значениеразмера блока определяется спецификой программ, которые предполагаетсявыполнять на разрабатываемом вычислительном устройстве. Чаще всего используются блоки длиной от двух до восьми слов.63Среди дисциплин отображения данных из памяти в кэш наиболее распространёнными на сегодняшний день являются три:1.
прямой доступ;2. ассоциативный;3. секционированный ассоциативный.При прямом отображении за каждым блоком оперативной памяти закрепляется фиксированная строка кэша. Технически, это реализуется довольно просто. Двоичное значение адреса каждой ячейки оперативной памяти разделяется на старшую и младшую части. Очевидно, что младшие частиу нескольких различных ячеек будут совпадать. Значение младшей части адреса таких ячеек будет адресом ячейки кэш, за которой они закреплены.Поясним этот принцип на следующем примере. Предположим, чтоимеется 16 ячеек оперативной памяти с адресами от 0000 до 1111, которыенужно отобразить на 4 ячейки кэш-памяти, с адресами од 00 до 11. Организация прямого отображения ячеек такой памяти в кэш приведена на рисунке.Рис.25 Пример прямого отображения ячеек памяти в кэш64В этом случае два бита адреса ячейки оперативной памяти будут отнесены в старшую часть, а два – в младшую, и за ячейкой кэш с адресом 00 будут закреплены ячейки оперативной памяти с адресами 0000, 0100, 1000,1100.