Режимы процессора. Технология hyper threading. Режимы работы процессора.
Доброго времени суток уважаемый пользователь. На этой страничке мы поговорим на такие темы, как : Режимы процессора, Режимы работы процессора.
Режимы работы процессора.
В самом общем виде алгоритм работы процессора можно представить следующим образом. Блок управления загружает из оперативной памяти инструкции и данные, помещая их в кэш второго уровня. Отсюда инструкции поступают в свой кэш первого уровня, а данные — в свой. Из кэша первого уровня команды и данные помещаются в регистры. Арифметико-логическое устройство берет из регистров инструкцию (что надо выполнять) и данные (операнды) и выполняет над ними заданные операции. Результат помещается обратно в регистры. Если операция считается законченной, данные перемещаются в кэш первого уровня, затем второго и наконец записываются в оперативную память. Такая последовательность работы образует операционный поток процессора.
Для ускорения работы процессора используют ряд архитектурных решений, к основным из которых относятся: конвейерное выполнение операций, предсказание (трассировка) дальнейшего ‘ хода программы, параллельное исполнение инструкций и многопоточность.
Рассмотрим пример организации простого конвейера. Операции выборки из оперативной памяти являются самыми медленными, поэтому выборка команд и данных происходит заранее (с упреждением). Буфер выборки с упреждением обычно служит первым блоком первой стадии конвейера операций. На второй стадии декодируется поступившая команда и определяется состав и тип операндов. На третьей стадии данные вызываются из регистров. На четвертой стадии операнды обрабатываются в тракте данных (включающем АЛУ). На пятой стадии данные записываются обратно в регистр. Все стадии работают параллельно, в результате во время каждого цикла завершается выполнение одной новой команды. Впервые конвейер появился в процессорах Intel 80486.
Конвейер операций за счет упрощения отдельных блоков способен быстрее выполнять операции, чем сложное АЛУ. Меньшее число элементов позволяет быстрее переходить из одного состояния в другое, чем длиннее конвейер, тем выше частотный потенциал процессора. Архитектура процессора Intel Pentium 4 (Celeron) предусматривает конвейер длиной 20 стадий, а конвейер процессора AMD Athlon XP (Duron) содержит 12 стадий. Очевидно, что более длинный конвейер Pentium 4 при прочих равных условиях обеспечивает преимущество над Athlon XP по максимальной рабочей частоте. Также очевидно, что для обеспечения непрерывной работы конвейера необходимо снабжать его непрерывным потоком команд и данных. Однако код программ не может содержать непрерывные последовательности инструкций. Часто в програмах встречаются операции ветвления алгоритма.
Единственной возможностью обеспечить непрерывность работы конвейера остается выполнение инструкций, на которые указывает команда перехода где-то дальше, хотя адрес перехода еще неизвестен (механизм предсказания ветвлений). Архитектура блоков изменения последовательности и предсказания ветвлений является одной из самых сложных и ответственных в общей конфигурации процессора. Ведь в случае ошибки в предсказании приходится очищать весь конвейер и начинать работу заново, что негативно сказывается на производительности процессора.
Если архитектурой процессора предусмотрено более одного конвейера, ее называют скалярной. Такая архитектура была впервые реализована в процессорах Intel Pentium (два конвейера из пяти стадий каждый). В настоящее время применяют суперскалярную архитектуру, которая предусматривает один конвейер, включающий на одной из стадий несколько параллельных исполнительных блоков. Суперскалярную архитектуру ныне имеют практически все современные процессоры, а первенцем был Intel Pentium II.
Понятие «многопоточность» получило известность благодаря внедрению технологии Hyper Threading в процессорах Intel Pentium 4 (начиная с модификации на ядре Northwood) для настольных систем.
Технология предусматривает одновременное исполнение двух потоков (нитей, по терминологии Intel) программы на одном процессоре.
Для этого используют особенности архитектуры Pentium 4, имеющей длинный основной конвейер и несколько отдельных исполнительных блоков: для операций над данными с плавающей точкой, для инструкций обработки мультимедийных данных (ММХ) и так далее.
Пока основной конвейер занят выполнением одной нити программы, другие блоки можно занять выполнением второй нити.
Для этого часть регистров процессора выделена отдельно и с точки зрения операционной системы выглядит как второй, независимый процессор.
Тем самым программы, написанные в расчете на многопроцессорные системы, будут выполняться быстрее на однопроцессорной, но многопоточной системе.
По результатам тестов независимых экспертов технология Hyper Threading дает прирост производительности на реальных (не оптимизированных) задачах 1-3%.
На оптимизированных приложениях ускорение достигает 30%.
В принципе есть только два пути улучшать производительность процессоров — повышать частоту и повышать число исполняемых инструкций за такт. До сих пор архитектура процессоров Pentium 4 была рассчитана на первый путь, но внедрение технологии Hyper Threading — это переключение стрелки на второй путь. Появление технологии Hyper Threading влечет несколько интересных следствий: изменение методов программирования приложений, привнесение многопроцессорности в массовые системы, увеличение производительности процессоров.
Однако на этом пути есть несколько подводных камней, на которых важно не разбиться: отсутствие нормальной поддержки со стороны «домашних» операционных систем и, самое главное, необходимость перекомпиляции (а в некоторых случаях и смены алгоритма) приложений, чтобы они в полной мере смогли воспользоваться преимуществами Hyper Threading. Наличие Hyper Threading делает возможной действительно параллельную работу операционной системы и приложений — а не «кусками» по очереди.
На этом данную статью я заканчиваю, надеюсь, вы полностью разобрались с темами: Режимы процессора, Режимы работы процессора.