01 Классификация архитектур вычислительных систем. Классификация Флинна

Архитектура аппаратных средств

Лекция · 4 академических часа

Тема: «Классификация архитектур вычислительных систем. Классификация Флинна». Сегодня мы шаг за шагом разберём, как классифицируют вычислительные системы. Сначала — базовые понятия, потом — классы SISD, SIMD, MISD, MIMD.

командаданныепотокSISDSIMDMISDMIMD
Курс 2026
02План лекции

Мы будем идти от простого к сложному. Сначала разберём базовые понятия, без которых классификация Флинна непонятна. Потом — саму классификацию.

Часть 1. Введение (слайды 3–6)
  • Что такое архитектура вычислительной системы.
  • Зачем классифицировать архитектуры.
  • Основные критерии классификации.
  • Обзор классификаций.
Часть 2. Классическая архитектура (слайды 7–14)
  • Архитектура фон Неймана.
  • Гарвардская архитектура.
  • Гибридные архитектуры.
  • SMP, кластеры, NUMA.
Часть 3. Базовые понятия (слайды 15–19)
  • Что такое команда.
  • Что такое данные.
  • Что такое поток команд.
  • Что такое поток данных.
  • Что значит «один» и «много».
Часть 4. Классификация Флинна (слайды 20–30)
  • Идея Флинна.
  • Как из понятий получаются классы.
  • SISD, SIMD, MISD, MIMD — по порядку.
  • Сравнение.

Цель лекции: понять, что стоит за аббревиатурами SISD, SIMD, MISD, MIMD, и научиться определять класс архитектуры для реальных устройств.

03Что такое архитектура вычислительной системы?

Архитектура вычислительной системы — это совокупность принципов организации, определяющих состав, взаимодействие и функционирование компонентов системы.

  • Определяет, как связаны процессор, память и устройства ввода-вывода.
  • Описывает, как передаются данные и команды.
  • Влияет на производительность, энергопотребление, стоимость.

Важно: архитектура — это не конкретная реализация, а принцип. Одна и та же архитектура может быть реализована в разных процессорах.

Пример: архитектура фон Неймана лежит в основе большинства современных ПК. Но конкретные процессоры (Intel, AMD) могут сильно отличаться по реализации.
04Зачем классифицировать архитектуры?

Вычислительные системы очень разные: от калькулятора до суперкомпьютера. Классификация помогает в них разобраться.

  • Понимание: позволяет увидеть общие принципы в разных системах.
  • Сравнение: помогает сравнивать системы по ключевым параметрам.
  • Выбор: помогает выбрать систему под конкретную задачу.
  • Проектирование: помогает создавать новые системы.

Классификация Флинна — самая известная. Она делит системы по тому, сколько команд и данных они могут обрабатывать одновременно. Но чтобы её понять, нужно сначала разобраться, что такое команда, данные и поток.

05Основные критерии классификации
КритерийЧто классифицирует Потоки команд и данныхКлассификация Флинна Способ соединения процессоровКлассификация Хокни Способ доступа к памятиКлассификация Скилликорна Тип памятиОбщая, распределённая, гибридная МасштабCMP, SMP, NUMA, кластеры, грид НазначениеУниверсальные, специализированные

Мы подробно разберём классификацию Флинна — она самая распространённая и лежит в основе понимания параллельных вычислений.

06Обзор классификаций: Флинн, Хокни, Скилликорн
Флинн (1966)
  • По потокам команд и данных.
  • 4 класса: SISD, SIMD, MISD, MIMD.
  • Самая известная.
Хокни (1978)
  • По способу соединения процессоров.
  • С общей памятью, с распределённой.
  • Учитывает топологию сети.
Скилликорн (1989)
  • По способу доступа к памяти.
  • UMA, NUMA, COMA, NORMA.
  • Современный подход.

Все три классификации дополняют друг друга. Флинн отвечает на вопрос «что делают», Хокни — «как соединены», Скилликорн — «как обращаются к памяти».

07Классическая архитектура фон Неймана

