Виникнення терміну
Поняття архітектури ЕОМ вперше було успішно застосовано при проектуванні серії обчислювальних машин IBM System/360, серії універсальних ЕОМ загального призначення, кожна з яких мала різну швидкодію та конструктивні особливості, але всі вони були програмно сумісними. Така сумісність означала можливість виконувати програми без необхідності їх додаткової адаптації до різних моделей серії та була певною мірою революційною, адже в той час практично всі ЕОМ випускались, як би ми зараз сказали, з унікальною архітектурою і необхідні були суттєві витрати для адаптації існуючого програмного забезпечення до нових моделей обчислювальної техніки. І якщо для спеціалізованих обчислювачів це було платою за високі показники швидкодії, то для класу універсальних ЕОМ така ситуація була неприпустимою.
Спеціалісти фірми IBM при створенні System/360 (S/360) зробили архітектуру єдиною для всіх машин серії, але реалізували її в кожній машині по-різному. В 1964 році було анонсовано зразу 6 моделей S/360.
Архітектура S/360 саме завдяки такій сумісності моделей мала надзвичайний комерційний успіх та отримала свій розвиток в наступній серії System/360, і в новій серії z/Server.
Архітектура, організація та реалізація
(Frederic Brooks), корисність розділення архітектури та її апаратного втілення легко спостерігати на прикладі звичайного стрілочного годинника, архітектурою якого можна вважати циферблат, стрілки та голівку для заведення. Опанувавши цей нехитрий інструментарій, кожний зможе без зусиль користуватись як наручним годинником, так і годинником з дзвіниці. Однак конфігурація внутрішнього механізму, принципи передачі зусиль між різними його частинами, є, взагалі, різними в різних моделях годинників. Тобто, для одної архітектури існує багато способів її внутрішньої організації. Кожна внутрішня організація, в свою чергу, дозволяє багато різних виконань. В одному випадку годинники з ідентичним за принципом дії механізмом можуть бути водонепроникними, а механізм виготовлятися з особливо надійних матеріалів, а в іншому від цих вимог можуть відмовитись, і годинник буде дешевшим.
В відношенні до ЕОМ, ситуація аналогічна. Під її функціональною організацією або виконанням розуміють загальні принципи функціонування пристроїв обробки інформації, пам'яті та підсистем вводу-виводу, опис внутрішніх потоків даних та керування. Втілення ж конкретного виконання в апаратурі називають реалізацією.
Архітектури та програмна сумісність
Аналогічно тому, як стрілковий годинник багато віків залишається зручним способом слідкування за часом, вдалі архітектури ЕОМ можуть залишатись конкурентоспроможними протягом десятиліть. Еволюціонувати може і сама архітектура, збагачуючи програміста новими інструментами для написання надійніших та швидкодіючих програм.
Приклад — архітектура IA-32 (у вживанішому позначенні x86, починаючи з i386) центрального процесора фірми Intel, яка є ключовою складовою загальної архітектури ЕОМ. Ця архітектура не була революційною, а зберегла повну сумісність знизу вгору з попередньою архітектурою IA-16 (x86, закінчуючи i286), але в неї були додані нові інструменти для роботи в захищеному режимі, організації багатозадачної роботи, розширена розрядність операндів, тощо. Кожне наступне сімейство процесорів IA-32 включає нові інструменти, нові команди, але при цьому вимога до сумісності знизу вгору залишається недоторканною.
Ця сумісність є певною жертвою з боку розробника, який міг би, напевно, запропонувати радикально нову архітектуру, яка має масу переваг в порівнянні з іншими, морально застарілими, але він таким вчинком змусив би користувачів на колосальні витрати, пов'язані з адаптацією існуючого програмного забезпечення, накопиченого за багато років експлуатації. Ця обставина миттєво нівелює будь-які аргументи привабливості нової архітектури для більшості потенційних користувачів. Акуратніший підхід якраз полягає в забезпеченні еволюційної наступності нових архітектур.
Існує й інше вирішення проблеми сумісності програмного забезпечення з різними архітектурами ЕОМ — використання мов програмування високого рівня для написання крос-платформених програм (переносимих програм). Під переносимими програмами розуміють такі програми, в текстах яких не використовуються ніякі специфічні для будь-якої конкретної архітектури відомості. Мова високого рівня повинна в свою чергу бути стандартизованою. Це дає гарантію того, що одного разу написана, програма може бути використана на різних архітектурах. Відповідальність за адаптацію високорівневих конструкцій мови програмування до особливостей конкретної архітектури бере на себе компілятор з цієї мови для даної конкретної архітектури.
Архітекту́ра фон Не́ймана (архітектура фон Неймана-Екерта-Маклі), архітектура електронних обчислювальних машин, основною відмінністю якої від інших подібних архітектур є спільне зберігання даних та машинних команд в комірках однієї й тієї ж пам'яті, що унеможливлює їх розрізнення за способом представлення або кодування. Названа так на честь відомого математика та теоретика обчислювальної техніки Джона фон Неймана (John von Neumann), та по сьогодні залишається домінуючою схемою організації ЕОМ загального призначення.
Класична структура машини фон Неймана
Машина фон Неймана, як і практично кожна сучасна ЕОМ загального призначення, складається з чотирьох основних компонентів:
Операційний пристрій (ОП), який виконує команди з визначеного набору, який називається системою (набором) команд, над порціями інформації, яка зберігається відокремленій від операційного пристрою пам'яті (хоча сучасні архітектури мають в складі операційного пристрою додаткову пам'ять (зазвичай банк регістрів), в якій операнди зберігаються порівняно короткий час безпосередньо в процесі проведення обчислень.
Пристрій управління (ПУ), який організує послідовне виконання алгоритмів, розшифрування команд, які поступають із запам'ятовуючого пристрою (див. нижче), реагує на аварійні ситуації та виконує загальні функції управління всіма вузлами обчислювальної машини. Зазвичай ОП та ПУ об'єднуються в структуру, яка називається центральним процесором. Слід звернути увагу, що вимога саме послідовного, в порядку надходження з пам'яті (в порядку зміни адрес в лічильнику команд) виконання команд є принциповою. Архітектури, які не додержуються такого принципу, взагалі не вважаються фон-нейманівськими.
Запам'ятовуючий пристрій (ЗП) — масив комірок з унікальними ідентифікаторами (адресами), в яких зберігаються команди та дані.
Пристрій вводу-виводу (ПВВ), який забезпечує зв'язок ЕОМ з зовнішнім світом, різними пристроями, які передають інформацію на переробку в ЕОМ та приймають результати.
Принцип функціонування
Після завантаження програми (алгоритму й даних для обробки) в запам'ятовуючий пристрій, машина фон-Неймана може працювати автоматично, без втручання оператора. Кожна комірка пам'яті машини має унікальний номер — адресу, а спеціальний механізм, частіше всього — лічильник команд — забезпечує автоматичне виконання необхідної послідовності команд, і визначає на кожному етапі адресу комірки, з якої необхідно завантажити наступну команду.
Перед початком виконання програми в лічильник записується адреса її першої команди. Визначення адреси наступної команди відбувається за одним з наступних сценаріїв:
Якщо поточна команда не є командою передачі управління (тобто це просто арифметична або логічна операція над даними), то до поточного значення лічильника додається число, яке дорівнює довжині поточної команди в мінімально адресованих одиницях інформації (зрозуміло, що це можливо за умови, якщо звичайні команди в блоках, не розділених командами передачі управління, розташовуються послідовно в пам'яті, інакше адреса наступної команди може зберігатись, наприклад, безпосередньо в команді).
Якщо поточна команда — команда передачі управління (команда умовного або безумовного переходу), яка змінює послідовний хід виконання програми, то в лічильник примусово записується адреса тої команди, яка була замовлена при виконанні переходу, де б вона не знаходилась.
