Тема 1.6. Организация ввода - вывода данных

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

- чем меньше время доступа, тем дороже бит информации;

- чем больше объем памяти, тем ниже стоимость хранения одного бита информации;

- чем выше емкость памяти, тем больше время доступа к ней.

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

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

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

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

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

 

Рис. 1.7. Иерархия ЗУ

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