Архитектура фон Неймана — принцип организации, при котором команды и данные хранятся в одной памяти и передаются по одной шине.

  • Единая память для команд и данных.
  • Последовательное выполнение команд.
  • Процессор читает команду, выполняет, записывает результат.
  • Простота и универсальность.
Память (команды + данные)
↕
Процессор
↕
Устройства ввода/вывода
Недостаток: «узкое место фон Неймана» — процессор ждёт данные из памяти, пропускная способность шины ограничена.
08Структура фон Неймана: память, процессор, УВВ

В классической архитектуре выделяют три основных блока.

БлокФункции ПамятьХранит команды и данные. Единое адресное пространство. ПроцессорВыполняет команды. Состоит из УУ, АЛУ, регистров. Устройства ввода/выводаОбеспечивают обмен с внешним миром.

Ключевая идея: программа хранится в той же памяти, что и данные. Это делает компьютер универсальным — меняется программа, а не «железо».

Пример: ноутбук утром — текстовый редактор, днём — браузер, вечером — игра. Меняется только программа, архитектура остаётся той же.
09Гарвардская архитектура

Гарвардская архитектура — альтернатива фон Нейману: команды и данные хранятся в разных памятях и передаются по разным шинам.

  • Отдельная память команд.
  • Отдельная память данных.
  • Две шины — можно одновременно читать команду и данные.
  • Выше быстродействие.
Память команд Память данных
↕ ↕
Процессор
Применение: микроконтроллеры AVR (Arduino), PIC, ARM Cortex-M. Они быстро реагируют на сигналы датчиков, потому что одновременно читают программу и данные.
10Сравнение фон Неймана и гарвардской
ПараметрФон НейманаГарвардская Память командОбщаяОтдельная Память данныхОбщаяОтдельная ШиныОднаДве СкоростьНижеВыше СложностьПрощеСложнее ПрименениеПК, серверыМикроконтроллеры

Современность: ПК используют фон Неймана, но с раздельными кэшами команд и данных — гибридный подход. Это позволяет совместить гибкость с производительностью.

11Гибридные архитектуры: раздельные кэши

Современные процессоры используют гибридный подход: снаружи — фон Неймана, внутри — гарвардская.

  • Кэш L1 разделён на кэш команд и кэш данных.
  • Основная память — общая (фон Неймана).
  • Это позволяет одновременно читать команду и данные.
  • Сохраняется гибкость фон Неймана.

Пример: процессор Intel Core имеет кэш L1, разделённый на кэш команд (32 КБ) и кэш данных (32 КБ). Это элементы гарвардской архитектуры внутри машины фон Неймана.

Пример: при выполнении программы процессор одновременно выбирает команду из кэша команд и читает данные из кэша данных. Это ускоряет работу.
12Архитектура с общей памятью (SMP)

SMP (Symmetric Multiprocessing) — архитектура, в которой несколько процессоров имеют равный доступ к общей памяти.

  • Все процессоры равноправны.
  • Общая оперативная память.
  • Общая шина или коммутатор.
  • Простота программирования.
ПреимуществаНедостатки Простота программированияОграничение по числу процессоров (шина) Быстрый обмен даннымиКонкуренция за память Единое адресное пространствоСложность масштабирования
Пример: сервер с 4 процессорами и общей памятью. Все процессоры видят одни и те же данные. Но при добавлении процессоров шина становится «узким местом».
13Архитектура с распределённой памятью (кластеры)

Кластер — группа компьютеров, соединённых сетью и работающих как единая система. У каждого — своя память.

  • Каждый узел — полноценный компьютер.
  • Своя оперативная память.
  • Обмен данными по сети.
  • Высокая масштабируемость.
ПреимуществаНедостатки Масштабируемость до тысяч узловСложность программирования ОтказоустойчивостьЗадержки при обмене Дешевизна компонентовСложность синхронизации
Пример: суперкомпьютер — это кластер из тысяч серверов, соединённых высокоскоростной сетью. Каждый сервер — часть одного большого организма.
14NUMA: неоднородный доступ к памяти

NUMA (Non-Uniform Memory Access) — архитектура, в которой время доступа к памяти зависит от того, какой процессор обращается.

  • Каждый процессор имеет «свою» локальную память.
  • Доступ к локальной памяти быстрый.
  • Доступ к «чужой» памяти медленнее.
  • Компромисс между SMP и кластером.
