Вернемся к проблеме дисбаланса скорости доступа к ОЗУ и скорости обработки информации ЦП

Первое решение – использовать программные средства. Программист может разместить наиболее часто используемые операнды в РОН, тем самым сокращается количество «медленных» обращений в ОЗУ. Результат решения во многом зависит от качества программирования.

Второе решение – использование в архитектуре ЭВМ специальных регистровых буферов или КЭШ памяти (Аппаратное решение). Традиционно, в развитых ЭВМ используется аппаратная буферизация доступа к операндам команд, а также к самим командам. Регистровые буфера или КЭШ память предназначены для разрешения проблемы несоответствия скоростей работы ОЗУ и ЦП, на аппаратном уровне, т.е. эта форма оптимизации в системе организована аппаратно и работает всегда, вне зависимости от исполняемой программы.

Кэш память (cache memory) первого уровня (L1)

Автоматически минимизирует число обращений к ОП за командами и операндами команд. Обмен данными между КЭШем и оперативной памятью осуществляется блоками фиксированного размера.

Адресный тег блока содержит служебную информацию о блоке (соответствие области ОЗУ, свободен/занят блок,......).

Нахождения данных в КЭШе - попаданием (hit). Если искомых данных нет в КЭШе, то фиксируется промах (cach miss).

При возникновении промаха происходит обновление содержимого КЭШа - вытеснение.

Появляется вопрос кого “убирать”? Существуют различные дифференцированные критерии решения этой проблемы.

Стратегии вытеснения:

случайная;

Это когда в системе есть в системе датчик случайных чисел (аппаратный) и он будет генерировать номер того блока, который должен быть освобожден.

вытеснение наименее популярного (LRU - Least-Recently Used).

Наиболее распространенный и простой критерий - вытеснять из таблицы самую “старую” строчку. А признаком старения может быть, например, количество обращений к буферу, при котором нет обращения к этой строчке.

Вытеснение КЭШ’а данных:

сквозное кэширование (write-through caching)

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

кэширование с обратной связью (write-back cache) - тег модификации (dirty bit)

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

При использовании кэш памяти (cache memory):

• сокращается количество обращений к ОЗУ;

• существенно увеличивается скорость доступа к памяти в случае использования ОЗУ с «расслоением», т.к. обмены блоков с памятью будут проходить, практически параллельно.

Аппарат прерываний

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

Прерывания:

внутренние - инициируются схемами контроля работы процессора

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: