Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новые шпоры по ОИФ ЭВМ.doc
Скачиваний:
13
Добавлен:
28.04.2019
Размер:
963.58 Кб
Скачать

40. Процессор. Режимы работы. Конвейер. Кэширование

Режимы работы.

Процессор может работать в нескольких режимах:

  1. Реальный режим, полностью совместимый с процессором 8086/8088. В этом режиме возможна адресация только в пределах 1 Мбайта памяти. Он используется для обеспечения программной совместимости с процессором 8086/8088.

  2. Защищенный режим. В этом режиме возможна адресация в пределах байт физической памяти, где - разрядность процессора.

В составе компьютера под управлением операционной системы MS DOS процессор работает в реальном режиме, а защищенный режим используют операционные системы типа Linux, Windows.

Защищенный режим был предложен для обеспечения независимости одновременного выполнения нескольких задач. Для этого предусмотрена защита ресурсов каждой задачи от действий других задач. Под ресурсами здесь понимается память с данными, программами, системными таблицами, а также используемая задачей аппаратура. В защищенном режиме предусматривается иерархическая четырехуровневая (уровни 0, 1, 2, 3) система привилегий, предназначенная для управления выполнением привилегированных команд и доступом к памяти. Уровень 0 соответствует неограниченным правам доступа и отводится ядру операционной системы. Уровень 3 дает минимальные права и отводится прикладным задачам.

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

  1. получение и декодирование (дешифрация) инструкции;

  2. адресация и выборка операнда из ОЗУ;

  3. выполнение арифметических операций;

  4. сохранение результата операции.

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

Компьютерная программа это поток инструкций выполняемых процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Классический пример 5-ти ступенчатого конвейера представлен ниже (IF=Выборка инструкции, ID=Декодирование инструкции, EX=Выполнение, MEM=Доступ к памяти, WB=Запись результата в регистры): Существуют суперскалярные процессоры, способные выполнять по две инструкции за цикл, т.е. они имеют по две инструкции на каждой ступени конвейера и максимум 10 инструкций могут выполнять одновременно. Современные процессоры имеют многоступенчатый конвейер команд (например, процессор Pentium 4 имеет 35-ти ступенчатый конвейер), что увеличивает производительность процессора, однако приводит к большому времени простоя (например, в случае ошибки в предсказании условного перехода). Факторы, снижающие эффективность конвейера:

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

  2. ожидание: если следующая команда использует результат предыдущей, то последняя не может начать выполняться до выполнения первой;

  3. очистка конвейера при попадании в него команды перехода (эту проблему удаётся сгладить, используя предсказание переходов).

  4. Кэширование — это использование дополнительной быстродействующей памяти (кэш-памяти) для хранения копий блоков информации из оперативной памяти, вероятность обращения к которым в ближайшее время велика. Различают кэш 1-, 2- и 3-го уровней (обозначаются L1, L2 и L3). Кэш 1-го уровня имеет наименьшее время доступа (латентность), но малый размер. Кэш первого уровня часто делаются многопортовыми: процессоры AMD K8 умеют производить одновременно 64-битные запись и чтение, AMD K8L может производить два 128-битных чтения или записи, процессоры Intel Core 2 могут производить 128-битные запись и чтение за такт. Кэш 2-го уровня обычно имеет значительно большее время доступа, но его можно сделать значительно больше по размеру. Кэш 3-го уровня самый большой по объёму и довольно медленный, но, всё же, он гораздо быстрее, чем оперативная память.