1. ОСНОВНІ ПОНЯТТЯ ТА ЗАГАЛЬНА АРХІТЕКТУРА КОМП'ЮТЕРНИХ СИСТЕМ
1. ОСНОВНІ ПОНЯТТЯ ТА ЗАГАЛЬНА АРХІТЕКТУРА КОМП'ЮТЕРНИХ СИСТЕМ
Вивчення будь-якого питання прийнято починати з домовленостей про термінологію. Предметом нашого розгляду будуть виключно цифрові обчислювальні машини і системи, тобто пристрої, що оперують дискретними величинами. В літературі можна знайти багато різних визначень термінів «обчислювальна машина» і «обчислювальна система». Скористаємося найбільш загальним їх визначенням, домовившись, що в міру необхідності смислове їх наповнення може уточнюватися.
Обчислювальна машина (ОМ) - це сукупність технічних і програмних засобів, яка призначена для автоматизованої обробки дискретних даних за заданим алгоритмом.
Алгоритм - одне з фундаментальних понять математики і обчислювальної техніки. Міжнародна організація стандартів (ISO) формулює поняття алгоритм як «кінцевий набір розпоряджень, що визначає розв'язання задачі за допомогою скінченної кількості операцій» (ISO 2382/1-84).
На ранніх етапах розвитку ОМ реалізували переважно обчислювальні алгоритми, що і знайшло віддзеркалення в самому понятті «обчислювальна машина». Зберігання, обробка і комутація сигналів в ОМ в основному реалізовувалася електронними схемами. Тому для ОМ довгий час використовувалася абревіатура ЕОМ (електронна обчислювальна машина). Цей термін з'явився у перших ЕОМ для їх відмінності від механічних і електромеханічних рахунково-вирішальних пристроїв. У зв'язку з успіхами мікроелектроніки використання в ОМ складних електронних пристроїв - надвеликих інтегральних схем (НВІС) стало загальноприйнятим і звичним. Тому слово «електронна» стосовно ОМ уже не несе істотної інформації. Крім того, ОМ містить не тільки пристрої зберігання і обробки інформації, але і пристрої вводу і виводу. Якщо пристрої зберігання і обробки інформації реалізують на базі НВІС, то пристрої вводу і виводу разом з електронними компонентами містять електромеханічні, оптолектронні та інші вузли. Тому в даний час переважно використовується термін «обчислювальна машина».
В міру розвитку обчислювальної техніки та інформаційних технологій клас алгоритмів, що реалізовується, істотно розширився. З допомогою ОМ успішно вирішується широкий клас завдань «необчислювального» характеру: обробка текстів, зображень, стиснення інформації, розпізнавання образів, інформаційно-пошукові завдання та ін. Проте термін «обчислювальна машина» зберігся.
Існують три типи ОМ: аналогові (АОМ), цифрові (ЦОМ) і гібридні (ГОМ). У АОМ для подання інформації використовуються безперервні фізичні величини, найчастіше напруга. В ЦОМ інформація подана двійковими кодами. При цьому кожен розряд приймає одне з двох значень набору {0, 1}. Для представлення двійкової змінної використовується дискретний сигнал. ГОМ - гібридні обчислювальні машини або обчислювальні машини комбінованої дії - працюють з інформацією, яка подана як у цифровій, так і в аналоговій формі; вони включають у себе переваги АОМ і ЦОМ. ГОМ доцільно використовувати для вирішення задач управління важкими швидкодіючими технічними комплексами.
ЦОМ є більш універсальним засобом обробки інформації і по ряду найбільш важливих загально-технічних показників перевершує інші ОМ. Тому вони набули ширшого розповсюдження. У подальшому викладі під ОМ матимемо на увазі саме ЦОМ.
В даний час у літературі разом з терміном «обчислювальна машина» часто використовується американський термін «комп'ютер», що в перекладі з англійської мови означає «обчислювач». Цим віддається дань широкому розповсюдженню нового класу обчислювальної техніки - персональним ОМ.
Обчислювальна система (ОС) - це сукупність взаємозв'язаних і взаємодіючих процесорів або обчислювальних машин, периферійного обладнання і програмного забезпечення, призначених для підготовки і вирішення завдань користувачів.
Таким чином, формальна відмінність ОС від ОМ виражається в кількості обчислювачів. Множина обчислювачів дозволяє реалізувати в ОС паралельну обробку. З іншого боку, сучасні обчислювальні машини з одним процесором також мають певні засоби розпаралелювання обчислювального процесу. Іншими словами, грань між ОМ і ОС часто буває досить розпливчатою, що дає підставу там, де це доцільно, розглядати ОМ як одну з реалізацій ОС. І навпаки, обчислювальні системи часто будуються з традиційних ОМ і процесорів, тому багато з положень, що відносяться до ОМ, можуть бути розповсюджені і на ОС.
Під архітектурою обчислювальної машини зазвичай розуміється логічна побудова ОМ, тобто те, якою саме машину уявляє програміст. Таке трактування називають «вузьким», і охоплює воно перелік і формат команд, форми подання даних, механізми вводу/виводу, способи адресації пам'яті і тому подібне. З розгляду випадають питання фізичної побудови обчислювальних засобів: склад пристроїв, число регістрів процесора, ємність пам'яті, наявність спеціального блока для обробки дійсних чисел, тактова частота центрального процесора і так далі. Це коло питань прийнято визначати поняттям організація або структурна організація.
Архітектура (у вузькому сенсі) і організація - це дві сторони опису ОМ і ОС. Надалі користуватимемося терміном «архітектура», що об'єднує як архітектуру у вузькому сенсі, так і організацію ОМ. Стосовно обчислювальних систем термін «архітектура» додатково розповсюджується на питання розподілу функцій між складовими ОС і взаємодії цих складових.
Сучасний стан обчислювальної техніки (ОТ) являє собою результат багаторічної еволюції.
У традиційному трактуванні еволюцію обчислювальної техніки уявляють як послідовну зміну поколінь ОТ. Поява терміну «покоління» відноситься до 1964 року, коли фірма IBM випустила серію комп'ютерів IBM 360, назвавши цю серію «комп'ютерами третього покоління». Сам термін має різні визначення, найбільш популярними з яких є [25]:
- «Покоління обчислювальних машин - це розбиття обчислювальних машин, що склалося останнім часом, на класи, що визначаються елементною базою і продуктивністю».
- «Покоління комп'ютерів - нестрога класифікація обчислювальних систем за ступенем розвитку апаратних і, останнім часом, програмних засобів».
Описуючи еволюцію ОТ, зазвичай використовують один з двох підходів: хронологічний або технологічний. У першому випадку - це хронологія подій, що істотно вплинули на становлення ОТ. Для наших цілей більший інтерес являє технологічний підхід, коли розвиток обчислювальної техніки розглядається в термінах архітектурних рішень і технологій. За словами головного конструктора фірми DEC і одного з винахідників міні-ЕОМ Бела: - «Історія комп'ютерної індустрії майже завжди рухалася технологією».
Як вузлові моменти, що визначають появу нового покоління ОТ, зазвичай вибираються революційні ідеї або технологічні прориви, що кардинально змінюють подальший розвиток засобів автоматизації обчислень. Однією з таких ідей прийнято вважати концепцію обчислювальної машини з програмою, що зберігається в пам'яті, яка була сформульована Джоном фон Нейманом. Узявши її за точку відліку, історію розвитку ОТ можна подати у вигляді трьох етапів:
- донейманівського періоду;
- ери обчислювальних машин і систем з фон-нейманівською архітектурою;
- постнейманівської епохи - епохи паралельних і розподілених обчислень, де разом з традиційним підходом все більшу роль починають грати відмінні від фон-нейманівських принципи організації обчислювального процесу.
Значно більшого поширення, проте, набула прив'язка поколінь до зміни технологій. Прийнято говорити про «механічну» еру (нульове покоління) і про п'ять наступних за нею поколінь обчислювальних систем (ОС) [27]. Перші чотири покоління традиційно пов'язують з елементною базою обчислювальних систем: електронні лампи, напівпровідникові прилади, інтегральні схеми малого ступеня інтеграції (ІМС), великі (ВІС), надвеликі (НВІС) і ультравеликі (УВІС) інтегральні мікросхеми. П'яте покоління в загальноприйнятій інтерпретації асоціюють не стільки з новою елементною базою, скільки з інтелектуальними можливостями ОС. Роботи із створення ОС п'ятого покоління велися в рамках чотирьох достатньо незалежних програм, що здійснювалися вченими США, Японії, країн Західної Європи і країн Ради економічної взаємодопомоги.
З огляду на те, що жодна з програм не привела до очікуваних результатів, розмови про ОС п'ятого покоління помалу стихають. Трактування п'ятого покоління явно випадає з «технологічного» принципу. З іншого боку, зарахування всіх ОС на базі надвеликих інтегральних схем (НВІС) до четвертого покоління не відбиває принципових змін в архітектурі ОС, що здійснилися за останні роки. Щоб в якійсь мірі прослідкувати роль таких змін, скористаємося дещо відмінним трактуванням, яке виділяє шість поколінь ОС. Спробуємо стисло охарактеризувати кожне з них, виділяючи найбільш значущі події [25].
Для повноти картини згадаємо дві події, що стались до нашої ери: перші рахівниці-абак, винайдені в стародавньому Вавілоні за 3000 років до н.е., і їх «сучасніший» варіант з кісточками на дроті, що з'явився в Китаї приблизно за 500 років також до н.е.
«Механічна» ера (нульове покоління) в еволюції ОТ пов'язана з механічними, а пізніше - електромеханічними обчислювальними пристроями. Основним елементом механічних пристроїв було зубчате колесо. Починаючи з XX століття роль базового елемента переходить до електромеханічного реле. Не зменшуючи значення багатьох ідей «механічної» ери, необхідно зазначити, що жодне із створених пристроїв не можна з повною підставою назвати обчислювальною машиною в сучасному її розумінні. Щоб підкреслити це, замість терміну «обчислювальна машина» використовуватимемо такі слова, як «обчислювач», «калькулятор» і тому подібне.
Хронологія основних подій «механічної» ери виглядає таким чином.
1492 рік. У одному зі своїх щоденників Леонардо да Вінчі приводить малюнок тринадцятирозрядного десяткового підсумовуючого пристрою на основі зубчатих коліс.
1623 рік. Вільгельм Шиккард (Wilhelm Schickard, 1592-1635), професор університету Тюбінгена, розробляє пристрій на основі зубчатих коліс («рахуючий годинник») для складання і віднімання шестирозрядних десяткових чисел. Чи був пристрій реалізований за життя винахідника, достовірно невідомо, але в 1960 році він був відтворений і проявив себе цілком працездатним.
1642 рік. Блез Паскаль (Blaise Pascal, 1623-1663) представляє «Паськалін» - перший реально здійснений механічний цифровий обчислювальний пристрій, що здобув популярність. Прототип пристрою підсумовував і віднімав п’ятирозрядні десяткові числа.
1673 рік. Готфрід Вільгельм Лейбніц (Gottfried Wilhelm Leibniz, 1646-1716) створює «покроковий обчислювач» - десятковий пристрій для виконання всіх чотирьох арифметичних операцій над 12- розрядними десятковими числами. Результат множення представлявся 16 цифрами. Крім зубчатих коліс в пристрої використовувався новий елемент - ступінчастий валик.
1786 рік. Німецький військовий інженер Іоганн Мюллер (Johann Mueller, 1746-1830) висуває ідею «різницевої машини» - спеціалізованого калькулятора для табулювання логарифмів, що обчислюються різницевим методом. Калькулятор, побудований на ступінчастих валиках Лейбніца, вийшов достатньо невеликим (13 см у висоту і 30 см в діаметрі), але при цьому міг виконувати всі чотири арифметичні дії над 14-розрядними числами.
1801 рік. Жозеф Марія Жаккард (Joseph Marie Jacquard, 1752-1834) будує ткацький верстат з програмним управлінням, програма роботи якого задається за допомогою комплекту перфокарт.
1832 рік. Англійський математик Чарльз Беббідж (Charles Babbage, 17921871) створює сегмент різницевої машини, що оперує шестирозрядними числами і різницями другого порядку.
1834 рік. Пер Георг Шутц (Per George Scheutz, 1785-1873) із Стокгольма, використовуючи короткий опис проекту Беббіджа, створює з дерева невелику різницеву машину.
1836 рік. Беббідж розробляє проект «аналітичної машини». Проект передбачає три зчитувачі з перфокарт для введення програм і даних, пам’ять (по Беббіджу - «склад») на п’ятдесят 40-розрядних чисел, два акумулятори для зберігання проміжних результатів. У програмуванні машини передбачена концепція умовного переходу. У проект закладений також і прообраз мікропрограмування - зміст інструкцій передбачалося задавати шляхом позиціонування металевих штирів у циліндрі з отворами. За оцінками автора, підсумовування повинне було займати 3с, а множення і ділення - 2-4 хв.
1843 рік. Георг Шутц спільно з сином Едвардом (Edvard Scheutz, 1821 - 1881) створюють різницеву машину з принтером для роботи з різницями третього порядку.
1871 рік. Беббідж створює прототип одного з пристроїв своєї аналітичної машини - «млин» (так він охрестив те, що зараз прийнято називати центральним процесором), а також принтер.
1885 рік. Дорр Фельт (Dorr E. Felt, 1862-1930) з Чікаго будує свій «комптометр» - перший калькулятор, де числа вводяться натисненням клавіш.
1890 рік. Результати перепису населення в США обробляються за допомогою перфокарточного табулятора, створеного Германом Холлерітом (Herman Hollerith, 1860-1929) з Массачусетського технологічного інституту.
1892 рік. Вільям Барроуз (William S. Burroughs, 1857-1898) пропонує пристрій, схожий з калькулятором Фельта, але надійніший, і від цієї події бере старт індустрія офісних калькуляторів.
1937 рік. Джорж Стібітц (George Stibitz, 1904-1995) з Bell Telephone Laboratories демонструє перший однобітовий двійковий обчислювач на базі електромеханічних реле.
1937 рік. Алан Тьюрінг (Alan M. Turing, 1912-1954) з Кембріджського університету публікує статтю, в якій висловлює концепцію теоретичної спрощеної обчислювальної машини, що надалі отримала назву машини Тюрінга.
1938 рік. Клод Шеннон (Claude E. Shannon, 1916-2001) публікує статтю про реалізацію символічної логіки на базі реле.
1938 рік. Німецький інженер Конрад Цузе (Konrad Zuse, 1910-1995) будує механічний програмований обчислювач Z1 з пам'яттю на 1000 біт. Останнім часом Z1 все частіше називають першим у світі комп'ютером.
1939 рік. Джордж Стібітц і Семюель Вільямс (Samuel Williams, 1911-1977) представили Model I - калькулятор на базі релейної логіки, керований за допомогою модифікованого телетайпу, що дозволило підключатися до калькулятора по телефонній лінії. Пізніші модифікації допускали також певний ступінь програмування.
1940 рік. Наступна робота Цузе - електромеханічна машина Z2, основу якої складала релейна логіка, хоча пам'ять, як і в Z1, була механічною.
1941 рік. Цузе створює електромеханічний програмований обчислювач Z3. Обчислювач містить 2600 електромеханічних реле. Z3 - це перша спроба реалізації принципу програмного управління, хоча і не в повному об'ємі (у загальноприйнятому розумінні цей принцип ще не був сформульований). Зокрема, не передбачалася можливість умовного переходу. Програма зберігалася на перфострічці. Ємність пам'яті складала 64 22-бітових слова. Операція множення займала 3-5 с.
1943 рік. Група вчених Гарвардського університету на чолі з Говардом Айкеном (Howard Aiken, 1900 - 1973) розробляє обчислювач ASCC Mark I (Automatic Sequence-Controlled Calculator Mark I) - перший програмно керований обчислювач, що здобув широку популярність. Довжина пристрою склала 18м, а вага - 5т. Машина складалася з багатьох обчислювачів, які обробляли свої частини загального завдання під управлінням єдиного пристрою управління. Команди зчитувалися з паперової перфострічки і виконувалися в порядку зчитування. Дані зчитувалися з перфокарт. Обчислювач обробляв 23-розрядні числа, при цьому додавання займало 0,3с, множення - 4с, а ділення - 10с.
1945 рік. Цузе завершує Z4 - покращену версію обчислювача Z3. По архітектурі у Z4 дуже багато загальних рис з сучасними ЕОМ: пам'ять і процесор представлені окремими пристроями, процесор може обробляти числа з плаваючою комою і, на додаток до чотирьох основних арифметичних операцій, здатний обчислювати квадратний корінь. Програма зберігається на перфострічці і прочитується послідовно.
Не зменшуючи важливості кожного з перерахованих фактів, як найважливіший момент «механічної» епохи все-таки виділимо аналітичну машину Чарльза Беббіджа і пов'язані з нею ідеї.
На роль першої в історії електронної обчислювальної машини в різні періоди претендувало декілька розробок. Загальним у них було використання схем на базі електронно-вакуумних ламп замість електромеханічних реле. Передбачалося, що електронні ключі будуть значно надійніші, оскільки в них відсутні рухомі частини, проте технологія того часу була настільки недосконалою, що за надійністю електронні лампи виявилися ненабагато кращими, ніж реле. Проте у електронних компонентів була одна важлива перевага: виконані на них ключі могли перемикатися приблизно в тисячу разів швидше за свої електромеханічні аналоги.
Першою електронною обчислювальною машиною (ЕОМ) найчастіше називають спеціалізований калькулятор ABC (Atanasoff-Berry Computer). Розроблений він був в період з 1939 по 1942 рік професором Джоном Атанасовим (John V. Atanasoff, 1903-1995) спільно з аспірантом Кліффордом Беррі (Clifford Berry, 1918-1963) і призначався для вирішення системи лінійних рівнянь (до 29 рівнянь з 29 змінними). ABC володів пам'яттю на 50 слів довжиною 50 біт, а елементами, що запам'ятовують, служили конденсатори з ланцюгами регенерації. Як вторинна пам'ять використовувалися перфокарти, де отвори не перфорувалися, а пропалювалися. ABC почав вважатися першою ЕОМ, після того, як судовим рішенням були анульовані патенти творців іншого електронного калькулятора - ENIAC. Необхідно все ж таки відзначити, що ні ABC, ні ENIAC не є обчислювальними машинами в сучасному розумінні цього терміну і їх правильніше класифікувати як калькулятори.
Другим претендентом на першість вважається обчислювач Colossus, побудований в 1943 році в Англії в містечку Bletchley Park поблизу Кембріджа. Винахідником машини був професор Макс Ньюмен (Max Newman, 1987-1984), а виготовив його Томмі Флауерс (Tommy Flowers, 1905-1998). Colossus був створений для розшифровки кодів німецької шифрувальної машини «Лоренц Шлюссельцузат-40». До складу команди розробників входив також Алан Тьюрінг. Машина була виконана у вигляді восьми стійок заввишки 2,3 м, а загальна довжина її складала 5,5 м. У логічних схемах машини і в системі оптичного зчитування інформації використовувалося 2400 електронних ламп. Інформація зчитувалася з п'яти довгих паперових кілець, що оберталися із швидкістю 5000 символів/с.
Нарешті, третій кандидат на роль першої електронної обчислювальної машини - вже згадуваний програмований електронний калькулятор загального призначення ENIAC (Electronic Numerical Integrator and Computer - електронний цифровий інтегратор і обчислювач). Ідея калькулятора, висунута в 1942 році Джоном Мочлі (John J. Mauchly, 1907-1980) з університету Пенсільванії, була реалізована ним спільно з Преспером Еккертом (J. Presper Eckert, 1919-1995) в 1946 році. Із самого початку ENIAC активно використовувався в програмі розробки водневої бомби. Машина експлуатувалася до 1955 року і застосовувалася для генерування випадкових чисел, прогнозу погоди і проектування аеродинамічних труб. ENIAC важив 30 тон, містив 18 000 радіоламп, мав розміри 2,5 х 30 м і забезпечував виконання 5000 додавань і 360 множень в секунду. Використовувалася десяткова система числення. Програма задавалася схемою комутації тригерів на 40 набірних полях. Коли всі лампи працювали, інженерний персонал міг налаштовувати ENIAC на нове завдання, вручну змінивши підключення 6000 проводів. Під час пробної експлуатації з'ясувалося, що надійність машини надзвичайно низька - пошук несправностей займав від декількох годин до декількох діб. За своєю структурою ENIAC нагадував механічні обчислювальні машини. 10 тригерів з'єднувалися в кільце, утворюючи десятковий лічильник, який виконував роль рахункового колеса механічної машини. Десять таких кілець плюс два тригери для подання знака числа представляли регістр, що запам'ятовує. Всього в ENIAC було 20 таких регістрів.
При всій важливості кожної з трьох розглянутих розробок основна подія, яка виникла в цей період, пов'язана з ім'ям Джона фон Неймана. Американський математик Джон фон Нейман (John von Neumann, 1903-1957) взяв участь в проекті ENIAC як консультант. Ще до завершення ENIAC Еккерт, Мочлі і фон Нейман приступили до нового проекту - EDVAC, головною особливістю якого стала ідея програми, що зберігалася в пам'яті.
Технологія програмування в даний період була ще на зачатковому рівні. Перші програми складалися в машинних кодах - числах, безпосередньо записуваних у пам'ять ЕОМ. Лише у 50-х роках почалося використання мови асемблера, що дозволяло замість числового запису команд використовувати символьну їх нотацію, після чого спеціальною програмою, також званою асемблером, ці символьні позначення транслювалися у відповідні коди.
Незважаючи на свою примітивність, машини першого покоління виявилися досить корисними для інженерних цілей і в прикладних науках. Так, Атанасофф підрахував, що вирішення системи з восьми рівнянь з вісьма змінними за допомогою популярного тоді електромеханічного калькулятора Маршана зайняло б вісім годин. У разі ж 29 рівнянь з 29 змінними, з якими калькулятор ABC справлявся менш ніж за годину, пристрій з калькулятором Маршана витратив би 381 годину. З першим завданням в рамках проекту водневої бомби ENIAC справився за 20 секунд, на противагу 40 годинам, які знадобилися б у випадку використання механічних калькуляторів.
В 1947 році під керівництвом С. А. Лебедєва початі роботи із створення малої електронної рахункової машини (МЕСМ). Ця ЕОМ була запущена в експлуатацію в 1951 році і стала першою ЕОМ в СРСР і континентальній Європі.
В 1952 році Еккерт і Мочлі створили першу комерційно успішну машину UNIVAC. Саме за допомогою цієї ЕОМ було передбачено, що Ейзенхауер у результаті президентських виборів переможе Стівенсона з розривом у 438 голосів (фактичний розрив склав 442 голоси).
Також у 1952 році в дослідну експлуатацію була запущена обчислювальна машина М-1 (І. С. Брук, Н. Я. Матюхін, А. Б. Залкінд). М-1 вміщала 730 електронних ламп, оперативну пам'ять ємністю 256 25-розрядних слів, рулонний телетайп і володіла продуктивністю 15-20 операцій/с. Вперше була застосована двоадресна система команд. Трохи пізніше групою випускників МЕІ під керівництвом І. С. Брука створена машина М-2 з ємністю оперативної пам'яті 512 34-розрядних слів і швидкодією 2000 операцій/с.
У квітні 1953 року в експлуатацію поступила сама швидкодіюча в Європі ЕОМ БЕСМ (С. А. Лебєдєв). Її швидкодія склала 8000-10000 операцій/с. Приблизно в той же час випущена лампова ЕОМ «Стріла» (Ю. А. Базилевський, Б. І. Рамеєв) з швидкодією 2000 операцій/с.
Друге покоління характеризується рядом досягнень в елементній базі, структурі і програмному забезпеченні. Прийнято вважати, що приводом для виділення нового покоління ЕОМ стали технологічні зміни і, головним чином, перехід від електронних ламп до напівпровідникових діодів і транзисторів з часом перемикання близько 0,3 мс.
Першою ЕОМ, що була виконана повністю на напівпровідникових діодах і транзисторах, стала TRADIC (TRAnisitor Digital Computer), побудована в Bell Labs за замовленням військово-повітряних сил США як прототип бортової ЕОМ. Машина складалася з 700 транзисторів і 10000 германієвих діодів. За два роки експлуатації TRADIC відмовили тільки 17 напівпровідникових елементів, що говорить про прорив в області надійності, в порівнянні з машинами на електронних лампах. Іншою повністю напівпровідниковою ЕОМ стала ТХ-0, створена в 1957 році в Массачусетському технологічному інституті.
З другим поколінням ЕОМ асоціюють ще одне принципове технологічне удосконалення - перехід від пристроїв пам'яті на базі ртутних ліній затримки до пристроїв на магнітних комірках. У запам'ятовуючих пристроях (ЗП) на лініях затримки дані зберігалися у вигляді акустичної хвилі, безперервно циркулюючої по кільцю з ліній затримки, а доступ до елемента даних ставав можливим лише у момент проходження відповідної ділянки хвилі поблизу пристрою зчитування/запису. Головною перевагою ЗП на магнітних комірках став вільний доступ до даних, коли у будь-який момент доступний будь-який елемент даних, причому час доступу не залежить від того, який це елемент.
Технологічний прогрес доповнюють важливі зміни в архітектурі ЕОМ. Перш за все, це стосується появи у складі процесора ЕОМ індексних регістрів, що дозволило спростити доступ до елементів масивів. Раніше, під час циклічної обробки елементів масиву, необхідно було модифікувати код команди, тобто адресу елемента масиву, що зберігається в ньому. Як наслідок, у ході обчислень коди деяких команд постійно змінювалися, що затрудняло відлагодження програми. З використанням індексних регістрів адреса елемента масиву обчислюється як сума адресної частини команди і вмісту індексного регістра. Це дозволяє звернутися до будь-якого елемента масиву, не зачіпаючи код команди, а лише модифікуючи вміст індексного регістра.
Другою принциповою зміною в структурі ЕОМ стало додавання апаратного блока обробки чисел у форматі з плаваючою комою. До цього обробка дійсних чисел проводилася за допомогою підпрограм, кожна з яких імітувала виконання якоїсь одної операції з плаваючою комою, використовуючи для цієї мети звичайний цілочисельний арифметико-логічний пристрій.
Третє значуще нововведення в архітектурі ЕОМ - поява у складі обчислювальної машини процесорів вводу/виводу, що дозволяють звільнити центральний процесор від рутинних операцій по управлінню вводом/виводом і що забезпечують вищу пропускну спроможність тракту «пам'ять - пристрої вводу/виводу (ПВВ)».
До другого покоління відносяться і дві перші супер-ЕОМ, розроблені для прискорення чисельних обчислень у наукових застосуваннях. Термін «супер- ЕОМ» спочатку застосовувався по відношенню до ЕОМ, продуктивність яких на один або більше порядків перевишувала таку для інших обчислювальних машин того ж покоління. У другому поколінні цьому визначенню відповідали дві ЕОМ (правильніше сказати системи): LARC (Livermore Atomic Research Computer) і IBM 7030. Крім іншого, в цих ЕОМ знайшли втілення ще дві новинки: поєднання операцій процесора із зверненням до пам'яті і прості форми паралельної обробки даних.
Помітною подією даного періоду стала поява в 1958 році машини М-20. У цій ЕОМ, зокрема, були реалізовані: часткове поєднання операцій, апаратні засоби підтримки програмних циклів, можливість паралельної роботи процесора і пристрою виводу. Оперативна пам'ять ємністю 4096 45-розрядних слів була виконана на магнітних комірках.
Шестидесяті роки XX століття стали періодом бурхливого розвитку обчислювальної техніки в СРСР. За цей період розроблені і запущені у виробництво обчислювальні машини «Урал-1», «Урал-4», «Урал-11», «Урал- 14», БЕСМ-2, М-40, «Мінськ-1», «Мінськ-2», «Мінськ-22», «Мінськ-32». У 1960 році під керівництвом В. М. Глушкова і Б. Н. Малиновського розроблена перша напівпровідникова управляюча машина «Дніпро».
Нарешті, не можна не відзначити значні події у сфері програмного забезпечення, а саме створення мов програмування високого рівня: Фортран (1956), Алгол (1958) і Кобол (1959).
Третє покоління ознаменувалося різким збільшенням обчислювальної потужності ЕОМ, що стало результатом великих успіхів в області архітектури, технології і програмного забезпечення. Основні технологічні досягнення зв’язані з переходом від дискретних напівпровідникових елементів до інтегральних мікросхем і початком застосування напівпровідникових запам'ятовуючих пристроїв, що почали витісняти ЗП на магнітних комірках. Істотні зміни відбулися і в архітектурі ЕОМ. Це, перш за все, мікропрограмування як ефективна техніка побудови пристроїв управління складних процесорів а також настання ери конвеєризації і паралельної обробки. В області програмного забезпечення визначальними віхами стали перші операційні системи і реалізація режиму розділення часу.
В перших ЕОМ третього покоління використовувалися інтегральні схеми з малим ступенем інтеграції (small-scale integrated circuits, SSI), де на одному кристалі розміщується близько 10 транзисторів. Ближче до кінця даного періоду на зміну SSI почали приходити інтегральні схеми середнього ступеня інтеграції (medium-scale integrated circuits, MSI), в яких число транзисторів на кристалі збільшилося на порядок. Все частіше застосовуються переваги паралельної обробки, що реалізовуються за рахунок множинних функціональних блоків, поєднання в часі роботи центрального процесора і операцій вводу/виводу, конвеєризації потоків команд і даних.
В 1964 році Сеймур Крей (Seymour Cray, 1925-1996) побудував обчислювальну систему CDC 6600, в архітектуру якої вперше був закладений функціональний паралелізм. Завдяки наявності 10 незалежних функціональних блоків, здатних працювати паралельно, і 32 незалежних модулів пам'яті вдалося досягти швидкодії в 1 MFLOPS (мільйон операцій з плаваючою комою в секунду). П'ятьма роками пізніше Крей створив CDC 7600 з конвейєризованими функціональними блоками і швидкодією 10 MFLOPS. CDC 7600 називають першою конвеєрною обчислювальною системою (конвеєрним процесором). Революційною віхою в історії ОТ стало створення сімейства обчислювальних машин IBM 360, архітектура і програмне забезпечення яких на довгі роки служили еталоном для подальших великих універсальних ЕОМ (mainframes). У машинах цього сімейства знайшли втілення багато нових для того періоду ідей, зокрема: попередня вибірка команд, окремі блоки для операцій з фіксованою і плаваючою комою, конвеєризація команд, кеш-пам'ять. До третього покоління ОС відносяться також перші паралельні обчислювальні системи: SOLOMON корпорації Wes-tinghause і ILLIAC IV - сумісна розробка університету Ілінойса і компанії Burroughs. Третє покоління ОТ ознаменувалося також появою перших конвеєрно-векторних ОС: TI-ASC (Texas Instruments Advanced Scientific Computer) і STAR-100 фірми СВС.
Серед обчислювальних машин, розроблених у цей період в СРСР, перш за все необхідно відзначити «швидкодіючу електронно-рахункову машину» - БЕСМ-6 (С. А. Лебєдєв) з продуктивністю 1 млн. операцій/с. Продовженням лінії М-20 стали М-220 і М-222 з продуктивністю до 200000 операцій/с. Оригінальна ЕОМ для інженерних розрахунків «Мир-1» була створена під керівництвом В. М. Глушкова. Як вхідна мова цієї ЕОМ використана мова програмування високого рівня Аналітик.
У сфері програмного забезпечення необхідно відзначити створення в 1970 році Кеном Томпсоном (Kenneth Thompson) з Bell Labs мови В, прямого попередника популярної мови програмування С, і поява ранньої версії операційної системи UNIX.
Відлік четвертого покоління зазвичай ведуть з переходу на інтегральні мікросхеми великого (large-scale integration, LSI) і надвеликого (very large-scale integration, VLSI) ступеня інтеграції. До перших відносять схеми, що містять близько 1000 транзисторів на кристалі, тоді як число транзисторів на одному кристалі VLSI має порядок 100000. За таких рівнів інтеграції стало можливим умістити в одну мікросхему не тільки центральний процесор, але і обчислювальну машину (ЦП, основну пам'ять і систему вводу/виводу).
Кінець 70-х і початок 80-х років - це час становлення і подальшого переможного ходу мікропроцесорів і мікро-ЕОМ, що, проте, не знижує важливості змін, які відбулися в архітектурі інших типів обчислювальних машин і систем. Однією з найбільш значущих подій в області архітектури ЕОМ стала ідея обчислювальної машини зі скороченим набором команд (RISC, Redused Instrndion Set Computer), висунута в 1975 році і вперше реалізована в 1980 році. У спрощеному викладі суть концепції RISC полягає у приведенні набору команд ЕОМ до простих команд, о найчастіше використовуються. Це дозволяє спростити схемотехніку процесора і добитися різкого скорочення часу виконання кожній з «простих» команд. Складніші команди реалізуються як підпрограми, складені з швидких «простих» команд.
У ЕОМ і ОС четвертого покоління практично не використовуються ЗП на магнітних комірках і основна пам'ять будується з напівпровідникових запам'ятовуючих пристроїв (ЗП). До цього використання напівпровідникових ЗП обмежувалося лише регістрами і кеш-пам'яттю.
У сфері високопродуктивних обчислень домінують векторні обчислювальні системи, більш відомі як супер-ЕОМ. Розробляється нова паралельна архітектура, проте подібні роботи поки що носять експериментальний характер. На заміну великим ЕОМ, що працюють у режимі розділення часу, приходять індивідуальні мікро-ЕОМ і робочі станції (цим терміном позначають мережний комп'ютер, що використовує ресурси сервера).
В області програмного забезпечення виділимо появу мов програмування надвисокого рівня, таких як FP (functional programming - функціональне програмування) і Пролог (Prolog, programming in logic). Ці мови орієнтовані на декларативний стиль програмування, на відміну від Паскаля, С, Фортрана і так далі - мов імперативного стилю програмування. У випадку декларативного стилю програміст дає математичний опис того, що повинне бути обчислене, а деталі того, яким чином це повинно бути зроблено, покладаються на компілятор і операційну систему. Такі мови поки використовуються недостатньо широко, але виглядають багатообіцяючими для ОС з масовим паралелізмом, які включають більше 1000 процесорів.
Дві події в області програмного забезпечення пов'язані з Кеном Томпсоном (Kenneth Thompson) і Деннісом Рітчи (Dennis Ritchie) з Bell Labs. Це створення мови програмування С і ії використання під час написання операційної системи UNIX для машини DEC PDP-11. Така форма написання операційної системи дозволила швидко розповсюдити UNIX на багато ЕОМ.
Головним приводом для виділення обчислювальних систем другої половини 80-х років у самостійне покоління став стрімкий розвиток ОС з сотнями процесорів, що стало спонукальним мотивом для прогресу в області паралельних обчислень. Раніше паралелізм обчислень виражався лише у вигляді конвеєризації, векторної обробки і розподілу роботи між невеликим числом процесорів. Обчислювальні системи п'ятого покоління забезпечують такий розподіл завдань по множині процесорів, при якому кожен з процесорів може виконувати завдання окремого користувача.
В рамках п'ятого покоління в архітектурі обчислювальних систем сформувалися два принципово різних підходи: архітектура із спільно використовуваною пам'яттю і архітектура з розподіленою пам'яттю.
Характерним прикладом першого підходу може служити система Sequent Balance 8000, в якій є велика основна пам'ять, що розділяється 20 процесорами. Крім цього, кожен процесор оснащений власною кеш-пам'яттю. Кожен з процесорів може виконувати задачу свого користувача, але при цьому у складі програмного забезпечення є бібліотека підпрограм, що дозволяє програмістові залучати для вирішення своєї задачі більше одного процесора.
Другий напрям розвитку систем п'ятого покоління - системи з розподіленою пам'яттю, де кожен процесор володіє своїм модулем пам'яті, а зв'язок між процесорами забезпечується мережею взаємозв'язків. Прикладом такої ОС може служити система iPSC-1 фірми Intel, відоміша як «гіперкуб». Максимальний варіант системи включав 128 процесорів. Застосування розподіленої пам'яті дозволило усунути обмеження в пропускній спроможності тракту «процесор-пам'ять», але потенційним «вузьким місцем» тут стає мережа взаємозв'язків.
Нарешті, третій напрям в архітектурі обчислювальних систем п'ятого покоління - це ОС, в яких декілька тисяч достатньо простих процесорів працюють під управлінням єдиного пристрою управління і одночасно проводять одну і ту ж операцію, але кожен над своїми даними. До цього класу можна віднести Connection Machine фірми Thinking Machines Inc. і MP-1 фірми MasPar Inc.
У наукових обчисленнях, як і раніше, провідну роль грають векторні супер-ЕОМ. Багато виробників пропонують ефективніші варіанти з декількома векторними процесорами, але число таких процесорів зазвичай невелике (від 2 до 8).
RISC-архітектура виходить із стадії експериментів і стає базовою архітектурою для робочих станцій (workstations).
Знаковою прикметою даного періоду став стрімкий розвиток технологій глобальних і локальних комп'ютерних мереж. Це стимулювало зміни в технології роботи індивідуальних користувачів. На противагу могутнім універсальним ОС, що працюють у режимі розділення часу, користувачі все більше віддають перевагу підключеним до мережі індивідуальним робочим станціям. Такий підхід дозволяє для вирішення невеликих завдань задіювати індивідуальну машину, а у разі необхідності великої обчислювальної потужності звернутися до ресурсів приєднаних до тієї ж мережі могутніх файл- серверів або супер-ЕОМ.
На ранніх стадіях еволюції обчислювальних засобів зміна поколінь асоціювалася з революційними технологічними проривами. Кожне з перших чотирьох поколінь мало чітко виражені відмінні ознаки і цілком певні хронологічні рамки. Подальше ділення на покоління вже не так очевидно і може бути зрозуміле лише у разі ретроспективного погляду на розвиток обчислювальної техніки. П'яте і шосте покоління в еволюції ОТ - це віддзеркалення нової якості, що виникла в результаті послідовного накопичення приватних досягнень, головним чином в архітектурі обчислювальних систем і, в дещо меншій мірі, у сфері технологій.
Приводом для початку відліку нового покоління стали значні успіхи в області паралельних обчислень, пов'язані з широким розповсюдженням обчислювальних систем з масовим паралелізмом. Особливість організації таких систем, що позначаються абревіатурою МРР (massively parallel processing), полягає в сукупності великої кількості (до декількох тисяч) взаємодіючих, але достатньо автономних обчислювальних машин. За обчислювальною потужністю такі системи вже успішно конкурують з супер-ЕОМ, які, як раніше наголошувалося, за своєю суттю є векторними ОС. Поява обчислювальних систем з масовим паралелізмом дала підставу говорити про продуктивність, вимірювану в TFLOPS (1 TFLOPS відповідає 1012 операціям з плаваючою комою в секунду).
Друга характерна риса шостого покоління - різко збільшений рівень робочих станцій. У процесорах нових робочих станцій успішно поєднуються RISC-архітектура, конвеєризація і паралельна обробка. Деякі робочі станції за продуктивністю співставні з супер-ЕОМ четвертого покоління. Вражаючі характеристики робочих станцій породили інтерес до гетерогенних (неоднорідних) обчислень, коли програма, що запущена на одній робочій станції, може знайти в локальній мережі не зайняті в даний момент інші станції, після чого обчислення розпаралелюються і на ці простоюючі станції.
Нарешті, третьою прикметою шостого покоління в еволюції ОТ стає вибухове зростання глобальних мереж. Відзначимо, що верхня межа шостого покоління хронологічно поки не визначена і подальший розвиток обчислювальної техніки може внести до його характеристики нові корективи.