CPU 0 CPU 1
↕ ↕
Память 0 Память 1
↔
Межсоединение
Пример: серверы AMD EPYC используют NUMA. Каждый чиплет имеет свою память. Программы стараются обращаться к «своей» памяти, чтобы не терять скорость.
15Что такое команда?

Прежде чем говорить о классификации Флинна, нужно понять, что такое команда. Без этого аббревиатуры SISD, SIMD и другие будут непонятны.

Команда (инструкция)

Команда — это элементарное указание процессору, что нужно сделать. Например: «сложи два числа», «скопируй данные», «сравни значения».

Аналогия: представьте, что вы готовите по рецепту. Каждая строчка рецепта — это команда: «нарежь морковь», «добавь соль», «перемешай». Процессор читает команды из программы и выполняет их одну за другой.
  • Команды хранятся в памяти вместе с данными.
  • Процессор читает команду, декодирует её, выполняет.
  • Команды бывают: арифметические, логические, пересылки, управления.
Пример: в программе на Python строка a = 2 + 3 превращается в несколько команд процессора: «загрузи 2», «загрузи 3», «сложи», «сохрани результат». Каждая из них — отдельная команда.
16Что такое данные?

Теперь разберёмся, что такое данные. Команды говорят «что делать», а данные — это то, с чем нужно что-то делать.

Данные

Данные — это информация, которую процессор обрабатывает: числа, текст, изображения, звук. Данные — это «материал» для работы команд.

Аналогия: если команда — это «нарежь», то данные — это морковь, которую нужно нарезать. Если команда — «сложи», то данные — это два числа, которые нужно сложить. Без данных команда бессмысленна.
  • Данные хранятся в памяти и регистрах.
  • Данные могут быть разного типа: целые числа, дробные, символы, логические значения.
  • Команда применяется к данным и даёт результат.
Пример: в команде «сложи 2 и 3» числа 2 и 3 — это данные. В команде «выведи слово "Привет"» слово «Привет» — это данные. Данные — это то, над чем выполняется операция.
17Что такое поток команд?

Мы знаем, что такое команда. Но процессор выполняет не одну команду, а последовательность команд. Эта последовательность называется потоком команд.

Поток команд (Instruction Stream)

Поток команд — это последовательность команд, которые выполняет процессор. Одна команда за другой, как очередь.

Аналогия: представьте, что вы читаете книгу. Каждое предложение — это команда. Вы читаете предложения по порядку — это ваш поток команд. Если вы читаете одну книгу — у вас один поток. Если читаете две книги одновременно — у вас два потока команд.
  • Поток команд — это «что делать» в определённом порядке.
  • Один поток — одна последовательность команд.
  • Несколько потоков — несколько независимых последовательностей.
Пример: программа — это поток команд. Она состоит из тысяч команд, которые выполняются по порядку. Если компьютер выполняет одну программу — у него один поток команд.
18Что такое поток данных?

Аналогично командам, данные тоже могут образовывать поток. Это последовательность данных, которые обрабатываются.

Поток данных (Data Stream)

Поток данных — это последовательность данных, которые обрабатываются командами. Одно значение за другим.

Аналогия: если поток команд — это «что делать», то поток данных — это «с чем делать». Представьте конвейер на заводе: по нему движутся детали (поток данных), а рабочие выполняют над ними операции (поток команд). Детали могут идти по одной — один поток данных. Или по нескольким конвейерам сразу — несколько потоков данных.
  • Поток данных — это «с чем работать» в определённом порядке.
  • Один поток — одни данные обрабатываются последовательно.
  • Несколько потоков — несколько наборов данных обрабатываются одновременно.
Пример: если вы обрабатываете массив из 100 чисел, и числа обрабатываются по одному — это один поток данных. Если 100 чисел обрабатываются все сразу (как в GPU) — это несколько потоков данных.
19Что значит «один» и «много»?

Теперь у нас есть два ключевых понятия: поток команд и поток данных. У каждого потока может быть два варианта: один (Single) или много (Multiple).

