10.2. Організація зв’язків між функціональними вузлами комп’ютера
Для забезпечення роботи комп’ютера його функціональні вузли повинні бути відповідним чином з’єднані. Обмін інформацією між вузлами комп’ютера проводиться по шинах, до складу яких входить n ліній, де n – розрядність інформаційного слова. Є три головних типи шин: шина даних, шина керування (або шина команд) та шина адрес, які використовуються відповідно для пересилання даних, команд та їх адрес.
В двошинній структурі комп’ютера з обміном через процесор (рисунок 10.2) введення інформації з пристрою введення до основної пам’яті та виведення інформації з основної пам’яті до пристрою виведення здійснюється через процесор.
Рисунок 10.2 – Двошинна структура комп’ютера з обміном через процесор
Недоліком даної структури є те, що процесор витрачає свій час на виконання операцій введення та виведення інформації, безпосередньо працюючи з пристроями введення-виведення, які в своїй більшості є значно повільнішими порівняно з ним, що знижує ефективність роботи комп’ютера.
В двошинній структурі комп’ютера з обміном через пам’ять (рисунок 10.3) процесор звільняється від операцій введення-виведення інформації.
Рисунок 10.3 – Двошинна структура комп’ютера з обміном через пам’ять
Для організації введення-виведення тут використовується спеціальний процесор введення-виведення ( його часто називають каналом або периферійним процесором ), який отримує завдання на виконання операцій введення-виведення від центрального процесора, та керує взаємодією пам’яті та пристроїв введення-виведення.
В одношинній структурі комп’ютера (рисунок 10.4) всі його функціональні вузли з’єднані через одну спільну шину. Шина розподіляється між ними в часі, тому одночасно посилати дані на шину може тільки один вузол.
Рисунок 10.4 – Одношинна структура комп’ютера
Кожний пристрій введення та виведення складається з двох частин – контролера та самого пристрою. Контролер є спеціалізованим комп’ютером, який керує своїм пристроєм та його доступом до спільної шини.
Для керування розподілом шини між підключеними до неї пристроямивикористовується арбітр шини. При одночасному підключенні кількох запитів арбітр шини вирішує, чия черга є першою, і підключає до шини відповідний пристрій.
Наявність спільної шини суттєво спрощує реалізацію комп’ютера та дозволяє легко змінювати його конфігурацію. Така структура отримала широке розповсюдження.
Для забезпечення одночасного обміну інформацією між різними пристроями в сучасних комп’ютерах використовується багатошинна організація.
10.3. Поняття архітектури комп’ютера
Спеціалісти по архітектурі комп’ютерів називаються архітекторами комп’ютерів чи комп’ютерних систем.
Задачею такого архітектора є розробка комп’ютера, який відповідав би конкретним вимогам його користувачів, чи загальним вимогам сьогоднішнього дня. Користувачі комп’ютерів, як правило, хочуть мати машину (комп’ютер), як можна універсальнішу, котра може вирішувати найскладніші задачі, супершвидкодіючу, високонадійну, як можна дешевшу.
У комбінації одині з одними дані вимоги є взаємовиключними. Наприклад, якщо намагатися збільшити продуктивність машини, зберігши при цьому її функціональні можливості, то беззаперечно зростає її вартість. Аналогічно можна сказати і про інші перераховані вимоги чи їх комбінації.
Архітектори комп’ютерів ставлять перед собою задачі удосконалення і оновлення парку комп’ютерів і побудованих на їх основі обчислювальних систем в кожному із перерахованих напрямків і в той же час намагаються створити систему з оптимальним співвідношенням вимог, тобто оптимальне співвідношення є “пошуком компромісу”, а для архітекторів комп’ютерів важливим видом діяльності.
Стосовно комп’ютерів і обчислювальних систем (комп’ютерних систем) термін “архітектура” може бути визначений як розподілення функцій, котрі реалізуються комп’ютером (системою), по окремих його (її) рівнях і точне визначення меж між даними рівнями. Таким чином, якщо архітектурі відведений деякий рівень, то в першу чергу необхідно встановити, які системні функції повністю або частково виконуються компонентами комп’ютера (системи), котрі знаходяться вище і нижче заданого рівня. Після вирішення цієї задачі наступний крок полягає у точному визначенні інтерфейсів для рівня, котрий розглядається.
Таким чином, архітектура комп’ютера (комп’ютерної системи) передбачає багаторівневу організацію. Архітектуру комп’ютера (комп’ютерної системи) можна визначити шляхом виявлення її відмінностей від інших видів архітектури. Специфічною властивістю архітектури комп’ютера (комп’ютерної системи) є можливість виділення в ній набору рівнів абстракції (рисунок 10.5).
Архітектура першого рівня, яка називається архітектурою системи (цифра 1), визначає, які функції при обробці даних виконуються системою в цілому, а які покладаються на користувачів, операторів комп’ютерів, адміністраторів мереж, адміністраторів баз даних і т.д. Система взаємодіє з зовнішнім світом через два набори інтерфейсів: мови і системні програми. Розробка архітектури системи передбачає визначення обох груп інтерфейсів.
Інтерфейси 2 – 4 розмежовують певні рівні в середині програмного забезпечення. Якщо програми, котрі реалізують прикладні задачі, написані на мовах програмування, що не входять в число тих, котрі надані в розпорядження користувача, то можна говорити про архітектуру рівня, призначення котрого – визначення вказаних мов. Транслятори таких мов в свою чергу взаємодіють з більш низькими рівнями програмного забезпечення, які позначені на абстрактній моделі архітектури як рівні 3 і 4. Рівень керування логічними ресурсами може включати реалізацію таких функцій, як керування базою даних, файлами, віртуальною пам’яттю, мережною телеобробкою. До рівня керування фізичними ресурсами відносяться функції керування зовнішньою і оперативною пам’яттю, внутрішніми процесами, котрі протікають в системі (наприклад, процесами планування і синхронізації), а також іншими апаратними засобами. Рівні 2–4 – архітектура програмного забезпечення.
А- програмні засоби; В – мікропрограмні засоби; С – апаратні засоби.
Рисунок 10.5 – Багаторівнева організація архітектури комп’ютерної системи
Рівень 5 відображає основну лінію розмежування системи, а саме межу між системним програмним (операційною системою) і апаратним забезпеченням (мікропрограми і електронні логічні схеми).
Мікропрограма – це записана в пам’яті програма, котра фактично керує передачею всіх символів і даних в фізичних компонентах системи, таких як, шини, регістри, суматори чи процесор; другим альтернативним засобом керування передачею сигналів і даних є чисто апаратний спосіб (використання комбінацій логічних схем).
Рівень (інтерфейс) 5 дозволяє представляти фізичну структуру системи абстрактно, незалежно від способу реалізації. Розмежування функцій, які виконуються вище і нижче даного рівня, і визначення інтерфейсу 5 – одна із складових частин процесу розробки архітектури комп’ютера.
Інтерфейс 7 визначає, які функції реалізують ЦП, котрі виконують програми, а які процесори введення–виведення (тобто канали).
Архітектура другого рівня визначає розмежування між процесорами введення–виведення і контролерами зовнішніх пристроїв. В свою чергу можна розмежувати функції, які реалізуються контролерами і самими пристроями введення–виведення. Архітектура таких рівнів (інтерфейси 7, 9, 10) може бути названа архітектурою фізичного введення–виведення.
Інтерфейс 6 представляє собою інтерфейс мікропрограми (тобто забезпечує узгодження потоку даних і керуючих сигналів з форматом мікрокоманд) в середині процесора. Архітектура рівня 6 може бути названа архітектурою мікропрограмного керування. Архітектуру рівнів 6 і 8 (інтерфейс між процесором і основною пам’яттю) часто називають архітектурою процесора або організацією процесора.
Остання різновидність архітектури, в явному вигляді на рисунку не показана. Мультипроцесорна архітектура – передбачає розподіл функцій між групою процесорів з розмежуванням функцій комп’ютерної системи між даними процесорами і визначенням відповідних інтерфейсів.
Під архітектурою розуміють (як правило) внутрішню структуру обчислювальної машини (комп’ютера). По цій причині в Японії і інших країнах важливе значення надають апаратним засобам комп’ютера. Вихідною (першочерговою) задачею архітекторів комп’ютерів, яка була відправною точкою в плані розробки нових архітектурних рішень, була і є задача модернізації і оновлення шляхом пошуку компромісів між зростаючими вимогами до комп’ютерів таким чином, щоб по максимально можна було б їх задовільнити.
Архітектор комп’ютера (інженер–системотехнік) при розробці шукає рішення задач по трьох основних напрямках:
– визначає форму представлення програм для комп’ютера і правила інтерпретації програм даного комп’ютера;
– встановлює способи адресації даних цією програмою;
– задає форму представлення даних.
В процесі розробки необхідно вирішувати такі задачі, як визначення мінімально адресованої області пам’яті, типів і форматів даних, кодів операцій і форматів, машинних команд, способів адресації і захисту пам’яті, механізму управління послідовністю виконання команд, інтерфейсу машини з пристроями введення – виведення.
Задачі етапу розробки архітектури.
Розробка архітектури комп’ютера в основному зводиться до встановлення межі між окремими рівнями обчислювальною системи з багаторівневою організацією. Після попереднього визначення функцій, які виконуються системою в цілому, задача архітектора комп’ютера – розподілення функцій системи між її окремими рівнями.
Можна сформулювати наступний порядок розробки архітектури комп’ютера.
1. Аналіз вимог, які пред’являються до комп’ютера. На даному етапі визначається загальна архітектура комп’ютера, визначаються фактори, що несуть основне функціональне навантаження: кількість і специфіка мов програмування, характеристики периферійних пристроїв; спосіб і характер взаємодії з оточуючим середовищем (наприклад, режим реального часу, обробка даних, розподіл часу і т.п.); вимоги до операційної системи і т.п.
2. Складання специфікацій. Тут формулюються критерії, що використовуються, і оцінюється їх значимість, визначаються функції комп’ютера у відповідності з прийнятими критеріями. Критерії повинні включати вартість комп’ютера (системи) який проектується, надійність, трудомісткість реалізації, універсальність, здатність до розширення можливостей, швидкодію, простоту програмування і відлагодження програм.
3. Вивчення відомих рішень.
4. Розробка функціональної схеми. Це є основним етапом створення архітектури комп’ютера. На даному етапі встановлюються співвідношення між рівними організації комп’ютера (системи) у відповідності з необхідними функціями і вимогами, які пред’являються до комп’ютера (системи). Розподіляються функції між апаратними засобами і програмним забезпеченням.
5. Розробка структурної схеми. На даному етапі строго визначаються всі елементи архітектури комп’ютера, включаючи визначення типів і форматів команд, способи представлення даних і адресації.
Стосовно до комп’ютерів (комп’ютерних систем) термін “архітектура” визначається як розподілення функцій комп’ютера по окремих його рівнях при точному визначенні границь між даними рівнями. Отже, архітектура комп’ютера (комп’ютерної системи) передбачає існування багаторівневої організації.
Щоб описати комп’ютер (систему), необхідно визначити функцію і структуру комп’ютера (системи).
Функція системи – це правило отримання результатів, які визначаються призначенням системи. Іншими словами, функція системи проявляється в описі процесів, які мають місце в даній системі. Функції системи доцільно описувати в математичній формі. Часто функції систем описують у вигляді (формі) алгоритмів.
Структура системи – це фіксована сукупність елементів і зв’язків між ними. Математично вигідно представляти структуру в формі графу. При цьому вершини графу відповідають елементам, а дуги і ребра – зв’язки між відповідними елементами.
Поняттям більш високого рівня ніж функція і структура є організація. Один і той же принцип організації для різних випадків приводить до систем з різними функціями і структурами. Можна зробити висновок, що функція і структура – це конкретизація принципу організації.
Визначимо термін “архітектура комп’ютера” більш вузько у наступній формі.
Архітектура комп’ютера – це абстрактне представлення фізичної системи (апаратних засобів і мікропрограм) з точки зору програміста, який використовує машинно – орієнтовану мову.
Архітектура визначає принципи організації комп’ютера (системи) і функції процесора і не відображає такі проблеми, як керування і передавання даних всередині процесора, особливості систем елементів і технологію виробництва.
