Общий глоссарий
"Гарвардская" архитектура — способ построения вычислительной системы, при котором разделяются памяти команд и памяти данных и для передачи исполнительному устройству команд и данных используются отдельные шины.
"Синергичный" процессорный элемент (Synergistic Processor Element (SPE)) — представляет собой отдельный процессор, выполняющий отдельное приложение. Разделяемая когерентная память и большой набор команд для DMA позволяет организовать эффективный обмен данными между SPE. Выборка инструкций, а также инструкции загрузки/сохранения работают только в пределах адресного пространства локальной памяти SPE. Большой объем регистрового файла служит более полному заполнению вычислительного конвейера. В каждом SPE есть контроллер потока данных памяти.
AMBA 3 AXI — стандарт AMBA изначально был разработан для эффективного взаимодействия между процессорами ARM. Стандарт не накладывает жестких ограничений на метод арбитража шины. Это позволяет реализовать арбитраж в соответствии с требованиями, которые предъявляются к проектируемому устройству. В спецификации определены две шины: многоуровневая AHB и AMBA Advanced Extensible Interface (AXI). Многоуровневая AHB позволяет создавать более гибкие архитектуры (например, матричного типа, в которых имеется возможность параллельных пересылок между несколькими ведущими и ведомыми устройствами). AMBA AXI построена по принципу двухточечного соединения ("точка-точка"); между ведущим и ведомым устройством передача данных происходит по отдельным каналам записи и чтения.
Anet — содержит 64 оптически соединенных кластера, которые включают небольшие электрические структуры, служащие для взаимодействия с оптической сетью — сети ENet и BNet.
ARM (Advancet Risc Machine) — модификация RISC-архитектуры — одно из ключевых усовершенствований — условное выполение всех инструкций процессора.
Axum — язык изначально предназначен для написания многопоточных параллельных приложений, оптимизированных для работы на современных многоядерных процессорах. Основные концепции: домен, канал, агент, схема и слой. Поддерживается также глубокая инкубация объектов кода.
CUDA (Compute Unified Device Architecture) — архитектура с унифицированными вычислениями, иногда называемая GPU Computing.Среда представляет собой надстройку над языком С, которая вводит несколько новых операторов и процедур, значительно облегчающих программирование расчетов общего назначения, а также компилятор.
Device Exclusion Vector — позволяет гипервизору определять, позволен ли доступ виртуальной машине или устройству к определенной странице памяти или нет.
DGEMM — тест перемножения матриц двойной точности.
Direct Connect Architecture — прямое подключение шин ввода-вывода HyperTransport (до 8 Гб/с), обеспечивающее оперативное взаимодействие между процессорами; интегрированный контроллер памяти, эффективно снижающий латентность и положительно влияющий на производительность; непосредственное подключение памяти DDR2.
ENet — обычная двумерная электрическая сеть типа "точка-точка", аналогичная сети в обычных мультипроцессорах.
Enhanced AMD PowerNow! — расширенная и улучшенная технология оптимизации энергопотребления, позволяющая динамически снижать потребление энергии ядрами — до 75% в ждущем режиме.
EPIC (Explicitly Parallel Instruction Computing) — технология явного параллелизма на уровне команд.
Error Checking and Correction (ECC) — технология проверки и коррекции ошибок памяти.
FIFO — "first-in-first-out" — принцип построения очередей или буферов по принципу "первый пришел — первый вышел".
GALS — глобально асинхронная, локально синхронная архитектура многоядерных процессоров, при которой отдельные процессорные ядра тактируются собственными независимыми генераторами, не синхронизованными между собой.
GPGPU — вычисления общего назначения на графических процессорах.
Grid-система — согласованная, открытая и стандартизованная компьютерная среда, обеспечивающая гибкое, безопасное, скоординированное распределение вычислительных ресурсов и ресурсов хранения информации (ресурсы могут быть разнородными и географически распределенными).
HPC (High Perfomance Computing) — высокопроизводительные вычисления — круг задач, связанных с большим объемом вычислительных или логических операций, а также с большими объемами данных или сетевым трафиком.
HyperTransport — высокоскоростная шина ввода-вывода процессоров AMD.
IA-процессор (Intel Architecture) — процессоры, совместимые по системе команд процессорами Intel.
Intel IPP — набор кросс-платформенных библиотек, содержащих большое количество высокопроизводительных функций, которые могут быть использованы для аудио- и видеокодеков (например, H.263, MPEG-4), сжатия изображений (JPEG и JPEG2000), обработки изображений (двумерных массивов), обработки сигналов (одномерных массивов или векторов), сжатия естественной речи, систем компьютерного зрения, криптографических приложений, а также вспомогательных математических функций.
Intel Math Kernel Library (MKL) — представляет собой набор функций линейной алгебры, быстрого преобразования Фурье и векторной математики для разработки научного и инженерного программного обеспечения.
Jazelle DBX (Dynamic Bytecode eXecution) — динамическое выполнение байт-кодов. Основным элементом этой технологии является специальный сопроцессор, встраиваемый в стандартную архитектуру микропроцессоров ARM. Сопроцессор аппаратно преобразует байт-код Java в соответствующую последовательность команд основного процессора, который немедленно их выполняет. Программная интерпретация байт-кодов заменяется аппаратной, что приводит к существенному ускорению обработки байт-кодов и, как следствие, ускорению выполнения программ на Java.
Jazelle RCT (Runtime Compiler Target) — поддержка динамических компиляторов. Jazelle RCT вводит дополнительный набор инструкций в стандартную архитектуру процессоров ARM. Новые команды специально разработаны для оптимального выполнения Java байт-кода. Таким образом, простой компилятор может быстро преобразовать байт-код в команды основного процессора, при этом эффективно используя новые типы команд. В большинстве случаев каждому байт-коду будет соответствовать единственная 16-разрядная команда из нового набора. В результате сгенерированный код будет иметь практически тот же размер, что и исходный байт-код, но будет выполняться аппаратно.
LAM — открытая реализация стандарта MPI. С недавнего времени — Open MPI.
Loop Stream Detector — потоковый детектор цикла — блок конвейера, отслеживающий циклы в прикладной программе, оптимизируя тем самым работу конвейера.
MC# — язык параллельного программирования. Предназначен для написания программ, работающих на всем спектре параллельных архитектур — от многоядерных процессоров до Grid-сетей. Единственное требование к таким системам со стороны MC# — на них должна быть установлена среда исполнения CLR (Common Language Runtime) с соответствующим набором библиотек.
MIMD — множественный поток команд и множественный поток данных. Эти машины параллельно выполняют несколько потоков инструкций над различными потоками данных
MIPS (Microprocessor without Interlocked Pipeline Stages) — архитектура процессорных ядер, базовая концепция которой заключается в значительном повышении производительности за счет существенного упрощения архитектуры процессора, в основу которой была положена идея конвейеризации. При этом была решена проблема блокировок или вынужденных остановок конвейера, называемых interlocks, которая считалась главным препятствием распространению идеи конвейерного вычисления.
MIPS32 DSP ASE — расширение архитектуры MIPS, направленное на ускорение обработки сигналов и работы с аудио-/видеоданными. Реализация расширения набора инструкций добавляет всего 5-10% площади кристалла, при этом дает до 300% увеличения производительности ряда приложений.
MPI (Message Passing Interface) — интерфейс передачи сообщений. Библиотека, являющаяся одной из наиболее распространенных систем параллельного программирования. Использование передачи сообщений для организации параллельных вычислений ориентировано прежде всего на многопроцессорные компьютерные системы с распределенной памятью.
MTAP (Multi-Threaded Array Processor) — многопотоковый процессорный массив, составная часть процессора CSX700.
MTAP (Multi-Threaded Array Processor) — многопотоковый процессорный массив, составная часть процессора CSX700.
NEON — мультимедийное 128-битное SIMD-расширение архитектуры, предназначенное для поддержки мультимедийных операций и функций цифровой обработки сигналов.
Non Uniform Memory Access (NUMA) — процессорная система с неоднородным доступом к памяти.
OCP — стандартом OCP (Open Core Protocol) определяется конфигурируемый и независимый от шины интерфейс типа "точка-точка" между процессорными модулями и коммуникационными подсистемами ОМС. OCP является синхронным интерфейсом типа "ведущий-ведомый" с однонаправленными сигналами. Все сигналы (за исключением CLK и RESET) являются сигналами типа "точка-точка". Скорость передачи может контролироваться как ведущим, так и ведомым устройством; пересылки могут быть как конвейерными, так и блочными.
ONet — обеспечивает связь между отдельными конечными точками, называемыми хабами.
OpenMP — набор директив, библиотечных процедур и переменных окружения для программирования многопоточных приложений на многопроцессорных системах с общей памятью.
Parallel Extensions to the .NET Framework (Parallel FX Library (PFX)) — библиотека, разработанная фирмой Microsoft, для применения в программах на базе управляемого (managed) кода. Она позволяет распараллеливать задачи, в которых могут использоваться специальные — координирующие (coordinating) — структуры данных.
POSIX (Portable Operating System Interface for Unix) — переносимый интерфейс операционных систем Unix. Набор стандартов, обеспечивающих интерфейсы между операционной системой и прикладной программой.
POSIX Thread API — стандарт реализации потоков выполнения, определяющий прикладной программный интерфейс для их создания и управления.
PVM (Parallel Virtual Machine) — программная система, которая представляет разнородные компьютеры, связанные сетью, как единую параллельную машину.
QuickPath Interconnect (QPI) — интерфейс QPI является двунаправленным с двумя 20-битными шинами, по одной на каждое направление, из которых 16 зарезервировано под данные, а оставшиеся четыре — под функции исправления ошибок или служебную информацию протокола.
RAID-массив — массив из нескольких дисков, управляемых при помощи спецмиализированного контроллера, взаимосвязанных скоростными каналами передачи данных и представляющих для внешней системы единое целое. Служит для повышения надежности хранения данных, а также для ускорения доступа к данным.
RISC-процессор — процессор с системой команд сокращенной функциональности. Основные характеристики RISC-процессоров: фиксированная длина инструкций; отсутствуют операции типа "чтениемодификация-запись" с памятью; большое количество регистров общего назначения; отсутствие микропрограмм.
SIMD — одиночный поток команд и множественный поток данных. Эти системы обычно имеют большое количество процессоров, которые могут выполнять одну и ту же инструкцию относительно разных данных в жесткой конфигурации. Единственная инструкция парал- лельно выполняется над многими элементами данных.
Simultaneous Multi-Threading (SMT) — последовательная многозадачность — поддержка процессорным ядром некольких потоков исполнения.
SMP Linux — версии операционной системы Linux, поддерживающие однородные многопроцессорные системы.
SPARC (Scalable Processor ARChitecture) — масштабируемая процессорная архитектура. Основные характерные черты:
- использование регистровых окон для передачи параметров и возврата результатов;
- поддержка нескольих потоков выполнения при помощи переключения потоков во время ожидания данных из памяти.
Translation Lookaside Buffer (TLB) — таблица преобразования виртуальных адресов в реальные.
TrustZone — технология для обеспечения безопасности транзакций, управления цифровыми сертификатами, создания базы для проверки и защиты прав (Digital Rights Management (DRM)), защиты данных приложений.
VLIW-процессор — процессоры с т. н. длинным командным словом — команды таких процессоров содержат явные инструкции по распараллеливанию подкоманд на несколько исполнительных устройств процессора.
Архитектура CBEA (Cell Broadband Engine Architecture) — архитектура, расширяющая 64-битную архитектуру.
Архитектура АТАС — объединяет оптическую широковещательную сеть с ячеистой (плиточной) мультиядерной архитектурой для значительного увеличения производительности, энергетической масштабируемости и упрощения программирования.
Асимметричные процессоры со специализированными ядрами — процессоры, сочетающие в себе разнотипные процессорные ядра.
Блок предсказания ветвлений — блок конвейера, просчитывающий вероятности условных или безусловных переходов программы, исполняемой процессором.
Блокировка — взаимоисключающий доступ к одному ресурсу двух или более потоков. Возникает, когда несколько потоков ждут результатов данных или завершения работы друг друга.
Виртуальный процессорный элемент — поток выполнения использует свои ресурсы процессора независимо от других потоков, переключение контекста для выполняющегося потока прозрачно. Фактически, каждых поток работает со своим процессором.
Вычислительная ячейка (tile) — структурный элемент многих многоядерных процессоров, обычно содержащий один или несколько процессорных элементов.
Гонки — возникают, когда несколько потоков многопоточного приложения пытаются одновременно получить доступ к данным и при этом хотя бы одному потоку нужновыполнить запись. Гонки могут дать непредсказуемый результат.
Динамические реконфигурируемые процессоры — процессоры, содержащие стандартное ядро и расширяющее его возможности устройство, которое может быть запрограммировано в процессе исполнения; обычно это бывает программируемая логическая матрица
Закон Мура — вычислительная мощь микропроцессоров и плотность микросхем памяти удваивается примерно каждые 18 месяцев при неизменной цене.
Классификация Флинна — один из наиболее удобных подходов к классификации архитектур вычислительных систем (предложен в 1966 году М. Флинном (Flynn)). В основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса: SISD — Single Instruction Single Data; MISD — Multiple Instruction Single Data; SIMD — Single Instruction Multiple Data; MIMD — Multiple Instruction Multiple Data.
Кластер — модульная многопроцессорная система, созданная на базе стандартных вычислительных узлов, которые соединены высокоскоростной коммуникационной средой.
Кольцевой резонатор — оптический фильтр для извлечения света нужной длины волны из световода и транспортировки его к фотодетектору, настроен на конкретную длину волны.
Конфигурируемые процессоры — "заготовки" для создания специализированных процессоров, содержат в себе необходимый набор компонентов, адаптируемый к требованиям приложений.
Массив взаимодействующих/конкурирующих нитей — техника выполнения задач на графическом процессоре (CTA — Cooperative Threads Array). Нити в CTA выполняют одну программу, каждая нить имеет свой идентификационный номер, нити разделяют данные и синхронизованы между собой. Программа использует номер нити для выбора активной нити и адресации разделяемых данных.
Многопотоковые/мультитредовые мультиядерные процессоры — высокоинтергрированные процессорные системы — "системы (серверы) на кристалле".
Многопоточность — аппаратная поддержка процессором нескольких потоков выполнения.
Многоядерность — подход к построению высокопроизводительных процессоров, при котором на кристалле располагаются относительно простые вычислительные ядра и число их — от нескольких десятков до нескольких сотен.
Многоядерные процессоры общего назначения — процессоры с ядрами, по сложности приближающимися к ядрам процессоров общего назначения. Имеют развитую систему кэш-памяти, высокопроизводительную систему связей между ядрами.
Модель ассиметричных потоков — модель ассиметричных потоков является расширением широко распространенной модели многопоточности на случай вычислительных модулей с различной архитектурой инструкций.
Модель выгрузки функций — явным образом указывает, какие функции на каких ядрах должны выполняться.
Модель мультипроцессора с разделяемой памятью — в мультипроцессорах с общей памятью (сильносвязанных мультипроцессорах) имеется память данных и команд, доступная всем процессорам. С общей памятью процессорный элемент связывается с помощью общей шины или сети обмена.
Модель ускорения вычислений — выделяется одно или несколько управляющих ядер, остальные ядра выполняют наиболее вычислительно емкие участки кода программы. Необходимо распараллеливать программу и данные. Необходимо организовывать эффективный обмен кодом и данными между ядрами.
Мультиядерность — подход к построению высокопроизводительных процессоров в котором процессорные ядра являются высокопроизводительными и их на кристалле относительно небольшое количество.
ОККАМ — язык программирования многопроцессорных вычислительных систем, в основе которого лежит концепция взаимодействующих последовательных процессов. Процессы, протекающие параллельно, используют обмен информацией типа "рандеву" между парой процессов. При этом процесс, первым подошедший к точке "рандеву", ожидает готовности второго процесса.
Платформа "Мультикор" — это однокристальные программируемые многопроцессорные асимметричные "системы на кристалле" на базе IP-ядер. Типовой состав процессоров данной платформы — ведущее MIPS-ядро и один или несколько сигнальных процессоров серии ELcore.
Потоковые модели — потоки (thread), состояние которых полностью характеризуется значениями указателей на код и стек. Переключение процессора на поток минимизировано вплоть до операций сохранения/восстановления этих указателей. Планировщик по-прежнему присутствует и активизируется по прерываниям от таймера. Таким образом, при многопоточности можно минимизировать или даже полностью исключить накладные расходы, присущие многозадачности. Простота организации делает многопоточность привлекательной для обеспечения "мелкозернистого" логического параллелизма с гранулярностью на уровне нескольких инструкций.
Потоковый мультипроцессор — множество нитевых/потоковых процессорных ядер графического процессора, которые выполняют одну операцию над множественным потоком данных, имеющим общий блок управления и память.
Процессорный элемент Power (PPE) — центральное ядро процессора Cell. Имеет архитектуру Power, в основном играет роль ведущего ядра в процессоре.
Процессоры для мобильных устройств — низкопотребляющие высокопроизводительные процессоры с развитой системой управления энергопотреблением и набором периферийных модулей.
Пучок/группа/верп — группа потоков программы, выполняющейся на потоковом мультипроцессоре, над которой выполняется одна операция.
Раздел (grid) — один из последовательности шагов решения задачи, выполняющийся параллельно на графическом процессоре.
Режим Turbo — режим работы процессоров с микроархитектурой Nehalem, позволяющий в некоторых случаях увеличивать рабочую частоту одного или нескольких процессорных ядер при отключении неиспользуемых ядер.
Специализированные многоядерные процессоры — процессоры с относительно простыми ядрами небольшой разрядности, с эффективной системой управления энергопотреблением.
Специализированные процессоры — процессоры, которые имеют набор команд, адаптированный к определенным приложениям.
Технология Dual Dynamic Power Management — позволяет каждому процессору в полной мере использовать преимущества усовершенствованной энергосберегающей технологии Enhanced AMD PowerNow! без снижения производительности.
Технология Multicore Hardwall — технология организации вычислений в процессорах Tile, позволяющая выделить одно или несколько ядер в относительно независимую процессорную группу, исключая коммуникации между выделенной группой и остальными ядрами, не включенными в группу.
Технология когерентного кэша Tilera’s DDC — динамический распределенный когерентный кэш в процессорах Tile, позволяющий одним ядрам получать доступ к данным, кэшированным ранее другими ядрами.
Фон-Неймановская архитектура — способ построения вычислительной системы, основывающийся на принципах фон Неймана:
- принцип использования двоичной системы для представления команд и данных;
- принцип программного управления (программа состоит из набора команд, которые выполняются друг за другом в определенной последовательности);
- принцип однородности памяти (программы и данные хранятся в одной и той же памяти, над командами можно выполнять те же действия, что и над данными);
- принцип адресуемости памяти;
- принцип последовательного программного управления;
- принцип условного перехода.
Частотное мультиплексирование — разнесение нескольких потоков передачи данных в одном физическом канале за счет передачи потоков на различных частотах.