ВариантЧто значитПример Single (один)В каждый момент времени обрабатывается только один потокОдна программа, один массив Multiple (много)Несколько потоков обрабатываются одновременноНесколько программ, много массивов
Аналогия: представьте кухню.
Один поток команд — один повар читает один рецепт.
Много потоков команд — три повара читают три разных рецепта.
Один поток данных — одна морковь на разделочной доске.
Много потоков данных — целый ящик моркови, который режут сразу.

Комбинируя «один» и «много» для команд и данных, мы получаем четыре класса. Именно это и сделал Майкл Флинн в 1966 году.

20Идея Майкла Флинна: как из понятий получаются классы

В 1966 году Майкл Флинн предложил простую, но гениальную идею: классифицировать компьютеры по тому, сколько потоков команд и потоков данных они могут обрабатывать одновременно.

У каждого потока есть два варианта: один (Single) или много (Multiple). Комбинируя их, получаем четыре класса.

Поток команд Поток данных
↓ ↓
1 команда 1 данные = SISD

Флинн не говорил, какой класс «лучше». Он просто показал, что все компьютеры можно разложить по этим четырём полочкам. Это и есть классификация.

21SISD: Single Instruction, Single Data

Расшифровка: Single — один, Instruction — команда, Single — один, Data — данные. То есть одна команда обрабатывает одни данные за раз.

Аналогия: один повар, один рецепт, одна порция. Повар берёт морковь, режет её. Потом берёт лук, режет его. Всё строго по очереди. Нельзя резать морковь и лук одновременно.

Как это работает: процессор выбирает одну команду из памяти, выполняет её над одними данными, записывает результат. Потом берёт следующую команду. И так далее — последовательно, шаг за шагом.

Одна команда
↓
Процессор
↓
Одни данные
Пример из жизни: обычный калькулятор. Вы нажимаете «2 + 3», он считает. Потом «4 × 5» — снова считает. Одна операция за раз. Это SISD.
22SISD: где встречается и в чём ограничение

SISD — самый простой и самый распространённый класс. Почти все обычные компьютеры работают именно так.

УстройствоПочему это SISD Одноядерный ПКОдна команда, одни данные за раз КалькуляторПоследовательные операции МикроконтроллерОдна задача за раз Старые ЭВМПоследовательное выполнение
Ограничение: SISD не использует параллелизм. Каждая команда ждёт, пока выполнится предыдущая. Если задач много — приходится ждать. Это как в очереди в магазине: одна касса — один покупатель за раз.
Пример: если нужно обработать 1000 фотографий, SISD-компьютер будет обрабатывать их по одной. Это медленно. Именно поэтому придумали SIMD и MIMD.
23SIMD: Single Instruction, Multiple Data

Расшифровка: Single — одна, Instruction — команда, Multiple — много, Data — данных. То есть одна команда применяется сразу к многим данным.

Аналогия: один повар, один рецепт, но много порций сразу. Повар берёт не одну морковь, а целый ящик моркови и режет всё сразу одним движением. Одна команда «нарезать» — применена к 100 морковкам одновременно.

Как это работает: процессор имеет несколько исполнительных блоков. Одна команда «увеличь на 1» применяется ко всем элементам массива одновременно. Результат — за один такт, а не за 100 тактов.

Одна команда
↓
Данные 1 Данные 2 Данные 3 Данные 4
↓
Результат 1 Результат 2 Результат 3 Результат 4
Пример из жизни: видеокарта (GPU). На экране 2 миллиона пикселей. Команда «сделать ярче» применяется ко всем пикселям сразу. Если бы GPU работал как SISD, он обрабатывал бы пиксели по одному — и игры бы «тормозили».
24SIMD: где встречается

SIMD — основа современных вычислений. Без него не было бы ни игр, ни ИИ, ни научных симуляций.

УстройствоПочему это SIMD GPU (видеокарта)Тысячи ядер обрабатывают пиксели одновременно Векторные процессорыОперации над векторами (массивами) DSP (аудио)Обработка звуковых сигналов NPU (ИИ)Матричные операции для нейросетей SSE/AVX (в CPU)Векторные расширения процессора

