ВСТУП

Машини повинні працювати.

Люди повинні думати.

                                  Принцип IBM

Визначення поняття «архітектура» комп’ютера 

Спеціалісти з архітектури комп’ютерів називаються архітекторами комп’ютерів чи комп’ютерних систем. Завданням такого архітектора є розробка комп’ютера, який відповідав би конкретним вимогам його користувачів чи загальним вимогам сьогоднішнього дня. Користувачі комп’ютерів, як правило, хочуть мати машину (комп’ютер) якомога більш універсальну, яка може виконувати найскладніші завдання, супершвидкодіючу, високонадійну і дешеву. У комбінації одні з одними ці вимоги є взаємовиключними. Наприклад, якщо намагатися збільшити продуктивність машини, зберігши при цьому її функціональні можливості, то, беззаперечно, зростає її вартість. Аналогічно можна сказати і про інші перераховані вимоги чи їхні комбінації. Архітектори комп’ютерів ставлять перед собою завдання вдосконалення й оновлення парку комп’ютерів і побудованих на їхній основі обчислювальних систем у кожному з перерахованих напрямків та водночас намагаються створити систему з оптимальним співвідношенням вимог, тобто оптимальне співвідношення є «пошуком компромісу», а для архітекторів комп’ютерів – важливим видом діяльності. Щодо комп’ютерів і обчислювальних систем (комп’ютерних систем) термін «архітектура» може бути визначений як розподіл функцій, які реалізуються комп’ютером (системою), за окремими його (її) рівнями і точне визначення меж між цими рівнями. Таким чином, якщо архітектурі відведений деякий рівень, то передусім необхідно встановити, які системні функції повністю або частково виконуються компонентами комп’ютера (системи), що знаходяться вище і нижче від заданого рівня. Після виконання цього завдання наступний крок полягає у точному визначенні інтерфейсів для рівня, який розглядається. Таким чином, архітектура комп’ютера (комп’ютерної системи) передбачає багаторівневу організацію. Архітектуру комп’ютера (комп’ютерної системи) можна визначити шляхом виявлення її відмінностей від інших видів архітектури. Специфічною властивістю архітектури комп’ютера (комп’ютерної системи) є можливість виділення в ній набору рівнів абстракції (рис. 1). Архітектура першого рівня, що називається архітектурою системи (цифра 1), визначає, які функції при обробці даних виконуються системою загалом, а які покладаються на користувачів, операторів 8 комп’ютерів, адміністраторів мереж, адміністраторів баз даних і т. ін. Система взаємодіє із зовнішнім світом через два набори інтерфейсів: мови і системні програми. Розробка архітектури системи передбачає визначення обох груп інтерфейсів.

 Рисунок 1 - Багаторівнева організація архітектури комп’ютерної системи 


Інтерфейси 2 – 4 розмежовують певні рівні в середині програмного забезпечення. Якщо програми, які реалізують прикладні завдання, написані мовами програмування, що не входять до числа тих, які надані в розпорядження користувача, то можна вести мову про архітектуру рівня, призначення котрого полягає у визначенні вказаних мов. Транслятори таких мов взаємодіють з нижчими рівнями програмного забезпечення, які позначено на абстрактній моделі архітектури як рівні 3 і 4. Рівень керування логічними ресурсами може охоплювати реалізацію таких функцій, як керування базою даних, файлами, віртуальною пам’яттю, мережною телеобробкою. До рівня керування фізичними ресурсами належать функції керування зовнішньою й оперативною пам’ят-тю, внутрішніми процесами, що відбуваються в системі (наприклад, процесами планування і синхронізації), а також іншими 9 апаратними засобами. Рівні 2–4 – це архітектура програмного забезпечення. Рівень 5 відображає основну лінію розмежування системи, а саме межу між системним програмним (операційною системою) і апаратним забезпеченням (мікропрограми й електронні логічні схеми). Мікропрограма – це записана в пам’яті програма, що фактично керує передачею всіх символів і даних у фізичних компонентах системи, таких як шини, регістри, суматори чи процесор; альтернативним засобом керування передачею сигналів і даних є суто апаратний спосіб (використання комбінацій логічних схем). Рівень (інтерфейс) 5 дає змогу відображати фізичну структуру системи абстрактно, незалежно від способу реалізації. Розмежування функцій, які виконуються вище і нижче від цього рівня, та визначення інтерфейсу 5 – одна зі складових частин процесу розробки архітектури комп’ютера. Інтерфейс 7 визначає, які функції реалізують ЦП, що виконують програми, а які – процесори введення-виведення (тобто канали). Архітектура другого рівня визначає розмежування між процесорами введення-виведення і контролерами зовнішніх пристроїв. При цьому можна розмежувати функції, які реалізуються контролерами і самими пристроями введення-виведення. Архітектура таких рівнів (інтерфейси 7, 9, 10) може бути названа архітектурою фізичного введення-виведення. Інтерфейс 6 представляє собою інтерфейс мікропрограми (тобто забезпечує узгодження потоку даних і керуючих сигналів з форматом мікрокоманд) у середині процесора. Архітектура рівня 6 може бути названа архітектурою мікропрограмного керування. Архітектуру рівнів 6 і 8 (інтерфейс між процесором та основною пам’яттю) часто називають архітектурою процесора або організацією процесора. Останній різновид архітектури наочно на рис. 1 не показано. 

