Аппаратная реализация устройства управления
Устройство управления — узел микропроцессора, выполняющий управление прочими компонентами. В задачи устройства управления входит выборка и декодирование потока инструкций, выдача кодов функций в исполнительные устройства, принятие решений по признакам результатов вычислений, синхронизация узлов микропроцессора.
В состав устройства управления входят следующие блоки:
§ Блок генерации адресов инструкций. Он содержит в себе регистр программного счётчика (program counter или instruction pointer), хранящий адрес считываемой из памяти инструкции, и модифицирующийся после выборки каждой инструкции.
§ Блок выборки инструкции, обеспечивающий считывание программ из памяти через устройство ввода-вывода. Он получает на вход адрес с блока генерации адреса инструкции, передаёт его на УВВ, получает с него данные по переданному адресу, и выдаёт на блок декодирования интсрукций.
§ Блок декодирования инструкций, производящий преобразование кодов инструкций в последовательность кодов функций, передаваемые на исполнительные устройства.
§ Блок переходов. Получает функциональные коды переходов и ветвлений, признаки результатов операций с функциональных устройств, проверяет истинность условия перехода, и передаёт сигнал на изменение программного счётчика.
§ Блок обработки исключений. Принимает извне сигналы исключительных ситуаций (прерывания, ошибки узлов микропроцессора, нарушение привилегий, команды-ловушки и пр.) и передаёт сигнал на переход по вектору исключения в случае обнаружения.
§ Блок отладки — необязательный. Служит для упрощения отладки программ. В его функциональность входит установка аппаратных точек останова (breakpoints), доступ к внутренним узлам процессора через специальный интерфейс. Доступ к блоку может быть как программный (через специальные инструкции), так и аппартный (через физический отладочный интерфейс).
Методы повышения производительности вычислительных систем.
1. освобождение ЦП от вспомогательных операций.
2. повышение функциональности ЦП
- модификация языка, сложные команды.
-замена программных элементов аппаратными.
3.специализация вычислительных систем
4. нетрадиционная архитектура
(архитектура фон Неймана –стандартная)
Потоковая архитектура, традиционная архитектура)
5. новые физические принципы.
Основные разновидности вычислительного параллелизма.
Параллелизм – это параллельные вычисления и параллельная обработка.
Типы палаллелизма:
1.Параллелизм на уровне битов
Эта форма параллелизма основана на увеличении размера машинного слова. Увеличение размера машинного слова уменьшает количество операций, необходимых процессору для выполнения действий над переменными, чей размер превышает размер машинного слова. К примеру: на 8-битном процессоре нужно сложить два 16-битных целых числа. Для этого вначале нужно сложить нижние 8 бит чисел, затем сложить верхние 8 бит и к результату их сложения прибавить значение флага переноса. Итого 3 инструкции. С 16-битным процессором можно выполнить эту операцию одной инструкцией.
Исторически 4-битные микропроцессоры были заменены 8-битными, затем появились 16-битные и 32-битные. 32-битные процессоры долгое время были стандартом в повседневных вычислениях. С появлением технологии x86-64для этих целей стали использовать 64-битные процессоры.
Параллелизм на уровне инструкций
Компьютерная программа — это, по существу, поток инструкций, выполняемых процессором. Но можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Данный приём известен как параллелизм на уровне инструкций. Продвижения в развитии параллелизма на уровне инструкций в архитектуре компьютеров происходили с середины 1980-х до середины 1990-х.
Современные процессоры имеют многоступенчатый конвейер команд. Каждой ступени конвейера соответствует определённое действие, выполняемое процессором в этой инструкции на этом этапе. Процессор с N ступенями конвейера может иметь одновременно до N различных инструкций на разном уровне законченности. Классический пример процессора с конвейером — это RISC-процессор с 5-ю ступенями: выборка инструкции из памяти (IF), декодирование инструкции (ID), выполнение инструкции (EX), доступ к памяти (MEM), запись результата в регистры (WB). Процессор Pentium 4имеет 35-тиступенчатый конвейер. Некоторые процессоры, дополнительно к использованию конвейеров, обладают возможностью выполнять несколько инструкций одновременно, что даёт дополнительный параллелизм на уровне инструкций. Возможна реализация данного метода при помощи суперскалярности, когда инструкции могут быть сгруппированы вместе для параллельного выполнения (если в них нетзависимости между данными). Также возможны реализации с использованием явного параллелизма на уровне инструкций: VLIWи EPIC.
Параллелизм данных
Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины. Распределением данных между процессорами занимается программа. Векторизация или распараллеливание в этом случае чаще всего выполняется уже на этапе компиляции — перевода исходного текста программы в машинные команды. Роль программиста в этом случае обычно сводится к заданию настроек векторной или параллельной оптимизации компилятору, директив параллельной компиляции, использованию специализированных языков для параллельных вычислений.
Параллелизм задач
Стиль программирования, основанный на параллелизме задач, подразумевает, что вычислительная задача разбивается на несколько относительно самостоятельных подзадач и каждый процессор загружается своей собственной подзадачей.
В лекциях мы рассматривали пример параллелизма на уровне задач (позже данных). На уровне задач параллелизм бывает явным (распараллеливанием занимается программист) – к примеру, используется для матриц; и неявный (распараллеливанием занимается сам программный инструмент (компиллятор) - к примеру, развёртка цикла(цикл в виде блока);