А. Карачка, О. Дудко
АРХІТЕКТУРА КОМП’ЮТЕРІВ
Н А В Ч А Л Ь Н И Й П О С І Б Н И К
„Економічна думка”
Тернопіль, 2009
Міністерство освіти і науки України
Тернопільський національний економічний університет
А. Карачка, О. Дудко
АРХІТЕКТУРА КОМП’ЮТЕРІВ
За редакцією доктора технічних наук, професора А.О. Саченка
Економічна думка
Тернопіль
2009
Карачка А.Ф., Дудко О.І. Архітектура комп’ютерів. Навч. посібник/ За ред. А.О.Саченка. – Тернопіль: „Економічна думка”, 2009. – 168 с.
Навчальний посібник присв’ячений питанням організації і функціонування сучасних комп’ютерів та їх основних складових частин. Розглянуто структуру і функціонування комп’ютерів фон Нейманівського типу, принципи організації шин, внутрішньої і зовнішньої пам’яті, операційних пристроїв і систем введення-виведення. Викладено основні тенденції в архітектурі сучасних процесорів, принципи побудови і архітектурні особливості комп’ютерів ненейманівського типу, принципово нові архітектури комп’ютерів і особливості їх побудови. Дано поняття нейрокомп’ютер і приведено його архітектурні особливості.
Посібник буде корисним студентам і викладачам даної дисципліни, а також слухачам інститутів післядипломної освіти та курсів підвищення кваліфікації спеціалістів.
Рецензенти:
доктор технічних наук, професор Корчемний М.О.
доктор технічних наук, професор Приймак М.В.
© А.Ф. Карачка, 2009
© О. І. Дудко, 2009
ЗМІСТ
ПЕРЕЛІК СКОРОЧЕНЬ …………………………..…………………………………….5
1.ЗАГАЛЬНІ ПОНЯТТЯ ПРО АРХІТЕКТУРУ КОМП’ЮТЕРІВ…………...............6
Визначення поняття “архітектура” комп’ютера…………………………….............6
1.2. Історичний огляд архітектур комп’ютерів і їх класифікація……………………….10
1.3. Особливості архітектури фон Нейманівського комп’ютера……………..…………14
1.4. Основні типи комп’ютерів та області їх застосування………………………..…….15
1.5. Основні характеристики комп’ютерів…………………………………………..……19
1.6. Вимірювання і визначення порівняльних характеристик продуктивності комп’ютерів…………………………………………………………………………………20
2. СИСТЕМИ ЧИСЛЕННЯ……………………………………………………………….26
2.1. Системи числення, їх класифікація………………………………………….………..26
2.2. Переведення чисел із однієї системи числення в іншу……………………… ……28
2.3. Арифметичні дії над числами в різних системах числення …………………..……33.
3. АЛГОРИТМИ ОБРОБКИ ІНФОРМАЦІЇ ТА ЇХ АРХІТЕКТУРНІ
РІШЕННЯ…………………………………………..………………………………….. 35
3.1. Загальні відомості…………………………………………………………………… 35
3.2. Алгоритми виконання арифметичних операцій над двійковими числами та їх архітектурні рішення…………………………………………………………………….....36
3.3. Алгоритми і пристрої для виконання логічних операцій……………………………42
3.4. Особливості виконання операцій десяткової арифметики……………………….....42
3.5. Алгоритм додавання і віднімання чисел з плаваючою крапкою……………………45
4. ПРЕДСТАВЛЕННЯ ІНФОРМАЦІЇ В КОМП’ЮТЕРАХ……………………....……49
4.1. Форми представлення чисел і алфавітної інформації в комп’ютерах……………...49
4.2. Комп’ютерні коди – прямий, обернений і доповняльний…………………..….……51
4.3. Кодування десяткових чисел і алфавітно–цифрової інформації……………………54
5. ПАМ’ЯТЬ КОМП’ЮТЕРІВ……………………………………………………………56
5.1. Ієрархічний принцип побудови пам’яті………………………………………………56
5.2. Види запам’ятовуючих пристроїв, їх особливості…………………………………...59
5.3. Віртуальна пам’ять, її організація…………………………………………………….62
5.4. Молекулярна і голографічна пам’ять, основні принципи їх побудови…………….65
5.5. Адресація пам’яті комп’ютерів.………………………………………………………68
6. АРХІТЕКТУРА СУЧАСНИХ ПРОЦЕСОРІВ……………………………………….74
6.1. Класифікація, архітектура і характеристика сучасних CISC–мікропроцесорів……74
6.2. Мікропроцесори з RISC–архітектурою……………………………………………….79
6.3. Архітектура і характеристика 64–розрядних мікропроцесорів………………..…….104
6.4. Мікропроцесори з довгим командним словом (VLIW)………………………………114
7. АРХІТЕКТУРА ТРАНСП’ЮТЕРІВ І ТРАНСП’ЮТЕРНИХ СИСТЕМ……………118
7.1. Основні поняття і концепції архітектури трансп’ютерів……………………….….…118
7.2. Типи трансп’ютерів і їх організація……………………………………………………120
7.3. Трансп’ютерна організація паралельних обчислень………………………………….121
7.4. Мультипроцесорні трансп’ютерні системи……………………………………… …123
8. ІНТЕРФЕЙСИ ТА ШИНИ КОМП’ЮТЕРІВ…………………………………….........129
8.1. Загальна характеристика інтерфейсів………………………………………….............129
8.2. Класифікація інтерфейсів периферійних пристроїв……………………………..........131
8.3. Канали введення–виведення, їх функції……………………………………………….132
8.4. Мультиплексний і селекторний канали, їх структура і організація роботи…………134
8.5. Шини міні – , мікро – і персональних комп’ютерів, їх організація і
характеристика………………………………………………………………………….........136
9. АРХІТЕКТУРА СУПЕРКОМП’ЮТЕРІВ………………………………………………142
9.1. Поняття про суперкомп’ютери і їх організацію…………………………………........142
9.2 Класифікація суперкомп’ютерів...……………………………………………………..144
9.3. Типові архітектури суперкомп’ютерів………………………………………………...146
10. АРХІТЕКТУРА НЕНЕЙМАНІВСЬКИХ КОМП’ЮТЕРІВ………………………….150
10.1. Рекурсивна архітектура……………………………………………………………….150
10.2. Машина Айліфа: її особливості і практичне застосування…………………………151
10.3. РЕФАЛ: машина і мова………………………………………………………………..153
10.4. Асоціативні паралельні процесори……………………………………………….......156
11. АРХІТЕКТУРА НЕЙРОКОМП’ЮТЕРІВ…………………………………………….158
11.1. Визначення поняття “нейрокомп’ютер” і передумови виникнення..………………158
11.2. Архітектурні особливості і апаратне забезпечення нейрокомп’ютерів..…………..159
11.3. Нейрокомп’ютерні мережі………………………..…………………………………...163
ЛІТЕРАТУРА………….……………………………………………………………….……166
ПЕРЕЛІК СКОРОЧЕНЬ
ЦП – центральний процесор
АЛП – арифметико-логічний пристрій
ЗП – запам’ятовуючий пристрій
ОС – операційна система
АСУ – автоматизована система управління
МП – мікропроцесор
ОЗП – оперативний запам’ятовуючий пристрій
ОП – оперативна пам’ять
СОЛО – схема однобайтних логічних операцій
НОЗП – надоперативний запам’ятовуючий пристрій
ПК – персональний комп’ютер
ЗЗП – зовнішній запам’ятовуючий пристрій
НМС – накопичувач на магнітній стрічці
НЖМД – накопичувач на жорсткому магнітному диску
КОП – код операції
ППК – процесор з плаваючою крапкою
РЗП – регістр загального призначення
РПК – регістр плаваючої крапки
ФП – функціональний виконавчий пристрій
ВВ – введення-виведення
ППЗП – перепрограмовуючий запам’ятовуючий пристрій
ПУКМ – пристрій управління конфігурацією мережі
АРМ – автоматизоване робоче місце
МТС – мультитрансп’ютерна система
ФБ – функціональний блок
КБ – керуючий блок
К – контролер
ІБ – інтерфейсний блок
ПП – периферійний пристрій
КВВ – канал введення-виведення
КСК – керуюче слово каналу
МК – мультиплексний канал
СК – селекторний канал
НМД – накопичувач на магнітному диску
НМС – накопичувач на магнітній стрічці
РОМ – рекурсивна обчислювальна машина
ШНС – штучна нейронна система
1. ЗАГАЛЬНІ ПОНЯТТЯ ПРО АРХІТЕКТУРУ КОМП’ЮТЕРІВ
1.1. Визначення поняття “архітектура” комп’ютера
Спеціалісти по архітектурі комп’ютерів називаються архітекторами комп’ютерів чи комп’ютерних систем.
Задачею такого архітектора є розробка комп’ютера, який відповідав би конкретним вимогам його користувачів, чи загальним вимогам сьогоднішнього дня. Користувачі комп’ютерів, як правило, хочуть мати машину (комп’ютер), як можна універсальнішу, котра може вирішувати найскладніші задачі, супершвидкодіючу, високонадійну, як можна дешевшу.
У комбінації одині з одними дані вимоги є взаємовиключними. Наприклад, якщо намагатися збільшити продуктивність машини, зберігши при цьому її функціональні можливості, то беззаперечно зростає її вартість. Аналогічно можна сказати і про інші перераховані вимоги чи їх комбінації.
Архітектори комп’ютерів ставлять перед собою задачі удосконалення і оновлення парку комп’ютерів і побудованих на їх основі обчислювальних систем в кожному із перерахованих напрямків і в той же час намагаються створити систему з оптимальним співвідношенням вимог, тобто оптимальне співвідношення є “пошуком компромісу”, а для архітекторів комп’ютерів важливим видом діяльності.
Стосовно комп’ютерів і обчислювальних систем (комп’ютерних систем) термін “архітектура” може бути визначений як розподілення функцій, котрі реалізуються комп’ютером (системою), по окремих його (її) рівнях і точне визначення меж між даними рівнями. Таким чином, якщо архітектурі відведений деякий рівень, то в першу чергу необхідно встановити, які системні функції повністю або частково виконуються компонентами комп’ютера (системи), котрі знаходяться вище і нижче заданого рівня. Після вирішення цієї задачі наступний крок полягає у точному визначенні інтерфейсів для рівня, котрий розглядається.
Таким чином, архітектура комп’ютера (комп’ютерної системи) передбачає багаторівневу організацію. Архітектуру комп’ютера (комп’ютерної системи) можна визначити шляхом виявлення її відмінностей від інших видів архітектури. Специфічною властивістю архітектури комп’ютера (комп’ютерної системи) є можливість виділення в ній набору рівнів абстракції (рисунок 1.1).
Архітектура першого рівня, яка називається архітектурою системи (цифра 1), визначає, які функції при обробці даних виконуються системою в цілому, а які покладаються на користувачів, операторів комп’ютерів, адміністраторів мереж, адміністраторів баз даних і т.д. Система взаємодіє з зовнішнім світом через два набори інтерфейсів: мови і системні програми. Розробка архітектури системи передбачає визначення обох груп інтерфейсів.
А- програмні засоби; В – мікропрограмні засоби; С – апаратні засоби.
Рисунок 1.1 – Багаторівнева організація архітектури комп’ютерної системи
Інтерфейси 2 – 4 розмежовують певні рівні в середині програмного забезпечення. Якщо програми, котрі реалізують прикладні задачі, написані на мовах програмування, що не входять в число тих, котрі надані в розпорядження користувача, то можна говорити про архітектуру рівня, призначення котрого – визначення вказаних мов. Транслятори таких мов в свою чергу взаємодіють з більш низькими рівнями програмного забезпечення, які позначені на абстрактній моделі архітектури як рівні 3 і 4. Рівень керування логічними ресурсами може включати реалізацію таких функцій, як керування базою даних, файлами, віртуальною пам’яттю, мережною телеобробкою. До рівня керування фізичними ресурсами відносяться функції керування зовнішньою і оперативною пам’яттю, внутрішніми процесами, котрі протікають в системі (наприклад, процесами планування і синхронізації), а також іншими апаратними засобами. Рівні 2–4 – архітектура програмного забезпечення.
Рівень 5 відображає основну лінію розмежування системи, а саме межу між системним програмним (операційною системою) і апаратним забезпеченням (мікропрограми і електронні логічні схеми).
Мікропрограма – це записана в пам’яті програма, котра фактично керує передачею всіх символів і даних в фізичних компонентах системи, таких як, шини, регістри, суматори чи процесор; другим альтернативним засобом керування передачею сигналів і даних є чисто апаратний спосіб (використання комбінацій логічних схем).
Рівень (інтерфейс) 5 дозволяє представляти фізичну структуру системи абстрактно, незалежно від способу реалізації. Розмежування функцій, які виконуються вище і нижче даного рівня, і визначення інтерфейсу 5 – одна із складових частин процесу розробки архітектури комп’ютера.
Інтерфейс 7 визначає, які функції реалізують ЦП, котрі виконують програми, а які процесори введення–виведення (тобто канали).
Архітектура другого рівня визначає розмежування між процесорами введення–виведення і контролерами зовнішніх пристроїв. В свою чергу можна розмежувати функції, які реалізуються контролерами і самими пристроями введення–виведення. Архітектура таких рівнів (інтерфейси 7, 9, 10) може бути названа архітектурою фізичного введення–виведення.
Інтерфейс 6 представляє собою інтерфейс мікропрограми (тобто забезпечує узгодження потоку даних і керуючих сигналів з форматом мікрокоманд) в середині процесора. Архітектура рівня 6 може бути названа архітектурою мікропрограмного керування. Архітектуру рівнів 6 і 8 (інтерфейс між процесором і основною пам’яттю) часто називають архітектурою процесора або організацією процесора.
Остання різновидність архітектури, в явному вигляді на рисунку 1.1 не показана. Мультипроцесорна архітектура – передбачає розподіл функцій між групою процесорів з розмежуванням функцій комп’ютерної системи між даними процесорами і визначенням відповідних інтерфейсів.
Під архітектурою розуміють (як правило) внутрішню структуру обчислювальної машини (комп’ютера). По цій причині в Японії і інших країнах важливе значення надають апаратним засобам комп’ютера. Вихідною (першочерговою) задачею архітекторів комп’ютерів, яка була відправною точкою в плані розробки нових архітектурних рішень, була і є задача модернізації і оновлення шляхом пошуку компромісів між зростаючими вимогами до комп’ютерів таким чином, щоб по максимально можна було б їх задовільнити.
Архітектор комп’ютера (інженер–системотехнік) при розробці шукає рішення задач по трьох основних напрямках:
– визначає форму представлення програм для комп’ютера і правила інтерпретації програм даного комп’ютера;
– встановлює способи адресації даних цією програмою;
– задає форму представлення даних.
В процесі розробки необхідно вирішувати такі задачі, як визначення мінімально адресованої області пам’яті, типів і форматів даних, кодів операцій і форматів, машинних команд, способів адресації і захисту пам’яті, механізму управління послідовністю виконання команд, інтерфейсу машини з пристроями введення – виведення.
Задачі етапу розробки архітектури.
Розробка архітектури комп’ютера в основному зводиться до встановлення межі між окремими рівнями обчислювальною системи з багаторівневою організацією. Після попереднього визначення функцій, які виконуються системою в цілому, задача архітектора комп’ютера – розподілення функцій системи між її окремими рівнями.
Можна сформулювати наступний порядок розробки архітектури комп’ютера.
1. Аналіз вимог, які пред’являються до комп’ютера. На даному етапі визначається загальна архітектура комп’ютера, визначаються фактори, що несуть основне функціональне навантаження: кількість і специфіка мов програмування, характеристики периферійних пристроїв; спосіб і характер взаємодії з оточуючим середовищем (наприклад, режим реального часу, обробка даних, розподіл часу і т.п.); вимоги до операційної системи і т.п.
2. Складання специфікацій. Тут формулюються критерії, що використовуються, і оцінюється їх значимість, визначаються функції комп’ютера у відповідності з прийнятими критеріями. Критерії повинні включати вартість комп’ютера (системи) який проектується, надійність, трудомісткість реалізації, універсальність, здатність до розширення можливостей, швидкодію, простоту програмування і відлагодження програм.
3. Вивчення відомих рішень.
4. Розробка функціональної схеми. Це є основним етапом створення архітектури комп’ютера. На даному етапі встановлюються співвідношення між рівними організації комп’ютера (системи) у відповідності з необхідними функціями і вимогами, які пред’являються до комп’ютера (системи). Розподіляються функції між апаратними засобами і програмним забезпеченням.
5. Розробка структурної схеми. На даному етапі строго визначаються всі елементи архітектури комп’ютера, включаючи визначення типів і форматів команд, способи представлення даних і адресації.
Стосовно до комп’ютерів (комп’ютерних систем) термін “архітектура” визначається як розподілення функцій комп’ютера по окремих його рівнях при точному визначенні границь між даними рівнями. Отже, архітектура комп’ютера (комп’ютерної системи) передбачає існування багаторівневої організації.
Щоб описати комп’ютер (систему), необхідно визначити функцію і структуру комп’ютера (системи).
Функція системи – це правило отримання результатів, які визначаються призначенням системи. Іншими словами, функція системи проявляється в описі процесів, які мають місце в даній системі. Функції системи доцільно описувати в математичній формі. Часто функції систем описують у вигляді (формі) алгоритмів.
Структура системи – це фіксована сукупність елементів і зв’язків між ними. Математично вигідно представляти структуру в формі графу. При цьому вершини графу відповідають елементам, а дуги і ребра – зв’язки між відповідними елементами.
Поняттям більш високого рівня ніж функція і структура є організація. Один і той же принцип організації для різних випадків приводить до систем з різними функціями і структурами. Можна зробити висновок, що функція і структура – це конкретизація принципу організації.
Визначимо термін “архітектура комп’ютера” більш вузько у наступній формі.
Архітектура комп’ютера – це абстрактне представлення фізичної системи (апаратних засобів і мікропрограм) з точки зору програміста, який використовує машинно – орієнтовану мову.
Архітектура визначає принципи організації комп’ютера (системи) і функції процесора і не відображає такі проблеми, як керування і передавання даних всередині процесора, особливості систем елементів і технологію виробництва.
1.2. Історичний огляд архітектур комп’ютерів і їх класифікація
Поява машини, здатної автоматично виконувати чотири арифметичні дії – додавання, віднімання, множення і ділення, датується початком XVII ст. У 1623 р. В.Шікард винайшов машину, здатну не тільки сумувати і віднімати числа, але й частково перемножувати і ділити їх. Про дану машину в той час було мало відомо, тому більш знаменитим рахується настільний арифмометр на основі зубчатого колеса, який був створений у 1642 р. відомим французьким філософом і вченим Б.Паскалем.
XIX ст. було століттям значних обчислень, які виконувались вручну, – це і складання таблиць логарифмів, і розрахунки в астрономії, і багато іншого. З метою автоматизувати процес складання подібних числових таблиць, англійський математик Ч.Беббідж в 1823 р. почав працювати над створенням "різницевої машини". За задумом вченого дана машина з зубчатими колесами повинна була обчислювати значення поліномів і друкувати результати обчислень на негативній пластині для фотодруку.
Нова лічильна машина Беббіджа отримала назву "аналітична", а в 1834 р. він сформулював її основні принципи. За замислом Беббіджа така машина повинна була автоматично виконувати різні обчислення при послідовному введенні набору перфокарт, які вміщували пари команд і даних, і змінювати розміщення отворів на карті, а також порядок слідування карт по мірі виконання обчислень. Аналітична машина – це програмована автоматична обчислювальна машина з послідовним управлінням, яка вміщувала арифметичний пристрій і пам’ять.
В другій половині XIX ст. Г. Холлерит розробив машину з введенням з перфокарт, яка здатна автоматично класифікувати і складати таблиці даних. Дана машина використовувалася в 1890 році в Америці при проведенні перепису населення. У 1896 р. Холлерит заснував фірму, яка стала попередницею знаменитої фірми ІВМ. Після смерті Беббіджа значного прогресу у дослідному виробництві універсальних обчислень не було.
У Німеччині в 1938 р. К. Цузе створив механічну обчислювальну машину Z1. В даній машині, на відміну від послідуючих машин, які оперували десятковими числами, вперше були використані операції з двійковими числами. Послідуюча модель Z3 (1941 р.) була універсальною програмованою обчислювальною машиною, її операційний пристрій був виконаний на електромагнітних реле, і в машині застосовувалися операції плаваючої арифметики.
Швидкість обчислень в механічних машинах на основі зубчатого колеса і електричних машинах, виконаних на реле, була незначною і тому в кінці 30–х і на початку 40–х років почалися розробки електронних обчислювальних машин, елементною базою котрих стала трьохелектродна електронна лампа. Перший універсальний комп’ютер (праобраз сучасного комп’ютера) (ЕНІАК, 1946 р., США) був призначений для складання числових таблиць для обчислення траєкторії польоту снарядів чи ракет до цілі. Комп’ютер оперував десятковими числами і його програмування здійснювалося шляхом встановлення перемикачів і комутації роз’ємів. З появою комп’ютера ЕНІАК швидкість виконання операцій збільшилась, але на програмування алгоритму обчислень йшло багато часу. Ще однією проблемою були численні помилки, які виникали при програмуванні за допомогою встановлення перемикачів чи комутації роз’ємів.
Відомий математик і фізик Д. фон Нейман, консультант проекту ЕНІАК, запропонував записувати алгоритм обчислень в пам’ять разом з даними так, щоб вміст його можна було вільно змінювати аналогічно даним у відповідності з отриманими результатами. Даний принцип отримав назву "принципу збереження програми" і був використаний при проектуванні нового комп’ютера під назвою ЕДВАК (EDVAC) в 1945 р.
У комп’ютері ЕДВАК застосовувалася двійкова арифметика, в її основній пам’яті були використані елементи на ультразвукових ртутних лініях затримки. Операції виконувалися порозрядно, починаючи з молодшого розряду двійкового числа.
Історію обчислювальних машин (комп’ютерів) і їх архітектурні особливості прийнято розглядати по поколіннях: перше, друге, третє і т.д. На сьогоднішній день можна говорити про четверте покоління комп’ютерів і частково про п’яте.
Проект створення комп’ютерів п’ятого покоління запропонувала Японія (80–ті роки), над розробкою котрих інтенсивно працюють вчені не тільки Японії, але США і європейських країн.
Перше покоління комп’ютерів (1945 – 1954 роки) – це час становлення архітектури комп’ютерів фон Нейманівського типу. Комп’ютер першого покоління складався із трьох структурних елементів: центрального процесора (ЦП), пам’яті і пристрою введення–виведення. В склад ЦП входив арифметико–логічний пристрій (АЛП) і пристрій керування. Керування було покладено на ЦП, і для пересилання даних послівно між пристроєм введення–виведення також здійснювалось пряме керування з боку ЦП. Комп’ютерна програма була складена вже не на машинній мові, а на мові асемблера. До передових комп’ютерів даного покоління можна віднести комп’ютер АТЛАС Манчестерського університету, в котрому було здійснено спробу використання однорівневої пам’яті , по суті концепції віртуальної пам’яті і індексних регістрів.
Друге покоління комп’ютерів (1955 – 1964 роки) ознаменувало собою початок застосування транзисторів замість вакуумних ламп. На зміну ЗП на електронно–променевих трубках і ультразвукових лініях затримки прийшли ЗП на магнітних сердечниках і магнітних барабанах, які стали використовуватися в якості основної пам’яті. Широке розповсюдження отримали також індексні регістри і апаратні засоби для виконання операцій з плаваючою крапкою. Стали застосовуватися і спеціальні команди для виклику підпрограм. Були розроблені мови програмування високого рівня, такі як Алгол, Кобол, Фортран, котрі дозволяли складати програми не враховуючи тип комп’ютера. Крім того, були розроблені і впроваджені спеціалізовані процесори введення–виведення, котрі були здатні керувати різними за швидкодією пристроями введення–виведення, що дозволяло звільнити ЦП для виконання основної роботи, тобто для виконання чисто операцій опрацювання інформації. В комп’ютерах першого покоління системне програмне забезпечення не застосовувалося або майже не застосовувалося, а в другому поколінні вже стали використовуватися компілятори, бібліотеки підпрограм, режим пакетної обробки і т.п.
Третє покоління комп’ютерів (1965 – 1974 роки) характеризується тим, що замість транзисторів вузли комп’ютерів стали будувати на інтегральних мікросхемах (інтегральних схемах), котрі за ступенем інтеграції поділяються на малі ІС, середні ІС (СІС) і великі ІС (ВІС), а також тим, що замість пам’яті на магнітних сердечниках стала використовуватися напівпровідникова пам’ять. Були розроблені методи ефективного використання таких ресурсів, як час ЦП, простір пам’яті і т.п. Широкого розповсюдження отримав метод віртуальної пам’яті, метою якого було ефективне використання простору пам’яті. Для підвищення ефективності використання ЦП при паралельному опрацюванні множини програм виникла необхідність в системній програмі, яка керує роботою ЦП. Так була створена операційна система (ОС). В третьому поколінні комп’ютерів поряд з мікропрограмуванням були розвинені і розповсюджені різні архітектури пам’яті. Зокрема, велике розповсюдження отримали архітектура з диспетчеризацією пам’яті, метою якої є підвищення ефективності використання простору пам’яті, розшарування пам’яті, метою якого є збільшення фактичної швидкості доступу до пам’яті, а також кеш–пам’ять. Започаткувала комп’ютери третього покоління фірма ІВМ розробкою систем машин ІВМ–360. Дана система суттєво вплинула на логічну організацію комп’ютерів третього покоління, які були розроблені в інших країнах. Зокрема Радянський Союз і інші країни –члени РЕВ на початку 70–х років спільно розробили і організували серійне виробництво Єдиної Системи ЕОМ (ЄС ЕОМ) і Системи Малих ЕОМ (СМ ЕОМ) – машин третього покоління на інтегральних мікросхемах.
Четверте покоління комп’ютерів (кінець 70–х початок 80–років і до теперішнього часу). Конструктивно–технологічною основою комп’ютерів четвертого покоління є ВІС І надвеликі (НВІС) інтегральні мікросхеми, які вміщують тисячі, десятки тисяч, а то і мільйони транзисторів на одному кристалі. До четвертого покоління відносяться реалізовані на НВІС такі засоби обчислювальної техніки, як мікропроцесори, мікрокомп’ютери і побудований на їх основі новий тип машин – персональні комп’ютери.
В комп’ютерах четвертого покоління досягається подальше спрощення контактів людини з комп’ютером шляхом підвищення рівня машинної мови, починається практична реалізація мовного введення і виведення інформації. Використання ВІС дозволяє апаратними засобами реалізовувати деякі функції програм операційних систем (апаратна реалізація трансляторів з мов високого рівня і ін.), що сприяє збільшенню продуктивності комп’ютерів.
Прикладами крупних обчислювальних систем, які слід віднести до четвертого покоління, є багатопроцесорний комплекс "Эльбрус–2", багатопроцесорна обчислювальна система ПС–2000, яка вміщує до 64 процесорів.
В останні роки минулого століття і в теперішній час визначилися контури і ведуться інтенсивні роботи по створенню нового, п’ятого покоління комп’ютерів. В значній мірі цьому сприяли публікації відомостей про проект ("японський виклик") комп’ютера п’ятого покоління, який розробляється японськими фірмами і науковими організаціями, метою якого було завоювання японською промисловістю світового лідерства в області обчислювальної техніки. Згідно даного проекту комп’ютери і обчислювальні системи п’ятого покоління крім високої продуктивності і надійності при більш низькій вартості повинні володіти наступними якісно новими властивостями: можливістю взаємодії з комп’ютером за допомогою людської мови і графічних зображень; здатністю системи навчатися і самонавчатися, робити логічні судження, вести "розумне" спілкування з людиною в формі запитань і відповідей; здатністю системи "розуміти" вміст бази даних, котра при цьому перетворюється в базу знань, і використовувати ці "знання" при опрацюванні інформації (рішенні задач).
1.3. Особливості архітектури фон Нейманівського комп’ютера
Великий вклад в розвиток обчислювальної техніки (побудови ЕОМ чи комп’ютерів) вніс відомий фізик і математик Джон фон Нейман. Він брав участь в розробці принципів програмування першого американського комп’ютера ЕНІАК, який був створений в 1945 році. Фон Нейман сформулював основні принципи побудови комп’ютерів, які в подальшому були названі його іменем.
Принципи фон Неймана.
1. Принципи програмного керування (управління ) роботою комп’ютера. Програма складається з окремих кроків – команд. Послідовність команд є програмою.
2. Принцип умовного переходу. Можливість змінювати послідовність обчислення в залежності від отриманих проміжних результатів.
3. Принцип зберігання програми. Команди представляються в числовій формі і зберігаються в тому ж ОЗП, що і дані для обчислень. Таким чином, команди можна подавати в арифметичний пристрій і перетворювати як звичайні числа. Це дозволяє створювати програми, які здатні в процесі обчислень змінювати самі себе.
4. Використання двійкової системи числення для представлення інформації.
5. Принцип ієрархічності запам’ятовуючого пристрою. Дані, які найбільш часто використовуються, зберігаються в найбільш швидкодіючому ЗП порівняно малої ємкості, а дані, які використовуються досить рідко – в самому повільному, але набагато більшої ємкості.
Більшість комп’ютерів першого покоління будувались на основі даних принципів, тому їх і називають машинами фон Нейманівського типу. Важливо відмітити, що архітектура персональних комп’ютерів повністю базується на принципах фон Неймана і тому вони також є машинами фон Нейманівського типу. На даний час архітектура сучасних комп’ютерів недалеко відійшла від даних принципів. В якості альтернатив цього напрямку слід назвати комп’ютери побудовані на основі напрямку розвитку трансп’ютерних мікропроцесорів, тобто комп’ютерів побудованих на основі трансп’ютерів.
1.4. Основні типи комп’ютерів та області їх застосування
Великі успіхи в розвитку обчислювальної техніки, в основі яких лежить досягнення в області мікроелектротехніки, архітектури обчислювальних машин, програмного забезпечення, привели до значного розширення сфери застосування комп’ютерів.
Початково порівняно вузька сфера застосування комп’ютерів, головним чином для наукових і технічних розрахунків, за короткий термін суттєво розширилась і охопила майже усі області науки, техніки, планування й управління технологічними процесами, всі області діяльності людини, які зв’язані з обробкою великих об’ємів інформації.
Різноманіття області й форм використання комп’ютерів породило спектр вимог до характеристик і особливостей організації машин і систем. В результаті на даний час у відповідності з областями застосування визначились основні типи комп’ютерів, які суттєво відрізняються не тільки за кількісними характеристиками, але і за архітектурою, електронно–технологічною базою і периферійними пристроями, які використовуються. Основні засоби сучасної обчислювальної техніки (сучасні комп’ютери) можна класифікувати наступним чином: комп’ютерні системи (суперкомп’ютери), комп’ютери загального призначення, малі (міні–) комп’ютери, мікро– і персональні комп’ютери, мікропроцесори.
На рисунку 1.2 типи комп’ютерів приведені у відповідності до основних областей застосування. Приведені розділення є досить умовними через те, що межі між типами машин швидко змінюються під впливом успіхів у розвитку мікроелектроніки й архітектури комп’ютерів.
Суперкомп’ютери.
До надпродуктивних комп’ютерів (суперкомп’ютерів) на даний час відносять комп’ютери (Cray, Cray 1,2, Cyber 205, Эльбрус, ПС–2000 і т.п.), які при виконані науково–технічних розрахунків досягають продуктивності від 10 до 103 Мфлоп/с (Мфлоп/с– мільйон операцій із плаваючою крапкою за секунду). Їх колосальна продуктивність досягалася за рахунок унікальних структур апаратного і програмного забезпечення. Ці комп’ютери випускалися в незначних кількостях, як правило, під конкретне замовлення.
Подібні машини використовуються для рішення особливо складних задач науково–технічного характеру, задач опрацювання великих об’ємів даних в реальному часі, пошуку оптимальних рішень у задачах економічного планування і при автоматизованому проектуванні.
Рисунок 1.2 – Області застосування основних типів комп’ютерів
В таблиці 1.1 приведено класифікацію суперкомп’ютерів за типом архітектури.
Таблиця 1.1 – Класифікація суперкомп’ютерів за типом архітектури
Архітектура
Прилади системи
Однопроцесорні системи з декількома функціональними пристроями і функціональними апаратними засобами вторинної обробки
Alliant FX/1; IBM 3090; CDC 7600; FPS 164/264/364; Cray 1; Cray X–MP/1; Cyber 205; NEC SX–1; SX–2; SCS–40/
Процесорні матриці або приєднані процесори з архітектурою ОКМД
Loral MPP; ICL/DAP; FPS 164/MAX;
IBM–GF11.
Багатопроцесорні системи з спільною пам’яттю
Cray X-MP/2,4; Cray 2; Cray 3; IBM 3090/400; Univax 1184/ISP.
Багатомашинні системи з розподіленою пам’яттю
iPSC; Ametek 14; CDC Cyberplus; Cullen PSC; Warp.
Ієрархічні системи і системи які реконфігуруються
Cedar; ETA–10; IBM RP3.
Комп’ютери загального призначення.
Комп’ютери вказаного типу відносяться до універсальних комп’ютерів (середні і великі комп’ютери) і відрізняються, в основному, показниками продуктивності. Сучасні комп’ютери загального призначення універсальні, вони можуть використовуватись як для рішення науково–технічних задач числовими методами, так і в режимі автономного опрацювання даних в АСУ. Такі машини мають високу швидкодію, пам’ять великого об’єму, гнучку систему команд, широкий вибір периферійних пристроїв і способів кодування інформації, що враховує потреби опрацювання даних.
Для ефективного використання технічних засобів необхідна паралельна робота в часі процесора і периферійних пристроїв. Такий режим в машинах загального призначення організовується за допомогою спеціалізованих процесорів введення–виведення (каналів введення–виведення) інформації. Узагальнена структура комп’ютера загального призначення приведена на рисунку. 1.3.
Рисунок підкреслює виділення ряду функцій керування операціями введення–виведення в окрему функціональну систему, яка реалізована у вигляді сукупності каналів. Значне вивільнення процесора від керування введенням–виведенням є необхідною умовою для мультипрограмного режиму роботи (необхідною, але недостатньою). Повинна бути забезпечена збалансованість пропускної здатності процесора, пам’яті і систем введення–виведення, при чому в умовах, коли в процесорах нових моделей за рахунок ефективних структурних рішень здійснюється значний ріст швидкодії, зменшується тривалість машинного такту. Це приводить до необхідності підвищувати пропускну здатність каналів і інтерфейсу введення–виведення і збільшення загального числа каналів.
Рисунок 1.3 – Узагальнена структура комп’ютера загального призначення
Байт-мультиплексний канал може одночасно обслуговувати декілька порівняно повільно діючих периферійних пристроїв – друкуючих, введення інформації з перфострічок і перфокарт, виводу інформації на перфострічки й перфокарти, дисплеї і т.д.
Селекторні і блок–мультиплексні канали зв’язують процесор і оперативну пам’ять з периферійними пристроями, що працюють із високою швидкістю обміну інформацією (магнітні, магнітооптичні і оптичні диски, магнітні стрічки і т. д.).
Мікрокомп’ютери і мікропроцесори.
Розвиток інтегральної технології привів до створення великих мікросхем (ВІС) різного призначення, що вміщують десятки й сотні тисяч простих елементів (транзисторів на кристалі). Процесор комп’ютера, який реалізований на одній або декількох ВІС, отримав назву мікропроцесор (МП). МП за швидкодією й можливостями системи команд наближається до міні–комп’ютерів (малих комп’ютерів). Однак, через обмежену кількість виводів корпуса ВІС (від 18 до 42) не вдається реалізувати інтерфейс МП з зовнішнім обладнанням із високими пропускними можливостями.
Пристрій опрацювання даних , що має у своєму складі один або декілька МП, ВІС постійної й оперативної пам`яті , ВІС керування введенням–виведенням і ін., називається мікрокомп’ютером. Електронна апаратура мікрокомп’ютера може вміщувати декілька десятків ВІС, розміщених на одній або декількох друкованих платах. Мікрокомп’ютери можуть бути виконані і на одній ВІС (наприклад, однокристальні мікрокомп’ютери К1816ВЕ48, К1816ВЕ51 і т.п.).
В основному мікрокомп’ютери використовуються для створення проблемно–орієнтованих і спеціалізованих обчислювальних систем. Один із напрямів розвитку мікрокомп’ютерів є розробка персональних комп’ютерів. Другий важливий напрямок є використання МП і мікрокомп’ютерів у якості нової елементної бази автоматизованих систем, машин, пристроїв. Мікропроцесори і мікрокомп’ютери відкривають принципово нові можливості для високоефективної автоматизації виробничих процесів, науково–дослідних і проектно–конструкторських робіт, опрацювання інформації при плануванні й управлінні виробництвом на підприємствах у всіх галузях народного господарства.
Мінікомп’ютери.
Це широкий клас машин, що належать до стаціонарних. В порівнянні з мікрокомп’ютерами вони мають більш широкий набір команд, більш високу точність обчислень, значний об’єм пам’яті. В якості елементної бази сучасних мінікомп’ютерів також широко використовується ВІС. Характерною особливістю цього класу машин є розвинута система периферійних пристроїв.
Мінікомп’ютери, в основному, відносяться до проблемно–орієнтованих обчислювальних машин. Основне призначення – керування технологічним обладнанням, первинне опрацювання інформації, організація обміну по лініях зв’язку і т. д. Швидкодія змінюється в широкому діапазоні від 10000 до декількох мільйонів операцій за секунду, в залежності від функціонального призначення.. В той же час мінікомп’ютери достатньо універсальні, щоб вирішувати широке коло науково–технічних задач. На сучасному етапі можливості сучасних міні–машин, наприклад, суперміні–комп’ютери, перекривають можливості середніх і великих комп’ютерів.
1.5. Основні характеристики комп’ютерів
Важливими експлуатаційними характеристиками комп’ютера є його продуктивність Р і загальний коефіцієнт ефективності Е
Е = Р/(Ск+Секс), (1.1)
який представляє собою відношення його продуктивності