Мультипроцесорна архітектура передбачає розподіл функцій між групою процесорів з розмежуванням функцій комп’ютерної системи між цими процесорами і визначенням відповідних інтерфейсів. Архітектуру здебільшого розуміють як внутрішню структуру обчислювальної машини (комп’ютера). З цієї причини в Японії та інших країнах важливе значення надають апаратним засобам комп’ютера. Вихідним (першочерговим) завданням архітекторів комп’ютерів, яке було відправною точкою щодо розробки нових архітектурних рішень, було і є завдання модернізації й оновлення шляхом пошуку компромісів між 10 зростаючими вимогами до комп’ютерів таким чином, щоб можна було максимально їх задовольнити. 

Архітектор комп’ютера (інженер-системотехнік) при розробці шукає шляхи вирішення завдань за трьома основними напрямками: 

– визначає форму подання програм для комп’ютера і правила інтерпретації програм цього комп’ютера; 

– встановлює способи адресації даних цією програмою; 

– задає форму подання даних. 

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

Завдання етапу розробки архітектури. 

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

Можна сформулювати такий порядок розробки архітектури комп’ютера: 

1. Аналіз вимог, які пред’являються до комп’ютера. На цьому етапі визначається загальна архітектура комп’ютера, встановлюються фактори, що несуть основне функціональне навантаження: кількість і специфіка мов програмування, характеристики периферійних пристроїв; спосіб та характер взаємодії з навколишнім середовищем (наприклад, режим реального часу, обробка даних, розподіл часу і т. ін.); вимоги до операційної системи і т. ін. 

2. Складання специфікацій. Тут формулюються критерії, що використовуються, і оцінюється їхня значущість, визначаються функції комп’ютера відповідно до прийнятих критеріїв. Критерії мають враховувати вартість комп’ютера (системи), який проектується, надійність, трудомісткість реалізації, універсальність, здатність до розширення можливостей, швидкодію, простоту програмування і відлагодження програм. 

3. Вивчення відомих рішень. 

4. Розробка функціональної схеми. Це є основним етапом створення архітектури комп’ютера. На ньому встановлюються співвідношення між рівнями організації комп’ютера (системи) відповідно до необхідних функцій   і вимог, які пред’являються до комп’ютера (системи). Розподіляються функції між апаратними засобами і програмним забезпеченням. 

5. Розробка структурної схеми. На цьому етапі строго визначаються всі елементи архітектури комп’ютера, включаючи визначення типів та форматів команд, способи подання даних і адресації. 

Щодо комп’ютерів (комп’ютерних систем) термін «архітектура» визначається як розподіл функцій комп’ютера за окремими його рівнями при точному визначенні меж між цими рівнями. Отже, архітектура комп’ютера (комп’ютерної системи) передбачає існування багаторівневої організації. Щоб описати комп’ютер (систему), необхідно визначити функцію і структуру комп’ютера (системи). 

Функція системи – це правило отримання результатів, які визначаються призначенням системи. Інакше кажучи, функція системи виявляється в описі процесів, які відбуваються в цій системі. Функції системи доцільно описувати в математичній формі. Часто функції систем описують у вигляді (формі) алгоритмів. 

Структура системи – це фіксована сукупність елементів і зв’язків між ними. Математично вигідно подавати структуру в формі графа. При цьому вершини графа відповідають елементам, а дуги і ребра відображають зв’язки між відповідними елементами. Поняттям вищого рівня, ніж функція і структура, є організація. Один і той самий принцип організації для різних випадків приводить до систем з різними функціями та структурами. Можна зробити висновок, що функція і структура – це конкретизація принципу організації. Визначимо термін «архітектура комп’ютера» дещо вужче у такій формі. Архітектура комп’ютера – це абстрактне подання фізичної системи (апаратних засобів і мікропрограм) з точки зору програміста, який використовує машинноорієнтовану мову. Архітектура визначає принципи організації комп’ютера (системи) і функції процесора й не відображає такі процеси, як керування та передавання даних всередині процесора, а також особливості систем елементів і технологію виробництва.