logo search
Ответы на экзамен по информатики

Запоминающие устройства пк

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

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

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

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

Рис. 1.14. Запоминающие устройства компьютера. Иерархия

 

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

Предположим, процессор имеет доступ к памяти двух уровней. На первом уровне содержится 1000 слов, и он характеризуется временем доступа 0.1/xs . Допустим, что к словам, расположенным на первом уровне, процессор может обращаться непосредственно. Если же нужно получить доступ к слову, находящемуся на втором уровне, то это слово сначала передается на первый уровень, и лишь потом процессор получает к нему доступ. Опустим для простоты вопрос о времени, которое требуется процессору для определения, на каком именно уровне находится слово. На рис. 1.15 показан вид кривой, описывающей данную ситуацию. На графике представлена зависимость среднего времени доступа к памяти второго уровня от результативности поиска Н. Символом Н обозначено отношение числа нахождений нужного слова в быстрой памяти (например, в кэше) к числу всех обращений, Тх — время доступа к уровню 1, 7*2 — время доступа к уровню 2.3 Видно, что при высокой частоте обращения к уровню 1 среднее время доступа намного ближе ко времени доступа к уровню 1, чем ко времени доступа к уровню 2.

Результативность поиска (вероятность обращения к уровню 1)  Рис. 1.15. Производительность простой двухуровневой памяти

 

Предположим, что в нашем примере 95% обращений к памяти приходится на кэш (Н = 0.95). Тогда среднее время доступа можно записать как 0.95х0.1^ + 0.05х(0.1^5 + 1^) = 0.095 + 0.055^ = 0.15^

Получившийся результат довольно близок ко времени доступа к быстрой памяти. Таким образом, описанная стратегия работает, но лишь при соблюдении условий 1-4. Существует целый ряд разнообразных видов запоминающих устройств, созданных с применением различных технологий, для которых выполняются условия 1-3. К счастью, условие 4 тоже в целом справедливо. Основой соблюдения условия 4 служит принцип, известный как принцип локализации обращений [DENN68]. Адреса, к которым во время исполнения программы обращается процессор, имеют тенденцию собираться в группы. Как правило, программы содержат в себе повторяющиеся циклы и подпрограммы. Как только наступает очередь цикла или подпрограммы, процессор обращается лишь к небольшому повторяющемуся набору команд. Работа с таблицами и массивами также предполагает доступ к сгруппированным данным.

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

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

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

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

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

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