Системы классификации архитектур.
Архитектура - Г.Майерс:распределение функций, реализуемых системой, по отдельным ее уровням и точное определение границ между этими уровнями».
Архитектура системы - Фридерик Брукс, главный конструктор ПО IBM/360: полная и подробная спецификация интерфейса пользователя. Для компьютера – это руководство по программированию. Для системы в целом – это набор всех руководств, к которым пользователь должен обращаться при работе.
Перечень классификаций:
1. Систематика M.J.Flynn ( Флинн, 1972 )
-- Поток-последовательность команд и данных
-- Потоки-одиночные и множественные.
а. ОКОД (SISD)
б. ОКМД (SIMD)
в. МКОД (MISD)
г. МКМД (MIMD)
2. Классификация R.Hockney ( Хокни )
3. Систематика J.E.Shore ( Шор, 1973 )
в виде схематического представления 6 классов машин: (пам ком-д, пам дан, УУ, устр обраб (АЛУ))
1 – пословно-последовательная, разрядно-параллельная ПК-УУ-Гор.УО---Пословно-секцион ПД
2 – пословно-параллельная, разрядно-последовательная ПК-УУ-ВертУО---Разрядно-секцион ПД
3 – (1+2) ортогональный компьютер ПК-УУ-ГорУО(внизВертУО)-квадрат-ПД
4 – несвязанная матрица УУ-вниз-УО-УО-УО-вниз-ПД-ПД-ПД
5 – связанная матрица УУ-вниз связан-УО-УО-УО-вниз ПД-ПД-ПД
6 – матрица с встроенной в память логикой УУ-УО+ПД
4. Классификация T.Feng ( Фенг, 1972 )
Интегральная характеристика потенциала параллельности архитектуры:
Р=m x n, где
n - число бит в машинном слове.
m - число слов, обрабатываемых параллельно данной ВС.
5. Классификация W.Handler ( Хендлер )
k – число УУ
d – число АЛУ в каждом УУ
w –разрядность битовой обработки.
ILLIAC-IV = ( 1, 64, 64 )
6. Структурная нотация
Основные принципы структурной нотации.
1. Обозначения устройств
B – целочисленные устройства исполнения
C – компьютер ( включает хотя бы одно I )
Core – процессорное ядро
Ch – канал ввода-вывода
D – устройство ввода-вывода
E – устройство исполнения ( АЛУ )
F – устройства с плавающей точкой
H – магистраль данных
I – устройство обработки потока команд
IO – интерфейс устройства ввода-вывода
M – устройство памяти ( обычно ОП )
P – процессор
U – неспецифицированное устройство
X – коммутатор
Csh – кэш
Csh1, Csh2 – кэш 1-го, 2-го уровней
Cshi, Cshd – кэш команнд, кэш данных
Rg – регистры
Lds – устр-во загрузки-записи
Br – блок предсказания переходов
GrP – графический процессор
Server – сервер.
Super – суперкомпьютер.
SS (Storage System) – система хранения данных.
Cluster – кластерная система.
Node – узел.
Hub – сетевой концентратор для передачи информации в простой сети.
Switch – сетевой концентратор - это устройство, предназначенное для соединения нескольких узлов компьютерной сети или нескольких блоков ВС в пределах одного сегмента.
Router - маршрутизатор, это сетевое устройство, на основании информации о топологии сети и определённых правил, принимающее решения о пересылке пакетов сетевого уровня (уровень 3 модели OSI) между различными сегментами сети.
2. Конвейерная обработка – подстрочный индекс p (pipeline): I p, E p
3. Векторные команды – подстрочный индекс v, который следует за I: I v, I pv
4. Различные устройства одного и того же типа обозначаются целым числом: E1p, E3p
5. Правило подстановки ( по аналогии с алгеброй): I [ E1, E2 ]; E1=………; E2=……….
6. Группа устройств – { }. Разделители:
, - устройства работают параллельно; {4F p , 2B}
/ - устройства работают последовательно. { E1 / E2 / E3 }
7. Множественные устройства: 10Е
8.Дублирование – черта над символом: 64Р = 64{E-M(сверху черта над Е-М)};
9. Число разрядов: I16, F p 64
Для блоков памяти: n M w * b, Пример: M 1K * 32; 8 M 64 * 64
n – кол-во банков памяти, w – объем памяти, b - разрядность
10. Характеристическое время - > [ нс ]: I 40 , M 650
11. Связь посредством шины:
— неспецифицированное
—> симплексное
<—> дуплексное
<—/ —> полудуплексное
12. Цепь устройств: Е — Rg — Csh1 — Csh2 — M
13. Матрицы процессоров - > « c – nn »
288 { 3E — M } 0-2D PEPE
[ 64 2 P ] 1-2D DAP
[ 32 2 P ] 2-2D CLIP
[ 64 2 P ] 1-3D
[ 64 2 P ] Torr
14. Перекрестные соединения
I p [ 16 F x 17 M ]
15. Комментарии - > ( )
16. Управление - > I [ ]
Вид управления (подстрочн): a – асинхр, l – синхр, r
I p [ 10 F, 10 С ] r
17. Подстр. индекс у C или P может быть: CISC / RISC / VLIW / EPIC / Векторная / SMP / MPP/Кластер/ ClusterHA/ ClusterNLB/ ClusterHPC/ SAN/ DAS/NAS/CAS
Пример
P CISC (i8086)= I p8 [B 16 –16 Rg 13*8] –16 M 1M*16
RISC-идеология. История, основные принципы, признаки RISC. Достоинства и недостатки.
До начала 80-х годов прогресс в области ВТ за счет смены средств элементной базы компьютеров (на различных физических принципах). Последние десятилетия процессоры развиваются на базе интегральных полупроводниковых микросхем.
В конце1970-х гг. IBM: около 20% всех команд процессора занимают при выполнении около 80% всего процессорного времени, а остальные 80% команд — оставшиеся 20%.
Возникла идея свести набор команд к минимуму, зафиксировать их длину для удобства декодирования, а непосредственный доступ к памяти (загрузку данных в регистры ЦП из памяти и копирование из регистров в память) разрешить лишь некоторым из них.
В начале 80-х Дэвид Дайзел с Дэвидом Патерсоном (David Patterson) опубликовали известную статью – «Необходимость RISC компьютеров».
Вывод: на уровне микропроцессора нужно оставить только эти самые 20%, а остальные операции выполнять с помощью механизмов типа микропрограмм (примерно так же, как реализуются операции с плавающей запятой в компьютере без сопроцессора).
RISC (Reduced Instruction Set Computing) - архитектура сокращенного набора команд. Данный тип микропроцессора нацелен на быструю и эффективную обработку небольшого набора команд. Архитектура RISC основана на том, что процесс декодирования и выполнения большинства команд должен быть достаточно прост, и в результате набор команд RISC-микропроцессора ограничен.
В ходе работы такой процессор оптимизирует каждую команду для быстрого выполнения, обычно в пределах одного такта. Однако при выполнении сложных команд RISC-микропроцессоры работают медленнее, чем CISC-микропроцессоры общего назначения, поскольку эти команды необходимо разбивать на более простые.
CISC (Complex/Complete Instruction Set Computing) - архитектура полного набора команд. Микропроцессор CISC использует набор машинных инструкций, полностью соответствующий набору команд языка ассемблера.
Вычисления разного типа в нем могут выполняться различными командами, даже если они приводят к одному результату (например, умножение на два и сдвиг на один разряд влево).
Такая архитектура обеспечивает разнообразные и мощные способы выполнения вычислительных операций на уровне машинных команд, но для выполнения каждой команды обычно требуется большое число тактов процессора.
Первые реализации RISC
Джон Хеннеси – Стэнфорд,Беркли: MIPS (1981г.):32разр, 16рег, 2Мгц. - микропроцессор без блокированных стадий конвейеров: реализована идея оптимизации работы конвейеров благодаря упрощению набора команд. В марте 1992 г. Silicon Graphics — основной потребитель ЦП MIPS — начал поглощать MIPS Computer Systems.
«Признаки» RISC
1. Сокращенный набор команд.
2. Большинство команд – за один такт.
3. Только содержимое Rg + команды загрузки/выгрузки для работы с ОП.
4. Отказ от микропрограмм, «жесткие» конвейеры. Суперскалярность - способность исполнения процессором нескольких инструкций (команд) за один такт.
5. Фиксированный простой и одинаковый формат команд.
6. Много основных регистров и большая кэш-память.
7. Оптимизирующий компилятор + оптимизированные библиотеки команд-функций, не входящих в набор команд.
Достоинства RISC:
снижается стоимость разработки и производства процессоров,
упрощается реализация схем конвейерной и параллельной обработки данных,
упрощается реализация создания многопроцессорных систем.
Недостатки:
RISC-процессорам необходимо более сложное программное обеспечение, компенсирующее отсутствие сложных операций на аппаратном уровне.
Архитектуры RISC и CISC не разделены непреодолимой пропастью. Сейчас все микропроцессоры имеют черты обеих архитектур.
Слияние идеологий:
Ядра ЦП претерпели кардинальные изменения: они стали проектироваться во многом по принципам RISC, но в то же время для сохранения совместимости с существующим программным обеспечением снаружи в ЦП все так же поступали обычные команды CISC.
Для того чтобы такая модель ЦП оказалась работоспособной, требуется обязательное внутреннее преобразование CISC-команд в одну или несколько RISC-команд, непосредственно выполняющихся ядром ЦП.
Пример: архитектура процессора i860.
«Пострисковские» архитектуры. Концепции многоядерности, multithreading, VLIW и EPIC. Их характеристика и различия. Примеры.
1.MultyCore ( Многоядерность ) - центральный процессор, содержащий два и более вычислительных ядра на одном процессорном кристалле или в одном корпусе.
Примеры: Sun, Intel, AMD
Многоядерные процессоры можно классифицировать:
По наличию или отсутствию поддержки когерентности кэшей между ядрами.
По способу связи между ядрами: разделяемая шина, сеть (Mesh) на каналах точка-точка, сеть с коммутатором, общие кеши.
Во всех существующих на сегодняшний день многоядерных процессорах кэш-память первого уровня у каждого ядра своя, а кэш 2-го уровня существует в нескольких вариантах:
- разделяемый — кэш расположен на одном кристалле с ядрами и доступен каждому из них в полном объёме. Например: семейство Intel Core.
- индивидуальный — отдельные кэши равного объёма, интегрированные в каждое из ядер.
+ По внутренней архитектуре ядер!
2.VLIW-( Very Long Instruction Word ) + EPIC(Explicitly Parallel Instruction Computing )
Примеры: Itanium, Е2К
VLIW - общее определение для архитектур, в которых длинные инструкции содержат описание сразу нескольких операций, которые могут выполняться параллельно.
Идея технологии «очень длинных слов команд VLIW»:создается специальный компилятор планирования, который перед выполнением прикладной программы проводит ее анализ, и по множеству ветвей последовательности операций определяет группу команд, которые могут выполняться параллельно. Каждая такая группа образует одну сверхдлинную команду.
Это позволяет решать две важные задачи:
1. в течение одного такта выполнять группу коротких, «обычных» команд.
2. упростить структуру процессора.
Этим технология VLIW отличается от суперскалярности. В суперскалярных процессорах также есть несколько вычислительных модулей, но задача распределения между ними работы решается аппаратно. Это сильно усложняет дизайн процессора, и может быть чревато ошибками. В процессорах VLIW задача распределения решается во время компиляции и в инструкциях явно указано, какое вычислительное устройство должно выполнять какую команду.
Идеи VLIW используются и в EPIC.
Краткая история EPIC
- проект имел название Impact - в нач 1990-х годов были заложены теоретические основы самой архитектуры, затем были начаты работы в рамках создания инструментальных средств для процессора EPIC - проект по созданию инструментальных средств известен под названием Trimaran.
Первые реализации: Е2К – Россия, Б.А.Бабаян-МЦСТ, Itanium - Intel
Особенности архитектуры EPIC
Большое количество регистров.
Масштабируемость архитектуры до большого количества функциональных устройств.
Явный параллелизм в машинном коде. Поиск зависимостей между командами производит не процессор, а компилятор.
Предикация (Predication). Команды из разных ветвей условного оператора снабжаются предикатными полями (полями условий) и запускаются параллельно – отличие от VLIW.
Загрузка по предположению (Speculative loading). Данные из медленной основной памяти загружаются заранее.
Главный принцип EPIC - дать возможность программисту или компилятору явно указать на внутренний параллелелизм в программе прямо в последовательности инструкций, во вторую же очередь, все же позволить аппаратуре выявлять распараллеливаемые участки.