SIMD в обычном CPU: современные процессоры имеют векторные расширения (SSE, AVX, NEON). Они позволяют выполнять одну команду над 4–16 элементами одновременно. Это как «турбо-режим» для массивов данных.

Пример: команда AVX-512 обрабатывает 16 чисел с плавающей точкой за одну инструкцию. Если нужно сложить 16 чисел — это делается за один такт, а не за 16.
25SIMD: где применяется
Графика
  • Обработка пикселей.
  • Текстуры, освещение.
  • Физика в играх.
Искусственный интеллект
  • Матричные умножения.
  • Нейронные сети.
  • Обучение моделей.
Научные расчёты
  • Моделирование климата.
  • Физика частиц.
  • Геномика.
Мультимедиа
  • Кодирование видео.
  • Обработка звука.
  • Шифрование.

Вывод: SIMD — самый эффективный способ обработки больших массивов однотипных данных. Если задачу можно разбить на много одинаковых операций — SIMD справится лучше всего.

26MISD: Multiple Instruction, Single Data

Расшифровка: Multiple — много, Instruction — команд, Single — одни, Data — данные. То есть много разных команд обрабатывают одни и те же данные.

Аналогия: три повара готовят одно и то же блюдо по разным рецептам. Один жарит, другой варит, третий запекает. В конце сравнивают результаты и выбирают лучший. Если один повар ошибся — два других дадут правильный результат.

Как это работает: несколько процессоров получают одни и те же данные, но обрабатывают их разными командами. Результаты сравниваются — обычно голосованием. Если один процессор дал сбой, два других «переголосуют» его.

Команда 1 Команда 2 Команда 3
↓↓↓
Одни данные
↓
Голосование
Важно: MISD — самый редкий класс. В чистом виде почти не встречается. Но его принцип используется в системах, где ошибка недопустима.
27MISD: где встречается

MISD используется там, где надёжность важнее скорости. Если один процессор ошибётся — система не должна упасть.

СистемаПочему MISD Управление самолётом3 процессора, голосование Ядерный реакторТройное резервирование Космический аппаратЗащита от радиации и сбоев Банковская системаДублирование транзакций

Принцип: если один процессор ошибётся, два других дадут правильный результат. Голосование большинством отбрасывает ошибку. Это как три врача ставят диагноз независимо — если двое согласны, это верный диагноз.

Пример: в системе управления самолётом три процессора одновременно обрабатывают данные датчиков. Если один даёт сбой, два других «переголосуют» его. Самолёт продолжает лететь.
28MIMD: Multiple Instruction, Multiple Data

Расшифровка: Multiple — много, Instruction — команд, Multiple — много, Data — данных. То есть много команд обрабатывают много данных. Каждый процессор делает своё дело.

Аналогия: целая кухня ресторана. Один повар режет овощи, другой жарит мясо, третий готовит соус. У каждого свой рецепт и свои продукты. Они работают параллельно и не мешают друг другу. Это и есть MIMD.

Как это работает: каждый процессор (или ядро) выполняет свою программу над своими данными. Процессоры могут обмениваться данными, но работают независимо.

CPU 1 CPU 2 CPU 3
↓↓↓
Данные 1 Данные 2 Данные 3
Пример из жизни: видеомонтаж. Одно ядро обрабатывает видео, другое — звук, третье — эффекты. Каждое ядро делает свою задачу. Это MIMD.
29MIMD: где встречается

MIMD — самый мощный класс. Он позволяет решать задачи, которые невозможно решить на одном процессоре.

Устройство/системаПочему это MIMD Многоядерный CPUКаждое ядро — свой поток СерверМного задач одновременно СуперкомпьютерТысячи процессоров КластерРаспределённые вычисления Смартфон (CPU+GPU)Гетерогенные вычисления

MIMD — основа современной IT-инфраструктуры. Облачные серверы, дата-центры, суперкомпьютеры — всё это MIMD. Каждый процессор работает независимо, но вместе они решают одну большую задачу.

