Алтайский государственный университет
Опубликован: 12.07.2010 | Доступ: платный | Студентов: 15 / 2 | Оценка: 4.02 / 3.93 | Длительность: 16:32:00
ISBN: 978-5-9963-0349-6
Специальности: Разработчик аппаратуры
Дополнительный материал 1:

Общий глоссарий

< Лекция 17 || Дополнительный материал 1 || Дополнительный материал 2 >
Ключевые слова: процессор, приложение, память, DMA, обмен данными, выборка, контроллер, AMBA, arm, арбитраж, advanced, extensible, interface, x-axis, точка-точка, передача данных, домен, агент, compute, unified, device, architecture, архитектура, GPU, Computing, программирование, компилятор, доступ, страница памяти, перемножение матриц, hypertransport, латентность, производительность, сеть, мультипроцессор, принцип построения, процессорное ядро, шина, AMD, I-MPEG, JPEG, JPEG2000, Java, интерпретация, поддержка, Java байт-код, тип команды, команда, MPI, OPEN, цикла, Grid, CLR, language, множественный поток команд, множественный поток данных, поток инструкций, базовая, конвейеризация, interlock, конвейерное вычисление, MIPS, интерфейс передачи сообщений, система с распределенной памятью, массив, SIMD-расширение, неоднородный доступ к памяти, core, protocol, интерфейс, CLK, скорость передачи, связь, хаб, прикладной программный интерфейс, длина, операции, запись, микропрограмма, одиночный поток команд, инструкция, многозадачность, таблица, цифровой сертификат, digital rights, management, DRM, условное или, поток, поток работ, ядро, процесс исполнения, матрица, SISD, Instruction, Data, MISD, SIMD, MIMD, многопроцессорная система, коммуникационная среда, array, программа, разделяемые данные, кэш, память данных, процессорный элемент, язык программирования, обмен информацией, thread, стек, планировщик , расходы, cell, power, группа, enhanced, tiling

"Гарвардская" архитектура — способ построения вычислительной системы, при котором разделяются памяти команд и памяти данных и для передачи исполнительному устройству команд и данных используются отдельные шины.

"Синергичный" процессорный элемент (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, позволяющий одним ядрам получать доступ к данным, кэшированным ранее другими ядрами.

Фон-Неймановская архитектура — способ построения вычислительной системы, основывающийся на принципах фон Неймана:

  • принцип использования двоичной системы для представления команд и данных;
  • принцип программного управления (программа состоит из набора команд, которые выполняются друг за другом в определенной последовательности);
  • принцип однородности памяти (программы и данные хранятся в одной и той же памяти, над командами можно выполнять те же действия, что и над данными);
  • принцип адресуемости памяти;
  • принцип последовательного программного управления;
  • принцип условного перехода.

Частотное мультиплексирование — разнесение нескольких потоков передачи данных в одном физическом канале за счет передачи потоков на различных частотах.

< Лекция 17 || Дополнительный материал 1 || Дополнительный материал 2 >
Сергей Горбунов
Сергей Горбунов

 

прошел курс и сдал экзамен   Многоядерные процессоры   

система сертификат не выдала. почему?