Внутреннее устройство кэша

Рассмотрим основные элементы кэша. При изучении вопросов внутреннего устройства кэша имеет значение:

- размер кэша;

- размер блока;

- функция отображения;

- алгоритм замещения;

- стратегия записи.

Информация о размере кэша была изложена выше. Размер блока означает величину порции данных, передаваемую из основной памяти в кэш. При увеличении блока данных растет вероятность попадания в кэш, так как увеличивается размер полезных данных. Функция отображения определяет, какое место будет отведено считываемому блоку данных. При загрузке блоков наступает такой момент, когда свободного места и КЭШе не осталось и приходится решать какой из блоков удалить. Этой проблемой занимается алгоритм замещения. Желательно убрать тот блок, который не понадобится в ближайшем будущем. Эффективной считается замена блока, к которому дольше всего не было обращений. Перед изменением содержимого кэша необходимо записать содержимое в оперативную память. Случаи, когда нужно выполнять операции записи, определяются стратегией записи. На рис. 1.10 изображена структура кэш-памяти.

 

  Адрес данных в основной памяти Данные Управляющая информация
     
     
     

Рис. 1.10. Структура кэш-памяти

 

1.6.3. Технологии ввода – вывода

Возможны три метода выполнения операций ввода – вывода:

- программируемый ввод-вывод;

- ввод – вывод с использованием прерываний;

- прямой доступ к памяти (direct memory access – DMA).

Программируемый ввод-вывод.

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

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

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

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

- Состояние. Используется для проверки состояния контроллера ввода-вывода и соответствующих периферийных устройств.

- Передача. Используется для чтения и/или записи данных в регистры процессора и внешние устройства и из регистров процессора и внешних устройств.

На приведенной блок-схеме видны основные недостатки такого метода: процессор выполняет большое количество операций, которых можно было бы избежать; теряется много времени.