Пример: суперкомпьютер Frontier имеет миллионы ядер. Каждое ядро выполняет свою часть задачи. Вместе они решают то, на что обычному ПК нужны тысячи лет.
30MIMD: применение в реальной жизни
Наука
  • Моделирование климата.
  • Расшифровка генома.
  • Физика элементарных частиц.
Промышленность
  • CAD/CAM.
  • Симуляции.
  • Оптимизация процессов.
ИИ и данные
  • Обучение нейросетей.
  • Большие данные.
  • Рекомендательные системы.
Повседневность
  • Видеомонтаж.
  • 3D-рендеринг.
  • Стриминг игр.

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

31Сравнительная таблица SISD, SIMD, MISD, MIMD
КлассЧто делаетПример SISD1 команда над 1 даннымиОдноядерный ПК SIMD1 команда над многими даннымиGPU, векторные CPU MISDМного команд над 1 даннымиОтказоустойчивые системы MIMDМного команд над многими даннымиМногоядерные CPU, кластеры
КлассАналогия SISDОдин повар, один рецепт, одна порция SIMDОдин повар, один рецепт, много порций MISDТри повара, три рецепта, одно блюдо MIMDТри повара, три рецепта, три блюда

Современные устройства часто совмещают классы. Смартфон: CPU — MIMD, GPU — SIMD, NPU — SIMD. Это гетерогенные вычисления.

32Классификация Флинна: итоги

Что даёт классификация Флинна:

  • Понимание, как организованы потоки команд и данных.
  • Объяснение, почему GPU быстрее CPU в графике (SIMD).
  • Объяснение, как работают суперкомпьютеры (MIMD).
  • Основа для понимания параллельных вычислений.
Ограничение: классификация Флинна не учитывает, как именно соединены процессоры и как они обращаются к памяти. Для этого есть другие классификации (Хокни, Скилликорн).
Пример: два MIMD-компьютера могут сильно отличаться: один — многоядерный ПК, другой — кластер из 1000 серверов. Флинн не различает их, а Хокни и Скилликорн — различают.
33Классификация Хокни

Хокни (1978) предложил классифицировать системы по способу соединения процессоров.

ТипЧто это значит С общей памятьюВсе процессоры подключены к одной памяти С распределённой памятьюУ каждого процессора своя память, соединены сетью С гибридной памятьюКомбинация

Хокни учитывает топологию соединения: шина, звезда, кольцо, сетка, гиперкуб. Это важно для оценки задержек и масштабируемости.

Пример: SMP-сервер — общая память. Кластер — распределённая. NUMA — гибридная.
34Классификация Скилликорна

Скилликорн (1989) предложил классифицировать системы по способу доступа к памяти.

ТипРасшифровкаЧто значит UMAUniform Memory AccessОдинаковый доступ к памяти для всех NUMANon-Uniform Memory AccessДоступ зависит от расположения COMACache-Only Memory AccessТолько кэш-память NORMANo Remote Memory AccessНет удалённого доступа к памяти

Скилликорн — самый современный подход. Он учитывает, как процессоры обращаются к памяти, что важно для программистов.

Пример: SMP-сервер — UMA. Сервер AMD EPYC — NUMA. Кластер — NORMA.
35Классификация по типу памяти
ТипОписание Общая памятьВсе процессоры видят одну память (SMP) Распределённая памятьУ каждого процессора своя память (кластер) Гибридная памятьКомбинация (NUMA)

Выбор типа памяти влияет на сложность программирования и масштабируемость. Общая память проще для программиста, распределённая — масштабируемее.

36Классификация по масштабу
ТипЧто этоПример CMPНесколько ядер на кристаллеСовременный CPU SMPНесколько процессоров, общая памятьСервер NUMAНеоднородный доступAMD EPYC КластерСотни–тысячи компьютеровСуперкомпьютер ГридРаспределённые вычисленияBOINC
Пример: CMP — 8-ядерный процессор. SMP — сервер с 4 процессорами. Кластер — суперкомпьютер. Грид — добровольные вычисления по всему миру.
37Классификация по назначению
ТипЧто решаетПример УниверсальныеЛюбые задачиПК, серверы СпециализированныеОдна задачаGPU, DSP, NPU Проблемно-ориентированныеКласс задачИгровые консоли

