Технологии повышения производительности ЭВМ • В каждый момент времени процессор работает над различными стадиями выполнения нескольких команд, причем на выполнение каждой стадии выделяются отдельные аппаратные ресурсы. • По очередному тактовому импульсу каждая команда в конвейере продвигается на следующую стадию обработки, выполненная команда покидает конвейер, а новая поступает в него Конвейерный принцип обработки информации 1. Обработка команды разделяется на отдельные независимые шаги. 2. Вводятся специальные буферные запоминающие устройства в качестве посредников между блоками. необходимые принципиальные изменения в конструкцию процессора • IF (Instruction Fetch) – считывание команды в процессор; • ID (Instruction Decoding) – декодирование команды; • OR (Operand Reading) – считывание операндов; • EX (Executing) – выполнение команды; • WB (Write Back) – запись результата. Основные этапы работы конвейера процессора структура четырехступенчатого конвейера Последовательность команд на четырехступенчатом конвейера Причины задержки конвейера: • задержка работы устройств — выполнение некоторых шагов более чем за один такт; • конфликт по ресурсам; • явный конфликт по данным; • скрытый конфликт по данным (побочные эффекты). Задержки конвейера Задержка работы устройств • Увеличение размеров буфера В1 и организация в нем очереди команд. • Разработка процессоров с несколькими конвейерами команд. • Разработка процессоров с такой системой команд, в которой все операции выполняются за равное число тактов (RISCпроцессоры) или процессоров с RISC-ядром. Задержка работы устройств и методы борьбы с ними Конфликты по ресурсам • число конфликтов уменьшается с введением раздельных кэшей данных и команд; • в процессорах с двумя портами регистров можно одновременно обращаться к двум регистрам; • расслоение памяти создает возможность одновременного обращения к ячейкам из разных блоков. Меры по уменьшению числа конфликтов по ресурсам Конфликт по данным типа "чтение после записи" • изменение порядка следования команд на такой, при котором команды, имеющие зависимость по данным, не стоят рядом • вставка компилятором между зависимыми командами одной или нескольких команд NOP (нет операции) — команды, не делающие ничего программные приемы предотвращения конфликтов по данным программные методы предотвращения конфликтов по данным Аппаратный метод предотвращения конфликтов: продвижение операндов Пятишаговый конвейер Скрытые конфликты по данным Суперскаляризация • Для расширения вычислительных возможностей центрального процессора — выполнения арифметических операций, вычисления основных математических функций (тригонометрических, показательных, логарифмических) и т. д. — в состав ЭВМ добавляется математический сопроцессор. • В разных поколениях процессоров он назывался поразному — FPU (Floating Point Unit — блок чисел/операций с плавающей точкой — БПЗ) или NPX (Numeric Processor extension — числовое расширение процессора). Сопроцессоры В 1980-е годы соответствие между типом ЭВМ и ее разрядностью имело простейший вид: • микроЭВМ — 8 разрядов; • мини-ЭВМ — 16 разрядов; • большие ЭВМ — 32 разряда; • сверхбольшие (супер) ЭВМ — 64 разряда. В настоящее время: • 32 разряда (IA-32) • 64-разрядные архитектуры в процессорах Intel и AMD: • IA-64 • AMD64 • EM64T Увеличение разрядности систем SIMD — поток данных, обрабатываемых одной командой. Процессоры, реализующие такую обработку, именуют потоковыми процессорами. Могут быть определены как однопотоковые (Singlestreaming processor — SSP), так и многопотоковые процессоры (Multi-Streaming Processor — MSP) Векторная обработка (SIMDкоманды) Свойства, определившие выбор системы команд и структуры данных: • небольшая разрядность целочисленных данных (например, 8-разрядные пиксели для графики или 16разрядное представление речевых сигналов); • небольшая длина циклов, но большое число их повторений; • большой объем вычислений и значительный удельный вес операций умножения и накопления; • существенный параллелизм операций в программах. MMX (MultiMedia extension) Стек регистров с ПЗ и MMXрегистры • Архитектура 3DNow! • SSE (или SIMD-FP) — система команд Streaming SIMD Extensions • SSE2 — введенный с Pentium IV набор команд является существенным развитием SSE • SSE3 — набор команд, также известный как Prescott New Instructions (PNI), является третьей версией команд SSE для IA-32 Другие методы SIMD расширения команд Технология обработки данных процессором, обеспечивающая более эффективную работу процессора за счет манипулирования данными, а не просто линейного исполнения списка инструкций: • предсказание ветвлений; • внеочередное выполнение; • переименование (ротация) регистров (register rename); • выполнение по предположению. Динамическое исполнение (dynamic execution technology) Предикация Опережающее считывание данных в регистры ЦП из памяти (speculative loading) • • • • Декодирование команд CISC/RISC в VLIW Декодирование команд CISC VLIW в RISC Макрослияние (macrofusion) Микрослияние (micro-op fusion) Многократное декодирование команд Технология Hyper-Threading (НТ) Выполнение процессов Hyper-Threading на двухъядерном процессоре Многоядерные процессоры