Рассмотрим основные элементы кэша. При изучении вопросов внутреннего устройства кэша имеет значение:
- размер кэша;
- размер блока;
- функция отображения;
- алгоритм замещения;
- стратегия записи.
Информация о размере кэша была изложена выше. Размер блока означает величину порции данных, передаваемую из основной памяти в кэш. При увеличении блока данных растет вероятность попадания в кэш, так как увеличивается размер полезных данных. Функция отображения определяет, какое место будет отведено считываемому блоку данных. При загрузке блоков наступает такой момент, когда свободного места и КЭШе не осталось и приходится решать какой из блоков удалить. Этой проблемой занимается алгоритм замещения. Желательно убрать тот блок, который не понадобится в ближайшем будущем. Эффективной считается замена блока, к которому дольше всего не было обращений. Перед изменением содержимого кэша необходимо записать содержимое в оперативную память. Случаи, когда нужно выполнять операции записи, определяются стратегией записи. На рис. 1.10 изображена структура кэш-памяти.
Адрес данных в основной памяти | Данные | Управляющая информация |
Рис. 1.10. Структура кэш-памяти
1.6.3. Технологии ввода – вывода
Возможны три метода выполнения операций ввода – вывода:
- программируемый ввод-вывод;
- ввод – вывод с использованием прерываний;
- прямой доступ к памяти (direct memory access – DMA).
Программируемый ввод-вывод.
Когда процессору при выполнении программы встречается команда, связанная с вводом-выводом, он выполняет ее, передавая соответствующие команды контроллеру ввода-вывода. При программируемом вводе-выводе это устройство выполняет требуемое действие, а затем устанавливает соответствующие биты в регистрах состояния ввода-вывода. Контроллер ввода-вывода больше не посылает процессору никаких сигналов, в том числе и сигналов прерываний. Таким образом, ответственность за периодическую поверку состояния модуля ввода-вывода несет процессор; он должен производить проверку до тех пор, пока операция ввода-вывода не завершится.
При использовании такого метода процессор отвечает за извлечение из основной памяти данных, предназначенных для вывода, и размещение в ней данных, поступивших с устройств ввода.
Программное обеспечение для ввода-вывода разрабатывается таким образом, что процессор непосредственно управляет операциями ввода-вывода, включая опознание состояния устройства, пересылку команд чтения-записи и передачу данных. Таким образом, в набор используемых команд входят команды ввода-вывода, принадлежащие следующим категориям.
- Управление. Команды этой категории используются для того, чтобы привести внешнее устройство в действие и сообщить ему, что нужно делать. Например, блоку с магнитной лентой можно отдать команду перемотки или перемещения вперед на одну запись.
- Состояние. Используется для проверки состояния контроллера ввода-вывода и соответствующих периферийных устройств.
- Передача. Используется для чтения и/или записи данных в регистры процессора и внешние устройства и из регистров процессора и внешних устройств.
На приведенной блок-схеме видны основные недостатки такого метода: процессор выполняет большое количество операций, которых можно было бы избежать; теряется много времени.