Специализированные системы (GPU, NPU) эффективнее универсальных в своих задачах, но не могут решать всё подряд.

38Сводная таблица классификаций
КлассификацияКритерийКлассы ФлиннПотоки команд/данныхSISD, SIMD, MISD, MIMD ХокниСпособ соединенияОбщая/распределённая память СкилликорнДоступ к памятиUMA, NUMA, COMA, NORMA По масштабуРазмер системыCMP, SMP, NUMA, кластер, грид По назначениюЗадачиУниверсальные, специализированные

Все классификации дополняют друг друга. Для полного описания системы используют несколько подходов.

39Гетерогенные вычисления: CPU + GPU + NPU

Гетерогенные вычисления — совместное использование разных типов процессоров. Каждый решает свою задачу лучше остальных.

БлокКласс по ФлиннуЗадачи CPUMIMDУниверсальные, последовательные GPUSIMDГрафика, параллельные вычисления NPUSIMDНейронные сети DSPSIMDОбработка сигналов
Пример: в смартфоне CPU управляет системой, GPU рисует графику, NPU ускоряет ИИ, DSP обрабатывает звук. Каждый блок делает то, что умеет лучше всего.
40Практическое задание: классификация по Флинну

Цель: научиться определять класс архитектуры по Флинну для реальных устройств.

Задание: заполните таблицу.

УстройствоКлассОбоснование Классический одноядерный ПК?? Видеокарта (GPU)?? Многоядерный процессор (8 ядер)?? Суперкомпьютер?? Векторный процессор?? Отказоустойчивая система?? Нейронный процессор (NPU)?? Смартфон (CPU + GPU + NPU)??
Подсказка: ПК — SISD, GPU — SIMD, многоядерный CPU — MIMD, отказоустойчивая система — MISD, смартфон — гетерогенная (SISD + SIMD + MIMD).
41Тест для самопроверки

Ответьте на вопросы:

  1. Что такое команда? Приведите пример.
  2. Что такое данные? Приведите пример.
  3. Что такое поток команд?
  4. Что такое поток данных?
  5. Что означает SISD? Приведите пример.
  6. Что означает SIMD? Приведите пример.
  7. Что означает MISD? Приведите пример.
  8. Что означает MIMD? Приведите пример.
  9. Почему GPU — это SIMD?
  10. Какой класс архитектур у суперкомпьютера и почему?
42Ответы на тест
ВопросОтвет 1. КомандаУказание процессору, что делать. Пример: «сложи два числа». 2. ДанныеИнформация, которую обрабатывает процессор. Пример: числа 2 и 3. 3. Поток командПоследовательность команд, выполняемых процессором. 4. Поток данныхПоследовательность данных, обрабатываемых командами. 5. SISDОдна команда, одни данные. Пример: одноядерный ПК, калькулятор. 6. SIMDОдна команда, много данных. Пример: GPU, векторные расширения CPU. 7. MISDМного команд, одни данные. Пример: отказоустойчивая система с голосованием. 8. MIMDМного команд, много данных. Пример: многоядерный CPU, кластер. 9. GPU — SIMDПотому что обрабатывает много пикселей одной командой. 10. СуперкомпьютерMIMD — тысячи процессоров, каждый со своей задачей.
43Итоги лекции. Спасибо за внимание!

Мы рассмотрели:

  • Что такое архитектура вычислительной системы.
  • Классическую архитектуру фон Неймана и гарвардскую.
  • Гибридные архитектуры, SMP, кластеры, NUMA.
  • Базовые понятия: команда, данные, поток команд, поток данных.
  • Классификацию Флинна: SISD, SIMD, MISD, MIMD — с расшифровкой, аналогиями и примерами.
  • Классификации Хокни и Скилликорна.
  • Гетерогенные вычисления, GPU, NPU.

Понимание классификации архитектур позволяет понять, почему одни устройства быстрее других в определённых задачах, и как выбирать систему под конкретные нужды.

Вопросы?

Следующая тема — итоговое занятие и дифференцированный зачёт.

командаданныепотокSISDSIMDMISDMIMD