Магістр ДонНТУ Морозов Р

Будь-яка система класифікації систематизує об'єкти одного типу. Очевидно, що обчислювальна система та процесор – це різні об'єкти. Якщо проводити аналогію з живою природою, то обчислювальна система – це колонія мурах, а процесор – це окрема мураха, яка повинна класифікуватися окремо.

У цій доповіді дається визначення обчислювальної системи та процесора і пропонується система класифікації процесорних архітектур, що визначає склад базових моделей архітектур для процесорів із програмою, що зберігається, і процесорів із збереженим алгоритмом.

1. Основні поняття та визначення

Представимо однопроцесорну фон-нейманівську обчислювальну машину як структуру, що складається з трьох функціонально закінчених частин:

  • пристрої керування;
  • виконавчого устрою;
  • середовища функціонування

Пристрій управління (УУ) формує потік команд, що надходить на виконання.

Виконавчий пристрій (ІУ) – частина машини, яка виконує потік команд. Результатом виконання є потік даних.

Середовище функціонування утворюється тими пристроями, що запам'ятовують (реєстри, пам'ять), які забезпечують відчуження, зберігання і доступ до вихідних даних і даних, отриманих при виконанні потоку команд. Термін «відчуження», по відношенню до пристроїв, що запам'ятовує, передбачає, що:

На відміну від УУ та ВП, які є активними компонентами, середовище функціонування – це пасивне, що забезпечує частину машини. Характер її використання визначається взаємодією УУ та ІУ між собою. Це дозволяє виключити середовище функціонування при описі архітектури та її класифікації. У результаті архітектуру, що розглядається, графічно можна представити у вигляді орієнтованогографа (рис. 1), що складається всього з двох вершин (УУ та ВП), з'єднаних дугою (потік команд).

Розширивши нотацію, запропоновану М. Флінном, цю модель архітектури можна описати як SISD (SI). Тобто архітектура з одиночним потоком команд та одиночним потоком даних, що визначається одиночним потоком команд.

Кожна команда потоку визначає операцію, яку має виконати ІУ. Вступила в ІУ і виконана там, вона породжує один елемент потоку даних. Цим елементом може бути число, кілька чисел або код (набір ознак). Зміст елемента визначається командою. Він може бути записаний на згадку, може бути переданий назад в ІУ, або в УУ, або в УУ та ВП. Напрямок передачі потоку даних визначається архітектурою. У першому випадку - це фон-нейманівська архітектура, що відрізняється імперативним управлінням та імперативним виконанням. У другому, що описується як SISD(SI,SD), при імперативному управлінні неімперативне (позачергове) виконання команд. Третій випадок – це потокова машина, яка описується як SI(SD)SD(SI). Четвертий випадок поєднує останні два і описується як SI(SD)SD(SI,SD).

Поширимо цей підхід до класифікації архітектур на загальний випадок та визначимо основні поняття.

Архітектура процесора - це абстрактна структура, представлена ​​у вигляді орієнтованого графа, що складається з безлічі вершин, утворених одним або безліччю УУ і одним або безліччю ІУ, а також безлічі дуг, утворених потоками команд, що виходять з УУ, і потоками даних, що виходять з ІУ, при цьому:

  • відповідний йому неорієнтований граф - зв'язковий;
  • кожен вихідний потік команд є хоча б для одного ІУ;
  • кожен ВП має хоча б один вхідний потік команд.

Архітектура обчислювальної системи – це абстрактна структура, утворена нескладним безліччю орієнтованих графів, кожен із яких представляє архітектуру процесора.

Обмін даними у обчислювальній системі здійснюється лише через середовище функціонування.

Команда – опис операції, що формується одним УУ, що має виконати одне ІУ. Команда має дві властивості: цілісність і безперервність. Вона не може бути видана на виконання частинами і процес її видачі не може бути перерваний. І навпаки, якщо група операцій у процесорі завжди формується синхронно (має цілісністю) і процес її видачі не переривається, то ця група утворює одну команду, яка виконує одну (складну) операцію. Апаратна частина, яка формує цю групу, утворює одне УУ, а виконуюча частина – одне ІУ. Отже, наявність кількох лічильників команд перестав бути показником кількох УУ.

Одиночний потік команд – потік команд, який формується одним УУ.

Множинний потік команд – потік команд, утворений безліччю одиночних потоків команд (багато УУ).

Процесор має безліч УУ, якщо він має більше одного УУ, кожне з яких забезпечує незалежне від інших УУ формування потоку команд.

Одиночний потік даних - потік, отриманий в результаті виконання потоку команд, що надходить до одного ІУ.

Множинний потік даних – потік даних, утворений безліччю одиночних потоків даних (множиною ІП).

Процесор має безліч ІУ, якщо він має більше одного ІУ, кожне з яких забезпечує незалежне від інших ІУ виконання потоку команд, що надходить.

Очевидно, що множинність УУ та ВП дає теоретичну можливість побудови досить великої кількості орієнтованих графів,що задовольняють умову зв'язності.

Виходячи з практичної реалізованості та доцільності їх склад може бути обмежений набором базових моделей, отриманих шляхом послідовного ускладнення 4-х моделей класу SISD.

2. Архітектури зі збереженою програмою

Архітектури з програмою, що зберігається, найбільш досліджена група архітектур. Практично всі архітектури, що реально використовуються, входять у перші три класи. У класі MIMD нині відома лише одне архітектура – ​​синп'ютер [2]. Якісна відмінність цієї архітектури полягає в тому, що вона єдина серед відомих архітектур забезпечує можливість динамічної програмної декомпозиції безлічі процесорних елементів (ПЕ) на довільні L підмножин (1 ? L ? N), кожна з яких являє собою або функціонує незалежно логічний процесорний пристрій (якщо підмножина включає один ПЕ), або функціонуючу логічну VLIW-подібну машину (якщо підмножина включає кілька ПЕ).

Комутаційне середовище та можливість одночасної та незалежної роботи кількох VLIW-подібних машин (task-груп) забезпечують ефективну реалізацію в рамках однієї архітектури всіх трьох видів паралелізму:

3. Архітектури зі збереженим алгоритмом

Принципова відмінність другої групи архітектур полягає в тому, що програма, що виконується, не зберігається, а генерується в процесі виконання. Вид її визначається збереженим алгоритмом та доступними ресурсами.

Відома лише одна реалізація – редукційна машина. Модель SI(SI)SD(SI,SD). Аналіз архітектур цієї групи, в першу чергу класу MIMD, показує, що їх реалізація створює основу для вирішення низки проблем, а саме:

  • уніфікація машинної мови та підвищення їїсемантичного рівня;
  • дефектостійкість у виробництві. Врахування вільних ресурсів при генерації програми, створює можливість використання кристалів з паралельною архітектурою, навіть з окремими дефектами;
  • відмовостійкість в експлуатації. Вирішення цієї проблеми можливе, оскільки завдання розподілу ресурсів вирішується безперервно;
  • більш повне використання ВП і, як наслідок, підвищення швидкодії процесора.

Запропонована система класифікації призначена для систематизації процесорних архітектур максимально можливому рівні абстрагування. Вона виключає всі особливості реалізації, але забезпечує можливість прогнозування напрямів побудови нових архітектур.