русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ключевые вопросы


Дата добавления: 2013-12-23; просмотров: 779; Нарушение авторских прав


Лекция № 10. Внешние устройства. Часть 1

Продолжительность:2 часа (90 мин.)

 

· Иерархия запоминающих устройств

· Принцип действия кэш-памяти

· Кэш-память

21.2 Текст лекции

 

21.2.1 Иерархия запоминающих устройств — до 30 мин.

 

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

На следующем уровне располагается более быстродействующая (время доступа1 равно примерно 10-20 наносекундам) и менее объемная (от десятков мегабайт до нескольких гигабайт) оперативная память, реализуемая на относительно мед­ленной динамической памяти DRAM.

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

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

Оно стоит дороже и, как правило, имеет сравнительно небольшой объем. «Мед­ленное» ЗУ далее будем называть основной памятью, противопоставляя ее вспо­могательной кэш-памяти.

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



 

21.2.2 Принцип действия кэш-памяти — до 20 мин.

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

- значение элемента данных;

- адрес, который этот элемент данных имеет в основной памяти;

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

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

□ если данные обнаруживаются в кэш-памяти, то есть произошло кэш-попада­ние (cache-hit), они считываются из нее и результат передается источнику запроса;

- если нужные данные отсутствуют в кэш-памяти, то есть произошел кэш-про­мах (cache-miss), они считываются из основной памяти, передаются источни­ку запроса и одновременно с этим копируются и кэш-память.

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

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

 

21.2.3 Кэш-память— до 20 мин.

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

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

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

Интуитивно понятно, что эффективность кэширования зависит от вероятности попадания в кэш. Покажем это путем нахождения зависимости среднего време­ни доступа к основной памяти от вероятности кэш-попаданий. Пусть имеется ос­новное запоминающее устройство со средним временем доступа к данным tl и кэш-память, имеющая время доступа t2, очевидно, что t2<tl. Пусть t -- среднее Время доступа к данным в системе с кэш-памятью, ар— вероятность кэш-попа­дания. По формуле полной вероятности имеем:

t = t1(1 - р) + t2p = (t2 –t1)p + t1

Среднее время доступа к данным 13 системе с кэш-памятью линейно зависит от вероятности попадания в кэш и изменяется от среднего времени доступа в ос­новное запоминающее устройство tl при р=0 до среднего времени доступа непо­средственно в кэш-память t2 при р=1. Отсюда видно, что использование кэш-па­мяти имеет смысл только при высокой вероятности кэш-попадания.

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

· Временная локальность. Если произошло обращение по некоторому адресу,
то следующее обращение по тому же адресу с большой вероятностью про­
изойдет в ближайшее время.

· Пространственная локальность. Если произошло обращение по некоторому
адресу, то с высокой степенью вероятности в ближайшее время произойдет
обращение к соседним адресам.

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

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



<== предыдущая лекция | следующая лекция ==>
Текст лекции | Текст лекции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.