
- •Процессоры Определение понятия «архитектура»
- •Базовая структура эвм
- •Основные характеристики эвм
- •Представление данных
- •Числа в форме с фиксированной точкой.
- •Числа в форме с плавающей точкой
- •Символы
- •Логические значения
- •Основные концепции функционирования
- •Структуры алу
- •Cisc и risc и другие
- •Многоядерные процессоры
- •Способы организации работы процессоров
- •Конвейер команд
- •Факторы, снижающие производительность конвейера
- •Суперконвейерные структуры
- •Суперскалярные процессоры
- •Гиперпотоковая технология
- •Понятие структуры вычислительных систем
Многоядерные процессоры
Одним
из этапов совершенствования архитектуры
фон Неймана является распараллеливание
потоков (Thread
Level
Parallelism,
TLP).
Различают одновременную
многопоточность
(Simultaneous
Multithreading,
SMT) и
многопоточность
на уровне кристалла
(Chip-level
Multithreading,
CMT). Эти два
подхода в основном различаются
представлением о том, что такое поток.
Типичным представителем SMT
является так называемая технология HTT
(Hyper-Threading
Technology).
Первыми
представителями архитектурыCMP
стали процессоры, предназначенные для
использования в серверах. Это был простой
тандем, в таких приборах на одной подложке
размещались два, по сути, независимых
ядра (Рис.8,). Развитием этой схемы сначала
стала структура с общей кэш – памятью
рис. 9, а затем структура с многпоточностью
в каждом ядре.
Преимущества многоядерных процессоров состоят в следующем.
Простота (естественно относительная) проектирования и производства. Разработав одно эффективное ядро, его можно тиражировать в кристалле, дополняя архитектуру нужными системными компонентами.
Заметно уменьшается энергопотребление. Если, к примеру, на кристалле разместить два ядра и заставить их работать на тактовой частоте, обеспечивающей производительность равную производительности, одноядерного «собрата», а потом сравнить энергопотребление обоих, то обнаружится, что энергопотребление уменьшается в несколько раз, поскольку оно растет почти пропорционально квадрату частоты.
В целом же, если внимательно посмотреть на рисунки 8 и 9, можно увидеть, что принципиальной разницы между, скажем, 2-х процессорной системой и ЭВМ на 2-х ядерном процессоре нет. Проблемы одинаковые. И одна из первых – соответствующая операционная система.
Способы организации работы процессоров
Главным стимулом развития архитектуры ЭВМ является повышение производительности. Один из способов повышения производительности ЭВМ - специализация (как отдельных элементов ЭВМ, так и создание специализированных вычислительных систем).
Специализация процессоров началась с 60-х годов, когда центральный процессор больших ЭВМ был освобожден от выполнения рутинной операции по вводу-выводу информации. Эта функция была передана процессору ввода-вывода, осуществляющему связь с периферийными устройствами.
Другой путь повышения производительности – отход от последовательной архитектуры фон Неймана, ориентация на параллелизм. М. Флин обратил внимание на то, что существует всего две причины, порождающие вычислительный параллелизм - независимость потоков команд, одновременно существующих в системе, и несвязанность данных, обрабатываемых в одном потоке команд. Если первая причина параллелизма вычислительного процесса достаточно известна (это прост мультипроцессирование), то на параллелизме данных остановимся более подробно, поскольку в большинстве случаев он существует скрыто от программистов и используется ограниченным кругом профессионалов.
Простейшим примером параллелизма данных является последовательность из двух команд: А=В+С; D=E*F;
Если строго следовать принципу фон Неймана, то вторая операция может быть запущена на исполнение только после завершения первой операции. Однако очевидно, что порядок выполнения этих команд не имеет никакого значения - операнды А, В и С первой команды никак не связаны с операндами D, Е и F второй команды. Другими словами, обе операции являются параллельными именно потому, что операнды этих команд не связаны между собой. Можно привести множество примеров последовательности из трех и более команд с несвязанными данными, которые приведут к однозначному выводу: практически любая программа содержит группы операций над параллельными данными.
Другой
вид параллелизма данных, как правило,
возникает в циклических программах
обработки массивов данных. Например,
при сложении элементов двух массивов
одна команда может обрабатывать большой
массив (множественный поток) данных.
Подобные команды называются векторными,
а процессор, реализующий такой режим –
векторным. Можно дать такое определение:
«Векторный
процессор
- процессор, обеспечивающий параллельное
выполнение операции над массивами
данных (векторами). Он характеризуется
специальной архитектурой, построенной
на группе параллельно работающих
процессорных элементов, и предназначен
для обработки изображений, матриц и
массивов данных».
Существует несколько достаточно близких по смыслу классификаций программного параллелизма, из которых наиболее признанной считается классификация по шести уровням (Рис.10). Три верхних уровня параллелизма занимают крупные программные объекты - независимые задания, программы и процедуры программы. Несвязанные операторы, циклы и операции образуют нижние уровни параллелизма. Если совместить такое ранжирование с категориями М. Флина «параллельные потоки команд» и «параллельные потоки данных», то видно, что параллелизм верхнего уровня в основном достигается за счет множества независимых потоков команд, а параллелизм нижнего уровня обязан своим существованием главным образом несвязанным потокам данных.
Конвейерная обработка и конвейерные структуры
Одним
из эффективных способов повышения
производительности ЭВМ является
конвейеризация. На рис. 11а)
показана обработка в одиночном
универсальном блоке, а на рис.11 б)
и в)
– в конвейере. Идея конвейерной обработки
заключается в разбиении функции,
реализуемой универсальным функциональным
блоком (ФБ), между несколькими,
специализированными. Все функциональные
блоки конвейера должны работать с
одинаковой скоростью (хотя бы в среднем).
На практике последнего добиться удается
редко и, как следствие, производительность
конвейера снижается, поскольку период
поступления входных данных определяется
максимальным временем их обработки в
каждом функциональном блоке. Для
компенсации флуктуаций времени работы
ФБ между ними включают буферные регистры.
Более универсальным приёмом является
включение буферных запоминающих
устройств типа FIFO
(рис 11 в).
Следует обратить внимание на ещё одно
различие между рисунками б)
и в).
В структуре в)
отсутствует линия синхронизации СИ.
Это не значит, что её не может быть в
подобной структуре, просто существует
два типа конвейеров: синхронные
с общей линией синхронизации и асинхронные,
без таковой. Первые ещё называют с
управлением командами,
а вторые – с
управлением данными.
Примером асинхронных конвейеров могут
служить систолические массивы.
Конвейер
не всегда представляет собой линейную
цепочку блоков. Иногда оказывается
выгодным, функциональные блоки соединят
между собой не последовательно, а по
более сложной схеме в соответствии с
логикой обработки, при
этом одни блоки
в цепочке могут пропускаться, а другие
– образовывать циклические структуры.
Структура нелинейного конвейера,
способного вычислять две функции X и Y,
и диаграммы, в которой функциями X и Y
востребуются те или иные функциональные
блоки приведена на рис. 12